@alauda-fe/common 1.3.0 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (539) hide show
  1. package/api/helpers.d.ts +8 -16
  2. package/array-form-table/form/component.d.ts +2 -2
  3. package/authorization/interceptor.service.d.ts +0 -1
  4. package/authorization/state.service.d.ts +13 -13
  5. package/business/resource-select/internals/namespace-list/component.d.ts +3 -1
  6. package/business/resource-select/module.d.ts +2 -1
  7. package/core/abstract/base-nested-form-control.d.ts +1 -1
  8. package/core/components/tree/toggle.d.ts +3 -3
  9. package/core/constants/constants.d.ts +4 -1
  10. package/core/constants/patterns.d.ts +12 -0
  11. package/core/constants/status-icons.d.ts +2 -1
  12. package/core/directives/scroll-to-first-invalid.directive.d.ts +1 -1
  13. package/core/module.d.ts +21 -21
  14. package/core/pipes/time.pipe.d.ts +1 -1
  15. package/core/services/context.service.d.ts +3 -4
  16. package/core/services/encode-url-param.interceptor.d.ts +12 -0
  17. package/core/services/feature-gate.service.d.ts +1 -1
  18. package/core/services/public-api.d.ts +1 -0
  19. package/core/services/time.service.d.ts +1 -0
  20. package/core/services/workspace-helper.service.d.ts +3 -1
  21. package/core/types/k8s/crd.d.ts +11 -5
  22. package/core/types/k8s/raw.d.ts +25 -38
  23. package/core/types/resource-definitions.d.ts +57 -71
  24. package/core/utils/common.d.ts +5 -13
  25. package/core/utils/disabled-state.d.ts +20 -0
  26. package/core/utils/public-api.d.ts +3 -0
  27. package/core/utils/router.d.ts +3 -0
  28. package/core/utils/version.d.ts +1 -1
  29. package/core/utils/workload.d.ts +66 -0
  30. package/editable/editable.component.d.ts +23 -0
  31. package/editable/editable.directive.d.ts +9 -0
  32. package/editable/editable.type.d.ts +5 -0
  33. package/editable/public-api.d.ts +2 -0
  34. package/esm2022/abnormal-page/abnormal-page.component.mjs +5 -4
  35. package/esm2022/abnormal-page/abnormal-page.module.mjs +2 -2
  36. package/esm2022/api/acp-common-api.service.mjs +3 -3
  37. package/esm2022/api/api-compatible.interceptor.mjs +1 -1
  38. package/esm2022/api/api-gateway.interceptor.mjs +3 -3
  39. package/esm2022/api/api-gateway.service.mjs +2 -2
  40. package/esm2022/api/cluster-version.service.mjs +3 -3
  41. package/esm2022/api/crypto.interceptor.mjs +4 -4
  42. package/esm2022/api/helpers.mjs +1 -1
  43. package/esm2022/api/k8s-api-resource.service.mjs +4 -4
  44. package/esm2022/api/k8s-api.service.mjs +6 -6
  45. package/esm2022/api/page-visibility.service.mjs +2 -2
  46. package/esm2022/api/platform-ui.service.mjs +2 -2
  47. package/esm2022/api/product.service.mjs +3 -3
  48. package/esm2022/api/project-api.service.mjs +3 -3
  49. package/esm2022/api/resource-update.service.mjs +3 -3
  50. package/esm2022/array-form-table/base-string-map-form.component.mjs +3 -3
  51. package/esm2022/array-form-table/form/component.mjs +104 -111
  52. package/esm2022/array-form-table/form/module.mjs +2 -2
  53. package/esm2022/array-form-table/key-value-form/component.mjs +53 -58
  54. package/esm2022/array-form-table/key-value-table/component.mjs +7 -7
  55. package/esm2022/array-form-table/string-array-form/component.mjs +48 -52
  56. package/esm2022/async-data/async-data-loader.mjs +1 -1
  57. package/esm2022/async-data/async-data.module.mjs +2 -2
  58. package/esm2022/async-data/error-page/component.mjs +21 -22
  59. package/esm2022/async-data/page-state/component.mjs +16 -15
  60. package/esm2022/authorization/app-init-url.mjs +1 -1
  61. package/esm2022/authorization/guard.service.mjs +5 -5
  62. package/esm2022/authorization/interceptor.service.mjs +10 -25
  63. package/esm2022/authorization/session-manage.service.mjs +5 -5
  64. package/esm2022/authorization/state.service.mjs +59 -93
  65. package/esm2022/authorization/storage-token.mjs +2 -2
  66. package/esm2022/business/module-info/api.service.mjs +3 -3
  67. package/esm2022/business/notification-disabled-container/component.mjs +14 -14
  68. package/esm2022/business/resource-select/base-list.mjs +3 -3
  69. package/esm2022/business/resource-select/context.service.mjs +3 -3
  70. package/esm2022/business/resource-select/exports/cluster-selector/component.mjs +22 -20
  71. package/esm2022/business/resource-select/exports/mesh-group-selector/component.mjs +22 -20
  72. package/esm2022/business/resource-select/exports/namespace-page/component.mjs +6 -5
  73. package/esm2022/business/resource-select/exports/namespace-selector/component.mjs +37 -35
  74. package/esm2022/business/resource-select/exports/project-page/component.mjs +6 -5
  75. package/esm2022/business/resource-select/exports/project-selector/component.mjs +23 -22
  76. package/esm2022/business/resource-select/helpers.directive.mjs +2 -2
  77. package/esm2022/business/resource-select/internals/cluster-list/component.mjs +7 -6
  78. package/esm2022/business/resource-select/internals/data-grid/component.mjs +173 -176
  79. package/esm2022/business/resource-select/internals/icon/component.mjs +3 -2
  80. package/esm2022/business/resource-select/internals/meshgroup-list/component.mjs +5 -4
  81. package/esm2022/business/resource-select/internals/namespace-list/component.mjs +145 -100
  82. package/esm2022/business/resource-select/internals/no-data/component.mjs +12 -14
  83. package/esm2022/business/resource-select/internals/project-list/component.mjs +5 -4
  84. package/esm2022/business/resource-select/internals/resource-dashboard/component.mjs +7 -6
  85. package/esm2022/business/resource-select/internals/selector-popup/component.mjs +6 -5
  86. package/esm2022/business/resource-select/internals/selector-popup/ref.mjs +1 -1
  87. package/esm2022/business/resource-select/internals/selector-popup/service.mjs +3 -3
  88. package/esm2022/business/resource-select/module.mjs +17 -14
  89. package/esm2022/business/resource-select/project.service.mjs +3 -3
  90. package/esm2022/business/resource-select/utils.mjs +1 -1
  91. package/esm2022/chart/chart.module.mjs +2 -2
  92. package/esm2022/chart/chart.service.mjs +4 -4
  93. package/esm2022/chart/common/axis/axis-label.component.mjs +4 -3
  94. package/esm2022/chart/common/axis/x-axis-ticks.component.mjs +27 -27
  95. package/esm2022/chart/common/axis/x-axis.component.mjs +6 -5
  96. package/esm2022/chart/common/axis/x-plot-lines.component.mjs +7 -6
  97. package/esm2022/chart/common/axis/y-axis-ticks.component.mjs +35 -35
  98. package/esm2022/chart/common/axis/y-axis.component.mjs +9 -8
  99. package/esm2022/chart/common/axis/y-plot-lines.component.mjs +6 -5
  100. package/esm2022/chart/common/chart/chart.component.mjs +41 -43
  101. package/esm2022/chart/common/legend/legend.component.mjs +62 -65
  102. package/esm2022/chart/common/range-area/range-area.component.mjs +13 -11
  103. package/esm2022/chart/common/reference-area/reference-area.component.mjs +4 -3
  104. package/esm2022/chart/common/series/area-series.component.mjs +15 -14
  105. package/esm2022/chart/common/series/bar-path.component.mjs +20 -21
  106. package/esm2022/chart/common/series/bar-series.component.mjs +8 -7
  107. package/esm2022/chart/common/series/line-series.component.mjs +7 -6
  108. package/esm2022/chart/common/series/series.component.mjs +3 -3
  109. package/esm2022/chart/common/tooltip/tooltip.component.mjs +73 -81
  110. package/esm2022/chart/custom-template/dropdown-legend.mjs +23 -25
  111. package/esm2022/chart/utils.mjs +1 -1
  112. package/esm2022/code/code-display-dialog/component.mjs +9 -8
  113. package/esm2022/code/code-editor-configs.mjs +2 -2
  114. package/esm2022/code/code.module.mjs +2 -2
  115. package/esm2022/code/k8s-yaml-display-dialog/component.mjs +9 -8
  116. package/esm2022/code/resource-yaml-display/component.mjs +21 -22
  117. package/esm2022/core/abstract/base-form-container.mjs +3 -3
  118. package/esm2022/core/abstract/base-nested-form-control.mjs +5 -5
  119. package/esm2022/core/components/tree/module.mjs +2 -2
  120. package/esm2022/core/components/tree/node/component.mjs +7 -6
  121. package/esm2022/core/components/tree/outlet.mjs +4 -4
  122. package/esm2022/core/components/tree/padding.mjs +6 -6
  123. package/esm2022/core/components/tree/toggle.mjs +9 -9
  124. package/esm2022/core/components/tree/tree/component.mjs +4 -3
  125. package/esm2022/core/constants/constants.mjs +4 -1
  126. package/esm2022/core/constants/patterns.mjs +15 -4
  127. package/esm2022/core/constants/status-icons.mjs +2 -1
  128. package/esm2022/core/constants/tokens.mjs +1 -1
  129. package/esm2022/core/directives/aui-code-editor.directive.mjs +3 -3
  130. package/esm2022/core/directives/click-outside.directive.mjs +4 -4
  131. package/esm2022/core/directives/declare.directive.mjs +2 -2
  132. package/esm2022/core/directives/disabled.directive.mjs +4 -4
  133. package/esm2022/core/directives/feature-gate.directive.mjs +4 -4
  134. package/esm2022/core/directives/intercept-deactivate.directive.mjs +4 -4
  135. package/esm2022/core/directives/last-form-item.directive.mjs +3 -3
  136. package/esm2022/core/directives/page-header-content.directive.mjs +3 -3
  137. package/esm2022/core/directives/readonly-field.directive.mjs +8 -7
  138. package/esm2022/core/directives/resize.directive.mjs +3 -3
  139. package/esm2022/core/directives/scroll-border-observer.directive.mjs +4 -4
  140. package/esm2022/core/directives/scroll-to-first-invalid.directive.mjs +5 -5
  141. package/esm2022/core/guards/feature.guard.mjs +4 -4
  142. package/esm2022/core/guards/intercept-deactivate.guard.mjs +3 -3
  143. package/esm2022/core/guards/leave-edit-page.guard.mjs +3 -3
  144. package/esm2022/core/guards/project-namespace.guard.mjs +5 -5
  145. package/esm2022/core/module.mjs +8 -13
  146. package/esm2022/core/pipes/calc.pipe.mjs +2 -2
  147. package/esm2022/core/pipes/cron-human-readable.pipe.mjs +2 -2
  148. package/esm2022/core/pipes/crontab-next.pipe.mjs +3 -3
  149. package/esm2022/core/pipes/duration.pipe.mjs +3 -3
  150. package/esm2022/core/pipes/field-not-available.pipe.mjs +2 -2
  151. package/esm2022/core/pipes/img-header.pipe.mjs +2 -2
  152. package/esm2022/core/pipes/img-theme.pipe.mjs +3 -3
  153. package/esm2022/core/pipes/k8s-util.pipe.mjs +24 -24
  154. package/esm2022/core/pipes/k8s-util.pipe.module.mjs +2 -2
  155. package/esm2022/core/pipes/keyvalue.pipe.mjs +3 -3
  156. package/esm2022/core/pipes/marked.pipe.mjs +2 -2
  157. package/esm2022/core/pipes/minimum-format.pipe.mjs +3 -3
  158. package/esm2022/core/pipes/page-env.pipe.mjs +5 -5
  159. package/esm2022/core/pipes/parse-json-translate.pipe.mjs +3 -3
  160. package/esm2022/core/pipes/parse-json.pipe.mjs +2 -2
  161. package/esm2022/core/pipes/pure.pipe.mjs +2 -2
  162. package/esm2022/core/pipes/pure.pipe.module.mjs +2 -2
  163. package/esm2022/core/pipes/safe.pipe.mjs +3 -3
  164. package/esm2022/core/pipes/sanitize.pipe.mjs +3 -3
  165. package/esm2022/core/pipes/time.pipe.mjs +11 -11
  166. package/esm2022/core/pipes/timezone-display.pipe.mjs +2 -2
  167. package/esm2022/core/services/aui-paginator-intl.service.mjs +3 -3
  168. package/esm2022/core/services/aui-tooltip-copy-intl.service.mjs +3 -3
  169. package/esm2022/core/services/context.service.mjs +10 -13
  170. package/esm2022/core/services/custom-code-editor-intl.service.mjs +3 -3
  171. package/esm2022/core/services/encode-url-param.interceptor.mjs +32 -0
  172. package/esm2022/core/services/feature-gate.service.mjs +3 -3
  173. package/esm2022/core/services/form-row-duplicate/form-row-duplicate.service.mjs +3 -3
  174. package/esm2022/core/services/intercept-deactivate.service.mjs +3 -3
  175. package/esm2022/core/services/k8s-util.service.mjs +3 -3
  176. package/esm2022/core/services/on-resize.service.mjs +5 -5
  177. package/esm2022/core/services/public-api.mjs +2 -1
  178. package/esm2022/core/services/silently-navigate.service.mjs +3 -3
  179. package/esm2022/core/services/time.service.mjs +4 -3
  180. package/esm2022/core/services/ui-state.service.mjs +2 -2
  181. package/esm2022/core/services/workspace-helper.service.mjs +8 -2
  182. package/esm2022/core/services/yaml-util.service.mjs +4 -4
  183. package/esm2022/core/types/k8s/crd.mjs +1 -1
  184. package/esm2022/core/types/k8s/raw.mjs +1 -1
  185. package/esm2022/core/types/resource-definitions.mjs +42 -65
  186. package/esm2022/core/utils/cache-store.mjs +1 -1
  187. package/esm2022/core/utils/common.mjs +3 -12
  188. package/esm2022/core/utils/create-recursive-filter.mjs +1 -1
  189. package/esm2022/core/utils/cron-util.mjs +1 -1
  190. package/esm2022/core/utils/decorators.mjs +1 -1
  191. package/esm2022/core/utils/disabled-state.mjs +47 -0
  192. package/esm2022/core/utils/format-number.mjs +1 -1
  193. package/esm2022/core/utils/k8s-util.mjs +1 -1
  194. package/esm2022/core/utils/observable.mjs +1 -1
  195. package/esm2022/core/utils/operators.mjs +1 -1
  196. package/esm2022/core/utils/public-api.mjs +4 -1
  197. package/esm2022/core/utils/request-pool.mjs +1 -1
  198. package/esm2022/core/utils/resources.mjs +1 -1
  199. package/esm2022/core/utils/router.mjs +20 -0
  200. package/esm2022/core/utils/sort-fn.mjs +1 -1
  201. package/esm2022/core/utils/tree.mjs +1 -1
  202. package/esm2022/core/utils/unit.mjs +1 -1
  203. package/esm2022/core/utils/version.mjs +1 -1
  204. package/esm2022/core/utils/workload.mjs +183 -0
  205. package/esm2022/core/utils/workspace.mjs +1 -1
  206. package/esm2022/core/utils/yaml.mjs +1 -1
  207. package/esm2022/custom-columns-setting/component.mjs +30 -23
  208. package/esm2022/disabled-container/disabled-container.component.mjs +4 -3
  209. package/esm2022/disabled-container/disabled-container.module.mjs +2 -2
  210. package/esm2022/editable/editable.component.mjs +136 -0
  211. package/esm2022/editable/editable.directive.mjs +25 -0
  212. package/esm2022/editable/editable.type.mjs +6 -0
  213. package/esm2022/editable/public-api.mjs +3 -0
  214. package/esm2022/editable-text/component.mjs +14 -12
  215. package/esm2022/editable-text/module.mjs +2 -2
  216. package/esm2022/effect-directive/coerce-number.directive.mjs +4 -4
  217. package/esm2022/effect-directive/e2e-attribute-binding.directive.mjs +3 -3
  218. package/esm2022/effect-directive/event.directive.mjs +3 -3
  219. package/esm2022/effect-directive/min-max.directive.mjs +3 -3
  220. package/esm2022/effect-directive/module.mjs +2 -2
  221. package/esm2022/effect-directive/trim.directive.mjs +3 -3
  222. package/esm2022/effect-directive/validators.directive.mjs +3 -3
  223. package/esm2022/exec/module.mjs +2 -2
  224. package/esm2022/exec/placeholder/component.mjs +4 -3
  225. package/esm2022/exec/service.mjs +3 -3
  226. package/esm2022/exec/terminal/component.mjs +87 -86
  227. package/esm2022/exec/terminal-group/component.mjs +42 -44
  228. package/esm2022/feature-gate-forbidden/component/component.mjs +9 -8
  229. package/esm2022/feature-gate-forbidden/module.mjs +2 -2
  230. package/esm2022/form/directives/value-trace.directive.mjs +4 -4
  231. package/esm2022/form/errors-mapper/base-errors-mapper.mjs +3 -3
  232. package/esm2022/form/errors-mapper/default-errors-mapper.service.mjs +3 -3
  233. package/esm2022/form/errors-mapper/errors-mapper-component/component.mjs +6 -5
  234. package/esm2022/form/errors-mapper/errors-mapper.directive.mjs +7 -6
  235. package/esm2022/form/errors-mapper/errors-mapper.module.mjs +2 -2
  236. package/esm2022/form/labels-editor/component.mjs +36 -36
  237. package/esm2022/form/taints-editor/component.mjs +42 -42
  238. package/esm2022/form/upload-file/component.mjs +9 -7
  239. package/esm2022/form/utils.mjs +1 -1
  240. package/esm2022/form/validators/async-function-validator.directive.mjs +4 -3
  241. package/esm2022/form/validators/dns1123-subdomain.mjs +1 -1
  242. package/esm2022/form/validators/function-validator.directive.mjs +4 -3
  243. package/esm2022/form/validators/maxlength-minlength-validator.directive.mjs +9 -7
  244. package/esm2022/form/validators/module.mjs +7 -8
  245. package/esm2022/form/validators/not-be-validator.directive.mjs +4 -3
  246. package/esm2022/form/validators/one-of-validator.directive.mjs +4 -3
  247. package/esm2022/form/validators/resource-limit.mjs +1 -1
  248. package/esm2022/form/validators/strong-password/strong-password-tooltip/component.mjs +30 -28
  249. package/esm2022/form/validators/strong-password/strong-password-validator.directive.mjs +3 -3
  250. package/esm2022/form/validators/strong-password/strong-password-validator.module.mjs +6 -7
  251. package/esm2022/form/validators/utils.mjs +1 -1
  252. package/esm2022/graph-canvas/components/graph-actions.component.mjs +3 -2
  253. package/esm2022/graph-canvas/components/graph-canvas.component.mjs +25 -23
  254. package/esm2022/graph-canvas/components/graph-link.component.mjs +12 -13
  255. package/esm2022/graph-canvas/components/graph-links.component.mjs +3 -2
  256. package/esm2022/graph-canvas/components/graph-node.directive.mjs +4 -4
  257. package/esm2022/graph-canvas/graph-canvas.module.mjs +2 -2
  258. package/esm2022/graph-canvas/graph-store.service.mjs +2 -2
  259. package/esm2022/grid-layout/components/grid/component.mjs +5 -4
  260. package/esm2022/grid-layout/components/grid-items/component.mjs +8 -7
  261. package/esm2022/grid-layout/directives/drag-handler.directive.mjs +3 -3
  262. package/esm2022/grid-layout/directives/placeholder.directive.mjs +3 -3
  263. package/esm2022/grid-layout/directives/remove-handler.directive.mjs +3 -3
  264. package/esm2022/grid-layout/directives/resize-handler.directive.mjs +3 -3
  265. package/esm2022/grid-layout/grid-layout.service.mjs +2 -2
  266. package/esm2022/grid-layout/grid-placeholder.service.mjs +3 -3
  267. package/esm2022/grid-layout/module.mjs +2 -2
  268. package/esm2022/grid-layout/utils/grid.utils.mjs +1 -1
  269. package/esm2022/grid-layout/utils/react-grid-layout.utils.mjs +1 -1
  270. package/esm2022/grid-layout/utils/scroll.utils.mjs +1 -1
  271. package/esm2022/help-document/component.mjs +18 -16
  272. package/esm2022/help-document/directive.mjs +4 -4
  273. package/esm2022/help-document/module.mjs +2 -2
  274. package/esm2022/help-document/service.mjs +4 -4
  275. package/esm2022/iframe-config/config.service.mjs +3 -3
  276. package/esm2022/k8s-resource-list/footer/component.mjs +103 -65
  277. package/esm2022/k8s-resource-list/k8s-resource-list.mjs +3 -6
  278. package/esm2022/k8s-resource-list/k8s-resource-list.module.mjs +19 -7
  279. package/esm2022/k8s-resource-list/k8s-resource-paged-list.mjs +1 -1
  280. package/esm2022/k8s-resource-list/utils.mjs +7 -3
  281. package/esm2022/k8s-shared/constants.mjs +53 -0
  282. package/esm2022/k8s-shared/k8s-resource-translate-key.pipe.mjs +30 -0
  283. package/esm2022/k8s-shared/k8s-shared-util.service.mjs +3 -3
  284. package/esm2022/k8s-shared/public-api.mjs +2 -1
  285. package/esm2022/k8s-shared/update-description-dialog/component.mjs +10 -9
  286. package/esm2022/k8s-shared/update-display-name-dialog/component.mjs +22 -20
  287. package/esm2022/k8s-shared/update-key-value-dialog/component.mjs +13 -11
  288. package/esm2022/lazy-component/lazy-load-component.mjs +25 -26
  289. package/esm2022/lazy-component/visibility.service.mjs +2 -2
  290. package/esm2022/license/license-api.mjs +3 -3
  291. package/esm2022/license/license-error/component.mjs +25 -25
  292. package/esm2022/license/license-error/module.mjs +2 -2
  293. package/esm2022/license/license.guard.mjs +4 -4
  294. package/esm2022/license/license.service.mjs +4 -4
  295. package/esm2022/list-display/component.mjs +39 -40
  296. package/esm2022/metric-chart/common-chart.service.mjs +3 -3
  297. package/esm2022/metric-chart/helpers.mjs +1 -1
  298. package/esm2022/metric-chart/metric-chart.component.mjs +6 -5
  299. package/esm2022/metric-chart/metric-chart.module.mjs +2 -2
  300. package/esm2022/metric-chart/metric-time-pick.mjs +20 -17
  301. package/esm2022/metric-chart/utils.mjs +1 -1
  302. package/esm2022/multi-search/action-input/component.mjs +180 -181
  303. package/esm2022/multi-search/form/component.mjs +26 -22
  304. package/esm2022/multi-search/multi-search-tags/component.mjs +33 -31
  305. package/esm2022/mutable/element.mjs +1 -1
  306. package/esm2022/mutable/mosaic/mosaic.component.mjs +6 -5
  307. package/esm2022/mutable/mosaic/mosaic.directive.mjs +3 -3
  308. package/esm2022/mutable/mutable.directive.mjs +4 -4
  309. package/esm2022/mutable/mutable.module.mjs +2 -2
  310. package/esm2022/notification/feedback-notification/component.mjs +22 -23
  311. package/esm2022/notification/notification-util.service.mjs +3 -3
  312. package/esm2022/notification/resource-error.interceptor.mjs +3 -3
  313. package/esm2022/overview-banner/overview-banner.component.mjs +3 -2
  314. package/esm2022/overview-banner/overview-banner.module.mjs +2 -2
  315. package/esm2022/page-guard/component/component.mjs +70 -78
  316. package/esm2022/page-guard/component/helper-directives.mjs +5 -5
  317. package/esm2022/page-guard/module.mjs +2 -2
  318. package/esm2022/page-scaffold/module.mjs +2 -2
  319. package/esm2022/page-scaffold/navigation/breadcrumb/breadcrumb-slot.directive.mjs +3 -3
  320. package/esm2022/page-scaffold/navigation/breadcrumb/breadcrumb.component.mjs +182 -91
  321. package/esm2022/page-scaffold/navigation/breadcrumb/breadcrumb.service.mjs +2 -2
  322. package/esm2022/page-scaffold/navigation/breadcrumb/module.mjs +2 -2
  323. package/esm2022/page-scaffold/navigation/lottie-icons/animation-data.mjs +1 -3
  324. package/esm2022/page-scaffold/navigation/lottie-icons/lottie-icon.directive.mjs +3 -3
  325. package/esm2022/page-scaffold/navigation/lottie-icons/module.mjs +2 -2
  326. package/esm2022/page-scaffold/navigation/lottie-icons/replace-lottie-colors.mjs +11 -11
  327. package/esm2022/page-scaffold/navigation/module.mjs +2 -2
  328. package/esm2022/page-scaffold/navigation/nav-menu/nav-item-li/nav-item-li.component.mjs +128 -99
  329. package/esm2022/page-scaffold/navigation/nav-menu/nav-item-ul/nav-item-ul.component.mjs +30 -32
  330. package/esm2022/page-scaffold/navigation/nav-menu/nav-menu.component.mjs +21 -19
  331. package/esm2022/page-scaffold/navigation/nav-menu/nav-menu.module.mjs +4 -4
  332. package/esm2022/page-scaffold/navigation/nav-menu/nav-menu.types.mjs +1 -1
  333. package/esm2022/page-scaffold/navigation/navconfig-loader/navconfig-loader.service.mjs +9 -8
  334. package/esm2022/page-scaffold/page/context.service.mjs +2 -2
  335. package/esm2022/page-scaffold/page/helper-directives.mjs +10 -10
  336. package/esm2022/page-scaffold/page/notices/maintenance.component.mjs +11 -11
  337. package/esm2022/page-scaffold/page/notices/notice.component.mjs +15 -15
  338. package/esm2022/page-scaffold/page/page.component.mjs +20 -20
  339. package/esm2022/page-scaffold/page/page.module.mjs +2 -2
  340. package/esm2022/page-scaffold/page-header/account-menu/component/component.mjs +40 -39
  341. package/esm2022/page-scaffold/page-header/account-menu/module.mjs +2 -2
  342. package/esm2022/page-scaffold/page-header/common-layout/common-layout.module.mjs +2 -2
  343. package/esm2022/page-scaffold/page-header/common-layout/context.service.mjs +4 -4
  344. package/esm2022/page-scaffold/page-header/common-layout/namespace-select/component.mjs +58 -59
  345. package/esm2022/page-scaffold/page-header/common-layout/product-select/component.mjs +68 -73
  346. package/esm2022/page-scaffold/page-header/common-layout/product-select/service.mjs +2 -2
  347. package/esm2022/page-scaffold/page-header/common-layout/project-select/base-selection.mjs +3 -3
  348. package/esm2022/page-scaffold/page-header/common-layout/store.service.mjs +3 -3
  349. package/esm2022/page-scaffold/page-header/component.mjs +24 -25
  350. package/esm2022/page-scaffold/page-header/enterprise-support-status/component.mjs +15 -14
  351. package/esm2022/page-scaffold/page-header/header-notify/component/header-notify.component.mjs +27 -27
  352. package/esm2022/page-scaffold/page-header/header-notify/component/notification-list/notification-list.component.mjs +22 -21
  353. package/esm2022/page-scaffold/page-header/header-notify/header-notify.module.mjs +2 -2
  354. package/esm2022/page-scaffold/page-header/header-notify/notify.service.mjs +5 -5
  355. package/esm2022/page-scaffold/page-header/help-menu/component/component.mjs +59 -62
  356. package/esm2022/page-scaffold/page-header/help-menu/module.mjs +2 -2
  357. package/esm2022/page-scaffold/page-header/module.mjs +2 -2
  358. package/esm2022/permission/helpers.mjs +1 -1
  359. package/esm2022/permission/k8s-permission.service.mjs +3 -3
  360. package/esm2022/permission/permission.guard.mjs +3 -3
  361. package/esm2022/pie-derivative-chart/donut-status/component.mjs +29 -28
  362. package/esm2022/pie-derivative-chart/indicator-color.directive.mjs +3 -3
  363. package/esm2022/pie-derivative-chart/numerical-limit.pipe.mjs +3 -3
  364. package/esm2022/pie-derivative-chart/pie-derivative-chart.module.mjs +7 -7
  365. package/esm2022/pie-derivative-chart/radial-bar/radial-bar-chart.component.mjs +84 -78
  366. package/esm2022/pie-derivative-chart/units.mjs +14 -0
  367. package/esm2022/pod-status/component.mjs +167 -0
  368. package/esm2022/pod-status/public-api.mjs +4 -0
  369. package/esm2022/pod-status/status.mjs +84 -0
  370. package/esm2022/pod-status/typings.mjs +19 -0
  371. package/esm2022/public-api.mjs +4 -1
  372. package/esm2022/searchable-selector/component.mjs +73 -75
  373. package/esm2022/searchable-selector/module.mjs +2 -2
  374. package/esm2022/skeleton/item/component.mjs +4 -3
  375. package/esm2022/skeleton/module.mjs +2 -2
  376. package/esm2022/skeleton/nav-skeleton/component.mjs +8 -7
  377. package/esm2022/table/component.mjs +275 -276
  378. package/esm2022/table/helper.mjs +1 -1
  379. package/esm2022/table/helpers.directive.mjs +3 -3
  380. package/esm2022/table/module.mjs +40 -31
  381. package/esm2022/table/util.service.mjs +4 -4
  382. package/esm2022/translate/helpers.mjs +1 -1
  383. package/esm2022/translate/i18n-config.mjs +3 -8
  384. package/esm2022/translate/translate.directive.mjs +9 -9
  385. package/esm2022/translate/translate.module.mjs +2 -2
  386. package/esm2022/translate/translate.pipe.mjs +3 -3
  387. package/esm2022/translate/translate.service.mjs +4 -4
  388. package/esm2022/view-chart/custom-template/dropdown-legend.mjs +24 -26
  389. package/esm2022/view-chart/legend/legend.component.mjs +66 -70
  390. package/esm2022/view-chart/view-chart.component.mjs +94 -105
  391. package/esm2022/view-chart/view-chart.module.mjs +2 -2
  392. package/esm2022/view-zchart/custom-template/dropdown-legend.mjs +24 -26
  393. package/esm2022/view-zchart/legend/legend.component.mjs +77 -82
  394. package/esm2022/view-zchart/units.mjs +1 -1
  395. package/esm2022/view-zchart/view-zchart.component.mjs +111 -120
  396. package/esm2022/view-zchart/view-zchart.module.mjs +2 -2
  397. package/esm2022/widget/card-section/card-section.component.mjs +13 -12
  398. package/esm2022/widget/confirm-delete/confirm-delete.component.mjs +45 -46
  399. package/esm2022/widget/current-time/component.mjs +4 -3
  400. package/esm2022/widget/date-range-picker/component.mjs +42 -40
  401. package/esm2022/widget/field-set/column/component.mjs +5 -3
  402. package/esm2022/widget/field-set/group/component.mjs +3 -2
  403. package/esm2022/widget/field-set/item/component.mjs +8 -7
  404. package/esm2022/widget/foldable-block/component.mjs +25 -24
  405. package/esm2022/widget/foldable-item-in-table/component.mjs +41 -42
  406. package/esm2022/widget/loading-mask/loading-mask.component.mjs +9 -9
  407. package/esm2022/widget/password-input/component.mjs +72 -71
  408. package/esm2022/widget/public-api.mjs +2 -1
  409. package/esm2022/widget/relative-time/component.mjs +4 -3
  410. package/esm2022/widget/resource-label/component.mjs +131 -0
  411. package/esm2022/widget/resource-multi-select/component.mjs +20 -19
  412. package/esm2022/widget/resource-multi-select/util.mjs +1 -1
  413. package/esm2022/widget/search-panel/component.mjs +3 -2
  414. package/esm2022/widget/search-panel/helper.directive.mjs +2 -2
  415. package/esm2022/widget/search-panel/search-item/component.mjs +3 -2
  416. package/esm2022/widget/select-prefix-label/directive.mjs +4 -4
  417. package/esm2022/widget/status-icon/status-icon.component.mjs +16 -15
  418. package/esm2022/widget/tags-label/component.mjs +61 -62
  419. package/esm2022/widget/terminating-tag/component.mjs +4 -3
  420. package/esm2022/widget/text-ellipsis/component.mjs +11 -11
  421. package/esm2022/widget/text-tooltip/directive.mjs +3 -3
  422. package/esm2022/widget/text-with-url/component.mjs +8 -8
  423. package/esm2022/widget/widget.module.mjs +2 -2
  424. package/esm2022/widget/zero-state/zero-state.component.mjs +45 -30
  425. package/esm2022/window-channel/base-window-channel.mjs +1 -1
  426. package/esm2022/window-channel/directives/host-link.directive.mjs +2 -2
  427. package/esm2022/window-channel/host-window-channel.service.mjs +3 -3
  428. package/esm2022/window-channel/plugin-window-channel.service.mjs +3 -3
  429. package/esm2022/workload-status-icon/component.mjs +72 -0
  430. package/esm2022/workload-status-icon/public-api.mjs +2 -0
  431. package/esm2022/xterm/xterm-terminal/xterm-terminal.component.mjs +68 -71
  432. package/esm2022/xterm/xterm-terminal/xterm-terminal.directive.mjs +3 -3
  433. package/esm2022/xterm/xterm.component.mjs +5 -4
  434. package/exec/terminal/component.d.ts +1 -4
  435. package/form/validators/async-function-validator.directive.d.ts +1 -1
  436. package/form/validators/function-validator.directive.d.ts +1 -1
  437. package/form/validators/maxlength-minlength-validator.directive.d.ts +2 -2
  438. package/form/validators/module.d.ts +8 -8
  439. package/form/validators/not-be-validator.directive.d.ts +1 -1
  440. package/form/validators/one-of-validator.directive.d.ts +1 -1
  441. package/form/validators/resource-limit.d.ts +1 -1
  442. package/form/validators/strong-password/strong-password-validator.module.d.ts +2 -2
  443. package/graph-canvas/components/graph-canvas.component.d.ts +2 -2
  444. package/k8s-resource-list/footer/component.d.ts +9 -1
  445. package/k8s-resource-list/k8s-resource-list.module.d.ts +1 -1
  446. package/k8s-resource-list/k8s-resource-paged-list.d.ts +2 -2
  447. package/k8s-shared/constants.d.ts +7 -0
  448. package/k8s-shared/k8s-resource-translate-key.pipe.d.ts +9 -0
  449. package/k8s-shared/public-api.d.ts +1 -0
  450. package/license/license-api.d.ts +1 -1
  451. package/license/license-error/component.d.ts +1 -1
  452. package/metric-chart/helpers.d.ts +1 -1
  453. package/package.json +2 -1
  454. package/page-guard/component/component.d.ts +1 -1
  455. package/page-scaffold/navigation/breadcrumb/breadcrumb.component.d.ts +2 -0
  456. package/page-scaffold/navigation/nav-menu/nav-item-li/nav-item-li.component.d.ts +1 -0
  457. package/page-scaffold/navigation/nav-menu/nav-menu.types.d.ts +8 -1
  458. package/page-scaffold/navigation/navconfig-loader/navconfig-loader.service.d.ts +2 -1
  459. package/page-scaffold/page-header/common-layout/product-select/component.d.ts +1 -3
  460. package/page-scaffold/page-header/header-notify/utils.d.ts +3 -3
  461. package/pie-derivative-chart/radial-bar/radial-bar-chart.component.d.ts +4 -0
  462. package/pie-derivative-chart/units.d.ts +2 -0
  463. package/pod-status/component.d.ts +27 -0
  464. package/pod-status/public-api.d.ts +3 -0
  465. package/pod-status/status.d.ts +4 -0
  466. package/pod-status/typings.d.ts +16 -0
  467. package/public-api.d.ts +3 -0
  468. package/styles/ansi-color.scss +131 -0
  469. package/styles/global.scss +4 -1
  470. package/styles/tailwind-preset.scss +1 -1
  471. package/table/component.d.ts +6 -4
  472. package/table/helper.d.ts +1 -1
  473. package/table/module.d.ts +23 -7
  474. package/widget/public-api.d.ts +1 -0
  475. package/widget/resource-label/component.d.ts +25 -0
  476. package/widget/zero-state/zero-state.component.d.ts +5 -2
  477. package/workload-status-icon/component.d.ts +36 -0
  478. package/workload-status-icon/public-api.d.ts +1 -0
  479. package/a-chart/a-chart.module.d.ts +0 -16
  480. package/a-chart/base-chart.d.ts +0 -24
  481. package/a-chart/chart-status.component.d.ts +0 -15
  482. package/a-chart/chart.component.d.ts +0 -56
  483. package/a-chart/components/base-component.d.ts +0 -12
  484. package/a-chart/components/legend/base-legend.component.d.ts +0 -31
  485. package/a-chart/components/legend/dropdown-legend.d.ts +0 -17
  486. package/a-chart/components/legend/legend.component.d.ts +0 -17
  487. package/a-chart/components/legend/public-api.d.ts +0 -3
  488. package/a-chart/components/public-api.d.ts +0 -3
  489. package/a-chart/components/title.component.d.ts +0 -17
  490. package/a-chart/constant.d.ts +0 -6
  491. package/a-chart/public-api.d.ts +0 -12
  492. package/a-chart/types.d.ts +0 -38
  493. package/a-chart/utils.d.ts +0 -13
  494. package/a-metric-chart/a-metric-chart.component.d.ts +0 -154
  495. package/a-metric-chart/a-metric-chart.module.d.ts +0 -16
  496. package/a-metric-chart/bar-gauge/bar-gauge.component.d.ts +0 -25
  497. package/a-metric-chart/base-chart.component.d.ts +0 -14
  498. package/a-metric-chart/metric-chart-refresh.service.d.ts +0 -8
  499. package/a-metric-chart/public-api.d.ts +0 -14
  500. package/a-metric-chart/stat-chart/stat-chart.component.d.ts +0 -11
  501. package/a-metric-chart/table-chart/table-chart.component.d.ts +0 -29
  502. package/a-metric-chart/types.d.ts +0 -130
  503. package/a-metric-chart/utils/public-api.d.ts +0 -3
  504. package/a-metric-chart/utils/range.d.ts +0 -1
  505. package/a-metric-chart/utils/unit.d.ts +0 -48
  506. package/a-metric-chart/utils/util.d.ts +0 -45
  507. package/api/monitor-api.service.d.ts +0 -104
  508. package/esm2022/a-chart/a-chart.module.mjs +0 -76
  509. package/esm2022/a-chart/base-chart.mjs +0 -98
  510. package/esm2022/a-chart/chart-status.component.mjs +0 -195
  511. package/esm2022/a-chart/chart.component.mjs +0 -307
  512. package/esm2022/a-chart/components/base-component.mjs +0 -23
  513. package/esm2022/a-chart/components/legend/base-legend.component.mjs +0 -111
  514. package/esm2022/a-chart/components/legend/dropdown-legend.mjs +0 -199
  515. package/esm2022/a-chart/components/legend/legend.component.mjs +0 -102
  516. package/esm2022/a-chart/components/legend/public-api.mjs +0 -4
  517. package/esm2022/a-chart/components/public-api.mjs +0 -4
  518. package/esm2022/a-chart/components/title.component.mjs +0 -99
  519. package/esm2022/a-chart/constant.mjs +0 -24
  520. package/esm2022/a-chart/public-api.mjs +0 -13
  521. package/esm2022/a-chart/types.mjs +0 -7
  522. package/esm2022/a-chart/utils.mjs +0 -37
  523. package/esm2022/a-metric-chart/a-metric-chart.component.mjs +0 -937
  524. package/esm2022/a-metric-chart/a-metric-chart.module.mjs +0 -74
  525. package/esm2022/a-metric-chart/bar-gauge/bar-gauge.component.mjs +0 -166
  526. package/esm2022/a-metric-chart/base-chart.component.mjs +0 -30
  527. package/esm2022/a-metric-chart/metric-chart-refresh.service.mjs +0 -18
  528. package/esm2022/a-metric-chart/public-api.mjs +0 -15
  529. package/esm2022/a-metric-chart/stat-chart/stat-chart.component.mjs +0 -122
  530. package/esm2022/a-metric-chart/table-chart/table-chart.component.mjs +0 -201
  531. package/esm2022/a-metric-chart/types.mjs +0 -26
  532. package/esm2022/a-metric-chart/utils/public-api.mjs +0 -4
  533. package/esm2022/a-metric-chart/utils/range.mjs +0 -35
  534. package/esm2022/a-metric-chart/utils/unit.mjs +0 -83
  535. package/esm2022/a-metric-chart/utils/util.mjs +0 -243
  536. package/esm2022/api/monitor-api.service.mjs +0 -158
  537. package/esm2022/notification/notification-util.module.mjs +0 -32
  538. package/esm2022/page-scaffold/navigation/lottie-icons/animations/dashboard.json +0 -1
  539. package/notification/notification-util.module.d.ts +0 -10
