@alauda-fe/common 1.4.36 → 1.4.37

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 (734) hide show
  1. package/abnormal-page/abnormal-page.component.d.ts.map +1 -0
  2. package/abnormal-page/abnormal-page.module.d.ts.map +1 -0
  3. package/abnormal-page/public-api.d.ts.map +1 -0
  4. package/alauda-fe-common.d.ts.map +1 -0
  5. package/api/acp-common-api.service.d.ts.map +1 -0
  6. package/api/api-compatible.interceptor.d.ts.map +1 -0
  7. package/api/api-gateway.interceptor.d.ts.map +1 -0
  8. package/api/api-gateway.service.d.ts.map +1 -0
  9. package/api/auth-api.service.d.ts.map +1 -0
  10. package/api/cluster-version.service.d.ts.map +1 -0
  11. package/api/crypto.interceptor.d.ts.map +1 -0
  12. package/api/helpers.d.ts.map +1 -0
  13. package/api/k8s-api-resource.service.d.ts.map +1 -0
  14. package/api/k8s-api.service.d.ts.map +1 -0
  15. package/api/page-visibility.service.d.ts.map +1 -0
  16. package/api/platform-ui.service.d.ts.map +1 -0
  17. package/api/product.service.d.ts.map +1 -0
  18. package/api/project-api.service.d.ts.map +1 -0
  19. package/api/public-api.d.ts.map +1 -0
  20. package/api/resource-update.service.d.ts.map +1 -0
  21. package/api/types.d.ts.map +1 -0
  22. package/array-form-table/base-string-map-form.component.d.ts.map +1 -0
  23. package/array-form-table/form/component.d.ts +1 -1
  24. package/array-form-table/form/component.d.ts.map +1 -0
  25. package/array-form-table/form/module.d.ts.map +1 -0
  26. package/array-form-table/key-value-form/component.d.ts.map +1 -0
  27. package/array-form-table/key-value-table/component.d.ts.map +1 -0
  28. package/array-form-table/public-api.d.ts.map +1 -0
  29. package/array-form-table/string-array-form/component.d.ts.map +1 -0
  30. package/async-data/async-data-loader.d.ts.map +1 -0
  31. package/async-data/async-data.module.d.ts.map +1 -0
  32. package/async-data/error-page/component.d.ts.map +1 -0
  33. package/async-data/page-state/component.d.ts.map +1 -0
  34. package/async-data/public-api.d.ts.map +1 -0
  35. package/async-data/types.d.ts.map +1 -0
  36. package/authorization/app-init-url.d.ts.map +1 -0
  37. package/authorization/authorization.d.ts +3 -12
  38. package/authorization/authorization.d.ts.map +1 -0
  39. package/authorization/constants.d.ts +2 -0
  40. package/authorization/constants.d.ts.map +1 -0
  41. package/authorization/guard.service.d.ts.map +1 -0
  42. package/authorization/interceptor.service.d.ts +5 -3
  43. package/authorization/interceptor.service.d.ts.map +1 -0
  44. package/authorization/public-api.d.ts +1 -0
  45. package/authorization/public-api.d.ts.map +1 -0
  46. package/authorization/runtime.d.ts +33 -0
  47. package/authorization/runtime.d.ts.map +1 -0
  48. package/authorization/session-manage.service.d.ts +0 -2
  49. package/authorization/session-manage.service.d.ts.map +1 -0
  50. package/authorization/state.service.d.ts +7 -12
  51. package/authorization/state.service.d.ts.map +1 -0
  52. package/authorization/storage-token.d.ts.map +1 -0
  53. package/authorization/token-client.d.ts +48 -0
  54. package/business/notification-disabled-container/component.d.ts.map +1 -0
  55. package/business/notification-disabled-container/public-api.d.ts.map +1 -0
  56. package/business/public-api.d.ts.map +1 -0
  57. package/business/resource-select/base-list.d.ts.map +1 -0
  58. package/business/resource-select/context.service.d.ts.map +1 -0
  59. package/business/resource-select/exports/cluster-list/component.d.ts +1 -1
  60. package/business/resource-select/exports/cluster-list/component.d.ts.map +1 -0
  61. package/business/resource-select/exports/cluster-selector/component.d.ts.map +1 -0
  62. package/business/resource-select/exports/icon/component.d.ts.map +1 -0
  63. package/business/resource-select/exports/mesh-group-selector/component.d.ts.map +1 -0
  64. package/business/resource-select/exports/namespace-list/component.d.ts.map +1 -0
  65. package/business/resource-select/exports/namespace-page/component.d.ts.map +1 -0
  66. package/business/resource-select/exports/namespace-selector/component.d.ts.map +1 -0
  67. package/business/resource-select/exports/project-list/component.d.ts.map +1 -0
  68. package/business/resource-select/exports/project-page/component.d.ts.map +1 -0
  69. package/business/resource-select/exports/project-selector/component.d.ts.map +1 -0
  70. package/business/resource-select/helpers.directive.d.ts.map +1 -0
  71. package/business/resource-select/internals/data-grid/component.d.ts.map +1 -0
  72. package/business/resource-select/internals/meshgroup-list/component.d.ts.map +1 -0
  73. package/business/resource-select/internals/no-data/component.d.ts.map +1 -0
  74. package/business/resource-select/internals/resource-dashboard/component.d.ts.map +1 -0
  75. package/business/resource-select/internals/selector-popup/component.d.ts.map +1 -0
  76. package/business/resource-select/internals/selector-popup/ref.d.ts.map +1 -0
  77. package/business/resource-select/internals/selector-popup/service.d.ts.map +1 -0
  78. package/business/resource-select/module.d.ts.map +1 -0
  79. package/business/resource-select/project.service.d.ts.map +1 -0
  80. package/business/resource-select/public-api.d.ts.map +1 -0
  81. package/business/resource-select/types.d.ts.map +1 -0
  82. package/business/resource-select/utils.d.ts.map +1 -0
  83. package/chart/chart.module.d.ts.map +1 -0
  84. package/chart/chart.service.d.ts.map +1 -0
  85. package/chart/common/axis/axis-label.component.d.ts.map +1 -0
  86. package/chart/common/axis/x-axis-ticks.component.d.ts.map +1 -0
  87. package/chart/common/axis/x-axis.component.d.ts.map +1 -0
  88. package/chart/common/axis/x-plot-lines.component.d.ts.map +1 -0
  89. package/chart/common/axis/y-axis-ticks.component.d.ts.map +1 -0
  90. package/chart/common/axis/y-axis.component.d.ts.map +1 -0
  91. package/chart/common/axis/y-plot-lines.component.d.ts.map +1 -0
  92. package/chart/common/chart/chart.component.d.ts.map +1 -0
  93. package/chart/common/legend/legend.component.d.ts.map +1 -0
  94. package/chart/common/public-api.d.ts.map +1 -0
  95. package/chart/common/range-area/range-area.component.d.ts.map +1 -0
  96. package/chart/common/reference-area/reference-area.component.d.ts.map +1 -0
  97. package/chart/common/series/area-series.component.d.ts.map +1 -0
  98. package/chart/common/series/bar-path.component.d.ts.map +1 -0
  99. package/chart/common/series/bar-series.component.d.ts.map +1 -0
  100. package/chart/common/series/line-series.component.d.ts.map +1 -0
  101. package/chart/common/series/series.component.d.ts.map +1 -0
  102. package/chart/common/tooltip/tooltip.component.d.ts.map +1 -0
  103. package/chart/constants.d.ts.map +1 -0
  104. package/chart/custom-template/dropdown-legend.d.ts.map +1 -0
  105. package/chart/public-api.d.ts.map +1 -0
  106. package/chart/types.d.ts.map +1 -0
  107. package/chart/utils.d.ts.map +1 -0
  108. package/code/code-display-dialog/component.d.ts.map +1 -0
  109. package/code/code-editor-configs.d.ts.map +1 -0
  110. package/code/code.module.d.ts.map +1 -0
  111. package/code/k8s-yaml-display-dialog/component.d.ts.map +1 -0
  112. package/code/managed-fields-folder.util.d.ts.map +1 -0
  113. package/code/public-api.d.ts.map +1 -0
  114. package/code/resource-yaml-display/component.d.ts.map +1 -0
  115. package/code/resource-yaml-editor/component.d.ts.map +1 -0
  116. package/code/yaml-examples.d.ts.map +1 -0
  117. package/code/yaml-sidebar/component.d.ts.map +1 -0
  118. package/code/yaml-sidebar/types.d.ts.map +1 -0
  119. package/core/abstract/base-form-container.d.ts.map +1 -0
  120. package/core/abstract/base-nested-form-control.d.ts +1 -1
  121. package/core/abstract/base-nested-form-control.d.ts.map +1 -0
  122. package/core/abstract/public-api.d.ts.map +1 -0
  123. package/core/components/public-api.d.ts.map +1 -0
  124. package/core/components/tree/module.d.ts.map +1 -0
  125. package/core/components/tree/node/component.d.ts.map +1 -0
  126. package/core/components/tree/outlet.d.ts.map +1 -0
  127. package/core/components/tree/padding.d.ts.map +1 -0
  128. package/core/components/tree/toggle.d.ts.map +1 -0
  129. package/core/components/tree/tree/component.d.ts.map +1 -0
  130. package/core/constants/constants.d.ts.map +1 -0
  131. package/core/constants/patterns.d.ts.map +1 -0
  132. package/core/constants/public-api.d.ts.map +1 -0
  133. package/core/constants/status-icons.d.ts.map +1 -0
  134. package/core/constants/timezones.d.ts.map +1 -0
  135. package/core/constants/tokens.d.ts.map +1 -0
  136. package/core/directives/aui-code-editor.directive.d.ts.map +1 -0
  137. package/core/directives/click-outside.directive.d.ts.map +1 -0
  138. package/core/directives/declare.directive.d.ts.map +1 -0
  139. package/core/directives/disabled.directive.d.ts.map +1 -0
  140. package/core/directives/feature-gate.directive.d.ts.map +1 -0
  141. package/core/directives/intercept-deactivate.directive.d.ts.map +1 -0
  142. package/core/directives/last-form-item.directive.d.ts.map +1 -0
  143. package/core/directives/page-header-content.directive.d.ts.map +1 -0
  144. package/core/directives/public-api.d.ts.map +1 -0
  145. package/core/directives/readonly-field.directive.d.ts.map +1 -0
  146. package/core/directives/resize.directive.d.ts.map +1 -0
  147. package/core/directives/scroll-border-observer.directive.d.ts.map +1 -0
  148. package/core/directives/scroll-to-first-invalid.directive.d.ts +1 -1
  149. package/core/directives/scroll-to-first-invalid.directive.d.ts.map +1 -0
  150. package/core/guards/feature.guard.d.ts.map +1 -0
  151. package/core/guards/intercept-deactivate.guard.d.ts.map +1 -0
  152. package/core/guards/leave-edit-page.guard.d.ts.map +1 -0
  153. package/core/guards/project-namespace.guard.d.ts.map +1 -0
  154. package/core/guards/public-api.d.ts.map +1 -0
  155. package/core/module.d.ts.map +1 -0
  156. package/core/pipes/calc.pipe.d.ts.map +1 -0
  157. package/core/pipes/cron-human-readable.pipe.d.ts.map +1 -0
  158. package/core/pipes/crontab-next.pipe.d.ts.map +1 -0
  159. package/core/pipes/duration.pipe.d.ts.map +1 -0
  160. package/core/pipes/field-not-available.pipe.d.ts.map +1 -0
  161. package/core/pipes/img-header.pipe.d.ts.map +1 -0
  162. package/core/pipes/img-theme.pipe.d.ts.map +1 -0
  163. package/core/pipes/k8s-util.pipe.d.ts.map +1 -0
  164. package/core/pipes/k8s-util.pipe.module.d.ts.map +1 -0
  165. package/core/pipes/keyvalue.pipe.d.ts.map +1 -0
  166. package/core/pipes/marked.pipe.d.ts.map +1 -0
  167. package/core/pipes/minimum-format.pipe.d.ts.map +1 -0
  168. package/core/pipes/page-env.pipe.d.ts.map +1 -0
  169. package/core/pipes/parse-json-translate.pipe.d.ts.map +1 -0
  170. package/core/pipes/parse-json.pipe.d.ts.map +1 -0
  171. package/core/pipes/public-api.d.ts.map +1 -0
  172. package/core/pipes/pure.pipe.d.ts.map +1 -0
  173. package/core/pipes/pure.pipe.module.d.ts.map +1 -0
  174. package/core/pipes/safe.pipe.d.ts.map +1 -0
  175. package/core/pipes/sanitize.pipe.d.ts.map +1 -0
  176. package/core/pipes/time.pipe.d.ts.map +1 -0
  177. package/core/pipes/timezone-display.pipe.d.ts.map +1 -0
  178. package/core/public-api.d.ts.map +1 -0
  179. package/core/services/aui-paginator-intl.service.d.ts.map +1 -0
  180. package/core/services/aui-tooltip-copy-intl.service.d.ts.map +1 -0
  181. package/core/services/context.service.d.ts.map +1 -0
  182. package/core/services/custom-code-editor-intl.service.d.ts.map +1 -0
  183. package/core/services/disaster-recovery.service.d.ts.map +1 -0
  184. package/core/services/encode-url-param.interceptor.d.ts.map +1 -0
  185. package/core/services/feature-gate.service.d.ts.map +1 -0
  186. package/core/services/form-row-duplicate/form-row-duplicate.service.d.ts.map +1 -0
  187. package/core/services/intercept-deactivate.service.d.ts.map +1 -0
  188. package/core/services/k8s-util.service.d.ts.map +1 -0
  189. package/core/services/kubernetes-schema.service.d.ts.map +1 -0
  190. package/core/services/on-resize.service.d.ts.map +1 -0
  191. package/core/services/plugin-util.service.d.ts.map +1 -0
  192. package/core/services/public-api.d.ts.map +1 -0
  193. package/core/services/silently-navigate.service.d.ts.map +1 -0
  194. package/core/services/time.service.d.ts.map +1 -0
  195. package/core/services/ui-state.service.d.ts.map +1 -0
  196. package/core/services/workspace-helper.service.d.ts.map +1 -0
  197. package/core/services/yaml-util.service.d.ts.map +1 -0
  198. package/core/types/commons.d.ts.map +1 -0
  199. package/core/types/helpers.d.ts.map +1 -0
  200. package/core/types/k8s/core.d.ts.map +1 -0
  201. package/core/types/k8s/crd.d.ts.map +1 -0
  202. package/core/types/k8s/public-api.d.ts.map +1 -0
  203. package/core/types/k8s/raw.d.ts.map +1 -0
  204. package/core/types/openapi.d.ts.map +1 -0
  205. package/core/types/public-api.d.ts.map +1 -0
  206. package/core/types/resource-definitions.d.ts +1 -1
  207. package/core/types/resource-definitions.d.ts.map +1 -0
  208. package/core/types/schema.d.ts.map +1 -0
  209. package/core/utils/browser.d.ts.map +1 -0
  210. package/core/utils/cache-store.d.ts.map +1 -0
  211. package/core/utils/color-helpers.d.ts.map +1 -0
  212. package/core/utils/common.d.ts.map +1 -0
  213. package/core/utils/create-recursive-filter.d.ts.map +1 -0
  214. package/core/utils/cron-util.d.ts.map +1 -0
  215. package/core/utils/decorators.d.ts.map +1 -0
  216. package/core/utils/dev-helpers.d.ts.map +1 -0
  217. package/core/utils/disabled-state.d.ts.map +1 -0
  218. package/core/utils/format-number.d.ts.map +1 -0
  219. package/core/utils/k8s-util.d.ts.map +1 -0
  220. package/core/utils/local-storage-constants.d.ts.map +1 -0
  221. package/core/utils/node.d.ts.map +1 -0
  222. package/core/utils/observable.d.ts.map +1 -0
  223. package/core/utils/operators.d.ts.map +1 -0
  224. package/core/utils/public-api.d.ts.map +1 -0
  225. package/core/utils/request-pool.d.ts.map +1 -0
  226. package/core/utils/resources.d.ts.map +1 -0
  227. package/core/utils/router.d.ts.map +1 -0
  228. package/core/utils/sort-fn.d.ts.map +1 -0
  229. package/core/utils/tree.d.ts.map +1 -0
  230. package/core/utils/unit.d.ts.map +1 -0
  231. package/core/utils/version.d.ts +1 -1
  232. package/core/utils/version.d.ts.map +1 -0
  233. package/core/utils/with-load-state.d.ts.map +1 -0
  234. package/core/utils/workload.d.ts.map +1 -0
  235. package/core/utils/workspace.d.ts.map +1 -0
  236. package/core/utils/yaml.d.ts.map +1 -0
  237. package/custom-columns-setting/component.d.ts.map +1 -0
  238. package/custom-columns-setting/public-api.d.ts.map +1 -0
  239. package/disabled-container/disabled-container.component.d.ts.map +1 -0
  240. package/disabled-container/disabled-container.module.d.ts.map +1 -0
  241. package/disabled-container/public-api.d.ts.map +1 -0
  242. package/editable/editable.component.d.ts.map +1 -0
  243. package/editable/editable.directive.d.ts.map +1 -0
  244. package/editable/editable.type.d.ts.map +1 -0
  245. package/editable/public-api.d.ts.map +1 -0
  246. package/editable-text/component.d.ts.map +1 -0
  247. package/editable-text/module.d.ts.map +1 -0
  248. package/editable-text/public-api.d.ts.map +1 -0
  249. package/effect-directive/coerce-number.directive.d.ts.map +1 -0
  250. package/effect-directive/e2e-attribute-binding.directive.d.ts.map +1 -0
  251. package/effect-directive/event.directive.d.ts.map +1 -0
  252. package/effect-directive/min-max.directive.d.ts.map +1 -0
  253. package/effect-directive/module.d.ts.map +1 -0
  254. package/effect-directive/public-api.d.ts.map +1 -0
  255. package/effect-directive/trim.directive.d.ts.map +1 -0
  256. package/effect-directive/validators.directive.d.ts.map +1 -0
  257. package/esm2022/abnormal-page/abnormal-page.component.mjs +7 -3
  258. package/esm2022/abnormal-page/abnormal-page.module.mjs +1 -6
  259. package/esm2022/array-form-table/form/component.mjs +1 -1
  260. package/esm2022/array-form-table/key-value-form/component.mjs +1 -1
  261. package/esm2022/array-form-table/key-value-table/component.mjs +1 -1
  262. package/esm2022/array-form-table/string-array-form/component.mjs +1 -1
  263. package/esm2022/async-data/error-page/component.mjs +1 -1
  264. package/esm2022/async-data/page-state/component.mjs +1 -1
  265. package/esm2022/authorization/authorization.mjs +82 -51
  266. package/esm2022/authorization/constants.mjs +3 -1
  267. package/esm2022/authorization/interceptor.service.mjs +67 -45
  268. package/esm2022/authorization/public-api.mjs +2 -1
  269. package/esm2022/authorization/runtime.mjs +96 -0
  270. package/esm2022/authorization/session-manage.service.mjs +3 -5
  271. package/esm2022/authorization/state.service.mjs +23 -64
  272. package/esm2022/authorization/token-client.mjs +101 -0
  273. package/esm2022/business/notification-disabled-container/component.mjs +1 -1
  274. package/esm2022/business/resource-select/exports/cluster-list/component.mjs +4 -3
  275. package/esm2022/business/resource-select/exports/cluster-selector/component.mjs +8 -3
  276. package/esm2022/business/resource-select/exports/icon/component.mjs +5 -3
  277. package/esm2022/business/resource-select/exports/mesh-group-selector/component.mjs +9 -3
  278. package/esm2022/business/resource-select/exports/namespace-list/component.mjs +13 -3
  279. package/esm2022/business/resource-select/exports/namespace-page/component.mjs +1 -1
  280. package/esm2022/business/resource-select/exports/namespace-selector/component.mjs +1 -1
  281. package/esm2022/business/resource-select/exports/project-list/component.mjs +4 -3
  282. package/esm2022/business/resource-select/exports/project-page/component.mjs +1 -1
  283. package/esm2022/business/resource-select/exports/project-selector/component.mjs +1 -1
  284. package/esm2022/business/resource-select/internals/data-grid/component.mjs +13 -3
  285. package/esm2022/business/resource-select/internals/meshgroup-list/component.mjs +4 -3
  286. package/esm2022/business/resource-select/internals/no-data/component.mjs +7 -3
  287. package/esm2022/business/resource-select/internals/resource-dashboard/component.mjs +7 -3
  288. package/esm2022/business/resource-select/internals/selector-popup/component.mjs +1 -1
  289. package/esm2022/business/resource-select/module.mjs +6 -26
  290. package/esm2022/chart/chart.module.mjs +6 -13
  291. package/esm2022/chart/common/axis/axis-label.component.mjs +1 -1
  292. package/esm2022/chart/common/axis/x-axis-ticks.component.mjs +5 -3
  293. package/esm2022/chart/common/axis/x-axis.component.mjs +1 -1
  294. package/esm2022/chart/common/axis/x-plot-lines.component.mjs +1 -1
  295. package/esm2022/chart/common/axis/y-axis-ticks.component.mjs +5 -3
  296. package/esm2022/chart/common/axis/y-axis.component.mjs +1 -1
  297. package/esm2022/chart/common/axis/y-plot-lines.component.mjs +1 -1
  298. package/esm2022/chart/common/chart/chart.component.mjs +1 -1
  299. package/esm2022/chart/common/legend/legend.component.mjs +1 -1
  300. package/esm2022/chart/common/range-area/range-area.component.mjs +1 -1
  301. package/esm2022/chart/common/reference-area/reference-area.component.mjs +1 -1
  302. package/esm2022/chart/common/series/area-series.component.mjs +5 -3
  303. package/esm2022/chart/common/series/bar-path.component.mjs +5 -3
  304. package/esm2022/chart/common/series/bar-series.component.mjs +1 -1
  305. package/esm2022/chart/common/series/line-series.component.mjs +5 -3
  306. package/esm2022/chart/common/tooltip/tooltip.component.mjs +8 -3
  307. package/esm2022/chart/custom-template/dropdown-legend.mjs +7 -3
  308. package/esm2022/code/code-display-dialog/component.mjs +1 -1
  309. package/esm2022/code/k8s-yaml-display-dialog/component.mjs +1 -1
  310. package/esm2022/code/resource-yaml-display/component.mjs +1 -1
  311. package/esm2022/code/resource-yaml-editor/component.mjs +1 -1
  312. package/esm2022/code/yaml-sidebar/component.mjs +1 -1
  313. package/esm2022/core/components/tree/node/component.mjs +1 -1
  314. package/esm2022/core/components/tree/tree/component.mjs +1 -1
  315. package/esm2022/core/constants/tokens.mjs +12 -12
  316. package/esm2022/core/directives/readonly-field.directive.mjs +1 -1
  317. package/esm2022/custom-columns-setting/component.mjs +1 -1
  318. package/esm2022/disabled-container/disabled-container.component.mjs +1 -1
  319. package/esm2022/editable/editable.component.mjs +1 -1
  320. package/esm2022/editable-text/component.mjs +7 -3
  321. package/esm2022/editable-text/module.mjs +1 -6
  322. package/esm2022/exec/module.mjs +1 -9
  323. package/esm2022/exec/placeholder/component.mjs +5 -3
  324. package/esm2022/exec/terminal/component.mjs +7 -3
  325. package/esm2022/exec/terminal-group/component.mjs +8 -3
  326. package/esm2022/feature-gate-forbidden/component/component.mjs +8 -3
  327. package/esm2022/feature-gate-forbidden/module.mjs +1 -7
  328. package/esm2022/form/errors-mapper/errors-mapper-component/component.mjs +1 -1
  329. package/esm2022/form/errors-mapper/errors-mapper.directive.mjs +1 -1
  330. package/esm2022/form/labels-editor/component.mjs +1 -1
  331. package/esm2022/form/taints-editor/component.mjs +1 -1
  332. package/esm2022/form/upload-file/component.mjs +1 -1
  333. package/esm2022/form/validators/strong-password/strong-password-tooltip/component.mjs +6 -3
  334. package/esm2022/form/validators/strong-password/strong-password-validator.module.mjs +1 -5
  335. package/esm2022/graph-canvas/components/graph-actions.component.mjs +1 -1
  336. package/esm2022/graph-canvas/components/graph-canvas.component.mjs +6 -3
  337. package/esm2022/graph-canvas/components/graph-link.component.mjs +1 -1
  338. package/esm2022/graph-canvas/components/graph-links.component.mjs +1 -1
  339. package/esm2022/graph-canvas/graph-canvas.module.mjs +1 -5
  340. package/esm2022/grid-layout/components/grid/component.mjs +1 -1
  341. package/esm2022/grid-layout/components/grid-items/component.mjs +1 -1
  342. package/esm2022/help-document/component.mjs +10 -3
  343. package/esm2022/help-document/module.mjs +1 -9
  344. package/esm2022/iframe-config/config.service.mjs +8 -2
  345. package/esm2022/k8s-resource-list/footer/component.mjs +6 -3
  346. package/esm2022/k8s-resource-list/k8s-resource-list.module.mjs +1 -5
  347. package/esm2022/k8s-shared/resource-mark/k8s-resource-mark.component.mjs +1 -1
  348. package/esm2022/k8s-shared/update-description-dialog/component.mjs +1 -1
  349. package/esm2022/k8s-shared/update-display-name-dialog/component.mjs +1 -1
  350. package/esm2022/k8s-shared/update-key-value-dialog/component.mjs +1 -1
  351. package/esm2022/lazy-component/lazy-load-component.mjs +1 -1
  352. package/esm2022/license/license-error/component.mjs +12 -3
  353. package/esm2022/license/license-error/module.mjs +1 -11
  354. package/esm2022/list-display/component.mjs +1 -1
  355. package/esm2022/metric-chart/metric-chart.component.mjs +1 -1
  356. package/esm2022/metric-chart/metric-time-pick.mjs +1 -1
  357. package/esm2022/multi-search/action-input/component.mjs +1 -1
  358. package/esm2022/multi-search/form/component.mjs +1 -1
  359. package/esm2022/multi-search/multi-search-tags/component.mjs +1 -1
  360. package/esm2022/mutable/mosaic/mosaic.component.mjs +1 -1
  361. package/esm2022/notification/feedback-notification/component.mjs +1 -1
  362. package/esm2022/overview-banner/overview-banner.component.mjs +1 -1
  363. package/esm2022/page-guard/component/component.mjs +1 -1
  364. package/esm2022/page-scaffold/navigation/breadcrumb/breadcrumb.component.mjs +1 -1
  365. package/esm2022/page-scaffold/navigation/nav-menu/nav-item-li/nav-item-li.component.mjs +12 -3
  366. package/esm2022/page-scaffold/navigation/nav-menu/nav-item-ul/nav-item-ul.component.mjs +1 -1
  367. package/esm2022/page-scaffold/navigation/nav-menu/nav-menu.component.mjs +9 -3
  368. package/esm2022/page-scaffold/navigation/nav-menu/nav-menu.module.mjs +1 -12
  369. package/esm2022/page-scaffold/page/notices/maintenance.component.mjs +1 -1
  370. package/esm2022/page-scaffold/page/notices/notice.component.mjs +1 -1
  371. package/esm2022/page-scaffold/page/page.component.mjs +6 -3
  372. package/esm2022/page-scaffold/page/page.module.mjs +1 -4
  373. package/esm2022/page-scaffold/page-header/account-menu/component/component.mjs +5 -3
  374. package/esm2022/page-scaffold/page-header/account-menu/module.mjs +1 -5
  375. package/esm2022/page-scaffold/page-header/common-layout/common-layout.module.mjs +1 -10
  376. package/esm2022/page-scaffold/page-header/common-layout/namespace-select/component.mjs +8 -3
  377. package/esm2022/page-scaffold/page-header/common-layout/product-select/component.mjs +9 -3
  378. package/esm2022/page-scaffold/page-header/component.mjs +10 -9
  379. package/esm2022/page-scaffold/page-header/enterprise-support-status/component.mjs +6 -3
  380. package/esm2022/page-scaffold/page-header/header-notify/component/header-notify.component.mjs +8 -3
  381. package/esm2022/page-scaffold/page-header/header-notify/component/notification-list/notification-list.component.mjs +10 -3
  382. package/esm2022/page-scaffold/page-header/header-notify/header-notify.module.mjs +1 -12
  383. package/esm2022/page-scaffold/page-header/header-notify/notify.service.mjs +1 -1
  384. package/esm2022/page-scaffold/page-header/help-menu/component/component.mjs +8 -3
  385. package/esm2022/page-scaffold/page-header/help-menu/module.mjs +1 -7
  386. package/esm2022/page-scaffold/page-header/module.mjs +1 -4
  387. package/esm2022/pie-derivative-chart/donut-status/component.mjs +1 -1
  388. package/esm2022/pie-derivative-chart/pie-derivative-chart.module.mjs +6 -9
  389. package/esm2022/pie-derivative-chart/radial-bar/radial-bar-chart.component.mjs +10 -3
  390. package/esm2022/pod-status/component.mjs +1 -1
  391. package/esm2022/searchable-selector/component.mjs +9 -3
  392. package/esm2022/searchable-selector/module.mjs +1 -9
  393. package/esm2022/skeleton/item/component.mjs +5 -3
  394. package/esm2022/skeleton/module.mjs +1 -5
  395. package/esm2022/skeleton/nav-skeleton/component.mjs +5 -3
  396. package/esm2022/table/component.mjs +14 -3
  397. package/esm2022/table/module.mjs +1 -10
  398. package/esm2022/view-chart/custom-template/dropdown-legend.mjs +7 -3
  399. package/esm2022/view-chart/legend/legend.component.mjs +1 -1
  400. package/esm2022/view-chart/view-chart.component.mjs +7 -3
  401. package/esm2022/view-chart/view-chart.module.mjs +6 -8
  402. package/esm2022/view-zchart/custom-template/dropdown-legend.mjs +7 -3
  403. package/esm2022/view-zchart/legend/legend.component.mjs +1 -1
  404. package/esm2022/view-zchart/view-zchart.component.mjs +6 -3
  405. package/esm2022/view-zchart/view-zchart.module.mjs +6 -8
  406. package/esm2022/widget/card-section/card-section.component.mjs +1 -1
  407. package/esm2022/widget/confirm-delete/confirm-delete.component.mjs +1 -1
  408. package/esm2022/widget/current-time/component.mjs +1 -1
  409. package/esm2022/widget/date-range-picker/component.mjs +93 -26
  410. package/esm2022/widget/field-set/column/component.mjs +2 -2
  411. package/esm2022/widget/field-set/group/component.mjs +1 -1
  412. package/esm2022/widget/field-set/item/component.mjs +1 -1
  413. package/esm2022/widget/foldable-block/component.mjs +1 -1
  414. package/esm2022/widget/foldable-item-in-table/component.mjs +1 -1
  415. package/esm2022/widget/loading-mask/loading-mask.component.mjs +1 -1
  416. package/esm2022/widget/password-input/component.mjs +1 -1
  417. package/esm2022/widget/relative-time/component.mjs +1 -1
  418. package/esm2022/widget/resource-label/component.mjs +1 -1
  419. package/esm2022/widget/resource-multi-select/component.mjs +1 -1
  420. package/esm2022/widget/search-panel/component.mjs +1 -1
  421. package/esm2022/widget/search-panel/search-item/component.mjs +1 -1
  422. package/esm2022/widget/status-icon/status-icon.component.mjs +1 -1
  423. package/esm2022/widget/tags-label/component.mjs +1 -1
  424. package/esm2022/widget/terminating-tag/component.mjs +1 -1
  425. package/esm2022/widget/text-ellipsis/component.mjs +1 -1
  426. package/esm2022/widget/text-with-url/component.mjs +1 -1
  427. package/esm2022/widget/zero-state/zero-state.component.mjs +1 -1
  428. package/esm2022/workload-status-icon/component.mjs +1 -1
  429. package/esm2022/xterm/xterm-terminal/xterm-terminal.component.mjs +1 -1
  430. package/esm2022/xterm/xterm.component.mjs +1 -1
  431. package/exec/constants.d.ts.map +1 -0
  432. package/exec/module.d.ts.map +1 -0
  433. package/exec/placeholder/component.d.ts.map +1 -0
  434. package/exec/public-api.d.ts.map +1 -0
  435. package/exec/service.d.ts.map +1 -0
  436. package/exec/terminal/component.d.ts.map +1 -0
  437. package/exec/terminal-group/component.d.ts.map +1 -0
  438. package/exec/types.d.ts.map +1 -0
  439. package/feature-gate-forbidden/component/component.d.ts.map +1 -0
  440. package/feature-gate-forbidden/module.d.ts.map +1 -0
  441. package/feature-gate-forbidden/public-api.d.ts.map +1 -0
  442. package/form/directives/value-trace.directive.d.ts.map +1 -0
  443. package/form/errors-mapper/base-errors-mapper.d.ts.map +1 -0
  444. package/form/errors-mapper/default-errors-mapper.service.d.ts.map +1 -0
  445. package/form/errors-mapper/errors-mapper-component/component.d.ts.map +1 -0
  446. package/form/errors-mapper/errors-mapper.directive.d.ts.map +1 -0
  447. package/form/errors-mapper/errors-mapper.module.d.ts.map +1 -0
  448. package/form/errors-mapper/public-api.d.ts.map +1 -0
  449. package/form/errors-mapper/types.d.ts.map +1 -0
  450. package/form/labels-editor/component.d.ts.map +1 -0
  451. package/form/public-api.d.ts.map +1 -0
  452. package/form/taints-editor/component.d.ts.map +1 -0
  453. package/form/upload-file/component.d.ts.map +1 -0
  454. package/form/utils.d.ts.map +1 -0
  455. package/form/validators/async-function-validator.directive.d.ts.map +1 -0
  456. package/form/validators/dns1123-subdomain.d.ts.map +1 -0
  457. package/form/validators/function-validator.directive.d.ts.map +1 -0
  458. package/form/validators/maxlength-minlength-validator.directive.d.ts.map +1 -0
  459. package/form/validators/module.d.ts.map +1 -0
  460. package/form/validators/not-be-validator.directive.d.ts.map +1 -0
  461. package/form/validators/one-of-validator.directive.d.ts.map +1 -0
  462. package/form/validators/public-api.d.ts.map +1 -0
  463. package/form/validators/resource-limit.d.ts.map +1 -0
  464. package/form/validators/strong-password/public-api.d.ts.map +1 -0
  465. package/form/validators/strong-password/strong-password-tooltip/component.d.ts.map +1 -0
  466. package/form/validators/strong-password/strong-password-validator.directive.d.ts.map +1 -0
  467. package/form/validators/strong-password/strong-password-validator.module.d.ts.map +1 -0
  468. package/form/validators/utils.d.ts.map +1 -0
  469. package/graph-canvas/components/graph-actions.component.d.ts.map +1 -0
  470. package/graph-canvas/components/graph-canvas.component.d.ts.map +1 -0
  471. package/graph-canvas/components/graph-link.component.d.ts.map +1 -0
  472. package/graph-canvas/components/graph-links.component.d.ts.map +1 -0
  473. package/graph-canvas/components/graph-node.directive.d.ts.map +1 -0
  474. package/graph-canvas/graph-canvas.module.d.ts.map +1 -0
  475. package/graph-canvas/graph-store.service.d.ts.map +1 -0
  476. package/graph-canvas/public-api.d.ts.map +1 -0
  477. package/graph-canvas/types.d.ts.map +1 -0
  478. package/graph-canvas/utils.d.ts.map +1 -0
  479. package/grid-layout/components/grid/component.d.ts.map +1 -0
  480. package/grid-layout/components/grid-items/component.d.ts.map +1 -0
  481. package/grid-layout/constant.d.ts.map +1 -0
  482. package/grid-layout/directives/drag-handler.directive.d.ts.map +1 -0
  483. package/grid-layout/directives/placeholder.directive.d.ts.map +1 -0
  484. package/grid-layout/directives/remove-handler.directive.d.ts.map +1 -0
  485. package/grid-layout/directives/resize-handler.directive.d.ts.map +1 -0
  486. package/grid-layout/grid-layout.service.d.ts.map +1 -0
  487. package/grid-layout/grid-placeholder.service.d.ts.map +1 -0
  488. package/grid-layout/module.d.ts.map +1 -0
  489. package/grid-layout/public-api.d.ts.map +1 -0
  490. package/grid-layout/type.d.ts.map +1 -0
  491. package/grid-layout/utils/client-rect.utils.d.ts.map +1 -0
  492. package/grid-layout/utils/grid.utils.d.ts.map +1 -0
  493. package/grid-layout/utils/mouse.utils.d.ts.map +1 -0
  494. package/grid-layout/utils/operator.d.ts.map +1 -0
  495. package/grid-layout/utils/react-grid-layout.utils.d.ts.map +1 -0
  496. package/grid-layout/utils/scroll.utils.d.ts.map +1 -0
  497. package/help-document/component.d.ts.map +1 -0
  498. package/help-document/directive.d.ts.map +1 -0
  499. package/help-document/module.d.ts.map +1 -0
  500. package/help-document/public-api.d.ts.map +1 -0
  501. package/help-document/service.d.ts.map +1 -0
  502. package/iframe-config/config.service.d.ts.map +1 -0
  503. package/iframe-config/constants.d.ts.map +1 -0
  504. package/iframe-config/public-api.d.ts.map +1 -0
  505. package/k8s-resource-list/footer/component.d.ts.map +1 -0
  506. package/k8s-resource-list/k8s-resource-list.d.ts.map +1 -0
  507. package/k8s-resource-list/k8s-resource-list.module.d.ts.map +1 -0
  508. package/k8s-resource-list/k8s-resource-paged-list.d.ts +2 -2
  509. package/k8s-resource-list/k8s-resource-paged-list.d.ts.map +1 -0
  510. package/k8s-resource-list/public-api.d.ts.map +1 -0
  511. package/k8s-resource-list/types.d.ts.map +1 -0
  512. package/k8s-resource-list/utils.d.ts.map +1 -0
  513. package/k8s-shared/constants.d.ts.map +1 -0
  514. package/k8s-shared/k8s-resource-translate-key.pipe.d.ts.map +1 -0
  515. package/k8s-shared/k8s-shared-util.service.d.ts.map +1 -0
  516. package/k8s-shared/public-api.d.ts.map +1 -0
  517. package/k8s-shared/resource-mark/k8s-resource-mark.component.d.ts.map +1 -0
  518. package/k8s-shared/resource-mark/util.d.ts.map +1 -0
  519. package/k8s-shared/update-description-dialog/component.d.ts.map +1 -0
  520. package/k8s-shared/update-display-name-dialog/component.d.ts.map +1 -0
  521. package/k8s-shared/update-key-value-dialog/component.d.ts.map +1 -0
  522. package/lazy-component/lazy-load-component.d.ts.map +1 -0
  523. package/lazy-component/public-api.d.ts.map +1 -0
  524. package/lazy-component/visibility.service.d.ts.map +1 -0
  525. package/license/license-api.d.ts.map +1 -0
  526. package/license/license-error/component.d.ts.map +1 -0
  527. package/license/license-error/module.d.ts.map +1 -0
  528. package/license/license.guard.d.ts.map +1 -0
  529. package/license/license.service.d.ts.map +1 -0
  530. package/license/license.type.d.ts.map +1 -0
  531. package/license/public-api.d.ts.map +1 -0
  532. package/list-display/component.d.ts.map +1 -0
  533. package/list-display/public-api.d.ts.map +1 -0
  534. package/metric-chart/common-chart.service.d.ts.map +1 -0
  535. package/metric-chart/helpers.d.ts.map +1 -0
  536. package/metric-chart/metric-chart.component.d.ts.map +1 -0
  537. package/metric-chart/metric-chart.module.d.ts.map +1 -0
  538. package/metric-chart/metric-time-pick.d.ts.map +1 -0
  539. package/metric-chart/public-api.d.ts.map +1 -0
  540. package/metric-chart/types.d.ts.map +1 -0
  541. package/metric-chart/utils.d.ts.map +1 -0
  542. package/multi-search/action-input/component.d.ts.map +1 -0
  543. package/multi-search/form/component.d.ts.map +1 -0
  544. package/multi-search/multi-search-tags/component.d.ts.map +1 -0
  545. package/multi-search/public-api.d.ts.map +1 -0
  546. package/multi-search/types.d.ts.map +1 -0
  547. package/multi-search/utils.d.ts.map +1 -0
  548. package/mutable/element.d.ts.map +1 -0
  549. package/mutable/mosaic/mosaic.component.d.ts.map +1 -0
  550. package/mutable/mosaic/mosaic.directive.d.ts.map +1 -0
  551. package/mutable/mutable.directive.d.ts.map +1 -0
  552. package/mutable/mutable.module.d.ts.map +1 -0
  553. package/mutable/public-api.d.ts.map +1 -0
  554. package/mutable/util.d.ts.map +1 -0
  555. package/notification/errors-mapper.d.ts.map +1 -0
  556. package/notification/feedback-notification/component.d.ts.map +1 -0
  557. package/notification/helpers.d.ts.map +1 -0
  558. package/notification/notification-util.service.d.ts.map +1 -0
  559. package/notification/public-api.d.ts.map +1 -0
  560. package/notification/resource-error.interceptor.d.ts.map +1 -0
  561. package/overview-banner/overview-banner.component.d.ts.map +1 -0
  562. package/overview-banner/overview-banner.module.d.ts.map +1 -0
  563. package/overview-banner/overview-banner.types.d.ts.map +1 -0
  564. package/overview-banner/public-api.d.ts.map +1 -0
  565. package/package.json +1 -1
  566. package/page-guard/component/component.d.ts.map +1 -0
  567. package/page-guard/component/helper-directives.d.ts.map +1 -0
  568. package/page-guard/component/page-guard.type.d.ts.map +1 -0
  569. package/page-guard/module.d.ts.map +1 -0
  570. package/page-guard/public-api.d.ts.map +1 -0
  571. package/page-scaffold/module.d.ts.map +1 -0
  572. package/page-scaffold/navigation/breadcrumb/breadcrumb-slot.directive.d.ts.map +1 -0
  573. package/page-scaffold/navigation/breadcrumb/breadcrumb.component.d.ts.map +1 -0
  574. package/page-scaffold/navigation/breadcrumb/breadcrumb.service.d.ts.map +1 -0
  575. package/page-scaffold/navigation/breadcrumb/module.d.ts.map +1 -0
  576. package/page-scaffold/navigation/breadcrumb/public-api.d.ts.map +1 -0
  577. package/page-scaffold/navigation/lottie-icons/animation-data.d.ts.map +1 -0
  578. package/page-scaffold/navigation/lottie-icons/lottie-icon.directive.d.ts.map +1 -0
  579. package/page-scaffold/navigation/lottie-icons/module.d.ts.map +1 -0
  580. package/page-scaffold/navigation/lottie-icons/public-api.d.ts.map +1 -0
  581. package/page-scaffold/navigation/lottie-icons/replace-lottie-colors.d.ts.map +1 -0
  582. package/page-scaffold/navigation/module.d.ts.map +1 -0
  583. package/page-scaffold/navigation/nav-menu/nav-item-li/nav-item-li.component.d.ts.map +1 -0
  584. package/page-scaffold/navigation/nav-menu/nav-item-ul/nav-item-ul.component.d.ts.map +1 -0
  585. package/page-scaffold/navigation/nav-menu/nav-menu.component.d.ts.map +1 -0
  586. package/page-scaffold/navigation/nav-menu/nav-menu.module.d.ts.map +1 -0
  587. package/page-scaffold/navigation/nav-menu/nav-menu.types.d.ts.map +1 -0
  588. package/page-scaffold/navigation/nav-menu/public-api.d.ts.map +1 -0
  589. package/page-scaffold/navigation/navconfig-loader/navconfig-loader.service.d.ts.map +1 -0
  590. package/page-scaffold/navigation/navconfig-loader/public-api.d.ts.map +1 -0
  591. package/page-scaffold/navigation/public-api.d.ts.map +1 -0
  592. package/page-scaffold/navigation/utils.d.ts.map +1 -0
  593. package/page-scaffold/page/context.service.d.ts.map +1 -0
  594. package/page-scaffold/page/helper-directives.d.ts.map +1 -0
  595. package/page-scaffold/page/notices/maintenance.component.d.ts.map +1 -0
  596. package/page-scaffold/page/notices/notice.component.d.ts.map +1 -0
  597. package/page-scaffold/page/page.component.d.ts.map +1 -0
  598. package/page-scaffold/page/page.module.d.ts.map +1 -0
  599. package/page-scaffold/page/public-api.d.ts.map +1 -0
  600. package/page-scaffold/page-header/account-menu/component/component.d.ts +0 -17
  601. package/page-scaffold/page-header/account-menu/component/component.d.ts.map +1 -0
  602. package/page-scaffold/page-header/account-menu/module.d.ts.map +1 -0
  603. package/page-scaffold/page-header/account-menu/public-api.d.ts.map +1 -0
  604. package/page-scaffold/page-header/common-layout/common-layout.module.d.ts.map +1 -0
  605. package/page-scaffold/page-header/common-layout/context.service.d.ts.map +1 -0
  606. package/page-scaffold/page-header/common-layout/namespace-select/component.d.ts.map +1 -0
  607. package/page-scaffold/page-header/common-layout/product-select/component.d.ts.map +1 -0
  608. package/page-scaffold/page-header/common-layout/product-select/service.d.ts.map +1 -0
  609. package/page-scaffold/page-header/common-layout/project-select/base-selection.d.ts.map +1 -0
  610. package/page-scaffold/page-header/common-layout/public-api.d.ts.map +1 -0
  611. package/page-scaffold/page-header/common-layout/store.service.d.ts.map +1 -0
  612. package/page-scaffold/page-header/common-layout/utils.d.ts.map +1 -0
  613. package/page-scaffold/page-header/component.d.ts +1 -1
  614. package/page-scaffold/page-header/component.d.ts.map +1 -0
  615. package/page-scaffold/page-header/enterprise-support-status/component.d.ts.map +1 -0
  616. package/page-scaffold/page-header/header-notify/component/header-notify.component.d.ts.map +1 -0
  617. package/page-scaffold/page-header/header-notify/component/notification-list/notification-list.component.d.ts.map +1 -0
  618. package/page-scaffold/page-header/header-notify/header-notify.module.d.ts.map +1 -0
  619. package/page-scaffold/page-header/header-notify/notify.service.d.ts.map +1 -0
  620. package/page-scaffold/page-header/header-notify/public-api.d.ts.map +1 -0
  621. package/page-scaffold/page-header/header-notify/utils.d.ts.map +1 -0
  622. package/page-scaffold/page-header/help-menu/component/component.d.ts.map +1 -0
  623. package/page-scaffold/page-header/help-menu/module.d.ts.map +1 -0
  624. package/page-scaffold/page-header/help-menu/public-api.d.ts.map +1 -0
  625. package/page-scaffold/page-header/module.d.ts.map +1 -0
  626. package/page-scaffold/page-header/public-api.d.ts.map +1 -0
  627. package/page-scaffold/public-api.d.ts.map +1 -0
  628. package/permission/constants.d.ts.map +1 -0
  629. package/permission/helpers.d.ts.map +1 -0
  630. package/permission/k8s-permission.service.d.ts.map +1 -0
  631. package/permission/permission.guard.d.ts.map +1 -0
  632. package/permission/public-api.d.ts.map +1 -0
  633. package/permission/types.d.ts.map +1 -0
  634. package/pie-derivative-chart/donut-status/component.d.ts.map +1 -0
  635. package/pie-derivative-chart/indicator-color.directive.d.ts.map +1 -0
  636. package/pie-derivative-chart/numerical-limit.pipe.d.ts.map +1 -0
  637. package/pie-derivative-chart/pie-derivative-chart.module.d.ts.map +1 -0
  638. package/pie-derivative-chart/public-api.d.ts.map +1 -0
  639. package/pie-derivative-chart/radial-bar/radial-bar-chart.component.d.ts.map +1 -0
  640. package/pie-derivative-chart/units.d.ts.map +1 -0
  641. package/pod-status/component.d.ts.map +1 -0
  642. package/pod-status/public-api.d.ts.map +1 -0
  643. package/pod-status/status.d.ts.map +1 -0
  644. package/pod-status/typings.d.ts.map +1 -0
  645. package/public-api.d.ts.map +1 -0
  646. package/searchable-selector/component.d.ts.map +1 -0
  647. package/searchable-selector/module.d.ts.map +1 -0
  648. package/searchable-selector/public-api.d.ts.map +1 -0
  649. package/skeleton/item/component.d.ts.map +1 -0
  650. package/skeleton/module.d.ts.map +1 -0
  651. package/skeleton/nav-skeleton/component.d.ts.map +1 -0
  652. package/skeleton/public-api.d.ts.map +1 -0
  653. package/table/component.d.ts +1 -1
  654. package/table/component.d.ts.map +1 -0
  655. package/table/constants.d.ts.map +1 -0
  656. package/table/helper.d.ts +1 -1
  657. package/table/helper.d.ts.map +1 -0
  658. package/table/helpers.directive.d.ts.map +1 -0
  659. package/table/module.d.ts.map +1 -0
  660. package/table/public-api.d.ts.map +1 -0
  661. package/table/types.d.ts.map +1 -0
  662. package/table/util.service.d.ts.map +1 -0
  663. package/translate/constants.d.ts.map +1 -0
  664. package/translate/helpers.d.ts.map +1 -0
  665. package/translate/i18n-assets-loader.d.ts.map +1 -0
  666. package/translate/i18n-config.d.ts.map +1 -0
  667. package/translate/intl-format.pipes.d.ts.map +1 -0
  668. package/translate/public-api.d.ts.map +1 -0
  669. package/translate/relative-time-manager.service.d.ts.map +1 -0
  670. package/translate/tokens.d.ts.map +1 -0
  671. package/translate/translate.directive.d.ts.map +1 -0
  672. package/translate/translate.module.d.ts.map +1 -0
  673. package/translate/translate.pipe.d.ts.map +1 -0
  674. package/translate/translate.service.d.ts.map +1 -0
  675. package/translate/types.d.ts.map +1 -0
  676. package/view-chart/custom-template/dropdown-legend.d.ts.map +1 -0
  677. package/view-chart/legend/legend.component.d.ts.map +1 -0
  678. package/view-chart/public-api.d.ts.map +1 -0
  679. package/view-chart/types.d.ts.map +1 -0
  680. package/view-chart/view-chart.component.d.ts.map +1 -0
  681. package/view-chart/view-chart.module.d.ts.map +1 -0
  682. package/view-zchart/custom-template/dropdown-legend.d.ts.map +1 -0
  683. package/view-zchart/legend/legend.component.d.ts.map +1 -0
  684. package/view-zchart/public-api.d.ts.map +1 -0
  685. package/view-zchart/types.d.ts.map +1 -0
  686. package/view-zchart/units.d.ts.map +1 -0
  687. package/view-zchart/view-zchart.component.d.ts.map +1 -0
  688. package/view-zchart/view-zchart.module.d.ts.map +1 -0
  689. package/widget/card-section/card-section.component.d.ts.map +1 -0
  690. package/widget/confirm-delete/confirm-delete.component.d.ts.map +1 -0
  691. package/widget/confirm-delete/utils.d.ts.map +1 -0
  692. package/widget/current-time/component.d.ts.map +1 -0
  693. package/widget/date-range-picker/component.d.ts +0 -4
  694. package/widget/date-range-picker/component.d.ts.map +1 -0
  695. package/widget/date-range-picker/public-api.d.ts.map +1 -0
  696. package/widget/date-range-picker/type.d.ts.map +1 -0
  697. package/widget/date-range-picker/util.d.ts.map +1 -0
  698. package/widget/field-set/column/component.d.ts.map +1 -0
  699. package/widget/field-set/group/component.d.ts.map +1 -0
  700. package/widget/field-set/index.d.ts.map +1 -0
  701. package/widget/field-set/item/component.d.ts.map +1 -0
  702. package/widget/foldable-block/component.d.ts.map +1 -0
  703. package/widget/foldable-item-in-table/component.d.ts.map +1 -0
  704. package/widget/loading-mask/loading-mask.component.d.ts.map +1 -0
  705. package/widget/password-input/component.d.ts.map +1 -0
  706. package/widget/public-api.d.ts.map +1 -0
  707. package/widget/relative-time/component.d.ts.map +1 -0
  708. package/widget/resource-label/component.d.ts.map +1 -0
  709. package/widget/resource-multi-select/component.d.ts.map +1 -0
  710. package/widget/resource-multi-select/util.d.ts.map +1 -0
  711. package/widget/search-panel/component.d.ts.map +1 -0
  712. package/widget/search-panel/helper.directive.d.ts.map +1 -0
  713. package/widget/search-panel/search-item/component.d.ts.map +1 -0
  714. package/widget/select-prefix-label/directive.d.ts.map +1 -0
  715. package/widget/status-icon/status-icon.component.d.ts.map +1 -0
  716. package/widget/tags-label/component.d.ts.map +1 -0
  717. package/widget/terminating-tag/component.d.ts.map +1 -0
  718. package/widget/text-ellipsis/component.d.ts.map +1 -0
  719. package/widget/text-tooltip/directive.d.ts.map +1 -0
  720. package/widget/text-with-url/component.d.ts.map +1 -0
  721. package/widget/widget.module.d.ts.map +1 -0
  722. package/widget/zero-state/zero-state.component.d.ts.map +1 -0
  723. package/window-channel/base-window-channel.d.ts.map +1 -0
  724. package/window-channel/directives/host-link.directive.d.ts.map +1 -0
  725. package/window-channel/host-window-channel.service.d.ts.map +1 -0
  726. package/window-channel/plugin-window-channel.service.d.ts.map +1 -0
  727. package/window-channel/public-api.d.ts.map +1 -0
  728. package/window-channel/utils.d.ts.map +1 -0
  729. package/workload-status-icon/component.d.ts.map +1 -0
  730. package/workload-status-icon/public-api.d.ts.map +1 -0
  731. package/xterm/public-api.d.ts.map +1 -0
  732. package/xterm/xterm-terminal/xterm-terminal.component.d.ts.map +1 -0
  733. package/xterm/xterm-terminal/xterm-terminal.directive.d.ts.map +1 -0
  734. package/xterm/xterm.component.d.ts.map +1 -0
