@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,4 +1,5 @@
1
1
  import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import { gettext } from '@c8y/ngx-components/gettext';
2
3
  import { Subject, timer } from 'rxjs';
3
4
  import { debounce, distinctUntilChanged, map } from 'rxjs/operators';
4
5
  import * as i0 from "@angular/core";
@@ -9,15 +10,27 @@ export class FilterInputComponent {
9
10
  this.onSearch = new EventEmitter();
10
11
  this.filterChange$ = new Subject();
11
12
  this.filterTerm = '';
13
+ this.searchLabel = gettext('search');
14
+ this.closeLabel = gettext('close');
12
15
  this.CARRIAGE_RETURN_KEY = 13;
13
16
  this.CARRIAGE_RETURN_CODE = 'Enter';
17
+ this.CARRIAGE_ESCAPE_CODE = 'Escape';
18
+ this.AUTO_SEARCH_DEBOUNCE = 500;
14
19
  }
15
20
  ngOnInit() {
16
- this.reset();
17
21
  this.filterChange$
18
- .pipe(debounce((event) => event.code === this.CARRIAGE_RETURN_CODE || event.keyCode === this.CARRIAGE_RETURN_KEY
19
- ? timer(10)
20
- : timer(300)), map((e) => e.target.value), distinctUntilChanged())
22
+ .pipe(debounce((event) => {
23
+ if (event.code === this.CARRIAGE_RETURN_CODE ||
24
+ event.keyCode === this.CARRIAGE_RETURN_KEY) {
25
+ event.preventDefault();
26
+ return timer(0);
27
+ }
28
+ if (event.code === this.CARRIAGE_ESCAPE_CODE) {
29
+ this.reset();
30
+ return timer(0);
31
+ }
32
+ return timer(this.AUTO_SEARCH_DEBOUNCE);
33
+ }), map((e) => e.target.value), distinctUntilChanged())
21
34
  .subscribe(filterTerm => {
22
35
  this.filterTerm = filterTerm;
23
36
  this.onSearch.emit(filterTerm);
@@ -31,14 +44,16 @@ export class FilterInputComponent {
31
44
  this.filterChange$.complete();
32
45
  }
33
46
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: FilterInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
34
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: FilterInputComponent, selector: "c8y-filter", inputs: { icon: "icon" }, outputs: { onSearch: "onSearch" }, ngImport: i0, template: "<div class=\"input-group input-group-search\">\n <input\n class=\"form-control\"\n placeholder=\"{{ 'Filter\u2026' | translate }}\"\n type=\"text\"\n [value]=\"filterTerm\"\n (keyup)=\"filterChange$.next($event)\"\n px-event=\"Filter\u2026\"\n data-cy=\"filter-input--filter-input\"\n />\n <span class=\"input-group-btn\">\n <button class=\"btn btn-clean\" title=\"{{filterTerm.length === 0 ? ('search' | translate) : ('close' | translate)}}\" px-event=\"Clear filtering\" (click)=\"reset()\">\n <i [c8yIcon]=\"filterTerm.length === 0 ? 'search' : 'close'\"></i>\n </button>\n </span>\n</div>\n", dependencies: [{ kind: "directive", type: i1.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "pipe", type: i2.C8yTranslatePipe, name: "translate" }] }); }
47
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: FilterInputComponent, selector: "c8y-filter", inputs: { icon: "icon", filterTerm: "filterTerm" }, outputs: { onSearch: "onSearch" }, ngImport: i0, template: "<div class=\"input-group input-group-search\">\n <input\n class=\"form-control\"\n placeholder=\"{{ 'Filter\u2026' | translate }}\"\n type=\"text\"\n [value]=\"filterTerm\"\n (keydown)=\"filterChange$.next($event)\"\n px-event=\"Filter\u2026\"\n data-cy=\"filter-input--filter-input\"\n />\n <span class=\"input-group-btn\">\n <button\n class=\"btn btn-clean\"\n title=\"{{ filterTerm.length === 0 ? searchLabel : closeLabel }}\"\n px-event=\"Clear filtering\"\n (click)=\"reset()\"\n >\n <i [c8yIcon]=\"filterTerm.length === 0 ? 'search' : 'close'\"></i>\n </button>\n </span>\n</div>\n", dependencies: [{ kind: "directive", type: i1.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "pipe", type: i2.C8yTranslatePipe, name: "translate" }] }); }
35
48
  }
36
49
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: FilterInputComponent, decorators: [{
37
50
  type: Component,
38
- args: [{ selector: 'c8y-filter', template: "<div class=\"input-group input-group-search\">\n <input\n class=\"form-control\"\n placeholder=\"{{ 'Filter\u2026' | translate }}\"\n type=\"text\"\n [value]=\"filterTerm\"\n (keyup)=\"filterChange$.next($event)\"\n px-event=\"Filter\u2026\"\n data-cy=\"filter-input--filter-input\"\n />\n <span class=\"input-group-btn\">\n <button class=\"btn btn-clean\" title=\"{{filterTerm.length === 0 ? ('search' | translate) : ('close' | translate)}}\" px-event=\"Clear filtering\" (click)=\"reset()\">\n <i [c8yIcon]=\"filterTerm.length === 0 ? 'search' : 'close'\"></i>\n </button>\n </span>\n</div>\n" }]
51
+ args: [{ selector: 'c8y-filter', template: "<div class=\"input-group input-group-search\">\n <input\n class=\"form-control\"\n placeholder=\"{{ 'Filter\u2026' | translate }}\"\n type=\"text\"\n [value]=\"filterTerm\"\n (keydown)=\"filterChange$.next($event)\"\n px-event=\"Filter\u2026\"\n data-cy=\"filter-input--filter-input\"\n />\n <span class=\"input-group-btn\">\n <button\n class=\"btn btn-clean\"\n title=\"{{ filterTerm.length === 0 ? searchLabel : closeLabel }}\"\n px-event=\"Clear filtering\"\n (click)=\"reset()\"\n >\n <i [c8yIcon]=\"filterTerm.length === 0 ? 'search' : 'close'\"></i>\n </button>\n </span>\n</div>\n" }]
39
52
  }], propDecorators: { icon: [{
40
53
  type: Input
41
54
  }], onSearch: [{
42
55
  type: Output
56
+ }], filterTerm: [{
57
+ type: Input
43
58
  }] } });
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvcmUvZm9ybXMvZmlsdGVyLWlucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL2NvcmUvZm9ybXMvZmlsdGVyLWlucHV0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFGLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxRQUFRLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUFNckUsTUFBTSxPQUFPLG9CQUFvQjtJQUpqQztRQU1ZLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBQ2hELGtCQUFhLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUM5QixlQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ0Msd0JBQW1CLEdBQUcsRUFBRSxDQUFDO1FBQ3pCLHlCQUFvQixHQUFHLE9BQU8sQ0FBQztLQTRCakQ7SUExQkMsUUFBUTtRQUNOLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNiLElBQUksQ0FBQyxhQUFhO2FBQ2YsSUFBSSxDQUNILFFBQVEsQ0FBQyxDQUFDLEtBQVUsRUFBRSxFQUFFLENBQ3RCLEtBQUssQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLG9CQUFvQixJQUFJLEtBQUssQ0FBQyxPQUFPLEtBQUssSUFBSSxDQUFDLG1CQUFtQjtZQUNwRixDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNYLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQ2YsRUFDRCxHQUFHLENBQUMsQ0FBQyxDQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQy9CLG9CQUFvQixFQUFFLENBQ3ZCO2FBQ0EsU0FBUyxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQ3RCLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1lBQzdCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2pDLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELEtBQUs7UUFDSCxJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDaEMsQ0FBQzs4R0FqQ1Usb0JBQW9CO2tHQUFwQixvQkFBb0IsK0dDUmpDLHduQkFnQkE7OzJGRFJhLG9CQUFvQjtrQkFKaEMsU0FBUzsrQkFDRSxZQUFZOzhCQUliLElBQUk7c0JBQVosS0FBSztnQkFDSSxRQUFRO3NCQUFqQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0LCB0aW1lciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVib3VuY2UsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS1maWx0ZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vZmlsdGVyLWlucHV0LmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBGaWx0ZXJJbnB1dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KCkgaWNvbjogc3RyaW5nO1xuICBAT3V0cHV0KCkgb25TZWFyY2ggPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcbiAgZmlsdGVyQ2hhbmdlJCA9IG5ldyBTdWJqZWN0KCk7XG4gIGZpbHRlclRlcm0gPSAnJztcbiAgcHJpdmF0ZSByZWFkb25seSBDQVJSSUFHRV9SRVRVUk5fS0VZID0gMTM7XG4gIHByaXZhdGUgcmVhZG9ubHkgQ0FSUklBR0VfUkVUVVJOX0NPREUgPSAnRW50ZXInO1xuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMucmVzZXQoKTtcbiAgICB0aGlzLmZpbHRlckNoYW5nZSRcbiAgICAgIC5waXBlKFxuICAgICAgICBkZWJvdW5jZSgoZXZlbnQ6IGFueSkgPT5cbiAgICAgICAgICBldmVudC5jb2RlID09PSB0aGlzLkNBUlJJQUdFX1JFVFVSTl9DT0RFIHx8IGV2ZW50LmtleUNvZGUgPT09IHRoaXMuQ0FSUklBR0VfUkVUVVJOX0tFWVxuICAgICAgICAgICAgPyB0aW1lcigxMClcbiAgICAgICAgICAgIDogdGltZXIoMzAwKVxuICAgICAgICApLFxuICAgICAgICBtYXAoKGU6IGFueSkgPT4gZS50YXJnZXQudmFsdWUpLFxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKGZpbHRlclRlcm0gPT4ge1xuICAgICAgICB0aGlzLmZpbHRlclRlcm0gPSBmaWx0ZXJUZXJtO1xuICAgICAgICB0aGlzLm9uU2VhcmNoLmVtaXQoZmlsdGVyVGVybSk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHJlc2V0KCkge1xuICAgIHRoaXMuZmlsdGVyVGVybSA9ICcnO1xuICAgIHRoaXMub25TZWFyY2guZW1pdCgnJyk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmZpbHRlckNoYW5nZSQuY29tcGxldGUoKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwIGlucHV0LWdyb3VwLXNlYXJjaFwiPlxuICA8aW5wdXRcbiAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgcGxhY2Vob2xkZXI9XCJ7eyAnRmlsdGVy4oCmJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgdHlwZT1cInRleHRcIlxuICAgIFt2YWx1ZV09XCJmaWx0ZXJUZXJtXCJcbiAgICAoa2V5dXApPVwiZmlsdGVyQ2hhbmdlJC5uZXh0KCRldmVudClcIlxuICAgIHB4LWV2ZW50PVwiRmlsdGVy4oCmXCJcbiAgICBkYXRhLWN5PVwiZmlsdGVyLWlucHV0LS1maWx0ZXItaW5wdXRcIlxuICAvPlxuICA8c3BhbiBjbGFzcz1cImlucHV0LWdyb3VwLWJ0blwiPlxuICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLWNsZWFuXCIgdGl0bGU9XCJ7e2ZpbHRlclRlcm0ubGVuZ3RoID09PSAwID8gKCdzZWFyY2gnIHwgdHJhbnNsYXRlKSA6ICgnY2xvc2UnIHwgdHJhbnNsYXRlKX19XCIgcHgtZXZlbnQ9XCJDbGVhciBmaWx0ZXJpbmdcIiAoY2xpY2spPVwicmVzZXQoKVwiPlxuICAgICAgPGkgW2M4eUljb25dPVwiZmlsdGVyVGVybS5sZW5ndGggPT09IDAgPyAnc2VhcmNoJyA6ICdjbG9zZSdcIj48L2k+XG4gICAgPC9idXR0b24+XG4gIDwvc3Bhbj5cbjwvZGl2PlxuIl19
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvcmUvZm9ybXMvZmlsdGVyLWlucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL2NvcmUvZm9ybXMvZmlsdGVyLWlucHV0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFGLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUV0RCxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEVBQUUsUUFBUSxFQUFFLG9CQUFvQixFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7O0FBTXJFLE1BQU0sT0FBTyxvQkFBb0I7SUFKakM7UUFNWSxhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUNoRCxrQkFBYSxHQUFHLElBQUksT0FBTyxFQUFpQixDQUFDO1FBRTdDLGVBQVUsR0FBRyxFQUFFLENBQUM7UUFDaEIsZ0JBQVcsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDaEMsZUFBVSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNiLHdCQUFtQixHQUFHLEVBQUUsQ0FBQztRQUN6Qix5QkFBb0IsR0FBRyxPQUFPLENBQUM7UUFDL0IseUJBQW9CLEdBQUcsUUFBUSxDQUFDO1FBQ2hDLHlCQUFvQixHQUFHLEdBQUcsQ0FBQztLQXNDN0M7SUFwQ0MsUUFBUTtRQUNOLElBQUksQ0FBQyxhQUFhO2FBQ2YsSUFBSSxDQUNILFFBQVEsQ0FBQyxDQUFDLEtBQW9CLEVBQUUsRUFBRTtZQUNoQyxJQUNFLEtBQUssQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLG9CQUFvQjtnQkFDeEMsS0FBSyxDQUFDLE9BQU8sS0FBSyxJQUFJLENBQUMsbUJBQW1CLEVBQzFDLENBQUM7Z0JBQ0QsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO2dCQUN2QixPQUFPLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNsQixDQUFDO1lBRUQsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO2dCQUM3QyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ2IsT0FBTyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbEIsQ0FBQztZQUVELE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQzFDLENBQUMsQ0FBQyxFQUNGLEdBQUcsQ0FBQyxDQUFDLENBQWdCLEVBQUUsRUFBRSxDQUFFLENBQUMsQ0FBQyxNQUEyQixDQUFDLEtBQUssQ0FBQyxFQUMvRCxvQkFBb0IsRUFBRSxDQUN2QjthQUNBLFNBQVMsQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUN0QixJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztZQUM3QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNqQyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ2hDLENBQUM7OEdBaERVLG9CQUFvQjtrR0FBcEIsb0JBQW9CLHlJQ1ZqQyx3b0JBcUJBOzsyRkRYYSxvQkFBb0I7a0JBSmhDLFNBQVM7K0JBQ0UsWUFBWTs4QkFJYixJQUFJO3NCQUFaLEtBQUs7Z0JBQ0ksUUFBUTtzQkFBakIsTUFBTTtnQkFHUCxVQUFVO3NCQURULEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGdldHRleHQgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzL2dldHRleHQnO1xuaW1wb3J0IHsgU3VwcG9ydGVkSWNvbnNTdWdnZXN0aW9ucyB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMvaWNvbi1zZWxlY3Rvci9pY29ucyc7XG5pbXBvcnQgeyBTdWJqZWN0LCB0aW1lciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVib3VuY2UsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS1maWx0ZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vZmlsdGVyLWlucHV0LmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBGaWx0ZXJJbnB1dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KCkgaWNvbjogU3VwcG9ydGVkSWNvbnNTdWdnZXN0aW9ucztcbiAgQE91dHB1dCgpIG9uU2VhcmNoID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG4gIGZpbHRlckNoYW5nZSQgPSBuZXcgU3ViamVjdDxLZXlib2FyZEV2ZW50PigpO1xuICBASW5wdXQoKVxuICBmaWx0ZXJUZXJtID0gJyc7XG4gIHNlYXJjaExhYmVsID0gZ2V0dGV4dCgnc2VhcmNoJyk7XG4gIGNsb3NlTGFiZWwgPSBnZXR0ZXh0KCdjbG9zZScpO1xuICBwcml2YXRlIHJlYWRvbmx5IENBUlJJQUdFX1JFVFVSTl9LRVkgPSAxMztcbiAgcHJpdmF0ZSByZWFkb25seSBDQVJSSUFHRV9SRVRVUk5fQ09ERSA9ICdFbnRlcic7XG4gIHByaXZhdGUgcmVhZG9ubHkgQ0FSUklBR0VfRVNDQVBFX0NPREUgPSAnRXNjYXBlJztcbiAgcHJpdmF0ZSByZWFkb25seSBBVVRPX1NFQVJDSF9ERUJPVU5DRSA9IDUwMDtcblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmZpbHRlckNoYW5nZSRcbiAgICAgIC5waXBlKFxuICAgICAgICBkZWJvdW5jZSgoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBldmVudC5jb2RlID09PSB0aGlzLkNBUlJJQUdFX1JFVFVSTl9DT0RFIHx8XG4gICAgICAgICAgICBldmVudC5rZXlDb2RlID09PSB0aGlzLkNBUlJJQUdFX1JFVFVSTl9LRVlcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICByZXR1cm4gdGltZXIoMCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKGV2ZW50LmNvZGUgPT09IHRoaXMuQ0FSUklBR0VfRVNDQVBFX0NPREUpIHtcbiAgICAgICAgICAgIHRoaXMucmVzZXQoKTtcbiAgICAgICAgICAgIHJldHVybiB0aW1lcigwKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gdGltZXIodGhpcy5BVVRPX1NFQVJDSF9ERUJPVU5DRSk7XG4gICAgICAgIH0pLFxuICAgICAgICBtYXAoKGU6IEtleWJvYXJkRXZlbnQpID0+IChlLnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS52YWx1ZSksXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKClcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoZmlsdGVyVGVybSA9PiB7XG4gICAgICAgIHRoaXMuZmlsdGVyVGVybSA9IGZpbHRlclRlcm07XG4gICAgICAgIHRoaXMub25TZWFyY2guZW1pdChmaWx0ZXJUZXJtKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcmVzZXQoKSB7XG4gICAgdGhpcy5maWx0ZXJUZXJtID0gJyc7XG4gICAgdGhpcy5vblNlYXJjaC5lbWl0KCcnKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZmlsdGVyQ2hhbmdlJC5jb21wbGV0ZSgpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXAgaW5wdXQtZ3JvdXAtc2VhcmNoXCI+XG4gIDxpbnB1dFxuICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICBwbGFjZWhvbGRlcj1cInt7ICdGaWx0ZXLigKYnIHwgdHJhbnNsYXRlIH19XCJcbiAgICB0eXBlPVwidGV4dFwiXG4gICAgW3ZhbHVlXT1cImZpbHRlclRlcm1cIlxuICAgIChrZXlkb3duKT1cImZpbHRlckNoYW5nZSQubmV4dCgkZXZlbnQpXCJcbiAgICBweC1ldmVudD1cIkZpbHRlcuKAplwiXG4gICAgZGF0YS1jeT1cImZpbHRlci1pbnB1dC0tZmlsdGVyLWlucHV0XCJcbiAgLz5cbiAgPHNwYW4gY2xhc3M9XCJpbnB1dC1ncm91cC1idG5cIj5cbiAgICA8YnV0dG9uXG4gICAgICBjbGFzcz1cImJ0biBidG4tY2xlYW5cIlxuICAgICAgdGl0bGU9XCJ7eyBmaWx0ZXJUZXJtLmxlbmd0aCA9PT0gMCA/IHNlYXJjaExhYmVsIDogY2xvc2VMYWJlbCB9fVwiXG4gICAgICBweC1ldmVudD1cIkNsZWFyIGZpbHRlcmluZ1wiXG4gICAgICAoY2xpY2spPVwicmVzZXQoKVwiXG4gICAgPlxuICAgICAgPGkgW2M4eUljb25dPVwiZmlsdGVyVGVybS5sZW5ndGggPT09IDAgPyAnc2VhcmNoJyA6ICdjbG9zZSdcIj48L2k+XG4gICAgPC9idXR0b24+XG4gIDwvc3Bhbj5cbjwvZGl2PlxuIl19
@@ -128,13 +128,15 @@ export class TranslateService {
128
128
  return this.getQueryParameter('lang');
129
129
  }