@@ -11,6 +11,8 @@ import { TranslateService } from '../../translate/public-api';
11
11
  import { LoadAction } from '../types';
12
12
  import * as i0 from "@angular/core";
13
13
  import * as i1 from "../../translate/public-api";
14
+ const _c0 = () => [410, 403];
15
+ const _c1 = (a0, a1) => ({ loading: a0, loadMore: a1 });
14
16
  function K8SResourceListFooterComponent_div_0_ng_container_1_1_ng_template_0_Template(rf, ctx) { }
15
17
  function K8SResourceListFooterComponent_div_0_ng_container_1_1_Template(rf, ctx) { if (rf & 1) {
16
18
  i0.ɵɵtemplate(0, K8SResourceListFooterComponent_div_0_ng_container_1_1_ng_template_0_Template, 0, 0, "ng-template");
@@ -20,9 +22,9 @@ function K8SResourceListFooterComponent_div_0_ng_container_1_Template(rf, ctx) {
20
22
  i0.ɵɵtemplate(1, K8SResourceListFooterComponent_div_0_ng_container_1_1_Template, 1, 0, null, 4);
21
23
  i0.ɵɵelementContainerEnd();
22
24
  } if (rf & 2) {
23
- const ctx_r3 = i0.ɵɵnextContext(2);
24
- i0.ɵɵadvance(1);
25
- i0.ɵɵproperty("ngTemplateOutlet", ctx_r3.noDataTemplate);
25
+ const ctx_r0 = i0.ɵɵnextContext(2);
26
+ i0.ɵɵadvance();
27
+ i0.ɵɵproperty("ngTemplateOutlet", ctx_r0.noDataTemplate);
26
28
  } }
27
29
  function K8SResourceListFooterComponent_div_0_ng_container_2_Template(rf, ctx) { if (rf & 1) {
28
30
  i0.ɵɵelementContainerStart(0);
@@ -30,24 +32,33 @@ function K8SResourceListFooterComponent_div_0_ng_container_2_Template(rf, ctx) {
30
32
  i0.ɵɵpipe(2, "async");
31
33
  i0.ɵɵelementContainerEnd();
32
34
  } if (rf & 2) {
33
- const ctx_r4 = i0.ɵɵnextContext(2);
34
- i0.ɵɵadvance(1);
35
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 1, ctx_r4.noDataHint$), " ");
35
+ const ctx_r0 = i0.ɵɵnextContext(2);
36
+ i0.ɵɵadvance();
37
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 1, ctx_r0.noDataHint$), " ");
36
38
  } }
37
39
  function K8SResourceListFooterComponent_div_0_Template(rf, ctx) { if (rf & 1) {
38
40
  i0.ɵɵelementStart(0, "div", 3);
39
- i0.ɵɵtemplate(1, K8SResourceListFooterComponent_div_0_ng_container_1_Template, 2, 1, "ng-container", 1);
40
- i0.ɵɵtemplate(2, K8SResourceListFooterComponent_div_0_ng_container_2_Template, 3, 3, "ng-container", 1);
41
+ i0.ɵɵtemplate(1, K8SResourceListFooterComponent_div_0_ng_container_1_Template, 2, 1, "ng-container", 1)(2, K8SResourceListFooterComponent_div_0_ng_container_2_Template, 3, 3, "ng-container", 1);
41
42
  i0.ɵɵelementEnd();
42
43
  } if (rf & 2) {
43
44
  const ctx_r0 = i0.ɵɵnextContext();
44
- i0.ɵɵadvance(1);
45
+ i0.ɵɵadvance();
45
46
  i0.ɵɵproperty("ngIf", ctx_r0.noDataTemplate);
46
- i0.ɵɵadvance(1);
47
+ i0.ɵɵadvance();
47
48
  i0.ɵɵproperty("ngIf", !ctx_r0.noDataTemplate);
48
49
  } }
49
- function K8SResourceListFooterComponent_ng_container_2_div_1_ng_container_1_Template(rf, ctx) { if (rf & 1) {
50
- const _r13 = i0.ɵɵgetCurrentView();
50
+ function K8SResourceListFooterComponent_ng_container_2_div_1_Conditional_1_0_ng_template_0_Template(rf, ctx) { }
51
+ function K8SResourceListFooterComponent_ng_container_2_div_1_Conditional_1_0_Template(rf, ctx) { if (rf & 1) {
52
+ i0.ɵɵtemplate(0, K8SResourceListFooterComponent_ng_container_2_div_1_Conditional_1_0_ng_template_0_Template, 0, 0, "ng-template");
53
+ } }
54
+ function K8SResourceListFooterComponent_ng_container_2_div_1_Conditional_1_Template(rf, ctx) { if (rf & 1) {
55
+ i0.ɵɵtemplate(0, K8SResourceListFooterComponent_ng_container_2_div_1_Conditional_1_0_Template, 1, 0, null, 4);
56
+ } if (rf & 2) {
57
+ const ctx_r0 = i0.ɵɵnextContext(3);
58
+ i0.ɵɵproperty("ngTemplateOutlet", ctx_r0.loadingErrorTemplate);
59
+ } }
60
+ function K8SResourceListFooterComponent_ng_container_2_div_1_Conditional_2_ng_container_0_Template(rf, ctx) { if (rf & 1) {
61
+ const _r2 = i0.ɵɵgetCurrentView();
51
62
  i0.ɵɵelementContainerStart(0);
52
63
  i0.ɵɵelementStart(1, "span");
53
64
  i0.ɵɵtext(2);
@@ -55,19 +66,19 @@ function K8SResourceListFooterComponent_ng_container_2_div_1_ng_container_1_Temp
55
66
  i0.ɵɵpipe(4, "translate");
56
67
  i0.ɵɵelementEnd();
57
68
  i0.ɵɵelementStart(5, "button", 7);
58
- i0.ɵɵlistener("click", function K8SResourceListFooterComponent_ng_container_2_div_1_ng_container_1_Template_button_click_5_listener() { i0.ɵɵrestoreView(_r13); const ctx_r12 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r12.retry()); });
69
+ i0.ɵɵlistener("click", function K8SResourceListFooterComponent_ng_container_2_div_1_Conditional_2_ng_container_0_Template_button_click_5_listener() { i0.ɵɵrestoreView(_r2); const ctx_r0 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r0.retry()); });
59
70
  i0.ɵɵtext(6);
60
71
  i0.ɵɵpipe(7, "translate");
61
72
  i0.ɵɵelementEnd();
62
73
  i0.ɵɵelementContainerEnd();
63
74
  } if (rf & 2) {
64
75
  i0.ɵɵadvance(2);
65
- i0.ɵɵtextInterpolate2("", i0.ɵɵpipeBind1(3, 3, "error_loading_data"), ", ", i0.ɵɵpipeBind1(4, 5, "please"), "");
76
+ i0.ɵɵtextInterpolate2("", i0.ɵɵpipeBind1(3, 3, "error_loading_data"), ",", i0.ɵɵpipeBind1(4, 5, "please"), "");
66
77
  i0.ɵɵadvance(4);
67
78
  i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(7, 7, "retry").toLowerCase(), " ");
68
79
  } }