@@ -10,6 +10,10 @@ import { handleDateFormat, ObservableInput, pointFormat, publishRef, TranslateSe
10
10
  import { LegendComponent } from './legend/legend.component';
11
11
  import * as i0 from "@angular/core";
12
12
  import * as i1 from "../public-api";
13
+ import * as i2 from "@angular/common";
14
+ import * as i3 from "@alauda/ui";
15
+ import * as i4 from "../effect-directive/e2e-attribute-binding.directive";
16
+ import * as i5 from "../translate/translate.pipe";
13
17
  const _c0 = ["chartContainer"];
14
18
  const _c1 = ["titleContainer"];
15
19
  const _c2 = ["tooltipItemVirtual"];
@@ -608,7 +612,7 @@ export class ViewChartComponent {
608
612
  i0.ɵɵproperty("ngTemplateOutlet", ctx.tooltipTitleTemplate)("ngTemplateOutletContext", ctx.tooltipTitleContext);
609
613
  i0.ɵɵadvance(3);
610
614
  i0.ɵɵproperty("ngTemplateOutlet", ctx.tooltipPointNameTemplate);
611
- } }, styles: ["[_nghost-%COMP%]{width:100%;height:100%;display:block}[_nghost-%COMP%] .ac-bar[_ngcontent-%COMP%] .ac-chart-wrapper{display:flex;flex-direction:column}[_nghost-%COMP%] .ac-bar[_ngcontent-%COMP%] .ac-container{flex:1;min-height:calc(100% - 20px)}div.ac-non-chart[_ngcontent-%COMP%]{min-height:unset;padding:0}.ac-chart[_ngcontent-%COMP%]{display:flex;padding:20px 16px;width:100%;position:relative;height:210px;min-height:100%;max-height:100%}.ac-chart-container[_ngcontent-%COMP%]{width:100%}.ac-chart-status[_ngcontent-%COMP%]{left:50%;position:absolute;top:50%;white-space:nowrap;transform:translate(-50%,-50%)}.ac-chart[_ngcontent-%COMP%] .ac-title{font-weight:var(--aui-font-weight-bolder)}.status[_ngcontent-%COMP%]{padding:6px 16px;display:flex;align-items:center;justify-content:center;background-color:rgb(var(--aui-color-n-8));color:rgb(var(--aui-color-n-4));border-radius:2px}.status[_ngcontent-%COMP%] aui-icon[_ngcontent-%COMP%]{font-size:14px;margin-right:4px}.loading[_ngcontent-%COMP%] aui-icon[_ngcontent-%COMP%]{color:rgb(var(--aui-color-primary))}.failed[_ngcontent-%COMP%] aui-icon[_ngcontent-%COMP%]{color:rgb(var(--aui-color-red))}.hide[_ngcontent-%COMP%]{display:none}"], changeDetection: 0 }); }
615
+ } }, dependencies: [i2.NgIf, i2.NgTemplateOutlet, i3.IconComponent, i3.ButtonComponent, i4.E2eAttributeBindingDirective, i2.AsyncPipe, i5.TranslatePipe], styles: ["[_nghost-%COMP%]{width:100%;height:100%;display:block}[_nghost-%COMP%] .ac-bar[_ngcontent-%COMP%] .ac-chart-wrapper{display:flex;flex-direction:column}[_nghost-%COMP%] .ac-bar[_ngcontent-%COMP%] .ac-container{flex:1;min-height:calc(100% - 20px)}div.ac-non-chart[_ngcontent-%COMP%]{min-height:unset;padding:0}.ac-chart[_ngcontent-%COMP%]{display:flex;padding:20px 16px;width:100%;position:relative;height:210px;min-height:100%;max-height:100%}.ac-chart-container[_ngcontent-%COMP%]{width:100%}.ac-chart-status[_ngcontent-%COMP%]{left:50%;position:absolute;top:50%;white-space:nowrap;transform:translate(-50%,-50%)}.ac-chart[_ngcontent-%COMP%] .ac-title{font-weight:var(--aui-font-weight-bolder)}.status[_ngcontent-%COMP%]{padding:6px 16px;display:flex;align-items:center;justify-content:center;background-color:rgb(var(--aui-color-n-8));color:rgb(var(--aui-color-n-4));border-radius:2px}.status[_ngcontent-%COMP%] aui-icon[_ngcontent-%COMP%]{font-size:14px;margin-right:4px}.loading[_ngcontent-%COMP%] aui-icon[_ngcontent-%COMP%]{color:rgb(var(--aui-color-primary))}.failed[_ngcontent-%COMP%] aui-icon[_ngcontent-%COMP%]{color:rgb(var(--aui-color-red))}.hide[_ngcontent-%COMP%]{display:none}"], changeDetection: 0 }); }
612
616
  }