130
130
  parseLocaleCode(localeCode, outputSeparator = '_') {
131
- const matches = localeCode.match(/^([a-z]{2})([_-]([a-z]{2}))?$/i);
131
+ // - 2 letter language code
132
+ // - optional region code that's either 2 letters OR 3 digits
133
+ const matches = localeCode.match(/^([a-z]{2})([_-]([a-z]{2}|[0-9]{3}))?$/i);
132
134
  if (!matches) {
133
- throw new Error(`Could not parse locale code "${localeCode}", make sure it's a two- or four-letter code (case insensitive) separated with "_" or "-".`);
135
+ throw new Error(`Could not parse locale code "${localeCode}". Expected format: language code (2 letters) optionally followed by region code (2 letters or 3 digits) separated with "_" or "-", e.g. "en-US" or "es-419".`);
134
136
  }
135
137
  const langCode = matches[1].toLowerCase();
136
- const countryCode = matches[3]?.toUpperCase();
137
- const langCountryCode = `${langCode}${countryCode ? `${outputSeparator}${countryCode}` : ''}`;
138
+ const regionCode = matches[3]?.toUpperCase();
139
+ const langCountryCode = `${langCode}${regionCode ? `${outputSeparator}${regionCode}` : ''}`;
138
140
  return { langCode, langCountryCode };
139
141
  }
