@alauda-fe/common 1.3.0 → 1.4.0

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 (539) hide show
  1. package/api/helpers.d.ts +8 -16
  2. package/array-form-table/form/component.d.ts +2 -2
  3. package/authorization/interceptor.service.d.ts +0 -1
  4. package/authorization/state.service.d.ts +13 -13
  5. package/business/resource-select/internals/namespace-list/component.d.ts +3 -1
  6. package/business/resource-select/module.d.ts +2 -1
  7. package/core/abstract/base-nested-form-control.d.ts +1 -1
  8. package/core/components/tree/toggle.d.ts +3 -3
  9. package/core/constants/constants.d.ts +4 -1
  10. package/core/constants/patterns.d.ts +12 -0
  11. package/core/constants/status-icons.d.ts +2 -1
  12. package/core/directives/scroll-to-first-invalid.directive.d.ts +1 -1
  13. package/core/module.d.ts +21 -21
  14. package/core/pipes/time.pipe.d.ts +1 -1
  15. package/core/services/context.service.d.ts +3 -4
  16. package/core/services/encode-url-param.interceptor.d.ts +12 -0
  17. package/core/services/feature-gate.service.d.ts +1 -1
  18. package/core/services/public-api.d.ts +1 -0
  19. package/core/services/time.service.d.ts +1 -0
  20. package/core/services/workspace-helper.service.d.ts +3 -1
  21. package/core/types/k8s/crd.d.ts +11 -5
  22. package/core/types/k8s/raw.d.ts +25 -38
  23. package/core/types/resource-definitions.d.ts +57 -71
  24. package/core/utils/common.d.ts +5 -13
  25. package/core/utils/disabled-state.d.ts +20 -0
  26. package/core/utils/public-api.d.ts +3 -0
  27. package/core/utils/router.d.ts +3 -0
  28. package/core/utils/version.d.ts +1 -1
  29. package/core/utils/workload.d.ts +66 -0
  30. package/editable/editable.component.d.ts +23 -0
  31. package/editable/editable.directive.d.ts +9 -0
  32. package/editable/editable.type.d.ts +5 -0
  33. package/editable/public-api.d.ts +2 -0
  34. package/esm2022/abnormal-page/abnormal-page.component.mjs +5 -4
  35. package/esm2022/abnormal-page/abnormal-page.module.mjs +2 -2
  36. package/esm2022/api/acp-common-api.service.mjs +3 -3
  37. package/esm2022/api/api-compatible.interceptor.mjs +1 -1
  38. package/esm2022/api/api-gateway.interceptor.mjs +3 -3
  39. package/esm2022/api/api-gateway.service.mjs +2 -2
  40. package/esm2022/api/cluster-version.service.mjs +3 -3
  41. package/esm2022/api/crypto.interceptor.mjs +4 -4
  42. package/esm2022/api/helpers.mjs +1 -1
  43. package/esm2022/api/k8s-api-resource.service.mjs +4 -4
  44. package/esm2022/api/k8s-api.service.mjs +6 -6
  45. package/esm2022/api/page-visibility.service.mjs +2 -2
  46. package/esm2022/api/platform-ui.service.mjs +2 -2
  47. package/esm2022/api/product.service.mjs +3 -3
  48. package/esm2022/api/project-api.service.mjs +3 -3
  49. package/esm2022/api/resource-update.service.mjs +3 -3
  50. package/esm2022/array-form-table/base-string-map-form.component.mjs +3 -3
  51. package/esm2022/array-form-table/form/component.mjs +104 -111
  52. package/esm2022/array-form-table/form/module.mjs +2 -2
  53. package/esm2022/array-form-table/key-value-form/component.mjs +53 -58
  54. package/esm2022/array-form-table/key-value-table/component.mjs +7 -7
  55. package/esm2022/array-form-table/string-array-form/component.mjs +48 -52
  56. package/esm2022/async-data/async-data-loader.mjs +1 -1
  57. package/esm2022/async-data/async-data.module.mjs +2 -2
  58. package/esm2022/async-data/error-page/component.mjs +21 -22
  59. package/esm2022/async-data/page-state/component.mjs +16 -15
  60. package/esm2022/authorization/app-init-url.mjs +1 -1
  61. package/esm2022/authorization/guard.service.mjs +5 -5
  62. package/esm2022/authorization/interceptor.service.mjs +10 -25
  63. package/esm2022/authorization/session-manage.service.mjs +5 -5
  64. package/esm2022/authorization/state.service.mjs +59 -93
  65. package/esm2022/authorization/storage-token.mjs +2 -2
  66. package/esm2022/business/module-info/api.service.mjs +3 -3
  67. package/esm2022/business/notification-disabled-container/component.mjs +14 -14
  68. package/esm2022/business/resource-select/base-list.mjs +3 -3
  69. package/esm2022/business/resource-select/context.service.mjs +3 -3
  70. package/esm2022/business/resource-select/exports/cluster-selector/component.mjs +22 -20
  71. package/esm2022/business/resource-select/exports/mesh-group-selector/component.mjs +22 -20
  72. package/esm2022/business/resource-select/exports/namespace-page/component.mjs +6 -5
  73. package/esm2022/business/resource-select/exports/namespace-selector/component.mjs +37 -35
  74. package/esm2022/business/resource-select/exports/project-page/component.mjs +6 -5
  75. package/esm2022/business/resource-select/exports/project-selector/component.mjs +23 -22
  76. package/esm2022/business/resource-select/helpers.directive.mjs +2 -2
  77. package/esm2022/business/resource-select/internals/cluster-list/component.mjs +7 -6
  78. package/esm2022/business/resource-select/internals/data-grid/component.mjs +173 -176
  79. package/esm2022/business/resource-select/internals/icon/component.mjs +3 -2
  80. package/esm2022/business/resource-select/internals/meshgroup-list/component.mjs +5 -4
  81. package/esm2022/business/resource-select/internals/namespace-list/component.mjs +145 -100
  82. package/esm2022/business/resource-select/internals/no-data/component.mjs +12 -14
  83. package/esm2022/business/resource-select/internals/project-list/component.mjs +5 -4
  84. package/esm2022/business/resource-select/internals/resource-dashboard/component.mjs +7 -6
  85. package/esm2022/business/resource-select/internals/selector-popup/component.mjs +6 -5
  86. package/esm2022/business/resource-select/internals/selector-popup/ref.mjs +1 -1
  87. package/esm2022/business/resource-select/internals/selector-popup/service.mjs +3 -3
  88. package/esm2022/business/resource-select/module.mjs +17 -14
  89. package/esm2022/business/resource-select/project.service.mjs +3 -3
  90. package/esm2022/business/resource-select/utils.mjs +1 -1
  91. package/esm2022/chart/chart.module.mjs +2 -2
  92. package/esm2022/chart/chart.service.mjs +4 -4
  93. package/esm2022/chart/common/axis/axis-label.component.mjs +4 -3
  94. package/esm2022/chart/common/axis/x-axis-ticks.component.mjs +27 -27
  95. package/esm2022/chart/common/axis/x-axis.component.mjs +6 -5
  96. package/esm2022/chart/common/axis/x-plot-lines.component.mjs +7 -6
  97. package/esm2022/chart/common/axis/y-axis-ticks.component.mjs +35 -35
  98. package/esm2022/chart/common/axis/y-axis.component.mjs +9 -8
  99. package/esm2022/chart/common/axis/y-plot-lines.component.mjs +6 -5
  100. package/esm2022/chart/common/chart/chart.component.mjs +41 -43
  101. package/esm2022/chart/common/legend/legend.component.mjs +62 -65
  102. package/esm2022/chart/common/range-area/range-area.component.mjs +13 -11
  103. package/esm2022/chart/common/reference-area/reference-area.component.mjs +4 -3
  104. package/esm2022/chart/common/series/area-series.component.mjs +15 -14
  105. package/esm2022/chart/common/series/bar-path.component.mjs +20 -21
  106. package/esm2022/chart/common/series/bar-series.component.mjs +8 -7
  107. package/esm2022/chart/common/series/line-series.component.mjs +7 -6
  108. package/esm2022/chart/common/series/series.component.mjs +3 -3
  109. package/esm2022/chart/common/tooltip/tooltip.component.mjs +73 -81
  110. package/esm2022/chart/custom-template/dropdown-legend.mjs +23 -25
  111. package/esm2022/chart/utils.mjs +1 -1
  112. package/esm2022/code/code-display-dialog/component.mjs +9 -8
  113. package/esm2022/code/code-editor-configs.mjs +2 -2
  114. package/esm2022/code/code.module.mjs +2 -2
  115. package/esm2022/code/k8s-yaml-display-dialog/component.mjs +9 -8
  116. package/esm2022/code/resource-yaml-display/component.mjs +21 -22
  117. package/esm2022/core/abstract/base-form-container.mjs +3 -3
  118. package/esm2022/core/abstract/base-nested-form-control.mjs +5 -5
  119. package/esm2022/core/components/tree/module.mjs +2 -2
  120. package/esm2022/core/components/tree/node/component.mjs +7 -6
  121. package/esm2022/core/components/tree/outlet.mjs +4 -4
  122. package/esm2022/core/components/tree/padding.mjs +6 -6
  123. package/esm2022/core/components/tree/toggle.mjs +9 -9
  124. package/esm2022/core/components/tree/tree/component.mjs +4 -3
  125. package/esm2022/core/constants/constants.mjs +4 -1
  126. package/esm2022/core/constants/patterns.mjs +15 -4
  127. package/esm2022/core/constants/status-icons.mjs +2 -1
  128. package/esm2022/core/constants/tokens.mjs +1 -1
  129. package/esm2022/core/directives/aui-code-editor.directive.mjs +3 -3
  130. package/esm2022/core/directives/click-outside.directive.mjs +4 -4
  131. package/esm2022/core/directives/declare.directive.mjs +2 -2
  132. package/esm2022/core/directives/disabled.directive.mjs +4 -4
  133. package/esm2022/core/directives/feature-gate.directive.mjs +4 -4
  134. package/esm2022/core/directives/intercept-deactivate.directive.mjs +4 -4
  135. package/esm2022/core/directives/last-form-item.directive.mjs +3 -3
  136. package/esm2022/core/directives/page-header-content.directive.mjs +3 -3
  137. package/esm2022/core/directives/readonly-field.directive.mjs +8 -7
  138. package/esm2022/core/directives/resize.directive.mjs +3 -3
  139. package/esm2022/core/directives/scroll-border-observer.directive.mjs +4 -4
  140. package/esm2022/core/directives/scroll-to-first-invalid.directive.mjs +5 -5
  141. package/esm2022/core/guards/feature.guard.mjs +4 -4
  142. package/esm2022/core/guards/intercept-deactivate.guard.mjs +3 -3
  143. package/esm2022/core/guards/leave-edit-page.guard.mjs +3 -3
  144. package/esm2022/core/guards/project-namespace.guard.mjs +5 -5
  145. package/esm2022/core/module.mjs +8 -13
  146. package/esm2022/core/pipes/calc.pipe.mjs +2 -2
  147. package/esm2022/core/pipes/cron-human-readable.pipe.mjs +2 -2
  148. package/esm2022/core/pipes/crontab-next.pipe.mjs +3 -3
  149. package/esm2022/core/pipes/duration.pipe.mjs +3 -3
  150. package/esm2022/core/pipes/field-not-available.pipe.mjs +2 -2
  151. package/esm2022/core/pipes/img-header.pipe.mjs +2 -2
  152. package/esm2022/core/pipes/img-theme.pipe.mjs +3 -3
  153. package/esm2022/core/pipes/k8s-util.pipe.mjs +24 -24
  154. package/esm2022/core/pipes/k8s-util.pipe.module.mjs +2 -2
  155. package/esm2022/core/pipes/keyvalue.pipe.mjs +3 -3
  156. package/esm2022/core/pipes/marked.pipe.mjs +2 -2
  157. package/esm2022/core/pipes/minimum-format.pipe.mjs +3 -3
  158. package/esm2022/core/pipes/page-env.pipe.mjs +5 -5
  159. package/esm2022/core/pipes/parse-json-translate.pipe.mjs +3 -3
  160. package/esm2022/core/pipes/parse-json.pipe.mjs +2 -2
  161. package/esm2022/core/pipes/pure.pipe.mjs +2 -2
  162. package/esm2022/core/pipes/pure.pipe.module.mjs +2 -2
  163. package/esm2022/core/pipes/safe.pipe.mjs +3 -3
  164. package/esm2022/core/pipes/sanitize.pipe.mjs +3 -3
  165. package/esm2022/core/pipes/time.pipe.mjs +11 -11
  166. package/esm2022/core/pipes/timezone-display.pipe.mjs +2 -2
  167. package/esm2022/core/services/aui-paginator-intl.service.mjs +3 -3
  168. package/esm2022/core/services/aui-tooltip-copy-intl.service.mjs +3 -3
  169. package/esm2022/core/services/context.service.mjs +10 -13
  170. package/esm2022/core/services/custom-code-editor-intl.service.mjs +3 -3
  171. package/esm2022/core/services/encode-url-param.interceptor.mjs +32 -0
  172. package/esm2022/core/services/feature-gate.service.mjs +3 -3
  173. package/esm2022/core/services/form-row-duplicate/form-row-duplicate.service.mjs +3 -3
  174. package/esm2022/core/services/intercept-deactivate.service.mjs +3 -3
  175. package/esm2022/core/services/k8s-util.service.mjs +3 -3
  176. package/esm2022/core/services/on-resize.service.mjs +5 -5
  177. package/esm2022/core/services/public-api.mjs +2 -1
  178. package/esm2022/core/services/silently-navigate.service.mjs +3 -3
  179. package/esm2022/core/services/time.service.mjs +4 -3
  180. package/esm2022/core/services/ui-state.service.mjs +2 -2
  181. package/esm2022/core/services/workspace-helper.service.mjs +8 -2
  182. package/esm2022/core/services/yaml-util.service.mjs +4 -4
  183. package/esm2022/core/types/k8s/crd.mjs +1 -1
  184. package/esm2022/core/types/k8s/raw.mjs +1 -1
  185. package/esm2022/core/types/resource-definitions.mjs +42 -65
  186. package/esm2022/core/utils/cache-store.mjs +1 -1
  187. package/esm2022/core/utils/common.mjs +3 -12
  188. package/esm2022/core/utils/create-recursive-filter.mjs +1 -1
  189. package/esm2022/core/utils/cron-util.mjs +1 -1
  190. package/esm2022/core/utils/decorators.mjs +1 -1
  191. package/esm2022/core/utils/disabled-state.mjs +47 -0
  192. package/esm2022/core/utils/format-number.mjs +1 -1
  193. package/esm2022/core/utils/k8s-util.mjs +1 -1
  194. package/esm2022/core/utils/observable.mjs +1 -1
  195. package/esm2022/core/utils/operators.mjs +1 -1
  196. package/esm2022/core/utils/public-api.mjs +4 -1
  197. package/esm2022/core/utils/request-pool.mjs +1 -1
  198. package/esm2022/core/utils/resources.mjs +1 -1
  199. package/esm2022/core/utils/router.mjs +20 -0
  200. package/esm2022/core/utils/sort-fn.mjs +1 -1
  201. package/esm2022/core/utils/tree.mjs +1 -1
  202. package/esm2022/core/utils/unit.mjs +1 -1
  203. package/esm2022/core/utils/version.mjs +1 -1
  204. package/esm2022/core/utils/workload.mjs +183 -0
  205. package/esm2022/core/utils/workspace.mjs +1 -1
  206. package/esm2022/core/utils/yaml.mjs +1 -1
  207. package/esm2022/custom-columns-setting/component.mjs +30 -23
  208. package/esm2022/disabled-container/disabled-container.component.mjs +4 -3
  209. package/esm2022/disabled-container/disabled-container.module.mjs +2 -2
  210. package/esm2022/editable/editable.component.mjs +136 -0
  211. package/esm2022/editable/editable.directive.mjs +25 -0
  212. package/esm2022/editable/editable.type.mjs +6 -0
  213. package/esm2022/editable/public-api.mjs +3 -0
  214. package/esm2022/editable-text/component.mjs +14 -12
  215. package/esm2022/editable-text/module.mjs +2 -2
  216. package/esm2022/effect-directive/coerce-number.directive.mjs +4 -4
  217. package/esm2022/effect-directive/e2e-attribute-binding.directive.mjs +3 -3
  218. package/esm2022/effect-directive/event.directive.mjs +3 -3
  219. package/esm2022/effect-directive/min-max.directive.mjs +3 -3
  220. package/esm2022/effect-directive/module.mjs +2 -2
  221. package/esm2022/effect-directive/trim.directive.mjs +3 -3
  222. package/esm2022/effect-directive/validators.directive.mjs +3 -3
  223. package/esm2022/exec/module.mjs +2 -2
  224. package/esm2022/exec/placeholder/component.mjs +4 -3
  225. package/esm2022/exec/service.mjs +3 -3
  226. package/esm2022/exec/terminal/component.mjs +87 -86
  227. package/esm2022/exec/terminal-group/component.mjs +42 -44
  228. package/esm2022/feature-gate-forbidden/component/component.mjs +9 -8
  229. package/esm2022/feature-gate-forbidden/module.mjs +2 -2
  230. package/esm2022/form/directives/value-trace.directive.mjs +4 -4
  231. package/esm2022/form/errors-mapper/base-errors-mapper.mjs +3 -3
  232. package/esm2022/form/errors-mapper/default-errors-mapper.service.mjs +3 -3
  233. package/esm2022/form/errors-mapper/errors-mapper-component/component.mjs +6 -5
  234. package/esm2022/form/errors-mapper/errors-mapper.directive.mjs +7 -6
  235. package/esm2022/form/errors-mapper/errors-mapper.module.mjs +2 -2
  236. package/esm2022/form/labels-editor/component.mjs +36 -36
  237. package/esm2022/form/taints-editor/component.mjs +42 -42
  238. package/esm2022/form/upload-file/component.mjs +9 -7
  239. package/esm2022/form/utils.mjs +1 -1
  240. package/esm2022/form/validators/async-function-validator.directive.mjs +4 -3
  241. package/esm2022/form/validators/dns1123-subdomain.mjs +1 -1
  242. package/esm2022/form/validators/function-validator.directive.mjs +4 -3
  243. package/esm2022/form/validators/maxlength-minlength-validator.directive.mjs +9 -7
  244. package/esm2022/form/validators/module.mjs +7 -8
  245. package/esm2022/form/validators/not-be-validator.directive.mjs +4 -3
  246. package/esm2022/form/validators/one-of-validator.directive.mjs +4 -3
  247. package/esm2022/form/validators/resource-limit.mjs +1 -1
  248. package/esm2022/form/validators/strong-password/strong-password-tooltip/component.mjs +30 -28
  249. package/esm2022/form/validators/strong-password/strong-password-validator.directive.mjs +3 -3
  250. package/esm2022/form/validators/strong-password/strong-password-validator.module.mjs +6 -7
  251. package/esm2022/form/validators/utils.mjs +1 -1
  252. package/esm2022/graph-canvas/components/graph-actions.component.mjs +3 -2
  253. package/esm2022/graph-canvas/components/graph-canvas.component.mjs +25 -23
  254. package/esm2022/graph-canvas/components/graph-link.component.mjs +12 -13
  255. package/esm2022/graph-canvas/components/graph-links.component.mjs +3 -2
  256. package/esm2022/graph-canvas/components/graph-node.directive.mjs +4 -4
  257. package/esm2022/graph-canvas/graph-canvas.module.mjs +2 -2
  258. package/esm2022/graph-canvas/graph-store.service.mjs +2 -2
  259. package/esm2022/grid-layout/components/grid/component.mjs +5 -4
  260. package/esm2022/grid-layout/components/grid-items/component.mjs +8 -7
  261. package/esm2022/grid-layout/directives/drag-handler.directive.mjs +3 -3
  262. package/esm2022/grid-layout/directives/placeholder.directive.mjs +3 -3
  263. package/esm2022/grid-layout/directives/remove-handler.directive.mjs +3 -3
  264. package/esm2022/grid-layout/directives/resize-handler.directive.mjs +3 -3
  265. package/esm2022/grid-layout/grid-layout.service.mjs +2 -2
  266. package/esm2022/grid-layout/grid-placeholder.service.mjs +3 -3
  267. package/esm2022/grid-layout/module.mjs +2 -2
  268. package/esm2022/grid-layout/utils/grid.utils.mjs +1 -1
  269. package/esm2022/grid-layout/utils/react-grid-layout.utils.mjs +1 -1
  270. package/esm2022/grid-layout/utils/scroll.utils.mjs +1 -1
  271. package/esm2022/help-document/component.mjs +18 -16
  272. package/esm2022/help-document/directive.mjs +4 -4
  273. package/esm2022/help-document/module.mjs +2 -2
  274. package/esm2022/help-document/service.mjs +4 -4
  275. package/esm2022/iframe-config/config.service.mjs +3 -3
  276. package/esm2022/k8s-resource-list/footer/component.mjs +103 -65
  277. package/esm2022/k8s-resource-list/k8s-resource-list.mjs +3 -6
  278. package/esm2022/k8s-resource-list/k8s-resource-list.module.mjs +19 -7
  279. package/esm2022/k8s-resource-list/k8s-resource-paged-list.mjs +1 -1
  280. package/esm2022/k8s-resource-list/utils.mjs +7 -3
  281. package/esm2022/k8s-shared/constants.mjs +53 -0
  282. package/esm2022/k8s-shared/k8s-resource-translate-key.pipe.mjs +30 -0
  283. package/esm2022/k8s-shared/k8s-shared-util.service.mjs +3 -3
  284. package/esm2022/k8s-shared/public-api.mjs +2 -1
  285. package/esm2022/k8s-shared/update-description-dialog/component.mjs +10 -9
  286. package/esm2022/k8s-shared/update-display-name-dialog/component.mjs +22 -20
  287. package/esm2022/k8s-shared/update-key-value-dialog/component.mjs +13 -11
  288. package/esm2022/lazy-component/lazy-load-component.mjs +25 -26
  289. package/esm2022/lazy-component/visibility.service.mjs +2 -2
  290. package/esm2022/license/license-api.mjs +3 -3
  291. package/esm2022/license/license-error/component.mjs +25 -25
  292. package/esm2022/license/license-error/module.mjs +2 -2
  293. package/esm2022/license/license.guard.mjs +4 -4
  294. package/esm2022/license/license.service.mjs +4 -4
  295. package/esm2022/list-display/component.mjs +39 -40
  296. package/esm2022/metric-chart/common-chart.service.mjs +3 -3
  297. package/esm2022/metric-chart/helpers.mjs +1 -1
  298. package/esm2022/metric-chart/metric-chart.component.mjs +6 -5
  299. package/esm2022/metric-chart/metric-chart.module.mjs +2 -2
  300. package/esm2022/metric-chart/metric-time-pick.mjs +20 -17
  301. package/esm2022/metric-chart/utils.mjs +1 -1
  302. package/esm2022/multi-search/action-input/component.mjs +180 -181
  303. package/esm2022/multi-search/form/component.mjs +26 -22
  304. package/esm2022/multi-search/multi-search-tags/component.mjs +33 -31
  305. package/esm2022/mutable/element.mjs +1 -1
  306. package/esm2022/mutable/mosaic/mosaic.component.mjs +6 -5
  307. package/esm2022/mutable/mosaic/mosaic.directive.mjs +3 -3
  308. package/esm2022/mutable/mutable.directive.mjs +4 -4
  309. package/esm2022/mutable/mutable.module.mjs +2 -2
  310. package/esm2022/notification/feedback-notification/component.mjs +22 -23
  311. package/esm2022/notification/notification-util.service.mjs +3 -3
  312. package/esm2022/notification/resource-error.interceptor.mjs +3 -3
  313. package/esm2022/overview-banner/overview-banner.component.mjs +3 -2
  314. package/esm2022/overview-banner/overview-banner.module.mjs +2 -2
  315. package/esm2022/page-guard/component/component.mjs +70 -78
  316. package/esm2022/page-guard/component/helper-directives.mjs +5 -5
  317. package/esm2022/page-guard/module.mjs +2 -2
  318. package/esm2022/page-scaffold/module.mjs +2 -2
  319. package/esm2022/page-scaffold/navigation/breadcrumb/breadcrumb-slot.directive.mjs +3 -3
  320. package/esm2022/page-scaffold/navigation/breadcrumb/breadcrumb.component.mjs +182 -91
  321. package/esm2022/page-scaffold/navigation/breadcrumb/breadcrumb.service.mjs +2 -2
  322. package/esm2022/page-scaffold/navigation/breadcrumb/module.mjs +2 -2
  323. package/esm2022/page-scaffold/navigation/lottie-icons/animation-data.mjs +1 -3
  324. package/esm2022/page-scaffold/navigation/lottie-icons/lottie-icon.directive.mjs +3 -3
  325. package/esm2022/page-scaffold/navigation/lottie-icons/module.mjs +2 -2
  326. package/esm2022/page-scaffold/navigation/lottie-icons/replace-lottie-colors.mjs +11 -11
  327. package/esm2022/page-scaffold/navigation/module.mjs +2 -2
  328. package/esm2022/page-scaffold/navigation/nav-menu/nav-item-li/nav-item-li.component.mjs +128 -99
  329. package/esm2022/page-scaffold/navigation/nav-menu/nav-item-ul/nav-item-ul.component.mjs +30 -32
  330. package/esm2022/page-scaffold/navigation/nav-menu/nav-menu.component.mjs +21 -19
  331. package/esm2022/page-scaffold/navigation/nav-menu/nav-menu.module.mjs +4 -4
  332. package/esm2022/page-scaffold/navigation/nav-menu/nav-menu.types.mjs +1 -1
  333. package/esm2022/page-scaffold/navigation/navconfig-loader/navconfig-loader.service.mjs +9 -8
  334. package/esm2022/page-scaffold/page/context.service.mjs +2 -2
  335. package/esm2022/page-scaffold/page/helper-directives.mjs +10 -10
  336. package/esm2022/page-scaffold/page/notices/maintenance.component.mjs +11 -11
  337. package/esm2022/page-scaffold/page/notices/notice.component.mjs +15 -15
  338. package/esm2022/page-scaffold/page/page.component.mjs +20 -20
  339. package/esm2022/page-scaffold/page/page.module.mjs +2 -2
  340. package/esm2022/page-scaffold/page-header/account-menu/component/component.mjs +40 -39
  341. package/esm2022/page-scaffold/page-header/account-menu/module.mjs +2 -2
  342. package/esm2022/page-scaffold/page-header/common-layout/common-layout.module.mjs +2 -2
  343. package/esm2022/page-scaffold/page-header/common-layout/context.service.mjs +4 -4
  344. package/esm2022/page-scaffold/page-header/common-layout/namespace-select/component.mjs +58 -59
  345. package/esm2022/page-scaffold/page-header/common-layout/product-select/component.mjs +68 -73
  346. package/esm2022/page-scaffold/page-header/common-layout/product-select/service.mjs +2 -2
  347. package/esm2022/page-scaffold/page-header/common-layout/project-select/base-selection.mjs +3 -3
  348. package/esm2022/page-scaffold/page-header/common-layout/store.service.mjs +3 -3
  349. package/esm2022/page-scaffold/page-header/component.mjs +24 -25
  350. package/esm2022/page-scaffold/page-header/enterprise-support-status/component.mjs +15 -14
  351. package/esm2022/page-scaffold/page-header/header-notify/component/header-notify.component.mjs +27 -27
  352. package/esm2022/page-scaffold/page-header/header-notify/component/notification-list/notification-list.component.mjs +22 -21
  353. package/esm2022/page-scaffold/page-header/header-notify/header-notify.module.mjs +2 -2
  354. package/esm2022/page-scaffold/page-header/header-notify/notify.service.mjs +5 -5
  355. package/esm2022/page-scaffold/page-header/help-menu/component/component.mjs +59 -62
  356. package/esm2022/page-scaffold/page-header/help-menu/module.mjs +2 -2
  357. package/esm2022/page-scaffold/page-header/module.mjs +2 -2
  358. package/esm2022/permission/helpers.mjs +1 -1
  359. package/esm2022/permission/k8s-permission.service.mjs +3 -3
  360. package/esm2022/permission/permission.guard.mjs +3 -3
  361. package/esm2022/pie-derivative-chart/donut-status/component.mjs +29 -28
  362. package/esm2022/pie-derivative-chart/indicator-color.directive.mjs +3 -3
  363. package/esm2022/pie-derivative-chart/numerical-limit.pipe.mjs +3 -3
  364. package/esm2022/pie-derivative-chart/pie-derivative-chart.module.mjs +7 -7
  365. package/esm2022/pie-derivative-chart/radial-bar/radial-bar-chart.component.mjs +84 -78
  366. package/esm2022/pie-derivative-chart/units.mjs +14 -0
  367. package/esm2022/pod-status/component.mjs +167 -0
  368. package/esm2022/pod-status/public-api.mjs +4 -0
  369. package/esm2022/pod-status/status.mjs +84 -0
  370. package/esm2022/pod-status/typings.mjs +19 -0
  371. package/esm2022/public-api.mjs +4 -1
  372. package/esm2022/searchable-selector/component.mjs +73 -75
  373. package/esm2022/searchable-selector/module.mjs +2 -2
  374. package/esm2022/skeleton/item/component.mjs +4 -3
  375. package/esm2022/skeleton/module.mjs +2 -2
  376. package/esm2022/skeleton/nav-skeleton/component.mjs +8 -7
  377. package/esm2022/table/component.mjs +275 -276
  378. package/esm2022/table/helper.mjs +1 -1
  379. package/esm2022/table/helpers.directive.mjs +3 -3
  380. package/esm2022/table/module.mjs +40 -31
  381. package/esm2022/table/util.service.mjs +4 -4
  382. package/esm2022/translate/helpers.mjs +1 -1
  383. package/esm2022/translate/i18n-config.mjs +3 -8
  384. package/esm2022/translate/translate.directive.mjs +9 -9
  385. package/esm2022/translate/translate.module.mjs +2 -2
  386. package/esm2022/translate/translate.pipe.mjs +3 -3
  387. package/esm2022/translate/translate.service.mjs +4 -4
  388. package/esm2022/view-chart/custom-template/dropdown-legend.mjs +24 -26
  389. package/esm2022/view-chart/legend/legend.component.mjs +66 -70
  390. package/esm2022/view-chart/view-chart.component.mjs +94 -105
  391. package/esm2022/view-chart/view-chart.module.mjs +2 -2
  392. package/esm2022/view-zchart/custom-template/dropdown-legend.mjs +24 -26
  393. package/esm2022/view-zchart/legend/legend.component.mjs +77 -82
  394. package/esm2022/view-zchart/units.mjs +1 -1
  395. package/esm2022/view-zchart/view-zchart.component.mjs +111 -120
  396. package/esm2022/view-zchart/view-zchart.module.mjs +2 -2
  397. package/esm2022/widget/card-section/card-section.component.mjs +13 -12
  398. package/esm2022/widget/confirm-delete/confirm-delete.component.mjs +45 -46
  399. package/esm2022/widget/current-time/component.mjs +4 -3
  400. package/esm2022/widget/date-range-picker/component.mjs +42 -40
  401. package/esm2022/widget/field-set/column/component.mjs +5 -3
  402. package/esm2022/widget/field-set/group/component.mjs +3 -2
  403. package/esm2022/widget/field-set/item/component.mjs +8 -7
  404. package/esm2022/widget/foldable-block/component.mjs +25 -24
  405. package/esm2022/widget/foldable-item-in-table/component.mjs +41 -42
  406. package/esm2022/widget/loading-mask/loading-mask.component.mjs +9 -9
  407. package/esm2022/widget/password-input/component.mjs +72 -71
  408. package/esm2022/widget/public-api.mjs +2 -1
  409. package/esm2022/widget/relative-time/component.mjs +4 -3
  410. package/esm2022/widget/resource-label/component.mjs +131 -0
  411. package/esm2022/widget/resource-multi-select/component.mjs +20 -19
  412. package/esm2022/widget/resource-multi-select/util.mjs +1 -1
  413. package/esm2022/widget/search-panel/component.mjs +3 -2
  414. package/esm2022/widget/search-panel/helper.directive.mjs +2 -2
  415. package/esm2022/widget/search-panel/search-item/component.mjs +3 -2
  416. package/esm2022/widget/select-prefix-label/directive.mjs +4 -4
  417. package/esm2022/widget/status-icon/status-icon.component.mjs +16 -15
  418. package/esm2022/widget/tags-label/component.mjs +61 -62
  419. package/esm2022/widget/terminating-tag/component.mjs +4 -3
  420. package/esm2022/widget/text-ellipsis/component.mjs +11 -11
  421. package/esm2022/widget/text-tooltip/directive.mjs +3 -3
  422. package/esm2022/widget/text-with-url/component.mjs +8 -8
  423. package/esm2022/widget/widget.module.mjs +2 -2
  424. package/esm2022/widget/zero-state/zero-state.component.mjs +45 -30
  425. package/esm2022/window-channel/base-window-channel.mjs +1 -1
  426. package/esm2022/window-channel/directives/host-link.directive.mjs +2 -2
  427. package/esm2022/window-channel/host-window-channel.service.mjs +3 -3
  428. package/esm2022/window-channel/plugin-window-channel.service.mjs +3 -3
  429. package/esm2022/workload-status-icon/component.mjs +72 -0
  430. package/esm2022/workload-status-icon/public-api.mjs +2 -0
  431. package/esm2022/xterm/xterm-terminal/xterm-terminal.component.mjs +68 -71
  432. package/esm2022/xterm/xterm-terminal/xterm-terminal.directive.mjs +3 -3
  433. package/esm2022/xterm/xterm.component.mjs +5 -4
  434. package/exec/terminal/component.d.ts +1 -4
  435. package/form/validators/async-function-validator.directive.d.ts +1 -1
  436. package/form/validators/function-validator.directive.d.ts +1 -1
  437. package/form/validators/maxlength-minlength-validator.directive.d.ts +2 -2
  438. package/form/validators/module.d.ts +8 -8
  439. package/form/validators/not-be-validator.directive.d.ts +1 -1
  440. package/form/validators/one-of-validator.directive.d.ts +1 -1
  441. package/form/validators/resource-limit.d.ts +1 -1
  442. package/form/validators/strong-password/strong-password-validator.module.d.ts +2 -2
  443. package/graph-canvas/components/graph-canvas.component.d.ts +2 -2
  444. package/k8s-resource-list/footer/component.d.ts +9 -1
  445. package/k8s-resource-list/k8s-resource-list.module.d.ts +1 -1
  446. package/k8s-resource-list/k8s-resource-paged-list.d.ts +2 -2
  447. package/k8s-shared/constants.d.ts +7 -0
  448. package/k8s-shared/k8s-resource-translate-key.pipe.d.ts +9 -0
  449. package/k8s-shared/public-api.d.ts +1 -0
  450. package/license/license-api.d.ts +1 -1
  451. package/license/license-error/component.d.ts +1 -1
  452. package/metric-chart/helpers.d.ts +1 -1
  453. package/package.json +2 -1
  454. package/page-guard/component/component.d.ts +1 -1
  455. package/page-scaffold/navigation/breadcrumb/breadcrumb.component.d.ts +2 -0
  456. package/page-scaffold/navigation/nav-menu/nav-item-li/nav-item-li.component.d.ts +1 -0
  457. package/page-scaffold/navigation/nav-menu/nav-menu.types.d.ts +8 -1
  458. package/page-scaffold/navigation/navconfig-loader/navconfig-loader.service.d.ts +2 -1
  459. package/page-scaffold/page-header/common-layout/product-select/component.d.ts +1 -3
  460. package/page-scaffold/page-header/header-notify/utils.d.ts +3 -3
  461. package/pie-derivative-chart/radial-bar/radial-bar-chart.component.d.ts +4 -0
  462. package/pie-derivative-chart/units.d.ts +2 -0
  463. package/pod-status/component.d.ts +27 -0
  464. package/pod-status/public-api.d.ts +3 -0
  465. package/pod-status/status.d.ts +4 -0
  466. package/pod-status/typings.d.ts +16 -0
  467. package/public-api.d.ts +3 -0
  468. package/styles/ansi-color.scss +131 -0
  469. package/styles/global.scss +4 -1
  470. package/styles/tailwind-preset.scss +1 -1
  471. package/table/component.d.ts +6 -4
  472. package/table/helper.d.ts +1 -1
  473. package/table/module.d.ts +23 -7
  474. package/widget/public-api.d.ts +1 -0
  475. package/widget/resource-label/component.d.ts +25 -0
  476. package/widget/zero-state/zero-state.component.d.ts +5 -2
  477. package/workload-status-icon/component.d.ts +36 -0
  478. package/workload-status-icon/public-api.d.ts +1 -0
  479. package/a-chart/a-chart.module.d.ts +0 -16
  480. package/a-chart/base-chart.d.ts +0 -24
  481. package/a-chart/chart-status.component.d.ts +0 -15
  482. package/a-chart/chart.component.d.ts +0 -56
  483. package/a-chart/components/base-component.d.ts +0 -12
  484. package/a-chart/components/legend/base-legend.component.d.ts +0 -31
  485. package/a-chart/components/legend/dropdown-legend.d.ts +0 -17
  486. package/a-chart/components/legend/legend.component.d.ts +0 -17
  487. package/a-chart/components/legend/public-api.d.ts +0 -3
  488. package/a-chart/components/public-api.d.ts +0 -3
  489. package/a-chart/components/title.component.d.ts +0 -17
  490. package/a-chart/constant.d.ts +0 -6
  491. package/a-chart/public-api.d.ts +0 -12
  492. package/a-chart/types.d.ts +0 -38
  493. package/a-chart/utils.d.ts +0 -13
  494. package/a-metric-chart/a-metric-chart.component.d.ts +0 -154
  495. package/a-metric-chart/a-metric-chart.module.d.ts +0 -16
  496. package/a-metric-chart/bar-gauge/bar-gauge.component.d.ts +0 -25
  497. package/a-metric-chart/base-chart.component.d.ts +0 -14
  498. package/a-metric-chart/metric-chart-refresh.service.d.ts +0 -8
  499. package/a-metric-chart/public-api.d.ts +0 -14
  500. package/a-metric-chart/stat-chart/stat-chart.component.d.ts +0 -11
  501. package/a-metric-chart/table-chart/table-chart.component.d.ts +0 -29
  502. package/a-metric-chart/types.d.ts +0 -130
  503. package/a-metric-chart/utils/public-api.d.ts +0 -3
  504. package/a-metric-chart/utils/range.d.ts +0 -1
  505. package/a-metric-chart/utils/unit.d.ts +0 -48
  506. package/a-metric-chart/utils/util.d.ts +0 -45
  507. package/api/monitor-api.service.d.ts +0 -104
  508. package/esm2022/a-chart/a-chart.module.mjs +0 -76
  509. package/esm2022/a-chart/base-chart.mjs +0 -98
  510. package/esm2022/a-chart/chart-status.component.mjs +0 -195
  511. package/esm2022/a-chart/chart.component.mjs +0 -307
  512. package/esm2022/a-chart/components/base-component.mjs +0 -23
  513. package/esm2022/a-chart/components/legend/base-legend.component.mjs +0 -111
  514. package/esm2022/a-chart/components/legend/dropdown-legend.mjs +0 -199
  515. package/esm2022/a-chart/components/legend/legend.component.mjs +0 -102
  516. package/esm2022/a-chart/components/legend/public-api.mjs +0 -4
  517. package/esm2022/a-chart/components/public-api.mjs +0 -4
  518. package/esm2022/a-chart/components/title.component.mjs +0 -99
  519. package/esm2022/a-chart/constant.mjs +0 -24
  520. package/esm2022/a-chart/public-api.mjs +0 -13
  521. package/esm2022/a-chart/types.mjs +0 -7
  522. package/esm2022/a-chart/utils.mjs +0 -37
  523. package/esm2022/a-metric-chart/a-metric-chart.component.mjs +0 -937
  524. package/esm2022/a-metric-chart/a-metric-chart.module.mjs +0 -74
  525. package/esm2022/a-metric-chart/bar-gauge/bar-gauge.component.mjs +0 -166
  526. package/esm2022/a-metric-chart/base-chart.component.mjs +0 -30
  527. package/esm2022/a-metric-chart/metric-chart-refresh.service.mjs +0 -18
  528. package/esm2022/a-metric-chart/public-api.mjs +0 -15
  529. package/esm2022/a-metric-chart/stat-chart/stat-chart.component.mjs +0 -122
  530. package/esm2022/a-metric-chart/table-chart/table-chart.component.mjs +0 -201
  531. package/esm2022/a-metric-chart/types.mjs +0 -26
  532. package/esm2022/a-metric-chart/utils/public-api.mjs +0 -4
  533. package/esm2022/a-metric-chart/utils/range.mjs +0 -35
  534. package/esm2022/a-metric-chart/utils/unit.mjs +0 -83
  535. package/esm2022/a-metric-chart/utils/util.mjs +0 -243
  536. package/esm2022/api/monitor-api.service.mjs +0 -158
  537. package/esm2022/notification/notification-util.module.mjs +0 -32
  538. package/esm2022/page-scaffold/navigation/lottie-icons/animations/dashboard.json +0 -1
  539. package/notification/notification-util.module.d.ts +0 -10