613
617
  __decorate([
614
618
  ObservableInput(),
@@ -828,5 +832,5 @@ __decorate([
828
832
  }], refreshEvent: [{
829
833
  type: Output
830
834
  }] }); })();
831
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ViewChartComponent, { className: "ViewChartComponent", filePath: "view-chart/view-chart.component.ts", lineNumber: 86 }); })();
832
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy1jaGFydC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvdmlldy1jaGFydC92aWV3LWNoYXJ0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy92aWV3LWNoYXJ0L3ZpZXctY2hhcnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFLTCxLQUFLLEVBTUwsV0FBVyxFQUNYLFNBQVMsR0FJVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQzNDLE9BQU8sRUFDTCxlQUFlLEVBQ2YsZUFBZSxFQUNmLGNBQWMsR0FDZixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFFTCxjQUFjLEVBQ2QsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1Qsd0JBQXdCLEVBRXhCLFVBQVUsRUFFVixZQUFZLEVBQ1osUUFBUSxFQUNSLEtBQUssRUFHTCxNQUFNLEVBRU4sV0FBVyxFQUNYLFNBQVMsRUFDVCxnQkFBZ0IsR0FDakIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFzQyxVQUFVLEVBQUUsTUFBTSxJQUFJLENBQUM7QUFDcEUsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzFCLE9BQU8sRUFDTCxlQUFlLEVBQ2YsR0FBRyxFQUNILFVBQVUsRUFDVixPQUFPLEVBQ1AsU0FBUyxFQUNULEdBQUcsRUFDSCxhQUFhLEVBQ2IsU0FBUyxHQUNWLE1BQU0sTUFBTSxDQUFDO0FBRWQsT0FBTyxFQUtMLGdCQUFnQixFQUNoQixlQUFlLEVBQ2YsV0FBVyxFQUNYLFVBQVUsRUFFVixnQkFBZ0IsRUFDaEIsU0FBUyxHQUVWLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7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QUs7WUFDRyxnQkFBZ0I7a0JBQXhCLEtBQUs7WUFNTixXQUFXLE1BRUYsVUFBVTtrQkFBbEIsS0FBSztZQUdOLFdBQVcsTUFHWCxZQUFZLE1BRUYsWUFBWTtrQkFBckIsTUFBTTtZQUVHLGNBQWM7a0JBQXZCLE1BQU07WUFFRyxZQUFZO2tCQUFyQixNQUFNOztrRkF0Tkksa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQUNoYXJ0LFxuICBBcmVhU2VyaWVzT3B0aW9uLFxuICBCYXJDb2x1bW5QYXJhbXMsXG4gIEJhclNlcmllc09wdGlvbixcbiAgQ2hhcnQsXG4gIENoYXJ0RGF0YSxcbiAgTGluZVNlcmllc09wdGlvbixcbiAgVmlld09wdGlvbnMsXG4gIFBlcmNlbnRhZ2UsXG4gIFBpZVNlcmllc09wdGlvbixcbiAgUkVDVF9FVkVOVFMsXG4gIFNjYWxlVHlwZSxcbiAgVG9vbHRpcENvbnRleHQsXG4gIFRvb2x0aXBDb250ZXh0SXRlbSxcbiAgVmlldyxcbn0gZnJvbSAnQGFsYXVkYS9jaGFydCc7XG5pbXBvcnQgeyBpc1RlbXBsYXRlUmVmIH0gZnJvbSAnQGFsYXVkYS91aSc7XG5pbXBvcnQge1xuICBDb21wb25lbnRQb3J0YWwsXG4gIERvbVBvcnRhbE91dGxldCxcbiAgVGVtcGxhdGVQb3J0YWwsXG59IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQXBwbGljYXRpb25SZWYsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gIENvbXBvbmVudFJlZixcbiAgRWxlbWVudFJlZixcbiAgRW1iZWRkZWRWaWV3UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIEluamVjdG9yLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0NvbnRhaW5lclJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDdXJ2ZUZhY3RvcnksIEN1cnZlRmFjdG9yeUxpbmVPbmx5LCB0aW1lRm9ybWF0IH0gZnJvbSAnZDMnO1xuaW1wb3J0IGRheWpzIGZyb20gJ2RheWpzJztcbmltcG9ydCB7XG4gIEJlaGF2aW9yU3ViamVjdCxcbiAgbWFwLFxuICBPYnNlcnZhYmxlLFxuICBTdWJqZWN0LFxuICB0YWtlVW50aWwsXG4gIHRhcCxcbiAgY29tYmluZUxhdGVzdCxcbiAgc3RhcnRXaXRoLFxufSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtcbiAgQXJlYVBvc2l0aW9uLFxuICBDaGFydERhdGFJdGVtLFxuICBDaGFydFN0YXR1cyxcbiAgQ29udGV4dEl0ZW0sXG4gIGhhbmRsZURhdGVGb3JtYXQsXG4gIE9ic2VydmFibGVJbnB1dCxcbiAgcG9pbnRGb3JtYXQsXG4gIHB1Ymxpc2hSZWYsXG4gIFN0cmluZ01hcCxcbiAgVHJhbnNsYXRlU2VydmljZSxcbiAgVmFsdWVIb29rLFxuICBYUGxvdExpbmVzLFxufSBmcm9tICcuLi9wdWJsaWMtYXBpJztcblxuaW1wb3J0IHsgTGVnZW5kQ29tcG9uZW50IH0gZnJvbSAnLi9sZWdlbmQvbGVnZW5kLmNvbXBvbmVudCc7XG5cbmludGVyZmFjZSBab29tUGFyYW1zIHtcbiAgeDogbnVtYmVyO1xuICB2YWx1ZTogeyB4OiBudW1iZXI7IHk6IG51bWJlciB9O1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhY2wtdmlldy1jaGFydCcsXG4gIHRlbXBsYXRlVXJsOiAnLi92aWV3LWNoYXJ0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdmlldy1jaGFydC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgVmlld0NoYXJ0Q29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSBiYWNrZ3JvdW5kQ29sb3I6IHN0cmluZztcblxuICBASW5wdXQoKSBoaWRlSGVhZGVyOiBib29sZWFuO1xuXG4gIEBWaWV3Q2hpbGQoJ2NoYXJ0Q29udGFpbmVyJykgY2hhcnRDb250YWluZXI6IEVsZW1lbnRSZWY7XG5cbiAgQFZpZXdDaGlsZCgndGl0bGVDb250YWluZXInKSB0aXRsZUNvbnRhaW5lcjogVGVtcGxhdGVSZWY8dW5rbm93bj47XG5cbiAgQFZpZXdDaGlsZCgndG9vbHRpcEl0ZW1WaXJ0dWFsJykgdG9vbHRpcEl0ZW1WaXJ0dWFsOiBFbGVtZW50UmVmO1xuXG4gIEBWaWV3Q2hpbGQoJ3Rvb2x0aXBUaXRsZVZpcnR1YWwnKSB0b29sdGlwVGl0bGVWaXJ0dWFsOiBFbGVtZW50UmVmO1xuXG4gIEBWaWV3Q2hpbGQoJ3Rvb2x0aXBOYW1lVmlydHVhbCcpIHRvb2x0aXBOYW1lVmlydHVhbDogRWxlbWVudFJlZjtcblxuICBAVmlld0NoaWxkKCdwaWVMYWJlbENvbnRhaW5lcicpIHBpZUxhYmVsQ29udGFpbmVyOiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcblxuICBASW5wdXQoKSBtb2RlOiAnY2FyZCcgfCAnZGVmYXVsdCcgPSAnZGVmYXVsdCc7XG5cbiAgQElucHV0KCkgY3VzdG9tTm9EYXRhVGl0bGU6IFRlbXBsYXRlUmVmPHVua25vd24+IHwgc3RyaW5nO1xuXG4gIEBJbnB1dCgpIGN1c3RvbUVycm9yQ29udGFpbmVyOiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcblxuICBASW5wdXQoKSBtYXJnaW5MZWZ0OiBudW1iZXI7XG5cbiAgQElucHV0KCkgZ3JpZE9mZnNldFRvcCA9IDA7XG5cbiAgQElucHV0KCkgcm90YXRlZDogYm9vbGVhbjtcblxuICAvLyBiYXNlXG4gIEBJbnB1dCgpIGNoYXJ0VHlwZTogJ2xpbmUnIHwgJ2FyZWEnIHwgJ2JhcicgfCAncGllJyB8ICdzY2F0dGVyJyA9ICdhcmVhJztcblxuICBASW5wdXQoKSBzZXJpZXM6IENoYXJ0RGF0YVtdO1xuICBAT2JzZXJ2YWJsZUlucHV0KClcbiAgc2VyaWVzJCE6IE9ic2VydmFibGU8Q2hhcnREYXRhW10+O1xuXG4gIEBJbnB1dCgpIHhBY2Nlc3NvciA9IChkOiBDaGFydERhdGFJdGVtKSA9PiBkLng7XG5cbiAgQElucHV0KCkgeUFjY2Vzc29yID0gKGQ6IENoYXJ0RGF0YUl0ZW0pID0+IGQueTtcblxuICBASW5wdXQoKSB1bml0OiBzdHJpbmc7XG4gIEBPYnNlcnZhYmxlSW5wdXQoKVxuICB1bml0JCE6IE9ic2VydmFibGU8c3RyaW5nPjtcblxuICBAVmFsdWVIb29rKGZ1bmN0aW9uIChcbiAgICB0aGlzOiBWaWV3Q2hhcnRDb21wb25lbnQsXG4gICAgY29udGV4dENhbGxiYWNrRnVuY3Rpb246IChjb250ZXh0OiBWaWV3KSA9PiB2b2lkLFxuICApIHtcbiAgICBpZiAoY29udGV4dENhbGxiYWNrRnVuY3Rpb24gJiYgIXRoaXMub3B0aW9ucz8uY29udGV4dENhbGxiYWNrRnVuY3Rpb24pIHtcbiAgICAgIHRoaXMuY2hhcnQ/LnNldE9wdGlvbnMoeyBjb250ZXh0Q2FsbGJhY2tGdW5jdGlvbiB9KTtcbiAgICB9XG4gIH0pXG4gIEBJbnB1dCgpXG4gIGNvbnRleHRDYWxsYmFja0Z1bmN0aW9uOiAoY29udGV4dDogVmlldykgPT4gdm9pZDtcblxuICAvLyB0aXRsZVxuICBASW5wdXQoKSB0aXRsZTogc3RyaW5nIHwgVGVtcGxhdGVSZWY8dW5rbm93bj47XG5cbiAgQElucHV0KCkgaGlkZVRpdGxlOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpIHRpdGxlRGVzY3JpcHRpb246IHN0cmluZyB8IFRlbXBsYXRlUmVmPHVua25vd24+O1xuXG4gIEBJbnB1dCgpIHRpdGxlRGVzY3JpcHRpb25Db250ZXh0OiBTdHJpbmdNYXA7XG5cbiAgQElucHV0KCkgdGl0bGVPZmZzZXRYOiBudW1iZXI7XG5cbiAgLy8gbGVnZW5kXG4gIEBJbnB1dCgpIGhpZGVMZWdlbmQgPSBmYWxzZTtcblxuICBASW5wdXQoKSBsZWdlbmRUZW1wbGF0ZTogVGVtcGxhdGVSZWY8dW5rbm93bj4gfCBzdHJpbmc7XG5cbiAgLy8gY3VzdG9tIGxlZ2VuZFxuICBASW5wdXQoKSBsZWZ0T3BlcmF0aW9uOiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcblxuICBASW5wdXQoKSBsZWZ0T3BlcmF0aW9uQ29udGV4dDogU3RyaW5nTWFwO1xuXG4gIEBPYnNlcnZhYmxlSW5wdXQoKVxuICBsZWZ0T3BlcmF0aW9uJCE6IE9ic2VydmFibGU8VGVtcGxhdGVSZWY8dW5rbm93bj4+O1xuXG4gIEBJbnB1dCgpIHJpZ2h0T3BlcmF0aW9uOiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcblxuICBAT2JzZXJ2YWJsZUlucHV0KClcbiAgcmlnaHRPcGVyYXRpb24kITogT2JzZXJ2YWJsZTxUZW1wbGF0ZVJlZjx1bmtub3duPj47XG5cbiAgQElucHV0KCkgbGVnZW5kU2VsZWN0QWxsT3BlcmF0aW9uID0gZmFsc2U7XG5cbiAgQElucHV0KCkgbGVnZW5kU2VsZWN0QWxsTmFtZTogc3RyaW5nO1xuXG4gIC8vIGF4aXNcblxuICBASW5wdXQoKSB5QXhpc1RpY2tTdWZmaXg6IHN0cmluZztcblxuICBASW5wdXQoKSBkYXRlQXhpc0xhYmVsRm9ybWF0czogc3RyaW5nO1xuXG4gIEBJbnB1dCgpIHhBeGlzTGFiZWxUcmFuc2xhdGlvbjogYm9vbGVhbjtcblxuICBASW5wdXQoKSB4U2NhbGVUeXBlOiBTY2FsZVR5cGU7XG5cbiAgQElucHV0KCkgeEF4aXNUaWNrRm9ybWF0dGVyOiBzdHJpbmcgfCAoKHZhbHVlOiBzdHJpbmcpID0+IHN0cmluZyk7XG5cbiAgQElucHV0KCkgdGlja3M6IHVua25vd247XG5cbiAgQElucHV0KCkgeUF4aXNUaWNrRm9ybWF0dGVyOiBzdHJpbmcgfCAoKHZhbHVlOiBudW1iZXIpID0+IHN0cmluZyk7XG5cbiAgQElucHV0KCkgeUF4aXNNaW5TdGVwPzogbnVtYmVyO1xuXG4gIC8vIHRvb2x0aXBcbiAgQElucHV0KCkgdG9vbHRpcFRyaWdnZXI6ICdheGlzJyB8ICdpdGVtJyB8ICdub25lJztcblxuICBASW5wdXQoKSB0b29sdGlwQXV0b1NvcnQgPSBmYWxzZTtcblxuICBASW5wdXQoKSB0b29sdGlwSGlkZVRpdGxlOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpIHRvb2x0aXBDb2x1bW5MYXlvdXQ6IGJvb2xlYW47XG5cbiAgQElucHV0KCkgdG9vbHRpcFRpdGxlVGVtcGxhdGU6IFRlbXBsYXRlUmVmPHVua25vd24+O1xuXG4gIEBJbnB1dCgpIHRvb2x0aXBQb2ludE5hbWVUZW1wbGF0ZTogVGVtcGxhdGVSZWY8dW5rbm93bj47XG5cbiAgQElucHV0KCkgdG9vbHRpcFRyYW5zbGF0aW9uOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpIHRvb2x0aXBUaXRsZVRyYW5zbGF0aW9uOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpIGhpZGVUb29sdGlwVW5pdDogYm9vbGVhbjtcblxuICBASW5wdXQoKSB0b29sdGlwUG9pbnRGb3JtYXQ6IChkOiBDb250ZXh0SXRlbSkgPT4gbnVtYmVyIHwgc3RyaW5nO1xuXG4gIEBJbnB1dCgpIHRvb2x0aXBQb2ludFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcblxuICBASW5wdXQoKSB0b29sdGlwUG9pbnRUZW1wbGF0ZUNvbnRleHQ6IHVua25vd247XG5cbiAgLy8gc2VyaWVzXG4gIEBJbnB1dCgpIGJhbmRXaWR0aCA9IDEwO1xuXG4gIEBJbnB1dCgpIG1pbkhlaWdodDogbnVtYmVyO1xuXG4gIEBJbnB1dCgpIHN0ZXBMaW5lOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpIGN1cnZlVHlwZTogQ3VydmVGYWN0b3J5IHwgQ3VydmVGYWN0b3J5TGluZU9ubHk7XG5cbiAgQElucHV0KCkgYmFyVHlwZTogJ3N0YW5kYXJkJyB8ICdzdGFja2VkJyA9ICdzdGFuZGFyZCc7XG5cbiAgQElucHV0KCkgc3RhcnRPcGFjaXR5OiBudW1iZXI7XG5cbiAgQElucHV0KCkgZW5kT3BhY2l0eTogbnVtYmVyO1xuXG4gIEBJbnB1dCgpIGxpbmVXaWR0aD86IG51bWJlcjtcblxuICAvLyBiYXIgc2VyaWVzXG4gIEBJbnB1dCgpIGlzR3JvdXA6IGJvb2xlYW47XG5cbiAgQElucHV0KCkgYmFyUmFkaXVzOiBudW1iZXI7XG5cbiAgQElucHV0KCkgY2xvc2VSYWRpdXNMYWRkZXI6IGJvb2xlYW47XG5cbiAgQElucHV0KCkgY29sdW1uQ2xpY2s6IChkYXRhOiBCYXJDb2x1bW5QYXJhbXMpID0+IHZvaWQ7XG5cbiAgLy8gem9vbVxuICBASW5wdXQoKSBlbmFibGVab29tOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpIGNoYXJ0U3RhdHVzOiBDaGFydFN0YXR1cztcblxuICAvLyBwbG90IGxpbmVcbiAgQElucHV0KCkgeVBsb3RMaW5lc0hpZGUgPSBmYWxzZTtcblxuICBASW5wdXQoKSB5UGxvdExpbmVzOiBUb29sdGlwQ29udGV4dDtcblxuICAvLyBwaWVcbiAgQElucHV0KCkgcGllSW5uZXJSYWRpdXM6IG51bWJlciB8IFBlcmNlbnRhZ2U7XG5cbiAgQElucHV0KCkgcGllT3V0ZXJSYWRpdXM6IG51bWJlciB8IFBlcmNlbnRhZ2U7XG5cbiAgQElucHV0KCkgcGllU3RhcnRBbmdsZTogbnVtYmVyO1xuXG4gIEBJbnB1dCgpIHBpZUVuZEFuZ2xlOiBudW1iZXI7XG5cbiAgQElucHV0KCkgcGllQmFja2dyb3VuZENvbG9yOiBzdHJpbmc7XG5cbiAgQElucHV0KCkgcGllVG90YWw6IG51bWJlcjtcblxuICBASW5wdXQoKSBwaWVJbm5lckRpc2M6IGJvb2xlYW47XG5cbiAgQElucHV0KCkgcGllTGFiZWxUZXh0OiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjx1bmtub3duPjtcblxuICBASW5wdXQoKSBwaWVMYWJlbFBvc2l0aW9uOiB7IHg6IHN0cmluZzsgeTogc3RyaW5nIH07XG5cbiAgQElucHV0KCkgcGllSXRlbVN0eWxlPzoge1xuICAgIGJvcmRlclJhZGl1cz86IG51bWJlcjtcbiAgfTtcblxuICAvLyBzY2F0dGVyXG4gIEBJbnB1dCgpIHNjYXR0ZXJUeXBlOiAnYnViYmxlJztcbiAgQElucHV0KCkgc2NhdHRlck9wYWNpdHk6IG51bWJlcjtcbiAgQElucHV0KCkgc2NhdHRlclNpemU6IG51bWJlcjtcbiAgQElucHV0KCkgc2NhdHRlclRocmVzaG9sZDoge1xuICAgIG1pblNpemU6IG51bWJlcjtcbiAgICBtYXhTaXplOiBudW1iZXI7XG4gIH07XG5cbiAgQE9ic2VydmFibGVJbnB1dCgpXG4gIHlQbG90TGluZXMkITogT2JzZXJ2YWJsZTxUb29sdGlwQ29udGV4dD47XG5cbiAgQElucHV0KCkgeFBsb3RMaW5lczogWFBsb3RMaW5lcztcblxuICBAT2JzZXJ2YWJsZUlucHV0KClcbiAgeFBsb3RMaW5lcyQhOiBPYnNlcnZhYmxlPFhQbG90TGluZXM+O1xuXG4gIEBPYnNlcnZhYmxlSW5wdXQoKVxuICBjaGFydFN0YXR1cyQhOiBPYnNlcnZhYmxlPENoYXJ0U3RhdHVzPjtcblxuICBAT3V0cHV0KCkgbW91c2VVcEV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxBcmVhUG9zaXRpb24+KCk7XG5cbiAgQE91dHB1dCgpIG1hcmtDbGlja0V2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxUb29sdGlwQ29udGV4dD4oKTtcblxuICBAT3V0cHV0KCkgcmVmcmVzaEV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgb25EZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgX2NoYXJ0U3RhdHVzJCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PENoYXJ0U3RhdHVzPih7XG4gICAgbG9hZGluZzogdHJ1ZSxcbiAgICBub0RhdGE6IGZhbHNlLFxuICAgIGZhaWxlZDogZmFsc2UsXG4gICAgbm9MZWdlbmQ6IGZhbHNlLFxuICB9KTtcblxuICBfc3RhdHVzOiBDaGFydFN0YXR1cyA9IHt9O1xuXG4gIGNoYXJ0OiBBQ2hhcnQ7XG5cbiAgYXJlYVBvc2l0aW9uOiBBcmVhUG9zaXRpb24gPSB7XG4gICAgeDE6IDAsXG4gICAgeDI6IDAsXG4gICAgc3RhcnRYOiAwLFxuICAgIGVuZFg6IDAsXG4gIH07XG5cbiAgc3RhdHVzJCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMuY2hhcnRTdGF0dXMkLCB0aGlzLl9jaGFydFN0YXR1cyQkXSkucGlwZShcbiAgICBtYXAoKFtzdGF0dXMsIF9zdGF0dXNdKSA9PiAoe1xuICAgICAgLi4uX3N0YXR1cyxcbiAgICAgIC4uLnN0YXR1cyxcbiAgICB9KSksXG4gICAgdGFwKHN0YXR1cyA9PiAodGhpcy5fc3RhdHVzID0gc3RhdHVzKSksXG4gICAgcHVibGlzaFJlZigpLFxuICApO1xuXG4gIGdldCBiYWNrZ3JvdW5kKCkge1xuICAgIHJldHVybiB0aGlzLmJhY2tncm91bmRDb2xvcjtcbiAgfVxuXG4gIGlzVGVtcGxhdGVSZWYgPSBpc1RlbXBsYXRlUmVmO1xuXG4gIGN1c3RvbUxlZ2VuZFJlZjogQ29tcG9uZW50UmVmPExlZ2VuZENvbXBvbmVudD47XG5cbiAgY3VzdG9tVGl0bGVSZWY6IEVtYmVkZGVkVmlld1JlZjx1bmtub3duPjtcblxuICBjdXN0b21QaWVMYWJlbFRleHRSZWY6IEVtYmVkZGVkVmlld1JlZjx1bmtub3duPjtcblxuICB0b29sdGlwSXRlbUNvbnRleHQ6IHsgY29udGV4dDogVG9vbHRpcENvbnRleHRJdGVtW10gfSA9IHsgY29udGV4dDogW10gfTtcblxuICB0b29sdGlwVGl0bGVDb250ZXh0OiB7IGNvbnRleHQ6IFRvb2x0aXBDb250ZXh0IH0gPSB7IGNvbnRleHQ6IG51bGwgfTtcblxuICBnZXQgc2VyaWVzT3B0aW9ucygpIHtcbiAgICBjb25zdCBiYXJTZXJpZXMgPSB7XG4gICAgICBzdGFjazogdGhpcy5iYXJUeXBlID09PSAnc3RhY2tlZCcsXG4gICAgICBiYW5kd2lkdGg6IHRoaXMuYmFuZFdpZHRoLFxuICAgICAgaXNHcm91cDogdGhpcy5pc0dyb3VwLFxuICAgICAgcmFkaXVzOiB0aGlzLmJhclJhZGl1cyxcbiAgICAgIGNsb3NlUmFkaXVzTGFkZGVyOiB0aGlzLmNsb3NlUmFkaXVzTGFkZGVyLFxuICAgICAgY29sdW1uQ2xpY2s6IHRoaXMuY29sdW1uQ2xpY2sgfHwgbnVsbCxcbiAgICAgIG1pbkhlaWdodDogdGhpcy5taW5IZWlnaHQsXG4gICAgfTtcbiAgICBjb25zdCBsaW5lU2VyaWVzID0ge1xuICAgICAgc3RlcDogdGhpcy5zdGVwTGluZSxcbiAgICAgIGN1cnZlVHlwZTogdGhpcy5jdXJ2ZVR5cGUsXG4gICAgICBsaW5lV2lkdGg6IHRoaXMubGluZVdpZHRoLFxuICAgIH07XG4gICAgY29uc3QgYXJlYVNlcmllcyA9IHtcbiAgICAgIGN1cnZlVHlwZTogdGhpcy5jdXJ2ZVR5cGUsXG4gICAgICBzdGFydE9wYWNpdHk6IHRoaXMuc3RhcnRPcGFjaXR5LFxuICAgICAgZW5kT3BhY2l0eTogdGhpcy5lbmRPcGFjaXR5LFxuICAgICAgbGluZVdpZHRoOiB0aGlzLmxpbmVXaWR0aCxcbiAgICB9O1xuXG4gICAgc3dpdGNoICh0aGlzLmNoYXJ0VHlwZSkge1xuICAgICAgY2FzZSAnYmFyJzoge1xuICAgICAgICByZXR1cm4gYmFyU2VyaWVzIGFzIEJhclNlcmllc09wdGlvbjtcbiAgICAgIH1cbiAgICAgIGNhc2UgJ2xpbmUnOiB7XG4gICAgICAgIHJldHVybiBsaW5lU2VyaWVzIGFzIExpbmVTZXJpZXNPcHRpb247XG4gICAgICB9XG4gICAgICBjYXNlICdhcmVhJzoge1xuICAgICAgICByZXR1cm4gYXJlYVNlcmllcyBhcyBBcmVhU2VyaWVzT3B0aW9uO1xuICAgICAgfVxuICAgICAgY2FzZSAncGllJzoge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGlubmVyUmFkaXVzOiB0aGlzLnBpZUlubmVyUmFkaXVzLFxuICAgICAgICAgIG91dGVyUmFkaXVzOiB0aGlzLnBpZU91dGVyUmFkaXVzLFxuICAgICAgICAgIHN0YXJ0QW5nbGU6IHRoaXMucGllU3RhcnRBbmdsZSxcbiAgICAgICAgICBlbmRBbmdsZTogdGhpcy5waWVFbmRBbmdsZSxcbiAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IHRoaXMucGllQmFja2dyb3VuZENvbG9yIHx8ICd0cmFuc3BhcmVudCcsXG4gICAgICAgICAgdG90YWw6IHRoaXMucGllVG90YWwsXG4gICAgICAgICAgbGFiZWw6IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiB7XG4gICAgICAgICAgICAgIHg6IHRoaXMucGllTGFiZWxQb3NpdGlvbj8ueCB8fCAnNTAlJyxcbiAgICAgICAgICAgICAgeTogdGhpcy5waWVMYWJlbFBvc2l0aW9uPy55IHx8ICc1MCUnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGlubmVyRGlzYzogdGhpcy5waWVJbm5lckRpc2MsXG4gICAgICAgICAgaXRlbVN0eWxlOiB0aGlzLnBpZUl0ZW1TdHlsZSB8fCB7IGJvcmRlclJhZGl1czogdGhpcy5iYW5kV2lkdGggLyAyIH0sXG4gICAgICAgIH0gYXMgUGllU2VyaWVzT3B0aW9uO1xuICAgICAgfVxuICAgICAgY2FzZSAnc2NhdHRlcic6IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBzaXplOiB0aGlzLnNjYXR0ZXJTaXplLFxuICAgICAgICAgIC4uLnRoaXMuc2NhdHRlclRocmVzaG9sZCxcbiAgICAgICAgICB0eXBlOiB0aGlzLnNjYXR0ZXJUeXBlLFxuICAgICAgICAgIG9wYWNpdHk6IHRoaXMuc2NhdHRlck9wYWNpdHksXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIHJldHVybiB7fTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBnZXQgaXNDYXJkTW9kZSgpIHtcbiAgICByZXR1cm4gdGhpcy5tb2RlID09PSAnY2FyZCc7XG4gIH1cblxuICBnZXQgc2NhbGVUeXBlKCkge1xuICAgIHJldHVybiB0aGlzLnhTY2FsZVR5cGUgfHwgU2NhbGVUeXBlLlRJTUU7XG4gIH1cblxuICBnZXQgaXNTY2FsZVRpbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMuc2NhbGVUeXBlID09PSBTY2FsZVR5cGUuVElNRTtcbiAgfVxuXG4gIGdldCBvcHRpb25zKCk6IFZpZXdPcHRpb25zIHtcbiAgICBjb25zdCBkZWZhdWx0WEF4aXNUaWNrRm9ybWF0dGVyID0gdGhpcy5pc1NjYWxlVGltZVxuICAgICAgPyAoKSA9PiB0aW1lRm9ybWF0KHRoaXMuZGF0ZUF4aXNMYWJlbEZvcm1hdHMgfHwgJyVIOiVNJylcbiAgICAgIDogbnVsbDtcbiAgICBjb25zdCB4QXhpc1RpY2tGb3JtYXR0ZXIgPVxuICAgICAgdGhpcy54QXhpc1RpY2tGb3JtYXR0ZXIgfHwgZGVmYXVsdFhBeGlzVGlja0Zvcm1hdHRlcjtcbiAgICByZXR1cm4ge1xuICAgICAgY3VzdG9tSGVhZGVyOiB0aGlzLmNoYXJ0VHlwZSAhPT0gJ3BpZScsXG4gICAgICB0eXBlOiB0aGlzLnN0ZXBMaW5lID8gJ2xpbmUnIDogdGhpcy5jaGFydFR5cGUsXG4gICAgICBvZmZzZXQ6IHtcbiAgICAgICAgeDogdGhpcy5tYXJnaW5MZWZ0LFxuICAgICAgICB5OiB0aGlzLmlzQ2FyZE1vZGUgPyA1IDogMCxcbiAgICAgIH0sXG4gICAgICByb3RhdGVkOiB0aGlzLnJvdGF0ZWQsXG4gICAgICB0aXRsZToge1xuICAgICAgICB0ZXh0OiB0aGlzLnRpdGxlIGFzIHN0cmluZyxcbiAgICAgICAgb2Zmc2V0WDogdGhpcy50aXRsZU9mZnNldFgsXG4gICAgICAgIGhpZGU6IHRoaXMuaGlkZVRpdGxlIHx8IHRoaXMuaGlkZUhlYWRlcixcbiAgICAgICAgZm9ybWF0dGVyOiAoKSA9PiAnJyxcbiAgICAgIH0sXG4gICAgICBsZWdlbmQ6IHtcbiAgICAgICAgaGlkZTogdGhpcy5oaWRlSGVhZGVyLFxuICAgICAgICBmb3JtYXR0ZXI6ICgpID0+ICcnLFxuICAgICAgICBvZmZzZXRZOiB0aGlzLmlzQ2FyZE1vZGUgPyAtOCA6IDAsXG4gICAgICAgIGlzTW91bnQ6IHRydWUsXG4gICAgICB9LFxuICAgICAgZ3JpZDogeyB0b3A6IHRoaXMuZ3JpZE9mZnNldFRvcCB8fCAwIH0sXG4gICAgICB5QXhpczoge1xuICAgICAgICB0aWNrRm9ybWF0dGVyOlxuICAgICAgICAgIHRoaXMueUF4aXNUaWNrRm9ybWF0dGVyIHx8XG4gICAgICAgICAgKCh2YWx1ZTogbnVtYmVyKSA9PlxuICAgICAgICAgICAgYCR7dGhpcy5jb252ZXJzaW9uTWF4aW11bSh2YWx1ZSl9JHt0aGlzLnlBeGlzVGlja1N1ZmZpeCB8fCAnJ31gKSxcbiAgICAgICAgbWluU3RlcDogdGhpcy55QXhpc01pblN0ZXAsXG4gICAgICB9LFxuICAgICAgeEF4aXM6IHtcbiAgICAgICAgdHlwZTogdGhpcy54U2NhbGVUeXBlIHx8IFNjYWxlVHlwZS5USU1FLFxuICAgICAgICB0aWNrRm9ybWF0dGVyOiB4QXhpc1RpY2tGb3JtYXR0ZXIsXG4gICAgICAgIHRpY2tzOiB0aGlzLnRpY2tzLFxuICAgICAgfSxcbiAgICAgIHRvb2x0aXA6IHtcbiAgICAgICAgaGlkZVRpdGxlOiB0aGlzLnRvb2x0aXBIaWRlVGl0bGUsXG4gICAgICAgIHRyaWdnZXI6IHRoaXMudG9vbHRpcFRyaWdnZXJUeXBlLFxuICAgICAgICB0aXRsZUZvcm1hdHRlcjogdGhpcy50aXRsZUZvcm1hdHRlcixcbiAgICAgICAgaXRlbUZvcm1hdHRlcjogKGNvbnRleHQ6IFRvb2x0aXBDb250ZXh0SXRlbVtdKSA9PiB7XG4gICAgICAgICAgdGhpcy50b29sdGlwSXRlbUNvbnRleHQgPSB0aGlzLm1lcmdlUG9pbnRDb250ZXh0KGNvbnRleHQpO1xuICAgICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICByZXR1cm4gdGhpcy50b29sdGlwUG9pbnRUZW1wbGF0ZVxuICAgICAgICAgICAgPyB0aGlzLnRvb2x0aXBJdGVtVmlydHVhbC5uYXRpdmVFbGVtZW50LmlubmVySFRNTFxuICAgICAgICAgICAgOiB0aGlzLnRvb2x0aXBJdGVtQ29udGV4dC5jb250ZXh0O1xuICAgICAgICB9LFxuICAgICAgICBuYW1lRm9ybWF0dGVyOiAoeyBuYW1lIH0pID0+XG4gICAgICAgICAgdGhpcy50b29sdGlwVHJhbnNsYXRpb24gPyB0aGlzLnRyYW5zbGF0ZS5nZXQobmFtZSkgOiBuYW1lLFxuICAgICAgICB2YWx1ZUZvcm1hdHRlcjogdGhpcy52YWx1ZUZvcm1hdHRlcixcbiAgICAgICAgc29ydDogdGhpcy50b29sdGlwQXV0b1NvcnQgPyAoYSwgYikgPT4gYi55IC0gYS55IDogbnVsbCxcbiAgICAgIH0sXG4gICAgICBzZXJpZXNPcHRpb246IHRoaXMuc2VyaWVzT3B0aW9ucyxcbiAgICAgIHpvb206IHtcbiAgICAgICAgZW5hYmxlZDogdGhpcy5lbmFibGVab29tLFxuICAgICAgICBvbnpvb21TdGFydDogKGQ6IFpvb21QYXJhbXMpID0+IHtcbiAgICAgICAgICB0aGlzLmFyZWFQb3NpdGlvbi54MSA9IGQueDtcbiAgICAgICAgICB0aGlzLmFyZWFQb3NpdGlvbi5zdGFydFggPSBkLnZhbHVlLng7XG4gICAgICAgIH0sXG4gICAgICAgIG9uem9vbUVuZDogKGQ6IFpvb21QYXJhbXMpID0+IHtcbiAgICAgICAgICB0aGlzLmFyZWFQb3NpdGlvbi54MiA9IGQueDtcbiAgICAgICAgICB0aGlzLmFyZWFQb3NpdGlvbi5lbmRYID0gZC52YWx1ZS54O1xuICAgICAgICAgIGNvbnN0IHsgc3RhcnRYLCBlbmRYIH0gPSB0aGlzLmFyZWFQb3NpdGlvbjtcbiAgICAgICAgICBpZiAoc3RhcnRYICE9PSBlbmRYKSB7XG4gICAgICAgICAgICB0aGlzLm1vdXNlVXBFdmVudC5uZXh0KHRoaXMuYXJlYVBvc2l0aW9uKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgeFBsb3RMaW5lOiB7XG4gICAgICAgIGNvbG9yOiAncmVkJyxcbiAgICAgIH0sXG4gICAgICBjb250ZXh0Q2FsbGJhY2tGdW5jdGlvbjogdGhpcy5jb250ZXh0Q2FsbGJhY2tGdW5jdGlvbixcbiAgICB9O1xuICB9XG5cbiAgZ2V0IHRvb2x0aXBUcmlnZ2VyVHlwZSgpIHtcbiAgICByZXR1cm4gdGhpcy50b29sdGlwVHJpZ2dlciB8fCB0aGlzLmdldFRyaWdnZXJUeXBlKCk7XG4gIH1cblxuICBnZXRUcmlnZ2VyVHlwZSgpIHtcbiAgICBzd2l0Y2ggKHRoaXMuY2hhcnRUeXBlKSB7XG4gICAgICBjYXNlICdsaW5lJzpcbiAgICAgIGNhc2UgJ2FyZWEnOlxuICAgICAgY2FzZSAnYmFyJzoge1xuICAgICAgICByZXR1cm4gJ2F4aXMnO1xuICAgICAgfVxuICAgICAgY2FzZSAnc2NhdHRlcic6IHtcbiAgICAgICAgcmV0dXJuICdpdGVtJztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ3BpZSc6IHtcbiAgICAgICAgcmV0dXJuICdub25lJztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgYXBwUmVmOiBBcHBsaWNhdGlvblJlZixcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSByZWFkb25seSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxuICApIHt9XG5cbiAgbmdPbkNoYW5nZXMoeyBlbmFibGVab29tIH06IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoZW5hYmxlWm9vbT8uY3VycmVudFZhbHVlKSB7XG4gICAgICB0aGlzLmNoYXJ0Py5zZXRPcHRpb25zKHsgem9vbTogeyBlbmFibGVkOiB0cnVlIH0gfSk7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuY2hhcnQgPSBDaGFydCh7XG4gICAgICBjb250YWluZXI6IHRoaXMuY2hhcnRDb250YWluZXIubmF0aXZlRWxlbWVudCxcbiAgICAgIC4uLnRoaXMub3B0aW9ucyxcbiAgICAgIGRhdGE6IFtdLFxuICAgIH0pO1xuICAgIGNvbWJpbmVMYXRlc3QoW3RoaXMuc2VyaWVzJCwgdGhpcy54UGxvdExpbmVzJC5waXBlKHN0YXJ0V2l0aChudWxsKSldKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMub25EZXN0cm95JCkpXG4gICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogKFtkYXRhLCByZXNdKSA9PiB7XG4gICAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIHRoaXMuY2hhcnQuc2V0T3B0aW9ucyh7XG4gICAgICAgICAgICAgIHR5cGU6XG4gICAgICAgICAgICAgICAgZGF0YS5sZW5ndGggPiAzICYmIHRoaXMuY2hhcnRUeXBlID09PSAnYXJlYSdcbiAgICAgICAgICAgICAgICAgID8gJ2xpbmUnXG4gICAgICAgICAgICAgICAgICA6IHRoaXMuY2hhcnRUeXBlLFxuICAgICAgICAgICAgICBzZXJpZXNPcHRpb246IHtcbiAgICAgICAgICAgICAgICBsaW5lV2lkdGg6IGRhdGEubGVuZ3RoID4gMyA/IDEgOiB0aGlzLmxpbmVXaWR0aCxcbiAgICAgICAgICAgICAgICBhY3RpdmVMaW5lV2lkdGg6IGRhdGEubGVuZ3RoID4gMyA/IDIgOiAzLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB5QXhpczoge1xuICAgICAgICAgICAgICAgIC4uLnRoaXMub3B0aW9ucy55QXhpcyxcbiAgICAgICAgICAgICAgICBtYXg6IHJlcz8udmFsdWUgfHwgdGhpcy5vcHRpb25zLnlBeGlzLm1heCxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgY29uc3QgdmFsdWVzID0gdGhpcy5oYW5kZWxEYXRhKGRhdGEpO1xuICAgICAgICAgICAgdGhpcy5jaGFydC5kYXRhKHZhbHVlcyk7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5hZGRDdXN0b21MZWdlbmQodGhpcy5jaGFydC5jaGFydFVJZCk7XG4gICAgICAgICAgICAgIHRoaXMuYWRkQ3VzdG9tVGl0bGUodGhpcy5jaGFydC5jaGFydFVJZCk7XG4gICAgICAgICAgICAgIHRoaXMuYWRkUGllTGFiZWxUZXh0KHRoaXMuY2hhcnQuY2hhcnRVSWQpO1xuICAgICAgICAgICAgfSwgMCk7XG4gICAgICAgICAgICBjb25zdCBsZWdlbmRJdGVtcyA9IHRoaXMuY2hhcnQuZ2V0Q29udHJvbGxlcignbGVnZW5kJykubGVnZW5kSXRlbXM7XG4gICAgICAgICAgICB0aGlzLmhhbmRlbENoYXJ0U3RhdHVzKHtcbiAgICAgICAgICAgICAgbG9hZGluZzogZmFsc2UsXG4gICAgICAgICAgICAgIG5vTGVnZW5kOlxuICAgICAgICAgICAgICAgIGxlZ2VuZEl0ZW1zLmxlbmd0aCAmJiBsZWdlbmRJdGVtcy5ldmVyeShpdGVtID0+ICFpdGVtLmFjdGl2YXRlKSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAocmVzKSB7XG4gICAgICAgICAgICB0aGlzLmNoYXJ0Py51cGRhdGVYUGxvdExpbmUocmVzKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICB0aGlzLmNoYXJ0Lm9uKFJFQ1RfRVZFTlRTLkNMSUNLLCAodmFsdWU6IFRvb2x0aXBDb250ZXh0KSA9PiB7XG4gICAgICB0aGlzLm1hcmtDbGlja0V2ZW50Lm5leHQodmFsdWUpO1xuICAgICAgaWYgKCF0aGlzLnlQbG90TGluZXNIaWRlICYmIHRoaXMueVBsb3RMaW5lcykge1xuICAgICAgICB0aGlzLmNoYXJ0LnVwZGF0ZVlQbG90TGluZSh7XG4gICAgICAgICAgLi4udmFsdWUsXG4gICAgICAgICAgdGl0bGU6IGRheWpzKHZhbHVlLnRpdGxlKS5mb3JtYXQoJ1lZWVktTU0tREQgSEg6bW06c3MnKSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy55UGxvdExpbmVzJC5waXBlKHRha2VVbnRpbCh0aGlzLm9uRGVzdHJveSQpKS5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgIGlmIChyZXMpIHtcbiAgICAgICAgdGhpcy5jaGFydC51cGRhdGVZUGxvdExpbmUoe1xuICAgICAgICAgIC4uLnJlcyxcbiAgICAgICAgICB0aXRsZTogZGF5anMocmVzLnRpdGxlKS5mb3JtYXQoJ1lZWVktTU0tREQgSEg6bW06c3MnKSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBoYW5kZWxEYXRhKGRhdGE6IENoYXJ0RGF0YVtdKSB7XG4gICAgcmV0dXJuIGRhdGEubWFwKGQgPT4gKHtcbiAgICAgIC4uLmQsXG4gICAgICB2YWx1ZXM6IGQudmFsdWVzPy5tYXAodiA9PiAoe1xuICAgICAgICAuLi52LFxuICAgICAgICB4OiB0aGlzLnhBY2Nlc3Nvcih2KSxcbiAgICAgICAgeTogdGhpcy55QWNjZXNzb3IodiksXG4gICAgICB9KSksXG4gICAgfSkpO1xuICB9XG5cbiAgYWRkQ3VzdG9tTGVnZW5kKGNoYXJ0VUlkOiBzdHJpbmcpIHtcbiAgICBjb25zdCBkb20gPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKGAuJHtjaGFydFVJZH0gLmFjLWxlZ2VuZGApO1xuICAgIGlmICghdGhpcy5jdXN0b21MZWdlbmRSZWYgJiYgZG9tICYmICF0aGlzLmhpZGVIZWFkZXIpIHtcbiAgICAgIGNvbnN0IHAgPSBuZXcgQ29tcG9uZW50UG9ydGFsKExlZ2VuZENvbXBvbmVudCk7XG4gICAgICBjb25zdCBvID0gbmV3IERvbVBvcnRhbE91dGxldChcbiAgICAgICAgZG9tLFxuICAgICAgICB0aGlzLmNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgICAgICAgdGhpcy5hcHBSZWYsXG4gICAgICAgIHRoaXMuaW5qZWN0b3IsXG4gICAgICApO1xuICAgICAgdGhpcy5jdXN0b21MZWdlbmRSZWYgPSBwLmF0dGFjaChvKTtcbiAgICAgIHRoaXMuY3VzdG9tTGVnZW5kUmVmLmluc3RhbmNlLmNoYXJ0ID0gdGhpcy5jaGFydDtcbiAgICAgIHRoaXMuY3VzdG9tTGVnZW5kUmVmLmluc3RhbmNlLnN5bWJvbCA9IFsnYmFyJywgJ3BpZScsICdzY2F0dGVyJ10uaW5jbHVkZXMoXG4gICAgICAgIHRoaXMuY2hhcnRUeXBlLFxuICAgICAgKVxuICAgICAgICA/ICdjaXJjbGUnXG4gICAgICAgIDogJ2xpbmUnO1xuICAgICAgdGhpcy5sZWZ0T3BlcmF0aW9uJC5waXBlKHRha2VVbnRpbCh0aGlzLm9uRGVzdHJveSQpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLmN1c3RvbUxlZ2VuZFJlZi5pbnN0YW5jZS5sZWZ0T3BlcmF0aW9uID0gdGhpcy5sZWZ0T3BlcmF0aW9uO1xuICAgICAgICB0aGlzLmN1c3RvbUxlZ2VuZFJlZi5pbnN0YW5jZS5sZWZ0T3BlcmF0aW9uQ29udGV4dCA9XG4gICAgICAgICAgdGhpcy5sZWZ0T3BlcmF0aW9uQ29udGV4dDtcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLnJpZ2h0T3BlcmF0aW9uJC5waXBlKHRha2VVbnRpbCh0aGlzLm9uRGVzdHJveSQpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLmN1c3RvbUxlZ2VuZFJlZi5pbnN0YW5jZS5yaWdodE9wZXJhdGlvbiA9IHRoaXMucmlnaHRPcGVyYXRpb247XG4gICAgICB9KTtcbiAgICAgIHRoaXMuY3VzdG9tTGVnZW5kUmVmLmluc3RhbmNlLm1vZGUgPSB0aGlzLm1vZGU7XG4gICAgICB0aGlzLmN1c3RvbUxlZ2VuZFJlZi5pbnN0YW5jZS5oaWRlTGVnZW5kID0gdGhpcy5oaWRlTGVnZW5kO1xuICAgICAgdGhpcy5jdXN0b21MZWdlbmRSZWYuaW5zdGFuY2Uuc2VsZWN0QWxsTmFtZSA9IHRoaXMubGVnZW5kU2VsZWN0QWxsTmFtZTtcbiAgICAgIHRoaXMuY3VzdG9tTGVnZW5kUmVmLmluc3RhbmNlLnNlbGVjdEFsbE9wZXJhdGlvbiA9XG4gICAgICAgIHRoaXMubGVnZW5kU2VsZWN0QWxsT3BlcmF0aW9uO1xuICAgICAgdGhpcy5jdXN0b21MZWdlbmRSZWYuaW5zdGFuY2UudGVtcGxhdGUgPSB0aGlzLmxlZ2VuZFRlbXBsYXRlO1xuICAgICAgdGhpcy5jdXN0b21MZWdlbmRSZWYuaW5zdGFuY2UuY2hhbmdlTGVnZW5kXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm9uRGVzdHJveSQpKVxuICAgICAgICAuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgICAgdGhpcy5oYW5kZWxDaGFydFN0YXR1cyh7XG4gICAgICAgICAgICBub0xlZ2VuZDogcmVzLmV2ZXJ5KGl0ZW0gPT4gIWl0ZW0uYWN0aXZhdGUpLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBhZGRDdXN0b21UaXRsZShjaGFydFVJZDogc3RyaW5nKSB7XG4gICAgY29uc3QgZG9tID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihgLiR7Y2hhcnRVSWR9IC5hYy10aXRsZWApO1xuICAgIGlmICghdGhpcy5jdXN0b21UaXRsZVJlZiAmJiBkb20gJiYgIXRoaXMuaGlkZUhlYWRlcikge1xuICAgICAgY29uc3QgcCA9IG5ldyBUZW1wbGF0ZVBvcnRhbCh0aGlzLnRpdGxlQ29udGFpbmVyLCB0aGlzLnZpZXdDb250YWluZXJSZWYpO1xuICAgICAgY29uc3QgbyA9IG5ldyBEb21Qb3J0YWxPdXRsZXQoXG4gICAgICAgIGRvbSxcbiAgICAgICAgdGhpcy5jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gICAgICAgIHRoaXMuYXBwUmVmLFxuICAgICAgICB0aGlzLmluamVjdG9yLFxuICAgICAgKTtcbiAgICAgIHRoaXMuY3VzdG9tVGl0bGVSZWYgPSBwLmF0dGFjaChvKTtcbiAgICB9XG4gIH1cblxuICBhZGRQaWVMYWJlbFRleHQoY2hhcnRVSWQ6IHN0cmluZykge1xuICAgIGNvbnN0IGRvbSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYC4ke2NoYXJ0VUlkfSAuYWMtcGllLWd1aWRlYCk7XG4gICAgaWYgKCF0aGlzLmN1c3RvbVBpZUxhYmVsVGV4dFJlZiAmJiBkb20gJiYgdGhpcy5waWVMYWJlbFRleHQpIHtcbiAgICAgIGNvbnN0IHAgPSBuZXcgVGVtcGxhdGVQb3J0YWwoXG4gICAgICAgIHRoaXMucGllTGFiZWxDb250YWluZXIsXG4gICAgICAgIHRoaXMudmlld0NvbnRhaW5lclJlZixcbiAgICAgICk7XG4gICAgICBjb25zdCBvID0gbmV3IERvbVBvcnRhbE91dGxldChcbiAgICAgICAgZG9tLFxuICAgICAgICB0aGlzLmNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgICAgICAgdGhpcy5hcHBSZWYsXG4gICAgICAgIHRoaXMuaW5qZWN0b3IsXG4gICAgICApO1xuICAgICAgdGhpcy5jdXN0b21QaWVMYWJlbFRleHRSZWYgPSBwLmF0dGFjaChvKTtcbiAgICB9XG4gIH1cblxuICByZWZyZXNoKCkge1xuICAgIHRoaXMucmVmcmVzaEV2ZW50Lm5leHQobnVsbCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLm9uRGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMuY3VzdG9tTGVnZW5kUmVmPy5kZXN0cm95KCk7XG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IG1lcmdlUG9pbnRDb250ZXh0ID0gKGNvbnRleHQ6IFRvb2x0aXBDb250ZXh0SXRlbVtdKSA9PiAoe1xuICAgIGNvbnRleHQ6IHRoaXMubGltaXRNYXhDb250ZXh0KGNvbnRleHQpLFxuICAgIC4uLih0aGlzLnRvb2x0aXBQb2ludFRlbXBsYXRlQ29udGV4dCBhcyBTdHJpbmdNYXApLFxuICB9KTtcblxuICBwcml2YXRlIGhhbmRlbENoYXJ0U3RhdHVzKHN0YXR1czogQ2hhcnRTdGF0dXMpIHtcbiAgICB0aGlzLl9jaGFydFN0YXR1cyQkLm5leHQoe1xuICAgICAgLi4uc3RhdHVzLFxuICAgIH0pO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgbGltaXRNYXhDb250ZXh0KGNvbnRleHQ6IFRvb2x0aXBDb250ZXh0SXRlbVtdLCBsaW1pdCA9IDE1KSB7XG4gICAgY29uc3QgdmFsdWVzID0gY29udGV4dC5zbGljZSgwLCBsaW1pdCk7XG4gICAgY29uc3QgZXhpc3RBY3RpdmUgPVxuICAgICAgY29udGV4dC5zb21lKGl0ZW0gPT4gaXRlbS5hY3RpdmF0ZWQpICYmIHZhbHVlcy5zb21lKGQgPT4gIWQuYWN0aXZhdGVkKTtcbiAgICBpZiAoIWV4aXN0QWN0aXZlICYmIGNvbnRleHQubGVuZ3RoID4gbGltaXQpIHtcbiAgICAgIGNvbnN0IGRhdGEgPSBjb250ZXh0LmZpbmQoaXRlbSA9PiBpdGVtLmFjdGl2YXRlZCk7XG4gICAgICByZXR1cm4gZGF0YSA/IFsuLi52YWx1ZXMuc2xpY2UoMCwgbGltaXQgLSAxKSwgZGF0YV0gOiB2YWx1ZXM7XG4gICAgfVxuICAgIHJldHVybiB2YWx1ZXM7XG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IGRlZmF1bHRQb2ludEZvcm1hdCA9IHBvaW50Rm9ybWF0O1xuXG4gIHByaXZhdGUgY29udmVyc2lvbk1heGltdW0odmFsdWU6IG51bWJlcikge1xuICAgIGNvbnN0IHVuaXQgPSAnayc7XG4gICAgaWYgKHZhbHVlID49IDEwMDApIHtcbiAgICAgIGNvbnN0IG51bSA9ICsodmFsdWUgLyAxMDAwKS50b0ZpeGVkKDIpO1xuICAgICAgcmV0dXJuIGAke251bX0ke3VuaXR9YDtcbiAgICB9XG4gICAgcmV0dXJuICcnICsgdmFsdWU7XG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IHRpdGxlRm9ybWF0dGVyID0gKGNvbnRleHQ6IFRvb2x0aXBDb250ZXh0KSA9PiB7XG4gICAgdGhpcy50b29sdGlwVGl0bGVDb250ZXh0ID0geyBjb250ZXh0IH07XG4gICAgY29uc3QgdGl0bGUgPVxuICAgICAgdGhpcy50b29sdGlwVHJhbnNsYXRpb24gJiYgIXRoaXMudG9vbHRpcFRpdGxlVGVtcGxhdGVcbiAgICAgICAgPyB0aGlzLnRyYW5zbGF0ZS5nZXQoY29udGV4dC50aXRsZSBhcyBzdHJpbmcpIHx8IGNvbnRleHQudGl0bGVcbiAgICAgICAgOiBjb250ZXh0LnRpdGxlO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIHJldHVybiB0aGlzLnRvb2x0aXBUaXRsZVRlbXBsYXRlXG4gICAgICA/IHRoaXMudG9vbHRpcFRpdGxlVmlydHVhbC5uYXRpdmVFbGVtZW50LmlubmVySFRNTFxuICAgICAgOiBoYW5kbGVEYXRlRm9ybWF0KHRpdGxlKTtcbiAgfTtcblxuICBwcml2YXRlIHJlYWRvbmx5IHZhbHVlRm9ybWF0dGVyID0gKHZhbHVlOiBUb29sdGlwQ29udGV4dEl0ZW0pID0+IHtcbiAgICBjb25zdCByZXMgPSB0aGlzLnRvb2x0aXBQb2ludEZvcm1hdFxuICAgICAgPyB0aGlzLnRvb2x0aXBQb2ludEZvcm1hdCh2YWx1ZSlcbiAgICAgIDogdGhpcy5kZWZhdWx0UG9pbnRGb3JtYXQodmFsdWUueSk7XG4gICAgcmV0dXJuIHRoaXMuaGlkZVRvb2x0aXBVbml0ICYmICF0aGlzLnVuaXRcbiAgICAgID8gKHJlcyBhcyBzdHJpbmcpXG4gICAgICA6IGAke3Jlc30gJHt0aGlzLnRyYW5zbGF0ZS5nZXQodGhpcy51bml0KX1gO1xuICB9O1xufVxuIiwiPGRpdlxuICBjbGFzcz1cImFjLWNoYXJ0XCJcbiAgW2NsYXNzLmFjLW5vbi1jaGFydF09XCJjaGFydFR5cGUgPT09ICdwaWUnXCJcbiAgW2NsYXNzLmFjLWJhcl09XCJjaGFydFR5cGUgPT09ICdiYXInXCJcbiAgW3N0eWxlLmJhY2tncm91bmRdPVwiYmFja2dyb3VuZFwiXG4+XG4gIDxkaXZcbiAgICAjY2hhcnRDb250YWluZXJcbiAgICBjbGFzcz1cImFjLWNoYXJ0LWNvbnRhaW5lciB0dy13LWZ1bGwgdHctaC1mdWxsXCJcbiAgPjwvZGl2PlxuXG4gIDxkaXZcbiAgICBjbGFzcz1cImFjLWNoYXJ0LXN0YXR1c1wiXG4gICAgKm5nSWY9XCJzdGF0dXMkIHwgYXN5bmMgYXMgc3RhdHVzXCJcbiAgPlxuICAgIDxkaXZcbiAgICAgICpuZ0lmPVwic3RhdHVzLmZhaWxlZCAmJiAhc3RhdHVzLmxvYWRpbmdcIlxuICAgICAgY2xhc3M9XCJzdGF0dXMgZmFpbGVkXCJcbiAgICA+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY3VzdG9tRXJyb3JDb250YWluZXI7IGVsc2Ugbm9DdXN0b21FcnJvckNvbnRhaW5lclwiPlxuICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImN1c3RvbUVycm9yQ29udGFpbmVyXCI+PC9uZy1jb250YWluZXI+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjbm9DdXN0b21FcnJvckNvbnRhaW5lcj5cbiAgICAgICAgPGF1aS1pY29uXG4gICAgICAgICAgaWNvbj1cImV4Y2xhbWF0aW9uX3RyaWFuZ2xlX3NcIlxuICAgICAgICAgIGJhY2tncm91bmQ9XCJ0cmlhbmdsZVwiXG4gICAgICAgID48L2F1aS1pY29uPlxuICAgICAgICB7eyAnZmFpbGVkX2xvYWRfcGxlYXNlJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgYXVpLWJ1dHRvbj1cInRleHRcIlxuICAgICAgICAgIChjbGljayk9XCJyZWZyZXNoKClcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgKCdyZWZyZXNoJyB8IHRyYW5zbGF0ZSkudG9Mb3dlckNhc2UoKSB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9kaXY+XG4gICAgPGRpdlxuICAgICAgKm5nSWY9XCJzdGF0dXMubG9hZGluZ1wiXG4gICAgICBjbGFzcz1cInN0YXR1cyBsb2FkaW5nXCJcbiAgICA+XG4gICAgICA8YXVpLWljb24gaWNvbj1cInNwaW5uZXJcIj48L2F1aS1pY29uPiB7eyAnbG9hZGluZycgfCB0cmFuc2xhdGUgfX1cbiAgICA8L2Rpdj5cbiAgICA8ZGl2XG4gICAgICAqbmdJZj1cInN0YXR1cy5ub0xlZ2VuZCAmJiAhc3RhdHVzLmxvYWRpbmdcIlxuICAgICAgY2xhc3M9XCJzdGF0dXMgbm8tbGVnZW5kXCJcbiAgICA+XG4gICAgICB7eyAnbm9faW5kaWNhdG9yX3NlbGVjdGVkJyB8IHRyYW5zbGF0ZSB9fVxuICAgIDwvZGl2PlxuXG4gICAgPGRpdlxuICAgICAgKm5nSWY9XCJzdGF0dXMubm9EYXRhICYmICFzdGF0dXMubG9hZGluZyAmJiAhc3RhdHVzLmZhaWxlZFwiXG4gICAgICBjbGFzcz1cInN0YXR1cyBuby1kYXRhXCJcbiAgICA+XG4gICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgY3VzdG9tTm9EYXRhVGl0bGUgJiYgaXNUZW1wbGF0ZVJlZihjdXN0b21Ob0RhdGFUaXRsZSk7XG4gICAgICAgICAgZWxzZSBub0RhdGFUaXRsZVRlbXBsYXRlXG4gICAgICAgIFwiXG4gICAgICA+XG4gICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiY3VzdG9tTm9EYXRhVGl0bGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLXRlbXBsYXRlICNub0RhdGFUaXRsZVRlbXBsYXRlPlxuICAgICAgICB7eyBjdXN0b21Ob0RhdGFUaXRsZSB8fCAoJ25vX2RhdGEnIHwgdHJhbnNsYXRlKSB9fVxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPCEtLSB0aXRsZSBUZW1wbGF0ZSAtLT5cbjxuZy10ZW1wbGF0ZSAjdGl0bGVDb250YWluZXI+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc1RlbXBsYXRlUmVmKHRpdGxlKTsgZWxzZSBUaXRsZVRlbXBsYXRlXCI+XG4gICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJ0aXRsZVwiPjwvbmctY29udGFpbmVyPlxuICA8L25nLWNvbnRhaW5lcj5cblxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNUZW1wbGF0ZVJlZih0aXRsZURlc2NyaXB0aW9uKTsgZWxzZSBUaXRsZURlc1RlbXBsYXRlXCI+XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwidGl0bGVEZXNjcmlwdGlvblwiXG4gICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwidGl0bGVEZXNjcmlwdGlvbkNvbnRleHRcIlxuICAgID48L25nLWNvbnRhaW5lcj5cbiAgPC9uZy1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI1RpdGxlVGVtcGxhdGU+XG4gIHt7IHRpdGxlIH19XG4gIHt7IHVuaXQgPyAnKCcgKyAodW5pdCB8IHRyYW5zbGF0ZSkgKyAnKScgOiAnJyB9fVxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNUaXRsZURlc1RlbXBsYXRlPlxuICB7eyB0aXRsZURlc2NyaXB0aW9uIH19XG48L25nLXRlbXBsYXRlPlxuXG48IS0tIHRvb2x0aXAgdGVtcGxhdGUgLS0+XG48ZGl2XG4gICN0b29sdGlwSXRlbVZpcnR1YWxcbiAgY2xhc3M9XCJoaWRlXCJcbj5cbiAgPG5nLWNvbnRhaW5lclxuICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRvb2x0aXBQb2ludFRlbXBsYXRlXCJcbiAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwidG9vbHRpcEl0ZW1Db250ZXh0XCJcbiAgPjwvbmctY29udGFpbmVyPlxuPC9kaXY+XG5cbjxkaXZcbiAgI3Rvb2x0aXBUaXRsZVZpcnR1YWxcbiAgY2xhc3M9XCJoaWRlXCJcbj5cbiAgPG5nLWNvbnRhaW5lclxuICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRvb2x0aXBUaXRsZVRlbXBsYXRlXCJcbiAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwidG9vbHRpcFRpdGxlQ29udGV4dFwiXG4gID48L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuXG48ZGl2XG4gICN0b29sdGlwTmFtZVZpcnR1YWxcbiAgY2xhc3M9XCJoaWRlXCJcbj5cbiAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJ0b29sdGlwUG9pbnROYW1lVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI3BpZUxhYmVsQ29udGFpbmVyPlxuICA8bmctY29udGFpbmVyXG4gICAgKm5nSWY9XCJwaWVMYWJlbFRleHQgJiYgaXNUZW1wbGF0ZVJlZihwaWVMYWJlbFRleHQpOyBlbHNlIHN0cmluZ1BpZUxhYmVsVGV4dFwiXG4gID5cbiAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInBpZUxhYmVsVGV4dFwiPjwvbmctY29udGFpbmVyPlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPG5nLXRlbXBsYXRlICNzdHJpbmdQaWVMYWJlbFRleHQ+XG4gICAge3sgcGllTGFiZWxUZXh0IH19XG4gIDwvbmctdGVtcGxhdGU+XG48L25nLXRlbXBsYXRlPlxuIl19
835
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ViewChartComponent, { className: "ViewChartComponent" }); })();
836
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy1jaGFydC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvdmlldy1jaGFydC92aWV3LWNoYXJ0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy92aWV3LWNoYXJ0L3ZpZXctY2hhcnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFLTCxLQUFLLEVBTUwsV0FBVyxFQUNYLFNBQVMsR0FJVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQzNDLE9BQU8sRUFDTCxlQUFlLEVBQ2YsZUFBZSxFQUNmLGNBQWMsR0FDZixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFFTCxjQUFjLEVBQ2QsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1Qsd0JBQXdCLEVBRXhCLFVBQVUsRUFFVixZQUFZLEVBQ1osUUFBUSxFQUNSLEtBQUssRUFHTCxNQUFNLEVBRU4sV0FBVyxFQUNYLFNBQVMsRUFDVCxnQkFBZ0IsR0FDakIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFzQyxVQUFVLEVBQUUsTUFBTSxJQUFJLENBQUM7QUFDcEUsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzFCLE9BQU8sRUFDTCxlQUFlLEVBQ2YsR0FBRyxFQUNILFVBQVUsRUFDVixPQUFPLEVBQ1AsU0FBUyxFQUNULEdBQUcsRUFDSCxhQUFhLEVBQ2IsU0FBUyxHQUNWLE1BQU0sTUFBTSxDQUFDO0FBRWQsT0FBTyxFQUtMLGdCQUFnQixFQUNoQixlQUFlLEVBQ2YsV0FBVyxFQUNYLFVBQVUsRUFFVixnQkFBZ0IsRUFDaEIsU0FBUyxHQUVWLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7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QixLQUFLO1lBQ0csZ0JBQWdCO2tCQUF4QixLQUFLO1lBTU4sV0FBVyxNQUVGLFVBQVU7a0JBQWxCLEtBQUs7WUFHTixXQUFXLE1BR1gsWUFBWSxNQUVGLFlBQVk7a0JBQXJCLE1BQU07WUFFRyxjQUFjO2tCQUF2QixNQUFNO1lBRUcsWUFBWTtrQkFBckIsTUFBTTs7a0ZBdE5JLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFDaGFydCxcbiAgQXJlYVNlcmllc09wdGlvbixcbiAgQmFyQ29sdW1uUGFyYW1zLFxuICBCYXJTZXJpZXNPcHRpb24sXG4gIENoYXJ0LFxuICBDaGFydERhdGEsXG4gIExpbmVTZXJpZXNPcHRpb24sXG4gIFZpZXdPcHRpb25zLFxuICBQZXJjZW50YWdlLFxuICBQaWVTZXJpZXNPcHRpb24sXG4gIFJFQ1RfRVZFTlRTLFxuICBTY2FsZVR5cGUsXG4gIFRvb2x0aXBDb250ZXh0LFxuICBUb29sdGlwQ29udGV4dEl0ZW0sXG4gIFZpZXcsXG59IGZyb20gJ0BhbGF1ZGEvY2hhcnQnO1xuaW1wb3J0IHsgaXNUZW1wbGF0ZVJlZiB9IGZyb20gJ0BhbGF1ZGEvdWknO1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50UG9ydGFsLFxuICBEb21Qb3J0YWxPdXRsZXQsXG4gIFRlbXBsYXRlUG9ydGFsLFxufSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIEFwcGxpY2F0aW9uUmVmLFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICBDb21wb25lbnRSZWYsXG4gIEVsZW1lbnRSZWYsXG4gIEVtYmVkZGVkVmlld1JlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbmplY3RvcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdDb250YWluZXJSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ3VydmVGYWN0b3J5LCBDdXJ2ZUZhY3RvcnlMaW5lT25seSwgdGltZUZvcm1hdCB9IGZyb20gJ2QzJztcbmltcG9ydCBkYXlqcyBmcm9tICdkYXlqcyc7XG5pbXBvcnQge1xuICBCZWhhdmlvclN1YmplY3QsXG4gIG1hcCxcbiAgT2JzZXJ2YWJsZSxcbiAgU3ViamVjdCxcbiAgdGFrZVVudGlsLFxuICB0YXAsXG4gIGNvbWJpbmVMYXRlc3QsXG4gIHN0YXJ0V2l0aCxcbn0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7XG4gIEFyZWFQb3NpdGlvbixcbiAgQ2hhcnREYXRhSXRlbSxcbiAgQ2hhcnRTdGF0dXMsXG4gIENvbnRleHRJdGVtLFxuICBoYW5kbGVEYXRlRm9ybWF0LFxuICBPYnNlcnZhYmxlSW5wdXQsXG4gIHBvaW50Rm9ybWF0LFxuICBwdWJsaXNoUmVmLFxuICBTdHJpbmdNYXAsXG4gIFRyYW5zbGF0ZVNlcnZpY2UsXG4gIFZhbHVlSG9vayxcbiAgWFBsb3RMaW5lcyxcbn0gZnJvbSAnLi4vcHVibGljLWFwaSc7XG5cbmltcG9ydCB7IExlZ2VuZENvbXBvbmVudCB9IGZyb20gJy4vbGVnZW5kL2xlZ2VuZC5jb21wb25lbnQnO1xuXG5pbnRlcmZhY2UgWm9vbVBhcmFtcyB7XG4gIHg6IG51bWJlcjtcbiAgdmFsdWU6IHsgeDogbnVtYmVyOyB5OiBudW1iZXIgfTtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWNsLXZpZXctY2hhcnQnLFxuICB0ZW1wbGF0ZVVybDogJy4vdmlldy1jaGFydC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3ZpZXctY2hhcnQuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFZpZXdDaGFydENvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KCkgYmFja2dyb3VuZENvbG9yOiBzdHJpbmc7XG5cbiAgQElucHV0KCkgaGlkZUhlYWRlcjogYm9vbGVhbjtcblxuICBAVmlld0NoaWxkKCdjaGFydENvbnRhaW5lcicpIGNoYXJ0Q29udGFpbmVyOiBFbGVtZW50UmVmO1xuXG4gIEBWaWV3Q2hpbGQoJ3RpdGxlQ29udGFpbmVyJykgdGl0bGVDb250YWluZXI6IFRlbXBsYXRlUmVmPHVua25vd24+O1xuXG4gIEBWaWV3Q2hpbGQoJ3Rvb2x0aXBJdGVtVmlydHVhbCcpIHRvb2x0aXBJdGVtVmlydHVhbDogRWxlbWVudFJlZjtcblxuICBAVmlld0NoaWxkKCd0b29sdGlwVGl0bGVWaXJ0dWFsJykgdG9vbHRpcFRpdGxlVmlydHVhbDogRWxlbWVudFJlZjtcblxuICBAVmlld0NoaWxkKCd0b29sdGlwTmFtZVZpcnR1YWwnKSB0b29sdGlwTmFtZVZpcnR1YWw6IEVsZW1lbnRSZWY7XG5cbiAgQFZpZXdDaGlsZCgncGllTGFiZWxDb250YWluZXInKSBwaWVMYWJlbENvbnRhaW5lcjogVGVtcGxhdGVSZWY8dW5rbm93bj47XG5cbiAgQElucHV0KCkgbW9kZTogJ2NhcmQnIHwgJ2RlZmF1bHQnID0gJ2RlZmF1bHQnO1xuXG4gIEBJbnB1dCgpIGN1c3RvbU5vRGF0YVRpdGxlOiBUZW1wbGF0ZVJlZjx1bmtub3duPiB8IHN0cmluZztcblxuICBASW5wdXQoKSBjdXN0b21FcnJvckNvbnRhaW5lcjogVGVtcGxhdGVSZWY8dW5rbm93bj47XG5cbiAgQElucHV0KCkgbWFyZ2luTGVmdDogbnVtYmVyO1xuXG4gIEBJbnB1dCgpIGdyaWRPZmZzZXRUb3AgPSAwO1xuXG4gIEBJbnB1dCgpIHJvdGF0ZWQ6IGJvb2xlYW47XG5cbiAgLy8gYmFzZVxuICBASW5wdXQoKSBjaGFydFR5cGU6ICdsaW5lJyB8ICdhcmVhJyB8ICdiYXInIHwgJ3BpZScgfCAnc2NhdHRlcicgPSAnYXJlYSc7XG5cbiAgQElucHV0KCkgc2VyaWVzOiBDaGFydERhdGFbXTtcbiAgQE9ic2VydmFibGVJbnB1dCgpXG4gIHNlcmllcyQhOiBPYnNlcnZhYmxlPENoYXJ0RGF0YVtdPjtcblxuICBASW5wdXQoKSB4QWNjZXNzb3IgPSAoZDogQ2hhcnREYXRhSXRlbSkgPT4gZC54O1xuXG4gIEBJbnB1dCgpIHlBY2Nlc3NvciA9IChkOiBDaGFydERhdGFJdGVtKSA9PiBkLnk7XG5cbiAgQElucHV0KCkgdW5pdDogc3RyaW5nO1xuICBAT2JzZXJ2YWJsZUlucHV0KClcbiAgdW5pdCQhOiBPYnNlcnZhYmxlPHN0cmluZz47XG5cbiAgQFZhbHVlSG9vayhmdW5jdGlvbiAoXG4gICAgdGhpczogVmlld0NoYXJ0Q29tcG9uZW50LFxuICAgIGNvbnRleHRDYWxsYmFja0Z1bmN0aW9uOiAoY29udGV4dDogVmlldykgPT4gdm9pZCxcbiAgKSB7XG4gICAgaWYgKGNvbnRleHRDYWxsYmFja0Z1bmN0aW9uICYmICF0aGlzLm9wdGlvbnM/LmNvbnRleHRDYWxsYmFja0Z1bmN0aW9uKSB7XG4gICAgICB0aGlzLmNoYXJ0Py5zZXRPcHRpb25zKHsgY29udGV4dENhbGxiYWNrRnVuY3Rpb24gfSk7XG4gICAgfVxuICB9KVxuICBASW5wdXQoKVxuICBjb250ZXh0Q2FsbGJhY2tGdW5jdGlvbjogKGNvbnRleHQ6IFZpZXcpID0+IHZvaWQ7XG5cbiAgLy8gdGl0bGVcbiAgQElucHV0KCkgdGl0bGU6IHN0cmluZyB8IFRlbXBsYXRlUmVmPHVua25vd24+O1xuXG4gIEBJbnB1dCgpIGhpZGVUaXRsZTogYm9vbGVhbjtcblxuICBASW5wdXQoKSB0aXRsZURlc2NyaXB0aW9uOiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjx1bmtub3duPjtcblxuICBASW5wdXQoKSB0aXRsZURlc2NyaXB0aW9uQ29udGV4dDogU3RyaW5nTWFwO1xuXG4gIEBJbnB1dCgpIHRpdGxlT2Zmc2V0WDogbnVtYmVyO1xuXG4gIC8vIGxlZ2VuZFxuICBASW5wdXQoKSBoaWRlTGVnZW5kID0gZmFsc2U7XG5cbiAgQElucHV0KCkgbGVnZW5kVGVtcGxhdGU6IFRlbXBsYXRlUmVmPHVua25vd24+IHwgc3RyaW5nO1xuXG4gIC8vIGN1c3RvbSBsZWdlbmRcbiAgQElucHV0KCkgbGVmdE9wZXJhdGlvbjogVGVtcGxhdGVSZWY8dW5rbm93bj47XG5cbiAgQElucHV0KCkgbGVmdE9wZXJhdGlvbkNvbnRleHQ6IFN0cmluZ01hcDtcblxuICBAT2JzZXJ2YWJsZUlucHV0KClcbiAgbGVmdE9wZXJhdGlvbiQhOiBPYnNlcnZhYmxlPFRlbXBsYXRlUmVmPHVua25vd24+PjtcblxuICBASW5wdXQoKSByaWdodE9wZXJhdGlvbjogVGVtcGxhdGVSZWY8dW5rbm93bj47XG5cbiAgQE9ic2VydmFibGVJbnB1dCgpXG4gIHJpZ2h0T3BlcmF0aW9uJCE6IE9ic2VydmFibGU8VGVtcGxhdGVSZWY8dW5rbm93bj4+O1xuXG4gIEBJbnB1dCgpIGxlZ2VuZFNlbGVjdEFsbE9wZXJhdGlvbiA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpIGxlZ2VuZFNlbGVjdEFsbE5hbWU6IHN0cmluZztcblxuICAvLyBheGlzXG5cbiAgQElucHV0KCkgeUF4aXNUaWNrU3VmZml4OiBzdHJpbmc7XG5cbiAgQElucHV0KCkgZGF0ZUF4aXNMYWJlbEZvcm1hdHM6IHN0cmluZztcblxuICBASW5wdXQoKSB4QXhpc0xhYmVsVHJhbnNsYXRpb246IGJvb2xlYW47XG5cbiAgQElucHV0KCkgeFNjYWxlVHlwZTogU2NhbGVUeXBlO1xuXG4gIEBJbnB1dCgpIHhBeGlzVGlja0Zvcm1hdHRlcjogc3RyaW5nIHwgKCh2YWx1ZTogc3RyaW5nKSA9PiBzdHJpbmcpO1xuXG4gIEBJbnB1dCgpIHRpY2tzOiB1bmtub3duO1xuXG4gIEBJbnB1dCgpIHlBeGlzVGlja0Zvcm1hdHRlcjogc3RyaW5nIHwgKCh2YWx1ZTogbnVtYmVyKSA9PiBzdHJpbmcpO1xuXG4gIEBJbnB1dCgpIHlBeGlzTWluU3RlcD86IG51bWJlcjtcblxuICAvLyB0b29sdGlwXG4gIEBJbnB1dCgpIHRvb2x0aXBUcmlnZ2VyOiAnYXhpcycgfCAnaXRlbScgfCAnbm9uZSc7XG5cbiAgQElucHV0KCkgdG9vbHRpcEF1dG9Tb3J0ID0gZmFsc2U7XG5cbiAgQElucHV0KCkgdG9vbHRpcEhpZGVUaXRsZTogYm9vbGVhbjtcblxuICBASW5wdXQoKSB0b29sdGlwQ29sdW1uTGF5b3V0OiBib29sZWFuO1xuXG4gIEBJbnB1dCgpIHRvb2x0aXBUaXRsZVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcblxuICBASW5wdXQoKSB0b29sdGlwUG9pbnROYW1lVGVtcGxhdGU6IFRlbXBsYXRlUmVmPHVua25vd24+O1xuXG4gIEBJbnB1dCgpIHRvb2x0aXBUcmFuc2xhdGlvbjogYm9vbGVhbjtcblxuICBASW5wdXQoKSB0b29sdGlwVGl0bGVUcmFuc2xhdGlvbjogYm9vbGVhbjtcblxuICBASW5wdXQoKSBoaWRlVG9vbHRpcFVuaXQ6IGJvb2xlYW47XG5cbiAgQElucHV0KCkgdG9vbHRpcFBvaW50Rm9ybWF0OiAoZDogQ29udGV4dEl0ZW0pID0+IG51bWJlciB8IHN0cmluZztcblxuICBASW5wdXQoKSB0b29sdGlwUG9pbnRUZW1wbGF0ZTogVGVtcGxhdGVSZWY8dW5rbm93bj47XG5cbiAgQElucHV0KCkgdG9vbHRpcFBvaW50VGVtcGxhdGVDb250ZXh0OiB1bmtub3duO1xuXG4gIC8vIHNlcmllc1xuICBASW5wdXQoKSBiYW5kV2lkdGggPSAxMDtcblxuICBASW5wdXQoKSBtaW5IZWlnaHQ6IG51bWJlcjtcblxuICBASW5wdXQoKSBzdGVwTGluZTogYm9vbGVhbjtcblxuICBASW5wdXQoKSBjdXJ2ZVR5cGU6IEN1cnZlRmFjdG9yeSB8IEN1cnZlRmFjdG9yeUxpbmVPbmx5O1xuXG4gIEBJbnB1dCgpIGJhclR5cGU6ICdzdGFuZGFyZCcgfCAnc3RhY2tlZCcgPSAnc3RhbmRhcmQnO1xuXG4gIEBJbnB1dCgpIHN0YXJ0T3BhY2l0eTogbnVtYmVyO1xuXG4gIEBJbnB1dCgpIGVuZE9wYWNpdHk6IG51bWJlcjtcblxuICBASW5wdXQoKSBsaW5lV2lkdGg/OiBudW1iZXI7XG5cbiAgLy8gYmFyIHNlcmllc1xuICBASW5wdXQoKSBpc0dyb3VwOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpIGJhclJhZGl1czogbnVtYmVyO1xuXG4gIEBJbnB1dCgpIGNsb3NlUmFkaXVzTGFkZGVyOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpIGNvbHVtbkNsaWNrOiAoZGF0YTogQmFyQ29sdW1uUGFyYW1zKSA9PiB2b2lkO1xuXG4gIC8vIHpvb21cbiAgQElucHV0KCkgZW5hYmxlWm9vbTogYm9vbGVhbjtcblxuICBASW5wdXQoKSBjaGFydFN0YXR1czogQ2hhcnRTdGF0dXM7XG5cbiAgLy8gcGxvdCBsaW5lXG4gIEBJbnB1dCgpIHlQbG90TGluZXNIaWRlID0gZmFsc2U7XG5cbiAgQElucHV0KCkgeVBsb3RMaW5lczogVG9vbHRpcENvbnRleHQ7XG5cbiAgLy8gcGllXG4gIEBJbnB1dCgpIHBpZUlubmVyUmFkaXVzOiBudW1iZXIgfCBQZXJjZW50YWdlO1xuXG4gIEBJbnB1dCgpIHBpZU91dGVyUmFkaXVzOiBudW1iZXIgfCBQZXJjZW50YWdlO1xuXG4gIEBJbnB1dCgpIHBpZVN0YXJ0QW5nbGU6IG51bWJlcjtcblxuICBASW5wdXQoKSBwaWVFbmRBbmdsZTogbnVtYmVyO1xuXG4gIEBJbnB1dCgpIHBpZUJhY2tncm91bmRDb2xvcjogc3RyaW5nO1xuXG4gIEBJbnB1dCgpIHBpZVRvdGFsOiBudW1iZXI7XG5cbiAgQElucHV0KCkgcGllSW5uZXJEaXNjOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpIHBpZUxhYmVsVGV4dDogc3RyaW5nIHwgVGVtcGxhdGVSZWY8dW5rbm93bj47XG5cbiAgQElucHV0KCkgcGllTGFiZWxQb3NpdGlvbjogeyB4OiBzdHJpbmc7IHk6IHN0cmluZyB9O1xuXG4gIEBJbnB1dCgpIHBpZUl0ZW1TdHlsZT86IHtcbiAgICBib3JkZXJSYWRpdXM/OiBudW1iZXI7XG4gIH07XG5cbiAgLy8gc2NhdHRlclxuICBASW5wdXQoKSBzY2F0dGVyVHlwZTogJ2J1YmJsZSc7XG4gIEBJbnB1dCgpIHNjYXR0ZXJPcGFjaXR5OiBudW1iZXI7XG4gIEBJbnB1dCgpIHNjYXR0ZXJTaXplOiBudW1iZXI7XG4gIEBJbnB1dCgpIHNjYXR0ZXJUaHJlc2hvbGQ6IHtcbiAgICBtaW5TaXplOiBudW1iZXI7XG4gICAgbWF4U2l6ZTogbnVtYmVyO1xuICB9O1xuXG4gIEBPYnNlcnZhYmxlSW5wdXQoKVxuICB5UGxvdExpbmVzJCE6IE9ic2VydmFibGU8VG9vbHRpcENvbnRleHQ+O1xuXG4gIEBJbnB1dCgpIHhQbG90TGluZXM6IFhQbG90TGluZXM7XG5cbiAgQE9ic2VydmFibGVJbnB1dCgpXG4gIHhQbG90TGluZXMkITogT2JzZXJ2YWJsZTxYUGxvdExpbmVzPjtcblxuICBAT2JzZXJ2YWJsZUlucHV0KClcbiAgY2hhcnRTdGF0dXMkITogT2JzZXJ2YWJsZTxDaGFydFN0YXR1cz47XG5cbiAgQE91dHB1dCgpIG1vdXNlVXBFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8QXJlYVBvc2l0aW9uPigpO1xuXG4gIEBPdXRwdXQoKSBtYXJrQ2xpY2tFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8VG9vbHRpcENvbnRleHQ+KCk7XG5cbiAgQE91dHB1dCgpIHJlZnJlc2hFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IG9uRGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIF9jaGFydFN0YXR1cyQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxDaGFydFN0YXR1cz4oe1xuICAgIGxvYWRpbmc6IHRydWUsXG4gICAgbm9EYXRhOiBmYWxzZSxcbiAgICBmYWlsZWQ6IGZhbHNlLFxuICAgIG5vTGVnZW5kOiBmYWxzZSxcbiAgfSk7XG5cbiAgX3N0YXR1czogQ2hhcnRTdGF0dXMgPSB7fTtcblxuICBjaGFydDogQUNoYXJ0O1xuXG4gIGFyZWFQb3NpdGlvbjogQXJlYVBvc2l0aW9uID0ge1xuICAgIHgxOiAwLFxuICAgIHgyOiAwLFxuICAgIHN0YXJ0WDogMCxcbiAgICBlbmRYOiAwLFxuICB9O1xuXG4gIHN0YXR1cyQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLmNoYXJ0U3RhdHVzJCwgdGhpcy5fY2hhcnRTdGF0dXMkJF0pLnBpcGUoXG4gICAgbWFwKChbc3RhdHVzLCBfc3RhdHVzXSkgPT4gKHtcbiAgICAgIC4uLl9zdGF0dXMsXG4gICAgICAuLi5zdGF0dXMsXG4gICAgfSkpLFxuICAgIHRhcChzdGF0dXMgPT4gKHRoaXMuX3N0YXR1cyA9IHN0YXR1cykpLFxuICAgIHB1Ymxpc2hSZWYoKSxcbiAgKTtcblxuICBnZXQgYmFja2dyb3VuZCgpIHtcbiAgICByZXR1cm4gdGhpcy5iYWNrZ3JvdW5kQ29sb3I7XG4gIH1cblxuICBpc1RlbXBsYXRlUmVmID0gaXNUZW1wbGF0ZVJlZjtcblxuICBjdXN0b21MZWdlbmRSZWY6IENvbXBvbmVudFJlZjxMZWdlbmRDb21wb25lbnQ+O1xuXG4gIGN1c3RvbVRpdGxlUmVmOiBFbWJlZGRlZFZpZXdSZWY8dW5rbm93bj47XG5cbiAgY3VzdG9tUGllTGFiZWxUZXh0UmVmOiBFbWJlZGRlZFZpZXdSZWY8dW5rbm93bj47XG5cbiAgdG9vbHRpcEl0ZW1Db250ZXh0OiB7IGNvbnRleHQ6IFRvb2x0aXBDb250ZXh0SXRlbVtdIH0gPSB7IGNvbnRleHQ6IFtdIH07XG5cbiAgdG9vbHRpcFRpdGxlQ29udGV4dDogeyBjb250ZXh0OiBUb29sdGlwQ29udGV4dCB9ID0geyBjb250ZXh0OiBudWxsIH07XG5cbiAgZ2V0IHNlcmllc09wdGlvbnMoKSB7XG4gICAgY29uc3QgYmFyU2VyaWVzID0ge1xuICAgICAgc3RhY2s6IHRoaXMuYmFyVHlwZSA9PT0gJ3N0YWNrZWQnLFxuICAgICAgYmFuZHdpZHRoOiB0aGlzLmJhbmRXaWR0aCxcbiAgICAgIGlzR3JvdXA6IHRoaXMuaXNHcm91cCxcbiAgICAgIHJhZGl1czogdGhpcy5iYXJSYWRpdXMsXG4gICAgICBjbG9zZVJhZGl1c0xhZGRlcjogdGhpcy5jbG9zZVJhZGl1c0xhZGRlcixcbiAgICAgIGNvbHVtbkNsaWNrOiB0aGlzLmNvbHVtbkNsaWNrIHx8IG51bGwsXG4gICAgICBtaW5IZWlnaHQ6IHRoaXMubWluSGVpZ2h0LFxuICAgIH07XG4gICAgY29uc3QgbGluZVNlcmllcyA9IHtcbiAgICAgIHN0ZXA6IHRoaXMuc3RlcExpbmUsXG4gICAgICBjdXJ2ZVR5cGU6IHRoaXMuY3VydmVUeXBlLFxuICAgICAgbGluZVdpZHRoOiB0aGlzLmxpbmVXaWR0aCxcbiAgICB9O1xuICAgIGNvbnN0IGFyZWFTZXJpZXMgPSB7XG4gICAgICBjdXJ2ZVR5cGU6IHRoaXMuY3VydmVUeXBlLFxuICAgICAgc3RhcnRPcGFjaXR5OiB0aGlzLnN0YXJ0T3BhY2l0eSxcbiAgICAgIGVuZE9wYWNpdHk6IHRoaXMuZW5kT3BhY2l0eSxcbiAgICAgIGxpbmVXaWR0aDogdGhpcy5saW5lV2lkdGgsXG4gICAgfTtcblxuICAgIHN3aXRjaCAodGhpcy5jaGFydFR5cGUpIHtcbiAgICAgIGNhc2UgJ2Jhcic6IHtcbiAgICAgICAgcmV0dXJuIGJhclNlcmllcyBhcyBCYXJTZXJpZXNPcHRpb247XG4gICAgICB9XG4gICAgICBjYXNlICdsaW5lJzoge1xuICAgICAgICByZXR1cm4gbGluZVNlcmllcyBhcyBMaW5lU2VyaWVzT3B0aW9uO1xuICAgICAgfVxuICAgICAgY2FzZSAnYXJlYSc6IHtcbiAgICAgICAgcmV0dXJuIGFyZWFTZXJpZXMgYXMgQXJlYVNlcmllc09wdGlvbjtcbiAgICAgIH1cbiAgICAgIGNhc2UgJ3BpZSc6IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBpbm5lclJhZGl1czogdGhpcy5waWVJbm5lclJhZGl1cyxcbiAgICAgICAgICBvdXRlclJhZGl1czogdGhpcy5waWVPdXRlclJhZGl1cyxcbiAgICAgICAgICBzdGFydEFuZ2xlOiB0aGlzLnBpZVN0YXJ0QW5nbGUsXG4gICAgICAgICAgZW5kQW5nbGU6IHRoaXMucGllRW5kQW5nbGUsXG4gICAgICAgICAgYmFja2dyb3VuZENvbG9yOiB0aGlzLnBpZUJhY2tncm91bmRDb2xvciB8fCAndHJhbnNwYXJlbnQnLFxuICAgICAgICAgIHRvdGFsOiB0aGlzLnBpZVRvdGFsLFxuICAgICAgICAgIGxhYmVsOiB7XG4gICAgICAgICAgICBwb3NpdGlvbjoge1xuICAgICAgICAgICAgICB4OiB0aGlzLnBpZUxhYmVsUG9zaXRpb24/LnggfHwgJzUwJScsXG4gICAgICAgICAgICAgIHk6IHRoaXMucGllTGFiZWxQb3NpdGlvbj8ueSB8fCAnNTAlJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgICBpbm5lckRpc2M6IHRoaXMucGllSW5uZXJEaXNjLFxuICAgICAgICAgIGl0ZW1TdHlsZTogdGhpcy5waWVJdGVtU3R5bGUgfHwgeyBib3JkZXJSYWRpdXM6IHRoaXMuYmFuZFdpZHRoIC8gMiB9LFxuICAgICAgICB9IGFzIFBpZVNlcmllc09wdGlvbjtcbiAgICAgIH1cbiAgICAgIGNhc2UgJ3NjYXR0ZXInOiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgc2l6ZTogdGhpcy5zY2F0dGVyU2l6ZSxcbiAgICAgICAgICAuLi50aGlzLnNjYXR0ZXJUaHJlc2hvbGQsXG4gICAgICAgICAgdHlwZTogdGhpcy5zY2F0dGVyVHlwZSxcbiAgICAgICAgICBvcGFjaXR5OiB0aGlzLnNjYXR0ZXJPcGFjaXR5LFxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgZGVmYXVsdDoge1xuICAgICAgICByZXR1cm4ge307XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZ2V0IGlzQ2FyZE1vZGUoKSB7XG4gICAgcmV0dXJuIHRoaXMubW9kZSA9PT0gJ2NhcmQnO1xuICB9XG5cbiAgZ2V0IHNjYWxlVHlwZSgpIHtcbiAgICByZXR1cm4gdGhpcy54U2NhbGVUeXBlIHx8IFNjYWxlVHlwZS5USU1FO1xuICB9XG5cbiAgZ2V0IGlzU2NhbGVUaW1lKCkge1xuICAgIHJldHVybiB0aGlzLnNjYWxlVHlwZSA9PT0gU2NhbGVUeXBlLlRJTUU7XG4gIH1cblxuICBnZXQgb3B0aW9ucygpOiBWaWV3T3B0aW9ucyB7XG4gICAgY29uc3QgZGVmYXVsdFhBeGlzVGlja0Zvcm1hdHRlciA9IHRoaXMuaXNTY2FsZVRpbWVcbiAgICAgID8gKCkgPT4gdGltZUZvcm1hdCh0aGlzLmRhdGVBeGlzTGFiZWxGb3JtYXRzIHx8ICclSDolTScpXG4gICAgICA6IG51bGw7XG4gICAgY29uc3QgeEF4aXNUaWNrRm9ybWF0dGVyID1cbiAgICAgIHRoaXMueEF4aXNUaWNrRm9ybWF0dGVyIHx8IGRlZmF1bHRYQXhpc1RpY2tGb3JtYXR0ZXI7XG4gICAgcmV0dXJuIHtcbiAgICAgIGN1c3RvbUhlYWRlcjogdGhpcy5jaGFydFR5cGUgIT09ICdwaWUnLFxuICAgICAgdHlwZTogdGhpcy5zdGVwTGluZSA/ICdsaW5lJyA6IHRoaXMuY2hhcnRUeXBlLFxuICAgICAgb2Zmc2V0OiB7XG4gICAgICAgIHg6IHRoaXMubWFyZ2luTGVmdCxcbiAgICAgICAgeTogdGhpcy5pc0NhcmRNb2RlID8gNSA6IDAsXG4gICAgICB9LFxuICAgICAgcm90YXRlZDogdGhpcy5yb3RhdGVkLFxuICAgICAgdGl0bGU6IHtcbiAgICAgICAgdGV4dDogdGhpcy50aXRsZSBhcyBzdHJpbmcsXG4gICAgICAgIG9mZnNldFg6IHRoaXMudGl0bGVPZmZzZXRYLFxuICAgICAgICBoaWRlOiB0aGlzLmhpZGVUaXRsZSB8fCB0aGlzLmhpZGVIZWFkZXIsXG4gICAgICAgIGZvcm1hdHRlcjogKCkgPT4gJycsXG4gICAgICB9LFxuICAgICAgbGVnZW5kOiB7XG4gICAgICAgIGhpZGU6IHRoaXMuaGlkZUhlYWRlcixcbiAgICAgICAgZm9ybWF0dGVyOiAoKSA9PiAnJyxcbiAgICAgICAgb2Zmc2V0WTogdGhpcy5pc0NhcmRNb2RlID8gLTggOiAwLFxuICAgICAgICBpc01vdW50OiB0cnVlLFxuICAgICAgfSxcbiAgICAgIGdyaWQ6IHsgdG9wOiB0aGlzLmdyaWRPZmZzZXRUb3AgfHwgMCB9LFxuICAgICAgeUF4aXM6IHtcbiAgICAgICAgdGlja0Zvcm1hdHRlcjpcbiAgICAgICAgICB0aGlzLnlBeGlzVGlja0Zvcm1hdHRlciB8fFxuICAgICAgICAgICgodmFsdWU6IG51bWJlcikgPT5cbiAgICAgICAgICAgIGAke3RoaXMuY29udmVyc2lvbk1heGltdW0odmFsdWUpfSR7dGhpcy55QXhpc1RpY2tTdWZmaXggfHwgJyd9YCksXG4gICAgICAgIG1pblN0ZXA6IHRoaXMueUF4aXNNaW5TdGVwLFxuICAgICAgfSxcbiAgICAgIHhBeGlzOiB7XG4gICAgICAgIHR5cGU6IHRoaXMueFNjYWxlVHlwZSB8fCBTY2FsZVR5cGUuVElNRSxcbiAgICAgICAgdGlja0Zvcm1hdHRlcjogeEF4aXNUaWNrRm9ybWF0dGVyLFxuICAgICAgICB0aWNrczogdGhpcy50aWNrcyxcbiAgICAgIH0sXG4gICAgICB0b29sdGlwOiB7XG4gICAgICAgIGhpZGVUaXRsZTogdGhpcy50b29sdGlwSGlkZVRpdGxlLFxuICAgICAgICB0cmlnZ2VyOiB0aGlzLnRvb2x0aXBUcmlnZ2VyVHlwZSxcbiAgICAgICAgdGl0bGVGb3JtYXR0ZXI6IHRoaXMudGl0bGVGb3JtYXR0ZXIsXG4gICAgICAgIGl0ZW1Gb3JtYXR0ZXI6IChjb250ZXh0OiBUb29sdGlwQ29udGV4dEl0ZW1bXSkgPT4ge1xuICAgICAgICAgIHRoaXMudG9vbHRpcEl0ZW1Db250ZXh0ID0gdGhpcy5tZXJnZVBvaW50Q29udGV4dChjb250ZXh0KTtcbiAgICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgcmV0dXJuIHRoaXMudG9vbHRpcFBvaW50VGVtcGxhdGVcbiAgICAgICAgICAgID8gdGhpcy50b29sdGlwSXRlbVZpcnR1YWwubmF0aXZlRWxlbWVudC5pbm5lckhUTUxcbiAgICAgICAgICAgIDogdGhpcy50b29sdGlwSXRlbUNvbnRleHQuY29udGV4dDtcbiAgICAgICAgfSxcbiAgICAgICAgbmFtZUZvcm1hdHRlcjogKHsgbmFtZSB9KSA9PlxuICAgICAgICAgIHRoaXMudG9vbHRpcFRyYW5zbGF0aW9uID8gdGhpcy50cmFuc2xhdGUuZ2V0KG5hbWUpIDogbmFtZSxcbiAgICAgICAgdmFsdWVGb3JtYXR0ZXI6IHRoaXMudmFsdWVGb3JtYXR0ZXIsXG4gICAgICAgIHNvcnQ6IHRoaXMudG9vbHRpcEF1dG9Tb3J0ID8gKGEsIGIpID0+IGIueSAtIGEueSA6IG51bGwsXG4gICAgICB9LFxuICAgICAgc2VyaWVzT3B0aW9uOiB0aGlzLnNlcmllc09wdGlvbnMsXG4gICAgICB6b29tOiB7XG4gICAgICAgIGVuYWJsZWQ6IHRoaXMuZW5hYmxlWm9vbSxcbiAgICAgICAgb256b29tU3RhcnQ6IChkOiBab29tUGFyYW1zKSA9PiB7XG4gICAgICAgICAgdGhpcy5hcmVhUG9zaXRpb24ueDEgPSBkLng7XG4gICAgICAgICAgdGhpcy5hcmVhUG9zaXRpb24uc3RhcnRYID0gZC52YWx1ZS54O1xuICAgICAgICB9LFxuICAgICAgICBvbnpvb21FbmQ6IChkOiBab29tUGFyYW1zKSA9PiB7XG4gICAgICAgICAgdGhpcy5hcmVhUG9zaXRpb24ueDIgPSBkLng7XG4gICAgICAgICAgdGhpcy5hcmVhUG9zaXRpb24uZW5kWCA9IGQudmFsdWUueDtcbiAgICAgICAgICBjb25zdCB7IHN0YXJ0WCwgZW5kWCB9ID0gdGhpcy5hcmVhUG9zaXRpb247XG4gICAgICAgICAgaWYgKHN0YXJ0WCAhPT0gZW5kWCkge1xuICAgICAgICAgICAgdGhpcy5tb3VzZVVwRXZlbnQubmV4dCh0aGlzLmFyZWFQb3NpdGlvbik7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHhQbG90TGluZToge1xuICAgICAgICBjb2xvcjogJ3JlZCcsXG4gICAgICB9LFxuICAgICAgY29udGV4dENhbGxiYWNrRnVuY3Rpb246IHRoaXMuY29udGV4dENhbGxiYWNrRnVuY3Rpb24sXG4gICAgfTtcbiAgfVxuXG4gIGdldCB0b29sdGlwVHJpZ2dlclR5cGUoKSB7XG4gICAgcmV0dXJuIHRoaXMudG9vbHRpcFRyaWdnZXIgfHwgdGhpcy5nZXRUcmlnZ2VyVHlwZSgpO1xuICB9XG5cbiAgZ2V0VHJpZ2dlclR5cGUoKSB7XG4gICAgc3dpdGNoICh0aGlzLmNoYXJ0VHlwZSkge1xuICAgICAgY2FzZSAnbGluZSc6XG4gICAgICBjYXNlICdhcmVhJzpcbiAgICAgIGNhc2UgJ2Jhcic6IHtcbiAgICAgICAgcmV0dXJuICdheGlzJztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ3NjYXR0ZXInOiB7XG4gICAgICAgIHJldHVybiAnaXRlbSc7XG4gICAgICB9XG4gICAgICBjYXNlICdwaWUnOiB7XG4gICAgICAgIHJldHVybiAnbm9uZSc7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBjb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IGluamVjdG9yOiBJbmplY3RvcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFwcFJlZjogQXBwbGljYXRpb25SZWYsXG4gICAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcbiAgKSB7fVxuXG4gIG5nT25DaGFuZ2VzKHsgZW5hYmxlWm9vbSB9OiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGVuYWJsZVpvb20/LmN1cnJlbnRWYWx1ZSkge1xuICAgICAgdGhpcy5jaGFydD8uc2V0T3B0aW9ucyh7IHpvb206IHsgZW5hYmxlZDogdHJ1ZSB9IH0pO1xuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmNoYXJ0ID0gQ2hhcnQoe1xuICAgICAgY29udGFpbmVyOiB0aGlzLmNoYXJ0Q29udGFpbmVyLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAuLi50aGlzLm9wdGlvbnMsXG4gICAgICBkYXRhOiBbXSxcbiAgICB9KTtcbiAgICBjb21iaW5lTGF0ZXN0KFt0aGlzLnNlcmllcyQsIHRoaXMueFBsb3RMaW5lcyQucGlwZShzdGFydFdpdGgobnVsbCkpXSlcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm9uRGVzdHJveSQpKVxuICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6IChbZGF0YSwgcmVzXSkgPT4ge1xuICAgICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICB0aGlzLmNoYXJ0LnNldE9wdGlvbnMoe1xuICAgICAgICAgICAgICB0eXBlOlxuICAgICAgICAgICAgICAgIGRhdGEubGVuZ3RoID4gMyAmJiB0aGlzLmNoYXJ0VHlwZSA9PT0gJ2FyZWEnXG4gICAgICAgICAgICAgICAgICA/ICdsaW5lJ1xuICAgICAgICAgICAgICAgICAgOiB0aGlzLmNoYXJ0VHlwZSxcbiAgICAgICAgICAgICAgc2VyaWVzT3B0aW9uOiB7XG4gICAgICAgICAgICAgICAgbGluZVdpZHRoOiBkYXRhLmxlbmd0aCA+IDMgPyAxIDogdGhpcy5saW5lV2lkdGgsXG4gICAgICAgICAgICAgICAgYWN0aXZlTGluZVdpZHRoOiBkYXRhLmxlbmd0aCA+IDMgPyAyIDogMyxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgeUF4aXM6IHtcbiAgICAgICAgICAgICAgICAuLi50aGlzLm9wdGlvbnMueUF4aXMsXG4gICAgICAgICAgICAgICAgbWF4OiByZXM/LnZhbHVlIHx8IHRoaXMub3B0aW9ucy55QXhpcy5tYXgsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlcyA9IHRoaXMuaGFuZGVsRGF0YShkYXRhKTtcbiAgICAgICAgICAgIHRoaXMuY2hhcnQuZGF0YSh2YWx1ZXMpO1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMuYWRkQ3VzdG9tTGVnZW5kKHRoaXMuY2hhcnQuY2hhcnRVSWQpO1xuICAgICAgICAgICAgICB0aGlzLmFkZEN1c3RvbVRpdGxlKHRoaXMuY2hhcnQuY2hhcnRVSWQpO1xuICAgICAgICAgICAgICB0aGlzLmFkZFBpZUxhYmVsVGV4dCh0aGlzLmNoYXJ0LmNoYXJ0VUlkKTtcbiAgICAgICAgICAgIH0sIDApO1xuICAgICAgICAgICAgY29uc3QgbGVnZW5kSXRlbXMgPSB0aGlzLmNoYXJ0LmdldENvbnRyb2xsZXIoJ2xlZ2VuZCcpLmxlZ2VuZEl0ZW1zO1xuICAgICAgICAgICAgdGhpcy5oYW5kZWxDaGFydFN0YXR1cyh7XG4gICAgICAgICAgICAgIGxvYWRpbmc6IGZhbHNlLFxuICAgICAgICAgICAgICBub0xlZ2VuZDpcbiAgICAgICAgICAgICAgICBsZWdlbmRJdGVtcy5sZW5ndGggJiYgbGVnZW5kSXRlbXMuZXZlcnkoaXRlbSA9PiAhaXRlbS5hY3RpdmF0ZSksXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHJlcykge1xuICAgICAgICAgICAgdGhpcy5jaGFydD8udXBkYXRlWFBsb3RMaW5lKHJlcyk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgdGhpcy5jaGFydC5vbihSRUNUX0VWRU5UUy5DTElDSywgKHZhbHVlOiBUb29sdGlwQ29udGV4dCkgPT4ge1xuICAgICAgdGhpcy5tYXJrQ2xpY2tFdmVudC5uZXh0KHZhbHVlKTtcbiAgICAgIGlmICghdGhpcy55UGxvdExpbmVzSGlkZSAmJiB0aGlzLnlQbG90TGluZXMpIHtcbiAgICAgICAgdGhpcy5jaGFydC51cGRhdGVZUGxvdExpbmUoe1xuICAgICAgICAgIC4uLnZhbHVlLFxuICAgICAgICAgIHRpdGxlOiBkYXlqcyh2YWx1ZS50aXRsZSkuZm9ybWF0KCdZWVlZLU1NLUREIEhIOm1tOnNzJyksXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMueVBsb3RMaW5lcyQucGlwZSh0YWtlVW50aWwodGhpcy5vbkRlc3Ryb3kkKSkuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICBpZiAocmVzKSB7XG4gICAgICAgIHRoaXMuY2hhcnQudXBkYXRlWVBsb3RMaW5lKHtcbiAgICAgICAgICAuLi5yZXMsXG4gICAgICAgICAgdGl0bGU6IGRheWpzKHJlcy50aXRsZSkuZm9ybWF0KCdZWVlZLU1NLUREIEhIOm1tOnNzJyksXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgaGFuZGVsRGF0YShkYXRhOiBDaGFydERhdGFbXSkge1xuICAgIHJldHVybiBkYXRhLm1hcChkID0+ICh7XG4gICAgICAuLi5kLFxuICAgICAgdmFsdWVzOiBkLnZhbHVlcz8ubWFwKHYgPT4gKHtcbiAgICAgICAgLi4udixcbiAgICAgICAgeDogdGhpcy54QWNjZXNzb3IodiksXG4gICAgICAgIHk6IHRoaXMueUFjY2Vzc29yKHYpLFxuICAgICAgfSkpLFxuICAgIH0pKTtcbiAgfVxuXG4gIGFkZEN1c3RvbUxlZ2VuZChjaGFydFVJZDogc3RyaW5nKSB7XG4gICAgY29uc3QgZG9tID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihgLiR7Y2hhcnRVSWR9IC5hYy1sZWdlbmRgKTtcbiAgICBpZiAoIXRoaXMuY3VzdG9tTGVnZW5kUmVmICYmIGRvbSAmJiAhdGhpcy5oaWRlSGVhZGVyKSB7XG4gICAgICBjb25zdCBwID0gbmV3IENvbXBvbmVudFBvcnRhbChMZWdlbmRDb21wb25lbnQpO1xuICAgICAgY29uc3QgbyA9IG5ldyBEb21Qb3J0YWxPdXRsZXQoXG4gICAgICAgIGRvbSxcbiAgICAgICAgdGhpcy5jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gICAgICAgIHRoaXMuYXBwUmVmLFxuICAgICAgICB0aGlzLmluamVjdG9yLFxuICAgICAgKTtcbiAgICAgIHRoaXMuY3VzdG9tTGVnZW5kUmVmID0gcC5hdHRhY2gobyk7XG4gICAgICB0aGlzLmN1c3RvbUxlZ2VuZFJlZi5pbnN0YW5jZS5jaGFydCA9IHRoaXMuY2hhcnQ7XG4gICAgICB0aGlzLmN1c3RvbUxlZ2VuZFJlZi5pbnN0YW5jZS5zeW1ib2wgPSBbJ2JhcicsICdwaWUnLCAnc2NhdHRlciddLmluY2x1ZGVzKFxuICAgICAgICB0aGlzLmNoYXJ0VHlwZSxcbiAgICAgIClcbiAgICAgICAgPyAnY2lyY2xlJ1xuICAgICAgICA6ICdsaW5lJztcbiAgICAgIHRoaXMubGVmdE9wZXJhdGlvbiQucGlwZSh0YWtlVW50aWwodGhpcy5vbkRlc3Ryb3kkKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5jdXN0b21MZWdlbmRSZWYuaW5zdGFuY2UubGVmdE9wZXJhdGlvbiA9IHRoaXMubGVmdE9wZXJhdGlvbjtcbiAgICAgICAgdGhpcy5jdXN0b21MZWdlbmRSZWYuaW5zdGFuY2UubGVmdE9wZXJhdGlvbkNvbnRleHQgPVxuICAgICAgICAgIHRoaXMubGVmdE9wZXJhdGlvbkNvbnRleHQ7XG4gICAgICB9KTtcblxuICAgICAgdGhpcy5yaWdodE9wZXJhdGlvbiQucGlwZSh0YWtlVW50aWwodGhpcy5vbkRlc3Ryb3kkKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5jdXN0b21MZWdlbmRSZWYuaW5zdGFuY2UucmlnaHRPcGVyYXRpb24gPSB0aGlzLnJpZ2h0T3BlcmF0aW9uO1xuICAgICAgfSk7XG4gICAgICB0aGlzLmN1c3RvbUxlZ2VuZFJlZi5pbnN0YW5jZS5tb2RlID0gdGhpcy5tb2RlO1xuICAgICAgdGhpcy5jdXN0b21MZWdlbmRSZWYuaW5zdGFuY2UuaGlkZUxlZ2VuZCA9IHRoaXMuaGlkZUxlZ2VuZDtcbiAgICAgIHRoaXMuY3VzdG9tTGVnZW5kUmVmLmluc3RhbmNlLnNlbGVjdEFsbE5hbWUgPSB0aGlzLmxlZ2VuZFNlbGVjdEFsbE5hbWU7XG4gICAgICB0aGlzLmN1c3RvbUxlZ2VuZFJlZi5pbnN0YW5jZS5zZWxlY3RBbGxPcGVyYXRpb24gPVxuICAgICAgICB0aGlzLmxlZ2VuZFNlbGVjdEFsbE9wZXJhdGlvbjtcbiAgICAgIHRoaXMuY3VzdG9tTGVnZW5kUmVmLmluc3RhbmNlLnRlbXBsYXRlID0gdGhpcy5sZWdlbmRUZW1wbGF0ZTtcbiAgICAgIHRoaXMuY3VzdG9tTGVnZW5kUmVmLmluc3RhbmNlLmNoYW5nZUxlZ2VuZFxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5vbkRlc3Ryb3kkKSlcbiAgICAgICAgLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgICAgIHRoaXMuaGFuZGVsQ2hhcnRTdGF0dXMoe1xuICAgICAgICAgICAgbm9MZWdlbmQ6IHJlcy5ldmVyeShpdGVtID0+ICFpdGVtLmFjdGl2YXRlKSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgYWRkQ3VzdG9tVGl0bGUoY2hhcnRVSWQ6IHN0cmluZykge1xuICAgIGNvbnN0IGRvbSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYC4ke2NoYXJ0VUlkfSAuYWMtdGl0bGVgKTtcbiAgICBpZiAoIXRoaXMuY3VzdG9tVGl0bGVSZWYgJiYgZG9tICYmICF0aGlzLmhpZGVIZWFkZXIpIHtcbiAgICAgIGNvbnN0IHAgPSBuZXcgVGVtcGxhdGVQb3J0YWwodGhpcy50aXRsZUNvbnRhaW5lciwgdGhpcy52aWV3Q29udGFpbmVyUmVmKTtcbiAgICAgIGNvbnN0IG8gPSBuZXcgRG9tUG9ydGFsT3V0bGV0KFxuICAgICAgICBkb20sXG4gICAgICAgIHRoaXMuY29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgICAgICB0aGlzLmFwcFJlZixcbiAgICAgICAgdGhpcy5pbmplY3RvcixcbiAgICAgICk7XG4gICAgICB0aGlzLmN1c3RvbVRpdGxlUmVmID0gcC5hdHRhY2gobyk7XG4gICAgfVxuICB9XG5cbiAgYWRkUGllTGFiZWxUZXh0KGNoYXJ0VUlkOiBzdHJpbmcpIHtcbiAgICBjb25zdCBkb20gPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKGAuJHtjaGFydFVJZH0gLmFjLXBpZS1ndWlkZWApO1xuICAgIGlmICghdGhpcy5jdXN0b21QaWVMYWJlbFRleHRSZWYgJiYgZG9tICYmIHRoaXMucGllTGFiZWxUZXh0KSB7XG4gICAgICBjb25zdCBwID0gbmV3IFRlbXBsYXRlUG9ydGFsKFxuICAgICAgICB0aGlzLnBpZUxhYmVsQ29udGFpbmVyLFxuICAgICAgICB0aGlzLnZpZXdDb250YWluZXJSZWYsXG4gICAgICApO1xuICAgICAgY29uc3QgbyA9IG5ldyBEb21Qb3J0YWxPdXRsZXQoXG4gICAgICAgIGRvbSxcbiAgICAgICAgdGhpcy5jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gICAgICAgIHRoaXMuYXBwUmVmLFxuICAgICAgICB0aGlzLmluamVjdG9yLFxuICAgICAgKTtcbiAgICAgIHRoaXMuY3VzdG9tUGllTGFiZWxUZXh0UmVmID0gcC5hdHRhY2gobyk7XG4gICAgfVxuICB9XG5cbiAgcmVmcmVzaCgpIHtcbiAgICB0aGlzLnJlZnJlc2hFdmVudC5uZXh0KG51bGwpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5vbkRlc3Ryb3kkLm5leHQoKTtcbiAgICB0aGlzLmN1c3RvbUxlZ2VuZFJlZj8uZGVzdHJveSgpO1xuICB9XG5cbiAgcHJpdmF0ZSByZWFkb25seSBtZXJnZVBvaW50Q29udGV4dCA9IChjb250ZXh0OiBUb29sdGlwQ29udGV4dEl0ZW1bXSkgPT4gKHtcbiAgICBjb250ZXh0OiB0aGlzLmxpbWl0TWF4Q29udGV4dChjb250ZXh0KSxcbiAgICAuLi4odGhpcy50b29sdGlwUG9pbnRUZW1wbGF0ZUNvbnRleHQgYXMgU3RyaW5nTWFwKSxcbiAgfSk7XG5cbiAgcHJpdmF0ZSBoYW5kZWxDaGFydFN0YXR1cyhzdGF0dXM6IENoYXJ0U3RhdHVzKSB7XG4gICAgdGhpcy5fY2hhcnRTdGF0dXMkJC5uZXh0KHtcbiAgICAgIC4uLnN0YXR1cyxcbiAgICB9KTtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBwcml2YXRlIGxpbWl0TWF4Q29udGV4dChjb250ZXh0OiBUb29sdGlwQ29udGV4dEl0ZW1bXSwgbGltaXQgPSAxNSkge1xuICAgIGNvbnN0IHZhbHVlcyA9IGNvbnRleHQuc2xpY2UoMCwgbGltaXQpO1xuICAgIGNvbnN0IGV4aXN0QWN0aXZlID1cbiAgICAgIGNvbnRleHQuc29tZShpdGVtID0+IGl0ZW0uYWN0aXZhdGVkKSAmJiB2YWx1ZXMuc29tZShkID0+ICFkLmFjdGl2YXRlZCk7XG4gICAgaWYgKCFleGlzdEFjdGl2ZSAmJiBjb250ZXh0Lmxlbmd0aCA+IGxpbWl0KSB7XG4gICAgICBjb25zdCBkYXRhID0gY29udGV4dC5maW5kKGl0ZW0gPT4gaXRlbS5hY3RpdmF0ZWQpO1xuICAgICAgcmV0dXJuIGRhdGEgPyBbLi4udmFsdWVzLnNsaWNlKDAsIGxpbWl0IC0gMSksIGRhdGFdIDogdmFsdWVzO1xuICAgIH1cbiAgICByZXR1cm4gdmFsdWVzO1xuICB9XG5cbiAgcHJpdmF0ZSByZWFkb25seSBkZWZhdWx0UG9pbnRGb3JtYXQgPSBwb2ludEZvcm1hdDtcblxuICBwcml2YXRlIGNvbnZlcnNpb25NYXhpbXVtKHZhbHVlOiBudW1iZXIpIHtcbiAgICBjb25zdCB1bml0ID0gJ2snO1xuICAgIGlmICh2YWx1ZSA+PSAxMDAwKSB7XG4gICAgICBjb25zdCBudW0gPSArKHZhbHVlIC8gMTAwMCkudG9GaXhlZCgyKTtcbiAgICAgIHJldHVybiBgJHtudW19JHt1bml0fWA7XG4gICAgfVxuICAgIHJldHVybiAnJyArIHZhbHVlO1xuICB9XG5cbiAgcHJpdmF0ZSByZWFkb25seSB0aXRsZUZvcm1hdHRlciA9IChjb250ZXh0OiBUb29sdGlwQ29udGV4dCkgPT4ge1xuICAgIHRoaXMudG9vbHRpcFRpdGxlQ29udGV4dCA9IHsgY29udGV4dCB9O1xuICAgIGNvbnN0IHRpdGxlID1cbiAgICAgIHRoaXMudG9vbHRpcFRyYW5zbGF0aW9uICYmICF0aGlzLnRvb2x0aXBUaXRsZVRlbXBsYXRlXG4gICAgICAgID8gdGhpcy50cmFuc2xhdGUuZ2V0KGNvbnRleHQudGl0bGUgYXMgc3RyaW5nKSB8fCBjb250ZXh0LnRpdGxlXG4gICAgICAgIDogY29udGV4dC50aXRsZTtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICByZXR1cm4gdGhpcy50b29sdGlwVGl0bGVUZW1wbGF0ZVxuICAgICAgPyB0aGlzLnRvb2x0aXBUaXRsZVZpcnR1YWwubmF0aXZlRWxlbWVudC5pbm5lckhUTUxcbiAgICAgIDogaGFuZGxlRGF0ZUZvcm1hdCh0aXRsZSk7XG4gIH07XG5cbiAgcHJpdmF0ZSByZWFkb25seSB2YWx1ZUZvcm1hdHRlciA9ICh2YWx1ZTogVG9vbHRpcENvbnRleHRJdGVtKSA9PiB7XG4gICAgY29uc3QgcmVzID0gdGhpcy50b29sdGlwUG9pbnRGb3JtYXRcbiAgICAgID8gdGhpcy50b29sdGlwUG9pbnRGb3JtYXQodmFsdWUpXG4gICAgICA6IHRoaXMuZGVmYXVsdFBvaW50Rm9ybWF0KHZhbHVlLnkpO1xuICAgIHJldHVybiB0aGlzLmhpZGVUb29sdGlwVW5pdCAmJiAhdGhpcy51bml0XG4gICAgICA/IChyZXMgYXMgc3RyaW5nKVxuICAgICAgOiBgJHtyZXN9ICR7dGhpcy50cmFuc2xhdGUuZ2V0KHRoaXMudW5pdCl9YDtcbiAgfTtcbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJhYy1jaGFydFwiXG4gIFtjbGFzcy5hYy1ub24tY2hhcnRdPVwiY2hhcnRUeXBlID09PSAncGllJ1wiXG4gIFtjbGFzcy5hYy1iYXJdPVwiY2hhcnRUeXBlID09PSAnYmFyJ1wiXG4gIFtzdHlsZS5iYWNrZ3JvdW5kXT1cImJhY2tncm91bmRcIlxuPlxuICA8ZGl2XG4gICAgI2NoYXJ0Q29udGFpbmVyXG4gICAgY2xhc3M9XCJhYy1jaGFydC1jb250YWluZXIgdHctdy1mdWxsIHR3LWgtZnVsbFwiXG4gID48L2Rpdj5cblxuICA8ZGl2XG4gICAgY2xhc3M9XCJhYy1jaGFydC1zdGF0dXNcIlxuICAgICpuZ0lmPVwic3RhdHVzJCB8IGFzeW5jIGFzIHN0YXR1c1wiXG4gID5cbiAgICA8ZGl2XG4gICAgICAqbmdJZj1cInN0YXR1cy5mYWlsZWQgJiYgIXN0YXR1cy5sb2FkaW5nXCJcbiAgICAgIGNsYXNzPVwic3RhdHVzIGZhaWxlZFwiXG4gICAgPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImN1c3RvbUVycm9yQ29udGFpbmVyOyBlbHNlIG5vQ3VzdG9tRXJyb3JDb250YWluZXJcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJjdXN0b21FcnJvckNvbnRhaW5lclwiPjwvbmctY29udGFpbmVyPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8bmctdGVtcGxhdGUgI25vQ3VzdG9tRXJyb3JDb250YWluZXI+XG4gICAgICAgIDxhdWktaWNvblxuICAgICAgICAgIGljb249XCJleGNsYW1hdGlvbl90cmlhbmdsZV9zXCJcbiAgICAgICAgICBiYWNrZ3JvdW5kPVwidHJpYW5nbGVcIlxuICAgICAgICA+PC9hdWktaWNvbj5cbiAgICAgICAge3sgJ2ZhaWxlZF9sb2FkX3BsZWFzZScgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIGF1aS1idXR0b249XCJ0ZXh0XCJcbiAgICAgICAgICAoY2xpY2spPVwicmVmcmVzaCgpXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7ICgncmVmcmVzaCcgfCB0cmFuc2xhdGUpLnRvTG93ZXJDYXNlKCkgfX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvZGl2PlxuICAgIDxkaXZcbiAgICAgICpuZ0lmPVwic3RhdHVzLmxvYWRpbmdcIlxuICAgICAgY2xhc3M9XCJzdGF0dXMgbG9hZGluZ1wiXG4gICAgPlxuICAgICAgPGF1aS1pY29uIGljb249XCJzcGlubmVyXCI+PC9hdWktaWNvbj4ge3sgJ2xvYWRpbmcnIHwgdHJhbnNsYXRlIH19XG4gICAgPC9kaXY+XG4gICAgPGRpdlxuICAgICAgKm5nSWY9XCJzdGF0dXMubm9MZWdlbmQgJiYgIXN0YXR1cy5sb2FkaW5nXCJcbiAgICAgIGNsYXNzPVwic3RhdHVzIG5vLWxlZ2VuZFwiXG4gICAgPlxuICAgICAge3sgJ25vX2luZGljYXRvcl9zZWxlY3RlZCcgfCB0cmFuc2xhdGUgfX1cbiAgICA8L2Rpdj5cblxuICAgIDxkaXZcbiAgICAgICpuZ0lmPVwic3RhdHVzLm5vRGF0YSAmJiAhc3RhdHVzLmxvYWRpbmcgJiYgIXN0YXR1cy5mYWlsZWRcIlxuICAgICAgY2xhc3M9XCJzdGF0dXMgbm8tZGF0YVwiXG4gICAgPlxuICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgIGN1c3RvbU5vRGF0YVRpdGxlICYmIGlzVGVtcGxhdGVSZWYoY3VzdG9tTm9EYXRhVGl0bGUpO1xuICAgICAgICAgIGVsc2Ugbm9EYXRhVGl0bGVUZW1wbGF0ZVxuICAgICAgICBcIlxuICAgICAgPlxuICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImN1c3RvbU5vRGF0YVRpdGxlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjbm9EYXRhVGl0bGVUZW1wbGF0ZT5cbiAgICAgICAge3sgY3VzdG9tTm9EYXRhVGl0bGUgfHwgKCdub19kYXRhJyB8IHRyYW5zbGF0ZSkgfX1cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjwhLS0gdGl0bGUgVGVtcGxhdGUgLS0+XG48bmctdGVtcGxhdGUgI3RpdGxlQ29udGFpbmVyPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNUZW1wbGF0ZVJlZih0aXRsZSk7IGVsc2UgVGl0bGVUZW1wbGF0ZVwiPlxuICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwidGl0bGVcIj48L25nLWNvbnRhaW5lcj5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzVGVtcGxhdGVSZWYodGl0bGVEZXNjcmlwdGlvbik7IGVsc2UgVGl0bGVEZXNUZW1wbGF0ZVwiPlxuICAgIDxuZy1jb250YWluZXJcbiAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRpdGxlRGVzY3JpcHRpb25cIlxuICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInRpdGxlRGVzY3JpcHRpb25Db250ZXh0XCJcbiAgICA+PC9uZy1jb250YWluZXI+XG4gIDwvbmctY29udGFpbmVyPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNUaXRsZVRlbXBsYXRlPlxuICB7eyB0aXRsZSB9fVxuICB7eyB1bml0ID8gJygnICsgKHVuaXQgfCB0cmFuc2xhdGUpICsgJyknIDogJycgfX1cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjVGl0bGVEZXNUZW1wbGF0ZT5cbiAge3sgdGl0bGVEZXNjcmlwdGlvbiB9fVxuPC9uZy10ZW1wbGF0ZT5cblxuPCEtLSB0b29sdGlwIHRlbXBsYXRlIC0tPlxuPGRpdlxuICAjdG9vbHRpcEl0ZW1WaXJ0dWFsXG4gIGNsYXNzPVwiaGlkZVwiXG4+XG4gIDxuZy1jb250YWluZXJcbiAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJ0b29sdGlwUG9pbnRUZW1wbGF0ZVwiXG4gICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInRvb2x0aXBJdGVtQ29udGV4dFwiXG4gID48L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuXG48ZGl2XG4gICN0b29sdGlwVGl0bGVWaXJ0dWFsXG4gIGNsYXNzPVwiaGlkZVwiXG4+XG4gIDxuZy1jb250YWluZXJcbiAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJ0b29sdGlwVGl0bGVUZW1wbGF0ZVwiXG4gICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInRvb2x0aXBUaXRsZUNvbnRleHRcIlxuICA+PC9uZy1jb250YWluZXI+XG48L2Rpdj5cblxuPGRpdlxuICAjdG9vbHRpcE5hbWVWaXJ0dWFsXG4gIGNsYXNzPVwiaGlkZVwiXG4+XG4gIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwidG9vbHRpcFBvaW50TmFtZVRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNwaWVMYWJlbENvbnRhaW5lcj5cbiAgPG5nLWNvbnRhaW5lclxuICAgICpuZ0lmPVwicGllTGFiZWxUZXh0ICYmIGlzVGVtcGxhdGVSZWYocGllTGFiZWxUZXh0KTsgZWxzZSBzdHJpbmdQaWVMYWJlbFRleHRcIlxuICA+XG4gICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJwaWVMYWJlbFRleHRcIj48L25nLWNvbnRhaW5lcj5cbiAgPC9uZy1jb250YWluZXI+XG4gIDxuZy10ZW1wbGF0ZSAjc3RyaW5nUGllTGFiZWxUZXh0PlxuICAgIHt7IHBpZUxhYmVsVGV4dCB9fVxuICA8L25nLXRlbXBsYXRlPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -10,10 +10,10 @@ import { LegendComponent } from './legend/legend.component';
10
10
  import { ViewChartComponent } from './view-chart.component';