69
- function K8SResourceListFooterComponent_ng_container_2_div_1_ng_container_3_Template(rf, ctx) { if (rf & 1) {
70
- const _r15 = i0.ɵɵgetCurrentView();
80
+ function K8SResourceListFooterComponent_ng_container_2_div_1_Conditional_2_ng_container_2_Template(rf, ctx) { if (rf & 1) {
81
+ const _r3 = i0.ɵɵgetCurrentView();
71
82
  i0.ɵɵelementContainerStart(0);
72
83
  i0.ɵɵelementStart(1, "span");
73
84
  i0.ɵɵtext(2);
@@ -75,7 +86,7 @@ function K8SResourceListFooterComponent_ng_container_2_div_1_ng_container_3_Temp
75
86
  i0.ɵɵpipe(4, "translate");
76
87
  i0.ɵɵelementEnd();
77
88
  i0.ɵɵelementStart(5, "button", 7);
78
- i0.ɵɵlistener("click", function K8SResourceListFooterComponent_ng_container_2_div_1_ng_container_3_Template_button_click_5_listener() { i0.ɵɵrestoreView(_r15); const ctx_r14 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r14.list.reload()); });
89
+ i0.ɵɵlistener("click", function K8SResourceListFooterComponent_ng_container_2_div_1_Conditional_2_ng_container_2_Template_button_click_5_listener() { i0.ɵɵrestoreView(_r3); const ctx_r0 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r0.list.reload()); });
79
90
  i0.ɵɵtext(6);
80
91
  i0.ɵɵpipe(7, "translate");
81
92
  i0.ɵɵelementEnd();
@@ -84,7 +95,7 @@ function K8SResourceListFooterComponent_ng_container_2_div_1_ng_container_3_Temp
84
95
  i0.ɵɵpipe(10, "translate");
85
96
  i0.ɵɵelementEnd();
86
97
  i0.ɵɵelementStart(11, "button", 7);
87
- i0.ɵɵlistener("click", function K8SResourceListFooterComponent_ng_container_2_div_1_ng_container_3_Template_button_click_11_listener() { i0.ɵɵrestoreView(_r15); const ctx_r16 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r16.list.loadMore()); });
98
+ i0.ɵɵlistener("click", function K8SResourceListFooterComponent_ng_container_2_div_1_Conditional_2_ng_container_2_Template_button_click_11_listener() { i0.ɵɵrestoreView(_r3); const ctx_r0 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r0.list.loadMore()); });
88
99
  i0.ɵɵtext(12);
89
100
  i0.ɵɵpipe(13, "translate");
90
101
  i0.ɵɵelementEnd();
@@ -99,7 +110,7 @@ function K8SResourceListFooterComponent_ng_container_2_div_1_ng_container_3_Temp
99
110
  i0.ɵɵadvance(3);
100
111
  i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(13, 13, "continue_load"), " ");
101
112
  } }
102
- function K8SResourceListFooterComponent_ng_container_2_div_1_ng_container_5_Template(rf, ctx) { if (rf & 1) {
113
+ function K8SResourceListFooterComponent_ng_container_2_div_1_Conditional_2_ng_container_4_Template(rf, ctx) { if (rf & 1) {
103
114
  i0.ɵɵelementContainerStart(0);
104
115
  i0.ɵɵelementStart(1, "span");
105
116
  i0.ɵɵtext(2);
@@ -110,24 +121,29 @@ function K8SResourceListFooterComponent_ng_container_2_div_1_ng_container_5_Temp
110
121
  i0.ɵɵadvance(2);
111
122
  i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(3, 1, "no_permission_description"), " ");
112
123
  } }
113
- const _c0 = function () { return [410, 403]; };
124
+ function K8SResourceListFooterComponent_ng_container_2_div_1_Conditional_2_Template(rf, ctx) { if (rf & 1) {
125
+ i0.ɵɵtemplate(0, K8SResourceListFooterComponent_ng_container_2_div_1_Conditional_2_ng_container_0_Template, 8, 9, "ng-container", 1);
126
+ i0.ɵɵpipe(1, "async");
127
+ i0.ɵɵtemplate(2, K8SResourceListFooterComponent_ng_container_2_div_1_Conditional_2_ng_container_2_Template, 14, 15, "ng-container", 1);
128
+ i0.ɵɵpipe(3, "async");
129
+ i0.ɵɵtemplate(4, K8SResourceListFooterComponent_ng_container_2_div_1_Conditional_2_ng_container_4_Template, 4, 3, "ng-container", 1);
130
+ i0.ɵɵpipe(5, "async");
131
+ } if (rf & 2) {
132
+ const ctx_r0 = i0.ɵɵnextContext(3);
133
+ i0.ɵɵproperty("ngIf", !i0.ɵɵpureFunction0(9, _c0).includes(i0.ɵɵpipeBind1(1, 3, ctx_r0.loadingErrorCode$)));
134
+ i0.ɵɵadvance(2);
135
+ i0.ɵɵproperty("ngIf", i0.ɵɵpipeBind1(3, 5, ctx_r0.loadingErrorCode$) === 410);
136
+ i0.ɵɵadvance(2);
137
+ i0.ɵɵproperty("ngIf", i0.ɵɵpipeBind1(5, 7, ctx_r0.loadingErrorCode$) === 403);
138
+ } }
114
139
  function K8SResourceListFooterComponent_ng_container_2_div_1_Template(rf, ctx) { if (rf & 1) {
115
140
  i0.ɵɵelementStart(0, "div", 6);
116
- i0.ɵɵtemplate(1, K8SResourceListFooterComponent_ng_container_2_div_1_ng_container_1_Template, 8, 9, "ng-container", 1);
117
- i0.ɵɵpipe(2, "async");
118
- i0.ɵɵtemplate(3, K8SResourceListFooterComponent_ng_container_2_div_1_ng_container_3_Template, 14, 15, "ng-container", 1);
119
- i0.ɵɵpipe(4, "async");
120
- i0.ɵɵtemplate(5, K8SResourceListFooterComponent_ng_container_2_div_1_ng_container_5_Template, 4, 3, "ng-container", 1);
121
- i0.ɵɵpipe(6, "async");
141
+ i0.ɵɵtemplate(1, K8SResourceListFooterComponent_ng_container_2_div_1_Conditional_1_Template, 1, 1)(2, K8SResourceListFooterComponent_ng_container_2_div_1_Conditional_2_Template, 6, 10);
122
142
  i0.ɵɵelementEnd();
123
143
  } if (rf & 2) {
124
- const ctx_r7 = i0.ɵɵnextContext(2);
125
- i0.ɵɵadvance(1);
126
- i0.ɵɵproperty("ngIf", !i0.ɵɵpureFunction0(9, _c0).includes(i0.ɵɵpipeBind1(2, 3, ctx_r7.loadingErrorCode$)));
127
- i0.ɵɵadvance(2);
128
- i0.ɵɵproperty("ngIf", i0.ɵɵpipeBind1(4, 5, ctx_r7.loadingErrorCode$) === 410);
129
- i0.ɵɵadvance(2);
130
- i0.ɵɵproperty("ngIf", i0.ɵɵpipeBind1(6, 7, ctx_r7.loadingErrorCode$) === 403);
144
+ const ctx_r0 = i0.ɵɵnextContext(2);
145
+ i0.ɵɵadvance();
146
+ i0.ɵɵconditional(ctx_r0.loadingErrorTemplate ? 1 : 2);
131
147
  } }
132
148
  function K8SResourceListFooterComponent_ng_container_2_ng_container_3_ng_container_1_div_1_Template(rf, ctx) { if (rf & 1) {
133
149
  i0.ɵɵelementStart(0, "div", 6);
@@ -141,9 +157,9 @@ function K8SResourceListFooterComponent_ng_container_2_ng_container_3_ng_contain
141
157
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(4, 1, "loading_please_wait"));
142
158
  } }
143
159
  function K8SResourceListFooterComponent_ng_container_2_ng_container_3_ng_container_1_div_2_Template(rf, ctx) { if (rf & 1) {
144
- const _r23 = i0.ɵɵgetCurrentView();
160
+ const _r4 = i0.ɵɵgetCurrentView();
145
161
  i0.ɵɵelementStart(0, "div", 6)(1, "button", 7);
146
- i0.ɵɵlistener("click", function K8SResourceListFooterComponent_ng_container_2_ng_container_3_ng_container_1_div_2_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r23); const ctx_r22 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r22.list.loadMore()); });
162
+ i0.ɵɵlistener("click", function K8SResourceListFooterComponent_ng_container_2_ng_container_3_ng_container_1_div_2_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r4); const ctx_r0 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r0.list.loadMore()); });
147
163
  i0.ɵɵtext(2);
148
164
  i0.ɵɵpipe(3, "translate");
149
165
  i0.ɵɵelementEnd()();
@@ -158,20 +174,17 @@ function K8SResourceListFooterComponent_ng_container_2_ng_container_3_ng_contain
158
174
  } }
159
175
  function K8SResourceListFooterComponent_ng_container_2_ng_container_3_ng_container_1_Template(rf, ctx) { if (rf & 1) {
160
176
  i0.ɵɵelementContainerStart(0);
161
- i0.ɵɵtemplate(1, K8SResourceListFooterComponent_ng_container_2_ng_container_3_ng_container_1_div_1_Template, 5, 3, "div", 5);
162
- i0.ɵɵtemplate(2, K8SResourceListFooterComponent_ng_container_2_ng_container_3_ng_container_1_div_2_Template, 4, 3, "div", 5);
163
- i0.ɵɵtemplate(3, K8SResourceListFooterComponent_ng_container_2_ng_container_3_ng_container_1_div_3_Template, 2, 0, "div", 8);
177
+ i0.ɵɵtemplate(1, K8SResourceListFooterComponent_ng_container_2_ng_container_3_ng_container_1_div_1_Template, 5, 3, "div", 5)(2, K8SResourceListFooterComponent_ng_container_2_ng_container_3_ng_container_1_div_2_Template, 4, 3, "div", 5)(3, K8SResourceListFooterComponent_ng_container_2_ng_container_3_ng_container_1_div_3_Template, 2, 0, "div", 8);
164
178
  i0.ɵɵelementContainerEnd();
165
179
  } if (rf & 2) {
166
- const meta_r18 = ctx.ngIf;
167
- i0.ɵɵadvance(1);
168
- i0.ɵɵproperty("ngIf", meta_r18.loading);
169
- i0.ɵɵadvance(1);
170
- i0.ɵɵproperty("ngIf", meta_r18.loadMore);
171
- i0.ɵɵadvance(1);
172
- i0.ɵɵproperty("ngIf", !meta_r18.loadMore && !meta_r18.loading);
180
+ const meta_r5 = ctx.ngIf;
181
+ i0.ɵɵadvance();
182
+ i0.ɵɵproperty("ngIf", meta_r5.loading);
183
+ i0.ɵɵadvance();
184
+ i0.ɵɵproperty("ngIf", meta_r5.loadMore);
185
+ i0.ɵɵadvance();
186
+ i0.ɵɵproperty("ngIf", !meta_r5.loadMore && !meta_r5.loading);
173
187
  } }
