@alauda-fe/dynamic-plugin-shared 0.0.1-alpha.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 (415) hide show
  1. package/README.md +7 -0
  2. package/array-form-table/base-string-map-form.component.d.ts +22 -0
  3. package/array-form-table/form/component.d.ts +106 -0
  4. package/array-form-table/form/index.d.ts +2 -0
  5. package/array-form-table/index.d.ts +10 -0
  6. package/array-form-table/key-value-form/component.d.ts +38 -0
  7. package/array-form-table/key-value-table/component.d.ts +9 -0
  8. package/array-form-table/string-array-form/component.d.ts +41 -0
  9. package/assets/images/abnormal.svg +1 -0
  10. package/assets/images/dark/disconnected.svg +1 -0
  11. package/assets/images/dark/license-abnormal.svg +1 -0
  12. package/assets/images/dark/network-abnormal.svg +1 -0
  13. package/assets/images/dark/no-data.svg +1 -0
  14. package/assets/images/dark/no-message.svg +1 -0
  15. package/assets/images/dark/no-permission.svg +1 -0
  16. package/assets/images/dark/no_realtime_alarm.svg +1 -0
  17. package/assets/images/dark/not-deployed.svg +1 -0
  18. package/assets/images/dark/not-found.svg +1 -0
  19. package/assets/images/dark/not-supported.svg +1 -0
  20. package/assets/images/dark/system-abnormal.svg +1 -0
  21. package/assets/images/light/disconnected.svg +1 -0
  22. package/assets/images/light/license-abnormal.svg +1 -0
  23. package/assets/images/light/network-abnormal.svg +1 -0
  24. package/assets/images/light/no-data.svg +1 -0
  25. package/assets/images/light/no-message.svg +1 -0
  26. package/assets/images/light/no-permission.svg +1 -0
  27. package/assets/images/light/no_realtime_alarm.svg +1 -0
  28. package/assets/images/light/not-deployed.svg +1 -0
  29. package/assets/images/light/not-found.svg +1 -0
  30. package/assets/images/light/not-supported.svg +1 -0
  31. package/assets/images/light/system-abnormal.svg +1 -0
  32. package/assets/images/no-data.png +0 -0
  33. package/async-data/async-data-loader.d.ts +31 -0
  34. package/async-data/error-page/component.d.ts +30 -0
  35. package/async-data/index.d.ts +13 -0
  36. package/async-data/page-state/component.d.ts +21 -0
  37. package/async-data/types.d.ts +29 -0
  38. package/code-editor/code-display-dialog/component.d.ts +17 -0
  39. package/code-editor/code-editor-configs.d.ts +19 -0
  40. package/code-editor/index.d.ts +10 -0
  41. package/code-editor/k8s-yaml-display-dialog/component.d.ts +16 -0
  42. package/code-editor/resource-yaml-display/component.d.ts +21 -0
  43. package/components/card-section/card-section.component.d.ts +9 -0
  44. package/components/confirm-delete/confirm-delete.component.d.ts +57 -0
  45. package/components/confirm-delete/utils.d.ts +25 -0
  46. package/components/current-time/component.d.ts +14 -0
  47. package/components/custom-columns-setting/component.d.ts +16 -0
  48. package/components/custom-columns-setting/index.d.ts +1 -0
  49. package/components/date-range-picker/component.d.ts +55 -0
  50. package/components/date-range-picker/index.d.ts +3 -0
  51. package/components/date-range-picker/type.d.ts +36 -0
  52. package/components/date-range-picker/util.d.ts +11 -0
  53. package/components/disabled-container/disabled-container.component.d.ts +21 -0
  54. package/components/disabled-container/index.d.ts +7 -0
  55. package/components/field-set/column/component.d.ts +10 -0
  56. package/components/field-set/group/component.d.ts +6 -0
  57. package/components/field-set/index.d.ts +7 -0
  58. package/components/field-set/item/component.d.ts +13 -0
  59. package/components/foldable-block/component.d.ts +17 -0
  60. package/components/foldable-item-in-table/component.d.ts +21 -0
  61. package/components/help-document/component.d.ts +29 -0
  62. package/components/help-document/directive.d.ts +20 -0
  63. package/components/help-document/index.d.ts +8 -0
  64. package/components/help-document/service.d.ts +20 -0
  65. package/components/index.d.ts +31 -0
  66. package/components/loading-mask/loading-mask.component.d.ts +13 -0
  67. package/components/page-guard/component/component.d.ts +40 -0
  68. package/components/page-guard/component/helper-directives.d.ts +17 -0
  69. package/components/page-guard/component/page-guard.type.d.ts +86 -0
  70. package/components/page-guard/index.d.ts +12 -0
  71. package/components/password-input/component.d.ts +39 -0
  72. package/components/pod-status/component.d.ts +25 -0
  73. package/components/pod-status/index.d.ts +3 -0
  74. package/components/pod-status/status.d.ts +4 -0
  75. package/components/pod-status/typings.d.ts +16 -0
  76. package/components/relative-time/component.d.ts +15 -0
  77. package/components/resource-label/component.d.ts +25 -0
  78. package/components/resource-multi-select/component.d.ts +41 -0
  79. package/components/resource-multi-select/util.d.ts +10 -0
  80. package/components/search-panel/component.d.ts +16 -0
  81. package/components/search-panel/helper.directive.d.ts +5 -0
  82. package/components/search-panel/search-item/component.d.ts +7 -0
  83. package/components/select-prefix-label/directive.d.ts +17 -0
  84. package/components/status-icon/status-icon.component.d.ts +16 -0
  85. package/components/tags-label/component.d.ts +56 -0
  86. package/components/terminating-tag/component.d.ts +7 -0
  87. package/components/text-ellipsis/component.d.ts +9 -0
  88. package/components/text-tooltip/directive.d.ts +21 -0
  89. package/components/text-with-url/component.d.ts +12 -0
  90. package/components/upload-file/component.d.ts +32 -0
  91. package/components/zero-state/zero-state.component.d.ts +16 -0
  92. package/constants/common.d.ts +64 -0
  93. package/constants/index.d.ts +6 -0
  94. package/constants/k8s.d.ts +12 -0
  95. package/constants/patterns.d.ts +124 -0
  96. package/constants/resource-definitions.d.ts +414 -0
  97. package/constants/status-icons.d.ts +34 -0
  98. package/constants/timezones.d.ts +6 -0
  99. package/directives/aui-code-editor.directive.d.ts +13 -0
  100. package/directives/click-outside.directive.d.ts +12 -0
  101. package/directives/declare.directive.d.ts +8 -0
  102. package/directives/disabled.directive.d.ts +28 -0
  103. package/directives/effect-directive/coerce-number.directive.d.ts +8 -0
  104. package/directives/effect-directive/e2e-attribute-binding.directive.d.ts +10 -0
  105. package/directives/effect-directive/event.directive.d.ts +47 -0
  106. package/directives/effect-directive/index.d.ts +12 -0
  107. package/directives/effect-directive/min-max.directive.d.ts +30 -0
  108. package/directives/effect-directive/trim.directive.d.ts +7 -0
  109. package/directives/effect-directive/validators.directive.d.ts +12 -0
  110. package/directives/feature-gate.directive.d.ts +31 -0
  111. package/directives/index.d.ts +12 -0
  112. package/directives/last-form-item.directive.d.ts +8 -0
  113. package/directives/readonly-field.directive.d.ts +39 -0
  114. package/directives/resize.directive.d.ts +17 -0
  115. package/directives/scroll-border-observer.directive.d.ts +23 -0
  116. package/directives/scroll-to-first-invalid.directive.d.ts +24 -0
  117. package/directives/value-trace.directive.d.ts +27 -0
  118. package/esm2022/alauda-fe-dynamic-plugin-shared.mjs +5 -0
  119. package/esm2022/array-form-table/base-string-map-form.component.mjs +92 -0
  120. package/esm2022/array-form-table/form/component.mjs +266 -0
  121. package/esm2022/array-form-table/form/index.mjs +12 -0
  122. package/esm2022/array-form-table/index.mjs +11 -0
  123. package/esm2022/array-form-table/key-value-form/component.mjs +135 -0
  124. package/esm2022/array-form-table/key-value-table/component.mjs +24 -0
  125. package/esm2022/array-form-table/string-array-form/component.mjs +168 -0
  126. package/esm2022/async-data/async-data-loader.mjs +63 -0
  127. package/esm2022/async-data/error-page/component.mjs +54 -0
  128. package/esm2022/async-data/index.mjs +18 -0
  129. package/esm2022/async-data/page-state/component.mjs +62 -0
  130. package/esm2022/async-data/types.mjs +6 -0
  131. package/esm2022/code-editor/code-display-dialog/component.mjs +35 -0
  132. package/esm2022/code-editor/code-editor-configs.mjs +66 -0
  133. package/esm2022/code-editor/index.mjs +11 -0
  134. package/esm2022/code-editor/k8s-yaml-display-dialog/component.mjs +26 -0
  135. package/esm2022/code-editor/resource-yaml-display/component.mjs +67 -0
  136. package/esm2022/components/card-section/card-section.component.mjs +24 -0
  137. package/esm2022/components/confirm-delete/confirm-delete.component.mjs +192 -0
  138. package/esm2022/components/confirm-delete/utils.mjs +8 -0
  139. package/esm2022/components/current-time/component.mjs +39 -0
  140. package/esm2022/components/custom-columns-setting/component.mjs +75 -0
  141. package/esm2022/components/custom-columns-setting/index.mjs +2 -0
  142. package/esm2022/components/date-range-picker/component.mjs +215 -0
  143. package/esm2022/components/date-range-picker/index.mjs +4 -0
  144. package/esm2022/components/date-range-picker/type.mjs +2 -0
  145. package/esm2022/components/date-range-picker/util.mjs +57 -0
  146. package/esm2022/components/disabled-container/disabled-container.component.mjs +81 -0
  147. package/esm2022/components/disabled-container/index.mjs +8 -0
  148. package/esm2022/components/field-set/column/component.mjs +25 -0
  149. package/esm2022/components/field-set/group/component.mjs +16 -0
  150. package/esm2022/components/field-set/index.mjs +14 -0
  151. package/esm2022/components/field-set/item/component.mjs +41 -0
  152. package/esm2022/components/foldable-block/component.mjs +60 -0
  153. package/esm2022/components/foldable-item-in-table/component.mjs +56 -0
  154. package/esm2022/components/help-document/component.mjs +69 -0
  155. package/esm2022/components/help-document/directive.mjs +70 -0
  156. package/esm2022/components/help-document/index.mjs +9 -0
  157. package/esm2022/components/help-document/service.mjs +43 -0
  158. package/esm2022/components/index.mjs +32 -0
  159. package/esm2022/components/loading-mask/loading-mask.component.mjs +35 -0
  160. package/esm2022/components/page-guard/component/component.mjs +101 -0
  161. package/esm2022/components/page-guard/component/helper-directives.mjs +51 -0
  162. package/esm2022/components/page-guard/component/page-guard.type.mjs +82 -0
  163. package/esm2022/components/page-guard/index.mjs +19 -0
  164. package/esm2022/components/password-input/component.mjs +143 -0
  165. package/esm2022/components/pod-status/component.mjs +49 -0
  166. package/esm2022/components/pod-status/index.mjs +4 -0
  167. package/esm2022/components/pod-status/status.mjs +84 -0
  168. package/esm2022/components/pod-status/typings.mjs +19 -0
  169. package/esm2022/components/relative-time/component.mjs +58 -0
  170. package/esm2022/components/resource-label/component.mjs +100 -0
  171. package/esm2022/components/resource-multi-select/component.mjs +152 -0
  172. package/esm2022/components/resource-multi-select/util.mjs +24 -0
  173. package/esm2022/components/search-panel/component.mjs +51 -0
  174. package/esm2022/components/search-panel/helper.directive.mjs +14 -0
  175. package/esm2022/components/search-panel/search-item/component.mjs +15 -0
  176. package/esm2022/components/select-prefix-label/directive.mjs +89 -0
  177. package/esm2022/components/status-icon/status-icon.component.mjs +56 -0
  178. package/esm2022/components/tags-label/component.mjs +224 -0
  179. package/esm2022/components/terminating-tag/component.mjs +16 -0
  180. package/esm2022/components/text-ellipsis/component.mjs +28 -0
  181. package/esm2022/components/text-tooltip/directive.mjs +71 -0
  182. package/esm2022/components/text-with-url/component.mjs +40 -0
  183. package/esm2022/components/upload-file/component.mjs +95 -0
  184. package/esm2022/components/zero-state/zero-state.component.mjs +51 -0
  185. package/esm2022/constants/common.mjs +86 -0
  186. package/esm2022/constants/index.mjs +7 -0
  187. package/esm2022/constants/k8s.mjs +13 -0
  188. package/esm2022/constants/patterns.mjs +142 -0
  189. package/esm2022/constants/resource-definitions.mjs +424 -0
  190. package/esm2022/constants/status-icons.mjs +65 -0
  191. package/esm2022/constants/timezones.mjs +234 -0
  192. package/esm2022/directives/aui-code-editor.directive.mjs +30 -0
  193. package/esm2022/directives/click-outside.directive.mjs +49 -0
  194. package/esm2022/directives/declare.directive.mjs +27 -0
  195. package/esm2022/directives/disabled.directive.mjs +76 -0
  196. package/esm2022/directives/effect-directive/coerce-number.directive.mjs +54 -0
  197. package/esm2022/directives/effect-directive/e2e-attribute-binding.directive.mjs +57 -0
  198. package/esm2022/directives/effect-directive/event.directive.mjs +129 -0
  199. package/esm2022/directives/effect-directive/index.mjs +21 -0
  200. package/esm2022/directives/effect-directive/min-max.directive.mjs +107 -0
  201. package/esm2022/directives/effect-directive/trim.directive.mjs +40 -0
  202. package/esm2022/directives/effect-directive/validators.directive.mjs +43 -0
  203. package/esm2022/directives/feature-gate.directive.mjs +90 -0
  204. package/esm2022/directives/index.mjs +13 -0
  205. package/esm2022/directives/last-form-item.directive.mjs +18 -0
  206. package/esm2022/directives/readonly-field.directive.mjs +145 -0
  207. package/esm2022/directives/resize.directive.mjs +39 -0
  208. package/esm2022/directives/scroll-border-observer.directive.mjs +77 -0
  209. package/esm2022/directives/scroll-to-first-invalid.directive.mjs +126 -0
  210. package/esm2022/directives/value-trace.directive.mjs +61 -0
  211. package/esm2022/form/base-form-container.mjs +126 -0
  212. package/esm2022/form/base-nested-form-control.mjs +190 -0
  213. package/esm2022/form/errors-mapper/base-errors-mapper.mjs +41 -0
  214. package/esm2022/form/errors-mapper/default-errors-mapper.service.mjs +65 -0
  215. package/esm2022/form/errors-mapper/errors-mapper-component/component.mjs +53 -0
  216. package/esm2022/form/errors-mapper/errors-mapper.directive.mjs +109 -0
  217. package/esm2022/form/errors-mapper/index.mjs +10 -0
  218. package/esm2022/form/errors-mapper/types.mjs +2 -0
  219. package/esm2022/form/index.mjs +6 -0
  220. package/esm2022/form/utils.mjs +61 -0
  221. package/esm2022/form/validators/async-function-validator.directive.mjs +49 -0
  222. package/esm2022/form/validators/dns1123-subdomain.mjs +42 -0
  223. package/esm2022/form/validators/function-validator.directive.mjs +49 -0
  224. package/esm2022/form/validators/index.mjs +10 -0
  225. package/esm2022/form/validators/maxlength-minlength-validator.directive.mjs +71 -0
  226. package/esm2022/form/validators/not-be-validator.directive.mjs +56 -0
  227. package/esm2022/form/validators/one-of-validator.directive.mjs +57 -0
  228. package/esm2022/form/validators/resource-limit.mjs +79 -0
  229. package/esm2022/form/validators/strong-password/index.mjs +4 -0
  230. package/esm2022/form/validators/strong-password/strong-password-tooltip/component.mjs +15 -0
  231. package/esm2022/form/validators/strong-password/strong-password-validator.directive.mjs +171 -0
  232. package/esm2022/form/validators/strong-password/strong-password-validator.module.mjs +36 -0
  233. package/esm2022/form/validators/utils.mjs +155 -0
  234. package/esm2022/index.mjs +15 -0
  235. package/esm2022/k8s-resource-list/footer/component.mjs +156 -0
  236. package/esm2022/k8s-resource-list/index.mjs +18 -0
  237. package/esm2022/k8s-resource-list/k8s-resource-list.mjs +224 -0
  238. package/esm2022/k8s-resource-list/k8s-resource-paged-list.mjs +174 -0
  239. package/esm2022/k8s-resource-list/types.mjs +11 -0
  240. package/esm2022/k8s-resource-list/utils.mjs +84 -0
  241. package/esm2022/k8s-shared/constants.mjs +53 -0
  242. package/esm2022/k8s-shared/index.mjs +12 -0
  243. package/esm2022/k8s-shared/k8s-resource-translate-key.pipe.mjs +31 -0
  244. package/esm2022/k8s-shared/k8s-shared-util.service.mjs +152 -0
  245. package/esm2022/k8s-shared/resource-mark/component.mjs +54 -0
  246. package/esm2022/k8s-shared/resource-mark/util.mjs +137 -0
  247. package/esm2022/k8s-shared/update-description-dialog/component.mjs +66 -0
  248. package/esm2022/k8s-shared/update-display-name-dialog/component.mjs +59 -0
  249. package/esm2022/k8s-shared/update-key-value-dialog/component.mjs +76 -0
  250. package/esm2022/page-deactivate/deactivate.directive.mjs +50 -0
  251. package/esm2022/page-deactivate/deactivate.guard.mjs +41 -0
  252. package/esm2022/page-deactivate/deactivate.service.mjs +78 -0
  253. package/esm2022/page-deactivate/index.mjs +4 -0
  254. package/esm2022/pipes/calc.pipe.mjs +21 -0
  255. package/esm2022/pipes/cron-human-readable.pipe.mjs +30 -0
  256. package/esm2022/pipes/crontab-next.pipe.mjs +67 -0
  257. package/esm2022/pipes/duration.pipe.mjs +51 -0
  258. package/esm2022/pipes/field-not-available.pipe.mjs +25 -0
  259. package/esm2022/pipes/img-header.pipe.mjs +18 -0
  260. package/esm2022/pipes/img-theme.pipe.mjs +38 -0
  261. package/esm2022/pipes/index.mjs +19 -0
  262. package/esm2022/pipes/keyvalue.pipe.mjs +20 -0
  263. package/esm2022/pipes/marked.pipe.mjs +18 -0
  264. package/esm2022/pipes/minimum-format.pipe.mjs +25 -0
  265. package/esm2022/pipes/page-env.pipe.mjs +69 -0
  266. package/esm2022/pipes/parse-json-translate.pipe.mjs +28 -0
  267. package/esm2022/pipes/parse-json.pipe.mjs +22 -0
  268. package/esm2022/pipes/pure.pipe.mjs +26 -0
  269. package/esm2022/pipes/safe.pipe.mjs +49 -0
  270. package/esm2022/pipes/sanitize.pipe.mjs +31 -0
  271. package/esm2022/pipes/time.pipe.mjs +113 -0
  272. package/esm2022/pipes/timezone-display.pipe.mjs +21 -0
  273. package/esm2022/services/form-row-duplicate/form-row-duplicate.service.mjs +280 -0
  274. package/esm2022/services/index.mjs +4 -0
  275. package/esm2022/services/on-resize.service.mjs +52 -0
  276. package/esm2022/services/yaml-util.service.mjs +99 -0
  277. package/esm2022/types/common.mjs +6 -0
  278. package/esm2022/types/helpers.mjs +12 -0
  279. package/esm2022/types/index.mjs +9 -0
  280. package/esm2022/types/k8s/core.mjs +2 -0
  281. package/esm2022/types/k8s/crd.mjs +57 -0
  282. package/esm2022/types/k8s/index.mjs +4 -0
  283. package/esm2022/types/k8s/raw.mjs +77 -0
  284. package/esm2022/types/schema.mjs +2 -0
  285. package/esm2022/utils/browser.mjs +21 -0
  286. package/esm2022/utils/cache-store.mjs +83 -0
  287. package/esm2022/utils/color-helpers.mjs +6 -0
  288. package/esm2022/utils/common.mjs +315 -0
  289. package/esm2022/utils/cron-util.mjs +44 -0
  290. package/esm2022/utils/decorators.mjs +137 -0
  291. package/esm2022/utils/disabled-state.mjs +47 -0
  292. package/esm2022/utils/format-number.mjs +227 -0
  293. package/esm2022/utils/index.mjs +24 -0
  294. package/esm2022/utils/local-storage-constants.mjs +2 -0
  295. package/esm2022/utils/node.mjs +18 -0
  296. package/esm2022/utils/observable.mjs +32 -0
  297. package/esm2022/utils/operators.mjs +38 -0
  298. package/esm2022/utils/request-pool.mjs +37 -0
  299. package/esm2022/utils/resources.mjs +66 -0
  300. package/esm2022/utils/router.mjs +20 -0
  301. package/esm2022/utils/sort-fn.mjs +7 -0
  302. package/esm2022/utils/tree.mjs +79 -0
  303. package/esm2022/utils/unit.mjs +191 -0
  304. package/esm2022/utils/version.mjs +76 -0
  305. package/esm2022/utils/with-load-state.mjs +21 -0
  306. package/esm2022/utils/workload.mjs +183 -0
  307. package/esm2022/utils/workspace.mjs +59 -0
  308. package/esm2022/utils/yaml.mjs +54 -0
  309. package/fesm2022/alauda-fe-dynamic-plugin-shared.mjs +11151 -0
  310. package/fesm2022/alauda-fe-dynamic-plugin-shared.mjs.map +1 -0
  311. package/form/base-form-container.d.ts +41 -0
  312. package/form/base-nested-form-control.d.ts +58 -0
  313. package/form/errors-mapper/base-errors-mapper.d.ts +13 -0
  314. package/form/errors-mapper/default-errors-mapper.service.d.ts +10 -0
  315. package/form/errors-mapper/errors-mapper-component/component.d.ts +19 -0
  316. package/form/errors-mapper/errors-mapper.directive.d.ts +39 -0
  317. package/form/errors-mapper/index.d.ts +6 -0
  318. package/form/errors-mapper/types.d.ts +16 -0
  319. package/form/index.d.ts +5 -0
  320. package/form/utils.d.ts +40 -0
  321. package/form/validators/async-function-validator.directive.d.ts +11 -0
  322. package/form/validators/dns1123-subdomain.d.ts +28 -0
  323. package/form/validators/function-validator.directive.d.ts +11 -0
  324. package/form/validators/index.d.ts +9 -0
  325. package/form/validators/maxlength-minlength-validator.directive.d.ts +20 -0
  326. package/form/validators/not-be-validator.directive.d.ts +12 -0
  327. package/form/validators/one-of-validator.directive.d.ts +12 -0
  328. package/form/validators/resource-limit.d.ts +17 -0
  329. package/form/validators/strong-password/index.d.ts +3 -0
  330. package/form/validators/strong-password/strong-password-tooltip/component.d.ts +6 -0
  331. package/form/validators/strong-password/strong-password-validator.directive.d.ts +34 -0
  332. package/form/validators/strong-password/strong-password-validator.module.d.ts +12 -0
  333. package/form/validators/utils.d.ts +67 -0
  334. package/index.d.ts +14 -0
  335. package/k8s-resource-list/footer/component.d.ts +42 -0
  336. package/k8s-resource-list/index.d.ts +13 -0
  337. package/k8s-resource-list/k8s-resource-list.d.ts +42 -0
  338. package/k8s-resource-list/k8s-resource-paged-list.d.ts +61 -0
  339. package/k8s-resource-list/types.d.ts +70 -0
  340. package/k8s-resource-list/utils.d.ts +19 -0
  341. package/k8s-shared/constants.d.ts +7 -0
  342. package/k8s-shared/index.d.ts +11 -0
  343. package/k8s-shared/k8s-resource-translate-key.pipe.d.ts +9 -0
  344. package/k8s-shared/k8s-shared-util.service.d.ts +48 -0
  345. package/k8s-shared/resource-mark/component.d.ts +16 -0
  346. package/k8s-shared/resource-mark/util.d.ts +2 -0
  347. package/k8s-shared/update-description-dialog/component.d.ts +33 -0
  348. package/k8s-shared/update-display-name-dialog/component.d.ts +27 -0
  349. package/k8s-shared/update-key-value-dialog/component.d.ts +38 -0
  350. package/package.json +56 -0
  351. package/page-deactivate/deactivate.directive.d.ts +18 -0
  352. package/page-deactivate/deactivate.guard.d.ts +13 -0
  353. package/page-deactivate/deactivate.service.d.ts +28 -0
  354. package/page-deactivate/index.d.ts +3 -0
  355. package/pipes/calc.pipe.d.ts +11 -0
  356. package/pipes/cron-human-readable.pipe.d.ts +9 -0
  357. package/pipes/crontab-next.pipe.d.ts +18 -0
  358. package/pipes/duration.pipe.d.ts +10 -0
  359. package/pipes/field-not-available.pipe.d.ts +13 -0
  360. package/pipes/img-header.pipe.d.ts +7 -0
  361. package/pipes/img-theme.pipe.d.ts +13 -0
  362. package/pipes/index.d.ts +18 -0
  363. package/pipes/keyvalue.pipe.d.ts +9 -0
  364. package/pipes/marked.pipe.d.ts +8 -0
  365. package/pipes/minimum-format.pipe.d.ts +10 -0
  366. package/pipes/page-env.pipe.d.ts +34 -0
  367. package/pipes/parse-json-translate.pipe.d.ts +8 -0
  368. package/pipes/parse-json.pipe.d.ts +7 -0
  369. package/pipes/pure.pipe.d.ts +17 -0
  370. package/pipes/safe.pipe.d.ts +10 -0
  371. package/pipes/sanitize.pipe.d.ts +10 -0
  372. package/pipes/time.pipe.d.ts +40 -0
  373. package/pipes/timezone-display.pipe.d.ts +10 -0
  374. package/services/form-row-duplicate/form-row-duplicate.service.d.ts +45 -0
  375. package/services/index.d.ts +3 -0
  376. package/services/on-resize.service.d.ts +20 -0
  377. package/services/yaml-util.service.d.ts +20 -0
  378. package/styles/ansi-color.scss +131 -0
  379. package/styles/global.scss +904 -0
  380. package/styles/lib.scss +1 -0
  381. package/styles/markdown-body.scss +107 -0
  382. package/styles/mixins.scss +710 -0
  383. package/styles/var.scss +30 -0
  384. package/types/common.d.ts +42 -0
  385. package/types/helpers.d.ts +35 -0
  386. package/types/index.d.ts +8 -0
  387. package/types/k8s/core.d.ts +100 -0
  388. package/types/k8s/crd.d.ts +497 -0
  389. package/types/k8s/index.d.ts +3 -0
  390. package/types/k8s/raw.d.ts +860 -0
  391. package/types/schema.d.ts +14 -0
  392. package/utils/browser.d.ts +4 -0
  393. package/utils/cache-store.d.ts +35 -0
  394. package/utils/color-helpers.d.ts +4 -0
  395. package/utils/common.d.ts +64 -0
  396. package/utils/cron-util.d.ts +8 -0
  397. package/utils/decorators.d.ts +14 -0
  398. package/utils/disabled-state.d.ts +20 -0
  399. package/utils/format-number.d.ts +11 -0
  400. package/utils/index.d.ts +23 -0
  401. package/utils/local-storage-constants.d.ts +1 -0
  402. package/utils/node.d.ts +8 -0
  403. package/utils/observable.d.ts +5 -0
  404. package/utils/operators.d.ts +22 -0
  405. package/utils/request-pool.d.ts +12 -0
  406. package/utils/resources.d.ts +19 -0
  407. package/utils/router.d.ts +3 -0
  408. package/utils/sort-fn.d.ts +2 -0
  409. package/utils/tree.d.ts +16 -0
  410. package/utils/unit.d.ts +21 -0
  411. package/utils/version.d.ts +39 -0
  412. package/utils/with-load-state.d.ts +11 -0
  413. package/utils/workload.d.ts +66 -0
  414. package/utils/workspace.d.ts +28 -0
  415. package/utils/yaml.d.ts +11 -0