11
11
  import * as i0 from "@angular/core";
12
12
  import * as i1 from "@angular/common";
13
- import * as i2 from "@alauda/ui";
14
- import * as i3 from "../effect-directive/e2e-attribute-binding.directive";
15
- import * as i4 from "../translate/translate.pipe";
16
- import * as i5 from "@angular/forms";
13
+ import * as i2 from "@angular/forms";
14
+ import * as i3 from "@alauda/ui";
15
+ import * as i4 from "../effect-directive/e2e-attribute-binding.directive";
16
+ import * as i5 from "../translate/translate.pipe";
17
17
  export class ViewChartModule {
18
18
  static { this.ɵfac = function ViewChartModule_Factory(t) { return new (t || ViewChartModule)(); }; }
19
19
  static { this.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: ViewChartModule }); }
@@ -57,7 +57,5 @@ export class ViewChartModule {
57
57
  FormsModule,
58
58
  CheckboxModule,
59
59
  DropdownModule], exports: [ViewChartComponent] }); })();
60
- i0.ɵɵsetComponentScope(ViewChartComponent, [i1.NgIf, i1.NgTemplateOutlet, i2.IconComponent, i2.ButtonComponent, i3.E2eAttributeBindingDirective], [i1.AsyncPipe, i4.TranslatePipe]);
61
- i0.ɵɵsetComponentScope(LegendComponent, [i1.NgClass, i1.NgForOf, i1.NgIf, i1.NgTemplateOutlet, i1.NgSwitch, i1.NgSwitchCase, i5.NgControlStatus, i5.NgModel, i2.CheckboxComponent, i3.E2eAttributeBindingDirective, LegendDropdownComponent], [i4.TranslatePipe]);
62
- i0.ɵɵsetComponentScope(LegendDropdownComponent, [i1.NgIf, i1.NgTemplateOutlet, i2.IconComponent, i2.ButtonComponent, i2.TooltipDirective, i2.TooltipActiveDirective, i3.E2eAttributeBindingDirective], [i4.TranslatePipe]);
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy1jaGFydC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvdmlldy1jaGFydC92aWV3LWNoYXJ0Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsVUFBVSxFQUNWLGFBQWEsRUFDYixZQUFZLEVBQ1osY0FBYyxFQUNkLGNBQWMsR0FDZixNQUFNLFlBQVksQ0FBQztBQUNwQixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFN0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFMUQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDNUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzVELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7Ozs7O0FBa0I1RCxNQUFNLE9BQU8sZUFBZTtnRkFBZixlQUFlO21FQUFmLGVBQWU7dUVBZHhCLFlBQVk7WUFDWixXQUFXO1lBQ1gsZUFBZTtZQUNmLFVBQVU7WUFDVixZQUFZO1lBQ1osYUFBYTtZQUNiLFVBQVU7WUFDVixXQUFXO1lBQ1gsY0FBYztZQUNkLGNBQWM7O2lGQUtMLGVBQWU7Y0FoQjNCLFFBQVE7ZUFBQztnQkFDUixPQUFPLEVBQUU7b0JBQ1AsWUFBWTtvQkFDWixXQUFXO29CQUNYLGVBQWU7b0JBQ2YsVUFBVTtvQkFDVixZQUFZO29CQUNaLGFBQWE7b0JBQ2IsVUFBVTtvQkFDVixXQUFXO29CQUNYLGNBQWM7b0JBQ2QsY0FBYztpQkFDZjtnQkFDRCxZQUFZLEVBQUUsQ0FBQyxrQkFBa0IsRUFBRSxlQUFlLEVBQUUsdUJBQXVCLENBQUM7Z0JBQzVFLE9BQU8sRUFBRSxDQUFDLGtCQUFrQixDQUFDO2FBQzlCOzt3RkFDWSxlQUFlLG1CQUhYLGtCQUFrQixFQUFFLGVBQWUsRUFBRSx1QkFBdUIsYUFYekUsWUFBWTtRQUNaLFdBQVc7UUFDWCxlQUFlO1FBQ2YsVUFBVTtRQUNWLFlBQVk7UUFDWixhQUFhO1FBQ2IsVUFBVTtRQUNWLFdBQVc7UUFDWCxjQUFjO1FBQ2QsY0FBYyxhQUdOLGtCQUFrQjt1QkFEYixrQkFBa0I7dUJBQUUsZUFBZSw4S0FBRSx1QkFBdUI7dUJBQXZCLHVCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEljb25Nb2R1bGUsXG4gIFRvb2x0aXBNb2R1bGUsXG4gIEJ1dHRvbk1vZHVsZSxcbiAgQ2hlY2tib3hNb2R1bGUsXG4gIERyb3Bkb3duTW9kdWxlLFxufSBmcm9tICdAYWxhdWRhL3VpJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IENoYXJ0TW9kdWxlIH0gZnJvbSAnLi4vY2hhcnQvcHVibGljLWFwaSc7XG5pbXBvcnQgeyBDb3JlTW9kdWxlIH0gZnJvbSAnLi4vY29yZS9wdWJsaWMtYXBpJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJy4uL3RyYW5zbGF0ZS9wdWJsaWMtYXBpJztcblxuaW1wb3J0IHsgTGVnZW5kRHJvcGRvd25Db21wb25lbnQgfSBmcm9tICcuL2N1c3RvbS10ZW1wbGF0ZS9kcm9wZG93bi1sZWdlbmQnO1xuaW1wb3J0IHsgTGVnZW5kQ29tcG9uZW50IH0gZnJvbSAnLi9sZWdlbmQvbGVnZW5kLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBWaWV3Q2hhcnRDb21wb25lbnQgfSBmcm9tICcuL3ZpZXctY2hhcnQuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBDaGFydE1vZHVsZSxcbiAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgSWNvbk1vZHVsZSxcbiAgICBCdXR0b25Nb2R1bGUsXG4gICAgVG9vbHRpcE1vZHVsZSxcbiAgICBDb3JlTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIENoZWNrYm94TW9kdWxlLFxuICAgIERyb3Bkb3duTW9kdWxlLFxuICBdLFxuICBkZWNsYXJhdGlvbnM6IFtWaWV3Q2hhcnRDb21wb25lbnQsIExlZ2VuZENvbXBvbmVudCwgTGVnZW5kRHJvcGRvd25Db21wb25lbnRdLFxuICBleHBvcnRzOiBbVmlld0NoYXJ0Q29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgVmlld0NoYXJ0TW9kdWxlIHt9XG4iXX0=
60
+ i0.ɵɵsetComponentScope(LegendComponent, [i1.NgClass, i1.NgForOf, i1.NgIf, i1.NgTemplateOutlet, i1.NgSwitch, i1.NgSwitchCase, i2.NgControlStatus, i2.NgModel, i3.CheckboxComponent, i4.E2eAttributeBindingDirective, LegendDropdownComponent], [i5.TranslatePipe]);
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy1jaGFydC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvdmlldy1jaGFydC92aWV3LWNoYXJ0Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsVUFBVSxFQUNWLGFBQWEsRUFDYixZQUFZLEVBQ1osY0FBYyxFQUNkLGNBQWMsR0FDZixNQUFNLFlBQVksQ0FBQztBQUNwQixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFN0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFMUQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDNUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzVELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7Ozs7O0FBa0I1RCxNQUFNLE9BQU8sZUFBZTtnRkFBZixlQUFlO21FQUFmLGVBQWU7dUVBZHhCLFlBQVk7WUFDWixXQUFXO1lBQ1gsZUFBZTtZQUNmLFVBQVU7WUFDVixZQUFZO1lBQ1osYUFBYTtZQUNiLFVBQVU7WUFDVixXQUFXO1lBQ1gsY0FBYztZQUNkLGNBQWM7O2lGQUtMLGVBQWU7Y0FoQjNCLFFBQVE7ZUFBQztnQkFDUixPQUFPLEVBQUU7b0JBQ1AsWUFBWTtvQkFDWixXQUFXO29CQUNYLGVBQWU7b0JBQ2YsVUFBVTtvQkFDVixZQUFZO29CQUNaLGFBQWE7b0JBQ2IsVUFBVTtvQkFDVixXQUFXO29CQUNYLGNBQWM7b0JBQ2QsY0FBYztpQkFDZjtnQkFDRCxZQUFZLEVBQUUsQ0FBQyxrQkFBa0IsRUFBRSxlQUFlLEVBQUUsdUJBQXVCLENBQUM7Z0JBQzVFLE9BQU8sRUFBRSxDQUFDLGtCQUFrQixDQUFDO2FBQzlCOzt3RkFDWSxlQUFlLG1CQUhYLGtCQUFrQixFQUFFLGVBQWUsRUFBRSx1QkFBdUIsYUFYekUsWUFBWTtRQUNaLFdBQVc7UUFDWCxlQUFlO1FBQ2YsVUFBVTtRQUNWLFlBQVk7UUFDWixhQUFhO1FBQ2IsVUFBVTtRQUNWLFdBQVc7UUFDWCxjQUFjO1FBQ2QsY0FBYyxhQUdOLGtCQUFrQjt1QkFETyxlQUFlLDhLQUFFLHVCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEljb25Nb2R1bGUsXG4gIFRvb2x0aXBNb2R1bGUsXG4gIEJ1dHRvbk1vZHVsZSxcbiAgQ2hlY2tib3hNb2R1bGUsXG4gIERyb3Bkb3duTW9kdWxlLFxufSBmcm9tICdAYWxhdWRhL3VpJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IENoYXJ0TW9kdWxlIH0gZnJvbSAnLi4vY2hhcnQvcHVibGljLWFwaSc7XG5pbXBvcnQgeyBDb3JlTW9kdWxlIH0gZnJvbSAnLi4vY29yZS9wdWJsaWMtYXBpJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJy4uL3RyYW5zbGF0ZS9wdWJsaWMtYXBpJztcblxuaW1wb3J0IHsgTGVnZW5kRHJvcGRvd25Db21wb25lbnQgfSBmcm9tICcuL2N1c3RvbS10ZW1wbGF0ZS9kcm9wZG93bi1sZWdlbmQnO1xuaW1wb3J0IHsgTGVnZW5kQ29tcG9uZW50IH0gZnJvbSAnLi9sZWdlbmQvbGVnZW5kLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBWaWV3Q2hhcnRDb21wb25lbnQgfSBmcm9tICcuL3ZpZXctY2hhcnQuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBDaGFydE1vZHVsZSxcbiAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgSWNvbk1vZHVsZSxcbiAgICBCdXR0b25Nb2R1bGUsXG4gICAgVG9vbHRpcE1vZHVsZSxcbiAgICBDb3JlTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIENoZWNrYm94TW9kdWxlLFxuICAgIERyb3Bkb3duTW9kdWxlLFxuICBdLFxuICBkZWNsYXJhdGlvbnM6IFtWaWV3Q2hhcnRDb21wb25lbnQsIExlZ2VuZENvbXBvbmVudCwgTGVnZW5kRHJvcGRvd25Db21wb25lbnRdLFxuICBleHBvcnRzOiBbVmlld0NoYXJ0Q29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgVmlld0NoYXJ0TW9kdWxlIHt9XG4iXX0=
@@ -1,5 +1,9 @@
1
1
  import { ChangeDetectionStrategy, Component, Input, TemplateRef, } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/common";