@@ -281,10 +281,10 @@ __decorate([
281
281
  ObservableInput(),
282
282
  __metadata("design:type", Observable)
283
283
  ], TranslateService.prototype, "locale$", void 0);
284
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TranslateService, [{
284
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TranslateService, [{
285
285
  type: Injectable,
286
286
  args: [{ providedIn: 'root' }]
287
- }], function () { return [{ type: i1.HttpClient }, { type: undefined, decorators: [{
287
+ }], () => [{ type: i1.HttpClient }, { type: undefined, decorators: [{
288
288
  type: Inject,
289
289
  args: [TOKEN_BASE_HREF]
290
290
  }] }, { type: undefined, decorators: [{
@@ -297,5 +297,5 @@ __decorate([
297
297
  }, {
298
298
  type: Inject,
299
299
  args: [TRANSLATIONS]
300
- }] }]; }, { remoteLoaded$: [], locale$: [] }); })();
301
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvdHJhbnNsYXRlL3RyYW5zbGF0ZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7O0dBR0c7QUFFSCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUNMLE1BQU0sRUFDTixVQUFVLEVBRVYsUUFBUSxFQUNSLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQy9ELE9BQU8sRUFDTCxLQUFLLEVBQ0wsVUFBVSxFQUNWLE9BQU8sRUFDUCxRQUFRLEVBQ1IsVUFBVSxFQUNWLFVBQVUsRUFDVixNQUFNLEVBQ04sUUFBUSxFQUNSLEdBQUcsRUFDSCxTQUFTLEdBQ1YsTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRWpDLE9BQU8sRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM1RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDckQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFM0MsT0FBTyxFQUNMLGlCQUFpQixFQUNqQix3QkFBd0IsRUFDeEIsY0FBYyxHQUNmLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxZQUFZLEVBQUUsTUFBTSxVQUFVLENBQUM7OztBQVUzRCxNQUFNLE9BQU8sZ0JBQWdCO0lB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OEJBQ0EsVUFBVTtpREFBUzt1RkFuQjFCLGdCQUFnQjtjQUQ1QixVQUFVO2VBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFOztzQkFnQzdCLE1BQU07dUJBQUMsZUFBZTs7c0JBRXRCLFFBQVE7O3NCQUNSLE1BQU07dUJBQUMsaUJBQWlCOztzQkFFeEIsUUFBUTs7c0JBQUksTUFBTTt1QkFBQyxZQUFZO3dCQTVCekIsYUFBYSxNQVdiLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvblxuICogQG1vZHVsZSB0cmFuc2xhdGVcbiAqL1xuXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHtcbiAgSW5qZWN0LFxuICBJbmplY3RhYmxlLFxuICBPbkRlc3Ryb3ksXG4gIE9wdGlvbmFsLFxuICBpc0Rldk1vZGUsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZ2V0LCBoZWFkLCBpc1BsYWluT2JqZWN0LCB0ZW1wbGF0ZSB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQge1xuICBFTVBUWSxcbiAgT2JzZXJ2YWJsZSxcbiAgU3ViamVjdCxcbiAgZm9ya0pvaW4sXG4gIHRocm93RXJyb3IsXG4gIGNhdGNoRXJyb3IsXG4gIGZpbHRlcixcbiAgZmluYWxpemUsXG4gIG1hcCxcbiAgdGFrZVVudGlsLFxufSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGFqYXggfSBmcm9tICdyeGpzL2FqYXgnO1xuXG5pbXBvcnQgeyBBUElfR0FURVdBWSwgVEVNUExBVEVfT1BUSU9OUyB9IGZyb20gJy4uL2NvcmUvY29uc3RhbnRzL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBUT0tFTl9CQVNFX0hSRUYgfSBmcm9tICcuLi9jb3JlL3B1YmxpYy1hcGknO1xuaW1wb3J0IHsgaXNBYnNvbHV0ZVVybCB9IGZyb20gJy4uL2NvcmUvdXRpbHMvY29tbW9uJztcbmltcG9ydCB7IE9ic2VydmFibGVJbnB1dCB9IGZyb20gJy4uL2NvcmUvdXRpbHMvZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBwYXJzZSB9IGZyb20gJy4uL2NvcmUvdXRpbHMveWFtbCc7XG5cbmltcG9ydCB7XG4gIEZBTExCQUNLX0xBTkdVQUdFLFxuICBMT0NBTEVfUExBQ0VIT0xERVJfUkVHRVgsXG4gIExPQ0FMRV9TVE9SQUdFLFxufSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBUUkFOU0xBVEVfT1BUSU9OUywgVFJBTlNMQVRJT05TIH0gZnJvbSAnLi90b2tlbnMnO1xuaW1wb3J0IHtcbiAgVHJhbnNsYXRlS2V5LFxuICBUcmFuc2xhdGVPcHRpb25zLFxuICBUcmFuc2xhdGlvbixcbiAgVHJhbnNsYXRpb25WYWx1ZSxcbiAgVHJhbnNsYXRpb25zLFxufSBmcm9tICcuL3R5cGVzJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBUcmFuc2xhdGVTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgX3JlbW90ZUxvYWRlZD86IGJvb2xlYW47XG5cbiAgZ2V0IHJlbW90ZUxvYWRlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5fcmVtb3RlTG9hZGVkO1xuICB9XG5cbiAgQE9ic2VydmFibGVJbnB1dCgnX3JlbW90ZUxvYWRlZCcpXG4gIHJlYWRvbmx5IHJlbW90ZUxvYWRlZCQ6IE9ic2VydmFibGU8Ym9vbGVhbiB8IHVuZGVmaW5lZD47XG5cbiAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95JCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRpb25zTGlzdDogQXJyYXk8UmVhZG9ubHk8VHJhbnNsYXRpb25zPj47XG4gIHByaXZhdGUgcmVtb3RlVHJhbnNsYXRpb25zTGlzdDogQXJyYXk8UmVhZG9ubHk8VHJhbnNsYXRpb25zPj47XG4gIHByaXZhdGUgcmVhZG9ubHkgb3B0aW9uczogVHJhbnNsYXRlT3B0aW9ucztcblxuICBsb2NhbGU6IHN0cmluZztcblxuICBAT2JzZXJ2YWJsZUlucHV0KClcbiAgcmVhZG9ubHkgbG9jYWxlJDogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuXG4gIGdldCBsb2NhbGVzKCkge1xuICAgIHJldHVybiB0aGlzLm9wdGlvbnMubG9jYWxlcztcbiAgfVxuXG4gIGdldCBmYWxsYmFja0xvY2FsZSgpIHtcbiAgICByZXR1cm4gdGhpcy5vcHRpb25zLmZhbGxiYWNrTG9jYWxlO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBodHRwOiBIdHRwQ2xpZW50LFxuICAgIEBJbmplY3QoVE9LRU5fQkFTRV9IUkVGKVxuICAgIHByaXZhdGUgcmVhZG9ubHkgYmFzZUhyZWY6IHN0cmluZyxcbiAgICBAT3B0aW9uYWwoKVxuICAgIEBJbmplY3QoVFJBTlNMQVRFX09QVElPTlMpXG4gICAgb3B0aW9uczogVHJhbnNsYXRlT3B0aW9ucyxcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KFRSQU5TTEFUSU9OUykgdHJhbnNsYXRpb25MaXN0OiBUcmFuc2xhdGlvbnNbXSxcbiAgKSB7XG4gICAgdGhpcy5sb2NhbGUgPSBvcHRpb25zPy5sb2NhbGUgfHwgbmF2aWdhdG9yLmxhbmd1YWdlO1xuICAgIHRoaXMub3B0aW9ucyA9IHtcbiAgICAgIGxvY2FsZXM6IFt0aGlzLmxvY2FsZV0sXG4gICAgICBmYWxsYmFja0xvY2FsZTogRkFMTEJBQ0tfTEFOR1VBR0UsXG4gICAgICAuLi5vcHRpb25zLFxuICAgIH07XG5cbiAgICB0aGlzLnRyYW5zbGF0aW9uc0xpc3QgPSBbXG4gICAgICBvcHRpb25zLnRyYW5zbGF0aW9ucyxcbiAgICAgIC4uLih0cmFuc2xhdGlvbkxpc3QgfHwgW10pLFxuICAgIF0uZmlsdGVyKEJvb2xlYW4pO1xuXG4gICAgaWYgKG9wdGlvbnMucmVtb3RlVXJsKSB7XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShvcHRpb25zLnJlbW90ZVVybCkpIHtcbiAgICAgICAgb3B0aW9ucy5yZW1vdGVVcmwuZm9yRWFjaCh1cmwgPT4gdGhpcy5hZGRSZW1vdGVUcmFuc2xhdGlvbnModXJsKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmFkZFJlbW90ZVRyYW5zbGF0aW9ucyhvcHRpb25zLnJlbW90ZVVybCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5kZXN0cm95JCQubmV4dCgpO1xuICAgIHRoaXMuZGVzdHJveSQkLmNvbXBsZXRlKCk7XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIGtleSAtIOe/u+ivkWtleVxuICAgKiBAcGFyYW0gZGF0YSAtIOagueaNrue/u+ivkeS4iuS4i+aWh+aVsOaNruiOt+WPlue/u+ivkeWGheWuue+8jOe/u+ivkemhueS4jeWtmOWcqOebtOaOpei/lOWbniBrZXkg5paH5pysXG4gICAqIEBwYXJhbSBpZ25vcmVOb25FeGlzdCAtIOW8gOWPkeeOr+Wig+aYr+WQpuW/veinhuS4jeWtmOWcqOeahOe/u+ivkemhuVxuICAgKi9cbiAgZ2V0KGtleTogVHJhbnNsYXRlS2V5LCBkYXRhPzogdW5rbm93biwgaWdub3JlTm9uRXhpc3QgPSBmYWxzZSkge1xuICAgIGNvbnN0IHRyYW5zbGF0aW9uID0gdGhpcy5nZXRSYXcoa2V5LCBpZ25vcmVOb25FeGlzdCk7XG4gICAgaWYgKGRhdGEgIT0gbnVsbCAmJiB0eXBlb2YgZGF0YSAhPT0gJ29iamVjdCcpIHtcbiAgICAgIGRhdGEgPSBbZGF0YV07XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICByZXR1cm4gdGVtcGxhdGUodHJhbnNsYXRpb24sIFRFTVBMQVRFX09QVElPTlMpKGRhdGEgYXMgb2JqZWN0KTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICBjb25zb2xlW2lzRGV2TW9kZSgpID8gJ2Vycm9yJyA6ICd3YXJuJ10oXG4gICAgICAgIGBUaGUgdHJhbnNsYXRpb24ga2V5ICcke2tleX0nIGlzIG1pc3NpbmcgdGhlIG5lY2Vzc2FyeSBwYXJhbWV0ZXJzLmAsXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiDnm7TmjqXov5Tlm57nv7vor5HmlofmnKzmqKHmnb9cbiAgICogQHBhcmFtIGtleSAtIOe/u+ivkWtleVxuICAgKiBAcGFyYW0gaWdub3JlTm9uRXhpc3QgLSDlvIDlj5Hnjq/looPmmK/lkKblv73op4bkuI3lrZjlnKjnmoTnv7vor5HpoblcbiAgICovXG4gIGdldFJhdyhrZXk6IFRyYW5zbGF0ZUtleSwgaWdub3JlTm9uRXhpc3QgPSBmYWxzZSkge1xuICAgIHJldHVybiB0eXBlb2Yga2V5ID09PSAnc3RyaW5nJ1xuICAgICAgPyB0aGlzLl9nZXQoa2V5LCBpZ25vcmVOb25FeGlzdClcbiAgICAgIDogKHRoaXMuX2dldFZhbHVlKGtleSkgYXMgc3RyaW5nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiDmoLnmja4gYGxvY2FsZXNgIOW+queOr+WIh+aNouW9k+WJjeWMuuWfn+iuvue9rlxuICAgKi9cbiAgdG9nZ2xlTG9jYWxlKCkge1xuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5vcHRpb25zLmxvY2FsZXMuaW5kZXhPZih0aGlzLmxvY2FsZSk7XG4gICAgaWYgKGluZGV4ID09PSAtMSkge1xuICAgICAgaWYgKGlzRGV2TW9kZSgpKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ2Bsb2NhbGVzYCBoYXMgbm90IGJlZW4gaW5pdGlhbGl6ZWQgY29ycmVjdGx5Jyk7XG4gICAgICB9XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IG5leHRMb2NhbGUgPVxuICAgICAgdGhpcy5vcHRpb25zLmxvY2FsZXNbXG4gICAgICAgIGluZGV4ID09PSB0aGlzLm9wdGlvbnMubG9jYWxlcy5sZW5ndGggLSAxID8gMCA6IGluZGV4ICsgMVxuICAgICAgXTtcblxuICAgIGlmICghbmV4dExvY2FsZSB8fCB0aGlzLmxvY2FsZSA9PT0gbmV4dExvY2FsZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc2V0TG9jYWxlKG5leHRMb2NhbGUpO1xuICB9XG5cbiAgc2V0TG9jYWxlKGxvY2FsZTogc3RyaW5nKSB7XG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oTE9DQUxFX1NUT1JBR0UsIGxvY2FsZSk7XG4gICAgdGhpcy5sb2NhbGUgPSBsb2NhbGU7XG4gIH1cblxuICAvKipcbiAgICog5omL5Yqo5re75Yqg6K+t6KiA5YyFXG4gICAqL1xuICBhZGRUcmFuc2xhdGlvbnModHJhbnNsYXRpb25zOiBUcmFuc2xhdGlvbnMpIHtcbiAgICB0aGlzLnRyYW5zbGF0aW9uc0xpc3QudW5zaGlmdChPYmplY3QuZnJlZXplKHRyYW5zbGF0aW9ucykpO1xuICB9XG5cbiAgLyoqXG4gICAqIOaJi+WKqOa3u+WKoOivreiogOWMhVxuICAgKi9cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHNvbmFyanMvY29nbml0aXZlLWNvbXBsZXhpdHlcbiAgYWRkUmVtb3RlVHJhbnNsYXRpb25zKHJlbW90ZVVybDogc3RyaW5nKSB7XG4gICAgaWYgKCFyZW1vdGVVcmwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5fcmVtb3RlTG9hZGVkID0gZmFsc2U7XG4gICAgcmVtb3RlVXJsID0gaGVhZChyZW1vdGVVcmwuc3BsaXQoLyMvKSk7XG4gICAgY29uc3QgaXNBYnNvbHV0ZSA9IGlzQWJzb2x1dGVVcmwocmVtb3RlVXJsKTtcbiAgICBjb25zdCBpc0FwaUdhdGVXYXlSZXF1ZXN0ID0gcmVtb3RlVXJsLnN0YXJ0c1dpdGgoQVBJX0dBVEVXQVkpO1xuICAgIGlmIChpc0Rldk1vZGUoKSkge1xuICAgICAgbGV0IGVycm9yTWVzc2FnZTogc3RyaW5nO1xuICAgICAgaWYgKCFpc0Fic29sdXRlICYmICghdGhpcy5iYXNlSHJlZiB8fCAhaXNBYnNvbHV0ZVVybCh0aGlzLmJhc2VIcmVmKSkpIHtcbiAgICAgICAgZXJyb3JNZXNzYWdlID0gJ2Fic29sdXRlIGJhc2UgaHJlZiBpcyByZXF1aXJlZCBmb3IgcmVsYXRpdmUgcmVtb3RlIHVybCc7XG4gICAgICB9IGVsc2UgaWYgKHJlbW90ZVVybC5zcGxpdCgnPycpWzBdLmluY2x1ZGVzKCcuLycpKSB7XG4gICAgICAgIGVycm9yTWVzc2FnZSA9XG4gICAgICAgICAgJ2RvIG5vdCB1c2UgYW55IGRvdCB3aXRoIHNsYXNoIGZvciByZWxhdGl2ZSB1cmwgd2hpY2ggc2hvdWxkIGFsd2F5cyBiYXNlIGZyb20gYmFzZSBocmVmJztcbiAgICAgIH1cbiAgICAgIGlmIChlcnJvck1lc3NhZ2UpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihlcnJvck1lc3NhZ2UpO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoIWlzQWJzb2x1dGUgJiYgIWlzQXBpR2F0ZVdheVJlcXVlc3QpIHtcbiAgICAgIHJlbW90ZVVybCA9XG4gICAgICAgICh0aGlzLmJhc2VIcmVmLmVuZHNXaXRoKCcvJykgPyB0aGlzLmJhc2VIcmVmIDogdGhpcy5iYXNlSHJlZiArICcvJykgK1xuICAgICAgICByZW1vdGVVcmw7XG4gICAgfVxuICAgIChMT0NBTEVfUExBQ0VIT0xERVJfUkVHRVgudGVzdChyZW1vdGVVcmwpXG4gICAgICA/IGZvcmtKb2luKFxuICAgICAgICAgIHRoaXMub3B0aW9ucy5sb2NhbGVzLm1hcChsb2NhbGUgPT5cbiAgICAgICAgICAgIHRoaXMuZmV0Y2hUcmFuc2xhdGlvbihyZW1vdGVVcmwsIGxvY2FsZSkucGlwZShcbiAgICAgICAgICAgICAgY2F0Y2hFcnJvcihlcnJvciA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5sb29zZSkge1xuICAgICAgICAgICAgICAgICAgY29uc3QgbG9vc2VMb2NhbGUgPSB0aGlzLl9nZXRMb29zZUxvY2FsZShsb2NhbGUpO1xuICAgICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICBsb2NhbGUgIT09IGxvb3NlTG9jYWxlICYmXG4gICAgICAgICAgICAgICAgICAgICF0aGlzLm9wdGlvbnMubG9jYWxlcy5pbmNsdWRlcyhsb29zZUxvY2FsZSlcbiAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5mZXRjaFRyYW5zbGF0aW9uKHJlbW90ZVVybCwgbG9vc2VMb2NhbGUpO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gaXNEZXZNb2RlKCkgPyB0aHJvd0Vycm9yKCgpID0+IGVycm9yKSA6IEVNUFRZO1xuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgZmlsdGVyKGlzUGxhaW5PYmplY3QpLFxuICAgICAgICAgICAgICBtYXAoXG4gICAgICAgICAgICAgICAgKHRyYW5zbGF0aW9uOiBUcmFuc2xhdGlvbikgPT5cbiAgICAgICAgICAgICAgICAgICh7XG4gICAgICAgICAgICAgICAgICAgIFtsb2NhbGVdOiB0cmFuc2xhdGlvbixcbiAgICAgICAgICAgICAgICAgIH0gYXMgVHJhbnNsYXRpb25zKSxcbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICksXG4gICAgICAgICAgKSxcbiAgICAgICAgKS5waXBlKG1hcChfID0+IF8ucmVkdWNlKE9iamVjdC5hc3NpZ24pKSlcbiAgICAgIDogdGhpcy5mZXRjaFRyYW5zbGF0aW9uKHJlbW90ZVVybCkucGlwZShcbiAgICAgICAgICBjYXRjaEVycm9yKGVycm9yID0+IChpc0Rldk1vZGUoKSA/IHRocm93RXJyb3IoKCkgPT4gZXJyb3IpIDogRU1QVFkpKSxcbiAgICAgICAgKVxuICAgIClcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JCQpLFxuICAgICAgICBmaW5hbGl6ZSgoKSA9PiAodGhpcy5fcmVtb3RlTG9hZGVkID0gdHJ1ZSkpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZShyZW1vdGVUcmFuc2xhdGlvbnMgPT4ge1xuICAgICAgICBpZiAoIXJlbW90ZVRyYW5zbGF0aW9ucykge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRoaXMucmVtb3RlVHJhbnNsYXRpb25zTGlzdCkge1xuICAgICAgICAgIHRoaXMucmVtb3RlVHJhbnNsYXRpb25zTGlzdCA9IFtdO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucmVtb3RlVHJhbnNsYXRpb25zTGlzdC51bnNoaWZ0KE9iamVjdC5mcmVlemUocmVtb3RlVHJhbnNsYXRpb25zKSk7XG4gICAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiDku47ov5znqIsgdXJsIOaooeadv+WSjOWMuuWfn+iOt+WPlue/u+ivkeWMhVxuICAgKi9cbiAgZmV0Y2hUcmFuc2xhdGlvbihyZW1vdGVVcmw6IHN0cmluZyk6IE9ic2VydmFibGU8VHJhbnNsYXRpb25zPjtcbiAgZmV0Y2hUcmFuc2xhdGlvbihyZW1vdGVVcmw6IHN0cmluZywgbG9jYWxlOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFRyYW5zbGF0aW9uPjtcbiAgZmV0Y2hUcmFuc2xhdGlvbihyZW1vdGVVcmw6IHN0cmluZywgbG9jYWxlPzogc3RyaW5nKSB7XG4gICAgaWYgKGlzRGV2TW9kZSgpICYmIExPQ0FMRV9QTEFDRUhPTERFUl9SRUdFWC50ZXN0KHJlbW90ZVVybCkgJiYgIWxvY2FsZSkge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcbiAgICAgICAgJ2Bsb2NhbGVgIGlzIHJlcXVpcmVkIHNpbmUgdGhlIHByb3ZpZGVkIHJlbW90ZSB1cmwgY29udGFpbnMgbG9jYWxlIHBsYWNlaG9sZGVyJyxcbiAgICAgICk7XG4gICAgfVxuICAgIGNvbnN0IGlzSlNPTiA9IHJlbW90ZVVybC5lbmRzV2l0aCgnLmpzb24nKTtcbiAgICBjb25zdCBpc0FwaUdhdGVXYXlSZXF1ZXN0ID0gcmVtb3RlVXJsLnN0YXJ0c1dpdGgoQVBJX0dBVEVXQVkpO1xuICAgIGNvbnN0IHVybCA9IGxvY2FsZVxuICAgICAgPyByZW1vdGVVcmwucmVwbGFjZShMT0NBTEVfUExBQ0VIT0xERVJfUkVHRVgsIGxvY2FsZSlcbiAgICAgIDogcmVtb3RlVXJsO1xuICAgIGNvbnN0IHJlc3BvbnNlVHlwZSA9IGlzSlNPTiA/ICdqc29uJyA6ICd0ZXh0JztcbiAgICBpZiAoaXNBcGlHYXRlV2F5UmVxdWVzdCkge1xuICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAucmVxdWVzdCgnR0VUJywgdXJsLCB7IHJlc3BvbnNlVHlwZSB9KVxuICAgICAgICAucGlwZShtYXAoYm9keSA9PiAoaXNKU09OID8gYm9keSA6IHBhcnNlKGJvZHkpKSkpO1xuICAgIH1cbiAgICByZXR1cm4gYWpheCh7XG4gICAgICB1cmwsXG4gICAgICByZXNwb25zZVR5cGUsXG4gICAgfSkucGlwZShcbiAgICAgIG1hcCgoeyByZXNwb25zZSB9KSA9PiAoaXNKU09OID8gcmVzcG9uc2UgOiBwYXJzZShyZXNwb25zZSBhcyBzdHJpbmcpKSksXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldExvb3NlTG9jYWxlKGxvY2FsZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGhlYWQobG9jYWxlLnNwbGl0KC9bXy1dLykpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0VmFsdWUoXG4gICAgc291cmNlOiBUcmFuc2xhdGlvbixcbiAgICBsb2NhbGUgPSB0aGlzLmxvY2FsZSxcbiAgKTogVHJhbnNsYXRpb25WYWx1ZSB7XG4gICAgaWYgKCFzb3VyY2UpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgbGV0IHZhbHVlID0gc291cmNlW2xvY2FsZV07XG4gICAgaWYgKHZhbHVlID09IG51bGwgJiYgdGhpcy5vcHRpb25zLmxvb3NlKSB7XG4gICAgICBjb25zdCBsb29zZUxvY2FsZSA9IHRoaXMuX2dldExvb3NlTG9jYWxlKGxvY2FsZSk7XG4gICAgICB2YWx1ZSA9XG4gICAgICAgIGxvY2FsZSA9PT0gbG9vc2VMb2NhbGVcbiAgICAgICAgICA/IE9iamVjdC5lbnRyaWVzKHNvdXJjZSkuZmluZChcbiAgICAgICAgICAgICAgKFtrZXldKSA9PiBsb2NhbGUgPT09IHRoaXMuX2dldExvb3NlTG9jYWxlKGtleSksXG4gICAgICAgICAgICApPy5bMV1cbiAgICAgICAgICA6IHNvdXJjZVtsb29zZUxvY2FsZV07XG4gICAgfVxuICAgIGlmICh2YWx1ZSA9PSBudWxsICYmIGxvY2FsZSAhPT0gdGhpcy5vcHRpb25zLmZhbGxiYWNrTG9jYWxlKSB7XG4gICAgICByZXR1cm4gdGhpcy5fZ2V0VmFsdWUoc291cmNlLCB0aGlzLm9wdGlvbnMuZmFsbGJhY2tMb2NhbGUpO1xuICAgIH1cbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICBwcml2YXRlIF9nZXRXaXRoRmFsbGJhY2soXG4gICAga2V5OiBzdHJpbmcsXG4gICAgbG9jYWxlID0gdGhpcy5sb2NhbGUsXG4gICAgdHJhbnNsYXRpb25zOiBUcmFuc2xhdGlvbnMsXG4gICk6IHN0cmluZyB7XG4gICAgY29uc3QgdmFsdWUgPSBnZXQodGhpcy5fZ2V0VmFsdWUodHJhbnNsYXRpb25zLCBsb2NhbGUpLCBrZXkpO1xuICAgIGlmICh2YWx1ZSAhPSBudWxsKSB7XG4gICAgICBpZiAoXG4gICAgICAgIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiZcbiAgICAgICAgaXNEZXZNb2RlKCkgJiZcbiAgICAgICAgdHlwZW9mIGdldCh2YWx1ZSwgU3ltYm9sLnRvUHJpbWl0aXZlKSAhPT0gJ2Z1bmN0aW9uJ1xuICAgICAgKSB7XG4gICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICBgVGhlIHRyYW5zbGF0aW9uIGZvciBsb2NhbGU6IFxcYCR7bG9jYWxlfVxcYCBhbmQga2V5OlxcYCR7a2V5fVxcYCBpcyBhbiBvYmplY3QsIHdoaWNoIGNvdWxkIGJlIHVuZXhwZWN0ZWRgLFxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIFN0cmluZyh2YWx1ZSk7XG4gICAgfVxuICAgIGlmIChsb2NhbGUgIT09IHRoaXMub3B0aW9ucy5mYWxsYmFja0xvY2FsZSkge1xuICAgICAgcmV0dXJuIHRoaXMuX2dldFdpdGhGYWxsYmFjayhcbiAgICAgICAga2V5LFxuICAgICAgICB0aGlzLm9wdGlvbnMuZmFsbGJhY2tMb2NhbGUsXG4gICAgICAgIHRyYW5zbGF0aW9ucyxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0QmFzZShcbiAgICBrZXk6IHN0cmluZyxcbiAgICBsb2NhbGUgPSB0aGlzLmxvY2FsZSxcbiAgICB0cmFuc2xhdGlvbnNMaXN0OiBUcmFuc2xhdGlvbnNbXSxcbiAgKSB7XG4gICAgaWYgKCF0cmFuc2xhdGlvbnNMaXN0IHx8IHRyYW5zbGF0aW9uc0xpc3QubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGZvciAobGV0IGkgPSB0cmFuc2xhdGlvbnNMaXN0Lmxlbmd0aDsgaSA+IDA7IGktLSkge1xuICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLl9nZXRXaXRoRmFsbGJhY2soa2V5LCBsb2NhbGUsIHRyYW5zbGF0aW9uc0xpc3RbaSAtIDFdKTtcbiAgICAgIGlmICh2YWx1ZSAhPSBudWxsKSB7XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9nZXQoa2V5OiBzdHJpbmcsIGlnbm9yZU5vbkV4aXN0ID0gZmFsc2UsIGxvY2FsZSA9IHRoaXMubG9jYWxlKSB7XG4gICAgbGV0IHZhbHVlID0gdGhpcy5fZ2V0QmFzZShrZXksIGxvY2FsZSwgdGhpcy5yZW1vdGVUcmFuc2xhdGlvbnNMaXN0KTtcbiAgICBpZiAodmFsdWUgPT0gbnVsbCkge1xuICAgICAgdmFsdWUgPSB0aGlzLl9nZXRCYXNlKGtleSwgbG9jYWxlLCB0aGlzLnRyYW5zbGF0aW9uc0xpc3QpO1xuICAgIH1cbiAgICBpZiAodmFsdWUgIT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cbiAgICBpZiAoXG4gICAgICBpc0Rldk1vZGUoKSAmJlxuICAgICAgIWlnbm9yZU5vbkV4aXN0ICYmXG4gICAgICB0eXBlb2YgZ2V0KHZhbHVlLCBTeW1ib2wudG9QcmltaXRpdmUpICE9PSAnZnVuY3Rpb24nXG4gICAgKSB7XG4gICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgIGBObyB0cmFuc2xhdGlvbiBmb3VuZCBmb3IgbG9jYWxlOiBcXGAke2xvY2FsZX1cXGAgYW5kIGtleTogXFxgJHtrZXl9XFxgLCB3aGljaCBjb3VsZCBiZSB1bmV4cGVjdGVkYCxcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiBrZXk7XG4gIH1cblxuICBwcml2YXRlIF9jb21wYXJlS2V5cyhcbiAgICBsb2NhbGU6IHN0cmluZyxcbiAgICB0cmFuc2xhdGlvbjogVHJhbnNsYXRpb24sXG4gICAgcHJldlRyYW5zbGF0aW9uOiBUcmFuc2xhdGlvbixcbiAgICBwYXRoOiBzdHJpbmdbXSA9IFtdLFxuICApIHtcbiAgICBpZiAodHJhbnNsYXRpb24gPT0gbnVsbCB8fCBwcmV2VHJhbnNsYXRpb24gPT0gbnVsbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIE9iamVjdC5lbnRyaWVzKHRyYW5zbGF0aW9uKS5mb3JFYWNoKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgIGlmICghT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHByZXZUcmFuc2xhdGlvbiwga2V5KSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHByZXZWYWx1ZSA9IHByZXZUcmFuc2xhdGlvbltrZXldO1xuICAgICAgY29uc3QgdmFsdWVJc1BsYWluT2JqZWN0ID0gaXNQbGFpbk9iamVjdCh2YWx1ZSk7XG4gICAgICBjb25zdCBwcmV2VmFsdWVJc1BsYWluT2JqZWN0ID0gaXNQbGFpbk9iamVjdChwcmV2VmFsdWUpO1xuXG4gICAgICBpZiAodmFsdWVJc1BsYWluT2JqZWN0ICYmIHByZXZWYWx1ZUlzUGxhaW5PYmplY3QpIHtcbiAgICAgICAgdGhpcy5fY29tcGFyZUtleXMoXG4gICAgICAgICAgbG9jYWxlLFxuICAgICAgICAgIHZhbHVlIGFzIFRyYW5zbGF0aW9uLFxuICAgICAgICAgIHByZXZWYWx1ZSBhcyBUcmFuc2xhdGlvbixcbiAgICAgICAgICBbLi4ucGF0aCwga2V5XSxcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAoIXZhbHVlSXNQbGFpbk9iamVjdCAmJiAhcHJldlZhbHVlSXNQbGFpbk9iamVjdCkge1xuICAgICAgICBjb25zdCBvdXRwdXRQYXRoID0gWy4uLnBhdGgsIGtleV0uam9pbignIC0+ICcpO1xuICAgICAgICBpZiAodmFsdWUgPT09IHByZXZWYWx1ZSkge1xuICAgICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAgIGBUaGUgY3VzdG9taXplZCB0cmFuc2xhdGlvbiBmb3IgbG9jYWxlOiBcXGAke2xvY2FsZX1cXGAgYW5kIHBhdGg6IFxcYCR7b3V0cHV0UGF0aH1cXGAgaXMgZHVwbGljYXRlZCB3aXRoIHRoZSBvdGhlciB0cmFuc2xhdGlvbiwgcGxlYXNlIHJlbW92ZSBpdCBpbiB5b3VyIHRyYW5zbGF0aW9uIGZpbGUuYCxcbiAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAgIGBUd28ga2V5cyB0aGF0IHRoZSBsb2NhbGUgaXMgXFxgJHtsb2NhbGV9XFxgIGFuZCB0aGUgcGF0aCBpcyBcXGAke291dHB1dFBhdGh9XFxgIGFyZSBzYW1lLCAgYnV0IHRoZWlyIHZhbHVlcyBhcmUgbm90IGVxdWFsICwgcGxlYXNlIHJlbW92ZSBvbmUgb2YgdGhlbSBvciBjaGFuZ2Ugb25lIG9mIHRoZSBrZXlzLmAsXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG4iXX0=
300
+ }] }], { remoteLoaded$: [], locale$: [] }); })();
301
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvdHJhbnNsYXRlL3RyYW5zbGF0ZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7O0dBR0c7QUFFSCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUNMLE1BQU0sRUFDTixVQUFVLEVBRVYsUUFBUSxFQUNSLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQy9ELE9BQU8sRUFDTCxLQUFLLEVBQ0wsVUFBVSxFQUNWLE9BQU8sRUFDUCxRQUFRLEVBQ1IsVUFBVSxFQUNWLFVBQVUsRUFDVixNQUFNLEVBQ04sUUFBUSxFQUNSLEdBQUcsRUFDSCxTQUFTLEdBQ1YsTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRWpDLE9BQU8sRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM1RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDckQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFM0MsT0FBTyxFQUNMLGlCQUFpQixFQUNqQix3QkFBd0IsRUFDeEIsY0FBYyxHQUNmLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxZQUFZLEVBQUUsTUFBTSxVQUFVLENBQUM7OztBQVUzRCxNQUFNLE9BQU8sZ0JBQWdCO0lB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QUssS0FBSyxTQUFTLEVBQUUsQ0FBQztvQkFDeEIsT0FBTyxDQUFDLElBQUksQ0FDViw0Q0FBNEMsTUFBTSxrQkFBa0IsVUFBVSx5RkFBeUYsQ0FDeEssQ0FBQztnQkFDSixDQUFDO3FCQUFNLENBQUM7b0JBQ04sT0FBTyxDQUFDLElBQUksQ0FDVixpQ0FBaUMsTUFBTSx3QkFBd0IsVUFBVSxxR0FBcUcsQ0FDL0ssQ0FBQztnQkFDSixDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztpRkE5V1UsZ0JBQWdCLDBDQStCakIsZUFBZSxlQUdmLGlCQUFpQixrQkFFTCxZQUFZO3VFQXBDdkIsZ0JBQWdCLFdBQWhCLGdCQUFnQixtQkFESCxNQUFNOztBQVNyQjtJQURSLGVBQWUsQ0FBQyxlQUFlLENBQUM7OEJBQ1QsVUFBVTt1REFBc0I7QUFXL0M7SUFEUixlQUFlLEVBQUU7OEJBQ0EsVUFBVTtpREFBUztpRkFuQjFCLGdCQUFnQjtjQUQ1QixVQUFVO2VBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFOztzQkFnQzdCLE1BQU07dUJBQUMsZUFBZTs7c0JBRXRCLFFBQVE7O3NCQUNSLE1BQU07dUJBQUMsaUJBQWlCOztzQkFFeEIsUUFBUTs7c0JBQUksTUFBTTt1QkFBQyxZQUFZO3FCQTVCekIsYUFBYSxNQVdiLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvblxuICogQG1vZHVsZSB0cmFuc2xhdGVcbiAqL1xuXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHtcbiAgSW5qZWN0LFxuICBJbmplY3RhYmxlLFxuICBPbkRlc3Ryb3ksXG4gIE9wdGlvbmFsLFxuICBpc0Rldk1vZGUsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZ2V0LCBoZWFkLCBpc1BsYWluT2JqZWN0LCB0ZW1wbGF0ZSB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQge1xuICBFTVBUWSxcbiAgT2JzZXJ2YWJsZSxcbiAgU3ViamVjdCxcbiAgZm9ya0pvaW4sXG4gIHRocm93RXJyb3IsXG4gIGNhdGNoRXJyb3IsXG4gIGZpbHRlcixcbiAgZmluYWxpemUsXG4gIG1hcCxcbiAgdGFrZVVudGlsLFxufSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGFqYXggfSBmcm9tICdyeGpzL2FqYXgnO1xuXG5pbXBvcnQgeyBBUElfR0FURVdBWSwgVEVNUExBVEVfT1BUSU9OUyB9IGZyb20gJy4uL2NvcmUvY29uc3RhbnRzL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBUT0tFTl9CQVNFX0hSRUYgfSBmcm9tICcuLi9jb3JlL3B1YmxpYy1hcGknO1xuaW1wb3J0IHsgaXNBYnNvbHV0ZVVybCB9IGZyb20gJy4uL2NvcmUvdXRpbHMvY29tbW9uJztcbmltcG9ydCB7IE9ic2VydmFibGVJbnB1dCB9IGZyb20gJy4uL2NvcmUvdXRpbHMvZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBwYXJzZSB9IGZyb20gJy4uL2NvcmUvdXRpbHMveWFtbCc7XG5cbmltcG9ydCB7XG4gIEZBTExCQUNLX0xBTkdVQUdFLFxuICBMT0NBTEVfUExBQ0VIT0xERVJfUkVHRVgsXG4gIExPQ0FMRV9TVE9SQUdFLFxufSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBUUkFOU0xBVEVfT1BUSU9OUywgVFJBTlNMQVRJT05TIH0gZnJvbSAnLi90b2tlbnMnO1xuaW1wb3J0IHtcbiAgVHJhbnNsYXRlS2V5LFxuICBUcmFuc2xhdGVPcHRpb25zLFxuICBUcmFuc2xhdGlvbixcbiAgVHJhbnNsYXRpb25WYWx1ZSxcbiAgVHJhbnNsYXRpb25zLFxufSBmcm9tICcuL3R5cGVzJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBUcmFuc2xhdGVTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgX3JlbW90ZUxvYWRlZD86IGJvb2xlYW47XG5cbiAgZ2V0IHJlbW90ZUxvYWRlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5fcmVtb3RlTG9hZGVkO1xuICB9XG5cbiAgQE9ic2VydmFibGVJbnB1dCgnX3JlbW90ZUxvYWRlZCcpXG4gIHJlYWRvbmx5IHJlbW90ZUxvYWRlZCQ6IE9ic2VydmFibGU8Ym9vbGVhbiB8IHVuZGVmaW5lZD47XG5cbiAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95JCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRpb25zTGlzdDogQXJyYXk8UmVhZG9ubHk8VHJhbnNsYXRpb25zPj47XG4gIHByaXZhdGUgcmVtb3RlVHJhbnNsYXRpb25zTGlzdDogQXJyYXk8UmVhZG9ubHk8VHJhbnNsYXRpb25zPj47XG4gIHByaXZhdGUgcmVhZG9ubHkgb3B0aW9uczogVHJhbnNsYXRlT3B0aW9ucztcblxuICBsb2NhbGU6IHN0cmluZztcblxuICBAT2JzZXJ2YWJsZUlucHV0KClcbiAgcmVhZG9ubHkgbG9jYWxlJDogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuXG4gIGdldCBsb2NhbGVzKCkge1xuICAgIHJldHVybiB0aGlzLm9wdGlvbnMubG9jYWxlcztcbiAgfVxuXG4gIGdldCBmYWxsYmFja0xvY2FsZSgpIHtcbiAgICByZXR1cm4gdGhpcy5vcHRpb25zLmZhbGxiYWNrTG9jYWxlO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBodHRwOiBIdHRwQ2xpZW50LFxuICAgIEBJbmplY3QoVE9LRU5fQkFTRV9IUkVGKVxuICAgIHByaXZhdGUgcmVhZG9ubHkgYmFzZUhyZWY6IHN0cmluZyxcbiAgICBAT3B0aW9uYWwoKVxuICAgIEBJbmplY3QoVFJBTlNMQVRFX09QVElPTlMpXG4gICAgb3B0aW9uczogVHJhbnNsYXRlT3B0aW9ucyxcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KFRSQU5TTEFUSU9OUykgdHJhbnNsYXRpb25MaXN0OiBUcmFuc2xhdGlvbnNbXSxcbiAgKSB7XG4gICAgdGhpcy5sb2NhbGUgPSBvcHRpb25zPy5sb2NhbGUgfHwgbmF2aWdhdG9yLmxhbmd1YWdlO1xuICAgIHRoaXMub3B0aW9ucyA9IHtcbiAgICAgIGxvY2FsZXM6IFt0aGlzLmxvY2FsZV0sXG4gICAgICBmYWxsYmFja0xvY2FsZTogRkFMTEJBQ0tfTEFOR1VBR0UsXG4gICAgICAuLi5vcHRpb25zLFxuICAgIH07XG5cbiAgICB0aGlzLnRyYW5zbGF0aW9uc0xpc3QgPSBbXG4gICAgICBvcHRpb25zLnRyYW5zbGF0aW9ucyxcbiAgICAgIC4uLih0cmFuc2xhdGlvbkxpc3QgfHwgW10pLFxuICAgIF0uZmlsdGVyKEJvb2xlYW4pO1xuXG4gICAgaWYgKG9wdGlvbnMucmVtb3RlVXJsKSB7XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShvcHRpb25zLnJlbW90ZVVybCkpIHtcbiAgICAgICAgb3B0aW9ucy5yZW1vdGVVcmwuZm9yRWFjaCh1cmwgPT4gdGhpcy5hZGRSZW1vdGVUcmFuc2xhdGlvbnModXJsKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmFkZFJlbW90ZVRyYW5zbGF0aW9ucyhvcHRpb25zLnJlbW90ZVVybCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5kZXN0cm95JCQubmV4dCgpO1xuICAgIHRoaXMuZGVzdHJveSQkLmNvbXBsZXRlKCk7XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIGtleSAtIOe/u+ivkWtleVxuICAgKiBAcGFyYW0gZGF0YSAtIOagueaNrue/u+ivkeS4iuS4i+aWh+aVsOaNruiOt+WPlue/u+ivkeWGheWuue+8jOe/u+ivkemhueS4jeWtmOWcqOebtOaOpei/lOWbniBrZXkg5paH5pysXG4gICAqIEBwYXJhbSBpZ25vcmVOb25FeGlzdCAtIOW8gOWPkeeOr+Wig+aYr+WQpuW/veinhuS4jeWtmOWcqOeahOe/u+ivkemhuVxuICAgKi9cbiAgZ2V0KGtleTogVHJhbnNsYXRlS2V5LCBkYXRhPzogdW5rbm93biwgaWdub3JlTm9uRXhpc3QgPSBmYWxzZSkge1xuICAgIGNvbnN0IHRyYW5zbGF0aW9uID0gdGhpcy5nZXRSYXcoa2V5LCBpZ25vcmVOb25FeGlzdCk7XG4gICAgaWYgKGRhdGEgIT0gbnVsbCAmJiB0eXBlb2YgZGF0YSAhPT0gJ29iamVjdCcpIHtcbiAgICAgIGRhdGEgPSBbZGF0YV07XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICByZXR1cm4gdGVtcGxhdGUodHJhbnNsYXRpb24sIFRFTVBMQVRFX09QVElPTlMpKGRhdGEgYXMgb2JqZWN0KTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICBjb25zb2xlW2lzRGV2TW9kZSgpID8gJ2Vycm9yJyA6ICd3YXJuJ10oXG4gICAgICAgIGBUaGUgdHJhbnNsYXRpb24ga2V5ICcke2tleX0nIGlzIG1pc3NpbmcgdGhlIG5lY2Vzc2FyeSBwYXJhbWV0ZXJzLmAsXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiDnm7TmjqXov5Tlm57nv7vor5HmlofmnKzmqKHmnb9cbiAgICogQHBhcmFtIGtleSAtIOe/u+ivkWtleVxuICAgKiBAcGFyYW0gaWdub3JlTm9uRXhpc3QgLSDlvIDlj5Hnjq/looPmmK/lkKblv73op4bkuI3lrZjlnKjnmoTnv7vor5HpoblcbiAgICovXG4gIGdldFJhdyhrZXk6IFRyYW5zbGF0ZUtleSwgaWdub3JlTm9uRXhpc3QgPSBmYWxzZSkge1xuICAgIHJldHVybiB0eXBlb2Yga2V5ID09PSAnc3RyaW5nJ1xuICAgICAgPyB0aGlzLl9nZXQoa2V5LCBpZ25vcmVOb25FeGlzdClcbiAgICAgIDogKHRoaXMuX2dldFZhbHVlKGtleSkgYXMgc3RyaW5nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiDmoLnmja4gYGxvY2FsZXNgIOW+queOr+WIh+aNouW9k+WJjeWMuuWfn+iuvue9rlxuICAgKi9cbiAgdG9nZ2xlTG9jYWxlKCkge1xuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5vcHRpb25zLmxvY2FsZXMuaW5kZXhPZih0aGlzLmxvY2FsZSk7XG4gICAgaWYgKGluZGV4ID09PSAtMSkge1xuICAgICAgaWYgKGlzRGV2TW9kZSgpKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ2Bsb2NhbGVzYCBoYXMgbm90IGJlZW4gaW5pdGlhbGl6ZWQgY29ycmVjdGx5Jyk7XG4gICAgICB9XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IG5leHRMb2NhbGUgPVxuICAgICAgdGhpcy5vcHRpb25zLmxvY2FsZXNbXG4gICAgICAgIGluZGV4ID09PSB0aGlzLm9wdGlvbnMubG9jYWxlcy5sZW5ndGggLSAxID8gMCA6IGluZGV4ICsgMVxuICAgICAgXTtcblxuICAgIGlmICghbmV4dExvY2FsZSB8fCB0aGlzLmxvY2FsZSA9PT0gbmV4dExvY2FsZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc2V0TG9jYWxlKG5leHRMb2NhbGUpO1xuICB9XG5cbiAgc2V0TG9jYWxlKGxvY2FsZTogc3RyaW5nKSB7XG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oTE9DQUxFX1NUT1JBR0UsIGxvY2FsZSk7XG4gICAgdGhpcy5sb2NhbGUgPSBsb2NhbGU7XG4gIH1cblxuICAvKipcbiAgICog5omL5Yqo5re75Yqg6K+t6KiA5YyFXG4gICAqL1xuICBhZGRUcmFuc2xhdGlvbnModHJhbnNsYXRpb25zOiBUcmFuc2xhdGlvbnMpIHtcbiAgICB0aGlzLnRyYW5zbGF0aW9uc0xpc3QudW5zaGlmdChPYmplY3QuZnJlZXplKHRyYW5zbGF0aW9ucykpO1xuICB9XG5cbiAgLyoqXG4gICAqIOaJi+WKqOa3u+WKoOivreiogOWMhVxuICAgKi9cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHNvbmFyanMvY29nbml0aXZlLWNvbXBsZXhpdHlcbiAgYWRkUmVtb3RlVHJhbnNsYXRpb25zKHJlbW90ZVVybDogc3RyaW5nKSB7XG4gICAgaWYgKCFyZW1vdGVVcmwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5fcmVtb3RlTG9hZGVkID0gZmFsc2U7XG4gICAgcmVtb3RlVXJsID0gaGVhZChyZW1vdGVVcmwuc3BsaXQoLyMvKSk7XG4gICAgY29uc3QgaXNBYnNvbHV0ZSA9IGlzQWJzb2x1dGVVcmwocmVtb3RlVXJsKTtcbiAgICBjb25zdCBpc0FwaUdhdGVXYXlSZXF1ZXN0ID0gcmVtb3RlVXJsLnN0YXJ0c1dpdGgoQVBJX0dBVEVXQVkpO1xuICAgIGlmIChpc0Rldk1vZGUoKSkge1xuICAgICAgbGV0IGVycm9yTWVzc2FnZTogc3RyaW5nO1xuICAgICAgaWYgKCFpc0Fic29sdXRlICYmICghdGhpcy5iYXNlSHJlZiB8fCAhaXNBYnNvbHV0ZVVybCh0aGlzLmJhc2VIcmVmKSkpIHtcbiAgICAgICAgZXJyb3JNZXNzYWdlID0gJ2Fic29sdXRlIGJhc2UgaHJlZiBpcyByZXF1aXJlZCBmb3IgcmVsYXRpdmUgcmVtb3RlIHVybCc7XG4gICAgICB9IGVsc2UgaWYgKHJlbW90ZVVybC5zcGxpdCgnPycpWzBdLmluY2x1ZGVzKCcuLycpKSB7XG4gICAgICAgIGVycm9yTWVzc2FnZSA9XG4gICAgICAgICAgJ2RvIG5vdCB1c2UgYW55IGRvdCB3aXRoIHNsYXNoIGZvciByZWxhdGl2ZSB1cmwgd2hpY2ggc2hvdWxkIGFsd2F5cyBiYXNlIGZyb20gYmFzZSBocmVmJztcbiAgICAgIH1cbiAgICAgIGlmIChlcnJvck1lc3NhZ2UpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihlcnJvck1lc3NhZ2UpO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoIWlzQWJzb2x1dGUgJiYgIWlzQXBpR2F0ZVdheVJlcXVlc3QpIHtcbiAgICAgIHJlbW90ZVVybCA9XG4gICAgICAgICh0aGlzLmJhc2VIcmVmLmVuZHNXaXRoKCcvJykgPyB0aGlzLmJhc2VIcmVmIDogdGhpcy5iYXNlSHJlZiArICcvJykgK1xuICAgICAgICByZW1vdGVVcmw7XG4gICAgfVxuICAgIChMT0NBTEVfUExBQ0VIT0xERVJfUkVHRVgudGVzdChyZW1vdGVVcmwpXG4gICAgICA/IGZvcmtKb2luKFxuICAgICAgICAgIHRoaXMub3B0aW9ucy5sb2NhbGVzLm1hcChsb2NhbGUgPT5cbiAgICAgICAgICAgIHRoaXMuZmV0Y2hUcmFuc2xhdGlvbihyZW1vdGVVcmwsIGxvY2FsZSkucGlwZShcbiAgICAgICAgICAgICAgY2F0Y2hFcnJvcihlcnJvciA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5sb29zZSkge1xuICAgICAgICAgICAgICAgICAgY29uc3QgbG9vc2VMb2NhbGUgPSB0aGlzLl9nZXRMb29zZUxvY2FsZShsb2NhbGUpO1xuICAgICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICBsb2NhbGUgIT09IGxvb3NlTG9jYWxlICYmXG4gICAgICAgICAgICAgICAgICAgICF0aGlzLm9wdGlvbnMubG9jYWxlcy5pbmNsdWRlcyhsb29zZUxvY2FsZSlcbiAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5mZXRjaFRyYW5zbGF0aW9uKHJlbW90ZVVybCwgbG9vc2VMb2NhbGUpO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gaXNEZXZNb2RlKCkgPyB0aHJvd0Vycm9yKCgpID0+IGVycm9yKSA6IEVNUFRZO1xuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgZmlsdGVyKGlzUGxhaW5PYmplY3QpLFxuICAgICAgICAgICAgICBtYXAoXG4gICAgICAgICAgICAgICAgKHRyYW5zbGF0aW9uOiBUcmFuc2xhdGlvbikgPT5cbiAgICAgICAgICAgICAgICAgICh7XG4gICAgICAgICAgICAgICAgICAgIFtsb2NhbGVdOiB0cmFuc2xhdGlvbixcbiAgICAgICAgICAgICAgICAgIH0gYXMgVHJhbnNsYXRpb25zKSxcbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICksXG4gICAgICAgICAgKSxcbiAgICAgICAgKS5waXBlKG1hcChfID0+IF8ucmVkdWNlKE9iamVjdC5hc3NpZ24pKSlcbiAgICAgIDogdGhpcy5mZXRjaFRyYW5zbGF0aW9uKHJlbW90ZVVybCkucGlwZShcbiAgICAgICAgICBjYXRjaEVycm9yKGVycm9yID0+IChpc0Rldk1vZGUoKSA/IHRocm93RXJyb3IoKCkgPT4gZXJyb3IpIDogRU1QVFkpKSxcbiAgICAgICAgKVxuICAgIClcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JCQpLFxuICAgICAgICBmaW5hbGl6ZSgoKSA9PiAodGhpcy5fcmVtb3RlTG9hZGVkID0gdHJ1ZSkpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZShyZW1vdGVUcmFuc2xhdGlvbnMgPT4ge1xuICAgICAgICBpZiAoIXJlbW90ZVRyYW5zbGF0aW9ucykge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRoaXMucmVtb3RlVHJhbnNsYXRpb25zTGlzdCkge1xuICAgICAgICAgIHRoaXMucmVtb3RlVHJhbnNsYXRpb25zTGlzdCA9IFtdO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucmVtb3RlVHJhbnNsYXRpb25zTGlzdC51bnNoaWZ0KE9iamVjdC5mcmVlemUocmVtb3RlVHJhbnNsYXRpb25zKSk7XG4gICAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiDku47ov5znqIsgdXJsIOaooeadv+WSjOWMuuWfn+iOt+WPlue/u+ivkeWMhVxuICAgKi9cbiAgZmV0Y2hUcmFuc2xhdGlvbihyZW1vdGVVcmw6IHN0cmluZyk6IE9ic2VydmFibGU8VHJhbnNsYXRpb25zPjtcbiAgZmV0Y2hUcmFuc2xhdGlvbihyZW1vdGVVcmw6IHN0cmluZywgbG9jYWxlOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFRyYW5zbGF0aW9uPjtcbiAgZmV0Y2hUcmFuc2xhdGlvbihyZW1vdGVVcmw6IHN0cmluZywgbG9jYWxlPzogc3RyaW5nKSB7XG4gICAgaWYgKGlzRGV2TW9kZSgpICYmIExPQ0FMRV9QTEFDRUhPTERFUl9SRUdFWC50ZXN0KHJlbW90ZVVybCkgJiYgIWxvY2FsZSkge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcbiAgICAgICAgJ2Bsb2NhbGVgIGlzIHJlcXVpcmVkIHNpbmUgdGhlIHByb3ZpZGVkIHJlbW90ZSB1cmwgY29udGFpbnMgbG9jYWxlIHBsYWNlaG9sZGVyJyxcbiAgICAgICk7XG4gICAgfVxuICAgIGNvbnN0IGlzSlNPTiA9IHJlbW90ZVVybC5lbmRzV2l0aCgnLmpzb24nKTtcbiAgICBjb25zdCBpc0FwaUdhdGVXYXlSZXF1ZXN0ID0gcmVtb3RlVXJsLnN0YXJ0c1dpdGgoQVBJX0dBVEVXQVkpO1xuICAgIGNvbnN0IHVybCA9IGxvY2FsZVxuICAgICAgPyByZW1vdGVVcmwucmVwbGFjZShMT0NBTEVfUExBQ0VIT0xERVJfUkVHRVgsIGxvY2FsZSlcbiAgICAgIDogcmVtb3RlVXJsO1xuICAgIGNvbnN0IHJlc3BvbnNlVHlwZSA9IGlzSlNPTiA/ICdqc29uJyA6ICd0ZXh0JztcbiAgICBpZiAoaXNBcGlHYXRlV2F5UmVxdWVzdCkge1xuICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAucmVxdWVzdCgnR0VUJywgdXJsLCB7IHJlc3BvbnNlVHlwZSB9KVxuICAgICAgICAucGlwZShtYXAoYm9keSA9PiAoaXNKU09OID8gYm9keSA6IHBhcnNlKGJvZHkpKSkpO1xuICAgIH1cbiAgICByZXR1cm4gYWpheCh7XG4gICAgICB1cmwsXG4gICAgICByZXNwb25zZVR5cGUsXG4gICAgfSkucGlwZShcbiAgICAgIG1hcCgoeyByZXNwb25zZSB9KSA9PiAoaXNKU09OID8gcmVzcG9uc2UgOiBwYXJzZShyZXNwb25zZSBhcyBzdHJpbmcpKSksXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldExvb3NlTG9jYWxlKGxvY2FsZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGhlYWQobG9jYWxlLnNwbGl0KC9bXy1dLykpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0VmFsdWUoXG4gICAgc291cmNlOiBUcmFuc2xhdGlvbixcbiAgICBsb2NhbGUgPSB0aGlzLmxvY2FsZSxcbiAgKTogVHJhbnNsYXRpb25WYWx1ZSB7XG4gICAgaWYgKCFzb3VyY2UpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgbGV0IHZhbHVlID0gc291cmNlW2xvY2FsZV07XG4gICAgaWYgKHZhbHVlID09IG51bGwgJiYgdGhpcy5vcHRpb25zLmxvb3NlKSB7XG4gICAgICBjb25zdCBsb29zZUxvY2FsZSA9IHRoaXMuX2dldExvb3NlTG9jYWxlKGxvY2FsZSk7XG4gICAgICB2YWx1ZSA9XG4gICAgICAgIGxvY2FsZSA9PT0gbG9vc2VMb2NhbGVcbiAgICAgICAgICA/IE9iamVjdC5lbnRyaWVzKHNvdXJjZSkuZmluZChcbiAgICAgICAgICAgICAgKFtrZXldKSA9PiBsb2NhbGUgPT09IHRoaXMuX2dldExvb3NlTG9jYWxlKGtleSksXG4gICAgICAgICAgICApPy5bMV1cbiAgICAgICAgICA6IHNvdXJjZVtsb29zZUxvY2FsZV07XG4gICAgfVxuICAgIGlmICh2YWx1ZSA9PSBudWxsICYmIGxvY2FsZSAhPT0gdGhpcy5vcHRpb25zLmZhbGxiYWNrTG9jYWxlKSB7XG4gICAgICByZXR1cm4gdGhpcy5fZ2V0VmFsdWUoc291cmNlLCB0aGlzLm9wdGlvbnMuZmFsbGJhY2tMb2NhbGUpO1xuICAgIH1cbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICBwcml2YXRlIF9nZXRXaXRoRmFsbGJhY2soXG4gICAga2V5OiBzdHJpbmcsXG4gICAgbG9jYWxlID0gdGhpcy5sb2NhbGUsXG4gICAgdHJhbnNsYXRpb25zOiBUcmFuc2xhdGlvbnMsXG4gICk6IHN0cmluZyB7XG4gICAgY29uc3QgdmFsdWUgPSBnZXQodGhpcy5fZ2V0VmFsdWUodHJhbnNsYXRpb25zLCBsb2NhbGUpLCBrZXkpO1xuICAgIGlmICh2YWx1ZSAhPSBudWxsKSB7XG4gICAgICBpZiAoXG4gICAgICAgIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiZcbiAgICAgICAgaXNEZXZNb2RlKCkgJiZcbiAgICAgICAgdHlwZW9mIGdldCh2YWx1ZSwgU3ltYm9sLnRvUHJpbWl0aXZlKSAhPT0gJ2Z1bmN0aW9uJ1xuICAgICAgKSB7XG4gICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICBgVGhlIHRyYW5zbGF0aW9uIGZvciBsb2NhbGU6IFxcYCR7bG9jYWxlfVxcYCBhbmQga2V5OlxcYCR7a2V5fVxcYCBpcyBhbiBvYmplY3QsIHdoaWNoIGNvdWxkIGJlIHVuZXhwZWN0ZWRgLFxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIFN0cmluZyh2YWx1ZSk7XG4gICAgfVxuICAgIGlmIChsb2NhbGUgIT09IHRoaXMub3B0aW9ucy5mYWxsYmFja0xvY2FsZSkge1xuICAgICAgcmV0dXJuIHRoaXMuX2dldFdpdGhGYWxsYmFjayhcbiAgICAgICAga2V5LFxuICAgICAgICB0aGlzLm9wdGlvbnMuZmFsbGJhY2tMb2NhbGUsXG4gICAgICAgIHRyYW5zbGF0aW9ucyxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0QmFzZShcbiAgICBrZXk6IHN0cmluZyxcbiAgICBsb2NhbGUgPSB0aGlzLmxvY2FsZSxcbiAgICB0cmFuc2xhdGlvbnNMaXN0OiBUcmFuc2xhdGlvbnNbXSxcbiAgKSB7XG4gICAgaWYgKCF0cmFuc2xhdGlvbnNMaXN0IHx8IHRyYW5zbGF0aW9uc0xpc3QubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGZvciAobGV0IGkgPSB0cmFuc2xhdGlvbnNMaXN0Lmxlbmd0aDsgaSA+IDA7IGktLSkge1xuICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLl9nZXRXaXRoRmFsbGJhY2soa2V5LCBsb2NhbGUsIHRyYW5zbGF0aW9uc0xpc3RbaSAtIDFdKTtcbiAgICAgIGlmICh2YWx1ZSAhPSBudWxsKSB7XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9nZXQoa2V5OiBzdHJpbmcsIGlnbm9yZU5vbkV4aXN0ID0gZmFsc2UsIGxvY2FsZSA9IHRoaXMubG9jYWxlKSB7XG4gICAgbGV0IHZhbHVlID0gdGhpcy5fZ2V0QmFzZShrZXksIGxvY2FsZSwgdGhpcy5yZW1vdGVUcmFuc2xhdGlvbnNMaXN0KTtcbiAgICBpZiAodmFsdWUgPT0gbnVsbCkge1xuICAgICAgdmFsdWUgPSB0aGlzLl9nZXRCYXNlKGtleSwgbG9jYWxlLCB0aGlzLnRyYW5zbGF0aW9uc0xpc3QpO1xuICAgIH1cbiAgICBpZiAodmFsdWUgIT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cbiAgICBpZiAoXG4gICAgICBpc0Rldk1vZGUoKSAmJlxuICAgICAgIWlnbm9yZU5vbkV4aXN0ICYmXG4gICAgICB0eXBlb2YgZ2V0KHZhbHVlLCBTeW1ib2wudG9QcmltaXRpdmUpICE9PSAnZnVuY3Rpb24nXG4gICAgKSB7XG4gICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgIGBObyB0cmFuc2xhdGlvbiBmb3VuZCBmb3IgbG9jYWxlOiBcXGAke2xvY2FsZX1cXGAgYW5kIGtleTogXFxgJHtrZXl9XFxgLCB3aGljaCBjb3VsZCBiZSB1bmV4cGVjdGVkYCxcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiBrZXk7XG4gIH1cblxuICBwcml2YXRlIF9jb21wYXJlS2V5cyhcbiAgICBsb2NhbGU6IHN0cmluZyxcbiAgICB0cmFuc2xhdGlvbjogVHJhbnNsYXRpb24sXG4gICAgcHJldlRyYW5zbGF0aW9uOiBUcmFuc2xhdGlvbixcbiAgICBwYXRoOiBzdHJpbmdbXSA9IFtdLFxuICApIHtcbiAgICBpZiAodHJhbnNsYXRpb24gPT0gbnVsbCB8fCBwcmV2VHJhbnNsYXRpb24gPT0gbnVsbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIE9iamVjdC5lbnRyaWVzKHRyYW5zbGF0aW9uKS5mb3JFYWNoKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgIGlmICghT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHByZXZUcmFuc2xhdGlvbiwga2V5KSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHByZXZWYWx1ZSA9IHByZXZUcmFuc2xhdGlvbltrZXldO1xuICAgICAgY29uc3QgdmFsdWVJc1BsYWluT2JqZWN0ID0gaXNQbGFpbk9iamVjdCh2YWx1ZSk7XG4gICAgICBjb25zdCBwcmV2VmFsdWVJc1BsYWluT2JqZWN0ID0gaXNQbGFpbk9iamVjdChwcmV2VmFsdWUpO1xuXG4gICAgICBpZiAodmFsdWVJc1BsYWluT2JqZWN0ICYmIHByZXZWYWx1ZUlzUGxhaW5PYmplY3QpIHtcbiAgICAgICAgdGhpcy5fY29tcGFyZUtleXMoXG4gICAgICAgICAgbG9jYWxlLFxuICAgICAgICAgIHZhbHVlIGFzIFRyYW5zbGF0aW9uLFxuICAgICAgICAgIHByZXZWYWx1ZSBhcyBUcmFuc2xhdGlvbixcbiAgICAgICAgICBbLi4ucGF0aCwga2V5XSxcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAoIXZhbHVlSXNQbGFpbk9iamVjdCAmJiAhcHJldlZhbHVlSXNQbGFpbk9iamVjdCkge1xuICAgICAgICBjb25zdCBvdXRwdXRQYXRoID0gWy4uLnBhdGgsIGtleV0uam9pbignIC0+ICcpO1xuICAgICAgICBpZiAodmFsdWUgPT09IHByZXZWYWx1ZSkge1xuICAgICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAgIGBUaGUgY3VzdG9taXplZCB0cmFuc2xhdGlvbiBmb3IgbG9jYWxlOiBcXGAke2xvY2FsZX1cXGAgYW5kIHBhdGg6IFxcYCR7b3V0cHV0UGF0aH1cXGAgaXMgZHVwbGljYXRlZCB3aXRoIHRoZSBvdGhlciB0cmFuc2xhdGlvbiwgcGxlYXNlIHJlbW92ZSBpdCBpbiB5b3VyIHRyYW5zbGF0aW9uIGZpbGUuYCxcbiAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAgIGBUd28ga2V5cyB0aGF0IHRoZSBsb2NhbGUgaXMgXFxgJHtsb2NhbGV9XFxgIGFuZCB0aGUgcGF0aCBpcyBcXGAke291dHB1dFBhdGh9XFxgIGFyZSBzYW1lLCAgYnV0IHRoZWlyIHZhbHVlcyBhcmUgbm90IGVxdWFsICwgcGxlYXNlIHJlbW92ZSBvbmUgb2YgdGhlbSBvciBjaGFuZ2Ugb25lIG9mIHRoZSBrZXlzLmAsXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -1,25 +1,25 @@
1
1
  import { ChangeDetectionStrategy, Component, Input, TemplateRef, } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