140
142
  /**
@@ -259,4 +261,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
259
261
  }] }, { type: i4.BsLocaleService, decorators: [{
260
262
  type: Optional
261
263
  }] }] });
262
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9jb3JlL2kxOG4vdHJhbnNsYXRlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZ0JBQWdCLElBQUksbUJBQW1CLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM5RSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUNMLFlBQVksRUFDWixRQUFRLEVBQ1IsVUFBVSxFQUNWLFFBQVEsRUFDUixRQUFRLEVBQ1IsUUFBUSxFQUNSLFFBQVEsRUFDUixRQUFRLEVBQ1IsUUFBUSxFQUNSLFVBQVUsRUFDVixVQUFVLEVBQ1gsTUFBTSx1QkFBdUIsQ0FBQztBQUMvQixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7OztBQUUzRDs7R0FFRztBQUlILE1BQU0sT0FBTyxnQkFBZ0I7YUFDcEIsc0JBQWlCLEdBQUcsY0FBYyxBQUFqQixDQUFrQjtJQUMxQyxNQUFNLENBQUMsV0FBVztRQUNoQixPQUFPLE1BQU0sQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDekUsQ0FBQztJQUtELFlBQ1UsWUFBaUMs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QUFlLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUMvQixNQUFNO1lBQ1IsQ0FBQztZQUNELEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQztnQkFDVixZQUFZLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxDQUFDO2dCQUMvQixJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDL0IsTUFBTTtZQUNSLENBQUM7WUFDRCxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUM7Z0JBQ1YsWUFBWSxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQztnQkFDL0IsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQy9CLE1BQU07WUFDUixDQUFDO1lBQ0QsT0FBTyxDQUFDLENBQUMsQ0FBQztnQkFDUixZQUFZLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxDQUFDO2dCQUNsQyxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNwQyxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7OEdBL1BVLGdCQUFnQiwrR0FhakIsUUFBUTtrSEFiUCxnQkFBZ0IsY0FGZixNQUFNOzsyRkFFUCxnQkFBZ0I7a0JBSDVCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFjSSxNQUFNOzJCQUFDLFFBQVE7OzBCQUNmLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBET0NVTUVOVCwgcmVnaXN0ZXJMb2NhbGVEYXRhIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgYXMgTmd4VHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsga2V5cyB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBPcHRpb25zU2VydmljZSB9IGZyb20gJy4uL2NvbW1vbi9vcHRpb25zLnNlcnZpY2UnO1xuaW1wb3J0IHsgQXBwU3RhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vY29tbW9uL3VpLXN0YXRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgZ2V0QW5ndWxhckxvY2FsZXNMYW5ndWFnZVN0cmluZyB9IGZyb20gJy4vaTE4bi5tb2R1bGUnO1xuaW1wb3J0IHsgbG9hZExvY2FsZSB9IGZyb20gJy4vbG9hZC1sb2NhbGUnO1xuaW1wb3J0IHtcbiAgZGVmaW5lTG9jYWxlLFxuICBkZUxvY2FsZSxcbiAgZW5HYkxvY2FsZSxcbiAgZXNMb2NhbGUsXG4gIGZyTG9jYWxlLFxuICBqYUxvY2FsZSxcbiAga29Mb2NhbGUsXG4gIG5sTG9jYWxlLFxuICBwbExvY2FsZSxcbiAgcHRCckxvY2FsZSxcbiAgemhDbkxvY2FsZVxufSBmcm9tICduZ3gtYm9vdHN0cmFwL2Nocm9ub3MnO1xuaW1wb3J0IHsgQnNMb2NhbGVTZXJ2aWNlIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC9kYXRlcGlja2VyJztcblxuLyoqXG4gKiBBIHNlcnZpY2UgdG8gbWFuYWdlIHRoZSBsYW5ndWFnZSBvZiB0aGUgYXBwbGljYXRpb24uXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFRyYW5zbGF0ZVNlcnZpY2Uge1xuICBzdGF0aWMgU0FWRV9MQU5HVUFHRV9LRVkgPSAnYzh5X2xhbmd1YWdlJztcbiAgc3RhdGljIGRlZmF1bHRMYW5nKCkge1xuICAgIHJldHVybiB3aW5kb3cubG9jYWxTdG9yYWdlLmdldEl0ZW0oVHJhbnNsYXRlU2VydmljZS5TQVZFX0xBTkdVQUdFX0tFWSk7XG4gIH1cbiAgbGFuZ3NEZXRhaWw6IGFueSA9IHRoaXMub3B0aW9ucy5nZXQoJ2xhbmd1YWdlcycsIHt9KTtcbiAgbGFuZ3M6IGFueSA9IGtleXModGhpcy5sYW5nc0RldGFpbCkuZmlsdGVyKGsgPT4gdGhpcy5sYW5nc0RldGFpbFtrXSk7XG4gIHByaXZhdGUgREVGQVVMVF9TRVBBUkFUT1IgPSAnXyc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBuZ3hUcmFuc2xhdGU6IE5neFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSB1aTogQXBwU3RhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgb3B0aW9uczogT3B0aW9uc1NlcnZpY2UsXG4gICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBkb2N1bWVudDogRG9jdW1lbnQsXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBic0xvY2FsZVNlcnZpY2U6IEJzTG9jYWxlU2VydmljZVxuICApIHtcbiAgICBjb25zdCBxdWVyeVN0cmluZ0xhbmcgPSB0aGlzLnF1ZXJ5U3RyaW5nTGFuZygpO1xuICAgIGlmIChxdWVyeVN0cmluZ0xhbmcpIHtcbiAgICAgIHRoaXMuc2F2ZUluTG9jYWxTdG9yYWdlKHF1ZXJ5U3RyaW5nTGFuZyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFN3aXRjaGVzIHRoZSBhcHAgdG8gZ2l2ZW4gbG9jYWxlIChpbmNsLiBBbmd1bGFyLCBCb290c3RyYXAsIHRyYW5zbGF0aW9ucykuXG4gICAqIEBwYXJhbSBsb2NhbGVDb2RlIFRoZSBsb2NhbGUgY29kZS4gU3VwcG9ydGVkIGZvcm1hdHM6XG4gICAqIC0gdHdvLWxldHRlciBjb2RlcyBmb3IgbGFuZ3VhZ2Ugb25seSwgZm9yIGV4YW1wbGU6IGBlbmAsIGBkZWBcbiAgICogLSBmb3VyLWxldHRlciBjb2RlcyBmb3IgbGFuZ3VhZ2UgYW5kIGNvdW50cnksIHNlcGFyYXRlZCB3aXRoIHVuZGVyc2NvcmUgb3IgZGFzaCwgZm9yIGV4YW1wbGU6IGB6aF9DTmAsIGB6aF9jbmAsIGB6aC1DTmAsIGB6aC1jbmBcbiAgICovXG4gIGFzeW5jIHN3aXRjaFRvTGFuZ3VhZ2UobG9jYWxlQ29kZTogc3RyaW5nKSB7XG4gICAgY29uc3QgeyBsYW5nQ291bnRyeUNvZGU6IG5neExvY2FsZUNvZGUsIGxhbmdDb2RlOiBuZ3hMb2NhbGVDb2RlRmFsbGJhY2sgfSA9XG4gICAgICB0aGlzLnBhcnNlTG9jYWxlQ29kZShsb2NhbGVDb2RlLCAnLScpO1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCB0aGlzLmxvYWRMb2NhbGVzKG5neExvY2FsZUNvZGUpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGlmIChuZ3hMb2NhbGVDb2RlRmFsbGJhY2sgIT09IG5neExvY2FsZUNvZGUpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5sb2FkTG9jYWxlcyhuZ3hMb2NhbGVDb2RlRmFsbGJhY2spO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3cgZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCB7IGxhbmdDb2RlOiBic0xvY2FsZUNvZGUsIGxhbmdDb3VudHJ5Q29kZTogbmd4VHJhbnNsYXRlTG9jYWxlQ29kZSB9ID1cbiAgICAgIHRoaXMucGFyc2VMb2NhbGVDb2RlKGxvY2FsZUNvZGUpO1xuICAgIHRoaXMuc2V0QnNMb2NhbGUoYnNMb2NhbGVDb2RlKTtcbiAgICB0aGlzLnNldExhbmd1YWdlKG5neFRyYW5zbGF0ZUxvY2FsZUNvZGUpO1xuICB9XG5cbiAgYXN5bmMgbG9hZExvY2FsZXMobW9kdWxlTGFuZykge1xuICAgIGNvbnN0IG1vZHVsZTogYW55ID0gYXdhaXQgbG9hZExvY2FsZShnZXRBbmd1bGFyTG9jYWxlc0xhbmd1YWdlU3RyaW5nKG1vZHVsZUxhbmcpKTtcbiAgICByZWdpc3RlckxvY2FsZURhdGEobW9kdWxlLmRlZmF1bHQpO1xuICB9XG5cbiAgc2V0TGFuZ3VhZ2UobGFuZzogc3RyaW5nKSB7XG4gICAgdGhpcy5uZ3hUcmFuc2xhdGUuc2V0RGVmYXVsdExhbmcodGhpcy5vcHRpb25zLmdldCgnZGVmYXVsdExhbmd1YWdlJywgJ2VuJykpO1xuICAgIHRoaXMubmd4VHJhbnNsYXRlLnVzZShsYW5nKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy51aS5zdGF0ZSQubmV4dCh7IC4uLnRoaXMudWkuc3RhdGUsIGxhbmcgfSk7XG4gICAgfSk7XG5cbiAgICB0aGlzLmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5sYW5nID0gbGFuZztcbiAgfVxuXG4gIC8qKlxuICAgKiBGaW5kcyB0aGUgZmlyc3Qgc3VwcG9ydGVkIGxhbmd1YWdlXG4gICAqL1xuICBmaXJzdFN1cHBvcnRlZExhbmd1YWdlKCkge1xuICAgIGNvbnN0IGxhbmd1YWdlcyA9IFt0aGlzLnF1ZXJ5U3RyaW5nTGFuZygpLCB0aGlzLmxvY2FsU3RvcmFnZUxhbmcoKV1cbiAgICAgIC5jb25jYXQoW3RoaXMub3B0aW9ucy5nZXQoJ2RlZmF1bHRMYW5ndWFnZScpXSlcbiAgICAgIC5jb25jYXQodGhpcy5icm93c2VyTGFuZ3MoKSlcbiAgICAgIC5jb25jYXQoWydlbiddKVxuICAgICAgLmZpbHRlcihCb29sZWFuKVxuICAgICAgLm1hcChsYW5nID0+IGxhbmcudG9Mb3dlckNhc2UoKSk7XG5cbiAgICBjb25zdCBwcmVmZXJyZWRMYW5ndWFnZSA9IGxhbmd1YWdlcy5maW5kKGxhbmcgPT4gdGhpcy5nZXRTdXBwb3J0ZWQobGFuZykpO1xuICAgIHJldHVybiB0aGlzLmdldFN1cHBvcnRlZChwcmVmZXJyZWRMYW5ndWFnZSk7XG4gIH1cblxuICAvKipcbiAgICogQ29udmVydHMgYSBpc28gbGFuZ3VhZ2UgY29kZSB0byBhIFBPIGxhbmd1YWdlIGNvZGUgKGUuZy4gZGUtZGUgZ2V0cyBkZV9kZSkuXG4gICAqIEBwYXJhbSBsYW5nIFRoZSBpc28gbGFuZ3VhZ2UgY29kZS5cbiAgICovXG4gIGNvbnZlcnRUb0xhbmd1YWdlQ29kZVBPKGxhbmc6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3Qgc2VwID0gbGFuZy5pbmRleE9mKCctJykgPiAtMSA/ICctJyA6IHRoaXMuREVGQVVMVF9TRVBBUkFUT1I7XG4gICAgY29uc3QgW2xhbmdNYWluLCBsYW5nU3BlY2lmaWNdID0gbGFuZy5zcGxpdChzZXApO1xuICAgIGNvbnN0IGxhbmdMYXN0ID0gbGFuZ1NwZWNpZmljID8gYCR7dGhpcy5ERUZBVUxUX1NFUEFSQVRPUn0ke2xhbmdTcGVjaWZpY31gIDogJyc7XG4gICAgcmV0dXJuIGAke2xhbmdNYWlufSR7bGFuZ0xhc3R9YDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBsYW5ndWFnZSBpbiB0aGUgbmF0aXZlIGxhbmd1YWdlLlxuICAgKiBAcGFyYW0gbGFuZyBUaGUgbGFuZ3VhZ2UgdHdvLWxldHRlciBjb2RlLlxuICAgKiBAcmV0dXJuIFRoZSBuYXRpdmUgbmFtZS5cbiAgICovXG4gIGdldE5hdGl2ZUxhbmd1YWdlKGxhbmc6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgbGFuZ0RhdGEgPSAodGhpcy5sYW5nc0RldGFpbCB8fCB7fSlbbGFuZ10gfHwge307XG4gICAgcmV0dXJuIGxhbmdEYXRhLm5hdGl2ZU5hbWUgfHwgbGFuZztcbiAgfVxuXG4gIHNhdmVJbkxvY2FsU3RvcmFnZShsYW5nOiBzdHJpbmcpIHtcbiAgICB3aW5kb3cubG9jYWxTdG9yYWdlLnNldEl0ZW0oVHJhbnNsYXRlU2VydmljZS5TQVZFX0xBTkdVQUdFX0tFWSwgbGFuZyk7XG4gIH1cblxuICBnZXRTdXBwb3J0ZWQobG9jYWxlQ29kZTogc3RyaW5nKSB7XG4gICAgaWYgKCFsb2NhbGVDb2RlKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICBjb25zdCBsb2NhbGVDb2RlUGFyc2VkID0gdGhpcy5wYXJzZUxvY2FsZUNvZGUobG9jYWxlQ29kZSk7XG4gICAgY29uc3QgbG9jYWxlQ29kZXNQYXJzZWQgPSB0aGlzLmxhbmdzLm1hcChsYW5nID0+IHRoaXMucGFyc2VMb2NhbGVDb2RlKGxhbmcpKTtcbiAgICBjb25zdCBsYW5nQ291bnRyeUNvZGVNYXRjaCA9IGxvY2FsZUNvZGVzUGFyc2VkLmZpbmQoXG4gICAgICAoeyBsYW5nQ291bnRyeUNvZGUgfSkgPT4gbGFuZ0NvdW50cnlDb2RlID09PSBsb2NhbGVDb2RlUGFyc2VkLmxhbmdDb3VudHJ5Q29kZVxuICAgICk7XG4gICAgaWYgKGxhbmdDb3VudHJ5Q29kZU1hdGNoKSB7XG4gICAgICByZXR1cm4gbGFuZ0NvdW50cnlDb2RlTWF0Y2gubGFuZ0NvdW50cnlDb2RlO1xuICAgIH1cbiAgICBjb25zdCBsYW5nQ29kZU1hdGNoID0gbG9jYWxlQ29kZXNQYXJzZWQuZmluZChcbiAgICAgICh7IGxhbmdDb2RlIH0pID0+IGxhbmdDb2RlID09PSBsb2NhbGVDb2RlUGFyc2VkLmxhbmdDb2RlXG4gICAgKTtcbiAgICBpZiAobGFuZ0NvZGVNYXRjaCkge1xuICAgICAgcmV0dXJuIGxhbmdDb2RlTWF0Y2gubGFuZ0NvdW50cnlDb2RlO1xuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGxhbmd1YWdlIGZyb20gdGhlIHF1ZXJ5IHBhcmFtZXRlci5cbiAgICogQHJldHVybiBUaGUgbGFuZ3VhZ2UgdHdvLWxldHRlciBjb2RlLlxuICAgKi9cbiAgcXVlcnlTdHJpbmdMYW5nKCkge1xuICAgIHJldHVybiB0aGlzLmdldFF1ZXJ5UGFyYW1ldGVyKCdsYW5nJyk7XG4gIH1cblxuICBwcml2YXRlIHBhcnNlTG9jYWxlQ29kZShcbiAgICBsb2NhbGVDb2RlOiBzdHJpbmcsXG4gICAgb3V0cHV0U2VwYXJhdG9yID0gJ18nXG4gICk6IHsgbGFuZ0NvZGU6IHN0cmluZzsgbGFuZ0NvdW50cnlDb2RlOiBzdHJpbmcgfSB7XG4gICAgY29uc3QgbWF0Y2hlcyA9IGxvY2FsZUNvZGUubWF0Y2goL14oW2Etel17Mn0pKFtfLV0oW2Etel17Mn0pKT8kL2kpO1xuICAgIGlmICghbWF0Y2hlcykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgQ291bGQgbm90IHBhcnNlIGxvY2FsZSBjb2RlIFwiJHtsb2NhbGVDb2RlfVwiLCBtYWtlIHN1cmUgaXQncyBhIHR3by0gb3IgZm91ci1sZXR0ZXIgY29kZSAoY2FzZSBpbnNlbnNpdGl2ZSkgc2VwYXJhdGVkIHdpdGggXCJfXCIgb3IgXCItXCIuYFxuICAgICAgKTtcbiAgICB9XG4gICAgY29uc3QgbGFuZ0NvZGUgPSBtYXRjaGVzWzFdLnRvTG93ZXJDYXNlKCk7XG4gICAgY29uc3QgY291bnRyeUNvZGUgPSBtYXRjaGVzWzNdPy50b1VwcGVyQ2FzZSgpO1xuICAgIGNvbnN0IGxhbmdDb3VudHJ5Q29kZSA9IGAke2xhbmdDb2RlfSR7Y291bnRyeUNvZGUgPyBgJHtvdXRwdXRTZXBhcmF0b3J9JHtjb3VudHJ5Q29kZX1gIDogJyd9YDtcbiAgICByZXR1cm4geyBsYW5nQ29kZSwgbGFuZ0NvdW50cnlDb2RlIH07XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgbGFuZ3VhZ2UgZnJvbSBsb2NhbCBzdG9yYWdlLlxuICAgKiBAcmV0dXJuIFRoZSBsYW5ndWFnZSB0d28tbGV0dGVyIGNvZGUuXG4gICAqL1xuICBwcml2YXRlIGxvY2FsU3RvcmFnZUxhbmcoKSB7XG4gICAgcmV0dXJuIHdpbmRvdy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShUcmFuc2xhdGVTZXJ2aWNlLlNBVkVfTEFOR1VBR0VfS0VZKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIHdoaWNoIGxhbmd1YWdlIGlzIHNldCBpbiB0aGUgYnJvd3Nlci5cbiAgICogQHJldHVybiBUaGUgbGFuZ3VhZ2VzIHRoZSBicm93c2VyIHN1cHBvcnRzIGFzIHN0cmluZyBhcnJheS5cbiAgICovXG4gIHByaXZhdGUgYnJvd3NlckxhbmdzKCkge1xuICAgIGNvbnN0IHsgbmF2aWdhdG9yIH0gPSB3aW5kb3c7XG4gICAgY29uc3QgYnJvd3Nlckxhbmd1YWdlUHJvcGVydHlLZXlzID0gW1xuICAgICAgJ2xhbmd1YWdlcycsXG4gICAgICAnbGFuZ3VhZ2UnLFxuICAgICAgJ2Jyb3dzZXJMYW5ndWFnZScsXG4gICAgICAnc3lzdGVtTGFuZ3VhZ2UnLFxuICAgICAgJ3VzZXJMYW5ndWFnZSdcbiAgICBdO1xuICAgIHJldHVybiBicm93c2VyTGFuZ3VhZ2VQcm9wZXJ0eUtleXMucmVkdWNlKChsYW5ndWFnZXMsIHByb3BlcnR5KSA9PiB7XG4gICAgICBjb25zdCBwcm9wZXJ0eUxhbmd1YWdlcyA9IG5hdmlnYXRvcltwcm9wZXJ0eV07XG4gICAgICBpZiAodHlwZW9mIHByb3BlcnR5TGFuZ3VhZ2VzID09PSAnc3RyaW5nJykge1xuICAgICAgICBsYW5ndWFnZXMucHVzaChwcm9wZXJ0eUxhbmd1YWdlcyk7XG4gICAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkocHJvcGVydHlMYW5ndWFnZXMpKSB7XG4gICAgICAgIGxhbmd1YWdlcyA9IGxhbmd1YWdlcy5jb25jYXQocHJvcGVydHlMYW5ndWFnZXMpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGxhbmd1YWdlcztcbiAgICB9LCBbXSk7XG4gIH1cblxuICBwcml2YXRlIGdldFF1ZXJ5UGFyYW1ldGVyKHF1ZXJ5S2V5KSB7XG4gICAgLy8gVE9ETzogcmVwbGFjZSB0aGlzIHdpdGggVVJMU2VhcmNoUGFyYW1zLCBpZSAxMSBzdGlsbCBkb2Vzbid0IHN1cHBvcnQgOigpXG4gICAgY29uc3QgcXVlcnkgPSB3aW5kb3cubG9jYXRpb24uc2VhcmNoLnN1YnN0cmluZygxKTtcbiAgICBsZXQgcmVzdWx0O1xuICAgIHF1ZXJ5LnNwbGl0KCcmJykuZmluZChwYWlyID0+IHtcbiAgICAgIGNvbnN0IFtrZXksIHZhbHVlXSA9IHBhaXIuc3BsaXQoJz0nKTtcbiAgICAgIGlmIChrZXkgPT09IHF1ZXJ5S2V5KSB7XG4gICAgICAgIHJlc3VsdCA9IHZhbHVlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9KTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgbG9jYWxlIGZvciBuZ3gtYm9vdHN0cmFwLlxuICAgKiBAcGFyYW0gbGFuZyBBIHR3by1sZXR0ZXIgbGFuZ3VhZ2UgY29kZS5cbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgc2V0QnNMb2NhbGUobGFuZykge1xuICAgIHN3aXRjaCAobGFuZykge1xuICAgICAgY2FzZSAnZGUnOiB7XG4gICAgICAgIGRlZmluZUxvY2FsZShsYW5nLCBkZUxvY2FsZSk7XG4gICAgICAgIHRoaXMuYnNMb2NhbGVTZXJ2aWNlLnVzZShsYW5nKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdlbic6IHtcbiAgICAgICAgLy8gJ2VuLWdiJyBpcyBjcmVhdGVkIGJlY2F1c2Ugb3ZlcndyaXRpbmcgZGVmYXVsdCAnZW4nIGJyZWFrcyBkYXRlLXBpY2tlciBzb21laG93XG4gICAgICAgIGRlZmluZUxvY2FsZSgnZW4tZ2InLCBlbkdiTG9jYWxlKTtcbiAgICAgICAgdGhpcy5ic0xvY2FsZVNlcnZpY2UudXNlKCdlbi1nYicpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ2VzJzoge1xuICAgICAgICBkZWZpbmVMb2NhbGUobGFuZywgZXNMb2NhbGUpO1xuICAgICAgICB0aGlzLmJzTG9jYWxlU2VydmljZS51c2UobGFuZyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAnZnInOiB7XG4gICAgICAgIGRlZmluZUxvY2FsZShsYW5nLCBmckxvY2FsZSk7XG4gICAgICAgIHRoaXMuYnNMb2NhbGVTZXJ2aWNlLnVzZShsYW5nKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdqYSc6IHtcbiAgICAgICAgZGVmaW5lTG9jYWxlKGxhbmcsIGphTG9jYWxlKTtcbiAgICAgICAgdGhpcy5ic0xvY2FsZVNlcnZpY2UudXNlKGxhbmcpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ2tvJzoge1xuICAgICAgICBkZWZpbmVMb2NhbGUobGFuZywga29Mb2NhbGUpO1xuICAgICAgICB0aGlzLmJzTG9jYWxlU2VydmljZS51c2UobGFuZyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAnbmwnOiB7XG4gICAgICAgIGRlZmluZUxvY2FsZShsYW5nLCBubExvY2FsZSk7XG4gICAgICAgIHRoaXMuYnNMb2NhbGVTZXJ2aWNlLnVzZShsYW5nKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdwbCc6IHtcbiAgICAgICAgZGVmaW5lTG9jYWxlKGxhbmcsIHBsTG9jYWxlKTtcbiAgICAgICAgdGhpcy5ic0xvY2FsZVNlcnZpY2UudXNlKGxhbmcpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ3B0Jzoge1xuICAgICAgICBkZWZpbmVMb2NhbGUobGFuZywgcHRCckxvY2FsZSk7XG4gICAgICAgIHRoaXMuYnNMb2NhbGVTZXJ2aWNlLnVzZShsYW5nKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICd6aCc6IHtcbiAgICAgICAgZGVmaW5lTG9jYWxlKGxhbmcsIHpoQ25Mb2NhbGUpO1xuICAgICAgICB0aGlzLmJzTG9jYWxlU2VydmljZS51c2UobGFuZyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBkZWZpbmVMb2NhbGUoJ2VuLWdiJywgZW5HYkxvY2FsZSk7XG4gICAgICAgIHRoaXMuYnNMb2NhbGVTZXJ2aWNlLnVzZSgnZW4tZ2InKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ==
264
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9jb3JlL2kxOG4vdHJhbnNsYXRlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZ0JBQWdCLElBQUksbUJBQW1CLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM5RSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUNMLFlBQVksRUFDWixRQUFRLEVBQ1IsVUFBVSxFQUNWLFFBQVEsRUFDUixRQUFRLEVBQ1IsUUFBUSxFQUNSLFFBQVEsRUFDUixRQUFRLEVBQ1IsUUFBUSxFQUNSLFVBQVUsRUFDVixVQUFVLEVBQ1gsTUFBTSx1QkFBdUIsQ0FBQztBQUMvQixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7OztBQUUzRDs7R0FFRztBQUlILE1BQU0sT0FBTyxnQkFBZ0I7YUFDcEIsc0JBQWlCLEdBQUcsY0FBYyxBQUFqQixDQUFrQjtJQUMxQyxNQUFNLENBQUMsV0FBVztRQUNoQixPQUFPLE1BQU0sQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDekUsQ0FBQztJQUtELFlBQ1UsWUFBaUMs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QUMsQ0FBQztnQkFDN0IsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQy9CLE1BQU07WUFDUixDQUFDO1lBQ0QsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDO2dCQUNWLFlBQVksQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLENBQUM7Z0JBQy9CLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUMvQixNQUFNO1lBQ1IsQ0FBQztZQUNELEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQztnQkFDVixZQUFZLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxDQUFDO2dCQUMvQixJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDL0IsTUFBTTtZQUNSLENBQUM7WUFDRCxPQUFPLENBQUMsQ0FBQyxDQUFDO2dCQUNSLFlBQVksQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLENBQUM7Z0JBQ2xDLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3BDLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQzs4R0FqUVUsZ0JBQWdCLCtHQWFqQixRQUFRO2tIQWJQLGdCQUFnQixjQUZmLE1BQU07OzJGQUVQLGdCQUFnQjtrQkFINUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQWNJLE1BQU07MkJBQUMsUUFBUTs7MEJBQ2YsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERPQ1VNRU5ULCByZWdpc3RlckxvY2FsZURhdGEgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSBhcyBOZ3hUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBrZXlzIH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IE9wdGlvbnNTZXJ2aWNlIH0gZnJvbSAnLi4vY29tbW9uL29wdGlvbnMuc2VydmljZSc7XG5pbXBvcnQgeyBBcHBTdGF0ZVNlcnZpY2UgfSBmcm9tICcuLi9jb21tb24vdWktc3RhdGUuc2VydmljZSc7XG5pbXBvcnQgeyBnZXRBbmd1bGFyTG9jYWxlc0xhbmd1YWdlU3RyaW5nIH0gZnJvbSAnLi9pMThuLm1vZHVsZSc7XG5pbXBvcnQgeyBsb2FkTG9jYWxlIH0gZnJvbSAnLi9sb2FkLWxvY2FsZSc7XG5pbXBvcnQge1xuICBkZWZpbmVMb2NhbGUsXG4gIGRlTG9jYWxlLFxuICBlbkdiTG9jYWxlLFxuICBlc0xvY2FsZSxcbiAgZnJMb2NhbGUsXG4gIGphTG9jYWxlLFxuICBrb0xvY2FsZSxcbiAgbmxMb2NhbGUsXG4gIHBsTG9jYWxlLFxuICBwdEJyTG9jYWxlLFxuICB6aENuTG9jYWxlXG59IGZyb20gJ25neC1ib290c3RyYXAvY2hyb25vcyc7XG5pbXBvcnQgeyBCc0xvY2FsZVNlcnZpY2UgfSBmcm9tICduZ3gtYm9vdHN0cmFwL2RhdGVwaWNrZXInO1xuXG4vKipcbiAqIEEgc2VydmljZSB0byBtYW5hZ2UgdGhlIGxhbmd1YWdlIG9mIHRoZSBhcHBsaWNhdGlvbi5cbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgVHJhbnNsYXRlU2VydmljZSB7XG4gIHN0YXRpYyBTQVZFX0xBTkdVQUdFX0tFWSA9ICdjOHlfbGFuZ3VhZ2UnO1xuICBzdGF0aWMgZGVmYXVsdExhbmcoKSB7XG4gICAgcmV0dXJuIHdpbmRvdy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShUcmFuc2xhdGVTZXJ2aWNlLlNBVkVfTEFOR1VBR0VfS0VZKTtcbiAgfVxuICBsYW5nc0RldGFpbDogYW55ID0gdGhpcy5vcHRpb25zLmdldCgnbGFuZ3VhZ2VzJywge30pO1xuICBsYW5nczogYW55ID0ga2V5cyh0aGlzLmxhbmdzRGV0YWlsKS5maWx0ZXIoayA9PiB0aGlzLmxhbmdzRGV0YWlsW2tdKTtcbiAgcHJpdmF0ZSBERUZBVUxUX1NFUEFSQVRPUiA9ICdfJztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIG5neFRyYW5zbGF0ZTogTmd4VHJhbnNsYXRlU2VydmljZSxcbiAgICBwcml2YXRlIHVpOiBBcHBTdGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBvcHRpb25zOiBPcHRpb25zU2VydmljZSxcbiAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIGRvY3VtZW50OiBEb2N1bWVudCxcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIGJzTG9jYWxlU2VydmljZTogQnNMb2NhbGVTZXJ2aWNlXG4gICkge1xuICAgIGNvbnN0IHF1ZXJ5U3RyaW5nTGFuZyA9IHRoaXMucXVlcnlTdHJpbmdMYW5nKCk7XG4gICAgaWYgKHF1ZXJ5U3RyaW5nTGFuZykge1xuICAgICAgdGhpcy5zYXZlSW5Mb2NhbFN0b3JhZ2UocXVlcnlTdHJpbmdMYW5nKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU3dpdGNoZXMgdGhlIGFwcCB0byBnaXZlbiBsb2NhbGUgKGluY2wuIEFuZ3VsYXIsIEJvb3RzdHJhcCwgdHJhbnNsYXRpb25zKS5cbiAgICogQHBhcmFtIGxvY2FsZUNvZGUgVGhlIGxvY2FsZSBjb2RlLiBTdXBwb3J0ZWQgZm9ybWF0czpcbiAgICogLSB0d28tbGV0dGVyIGNvZGVzIGZvciBsYW5ndWFnZSBvbmx5LCBmb3IgZXhhbXBsZTogYGVuYCwgYGRlYFxuICAgKiAtIGZvdXItbGV0dGVyIGNvZGVzIGZvciBsYW5ndWFnZSBhbmQgY291bnRyeSwgc2VwYXJhdGVkIHdpdGggdW5kZXJzY29yZSBvciBkYXNoLCBmb3IgZXhhbXBsZTogYHpoX0NOYCwgYHpoX2NuYCwgYHpoLUNOYCwgYHpoLWNuYFxuICAgKi9cbiAgYXN5bmMgc3dpdGNoVG9MYW5ndWFnZShsb2NhbGVDb2RlOiBzdHJpbmcpIHtcbiAgICBjb25zdCB7IGxhbmdDb3VudHJ5Q29kZTogbmd4TG9jYWxlQ29kZSwgbGFuZ0NvZGU6IG5neExvY2FsZUNvZGVGYWxsYmFjayB9ID1cbiAgICAgIHRoaXMucGFyc2VMb2NhbGVDb2RlKGxvY2FsZUNvZGUsICctJyk7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMubG9hZExvY2FsZXMobmd4TG9jYWxlQ29kZSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgaWYgKG5neExvY2FsZUNvZGVGYWxsYmFjayAhPT0gbmd4TG9jYWxlQ29kZSkge1xuICAgICAgICBhd2FpdCB0aGlzLmxvYWRMb2NhbGVzKG5neExvY2FsZUNvZGVGYWxsYmFjayk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyBlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IHsgbGFuZ0NvZGU6IGJzTG9jYWxlQ29kZSwgbGFuZ0NvdW50cnlDb2RlOiBuZ3hUcmFuc2xhdGVMb2NhbGVDb2RlIH0gPVxuICAgICAgdGhpcy5wYXJzZUxvY2FsZUNvZGUobG9jYWxlQ29kZSk7XG4gICAgdGhpcy5zZXRCc0xvY2FsZShic0xvY2FsZUNvZGUpO1xuICAgIHRoaXMuc2V0TGFuZ3VhZ2Uobmd4VHJhbnNsYXRlTG9jYWxlQ29kZSk7XG4gIH1cblxuICBhc3luYyBsb2FkTG9jYWxlcyhtb2R1bGVMYW5nKSB7XG4gICAgY29uc3QgbW9kdWxlOiBhbnkgPSBhd2FpdCBsb2FkTG9jYWxlKGdldEFuZ3VsYXJMb2NhbGVzTGFuZ3VhZ2VTdHJpbmcobW9kdWxlTGFuZykpO1xuICAgIHJlZ2lzdGVyTG9jYWxlRGF0YShtb2R1bGUuZGVmYXVsdCk7XG4gIH1cblxuICBzZXRMYW5ndWFnZShsYW5nOiBzdHJpbmcpIHtcbiAgICB0aGlzLm5neFRyYW5zbGF0ZS5zZXREZWZhdWx0TGFuZyh0aGlzLm9wdGlvbnMuZ2V0KCdkZWZhdWx0TGFuZ3VhZ2UnLCAnZW4nKSk7XG4gICAgdGhpcy5uZ3hUcmFuc2xhdGUudXNlKGxhbmcpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLnVpLnN0YXRlJC5uZXh0KHsgLi4udGhpcy51aS5zdGF0ZSwgbGFuZyB9KTtcbiAgICB9KTtcblxuICAgIHRoaXMuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmxhbmcgPSBsYW5nO1xuICB9XG5cbiAgLyoqXG4gICAqIEZpbmRzIHRoZSBmaXJzdCBzdXBwb3J0ZWQgbGFuZ3VhZ2VcbiAgICovXG4gIGZpcnN0U3VwcG9ydGVkTGFuZ3VhZ2UoKSB7XG4gICAgY29uc3QgbGFuZ3VhZ2VzID0gW3RoaXMucXVlcnlTdHJpbmdMYW5nKCksIHRoaXMubG9jYWxTdG9yYWdlTGFuZygpXVxuICAgICAgLmNvbmNhdChbdGhpcy5vcHRpb25zLmdldCgnZGVmYXVsdExhbmd1YWdlJyldKVxuICAgICAgLmNvbmNhdCh0aGlzLmJyb3dzZXJMYW5ncygpKVxuICAgICAgLmNvbmNhdChbJ2VuJ10pXG4gICAgICAuZmlsdGVyKEJvb2xlYW4pXG4gICAgICAubWFwKGxhbmcgPT4gbGFuZy50b0xvd2VyQ2FzZSgpKTtcblxuICAgIGNvbnN0IHByZWZlcnJlZExhbmd1YWdlID0gbGFuZ3VhZ2VzLmZpbmQobGFuZyA9PiB0aGlzLmdldFN1cHBvcnRlZChsYW5nKSk7XG4gICAgcmV0dXJuIHRoaXMuZ2V0U3VwcG9ydGVkKHByZWZlcnJlZExhbmd1YWdlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0cyBhIGlzbyBsYW5ndWFnZSBjb2RlIHRvIGEgUE8gbGFuZ3VhZ2UgY29kZSAoZS5nLiBkZS1kZSBnZXRzIGRlX2RlKS5cbiAgICogQHBhcmFtIGxhbmcgVGhlIGlzbyBsYW5ndWFnZSBjb2RlLlxuICAgKi9cbiAgY29udmVydFRvTGFuZ3VhZ2VDb2RlUE8obGFuZzogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCBzZXAgPSBsYW5nLmluZGV4T2YoJy0nKSA+IC0xID8gJy0nIDogdGhpcy5ERUZBVUxUX1NFUEFSQVRPUjtcbiAgICBjb25zdCBbbGFuZ01haW4sIGxhbmdTcGVjaWZpY10gPSBsYW5nLnNwbGl0KHNlcCk7XG4gICAgY29uc3QgbGFuZ0xhc3QgPSBsYW5nU3BlY2lmaWMgPyBgJHt0aGlzLkRFRkFVTFRfU0VQQVJBVE9SfSR7bGFuZ1NwZWNpZmljfWAgOiAnJztcbiAgICByZXR1cm4gYCR7bGFuZ01haW59JHtsYW5nTGFzdH1gO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGxhbmd1YWdlIGluIHRoZSBuYXRpdmUgbGFuZ3VhZ2UuXG4gICAqIEBwYXJhbSBsYW5nIFRoZSBsYW5ndWFnZSB0d28tbGV0dGVyIGNvZGUuXG4gICAqIEByZXR1cm4gVGhlIG5hdGl2ZSBuYW1lLlxuICAgKi9cbiAgZ2V0TmF0aXZlTGFuZ3VhZ2UobGFuZzogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCBsYW5nRGF0YSA9ICh0aGlzLmxhbmdzRGV0YWlsIHx8IHt9KVtsYW5nXSB8fCB7fTtcbiAgICByZXR1cm4gbGFuZ0RhdGEubmF0aXZlTmFtZSB8fCBsYW5nO1xuICB9XG5cbiAgc2F2ZUluTG9jYWxTdG9yYWdlKGxhbmc6IHN0cmluZykge1xuICAgIHdpbmRvdy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbShUcmFuc2xhdGVTZXJ2aWNlLlNBVkVfTEFOR1VBR0VfS0VZLCBsYW5nKTtcbiAgfVxuXG4gIGdldFN1cHBvcnRlZChsb2NhbGVDb2RlOiBzdHJpbmcpIHtcbiAgICBpZiAoIWxvY2FsZUNvZGUpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGNvbnN0IGxvY2FsZUNvZGVQYXJzZWQgPSB0aGlzLnBhcnNlTG9jYWxlQ29kZShsb2NhbGVDb2RlKTtcbiAgICBjb25zdCBsb2NhbGVDb2Rlc1BhcnNlZCA9IHRoaXMubGFuZ3MubWFwKGxhbmcgPT4gdGhpcy5wYXJzZUxvY2FsZUNvZGUobGFuZykpO1xuICAgIGNvbnN0IGxhbmdDb3VudHJ5Q29kZU1hdGNoID0gbG9jYWxlQ29kZXNQYXJzZWQuZmluZChcbiAgICAgICh7IGxhbmdDb3VudHJ5Q29kZSB9KSA9PiBsYW5nQ291bnRyeUNvZGUgPT09IGxvY2FsZUNvZGVQYXJzZWQubGFuZ0NvdW50cnlDb2RlXG4gICAgKTtcbiAgICBpZiAobGFuZ0NvdW50cnlDb2RlTWF0Y2gpIHtcbiAgICAgIHJldHVybiBsYW5nQ291bnRyeUNvZGVNYXRjaC5sYW5nQ291bnRyeUNvZGU7XG4gICAgfVxuICAgIGNvbnN0IGxhbmdDb2RlTWF0Y2ggPSBsb2NhbGVDb2Rlc1BhcnNlZC5maW5kKFxuICAgICAgKHsgbGFuZ0NvZGUgfSkgPT4gbGFuZ0NvZGUgPT09IGxvY2FsZUNvZGVQYXJzZWQubGFuZ0NvZGVcbiAgICApO1xuICAgIGlmIChsYW5nQ29kZU1hdGNoKSB7XG4gICAgICByZXR1cm4gbGFuZ0NvZGVNYXRjaC5sYW5nQ291bnRyeUNvZGU7XG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgbGFuZ3VhZ2UgZnJvbSB0aGUgcXVlcnkgcGFyYW1ldGVyLlxuICAgKiBAcmV0dXJuIFRoZSBsYW5ndWFnZSB0d28tbGV0dGVyIGNvZGUuXG4gICAqL1xuICBxdWVyeVN0cmluZ0xhbmcoKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0UXVlcnlQYXJhbWV0ZXIoJ2xhbmcnKTtcbiAgfVxuXG4gIHByaXZhdGUgcGFyc2VMb2NhbGVDb2RlKFxuICAgIGxvY2FsZUNvZGU6IHN0cmluZyxcbiAgICBvdXRwdXRTZXBhcmF0b3IgPSAnXydcbiAgKTogeyBsYW5nQ29kZTogc3RyaW5nOyBsYW5nQ291bnRyeUNvZGU6IHN0cmluZyB9IHtcbiAgICAvLyAtIDIgbGV0dGVyIGxhbmd1YWdlIGNvZGVcbiAgICAvLyAtIG9wdGlvbmFsIHJlZ2lvbiBjb2RlIHRoYXQncyBlaXRoZXIgMiBsZXR0ZXJzIE9SIDMgZGlnaXRzXG4gICAgY29uc3QgbWF0Y2hlcyA9IGxvY2FsZUNvZGUubWF0Y2goL14oW2Etel17Mn0pKFtfLV0oW2Etel17Mn18WzAtOV17M30pKT8kL2kpO1xuICAgIGlmICghbWF0Y2hlcykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgQ291bGQgbm90IHBhcnNlIGxvY2FsZSBjb2RlIFwiJHtsb2NhbGVDb2RlfVwiLiBFeHBlY3RlZCBmb3JtYXQ6IGxhbmd1YWdlIGNvZGUgKDIgbGV0dGVycykgb3B0aW9uYWxseSBmb2xsb3dlZCBieSByZWdpb24gY29kZSAoMiBsZXR0ZXJzIG9yIDMgZGlnaXRzKSBzZXBhcmF0ZWQgd2l0aCBcIl9cIiBvciBcIi1cIiwgZS5nLiBcImVuLVVTXCIgb3IgXCJlcy00MTlcIi5gXG4gICAgICApO1xuICAgIH1cbiAgICBjb25zdCBsYW5nQ29kZSA9IG1hdGNoZXNbMV0udG9Mb3dlckNhc2UoKTtcbiAgICBjb25zdCByZWdpb25Db2RlID0gbWF0Y2hlc1szXT8udG9VcHBlckNhc2UoKTtcbiAgICBjb25zdCBsYW5nQ291bnRyeUNvZGUgPSBgJHtsYW5nQ29kZX0ke3JlZ2lvbkNvZGUgPyBgJHtvdXRwdXRTZXBhcmF0b3J9JHtyZWdpb25Db2RlfWAgOiAnJ31gO1xuICAgIHJldHVybiB7IGxhbmdDb2RlLCBsYW5nQ291bnRyeUNvZGUgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBsYW5ndWFnZSBmcm9tIGxvY2FsIHN0b3JhZ2UuXG4gICAqIEByZXR1cm4gVGhlIGxhbmd1YWdlIHR3by1sZXR0ZXIgY29kZS5cbiAgICovXG4gIHByaXZhdGUgbG9jYWxTdG9yYWdlTGFuZygpIHtcbiAgICByZXR1cm4gd2luZG93LmxvY2FsU3RvcmFnZS5nZXRJdGVtKFRyYW5zbGF0ZVNlcnZpY2UuU0FWRV9MQU5HVUFHRV9LRVkpO1xuICB9XG5cbiAgLyoqXG4gICAqIERldGVybWluZXMgd2hpY2ggbGFuZ3VhZ2UgaXMgc2V0IGluIHRoZSBicm93c2VyLlxuICAgKiBAcmV0dXJuIFRoZSBsYW5ndWFnZXMgdGhlIGJyb3dzZXIgc3VwcG9ydHMgYXMgc3RyaW5nIGFycmF5LlxuICAgKi9cbiAgcHJpdmF0ZSBicm93c2VyTGFuZ3MoKSB7XG4gICAgY29uc3QgeyBuYXZpZ2F0b3IgfSA9IHdpbmRvdztcbiAgICBjb25zdCBicm93c2VyTGFuZ3VhZ2VQcm9wZXJ0eUtleXMgPSBbXG4gICAgICAnbGFuZ3VhZ2VzJyxcbiAgICAgICdsYW5ndWFnZScsXG4gICAgICAnYnJvd3Nlckxhbmd1YWdlJyxcbiAgICAgICdzeXN0ZW1MYW5ndWFnZScsXG4gICAgICAndXNlckxhbmd1YWdlJ1xuICAgIF07XG4gICAgcmV0dXJuIGJyb3dzZXJMYW5ndWFnZVByb3BlcnR5S2V5cy5yZWR1Y2UoKGxhbmd1YWdlcywgcHJvcGVydHkpID0+IHtcbiAgICAgIGNvbnN0IHByb3BlcnR5TGFuZ3VhZ2VzID0gbmF2aWdhdG9yW3Byb3BlcnR5XTtcbiAgICAgIGlmICh0eXBlb2YgcHJvcGVydHlMYW5ndWFnZXMgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIGxhbmd1YWdlcy5wdXNoKHByb3BlcnR5TGFuZ3VhZ2VzKTtcbiAgICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShwcm9wZXJ0eUxhbmd1YWdlcykpIHtcbiAgICAgICAgbGFuZ3VhZ2VzID0gbGFuZ3VhZ2VzLmNvbmNhdChwcm9wZXJ0eUxhbmd1YWdlcyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gbGFuZ3VhZ2VzO1xuICAgIH0sIFtdKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0UXVlcnlQYXJhbWV0ZXIocXVlcnlLZXkpIHtcbiAgICAvLyBUT0RPOiByZXBsYWNlIHRoaXMgd2l0aCBVUkxTZWFyY2hQYXJhbXMsIGllIDExIHN0aWxsIGRvZXNuJ3Qgc3VwcG9ydCA6KClcbiAgICBjb25zdCBxdWVyeSA9IHdpbmRvdy5sb2NhdGlvbi5zZWFyY2guc3Vic3RyaW5nKDEpO1xuICAgIGxldCByZXN1bHQ7XG4gICAgcXVlcnkuc3BsaXQoJyYnKS5maW5kKHBhaXIgPT4ge1xuICAgICAgY29uc3QgW2tleSwgdmFsdWVdID0gcGFpci5zcGxpdCgnPScpO1xuICAgICAgaWYgKGtleSA9PT0gcXVlcnlLZXkpIHtcbiAgICAgICAgcmVzdWx0ID0gdmFsdWU7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0pO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyBsb2NhbGUgZm9yIG5neC1ib290c3RyYXAuXG4gICAqIEBwYXJhbSBsYW5nIEEgdHdvLWxldHRlciBsYW5ndWFnZSBjb2RlLlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSBzZXRCc0xvY2FsZShsYW5nKSB7XG4gICAgc3dpdGNoIChsYW5nKSB7XG4gICAgICBjYXNlICdkZSc6IHtcbiAgICAgICAgZGVmaW5lTG9jYWxlKGxhbmcsIGRlTG9jYWxlKTtcbiAgICAgICAgdGhpcy5ic0xvY2FsZVNlcnZpY2UudXNlKGxhbmcpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ2VuJzoge1xuICAgICAgICAvLyAnZW4tZ2InIGlzIGNyZWF0ZWQgYmVjYXVzZSBvdmVyd3JpdGluZyBkZWZhdWx0ICdlbicgYnJlYWtzIGRhdGUtcGlja2VyIHNvbWVob3dcbiAgICAgICAgZGVmaW5lTG9jYWxlKCdlbi1nYicsIGVuR2JMb2NhbGUpO1xuICAgICAgICB0aGlzLmJzTG9jYWxlU2VydmljZS51c2UoJ2VuLWdiJyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAnZXMnOiB7XG4gICAgICAgIGRlZmluZUxvY2FsZShsYW5nLCBlc0xvY2FsZSk7XG4gICAgICAgIHRoaXMuYnNMb2NhbGVTZXJ2aWNlLnVzZShsYW5nKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdmcic6IHtcbiAgICAgICAgZGVmaW5lTG9jYWxlKGxhbmcsIGZyTG9jYWxlKTtcbiAgICAgICAgdGhpcy5ic0xvY2FsZVNlcnZpY2UudXNlKGxhbmcpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ2phJzoge1xuICAgICAgICBkZWZpbmVMb2NhbGUobGFuZywgamFMb2NhbGUpO1xuICAgICAgICB0aGlzLmJzTG9jYWxlU2VydmljZS51c2UobGFuZyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAna28nOiB7XG4gICAgICAgIGRlZmluZUxvY2FsZShsYW5nLCBrb0xvY2FsZSk7XG4gICAgICAgIHRoaXMuYnNMb2NhbGVTZXJ2aWNlLnVzZShsYW5nKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdubCc6IHtcbiAgICAgICAgZGVmaW5lTG9jYWxlKGxhbmcsIG5sTG9jYWxlKTtcbiAgICAgICAgdGhpcy5ic0xvY2FsZVNlcnZpY2UudXNlKGxhbmcpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ3BsJzoge1xuICAgICAgICBkZWZpbmVMb2NhbGUobGFuZywgcGxMb2NhbGUpO1xuICAgICAgICB0aGlzLmJzTG9jYWxlU2VydmljZS51c2UobGFuZyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAncHQnOiB7XG4gICAgICAgIGRlZmluZUxvY2FsZShsYW5nLCBwdEJyTG9jYWxlKTtcbiAgICAgICAgdGhpcy5ic0xvY2FsZVNlcnZpY2UudXNlKGxhbmcpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ3poJzoge1xuICAgICAgICBkZWZpbmVMb2NhbGUobGFuZywgemhDbkxvY2FsZSk7XG4gICAgICAgIHRoaXMuYnNMb2NhbGVTZXJ2aWNlLnVzZShsYW5nKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGRlZmluZUxvY2FsZSgnZW4tZ2InLCBlbkdiTG9jYWxlKTtcbiAgICAgICAgdGhpcy5ic0xvY2FsZVNlcnZpY2UudXNlKCdlbi1nYicpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19
@@ -85,4 +85,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
85
85
  type: HostListener,
86
86
  args: ['click', ['$event.target']]
87
87
  }] } });
88
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1pdGVtLWFjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9jb3JlL2xpc3QtZ3JvdXAvbGlzdC1pdGVtLWFjdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9jb3JlL2xpc3QtZ3JvdXAvbGlzdC1pdGVtLWFjdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDdkMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDM0UsT0FBTyxFQUdMLCtCQUErQixFQUNoQyxNQUFNLGdEQUFnRCxDQUFDOzs7Ozs7QUFFeEQ7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBV0gsTUFBTSxPQUFPLHVCQUF1QjtJQW1DbEMsWUFBb0IsZ0JBQWtDO1FBQWxDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFsQnREOztXQUVHO1FBRUgsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQjs7O1dBR0c7UUFFSCxVQUFLLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztJQVF3QixDQUFDO0lBRTFEOztPQUVHO0lBRUgsT0FBTyxDQUFDLEtBQWtCO1FBQ3hCLE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUMzRSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDYixPQUFPO1FBQ1QsQ0FBQztRQUNELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxTQUFTLElBQUksZ0JBQWdCLENBQUM7UUFDN0UsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxPQUFPLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3hGLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNwRSwyRUFBMkU7UUFDM0UsTUFBTSxTQUFTLEdBQUcsVUFBVSxDQUMxQixJQUFJLENBQUMsc0JBQXNCLEVBQUUsSUFBSSxFQUNqQztZQUNFLEdBQUcsRUFBRSxPQUFPLENBQUMsT0FBTztZQUNwQixNQUFNO1NBQ1AsRUFDRCxDQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsRUFBRSxDQUFDLFNBQVMsSUFBSSxTQUFTLENBQ2pELENBQUM7UUFFRixJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUMzRCxDQUFDOzhHQTVEVSx1QkFBdUI7a0dBQXZCLHVCQUF1Qix1TkFQdkI7WUFDVDtnQkFDRSxPQUFPLEVBQUUsK0JBQStCO2dCQUN4QyxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHVCQUF1QixDQUFDO2FBQ3ZEO1NBQ0YsZ0lDekNILHlhQWtCQTs7MkZEeUJhLHVCQUF1QjtrQkFWbkMsU0FBUzsrQkFDRSxxQ0FBcUMsYUFFcEM7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLCtCQUErQjs0QkFDeEMsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsd0JBQXdCLENBQUM7eUJBQ3ZEO3FCQUNGO3FGQU9ELFFBQVE7c0JBRFAsU0FBUzt1QkFBQyxVQUFVLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQU94QyxLQUFLO3NCQURKLEtBQUs7Z0JBTU4sSUFBSTtzQkFESCxLQUFLO2dCQU1OLFFBQVE7c0JBRFAsS0FBSztnQkFPTixLQUFLO3NCQURKLE1BQU07Z0JBZVAsT0FBTztzQkFETixZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLGVBQWUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBmb3J3YXJkUmVmLFxuICBIb3N0TGlzdGVuZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGFzc2lnbldpdGggfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgR2FpbnNpZ2h0U2VydmljZSB9IGZyb20gJy4uL3Byb2R1Y3QtZXhwZXJpZW5jZS9nYWluc2lnaHQuc2VydmljZSc7XG5pbXBvcnQge1xuICBQcm9kdWN0RXhwZXJpZW5jZUV2ZW50LFxuICBQcm9kdWN0RXhwZXJpZW5jZUV2ZW50U291cmNlLFxuICBQUk9EVUNUX0VYUEVSSUVOQ0VfRVZFTlRfU09VUkNFXG59IGZyb20gJy4uL3Byb2R1Y3QtZXhwZXJpZW5jZS9wcm9kdWN0LWV4cGVyaWVuY2UubW9kZWwnO1xuXG4vKipcbiAqIEFjdGlvbnMgYXJlIGZ1bmN0aW9ucyB0aGF0IGNhbiBiZSBleGVjdXRlZCBvbiB0aGVcbiAqIGN1cnJlbnQgbGlzdCBpdGVtLiBUaGV5IGFyZSBkaXNwbGF5ZWQgbmV4dCB0byB0aGVcbiAqIGl0ZW0gYW5kIGNhbiBiZSBncm91cGVkIGluIGEgZHJvcGRvd24uXG4gKlxuICogYGBgaHRtbFxuICogPGM4eS1saT5cbiAqICAgPGM4eS1saS1hY3Rpb24gKGNsaWNrKT1cImRlbGV0ZURldmljZShkZXZpY2UuaWQpXCIgaWNvbj1cInRpbWVzXCI+XG4gKiAgICAgRGVsZXRlXG4gKiAgIDwvYzh5LWxpLWFjdGlvbj5cbiAqICAgPGM4eS1saS1hY3Rpb24gKGNsaWNrKT1cIihmYWxzZSlcIiBpY29uPVwicm9ja2V0XCI+XG4gKiAgICAgTGF1bmNoIHRvIHNwYWNlXG4gKiAgIDwvYzh5LWxpLWFjdGlvbj5cbiAqIDwvYzh5LWxpPlxuICogYGBgXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS1saXN0LWl0ZW0tYWN0aW9uLCBjOHktbGktYWN0aW9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2xpc3QtaXRlbS1hY3Rpb24uY29tcG9uZW50Lmh0bWwnLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBQUk9EVUNUX0VYUEVSSUVOQ0VfRVZFTlRfU09VUkNFLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gTGlzdEl0ZW1BY3Rpb25Db21wb25lbnQpXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIExpc3RJdGVtQWN0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgUHJvZHVjdEV4cGVyaWVuY2VFdmVudFNvdXJjZSB7XG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBAVmlld0NoaWxkKCd0ZW1wbGF0ZScsIHsgc3RhdGljOiBmYWxzZSB9KVxuICB0ZW1wbGF0ZTogYW55O1xuICAvKipcbiAgICogVGhlIGxhYmVsIHRvIGRpc3BsYXkgKHlvdSBjYW4gYWx0ZXJuYXRpdmVseSB1c2VcbiAgICogY29udGVudCBwcm9qZWN0aW9uIHRvIGRpc3BsYXkgdGhlIGxhYmVsKS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIGxhYmVsOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgaWNvbiB0byB1c2UuXG4gICAqL1xuICBASW5wdXQoKVxuICBpY29uOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBEZWZpbmVzIGlmIHRoZSBhY3Rpb24gaXMgZGlzYWJsZWQgb3Igbm90LlxuICAgKi9cbiAgQElucHV0KClcbiAgZGlzYWJsZWQgPSBmYWxzZTtcbiAgLyoqXG4gICAqIEFuIEV2ZW50RW1pdHRlciB0byBkZXRlcm1pbmUgd2hhdCB0byBkbyBpZiB0aGVcbiAgICogYWN0aW9uIGlzIHRyaWdnZXJlZC5cbiAgICovXG4gIEBPdXRwdXQoKVxuICBjbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAvKipcbiAgICogVGhlIHByb2R1Y3QgZXhwZXJpZW5jZSBldmVudCB0byBiZSB0cmlnZ2VyZWRcbiAgICogd2hlbiB0aGUgYWN0aW9uIGlzIGNsaWNrZWQuXG4gICAqL1xuICBwcm9kdWN0RXhwZXJpZW5jZUV2ZW50OiBQcm9kdWN0RXhwZXJpZW5jZUV2ZW50O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZ2FpbnNpZ2h0U2VydmljZTogR2FpbnNpZ2h0U2VydmljZSkge31cblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgQEhvc3RMaXN0ZW5lcignY2xpY2snLCBbJyRldmVudC50YXJnZXQnXSlcbiAgb25DbGljayhldmVudDogSFRNTEVsZW1lbnQpIHtcbiAgICBjb25zdCBlbGVtZW50ID0gZXZlbnQuY2xvc2VzdCgnW3RpdGxlXScpIHx8IGV2ZW50LmNsb3Nlc3QoJ1t1aWItdG9vbHRpcF0nKTtcbiAgICBpZiAoIWVsZW1lbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgZXZlbnROYW1lID0gdGhpcy5wcm9kdWN0RXhwZXJpZW5jZUV2ZW50Py5ldmVudE5hbWUgfHwgJ2xpc3RJdGVtQWN0aW9uJztcbiAgICBjb25zdCBhY3Rpb25OYW1lID0gZWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3RpdGxlJykgfHwgZWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3VpYi10b29sdGlwJyk7XG4gICAgY29uc3QgYWN0aW9uID0gdGhpcy5nYWluc2lnaHRTZXJ2aWNlLnRyYW5zbGF0ZVRvRW5nbGlzaChhY3Rpb25OYW1lKTtcbiAgICAvLyBBc3NpZ24gdXJsIGFuZCBhY3Rpb24gdG8gZXZlbnQgZGF0YSBvbmx5IGlmIHRoZXkgYXJlIG5vdCBhbHJlYWR5IGRlZmluZWRcbiAgICBjb25zdCBldmVudERhdGEgPSBhc3NpZ25XaXRoKFxuICAgICAgdGhpcy5wcm9kdWN0RXhwZXJpZW5jZUV2ZW50Py5kYXRhLFxuICAgICAge1xuICAgICAgICB1cmw6IGVsZW1lbnQuYmFzZVVSSSxcbiAgICAgICAgYWN0aW9uXG4gICAgICB9LFxuICAgICAgKHRhcmdldFZhbCwgc291cmNlVmFsKSA9PiBzb3VyY2VWYWwgPz8gdGFyZ2V0VmFsXG4gICAgKTtcblxuICAgIHRoaXMuZ2FpbnNpZ2h0U2VydmljZS50cmlnZ2VyRXZlbnQoZXZlbnROYW1lLCBldmVudERhdGEpO1xuICB9XG59XG4iLCI8bmctdGVtcGxhdGUgI3RlbXBsYXRlPlxuICA8bGk+XG4gICAgPGJ1dHRvblxuICAgICAgdGl0bGU9XCJ7eyBsYWJlbCB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAoY2xpY2spPVwiY2xpY2suZW1pdCgkZXZlbnQpXCJcbiAgICAgIGRhdGEtY3k9XCJjOHktbGktYWN0aW9uLS1idG5cIlxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICA+XG4gICAgICA8aVxuICAgICAgICBbYzh5SWNvbl09XCJpY29uXCJcbiAgICAgICAgKm5nSWY9XCJpY29uXCJcbiAgICAgID48L2k+XG4gICAgICAmbmJzcDtcbiAgICAgIDxzcGFuICpuZ0lmPVwibGFiZWxcIj57eyBsYWJlbCB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8L2J1dHRvbj5cbiAgPC9saT5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
88
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1pdGVtLWFjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9jb3JlL2xpc3QtZ3JvdXAvbGlzdC1pdGVtLWFjdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9jb3JlL2xpc3QtZ3JvdXAvbGlzdC1pdGVtLWFjdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDdkMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDM0UsT0FBTyxFQUdMLCtCQUErQixFQUNoQyxNQUFNLGdEQUFnRCxDQUFDOzs7Ozs7QUFHeEQ7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBV0gsTUFBTSxPQUFPLHVCQUF1QjtJQW1DbEMsWUFBb0IsZ0JBQWtDO1FBQWxDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFsQnREOztXQUVHO1FBRUgsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQjs7O1dBR0c7UUFFSCxVQUFLLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztJQVF3QixDQUFDO0lBRTFEOztPQUVHO0lBRUgsT0FBTyxDQUFDLEtBQWtCO1FBQ3hCLE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUMzRSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDYixPQUFPO1FBQ1QsQ0FBQztRQUNELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxTQUFTLElBQUksZ0JBQWdCLENBQUM7UUFDN0UsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxPQUFPLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3hGLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNwRSwyRUFBMkU7UUFDM0UsTUFBTSxTQUFTLEdBQUcsVUFBVSxDQUMxQixJQUFJLENBQUMsc0JBQXNCLEVBQUUsSUFBSSxFQUNqQztZQUNFLEdBQUcsRUFBRSxPQUFPLENBQUMsT0FBTztZQUNwQixNQUFNO1NBQ1AsRUFDRCxDQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsRUFBRSxDQUFDLFNBQVMsSUFBSSxTQUFTLENBQ2pELENBQUM7UUFFRixJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUMzRCxDQUFDOzhHQTVEVSx1QkFBdUI7a0dBQXZCLHVCQUF1Qix1TkFQdkI7WUFDVDtnQkFDRSxPQUFPLEVBQUUsK0JBQStCO2dCQUN4QyxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHVCQUF1QixDQUFDO2FBQ3ZEO1NBQ0YsZ0lDMUNILHlhQWtCQTs7MkZEMEJhLHVCQUF1QjtrQkFWbkMsU0FBUzsrQkFDRSxxQ0FBcUMsYUFFcEM7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLCtCQUErQjs0QkFDeEMsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsd0JBQXdCLENBQUM7eUJBQ3ZEO3FCQUNGO3FGQU9ELFFBQVE7c0JBRFAsU0FBUzt1QkFBQyxVQUFVLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQU94QyxLQUFLO3NCQURKLEtBQUs7Z0JBTU4sSUFBSTtzQkFESCxLQUFLO2dCQU1OLFFBQVE7c0JBRFAsS0FBSztnQkFPTixLQUFLO3NCQURKLE1BQU07Z0JBZVAsT0FBTztzQkFETixZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLGVBQWUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBmb3J3YXJkUmVmLFxuICBIb3N0TGlzdGVuZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGFzc2lnbldpdGggfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgR2FpbnNpZ2h0U2VydmljZSB9IGZyb20gJy4uL3Byb2R1Y3QtZXhwZXJpZW5jZS9nYWluc2lnaHQuc2VydmljZSc7XG5pbXBvcnQge1xuICBQcm9kdWN0RXhwZXJpZW5jZUV2ZW50LFxuICBQcm9kdWN0RXhwZXJpZW5jZUV2ZW50U291cmNlLFxuICBQUk9EVUNUX0VYUEVSSUVOQ0VfRVZFTlRfU09VUkNFXG59IGZyb20gJy4uL3Byb2R1Y3QtZXhwZXJpZW5jZS9wcm9kdWN0LWV4cGVyaWVuY2UubW9kZWwnO1xuaW1wb3J0IHsgU3VwcG9ydGVkSWNvbnNTdWdnZXN0aW9ucyB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMvaWNvbi1zZWxlY3Rvci9pY29ucyc7XG5cbi8qKlxuICogQWN0aW9ucyBhcmUgZnVuY3Rpb25zIHRoYXQgY2FuIGJlIGV4ZWN1dGVkIG9uIHRoZVxuICogY3VycmVudCBsaXN0IGl0ZW0uIFRoZXkgYXJlIGRpc3BsYXllZCBuZXh0IHRvIHRoZVxuICogaXRlbSBhbmQgY2FuIGJlIGdyb3VwZWQgaW4gYSBkcm9wZG93bi5cbiAqXG4gKiBgYGBodG1sXG4gKiA8Yzh5LWxpPlxuICogICA8Yzh5LWxpLWFjdGlvbiAoY2xpY2spPVwiZGVsZXRlRGV2aWNlKGRldmljZS5pZClcIiBpY29uPVwidGltZXNcIj5cbiAqICAgICBEZWxldGVcbiAqICAgPC9jOHktbGktYWN0aW9uPlxuICogICA8Yzh5LWxpLWFjdGlvbiAoY2xpY2spPVwiKGZhbHNlKVwiIGljb249XCJyb2NrZXRcIj5cbiAqICAgICBMYXVuY2ggdG8gc3BhY2VcbiAqICAgPC9jOHktbGktYWN0aW9uPlxuICogPC9jOHktbGk+XG4gKiBgYGBcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYzh5LWxpc3QtaXRlbS1hY3Rpb24sIGM4eS1saS1hY3Rpb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vbGlzdC1pdGVtLWFjdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IFBST0RVQ1RfRVhQRVJJRU5DRV9FVkVOVF9TT1VSQ0UsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBMaXN0SXRlbUFjdGlvbkNvbXBvbmVudClcbiAgICB9XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgTGlzdEl0ZW1BY3Rpb25Db21wb25lbnQgaW1wbGVtZW50cyBQcm9kdWN0RXhwZXJpZW5jZUV2ZW50U291cmNlIHtcbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIEBWaWV3Q2hpbGQoJ3RlbXBsYXRlJywgeyBzdGF0aWM6IGZhbHNlIH0pXG4gIHRlbXBsYXRlOiBhbnk7XG4gIC8qKlxuICAgKiBUaGUgbGFiZWwgdG8gZGlzcGxheSAoeW91IGNhbiBhbHRlcm5hdGl2ZWx5IHVzZVxuICAgKiBjb250ZW50IHByb2plY3Rpb24gdG8gZGlzcGxheSB0aGUgbGFiZWwpLlxuICAgKi9cbiAgQElucHV0KClcbiAgbGFiZWw6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBpY29uIHRvIHVzZS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIGljb246IFN1cHBvcnRlZEljb25zU3VnZ2VzdGlvbnM7XG4gIC8qKlxuICAgKiBEZWZpbmVzIGlmIHRoZSBhY3Rpb24gaXMgZGlzYWJsZWQgb3Igbm90LlxuICAgKi9cbiAgQElucHV0KClcbiAgZGlzYWJsZWQgPSBmYWxzZTtcbiAgLyoqXG4gICAqIEFuIEV2ZW50RW1pdHRlciB0byBkZXRlcm1pbmUgd2hhdCB0byBkbyBpZiB0aGVcbiAgICogYWN0aW9uIGlzIHRyaWdnZXJlZC5cbiAgICovXG4gIEBPdXRwdXQoKVxuICBjbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAvKipcbiAgICogVGhlIHByb2R1Y3QgZXhwZXJpZW5jZSBldmVudCB0byBiZSB0cmlnZ2VyZWRcbiAgICogd2hlbiB0aGUgYWN0aW9uIGlzIGNsaWNrZWQuXG4gICAqL1xuICBwcm9kdWN0RXhwZXJpZW5jZUV2ZW50OiBQcm9kdWN0RXhwZXJpZW5jZUV2ZW50O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZ2FpbnNpZ2h0U2VydmljZTogR2FpbnNpZ2h0U2VydmljZSkge31cblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgQEhvc3RMaXN0ZW5lcignY2xpY2snLCBbJyRldmVudC50YXJnZXQnXSlcbiAgb25DbGljayhldmVudDogSFRNTEVsZW1lbnQpIHtcbiAgICBjb25zdCBlbGVtZW50ID0gZXZlbnQuY2xvc2VzdCgnW3RpdGxlXScpIHx8IGV2ZW50LmNsb3Nlc3QoJ1t1aWItdG9vbHRpcF0nKTtcbiAgICBpZiAoIWVsZW1lbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgZXZlbnROYW1lID0gdGhpcy5wcm9kdWN0RXhwZXJpZW5jZUV2ZW50Py5ldmVudE5hbWUgfHwgJ2xpc3RJdGVtQWN0aW9uJztcbiAgICBjb25zdCBhY3Rpb25OYW1lID0gZWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3RpdGxlJykgfHwgZWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3VpYi10b29sdGlwJyk7XG4gICAgY29uc3QgYWN0aW9uID0gdGhpcy5nYWluc2lnaHRTZXJ2aWNlLnRyYW5zbGF0ZVRvRW5nbGlzaChhY3Rpb25OYW1lKTtcbiAgICAvLyBBc3NpZ24gdXJsIGFuZCBhY3Rpb24gdG8gZXZlbnQgZGF0YSBvbmx5IGlmIHRoZXkgYXJlIG5vdCBhbHJlYWR5IGRlZmluZWRcbiAgICBjb25zdCBldmVudERhdGEgPSBhc3NpZ25XaXRoKFxuICAgICAgdGhpcy5wcm9kdWN0RXhwZXJpZW5jZUV2ZW50Py5kYXRhLFxuICAgICAge1xuICAgICAgICB1cmw6IGVsZW1lbnQuYmFzZVVSSSxcbiAgICAgICAgYWN0aW9uXG4gICAgICB9LFxuICAgICAgKHRhcmdldFZhbCwgc291cmNlVmFsKSA9PiBzb3VyY2VWYWwgPz8gdGFyZ2V0VmFsXG4gICAgKTtcblxuICAgIHRoaXMuZ2FpbnNpZ2h0U2VydmljZS50cmlnZ2VyRXZlbnQoZXZlbnROYW1lLCBldmVudERhdGEpO1xuICB9XG59XG4iLCI8bmctdGVtcGxhdGUgI3RlbXBsYXRlPlxuICA8bGk+XG4gICAgPGJ1dHRvblxuICAgICAgdGl0bGU9XCJ7eyBsYWJlbCB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAoY2xpY2spPVwiY2xpY2suZW1pdCgkZXZlbnQpXCJcbiAgICAgIGRhdGEtY3k9XCJjOHktbGktYWN0aW9uLS1idG5cIlxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICA+XG4gICAgICA8aVxuICAgICAgICBbYzh5SWNvbl09XCJpY29uXCJcbiAgICAgICAgKm5nSWY9XCJpY29uXCJcbiAgICAgID48L2k+XG4gICAgICAmbmJzcDtcbiAgICAgIDxzcGFuICpuZ0lmPVwibGFiZWxcIj57eyBsYWJlbCB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8L2J1dHRvbj5cbiAgPC9saT5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -25,4 +25,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
25
25
  }], status: [{
26
26
  type: Input
27
27
  }] } });
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1pdGVtLWljb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vY29yZS9saXN0LWdyb3VwL2xpc3QtaXRlbS1pY29uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL2NvcmUvbGlzdC1ncm91cC9saXN0LWl0ZW0taWNvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQUVqRDs7Ozs7Ozs7R0FRRztBQVFILE1BQU0sT0FBTyxxQkFBcUI7OEdBQXJCLHFCQUFxQjtrR0FBckIscUJBQXFCLHFLQ2xCbEMsMkZBQ3lCOzsyRkRpQloscUJBQXFCO2tCQVBqQyxTQUFTOytCQUNFLGlDQUFpQyxRQUVyQzt3QkFDSixLQUFLLEVBQUUsc0JBQXNCO3FCQUM5Qjs4QkFPRCxJQUFJO3NCQURILEtBQUs7Z0JBT04sTUFBTTtzQkFETCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKipcbiAqIEFuIGljb24gdG8gZGlzcGxheSBvbiBhIGxpc3QgaXRlbS4gVXNlIGl0IHdpdGggY29udGVudCBwcm9qZWN0aW9uLlxuICpcbiAqIGBgYGh0bWxcbiAqIDxjOHktbGk+XG4gKiAgIDxjOHktbGktaWNvbj1cInJvY2tldFwiPjwvYzh5LWxpLWljb24+XG4gKiA8L2M4eS1saT5cbiAqIGBgYFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjOHktbGlzdC1pdGVtLWljb24sIGM4eS1saS1pY29uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2xpc3QtaXRlbS1pY29uLmNvbXBvbmVudC5odG1sJyxcbiAgaG9zdDoge1xuICAgIGNsYXNzOiAnYzh5LWxpc3RfX2l0ZW1fX2ljb24nXG4gIH1cbn0pXG5leHBvcnQgY2xhc3MgTGlzdEl0ZW1JY29uQ29tcG9uZW50IHtcbiAgLyoqXG4gICAqIFRoZSBpY29uIG5hbWUgcGFzc2VkIHRvIHRoZSBgYzh5SWNvbmAgZGlyZWN0aXZlLlxuICAgKi9cbiAgQElucHV0KClcbiAgaWNvbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIHN0YXR1cyB0byBjaGFuZ2UgdGhlIGNvbG9yIG9mIHRoZSBpY29uLlxuICAgKi9cbiAgQElucHV0KClcbiAgc3RhdHVzPzpcbiAgICB8ICdzdGF0dXNPaydcbiAgICB8ICdzdGF0dXNVbmtub3duJ1xuICAgIHwgJ3N0YXR1c0FsZXJ0J1xuICAgIHwgJ3N0YXR1c05vaydcbiAgICB8ICdzdGF0dXMgY3JpdGljYWwnXG4gICAgfCAnc3RhdHVzIHdhcm5pbmcnXG4gICAgfCAnc3RhdHVzIG1pbm9yJ1xuICAgIHwgJ3N0YXR1cyBtYWpvcic7XG59XG4iLCI8aSBbYzh5SWNvbl09XCJpY29uXCIgW25nQ2xhc3NdPVwic3RhdHVzXCIgKm5nSWY9XCJpY29uXCI+PC9pPlxuPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PiJdfQ==
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1pdGVtLWljb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vY29yZS9saXN0LWdyb3VwL2xpc3QtaXRlbS1pY29uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL2NvcmUvbGlzdC1ncm91cC9saXN0LWl0ZW0taWNvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQUdqRDs7Ozs7Ozs7R0FRRztBQVFILE1BQU0sT0FBTyxxQkFBcUI7OEdBQXJCLHFCQUFxQjtrR0FBckIscUJBQXFCLHFLQ25CbEMsMkZBQ3lCOzsyRkRrQloscUJBQXFCO2tCQVBqQyxTQUFTOytCQUNFLGlDQUFpQyxRQUVyQzt3QkFDSixLQUFLLEVBQUUsc0JBQXNCO3FCQUM5Qjs4QkFPRCxJQUFJO3NCQURILEtBQUs7Z0JBT04sTUFBTTtzQkFETCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3VwcG9ydGVkSWNvbnNTdWdnZXN0aW9ucyB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMvaWNvbi1zZWxlY3Rvci9pY29ucyc7XG5cbi8qKlxuICogQW4gaWNvbiB0byBkaXNwbGF5IG9uIGEgbGlzdCBpdGVtLiBVc2UgaXQgd2l0aCBjb250ZW50IHByb2plY3Rpb24uXG4gKlxuICogYGBgaHRtbFxuICogPGM4eS1saT5cbiAqICAgPGM4eS1saS1pY29uPVwicm9ja2V0XCI+PC9jOHktbGktaWNvbj5cbiAqIDwvYzh5LWxpPlxuICogYGBgXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS1saXN0LWl0ZW0taWNvbiwgYzh5LWxpLWljb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vbGlzdC1pdGVtLWljb24uY29tcG9uZW50Lmh0bWwnLFxuICBob3N0OiB7XG4gICAgY2xhc3M6ICdjOHktbGlzdF9faXRlbV9faWNvbidcbiAgfVxufSlcbmV4cG9ydCBjbGFzcyBMaXN0SXRlbUljb25Db21wb25lbnQge1xuICAvKipcbiAgICogVGhlIGljb24gbmFtZSBwYXNzZWQgdG8gdGhlIGBjOHlJY29uYCBkaXJlY3RpdmUuXG4gICAqL1xuICBASW5wdXQoKVxuICBpY29uOiBTdXBwb3J0ZWRJY29uc1N1Z2dlc3Rpb25zO1xuXG4gIC8qKlxuICAgKiBBIHN0YXR1cyB0byBjaGFuZ2UgdGhlIGNvbG9yIG9mIHRoZSBpY29uLlxuICAgKi9cbiAgQElucHV0KClcbiAgc3RhdHVzPzpcbiAgICB8ICdzdGF0dXNPaydcbiAgICB8ICdzdGF0dXNVbmtub3duJ1xuICAgIHwgJ3N0YXR1c0FsZXJ0J1xuICAgIHwgJ3N0YXR1c05vaydcbiAgICB8ICdzdGF0dXMgY3JpdGljYWwnXG4gICAgfCAnc3RhdHVzIHdhcm5pbmcnXG4gICAgfCAnc3RhdHVzIG1pbm9yJ1xuICAgIHwgJ3N0YXR1cyBtYWpvcic7XG59XG4iLCI8aSBbYzh5SWNvbl09XCJpY29uXCIgW25nQ2xhc3NdPVwic3RhdHVzXCIgKm5nSWY9XCJpY29uXCI+PC9pPlxuPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PiJdfQ==
@@ -64,7 +64,7 @@ export class CredentialsComponent {
64
64
  if (e.res && e.res.headers && e.res.headers.get(this.PASSWORD_RESET_HEADER_NAME)) {
65
65
  this.handlePasswordReset(e.res);
66
66
  }
67
- else if (e.res && e.res.status === 401 && /pin/i.test(e.data.message)) {
67
+ else if (e.res && e.res.status === 401 && /pin.*generated/i.test(e.data.message)) {
68
68
  this.handleSmsChallenge(e.data.message);
69
69
  }
70
70
  else if (e.res && e.res.status === 401 && /TOTP/i.test(e.data.message)) {
@@ -121,4 +121,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
121
121
  }], loginViewParams: [{
122
122
  type: Input
123
123
  }] } });
124
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlZGVudGlhbHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vY29yZS9sb2dpbi9jcmVkZW50aWFscy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9jb3JlL2xvZ2luL2NyZWRlbnRpYWxzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQzs7Ozs7Ozs7Ozs7OztBQVE1RixNQUFNLE9BQU8sb0JBQW9CO0lBbUIvQixZQUNTLFlBQTBCLEVBQzFCLEtBQW1CLEVBQ2xCLGlDQUFvRTtRQUZyRSxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixVQUFLLEdBQUwsS0FBSyxDQUFjO1FBQ2xCLHNDQUFpQyxHQUFqQyxpQ0FBaUMsQ0FBbUM7UUFyQnBFLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUVuQyxvQkFBZSxHQUErQjtZQUNyRCxhQUFhLEVBQUUsS0FBSztZQUNwQixVQUFVLEVBQUUsS0FBSztTQUNsQixDQUFDO1FBRUYsZ0JBQVcsR0FBRyxVQUFVLENBQUM7UUFDekIsVUFBSyxHQUFpQixFQUFFLENBQUM7UUFDekIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixrQkFBYSxHQUFHLEtBQUssQ0FBQztRQUN0QixrQkFBYSxHQUFHLEtBQUssQ0FBQztRQUN0QixpQkFB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LENBQUM7SUFDSCxDQUFDO0lBRU8sa0JBQWtCLENBQUMsT0FBZTtRQUN4QyxJQUFJLGlDQUFpQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ3BELElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUNoQixPQUFPLENBQ0wsc0dBQXNHLENBQ3ZHLENBQ0YsQ0FBQztRQUNKLENBQUM7UUFDRCxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDOUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsVUFBVSxDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDckYsQ0FBQztJQUVPLDJCQUEyQjtRQUNqQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxVQUFVLENBQUMsa0JBQWtCLEVBQUUsV0FBVyxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQ3pGLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUNoQixPQUFPLENBQ0wsZ0xBQWdMLENBQ2pMLENBQ0YsQ0FBQztJQUNKLENBQUM7OEdBNUdVLG9CQUFvQjtrR0FBcEIsb0JBQW9CLGtKQ2RqQyxvc0dBNElBOzsyRkQ5SGEsb0JBQW9CO2tCQUxoQyxTQUFTOytCQUNFLGlCQUFpQjs0SkFLakIsWUFBWTtzQkFBckIsTUFBTTtnQkFFRSxlQUFlO3NCQUF2QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIE91dHB1dCwgSW5wdXQsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTG9naW5TZXJ2aWNlIH0gZnJvbSAnLi9sb2dpbi5zZXJ2aWNlJztcbmltcG9ydCB7IElDcmVkZW50aWFscyB9IGZyb20gJ0BjOHkvY2xpZW50JztcbmltcG9ydCB7IEFsZXJ0U2VydmljZSB9IGZyb20gJy4uL2FsZXJ0L2FsZXJ0LnNlcnZpY2UnO1xuaW1wb3J0IHsgZ2V0dGV4dCB9IGZyb20gJy4uL2kxOG4vZ2V0dGV4dCc7XG5pbXBvcnQgeyBMb2dpblZpZXdzIH0gZnJvbSAnLi9sb2dpbi5tb2RlbCc7XG5pbXBvcnQgeyBDcmVkZW50aWFsc0Zyb21RdWVyeVBhcmFtc1NlcnZpY2UgfSBmcm9tICcuL2NyZWRlbnRpYWxzLWZyb20tcXVlcnktcGFyYW1zLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ3JlZGVudGlhbHNDb21wb25lbnRQYXJhbXMgfSBmcm9tICcuL2NyZWRlbnRpYWxzLWNvbXBvbmVudC1wYXJhbXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjOHktY3JlZGVudGlhbHMnLFxuICB0ZW1wbGF0ZVVybDogJy4vY3JlZGVudGlhbHMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZXM6IFtdXG59KVxuZXhwb3J0IGNsYXNzIENyZWRlbnRpYWxzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQE91dHB1dCgpIG9uQ2hhbmdlVmlldyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBASW5wdXQoKSBsb2dpblZpZXdQYXJhbXM6IENyZWRlbnRpYWxzQ29tcG9uZW50UGFyYW1zID0ge1xuICAgIGRpc2FibGVUZW5hbnQ6IGZhbHNlLFxuICAgIHNob3dUZW5hbnQ6IGZhbHNlXG4gIH07XG5cbiAgTE9HSU5fVklFV1MgPSBMb2dpblZpZXdzO1xuICBtb2RlbDogSUNyZWRlbnRpYWxzID0ge307XG4gIGlzTG9hZGluZyA9IGZhbHNlO1xuICBzaG93TG9naW5Gb3JtID0gZmFsc2U7XG4gIHNob3dCYXNpY0F1dGggPSBmYWxzZTtcbiAgb2F1dGhPcHRpb25zOiBhbnkgPSB7fTtcbiAgc2hvd1RlbmFudCA9IGZhbHNlO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgUEFTU1dPUkRfUkVTRVRfSEVBREVSX05BTUUgPSAncGFzc3dvcmRyZXNldHRva2VuJztcbiAgcHJpdmF0ZSByZWFkb25seSBOT19QSE9ORV9IRUFERVJfTkFNRSA9ICdOb1Bob25lSGVhZGVyJztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgbG9naW5TZXJ2aWNlOiBMb2dpblNlcnZpY2UsXG4gICAgcHVibGljIGFsZXJ0OiBBbGVydFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjcmVkZW50aWFsc0Zyb21RdWVyeVBhcmFtc1NlcnZpY2U6IENyZWRlbnRpYWxzRnJvbVF1ZXJ5UGFyYW1zU2VydmljZVxuICApIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgY29uc3QgeyBvYXV0aE9wdGlvbnMsIGxvZ2luTW9kZSB9ID0gdGhpcy5sb2dpblNlcnZpY2U7XG4gICAgdGhpcy5tb2RlbC50ZW5hbnQgPSB0aGlzLmxvZ2luU2VydmljZS5nZXRUZW5hbnQoKTtcbiAgICB0aGlzLnNob3dMb2dpbkZvcm0gPVxuICAgICAgdHlwZW9mIGxvZ2luTW9kZS52aXNpYmxlT25Mb2dpblBhZ2UgPT09ICd1bmRlZmluZWQnIHx8IGxvZ2luTW9kZS52aXNpYmxlT25Mb2dpblBhZ2U7XG4gICAgdGhpcy5zaG93QmFzaWNBdXRoID0gbG9naW5Nb2RlLnR5cGUgPT09ICdCQVNJQyc7XG4gICAgdGhpcy5vYXV0aE9wdGlvbnMgPSBvYXV0aE9wdGlvbnM7XG4gICAgY29uc3QgY3JlZGVudGlhbHNGcm9tUXVlcnlQYXJhbXMgPVxuICAgICAgdGhpcy5jcmVkZW50aWFsc0Zyb21RdWVyeVBhcmFtc1NlcnZpY2UuZ2V0Q3JlZGVudGlhbHNGcm9tUXVlcnlQYXJhbXMoKTtcbiAgICBPYmplY3QuYXNzaWduKHRoaXMubW9kZWwsIGNyZWRlbnRpYWxzRnJvbVF1ZXJ5UGFyYW1zKTtcbiAgICB0aGlzLnNob3dUZW5hbnQgPSB0aGlzLmxvZ2luVmlld1BhcmFtcy5zaG93VGVuYW50IHx8IHRoaXMubG9naW5TZXJ2aWNlLnNob3dUZW5hbnQoKTtcbiAgfVxuXG4gIHJlZGlyZWN0VG9PYXV0aCgpIHtcbiAgICB0aGlzLmxvZ2luU2VydmljZS5yZWRpcmVjdFRvT2F1dGgoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBbGxvd3MgdG8gbG9naW4gaW50byB0aGUgYXBwbGljYXRpb24gdXNpbmcgYmFzaWMgYXV0aC5cbiAgICogSWYgc3VjY2Vzc2Z1bCBsb2dnZWQgaW4gdGhlIGNsaWVudCBpcyBzZXQgaW4gc2hhcmVkL2N1bXVsb2NpdHkuc2VydmljZS50c1xuICAgKi9cbiAgYXN5bmMgbG9naW4oKSB7XG4gICAgdHJ5IHtcbiAgICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcbiAgICAgIGNvbnN0IGJhc2ljQXV0aCA9IHRoaXMubG9naW5TZXJ2aWNlLnVzZUJhc2ljQXV0aCh0aGlzLm1vZGVsKTtcbiAgICAgIGF3YWl0IHRoaXMubG9naW5TZXJ2aWNlLmxvZ2luKGJhc2ljQXV0aCwgdGhpcy5tb2RlbCk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgaWYgKGUucmVzICYmIGUucmVzLmhlYWRlcnMgJiYgZS5yZXMuaGVhZGVycy5nZXQodGhpcy5QQVNTV09SRF9SRVNFVF9IRUFERVJfTkFNRSkpIHtcbiAgICAgICAgdGhpcy5oYW5kbGVQYXNzd29yZFJlc2V0KGUucmVzKTtcbiAgICAgIH0gZWxzZSBpZiAoZS5yZXMgJiYgZS5yZXMuc3RhdHVzID09PSA0MDEgJiYgL3Bpbi9pLnRlc3QoZS5kYXRhLm1lc3NhZ2UpKSB7XG4gICAgICAgIHRoaXMuaGFuZGxlU21zQ2hhbGxlbmdlKGUuZGF0YS5tZXNzYWdlKTtcbiAgICAgIH0gZWxzZSBpZiAoZS5yZXMgJiYgZS5yZXMuc3RhdHVzID09PSA0MDEgJiYgL1RPVFAvaS50ZXN0KGUuZGF0YS5tZXNzYWdlKSkge1xuICAgICAgICB0aGlzLmhhbmRsZVRvdHBDaGFsbGVuZ2UoZS5kYXRhLm1lc3NhZ2UpO1xuICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgZS5yZXMgJiZcbiAgICAgICAgZS5yZXMuaGVhZGVycyAmJlxuICAgICAgICBlLnJlcy5oZWFkZXJzLmdldCh0aGlzLk5PX1BIT05FX0hFQURFUl9OQU1FKSAmJlxuICAgICAgICAhdGhpcy5sb2dpblNlcnZpY2UuaXNTdXBwb3J0VXNlcih0aGlzLm1vZGVsKVxuICAgICAgKSB7XG4gICAgICAgIHRoaXMuaGFuZGxlTm9QaG9uZU51bWJlclByb3ZpZGVkKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmxvZ2luU2VydmljZS5nZW5lcmF0ZU9hdXRoVG9rZW4odGhpcy5tb2RlbCk7XG4gICAgICAgIHRoaXMubG9naW5TZXJ2aWNlLnJlc2V0KCk7XG4gICAgICAgIHRoaXMuYWxlcnQuYWRkU2VydmVyRmFpbHVyZShlKTtcbiAgICAgIH1cbiAgICB9IGZpbmFsbHkge1xuICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZVBhc3N3b3JkUmVzZXQoZTogYW55KSB7XG4gICAgdGhpcy5hbGVydC5yZW1vdmVMYXN0RGFuZ2VyKCk7XG4gICAgdGhpcy5tb2RlbC50b2tlbiA9IGUuaGVhZGVycy5nZXQodGhpcy5QQVNTV09SRF9SRVNFVF9IRUFERVJfTkFNRSk7XG4gICAgdGhpcy5vbkNoYW5nZVZpZXcuZW1pdCh7IHZpZXc6IExvZ2luVmlld3MuQ2hhbmdlUGFzc3dvcmQsIGNyZWRlbnRpYWxzOiB0aGlzLm1vZGVsIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVUb3RwQ2hhbGxlbmdlKG1lc3NhZ2UpIHtcbiAgICBpZiAoL1RPVFAgc2V0dXAgcmVxdWlyZWQvaS50ZXN0KG1lc3NhZ2UpKSB7XG4gICAgICB0aGlzLm9uQ2hhbmdlVmlldy5lbWl0KHsgdmlldzogTG9naW5WaWV3cy5Ub3RwU2V0dXAsIGNyZWRlbnRpYWxzOiB0aGlzLm1vZGVsIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm9uQ2hhbmdlVmlldy5lbWl0KHsgdmlldzogTG9naW5WaWV3cy5Ub3RwQ2hhbGxlbmdlLCBjcmVkZW50aWFsczogdGhpcy5tb2RlbCB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZVNtc0NoYWxsZW5nZShtZXNzYWdlOiBzdHJpbmcpIHtcbiAgICBpZiAoL3BpbiBoYXMgYWxyZWFkeSBiZWVuIGdlbmVyYXRlZC9pLnRlc3QobWVzc2FnZSkpIHtcbiAgICAgIHRoaXMuYWxlcnQud2FybmluZyhcbiAgICAgICAgZ2V0dGV4dChcbiAgICAgICAgICAnVGhlIHZlcmlmaWNhdGlvbiBjb2RlIHdhcyBhbHJlYWR5IHNlbnQuIEZvciBhIG5ldyB2ZXJpZmljYXRpb24gY29kZSwgcGxlYXNlIGNsaWNrIG9uIHRoZSBsaW5rIGFib3ZlLidcbiAgICAgICAgKVxuICAgICAgKTtcbiAgICB9XG4gICAgdGhpcy5hbGVydC5yZW1vdmVMYXN0RGFuZ2VyKCk7XG4gICAgdGhpcy5vbkNoYW5nZVZpZXcuZW1pdCh7IHZpZXc6IExvZ2luVmlld3MuU21zQ2hhbGxlbmdlLCBjcmVkZW50aWFsczogdGhpcy5tb2RlbCB9KTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlTm9QaG9uZU51bWJlclByb3ZpZGVkKCkge1xuICAgIHRoaXMub25DaGFuZ2VWaWV3LmVtaXQoeyB2aWV3OiBMb2dpblZpZXdzLlByb3ZpZGVQaG9uZU51bWJlciwgY3JlZGVudGlhbHM6IHRoaXMubW9kZWwgfSk7XG4gICAgdGhpcy5hbGVydC53YXJuaW5nKFxuICAgICAgZ2V0dGV4dChcbiAgICAgICAgJ1R3by1mYWN0b3IgYXV0aGVudGljYXRpb24gaGFzIGJlZW4gdHVybmVkIG9uIGZvciB0aGlzIGFjY291bnQuIFByb3ZpZGUgeW91ciBwaG9uZSBudW1iZXIgYWJvdmUgdG8gc2F2ZSBpdCBpbiB5b3VyIHVzZXIgcHJvZmlsZSBhbmQgc3RhcnQgcmVjZWl2aW5nIHZlcmlmaWNhdGlvbiBjb2RlcyB2aWEgU01TLidcbiAgICAgIClcbiAgICApO1xuICB9XG59XG4iLCI8ZGl2XG4gIGlkPVwib2F1dGhcIlxuICAqbmdJZj1cIm9hdXRoT3B0aW9ucy5pbml0UmVxdWVzdCAmJiBvYXV0aE9wdGlvbnMudmlzaWJsZU9uTG9naW5QYWdlXCJcbj5cbiAgPGJ1dHRvblxuICAgIGNsYXNzPVwiYnRuIGJ0bi1kZWZhdWx0IGJ0bi1ibG9jayBidG4tbGcgZm9ybS1ncm91cCBtLXQtOFwiXG4gICAgdGl0bGU9XCJ7eyBvYXV0aE9wdGlvbnMuYnV0dG9uTmFtZSB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgdHlwZT1cImJ1dHRvblwiXG4gICAgKGNsaWNrKT1cInJlZGlyZWN0VG9PYXV0aCgpXCJcbiAgPlxuICAgIDxpXG4gICAgICBjbGFzcz1cInB1bGwtbGVmdFwiXG4gICAgICBbYzh5SWNvbl09XCInc2lnbi1pbidcIlxuICAgID48L2k+XG4gICAge3sgb2F1dGhPcHRpb25zLmJ1dHRvbk5hbWUgfCB0cmFuc2xhdGUgfX1cbiAgPC9idXR0b24+XG48L2Rpdj5cblxuPGZvcm1cbiAgY2xhc3M9XCJsb2dpbkZvcm1cIlxuICAobmdTdWJtaXQpPVwibG9naW4oKVwiXG4gICNsb2dpbkZvcm09XCJuZ0Zvcm1cIlxuICAqbmdJZj1cInNob3dMb2dpbkZvcm1cIlxuICBub3ZhbGlkYXRlXG4+XG4gIDxzcGFuXG4gICAgY2xhc3M9XCJsZWdlbmQgZm9ybS1ibG9jayBjZW50ZXJcIlxuICAgICpuZ0lmPVwiIShvYXV0aE9wdGlvbnMuaW5pdFJlcXVlc3QgJiYgb2F1dGhPcHRpb25zLnZpc2libGVPbkxvZ2luUGFnZSk7IGVsc2Ugb3JMZWdlbmRcIlxuICAgIHRyYW5zbGF0ZVxuICA+XG4gICAgTG9naW5cbiAgPC9zcGFuPlxuXG4gIDxuZy10ZW1wbGF0ZSAjb3JMZWdlbmQ+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJsZWdlbmQgZm9ybS1ibG9jayBjZW50ZXJcIlxuICAgICAgdHJhbnNsYXRlXG4gICAgPlxuICAgICAgb3JcbiAgICA8L2Rpdj5cbiAgPC9uZy10ZW1wbGF0ZT5cblxuICA8Yzh5LWZvcm0tZ3JvdXBcbiAgICBjbGFzcz1cInRlbmFudEZpZWxkXCJcbiAgICBpZD1cInRlbmFudEZpZWxkXCJcbiAgICAqbmdJZj1cInNob3dUZW5hbnRcIlxuICA+XG4gICAgPGxhYmVsXG4gICAgICBmb3I9XCJ0ZW5hbnRcIlxuICAgICAgdHJhbnNsYXRlXG4gICAgPlxuICAgICAgVGVuYW50IElEXG4gICAgPC9sYWJlbD5cbiAgICA8aW5wdXRcbiAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgIGlkPVwidGVuYW50XCJcbiAgICAgIHBsYWNlaG9sZGVyPVwie3sgJ2UuZy4nIHwgdHJhbnNsYXRlIH19IHQxMjM0NVwiXG4gICAgICBuYW1lPVwidGVuYW50XCJcbiAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgIHJlcXVpcmVkXG4gICAgICBbKG5nTW9kZWwpXT1cIm1vZGVsLnRlbmFudFwiXG4gICAgICAjdGVuYW50PVwibmdNb2RlbFwiXG4gICAgICBhdXRvY2FwaXRhbGl6ZT1cIm9mZlwiXG4gICAgICBhdXRvY29ycmVjdD1cIm9mZlwiXG4gICAgICBwbGFjZWhvbGRlci1uby1yZXF1aXJlZC1oaW50XG4gICAgICBbcmVhZG9ubHldPVwibG9naW5WaWV3UGFyYW1zLmRpc2FibGVUZW5hbnRcIlxuICAgIC8+XG4gIDwvYzh5LWZvcm0tZ3JvdXA+XG4gIDxjOHktZm9ybS1ncm91cD5cbiAgICA8bGFiZWxcbiAgICAgIGZvcj1cInVzZXJcIlxuICAgICAgdHJhbnNsYXRlXG4gICAgPlxuICAgICAgVXNlcm5hbWVcbiAgICA8L2xhYmVsPlxuICAgIDxpbnB1dFxuICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgaWQ9XCJ1c2VyXCJcbiAgICAgIHBsYWNlaG9sZGVyPVwie3sgJ2UuZy4gam9lIG9yIGpvZS5kb2VAZXhhbXBsZS5jb21gTE9DQUxJWkVgJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICBuYW1lPVwidXNlclwiXG4gICAgICB0eXBlPVwidGV4dFwiXG4gICAgICByZXF1aXJlZFxuICAgICAgWyhuZ01vZGVsKV09XCJtb2RlbC51c2VyXCJcbiAgICAgICN1c2VyPVwibmdNb2RlbFwiXG4gICAgICBhdXRvY2FwaXRhbGl6ZT1cIm9mZlwiXG4gICAgICBhdXRvY29ycmVjdD1cIm9mZlwiXG4gICAgICBwbGFjZWhvbGRlci1uby1yZXF1aXJlZC1oaW50XG4gICAgLz5cbiAgPC9jOHktZm9ybS1ncm91cD5cbiAgPGM4eS1mb3JtLWdyb3VwPlxuICAgIDxsYWJlbFxuICAgICAgZm9yPVwicGFzc3dvcmRcIlxuICAgICAgdHJhbnNsYXRlXG4gICAgPlxuICAgICAgUGFzc3dvcmRcbiAgICA8L2xhYmVsPlxuICAgIDxjOHktcGFzc3dvcmQtaW5wdXRcbiAgICAgIG5hbWU9XCJwYXNzd29yZFwiXG4gICAgICByZXF1aXJlZFxuICAgICAgW2lkXT1cIidwYXNzd29yZCdcIlxuICAgICAgWyhuZ01vZGVsKV09XCJtb2RlbC5wYXNzd29yZFwiXG4gICAgICBbYXV0b2NvbXBsZXRlXT1cIidvZmYnXCJcbiAgICA+PC9jOHktcGFzc3dvcmQtaW5wdXQ+XG4gIDwvYzh5LWZvcm0tZ3JvdXA+XG4gIDxkaXZcbiAgICBjbGFzcz1cImZvcm0tZ3JvdXBcIlxuICAgICpuZ0lmPVwic2hvd0Jhc2ljQXV0aFwiXG4gID5cbiAgICA8bGFiZWxcbiAgICAgIGNsYXNzPVwiYzh5LWNoZWNrYm94XCJcbiAgICAgIHRpdGxlPVwie3sgJ1JlbWVtYmVyIG1lJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgPlxuICAgICAgPGlucHV0XG4gICAgICAgIG5hbWU9XCJyZW1lbWJlclwiXG4gICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgIFsobmdNb2RlbCldPVwibG9naW5TZXJ2aWNlLnJlbWVtYmVyTWVcIlxuICAgICAgLz5cbiAgICAgIDxzcGFuPjwvc3Bhbj5cbiAgICAgIDxzcGFuPnt7ICdSZW1lbWJlciBtZScgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgPC9sYWJlbD5cbiAgPC9kaXY+XG4gIDxidXR0b25cbiAgICBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBidG4tbGcgYnRuLWJsb2NrIGZvcm0tZ3JvdXBcIlxuICAgIHRpdGxlPVwie3sgJ0xvZyBpbicgfCB0cmFuc2xhdGUgfX1cIlxuICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgIFtkaXNhYmxlZF09XCIhbG9naW5Gb3JtLmZvcm0udmFsaWQgfHwgaXNMb2FkaW5nXCJcbiAgPlxuICAgIHt7ICdMb2cgaW4nIHwgdHJhbnNsYXRlIH19XG4gIDwvYnV0dG9uPlxuICA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXIgbS10LThcIj5cbiAgICA8YnV0dG9uXG4gICAgICBjbGFzcz1cImJ0biBidG4tbGluayBidG4tc21cIlxuICAgICAgdGl0bGU9XCJ7eyAnRm9yZ290IHBhc3N3b3JkPycgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAoY2xpY2spPVwib25DaGFuZ2VWaWV3LmVtaXQoeyB2aWV3OiBMT0dJTl9WSUVXUy5SZWNvdmVyUGFzc3dvcmQgfSlcIlxuICAgID5cbiAgICAgIHt7ICdGb3Jnb3QgcGFzc3dvcmQ/JyB8IHRyYW5zbGF0ZSB9fVxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvZm9ybT5cbiJdfQ==
124
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlZGVudGlhbHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vY29yZS9sb2dpbi9jcmVkZW50aWFscy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9jb3JlL2xvZ2luL2NyZWRlbnRpYWxzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQzs7Ozs7Ozs7Ozs7OztBQVE1RixNQUFNLE9BQU8sb0JBQW9CO0lBbUIvQixZQUNTLFlBQTBCLEVBQzFCLEtBQW1CLEVBQ2xCLGlDQUFvRTtRQUZyRSxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixVQUFLLEdBQUwsS0FBSyxDQUFjO1FBQ2xCLHNDQUFpQyxHQUFqQyxpQ0FBaUMsQ0FBbUM7UUFyQnBFLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUVuQyxvQkFBZSxHQUErQjtZQUNyRCxhQUFhLEVBQUUsS0FBSztZQUNwQixVQUFVLEVBQUUsS0FBSztTQUNsQixDQUFDO1FBRUYsZ0JBQVcsR0FBRyxVQUFVLENBQUM7UUFDekIsVUFBSyxHQUFpQixFQUFFLENBQUM7UUFDekIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixrQkFBYSxHQUFHLEtBQUssQ0FBQztRQUN0QixrQkFBYSxHQUFHLEtBQUssQ0FBQztRQUN0QixpQkFB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dEYsQ0FBQztJQUNILENBQUM7SUFFTyxrQkFBa0IsQ0FBQyxPQUFlO1FBQ3hDLElBQUksaUNBQWlDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDcEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQ2hCLE9BQU8sQ0FDTCxzR0FBc0csQ0FDdkcsQ0FDRixDQUFDO1FBQ0osQ0FBQztRQUNELElBQUksQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUM5QixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxVQUFVLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUNyRixDQUFDO0lBRU8sMkJBQTJCO1FBQ2pDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLFVBQVUsQ0FBQyxrQkFBa0IsRUFBRSxXQUFXLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDekYsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQ2hCLE9BQU8sQ0FDTCxnTEFBZ0wsQ0FDakwsQ0FDRixDQUFDO0lBQ0osQ0FBQzs4R0E1R1Usb0JBQW9CO2tHQUFwQixvQkFBb0Isa0pDZGpDLG9zR0E0SUE7OzJGRDlIYSxvQkFBb0I7a0JBTGhDLFNBQVM7K0JBQ0UsaUJBQWlCOzRKQUtqQixZQUFZO3NCQUFyQixNQUFNO2dCQUVFLGVBQWU7c0JBQXZCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgT3V0cHV0LCBJbnB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBMb2dpblNlcnZpY2UgfSBmcm9tICcuL2xvZ2luLnNlcnZpY2UnO1xuaW1wb3J0IHsgSUNyZWRlbnRpYWxzIH0gZnJvbSAnQGM4eS9jbGllbnQnO1xuaW1wb3J0IHsgQWxlcnRTZXJ2aWNlIH0gZnJvbSAnLi4vYWxlcnQvYWxlcnQuc2VydmljZSc7XG5pbXBvcnQgeyBnZXR0ZXh0IH0gZnJvbSAnLi4vaTE4bi9nZXR0ZXh0JztcbmltcG9ydCB7IExvZ2luVmlld3MgfSBmcm9tICcuL2xvZ2luLm1vZGVsJztcbmltcG9ydCB7IENyZWRlbnRpYWxzRnJvbVF1ZXJ5UGFyYW1zU2VydmljZSB9IGZyb20gJy4vY3JlZGVudGlhbHMtZnJvbS1xdWVyeS1wYXJhbXMuc2VydmljZSc7XG5pbXBvcnQgeyBDcmVkZW50aWFsc0NvbXBvbmVudFBhcmFtcyB9IGZyb20gJy4vY3JlZGVudGlhbHMtY29tcG9uZW50LXBhcmFtcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS1jcmVkZW50aWFscycsXG4gIHRlbXBsYXRlVXJsOiAnLi9jcmVkZW50aWFscy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlczogW11cbn0pXG5leHBvcnQgY2xhc3MgQ3JlZGVudGlhbHNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBAT3V0cHV0KCkgb25DaGFuZ2VWaWV3ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBJbnB1dCgpIGxvZ2luVmlld1BhcmFtczogQ3JlZGVudGlhbHNDb21wb25lbnRQYXJhbXMgPSB7XG4gICAgZGlzYWJsZVRlbmFudDogZmFsc2UsXG4gICAgc2hvd1RlbmFudDogZmFsc2VcbiAgfTtcblxuICBMT0dJTl9WSUVXUyA9IExvZ2luVmlld3M7XG4gIG1vZGVsOiBJQ3JlZGVudGlhbHMgPSB7fTtcbiAgaXNMb2FkaW5nID0gZmFsc2U7XG4gIHNob3dMb2dpbkZvcm0gPSBmYWxzZTtcbiAgc2hvd0Jhc2ljQXV0aCA9IGZhbHNlO1xuICBvYXV0aE9wdGlvbnM6IGFueSA9IHt9O1xuICBzaG93VGVuYW50ID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBQQVNTV09SRF9SRVNFVF9IRUFERVJfTkFNRSA9ICdwYXNzd29yZHJlc2V0dG9rZW4nO1xuICBwcml2YXRlIHJlYWRvbmx5IE5PX1BIT05FX0hFQURFUl9OQU1FID0gJ05vUGhvbmVIZWFkZXInO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBsb2dpblNlcnZpY2U6IExvZ2luU2VydmljZSxcbiAgICBwdWJsaWMgYWxlcnQ6IEFsZXJ0U2VydmljZSxcbiAgICBwcml2YXRlIGNyZWRlbnRpYWxzRnJvbVF1ZXJ5UGFyYW1zU2VydmljZTogQ3JlZGVudGlhbHNGcm9tUXVlcnlQYXJhbXNTZXJ2aWNlXG4gICkge31cblxuICBuZ09uSW5pdCgpIHtcbiAgICBjb25zdCB7IG9hdXRoT3B0aW9ucywgbG9naW5Nb2RlIH0gPSB0aGlzLmxvZ2luU2VydmljZTtcbiAgICB0aGlzLm1vZGVsLnRlbmFudCA9IHRoaXMubG9naW5TZXJ2aWNlLmdldFRlbmFudCgpO1xuICAgIHRoaXMuc2hvd0xvZ2luRm9ybSA9XG4gICAgICB0eXBlb2YgbG9naW5Nb2RlLnZpc2libGVPbkxvZ2luUGFnZSA9PT0gJ3VuZGVmaW5lZCcgfHwgbG9naW5Nb2RlLnZpc2libGVPbkxvZ2luUGFnZTtcbiAgICB0aGlzLnNob3dCYXNpY0F1dGggPSBsb2dpbk1vZGUudHlwZSA9PT0gJ0JBU0lDJztcbiAgICB0aGlzLm9hdXRoT3B0aW9ucyA9IG9hdXRoT3B0aW9ucztcbiAgICBjb25zdCBjcmVkZW50aWFsc0Zyb21RdWVyeVBhcmFtcyA9XG4gICAgICB0aGlzLmNyZWRlbnRpYWxzRnJvbVF1ZXJ5UGFyYW1zU2VydmljZS5nZXRDcmVkZW50aWFsc0Zyb21RdWVyeVBhcmFtcygpO1xuICAgIE9iamVjdC5hc3NpZ24odGhpcy5tb2RlbCwgY3JlZGVudGlhbHNGcm9tUXVlcnlQYXJhbXMpO1xuICAgIHRoaXMuc2hvd1RlbmFudCA9IHRoaXMubG9naW5WaWV3UGFyYW1zLnNob3dUZW5hbnQgfHwgdGhpcy5sb2dpblNlcnZpY2Uuc2hvd1RlbmFudCgpO1xuICB9XG5cbiAgcmVkaXJlY3RUb09hdXRoKCkge1xuICAgIHRoaXMubG9naW5TZXJ2aWNlLnJlZGlyZWN0VG9PYXV0aCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFsbG93cyB0byBsb2dpbiBpbnRvIHRoZSBhcHBsaWNhdGlvbiB1c2luZyBiYXNpYyBhdXRoLlxuICAgKiBJZiBzdWNjZXNzZnVsIGxvZ2dlZCBpbiB0aGUgY2xpZW50IGlzIHNldCBpbiBzaGFyZWQvY3VtdWxvY2l0eS5zZXJ2aWNlLnRzXG4gICAqL1xuICBhc3luYyBsb2dpbigpIHtcbiAgICB0cnkge1xuICAgICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xuICAgICAgY29uc3QgYmFzaWNBdXRoID0gdGhpcy5sb2dpblNlcnZpY2UudXNlQmFzaWNBdXRoKHRoaXMubW9kZWwpO1xuICAgICAgYXdhaXQgdGhpcy5sb2dpblNlcnZpY2UubG9naW4oYmFzaWNBdXRoLCB0aGlzLm1vZGVsKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBpZiAoZS5yZXMgJiYgZS5yZXMuaGVhZGVycyAmJiBlLnJlcy5oZWFkZXJzLmdldCh0aGlzLlBBU1NXT1JEX1JFU0VUX0hFQURFUl9OQU1FKSkge1xuICAgICAgICB0aGlzLmhhbmRsZVBhc3N3b3JkUmVzZXQoZS5yZXMpO1xuICAgICAgfSBlbHNlIGlmIChlLnJlcyAmJiBlLnJlcy5zdGF0dXMgPT09IDQwMSAmJiAvcGluLipnZW5lcmF0ZWQvaS50ZXN0KGUuZGF0YS5tZXNzYWdlKSkge1xuICAgICAgICB0aGlzLmhhbmRsZVNtc0NoYWxsZW5nZShlLmRhdGEubWVzc2FnZSk7XG4gICAgICB9IGVsc2UgaWYgKGUucmVzICYmIGUucmVzLnN0YXR1cyA9PT0gNDAxICYmIC9UT1RQL2kudGVzdChlLmRhdGEubWVzc2FnZSkpIHtcbiAgICAgICAgdGhpcy5oYW5kbGVUb3RwQ2hhbGxlbmdlKGUuZGF0YS5tZXNzYWdlKTtcbiAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgIGUucmVzICYmXG4gICAgICAgIGUucmVzLmhlYWRlcnMgJiZcbiAgICAgICAgZS5yZXMuaGVhZGVycy5nZXQodGhpcy5OT19QSE9ORV9IRUFERVJfTkFNRSkgJiZcbiAgICAgICAgIXRoaXMubG9naW5TZXJ2aWNlLmlzU3VwcG9ydFVzZXIodGhpcy5tb2RlbClcbiAgICAgICkge1xuICAgICAgICB0aGlzLmhhbmRsZU5vUGhvbmVOdW1iZXJQcm92aWRlZCgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5sb2dpblNlcnZpY2UuZ2VuZXJhdGVPYXV0aFRva2VuKHRoaXMubW9kZWwpO1xuICAgICAgICB0aGlzLmxvZ2luU2VydmljZS5yZXNldCgpO1xuICAgICAgICB0aGlzLmFsZXJ0LmFkZFNlcnZlckZhaWx1cmUoZSk7XG4gICAgICB9XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVQYXNzd29yZFJlc2V0KGU6IGFueSkge1xuICAgIHRoaXMuYWxlcnQucmVtb3ZlTGFzdERhbmdlcigpO1xuICAgIHRoaXMubW9kZWwudG9rZW4gPSBlLmhlYWRlcnMuZ2V0KHRoaXMuUEFTU1dPUkRfUkVTRVRfSEVBREVSX05BTUUpO1xuICAgIHRoaXMub25DaGFuZ2VWaWV3LmVtaXQoeyB2aWV3OiBMb2dpblZpZXdzLkNoYW5nZVBhc3N3b3JkLCBjcmVkZW50aWFsczogdGhpcy5tb2RlbCB9KTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlVG90cENoYWxsZW5nZShtZXNzYWdlKSB7XG4gICAgaWYgKC9UT1RQIHNldHVwIHJlcXVpcmVkL2kudGVzdChtZXNzYWdlKSkge1xuICAgICAgdGhpcy5vbkNoYW5nZVZpZXcuZW1pdCh7IHZpZXc6IExvZ2luVmlld3MuVG90cFNldHVwLCBjcmVkZW50aWFsczogdGhpcy5tb2RlbCB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5vbkNoYW5nZVZpZXcuZW1pdCh7IHZpZXc6IExvZ2luVmlld3MuVG90cENoYWxsZW5nZSwgY3JlZGVudGlhbHM6IHRoaXMubW9kZWwgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVTbXNDaGFsbGVuZ2UobWVzc2FnZTogc3RyaW5nKSB7XG4gICAgaWYgKC9waW4gaGFzIGFscmVhZHkgYmVlbiBnZW5lcmF0ZWQvaS50ZXN0KG1lc3NhZ2UpKSB7XG4gICAgICB0aGlzLmFsZXJ0Lndhcm5pbmcoXG4gICAgICAgIGdldHRleHQoXG4gICAgICAgICAgJ1RoZSB2ZXJpZmljYXRpb24gY29kZSB3YXMgYWxyZWFkeSBzZW50LiBGb3IgYSBuZXcgdmVyaWZpY2F0aW9uIGNvZGUsIHBsZWFzZSBjbGljayBvbiB0aGUgbGluayBhYm92ZS4nXG4gICAgICAgIClcbiAgICAgICk7XG4gICAgfVxuICAgIHRoaXMuYWxlcnQucmVtb3ZlTGFzdERhbmdlcigpO1xuICAgIHRoaXMub25DaGFuZ2VWaWV3LmVtaXQoeyB2aWV3OiBMb2dpblZpZXdzLlNtc0NoYWxsZW5nZSwgY3JlZGVudGlhbHM6IHRoaXMubW9kZWwgfSk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZU5vUGhvbmVOdW1iZXJQcm92aWRlZCgpIHtcbiAgICB0aGlzLm9uQ2hhbmdlVmlldy5lbWl0KHsgdmlldzogTG9naW5WaWV3cy5Qcm92aWRlUGhvbmVOdW1iZXIsIGNyZWRlbnRpYWxzOiB0aGlzLm1vZGVsIH0pO1xuICAgIHRoaXMuYWxlcnQud2FybmluZyhcbiAgICAgIGdldHRleHQoXG4gICAgICAgICdUd28tZmFjdG9yIGF1dGhlbnRpY2F0aW9uIGhhcyBiZWVuIHR1cm5lZCBvbiBmb3IgdGhpcyBhY2NvdW50LiBQcm92aWRlIHlvdXIgcGhvbmUgbnVtYmVyIGFib3ZlIHRvIHNhdmUgaXQgaW4geW91ciB1c2VyIHByb2ZpbGUgYW5kIHN0YXJ0IHJlY2VpdmluZyB2ZXJpZmljYXRpb24gY29kZXMgdmlhIFNNUy4nXG4gICAgICApXG4gICAgKTtcbiAgfVxufVxuIiwiPGRpdlxuICBpZD1cIm9hdXRoXCJcbiAgKm5nSWY9XCJvYXV0aE9wdGlvbnMuaW5pdFJlcXVlc3QgJiYgb2F1dGhPcHRpb25zLnZpc2libGVPbkxvZ2luUGFnZVwiXG4+XG4gIDxidXR0b25cbiAgICBjbGFzcz1cImJ0biBidG4tZGVmYXVsdCBidG4tYmxvY2sgYnRuLWxnIGZvcm0tZ3JvdXAgbS10LThcIlxuICAgIHRpdGxlPVwie3sgb2F1dGhPcHRpb25zLmJ1dHRvbk5hbWUgfCB0cmFuc2xhdGUgfX1cIlxuICAgIHR5cGU9XCJidXR0b25cIlxuICAgIChjbGljayk9XCJyZWRpcmVjdFRvT2F1dGgoKVwiXG4gID5cbiAgICA8aVxuICAgICAgY2xhc3M9XCJwdWxsLWxlZnRcIlxuICAgICAgW2M4eUljb25dPVwiJ3NpZ24taW4nXCJcbiAgICA+PC9pPlxuICAgIHt7IG9hdXRoT3B0aW9ucy5idXR0b25OYW1lIHwgdHJhbnNsYXRlIH19XG4gIDwvYnV0dG9uPlxuPC9kaXY+XG5cbjxmb3JtXG4gIGNsYXNzPVwibG9naW5Gb3JtXCJcbiAgKG5nU3VibWl0KT1cImxvZ2luKClcIlxuICAjbG9naW5Gb3JtPVwibmdGb3JtXCJcbiAgKm5nSWY9XCJzaG93TG9naW5Gb3JtXCJcbiAgbm92YWxpZGF0ZVxuPlxuICA8c3BhblxuICAgIGNsYXNzPVwibGVnZW5kIGZvcm0tYmxvY2sgY2VudGVyXCJcbiAgICAqbmdJZj1cIiEob2F1dGhPcHRpb25zLmluaXRSZXF1ZXN0ICYmIG9hdXRoT3B0aW9ucy52aXNpYmxlT25Mb2dpblBhZ2UpOyBlbHNlIG9yTGVnZW5kXCJcbiAgICB0cmFuc2xhdGVcbiAgPlxuICAgIExvZ2luXG4gIDwvc3Bhbj5cblxuICA8bmctdGVtcGxhdGUgI29yTGVnZW5kPlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwibGVnZW5kIGZvcm0tYmxvY2sgY2VudGVyXCJcbiAgICAgIHRyYW5zbGF0ZVxuICAgID5cbiAgICAgIG9yXG4gICAgPC9kaXY+XG4gIDwvbmctdGVtcGxhdGU+XG5cbiAgPGM4eS1mb3JtLWdyb3VwXG4gICAgY2xhc3M9XCJ0ZW5hbnRGaWVsZFwiXG4gICAgaWQ9XCJ0ZW5hbnRGaWVsZFwiXG4gICAgKm5nSWY9XCJzaG93VGVuYW50XCJcbiAgPlxuICAgIDxsYWJlbFxuICAgICAgZm9yPVwidGVuYW50XCJcbiAgICAgIHRyYW5zbGF0ZVxuICAgID5cbiAgICAgIFRlbmFudCBJRFxuICAgIDwvbGFiZWw+XG4gICAgPGlucHV0XG4gICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICBpZD1cInRlbmFudFwiXG4gICAgICBwbGFjZWhvbGRlcj1cInt7ICdlLmcuJyB8IHRyYW5zbGF0ZSB9fSB0MTIzNDVcIlxuICAgICAgbmFtZT1cInRlbmFudFwiXG4gICAgICB0eXBlPVwidGV4dFwiXG4gICAgICByZXF1aXJlZFxuICAgICAgWyhuZ01vZGVsKV09XCJtb2RlbC50ZW5hbnRcIlxuICAgICAgI3RlbmFudD1cIm5nTW9kZWxcIlxuICAgICAgYXV0b2NhcGl0YWxpemU9XCJvZmZcIlxuICAgICAgYXV0b2NvcnJlY3Q9XCJvZmZcIlxuICAgICAgcGxhY2Vob2xkZXItbm8tcmVxdWlyZWQtaGludFxuICAgICAgW3JlYWRvbmx5XT1cImxvZ2luVmlld1BhcmFtcy5kaXNhYmxlVGVuYW50XCJcbiAgICAvPlxuICA8L2M4eS1mb3JtLWdyb3VwPlxuICA8Yzh5LWZvcm0tZ3JvdXA+XG4gICAgPGxhYmVsXG4gICAgICBmb3I9XCJ1c2VyXCJcbiAgICAgIHRyYW5zbGF0ZVxuICAgID5cbiAgICAgIFVzZXJuYW1lXG4gICAgPC9sYWJlbD5cbiAgICA8aW5wdXRcbiAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgIGlkPVwidXNlclwiXG4gICAgICBwbGFjZWhvbGRlcj1cInt7ICdlLmcuIGpvZSBvciBqb2UuZG9lQGV4YW1wbGUuY29tYExPQ0FMSVpFYCcgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgbmFtZT1cInVzZXJcIlxuICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgcmVxdWlyZWRcbiAgICAgIFsobmdNb2RlbCldPVwibW9kZWwudXNlclwiXG4gICAgICAjdXNlcj1cIm5nTW9kZWxcIlxuICAgICAgYXV0b2NhcGl0YWxpemU9XCJvZmZcIlxuICAgICAgYXV0b2NvcnJlY3Q9XCJvZmZcIlxuICAgICAgcGxhY2Vob2xkZXItbm8tcmVxdWlyZWQtaGludFxuICAgIC8+XG4gIDwvYzh5LWZvcm0tZ3JvdXA+XG4gIDxjOHktZm9ybS1ncm91cD5cbiAgICA8bGFiZWxcbiAgICAgIGZvcj1cInBhc3N3b3JkXCJcbiAgICAgIHRyYW5zbGF0ZVxuICAgID5cbiAgICAgIFBhc3N3b3JkXG4gICAgPC9sYWJlbD5cbiAgICA8Yzh5LXBhc3N3b3JkLWlucHV0XG4gICAgICBuYW1lPVwicGFzc3dvcmRcIlxuICAgICAgcmVxdWlyZWRcbiAgICAgIFtpZF09XCIncGFzc3dvcmQnXCJcbiAgICAgIFsobmdNb2RlbCldPVwibW9kZWwucGFzc3dvcmRcIlxuICAgICAgW2F1dG9jb21wbGV0ZV09XCInb2ZmJ1wiXG4gICAgPjwvYzh5LXBhc3N3b3JkLWlucHV0PlxuICA8L2M4eS1mb3JtLWdyb3VwPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJmb3JtLWdyb3VwXCJcbiAgICAqbmdJZj1cInNob3dCYXNpY0F1dGhcIlxuICA+XG4gICAgPGxhYmVsXG4gICAgICBjbGFzcz1cImM4eS1jaGVja2JveFwiXG4gICAgICB0aXRsZT1cInt7ICdSZW1lbWJlciBtZScgfCB0cmFuc2xhdGUgfX1cIlxuICAgID5cbiAgICAgIDxpbnB1dFxuICAgICAgICBuYW1lPVwicmVtZW1iZXJcIlxuICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICBbKG5nTW9kZWwpXT1cImxvZ2luU2VydmljZS5yZW1lbWJlck1lXCJcbiAgICAgIC8+XG4gICAgICA8c3Bhbj48L3NwYW4+XG4gICAgICA8c3Bhbj57eyAnUmVtZW1iZXIgbWUnIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuICAgIDwvbGFiZWw+XG4gIDwvZGl2PlxuICA8YnV0dG9uXG4gICAgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgYnRuLWxnIGJ0bi1ibG9jayBmb3JtLWdyb3VwXCJcbiAgICB0aXRsZT1cInt7ICdMb2cgaW4nIHwgdHJhbnNsYXRlIH19XCJcbiAgICB0eXBlPVwic3VibWl0XCJcbiAgICBbZGlzYWJsZWRdPVwiIWxvZ2luRm9ybS5mb3JtLnZhbGlkIHx8IGlzTG9hZGluZ1wiXG4gID5cbiAgICB7eyAnTG9nIGluJyB8IHRyYW5zbGF0ZSB9fVxuICA8L2J1dHRvbj5cbiAgPGRpdiBjbGFzcz1cInRleHQtY2VudGVyIG0tdC04XCI+XG4gICAgPGJ1dHRvblxuICAgICAgY2xhc3M9XCJidG4gYnRuLWxpbmsgYnRuLXNtXCJcbiAgICAgIHRpdGxlPVwie3sgJ0ZvcmdvdCBwYXNzd29yZD8nIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgKGNsaWNrKT1cIm9uQ2hhbmdlVmlldy5lbWl0KHsgdmlldzogTE9HSU5fVklFV1MuUmVjb3ZlclBhc3N3b3JkIH0pXCJcbiAgICA+XG4gICAgICB7eyAnRm9yZ290IHBhc3N3b3JkPycgfCB0cmFuc2xhdGUgfX1cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG48L2Zvcm0+XG4iXX0=