4
+ import * as i2 from "@alauda/ui";
5
+ import * as i3 from "../../effect-directive/e2e-attribute-binding.directive";
6
+ import * as i4 from "../../translate/translate.pipe";
3
7
  const _c0 = () => [];
4
8
  const _c1 = a0 => ({ data: a0 });
5
9
  function LegendDropdownComponent_ng_container_0_Template(rf, ctx) { if (rf & 1) {
@@ -55,7 +59,7 @@ export class LegendDropdownComponent {
55
59
  } if (rf & 2) {
56
60
  const elseTemplate_r4 = i0.ɵɵreference(2);
57
61
  i0.ɵɵproperty("ngIf", !ctx.isCard)("ngIfElse", elseTemplate_r4);
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{flex:1;color:rgb(var(--aui-color-secondary-text));overflow:hidden;word-wrap:normal;text-overflow:ellipsis} .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
+ } }, dependencies: [i1.NgIf, i1.NgTemplateOutlet, i2.IconComponent, i2.ButtonComponent, i2.TooltipDirective, i2.TooltipActiveDirective, i3.E2eAttributeBindingDirective, i4.TranslatePipe], 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{flex:1;color:rgb(var(--aui-color-secondary-text));overflow:hidden;word-wrap:normal;text-overflow:ellipsis} .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 }); }
59
63
  }