- const _c0 = function () { return []; };
4
- const _c1 = function (a0) { return { data: a0 }; };
3
+ const _c0 = () => [];
4
+ const _c1 = a0 => ({ data: a0 });
5
5
  function LegendDropdownComponent_ng_container_0_Template(rf, ctx) { if (rf & 1) {
6
6
  i0.ɵɵelementContainerStart(0);
7
- i0.ɵɵelement(1, "aui-icon", 3);
7
+ i0.ɵɵelement(1, "aui-icon", 4);
8
8
  i0.ɵɵelementContainerEnd();
9
9
  } if (rf & 2) {
10
10
  i0.ɵɵnextContext();
11
- const _r3 = i0.ɵɵreference(4);
12
- i0.ɵɵadvance(1);
13
- i0.ɵɵproperty("auiTooltip", _r3)("auiTooltipContext", i0.ɵɵpureFunction1(3, _c1, i0.ɵɵpureFunction0(2, _c0)));
11
+ const dropdownItemTemplate_r1 = i0.ɵɵreference(4);
12
+ i0.ɵɵadvance();
13
+ i0.ɵɵproperty("auiTooltip", dropdownItemTemplate_r1)("auiTooltipContext", i0.ɵɵpureFunction1(3, _c1, i0.ɵɵpureFunction0(2, _c0)));
14
14
  } }