174
- const _c1 = function (a0, a1) { return { loading: a0, loadMore: a1 }; };
175
188
  function K8SResourceListFooterComponent_ng_container_2_ng_container_3_Template(rf, ctx) { if (rf & 1) {
176
189
  i0.ɵɵelementContainerStart(0);
177
190
  i0.ɵɵtemplate(1, K8SResourceListFooterComponent_ng_container_2_ng_container_3_ng_container_1_Template, 4, 3, "ng-container", 1);
@@ -180,29 +193,29 @@ function K8SResourceListFooterComponent_ng_container_2_ng_container_3_Template(r
180
193
  i0.ɵɵpipe(4, "async");
181
194
  i0.ɵɵelementContainerEnd();
182
195
  } if (rf & 2) {
183
- const ctx_r8 = i0.ɵɵnextContext(2);
184
- i0.ɵɵadvance(1);
185
- i0.ɵɵproperty("ngIf", i0.ɵɵpureFunction2(7, _c1, i0.ɵɵpipeBind1(2, 1, ctx_r8.list.loading$), i0.ɵɵpipeBind1(3, 3, !ctx_r8.autoLoad && !i0.ɵɵpipeBind1(4, 5, ctx_r8.list.loading$) && ctx_r8.list.hasMore$)));
196
+ const ctx_r0 = i0.ɵɵnextContext(2);
197
+ i0.ɵɵadvance();
198
+ i0.ɵɵproperty("ngIf", i0.ɵɵpureFunction2(7, _c1, i0.ɵɵpipeBind1(2, 1, ctx_r0.list.loading$), i0.ɵɵpipeBind1(4, 5, !ctx_r0.autoLoad && !i0.ɵɵpipeBind1(3, 3, ctx_r0.list.loading$) && ctx_r0.list.hasMore$)));
186
199
  } }
187
200
  function K8SResourceListFooterComponent_ng_container_2_Template(rf, ctx) { if (rf & 1) {
188
201
  i0.ɵɵelementContainerStart(0);
189
- i0.ɵɵtemplate(1, K8SResourceListFooterComponent_ng_container_2_div_1_Template, 7, 10, "div", 5);
202
+ i0.ɵɵtemplate(1, K8SResourceListFooterComponent_ng_container_2_div_1_Template, 3, 1, "div", 5);
190
203
  i0.ɵɵpipe(2, "async");
191
204
  i0.ɵɵtemplate(3, K8SResourceListFooterComponent_ng_container_2_ng_container_3_Template, 5, 10, "ng-container", 1);
192
205
  i0.ɵɵpipe(4, "async");
193
206
  i0.ɵɵelementContainerEnd();
194
207
  } if (rf & 2) {
195
- const ctx_r1 = i0.ɵɵnextContext();
196
- i0.ɵɵadvance(1);
197
- i0.ɵɵproperty("ngIf", i0.ɵɵpipeBind1(2, 2, ctx_r1.list.loadingError$));
208
+ const ctx_r0 = i0.ɵɵnextContext();
209
+ i0.ɵɵadvance();
210
+ i0.ɵɵproperty("ngIf", i0.ɵɵpipeBind1(2, 2, ctx_r0.list.loadingError$));
198
211
  i0.ɵɵadvance(2);
199
- i0.ɵɵproperty("ngIf", !i0.ɵɵpipeBind1(4, 4, ctx_r1.list.loadingError$));
212
+ i0.ɵɵproperty("ngIf", !i0.ɵɵpipeBind1(4, 4, ctx_r0.list.loadingError$));
200
213
  } }
201
214
  function K8SResourceListFooterComponent_aui_back_top_4_Template(rf, ctx) { if (rf & 1) {
202
215
  i0.ɵɵelement(0, "aui-back-top", 12);
203
216
  } if (rf & 2) {
204
- const ctx_r2 = i0.ɵɵnextContext();
205
- i0.ɵɵproperty("target", ctx_r2.window);
217
+ const ctx_r0 = i0.ɵɵnextContext();
218
+ i0.ɵɵproperty("target", ctx_r0.window);
206
219
  } }
207
220
  export class K8sListFooterNoDataDirective {
208
221
  constructor(templateRef) {
@@ -211,12 +224,25 @@ export class K8sListFooterNoDataDirective {
211
224
  static { this.ɵfac = function K8sListFooterNoDataDirective_Factory(t) { return new (t || K8sListFooterNoDataDirective)(i0.ɵɵdirectiveInject(i0.TemplateRef)); }; }
212
225
  static { this.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: K8sListFooterNoDataDirective, selectors: [["", "aclK8sListFooterNoData", ""]] }); }
213
226
  }
214
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(K8sListFooterNoDataDirective, [{
227
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(K8sListFooterNoDataDirective, [{
215
228
  type: Directive,
216
229
  args: [{
217
230
  selector: '[aclK8sListFooterNoData]',
218
231
  }]
219
- }], function () { return [{ type: i0.TemplateRef }]; }, null); })();
232
+ }], () => [{ type: i0.TemplateRef }], null); })();
233
+ export class K8sListFooterLoadingErrorDirective {
234
+ constructor(templateRef) {
235
+ this.templateRef = templateRef;
236
+ }
237
+ static { this.ɵfac = function K8sListFooterLoadingErrorDirective_Factory(t) { return new (t || K8sListFooterLoadingErrorDirective)(i0.ɵɵdirectiveInject(i0.TemplateRef)); }; }
238
+ static { this.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: K8sListFooterLoadingErrorDirective, selectors: [["", "aclK8sListFooterLoadingError", ""]] }); }
239
+ }
240
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(K8sListFooterLoadingErrorDirective, [{
241
+ type: Directive,
242
+ args: [{
243
+ selector: '[aclK8sListFooterLoadingError]',
244
+ }]
245
+ }], () => [{ type: i0.TemplateRef }], null); })();
220
246
  export class K8SResourceListFooterComponent extends ScrollBorderObserverDirective {
221
247
  constructor(injector, translate) {
222
248
  super(injector);
@@ -259,8 +285,10 @@ export class K8SResourceListFooterComponent extends ScrollBorderObserverDirectiv
259
285
  ? document.documentElement
260
286
  : this.scrollEl;
261
287
  // 当数据不够一屏时自动加载更多
262
- const autoLoadOneScreen$ = this.list.loadState$.pipe(map(state => state.rawResponse), filter(res => !!res), debounceTime(50), takeWhile(res => !!res.metadata?.continue &&
263
- viewEl.scrollHeight - viewEl.clientHeight < this.bottomDistance));
288
+ const autoLoadOneScreen$ = this.list.loadState$.pipe(map(state => state.rawResponse), filter(res => !!res), debounceTime(50), takeWhile(res => (!!res.metadata?.continue &&
289
+ viewEl.scrollHeight - viewEl.clientHeight < this.bottomDistance) ||
290
+ (this.firstScrollLoad &&
291
+ this.list.snapshot.items?.length < this.firstScrollLoad)));
264
292
  this.list.loadState$
265
293
  .pipe(filter(state => state.action === LoadAction.Reload), startWith(null), switchMap(() => concat(autoLoadOneScreen$, this.scrollBottomBorder)),
266
294
  // list.rawResponse$ 会处理好 loading 等状态时的 loadMore 请求,但有错误时主要主动停止
@@ -282,10 +310,12 @@ export class K8SResourceListFooterComponent extends ScrollBorderObserverDirectiv
282
310
  static { this.ɵfac = function K8SResourceListFooterComponent_Factory(t) { return new (t || K8SResourceListFooterComponent)(i0.ɵɵdirectiveInject(i0.Injector), i0.ɵɵdirectiveInject(i1.TranslateService)); }; }
283
311
  static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: K8SResourceListFooterComponent, selectors: [["acl-k8s-resource-list-footer"]], contentQueries: function K8SResourceListFooterComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {
284
312
  i0.ɵɵcontentQuery(dirIndex, K8sListFooterNoDataDirective, 5, TemplateRef);
313
+ i0.ɵɵcontentQuery(dirIndex, K8sListFooterLoadingErrorDirective, 5, TemplateRef);
285
314
  } if (rf & 2) {
286
315
  let _t;
287
316
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.noDataTemplate = _t.first);
288
- } }, inputs: { list: "list", autoLoad: "autoLoad", backTop: "backTop", bottomDistance: "bottomDistance", resourceNameTranslated: "resourceNameTranslated", resourceName: "resourceName" }, features: [i0.ɵɵInheritDefinitionFeature], decls: 5, vars: 7, consts: [["class", "empty-placeholder", 4, "ngIf"], [4, "ngIf"], [3, "target", 4, "ngIf"], [1, "empty-placeholder"], [4, "ngTemplateOutlet"], ["class", "table-placeholder", 4, "ngIf"], [1, "table-placeholder"], ["aui-button", "text", "size", "small", 3, "click"], ["class", "table-last-row--empty", 4, "ngIf"], ["icon", "spinner"], [1, "table-last-row--empty"], [1, "table-last-row--empty-inner"], [3, "target"]], template: function K8SResourceListFooterComponent_Template(rf, ctx) { if (rf & 1) {
317
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.loadingErrorTemplate = _t.first);
318
+ } }, inputs: { list: "list", autoLoad: "autoLoad", backTop: "backTop", bottomDistance: "bottomDistance", resourceNameTranslated: "resourceNameTranslated", firstScrollLoad: "firstScrollLoad", resourceName: "resourceName" }, features: [i0.ɵɵInheritDefinitionFeature], decls: 5, vars: 7, consts: [["class", "empty-placeholder", 4, "ngIf"], [4, "ngIf"], [3, "target", 4, "ngIf"], [1, "empty-placeholder"], [4, "ngTemplateOutlet"], ["class", "table-placeholder", 4, "ngIf"], [1, "table-placeholder"], ["aui-button", "text", "size", "small", 3, "click"], ["class", "table-last-row--empty", 4, "ngIf"], ["icon", "spinner"], [1, "table-last-row--empty"], [1, "table-last-row--empty-inner"], [3, "target"]], template: function K8SResourceListFooterComponent_Template(rf, ctx) { if (rf & 1) {
289
319
  i0.ɵɵtemplate(0, K8SResourceListFooterComponent_div_0_Template, 3, 2, "div", 0);
290
320
  i0.ɵɵpipe(1, "async");
291
321
  i0.ɵɵtemplate(2, K8SResourceListFooterComponent_ng_container_2_Template, 5, 6, "ng-container", 1);
@@ -307,10 +337,10 @@ __decorate([
307
337
  ObservableInput(),
308
338
  __metadata("design:type", Observable)
309
339
  ], K8SResourceListFooterComponent.prototype, "resourceName$", void 0);
310
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(K8SResourceListFooterComponent, [{
340
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(K8SResourceListFooterComponent, [{
311
341
  type: Component,
312
- args: [{ selector: 'acl-k8s-resource-list-footer', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n *ngIf=\"isEmptyList$ | async\"\n class=\"empty-placeholder\"\n>\n <ng-container *ngIf=\"noDataTemplate\">\n <ng-template *ngTemplateOutlet=\"noDataTemplate\"></ng-template>\n </ng-container>\n <ng-container *ngIf=\"!noDataTemplate\">\n {{ noDataHint$ | async }}\n </ng-container>\n</div>\n\n<ng-container *ngIf=\"!(isEmptyList$ | async)\">\n <div\n class=\"table-placeholder\"\n *ngIf=\"list.loadingError$ | async\"\n >\n <ng-container *ngIf=\"![410, 403].includes(loadingErrorCode$ | async)\">\n <span\n >{{ 'error_loading_data' | translate }},\n {{ 'please' | translate }}</span\n >\n <button\n aui-button=\"text\"\n size=\"small\"\n (click)=\"retry()\"\n >\n {{ ('retry' | translate).toLowerCase() }}\n </button>\n </ng-container>\n\n <ng-container *ngIf=\"(loadingErrorCode$ | async) === 410\">\n <span>\n {{ 'list_data_has_expired' | translate }}, {{ 'please' | translate }}\n </span>\n <button\n aui-button=\"text\"\n size=\"small\"\n (click)=\"list.reload()\"\n >\n {{ 'refresh' | translate }}\n </button>\n <span>{{ 'or' | translate }}</span>\n <button\n aui-button=\"text\"\n size=\"small\"\n (click)=\"list.loadMore()\"\n >\n {{ 'continue_load' | translate }}\n </button>\n </ng-container>\n\n <ng-container *ngIf=\"(loadingErrorCode$ | async) === 403\">\n <span>\n {{ 'no_permission_description' | translate }}\n </span>\n </ng-container>\n </div>\n\n <ng-container *ngIf=\"!(list.loadingError$ | async)\">\n <ng-container\n *ngIf=\"{\n loading: list.loading$ | async,\n loadMore: !autoLoad && !(list.loading$ | async) && list.hasMore$ | async\n } as meta\"\n >\n <div\n class=\"table-placeholder\"\n *ngIf=\"meta.loading\"\n >\n <aui-icon icon=\"spinner\"></aui-icon>\n <span>{{ 'loading_please_wait' | translate }}</span>\n </div>\n <div\n class=\"table-placeholder\"\n *ngIf=\"meta.loadMore\"\n >\n <button\n aui-button=\"text\"\n size=\"small\"\n (click)=\"list.loadMore()\"\n >\n {{ 'load_more' | translate }}\n </button>\n </div>\n <div\n class=\"table-last-row--empty\"\n *ngIf=\"!meta.loadMore && !meta.loading\"\n >\n <div class=\"table-last-row--empty-inner\"></div>\n </div>\n </ng-container>\n </ng-container>\n</ng-container>\n\n<aui-back-top\n *ngIf=\"backTop\"\n [target]=\"window\"\n></aui-back-top>\n", styles: [":host::ng-deep{position:sticky;left:0;display:flex;justify-content:center;align-items:center;z-index:1;font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m);font-weight:var(--aui-font-weight-normal);color:rgb(var(--aui-color-help-text))}:host::ng-deep .empty-placeholder,:host::ng-deep .table-placeholder{flex:1}:host::ng-deep .table-last-row--empty{height:var(--aui-border-radius-l);background-color:rgb(var(--aui-color-n-9));position:relative;margin-top:-3px;flex:1}:host::ng-deep .table-last-row--empty-inner{background-color:rgb(var(--aui-color-n-10));height:var(--aui-border-radius-l);border:1px solid rgb(var(--aui-color-n-8));border-top:0;border-bottom-left-radius:var(--aui-border-radius-l);border-bottom-right-radius:var(--aui-border-radius-l)}:host::ng-deep .table-placeholder{box-sizing:border-box;display:flex;justify-content:center;align-items:center;padding:15px 10px;min-height:60px;font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m);font-weight:var(--aui-font-weight-normal);color:rgb(var(--aui-color-placeholder-text));background-color:rgb(var(--aui-color-n-10));border:solid 1px rgb(var(--aui-color-n-8));border-radius:var(--aui-border-radius-l);position:sticky;left:0}:host::ng-deep .table-placeholder>aui-icon:first-child{margin-right:var(--aui-spacing-m)}:host::ng-deep .aui-table .aui-table__row+.table-placeholder{border-top-left-radius:0;border-top-right-radius:0}\n"] }]
313
- }], function () { return [{ type: i0.Injector }, { type: i1.TranslateService }]; }, { list: [{
342
+ args: [{ selector: 'acl-k8s-resource-list-footer', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n *ngIf=\"isEmptyList$ | async\"\n class=\"empty-placeholder\"\n>\n <ng-container *ngIf=\"noDataTemplate\">\n <ng-template *ngTemplateOutlet=\"noDataTemplate\"></ng-template>\n </ng-container>\n <ng-container *ngIf=\"!noDataTemplate\">\n {{ noDataHint$ | async }}\n </ng-container>\n</div>\n\n<ng-container *ngIf=\"!(isEmptyList$ | async)\">\n <div\n class=\"table-placeholder\"\n *ngIf=\"list.loadingError$ | async\"\n >\n @if (loadingErrorTemplate) {\n <ng-template *ngTemplateOutlet=\"loadingErrorTemplate\"></ng-template>\n } @else {\n <ng-container *ngIf=\"![410, 403].includes(loadingErrorCode$ | async)\">\n <span\n >{{ 'error_loading_data' | translate }},{{\n 'please' | translate\n }}</span\n >\n <button\n aui-button=\"text\"\n size=\"small\"\n (click)=\"retry()\"\n >\n {{ ('retry' | translate).toLowerCase() }}\n </button>\n </ng-container>\n\n <ng-container *ngIf=\"(loadingErrorCode$ | async) === 410\">\n <span>\n {{ 'list_data_has_expired' | translate }}, {{ 'please' | translate }}\n </span>\n <button\n aui-button=\"text\"\n size=\"small\"\n (click)=\"list.reload()\"\n >\n {{ 'refresh' | translate }}\n </button>\n <span>{{ 'or' | translate }}</span>\n <button\n aui-button=\"text\"\n size=\"small\"\n (click)=\"list.loadMore()\"\n >\n {{ 'continue_load' | translate }}\n </button>\n </ng-container>\n\n <ng-container *ngIf=\"(loadingErrorCode$ | async) === 403\">\n <span>\n {{ 'no_permission_description' | translate }}\n </span>\n </ng-container>\n }\n </div>\n\n <ng-container *ngIf=\"!(list.loadingError$ | async)\">\n <ng-container\n *ngIf=\"{\n loading: list.loading$ | async,\n loadMore:\n !autoLoad && !(list.loading$ | async) && list.hasMore$ | async,\n } as meta\"\n >\n <div\n class=\"table-placeholder\"\n *ngIf=\"meta.loading\"\n >\n <aui-icon icon=\"spinner\"></aui-icon>\n <span>{{ 'loading_please_wait' | translate }}</span>\n </div>\n <div\n class=\"table-placeholder\"\n *ngIf=\"meta.loadMore\"\n >\n <button\n aui-button=\"text\"\n size=\"small\"\n (click)=\"list.loadMore()\"\n >\n {{ 'load_more' | translate }}\n </button>\n </div>\n <div\n class=\"table-last-row--empty\"\n *ngIf=\"!meta.loadMore && !meta.loading\"\n >\n <div class=\"table-last-row--empty-inner\"></div>\n </div>\n </ng-container>\n </ng-container>\n</ng-container>\n\n<aui-back-top\n *ngIf=\"backTop\"\n [target]=\"window\"\n></aui-back-top>\n", styles: [":host::ng-deep{position:sticky;left:0;display:flex;justify-content:center;align-items:center;z-index:1;font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m);font-weight:var(--aui-font-weight-normal);color:rgb(var(--aui-color-help-text))}:host::ng-deep .empty-placeholder,:host::ng-deep .table-placeholder{flex:1}:host::ng-deep .table-last-row--empty{height:var(--aui-border-radius-l);background-color:rgb(var(--aui-color-n-9));position:relative;margin-top:-3px;flex:1}:host::ng-deep .table-last-row--empty-inner{background-color:rgb(var(--aui-color-n-10));height:var(--aui-border-radius-l);border:1px solid rgb(var(--aui-color-n-8));border-top:0;border-bottom-left-radius:var(--aui-border-radius-l);border-bottom-right-radius:var(--aui-border-radius-l)}:host::ng-deep .table-placeholder{box-sizing:border-box;display:flex;justify-content:center;align-items:center;padding:15px 10px;min-height:60px;font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m);font-weight:var(--aui-font-weight-normal);color:rgb(var(--aui-color-placeholder-text));background-color:rgb(var(--aui-color-n-10));border:solid 1px rgb(var(--aui-color-n-8));border-radius:var(--aui-border-radius-l);position:sticky;left:0}:host::ng-deep .table-placeholder>aui-icon:first-child{margin-right:var(--aui-spacing-m)}:host::ng-deep .aui-table .aui-table__row+.table-placeholder{border-top-left-radius:0;border-top-right-radius:0}\n"] }]
343
+ }], () => [{ type: i0.Injector }, { type: i1.TranslateService }], { list: [{
314
344
  type: Input
315
345
  }], autoLoad: [{
316
346
  type: Input
@@ -320,6 +350,8 @@ __decorate([
320
350
  type: Input
321
351
  }], resourceNameTranslated: [{
322
352
  type: Input
353
+ }], firstScrollLoad: [{
354
+ type: Input
323
355
  }], resourceNameTranslated$: [], resourceName: [{
324
356
  type: Input
325
357
  }], resourceName$: [], noDataTemplate: [{
@@ -327,5 +359,11 @@ __decorate([
327
359
  args: [K8sListFooterNoDataDirective, {
328
360
  read: TemplateRef,
329
361
  }]
362
+ }], loadingErrorTemplate: [{
363
+ type: ContentChild,
364
+ args: [K8sListFooterLoadingErrorDirective, {
365
+ read: TemplateRef,
366
+ }]
330
367
  }] }); })();
331
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL2s4cy1yZXNvdXJjZS1saXN0L2Zvb3Rlci9jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvazhzLXJlc291cmNlLWxpc3QvZm9vdGVyL3RlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7R0FHRztBQUVILE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixTQUFTLEVBQ1QsS0FBSyxFQUdMLFdBQVcsRUFDWCxRQUFRLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLFVBQVUsRUFDVixhQUFhLEVBQ2IsTUFBTSxFQUNOLFlBQVksRUFDWixvQkFBb0IsRUFDcEIsTUFBTSxFQUNOLEdBQUcsRUFDSCxTQUFTLEVBQ1QsU0FBUyxFQUNULElBQUksRUFDSixTQUFTLEVBQ1QsU0FBUyxHQUNWLE1BQU0sTUFBTSxDQUFDO0FBRWQsT0FBTyxFQUdMLFVBQVUsRUFDViw2QkFBNkIsR0FDOUIsTUFBTSx1QkFBdUIsQ0FBQztBQUMvQixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFVBQVUsRUFBb0IsTUFBTSxVQUFVLENBQUM7Ozs7O0lDbENwRCxtSEFBOEQ7OztJQURoRSw2QkFBcUM7SUFDbkMsK0ZBQThEO0lBQ2hFLDBCQUFlOzs7SUFEQyxlQUFnQztJQUFoQyx3REFBZ0M7OztJQUVoRCw2QkFBc0M7SUFDcEMsWUFDRjs7SUFBQSwwQkFBZTs7O0lBRGIsZUFDRjtJQURFLHlFQUNGOzs7SUFURiw4QkFHQztJQUNDLHVHQUVlO0lBQ2YsdUdBRWU7SUFDakIsaUJBQU07OztJQU5XLGVBQW9CO0lBQXBC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SCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7K0ZBbElVLDhCQUE4QjtvRUFBOUIsOEJBQThCO3dDQW1CM0IsNEJBQTRCLEtBQ2xDLFdBQVc7Ozs7O1lDekVyQiwrRUFVTTs7WUFFTixpR0FpRmU7O1lBRWYsaUdBR2dCOztZQWpHYiw2REFBMEI7WUFXZCxlQUE2QjtZQUE3Qiw4REFBNkI7WUFvRnpDLGVBQWE7WUFBYixrQ0FBYTs7O0FEL0JkO0lBREMsZUFBZSxFQUFFOzhCQUNPLFVBQVU7K0VBQVM7QUFLNUM7SUFEQyxlQUFlLEVBQUU7OEJBQ0gsVUFBVTtxRUFBUzt1RkFqQnZCLDhCQUE4QjtjQU4xQyxTQUFTOzJCQUNFLDhCQUE4QixtQkFHdkIsdUJBQXVCLENBQUMsTUFBTTswRkFNdEMsSUFBSTtrQkFBWixLQUFLO1lBRUcsUUFBUTtrQkFBaEIsS0FBSztZQUNHLE9BQU87a0JBQWYsS0FBSztZQUNHLGNBQWM7a0JBQXRCLEtBQUs7WUFDRyxzQkFBc0I7a0JBQTlCLEtBQUs7WUFHTix1QkFBdUIsTUFFZCxZQUFZO2tCQUFwQixLQUFLO1lBR04sYUFBYSxNQUtiLGNBQWM7a0JBSGIsWUFBWTttQkFBQyw0QkFBNEIsRUFBRTtvQkFDMUMsSUFBSSxFQUFFLFdBQVc7aUJBQ2xCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb25cbiAqIEBtb2R1bGUgazhzLXJlc291cmNlLWxpc3RcbiAqL1xuXG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIERpcmVjdGl2ZSxcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBUZW1wbGF0ZVJlZixcbiAgSW5qZWN0b3IsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgT2JzZXJ2YWJsZSxcbiAgY29tYmluZUxhdGVzdCxcbiAgY29uY2F0LFxuICBkZWJvdW5jZVRpbWUsXG4gIGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxuICBmaWx0ZXIsXG4gIG1hcCxcbiAgc3RhcnRXaXRoLFxuICBzd2l0Y2hNYXAsXG4gIHRha2UsXG4gIHRha2VVbnRpbCxcbiAgdGFrZVdoaWxlLFxufSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtcbiAgS3ViZXJuZXRlc1Jlc291cmNlLFxuICBLdWJlcm5ldGVzUmVzb3VyY2VMaXN0LFxuICBwdWJsaXNoUmVmLFxuICBTY3JvbGxCb3JkZXJPYnNlcnZlckRpcmVjdGl2ZSxcbn0gZnJvbSAnLi4vLi4vY29yZS9wdWJsaWMtYXBpJztcbmltcG9ydCB7IE9ic2VydmFibGVJbnB1dCB9IGZyb20gJy4uLy4uL2NvcmUvdXRpbHMvZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdHJhbnNsYXRlL3B1YmxpYy1hcGknO1xuaW1wb3J0IHsgTG9hZEFjdGlvbiwgU3RyZWFtTGlzdExvYWRlciB9IGZyb20gJy4uL3R5cGVzJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2FjbEs4c0xpc3RGb290ZXJOb0RhdGFdJyxcbn0pXG5leHBvcnQgY2xhc3MgSzhzTGlzdEZvb3Rlck5vRGF0YURpcmVjdGl2ZSB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55Pikge31cbn1cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FjbC1rOHMtcmVzb3VyY2UtbGlzdC1mb290ZXInLFxuICB0ZW1wbGF0ZVVybDogJ3RlbXBsYXRlLmh0bWwnLFxuICBzdHlsZVVybHM6IFsnc3R5bGVzLnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEs4U1Jlc291cmNlTGlzdEZvb3RlckNvbXBvbmVudFxuICBleHRlbmRzIFNjcm9sbEJvcmRlck9ic2VydmVyRGlyZWN0aXZlXG4gIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3lcbntcbiAgQElucHV0KCkgbGlzdDogU3RyZWFtTGlzdExvYWRlcjxLdWJlcm5ldGVzUmVzb3VyY2VMaXN0LCBLdWJlcm5ldGVzUmVzb3VyY2U+O1xuXG4gIEBJbnB1dCgpIGF1dG9Mb2FkID0gdHJ1ZTtcbiAgQElucHV0KCkgYmFja1RvcCA9IHRydWU7XG4gIEBJbnB1dCgpIGJvdHRvbURpc3RhbmNlID0gNjA7XG4gIEBJbnB1dCgpIHJlc291cmNlTmFtZVRyYW5zbGF0ZWQ6IHN0cmluZztcblxuICBAT2JzZXJ2YWJsZUlucHV0KClcbiAgcmVzb3VyY2VOYW1lVHJhbnNsYXRlZCQ6IE9ic2VydmFibGU8c3RyaW5nPjtcblxuICBASW5wdXQoKSByZXNvdXJjZU5hbWU6IHN0cmluZztcblxuICBAT2JzZXJ2YWJsZUlucHV0KClcbiAgcmVzb3VyY2VOYW1lJDogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuXG4gIEBDb250ZW50Q2hpbGQoSzhzTGlzdEZvb3Rlck5vRGF0YURpcmVjdGl2ZSwge1xuICAgIHJlYWQ6IFRlbXBsYXRlUmVmLFxuICB9KVxuICBub0RhdGFUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICBpc0VtcHR5TGlzdCQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gIG5vRGF0YUhpbnQkOiBPYnNlcnZhYmxlPHN0cmluZz47XG4gIGxvYWRpbmdFcnJvckNvZGUkOiBPYnNlcnZhYmxlPG51bWJlcj47XG5cbiAgd2luZG93ID0gd2luZG93O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGluamVjdG9yOiBJbmplY3RvcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgKSB7XG4gICAgc3VwZXIoaW5qZWN0b3IpO1xuICAgIHRoaXMub3B0aW9uID0gdGhpcy5hdXRvTG9hZCA/ICcnIDogZmFsc2U7XG4gIH1cblxuICBvdmVycmlkZSBuZ09uSW5pdCgpIHtcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xuXG4gICAgdGhpcy5sb2FkaW5nRXJyb3JDb2RlJCA9IHRoaXMubGlzdC5sb2FkaW5nRXJyb3IkLnBpcGUoXG4gICAgICBtYXAoXG4gICAgICAgIGxvYWRpbmdFcnJvciA9PlxuICAgICAgICAgIGxvYWRpbmdFcnJvciAmJiAnY29kZScgaW4gbG9hZGluZ0Vycm9yICYmIGxvYWRpbmdFcnJvci5jb2RlLFxuICAgICAgKSxcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICBwdWJsaXNoUmVmKCksXG4gICAgKTtcblxuICAgIHRoaXMuaXNFbXB0eUxpc3QkID0gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLmxpc3QuaXRlbXMkLnBpcGUobWFwKGl0ZW1zID0+IGl0ZW1zLmxlbmd0aCkpLFxuICAgICAgdGhpcy5saXN0Lmhhc01vcmUkLFxuICAgICAgdGhpcy5saXN0LmxvYWRpbmckLFxuICAgICAgdGhpcy5saXN0LmxvYWRpbmdFcnJvciQsXG4gICAgXSkucGlwZShcbiAgICAgIG1hcChcbiAgICAgICAgKFtsZW5ndGgsIGhhc01vcmUsIGxvYWRpbmcsIGxvYWRpbmdFcnJvcl0pID0+XG4gICAgICAgICAgIShsZW5ndGggfHwgaGFzTW9yZSB8fCBsb2FkaW5nIHx8IGxvYWRpbmdFcnJvciksXG4gICAgICApLFxuICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgIHB1Ymxpc2hSZWYoKSxcbiAgICApO1xuXG4gICAgdGhpcy5ub0RhdGFIaW50JCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5saXN0LnJhd1Jlc3BvbnNlJCxcbiAgICAgIHRoaXMucmVzb3VyY2VOYW1lJCxcbiAgICAgIHRoaXMucmVzb3VyY2VOYW1lVHJhbnNsYXRlZCQsXG4gICAgICB0aGlzLnRyYW5zbGF0ZS5sb2NhbGUkLFxuICAgIF0pLnBpcGUoXG4gICAgICBmaWx0ZXIoKFtyZXNdKSA9PiAhIXJlcyksXG4gICAgICBtYXAoKFt7IGtpbmQgfSwgcmVzb3VyY2VOYW1lLCByZXNvdXJjZU5hbWVUcmFuc2xhdGVkXSkgPT4ge1xuICAgICAgICBpZiAocmVzb3VyY2VOYW1lVHJhbnNsYXRlZCkge1xuICAgICAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZS5nZXQoJ25vX25hbWVkX2RhdGFfaGludCcsIHtcbiAgICAgICAgICAgIG5hbWU6IHJlc291cmNlTmFtZVRyYW5zbGF0ZWQsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocmVzb3VyY2VOYW1lIHx8IChraW5kPy5lbmRzV2l0aCgnTGlzdCcpICYmIGtpbmQubGVuZ3RoID4gNCkpIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGUuZ2V0KCdub19uYW1lZF9kYXRhX2hpbnQnLCB7XG4gICAgICAgICAgICBuYW1lOiB0aGlzLnRyYW5zbGF0ZS5nZXQoXG4gICAgICAgICAgICAgIHJlc291cmNlTmFtZSB8fFxuICAgICAgICAgICAgICAgIGtpbmQuc2xpY2UoMCwga2luZC5sYXN0SW5kZXhPZignTGlzdCcpKS50b0xvd2VyQ2FzZSgpLFxuICAgICAgICAgICAgICBudWxsLFxuICAgICAgICAgICAgICB0cnVlLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGUuZ2V0KCdub19kYXRhJyk7XG4gICAgICB9KSxcbiAgICApO1xuXG4gICAgY29uc3Qgdmlld0VsID1cbiAgICAgIHRoaXMuc2Nyb2xsRWwgPT09IHdpbmRvd1xuICAgICAgICA/IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudFxuICAgICAgICA6ICh0aGlzLnNjcm9sbEVsIGFzIEhUTUxFbGVtZW50KTtcblxuICAgIC8vIOW9k+aVsOaNruS4jeWkn+S4gOWxj+aXtuiHquWKqOWKoOi9veabtOWkmlxuICAgIGNvbnN0IGF1dG9Mb2FkT25lU2NyZWVuJCA9IHRoaXMubGlzdC5sb2FkU3RhdGUkLnBpcGUoXG4gICAgICBtYXAoc3RhdGUgPT4gc3RhdGUucmF3UmVzcG9uc2UpLFxuICAgICAgZmlsdGVyKHJlcyA9PiAhIXJlcyksXG4gICAgICBkZWJvdW5jZVRpbWUoNTApLFxuICAgICAgdGFrZVdoaWxlKFxuICAgICAgICByZXMgPT5cbiAgICAgICAgICAhIXJlcy5tZXRhZGF0YT8uY29udGludWUgJiZcbiAgICAgICAgICB2aWV3RWwuc2Nyb2xsSGVpZ2h0IC0gdmlld0VsLmNsaWVudEhlaWdodCA8IHRoaXMuYm90dG9tRGlzdGFuY2UsXG4gICAgICApLFxuICAgICk7XG4gICAgdGhpcy5saXN0LmxvYWRTdGF0ZSRcbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIoc3RhdGUgPT4gc3RhdGUuYWN0aW9uID09PSBMb2FkQWN0aW9uLlJlbG9hZCksXG4gICAgICAgIHN0YXJ0V2l0aChudWxsIGFzIHZvaWQpLFxuICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gY29uY2F0KGF1dG9Mb2FkT25lU2NyZWVuJCwgdGhpcy5zY3JvbGxCb3R0b21Cb3JkZXIpKSxcbiAgICAgICAgLy8gbGlzdC5yYXdSZXNwb25zZSQg5Lya5aSE55CG5aW9IGxvYWRpbmcg562J54q25oCB5pe255qEIGxvYWRNb3JlIOivt+axgu+8jOS9huaciemUmeivr+aXtuS4u+imgeS4u+WKqOWBnOatolxuICAgICAgICBmaWx0ZXIoKCkgPT4gIXRoaXMubGlzdC5zbmFwc2hvdC5sb2FkaW5nRXJyb3IpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JCQpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMubGlzdC5sb2FkTW9yZSgpO1xuICAgICAgfSk7XG4gIH1cblxuICByZXRyeSgpIHtcbiAgICB0aGlzLmxpc3QuaXRlbXMkLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKGl0ZW1zID0+IHtcbiAgICAgIGlmIChpdGVtcy5sZW5ndGggPiAwKSB7XG4gICAgICAgIHRoaXMubGlzdC5sb2FkTW9yZSgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5saXN0LnJlbG9hZCgpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG4iLCI8ZGl2XG4gICpuZ0lmPVwiaXNFbXB0eUxpc3QkIHwgYXN5bmNcIlxuICBjbGFzcz1cImVtcHR5LXBsYWNlaG9sZGVyXCJcbj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm5vRGF0YVRlbXBsYXRlXCI+XG4gICAgPG5nLXRlbXBsYXRlICpuZ1RlbXBsYXRlT3V0bGV0PVwibm9EYXRhVGVtcGxhdGVcIj48L25nLXRlbXBsYXRlPlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFub0RhdGFUZW1wbGF0ZVwiPlxuICAgIHt7IG5vRGF0YUhpbnQkIHwgYXN5bmMgfX1cbiAgPC9uZy1jb250YWluZXI+XG48L2Rpdj5cblxuPG5nLWNvbnRhaW5lciAqbmdJZj1cIiEoaXNFbXB0eUxpc3QkIHwgYXN5bmMpXCI+XG4gIDxkaXZcbiAgICBjbGFzcz1cInRhYmxlLXBsYWNlaG9sZGVyXCJcbiAgICAqbmdJZj1cImxpc3QubG9hZGluZ0Vycm9yJCB8IGFzeW5jXCJcbiAgPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhWzQxMCwgNDAzXS5pbmNsdWRlcyhsb2FkaW5nRXJyb3JDb2RlJCB8IGFzeW5jKVwiPlxuICAgICAgPHNwYW5cbiAgICAgICAgPnt7ICdlcnJvcl9sb2FkaW5nX2RhdGEnIHwgdHJhbnNsYXRlIH19LFxuICAgICAgICB7eyAncGxlYXNlJyB8IHRyYW5zbGF0ZSB9fTwvc3BhblxuICAgICAgPlxuICAgICAgPGJ1dHRvblxuICAgICAgICBhdWktYnV0dG9uPVwidGV4dFwiXG4gICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgIChjbGljayk9XCJyZXRyeSgpXCJcbiAgICAgID5cbiAgICAgICAge3sgKCdyZXRyeScgfCB0cmFuc2xhdGUpLnRvTG93ZXJDYXNlKCkgfX1cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIihsb2FkaW5nRXJyb3JDb2RlJCB8IGFzeW5jKSA9PT0gNDEwXCI+XG4gICAgICA8c3Bhbj5cbiAgICAgICAge3sgJ2xpc3RfZGF0YV9oYXNfZXhwaXJlZCcgfCB0cmFuc2xhdGUgfX0sIHt7ICdwbGVhc2UnIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L3NwYW4+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIGF1aS1idXR0b249XCJ0ZXh0XCJcbiAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgKGNsaWNrKT1cImxpc3QucmVsb2FkKClcIlxuICAgICAgPlxuICAgICAgICB7eyAncmVmcmVzaCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPHNwYW4+e3sgJ29yJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgYXVpLWJ1dHRvbj1cInRleHRcIlxuICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAoY2xpY2spPVwibGlzdC5sb2FkTW9yZSgpXCJcbiAgICAgID5cbiAgICAgICAge3sgJ2NvbnRpbnVlX2xvYWQnIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIobG9hZGluZ0Vycm9yQ29kZSQgfCBhc3luYykgPT09IDQwM1wiPlxuICAgICAgPHNwYW4+XG4gICAgICAgIHt7ICdub19wZXJtaXNzaW9uX2Rlc2NyaXB0aW9uJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgPC9zcGFuPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cblxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiIShsaXN0LmxvYWRpbmdFcnJvciQgfCBhc3luYylcIj5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICAqbmdJZj1cIntcbiAgICAgICAgbG9hZGluZzogbGlzdC5sb2FkaW5nJCB8IGFzeW5jLFxuICAgICAgICBsb2FkTW9yZTogIWF1dG9Mb2FkICYmICEobGlzdC5sb2FkaW5nJCB8IGFzeW5jKSAmJiBsaXN0Lmhhc01vcmUkIHwgYXN5bmNcbiAgICAgIH0gYXMgbWV0YVwiXG4gICAgPlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cInRhYmxlLXBsYWNlaG9sZGVyXCJcbiAgICAgICAgKm5nSWY9XCJtZXRhLmxvYWRpbmdcIlxuICAgICAgPlxuICAgICAgICA8YXVpLWljb24gaWNvbj1cInNwaW5uZXJcIj48L2F1aS1pY29uPlxuICAgICAgICA8c3Bhbj57eyAnbG9hZGluZ19wbGVhc2Vfd2FpdCcgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJ0YWJsZS1wbGFjZWhvbGRlclwiXG4gICAgICAgICpuZ0lmPVwibWV0YS5sb2FkTW9yZVwiXG4gICAgICA+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBhdWktYnV0dG9uPVwidGV4dFwiXG4gICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAoY2xpY2spPVwibGlzdC5sb2FkTW9yZSgpXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7ICdsb2FkX21vcmUnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwidGFibGUtbGFzdC1yb3ctLWVtcHR5XCJcbiAgICAgICAgKm5nSWY9XCIhbWV0YS5sb2FkTW9yZSAmJiAhbWV0YS5sb2FkaW5nXCJcbiAgICAgID5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLWxhc3Qtcm93LS1lbXB0eS1pbm5lclwiPjwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvbmctY29udGFpbmVyPlxuPC9uZy1jb250YWluZXI+XG5cbjxhdWktYmFjay10b3BcbiAgKm5nSWY9XCJiYWNrVG9wXCJcbiAgW3RhcmdldF09XCJ3aW5kb3dcIlxuPjwvYXVpLWJhY2stdG9wPlxuIl19
368
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(K8SResourceListFooterComponent, { className: "K8SResourceListFooterComponent" }); })();
369
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL2s4cy1yZXNvdXJjZS1saXN0L2Zvb3Rlci9jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvazhzLXJlc291cmNlLWxpc3QvZm9vdGVyL3RlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7R0FHRztBQUVILE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixTQUFTLEVBQ1QsS0FBSyxFQUdMLFdBQVcsRUFDWCxRQUFRLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLFVBQVUsRUFDVixhQUFhLEVBQ2IsTUFBTSxFQUNOLFlBQVksRUFDWixvQkFBb0IsRUFDcEIsTUFBTSxFQUNOLEdBQUcsRUFDSCxTQUFTLEVBQ1QsU0FBUyxFQUNULElBQUksRUFDSixTQUFTLEVBQ1QsU0FBUyxHQUNWLE1BQU0sTUFBTSxDQUFDO0FBRWQsT0FBTyxFQUdMLFVBQVUsRUFDViw2QkFBNkIsR0FDOUIsTUFBTSx1QkFBdUIsQ0FBQztBQUMvQixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFVBQVUsRUFBb0IsTUFBTSxVQUFVLENBQUM7Ozs7Ozs7SUNsQ3BELG1IQUFnRDs7O0lBRGxELDZCQUFxQztJQUNuQywrRkFBZ0Q7Ozs7SUFBbEMsY0FBZ0M7SUFBaEMsd0RBQWdDOzs7SUFFaEQsNkJBQXNDO0lBQ3BDLFlBQ0Y7Ozs7O0lBREUsY0FDRjtJQURFLHlFQUNGOzs7SUFURiw4QkFHQztJQUlDLEFBSEEsdUdBQXFDLDBGQUdDO0lBR3hDLGlCQUFNOzs7SUFOVyxjQUFvQjtJQUFwQiw0Q0FBb0I7SUFHcEIsY0FB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QjtZQU1ELG9CQUFvQjtrQkFIbkIsWUFBWTttQkFBQyxrQ0FBa0MsRUFBRTtvQkFDaEQsSUFBSSxFQUFFLFdBQVc7aUJBQ2xCOztrRkEzQlUsOEJBQThCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb25cbiAqIEBtb2R1bGUgazhzLXJlc291cmNlLWxpc3RcbiAqL1xuXG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIERpcmVjdGl2ZSxcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBUZW1wbGF0ZVJlZixcbiAgSW5qZWN0b3IsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgT2JzZXJ2YWJsZSxcbiAgY29tYmluZUxhdGVzdCxcbiAgY29uY2F0LFxuICBkZWJvdW5jZVRpbWUsXG4gIGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxuICBmaWx0ZXIsXG4gIG1hcCxcbiAgc3RhcnRXaXRoLFxuICBzd2l0Y2hNYXAsXG4gIHRha2UsXG4gIHRha2VVbnRpbCxcbiAgdGFrZVdoaWxlLFxufSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtcbiAgS3ViZXJuZXRlc1Jlc291cmNlLFxuICBLdWJlcm5ldGVzUmVzb3VyY2VMaXN0LFxuICBwdWJsaXNoUmVmLFxuICBTY3JvbGxCb3JkZXJPYnNlcnZlckRpcmVjdGl2ZSxcbn0gZnJvbSAnLi4vLi4vY29yZS9wdWJsaWMtYXBpJztcbmltcG9ydCB7IE9ic2VydmFibGVJbnB1dCB9IGZyb20gJy4uLy4uL2NvcmUvdXRpbHMvZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdHJhbnNsYXRlL3B1YmxpYy1hcGknO1xuaW1wb3J0IHsgTG9hZEFjdGlvbiwgU3RyZWFtTGlzdExvYWRlciB9IGZyb20gJy4uL3R5cGVzJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2FjbEs4c0xpc3RGb290ZXJOb0RhdGFdJyxcbn0pXG5leHBvcnQgY2xhc3MgSzhzTGlzdEZvb3Rlck5vRGF0YURpcmVjdGl2ZSB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55Pikge31cbn1cblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2FjbEs4c0xpc3RGb290ZXJMb2FkaW5nRXJyb3JdJyxcbn0pXG5leHBvcnQgY2xhc3MgSzhzTGlzdEZvb3RlckxvYWRpbmdFcnJvckRpcmVjdGl2ZSB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55Pikge31cbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWNsLWs4cy1yZXNvdXJjZS1saXN0LWZvb3RlcicsXG4gIHRlbXBsYXRlVXJsOiAndGVtcGxhdGUuaHRtbCcsXG4gIHN0eWxlVXJsczogWydzdHlsZXMuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgSzhTUmVzb3VyY2VMaXN0Rm9vdGVyQ29tcG9uZW50XG4gIGV4dGVuZHMgU2Nyb2xsQm9yZGVyT2JzZXJ2ZXJEaXJlY3RpdmVcbiAgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveVxue1xuICBASW5wdXQoKSBsaXN0OiBTdHJlYW1MaXN0TG9hZGVyPEt1YmVybmV0ZXNSZXNvdXJjZUxpc3QsIEt1YmVybmV0ZXNSZXNvdXJjZT47XG5cbiAgQElucHV0KCkgYXV0b0xvYWQgPSB0cnVlO1xuICBASW5wdXQoKSBiYWNrVG9wID0gdHJ1ZTtcbiAgQElucHV0KCkgYm90dG9tRGlzdGFuY2UgPSA2MDtcbiAgQElucHV0KCkgcmVzb3VyY2VOYW1lVHJhbnNsYXRlZDogc3RyaW5nO1xuICBASW5wdXQoKSBmaXJzdFNjcm9sbExvYWQ6IG51bWJlcjtcblxuICBAT2JzZXJ2YWJsZUlucHV0KClcbiAgcmVzb3VyY2VOYW1lVHJhbnNsYXRlZCQ6IE9ic2VydmFibGU8c3RyaW5nPjtcblxuICBASW5wdXQoKSByZXNvdXJjZU5hbWU6IHN0cmluZztcblxuICBAT2JzZXJ2YWJsZUlucHV0KClcbiAgcmVzb3VyY2VOYW1lJDogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuXG4gIEBDb250ZW50Q2hpbGQoSzhzTGlzdEZvb3Rlck5vRGF0YURpcmVjdGl2ZSwge1xuICAgIHJlYWQ6IFRlbXBsYXRlUmVmLFxuICB9KVxuICBub0RhdGFUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICBAQ29udGVudENoaWxkKEs4c0xpc3RGb290ZXJMb2FkaW5nRXJyb3JEaXJlY3RpdmUsIHtcbiAgICByZWFkOiBUZW1wbGF0ZVJlZixcbiAgfSlcbiAgbG9hZGluZ0Vycm9yVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgaXNFbXB0eUxpc3QkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBub0RhdGFIaW50JDogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuICBsb2FkaW5nRXJyb3JDb2RlJDogT2JzZXJ2YWJsZTxudW1iZXI+O1xuXG4gIHdpbmRvdyA9IHdpbmRvdztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICkge1xuICAgIHN1cGVyKGluamVjdG9yKTtcbiAgICB0aGlzLm9wdGlvbiA9IHRoaXMuYXV0b0xvYWQgPyAnJyA6IGZhbHNlO1xuICB9XG5cbiAgb3ZlcnJpZGUgbmdPbkluaXQoKSB7XG4gICAgc3VwZXIubmdPbkluaXQoKTtcblxuICAgIHRoaXMubG9hZGluZ0Vycm9yQ29kZSQgPSB0aGlzLmxpc3QubG9hZGluZ0Vycm9yJC5waXBlKFxuICAgICAgbWFwKFxuICAgICAgICBsb2FkaW5nRXJyb3IgPT5cbiAgICAgICAgICBsb2FkaW5nRXJyb3IgJiYgJ2NvZGUnIGluIGxvYWRpbmdFcnJvciAmJiBsb2FkaW5nRXJyb3IuY29kZSxcbiAgICAgICksXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgcHVibGlzaFJlZigpLFxuICAgICk7XG5cbiAgICB0aGlzLmlzRW1wdHlMaXN0JCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5saXN0Lml0ZW1zJC5waXBlKG1hcChpdGVtcyA9PiBpdGVtcy5sZW5ndGgpKSxcbiAgICAgIHRoaXMubGlzdC5oYXNNb3JlJCxcbiAgICAgIHRoaXMubGlzdC5sb2FkaW5nJCxcbiAgICAgIHRoaXMubGlzdC5sb2FkaW5nRXJyb3IkLFxuICAgIF0pLnBpcGUoXG4gICAgICBtYXAoXG4gICAgICAgIChbbGVuZ3RoLCBoYXNNb3JlLCBsb2FkaW5nLCBsb2FkaW5nRXJyb3JdKSA9PlxuICAgICAgICAgICEobGVuZ3RoIHx8IGhhc01vcmUgfHwgbG9hZGluZyB8fCBsb2FkaW5nRXJyb3IpLFxuICAgICAgKSxcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICBwdWJsaXNoUmVmKCksXG4gICAgKTtcblxuICAgIHRoaXMubm9EYXRhSGludCQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMubGlzdC5yYXdSZXNwb25zZSQsXG4gICAgICB0aGlzLnJlc291cmNlTmFtZSQsXG4gICAgICB0aGlzLnJlc291cmNlTmFtZVRyYW5zbGF0ZWQkLFxuICAgICAgdGhpcy50cmFuc2xhdGUubG9jYWxlJCxcbiAgICBdKS5waXBlKFxuICAgICAgZmlsdGVyKChbcmVzXSkgPT4gISFyZXMpLFxuICAgICAgbWFwKChbeyBraW5kIH0sIHJlc291cmNlTmFtZSwgcmVzb3VyY2VOYW1lVHJhbnNsYXRlZF0pID0+IHtcbiAgICAgICAgaWYgKHJlc291cmNlTmFtZVRyYW5zbGF0ZWQpIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGUuZ2V0KCdub19uYW1lZF9kYXRhX2hpbnQnLCB7XG4gICAgICAgICAgICBuYW1lOiByZXNvdXJjZU5hbWVUcmFuc2xhdGVkLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHJlc291cmNlTmFtZSB8fCAoa2luZD8uZW5kc1dpdGgoJ0xpc3QnKSAmJiBraW5kLmxlbmd0aCA+IDQpKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlLmdldCgnbm9fbmFtZWRfZGF0YV9oaW50Jywge1xuICAgICAgICAgICAgbmFtZTogdGhpcy50cmFuc2xhdGUuZ2V0KFxuICAgICAgICAgICAgICByZXNvdXJjZU5hbWUgfHxcbiAgICAgICAgICAgICAgICBraW5kLnNsaWNlKDAsIGtpbmQubGFzdEluZGV4T2YoJ0xpc3QnKSkudG9Mb3dlckNhc2UoKSxcbiAgICAgICAgICAgICAgbnVsbCxcbiAgICAgICAgICAgICAgdHJ1ZSxcbiAgICAgICAgICAgICksXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlLmdldCgnbm9fZGF0YScpO1xuICAgICAgfSksXG4gICAgKTtcblxuICAgIGNvbnN0IHZpZXdFbCA9XG4gICAgICB0aGlzLnNjcm9sbEVsID09PSB3aW5kb3dcbiAgICAgICAgPyBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnRcbiAgICAgICAgOiAodGhpcy5zY3JvbGxFbCBhcyBIVE1MRWxlbWVudCk7XG5cbiAgICAvLyDlvZPmlbDmja7kuI3lpJ/kuIDlsY/ml7boh6rliqjliqDovb3mm7TlpJpcbiAgICBjb25zdCBhdXRvTG9hZE9uZVNjcmVlbiQgPSB0aGlzLmxpc3QubG9hZFN0YXRlJC5waXBlKFxuICAgICAgbWFwKHN0YXRlID0+IHN0YXRlLnJhd1Jlc3BvbnNlKSxcbiAgICAgIGZpbHRlcihyZXMgPT4gISFyZXMpLFxuICAgICAgZGVib3VuY2VUaW1lKDUwKSxcbiAgICAgIHRha2VXaGlsZShcbiAgICAgICAgcmVzID0+XG4gICAgICAgICAgKCEhcmVzLm1ldGFkYXRhPy5jb250aW51ZSAmJlxuICAgICAgICAgICAgdmlld0VsLnNjcm9sbEhlaWdodCAtIHZpZXdFbC5jbGllbnRIZWlnaHQgPCB0aGlzLmJvdHRvbURpc3RhbmNlKSB8fFxuICAgICAgICAgICh0aGlzLmZpcnN0U2Nyb2xsTG9hZCAmJlxuICAgICAgICAgICAgdGhpcy5saXN0LnNuYXBzaG90Lml0ZW1zPy5sZW5ndGggPCB0aGlzLmZpcnN0U2Nyb2xsTG9hZCksXG4gICAgICApLFxuICAgICk7XG4gICAgdGhpcy5saXN0LmxvYWRTdGF0ZSRcbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIoc3RhdGUgPT4gc3RhdGUuYWN0aW9uID09PSBMb2FkQWN0aW9uLlJlbG9hZCksXG4gICAgICAgIHN0YXJ0V2l0aChudWxsIGFzIHZvaWQpLFxuICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gY29uY2F0KGF1dG9Mb2FkT25lU2NyZWVuJCwgdGhpcy5zY3JvbGxCb3R0b21Cb3JkZXIpKSxcbiAgICAgICAgLy8gbGlzdC5yYXdSZXNwb25zZSQg5Lya5aSE55CG5aW9IGxvYWRpbmcg562J54q25oCB5pe255qEIGxvYWRNb3JlIOivt+axgu+8jOS9huaciemUmeivr+aXtuS4u+imgeS4u+WKqOWBnOatolxuICAgICAgICBmaWx0ZXIoKCkgPT4gIXRoaXMubGlzdC5zbmFwc2hvdC5sb2FkaW5nRXJyb3IpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JCQpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMubGlzdC5sb2FkTW9yZSgpO1xuICAgICAgfSk7XG4gIH1cblxuICByZXRyeSgpIHtcbiAgICB0aGlzLmxpc3QuaXRlbXMkLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKGl0ZW1zID0+IHtcbiAgICAgIGlmIChpdGVtcy5sZW5ndGggPiAwKSB7XG4gICAgICAgIHRoaXMubGlzdC5sb2FkTW9yZSgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5saXN0LnJlbG9hZCgpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG4iLCI8ZGl2XG4gICpuZ0lmPVwiaXNFbXB0eUxpc3QkIHwgYXN5bmNcIlxuICBjbGFzcz1cImVtcHR5LXBsYWNlaG9sZGVyXCJcbj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm5vRGF0YVRlbXBsYXRlXCI+XG4gICAgPG5nLXRlbXBsYXRlICpuZ1RlbXBsYXRlT3V0bGV0PVwibm9EYXRhVGVtcGxhdGVcIj48L25nLXRlbXBsYXRlPlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFub0RhdGFUZW1wbGF0ZVwiPlxuICAgIHt7IG5vRGF0YUhpbnQkIHwgYXN5bmMgfX1cbiAgPC9uZy1jb250YWluZXI+XG48L2Rpdj5cblxuPG5nLWNvbnRhaW5lciAqbmdJZj1cIiEoaXNFbXB0eUxpc3QkIHwgYXN5bmMpXCI+XG4gIDxkaXZcbiAgICBjbGFzcz1cInRhYmxlLXBsYWNlaG9sZGVyXCJcbiAgICAqbmdJZj1cImxpc3QubG9hZGluZ0Vycm9yJCB8IGFzeW5jXCJcbiAgPlxuICAgIEBpZiAobG9hZGluZ0Vycm9yVGVtcGxhdGUpIHtcbiAgICAgIDxuZy10ZW1wbGF0ZSAqbmdUZW1wbGF0ZU91dGxldD1cImxvYWRpbmdFcnJvclRlbXBsYXRlXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICB9IEBlbHNlIHtcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhWzQxMCwgNDAzXS5pbmNsdWRlcyhsb2FkaW5nRXJyb3JDb2RlJCB8IGFzeW5jKVwiPlxuICAgICAgICA8c3BhblxuICAgICAgICAgID57eyAnZXJyb3JfbG9hZGluZ19kYXRhJyB8IHRyYW5zbGF0ZSB9fSx7e1xuICAgICAgICAgICAgJ3BsZWFzZScgfCB0cmFuc2xhdGVcbiAgICAgICAgICB9fTwvc3BhblxuICAgICAgICA+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBhdWktYnV0dG9uPVwidGV4dFwiXG4gICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAoY2xpY2spPVwicmV0cnkoKVwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyAoJ3JldHJ5JyB8IHRyYW5zbGF0ZSkudG9Mb3dlckNhc2UoKSB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiKGxvYWRpbmdFcnJvckNvZGUkIHwgYXN5bmMpID09PSA0MTBcIj5cbiAgICAgICAgPHNwYW4+XG4gICAgICAgICAge3sgJ2xpc3RfZGF0YV9oYXNfZXhwaXJlZCcgfCB0cmFuc2xhdGUgfX0sIHt7ICdwbGVhc2UnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIGF1aS1idXR0b249XCJ0ZXh0XCJcbiAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgIChjbGljayk9XCJsaXN0LnJlbG9hZCgpXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7ICdyZWZyZXNoJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPHNwYW4+e3sgJ29yJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIGF1aS1idXR0b249XCJ0ZXh0XCJcbiAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgIChjbGljayk9XCJsaXN0LmxvYWRNb3JlKClcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgJ2NvbnRpbnVlX2xvYWQnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIobG9hZGluZ0Vycm9yQ29kZSQgfCBhc3luYykgPT09IDQwM1wiPlxuICAgICAgICA8c3Bhbj5cbiAgICAgICAgICB7eyAnbm9fcGVybWlzc2lvbl9kZXNjcmlwdGlvbicgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgfVxuICA8L2Rpdj5cblxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiIShsaXN0LmxvYWRpbmdFcnJvciQgfCBhc3luYylcIj5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICAqbmdJZj1cIntcbiAgICAgICAgbG9hZGluZzogbGlzdC5sb2FkaW5nJCB8IGFzeW5jLFxuICAgICAgICBsb2FkTW9yZTpcbiAgICAgICAgICAhYXV0b0xvYWQgJiYgIShsaXN0LmxvYWRpbmckIHwgYXN5bmMpICYmIGxpc3QuaGFzTW9yZSQgfCBhc3luYyxcbiAgICAgIH0gYXMgbWV0YVwiXG4gICAgPlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cInRhYmxlLXBsYWNlaG9sZGVyXCJcbiAgICAgICAgKm5nSWY9XCJtZXRhLmxvYWRpbmdcIlxuICAgICAgPlxuICAgICAgICA8YXVpLWljb24gaWNvbj1cInNwaW5uZXJcIj48L2F1aS1pY29uPlxuICAgICAgICA8c3Bhbj57eyAnbG9hZGluZ19wbGVhc2Vfd2FpdCcgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJ0YWJsZS1wbGFjZWhvbGRlclwiXG4gICAgICAgICpuZ0lmPVwibWV0YS5sb2FkTW9yZVwiXG4gICAgICA+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBhdWktYnV0dG9uPVwidGV4dFwiXG4gICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAoY2xpY2spPVwibGlzdC5sb2FkTW9yZSgpXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7ICdsb2FkX21vcmUnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwidGFibGUtbGFzdC1yb3ctLWVtcHR5XCJcbiAgICAgICAgKm5nSWY9XCIhbWV0YS5sb2FkTW9yZSAmJiAhbWV0YS5sb2FkaW5nXCJcbiAgICAgID5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLWxhc3Qtcm93LS1lbXB0eS1pbm5lclwiPjwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvbmctY29udGFpbmVyPlxuPC9uZy1jb250YWluZXI+XG5cbjxhdWktYmFjay10b3BcbiAgKm5nSWY9XCJiYWNrVG9wXCJcbiAgW3RhcmdldF09XCJ3aW5kb3dcIlxuPjwvYXVpLWJhY2stdG9wPlxuIl19
@@ -86,9 +86,7 @@ export class K8SResourceList {
86
86
  this.bypassItems$.next(null);
87
87
  }
88
88
  }));
89
- return load$.pipe(
90
- // eslint-disable-next-line sonarjs/cognitive-complexity
91
- switchMap(({ action: leadAction, queryParams }) => this.loadMoreAction$$.pipe(filter(() => this.snapshot.hasMore), map(() => true), startWith(false), exhaustMap(loadMore => {
89
+ return load$.pipe(switchMap(({ action: leadAction, queryParams }) => this.loadMoreAction$$.pipe(filter(() => this.snapshot.hasMore), map(() => true), startWith(false), exhaustMap(loadMore => {
92
90
  if (this.timer) {
93
91
  window.clearTimeout(this.timer);
94
92
  }
@@ -149,7 +147,6 @@ export class K8SResourceList {
149
147
  }
150
148
  return this.snapshot.continueToken;
151
149
  }
152
- // eslint-disable-next-line sonarjs/cognitive-complexity
153
150
  initStreams(watcher) {
154
151
  this.rawResponse$ = this.loadState$.pipe(map(data => data.rawResponse), distinctUntilChanged(), publishRef());
155
152
  this.loading$ = this.loadState$.pipe(map(({ loading, action }) => loading && action !== LoadAction.SilentReload), distinctUntilChanged(), publishRef());
@@ -166,7 +163,7 @@ export class K8SResourceList {
166
163
  this.hasMore$ = this.continueToken$.pipe(map(token => !!token), distinctUntilChanged(), publishRef());
167
164
  this.items$ = merge(this.loadState$.pipe(map(state => (items) => {
168
165
  const newItems = state.rawResponse
169
- ? state.rawResponse.items ?? []
166
+ ? (state.rawResponse.items ?? [])
170
167
  : null;
171
168
  if (state.action === LoadAction.Reload) {
172
169
  return newItems ?? [];
@@ -223,4 +220,4 @@ function resourceCompare(a, b) {
223
220
  ? a.metadata.name.localeCompare(b.metadata.name)
224
221
  : nsCompare;
225
222
  }
226
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiazhzLXJlc291cmNlLWxpc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvazhzLXJlc291cmNlLWxpc3QvazhzLXJlc291cmNlLWxpc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHO0FBR0gsT0FBTyxFQUNMLEtBQUssRUFFTCxPQUFPLEVBQ1AsS0FBSyxFQUNMLEVBQUUsRUFDRixVQUFVLEVBQ1Ysb0JBQW9CLEVBQ3BCLFVBQVUsRUFDVixNQUFNLEVBQ04sR0FBRyxFQUNILElBQUksRUFDSixTQUFTLEVBQ1QsU0FBUyxFQUNULFNBQVMsRUFDVCxHQUFHLEVBQ0gsUUFBUSxFQUNSLGFBQWEsR0FDZCxNQUFNLE1BQU0sQ0FBQztBQUVkLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDMUMsT0FBTyxFQUtMLHVCQUF1QixFQUN2QixVQUFVLEdBRVgsTUFBTSxvQkFBb0IsQ0FBQztBQUU1QixPQUFPLEVBTUwsVUFBVSxHQUtYLE1BQU0sU0FBUyxDQUFDO0FBQ2pCLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxlQUFlLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFFdEUsTUFBTSxPQUFPLGVBQWU7SUE4QjFCLFlBQVksRUFDVixPQUFPLEVBQ1AsWUFBWSxFQUNaLGNBQWMsRUFDZCxLQUFLLEdBQUcsRUFBRSxFQUNWLE9BQU8sR0FBRyxDQUFDLEVBQ1gsT0FBTyxFQUNQLFFBQVEsR0FBRyxhQUFhLEdBQzZCO1FBaEN0QyxtQkFBYyxHQUFHLElBQUksT0FBTyxFQUFXLENBQUM7UUFDeEMscUJBQWdCLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUN2QyxtQkFBYyxHQUFHLElBQUksT0FBTyxFQUFtQixDQUFDO1FBQ2hELGNBQVMsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBWWpELGlCQUFZLEdBQUcsSUFBSSxhQUFhLENBQU0sQ0FBQyxDQUFDLENBQUM7UUFJ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O1NBQy9EO1FBQ0QsSUFBSSxPQUFPLEdBQUcsQ0FBQyxFQUFFO1lBQ2YsT0FBTyxDQUFDLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3ZEO0tBQ0Y7SUFFRCxPQUFPLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0FBQzNDLENBQUM7QUFFRCxTQUFTLGVBQWUsQ0FBQyxDQUFxQixFQUFFLENBQXFCO0lBQ25FLE1BQU0sU0FBUyxHQUNiLENBQUMsQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNqRSxPQUFPLFNBQVMsS0FBSyxDQUFDO1FBQ3BCLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7UUFDaEQsQ0FBQyxDQUFDLFNBQVMsQ0FBQztBQUNoQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb25cbiAqIEBtb2R1bGUgazhzLXJlc291cmNlLWxpc3RcbiAqL1xuXG5pbXBvcnQgeyBIdHRwRXJyb3JSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7XG4gIEVNUFRZLFxuICBPYnNlcnZhYmxlLFxuICBTdWJqZWN0LFxuICBtZXJnZSxcbiAgb2YsXG4gIGNhdGNoRXJyb3IsXG4gIGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxuICBleGhhdXN0TWFwLFxuICBmaWx0ZXIsXG4gIG1hcCxcbiAgc2NhbixcbiAgc3RhcnRXaXRoLFxuICBzd2l0Y2hNYXAsXG4gIHRha2VVbnRpbCxcbiAgdGFwLFxuICBmaW5hbGl6ZSxcbiAgUmVwbGF5U3ViamVjdCxcbn0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFdhdGNoRXZlbnQgfSBmcm9tICcuLi9hcGkvdHlwZXMnO1xuaW1wb3J0IHtcbiAgS3ViZXJuZXRlc1Jlc291cmNlLFxuICBLdWJlcm5ldGVzUmVzb3VyY2VMaXN0LFxuICBSZXNvdXJjZUxpc3RQYXJhbXMsXG4gIFN0YXR1cyxcbiAgRE9XTkdSQURFX1dBVENIX0VOQUJMRUQsXG4gIHB1Ymxpc2hSZWYsXG4gIFN0cmluZ01hcCxcbn0gZnJvbSAnLi4vY29yZS9wdWJsaWMtYXBpJztcblxuaW1wb3J0IHtcbiAgQ29uZmlnV2l0aFBhcmFtcyxcbiAgQ29uZmlnV2l0aFJvdXRlLFxuICBJbnNlcnRGbixcbiAgSXRlbXNTY2FubmVyLFxuICBMaXN0UGFyYW1zLFxuICBMb2FkQWN0aW9uLFxuICBMb2FkU25hcHNob3QsXG4gIExvYWRTdGF0ZSxcbiAgU3RyZWFtTGlzdExvYWRlcixcbiAgV2F0Y2hlcixcbn0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBleHRyYWN0TGlzdFBhcmFtc0Zyb21Sb3V0ZSwgbm9ybWFsaXplUGFyYW1zIH0gZnJvbSAnLi91dGlscyc7XG5cbmV4cG9ydCBjbGFzcyBLOFNSZXNvdXJjZUxpc3Q8XG4gIFIgZXh0ZW5kcyBLdWJlcm5ldGVzUmVzb3VyY2UgPSBLdWJlcm5ldGVzUmVzb3VyY2UsXG4gIFEgZXh0ZW5kcyBvYmplY3QgPSBSZXNvdXJjZUxpc3RQYXJhbXMsXG4gIFAgZXh0ZW5kcyBRICYgTGlzdFBhcmFtcyA9IFEgJiBMaXN0UGFyYW1zLFxuPiBpbXBsZW1lbnRzIFN0cmVhbUxpc3RMb2FkZXI8S3ViZXJuZXRlc1Jlc291cmNlTGlzdDxSPiwgUj5cbntcbiAgcHJpdmF0ZSByZWFkb25seSByZWxvYWRBY3Rpb24kJCA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgbG9hZE1vcmVBY3Rpb24kJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgaXRlbXNTY2FubmVyJCQgPSBuZXcgU3ViamVjdDxJdGVtc1NjYW5uZXI8Uj4+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSQkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBpbnNlcnRGbjogSW5zZXJ0Rm48Uj47XG5cbiAgbG9hZFN0YXRlJDogT2JzZXJ2YWJsZTxMb2FkU3RhdGU8S3ViZXJuZXRlc1Jlc291cmNlTGlzdDxSPj4+O1xuXG4gIHF1ZXJ5UGFyYW1zJDogT2JzZXJ2YWJsZTxRPjtcbiAgcmF3UmVzcG9uc2UkOiBPYnNlcnZhYmxlPEt1YmVybmV0ZXNSZXNvdXJjZUxpc3Q8Uj4+O1xuICBsb2FkaW5nJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgbG9hZGluZ0Vycm9yJDogT2JzZXJ2YWJsZTxIdHRwRXJyb3JSZXNwb25zZSB8IFN0YXR1cz47XG4gIGhhc01vcmUkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBjb250aW51ZVRva2VuJDogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuICBpdGVtcyQ6IE9ic2VydmFibGU8UltdPjtcbiAgYnlwYXNzSXRlbXMkID0gbmV3IFJlcGxheVN1YmplY3Q8UltdPigxKTtcblxuICB0aW1lcjogbnVtYmVyO1xuXG4gIHNuYXBzaG90OiBMb2FkU25hcHNob3Q8S3ViZXJuZXRlc1Jlc291cmNlTGlzdDxSPiwgUiwgUT4gPSB7fTtcblxuICBjb25zdHJ1Y3Rvcih7IGZldGNoZXIsIGFjdGl2YXRlZFJvdXRlIH06IENvbmZpZ1dpdGhSb3V0ZTxSLCBRLCBQPik7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvdW5pZmllZC1zaWduYXR1cmVzXG4gIGNvbnN0cnVjdG9yKHsgZmV0Y2hlciwgZmV0Y2hQYXJhbXMkIH06IENvbmZpZ1dpdGhQYXJhbXM8UiwgUSwgUD4pO1xuICBjb25zdHJ1Y3Rvcih7XG4gICAgZmV0Y2hlcixcbiAgICBmZXRjaFBhcmFtcyQsXG4gICAgYWN0aXZhdGVkUm91dGUsXG4gICAgbGltaXQgPSAyMCxcbiAgICBwb2xsaW5nID0gMCxcbiAgICB3YXRjaGVyLFxuICAgIGluc2VydEZuID0gZGVmYXVsdEluc2VydCxcbiAgfTogQ29uZmlnV2l0aFJvdXRlPFIsIFEsIFA+ICYgQ29uZmlnV2l0aFBhcmFtczxSLCBRLCBQPikge1xuICAgIHRoaXMuaW5zZXJ0Rm4gPSBpbnNlcnRGbjtcblxuICAgIHRoaXMucXVlcnlQYXJhbXMkID0gKFxuICAgICAgKGZldGNoUGFyYW1zJCB8fFxuICAgICAgICAoYWN0aXZhdGVkUm91dGVcbiAgICAgICAgICA/IGV4dHJhY3RMaXN0UGFyYW1zRnJvbVJvdXRlKGFjdGl2YXRlZFJvdXRlKVxuICAgICAgICAgIDogb2YobnVsbCkpKSBhcyBPYnNlcnZhYmxlPFE+XG4gICAgKS5waXBlKHB1Ymxpc2hSZWYoKSk7XG5cbiAgICBjb25zdCB2YWxpZFBvbGxpbmcgPVxuICAgICAgKHBvbGxpbmcgJiYgd2F0Y2hlciAmJiBET1dOR1JBREVfV0FUQ0hfRU5BQkxFRCkgfHwgKHBvbGxpbmcgJiYgIXdhdGNoZXIpXG4gICAgICAgID8gcG9sbGluZ1xuICAgICAgICA6IDA7XG5cbiAgICB0aGlzLmxvYWRTdGF0ZSQgPSB0aGlzLmJ1aWxkTG9hZFN0YXRlU3RyZWFtKHtcbiAgICAgIHF1ZXJ5UGFyYW1zJDogdGhpcy5xdWVyeVBhcmFtcyQsXG4gICAgICBmZXRjaGVyLFxuICAgICAgbGltaXQsXG4gICAgICBwb2xsaW5nOiB2YWxpZFBvbGxpbmcsXG4gICAgfSk7XG5cbiAgICB0aGlzLmluc2VydEZuID0gaW5zZXJ0Rm47XG5cbiAgICB0aGlzLmluaXRTdHJlYW1zKHZhbGlkUG9sbGluZyA/IG51bGwgOiB3YXRjaGVyKTtcbiAgfVxuXG4gIHJlbG9hZChzaWxlbnQgPSBmYWxzZSkge1xuICAgIHRoaXMucmVsb2FkQWN0aW9uJCQubmV4dChzaWxlbnQpO1xuICB9XG5cbiAgbG9hZE1vcmUoKSB7XG4gICAgdGhpcy5sb2FkTW9yZUFjdGlvbiQkLm5leHQoKTtcbiAgfVxuXG4gIHNjYW5JdGVtcyhzY2FubmVyOiBJdGVtc1NjYW5uZXI8Uj4pIHtcbiAgICB0aGlzLml0ZW1zU2Nhbm5lciQkLm5leHQoc2Nhbm5lcik7XG4gIH1cblxuICBkZXN0cm95KCkge1xuICAgIHRoaXMuZGVzdHJveSQkLm5leHQoKTtcbiAgICB0aGlzLmRlc3Ryb3kkJC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgY3JlYXRlKHJlc291cmNlOiBSKSB7XG4gICAgdGhpcy5zY2FuSXRlbXModGhpcy5fY3JlYXRlKHJlc291cmNlKSk7XG4gIH1cblxuICB1cGRhdGUocmVzb3VyY2U6IFIpIHtcbiAgICB0aGlzLnNjYW5JdGVtcyh0aGlzLl91cGRhdGUocmVzb3VyY2UpKTtcbiAgfVxuXG4gIGRlbGV0ZShyZXNvdXJjZT86IFIpIHtcbiAgICBpZiAoIXJlc291cmNlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuc2Nhbkl0ZW1zKHRoaXMuX2RlbGV0ZShyZXNvdXJjZSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBfY3JlYXRlKHJlc291cmNlOiBSKSB7XG4gICAgcmV0dXJuIChpdGVtczogUltdKSA9PiB7XG4gICAgICBpZiAoXG4gICAgICAgICFyZXNvdXJjZS5tZXRhZGF0YS5uYW1lXG4gICAgICAgICAgLnRvTG93ZXJDYXNlKClcbiAgICAgICAgICAuaW5jbHVkZXMoXG4gICAgICAgICAgICAodGhpcy5zbmFwc2hvdC5xdWVyeVBhcmFtcyBhcyBTdHJpbmdNYXApPy5rZXl3b3JkPy50b0xvd2VyQ2FzZSgpID8/XG4gICAgICAgICAgICAgICcnLFxuICAgICAgICAgIClcbiAgICAgICkge1xuICAgICAgICByZXR1cm4gaXRlbXM7XG4gICAgICB9XG4gICAgICByZXR1cm4gdGhpcy5pbnNlcnRGbihpdGVtcywgcmVzb3VyY2UsIHRoaXMuc25hcHNob3QuaGFzTW9yZSk7XG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgX3VwZGF0ZShyZXNvdXJjZTogUikge1xuICAgIHJldHVybiAoaXRlbXM6IFJbXSkgPT5cbiAgICAgIGl0ZW1zLm1hcChpdGVtID0+XG4gICAgICAgIGl0ZW0ubWV0YWRhdGEudWlkID09PSByZXNvdXJjZS5tZXRhZGF0YS51aWQgPyByZXNvdXJjZSA6IGl0ZW0sXG4gICAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBfZGVsZXRlKHsgbWV0YWRhdGE6IHsgdWlkIH0gfTogUikge1xuICAgIHJldHVybiAoaXRlbXM6IFJbXSkgPT4gaXRlbXMuZmlsdGVyKGl0ZW0gPT4gaXRlbS5tZXRhZGF0YS51aWQgIT09IHVpZCk7XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkTG9hZFN0YXRlU3RyZWFtKHtcbiAgICBxdWVyeVBhcmFtcyQsXG4gICAgZmV0Y2hlcixcbiAgICBwb2xsaW5nLFxuICAgIGxpbWl0LFxuICB9OiB7XG4gICAgcXVlcnlQYXJhbXMkOiBPYnNlcnZhYmxlPFE+O1xuICAgIGZldGNoZXI6IChwOiBQKSA9PiBPYnNlcnZhYmxlPEt1YmVybmV0ZXNSZXNvdXJjZUxpc3Q8Uj4+O1xuICAgIHBvbGxpbmc6IG51bWJlcjtcbiAgICBsaW1pdDogbnVtYmVyO1xuICB9KSB7XG4gICAgY29uc3QgbG9hZCQgPSBtZXJnZShcbiAgICAgIHF1ZXJ5UGFyYW1zJC5waXBlKFxuICAgICAgICBtYXAocXVlcnlQYXJhbXMgPT4gKCkgPT4gKHsgcXVlcnlQYXJhbXMsIGFjdGlvbjogTG9hZEFjdGlvbi5SZWxvYWQgfSkpLFxuICAgICAgKSxcbiAgICAgIHRoaXMucmVsb2FkQWN0aW9uJCQucGlwZShcbiAgICAgICAgbWFwKHNpbGVudCA9PiAocHJldjogeyBxdWVyeVBhcmFtcz86IFA7IGFjdGlvbj86IExvYWRBY3Rpb24gfSkgPT4gKHtcbiAgICAgICAgICAuLi5wcmV2LFxuICAgICAgICAgIGFjdGlvbjogc2lsZW50ID8gTG9hZEFjdGlvbi5TaWxlbnRSZWxvYWQgOiBMb2FkQWN0aW9uLlJlbG9hZCxcbiAgICAgICAgfSkpLFxuICAgICAgKSxcbiAgICApLnBpcGUoXG4gICAgICBzY2FuKFxuICAgICAgICAoYWNjLCBzY2FubmVyKSA9PiBzY2FubmVyKGFjYyksXG4gICAgICAgIHt9IGFzIHsgcXVlcnlQYXJhbXM/OiBQOyBhY3Rpb24/OiBMb2FkQWN0aW9uIH0sXG4gICAgICApLFxuICAgICAgdGFwKCh7IGFjdGlvbiwgcXVlcnlQYXJhbXMgfSkgPT4ge1xuICAgICAgICBpZiAoYWN0aW9uID09PSBMb2FkQWN0aW9uLlJlbG9hZCkge1xuICAgICAgICAgIHRoaXMuc25hcHNob3QgPSB7XG4gICAgICAgICAgICBxdWVyeVBhcmFtcyxcbiAgICAgICAgICB9O1xuICAgICAgICAgIHRoaXMuYnlwYXNzSXRlbXMkLm5leHQobnVsbCk7XG4gICAgICAgIH1cbiAgICAgIH0pLFxuICAgICk7XG5cbiAgICByZXR1cm4gbG9hZCQucGlwZShcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBzb25hcmpzL2NvZ25pdGl2ZS1jb21wbGV4aXR5XG4gICAgICBzd2l0Y2hNYXAoKHsgYWN0aW9uOiBsZWFkQWN0aW9uLCBxdWVyeVBhcmFtcyB9KSA9PlxuICAgICAgICB0aGlzLmxvYWRNb3JlQWN0aW9uJCQucGlwZShcbiAgICAgICAgICBmaWx0ZXIoKCkgPT4gdGhpcy5zbmFwc2hvdC5oYXNNb3JlKSxcbiAgICAgICAgICBtYXAoKCkgPT4gdHJ1ZSksXG4gICAgICAgICAgc3RhcnRXaXRoKGZhbHNlKSxcbiAgICAgICAgICBleGhhdXN0TWFwKGxvYWRNb3JlID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLnRpbWVyKSB7XG4gICAgICAgICAgICAgIHdpbmRvdy5jbGVhclRpbWVvdXQodGhpcy50aW1lcik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCB0b2tlbiA9IHRoaXMuc25hcHNob3QuY29udGludWVUb2tlbjtcbiAgICAgICAgICAgIGNvbnN0IGhhc01vcmUgPSB0aGlzLnNuYXBzaG90Lmhhc01vcmU7XG4gICAgICAgICAgICBjb25zdCBjdXJyTGVuZ3RoID0gdGhpcy5zbmFwc2hvdC5pdGVtcz8ubGVuZ3RoID8/IGxpbWl0O1xuICAgICAgICAgICAgY29uc3QgYWN0aW9uID0gbG9hZE1vcmUgPyBMb2FkQWN0aW9uLkxvYWRNb3JlIDogbGVhZEFjdGlvbjtcbiAgICAgICAgICAgIHJldHVybiBmZXRjaGVyKFxuICAgICAgICAgICAgICBub3JtYWxpemVQYXJhbXMoe1xuICAgICAgICAgICAgICAgIGxpbWl0OiBgJHtcbiAgICAgICAgICAgICAgICAgIGFjdGlvbiA9PT0gTG9hZEFjdGlvbi5TaWxlbnRSZWxvYWRcbiAgICAgICAgICAgICAgICAgICAgPyBoYXNNb3JlXG4gICAgICAgICAgICAgICAgICAgICAgPyBjdXJyTGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgOiAwXG4gICAgICAgICAgICAgICAgICAgIDogbGltaXRcbiAgICAgICAgICAgICAgICB9YCxcbiAgICAgICAgICAgICAgICBjb250aW51ZTogYWN0aW9uID09PSBMb2FkQWN0aW9uLkxvYWRNb3JlID8gdG9rZW4gOiAnJyxcbiAgICAgICAgICAgICAgICAuLi5xdWVyeVBhcmFtcyxcbiAgICAgICAgICAgICAgfSkgYXMgUCxcbiAgICAgICAgICAgICkucGlwZShcbiAgICAgICAgICAgICAgbWFwKHJhd1Jlc3BvbnNlID0+ICh7IHJhd1Jlc3BvbnNlLCBsb2FkaW5nRXJyb3I6IG51bGwgfSkpLFxuICAgICAgICAgICAgICBjYXRjaEVycm9yKChlcnI6IFN0YXR1cyB8IEh0dHBFcnJvclJlc3BvbnNlKSA9PlxuICAgICAgICAgICAgICAgIG9mKHtcbiAgICAgICAgICAgICAgICAgIGxvYWRpbmdFcnJvcjogYWN0aW9uID09PSBMb2FkQWN0aW9uLlNpbGVudFJlbG9hZCA/IG51bGwgOiBlcnIsXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgIHRhcChyZXMgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChwb2xsaW5nICYmICFyZXMubG9hZGluZ0Vycm9yKSB7XG4gICAgICAgICAgICAgICAgICB0aGlzLnRpbWVyID0gd2luZG93LnNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbG9hZCh0cnVlKTtcbiAgICAgICAgICAgICAgICAgIH0sIHBvbGxpbmcpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgIG1hcChzdGF0ZSA9PiAoe1xuICAgICAgICAgICAgICAgIC4uLnN0YXRlLFxuICAgICAgICAgICAgICAgIGFjdGlvbixcbiAgICAgICAgICAgICAgfSkpLFxuICAgICAgICAgICAgICBzdGFydFdpdGgoe1xuICAgICAgICAgICAgICAgIGFjdGlvbixcbiAgICAgICAgICAgICAgICBsb2FkaW5nOiB0cnVlLFxuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfSksXG4gICAgICAgICksXG4gICAgICApLFxuICAgICAgbWFwKHN0YXRlID0+ICh7XG4gICAgICAgIGFjdGlvbjogTG9hZEFjdGlvbi5Mb2FkTW9yZSxcbiAgICAgICAgcmF3UmVzcG9uc2U6IG51bGwsXG4gICAgICAgIGxvYWRpbmc6IGZhbHNlLFxuICAgICAgICBsb2FkaW5nRXJyb3I6IG51bGwsXG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgfSkpLFxuICAgICAgdGFwKHN0YXRlID0+IHtcbiAgICAgICAgdGhpcy5zbmFwc2hvdC5yYXdSZXNwb25zZSA9IHN0YXRlLnJhd1Jlc3BvbnNlO1xuICAgICAgICB0aGlzLnNuYXBzaG90LmxvYWRpbmdFcnJvciA9IHN0YXRlLmxvYWRpbmdFcnJvcjtcbiAgICAgICAgdGhpcy5zbmFwc2hvdC5sb2FkaW5nID1cbiAgICAgICAgICBzdGF0ZS5sb2FkaW5nICYmIHN0YXRlLmFjdGlvbiAhPT0gTG9hZEFjdGlvbi5TaWxlbnRSZWxvYWQ7XG4gICAgICAgIHRoaXMuc25hcHNob3QuY29udGludWVUb2tlbiA9IHRoaXMuZXh0cmFjdENvbnRpbnVlVG9rZW5Gcm9tU3RhdGUoc3RhdGUpO1xuICAgICAgICB0aGlzLnNuYXBzaG90Lmhhc01vcmUgPSAhIXRoaXMuc25hcHNob3QuY29udGludWVUb2tlbjtcbiAgICAgIH0pLFxuICAgICAgZmluYWxpemUoKCkgPT4ge1xuICAgICAgICB0aGlzLnNuYXBzaG90ID0ge307XG4gICAgICAgIHRoaXMuYnlwYXNzSXRlbXMkLm5leHQobnVsbCk7XG4gICAgICAgIGlmICh0aGlzLnRpbWVyKSB7XG4gICAgICAgICAgd2luZG93LmNsZWFyVGltZW91dCh0aGlzLnRpbWVyKTtcbiAgICAgICAgfVxuICAgICAgfSksXG4gICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JCQpLFxuICAgICAgcHVibGlzaFJlZigpLFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGV4dHJhY3RDb250aW51ZVRva2VuRnJvbVN0YXRlKHtcbiAgICByYXdSZXNwb25zZSxcbiAgICBsb2FkaW5nRXJyb3IsXG4gIH06IExvYWRTdGF0ZTxLdWJlcm5ldGVzUmVzb3VyY2VMaXN0PFI+Pikge1xuICAgIGlmIChyYXdSZXNwb25zZSkge1xuICAgICAgcmV0dXJuIHJhd1Jlc3BvbnNlLm1ldGFkYXRhPy5jb250aW51ZSA/PyAnJztcbiAgICB9XG5cbiAgICBpZiAobG9hZGluZ0Vycm9yICYmICdjb2RlJyBpbiBsb2FkaW5nRXJyb3IgJiYgbG9hZGluZ0Vycm9yLmNvZGUgPT09IDQxMCkge1xuICAgICAgcmV0dXJuIGxvYWRpbmdFcnJvci5tZXRhZGF0YT8uY29udGludWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuc25hcHNob3QuY29udGludWVUb2tlbjtcbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBzb25hcmpzL2NvZ25pdGl2ZS1jb21wbGV4aXR5XG4gIHByaXZhdGUgaW5pdFN0cmVhbXMod2F0Y2hlcjogV2F0Y2hlcjxSLCBRPikge1xuICAgIHRoaXMucmF3UmVzcG9uc2UkID0gdGhpcy5sb2FkU3RhdGUkLnBpcGUoXG4gICAgICBtYXAoZGF0YSA9PiBkYXRhLnJhd1Jlc3BvbnNlKSxcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICBwdWJsaXNoUmVmKCksXG4gICAgKTtcblxuICAgIHRoaXMubG9hZGluZyQgPSB0aGlzLmxvYWRTdGF0ZSQucGlwZShcbiAgICAgIG1hcChcbiAgICAgICAgKHsgbG9hZGluZywgYWN0aW9uIH0pID0+IGxvYWRpbmcgJiYgYWN0aW9uICE9PSBMb2FkQWN0aW9uLlNpbGVudFJlbG9hZCxcbiAgICAgICksXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgcHVibGlzaFJlZigpLFxuICAgICk7XG5cbiAgICB0aGlzLmxvYWRpbmdFcnJvciQgPSB0aGlzLmxvYWRTdGF0ZSQucGlwZShcbiAgICAgIG1hcChzdGF0ZSA9PiBzdGF0ZS5sb2FkaW5nRXJyb3IpLFxuICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgIHB1Ymxpc2hSZWYoKSxcbiAgICApO1xuXG4gICAgdGhpcy5jb250aW51ZVRva2VuJCA9IHRoaXMubG9hZFN0YXRlJC5waXBlKFxuICAgICAgZmlsdGVyKCh7IGxvYWRpbmcgfSkgPT4gIWxvYWRpbmcpLFxuICAgICAgc3dpdGNoTWFwKCh7IHJhd1Jlc3BvbnNlLCBsb2FkaW5nRXJyb3I6IGVyciB9KSA9PiB7XG4gICAgICAgIGlmIChyYXdSZXNwb25zZSkge1xuICAgICAgICAgIHJldHVybiBvZihyYXdSZXNwb25zZS5tZXRhZGF0YT8uY29udGludWUgPz8gJycpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChlcnIgJiYgJ2NvZGUnIGluIGVyciAmJiBlcnIuY29kZSA9PT0gNDEwKSB7XG4gICAgICAgICAgcmV0dXJuIG9mKGVyci5tZXRhZGF0YT8uY29udGludWUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBFTVBUWTtcbiAgICAgIH0pLFxuICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgIHB1Ymxpc2hSZWYoKSxcbiAgICApO1xuXG4gICAgdGhpcy5oYXNNb3JlJCA9IHRoaXMuY29udGludWVUb2tlbiQucGlwZShcbiAgICAgIG1hcCh0b2tlbiA9PiAhIXRva2VuKSxcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICBwdWJsaXNoUmVmKCksXG4gICAgKTtcblxuICAgIHRoaXMuaXRlbXMkID0gbWVyZ2UoXG4gICAgICB0aGlzLmxvYWRTdGF0ZSQucGlwZShcbiAgICAgICAgbWFwKHN0YXRlID0+IChpdGVtczogUltdKSA9PiB7XG4gICAgICAgICAgY29uc3QgbmV3SXRlbXMgPSBzdGF0ZS5yYXdSZXNwb25zZVxuICAgICAgICAgICAgPyBzdGF0ZS5yYXdSZXNwb25zZS5pdGVtcyA/PyBbXVxuICAgICAgICAgICAgOiBudWxsO1xuICAgICAgICAgIGlmIChzdGF0ZS5hY3Rpb24gPT09IExvYWRBY3Rpb24uUmVsb2FkKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3SXRlbXMgPz8gW107XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChzdGF0ZS5hY3Rpb24gPT09IExvYWRBY3Rpb24uU2lsZW50UmVsb2FkKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3SXRlbXMgPz8gaXRlbXM7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChzdGF0ZS5hY3Rpb24gPT09IExvYWRBY3Rpb24uTG9hZE1vcmUpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXdJdGVtcyA/IFsuLi5pdGVtcywgLi4ubmV3SXRlbXNdIDogaXRlbXM7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBpdGVtcztcbiAgICAgICAgfSksXG4gICAgICApLFxuICAgICAgdGhpcy5pdGVtc1NjYW5uZXIkJCxcbiAgICAgIHdhdGNoZXIgPyB0aGlzLmJ1aWxkV2F0Y2hlcih3YXRjaGVyKSA6IEVNUFRZLFxuICAgICkucGlwZShcbiAgICAgIHNjYW48SXRlbXNTY2FubmVyPFI+LCBSW10+KChhY2MsIHNjYW5uZXIpID0+IHNjYW5uZXIoYWNjKSwgW10pLFxuICAgICAgdGFwKGl0ZW1zID0+IHtcbiAgICAgICAgdGhpcy5zbmFwc2hvdC5pdGVtcyA9IGl0ZW1zO1xuICAgICAgICB0aGlzLmJ5cGFzc0l0ZW1zJC5uZXh0KGl0ZW1zKTtcbiAgICAgIH0pLFxuICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQkKSxcbiAgICAgIHB1Ymxpc2hSZWYoKSxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZFdhdGNoZXIod2F0Y2hlcjogV2F0Y2hlcjxSLCBRPikge1xuICAgIHJldHVybiB0aGlzLnJhd1Jlc3BvbnNlJC5waXBlKFxuICAgICAgZmlsdGVyKHJlcyA9PiAhIXJlcyksXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZChcbiAgICAgICAgKGEsIGIpID0+IGEubWV0YWRhdGE/LnJlc291cmNlVmVyc2lvbiA9PT0gYi5tZXRhZGF0YT8ucmVzb3VyY2VWZXJzaW9uLFxuICAgICAgKSxcbiAgICAgIHN3aXRjaE1hcChsaXN0ID0+XG4gICAgICAgIHdhdGNoZXIobGlzdC5tZXRhZGF0YT8ucmVzb3VyY2VWZXJzaW9uLCB0aGlzLnNuYXBzaG90LnF1ZXJ5UGFyYW1zKS5waXBlKFxuICAgICAgICAgIGNhdGNoRXJyb3IoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5yZWxvYWQodHJ1ZSk7XG4gICAgICAgICAgICByZXR1cm4gRU1QVFk7XG4gICAgICAgICAgfSksXG4gICAgICAgICksXG4gICAgICApLFxuICAgICAgc3dpdGNoTWFwKCh7IHR5cGUsIG9iamVjdDogcmVzb3VyY2UgfSkgPT4ge1xuICAgICAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgICAgICBjYXNlIFdhdGNoRXZlbnQuQWRkZWQ6IHtcbiAgICAgICAgICAgIHJldHVybiBvZih0aGlzLl9jcmVhdGUocmVzb3VyY2UpKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgY2FzZSBXYXRjaEV2ZW50Lk1vZGlmaWVkOiB7XG4gICAgICAgICAgICByZXR1cm4gb2YodGhpcy5fdXBkYXRlKHJlc291cmNlKSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGNhc2UgV2F0Y2hFdmVudC5EZWxldGVkOiB7XG4gICAgICAgICAgICByZXR1cm4gb2YodGhpcy5fZGVsZXRlKHJlc291cmNlKSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgIHJldHVybiBFTVBUWTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pLFxuICAgICk7XG4gIH1cbn1cblxuZnVuY3Rpb24gZGVmYXVsdEluc2VydDxUIGV4dGVuZHMgS3ViZXJuZXRlc1Jlc291cmNlPihcbiAgaXRlbXM6IFRbXSxcbiAgcmVzOiBULFxuICBoYXNNb3JlOiBib29sZWFuLFxuKSB7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgaXRlbXMubGVuZ3RoOyBpKyspIHtcbiAgICBjb25zdCBjb21wYXJlID0gcmVzb3VyY2VDb21wYXJlKHJlcywgaXRlbXNbaV0pO1xuICAgIGlmIChjb21wYXJlID09PSAwKSB7XG4gICAgICByZXR1cm4gaXRlbXMubWFwKChpdGVtLCBpbmRleCkgPT4gKGluZGV4ID09PSBpID8gcmVzIDogaXRlbSkpO1xuICAgIH1cbiAgICBpZiAoY29tcGFyZSA8IDApIHtcbiAgICAgIHJldHVybiBbLi4uaXRlbXMuc2xpY2UoMCwgaSksIHJlcywgLi4uaXRlbXMuc2xpY2UoaSldO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBoYXNNb3JlID8gaXRlbXMgOiBbLi4uaXRlbXMsIHJlc107XG59XG5cbmZ1bmN0aW9uIHJlc291cmNlQ29tcGFyZShhOiBLdWJlcm5ldGVzUmVzb3VyY2UsIGI6IEt1YmVybmV0ZXNSZXNvdXJjZSkge1xuICBjb25zdCBuc0NvbXBhcmUgPVxuICAgIGEubWV0YWRhdGEubmFtZXNwYWNlPy5sb2NhbGVDb21wYXJlKGIubWV0YWRhdGEubmFtZXNwYWNlKSA/PyAwO1xuICByZXR1cm4gbnNDb21wYXJlID09PSAwXG4gICAgPyBhLm1ldGFkYXRhLm5hbWUubG9jYWxlQ29tcGFyZShiLm1ldGFkYXRhLm5hbWUpXG4gICAgOiBuc0NvbXBhcmU7XG59XG4iXX0=
223
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiazhzLXJlc291cmNlLWxpc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvazhzLXJlc291cmNlLWxpc3QvazhzLXJlc291cmNlLWxpc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHO0FBR0gsT0FBTyxFQUNMLEtBQUssRUFFTCxPQUFPLEVBQ1AsS0FBSyxFQUNMLEVBQUUsRUFDRixVQUFVLEVBQ1Ysb0JBQW9CLEVBQ3BCLFVBQVUsRUFDVixNQUFNLEVBQ04sR0FBRyxFQUNILElBQUksRUFDSixTQUFTLEVBQ1QsU0FBUyxFQUNULFNBQVMsRUFDVCxHQUFHLEVBQ0gsUUFBUSxFQUNSLGFBQWEsR0FDZCxNQUFNLE1BQU0sQ0FBQztBQUVkLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDMUMsT0FBTyxFQUtMLHVCQUF1QixFQUN2QixVQUFVLEdBRVgsTUFBTSxvQkFBb0IsQ0FBQztBQUU1QixPQUFPLEVBTUwsVUFBVSxHQUtYLE1BQU0sU0FBUyxDQUFDO0FBQ2pCLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxlQUFlLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFFdEUsTUFBTSxPQUFPLGVBQWU7SUE4QjFCLFlBQVksRUFDVixPQUFPLEVBQ1AsWUFBWSxFQUNaLGNBQWMsRUFDZCxLQUFLLEdBQUcsRUFBRSxFQUNWLE9BQU8sR0FBRyxDQUFDLEVBQ1gsT0FBTyxFQUNQLFFBQVEsR0FBRyxhQUFhLEdBQzZCO1FBaEN0QyxtQkFBYyxHQUFHLElBQUksT0FBTyxFQUFXLENBQUM7UUFDeEMscUJBQWdCLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUN2QyxtQkFBYyxHQUFHLElBQUksT0FBTyxFQUFtQixDQUFDO1FBQ2hELGNBQVMsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBWWpELGlCQUFZLEdBQUcsSUFBSSxhQUFhLENBQU0sQ0FBQyxDQUFDLENBQUM7UUFJ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UUFDL0MsSUFBSSxPQUFPLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDbEIsT0FBTyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDaEUsQ0FBQztRQUNELElBQUksT0FBTyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ2hCLE9BQU8sQ0FBQyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN4RCxDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU8sT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7QUFDM0MsQ0FBQztBQUVELFNBQVMsZUFBZSxDQUFDLENBQXFCLEVBQUUsQ0FBcUI7SUFDbkUsTUFBTSxTQUFTLEdBQ2IsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsYUFBYSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2pFLE9BQU8sU0FBUyxLQUFLLENBQUM7UUFDcEIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztRQUNoRCxDQUFDLENBQUMsU0FBUyxDQUFDO0FBQ2hCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvblxuICogQG1vZHVsZSBrOHMtcmVzb3VyY2UtbGlzdFxuICovXG5cbmltcG9ydCB7IEh0dHBFcnJvclJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHtcbiAgRU1QVFksXG4gIE9ic2VydmFibGUsXG4gIFN1YmplY3QsXG4gIG1lcmdlLFxuICBvZixcbiAgY2F0Y2hFcnJvcixcbiAgZGlzdGluY3RVbnRpbENoYW5nZWQsXG4gIGV4aGF1c3RNYXAsXG4gIGZpbHRlcixcbiAgbWFwLFxuICBzY2FuLFxuICBzdGFydFdpdGgsXG4gIHN3aXRjaE1hcCxcbiAgdGFrZVVudGlsLFxuICB0YXAsXG4gIGZpbmFsaXplLFxuICBSZXBsYXlTdWJqZWN0LFxufSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgV2F0Y2hFdmVudCB9IGZyb20gJy4uL2FwaS90eXBlcyc7XG5pbXBvcnQge1xuICBLdWJlcm5ldGVzUmVzb3VyY2UsXG4gIEt1YmVybmV0ZXNSZXNvdXJjZUxpc3QsXG4gIFJlc291cmNlTGlzdFBhcmFtcyxcbiAgU3RhdHVzLFxuICBET1dOR1JBREVfV0FUQ0hfRU5BQkxFRCxcbiAgcHVibGlzaFJlZixcbiAgU3RyaW5nTWFwLFxufSBmcm9tICcuLi9jb3JlL3B1YmxpYy1hcGknO1xuXG5pbXBvcnQge1xuICBDb25maWdXaXRoUGFyYW1zLFxuICBDb25maWdXaXRoUm91dGUsXG4gIEluc2VydEZuLFxuICBJdGVtc1NjYW5uZXIsXG4gIExpc3RQYXJhbXMsXG4gIExvYWRBY3Rpb24sXG4gIExvYWRTbmFwc2hvdCxcbiAgTG9hZFN0YXRlLFxuICBTdHJlYW1MaXN0TG9hZGVyLFxuICBXYXRjaGVyLFxufSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IGV4dHJhY3RMaXN0UGFyYW1zRnJvbVJvdXRlLCBub3JtYWxpemVQYXJhbXMgfSBmcm9tICcuL3V0aWxzJztcblxuZXhwb3J0IGNsYXNzIEs4U1Jlc291cmNlTGlzdDxcbiAgUiBleHRlbmRzIEt1YmVybmV0ZXNSZXNvdXJjZSA9IEt1YmVybmV0ZXNSZXNvdXJjZSxcbiAgUSBleHRlbmRzIG9iamVjdCA9IFJlc291cmNlTGlzdFBhcmFtcyxcbiAgUCBleHRlbmRzIFEgJiBMaXN0UGFyYW1zID0gUSAmIExpc3RQYXJhbXMsXG4+IGltcGxlbWVudHMgU3RyZWFtTGlzdExvYWRlcjxLdWJlcm5ldGVzUmVzb3VyY2VMaXN0PFI+LCBSPlxue1xuICBwcml2YXRlIHJlYWRvbmx5IHJlbG9hZEFjdGlvbiQkID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBsb2FkTW9yZUFjdGlvbiQkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBpdGVtc1NjYW5uZXIkJCA9IG5ldyBTdWJqZWN0PEl0ZW1zU2Nhbm5lcjxSPj4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95JCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBwcml2YXRlIHJlYWRvbmx5IGluc2VydEZuOiBJbnNlcnRGbjxSPjtcblxuICBsb2FkU3RhdGUkOiBPYnNlcnZhYmxlPExvYWRTdGF0ZTxLdWJlcm5ldGVzUmVzb3VyY2VMaXN0PFI+Pj47XG5cbiAgcXVlcnlQYXJhbXMkOiBPYnNlcnZhYmxlPFE+O1xuICByYXdSZXNwb25zZSQ6IE9ic2VydmFibGU8S3ViZXJuZXRlc1Jlc291cmNlTGlzdDxSPj47XG4gIGxvYWRpbmckOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBsb2FkaW5nRXJyb3IkOiBPYnNlcnZhYmxlPEh0dHBFcnJvclJlc3BvbnNlIHwgU3RhdHVzPjtcbiAgaGFzTW9yZSQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gIGNvbnRpbnVlVG9rZW4kOiBPYnNlcnZhYmxlPHN0cmluZz47XG4gIGl0ZW1zJDogT2JzZXJ2YWJsZTxSW10+O1xuICBieXBhc3NJdGVtcyQgPSBuZXcgUmVwbGF5U3ViamVjdDxSW10+KDEpO1xuXG4gIHRpbWVyOiBudW1iZXI7XG5cbiAgc25hcHNob3Q6IExvYWRTbmFwc2hvdDxLdWJlcm5ldGVzUmVzb3VyY2VMaXN0PFI+LCBSLCBRPiA9IHt9O1xuXG4gIGNvbnN0cnVjdG9yKHsgZmV0Y2hlciwgYWN0aXZhdGVkUm91dGUgfTogQ29uZmlnV2l0aFJvdXRlPFIsIFEsIFA+KTtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC91bmlmaWVkLXNpZ25hdHVyZXNcbiAgY29uc3RydWN0b3IoeyBmZXRjaGVyLCBmZXRjaFBhcmFtcyQgfTogQ29uZmlnV2l0aFBhcmFtczxSLCBRLCBQPik7XG4gIGNvbnN0cnVjdG9yKHtcbiAgICBmZXRjaGVyLFxuICAgIGZldGNoUGFyYW1zJCxcbiAgICBhY3RpdmF0ZWRSb3V0ZSxcbiAgICBsaW1pdCA9IDIwLFxuICAgIHBvbGxpbmcgPSAwLFxuICAgIHdhdGNoZXIsXG4gICAgaW5zZXJ0Rm4gPSBkZWZhdWx0SW5zZXJ0LFxuICB9OiBDb25maWdXaXRoUm91dGU8UiwgUSwgUD4gJiBDb25maWdXaXRoUGFyYW1zPFIsIFEsIFA+KSB7XG4gICAgdGhpcy5pbnNlcnRGbiA9IGluc2VydEZuO1xuXG4gICAgdGhpcy5xdWVyeVBhcmFtcyQgPSAoXG4gICAgICAoZmV0Y2hQYXJhbXMkIHx8XG4gICAgICAgIChhY3RpdmF0ZWRSb3V0ZVxuICAgICAgICAgID8gZXh0cmFjdExpc3RQYXJhbXNGcm9tUm91dGUoYWN0aXZhdGVkUm91dGUpXG4gICAgICAgICAgOiBvZihudWxsKSkpIGFzIE9ic2VydmFibGU8UT5cbiAgICApLnBpcGUocHVibGlzaFJlZigpKTtcblxuICAgIGNvbnN0IHZhbGlkUG9sbGluZyA9XG4gICAgICAocG9sbGluZyAmJiB3YXRjaGVyICYmIERPV05HUkFERV9XQVRDSF9FTkFCTEVEKSB8fCAocG9sbGluZyAmJiAhd2F0Y2hlcilcbiAgICAgICAgPyBwb2xsaW5nXG4gICAgICAgIDogMDtcblxuICAgIHRoaXMubG9hZFN0YXRlJCA9IHRoaXMuYnVpbGRMb2FkU3RhdGVTdHJlYW0oe1xuICAgICAgcXVlcnlQYXJhbXMkOiB0aGlzLnF1ZXJ5UGFyYW1zJCxcbiAgICAgIGZldGNoZXIsXG4gICAgICBsaW1pdCxcbiAgICAgIHBvbGxpbmc6IHZhbGlkUG9sbGluZyxcbiAgICB9KTtcblxuICAgIHRoaXMuaW5zZXJ0Rm4gPSBpbnNlcnRGbjtcblxuICAgIHRoaXMuaW5pdFN0cmVhbXModmFsaWRQb2xsaW5nID8gbnVsbCA6IHdhdGNoZXIpO1xuICB9XG5cbiAgcmVsb2FkKHNpbGVudCA9IGZhbHNlKSB7XG4gICAgdGhpcy5yZWxvYWRBY3Rpb24kJC5uZXh0KHNpbGVudCk7XG4gIH1cblxuICBsb2FkTW9yZSgpIHtcbiAgICB0aGlzLmxvYWRNb3JlQWN0aW9uJCQubmV4dCgpO1xuICB9XG5cbiAgc2Nhbkl0ZW1zKHNjYW5uZXI6IEl0ZW1zU2Nhbm5lcjxSPikge1xuICAgIHRoaXMuaXRlbXNTY2FubmVyJCQubmV4dChzY2FubmVyKTtcbiAgfVxuXG4gIGRlc3Ryb3koKSB7XG4gICAgdGhpcy5kZXN0cm95JCQubmV4dCgpO1xuICAgIHRoaXMuZGVzdHJveSQkLmNvbXBsZXRlKCk7XG4gIH1cblxuICBjcmVhdGUocmVzb3VyY2U6IFIpIHtcbiAgICB0aGlzLnNjYW5JdGVtcyh0aGlzLl9jcmVhdGUocmVzb3VyY2UpKTtcbiAgfVxuXG4gIHVwZGF0ZShyZXNvdXJjZTogUikge1xuICAgIHRoaXMuc2Nhbkl0ZW1zKHRoaXMuX3VwZGF0ZShyZXNvdXJjZSkpO1xuICB9XG5cbiAgZGVsZXRlKHJlc291cmNlPzogUikge1xuICAgIGlmICghcmVzb3VyY2UpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5zY2FuSXRlbXModGhpcy5fZGVsZXRlKHJlc291cmNlKSk7XG4gIH1cblxuICBwcml2YXRlIF9jcmVhdGUocmVzb3VyY2U6IFIpIHtcbiAgICByZXR1cm4gKGl0ZW1zOiBSW10pID0+IHtcbiAgICAgIGlmIChcbiAgICAgICAgIXJlc291cmNlLm1ldGFkYXRhLm5hbWVcbiAgICAgICAgICAudG9Mb3dlckNhc2UoKVxuICAgICAgICAgIC5pbmNsdWRlcyhcbiAgICAgICAgICAgICh0aGlzLnNuYXBzaG90LnF1ZXJ5UGFyYW1zIGFzIFN0cmluZ01hcCk/LmtleXdvcmQ/LnRvTG93ZXJDYXNlKCkgPz9cbiAgICAgICAgICAgICAgJycsXG4gICAgICAgICAgKVxuICAgICAgKSB7XG4gICAgICAgIHJldHVybiBpdGVtcztcbiAgICAgIH1cbiAgICAgIHJldHVybiB0aGlzLmluc2VydEZuKGl0ZW1zLCByZXNvdXJjZSwgdGhpcy5zbmFwc2hvdC5oYXNNb3JlKTtcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBfdXBkYXRlKHJlc291cmNlOiBSKSB7XG4gICAgcmV0dXJuIChpdGVtczogUltdKSA9PlxuICAgICAgaXRlbXMubWFwKGl0ZW0gPT5cbiAgICAgICAgaXRlbS5tZXRhZGF0YS51aWQgPT09IHJlc291cmNlLm1ldGFkYXRhLnVpZCA/IHJlc291cmNlIDogaXRlbSxcbiAgICAgICk7XG4gIH1cblxuICBwcml2YXRlIF9kZWxldGUoeyBtZXRhZGF0YTogeyB1aWQgfSB9OiBSKSB7XG4gICAgcmV0dXJuIChpdGVtczogUltdKSA9PiBpdGVtcy5maWx0ZXIoaXRlbSA9PiBpdGVtLm1ldGFkYXRhLnVpZCAhPT0gdWlkKTtcbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRMb2FkU3RhdGVTdHJlYW0oe1xuICAgIHF1ZXJ5UGFyYW1zJCxcbiAgICBmZXRjaGVyLFxuICAgIHBvbGxpbmcsXG4gICAgbGltaXQsXG4gIH06IHtcbiAgICBxdWVyeVBhcmFtcyQ6IE9ic2VydmFibGU8UT47XG4gICAgZmV0Y2hlcjogKHA6IFApID0+IE9ic2VydmFibGU8S3ViZXJuZXRlc1Jlc291cmNlTGlzdDxSPj47XG4gICAgcG9sbGluZzogbnVtYmVyO1xuICAgIGxpbWl0OiBudW1iZXI7XG4gIH0pIHtcbiAgICBjb25zdCBsb2FkJCA9IG1lcmdlKFxuICAgICAgcXVlcnlQYXJhbXMkLnBpcGUoXG4gICAgICAgIG1hcChxdWVyeVBhcmFtcyA9PiAoKSA9PiAoeyBxdWVyeVBhcmFtcywgYWN0aW9uOiBMb2FkQWN0aW9uLlJlbG9hZCB9KSksXG4gICAgICApLFxuICAgICAgdGhpcy5yZWxvYWRBY3Rpb24kJC5waXBlKFxuICAgICAgICBtYXAoc2lsZW50ID0+IChwcmV2OiB7IHF1ZXJ5UGFyYW1zPzogUDsgYWN0aW9uPzogTG9hZEFjdGlvbiB9KSA9PiAoe1xuICAgICAgICAgIC4uLnByZXYsXG4gICAgICAgICAgYWN0aW9uOiBzaWxlbnQgPyBMb2FkQWN0aW9uLlNpbGVudFJlbG9hZCA6IExvYWRBY3Rpb24uUmVsb2FkLFxuICAgICAgICB9KSksXG4gICAgICApLFxuICAgICkucGlwZShcbiAgICAgIHNjYW4oXG4gICAgICAgIChhY2MsIHNjYW5uZXIpID0+IHNjYW5uZXIoYWNjKSxcbiAgICAgICAge30gYXMgeyBxdWVyeVBhcmFtcz86IFA7IGFjdGlvbj86IExvYWRBY3Rpb24gfSxcbiAgICAgICksXG4gICAgICB0YXAoKHsgYWN0aW9uLCBxdWVyeVBhcmFtcyB9KSA9PiB7XG4gICAgICAgIGlmIChhY3Rpb24gPT09IExvYWRBY3Rpb24uUmVsb2FkKSB7XG4gICAgICAgICAgdGhpcy5zbmFwc2hvdCA9IHtcbiAgICAgICAgICAgIHF1ZXJ5UGFyYW1zLFxuICAgICAgICAgIH07XG4gICAgICAgICAgdGhpcy5ieXBhc3NJdGVtcyQubmV4dChudWxsKTtcbiAgICAgICAgfVxuICAgICAgfSksXG4gICAgKTtcblxuICAgIHJldHVybiBsb2FkJC5waXBlKFxuICAgICAgc3dpdGNoTWFwKCh7IGFjdGlvbjogbGVhZEFjdGlvbiwgcXVlcnlQYXJhbXMgfSkgPT5cbiAgICAgICAgdGhpcy5sb2FkTW9yZUFjdGlvbiQkLnBpcGUoXG4gICAgICAgICAgZmlsdGVyKCgpID0+IHRoaXMuc25hcHNob3QuaGFzTW9yZSksXG4gICAgICAgICAgbWFwKCgpID0+IHRydWUpLFxuICAgICAgICAgIHN0YXJ0V2l0aChmYWxzZSksXG4gICAgICAgICAgZXhoYXVzdE1hcChsb2FkTW9yZSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy50aW1lcikge1xuICAgICAgICAgICAgICB3aW5kb3cuY2xlYXJUaW1lb3V0KHRoaXMudGltZXIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLnNuYXBzaG90LmNvbnRpbnVlVG9rZW47XG4gICAgICAgICAgICBjb25zdCBoYXNNb3JlID0gdGhpcy5zbmFwc2hvdC5oYXNNb3JlO1xuICAgICAgICAgICAgY29uc3QgY3Vyckxlbmd0aCA9IHRoaXMuc25hcHNob3QuaXRlbXM/Lmxlbmd0aCA/PyBsaW1pdDtcbiAgICAgICAgICAgIGNvbnN0IGFjdGlvbiA9IGxvYWRNb3JlID8gTG9hZEFjdGlvbi5Mb2FkTW9yZSA6IGxlYWRBY3Rpb247XG4gICAgICAgICAgICByZXR1cm4gZmV0Y2hlcihcbiAgICAgICAgICAgICAgbm9ybWFsaXplUGFyYW1zKHtcbiAgICAgICAgICAgICAgICBsaW1pdDogYCR7XG4gICAgICAgICAgICAgICAgICBhY3Rpb24gPT09IExvYWRBY3Rpb24uU2lsZW50UmVsb2FkXG4gICAgICAgICAgICAgICAgICAgID8gaGFzTW9yZVxuICAgICAgICAgICAgICAgICAgICAgID8gY3Vyckxlbmd0aFxuICAgICAgICAgICAgICAgICAgICAgIDogMFxuICAgICAgICAgICAgICAgICAgICA6IGxpbWl0XG4gICAgICAgICAgICAgICAgfWAsXG4gICAgICAgICAgICAgICAgY29udGludWU6IGFjdGlvbiA9PT0gTG9hZEFjdGlvbi5Mb2FkTW9yZSA/IHRva2VuIDogJycsXG4gICAgICAgICAgICAgICAgLi4ucXVlcnlQYXJhbXMsXG4gICAgICAgICAgICAgIH0pIGFzIFAsXG4gICAgICAgICAgICApLnBpcGUoXG4gICAgICAgICAgICAgIG1hcChyYXdSZXNwb25zZSA9PiAoeyByYXdSZXNwb25zZSwgbG9hZGluZ0Vycm9yOiBudWxsIH0pKSxcbiAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyOiBTdGF0dXMgfCBIdHRwRXJyb3JSZXNwb25zZSkgPT5cbiAgICAgICAgICAgICAgICBvZih7XG4gICAgICAgICAgICAgICAgICBsb2FkaW5nRXJyb3I6IGFjdGlvbiA9PT0gTG9hZEFjdGlvbi5TaWxlbnRSZWxvYWQgPyBudWxsIDogZXJyLFxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICB0YXAocmVzID0+IHtcbiAgICAgICAgICAgICAgICBpZiAocG9sbGluZyAmJiAhcmVzLmxvYWRpbmdFcnJvcikge1xuICAgICAgICAgICAgICAgICAgdGhpcy50aW1lciA9IHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWxvYWQodHJ1ZSk7XG4gICAgICAgICAgICAgICAgICB9LCBwb2xsaW5nKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICBtYXAoc3RhdGUgPT4gKHtcbiAgICAgICAgICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgICAgICAgICBhY3Rpb24sXG4gICAgICAgICAgICAgIH0pKSxcbiAgICAgICAgICAgICAgc3RhcnRXaXRoKHtcbiAgICAgICAgICAgICAgICBhY3Rpb24sXG4gICAgICAgICAgICAgICAgbG9hZGluZzogdHJ1ZSxcbiAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0pLFxuICAgICAgICApLFxuICAgICAgKSxcbiAgICAgIG1hcChzdGF0ZSA9PiAoe1xuICAgICAgICBhY3Rpb246IExvYWRBY3Rpb24uTG9hZE1vcmUsXG4gICAgICAgIHJhd1Jlc3BvbnNlOiBudWxsLFxuICAgICAgICBsb2FkaW5nOiBmYWxzZSxcbiAgICAgICAgbG9hZGluZ0Vycm9yOiBudWxsLFxuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgIH0pKSxcbiAgICAgIHRhcChzdGF0ZSA9PiB7XG4gICAgICAgIHRoaXMuc25hcHNob3QucmF3UmVzcG9uc2UgPSBzdGF0ZS5yYXdSZXNwb25zZTtcbiAgICAgICAgdGhpcy5zbmFwc2hvdC5sb2FkaW5nRXJyb3IgPSBzdGF0ZS5sb2FkaW5nRXJyb3I7XG4gICAgICAgIHRoaXMuc25hcHNob3QubG9hZGluZyA9XG4gICAgICAgICAgc3RhdGUubG9hZGluZyAmJiBzdGF0ZS5hY3Rpb24gIT09IExvYWRBY3Rpb24uU2lsZW50UmVsb2FkO1xuICAgICAgICB0aGlzLnNuYXBzaG90LmNvbnRpbnVlVG9rZW4gPSB0aGlzLmV4dHJhY3RDb250aW51ZVRva2VuRnJvbVN0YXRlKHN0YXRlKTtcbiAgICAgICAgdGhpcy5zbmFwc2hvdC5oYXNNb3JlID0gISF0aGlzLnNuYXBzaG90LmNvbnRpbnVlVG9rZW47XG4gICAgICB9KSxcbiAgICAgIGZpbmFsaXplKCgpID0+IHtcbiAgICAgICAgdGhpcy5zbmFwc2hvdCA9IHt9O1xuICAgICAgICB0aGlzLmJ5cGFzc0l0ZW1zJC5uZXh0KG51bGwpO1xuICAgICAgICBpZiAodGhpcy50aW1lcikge1xuICAgICAgICAgIHdpbmRvdy5jbGVhclRpbWVvdXQodGhpcy50aW1lcik7XG4gICAgICAgIH1cbiAgICAgIH0pLFxuICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQkKSxcbiAgICAgIHB1Ymxpc2hSZWYoKSxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBleHRyYWN0Q29udGludWVUb2tlbkZyb21TdGF0ZSh7XG4gICAgcmF3UmVzcG9uc2UsXG4gICAgbG9hZGluZ0Vycm9yLFxuICB9OiBMb2FkU3RhdGU8S3ViZXJuZXRlc1Jlc291cmNlTGlzdDxSPj4pIHtcbiAgICBpZiAocmF3UmVzcG9uc2UpIHtcbiAgICAgIHJldHVybiByYXdSZXNwb25zZS5tZXRhZGF0YT8uY29udGludWUgPz8gJyc7XG4gICAgfVxuXG4gICAgaWYgKGxvYWRpbmdFcnJvciAmJiAnY29kZScgaW4gbG9hZGluZ0Vycm9yICYmIGxvYWRpbmdFcnJvci5jb2RlID09PSA0MTApIHtcbiAgICAgIHJldHVybiBsb2FkaW5nRXJyb3IubWV0YWRhdGE/LmNvbnRpbnVlO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnNuYXBzaG90LmNvbnRpbnVlVG9rZW47XG4gIH1cblxuICBwcml2YXRlIGluaXRTdHJlYW1zKHdhdGNoZXI6IFdhdGNoZXI8UiwgUT4pIHtcbiAgICB0aGlzLnJhd1Jlc3BvbnNlJCA9IHRoaXMubG9hZFN0YXRlJC5waXBlKFxuICAgICAgbWFwKGRhdGEgPT4gZGF0YS5yYXdSZXNwb25zZSksXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgcHVibGlzaFJlZigpLFxuICAgICk7XG5cbiAgICB0aGlzLmxvYWRpbmckID0gdGhpcy5sb2FkU3RhdGUkLnBpcGUoXG4gICAgICBtYXAoXG4gICAgICAgICh7IGxvYWRpbmcsIGFjdGlvbiB9KSA9PiBsb2FkaW5nICYmIGFjdGlvbiAhPT0gTG9hZEFjdGlvbi5TaWxlbnRSZWxvYWQsXG4gICAgICApLFxuICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgIHB1Ymxpc2hSZWYoKSxcbiAgICApO1xuXG4gICAgdGhpcy5sb2FkaW5nRXJyb3IkID0gdGhpcy5sb2FkU3RhdGUkLnBpcGUoXG4gICAgICBtYXAoc3RhdGUgPT4gc3RhdGUubG9hZGluZ0Vycm9yKSxcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICBwdWJsaXNoUmVmKCksXG4gICAgKTtcblxuICAgIHRoaXMuY29udGludWVUb2tlbiQgPSB0aGlzLmxvYWRTdGF0ZSQucGlwZShcbiAgICAgIGZpbHRlcigoeyBsb2FkaW5nIH0pID0+ICFsb2FkaW5nKSxcbiAgICAgIHN3aXRjaE1hcCgoeyByYXdSZXNwb25zZSwgbG9hZGluZ0Vycm9yOiBlcnIgfSkgPT4ge1xuICAgICAgICBpZiAocmF3UmVzcG9uc2UpIHtcbiAgICAgICAgICByZXR1cm4gb2YocmF3UmVzcG9uc2UubWV0YWRhdGE/LmNvbnRpbnVlID8/ICcnKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZXJyICYmICdjb2RlJyBpbiBlcnIgJiYgZXJyLmNvZGUgPT09IDQxMCkge1xuICAgICAgICAgIHJldHVybiBvZihlcnIubWV0YWRhdGE/LmNvbnRpbnVlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gRU1QVFk7XG4gICAgICB9KSxcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICBwdWJsaXNoUmVmKCksXG4gICAgKTtcblxuICAgIHRoaXMuaGFzTW9yZSQgPSB0aGlzLmNvbnRpbnVlVG9rZW4kLnBpcGUoXG4gICAgICBtYXAodG9rZW4gPT4gISF0b2tlbiksXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgcHVibGlzaFJlZigpLFxuICAgICk7XG5cbiAgICB0aGlzLml0ZW1zJCA9IG1lcmdlKFxuICAgICAgdGhpcy5sb2FkU3RhdGUkLnBpcGUoXG4gICAgICAgIG1hcChzdGF0ZSA9PiAoaXRlbXM6IFJbXSkgPT4ge1xuICAgICAgICAgIGNvbnN0IG5ld0l0ZW1zID0gc3RhdGUucmF3UmVzcG9uc2VcbiAgICAgICAgICAgID8gKHN0YXRlLnJhd1Jlc3BvbnNlLml0ZW1zID8/IFtdKVxuICAgICAgICAgICAgOiBudWxsO1xuICAgICAgICAgIGlmIChzdGF0ZS5hY3Rpb24gPT09IExvYWRBY3Rpb24uUmVsb2FkKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3SXRlbXMgPz8gW107XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChzdGF0ZS5hY3Rpb24gPT09IExvYWRBY3Rpb24uU2lsZW50UmVsb2FkKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3SXRlbXMgPz8gaXRlbXM7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChzdGF0ZS5hY3Rpb24gPT09IExvYWRBY3Rpb24uTG9hZE1vcmUpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXdJdGVtcyA/IFsuLi5pdGVtcywgLi4ubmV3SXRlbXNdIDogaXRlbXM7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBpdGVtcztcbiAgICAgICAgfSksXG4gICAgICApLFxuICAgICAgdGhpcy5pdGVtc1NjYW5uZXIkJCxcbiAgICAgIHdhdGNoZXIgPyB0aGlzLmJ1aWxkV2F0Y2hlcih3YXRjaGVyKSA6IEVNUFRZLFxuICAgICkucGlwZShcbiAgICAgIHNjYW48SXRlbXNTY2FubmVyPFI+LCBSW10+KChhY2MsIHNjYW5uZXIpID0+IHNjYW5uZXIoYWNjKSwgW10pLFxuICAgICAgdGFwKGl0ZW1zID0+IHtcbiAgICAgICAgdGhpcy5zbmFwc2hvdC5pdGVtcyA9IGl0ZW1zO1xuICAgICAgICB0aGlzLmJ5cGFzc0l0ZW1zJC5uZXh0KGl0ZW1zKTtcbiAgICAgIH0pLFxuICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQkKSxcbiAgICAgIHB1Ymxpc2hSZWYoKSxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZFdhdGNoZXIod2F0Y2hlcjogV2F0Y2hlcjxSLCBRPikge1xuICAgIHJldHVybiB0aGlzLnJhd1Jlc3BvbnNlJC5waXBlKFxuICAgICAgZmlsdGVyKHJlcyA9PiAhIXJlcyksXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZChcbiAgICAgICAgKGEsIGIpID0+IGEubWV0YWRhdGE/LnJlc291cmNlVmVyc2lvbiA9PT0gYi5tZXRhZGF0YT8ucmVzb3VyY2VWZXJzaW9uLFxuICAgICAgKSxcbiAgICAgIHN3aXRjaE1hcChsaXN0ID0+XG4gICAgICAgIHdhdGNoZXIobGlzdC5tZXRhZGF0YT8ucmVzb3VyY2VWZXJzaW9uLCB0aGlzLnNuYXBzaG90LnF1ZXJ5UGFyYW1zKS5waXBlKFxuICAgICAgICAgIGNhdGNoRXJyb3IoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5yZWxvYWQodHJ1ZSk7XG4gICAgICAgICAgICByZXR1cm4gRU1QVFk7XG4gICAgICAgICAgfSksXG4gICAgICAgICksXG4gICAgICApLFxuICAgICAgc3dpdGNoTWFwKCh7IHR5cGUsIG9iamVjdDogcmVzb3VyY2UgfSkgPT4ge1xuICAgICAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgICAgICBjYXNlIFdhdGNoRXZlbnQuQWRkZWQ6IHtcbiAgICAgICAgICAgIHJldHVybiBvZih0aGlzLl9jcmVhdGUocmVzb3VyY2UpKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgY2FzZSBXYXRjaEV2ZW50Lk1vZGlmaWVkOiB7XG4gICAgICAgICAgICByZXR1cm4gb2YodGhpcy5fdXBkYXRlKHJlc291cmNlKSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGNhc2UgV2F0Y2hFdmVudC5EZWxldGVkOiB7XG4gICAgICAgICAgICByZXR1cm4gb2YodGhpcy5fZGVsZXRlKHJlc291cmNlKSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgIHJldHVybiBFTVBUWTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pLFxuICAgICk7XG4gIH1cbn1cblxuZnVuY3Rpb24gZGVmYXVsdEluc2VydDxUIGV4dGVuZHMgS3ViZXJuZXRlc1Jlc291cmNlPihcbiAgaXRlbXM6IFRbXSxcbiAgcmVzOiBULFxuICBoYXNNb3JlOiBib29sZWFuLFxuKSB7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgaXRlbXMubGVuZ3RoOyBpKyspIHtcbiAgICBjb25zdCBjb21wYXJlID0gcmVzb3VyY2VDb21wYXJlKHJlcywgaXRlbXNbaV0pO1xuICAgIGlmIChjb21wYXJlID09PSAwKSB7XG4gICAgICByZXR1cm4gaXRlbXMubWFwKChpdGVtLCBpbmRleCkgPT4gKGluZGV4ID09PSBpID8gcmVzIDogaXRlbSkpO1xuICAgIH1cbiAgICBpZiAoY29tcGFyZSA8IDApIHtcbiAgICAgIHJldHVybiBbLi4uaXRlbXMuc2xpY2UoMCwgaSksIHJlcywgLi4uaXRlbXMuc2xpY2UoaSldO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBoYXNNb3JlID8gaXRlbXMgOiBbLi4uaXRlbXMsIHJlc107XG59XG5cbmZ1bmN0aW9uIHJlc291cmNlQ29tcGFyZShhOiBLdWJlcm5ldGVzUmVzb3VyY2UsIGI6IEt1YmVybmV0ZXNSZXNvdXJjZSkge1xuICBjb25zdCBuc0NvbXBhcmUgPVxuICAgIGEubWV0YWRhdGEubmFtZXNwYWNlPy5sb2NhbGVDb21wYXJlKGIubWV0YWRhdGEubmFtZXNwYWNlKSA/PyAwO1xuICByZXR1cm4gbnNDb21wYXJlID09PSAwXG4gICAgPyBhLm1ldGFkYXRhLm5hbWUubG9jYWxlQ29tcGFyZShiLm1ldGFkYXRhLm5hbWUpXG4gICAgOiBuc0NvbXBhcmU7XG59XG4iXX0=