60
64
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(LegendDropdownComponent, [{
61
65
  type: Component,
@@ -109,5 +113,5 @@ export class LegendDropdownComponent {
109
113
  }], isCard: [{
110
114
  type: Input
111
115
  }] }); })();
112
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(LegendDropdownComponent, { className: "LegendDropdownComponent", filePath: "view-zchart/custom-template/dropdown-legend.ts", lineNumber: 56 }); })();
113
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tbGVnZW5kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL3ZpZXctemNoYXJ0L2N1c3RvbS10ZW1wbGF0ZS9kcm9wZG93bi1sZWdlbmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsS0FBSyxFQUNMLFdBQVcsR0FDWixNQUFNLGVBQWUsQ0FBQzs7Ozs7SUFPbkIsNkJBQWlEO0lBQy9DLDhCQVNZOzs7OztJQU5WLGNBQW1DO0lBQ25DLEFBREEsb0RBQW1DLDZFQUNEOzs7SUFRcEMsaUNBV0M7SUFDQyw4QkFBOEM7SUFDaEQsaUJBQVM7Ozs7SUFQUCxBQURBLEFBSEEsNkJBQWUsdUNBR29CLDZFQUNEOzs7SUFXcEMsNkJBQWtFO0lBQ2hFLDhCQUE2QjtJQUMzQiwyQkFBaUU7SUFDbkUsaUJBQU07Ozs7SUFEVSxlQUFtQztJQUFuQyx3REFBbUM7OztJQUluRCwrQkFBc0I7SUFBQSxZQUEyQjs7SUFBQSxpQkFBTzs7SUFBbEMsY0FBMkI7SUFBM0IscURBQTJCOzs7SUFEbkQsQUFMQSx3R0FBa0UsMEhBS3JDOzs7O0lBTGdCLEFBQTlCLDJEQUE4QiwrQkFBbUI7O0FBYXRFLE1BQU0sT0FBTyx1QkFBdUI7d0ZBQXZCLHVCQUF1QjtvRUFBdkIsdUJBQXVCO1lBZGhDLEFBakJBLEFBWkEsMEZBQWlELDRHQVl0Qiw0R0FpQlE7OztZQTdCTCxBQUFmLGtDQUFlLDZCQUFpQjs7O2lGQTJDdEMsdUJBQXVCO2NBOUNuQyxTQUFTOzJCQUNFLDBCQUEwQixZQUMxQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXdDVCxtQkFFZ0IsdUJBQXVCLENBQUMsTUFBTTtnQkFHdEMsSUFBSTtrQkFBWixLQUFLO1lBQ0csY0FBYztrQkFBdEIsS0FBSztZQUNHLE1BQU07a0JBQWQsS0FBSztZQUNHLE1BQU07a0JBQWQsS0FBSzs7a0ZBSkssdUJBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIFRlbXBsYXRlUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgTGVnZW5kSXRlbSB9IGZyb20gJy4uLy4uL2NoYXJ0L2NvbW1vbi9wdWJsaWMtYXBpJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWNsLXZpZXctbGVnZW5kLWRyb3Bkb3duJyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzQ2FyZDsgZWxzZSBlbHNlVGVtcGxhdGVcIj5cbiAgICAgIDxhdWktaWNvblxuICAgICAgICBjbGFzcz1cImJ0blwiXG4gICAgICAgIGljb249XCJwcm9kOmNoYXJ0X2xlZ2VuZFwiXG4gICAgICAgIFthdWlUb29sdGlwXT1cImRyb3Bkb3duSXRlbVRlbXBsYXRlXCJcbiAgICAgICAgW2F1aVRvb2x0aXBDb250ZXh0XT1cInsgZGF0YTogW10gfVwiXG4gICAgICAgIGF1aVRvb2x0aXBUeXBlPVwiaW5mb1wiXG4gICAgICAgIGF1aVRvb2x0aXBQb3NpdGlvbj1cImJvdHRvbSBlbmRcIlxuICAgICAgICBhdWlUb29sdGlwVHJpZ2dlcj1cImNsaWNrXCJcbiAgICAgICAgYXVpVG9vbHRpcEFjdGl2ZT1cImxlZ2VuZEFjdGl2ZVwiXG4gICAgICA+PC9hdWktaWNvbj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctdGVtcGxhdGUgI2Vsc2VUZW1wbGF0ZT5cbiAgICAgIDxidXR0b25cbiAgICAgICAgYXVpLWJ1dHRvblxuICAgICAgICBbc3F1YXJlXT1cInRydWVcIlxuICAgICAgICBjbGFzcz1cImJ0blwiXG4gICAgICAgIGljb249XCJwcm9kOmNoYXJ0X2xlZ2VuZFwiXG4gICAgICAgIFthdWlUb29sdGlwXT1cImRyb3Bkb3duSXRlbVRlbXBsYXRlXCJcbiAgICAgICAgW2F1aVRvb2x0aXBDb250ZXh0XT1cInsgZGF0YTogW10gfVwiXG4gICAgICAgIGF1aVRvb2x0aXBUeXBlPVwiaW5mb1wiXG4gICAgICAgIGF1aVRvb2x0aXBQb3NpdGlvbj1cImJvdHRvbSBlbmRcIlxuICAgICAgICBhdWlUb29sdGlwVHJpZ2dlcj1cImNsaWNrXCJcbiAgICAgICAgYXVpVG9vbHRpcEFjdGl2ZT1cImxlZ2VuZEFjdGl2ZVwiXG4gICAgICA+XG4gICAgICAgIDxhdWktaWNvbiBpY29uPVwicHJvZDpjaGFydF9sZWdlbmRcIj48L2F1aS1pY29uPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgIDxuZy10ZW1wbGF0ZSAjZHJvcGRvd25JdGVtVGVtcGxhdGU+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZGF0YS5sZW5ndGggJiYgIW5vRGF0YTsgZWxzZSBub0RhdGFUZW1wbGF0ZVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibGVnZW5kLXZlcnRpY2FsXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJsZWdlbmRUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLXRlbXBsYXRlICNub0RhdGFUZW1wbGF0ZT5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJuby1kYXRhXCI+e3sgJ25vX2RhdGEnIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L25nLXRlbXBsYXRlPlxuICBgLFxuICBzdHlsZVVybHM6IFsnLi9kcm9wZG93bi1sZWdlbmQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgTGVnZW5kRHJvcGRvd25Db21wb25lbnQge1xuICBASW5wdXQoKSBkYXRhOiBMZWdlbmRJdGVtW107XG4gIEBJbnB1dCgpIGxlZ2VuZFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcbiAgQElucHV0KCkgbm9EYXRhOiBib29sZWFuO1xuICBASW5wdXQoKSBpc0NhcmQ6IGJvb2xlYW47XG59XG4iXX0=
116
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(LegendDropdownComponent, { className: "LegendDropdownComponent" }); })();
117
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tbGVnZW5kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL3ZpZXctemNoYXJ0L2N1c3RvbS10ZW1wbGF0ZS9kcm9wZG93bi1sZWdlbmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsS0FBSyxFQUNMLFdBQVcsR0FDWixNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7O0lBT25CLDZCQUFpRDtJQUMvQyw4QkFTWTs7Ozs7SUFOVixjQUFtQztJQUNuQyxBQURBLG9EQUFtQyw2RUFDRDs7O0lBUXBDLGlDQVdDO0lBQ0MsOEJBQThDO0lBQ2hELGlCQUFTOzs7O0lBUFAsQUFEQSxBQUhBLDZCQUFlLHVDQUdvQiw2RUFDRDs7O0lBV3BDLDZCQUFrRTtJQUNoRSw4QkFBNkI7SUFDM0IsMkJBQWlFO0lBQ25FLGlCQUFNOzs7O0lBRFUsZUFBbUM7SUFBbkMsd0RBQW1DOzs7SUFJbkQsK0JBQXNCO0lBQUEsWUFBMkI7O0lBQUEsaUJBQU87O0lBQWxDLGNBQTJCO0lBQTNCLHFEQUEyQjs7O0lBRG5ELEFBTEEsd0dBQWtFLDBIQUtyQzs7OztJQUxnQixBQUE5QiwyREFBOEIsK0JBQW1COztBQWF0RSxNQUFNLE9BQU8sdUJBQXVCO3dGQUF2Qix1QkFBdUI7b0VBQXZCLHVCQUF1QjtZQWRoQyxBQWpCQSxBQVpBLDBGQUFpRCw0R0FZdEIsNEdBaUJROzs7WUE3QkwsQUFBZixrQ0FBZSw2QkFBaUI7OztpRkEyQ3RDLHVCQUF1QjtjQTlDbkMsU0FBUzsyQkFDRSwwQkFBMEIsWUFDMUI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F3Q1QsbUJBRWdCLHVCQUF1QixDQUFDLE1BQU07Z0JBR3RDLElBQUk7a0JBQVosS0FBSztZQUNHLGNBQWM7a0JBQXRCLEtBQUs7WUFDRyxNQUFNO2tCQUFkLEtBQUs7WUFDRyxNQUFNO2tCQUFkLEtBQUs7O2tGQUpLLHVCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBUZW1wbGF0ZVJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IExlZ2VuZEl0ZW0gfSBmcm9tICcuLi8uLi9jaGFydC9jb21tb24vcHVibGljLWFwaSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FjbC12aWV3LWxlZ2VuZC1kcm9wZG93bicsXG4gIHRlbXBsYXRlOiBgXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc0NhcmQ7IGVsc2UgZWxzZVRlbXBsYXRlXCI+XG4gICAgICA8YXVpLWljb25cbiAgICAgICAgY2xhc3M9XCJidG5cIlxuICAgICAgICBpY29uPVwicHJvZDpjaGFydF9sZWdlbmRcIlxuICAgICAgICBbYXVpVG9vbHRpcF09XCJkcm9wZG93bkl0ZW1UZW1wbGF0ZVwiXG4gICAgICAgIFthdWlUb29sdGlwQ29udGV4dF09XCJ7IGRhdGE6IFtdIH1cIlxuICAgICAgICBhdWlUb29sdGlwVHlwZT1cImluZm9cIlxuICAgICAgICBhdWlUb29sdGlwUG9zaXRpb249XCJib3R0b20gZW5kXCJcbiAgICAgICAgYXVpVG9vbHRpcFRyaWdnZXI9XCJjbGlja1wiXG4gICAgICAgIGF1aVRvb2x0aXBBY3RpdmU9XCJsZWdlbmRBY3RpdmVcIlxuICAgICAgPjwvYXVpLWljb24+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLXRlbXBsYXRlICNlbHNlVGVtcGxhdGU+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIGF1aS1idXR0b25cbiAgICAgICAgW3NxdWFyZV09XCJ0cnVlXCJcbiAgICAgICAgY2xhc3M9XCJidG5cIlxuICAgICAgICBpY29uPVwicHJvZDpjaGFydF9sZWdlbmRcIlxuICAgICAgICBbYXVpVG9vbHRpcF09XCJkcm9wZG93bkl0ZW1UZW1wbGF0ZVwiXG4gICAgICAgIFthdWlUb29sdGlwQ29udGV4dF09XCJ7IGRhdGE6IFtdIH1cIlxuICAgICAgICBhdWlUb29sdGlwVHlwZT1cImluZm9cIlxuICAgICAgICBhdWlUb29sdGlwUG9zaXRpb249XCJib3R0b20gZW5kXCJcbiAgICAgICAgYXVpVG9vbHRpcFRyaWdnZXI9XCJjbGlja1wiXG4gICAgICAgIGF1aVRvb2x0aXBBY3RpdmU9XCJsZWdlbmRBY3RpdmVcIlxuICAgICAgPlxuICAgICAgICA8YXVpLWljb24gaWNvbj1cInByb2Q6Y2hhcnRfbGVnZW5kXCI+PC9hdWktaWNvbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICA8bmctdGVtcGxhdGUgI2Ryb3Bkb3duSXRlbVRlbXBsYXRlPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRhdGEubGVuZ3RoICYmICFub0RhdGE7IGVsc2Ugbm9EYXRhVGVtcGxhdGVcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImxlZ2VuZC12ZXJ0aWNhbFwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwibGVnZW5kVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjbm9EYXRhVGVtcGxhdGU+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwibm8tZGF0YVwiPnt7ICdub19kYXRhJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgYCxcbiAgc3R5bGVVcmxzOiBbJy4vZHJvcGRvd24tbGVnZW5kLnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIExlZ2VuZERyb3Bkb3duQ29tcG9uZW50IHtcbiAgQElucHV0KCkgZGF0YTogTGVnZW5kSXRlbVtdO1xuICBASW5wdXQoKSBsZWdlbmRUZW1wbGF0ZTogVGVtcGxhdGVSZWY8dW5rbm93bj47XG4gIEBJbnB1dCgpIG5vRGF0YTogYm9vbGVhbjtcbiAgQElucHV0KCkgaXNDYXJkOiBib29sZWFuO1xufVxuIl19
@@ -260,5 +260,5 @@ export class LegendComponent {
260
260
  }], changeLegend: [{
261
261
  type: Output
262
262
  }] }); })();