15
15
  function LegendDropdownComponent_ng_template_1_Template(rf, ctx) { if (rf & 1) {
16
- i0.ɵɵelementStart(0, "button", 4);
17
- i0.ɵɵelement(1, "aui-icon", 5);
16
+ i0.ɵɵelementStart(0, "button", 5);
17
+ i0.ɵɵelement(1, "aui-icon", 6);
18
18
  i0.ɵɵelementEnd();
19
19
  } if (rf & 2) {
20
20
  i0.ɵɵnextContext();
21
- const _r3 = i0.ɵɵreference(4);
22
- i0.ɵɵproperty("square", true)("auiTooltip", _r3)("auiTooltipContext", i0.ɵɵpureFunction1(4, _c1, i0.ɵɵpureFunction0(3, _c0)));
21
+ const dropdownItemTemplate_r1 = i0.ɵɵreference(4);
22
+ i0.ɵɵproperty("square", true)("auiTooltip", dropdownItemTemplate_r1)("auiTooltipContext", i0.ɵɵpureFunction1(4, _c1, i0.ɵɵpureFunction0(3, _c0)));
23
23
  } }
24
24
  function LegendDropdownComponent_ng_template_3_ng_container_0_Template(rf, ctx) { if (rf & 1) {
25
25
  i0.ɵɵelementContainerStart(0);
@@ -28,9 +28,9 @@ function LegendDropdownComponent_ng_template_3_ng_container_0_Template(rf, ctx)
28
28
  i0.ɵɵelementEnd();
29
29
  i0.ɵɵelementContainerEnd();
30
30
  } if (rf & 2) {
31
- const ctx_r5 = i0.ɵɵnextContext(2);
31
+ const ctx_r1 = i0.ɵɵnextContext(2);
32
32
  i0.ɵɵadvance(2);
33
- i0.ɵɵproperty("ngTemplateOutlet", ctx_r5.legendTemplate);
33
+ i0.ɵɵproperty("ngTemplateOutlet", ctx_r1.legendTemplate);
34
34
  } }