@@ -0,0 +1,174 @@
1
+ import { WatchEvent } from '@alauda-fe/dynamic-plugin-sdk';
2
+ import { inject } from '@angular/core';
3
+ import { toObservable, toSignal } from '@angular/core/rxjs-interop';
4
+ import { ActivatedRoute, Router } from '@angular/router';
5
+ import { NEVER, Subject, catchError, filter, interval, isObservable, map, of, startWith, switchMap, switchScan, take, withLatestFrom, } from 'rxjs';
6
+ import { DOWNGRADE_WATCH_ENABLED, DOWNGRADE_WATCH_POLLING } from '../constants';
7
+ import { publishRef } from '../utils';
8
+ export class K8SResourcePagedList {
9
+ constructor(config) {
10
+ this.config = config;
11
+ this.reload$$ = new Subject();
12
+ this.addedUid = new Set();
13
+ this.deletedUid = new Set();
14
+ this.params$ = isObservable(this.config.params)
15
+ ? this.config.params
16
+ : toObservable(this.config.params);
17
+ this.loadState$ = this.config.watcher && !DOWNGRADE_WATCH_ENABLED
18
+ ? this.loadStateWithWatcher()
19
+ : this.config.watcher || this.config.polling
20
+ ? this.loadStateWithPolling()
21
+ : this.sourceLoadState();
22
+ this.loading$ = this.loadState$.pipe(map(state => state.loading));
23
+ this.items$ = this.loadState$.pipe(map(state => state.items));
24
+ this.totalItems$ = this.loadState$.pipe(map(state => state.totalItems));
25
+ this.loadError$ = this.loadState$.pipe(map(state => state.loadError));
26
+ this.$loading = toSignal(this.loading$);
27
+ this.$items = toSignal(this.items$);
28
+ this.$totalItems = toSignal(this.totalItems$);
29
+ this.$loadError = toSignal(this.loadError$);
30
+ }
31
+ reload() {
32
+ this.reload$$.next();
33
+ }
34
+ sourceLoadState() {
35
+ return this.params$.pipe(map(parseListParams), switchMap(({ listParams, extraParams }) => {
36
+ return this.reload$$.pipe(startWith(null), switchMap(() => {
37
+ return this.config.fetcher(listParams, extraParams).pipe(map(list => ({
38
+ loading: false,
39
+ loadSuccess: true,
40
+ items: list.items ?? [],
41
+ totalItems: list.metadata.totalItems ?? 0,
42
+ })), startWith({
43
+ loading: true,
44
+ loadSuccess: false,
45
+ items: [],
46
+ totalItems: 0,
47
+ }), catchError((err) => of({
48
+ loading: false,
49
+ loadSuccess: false,
50
+ loadError: err,
51
+ items: [],
52
+ totalItems: 0,
53
+ })));
54
+ }));
55
+ }), publishRef());
56
+ }
57
+ loadStateWithPolling() {
58
+ return this.sourceLoadState().pipe(switchMap(sourceState => sourceState.loadSuccess
59
+ ? interval(this.config.polling || DOWNGRADE_WATCH_POLLING).pipe(withLatestFrom(this.params$), map(([_, params]) => parseListParams(params)), switchMap(({ listParams, extraParams }) => this.config.fetcher(listParams, extraParams).pipe(map(list => ({
60
+ ...sourceState,
61
+ items: list.items,
62
+ totalItems: list.metadata.totalItems,
63
+ })), catchError(() => NEVER))), startWith(sourceState))
64
+ : of(sourceState)), publishRef());
65
+ }
66
+ loadStateWithWatcher() {
67
+ return this.sourceLoadState().pipe(switchMap(sourceState => sourceState.loadSuccess
68
+ ? this.params$.pipe(take(1), switchMap(params => {
69
+ const watchParams = parseListParams({
70
+ keyword: params.keyword,
71
+ extra: params.extra,
72
+ });
73
+ const fetchParams = parseListParams(params);
74
+ return this.config
75
+ .watcher(watchParams.listParams, watchParams.extraParams)
76
+ .pipe(filter(({ type, object }) => {
77
+ switch (type) {
78
+ case WatchEvent.Added: {
79
+ if (this.addedUid.has(object.metadata.uid)) {
80
+ return false;
81
+ }
82
+ this.addedUid.add(object.metadata.uid);
83
+ return true;
84
+ }
85
+ case WatchEvent.Deleted: {
86
+ if (this.deletedUid.has(object.metadata.uid)) {
87
+ return false;
88
+ }
89
+ this.deletedUid.add(object.metadata.uid);
90
+ return true;
91
+ }
92
+ default: {
93
+ return true;
94
+ }
95
+ }
96
+ }), switchScan((state, { type, object }) => {
97
+ switch (type) {
98
+ case WatchEvent.Modified: {
99
+ return of({
100
+ ...state,
101
+ items: state.items.map(item => item.metadata.uid === object.metadata.uid
102
+ ? object
103
+ : item),
104
+ });
105
+ }
106
+ case WatchEvent.Added:
107
+ case WatchEvent.Deleted: {
108
+ return this.config
109
+ .fetcher(fetchParams.listParams, fetchParams.extraParams)
110
+ .pipe(map(list => ({
111
+ ...state,
112
+ items: list.items,
113
+ totalItems: list.metadata.totalItems,
114
+ })), catchError(() => NEVER));
115
+ }
116
+ default: {
117
+ return NEVER;
118
+ }
119
+ }
120
+ }, sourceState));
121
+ }), startWith(sourceState))
122
+ : of(sourceState)), publishRef());
123
+ }
124
+ }
125
+ export function extractPagedListParams(defaultParams = {}, extraParams) {
126
+ const route = inject(ActivatedRoute);
127
+ const params$ = route.queryParams.pipe(map(params => ({
128
+ pageIndex: 0,
129
+ pageSize: 20,
130
+ ...defaultParams,
131
+ ...(params.pageIndex ? { pageIndex: params.pageIndex } : {}),
132
+ ...(params.pageSize ? { pageSize: params.pageSize } : {}),
133
+ ...(params.keyword ? { keyword: params.keyword } : {}),
134
+ ...(params.sortField ? { sortField: params.sortField } : {}),
135
+ ...(params.sortOrder ? { sortOrder: params.sortOrder } : {}),
136
+ ...(params.fieldSelector ? { fieldSelector: params.fieldSelector } : {}),
137
+ ...(params.labelSelector ? { labelSelector: params.labelSelector } : {}),
138
+ ...(extraParams ? { extra: extraParams(params) } : {}),
139
+ })));
140
+ return {
141
+ stream: () => params$,
142
+ signal: () => toSignal(params$),
143
+ };
144
+ }
145
+ export function queryListParams() {
146
+ const router = inject(Router);
147
+ const route = inject(ActivatedRoute);
148
+ return (queryParams) => {
149
+ router.navigate(['./'], {
150
+ relativeTo: route,
151
+ queryParamsHandling: 'merge',
152
+ queryParams,
153
+ });
154
+ };
155
+ }
156
+ function parseListParams({ pageIndex, pageSize, sortField, sortOrder, keyword, fieldSelector: originFieldSelector, labelSelector, extra: extraParams, }) {
157
+ const search = keyword ? `search=${keyword}` : '';
158
+ const sortBy = sortField
159
+ ? `sortby=${sortOrder === 'desc' ? '-' : ''}${sortField}`
160
+ : '';
161
+ const fieldSelector = [search, sortBy, originFieldSelector]
162
+ .filter(v => !!v)
163
+ .join(',');
164
+ return {
165
+ listParams: {
166
+ limit: (pageSize || 20) + '',
167
+ continue: +(pageIndex || 0) * +(pageSize || 20) + '',
168
+ ...(labelSelector ? { labelSelector } : {}),
169
+ ...(fieldSelector ? { fieldSelector } : {}),
170
+ },
171
+ extraParams,
172
+ };
173
+ }
174
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiazhzLXJlc291cmNlLXBhZ2VkLWxpc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2R5bmFtaWMtcGx1Z2luLXNoYXJlZC9zcmMvazhzLXJlc291cmNlLWxpc3QvazhzLXJlc291cmNlLXBhZ2VkLWxpc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFvQixVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUU3RSxPQUFPLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDcEUsT0FBTyxFQUFFLGNBQWMsRUFBVSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRSxPQUFPLEVBQ0wsS0FBSyxFQUVMLE9BQU8sRUFDUCxVQUFVLEVBQ1YsTUFBTSxFQUNOLFFBQVEsRUFDUixZQUFZLEVBQ1osR0FBRyxFQUNILEVBQUUsRUFDRixTQUFTLEVBQ1QsU0FBUyxFQUNULFVBQVUsRUFDVixJQUFJLEVBQ0osY0FBYyxHQUNmLE1BQU0sTUFBTSxDQUFDO0FBRWQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLHVCQUF1QixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRWhGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFdEMsTUFBTSxPQUFPLG9CQUFvQjtJQTZCL0IsWUFBNkIsTUFBNkI7UUFBN0IsV0FBTSxHQUFOLE1BQU0sQ0FBdUI7UUF6QnpDLGFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBQy9CLGFBQVEsR0FBRyxJQUFJLEdBQUcsRUFBVSxDQUFDO1FBQzdCLGVBQVUsR0FBRyxJQUFJLEdBQUcsRUFBVSxDQUFDO1FBRWhELFlBQU8sR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7WUFDeEMsQ0FBQyxDQUFDLElBQUksQ0FBQyxN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UyxFQUNULE9BQU8sRUFDUCxhQUFhLEVBQUUsbUJBQW1CLEVBQ2xDLGFBQWEsRUFDYixLQUFLLEVBQUUsV0FBVyxHQUNDO0lBQ25CLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsVUFBVSxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ2xELE1BQU0sTUFBTSxHQUFHLFNBQVM7UUFDdEIsQ0FBQyxDQUFDLFVBQVUsU0FBUyxLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsU0FBUyxFQUFFO1FBQ3pELENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDUCxNQUFNLGFBQWEsR0FBRyxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsbUJBQW1CLENBQUM7U0FDeEQsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNoQixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDYixPQUFPO1FBQ0wsVUFBVSxFQUFFO1lBQ1YsS0FBSyxFQUFFLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQyxHQUFHLEVBQUU7WUFDNUIsUUFBUSxFQUFFLENBQUMsQ0FBQyxTQUFTLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsSUFBSSxFQUFFLENBQUMsR0FBRyxFQUFFO1lBQ3BELEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEVBQUUsYUFBYSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUMzQyxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxFQUFFLGFBQWEsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7U0FDL0I7UUFDZCxXQUFXO0tBQ1osQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBXYXRjaEFQSVJlc3BvbnNlLCBXYXRjaEV2ZW50IH0gZnJvbSAnQGFsYXVkYS1mZS9keW5hbWljLXBsdWdpbi1zZGsnO1xuaW1wb3J0IHsgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBTaWduYWwsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdG9PYnNlcnZhYmxlLCB0b1NpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBQYXJhbXMsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge1xuICBORVZFUixcbiAgT2JzZXJ2YWJsZSxcbiAgU3ViamVjdCxcbiAgY2F0Y2hFcnJvcixcbiAgZmlsdGVyLFxuICBpbnRlcnZhbCxcbiAgaXNPYnNlcnZhYmxlLFxuICBtYXAsXG4gIG9mLFxuICBzdGFydFdpdGgsXG4gIHN3aXRjaE1hcCxcbiAgc3dpdGNoU2NhbixcbiAgdGFrZSxcbiAgd2l0aExhdGVzdEZyb20sXG59IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBET1dOR1JBREVfV0FUQ0hfRU5BQkxFRCwgRE9XTkdSQURFX1dBVENIX1BPTExJTkcgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgS3ViZXJuZXRlc1Jlc291cmNlLCBLdWJlcm5ldGVzUmVzb3VyY2VMaXN0LCBTdGF0dXMgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBwdWJsaXNoUmVmIH0gZnJvbSAnLi4vdXRpbHMnO1xuXG5leHBvcnQgY2xhc3MgSzhTUmVzb3VyY2VQYWdlZExpc3Q8XG4gIFIgZXh0ZW5kcyBLdWJlcm5ldGVzUmVzb3VyY2UgPSBLdWJlcm5ldGVzUmVzb3VyY2UsXG4gIFAgPSB1bmtub3duLFxuPiB7XG4gIHByaXZhdGUgcmVhZG9ubHkgcmVsb2FkJCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBwcml2YXRlIHJlYWRvbmx5IGFkZGVkVWlkID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgZGVsZXRlZFVpZCA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuXG4gIHBhcmFtcyQgPSBpc09ic2VydmFibGUodGhpcy5jb25maWcucGFyYW1zKVxuICAgID8gdGhpcy5jb25maWcucGFyYW1zXG4gICAgOiB0b09ic2VydmFibGUodGhpcy5jb25maWcucGFyYW1zKTtcblxuICBsb2FkU3RhdGUkID1cbiAgICB0aGlzLmNvbmZpZy53YXRjaGVyICYmICFET1dOR1JBREVfV0FUQ0hfRU5BQkxFRFxuICAgICAgPyB0aGlzLmxvYWRTdGF0ZVdpdGhXYXRjaGVyKClcbiAgICAgIDogdGhpcy5jb25maWcud2F0Y2hlciB8fCB0aGlzLmNvbmZpZy5wb2xsaW5nXG4gICAgICAgID8gdGhpcy5sb2FkU3RhdGVXaXRoUG9sbGluZygpXG4gICAgICAgIDogdGhpcy5zb3VyY2VMb2FkU3RhdGUoKTtcblxuICBsb2FkaW5nJCA9IHRoaXMubG9hZFN0YXRlJC5waXBlKG1hcChzdGF0ZSA9PiBzdGF0ZS5sb2FkaW5nKSk7XG4gIGl0ZW1zJCA9IHRoaXMubG9hZFN0YXRlJC5waXBlKG1hcChzdGF0ZSA9PiBzdGF0ZS5pdGVtcykpO1xuICB0b3RhbEl0ZW1zJCA9IHRoaXMubG9hZFN0YXRlJC5waXBlKG1hcChzdGF0ZSA9PiBzdGF0ZS50b3RhbEl0ZW1zKSk7XG4gIGxvYWRFcnJvciQgPSB0aGlzLmxvYWRTdGF0ZSQucGlwZShtYXAoc3RhdGUgPT4gc3RhdGUubG9hZEVycm9yKSk7XG5cbiAgJGxvYWRpbmcgPSB0b1NpZ25hbCh0aGlzLmxvYWRpbmckKTtcbiAgJGl0ZW1zID0gdG9TaWduYWwodGhpcy5pdGVtcyQpO1xuICAkdG90YWxJdGVtcyA9IHRvU2lnbmFsKHRoaXMudG90YWxJdGVtcyQpO1xuICAkbG9hZEVycm9yID0gdG9TaWduYWwodGhpcy5sb2FkRXJyb3IkKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGNvbmZpZzogUGFnZWRMaXN0Q29uZmlnPFIsIFA+KSB7fVxuXG4gIHJlbG9hZCgpIHtcbiAgICB0aGlzLnJlbG9hZCQkLm5leHQoKTtcbiAgfVxuXG4gIHByaXZhdGUgc291cmNlTG9hZFN0YXRlKCkge1xuICAgIHJldHVybiB0aGlzLnBhcmFtcyQucGlwZShcbiAgICAgIG1hcChwYXJzZUxpc3RQYXJhbXMpLFxuICAgICAgc3dpdGNoTWFwKCh7IGxpc3RQYXJhbXMsIGV4dHJhUGFyYW1zIH0pID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVsb2FkJCQucGlwZShcbiAgICAgICAgICBzdGFydFdpdGgobnVsbCksXG4gICAgICAgICAgc3dpdGNoTWFwKCgpOiBPYnNlcnZhYmxlPExvYWRTdGF0ZTxSPj4gPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuY29uZmlnLmZldGNoZXIobGlzdFBhcmFtcywgZXh0cmFQYXJhbXMpLnBpcGUoXG4gICAgICAgICAgICAgIG1hcChsaXN0ID0+ICh7XG4gICAgICAgICAgICAgICAgbG9hZGluZzogZmFsc2UsXG4gICAgICAgICAgICAgICAgbG9hZFN1Y2Nlc3M6IHRydWUsXG4gICAgICAgICAgICAgICAgaXRlbXM6IGxpc3QuaXRlbXMgPz8gW10sXG4gICAgICAgICAgICAgICAgdG90YWxJdGVtczogbGlzdC5tZXRhZGF0YS50b3RhbEl0ZW1zID8/IDAsXG4gICAgICAgICAgICAgIH0pKSxcbiAgICAgICAgICAgICAgc3RhcnRXaXRoKHtcbiAgICAgICAgICAgICAgICBsb2FkaW5nOiB0cnVlLFxuICAgICAgICAgICAgICAgIGxvYWRTdWNjZXNzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBpdGVtczogW10sXG4gICAgICAgICAgICAgICAgdG90YWxJdGVtczogMCxcbiAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycjogU3RhdHVzIHwgSHR0cEVycm9yUmVzcG9uc2UpID0+XG4gICAgICAgICAgICAgICAgb2Yoe1xuICAgICAgICAgICAgICAgICAgbG9hZGluZzogZmFsc2UsXG4gICAgICAgICAgICAgICAgICBsb2FkU3VjY2VzczogZmFsc2UsXG4gICAgICAgICAgICAgICAgICBsb2FkRXJyb3I6IGVycixcbiAgICAgICAgICAgICAgICAgIGl0ZW1zOiBbXSxcbiAgICAgICAgICAgICAgICAgIHRvdGFsSXRlbXM6IDAsXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0pLFxuICAgICAgICApO1xuICAgICAgfSksXG4gICAgICBwdWJsaXNoUmVmKCksXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgbG9hZFN0YXRlV2l0aFBvbGxpbmcoKTogT2JzZXJ2YWJsZTxMb2FkU3RhdGU8Uj4+IHtcbiAgICByZXR1cm4gdGhpcy5zb3VyY2VMb2FkU3RhdGUoKS5waXBlKFxuICAgICAgc3dpdGNoTWFwKHNvdXJjZVN0YXRlID0+XG4gICAgICAgIHNvdXJjZVN0YXRlLmxvYWRTdWNjZXNzXG4gICAgICAgICAgPyBpbnRlcnZhbCh0aGlzLmNvbmZpZy5wb2xsaW5nIHx8IERPV05HUkFERV9XQVRDSF9QT0xMSU5HKS5waXBlKFxuICAgICAgICAgICAgICB3aXRoTGF0ZXN0RnJvbSh0aGlzLnBhcmFtcyQpLFxuICAgICAgICAgICAgICBtYXAoKFtfLCBwYXJhbXNdKSA9PiBwYXJzZUxpc3RQYXJhbXMocGFyYW1zKSksXG4gICAgICAgICAgICAgIHN3aXRjaE1hcCgoeyBsaXN0UGFyYW1zLCBleHRyYVBhcmFtcyB9KSA9PlxuICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnLmZldGNoZXIobGlzdFBhcmFtcywgZXh0cmFQYXJhbXMpLnBpcGUoXG4gICAgICAgICAgICAgICAgICBtYXAobGlzdCA9PiAoe1xuICAgICAgICAgICAgICAgICAgICAuLi5zb3VyY2VTdGF0ZSxcbiAgICAgICAgICAgICAgICAgICAgaXRlbXM6IGxpc3QuaXRlbXMsXG4gICAgICAgICAgICAgICAgICAgIHRvdGFsSXRlbXM6IGxpc3QubWV0YWRhdGEudG90YWxJdGVtcyxcbiAgICAgICAgICAgICAgICAgIH0pKSxcbiAgICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoKCkgPT4gTkVWRVIpLFxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgIHN0YXJ0V2l0aChzb3VyY2VTdGF0ZSksXG4gICAgICAgICAgICApXG4gICAgICAgICAgOiBvZihzb3VyY2VTdGF0ZSksXG4gICAgICApLFxuICAgICAgcHVibGlzaFJlZigpLFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGxvYWRTdGF0ZVdpdGhXYXRjaGVyKCk6IE9ic2VydmFibGU8TG9hZFN0YXRlPFI+PiB7XG4gICAgcmV0dXJuIHRoaXMuc291cmNlTG9hZFN0YXRlKCkucGlwZShcbiAgICAgIHN3aXRjaE1hcChzb3VyY2VTdGF0ZSA9PlxuICAgICAgICBzb3VyY2VTdGF0ZS5sb2FkU3VjY2Vzc1xuICAgICAgICAgID8gdGhpcy5wYXJhbXMkLnBpcGUoXG4gICAgICAgICAgICAgIHRha2UoMSksXG4gICAgICAgICAgICAgIHN3aXRjaE1hcChwYXJhbXMgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHdhdGNoUGFyYW1zID0gcGFyc2VMaXN0UGFyYW1zKHtcbiAgICAgICAgICAgICAgICAgIGtleXdvcmQ6IHBhcmFtcy5rZXl3b3JkLFxuICAgICAgICAgICAgICAgICAgZXh0cmE6IHBhcmFtcy5leHRyYSxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBjb25zdCBmZXRjaFBhcmFtcyA9IHBhcnNlTGlzdFBhcmFtcyhwYXJhbXMpO1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmNvbmZpZ1xuICAgICAgICAgICAgICAgICAgLndhdGNoZXIod2F0Y2hQYXJhbXMubGlzdFBhcmFtcywgd2F0Y2hQYXJhbXMuZXh0cmFQYXJhbXMpXG4gICAgICAgICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICAgICAgZmlsdGVyKCh7IHR5cGUsIG9iamVjdCB9KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFdhdGNoRXZlbnQuQWRkZWQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuYWRkZWRVaWQuaGFzKG9iamVjdC5tZXRhZGF0YS51aWQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYWRkZWRVaWQuYWRkKG9iamVjdC5tZXRhZGF0YS51aWQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgV2F0Y2hFdmVudC5EZWxldGVkOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmRlbGV0ZWRVaWQuaGFzKG9iamVjdC5tZXRhZGF0YS51aWQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZGVsZXRlZFVpZC5hZGQob2JqZWN0Lm1ldGFkYXRhLnVpZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICBzd2l0Y2hTY2FuKChzdGF0ZSwgeyB0eXBlLCBvYmplY3QgfSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBXYXRjaEV2ZW50Lk1vZGlmaWVkOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBvZih7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbXM6IHN0YXRlLml0ZW1zLm1hcChpdGVtID0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtLm1ldGFkYXRhLnVpZCA9PT0gb2JqZWN0Lm1ldGFkYXRhLnVpZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IG9iamVjdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGl0ZW0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFdhdGNoRXZlbnQuQWRkZWQ6XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFdhdGNoRXZlbnQuRGVsZXRlZDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5jb25maWdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZmV0Y2hlcihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZldGNoUGFyYW1zLmxpc3RQYXJhbXMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZXRjaFBhcmFtcy5leHRyYVBhcmFtcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXAobGlzdCA9PiAoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbXM6IGxpc3QuaXRlbXMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsSXRlbXM6IGxpc3QubWV0YWRhdGEudG90YWxJdGVtcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoKCkgPT4gTkVWRVIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBORVZFUjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0sIHNvdXJjZVN0YXRlKSxcbiAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICBzdGFydFdpdGgoc291cmNlU3RhdGUpLFxuICAgICAgICAgICAgKVxuICAgICAgICAgIDogb2Yoc291cmNlU3RhdGUpLFxuICAgICAgKSxcbiAgICAgIHB1Ymxpc2hSZWYoKSxcbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGFnZWRMaXN0Q29uZmlnPFIsIFA+IHtcbiAgcGFyYW1zOiBTaWduYWw8TGlzdEZldGNoUGFyYW1zPFA+PiB8IE9ic2VydmFibGU8TGlzdEZldGNoUGFyYW1zPFA+PjtcbiAgZmV0Y2hlcjogKFxuICAgIGxpc3RQYXJhbXM6IEZldGNoU2VlZCxcbiAgICBleHRyYVBhcmFtczogUCxcbiAgKSA9PiBPYnNlcnZhYmxlPEt1YmVybmV0ZXNSZXNvdXJjZUxpc3Q8Uj4+O1xuICB3YXRjaGVyPzogKFxuICAgIGxpc3RQYXJhbXM6IEZldGNoU2VlZCxcbiAgICBleHRyYVBhcmFtczogUCxcbiAgKSA9PiBPYnNlcnZhYmxlPFdhdGNoQVBJUmVzcG9uc2U8Uj4+O1xuICBwb2xsaW5nPzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExpc3RGZXRjaFBhcmFtczxQID0gbmV2ZXI+IHtcbiAgcGFnZUluZGV4PzogbnVtYmVyIHwgc3RyaW5nO1xuICBwYWdlU2l6ZT86IG51bWJlciB8IHN0cmluZztcbiAgc29ydEZpZWxkPzogc3RyaW5nO1xuICBzb3J0T3JkZXI/OiAnYXNjJyB8ICdkZXNjJztcbiAga2V5d29yZD86IHN0cmluZztcbiAgZmllbGRTZWxlY3Rvcj86IHN0cmluZztcbiAgbGFiZWxTZWxlY3Rvcj86IHN0cmluZztcbiAgZXh0cmE/OiBQO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZldGNoU2VlZCBleHRlbmRzIFJlY29yZDxzdHJpbmcsIHN0cmluZz4ge1xuICBsaW1pdD86IHN0cmluZztcbiAgY29udGludWU/OiBzdHJpbmc7XG4gIGZpZWxkU2VsZWN0b3I/OiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBMb2FkU3RhdGU8Uj4ge1xuICBpdGVtczogUltdO1xuICB0b3RhbEl0ZW1zOiBudW1iZXI7XG4gIGxvYWRpbmc6IGJvb2xlYW47XG4gIGxvYWRTdWNjZXNzOiBib29sZWFuO1xuICBsb2FkRXJyb3I/OiBIdHRwRXJyb3JSZXNwb25zZSB8IFN0YXR1cztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3RQYWdlZExpc3RQYXJhbXM8UD4oXG4gIGRlZmF1bHRQYXJhbXM6IExpc3RGZXRjaFBhcmFtcyA9IHt9LFxuICBleHRyYVBhcmFtcz86IChxdWVyeVBhcmFtczogUGFyYW1zKSA9PiBQLFxuKTogUmVhZG9ubHk8e1xuICBzdHJlYW06ICgpID0+IE9ic2VydmFibGU8TGlzdEZldGNoUGFyYW1zPFA+PjtcbiAgc2lnbmFsOiAoKSA9PiBTaWduYWw8TGlzdEZldGNoUGFyYW1zPFA+Pjtcbn0+IHtcbiAgY29uc3Qgcm91dGUgPSBpbmplY3QoQWN0aXZhdGVkUm91dGUpO1xuICBjb25zdCBwYXJhbXMkID0gcm91dGUucXVlcnlQYXJhbXMucGlwZShcbiAgICBtYXAocGFyYW1zID0+ICh7XG4gICAgICBwYWdlSW5kZXg6IDAsXG4gICAgICBwYWdlU2l6ZTogMjAsXG4gICAgICAuLi5kZWZhdWx0UGFyYW1zLFxuICAgICAgLi4uKHBhcmFtcy5wYWdlSW5kZXggPyB7IHBhZ2VJbmRleDogcGFyYW1zLnBhZ2VJbmRleCB9IDoge30pLFxuICAgICAgLi4uKHBhcmFtcy5wYWdlU2l6ZSA/IHsgcGFnZVNpemU6IHBhcmFtcy5wYWdlU2l6ZSB9IDoge30pLFxuICAgICAgLi4uKHBhcmFtcy5rZXl3b3JkID8geyBrZXl3b3JkOiBwYXJhbXMua2V5d29yZCB9IDoge30pLFxuICAgICAgLi4uKHBhcmFtcy5zb3J0RmllbGQgPyB7IHNvcnRGaWVsZDogcGFyYW1zLnNvcnRGaWVsZCB9IDoge30pLFxuICAgICAgLi4uKHBhcmFtcy5zb3J0T3JkZXIgPyB7IHNvcnRPcmRlcjogcGFyYW1zLnNvcnRPcmRlciB9IDoge30pLFxuICAgICAgLi4uKHBhcmFtcy5maWVsZFNlbGVjdG9yID8geyBmaWVsZFNlbGVjdG9yOiBwYXJhbXMuZmllbGRTZWxlY3RvciB9IDoge30pLFxuICAgICAgLi4uKHBhcmFtcy5sYWJlbFNlbGVjdG9yID8geyBsYWJlbFNlbGVjdG9yOiBwYXJhbXMubGFiZWxTZWxlY3RvciB9IDoge30pLFxuICAgICAgLi4uKGV4dHJhUGFyYW1zID8geyBleHRyYTogZXh0cmFQYXJhbXMocGFyYW1zKSB9IDoge30pLFxuICAgIH0pKSxcbiAgKTtcblxuICByZXR1cm4ge1xuICAgIHN0cmVhbTogKCkgPT4gcGFyYW1zJCxcbiAgICBzaWduYWw6ICgpID0+IHRvU2lnbmFsKHBhcmFtcyQpLFxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcXVlcnlMaXN0UGFyYW1zKCkge1xuICBjb25zdCByb3V0ZXIgPSBpbmplY3QoUm91dGVyKTtcbiAgY29uc3Qgcm91dGUgPSBpbmplY3QoQWN0aXZhdGVkUm91dGUpO1xuXG4gIHJldHVybiAocXVlcnlQYXJhbXM6IFBhcmFtcykgPT4ge1xuICAgIHJvdXRlci5uYXZpZ2F0ZShbJy4vJ10sIHtcbiAgICAgIHJlbGF0aXZlVG86IHJvdXRlLFxuICAgICAgcXVlcnlQYXJhbXNIYW5kbGluZzogJ21lcmdlJyxcbiAgICAgIHF1ZXJ5UGFyYW1zLFxuICAgIH0pO1xuICB9O1xufVxuXG5mdW5jdGlvbiBwYXJzZUxpc3RQYXJhbXM8UD4oe1xuICBwYWdlSW5kZXgsXG4gIHBhZ2VTaXplLFxuICBzb3J0RmllbGQsXG4gIHNvcnRPcmRlcixcbiAga2V5d29yZCxcbiAgZmllbGRTZWxlY3Rvcjogb3JpZ2luRmllbGRTZWxlY3RvcixcbiAgbGFiZWxTZWxlY3RvcixcbiAgZXh0cmE6IGV4dHJhUGFyYW1zLFxufTogTGlzdEZldGNoUGFyYW1zPFA+KSB7XG4gIGNvbnN0IHNlYXJjaCA9IGtleXdvcmQgPyBgc2VhcmNoPSR7a2V5d29yZH1gIDogJyc7XG4gIGNvbnN0IHNvcnRCeSA9IHNvcnRGaWVsZFxuICAgID8gYHNvcnRieT0ke3NvcnRPcmRlciA9PT0gJ2Rlc2MnID8gJy0nIDogJyd9JHtzb3J0RmllbGR9YFxuICAgIDogJyc7XG4gIGNvbnN0IGZpZWxkU2VsZWN0b3IgPSBbc2VhcmNoLCBzb3J0QnksIG9yaWdpbkZpZWxkU2VsZWN0b3JdXG4gICAgLmZpbHRlcih2ID0+ICEhdilcbiAgICAuam9pbignLCcpO1xuICByZXR1cm4ge1xuICAgIGxpc3RQYXJhbXM6IHtcbiAgICAgIGxpbWl0OiAocGFnZVNpemUgfHwgMjApICsgJycsXG4gICAgICBjb250aW51ZTogKyhwYWdlSW5kZXggfHwgMCkgKiArKHBhZ2VTaXplIHx8IDIwKSArICcnLFxuICAgICAgLi4uKGxhYmVsU2VsZWN0b3IgPyB7IGxhYmVsU2VsZWN0b3IgfSA6IHt9KSxcbiAgICAgIC4uLihmaWVsZFNlbGVjdG9yID8geyBmaWVsZFNlbGVjdG9yIH0gOiB7fSksXG4gICAgfSBhcyBGZXRjaFNlZWQsXG4gICAgZXh0cmFQYXJhbXMsXG4gIH07XG59XG4iXX0=
@@ -0,0 +1,11 @@
1
+ /**
2
+ * @packageDocumentation
3
+ * @module k8s-resource-list
4
+ */
5
+ export var LoadAction;
6
+ (function (LoadAction) {
7
+ LoadAction["Reload"] = "Reload";
8
+ LoadAction["SilentReload"] = "SilentReload";
9
+ LoadAction["LoadMore"] = "LoadMore";
10
+ })(LoadAction || (LoadAction = {}));
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2R5bmFtaWMtcGx1Z2luLXNoYXJlZC9zcmMvazhzLXJlc291cmNlLWxpc3QvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHO0FBK0NILE1BQU0sQ0FBTixJQUFZLFVBSVg7QUFKRCxXQUFZLFVBQVU7SUFDcEIsK0JBQWlCLENBQUE7SUFDakIsMkNBQTZCLENBQUE7SUFDN0IsbUNBQXFCLENBQUE7QUFDdkIsQ0FBQyxFQUpXLFVBQVUsS0FBVixVQUFVLFFBSXJCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb25cbiAqIEBtb2R1bGUgazhzLXJlc291cmNlLWxpc3RcbiAqL1xuXG5pbXBvcnQgeyBXYXRjaEFQSVJlc3BvbnNlIH0gZnJvbSAnQGFsYXVkYS1mZS9keW5hbWljLXBsdWdpbi1zZGsnO1xuaW1wb3J0IHsgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7XG4gIEt1YmVybmV0ZXNSZXNvdXJjZSxcbiAgS3ViZXJuZXRlc1Jlc291cmNlTGlzdCxcbiAgU3RhdHVzLFxuICBTdHJpbmdNYXAsXG59IGZyb20gJy4uL3R5cGVzJztcblxuaW1wb3J0IHsgSzhTUmVzb3VyY2VMaXN0IH0gZnJvbSAnLi9rOHMtcmVzb3VyY2UtbGlzdCc7XG5cbmV4cG9ydCB0eXBlIFdhdGNoZXI8UiBleHRlbmRzIEt1YmVybmV0ZXNSZXNvdXJjZSwgUT4gPSAoXG4gIHNlZWRWZXJzaW9uOiBzdHJpbmcsXG4gIHBhcmFtcz86IFEsXG4pID0+IE9ic2VydmFibGU8V2F0Y2hBUElSZXNwb25zZTxSPj47XG5leHBvcnQgdHlwZSBJbnNlcnRGbjxSPiA9IChpdGVtczogUltdLCByZXM6IFIsIGhhc01vcmU6IGJvb2xlYW4pID0+IFJbXTtcblxuZXhwb3J0IGludGVyZmFjZSBXYXRjaGVyUGFyYW1zPFIgZXh0ZW5kcyBLdWJlcm5ldGVzUmVzb3VyY2UsIFE+IHtcbiAgbGlzdDogSzhTUmVzb3VyY2VMaXN0PFI+O1xuICB3YXRjaGVyOiBXYXRjaGVyPFIsIFE+O1xuICBpbnNlcnRGbj86IEluc2VydEZuPFI+O1xufVxuXG5pbnRlcmZhY2UgQmFzZUNvbmZpZzxSIGV4dGVuZHMgS3ViZXJuZXRlc1Jlc291cmNlLCBRPiB7XG4gIHdhdGNoZXI/OiBXYXRjaGVyPFIsIFE+O1xuICBpbnNlcnRGbj86IEluc2VydEZuPFI+O1xuICBsaW1pdD86IG51bWJlcjtcbiAgcG9sbGluZz86IG51bWJlcjtcbn1cblxuZXhwb3J0IHR5cGUgSXRlbXNTY2FubmVyPFI+ID0gKGl0ZW1zOiBSW10pID0+IFJbXTtcblxuZXhwb3J0IGludGVyZmFjZSBDb25maWdXaXRoUm91dGU8UiwgUSwgUD4gZXh0ZW5kcyBCYXNlQ29uZmlnPFIsIFE+IHtcbiAgZmV0Y2hlcjogKHBhcmFtczogUCkgPT4gT2JzZXJ2YWJsZTxLdWJlcm5ldGVzUmVzb3VyY2VMaXN0PFI+PjtcbiAgYWN0aXZhdGVkUm91dGU/OiBBY3RpdmF0ZWRSb3V0ZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb25maWdXaXRoUGFyYW1zPFIsIFEsIFA+IGV4dGVuZHMgQmFzZUNvbmZpZzxSLCBRPiB7XG4gIGZldGNoZXI6IChwYXJhbXM6IFApID0+IE9ic2VydmFibGU8S3ViZXJuZXRlc1Jlc291cmNlTGlzdDxSPj47XG4gIGZldGNoUGFyYW1zJD86IE9ic2VydmFibGU8UT47XG59XG5cbmV4cG9ydCBlbnVtIExvYWRBY3Rpb24ge1xuICBSZWxvYWQgPSAnUmVsb2FkJyxcbiAgU2lsZW50UmVsb2FkID0gJ1NpbGVudFJlbG9hZCcsXG4gIExvYWRNb3JlID0gJ0xvYWRNb3JlJyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMb2FkU3RhdGU8Uj4ge1xuICBhY3Rpb24/OiBMb2FkQWN0aW9uO1xuICByYXdSZXNwb25zZT86IFI7XG4gIGxvYWRpbmc/OiBib29sZWFuO1xuICBsb2FkaW5nRXJyb3I/OiBIdHRwRXJyb3JSZXNwb25zZSB8IFN0YXR1cztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMaXN0UGFyYW1zIGV4dGVuZHMgU3RyaW5nTWFwIHtcbiAgbGltaXQ6IHN0cmluZztcbiAgY29udGludWU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTdHJlYW1MaXN0TG9hZGVyPFIsIFQ+IHtcbiAgbG9hZFN0YXRlJDogT2JzZXJ2YWJsZTxMb2FkU3RhdGU8Uj4+O1xuICBsb2FkaW5nJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgbG9hZGluZ0Vycm9yJDogT2JzZXJ2YWJsZTxIdHRwRXJyb3JSZXNwb25zZSB8IFN0YXR1cz47XG4gIGhhc01vcmUkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICByYXdSZXNwb25zZSQ6IE9ic2VydmFibGU8Uj47XG4gIGl0ZW1zJDogT2JzZXJ2YWJsZTxUW10+O1xuICBzbmFwc2hvdDogU3RyZWFtTGlzdExvYWRlclNuYXBzaG90PFIsIFQ+O1xuXG4gIGxvYWRNb3JlKCk6IHZvaWQ7XG4gIHJlbG9hZCgpOiB2b2lkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN0cmVhbUxpc3RMb2FkZXJTbmFwc2hvdDxSLCBUPiB7XG4gIHJhd1Jlc3BvbnNlPzogUjtcbiAgbG9hZGluZz86IGJvb2xlYW47XG4gIGxvYWRpbmdFcnJvcj86IEh0dHBFcnJvclJlc3BvbnNlIHwgU3RhdHVzO1xuICBoYXNNb3JlPzogYm9vbGVhbjtcbiAgY29udGludWVUb2tlbj86IHN0cmluZztcbiAgaXRlbXM/OiBUW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTG9hZFNuYXBzaG90PFIsIFQsIFE+IGV4dGVuZHMgU3RyZWFtTGlzdExvYWRlclNuYXBzaG90PFIsIFQ+IHtcbiAgcXVlcnlQYXJhbXM/OiBRO1xufVxuIl19
@@ -0,0 +1,84 @@
1
+ /**
2
+ * @packageDocumentation
3
+ * @module k8s-resource-list
4
+ */
5
+ import { equals } from 'ramda';
6
+ import { distinctUntilChanged, map } from 'rxjs';
7
+ /**
8
+ * convert selector.matchLabels to string
9
+ * refers to: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#api
10
+ */
11
+ export function matchLabelsToString(params = {}) {
12
+ return Object.keys(params)
13
+ .map(key => `${key}=${params[key] || ''}`)
14
+ .join(',');
15
+ }
16
+ /**
17
+ * convert string to selector.matchLabels
18
+ */
19
+ export function stringToMatchLabels(str) {
20
+ const labels = {};
21
+ if (str) {
22
+ return str.split(',').reduce((acc, item) => {
23
+ const [key, value] = item.split('=');
24
+ if (key && value) {
25
+ acc[key] = value;
26
+ }
27
+ return acc;
28
+ }, labels);
29
+ }
30
+ return labels;
31
+ }
32
+ export function matchExpressionsToString(params) {
33
+ return params
34
+ .map(param => {
35
+ switch (param.operator.toLowerCase()) {
36
+ case '=':
37
+ case '==': {
38
+ return `${param.key}${param.operator}${param.values[0]}`;
39
+ }
40
+ case '!': {
41
+ return `!${param.key}`;
42
+ }
43
+ case '!=': {
44
+ return param.values
45
+ .map(value => `${param.key}${param.operator}${value}`)
46
+ .join(',');
47
+ }
48
+ case 'in':
49
+ case 'notin': {
50
+ return `${param.key} ${param.operator} (${param.values
51
+ .filter(Boolean)
52
+ .join(',')})`;
53
+ }
54
+ case 'exists': {
55
+ return `${param.key}`;
56
+ }
57
+ case 'doesnotexist': {
58
+ return `!${param.key}`;
59
+ }
60
+ default: {
61
+ return param.key;
62
+ }
63
+ }
64
+ })
65
+ .join(',');
66
+ }
67
+ export function extractListParamsFromRoute(route) {
68
+ return route.queryParamMap.pipe(map(paramMap => ({
69
+ labelSelector: paramMap.get('labelSelector'),
70
+ fieldSelector: paramMap.get('fieldSelector'),
71
+ keyword: paramMap.get('keyword'),
72
+ field: paramMap.get('field'),
73
+ })), distinctUntilChanged(equals));
74
+ }
75
+ export function normalizeParams(params) {
76
+ return Object.entries(params).reduce((acc, [key, value]) => {
77
+ value = typeof value === 'string' ? value.trim() : value;
78
+ if (value) {
79
+ acc[key] = value;
80
+ }
81
+ return acc;
82
+ }, {});
83
+ }
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2R5bmFtaWMtcGx1Z2luLXNoYXJlZC9zcmMvazhzLXJlc291cmNlLWxpc3QvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHO0FBR0gsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUMvQixPQUFPLEVBQWMsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBUTdEOzs7R0FHRztBQUNILE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxTQUFvQixFQUFFO0lBQ3hELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7U0FDdkIsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLElBQUksTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDO1NBQ3pDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNmLENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxHQUFZO0lBQzlDLE1BQU0sTUFBTSxHQUEyQixFQUFFLENBQUM7SUFDMUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUNSLE9BQU8sR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUU7WUFDekMsTUFBTSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3JDLElBQUksR0FBRyxJQUFJLEtBQUssRUFBRSxDQUFDO2dCQUNqQixHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDO1lBQ25CLENBQUM7WUFDRCxPQUFPLEdBQUcsQ0FBQztRQUNiLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNiLENBQUM7SUFD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QUM7QUFDZCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb25cbiAqIEBtb2R1bGUgazhzLXJlc291cmNlLWxpc3RcbiAqL1xuXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBlcXVhbHMgfSBmcm9tICdyYW1kYSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgbWFwIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7XG4gIExhYmVsU2VsZWN0b3JSZXF1aXJlbWVudCxcbiAgUmVzb3VyY2VMaXN0UGFyYW1zLFxuICBTdHJpbmdNYXAsXG59IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBjb252ZXJ0IHNlbGVjdG9yLm1hdGNoTGFiZWxzIHRvIHN0cmluZ1xuICogcmVmZXJzIHRvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9vdmVydmlldy93b3JraW5nLXdpdGgtb2JqZWN0cy9sYWJlbHMvI2FwaVxuICovXG5leHBvcnQgZnVuY3Rpb24gbWF0Y2hMYWJlbHNUb1N0cmluZyhwYXJhbXM6IFN0cmluZ01hcCA9IHt9KSB7XG4gIHJldHVybiBPYmplY3Qua2V5cyhwYXJhbXMpXG4gICAgLm1hcChrZXkgPT4gYCR7a2V5fT0ke3BhcmFtc1trZXldIHx8ICcnfWApXG4gICAgLmpvaW4oJywnKTtcbn1cblxuLyoqXG4gKiBjb252ZXJ0IHN0cmluZyB0byBzZWxlY3Rvci5tYXRjaExhYmVsc1xuICovXG5leHBvcnQgZnVuY3Rpb24gc3RyaW5nVG9NYXRjaExhYmVscyhzdHI/OiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHtcbiAgY29uc3QgbGFiZWxzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XG4gIGlmIChzdHIpIHtcbiAgICByZXR1cm4gc3RyLnNwbGl0KCcsJykucmVkdWNlKChhY2MsIGl0ZW0pID0+IHtcbiAgICAgIGNvbnN0IFtrZXksIHZhbHVlXSA9IGl0ZW0uc3BsaXQoJz0nKTtcbiAgICAgIGlmIChrZXkgJiYgdmFsdWUpIHtcbiAgICAgICAgYWNjW2tleV0gPSB2YWx1ZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBhY2M7XG4gICAgfSwgbGFiZWxzKTtcbiAgfVxuICByZXR1cm4gbGFiZWxzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbWF0Y2hFeHByZXNzaW9uc1RvU3RyaW5nKHBhcmFtczogTGFiZWxTZWxlY3RvclJlcXVpcmVtZW50W10pIHtcbiAgcmV0dXJuIHBhcmFtc1xuICAgIC5tYXAocGFyYW0gPT4ge1xuICAgICAgc3dpdGNoIChwYXJhbS5vcGVyYXRvci50b0xvd2VyQ2FzZSgpKSB7XG4gICAgICAgIGNhc2UgJz0nOlxuICAgICAgICBjYXNlICc9PSc6IHtcbiAgICAgICAgICByZXR1cm4gYCR7cGFyYW0ua2V5fSR7cGFyYW0ub3BlcmF0b3J9JHtwYXJhbS52YWx1ZXNbMF19YDtcbiAgICAgICAgfVxuICAgICAgICBjYXNlICchJzoge1xuICAgICAgICAgIHJldHVybiBgISR7cGFyYW0ua2V5fWA7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAnIT0nOiB7XG4gICAgICAgICAgcmV0dXJuIHBhcmFtLnZhbHVlc1xuICAgICAgICAgICAgLm1hcCh2YWx1ZSA9PiBgJHtwYXJhbS5rZXl9JHtwYXJhbS5vcGVyYXRvcn0ke3ZhbHVlfWApXG4gICAgICAgICAgICAuam9pbignLCcpO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJ2luJzpcbiAgICAgICAgY2FzZSAnbm90aW4nOiB7XG4gICAgICAgICAgcmV0dXJuIGAke3BhcmFtLmtleX0gJHtwYXJhbS5vcGVyYXRvcn0gKCR7cGFyYW0udmFsdWVzXG4gICAgICAgICAgICAuZmlsdGVyKEJvb2xlYW4pXG4gICAgICAgICAgICAuam9pbignLCcpfSlgO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJ2V4aXN0cyc6IHtcbiAgICAgICAgICByZXR1cm4gYCR7cGFyYW0ua2V5fWA7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAnZG9lc25vdGV4aXN0Jzoge1xuICAgICAgICAgIHJldHVybiBgISR7cGFyYW0ua2V5fWA7XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgIHJldHVybiBwYXJhbS5rZXk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KVxuICAgIC5qb2luKCcsJyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBleHRyYWN0TGlzdFBhcmFtc0Zyb21Sb3V0ZShcbiAgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuKTogT2JzZXJ2YWJsZTxSZXNvdXJjZUxpc3RQYXJhbXM+IHtcbiAgcmV0dXJuIHJvdXRlLnF1ZXJ5UGFyYW1NYXAucGlwZShcbiAgICBtYXAocGFyYW1NYXAgPT4gKHtcbiAgICAgIGxhYmVsU2VsZWN0b3I6IHBhcmFtTWFwLmdldCgnbGFiZWxTZWxlY3RvcicpLFxuICAgICAgZmllbGRTZWxlY3RvcjogcGFyYW1NYXAuZ2V0KCdmaWVsZFNlbGVjdG9yJyksXG4gICAgICBrZXl3b3JkOiBwYXJhbU1hcC5nZXQoJ2tleXdvcmQnKSxcbiAgICAgIGZpZWxkOiBwYXJhbU1hcC5nZXQoJ2ZpZWxkJyksXG4gICAgfSkpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkPFJlc291cmNlTGlzdFBhcmFtcz4oZXF1YWxzKSxcbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG5vcm1hbGl6ZVBhcmFtczxQIGV4dGVuZHMgb2JqZWN0PihwYXJhbXM6IFApOiBQIHtcbiAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHBhcmFtcykucmVkdWNlKChhY2MsIFtrZXksIHZhbHVlXSkgPT4ge1xuICAgIHZhbHVlID0gdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyA/IHZhbHVlLnRyaW0oKSA6IHZhbHVlO1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgYWNjW2tleSBhcyBrZXlvZiBQXSA9IHZhbHVlO1xuICAgIH1cbiAgICByZXR1cm4gYWNjO1xuICB9LCB7fSBhcyBQKTtcbn1cbiJdfQ==
@@ -0,0 +1,53 @@
1
+ import { AIT_API_GROUP, COMMON_RESOURCE_DEFINITIONS } from '../constants';
2
+ export const CONTROLLED_RESOURCE_TRANSLATIONS = [
3
+ {
4
+ kind: 'Application',
5
+ definition: COMMON_RESOURCE_DEFINITIONS.OAM_APPLICATION,
6
+ kindAlias: 'oam_application',
7
+ },
8
+ { kind: 'Application', definition: COMMON_RESOURCE_DEFINITIONS.APPLICATION },
9
+ { kind: 'Deployment', definition: COMMON_RESOURCE_DEFINITIONS.DEPLOYMENT },
10
+ { kind: 'DaemonSet', definition: COMMON_RESOURCE_DEFINITIONS.DAEMON_SET },
11
+ { kind: 'StatefulSet', definition: COMMON_RESOURCE_DEFINITIONS.STATEFUL_SET },
12
+ { kind: 'Job', definition: COMMON_RESOURCE_DEFINITIONS.JOB },
13
+ { kind: 'CronJob', definition: COMMON_RESOURCE_DEFINITIONS.CRON_JOB },
14
+ { kind: 'Service', definition: COMMON_RESOURCE_DEFINITIONS.SERVICE },
15
+ { kind: 'Ingress', definition: COMMON_RESOURCE_DEFINITIONS.INGRESS },
16
+ {
17
+ kind: 'PersistentVolumeClaim',
18
+ definition: COMMON_RESOURCE_DEFINITIONS.PERSISTENT_VOLUME_CLAIM,
19
+ },
20
+ { kind: 'ConfigMap', definition: COMMON_RESOURCE_DEFINITIONS.CONFIG_MAP },
21
+ { kind: 'Secret', definition: COMMON_RESOURCE_DEFINITIONS.SECRET },
22
+ {
23
+ kind: 'HorizontalPodAutoscaler',
24
+ definition: COMMON_RESOURCE_DEFINITIONS.HORIZONTAL_POD_AUTOSCALER,
25
+ },
26
+ {
27
+ kind: 'PrometheusRule',
28
+ definition: COMMON_RESOURCE_DEFINITIONS.PROMETHEUS_RULE,
29
+ kindAlias: 'alarm',
30
+ },
31
+ {
32
+ kind: 'MonitorDashboard',
33
+ kindAlias: 'Monitor_Dashboard_New',
34
+ definition: {
35
+ apiGroup: 'ait.alauda.io',
36
+ type: 'dashboards',
37
+ apiVersion: 'v1alpha1',
38
+ },
39
+ },
40
+ {
41
+ kind: 'Dashboard',
42
+ definition: {
43
+ type: 'monitordashboards',
44
+ apiVersion: 'v1alpha2',
45
+ apiGroup: AIT_API_GROUP,
46
+ },
47
+ },
48
+ {
49
+ kind: 'ServiceMonitor',
50
+ definition: COMMON_RESOURCE_DEFINITIONS.SERVICE_MONITOR,
51
+ },
52
+ ];
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9keW5hbWljLXBsdWdpbi1zaGFyZWQvc3JjL2s4cy1zaGFyZWQvY29uc3RhbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxhQUFhLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFRMUUsTUFBTSxDQUFDLE1BQU0sZ0NBQWdDLEdBQXlCO0lBQ3BFO1FBQ0UsSUFBSSxFQUFFLGFBQWE7UUFDbkIsVUFBVSxFQUFFLDJCQUEyQixDQUFDLGVBQWU7UUFDdkQsU0FBUyxFQUFFLGlCQUFpQjtLQUM3QjtJQUNELEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsMkJBQTJCLENBQUMsV0FBVyxFQUFFO0lBQzVFLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsMkJBQTJCLENBQUMsVUFBVSxFQUFFO0lBQzFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsMkJBQTJCLENBQUMsVUFBVSxFQUFFO0lBQ3pFLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsMkJBQTJCLENBQUMsWUFBWSxFQUFFO0lBQzdFLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsMkJBQTJCLENBQUMsR0FBRyxFQUFFO0lBQzVELEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsMkJBQTJCLENBQUMsUUFBUSxFQUFFO0lBQ3JFLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsMkJBQTJCLENBQUMsT0FBTyxFQUFFO0lBQ3BFLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsMkJBQTJCLENBQUMsT0FBTyxFQUFFO0lBQ3BFO1FBQ0UsSUFBSSxFQUFFLHVCQUF1QjtRQUM3QixVQUFVLEVBQUUsMkJBQTJCLENBQUMsdUJBQXVCO0tBQ2hFO0lBQ0QsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSwyQkFBMkIsQ0FBQyxVQUFVLEVBQUU7SUFDekUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSwyQkFBMkIsQ0FBQyxNQUFNLEVBQUU7SUFDbEU7UUFDRSxJQUFJLEVBQUUseUJBQXlCO1FBQy9CLFVBQVUsRUFBRSwyQkFBMkIsQ0FBQyx5QkFBeUI7S0FDbEU7SUFDRDtRQUNFLElBQUksRUFBRSxnQkFBZ0I7UUFDdEIsVUFBVSxFQUFFLDJCQUEyQixDQUFDLGVBQWU7UUFDdkQsU0FBUyxFQUFFLE9BQU87S0FDbkI7SUFDRDtRQUNFLElBQUksRUFBRSxrQkFBa0I7UUFDeEIsU0FBUyxFQUFFLHVCQUF1QjtRQUNsQyxVQUFVLEVBQUU7WUFDVixRQUFRLEVBQUUsZUFBZTtZQUN6QixJQUFJLEVBQUUsWUFBWTtZQUNsQixVQUFVLEVBQUUsVUFBVTtTQUN2QjtLQUNGO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsV0FBVztRQUNqQixVQUFVLEVBQUU7WUFDVixJQUFJLEVBQUUsbUJBQW1CO1lBQ3pCLFVBQVUsRUFBRSxVQUFVO1lBQ3RCLFFBQVEsRUFBRSxhQUFhO1NBQ3hCO0tBQ0Y7SUFDRDtRQUNFLElBQUksRUFBRSxnQkFBZ0I7UUFDdEIsVUFBVSxFQUFFLDJCQUEyQixDQUFDLGVBQWU7S0FDeEQ7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSzhzUmVzb3VyY2VEZWZpbml0aW9uIH0gZnJvbSAnQGFsYXVkYS1mZS9keW5hbWljLXBsdWdpbi1zZGsnO1xuXG5pbXBvcnQgeyBBSVRfQVBJX0dST1VQLCBDT01NT05fUkVTT1VSQ0VfREVGSU5JVElPTlMgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIE1hbmFnZVJlc291cmNlVHlwZSB7XG4gIGtpbmQ6IHN0cmluZztcbiAgZGVmaW5pdGlvbjogSzhzUmVzb3VyY2VEZWZpbml0aW9uO1xuICBraW5kQWxpYXM/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjb25zdCBDT05UUk9MTEVEX1JFU09VUkNFX1RSQU5TTEFUSU9OUzogTWFuYWdlUmVzb3VyY2VUeXBlW10gPSBbXG4gIHtcbiAgICBraW5kOiAnQXBwbGljYXRpb24nLFxuICAgIGRlZmluaXRpb246IENPTU1PTl9SRVNPVVJDRV9ERUZJTklUSU9OUy5PQU1fQVBQTElDQVRJT04sXG4gICAga2luZEFsaWFzOiAnb2FtX2FwcGxpY2F0aW9uJyxcbiAgfSxcbiAgeyBraW5kOiAnQXBwbGljYXRpb24nLCBkZWZpbml0aW9uOiBDT01NT05fUkVTT1VSQ0VfREVGSU5JVElPTlMuQVBQTElDQVRJT04gfSxcbiAgeyBraW5kOiAnRGVwbG95bWVudCcsIGRlZmluaXRpb246IENPTU1PTl9SRVNPVVJDRV9ERUZJTklUSU9OUy5ERVBMT1lNRU5UIH0sXG4gIHsga2luZDogJ0RhZW1vblNldCcsIGRlZmluaXRpb246IENPTU1PTl9SRVNPVVJDRV9ERUZJTklUSU9OUy5EQUVNT05fU0VUIH0sXG4gIHsga2luZDogJ1N0YXRlZnVsU2V0JywgZGVmaW5pdGlvbjogQ09NTU9OX1JFU09VUkNFX0RFRklOSVRJT05TLlNUQVRFRlVMX1NFVCB9LFxuICB7IGtpbmQ6ICdKb2InLCBkZWZpbml0aW9uOiBDT01NT05fUkVTT1VSQ0VfREVGSU5JVElPTlMuSk9CIH0sXG4gIHsga2luZDogJ0Nyb25Kb2InLCBkZWZpbml0aW9uOiBDT01NT05fUkVTT1VSQ0VfREVGSU5JVElPTlMuQ1JPTl9KT0IgfSxcbiAgeyBraW5kOiAnU2VydmljZScsIGRlZmluaXRpb246IENPTU1PTl9SRVNPVVJDRV9ERUZJTklUSU9OUy5TRVJWSUNFIH0sXG4gIHsga2luZDogJ0luZ3Jlc3MnLCBkZWZpbml0aW9uOiBDT01NT05fUkVTT1VSQ0VfREVGSU5JVElPTlMuSU5HUkVTUyB9LFxuICB7XG4gICAga2luZDogJ1BlcnNpc3RlbnRWb2x1bWVDbGFpbScsXG4gICAgZGVmaW5pdGlvbjogQ09NTU9OX1JFU09VUkNFX0RFRklOSVRJT05TLlBFUlNJU1RFTlRfVk9MVU1FX0NMQUlNLFxuICB9LFxuICB7IGtpbmQ6ICdDb25maWdNYXAnLCBkZWZpbml0aW9uOiBDT01NT05fUkVTT1VSQ0VfREVGSU5JVElPTlMuQ09ORklHX01BUCB9LFxuICB7IGtpbmQ6ICdTZWNyZXQnLCBkZWZpbml0aW9uOiBDT01NT05fUkVTT1VSQ0VfREVGSU5JVElPTlMuU0VDUkVUIH0sXG4gIHtcbiAgICBraW5kOiAnSG9yaXpvbnRhbFBvZEF1dG9zY2FsZXInLFxuICAgIGRlZmluaXRpb246IENPTU1PTl9SRVNPVVJDRV9ERUZJTklUSU9OUy5IT1JJWk9OVEFMX1BPRF9BVVRPU0NBTEVSLFxuICB9LFxuICB7XG4gICAga2luZDogJ1Byb21ldGhldXNSdWxlJyxcbiAgICBkZWZpbml0aW9uOiBDT01NT05fUkVTT1VSQ0VfREVGSU5JVElPTlMuUFJPTUVUSEVVU19SVUxFLFxuICAgIGtpbmRBbGlhczogJ2FsYXJtJyxcbiAgfSxcbiAge1xuICAgIGtpbmQ6ICdNb25pdG9yRGFzaGJvYXJkJyxcbiAgICBraW5kQWxpYXM6ICdNb25pdG9yX0Rhc2hib2FyZF9OZXcnLFxuICAgIGRlZmluaXRpb246IHtcbiAgICAgIGFwaUdyb3VwOiAnYWl0LmFsYXVkYS5pbycsXG4gICAgICB0eXBlOiAnZGFzaGJvYXJkcycsXG4gICAgICBhcGlWZXJzaW9uOiAndjFhbHBoYTEnLFxuICAgIH0sXG4gIH0sXG4gIHtcbiAgICBraW5kOiAnRGFzaGJvYXJkJyxcbiAgICBkZWZpbml0aW9uOiB7XG4gICAgICB0eXBlOiAnbW9uaXRvcmRhc2hib2FyZHMnLFxuICAgICAgYXBpVmVyc2lvbjogJ3YxYWxwaGEyJyxcbiAgICAgIGFwaUdyb3VwOiBBSVRfQVBJX0dST1VQLFxuICAgIH0sXG4gIH0sXG4gIHtcbiAgICBraW5kOiAnU2VydmljZU1vbml0b3InLFxuICAgIGRlZmluaXRpb246IENPTU1PTl9SRVNPVVJDRV9ERUZJTklUSU9OUy5TRVJWSUNFX01PTklUT1IsXG4gIH0sXG5dO1xuIl19
@@ -0,0 +1,12 @@
1
+ /**
2
+ * @packageDocumentation
3
+ * @module k8s-shared
4
+ * @preferred
5
+ */
6
+ export * from './update-description-dialog/component';
7
+ export * from './update-display-name-dialog/component';
8
+ export * from './update-key-value-dialog/component';
9
+ export * from './k8s-shared-util.service';
10
+ export * from './k8s-resource-translate-key.pipe';
11
+ export * from './resource-mark/component';
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2R5bmFtaWMtcGx1Z2luLXNoYXJlZC9zcmMvazhzLXNoYXJlZC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBQ0gsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsMkJBQTJCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvblxuICogQG1vZHVsZSBrOHMtc2hhcmVkXG4gKiBAcHJlZmVycmVkXG4gKi9cbmV4cG9ydCAqIGZyb20gJy4vdXBkYXRlLWRlc2NyaXB0aW9uLWRpYWxvZy9jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi91cGRhdGUtZGlzcGxheS1uYW1lLWRpYWxvZy9jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi91cGRhdGUta2V5LXZhbHVlLWRpYWxvZy9jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9rOHMtc2hhcmVkLXV0aWwuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2s4cy1yZXNvdXJjZS10cmFuc2xhdGUta2V5LnBpcGUnO1xuZXhwb3J0ICogZnJvbSAnLi9yZXNvdXJjZS1tYXJrL2NvbXBvbmVudCc7XG4iXX0=
@@ -0,0 +1,31 @@
1
+ import { inject, InjectionToken, Pipe } from '@angular/core';
2
+ import { CONTROLLED_RESOURCE_TRANSLATIONS } from './constants';
3
+ import * as i0 from "@angular/core";
4
+ export const K8S_RESOURCE_TRANSLATE_KEY = new InjectionToken('K8S_RESOURCE_TRANSLATE_KEY', {
5
+ providedIn: 'root',
6
+ factory: () => defaultTransform,
7
+ });
8
+ export class K8sResourceTranslateKeyPipe {
9
+ constructor() {
10
+ this.getKey = inject(K8S_RESOURCE_TRANSLATE_KEY);
11
+ }
12
+ transform(type, apiGroup) {
13
+ return this.getKey(type, apiGroup);
14
+ }
15
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: K8sResourceTranslateKeyPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
16
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.1.1", ngImport: i0, type: K8sResourceTranslateKeyPipe, isStandalone: true, name: "aclK8sResourceTranslateKey" }); }
17
+ }
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: K8sResourceTranslateKeyPipe, decorators: [{
19
+ type: Pipe,
20
+ args: [{
21
+ name: 'aclK8sResourceTranslateKey',
22
+ standalone: true,
23
+ }]
24
+ }] });
25
+ function defaultTransform(type, group) {
26
+ const { kind, kindAlias } = CONTROLLED_RESOURCE_TRANSLATIONS.find(meta => meta.definition.type === type &&
27
+ (group === meta.definition.apiGroup ||
28
+ (!group && !meta.definition.apiGroup))) || {};
29
+ return kindAlias ?? kind?.toLocaleLowerCase() ?? '';
30
+ }
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiazhzLXJlc291cmNlLXRyYW5zbGF0ZS1rZXkucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvZHluYW1pYy1wbHVnaW4tc2hhcmVkL3NyYy9rOHMtc2hhcmVkL2s4cy1yZXNvdXJjZS10cmFuc2xhdGUta2V5LnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUU1RSxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSxhQUFhLENBQUM7O0FBRS9ELE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFHLElBQUksY0FBYyxDQUUxRCw0QkFBNEIsRUFBRTtJQUM5QixVQUFVLEVBQUUsTUFBTTtJQUNsQixPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsZ0JBQWdCO0NBQ2hDLENBQUMsQ0FBQztBQU1ILE1BQU0sT0FBTywyQkFBMkI7SUFKeEM7UUFLVSxXQUFNLEdBQUcsTUFBTSxDQUFDLDBCQUEwQixDQUFDLENBQUM7S0FLckQ7SUFIQyxTQUFTLENBQUMsSUFBWSxFQUFFLFFBQWlCO1FBQ3ZDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDckMsQ0FBQzs4R0FMVSwyQkFBMkI7NEdBQTNCLDJCQUEyQjs7MkZBQTNCLDJCQUEyQjtrQkFKdkMsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsNEJBQTRCO29CQUNsQyxVQUFVLEVBQUUsSUFBSTtpQkFDakI7O0FBU0QsU0FBUyxnQkFBZ0IsQ0FBQyxJQUFZLEVBQUUsS0FBYztJQUNwRCxNQUFNLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxHQUN2QixnQ0FBZ0MsQ0FBQyxJQUFJLENBQ25DLElBQUksQ0FBQyxFQUFFLENBQ0wsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEtBQUssSUFBSTtRQUM3QixDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVE7WUFDakMsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FDM0MsSUFBSSxFQUFFLENBQUM7SUFDVixPQUFPLFNBQVMsSUFBSSxJQUFJLEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxFQUFFLENBQUM7QUFDdEQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0aW9uVG9rZW4sIFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQ09OVFJPTExFRF9SRVNPVVJDRV9UUkFOU0xBVElPTlMgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5cbmV4cG9ydCBjb25zdCBLOFNfUkVTT1VSQ0VfVFJBTlNMQVRFX0tFWSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxcbiAgKHR5cGU6IHN0cmluZywgYXBpR3JvdXA6IHN0cmluZykgPT4gc3RyaW5nXG4+KCdLOFNfUkVTT1VSQ0VfVFJBTlNMQVRFX0tFWScsIHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxuICBmYWN0b3J5OiAoKSA9PiBkZWZhdWx0VHJhbnNmb3JtLFxufSk7XG5cbkBQaXBlKHtcbiAgbmFtZTogJ2FjbEs4c1Jlc291cmNlVHJhbnNsYXRlS2V5JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgSzhzUmVzb3VyY2VUcmFuc2xhdGVLZXlQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIHByaXZhdGUgZ2V0S2V5ID0gaW5qZWN0KEs4U19SRVNPVVJDRV9UUkFOU0xBVEVfS0VZKTtcblxuICB0cmFuc2Zvcm0odHlwZTogc3RyaW5nLCBhcGlHcm91cD86IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0S2V5KHR5cGUsIGFwaUdyb3VwKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBkZWZhdWx0VHJhbnNmb3JtKHR5cGU6IHN0cmluZywgZ3JvdXA/OiBzdHJpbmcpIHtcbiAgY29uc3QgeyBraW5kLCBraW5kQWxpYXMgfSA9XG4gICAgQ09OVFJPTExFRF9SRVNPVVJDRV9UUkFOU0xBVElPTlMuZmluZChcbiAgICAgIG1ldGEgPT5cbiAgICAgICAgbWV0YS5kZWZpbml0aW9uLnR5cGUgPT09IHR5cGUgJiZcbiAgICAgICAgKGdyb3VwID09PSBtZXRhLmRlZmluaXRpb24uYXBpR3JvdXAgfHxcbiAgICAgICAgICAoIWdyb3VwICYmICFtZXRhLmRlZmluaXRpb24uYXBpR3JvdXApKSxcbiAgICApIHx8IHt9O1xuICByZXR1cm4ga2luZEFsaWFzID8/IGtpbmQ/LnRvTG9jYWxlTG93ZXJDYXNlKCkgPz8gJyc7XG59XG4iXX0=
@@ -0,0 +1,152 @@
1
+ import { K8sUtilService, } from '@alauda-fe/dynamic-plugin-sdk';
2
+ import { Injectable, Injector } from '@angular/core';
3
+ import { cloneDeep, get } from 'lodash-es';
4
+ import { Observable, Subject, tap } from 'rxjs';
5
+ import { NAME, TRUE, LABELS, METADATA, PROJECT, } from '../constants';
6
+ import { getK8sResourceAnnotationErrorMapper, getK8sResourceLabelErrorMapper, k8sResourceAnnotationValidator, k8sResourceLabelValidator, } from '../form/validators/utils';
7
+ import { UpdateDescriptionDialogComponent } from './update-description-dialog/component';
8
+ import { UpdateDisplayNameDialogComponent } from './update-display-name-dialog/component';
9
+ import { UpdateKeyValueDialogComponent, } from './update-key-value-dialog/component';
10
+ import * as i0 from "@angular/core";
11
+ export class K8sSharedUtilService extends K8sUtilService {
12
+ constructor(injector) {
13
+ super(injector);
14
+ this.getProjectNames = this.getProjectNames.bind(this);
15
+ }
16
+ /**
17
+ * 更新 Annotation 或 Label
18
+ */
19
+ updatePart(params) {
20
+ const { part, resource, readonlyKeys, getResourceSpec, dialogClass } = params;
21
+ const keyValues = get(resource, `${METADATA}.${part}`, {});
22
+ const updated$$ = new Subject();
23
+ this.dialog.open(UpdateKeyValueDialogComponent, {
24
+ data: {
25
+ title: `update_${part}`,
26
+ keyValues,
27
+ readonlyKeys,
28
+ validator: part === 'labels'
29
+ ? k8sResourceLabelValidator
30
+ : k8sResourceAnnotationValidator,
31
+ errorMapper: part === 'labels'
32
+ ? getK8sResourceLabelErrorMapper(this.translate)
33
+ : getK8sResourceAnnotationErrorMapper(this.translate),
34
+ updateSuccessMsg: `update_${part}_succeeded`,
35
+ updateFailMsg: `update_${part}_failed`,
36
+ onUpdate: results => {
37
+ const checkedResults = cloneDeep(results);
38
+ for (const key of Object.keys(keyValues)) {
39
+ if (!(key in checkedResults)) {
40
+ checkedResults[key] = null;
41
+ }
42
+ }
43
+ return this.k8sApi['cluster' in params && params.cluster
44
+ ? 'patchResource'
45
+ : 'patchGlobalResource']({
46
+ ...params,
47
+ part: {
48
+ // @ts-expect-error
49
+ metadata: {
50
+ [part]: checkedResults,
51
+ },
52
+ ...(getResourceSpec
53
+ ? { spec: getResourceSpec(checkedResults) }
54
+ : {}),
55
+ },
56
+ }).pipe(tap((_resource) => updated$$.next(_resource)));
57
+ },
58
+ },
59
+ fitViewport: true,
60
+ customClass: dialogClass,
61
+ });
62
+ return updated$$.asObservable();
63
+ }
64
+ updateDisplayName({ type, cluster, resource, definition, }, validateMaxLength = false) {
65
+ return new Observable(observer => {
66
+ const dialogRef = this.dialog.open(UpdateDisplayNameDialogComponent, {
67
+ data: {
68
+ definition,
69
+ resource,
70
+ cluster,
71
+ type,
72
+ validateMaxLength,
73
+ },
74
+ });
75
+ dialogRef.afterClosed().subscribe(updated => {
76
+ if (updated) {
77
+ observer.next(updated);
78
+ }
79
+ observer.complete();
80
+ });
81
+ });
82
+ }
83
+ updateDescription({ type, cluster, resource, definition, }) {
84
+ return new Observable(observer => {
85
+ const dialogRef = this.dialog.open(UpdateDescriptionDialogComponent, {
86
+ data: {
87
+ resource,
88
+ cluster,
89
+ type,
90
+ definition,
91
+ },
92
+ });
93
+ dialogRef.afterClosed().subscribe(updated => {
94
+ if (updated) {
95
+ observer.next(updated);
96
+ }
97
+ observer.complete();
98
+ });
99
+ });
100
+ }
101
+ /**
102
+ * 单项目绑定切换至多项目绑定时,兼容之前的 project name 形式
103
+ * 老格式 cpaas.io/project: "ALL_ALL" 或者 project.cpaas.io/name: "ALL_ALL"
104
+ * 新格式 project.cpaas.io/ALL_ALL: "true"
105
+ * @param {(KubernetesResource | string[])} resource
106
+ * @returns
107
+ * @memberof K8sUtilService
108
+ */
109
+ getProjectNames(resource) {
110
+ if (Array.isArray(resource)) {
111
+ return resource;
112
+ }
113
+ const projectLabelPrefix = `${PROJECT}.${this.baseDomain}/`;
114
+ const labels = get(resource, [METADATA, LABELS], {});
115
+ return Object.entries(labels)
116
+ .reduce((acc, [key, value]) => {
117
+ if (key.startsWith(projectLabelPrefix)) {
118
+ const projectName = key.slice(projectLabelPrefix.length);
119
+ if (value === TRUE) {
120
+ acc.push(projectName);
121
+ }
122
+ else if (projectName === NAME) {
123
+ acc.push(value);
124
+ }
125
+ }
126
+ else if (key === this.normalizeType(PROJECT)) {
127
+ acc.push(value);
128
+ }
129
+ return acc;
130
+ }, [])
131
+ .filter(Boolean);
132
+ }
133
+ getProjectLabels(projects, value = TRUE) {
134
+ return projects?.reduce((acc, project) => {
135
+ if (project) {
136
+ Object.assign(acc, {
137
+ [this.normalizeType(project, PROJECT)]: value,
138
+ });
139
+ }
140
+ return acc;
141
+ }, {});
142
+ }
143
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: K8sSharedUtilService, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable }); }
144
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: K8sSharedUtilService, providedIn: 'root' }); }
145
+ }
146
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: K8sSharedUtilService, decorators: [{
147
+ type: Injectable,
148
+ args: [{
149
+ providedIn: 'root',
150
+ }]
151
+ }], ctorParameters: () => [{ type: i0.Injector }] });
152
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiazhzLXNoYXJlZC11dGlsLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2R5bmFtaWMtcGx1Z2luLXNoYXJlZC9zcmMvazhzLXNoYXJlZC9rOHMtc2hhcmVkLXV0aWwuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0wsY0FBYyxHQUNmLE1BQU0sK0JBQStCLENBQUM7QUFDdkMsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDM0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRWhELE9BQU8sRUFFTCxJQUFJLEVBQ0osSUFBSSxFQUNKLE1BQU0sRUFDTixRQUFRLEVBQ1IsT0FBTyxHQUNSLE1BQU0sY0FBYyxDQUFDO0FBQ3RCLE9BQU8sRUFDTCxtQ0FBbUMsRUFDbkMsOEJBQThCLEVBQzlCLDhCQUE4QixFQUM5Qix5QkFBeUIsR0FDMUIsTUFBTSwwQkFBMEIsQ0FBQztBQUdsQyxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN6RixPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMxRixPQUFPLEVBQ0wsNkJBQTZCLEdBRTlCLE1BQU0scUNBQXFDLENBQUM7O0FBSzdDLE1BQU0sT0FBTyxvQkFFWCxTQUFRLGNBQWlCO0lBQ3pCLFlBQVksUUFBa0I7UUFDNUIsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2hCLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsVUFBVSxDQUNSLE1BS0M7UUFFRCxNQUFNLEVB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O2tIQUFwQixvQkFBb0IsY0FGbkIsTUFBTTs7MkZBRVAsb0JBQW9CO2tCQUhoQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEs4c1Jlc291cmNlRGVmaW5pdGlvbixcbiAgUmVzb3VyY2VXcml0ZVBhcmFtcyxcbiAgSzhzVXRpbFNlcnZpY2UsXG59IGZyb20gJ0BhbGF1ZGEtZmUvZHluYW1pYy1wbHVnaW4tc2RrJztcbmltcG9ydCB7IEluamVjdGFibGUsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjbG9uZURlZXAsIGdldCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0LCB0YXAgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtcbiAgQU5OT1RBVElPTlMsXG4gIE5BTUUsXG4gIFRSVUUsXG4gIExBQkVMUyxcbiAgTUVUQURBVEEsXG4gIFBST0pFQ1QsXG59IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQge1xuICBnZXRLOHNSZXNvdXJjZUFubm90YXRpb25FcnJvck1hcHBlcixcbiAgZ2V0SzhzUmVzb3VyY2VMYWJlbEVycm9yTWFwcGVyLFxuICBrOHNSZXNvdXJjZUFubm90YXRpb25WYWxpZGF0b3IsXG4gIGs4c1Jlc291cmNlTGFiZWxWYWxpZGF0b3IsXG59IGZyb20gJy4uL2Zvcm0vdmFsaWRhdG9ycy91dGlscyc7XG5pbXBvcnQgeyBLdWJlcm5ldGVzUmVzb3VyY2UsIFN0cmluZ01hcCB9IGZyb20gJy4uL3R5cGVzJztcblxuaW1wb3J0IHsgVXBkYXRlRGVzY3JpcHRpb25EaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL3VwZGF0ZS1kZXNjcmlwdGlvbi1kaWFsb2cvY29tcG9uZW50JztcbmltcG9ydCB7IFVwZGF0ZURpc3BsYXlOYW1lRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi91cGRhdGUtZGlzcGxheS1uYW1lLWRpYWxvZy9jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgVXBkYXRlS2V5VmFsdWVEaWFsb2dDb21wb25lbnQsXG4gIFVwZGF0ZUtleVZhbHVlRGlhbG9nRGF0YSxcbn0gZnJvbSAnLi91cGRhdGUta2V5LXZhbHVlLWRpYWxvZy9jb21wb25lbnQnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgSzhzU2hhcmVkVXRpbFNlcnZpY2U8XG4gIFIgZXh0ZW5kcyBzdHJpbmcgPSBzdHJpbmcsXG4+IGV4dGVuZHMgSzhzVXRpbFNlcnZpY2U8Uj4ge1xuICBjb25zdHJ1Y3RvcihpbmplY3RvcjogSW5qZWN0b3IpIHtcbiAgICBzdXBlcihpbmplY3Rvcik7XG4gICAgdGhpcy5nZXRQcm9qZWN0TmFtZXMgPSB0aGlzLmdldFByb2plY3ROYW1lcy5iaW5kKHRoaXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIOabtOaWsCBBbm5vdGF0aW9uIOaIliBMYWJlbFxuICAgKi9cbiAgdXBkYXRlUGFydDxUIGV4dGVuZHMgS3ViZXJuZXRlc1Jlc291cmNlPihcbiAgICBwYXJhbXM6IFJlc291cmNlV3JpdGVQYXJhbXM8UiwgVD4gJiB7XG4gICAgICByZWFkb25seUtleXM/OiBBcnJheTxzdHJpbmcgfCBSZWdFeHA+O1xuICAgICAgcGFydDogdHlwZW9mIEFOTk9UQVRJT05TIHwgdHlwZW9mIExBQkVMUztcbiAgICAgIGdldFJlc291cmNlU3BlYz86IChzdHJpbmdNYXA6IFN0cmluZ01hcCkgPT4gUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gICAgICBkaWFsb2dDbGFzcz86IHN0cmluZztcbiAgICB9LFxuICApIHtcbiAgICBjb25zdCB7IHBhcnQsIHJlc291cmNlLCByZWFkb25seUtleXMsIGdldFJlc291cmNlU3BlYywgZGlhbG9nQ2xhc3MgfSA9XG4gICAgICBwYXJhbXM7XG4gICAgY29uc3Qga2V5VmFsdWVzOiBTdHJpbmdNYXAgPSBnZXQocmVzb3VyY2UsIGAke01FVEFEQVRBfS4ke3BhcnR9YCwge30pO1xuICAgIGNvbnN0IHVwZGF0ZWQkJCA9IG5ldyBTdWJqZWN0PFQ+KCk7XG4gICAgdGhpcy5kaWFsb2cub3BlbjxcbiAgICAgIFVwZGF0ZUtleVZhbHVlRGlhbG9nQ29tcG9uZW50PFQ+LFxuICAgICAgVXBkYXRlS2V5VmFsdWVEaWFsb2dEYXRhPFQ+XG4gICAgPihVcGRhdGVLZXlWYWx1ZURpYWxvZ0NvbXBvbmVudCwge1xuICAgICAgZGF0YToge1xuICAgICAgICB0aXRsZTogYHVwZGF0ZV8ke3BhcnR9YCxcbiAgICAgICAga2V5VmFsdWVzLFxuICAgICAgICByZWFkb25seUtleXMsXG4gICAgICAgIHZhbGlkYXRvcjpcbiAgICAgICAgICBwYXJ0ID09PSAnbGFiZWxzJ1xuICAgICAgICAgICAgPyBrOHNSZXNvdXJjZUxhYmVsVmFsaWRhdG9yXG4gICAgICAgICAgICA6IGs4c1Jlc291cmNlQW5ub3RhdGlvblZhbGlkYXRvcixcbiAgICAgICAgZXJyb3JNYXBwZXI6XG4gICAgICAgICAgcGFydCA9PT0gJ2xhYmVscydcbiAgICAgICAgICAgID8gZ2V0SzhzUmVzb3VyY2VMYWJlbEVycm9yTWFwcGVyKHRoaXMudHJhbnNsYXRlKVxuICAgICAgICAgICAgOiBnZXRLOHNSZXNvdXJjZUFubm90YXRpb25FcnJvck1hcHBlcih0aGlzLnRyYW5zbGF0ZSksXG4gICAgICAgIHVwZGF0ZVN1Y2Nlc3NNc2c6IGB1cGRhdGVfJHtwYXJ0fV9zdWNjZWVkZWRgLFxuICAgICAgICB1cGRhdGVGYWlsTXNnOiBgdXBkYXRlXyR7cGFydH1fZmFpbGVkYCxcbiAgICAgICAgb25VcGRhdGU6IHJlc3VsdHMgPT4ge1xuICAgICAgICAgIGNvbnN0IGNoZWNrZWRSZXN1bHRzID0gY2xvbmVEZWVwKHJlc3VsdHMpO1xuICAgICAgICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKGtleVZhbHVlcykpIHtcbiAgICAgICAgICAgIGlmICghKGtleSBpbiBjaGVja2VkUmVzdWx0cykpIHtcbiAgICAgICAgICAgICAgY2hlY2tlZFJlc3VsdHNba2V5XSA9IG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiB0aGlzLms4c0FwaVtcbiAgICAgICAgICAgICdjbHVzdGVyJyBpbiBwYXJhbXMgJiYgcGFyYW1zLmNsdXN0ZXJcbiAgICAgICAgICAgICAgPyAncGF0Y2hSZXNvdXJjZSdcbiAgICAgICAgICAgICAgOiAncGF0Y2hHbG9iYWxSZXNvdXJjZSdcbiAgICAgICAgICBdKHtcbiAgICAgICAgICAgIC4uLnBhcmFtcyxcbiAgICAgICAgICAgIHBhcnQ6IHtcbiAgICAgICAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvclxuICAgICAgICAgICAgICBtZXRhZGF0YToge1xuICAgICAgICAgICAgICAgIFtwYXJ0XTogY2hlY2tlZFJlc3VsdHMsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIC4uLihnZXRSZXNvdXJjZVNwZWNcbiAgICAgICAgICAgICAgICA/IHsgc3BlYzogZ2V0UmVzb3VyY2VTcGVjKGNoZWNrZWRSZXN1bHRzKSB9XG4gICAgICAgICAgICAgICAgOiB7fSksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0pLnBpcGUodGFwKChfcmVzb3VyY2U6IFQpID0+IHVwZGF0ZWQkJC5uZXh0KF9yZXNvdXJjZSkpKTtcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBmaXRWaWV3cG9ydDogdHJ1ZSxcbiAgICAgIGN1c3RvbUNsYXNzOiBkaWFsb2dDbGFzcyxcbiAgICB9KTtcbiAgICByZXR1cm4gdXBkYXRlZCQkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgdXBkYXRlRGlzcGxheU5hbWU8VCBleHRlbmRzIEt1YmVybmV0ZXNSZXNvdXJjZT4oXG4gICAge1xuICAgICAgdHlwZSxcbiAgICAgIGNsdXN0ZXIsXG4gICAgICByZXNvdXJjZSxcbiAgICAgIGRlZmluaXRpb24sXG4gICAgfToge1xuICAgICAgZGVmaW5pdGlvbj86IEs4c1Jlc291cmNlRGVmaW5pdGlvbjtcbiAgICAgIC8qKlxuICAgICAgICogQGRlcHJlY2F0ZWQgdXNlIGBkZWZpbml0aW9uYCBpbnN0ZWFkXG4gICAgICAgKi9cbiAgICAgIHR5cGU/OiBSO1xuICAgICAgY2x1c3Rlcj86IHN0cmluZztcbiAgICAgIHJlc291cmNlOiBUO1xuICAgIH0sXG4gICAgdmFsaWRhdGVNYXhMZW5ndGggPSBmYWxzZSxcbiAgKSB7XG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlPFQ+KG9ic2VydmVyID0+IHtcbiAgICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW48VXBkYXRlRGlzcGxheU5hbWVEaWFsb2dDb21wb25lbnQ8VD4+KFxuICAgICAgICBVcGRhdGVEaXNwbGF5TmFtZURpYWxvZ0NvbXBvbmVudCxcbiAgICAgICAge1xuICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIGRlZmluaXRpb24sXG4gICAgICAgICAgICByZXNvdXJjZSxcbiAgICAgICAgICAgIGNsdXN0ZXIsXG4gICAgICAgICAgICB0eXBlLFxuICAgICAgICAgICAgdmFsaWRhdGVNYXhMZW5ndGgsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICk7XG5cbiAgICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSh1cGRhdGVkID0+IHtcbiAgICAgICAgaWYgKHVwZGF0ZWQpIHtcbiAgICAgICAgICBvYnNlcnZlci5uZXh0KHVwZGF0ZWQpO1xuICAgICAgICB9XG5cbiAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgdXBkYXRlRGVzY3JpcHRpb248VCBleHRlbmRzIEt1YmVybmV0ZXNSZXNvdXJjZT4oe1xuICAgIHR5cGUsXG4gICAgY2x1c3RlcixcbiAgICByZXNvdXJjZSxcbiAgICBkZWZpbml0aW9uLFxuICB9OiB7XG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWQgdXNlIGBkZWZpbml0aW9uYCBpbnN0ZWFkXG4gICAgICovXG4gICAgdHlwZT86IFI7XG4gICAgZGVmaW5pdGlvbj86IEs4c1Jlc291cmNlRGVmaW5pdGlvbjtcbiAgICBjbHVzdGVyPzogc3RyaW5nO1xuICAgIHJlc291cmNlOiBUO1xuICB9KSB7XG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlPFQ+KG9ic2VydmVyID0+IHtcbiAgICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW48VXBkYXRlRGVzY3JpcHRpb25EaWFsb2dDb21wb25lbnQ8VD4+KFxuICAgICAgICBVcGRhdGVEZXNjcmlwdGlvbkRpYWxvZ0NvbXBvbmVudCxcbiAgICAgICAge1xuICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIHJlc291cmNlLFxuICAgICAgICAgICAgY2x1c3RlcixcbiAgICAgICAgICAgIHR5cGUsXG4gICAgICAgICAgICBkZWZpbml0aW9uLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICApO1xuICAgICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKHVwZGF0ZWQgPT4ge1xuICAgICAgICBpZiAodXBkYXRlZCkge1xuICAgICAgICAgIG9ic2VydmVyLm5leHQodXBkYXRlZCk7XG4gICAgICAgIH1cblxuICAgICAgICBvYnNlcnZlci5jb21wbGV0ZSgpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICog5Y2V6aG555uu57uR5a6a5YiH5o2i6Iez5aSa6aG555uu57uR5a6a5pe277yM5YW85a655LmL5YmN55qEIHByb2plY3QgbmFtZSDlvaLlvI9cbiAgICog6ICB5qC85byPIGNwYWFzLmlvL3Byb2plY3Q6IFwiQUxMX0FMTFwiIOaIluiAhSAgcHJvamVjdC5jcGFhcy5pby9uYW1lOiBcIkFMTF9BTExcIlxuICAgKiDmlrDmoLzlvI8gcHJvamVjdC5jcGFhcy5pby9BTExfQUxMOiBcInRydWVcIlxuICAgKiBAcGFyYW0geyhLdWJlcm5ldGVzUmVzb3VyY2UgfCBzdHJpbmdbXSl9IHJlc291cmNlXG4gICAqIEByZXR1cm5zXG4gICAqIEBtZW1iZXJvZiBLOHNVdGlsU2VydmljZVxuICAgKi9cbiAgZ2V0UHJvamVjdE5hbWVzKHJlc291cmNlOiBLdWJlcm5ldGVzUmVzb3VyY2UgfCBzdHJpbmdbXSkge1xuICAgIGlmIChBcnJheS5pc0FycmF5KHJlc291cmNlKSkge1xuICAgICAgcmV0dXJuIHJlc291cmNlO1xuICAgIH1cbiAgICBjb25zdCBwcm9qZWN0TGFiZWxQcmVmaXggPSBgJHtQUk9KRUNUfS4ke3RoaXMuYmFzZURvbWFpbn0vYDtcbiAgICBjb25zdCBsYWJlbHMgPSBnZXQocmVzb3VyY2UsIFtNRVRBREFUQSwgTEFCRUxTXSwge30pO1xuICAgIHJldHVybiBPYmplY3QuZW50cmllcyhsYWJlbHMpXG4gICAgICAucmVkdWNlPHN0cmluZ1tdPigoYWNjLCBba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgICAgaWYgKGtleS5zdGFydHNXaXRoKHByb2plY3RMYWJlbFByZWZpeCkpIHtcbiAgICAgICAgICBjb25zdCBwcm9qZWN0TmFtZSA9IGtleS5zbGljZShwcm9qZWN0TGFiZWxQcmVmaXgubGVuZ3RoKTtcbiAgICAgICAgICBpZiAodmFsdWUgPT09IFRSVUUpIHtcbiAgICAgICAgICAgIGFjYy5wdXNoKHByb2plY3ROYW1lKTtcbiAgICAgICAgICB9IGVsc2UgaWYgKHByb2plY3ROYW1lID09PSBOQU1FKSB7XG4gICAgICAgICAgICBhY2MucHVzaCh2YWx1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKGtleSA9PT0gdGhpcy5ub3JtYWxpemVUeXBlKFBST0pFQ1QpKSB7XG4gICAgICAgICAgYWNjLnB1c2godmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhY2M7XG4gICAgICB9LCBbXSlcbiAgICAgIC5maWx0ZXIoQm9vbGVhbik7XG4gIH1cblxuICBnZXRQcm9qZWN0TGFiZWxzKHByb2plY3RzOiBzdHJpbmdbXSwgdmFsdWUgPSBUUlVFKSB7XG4gICAgcmV0dXJuIHByb2plY3RzPy5yZWR1Y2U8U3RyaW5nTWFwPigoYWNjLCBwcm9qZWN0KSA9PiB7XG4gICAgICBpZiAocHJvamVjdCkge1xuICAgICAgICBPYmplY3QuYXNzaWduKGFjYywge1xuICAgICAgICAgIFt0aGlzLm5vcm1hbGl6ZVR5cGUocHJvamVjdCwgUFJPSkVDVCldOiB2YWx1ZSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gYWNjO1xuICAgIH0sIHt9KTtcbiAgfVxufVxuIl19