263
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(LegendComponent, { className: "LegendComponent", filePath: "view-zchart/legend/legend.component.ts", lineNumber: 36 }); })();
263
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(LegendComponent, { className: "LegendComponent" }); })();
264
264
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGVnZW5kLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy92aWV3LXpjaGFydC9sZWdlbmQvbGVnZW5kLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy92aWV3LXpjaGFydC9sZWdlbmQvbGVnZW5kLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDM0MsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUVOLFdBQVcsR0FDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ2hDLE9BQU8sRUFBRSxLQUFLLEVBQXlCLFVBQVUsRUFBUSxNQUFNLFVBQVUsQ0FBQzs7Ozs7SUNkMUUsOEJBR0M7SUFDQywyQkFHZ0I7SUFDbEIsaUJBQU07OztJQUhGLGNBQWtDO0lBQ2xDLEFBREEsdURBQWtDLHdEQUNjOzs7SUFTaEQsK0NBUTJCOzs7O0lBRnpCLEFBREEsQUFEQSxBQURBLDJDQUFzQix5QkFDTCxxQ0FDZ0Isa0NBQ1A7OztJQUc1Qiw2QkFBK0M7SUFDN0MsNEJBQWlFOzs7OztJQUFuRCxjQUFtQztJQUFuQyxvREFBbUM7OztJQVhyRCw2QkFBNkM7SUFVM0MsQUFUQSwrSEFPQywyRkFFOEM7Ozs7SUFQNUMsY0FBOEI7SUFBOUIsc0RBQThCO0lBT2xCLGNBQThCO0lBQTlCLHNEQUE4Qjs7O0lBSzdDLDZCQUFvRTtJQUNsRSwyQkFHZ0I7Ozs7SUFGZCxjQUFtQztJQUNuQyxBQURBLGtEQUFtQyw2RUFDbUI7OztJQUt0RCwrQ0FRMkI7Ozs7SUFGekIsQUFEQSxBQURBLEFBREEsMkNBQXNCLHlCQUNMLHFDQUNn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QUFVO2tCQUFsQixLQUFLO1lBRUcsa0JBQWtCO2tCQUExQixLQUFLO1lBRUcsYUFBYTtrQkFBckIsS0FBSztZQUVHLEtBQUs7a0JBQWIsS0FBSztZQUVJLFlBQVk7a0JBQXJCLE1BQU07O2tGQXZCSSxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNUZW1wbGF0ZVJlZiB9IGZyb20gJ0BhbGF1ZGEvdWknO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFRlbXBsYXRlUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGdldCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBDaGFydCwgTGVnZW5kIGFzIENoYXJ0TGVnZW5kLCBDaGFydEV2ZW50LCBEYXRhIH0gZnJvbSAnenotY2hhcnQnO1xuXG5pbXBvcnQgeyBTdHJpbmdNYXAgfSBmcm9tICcuLi8uLi9jb3JlL3B1YmxpYy1hcGknO1xuXG5leHBvcnQgaW50ZXJmYWNlIExlZ2VuZEl0ZW0ge1xuICBuYW1lOiBzdHJpbmc7XG4gIGNvbG9yOiBzdHJpbmc7XG4gIGFjdGl2YXRlPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNsYXNzIExlZ2VuZFBheWxvYWQge1xuICBsZWdlbmQ6IExlZ2VuZEl0ZW07XG4gIHNvdXJjZTogTGVnZW5kSXRlbVtdO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhY2wtYmFzZS1sZWdlbmQnLFxuICB0ZW1wbGF0ZVVybDogJy4vbGVnZW5kLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbGVnZW5kLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBMZWdlbmRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIHN5bWJvbDogJ2NpcmNsZScgfCAnc3F1YXJlJyB8ICdsaW5lJyA9ICdsaW5lJztcblxuICBASW5wdXQoKSB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8dW5rbm93bj4gfCBzdHJpbmcgfCAnZHJvcGRvd24nO1xuXG4gIEBJbnB1dCgpIG1vZGU6ICdjYXJkJyB8ICdkZWZhdWx0JyA9ICdkZWZhdWx0JztcblxuICBASW5wdXQoKSB0cmFuc2xhdGlvbiA9IHRydWU7XG5cbiAgQElucHV0KCkgbGVmdE9wZXJhdGlvbjogVGVtcGxhdGVSZWY8dW5rbm93bj47XG5cbiAgQElucHV0KCkgbGVmdE9wZXJhdGlvbkNvbnRleHQ6IFN0cmluZ01hcDtcblxuICBASW5wdXQoKSByaWdodE9wZXJhdGlvbjogVGVtcGxhdGVSZWY8dW5rbm93bj47XG5cbiAgQElucHV0KCkgaGlkZUxlZ2VuZDogYm9vbGVhbjtcblxuICBASW5wdXQoKSBzZWxlY3RBbGxPcGVyYXRpb24gPSBmYWxzZTtcblxuICBASW5wdXQoKSBzZWxlY3RBbGxOYW1lOiBzdHJpbmc7XG5cbiAgQElucHV0KCkgY2hhcnQ6IENoYXJ0O1xuXG4gIEBPdXRwdXQoKSBjaGFuZ2VMZWdlbmQgPSBuZXcgRXZlbnRFbWl0dGVyPExlZ2VuZEl0ZW1bXT4oKTtcblxuICBnZXQgbm9EYXRhKCkge1xuICAgIHJldHVybiB0aGlzLmxlZ2VuZEVudHJpZXM/Lmxlbmd0aCA9PT0gMCB8fCAhdGhpcy5sZWdlbmRFbnRyaWVzO1xuICB9XG5cbiAgZ2V0IGxlZ2VuZEluc3RhbmNlKCk6IENoYXJ0TGVnZW5kIHtcbiAgICByZXR1cm4gdGhpcy5jaGFydD8uY29tcG9uZW50cy5nZXQoJ2xlZ2VuZCcpIGFzIENoYXJ0TGVnZW5kO1xuICB9XG5cbiAgZ2V0IGxlZ2VuZEl0ZW0oKTogTGVnZW5kSXRlbVtdIHtcbiAgICByZXR1cm4gKFxuICAgICAgKHRoaXMubGVnZW5kSW5zdGFuY2U/LmdldExlZ2VuZCgpIGFzIExlZ2VuZEl0ZW1bXSk/Lm1hcChsZWdlbmQgPT4gKHtcbiAgICAgICAgLi4ubGVnZW5kLFxuICAgICAgICBhY3RpdmF0ZTogdHJ1ZSxcbiAgICAgIH0pKSB8fCBbXVxuICAgICk7XG4gIH1cblxuICBsZWdlbmRFbnRyaWVzOiBMZWdlbmRJdGVtW10gPSBbXTtcblxuICBpc1RlbXBsYXRlUmVmID0gaXNUZW1wbGF0ZVJlZjtcblxuICBhbGxTZWxlY3RlZCA9IHRydWU7XG5cbiAgZ2V0IHN5bWJvbE5hbWUoKSB7XG4gICAgcmV0dXJuIGBzeW1ib2wtJHt0aGlzLnN5bWJvbH1gO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHVibGljIHJlYWRvbmx5IGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cbiAgbmdPbkNoYW5nZXMoeyBjaGFydCB9OiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYXJ0LmN1cnJlbnRWYWx1ZSkge1xuICAgICAgdGhpcy5sZWdlbmRFbnRyaWVzID0gdGhpcy5sZWdlbmRJdGVtO1xuICAgIH1cbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMubGVnZW5kRW50cmllcyA9IHRoaXMubGVnZW5kSXRlbTtcblxuICAgIHRoaXMuY2hhcnQ/Lm9uKENoYXJ0RXZlbnQuREFUQV9DSEFOR0UsIChkYXRhOiBEYXRhKSA9PiB7XG4gICAgICB0aGlzLmxlZ2VuZEVudHJpZXMgPSBkYXRhLnJlZHVjZShcbiAgICAgICAgKGFjYywgZCkgPT4gW1xuICAgICAgICAgIC4uLmFjYyxcbiAgICAgICAgICAuLi4oZC5uYW1lXG4gICAgICAgICAgICA/IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBuYW1lOiBkLm5hbWUsXG4gICAgICAgICAgICAgICAgICBjb2xvcjogZC5jb2xvcixcbiAgICAgICAgICAgICAgICAgIGFjdGl2YXRlOiAhdGhpcy5sZWdlbmRJbnN0YW5jZS5pbmFjdGl2YXRlZFNldC5oYXMoZC5uYW1lKSxcbiAgICAgICAgICAgICAgICAgIGhvdmVyOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgIHZhbHVlOiBkLnZhbHVlc1tkLnZhbHVlcz8ubGVuZ3RoIC0gMV0ueSxcbiAgICAgICAgICAgICAgICAgIHNvdXJjZTogZCxcbiAgICAgICAgICAgICAgICAgIHVuaXQ6IGdldChkLCAndW5pdCcpLFxuICAgICAgICAgICAgICAgICAgLi4uZCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBdXG4gICAgICAgICAgICA6IFtdKSxcbiAgICAgICAgXSxcbiAgICAgICAgW10sXG4gICAgICApO1xuICAgICAgaWYgKHRoaXMubGVnZW5kRW50cmllcy5sZW5ndGgpIHtcbiAgICAgICAgdGhpcy5jaGFuZ2VMZWdlbmQubmV4dCh0aGlzLmxlZ2VuZEVudHJpZXMpO1xuICAgICAgfVxuICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfSk7XG4gIH1cblxuICBzZWxlY3RlZChsZWdlbmQ6IExlZ2VuZEl0ZW0pIHtcbiAgICB0aGlzLmxlZ2VuZEluc3RhbmNlLmxlZ2VuZEl0ZW1DbGljayh7XG4gICAgICBuYW1lOiBsZWdlbmQubmFtZSxcbiAgICAgIGFjdGl2YXRlZDogIWxlZ2VuZC5hY3RpdmF0ZSxcbiAgICB9KTtcbiAgICBjb25zdCBsZWdlbmRJdGVtID0gdGhpcy5sZWdlbmRFbnRyaWVzLmZpbmQoXG4gICAgICBpdGVtID0+IGl0ZW0ubmFtZSA9PT0gbGVnZW5kLm5hbWUsXG4gICAgKTtcbiAgICBsZWdlbmRJdGVtLmFjdGl2YXRlID0gIWxlZ2VuZC5hY3RpdmF0ZTtcbiAgICB0aGlzLmNoYW5nZUxlZ2VuZC5uZXh0KHRoaXMubGVnZW5kRW50cmllcyk7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBhbGxTZWxlY3Qoc2VsZWN0OiBib29sZWFuKSB7XG4gICAgdGhpcy5sZWdlbmRFbnRyaWVzLmZvckVhY2gobGVnZW5kID0+IHtcbiAgICAgIHRoaXMubGVnZW5kSW5zdGFuY2UubGVnZW5kSXRlbUNsaWNrKHtcbiAgICAgICAgbmFtZTogbGVnZW5kLm5hbWUsXG4gICAgICAgIGFjdGl2YXRlZDogc2VsZWN0LFxuICAgICAgfSk7XG4gICAgICBsZWdlbmQuYWN0aXZhdGUgPSBzZWxlY3Q7XG4gICAgfSk7XG4gICAgdGhpcy5jaGFuZ2VMZWdlbmQubmV4dCh0aGlzLmxlZ2VuZEVudHJpZXMpO1xuICB9XG59XG4iLCI8ZGl2XG4gIGNsYXNzPVwib3BlcmF0aW9uXCJcbiAgKm5nSWY9XCJpc1RlbXBsYXRlUmVmKGxlZnRPcGVyYXRpb24pXCJcbj5cbiAgPG5nLWNvbnRhaW5lclxuICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImxlZnRPcGVyYXRpb25cIlxuICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJsZWZ0T3BlcmF0aW9uQ29udGV4dFwiXG4gID48L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuXG48ZGl2XG4gIGNsYXNzPVwibGVnZW5kLXdyYXAgb3BlcmF0aW9uXCJcbiAgKm5nSWY9XCIhaGlkZUxlZ2VuZFwiXG4+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCIhdGVtcGxhdGU7IGVsc2UgY3VzdG9tXCI+XG4gICAgPGFjbC12aWV3LWxlZ2VuZC1kcm9wZG93blxuICAgICAgY2xhc3M9XCJsZWdlbmQtdmVydGljYWxcIlxuICAgICAgKm5nSWY9XCJsZWdlbmRFbnRyaWVzLmxlbmd0aCA+IDNcIlxuICAgICAgW2RhdGFdPVwibGVnZW5kRW50cmllc1wiXG4gICAgICBbbm9EYXRhXT1cIm5vRGF0YVwiXG4gICAgICBbbGVnZW5kVGVtcGxhdGVdPVwibGVnZW5kVGVtcGxhdGVcIlxuICAgICAgW2lzQ2FyZF09XCJtb2RlID09PSAnY2FyZCdcIlxuICAgID5cbiAgICA8L2FjbC12aWV3LWxlZ2VuZC1kcm9wZG93bj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibGVnZW5kRW50cmllcy5sZW5ndGggPCA0XCI+XG4gICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImxlZ2VuZFRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvbmctY29udGFpbmVyPlxuICA8bmctdGVtcGxhdGUgI2N1c3RvbT5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNUZW1wbGF0ZVJlZih0ZW1wbGF0ZSk7IGVsc2UgYnVpbHRpblRlbXBsYXRlXCI+XG4gICAgICA8bmctY29udGFpbmVyXG4gICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIiRhbnkodGVtcGxhdGUpXCJcbiAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgY29udGV4dDogbGVnZW5kRW50cmllcyB9XCJcbiAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctdGVtcGxhdGUgI2J1aWx0aW5UZW1wbGF0ZT5cbiAgICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cInRlbXBsYXRlXCI+XG4gICAgICAgIDxhY2wtdmlldy1sZWdlbmQtZHJvcGRvd25cbiAgICAgICAgICBjbGFzcz1cImxlZ2VuZC12ZXJ0aWNhbFwiXG4gICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidkcm9wZG93bidcIlxuICAgICAgICAgIFtkYXRhXT1cImxlZ2VuZEVudHJpZXNcIlxuICAgICAgICAgIFtub0RhdGFdPVwibm9EYXRhXCJcbiAgICAgICAgICBbbGVnZW5kVGVtcGxhdGVdPVwibGVnZW5kVGVtcGxhdGVcIlxuICAgICAgICAgIFtpc0NhcmRdPVwibW9kZSA9PT0gJ2NhcmQnXCJcbiAgICAgICAgPlxuICAgICAgICA8L2FjbC12aWV3LWxlZ2VuZC1kcm9wZG93bj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvbmctdGVtcGxhdGU+XG48L2Rpdj5cblxuPGRpdlxuICBjbGFzcz1cIm9wZXJhdGlvblwiXG4gICpuZ0lmPVwiaXNUZW1wbGF0ZVJlZihyaWdodE9wZXJhdGlvbilcIlxuPlxuICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInJpZ2h0T3BlcmF0aW9uXCI+PC9uZy1jb250YWluZXI+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNsZWdlbmRUZW1wbGF0ZT5cbiAgPHVsIGNsYXNzPVwibGVnZW5kLWxhYmVsc1wiPlxuICAgIDxsaVxuICAgICAgY2xhc3M9XCJzZWxlY3QtYWxsXCJcbiAgICAgICpuZ0lmPVwiIW5vRGF0YSAmJiBzZWxlY3RBbGxPcGVyYXRpb24gJiYgdGVtcGxhdGUgPT09ICdkcm9wZG93bidcIlxuICAgID5cbiAgICAgIDxhdWktY2hlY2tib3hcbiAgICAgICAgWyhuZ01vZGVsKV09XCJhbGxTZWxlY3RlZFwiXG4gICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cImFsbFNlbGVjdCgkZXZlbnQpXCJcbiAgICAgID5cbiAgICAgICAge3sgc2VsZWN0QWxsTmFtZSB8fCAoJ3NlbGVjdF9hbGwnIHwgdHJhbnNsYXRlKSB9fVxuICAgICAgPC9hdWktY2hlY2tib3g+XG4gICAgPC9saT5cbiAgICA8bGlcbiAgICAgIGNsYXNzPVwibGVnZW5kLWxhYmVsXCJcbiAgICAgIFtjbGFzcy5kaXNhYmxlXT1cIiFsZWdlbmQuYWN0aXZhdGUgfHwgbm9EYXRhXCJcbiAgICAgIFtjbGFzcy5mb3JiaWRdPVwibm9EYXRhXCJcbiAgICAgIFt0aXRsZV09XCIobGVnZW5kLmFjdGl2YXRlID8gJ2NsaWNrX2hpZGUnIDogJ2NsaWNrX3Nob3cnKSB8IHRyYW5zbGF0ZVwiXG4gICAgICAqbmdGb3I9XCJsZXQgbGVnZW5kIG9mIGxlZ2VuZEVudHJpZXM7IGxldCBpID0gaW5kZXhcIlxuICAgICAgKGNsaWNrKT1cInNlbGVjdGVkKGxlZ2VuZClcIlxuICAgID5cbiAgICAgIDxzcGFuXG4gICAgICAgIFtuZ0NsYXNzXT1cIltzeW1ib2xOYW1lLCAnbGFiZWwtc3ltYm9sJ11cIlxuICAgICAgICBbc3R5bGUuYmFja2dyb3VuZF09XCJsZWdlbmQuY29sb3JcIlxuICAgICAgPlxuICAgICAgPC9zcGFuPlxuICAgICAgPHNwYW4gY2xhc3M9XCJsYWJlbC1uYW1lXCI+e3tcbiAgICAgICAgdHJhbnNsYXRpb24gPyAobGVnZW5kLm5hbWUgfCB0cmFuc2xhdGUpIDogbGVnZW5kLm5hbWVcbiAgICAgIH19PC9zcGFuPlxuICAgIDwvbGk+XG4gIDwvdWw+XG48L25nLXRlbXBsYXRlPlxuIl19