35
35
  function LegendDropdownComponent_ng_template_3_ng_template_1_Template(rf, ctx) { if (rf & 1) {
36
36
  i0.ɵɵelementStart(0, "span", 9);
@@ -38,29 +38,26 @@ function LegendDropdownComponent_ng_template_3_ng_template_1_Template(rf, ctx) {
38
38
  i0.ɵɵpipe(2, "translate");
39
39
  i0.ɵɵelementEnd();
40
40
  } if (rf & 2) {
41
- i0.ɵɵadvance(1);
41
+ i0.ɵɵadvance();
42
42
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(2, 1, "no_data"));
43
43
  } }
44
44
  function LegendDropdownComponent_ng_template_3_Template(rf, ctx) { if (rf & 1) {
45
- i0.ɵɵtemplate(0, LegendDropdownComponent_ng_template_3_ng_container_0_Template, 3, 1, "ng-container", 0);
46
- i0.ɵɵtemplate(1, LegendDropdownComponent_ng_template_3_ng_template_1_Template, 3, 3, "ng-template", null, 6, i0.ɵɵtemplateRefExtractor);
45
+ i0.ɵɵtemplate(0, LegendDropdownComponent_ng_template_3_ng_container_0_Template, 3, 1, "ng-container", 3)(1, LegendDropdownComponent_ng_template_3_ng_template_1_Template, 3, 3, "ng-template", null, 2, i0.ɵɵtemplateRefExtractor);
47
46
  } if (rf & 2) {
48
- const _r6 = i0.ɵɵreference(2);
49
- const ctx_r4 = i0.ɵɵnextContext();
50
- i0.ɵɵproperty("ngIf", ctx_r4.data.length && !ctx_r4.noData)("ngIfElse", _r6);
47
+ const noDataTemplate_r3 = i0.ɵɵreference(2);
48
+ const ctx_r1 = i0.ɵɵnextContext();
49
+ i0.ɵɵproperty("ngIf", ctx_r1.data.length && !ctx_r1.noData)("ngIfElse", noDataTemplate_r3);
51
50
  } }
52
51
  export class LegendDropdownComponent {
53
52
  static { this.ɵfac = function LegendDropdownComponent_Factory(t) { return new (t || LegendDropdownComponent)(); }; }
54
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: LegendDropdownComponent, selectors: [["acl-legend-dropdown"]], inputs: { data: "data", legendTemplate: "legendTemplate", noData: "noData", isCard: "isCard" }, decls: 5, vars: 2, consts: [[4, "ngIf", "ngIfElse"], ["elseTemplate", ""], ["dropdownItemTemplate", ""], ["icon", "prod:chart_legend", "auiTooltipType", "info", "auiTooltipPosition", "bottom end", "auiTooltipTrigger", "click", "auiTooltipActive", "legendActive", 1, "btn", 3, "auiTooltip", "auiTooltipContext"], ["aui-button", "", "icon", "prod:chart_legend", "auiTooltipType", "info", "auiTooltipPosition", "bottom end", "auiTooltipTrigger", "click", "auiTooltipActive", "legendActive", 1, "btn", 3, "square", "auiTooltip", "auiTooltipContext"], ["icon", "prod:chart_legend"], ["noDataTemplate", ""], [1, "legend-vertical"], [3, "ngTemplateOutlet"], [1, "no-data"]], template: function LegendDropdownComponent_Template(rf, ctx) { if (rf & 1) {
55
- i0.ɵɵtemplate(0, LegendDropdownComponent_ng_container_0_Template, 2, 5, "ng-container", 0);
56
- i0.ɵɵtemplate(1, LegendDropdownComponent_ng_template_1_Template, 2, 6, "ng-template", null, 1, i0.ɵɵtemplateRefExtractor);
57
- i0.ɵɵtemplate(3, LegendDropdownComponent_ng_template_3_Template, 3, 2, "ng-template", null, 2, i0.ɵɵtemplateRefExtractor);
53
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: LegendDropdownComponent, selectors: [["acl-legend-dropdown"]], inputs: { data: "data", legendTemplate: "legendTemplate", noData: "noData", isCard: "isCard" }, decls: 5, vars: 2, consts: [["elseTemplate", ""], ["dropdownItemTemplate", ""], ["noDataTemplate", ""], [4, "ngIf", "ngIfElse"], ["icon", "prod:chart_legend", "auiTooltipType", "info", "auiTooltipPosition", "bottom end", "auiTooltipTrigger", "click", "auiTooltipActive", "legendActive", 1, "btn", 3, "auiTooltip", "auiTooltipContext"], ["aui-button", "", "icon", "prod:chart_legend", "auiTooltipType", "info", "auiTooltipPosition", "bottom end", "auiTooltipTrigger", "click", "auiTooltipActive", "legendActive", 1, "btn", 3, "square", "auiTooltip", "auiTooltipContext"], ["icon", "prod:chart_legend"], [1, "legend-vertical"], [3, "ngTemplateOutlet"], [1, "no-data"]], template: function LegendDropdownComponent_Template(rf, ctx) { if (rf & 1) {
54
+ i0.ɵɵtemplate(0, LegendDropdownComponent_ng_container_0_Template, 2, 5, "ng-container", 3)(1, LegendDropdownComponent_ng_template_1_Template, 2, 6, "ng-template", null, 0, i0.ɵɵtemplateRefExtractor)(3, LegendDropdownComponent_ng_template_3_Template, 3, 2, "ng-template", null, 1, i0.ɵɵtemplateRefExtractor);
58
55
  } if (rf & 2) {
59
- const _r1 = i0.ɵɵreference(2);
60
- i0.ɵɵproperty("ngIf", !ctx.isCard)("ngIfElse", _r1);
56
+ const elseTemplate_r4 = i0.ɵɵreference(2);
57
+ i0.ɵɵproperty("ngIf", !ctx.isCard)("ngIfElse", elseTemplate_r4);
61
58
  } }, styles: [".btn[_ngcontent-%COMP%]{color:rgb(var(--aui-color-n-2));cursor:pointer} .legend-label{padding:0;margin:0;list-style:none;display:flex;align-items:center;cursor:pointer;justify-content:flex-start} .legend-label:not(:last-child){margin-bottom:8px} .label-name{color:rgb(var(--aui-color-secondary-text))} .label-symbol{margin-right:4px}[_nghost-%COMP%] .legend-labels[_ngcontent-%COMP%]{padding:0;margin:0;list-style:none;display:flex;flex-direction:column}.legendActive[_ngcontent-%COMP%]{color:rgb(var(--aui-color-primary))}.no-data[_ngcontent-%COMP%]{color:rgb(var(--aui-color-n-4));font-size:14px}"], changeDetection: 0 }); }
62
59
  }
63
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(LegendDropdownComponent, [{
60
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(LegendDropdownComponent, [{
64
61
  type: Component,
65
62
  args: [{ selector: 'acl-legend-dropdown', template: `
66
63
  <ng-container *ngIf="!isCard; else elseTemplate">
@@ -112,4 +109,5 @@ export class LegendDropdownComponent {
112
109
  }], isCard: [{
113
110
  type: Input
114
111
  }] }); })();
115
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tbGVnZW5kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL3ZpZXctY2hhcnQvY3VzdG9tLXRlbXBsYXRlL2Ryb3Bkb3duLWxlZ2VuZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxLQUFLLEVBQ0wsV0FBVyxHQUNaLE1BQU0sZUFBZSxDQUFDOzs7OztJQU9uQiw2QkFBaUQ7SUFDL0MsOEJBU1k7SUFDZCwwQkFBZTs7OztJQVBYLGVBQW1DO0lBQW5DLGdDQUFtQyw2RUFBQTs7O0lBU3JDLGlDQVdDO0lBQ0MsOEJBQThDO0lBQ2hELGlCQUFTOzs7O0lBWFAsNkJBQWUsbUJBQUEsNkVBQUE7OztJQWVqQiw2QkFBa0U7SUFDaEUsOEJBQTZCO0lBQzNCLDJCQUFpRTtJQUNuRSxpQkFBTTtJQUNSLDBCQUFlOzs7SUFGRyxlQUFtQztJQUFuQyx3REFBbUM7OztJQUluRCwrQkFBc0I7SUFBQSxZQUEyQjs7SUFBQSxpQkFBTzs7SUFBbEMsZUFBMkI7SUFBM0IscURBQTJCOzs7SUFObkQsd0dBSWU7SUFDZix1SUFFYzs7OztJQVBDLDJEQUE4QixpQkFBQTs7QUFhbkQsTUFBTSxPQUFPLHVCQUF1Qjt3RkFBdkIsdUJBQXVCO29FQUF2Qix1QkFBdUI7WUEzQ2hDLDBGQVdlO1lBQ2YseUhBZWM7WUFFZCx5SEFTYzs7O1lBdENDLGtDQUFlLGlCQUFBOzs7dUZBMkNyQix1QkFBdUI7Y0E5Q25DLFNBQVM7MkJBQ0UscUJBQXFCLFlBQ3JCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBd0NULG1CQUVnQix1QkFBdUIsQ0FBQyxNQUFNO2dCQUd0QyxJQUFJO2tCQUFaLEtBQUs7WUFDRyxjQUFjO2tCQUF0QixLQUFLO1lBQ0csTUFBTTtrQkFBZCxLQUFLO1lBQ0csTUFBTTtrQkFBZCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIFRlbXBsYXRlUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgTGVnZW5kSXRlbSB9IGZyb20gJy4uLy4uL2NoYXJ0L2NvbW1vbi9wdWJsaWMtYXBpJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWNsLWxlZ2VuZC1kcm9wZG93bicsXG4gIHRlbXBsYXRlOiBgXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc0NhcmQ7IGVsc2UgZWxzZVRlbXBsYXRlXCI+XG4gICAgICA8YXVpLWljb25cbiAgICAgICAgY2xhc3M9XCJidG5cIlxuICAgICAgICBpY29uPVwicHJvZDpjaGFydF9sZWdlbmRcIlxuICAgICAgICBbYXVpVG9vbHRpcF09XCJkcm9wZG93bkl0ZW1UZW1wbGF0ZVwiXG4gICAgICAgIFthdWlUb29sdGlwQ29udGV4dF09XCJ7IGRhdGE6IFtdIH1cIlxuICAgICAgICBhdWlUb29sdGlwVHlwZT1cImluZm9cIlxuICAgICAgICBhdWlUb29sdGlwUG9zaXRpb249XCJib3R0b20gZW5kXCJcbiAgICAgICAgYXVpVG9vbHRpcFRyaWdnZXI9XCJjbGlja1wiXG4gICAgICAgIGF1aVRvb2x0aXBBY3RpdmU9XCJsZWdlbmRBY3RpdmVcIlxuICAgICAgPjwvYXVpLWljb24+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLXRlbXBsYXRlICNlbHNlVGVtcGxhdGU+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIGF1aS1idXR0b25cbiAgICAgICAgW3NxdWFyZV09XCJ0cnVlXCJcbiAgICAgICAgY2xhc3M9XCJidG5cIlxuICAgICAgICBpY29uPVwicHJvZDpjaGFydF9sZWdlbmRcIlxuICAgICAgICBbYXVpVG9vbHRpcF09XCJkcm9wZG93bkl0ZW1UZW1wbGF0ZVwiXG4gICAgICAgIFthdWlUb29sdGlwQ29udGV4dF09XCJ7IGRhdGE6IFtdIH1cIlxuICAgICAgICBhdWlUb29sdGlwVHlwZT1cImluZm9cIlxuICAgICAgICBhdWlUb29sdGlwUG9zaXRpb249XCJib3R0b20gZW5kXCJcbiAgICAgICAgYXVpVG9vbHRpcFRyaWdnZXI9XCJjbGlja1wiXG4gICAgICAgIGF1aVRvb2x0aXBBY3RpdmU9XCJsZWdlbmRBY3RpdmVcIlxuICAgICAgPlxuICAgICAgICA8YXVpLWljb24gaWNvbj1cInByb2Q6Y2hhcnRfbGVnZW5kXCI+PC9hdWktaWNvbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICA8bmctdGVtcGxhdGUgI2Ryb3Bkb3duSXRlbVRlbXBsYXRlPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRhdGEubGVuZ3RoICYmICFub0RhdGE7IGVsc2Ugbm9EYXRhVGVtcGxhdGVcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImxlZ2VuZC12ZXJ0aWNhbFwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwibGVnZW5kVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjbm9EYXRhVGVtcGxhdGU+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwibm8tZGF0YVwiPnt7ICdub19kYXRhJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgYCxcbiAgc3R5bGVVcmxzOiBbJy4vZHJvcGRvd24tbGVnZW5kLnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIExlZ2VuZERyb3Bkb3duQ29tcG9uZW50IHtcbiAgQElucHV0KCkgZGF0YTogTGVnZW5kSXRlbVtdO1xuICBASW5wdXQoKSBsZWdlbmRUZW1wbGF0ZTogVGVtcGxhdGVSZWY8dW5rbm93bj47XG4gIEBJbnB1dCgpIG5vRGF0YTogYm9vbGVhbjtcbiAgQElucHV0KCkgaXNDYXJkOiBib29sZWFuO1xufVxuIl19
112
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(LegendDropdownComponent, { className: "LegendDropdownComponent" }); })();
113
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tbGVnZW5kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL3ZpZXctY2hhcnQvY3VzdG9tLXRlbXBsYXRlL2Ryb3Bkb3duLWxlZ2VuZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxLQUFLLEVBQ0wsV0FBVyxHQUNaLE1BQU0sZUFBZSxDQUFDOzs7OztJQU9uQiw2QkFBaUQ7SUFDL0MsOEJBU1k7Ozs7O0lBTlYsY0FBbUM7SUFDbkMsQUFEQSxvREFBbUMsNkVBQ0Q7OztJQVFwQyxpQ0FXQztJQUNDLDhCQUE4QztJQUNoRCxpQkFBUzs7OztJQVBQLEFBREEsQUFIQSw2QkFBZSx1Q0FHb0IsNkVBQ0Q7OztJQVdwQyw2QkFBa0U7SUFDaEUsOEJBQTZCO0lBQzNCLDJCQUFpRTtJQUNuRSxpQkFBTTs7OztJQURVLGVBQW1DO0lBQW5DLHdEQUFtQzs7O0lBSW5ELCtCQUFzQjtJQUFBLFlBQTJCOztJQUFBLGlCQUFPOztJQUFsQyxjQUEyQjtJQUEzQixxREFBMkI7OztJQURuRCxBQUxBLHdHQUFrRSwwSEFLckM7Ozs7SUFMZ0IsQUFBOUIsMkRBQThCLCtCQUFtQjs7QUFhdEUsTUFBTSxPQUFPLHVCQUF1Qjt3RkFBdkIsdUJBQXVCO29FQUF2Qix1QkFBdUI7WUFkaEMsQUFqQkEsQUFaQSwwRkFBaUQsNEdBWXRCLDRHQWlCUTs7O1lBN0JMLEFBQWYsa0NBQWUsNkJBQWlCOzs7aUZBMkN0Qyx1QkFBdUI7Y0E5Q25DLFNBQVM7MkJBQ0UscUJBQXFCLFlBQ3JCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBd0NULG1CQUVnQix1QkFBdUIsQ0FBQyxNQUFNO2dCQUd0QyxJQUFJO2tCQUFaLEtBQUs7WUFDRyxjQUFjO2tCQUF0QixLQUFLO1lBQ0csTUFBTTtrQkFBZCxLQUFLO1lBQ0csTUFBTTtrQkFBZCxLQUFLOztrRkFKSyx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgVGVtcGxhdGVSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBMZWdlbmRJdGVtIH0gZnJvbSAnLi4vLi4vY2hhcnQvY29tbW9uL3B1YmxpYy1hcGknO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhY2wtbGVnZW5kLWRyb3Bkb3duJyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzQ2FyZDsgZWxzZSBlbHNlVGVtcGxhdGVcIj5cbiAgICAgIDxhdWktaWNvblxuICAgICAgICBjbGFzcz1cImJ0blwiXG4gICAgICAgIGljb249XCJwcm9kOmNoYXJ0X2xlZ2VuZFwiXG4gICAgICAgIFthdWlUb29sdGlwXT1cImRyb3Bkb3duSXRlbVRlbXBsYXRlXCJcbiAgICAgICAgW2F1aVRvb2x0aXBDb250ZXh0XT1cInsgZGF0YTogW10gfVwiXG4gICAgICAgIGF1aVRvb2x0aXBUeXBlPVwiaW5mb1wiXG4gICAgICAgIGF1aVRvb2x0aXBQb3NpdGlvbj1cImJvdHRvbSBlbmRcIlxuICAgICAgICBhdWlUb29sdGlwVHJpZ2dlcj1cImNsaWNrXCJcbiAgICAgICAgYXVpVG9vbHRpcEFjdGl2ZT1cImxlZ2VuZEFjdGl2ZVwiXG4gICAgICA+PC9hdWktaWNvbj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctdGVtcGxhdGUgI2Vsc2VUZW1wbGF0ZT5cbiAgICAgIDxidXR0b25cbiAgICAgICAgYXVpLWJ1dHRvblxuICAgICAgICBbc3F1YXJlXT1cInRydWVcIlxuICAgICAgICBjbGFzcz1cImJ0blwiXG4gICAgICAgIGljb249XCJwcm9kOmNoYXJ0X2xlZ2VuZFwiXG4gICAgICAgIFthdWlUb29sdGlwXT1cImRyb3Bkb3duSXRlbVRlbXBsYXRlXCJcbiAgICAgICAgW2F1aVRvb2x0aXBDb250ZXh0XT1cInsgZGF0YTogW10gfVwiXG4gICAgICAgIGF1aVRvb2x0aXBUeXBlPVwiaW5mb1wiXG4gICAgICAgIGF1aVRvb2x0aXBQb3NpdGlvbj1cImJvdHRvbSBlbmRcIlxuICAgICAgICBhdWlUb29sdGlwVHJpZ2dlcj1cImNsaWNrXCJcbiAgICAgICAgYXVpVG9vbHRpcEFjdGl2ZT1cImxlZ2VuZEFjdGl2ZVwiXG4gICAgICA+XG4gICAgICAgIDxhdWktaWNvbiBpY29uPVwicHJvZDpjaGFydF9sZWdlbmRcIj48L2F1aS1pY29uPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgIDxuZy10ZW1wbGF0ZSAjZHJvcGRvd25JdGVtVGVtcGxhdGU+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZGF0YS5sZW5ndGggJiYgIW5vRGF0YTsgZWxzZSBub0RhdGFUZW1wbGF0ZVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibGVnZW5kLXZlcnRpY2FsXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJsZWdlbmRUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLXRlbXBsYXRlICNub0RhdGFUZW1wbGF0ZT5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJuby1kYXRhXCI+e3sgJ25vX2RhdGEnIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L25nLXRlbXBsYXRlPlxuICBgLFxuICBzdHlsZVVybHM6IFsnLi9kcm9wZG93bi1sZWdlbmQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgTGVnZW5kRHJvcGRvd25Db21wb25lbnQge1xuICBASW5wdXQoKSBkYXRhOiBMZWdlbmRJdGVtW107XG4gIEBJbnB1dCgpIGxlZ2VuZFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcbiAgQElucHV0KCkgbm9EYXRhOiBib29sZWFuO1xuICBASW5wdXQoKSBpc0NhcmQ6IGJvb2xlYW47XG59XG4iXX0=
@@ -3,128 +3,126 @@ import { isTemplateRef } from '@alauda/ui';
3
3
  import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, Output, TemplateRef, } from '@angular/core';
4
4
  import { get } from 'lodash-es';
5
5
  import * as i0 from "@angular/core";
6
+ const _c0 = a0 => ({ context: a0 });
7
+ const _c1 = a0 => [a0, "label-symbol"];
8
+ const _c2 = () => ({});
6
9
  function LegendComponent_div_0_Template(rf, ctx) { if (rf & 1) {
7
- i0.ɵɵelementStart(0, "div", 3);
8
- i0.ɵɵelementContainer(1, 4);
10
+ i0.ɵɵelementStart(0, "div", 5);
11
+ i0.ɵɵelementContainer(1, 6);
9
12
  i0.ɵɵelementEnd();
10
13
  } if (rf & 2) {
11
14
  const ctx_r0 = i0.ɵɵnextContext();
12
- i0.ɵɵadvance(1);
15
+ i0.ɵɵadvance();
13
16
  i0.ɵɵproperty("ngTemplateOutlet", ctx_r0.leftOperation)("ngTemplateOutletContext", ctx_r0.leftOperationContext);
14
17
  } }
15
18
  function LegendComponent_div_1_ng_container_1_Template(rf, ctx) { if (rf & 1) {
16
19
  i0.ɵɵelementContainerStart(0);
17
- i0.ɵɵelementContainer(1, 8);
20
+ i0.ɵɵelementContainer(1, 9);
18
21
  i0.ɵɵelementContainerEnd();
19
22
  } if (rf & 2) {
20
23
  i0.ɵɵnextContext(2);
21
- const _r3 = i0.ɵɵreference(4);
22
- i0.ɵɵadvance(1);
23
- i0.ɵɵproperty("ngTemplateOutlet", _r3);
24
+ const legendTemplate_r2 = i0.ɵɵreference(4);
25
+ i0.ɵɵadvance();
26
+ i0.ɵɵproperty("ngTemplateOutlet", legendTemplate_r2);
24
27
  } }
25
- const _c0 = function (a0) { return { context: a0 }; };
26
28
  function LegendComponent_div_1_ng_template_2_ng_container_0_Template(rf, ctx) { if (rf & 1) {
27
29
  i0.ɵɵelementContainerStart(0);
28
- i0.ɵɵelementContainer(1, 4);
30
+ i0.ɵɵelementContainer(1, 6);
29
31
  i0.ɵɵelementContainerEnd();
30
32
  } if (rf & 2) {
31
- const ctx_r8 = i0.ɵɵnextContext(3);
32
- i0.ɵɵadvance(1);
33
- i0.ɵɵproperty("ngTemplateOutlet", ctx_r8.template)("ngTemplateOutletContext", i0.ɵɵpureFunction1(2, _c0, ctx_r8.legendEntries));
33
+ const ctx_r0 = i0.ɵɵnextContext(3);
34
+ i0.ɵɵadvance();
35
+ i0.ɵɵproperty("ngTemplateOutlet", ctx_r0.template)("ngTemplateOutletContext", i0.ɵɵpureFunction1(2, _c0, ctx_r0.legendEntries));
34
36
  } }
35
37
  function LegendComponent_div_1_ng_template_2_ng_template_1_acl_legend_dropdown_1_Template(rf, ctx) { if (rf & 1) {
36
38
  i0.ɵɵelement(0, "acl-legend-dropdown", 12);
37
39
  } if (rf & 2) {
38
- const ctx_r11 = i0.ɵɵnextContext(4);
39
- const _r3 = i0.ɵɵreference(4);
40
- i0.ɵɵproperty("data", ctx_r11.legendEntries)("noData", ctx_r11.noData)("legendTemplate", _r3)("isCard", ctx_r11.mode === "card");
40
+ const ctx_r0 = i0.ɵɵnextContext(4);
41
+ const legendTemplate_r2 = i0.ɵɵreference(4);
42
+ i0.ɵɵproperty("data", ctx_r0.legendEntries)("noData", ctx_r0.noData)("legendTemplate", legendTemplate_r2)("isCard", ctx_r0.mode === "card");
41
43
  } }
42
44
  function LegendComponent_div_1_ng_template_2_ng_template_1_Template(rf, ctx) { if (rf & 1) {
43
45
  i0.ɵɵelementContainerStart(0, 10);
44
46
  i0.ɵɵtemplate(1, LegendComponent_div_1_ng_template_2_ng_template_1_acl_legend_dropdown_1_Template, 1, 4, "acl-legend-dropdown", 11);
45
47
  i0.ɵɵelementContainerEnd();
46
48
  } if (rf & 2) {
47
- const ctx_r10 = i0.ɵɵnextContext(3);
48
- i0.ɵɵproperty("ngSwitch", ctx_r10.template);
49
- i0.ɵɵadvance(1);
49
+ const ctx_r0 = i0.ɵɵnextContext(3);
50
+ i0.ɵɵproperty("ngSwitch", ctx_r0.template);
51
+ i0.ɵɵadvance();
50
52
  i0.ɵɵproperty("ngSwitchCase", "dropdown");
51
53
  } }
52
54
  function LegendComponent_div_1_ng_template_2_Template(rf, ctx) { if (rf & 1) {
53
- i0.ɵɵtemplate(0, LegendComponent_div_1_ng_template_2_ng_container_0_Template, 2, 4, "ng-container", 6);
54
- i0.ɵɵtemplate(1, LegendComponent_div_1_ng_template_2_ng_template_1_Template, 2, 2, "ng-template", null, 9, i0.ɵɵtemplateRefExtractor);
55
+ i0.ɵɵtemplate(0, LegendComponent_div_1_ng_template_2_ng_container_0_Template, 2, 4, "ng-container", 8)(1, LegendComponent_div_1_ng_template_2_ng_template_1_Template, 2, 2, "ng-template", null, 2, i0.ɵɵtemplateRefExtractor);
55
56
  } if (rf & 2) {
56
- const _r9 = i0.ɵɵreference(2);
57
- const ctx_r7 = i0.ɵɵnextContext(2);
58
- i0.ɵɵproperty("ngIf", ctx_r7.isTemplateRef(ctx_r7.template))("ngIfElse", _r9);
57
+ const builtinTemplate_r3 = i0.ɵɵreference(2);
58
+ const ctx_r0 = i0.ɵɵnextContext(2);
59
+ i0.ɵɵproperty("ngIf", ctx_r0.isTemplateRef(ctx_r0.template))("ngIfElse", builtinTemplate_r3);
59
60
  } }
60
61
  function LegendComponent_div_1_Template(rf, ctx) { if (rf & 1) {
61
- i0.ɵɵelementStart(0, "div", 5);
62
- i0.ɵɵtemplate(1, LegendComponent_div_1_ng_container_1_Template, 2, 1, "ng-container", 6);
63
- i0.ɵɵtemplate(2, LegendComponent_div_1_ng_template_2_Template, 3, 2, "ng-template", null, 7, i0.ɵɵtemplateRefExtractor);
62
+ i0.ɵɵelementStart(0, "div", 7);
63
+ i0.ɵɵtemplate(1, LegendComponent_div_1_ng_container_1_Template, 2, 1, "ng-container", 8)(2, LegendComponent_div_1_ng_template_2_Template, 3, 2, "ng-template", null, 1, i0.ɵɵtemplateRefExtractor);
64
64
  i0.ɵɵelementEnd();
65
65
  } if (rf & 2) {
66
- const _r6 = i0.ɵɵreference(3);
67
- const ctx_r1 = i0.ɵɵnextContext();
68
- i0.ɵɵadvance(1);
69
- i0.ɵɵproperty("ngIf", !ctx_r1.template)("ngIfElse", _r6);
66
+ const custom_r4 = i0.ɵɵreference(3);
67
+ const ctx_r0 = i0.ɵɵnextContext();
68
+ i0.ɵɵadvance();
69
+ i0.ɵɵproperty("ngIf", !ctx_r0.template)("ngIfElse", custom_r4);
70
70
  } }
71
71
  function LegendComponent_div_2_Template(rf, ctx) { if (rf & 1) {
72
- i0.ɵɵelementStart(0, "div", 3);
73
- i0.ɵɵelementContainer(1, 8);
72
+ i0.ɵɵelementStart(0, "div", 5);
73
+ i0.ɵɵelementContainer(1, 9);
74
74
  i0.ɵɵelementEnd();
75
75
  } if (rf & 2) {
76
- const ctx_r2 = i0.ɵɵnextContext();
77
- i0.ɵɵadvance(1);
78
- i0.ɵɵproperty("ngTemplateOutlet", ctx_r2.rightOperation);
76
+ const ctx_r0 = i0.ɵɵnextContext();
77
+ i0.ɵɵadvance();
78
+ i0.ɵɵproperty("ngTemplateOutlet", ctx_r0.rightOperation);
79
79
  } }
80
80
  function LegendComponent_ng_template_3_li_1_Template(rf, ctx) { if (rf & 1) {
81
- const _r15 = i0.ɵɵgetCurrentView();
81
+ const _r5 = i0.ɵɵgetCurrentView();
82
82
  i0.ɵɵelementStart(0, "li", 16)(1, "aui-checkbox", 17);
83
- i0.ɵɵlistener("ngModelChange", function LegendComponent_ng_template_3_li_1_Template_aui_checkbox_ngModelChange_1_listener($event) { i0.ɵɵrestoreView(_r15); const ctx_r14 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r14.allSelected = $event); })("ngModelChange", function LegendComponent_ng_template_3_li_1_Template_aui_checkbox_ngModelChange_1_listener($event) { i0.ɵɵrestoreView(_r15); const ctx_r16 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r16.allSelect($event)); });
83
+ i0.ɵɵtwoWayListener("ngModelChange", function LegendComponent_ng_template_3_li_1_Template_aui_checkbox_ngModelChange_1_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r0 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r0.allSelected, $event) || (ctx_r0.allSelected = $event); return i0.ɵɵresetView($event); });
84
+ i0.ɵɵlistener("ngModelChange", function LegendComponent_ng_template_3_li_1_Template_aui_checkbox_ngModelChange_1_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.allSelect($event)); });
84
85
  i0.ɵɵtext(2);
85
86
  i0.ɵɵpipe(3, "translate");
86
87
  i0.ɵɵelementEnd()();
87
88
  } if (rf & 2) {
88
- const ctx_r12 = i0.ɵɵnextContext(2);
89
- i0.ɵɵadvance(1);
90
- i0.ɵɵproperty("ngModel", ctx_r12.allSelected);
91
- i0.ɵɵadvance(1);
92
- i0.ɵɵtextInterpolate1(" ", ctx_r12.selectAllName || i0.ɵɵpipeBind1(3, 2, "select_all"), " ");
89
+ const ctx_r0 = i0.ɵɵnextContext(2);
90
+ i0.ɵɵadvance();
91
+ i0.ɵɵtwoWayProperty("ngModel", ctx_r0.allSelected);
92
+ i0.ɵɵadvance();
93
+ i0.ɵɵtextInterpolate1(" ", ctx_r0.selectAllName || i0.ɵɵpipeBind1(3, 2, "select_all"), " ");
93
94
  } }
94
- const _c1 = function (a0) { return [a0, "label-symbol"]; };
95
- const _c2 = function () { return {}; };
96
95
  function LegendComponent_ng_template_3_li_2_Template(rf, ctx) { if (rf & 1) {
97
- const _r19 = i0.ɵɵgetCurrentView();
96
+ const _r6 = i0.ɵɵgetCurrentView();
98
97
  i0.ɵɵelementStart(0, "li", 18);
99
- i0.ɵɵlistener("click", function LegendComponent_ng_template_3_li_2_Template_li_click_0_listener() { const restoredCtx = i0.ɵɵrestoreView(_r19); const legend_r17 = restoredCtx.$implicit; const ctx_r18 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r18.selected(legend_r17)); });
100
98
  i0.ɵɵpipe(1, "translate");
99
+ i0.ɵɵlistener("click", function LegendComponent_ng_template_3_li_2_Template_li_click_0_listener() { const legend_r7 = i0.ɵɵrestoreView(_r6).$implicit; const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.selected(legend_r7)); });
101
100
  i0.ɵɵelement(2, "span", 19);
102
101
  i0.ɵɵelementStart(3, "span", 20);
103
102
  i0.ɵɵtext(4);
104
103
  i0.ɵɵpipe(5, "translate");
105
104
  i0.ɵɵelementEnd()();
106
105
  } if (rf & 2) {
107
- const legend_r17 = ctx.$implicit;
108
- const ctx_r13 = i0.ɵɵnextContext(2);
109
- i0.ɵɵclassProp("disable", !legend_r17.activate || ctx_r13.noData)("forbid", ctx_r13.noData);
110
- i0.ɵɵproperty("title", i0.ɵɵpipeBind1(1, 9, legend_r17.activate ? "click_hide" : "click_show"));
106
+ const legend_r7 = ctx.$implicit;
107
+ const ctx_r0 = i0.ɵɵnextContext(2);
108
+ i0.ɵɵclassProp("disable", !legend_r7.activate || ctx_r0.noData)("forbid", ctx_r0.noData);
109
+ i0.ɵɵproperty("title", i0.ɵɵpipeBind1(1, 9, legend_r7.activate ? "click_hide" : "click_show"));
111
110
  i0.ɵɵadvance(2);
112
- i0.ɵɵstyleProp("background", legend_r17.color);
113
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(15, _c1, ctx_r13.symbolName));
111
+ i0.ɵɵstyleProp("background", legend_r7.color);
112
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(15, _c1, ctx_r0.symbolName));
114
113
  i0.ɵɵadvance(2);
115
- i0.ɵɵtextInterpolate(ctx_r13.translation ? i0.ɵɵpipeBind3(5, 11, legend_r17.name, i0.ɵɵpureFunction0(17, _c2), true) : legend_r17.name);
114
+ i0.ɵɵtextInterpolate(ctx_r0.translation ? i0.ɵɵpipeBind3(5, 11, legend_r7.name, i0.ɵɵpureFunction0(17, _c2), true) : legend_r7.name);
116
115
  } }
117
116
  function LegendComponent_ng_template_3_Template(rf, ctx) { if (rf & 1) {
118
117
  i0.ɵɵelementStart(0, "ul", 13);
119
- i0.ɵɵtemplate(1, LegendComponent_ng_template_3_li_1_Template, 4, 4, "li", 14);
120
- i0.ɵɵtemplate(2, LegendComponent_ng_template_3_li_2_Template, 6, 18, "li", 15);
118
+ i0.ɵɵtemplate(1, LegendComponent_ng_template_3_li_1_Template, 4, 4, "li", 14)(2, LegendComponent_ng_template_3_li_2_Template, 6, 18, "li", 15);
121
119
  i0.ɵɵelementEnd();
122
120
  } if (rf & 2) {
123
- const ctx_r4 = i0.ɵɵnextContext();
124
- i0.ɵɵadvance(1);
125
- i0.ɵɵproperty("ngIf", !ctx_r4.noData && ctx_r4.selectAllOperation && ctx_r4.template === "dropdown");
126
- i0.ɵɵadvance(1);
127
- i0.ɵɵproperty("ngForOf", ctx_r4.legendEntries);
121
+ const ctx_r0 = i0.ɵɵnextContext();
122
+ i0.ɵɵadvance();
123
+ i0.ɵɵproperty("ngIf", !ctx_r0.noData && ctx_r0.selectAllOperation && ctx_r0.template === "dropdown");
124
+ i0.ɵɵadvance();
125
+ i0.ɵɵproperty("ngForOf", ctx_r0.legendEntries);
128
126
  } }
129
127
  export class LegendPayload {
130
128
  }
@@ -219,23 +217,20 @@ export class LegendComponent {
219
217
  this.legendInstance.changeLegend(this.legendEntries[0]);
220
218
  }
221
219
  static { this.ɵfac = function LegendComponent_Factory(t) { return new (t || LegendComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); }; }
222
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: LegendComponent, selectors: [["acl-base-legend"]], inputs: { symbol: "symbol", template: "template", mode: "mode", translation: "translation", leftOperation: "leftOperation", leftOperationContext: "leftOperationContext", rightOperation: "rightOperation", hideLegend: "hideLegend", selectAllOperation: "selectAllOperation", selectAllName: "selectAllName", chart: "chart" }, outputs: { changeLegend: "changeLegend" }, features: [i0.ɵɵNgOnChangesFeature], decls: 5, vars: 3, consts: [["class", "operation", 4, "ngIf"], ["class", "legend-wrap operation", 4, "ngIf"], ["legendTemplate", ""], [1, "operation"], [3, "ngTemplateOutlet", "ngTemplateOutletContext"], [1, "legend-wrap", "operation"], [4, "ngIf", "ngIfElse"], ["custom", ""], [3, "ngTemplateOutlet"], ["builtinTemplate", ""], [3, "ngSwitch"], ["class", "legend-vertical", 3, "data", "noData", "legendTemplate", "isCard", 4, "ngSwitchCase"], [1, "legend-vertical", 3, "data", "noData", "legendTemplate", "isCard"], [1, "legend-labels"], ["class", "select-all", 4, "ngIf"], ["class", "legend-label", 3, "disable", "forbid", "title", "click", 4, "ngFor", "ngForOf"], [1, "select-all"], [3, "ngModel", "ngModelChange"], [1, "legend-label", 3, "title", "click"], [3, "ngClass"], [1, "label-name"]], template: function LegendComponent_Template(rf, ctx) { if (rf & 1) {
223
- i0.ɵɵtemplate(0, LegendComponent_div_0_Template, 2, 2, "div", 0);
224
- i0.ɵɵtemplate(1, LegendComponent_div_1_Template, 4, 2, "div", 1);
225
- i0.ɵɵtemplate(2, LegendComponent_div_2_Template, 2, 1, "div", 0);
226
- i0.ɵɵtemplate(3, LegendComponent_ng_template_3_Template, 3, 2, "ng-template", null, 2, i0.ɵɵtemplateRefExtractor);
220
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: LegendComponent, selectors: [["acl-base-legend"]], inputs: { symbol: "symbol", template: "template", mode: "mode", translation: "translation", leftOperation: "leftOperation", leftOperationContext: "leftOperationContext", rightOperation: "rightOperation", hideLegend: "hideLegend", selectAllOperation: "selectAllOperation", selectAllName: "selectAllName", chart: "chart" }, outputs: { changeLegend: "changeLegend" }, features: [i0.ɵɵNgOnChangesFeature], decls: 5, vars: 3, consts: [["legendTemplate", ""], ["custom", ""], ["builtinTemplate", ""], ["class", "operation", 4, "ngIf"], ["class", "legend-wrap operation", 4, "ngIf"], [1, "operation"], [3, "ngTemplateOutlet", "ngTemplateOutletContext"], [1, "legend-wrap", "operation"], [4, "ngIf", "ngIfElse"], [3, "ngTemplateOutlet"], [3, "ngSwitch"], ["class", "legend-vertical", 3, "data", "noData", "legendTemplate", "isCard", 4, "ngSwitchCase"], [1, "legend-vertical", 3, "data", "noData", "legendTemplate", "isCard"], [1, "legend-labels"], ["class", "select-all", 4, "ngIf"], ["class", "legend-label", 3, "disable", "forbid", "title", "click", 4, "ngFor", "ngForOf"], [1, "select-all"], [3, "ngModelChange", "ngModel"], [1, "legend-label", 3, "click", "title"], [3, "ngClass"], [1, "label-name"]], template: function LegendComponent_Template(rf, ctx) { if (rf & 1) {
221
+ i0.ɵɵtemplate(0, LegendComponent_div_0_Template, 2, 2, "div", 3)(1, LegendComponent_div_1_Template, 4, 2, "div", 4)(2, LegendComponent_div_2_Template, 2, 1, "div", 3)(3, LegendComponent_ng_template_3_Template, 3, 2, "ng-template", null, 0, i0.ɵɵtemplateRefExtractor);
227
222
  } if (rf & 2) {
228
223
  i0.ɵɵproperty("ngIf", ctx.isTemplateRef(ctx.leftOperation));
229
- i0.ɵɵadvance(1);
224
+ i0.ɵɵadvance();
230
225
  i0.ɵɵproperty("ngIf", !ctx.hideLegend);
231
- i0.ɵɵadvance(1);
226
+ i0.ɵɵadvance();
232
227
  i0.ɵɵproperty("ngIf", ctx.isTemplateRef(ctx.rightOperation));
233
228
  } }, styles: ["[_nghost-%COMP%]{flex:1;display:flex;justify-content:flex-end;align-items:center}.legend-wrap[_ngcontent-%COMP%]{display:inline-block}.legend-wrap[_ngcontent-%COMP%] ul[_ngcontent-%COMP%], .legend-wrap[_ngcontent-%COMP%] li[_ngcontent-%COMP%]{padding:0;margin:0;list-style:none}.legend-wrap[_ngcontent-%COMP%] .legend-labels[_ngcontent-%COMP%]{display:flex}.legend-wrap[_ngcontent-%COMP%] .legend-label[_ngcontent-%COMP%]{display:flex;align-items:center;cursor:pointer;justify-content:center}.legend-wrap[_ngcontent-%COMP%] .legend-label[_ngcontent-%COMP%]:not(:last-child){margin-right:12px}.legend-wrap[_ngcontent-%COMP%] .forbid[_ngcontent-%COMP%]{cursor:no-drop}.legend-wrap[_ngcontent-%COMP%] .label-name[_ngcontent-%COMP%]{font-size:12px;color:rgb(var(--aui-color-secondary-text))}.legend-wrap[_ngcontent-%COMP%] .label-symbol[_ngcontent-%COMP%]{margin-right:4px}.disable[_ngcontent-%COMP%] .label-symbol[_ngcontent-%COMP%]{background:rgb(var(--aui-color-n-6))!important}.disable[_ngcontent-%COMP%] .label-name[_ngcontent-%COMP%]{color:rgb(var(--aui-color-n-6))}.symbol-square[_ngcontent-%COMP%]{width:12px;height:12px;display:inline-block}.symbol-line[_ngcontent-%COMP%]{width:12px;height:2px;display:inline-block}.symbol-circle[_ngcontent-%COMP%]{width:6px;height:6px;border-radius:50%;display:inline-block}.operation[_ngcontent-%COMP%]{display:flex;justify-content:center;align-items:center;margin-left:8px}.select-all[_ngcontent-%COMP%] .aui-checkbox{font-size:12px;line-height:16px;margin-bottom:8px}"], changeDetection: 0 }); }
234
229
  }
235
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(LegendComponent, [{
230
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(LegendComponent, [{
236
231
  type: Component,
237
232
  args: [{ selector: 'acl-base-legend', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"operation\"\n *ngIf=\"isTemplateRef(leftOperation)\"\n>\n <ng-container\n [ngTemplateOutlet]=\"leftOperation\"\n [ngTemplateOutletContext]=\"leftOperationContext\"\n ></ng-container>\n</div>\n\n<div\n class=\"legend-wrap operation\"\n *ngIf=\"!hideLegend\"\n>\n <ng-container *ngIf=\"!template; else custom\">\n <ng-container [ngTemplateOutlet]=\"legendTemplate\"></ng-container>\n </ng-container>\n <ng-template #custom>\n <ng-container *ngIf=\"isTemplateRef(template); else builtinTemplate\">\n <ng-container\n [ngTemplateOutlet]=\"$any(template)\"\n [ngTemplateOutletContext]=\"{ context: legendEntries }\"\n ></ng-container>\n </ng-container>\n <ng-template #builtinTemplate>\n <ng-container [ngSwitch]=\"template\">\n <acl-legend-dropdown\n class=\"legend-vertical\"\n *ngSwitchCase=\"'dropdown'\"\n [data]=\"legendEntries\"\n [noData]=\"noData\"\n [legendTemplate]=\"legendTemplate\"\n [isCard]=\"mode === 'card'\"\n >\n </acl-legend-dropdown>\n </ng-container>\n </ng-template>\n </ng-template>\n</div>\n\n<div\n class=\"operation\"\n *ngIf=\"isTemplateRef(rightOperation)\"\n>\n <ng-container [ngTemplateOutlet]=\"rightOperation\"></ng-container>\n</div>\n\n<ng-template #legendTemplate>\n <ul class=\"legend-labels\">\n <li\n class=\"select-all\"\n *ngIf=\"!noData && selectAllOperation && template === 'dropdown'\"\n >\n <aui-checkbox\n [(ngModel)]=\"allSelected\"\n (ngModelChange)=\"allSelect($event)\"\n >\n {{ selectAllName || ('select_all' | translate) }}\n </aui-checkbox>\n </li>\n <li\n class=\"legend-label\"\n [class.disable]=\"!legend.activate || noData\"\n [class.forbid]=\"noData\"\n [title]=\"(legend.activate ? 'click_hide' : 'click_show') | translate\"\n *ngFor=\"let legend of legendEntries\"\n (click)=\"selected(legend)\"\n >\n <span\n [ngClass]=\"[symbolName, 'label-symbol']\"\n [style.background]=\"legend.color\"\n >\n </span>\n <span class=\"label-name\">{{\n translation ? (legend.name | translate: {}:true) : legend.name\n }}</span>\n </li>\n </ul>\n</ng-template>\n", styles: [":host{flex:1;display:flex;justify-content:flex-end;align-items:center}.legend-wrap{display:inline-block}.legend-wrap ul,.legend-wrap li{padding:0;margin:0;list-style:none}.legend-wrap .legend-labels{display:flex}.legend-wrap .legend-label{display:flex;align-items:center;cursor:pointer;justify-content:center}.legend-wrap .legend-label:not(:last-child){margin-right:12px}.legend-wrap .forbid{cursor:no-drop}.legend-wrap .label-name{font-size:12px;color:rgb(var(--aui-color-secondary-text))}.legend-wrap .label-symbol{margin-right:4px}.disable .label-symbol{background:rgb(var(--aui-color-n-6))!important}.disable .label-name{color:rgb(var(--aui-color-n-6))}.symbol-square{width:12px;height:12px;display:inline-block}.symbol-line{width:12px;height:2px;display:inline-block}.symbol-circle{width:6px;height:6px;border-radius:50%;display:inline-block}.operation{display:flex;justify-content:center;align-items:center;margin-left:8px}.select-all ::ng-deep .aui-checkbox{font-size:12px;line-height:16px;margin-bottom:8px}\n"] }]
238
- }], function () { return [{ type: i0.ChangeDetectorRef }]; }, { symbol: [{
233
+ }], () => [{ type: i0.ChangeDetectorRef }], { symbol: [{
239
234
  type: Input
240
235
  }], template: [{
241
236
  type: Input
@@ -260,4 +255,5 @@ export class LegendComponent {
260
255
  }], changeLegend: [{
261
256
  type: Output
262
257
  }] }); })();
263
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGVnZW5kLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy92aWV3LWNoYXJ0L2xlZ2VuZC9sZWdlbmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL3ZpZXctY2hhcnQvbGVnZW5kL2xlZ2VuZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsSUFBSSxFQUdKLGFBQWEsRUFDYixVQUFVLEdBR1gsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUMzQyxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBRU4sV0FBVyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxXQUFXLENBQUM7OztJQ3RCaEMsOEJBR0M7SUFDQywyQkFHZ0I7SUFDbEIsaUJBQU07OztJQUhGLGVBQWtDO0lBQWxDLHVEQUFrQyx3REFBQTs7O0lBU3BDLDZCQUE2QztJQUMzQywyQkFBaUU7SUFDbkUsMEJBQWU7Ozs7SUFEQyxlQUFtQztJQUFuQyxzQ0FBbUM7Ozs7SUFHakQsNkJBQW9FO0lBQ2xFLDJCQUdnQjtJQUNsQiwwQkFBZTs7O0lBSFgsZUFBbUM7SUFBbkMsa0RBQW1DLDZFQUFBOzs7SUFNbkMsMENBUXNCOzs7O0lBTHBCLDRDQUFzQiwwQkFBQSx1QkFBQSxtQ0FBQTs7O0lBSjFCLGlDQUFvQztJQUNsQyxtSUFRc0I7SUFDeEIsMEJBQWU7OztJQVZELDJDQUFxQjtJQUc5QixlQUF3QjtJQUF4Qix5Q0FBd0I7OztJQVYvQixzR0FLZTtJQUNmLHFJQVljOzs7O0lBbEJDLDREQUErQixpQkFBQTs7O0lBUmxELDhCQUdDO0lBQ0Msd0ZBRWU7SUFDZix1SEFvQmM7SUFDaEIsaUJBQU07Ozs7SUF4QlcsZUFBaUI7SUFBakIsdUNBQWlCLGlCQUFBOzs7SUEwQmxDLDhCQUdDO0lBQ0MsMkJBQWlFO0lBQ25FLGlCQUFNOzs7SUFEVSxlQUFtQztJQUFuQyx3REFBbUM7Ozs7SUFLL0MsOEJBR0MsdUJBQUE7SUFFRyx3UEFBeUIsMkxBQ1IsZUFBQSx5QkFBaUIsQ0FBQSxJQURUO0lBR3pCLFlBQ0Y7O0lBQUEsaUJBQWUsRUFBQTs7O0lBSmIsZUFBeUI7SUFBekIsNkNBQXlCO0lBR3pCLGVBQ0Y7SUFERSw0RkFDRjs7Ozs7O0lBRUYsOEJBT0M7SUFEQyxzT0FBUyxlQUFBLDRCQUFnQixDQUFBLElBQUM7O0lBRTFCLDJCQUlPO0lBQ1AsZ0NBQXlCO0lBQUEsWUFFdkI7O0lBQUEsaUJBQU8sRUFBQTs7OztJQWJULGlFQUE0QywwQkFBQTtJQUU1QywrRkFBcUU7SUFNbkUsZUFBaUM7SUFBakMsOENBQWlDO0lBRGpDLHlFQUF3QztJQUlqQixlQUV2QjtJQUZ1Qix1SUFFdkI7OztJQTNCTiw4QkFBMEI7SUFDeEIsNkVBVUs7SUFDTCw4RUFnQks7SUFDUCxpQkFBSzs7O0lBMUJBLGVBQThEO0lBQTlELG9HQUE4RDtJQWM1QyxlQUFnQjtJQUFoQiw4Q0FBZ0I7O0FEdkN6QyxNQUFNLE9BQU8sYUFBYTtDQUd6QjtBQU9ELE1BQU0sT0FBTyxlQUFlO0lBeUIxQixJQUFJLE1BQU07UUFDUixPQUFPLElBQUksQ0FBQyxhQUFhLEVBQUUsTUFBTSxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDakUsQ0FBQztJQUVELElBQUksY0FBYztRQUNoQixPQUFPLElBQUksQ0FBQyxLQUFLLEVBQUUsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFRRCxJQUFJLFVBQVU7UUFDWixPQUFPLFVBQVUsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ2pDLENBQUM7SUFFRCxZQUE2QixHQUFzQjtRQUF0QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQTFDMUMsV0FBTSxHQUFpQyxNQUFNLENBQUM7UUFJOUMsU0FBSSxHQUF1QixTQUFTLENBQUM7UUFFckMsZ0JBQVcsR0FBRyxJQUFJLENBQUM7UUFVbkIsdUJBQWtCLEdBQUcsS0FBSyxDQUFDO1FBTTFCLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQWdCLENBQUM7UUFVMUQsa0JBQWEsR0FBaUIsRUFBRSxDQUFDO1FBRWpDLGtCQUFhLEdBQUcsYUFBYSxDQUFDO1FBRTlCLGdCQUFXLEdBQUcsSUFBSSxDQUFDO0lBTW1DLENBQUM7SUFFdkQsV0FBVyxDQUFDLEVBQUUsS0FBSyxFQUFpQjtRQUNsQyxJQUFJLEtBQUssQ0FBQyxZQUFZLEVBQUU7WUFDdEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFLFdBQVcsQ0FBQztTQUN2RDtJQUNILENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFLFdBQVcsQ0FBQztRQUN0RCxJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUMsSUFBaUIsRUFBRSxFQUFFO1lBQ3hELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksS0FBSyxLQUFLLENBQUM7WUFDaEQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBRTlDLENBQUM7WUFDRixJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUs7Z0JBQ3hCLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUNYLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUM7b0JBQ1osR0FBRyxHQUFHO29CQUNOLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDO3dCQUNqQyxDQUFDLENBQUMsRUFBRTt3QkFDSixDQUFDLENBQUM7NEJBQ0U7Z0NBQ0UsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDO2dDQUNYLEtBQUssRUFBRSxHQUFHLENBQUMsS0FBSztnQ0FDaEIsUUFBUSxFQUFFLElBQUk7Z0NBQ2QsS0FBSyxFQUFFLEtBQUs7Z0NBQ1osS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO2dDQUNaLE1BQU0sRUFBRSxHQUFHO2dDQUNYLElBQUksRUFBRSxHQUFHLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQztnQ0FDdEIsR0FBRyxHQUFHOzZCQUNQO3lCQUNGLENBQUM7aUJBQ1AsRUFDRCxFQUFFLENBQ0g7Z0JBQ0gsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQ1QsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztvQkFDVixHQUFHLEdBQUc7b0JBQ04sR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJO3dCQUNSLENBQUMsQ0FBQzs0QkFDRTtnQ0FDRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUk7Z0NBQ1osS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLO2dDQUNkLFFBQVEsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsY0FBYyxDQUFDLEdBQUcsQ0FDaEQsQ0FBQyxDQUFDLElBQUksQ0FDUDtnQ0FDRCxLQUFLLEVBQUUsS0FBSztnQ0FDWixLQUFLLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0NBQzFDLE1BQU0sRUFBRSxDQUFDO2dDQUNULElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQztnQ0FDcEIsR0FBRyxDQUFDOzZCQUNMO3lCQUNGO3dCQUNILENBQUMsQ0FBQyxFQUFFLENBQUM7aUJBQ1IsRUFDRCxFQUFFLENBQ0gsQ0FBQztZQUNOLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRSxjQUFjLENBQUMsSUFBSSxFQUFFO2dCQUM1QyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7YUFDNUM7WUFDRCxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzFCLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDLElBQW1CLEVBQUUsRUFBRTtZQUMxRCxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQztZQUNoQyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FDeEMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLE1BQU0sQ0FBQyxJQUFJLENBQ2xDLENBQUM7WUFDRixVQUFVLENBQUMsUUFBUSxHQUFHLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQztZQUN2QyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNqQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxRQUFRLENBQUMsTUFBa0I7UUFDekIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVELFNBQVMsQ0FBQyxNQUFlO1FBQ3ZCLElBQUksTUFBTSxFQUFFO1lBQ1YsSUFBSSxDQUFDLGNBQWMsQ0FBQyxlQUFlLEVBQUUsQ0FBQztTQUN2QzthQUFNO1lBQ0wsSUFBSSxDQUFDLGNBQWMsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1NBQ3pDO1FBQ0QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzFELENBQUM7Z0ZBaElVLGVBQWU7b0VBQWYsZUFBZTtZQ3BDNUIsZ0VBUU07WUFFTixnRUE0Qk07WUFFTixnRUFLTTtZQUVOLGlIQStCYzs7WUE1RVgsMkRBQWtDO1lBVWxDLGVBQWlCO1lBQWpCLHNDQUFpQjtZQThCakIsZUFBbUM7WUFBbkMsNERBQW1DOzs7dUZETnpCLGVBQWU7Y0FOM0IsU0FBUzsyQkFDRSxpQkFBaUIsbUJBR1YsdUJBQXVCLENBQUMsTUFBTTtvRUFHdEMsTUFBTTtrQkFBZCxLQUFLO1lBRUcsUUFBUTtrQkFBaEIsS0FBSztZQUVHLElBQUk7a0JBQVosS0FBSztZQUVHLFdBQVc7a0JBQW5CLEtBQUs7WUFFRyxhQUFhO2tCQUFyQixLQUFLO1lBRUcsb0JBQW9CO2tCQUE1QixLQUFLO1lBRUcsY0FBYztrQkFBdEIsS0FBSztZQUVHLFVBQVU7a0JBQWxCLEtBQUs7WUFFRyxrQkFBa0I7a0JBQTFCLEtBQUs7WUFFRyxhQUFhO2tCQUFyQixLQUFLO1lBRUcsS0FBSztrQkFBYixLQUFLO1lBRUksWUFBWTtrQkFBckIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIFZpZXcsXG4gIExlZ2VuZCBhcyBDaGFydExlZ2VuZCxcbiAgTGVnZW5kSXRlbSxcbiAgTEVHRU5EX0VWRU5UUyxcbiAgVklFV19IT09LUyxcbiAgQ2hhcnREYXRhLFxuICBEYXRhLFxufSBmcm9tICdAYWxhdWRhL2NoYXJ0JztcbmltcG9ydCB7IGlzVGVtcGxhdGVSZWYgfSBmcm9tICdAYWxhdWRhL3VpJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBUZW1wbGF0ZVJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBnZXQgfSBmcm9tICdsb2Rhc2gtZXMnO1xuXG5pbXBvcnQgeyBTdHJpbmdNYXAgfSBmcm9tICcuLi8uLi9jb3JlL3B1YmxpYy1hcGknO1xuXG5leHBvcnQgY2xhc3MgTGVnZW5kUGF5bG9hZCB7XG4gIGxlZ2VuZDogTGVnZW5kSXRlbTtcbiAgc291cmNlOiBMZWdlbmRJdGVtW107XG59XG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhY2wtYmFzZS1sZWdlbmQnLFxuICB0ZW1wbGF0ZVVybDogJy4vbGVnZW5kLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbGVnZW5kLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBMZWdlbmRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIHN5bWJvbDogJ2NpcmNsZScgfCAnc3F1YXJlJyB8ICdsaW5lJyA9ICdsaW5lJztcblxuICBASW5wdXQoKSB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8dW5rbm93bj4gfCBzdHJpbmcgfCAnZHJvcGRvd24nO1xuXG4gIEBJbnB1dCgpIG1vZGU6ICdjYXJkJyB8ICdkZWZhdWx0JyA9ICdkZWZhdWx0JztcblxuICBASW5wdXQoKSB0cmFuc2xhdGlvbiA9IHRydWU7XG5cbiAgQElucHV0KCkgbGVmdE9wZXJhdGlvbjogVGVtcGxhdGVSZWY8dW5rbm93bj47XG5cbiAgQElucHV0KCkgbGVmdE9wZXJhdGlvbkNvbnRleHQ6IFN0cmluZ01hcDtcblxuICBASW5wdXQoKSByaWdodE9wZXJhdGlvbjogVGVtcGxhdGVSZWY8dW5rbm93bj47XG5cbiAgQElucHV0KCkgaGlkZUxlZ2VuZDogYm9vbGVhbjtcblxuICBASW5wdXQoKSBzZWxlY3RBbGxPcGVyYXRpb24gPSBmYWxzZTtcblxuICBASW5wdXQoKSBzZWxlY3RBbGxOYW1lOiBzdHJpbmc7XG5cbiAgQElucHV0KCkgY2hhcnQ6IFZpZXc7XG5cbiAgQE91dHB1dCgpIGNoYW5nZUxlZ2VuZCA9IG5ldyBFdmVudEVtaXR0ZXI8TGVnZW5kSXRlbVtdPigpO1xuXG4gIGdldCBub0RhdGEoKSB7XG4gICAgcmV0dXJuIHRoaXMubGVnZW5kRW50cmllcz8ubGVuZ3RoID09PSAwIHx8ICF0aGlzLmxlZ2VuZEVudHJpZXM7XG4gIH1cblxuICBnZXQgbGVnZW5kSW5zdGFuY2UoKTogQ2hhcnRMZWdlbmQge1xuICAgIHJldHVybiB0aGlzLmNoYXJ0Py5nZXRDb250cm9sbGVyKCdsZWdlbmQnKTtcbiAgfVxuXG4gIGxlZ2VuZEVudHJpZXM6IExlZ2VuZEl0ZW1bXSA9IFtdO1xuXG4gIGlzVGVtcGxhdGVSZWYgPSBpc1RlbXBsYXRlUmVmO1xuXG4gIGFsbFNlbGVjdGVkID0gdHJ1ZTtcblxuICBnZXQgc3ltYm9sTmFtZSgpIHtcbiAgICByZXR1cm4gYHN5bWJvbC0ke3RoaXMuc3ltYm9sfWA7XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cbiAgbmdPbkNoYW5nZXMoeyBjaGFydCB9OiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYXJ0LmN1cnJlbnRWYWx1ZSkge1xuICAgICAgdGhpcy5sZWdlbmRFbnRyaWVzID0gdGhpcy5sZWdlbmRJbnN0YW5jZT8ubGVnZW5kSXRlbXM7XG4gICAgfVxuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5sZWdlbmRFbnRyaWVzID0gdGhpcy5sZWdlbmRJbnN0YW5jZT8ubGVnZW5kSXRlbXM7XG4gICAgdGhpcy5jaGFydD8ub24oVklFV19IT09LUy5TRVRfREFUQSwgKGRhdGE6IENoYXJ0RGF0YVtdKSA9PiB7XG4gICAgICBjb25zdCBpc0JhciA9IHRoaXMuY2hhcnQub3B0aW9ucy50eXBlID09PSAnYmFyJztcbiAgICAgIGNvbnN0IHZhbHVlcyA9IGRhdGEuZmxhdE1hcChpdGVtID0+IGl0ZW0udmFsdWVzKSBhcyBBcnJheTxcbiAgICAgICAgRGF0YTx7IHg6IHN0cmluZzsgY29sb3I6IHN0cmluZzsgbmFtZTogc3RyaW5nOyB5OiBudW1iZXIgfT5cbiAgICAgID47XG4gICAgICB0aGlzLmxlZ2VuZEVudHJpZXMgPSBpc0JhclxuICAgICAgICA/IHZhbHVlcy5yZWR1Y2U8QXJyYXk8RGF0YTxMZWdlbmRJdGVtPj4+KFxuICAgICAgICAgICAgKHByZSwgY3VyKSA9PiBbXG4gICAgICAgICAgICAgIC4uLnByZSxcbiAgICAgICAgICAgICAgLi4uKHByZS5zb21lKGQgPT4gZC5uYW1lID09PSBjdXIueClcbiAgICAgICAgICAgICAgICA/IFtdXG4gICAgICAgICAgICAgICAgOiBbXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBjdXIueCxcbiAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogY3VyLmNvbG9yLFxuICAgICAgICAgICAgICAgICAgICAgIGFjdGl2YXRlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgIGhvdmVyOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogY3VyLnksXG4gICAgICAgICAgICAgICAgICAgICAgc291cmNlOiBjdXIsXG4gICAgICAgICAgICAgICAgICAgICAgdW5pdDogZ2V0KGN1ciwgJ3VuaXQnKSxcbiAgICAgICAgICAgICAgICAgICAgICAuLi5jdXIsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBdKSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBbXSxcbiAgICAgICAgICApXG4gICAgICAgIDogZGF0YS5yZWR1Y2UoXG4gICAgICAgICAgICAoYWNjLCBkKSA9PiBbXG4gICAgICAgICAgICAgIC4uLmFjYyxcbiAgICAgICAgICAgICAgLi4uKGQubmFtZVxuICAgICAgICAgICAgICAgID8gW1xuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgbmFtZTogZC5uYW1lLFxuICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiBkLmNvbG9yLFxuICAgICAgICAgICAgICAgICAgICAgIGFjdGl2YXRlOiAhdGhpcy5sZWdlbmRJbnN0YW5jZT8uZGlzYWJsZWRMZWdlbmQuaGFzKFxuICAgICAgICAgICAgICAgICAgICAgICAgZC5uYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgICAgaG92ZXI6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBkLnZhbHVlcz8uW2QudmFsdWVzPy5sZW5ndGggLSAxXT8ueSxcbiAgICAgICAgICAgICAgICAgICAgICBzb3VyY2U6IGQsXG4gICAgICAgICAgICAgICAgICAgICAgdW5pdDogZ2V0KGQsICd1bml0JyksXG4gICAgICAgICAgICAgICAgICAgICAgLi4uZCxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgICA6IFtdKSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBbXSxcbiAgICAgICAgICApO1xuICAgICAgaWYgKHRoaXMubGVnZW5kSW5zdGFuY2U/LmRpc2FibGVkTGVnZW5kLnNpemUpIHtcbiAgICAgICAgdGhpcy5jaGFuZ2VMZWdlbmQubmV4dCh0aGlzLmxlZ2VuZEVudHJpZXMpO1xuICAgICAgfVxuICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfSk7XG5cbiAgICB0aGlzLmNoYXJ0Py5vbihMRUdFTkRfRVZFTlRTLkNMSUNLLCAoZGF0YTogTGVnZW5kUGF5bG9hZCkgPT4ge1xuICAgICAgY29uc3QgeyBsZWdlbmQsIHNvdXJjZSB9ID0gZGF0YTtcbiAgICAgIGNvbnN0IGxlZ2VuZEl0ZW0gPSB0aGlzLmxlZ2VuZEVudHJpZXMuZmluZChcbiAgICAgICAgaXRlbSA9PiBpdGVtLm5hbWUgPT09IGxlZ2VuZC5uYW1lLFxuICAgICAgKTtcbiAgICAgIGxlZ2VuZEl0ZW0uYWN0aXZhdGUgPSAhbGVnZW5kLmFjdGl2YXRlO1xuICAgICAgdGhpcy5jaGFuZ2VMZWdlbmQubmV4dChzb3VyY2UpO1xuICAgIH0pO1xuICB9XG5cbiAgc2VsZWN0ZWQobGVnZW5kOiBMZWdlbmRJdGVtKSB7XG4gICAgdGhpcy5sZWdlbmRJbnN0YW5jZS5jaGFuZ2VMZWdlbmQobGVnZW5kKTtcbiAgfVxuXG4gIGFsbFNlbGVjdChzZWxlY3Q6IGJvb2xlYW4pIHtcbiAgICBpZiAoc2VsZWN0KSB7XG4gICAgICB0aGlzLmxlZ2VuZEluc3RhbmNlLmxlZ2VuZFNlbGVjdEFsbCgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmxlZ2VuZEluc3RhbmNlLmxlZ2VuZFVuc2VsZWN0QWxsKCk7XG4gICAgfVxuICAgIHRoaXMubGVnZW5kSW5zdGFuY2UuY2hhbmdlTGVnZW5kKHRoaXMubGVnZW5kRW50cmllc1swXSk7XG4gIH1cbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJvcGVyYXRpb25cIlxuICAqbmdJZj1cImlzVGVtcGxhdGVSZWYobGVmdE9wZXJhdGlvbilcIlxuPlxuICA8bmctY29udGFpbmVyXG4gICAgW25nVGVtcGxhdGVPdXRsZXRdPVwibGVmdE9wZXJhdGlvblwiXG4gICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cImxlZnRPcGVyYXRpb25Db250ZXh0XCJcbiAgPjwvbmctY29udGFpbmVyPlxuPC9kaXY+XG5cbjxkaXZcbiAgY2xhc3M9XCJsZWdlbmQtd3JhcCBvcGVyYXRpb25cIlxuICAqbmdJZj1cIiFoaWRlTGVnZW5kXCJcbj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiF0ZW1wbGF0ZTsgZWxzZSBjdXN0b21cIj5cbiAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImxlZ2VuZFRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gIDwvbmctY29udGFpbmVyPlxuICA8bmctdGVtcGxhdGUgI2N1c3RvbT5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNUZW1wbGF0ZVJlZih0ZW1wbGF0ZSk7IGVsc2UgYnVpbHRpblRlbXBsYXRlXCI+XG4gICAgICA8bmctY29udGFpbmVyXG4gICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIiRhbnkodGVtcGxhdGUpXCJcbiAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgY29udGV4dDogbGVnZW5kRW50cmllcyB9XCJcbiAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctdGVtcGxhdGUgI2J1aWx0aW5UZW1wbGF0ZT5cbiAgICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cInRlbXBsYXRlXCI+XG4gICAgICAgIDxhY2wtbGVnZW5kLWRyb3Bkb3duXG4gICAgICAgICAgY2xhc3M9XCJsZWdlbmQtdmVydGljYWxcIlxuICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCInZHJvcGRvd24nXCJcbiAgICAgICAgICBbZGF0YV09XCJsZWdlbmRFbnRyaWVzXCJcbiAgICAgICAgICBbbm9EYXRhXT1cIm5vRGF0YVwiXG4gICAgICAgICAgW2xlZ2VuZFRlbXBsYXRlXT1cImxlZ2VuZFRlbXBsYXRlXCJcbiAgICAgICAgICBbaXNDYXJkXT1cIm1vZGUgPT09ICdjYXJkJ1wiXG4gICAgICAgID5cbiAgICAgICAgPC9hY2wtbGVnZW5kLWRyb3Bkb3duPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvZGl2PlxuXG48ZGl2XG4gIGNsYXNzPVwib3BlcmF0aW9uXCJcbiAgKm5nSWY9XCJpc1RlbXBsYXRlUmVmKHJpZ2h0T3BlcmF0aW9uKVwiXG4+XG4gIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwicmlnaHRPcGVyYXRpb25cIj48L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI2xlZ2VuZFRlbXBsYXRlPlxuICA8dWwgY2xhc3M9XCJsZWdlbmQtbGFiZWxzXCI+XG4gICAgPGxpXG4gICAgICBjbGFzcz1cInNlbGVjdC1hbGxcIlxuICAgICAgKm5nSWY9XCIhbm9EYXRhICYmIHNlbGVjdEFsbE9wZXJhdGlvbiAmJiB0ZW1wbGF0ZSA9PT0gJ2Ryb3Bkb3duJ1wiXG4gICAgPlxuICAgICAgPGF1aS1jaGVja2JveFxuICAgICAgICBbKG5nTW9kZWwpXT1cImFsbFNlbGVjdGVkXCJcbiAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwiYWxsU2VsZWN0KCRldmVudClcIlxuICAgICAgPlxuICAgICAgICB7eyBzZWxlY3RBbGxOYW1lIHx8ICgnc2VsZWN0X2FsbCcgfCB0cmFuc2xhdGUpIH19XG4gICAgICA8L2F1aS1jaGVja2JveD5cbiAgICA8L2xpPlxuICAgIDxsaVxuICAgICAgY2xhc3M9XCJsZWdlbmQtbGFiZWxcIlxuICAgICAgW2NsYXNzLmRpc2FibGVdPVwiIWxlZ2VuZC5hY3RpdmF0ZSB8fCBub0RhdGFcIlxuICAgICAgW2NsYXNzLmZvcmJpZF09XCJub0RhdGFcIlxuICAgICAgW3RpdGxlXT1cIihsZWdlbmQuYWN0aXZhdGUgPyAnY2xpY2tfaGlkZScgOiAnY2xpY2tfc2hvdycpIHwgdHJhbnNsYXRlXCJcbiAgICAgICpuZ0Zvcj1cImxldCBsZWdlbmQgb2YgbGVnZW5kRW50cmllc1wiXG4gICAgICAoY2xpY2spPVwic2VsZWN0ZWQobGVnZW5kKVwiXG4gICAgPlxuICAgICAgPHNwYW5cbiAgICAgICAgW25nQ2xhc3NdPVwiW3N5bWJvbE5hbWUsICdsYWJlbC1zeW1ib2wnXVwiXG4gICAgICAgIFtzdHlsZS5iYWNrZ3JvdW5kXT1cImxlZ2VuZC5jb2xvclwiXG4gICAgICA+XG4gICAgICA8L3NwYW4+XG4gICAgICA8c3BhbiBjbGFzcz1cImxhYmVsLW5hbWVcIj57e1xuICAgICAgICB0cmFuc2xhdGlvbiA/IChsZWdlbmQubmFtZSB8IHRyYW5zbGF0ZToge306dHJ1ZSkgOiBsZWdlbmQubmFtZVxuICAgICAgfX08L3NwYW4+XG4gICAgPC9saT5cbiAgPC91bD5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
258
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(LegendComponent, { className: "LegendComponent" }); })();
259
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGVnZW5kLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy92aWV3LWNoYXJ0L2xlZ2VuZC9sZWdlbmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL3ZpZXctY2hhcnQvbGVnZW5kL2xlZ2VuZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsSUFBSSxFQUdKLGFBQWEsRUFDYixVQUFVLEdBR1gsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUMzQyxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBRU4sV0FBVyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxXQUFXLENBQUM7Ozs7OztJQ3RCaEMsOEJBR0M7SUFDQywyQkFHZ0I7SUFDbEIsaUJBQU07OztJQUhGLGNBQWtDO0lBQ2xDLEFBREEsdURBQWtDLHdEQUNjOzs7SUFRbEQsNkJBQTZDO0lBQzNDLDJCQUFpRTs7Ozs7SUFBbkQsY0FBbUM7SUFBbkMsb0RBQW1DOzs7SUFHakQsNkJBQW9FO0lBQ2xFLDJCQUdnQjs7OztJQUZkLGNBQW1DO0lBQ25DLEFBREEsa0RBQW1DLDZFQUNtQjs7O0lBS3RELDBDQVFzQjs7OztJQUZwQixBQURBLEFBREEsQUFEQSwyQ0FBc0IseUJBQ0wscUNBQ2dCLGtDQUNQOzs7SUFQOUIsaUNBQW9DO0lBQ2xDLG1JQU9DOzs7O0lBUlcsMENBQXFCO0lBRzlCLGNBQXdCO0lBQXhCLHlDQUF3Qjs7O0lBSi9CLEFBTkEsc0dBQW9FLHdIQU10Qzs7OztJQU5nQixBQUEvQiw0REFBK0IsZ0NBQW9COzs7SUFSdEUsOEJBR0M7SUFJ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LEFBOUJBLEFBVkEsZ0VBR0MsbURBVUEsbURBOEJBLG9HQUk0Qjs7WUE3QzFCLDJEQUFrQztZQVVsQyxjQUFpQjtZQUFqQixzQ0FBaUI7WUE4QmpCLGNBQW1DO1lBQW5DLDREQUFtQzs7O2lGRE56QixlQUFlO2NBTjNCLFNBQVM7MkJBQ0UsaUJBQWlCLG1CQUdWLHVCQUF1QixDQUFDLE1BQU07a0RBR3RDLE1BQU07a0JBQWQsS0FBSztZQUVHLFFBQVE7a0JBQWhCLEtBQUs7WUFFRyxJQUFJO2tCQUFaLEtBQUs7WUFFRyxXQUFXO2tCQUFuQixLQUFLO1lBRUcsYUFBYTtrQkFBckIsS0FBSztZQUVHLG9CQUFvQjtrQkFBNUIsS0FBSztZQUVHLGNBQWM7a0JBQXRCLEtBQUs7WUFFRyxVQUFVO2tCQUFsQixLQUFLO1lBRUcsa0JBQWtCO2tCQUExQixLQUFLO1lBRUcsYUFBYTtrQkFBckIsS0FBSztZQUVHLEtBQUs7a0JBQWIsS0FBSztZQUVJLFlBQVk7a0JBQXJCLE1BQU07O2tGQXZCSSxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgVmlldyxcbiAgTGVnZW5kIGFzIENoYXJ0TGVnZW5kLFxuICBMZWdlbmRJdGVtLFxuICBMRUdFTkRfRVZFTlRTLFxuICBWSUVXX0hPT0tTLFxuICBDaGFydERhdGEsXG4gIERhdGEsXG59IGZyb20gJ0BhbGF1ZGEvY2hhcnQnO1xuaW1wb3J0IHsgaXNUZW1wbGF0ZVJlZiB9IGZyb20gJ0BhbGF1ZGEvdWknO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFRlbXBsYXRlUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGdldCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5cbmltcG9ydCB7IFN0cmluZ01hcCB9IGZyb20gJy4uLy4uL2NvcmUvcHVibGljLWFwaSc7XG5cbmV4cG9ydCBjbGFzcyBMZWdlbmRQYXlsb2FkIHtcbiAgbGVnZW5kOiBMZWdlbmRJdGVtO1xuICBzb3VyY2U6IExlZ2VuZEl0ZW1bXTtcbn1cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FjbC1iYXNlLWxlZ2VuZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9sZWdlbmQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9sZWdlbmQuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIExlZ2VuZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgc3ltYm9sOiAnY2lyY2xlJyB8ICdzcXVhcmUnIHwgJ2xpbmUnID0gJ2xpbmUnO1xuXG4gIEBJbnB1dCgpIHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjx1bmtub3duPiB8IHN0cmluZyB8ICdkcm9wZG93bic7XG5cbiAgQElucHV0KCkgbW9kZTogJ2NhcmQnIHwgJ2RlZmF1bHQnID0gJ2RlZmF1bHQnO1xuXG4gIEBJbnB1dCgpIHRyYW5zbGF0aW9uID0gdHJ1ZTtcblxuICBASW5wdXQoKSBsZWZ0T3BlcmF0aW9uOiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcblxuICBASW5wdXQoKSBsZWZ0T3BlcmF0aW9uQ29udGV4dDogU3RyaW5nTWFwO1xuXG4gIEBJbnB1dCgpIHJpZ2h0T3BlcmF0aW9uOiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcblxuICBASW5wdXQoKSBoaWRlTGVnZW5kOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpIHNlbGVjdEFsbE9wZXJhdGlvbiA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpIHNlbGVjdEFsbE5hbWU6IHN0cmluZztcblxuICBASW5wdXQoKSBjaGFydDogVmlldztcblxuICBAT3V0cHV0KCkgY2hhbmdlTGVnZW5kID0gbmV3IEV2ZW50RW1pdHRlcjxMZWdlbmRJdGVtW10+KCk7XG5cbiAgZ2V0IG5vRGF0YSgpIHtcbiAgICByZXR1cm4gdGhpcy5sZWdlbmRFbnRyaWVzPy5sZW5ndGggPT09IDAgfHwgIXRoaXMubGVnZW5kRW50cmllcztcbiAgfVxuXG4gIGdldCBsZWdlbmRJbnN0YW5jZSgpOiBDaGFydExlZ2VuZCB7XG4gICAgcmV0dXJuIHRoaXMuY2hhcnQ/LmdldENvbnRyb2xsZXIoJ2xlZ2VuZCcpO1xuICB9XG5cbiAgbGVnZW5kRW50cmllczogTGVnZW5kSXRlbVtdID0gW107XG5cbiAgaXNUZW1wbGF0ZVJlZiA9IGlzVGVtcGxhdGVSZWY7XG5cbiAgYWxsU2VsZWN0ZWQgPSB0cnVlO1xuXG4gIGdldCBzeW1ib2xOYW1lKCkge1xuICAgIHJldHVybiBgc3ltYm9sLSR7dGhpcy5zeW1ib2x9YDtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICBuZ09uQ2hhbmdlcyh7IGNoYXJ0IH06IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhcnQuY3VycmVudFZhbHVlKSB7XG4gICAgICB0aGlzLmxlZ2VuZEVudHJpZXMgPSB0aGlzLmxlZ2VuZEluc3RhbmNlPy5sZWdlbmRJdGVtcztcbiAgICB9XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmxlZ2VuZEVudHJpZXMgPSB0aGlzLmxlZ2VuZEluc3RhbmNlPy5sZWdlbmRJdGVtcztcbiAgICB0aGlzLmNoYXJ0Py5vbihWSUVXX0hPT0tTLlNFVF9EQVRBLCAoZGF0YTogQ2hhcnREYXRhW10pID0+IHtcbiAgICAgIGNvbnN0IGlzQmFyID0gdGhpcy5jaGFydC5vcHRpb25zLnR5cGUgPT09ICdiYXInO1xuICAgICAgY29uc3QgdmFsdWVzID0gZGF0YS5mbGF0TWFwKGl0ZW0gPT4gaXRlbS52YWx1ZXMpIGFzIEFycmF5PFxuICAgICAgICBEYXRhPHsgeDogc3RyaW5nOyBjb2xvcjogc3RyaW5nOyBuYW1lOiBzdHJpbmc7IHk6IG51bWJlciB9PlxuICAgICAgPjtcbiAgICAgIHRoaXMubGVnZW5kRW50cmllcyA9IGlzQmFyXG4gICAgICAgID8gdmFsdWVzLnJlZHVjZTxBcnJheTxEYXRhPExlZ2VuZEl0ZW0+Pj4oXG4gICAgICAgICAgICAocHJlLCBjdXIpID0+IFtcbiAgICAgICAgICAgICAgLi4ucHJlLFxuICAgICAgICAgICAgICAuLi4ocHJlLnNvbWUoZCA9PiBkLm5hbWUgPT09IGN1ci54KVxuICAgICAgICAgICAgICAgID8gW11cbiAgICAgICAgICAgICAgICA6IFtcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IGN1ci54LFxuICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiBjdXIuY29sb3IsXG4gICAgICAgICAgICAgICAgICAgICAgYWN0aXZhdGU6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgaG92ZXI6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBjdXIueSxcbiAgICAgICAgICAgICAgICAgICAgICBzb3VyY2U6IGN1cixcbiAgICAgICAgICAgICAgICAgICAgICB1bml0OiBnZXQoY3VyLCAndW5pdCcpLFxuICAgICAgICAgICAgICAgICAgICAgIC4uLmN1cixcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIF0pLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFtdLFxuICAgICAgICAgIClcbiAgICAgICAgOiBkYXRhLnJlZHVjZShcbiAgICAgICAgICAgIChhY2MsIGQpID0+IFtcbiAgICAgICAgICAgICAgLi4uYWNjLFxuICAgICAgICAgICAgICAuLi4oZC5uYW1lXG4gICAgICAgICAgICAgICAgPyBbXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBkLm5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgY29sb3I6IGQuY29sb3IsXG4gICAgICAgICAgICAgICAgICAgICAgYWN0aXZhdGU6ICF0aGlzLmxlZ2VuZEluc3RhbmNlPy5kaXNhYmxlZExlZ2VuZC5oYXMoXG4gICAgICAgICAgICAgICAgICAgICAgICBkLm5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgICAgICBob3ZlcjogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGQudmFsdWVzPy5bZC52YWx1ZXM/Lmxlbmd0aCAtIDFdPy55LFxuICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZTogZCxcbiAgICAgICAgICAgICAgICAgICAgICB1bml0OiBnZXQoZCwgJ3VuaXQnKSxcbiAgICAgICAgICAgICAgICAgICAgICAuLi5kLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICAgIDogW10pLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFtdLFxuICAgICAgICAgICk7XG4gICAgICBpZiAodGhpcy5sZWdlbmRJbnN0YW5jZT8uZGlzYWJsZWRMZWdlbmQuc2l6ZSkge1xuICAgICAgICB0aGlzLmNoYW5nZUxlZ2VuZC5uZXh0KHRoaXMubGVnZW5kRW50cmllcyk7XG4gICAgICB9XG4gICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9KTtcblxuICAgIHRoaXMuY2hhcnQ/Lm9uKExFR0VORF9FVkVOVFMuQ0xJQ0ssIChkYXRhOiBMZWdlbmRQYXlsb2FkKSA9PiB7XG4gICAgICBjb25zdCB7IGxlZ2VuZCwgc291cmNlIH0gPSBkYXRhO1xuICAgICAgY29uc3QgbGVnZW5kSXRlbSA9IHRoaXMubGVnZW5kRW50cmllcy5maW5kKFxuICAgICAgICBpdGVtID0+IGl0ZW0ubmFtZSA9PT0gbGVnZW5kLm5hbWUsXG4gICAgICApO1xuICAgICAgbGVnZW5kSXRlbS5hY3RpdmF0ZSA9ICFsZWdlbmQuYWN0aXZhdGU7XG4gICAgICB0aGlzLmNoYW5nZUxlZ2VuZC5uZXh0KHNvdXJjZSk7XG4gICAgfSk7XG4gIH1cblxuICBzZWxlY3RlZChsZWdlbmQ6IExlZ2VuZEl0ZW0pIHtcbiAgICB0aGlzLmxlZ2VuZEluc3RhbmNlLmNoYW5nZUxlZ2VuZChsZWdlbmQpO1xuICB9XG5cbiAgYWxsU2VsZWN0KHNlbGVjdDogYm9vbGVhbikge1xuICAgIGlmIChzZWxlY3QpIHtcbiAgICAgIHRoaXMubGVnZW5kSW5zdGFuY2UubGVnZW5kU2VsZWN0QWxsKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubGVnZW5kSW5zdGFuY2UubGVnZW5kVW5zZWxlY3RBbGwoKTtcbiAgICB9XG4gICAgdGhpcy5sZWdlbmRJbnN0YW5jZS5jaGFuZ2VMZWdlbmQodGhpcy5sZWdlbmRFbnRyaWVzWzBdKTtcbiAgfVxufVxuIiwiPGRpdlxuICBjbGFzcz1cIm9wZXJhdGlvblwiXG4gICpuZ0lmPVwiaXNUZW1wbGF0ZVJlZihsZWZ0T3BlcmF0aW9uKVwiXG4+XG4gIDxuZy1jb250YWluZXJcbiAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJsZWZ0T3BlcmF0aW9uXCJcbiAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwibGVmdE9wZXJhdGlvbkNvbnRleHRcIlxuICA+PC9uZy1jb250YWluZXI+XG48L2Rpdj5cblxuPGRpdlxuICBjbGFzcz1cImxlZ2VuZC13cmFwIG9wZXJhdGlvblwiXG4gICpuZ0lmPVwiIWhpZGVMZWdlbmRcIlxuPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXRlbXBsYXRlOyBlbHNlIGN1c3RvbVwiPlxuICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwibGVnZW5kVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgPC9uZy1jb250YWluZXI+XG4gIDxuZy10ZW1wbGF0ZSAjY3VzdG9tPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc1RlbXBsYXRlUmVmKHRlbXBsYXRlKTsgZWxzZSBidWlsdGluVGVtcGxhdGVcIj5cbiAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiJGFueSh0ZW1wbGF0ZSlcIlxuICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyBjb250ZXh0OiBsZWdlbmRFbnRyaWVzIH1cIlxuICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy10ZW1wbGF0ZSAjYnVpbHRpblRlbXBsYXRlPlxuICAgICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwidGVtcGxhdGVcIj5cbiAgICAgICAgPGFjbC1sZWdlbmQtZHJvcGRvd25cbiAgICAgICAgICBjbGFzcz1cImxlZ2VuZC12ZXJ0aWNhbFwiXG4gICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidkcm9wZG93bidcIlxuICAgICAgICAgIFtkYXRhXT1cImxlZ2VuZEVudHJpZXNcIlxuICAgICAgICAgIFtub0RhdGFdPVwibm9EYXRhXCJcbiAgICAgICAgICBbbGVnZW5kVGVtcGxhdGVdPVwibGVnZW5kVGVtcGxhdGVcIlxuICAgICAgICAgIFtpc0NhcmRdPVwibW9kZSA9PT0gJ2NhcmQnXCJcbiAgICAgICAgPlxuICAgICAgICA8L2FjbC1sZWdlbmQtZHJvcGRvd24+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L25nLXRlbXBsYXRlPlxuPC9kaXY+XG5cbjxkaXZcbiAgY2xhc3M9XCJvcGVyYXRpb25cIlxuICAqbmdJZj1cImlzVGVtcGxhdGVSZWYocmlnaHRPcGVyYXRpb24pXCJcbj5cbiAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJyaWdodE9wZXJhdGlvblwiPjwvbmctY29udGFpbmVyPlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjbGVnZW5kVGVtcGxhdGU+XG4gIDx1bCBjbGFzcz1cImxlZ2VuZC1sYWJlbHNcIj5cbiAgICA8bGlcbiAgICAgIGNsYXNzPVwic2VsZWN0LWFsbFwiXG4gICAgICAqbmdJZj1cIiFub0RhdGEgJiYgc2VsZWN0QWxsT3BlcmF0aW9uICYmIHRlbXBsYXRlID09PSAnZHJvcGRvd24nXCJcbiAgICA+XG4gICAgICA8YXVpLWNoZWNrYm94XG4gICAgICAgIFsobmdNb2RlbCldPVwiYWxsU2VsZWN0ZWRcIlxuICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJhbGxTZWxlY3QoJGV2ZW50KVwiXG4gICAgICA+XG4gICAgICAgIHt7IHNlbGVjdEFsbE5hbWUgfHwgKCdzZWxlY3RfYWxsJyB8IHRyYW5zbGF0ZSkgfX1cbiAgICAgIDwvYXVpLWNoZWNrYm94PlxuICAgIDwvbGk+XG4gICAgPGxpXG4gICAgICBjbGFzcz1cImxlZ2VuZC1sYWJlbFwiXG4gICAgICBbY2xhc3MuZGlzYWJsZV09XCIhbGVnZW5kLmFjdGl2YXRlIHx8IG5vRGF0YVwiXG4gICAgICBbY2xhc3MuZm9yYmlkXT1cIm5vRGF0YVwiXG4gICAgICBbdGl0bGVdPVwiKGxlZ2VuZC5hY3RpdmF0ZSA/ICdjbGlja19oaWRlJyA6ICdjbGlja19zaG93JykgfCB0cmFuc2xhdGVcIlxuICAgICAgKm5nRm9yPVwibGV0IGxlZ2VuZCBvZiBsZWdlbmRFbnRyaWVzXCJcbiAgICAgIChjbGljayk9XCJzZWxlY3RlZChsZWdlbmQpXCJcbiAgICA+XG4gICAgICA8c3BhblxuICAgICAgICBbbmdDbGFzc109XCJbc3ltYm9sTmFtZSwgJ2xhYmVsLXN5bWJvbCddXCJcbiAgICAgICAgW3N0eWxlLmJhY2tncm91bmRdPVwibGVnZW5kLmNvbG9yXCJcbiAgICAgID5cbiAgICAgIDwvc3Bhbj5cbiAgICAgIDxzcGFuIGNsYXNzPVwibGFiZWwtbmFtZVwiPnt7XG4gICAgICAgIHRyYW5zbGF0aW9uID8gKGxlZ2VuZC5uYW1lIHwgdHJhbnNsYXRlOiB7fTp0cnVlKSA6IGxlZ2VuZC5uYW1lXG4gICAgICB9fTwvc3Bhbj5cbiAgICA8L2xpPlxuICA8L3VsPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==