@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,71 @@
1
+ import { TooltipDirective } from '@alauda/ui';
2
+ import { Directive, HostListener, Input, inject } from '@angular/core';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@alauda/ui";
5
+ const CLONE_ELEMENT_BASE_STYLES = {
6
+ position: 'absolute',
7
+ visibility: 'hidden',
8
+ zIndex: -999,
9
+ };
10
+ /**
11
+ * 使用场景:
12
+ * 文案需要单行显示,过长时截取的情况。
13
+ * 效果:
14
+ * 发生截取的文案会显示完整内容的 tooltip。未发生截取的文案不显示 tooltip。
15
+ * @example:
16
+ * <span class="tw-text-overflow" aclTextTooltip>TEXT...</span>
17
+ *
18
+ * tooltip 的一些设置(位置、类型)可以使用 aui 相同设置。未传 tooltip content 则取元素 text content
19
+ */
20
+ export class TextTooltipDirective {
21
+ constructor() {
22
+ this.tooltipDirective = inject(TooltipDirective);
23
+ }
24
+ onMouseEnter(e) {
25
+ const el = e.target;
26
+ const displayWidth = el.offsetWidth;
27
+ const fullWidth = this.calcFullTextWidth(el);
28
+ this.tooltipDirective.content = this.content || el.textContent;
29
+ this.tooltipDirective.disabled = fullWidth <= displayWidth;
30
+ }
31
+ calcFullTextWidth(el) {
32
+ const computedStyle = window.getComputedStyle(el);
33
+ const contentContainer = document.createElement('div');
34
+ contentContainer.textContent = this.content || el.textContent;
35
+ Object.assign(contentContainer.style, {
36
+ ...CLONE_ELEMENT_BASE_STYLES,
37
+ fontSize: computedStyle.fontSize,
38
+ fontWeight: computedStyle.fontWeight,
39
+ });
40
+ document.body.append(contentContainer);
41
+ const width = contentContainer.offsetWidth;
42
+ contentContainer.remove();
43
+ return width;
44
+ }
45
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: TextTooltipDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
46
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.1", type: TextTooltipDirective, isStandalone: true, selector: "[aclTextTooltip]", inputs: { content: ["aclTextTooltip", "content"] }, host: { listeners: { "mouseenter": "onMouseEnter($event)" } }, hostDirectives: [{ directive: i1.TooltipDirective, inputs: ["auiTooltip", "aclTextTooltip", "auiTooltipPosition", "auiTooltipPosition", "auiTooltipType", "auiTooltipType"] }], ngImport: i0 }); }
47
+ }
48
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: TextTooltipDirective, decorators: [{
49
+ type: Directive,
50
+ args: [{
51
+ selector: '[aclTextTooltip]',
52
+ hostDirectives: [
53
+ {
54
+ directive: TooltipDirective,
55
+ inputs: [
56
+ 'auiTooltip:aclTextTooltip',
57
+ 'auiTooltipPosition',
58
+ 'auiTooltipType',
59
+ ],
60
+ },
61
+ ],
62
+ standalone: true,
63
+ }]
64
+ }], propDecorators: { content: [{
65
+ type: Input,
66
+ args: ['aclTextTooltip']
67
+ }], onMouseEnter: [{
68
+ type: HostListener,
69
+ args: ['mouseenter', ['$event']]
70
+ }] } });
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9keW5hbWljLXBsdWdpbi1zaGFyZWQvc3JjL2NvbXBvbmVudHMvdGV4dC10b29sdGlwL2RpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDOUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBRXZFLE1BQU0seUJBQXlCLEdBQUc7SUFDaEMsUUFBUSxFQUFFLFVBQVU7SUFDcEIsVUFBVSxFQUFFLFFBQVE7SUFDcEIsTUFBTSxFQUFFLENBQUMsR0FBRztDQUNiLENBQUM7QUFFRjs7Ozs7Ozs7O0dBU0c7QUFlSCxNQUFNLE9BQU8sb0JBQW9CO0lBZGpDO1FBMkJFLHFCQUFnQixHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0tBZ0I3QztJQXhCQyxZQUFZLENBQUMsQ0FBYTtRQUN4QixNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUMsTUFBcUIsQ0FBQztRQUNuQyxNQUFNLFlBQVksR0FBRyxFQUFFLENBQUMsV0FBVyxDQUFDO1FBQ3BDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM3QyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDLFdBQVcsQ0FBQztRQUMvRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxHQUFHLFNBQVMsSUFBSSxZQUFZLENBQUM7SUFDN0QsQ0FBQztJQUlPLGlCQUFpQixDQUFDLEVBQWU7UUFDdkMsTUFBTSxhQUFhLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2xELE1BQU0sZ0JBQWdCLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2RCxnQkFBZ0IsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUMsV0FBVyxDQUFDO1FBQzlELE1BQU0sQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFO1lBQ3BDLEdBQUcseUJBQXlCO1lBQzVCLFFBQVEsRUFBRSxhQUFhLENBQUMsUUFBUTtZQUNoQyxVQUFVLEVBQUUsYUFBYSxDQUFDLFVBQVU7U0FDckMsQ0FBQyxDQUFDO1FBQ0gsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUN2QyxNQUFNLEtBQUssR0FBRyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUM7UUFDM0MsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDMUIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOzhHQTVCVSxvQkFBb0I7a0dBQXBCLG9CQUFvQjs7MkZBQXBCLG9CQUFvQjtrQkFkaEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsa0JBQWtCO29CQUM1QixjQUFjLEVBQUU7d0JBQ2Q7NEJBQ0UsU0FBUyxFQUFFLGdCQUFnQjs0QkFDM0IsTUFBTSxFQUFFO2dDQUNOLDJCQUEyQjtnQ0FDM0Isb0JBQW9CO2dDQUNwQixnQkFBZ0I7NkJBQ2pCO3lCQUNGO3FCQUNGO29CQUNELFVBQVUsRUFBRSxJQUFJO2lCQUNqQjs4QkFHQyxPQUFPO3NCQUROLEtBQUs7dUJBQUMsZ0JBQWdCO2dCQUl2QixZQUFZO3NCQURYLFlBQVk7dUJBQUMsWUFBWSxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVG9vbHRpcERpcmVjdGl2ZSB9IGZyb20gJ0BhbGF1ZGEvdWknO1xuaW1wb3J0IHsgRGlyZWN0aXZlLCBIb3N0TGlzdGVuZXIsIElucHV0LCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuY29uc3QgQ0xPTkVfRUxFTUVOVF9CQVNFX1NUWUxFUyA9IHtcbiAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gIHZpc2liaWxpdHk6ICdoaWRkZW4nLFxuICB6SW5kZXg6IC05OTksXG59O1xuXG4vKipcbiAqIOS9v+eUqOWcuuaZr++8mlxuICog5paH5qGI6ZyA6KaB5Y2V6KGM5pi+56S677yM6L+H6ZW/5pe25oiq5Y+W55qE5oOF5Ya144CCXG4gKiDmlYjmnpzvvJpcbiAqIOWPkeeUn+aIquWPlueahOaWh+ahiOS8muaYvuekuuWujOaVtOWGheWuueeahCB0b29sdGlw44CC5pyq5Y+R55Sf5oiq5Y+W55qE5paH5qGI5LiN5pi+56S6IHRvb2x0aXDjgIJcbiAqIEBleGFtcGxlOlxuICogPHNwYW4gY2xhc3M9XCJ0dy10ZXh0LW92ZXJmbG93XCIgYWNsVGV4dFRvb2x0aXA+VEVYVC4uLjwvc3Bhbj5cbiAqXG4gKiB0b29sdGlwIOeahOS4gOS6m+iuvue9ru+8iOS9jee9ruOAgeexu+Wei++8ieWPr+S7peS9v+eUqCBhdWkg55u45ZCM6K6+572u44CC5pyq5LygIHRvb2x0aXAgY29udGVudCDliJnlj5blhYPntKAgdGV4dCBjb250ZW50XG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1thY2xUZXh0VG9vbHRpcF0nLFxuICBob3N0RGlyZWN0aXZlczogW1xuICAgIHtcbiAgICAgIGRpcmVjdGl2ZTogVG9vbHRpcERpcmVjdGl2ZSxcbiAgICAgIGlucHV0czogW1xuICAgICAgICAnYXVpVG9vbHRpcDphY2xUZXh0VG9vbHRpcCcsXG4gICAgICAgICdhdWlUb29sdGlwUG9zaXRpb24nLFxuICAgICAgICAnYXVpVG9vbHRpcFR5cGUnLFxuICAgICAgXSxcbiAgICB9LFxuICBdLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBUZXh0VG9vbHRpcERpcmVjdGl2ZSB7XG4gIEBJbnB1dCgnYWNsVGV4dFRvb2x0aXAnKVxuICBjb250ZW50OiBzdHJpbmc7XG5cbiAgQEhvc3RMaXN0ZW5lcignbW91c2VlbnRlcicsIFsnJGV2ZW50J10pXG4gIG9uTW91c2VFbnRlcihlOiBNb3VzZUV2ZW50KSB7XG4gICAgY29uc3QgZWwgPSBlLnRhcmdldCBhcyBIVE1MRWxlbWVudDtcbiAgICBjb25zdCBkaXNwbGF5V2lkdGggPSBlbC5vZmZzZXRXaWR0aDtcbiAgICBjb25zdCBmdWxsV2lkdGggPSB0aGlzLmNhbGNGdWxsVGV4dFdpZHRoKGVsKTtcbiAgICB0aGlzLnRvb2x0aXBEaXJlY3RpdmUuY29udGVudCA9IHRoaXMuY29udGVudCB8fCBlbC50ZXh0Q29udGVudDtcbiAgICB0aGlzLnRvb2x0aXBEaXJlY3RpdmUuZGlzYWJsZWQgPSBmdWxsV2lkdGggPD0gZGlzcGxheVdpZHRoO1xuICB9XG5cbiAgdG9vbHRpcERpcmVjdGl2ZSA9IGluamVjdChUb29sdGlwRGlyZWN0aXZlKTtcblxuICBwcml2YXRlIGNhbGNGdWxsVGV4dFdpZHRoKGVsOiBIVE1MRWxlbWVudCkge1xuICAgIGNvbnN0IGNvbXB1dGVkU3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbCk7XG4gICAgY29uc3QgY29udGVudENvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgIGNvbnRlbnRDb250YWluZXIudGV4dENvbnRlbnQgPSB0aGlzLmNvbnRlbnQgfHwgZWwudGV4dENvbnRlbnQ7XG4gICAgT2JqZWN0LmFzc2lnbihjb250ZW50Q29udGFpbmVyLnN0eWxlLCB7XG4gICAgICAuLi5DTE9ORV9FTEVNRU5UX0JBU0VfU1RZTEVTLFxuICAgICAgZm9udFNpemU6IGNvbXB1dGVkU3R5bGUuZm9udFNpemUsXG4gICAgICBmb250V2VpZ2h0OiBjb21wdXRlZFN0eWxlLmZvbnRXZWlnaHQsXG4gICAgfSk7XG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmQoY29udGVudENvbnRhaW5lcik7XG4gICAgY29uc3Qgd2lkdGggPSBjb250ZW50Q29udGFpbmVyLm9mZnNldFdpZHRoO1xuICAgIGNvbnRlbnRDb250YWluZXIucmVtb3ZlKCk7XG4gICAgcmV0dXJuIHdpZHRoO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,40 @@
1
+ import { NgFor, NgIf } from '@angular/common';
2
+ import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
3
+ import { PurePipe } from '../../pipes';
4
+ import * as i0 from "@angular/core";
5
+ export class TextWithUrlComponent {
6
+ constructor() {
7
+ this.parseUrlInText = parseUrlInText;
8
+ }
9
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: TextWithUrlComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
10
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.1", type: TextWithUrlComponent, isStandalone: true, selector: "acl-text-with-url", inputs: { text: "text" }, ngImport: i0, template: "<ng-container *ngFor=\"let item of text | pure: parseUrlInText\">\n <span *ngIf=\"item.type === 'plain'\">{{ item.value }}</span>\n <a\n *ngIf=\"item.type === 'url'\"\n [href]=\"item.value\"\n target=\"_blank\"\n >{{ item.value }}</a\n >\n</ng-container>\n", dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: PurePipe, name: "pure" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
11
+ }
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: TextWithUrlComponent, decorators: [{
13
+ type: Component,
14
+ args: [{ selector: 'acl-text-with-url', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgFor, NgIf, PurePipe], template: "<ng-container *ngFor=\"let item of text | pure: parseUrlInText\">\n <span *ngIf=\"item.type === 'plain'\">{{ item.value }}</span>\n <a\n *ngIf=\"item.type === 'url'\"\n [href]=\"item.value\"\n target=\"_blank\"\n >{{ item.value }}</a\n >\n</ng-container>\n" }]
15
+ }], propDecorators: { text: [{
16
+ type: Input
17
+ }] } });
18
+ export function parseUrlInText(text) {
19
+ const urlRegex = /((([A-Za-z]{3,9}:(?:\/\/)?)(?:[\w$&+,:;=-]+@)?[\d.A-Za-z-]+|(?:www.|[\w$&+,:;=-]+@)[\d.A-Za-z-]+)((?:\/[\w%+./~-]*)?\??[\w%&+.;=@-]*#?\w*)?)/g;
20
+ const urlMatches = text.match(urlRegex);
21
+ if (!urlMatches) {
22
+ return [{ value: text, type: 'plain' }];
23
+ }
24
+ const result = [];
25
+ let i = 0;
26
+ while (text?.length) {
27
+ const url = urlMatches[i++];
28
+ if (url) {
29
+ const index = text.indexOf(url);
30
+ result.push({ value: text.slice(0, Math.max(0, index)), type: 'plain' }, { value: url, type: 'url' });
31
+ text = text.slice(Math.max(0, index + url.length));
32
+ }
33
+ else {
34
+ result.push({ value: text, type: 'plain' });
35
+ break;
36
+ }
37
+ }
38
+ return result;
39
+ }
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9keW5hbWljLXBsdWdpbi1zaGFyZWQvc3JjL2NvbXBvbmVudHMvdGV4dC13aXRoLXVybC9jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2R5bmFtaWMtcGx1Z2luLXNoYXJlZC9zcmMvY29tcG9uZW50cy90ZXh0LXdpdGgtdXJsL3RlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUxRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sYUFBYSxDQUFDOztBQVN2QyxNQUFNLE9BQU8sb0JBQW9CO0lBUGpDO1FBVUUsbUJBQWMsR0FBRyxjQUFjLENBQUM7S0FDakM7OEdBSlksb0JBQW9CO2tHQUFwQixvQkFBb0IsdUdDWmpDLGlSQVNBLDRDRENZLEtBQUssbUhBQUUsSUFBSSx3RkFBRSxRQUFROzsyRkFFcEIsb0JBQW9CO2tCQVBoQyxTQUFTOytCQUNFLG1CQUFtQixtQkFFWix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUCxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsUUFBUSxDQUFDOzhCQUd2QixJQUFJO3NCQUFaLEtBQUs7O0FBS1IsTUFBTSxVQUFVLGNBQWMsQ0FBQyxJQUFZO0lBQ3pDLE1BQU0sUUFBUSxHQUNaLCtJQUErSSxDQUFDO0lBQ2xKLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7SUFFeEMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2hCLE9BQU8sQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVELE1BQU0sTUFBTSxHQUFXLEVBQUUsQ0FBQztJQUMxQixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDVixPQUFPLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQztRQUNwQixNQUFNLEdBQUcsR0FBRyxVQUFVLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM1QixJQUFJLEdBQUcsRUFBRSxDQUFDO1lBQ1IsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNoQyxNQUFNLENBQUMsSUFBSSxDQUNULEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUMzRCxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUM1QixDQUFDO1lBQ0YsSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsS0FBSyxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ3JELENBQUM7YUFBTSxDQUFDO1lBQ04sTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7WUFDNUMsTUFBTTtRQUNSLENBQUM7SUFDSCxDQUFDO0lBQ0QsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nRm9yLCBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFB1cmVQaXBlIH0gZnJvbSAnLi4vLi4vcGlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhY2wtdGV4dC13aXRoLXVybCcsXG4gIHRlbXBsYXRlVXJsOiAnLi90ZW1wbGF0ZS5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtOZ0ZvciwgTmdJZiwgUHVyZVBpcGVdLFxufSlcbmV4cG9ydCBjbGFzcyBUZXh0V2l0aFVybENvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHRleHQ6IHN0cmluZztcblxuICBwYXJzZVVybEluVGV4dCA9IHBhcnNlVXJsSW5UZXh0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VVcmxJblRleHQodGV4dDogc3RyaW5nKTogVGV4dFtdIHtcbiAgY29uc3QgdXJsUmVnZXggPVxuICAgIC8oKChbQS1aYS16XXszLDl9Oig/OlxcL1xcLyk/KSg/OltcXHckJissOjs9LV0rQCk/W1xcZC5BLVphLXotXSt8KD86d3d3LnxbXFx3JCYrLDo7PS1dK0ApW1xcZC5BLVphLXotXSspKCg/OlxcL1tcXHclKy4vfi1dKik/XFw/P1tcXHclJisuOz1ALV0qIz9cXHcqKT8pL2c7XG4gIGNvbnN0IHVybE1hdGNoZXMgPSB0ZXh0Lm1hdGNoKHVybFJlZ2V4KTtcblxuICBpZiAoIXVybE1hdGNoZXMpIHtcbiAgICByZXR1cm4gW3sgdmFsdWU6IHRleHQsIHR5cGU6ICdwbGFpbicgfV07XG4gIH1cblxuICBjb25zdCByZXN1bHQ6IFRleHRbXSA9IFtdO1xuICBsZXQgaSA9IDA7XG4gIHdoaWxlICh0ZXh0Py5sZW5ndGgpIHtcbiAgICBjb25zdCB1cmwgPSB1cmxNYXRjaGVzW2krK107XG4gICAgaWYgKHVybCkge1xuICAgICAgY29uc3QgaW5kZXggPSB0ZXh0LmluZGV4T2YodXJsKTtcbiAgICAgIHJlc3VsdC5wdXNoKFxuICAgICAgICB7IHZhbHVlOiB0ZXh0LnNsaWNlKDAsIE1hdGgubWF4KDAsIGluZGV4KSksIHR5cGU6ICdwbGFpbicgfSxcbiAgICAgICAgeyB2YWx1ZTogdXJsLCB0eXBlOiAndXJsJyB9LFxuICAgICAgKTtcbiAgICAgIHRleHQgPSB0ZXh0LnNsaWNlKE1hdGgubWF4KDAsIGluZGV4ICsgdXJsLmxlbmd0aCkpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXN1bHQucHVzaCh7IHZhbHVlOiB0ZXh0LCB0eXBlOiAncGxhaW4nIH0pO1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGV4dCB7XG4gIHZhbHVlOiBzdHJpbmc7XG4gIHR5cGU6ICdwbGFpbicgfCAndXJsJztcbn1cbiIsIjxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgdGV4dCB8IHB1cmU6IHBhcnNlVXJsSW5UZXh0XCI+XG4gIDxzcGFuICpuZ0lmPVwiaXRlbS50eXBlID09PSAncGxhaW4nXCI+e3sgaXRlbS52YWx1ZSB9fTwvc3Bhbj5cbiAgPGFcbiAgICAqbmdJZj1cIml0ZW0udHlwZSA9PT0gJ3VybCdcIlxuICAgIFtocmVmXT1cIml0ZW0udmFsdWVcIlxuICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgPnt7IGl0ZW0udmFsdWUgfX08L2FcbiAgPlxuPC9uZy1jb250YWluZXI+XG4iXX0=
@@ -0,0 +1,95 @@
1
+ import { NotificationService, coerceAttrBoolean } from '@alauda/ui';
2
+ import { TranslateService } from '@alauda-fe/dynamic-plugin-sdk';
3
+ import { ChangeDetectionStrategy, Component, Input, forwardRef, HostListener, ViewChild, ElementRef, } from '@angular/core';
4
+ import { NG_VALUE_ACCESSOR } from '@angular/forms';
5
+ import { EFFECT_DIRECTIVE_MODULE } from '../../directives';
6
+ import { isErrorMessage } from '../../types';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@alauda/ui";
9
+ import * as i2 from "@alauda-fe/dynamic-plugin-sdk";
10
+ export const FileResultType = {
11
+ ARRAY_BUFFER: 'ArrayBuffer',
12
+ BINARY_STRING: 'BinaryString',
13
+ DATA_URL: 'DataURL',
14
+ TEXT: 'Text',
15
+ };
16
+ export class UploadFileComponent {
17
+ constructor(notification, translate) {
18
+ this.notification = notification;
19
+ this.translate = translate;
20
+ this.resultType = FileResultType.TEXT;
21
+ }
22
+ onClick() {
23
+ if (coerceAttrBoolean(this.disabled)) {
24
+ return;
25
+ }
26
+ this.fileInput.nativeElement.click();
27
+ }
28
+ async onChange(e) {
29
+ const el = e.target;
30
+ try {
31
+ const results = await Promise.all(Array.from(el.files).map(file => new Promise((resolve, reject) => {
32
+ const fileReader = new FileReader();
33
+ fileReader.addEventListener('load', () => {
34
+ const { result } = fileReader;
35
+ if (this.resultType === FileResultType.TEXT &&
36
+ result.includes('\uFFFD')) {
37
+ reject(new Error(this.translate.get('text_file_type_error')));
38
+ return;
39
+ }
40
+ resolve(result);
41
+ });
42
+ fileReader[`readAs${this.resultType}`](file);
43
+ })));
44
+ this.valueChange(this.multiple ? results : results[0]);
45
+ }
46
+ catch (e) {
47
+ if (isErrorMessage(e)) {
48
+ this.notification.error(e.message);
49
+ }
50
+ }
51
+ el.value = null;
52
+ }
53
+ writeValue() {
54
+ //
55
+ }
56
+ registerOnChange(fn) {
57
+ this.valueChange = fn;
58
+ }
59
+ registerOnTouched() {
60
+ //
61
+ }
62
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: UploadFileComponent, deps: [{ token: i1.NotificationService }, { token: i2.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
63
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.1", type: UploadFileComponent, isStandalone: true, selector: "acl-upload-file", inputs: { disabled: "disabled", accept: "accept", multiple: "multiple", resultType: "resultType" }, host: { listeners: { "click": "onClick()" } }, providers: [
64
+ {
65
+ provide: NG_VALUE_ACCESSOR,
66
+ useExisting: forwardRef(() => UploadFileComponent),
67
+ multi: true,
68
+ },
69
+ ], viewQueries: [{ propertyName: "fileInput", first: true, predicate: ["fileInput"], descendants: true }], ngImport: i0, template: "<ng-content></ng-content>\n<input\n #fileInput\n class=\"file-input\"\n type=\"file\"\n [attr.accept]=\"accept\"\n [multiple]=\"multiple\"\n (change)=\"onChange($event)\"\n/>\n", styles: [":host{position:relative;display:inline-flex;overflow:hidden}.file-input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;z-index:-1}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
70
+ }
71
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: UploadFileComponent, decorators: [{
72
+ type: Component,
73
+ args: [{ selector: 'acl-upload-file', preserveWhitespaces: false, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
74
+ {
75
+ provide: NG_VALUE_ACCESSOR,
76
+ useExisting: forwardRef(() => UploadFileComponent),
77
+ multi: true,
78
+ },
79
+ ], standalone: true, imports: [EFFECT_DIRECTIVE_MODULE], template: "<ng-content></ng-content>\n<input\n #fileInput\n class=\"file-input\"\n type=\"file\"\n [attr.accept]=\"accept\"\n [multiple]=\"multiple\"\n (change)=\"onChange($event)\"\n/>\n", styles: [":host{position:relative;display:inline-flex;overflow:hidden}.file-input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;z-index:-1}\n"] }]
80
+ }], ctorParameters: () => [{ type: i1.NotificationService }, { type: i2.TranslateService }], propDecorators: { disabled: [{
81
+ type: Input
82
+ }], accept: [{
83
+ type: Input
84
+ }], multiple: [{
85
+ type: Input
86
+ }], resultType: [{
87
+ type: Input
88
+ }], fileInput: [{
89
+ type: ViewChild,
90
+ args: ['fileInput']
91
+ }], onClick: [{
92
+ type: HostListener,
93
+ args: ['click']
94
+ }] } });
95
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9keW5hbWljLXBsdWdpbi1zaGFyZWQvc3JjL2NvbXBvbmVudHMvdXBsb2FkLWZpbGUvY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9keW5hbWljLXBsdWdpbi1zaGFyZWQvc3JjL2NvbXBvbmVudHMvdXBsb2FkLWZpbGUvdGVtcGxhdGUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDcEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDakUsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsS0FBSyxFQUNMLFVBQVUsRUFDVixZQUFZLEVBQ1osU0FBUyxFQUNULFVBQVUsR0FDWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFekUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGNBQWMsRUFBVyxNQUFNLGFBQWEsQ0FBQzs7OztBQUV0RCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUc7SUFDNUIsWUFBWSxFQUFFLGFBQWE7SUFDM0IsYUFBYSxFQUFFLGNBQWM7SUFDN0IsUUFBUSxFQUFFLFNBQVM7SUFDbkIsSUFBSSxFQUFFLE1BQU07Q0FDSixDQUFDO0FBc0JYLE1BQU0sT0FBTyxtQkFBbUI7SUFrQjlCLFlBQ21CLFlBQWlDLEVBQ2pDLFNBQTJCO1FBRDNCLGlCQUFZLEdBQVosWUFBWSxDQUFxQjtRQUNqQyxjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQVQ5QyxlQUFVLEdBQW1CLGNBQWMsQ0FBQyxJQUFJLENBQUM7SUFVOUMsQ0FBQztJQUdKLE9BQU87UUFDTCxJQUFJ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QURSLFNBQVM7dUJBQUMsV0FBVztnQkFXdEIsT0FBTztzQkFETixZQUFZO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOb3RpZmljYXRpb25TZXJ2aWNlLCBjb2VyY2VBdHRyQm9vbGVhbiB9IGZyb20gJ0BhbGF1ZGEvdWknO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BhbGF1ZGEtZmUvZHluYW1pYy1wbHVnaW4tc2RrJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBmb3J3YXJkUmVmLFxuICBIb3N0TGlzdGVuZXIsXG4gIFZpZXdDaGlsZCxcbiAgRWxlbWVudFJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IEVGRkVDVF9ESVJFQ1RJVkVfTU9EVUxFIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcyc7XG5pbXBvcnQgeyBpc0Vycm9yTWVzc2FnZSwgVmFsdWVPZiB9IGZyb20gJy4uLy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IEZpbGVSZXN1bHRUeXBlID0ge1xuICBBUlJBWV9CVUZGRVI6ICdBcnJheUJ1ZmZlcicsXG4gIEJJTkFSWV9TVFJJTkc6ICdCaW5hcnlTdHJpbmcnLFxuICBEQVRBX1VSTDogJ0RhdGFVUkwnLFxuICBURVhUOiAnVGV4dCcsXG59IGFzIGNvbnN0O1xuXG5leHBvcnQgdHlwZSBGaWxlUmVzdWx0VHlwZSA9IFZhbHVlT2Y8dHlwZW9mIEZpbGVSZXN1bHRUeXBlPjtcblxuZXhwb3J0IHR5cGUgRmlsZVJlc3VsdCA9IHN0cmluZyB8IEFycmF5QnVmZmVyO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhY2wtdXBsb2FkLWZpbGUnLFxuICB0ZW1wbGF0ZVVybDogJ3RlbXBsYXRlLmh0bWwnLFxuICBzdHlsZVVybHM6IFsnc3R5bGVzLnNjc3MnXSxcbiAgcHJlc2VydmVXaGl0ZXNwYWNlczogZmFsc2UsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFVwbG9hZEZpbGVDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0VGRkVDVF9ESVJFQ1RJVkVfTU9EVUxFXSxcbn0pXG5leHBvcnQgY2xhc3MgVXBsb2FkRmlsZUNvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgQElucHV0KClcbiAgZGlzYWJsZWQ6IGJvb2xlYW47XG5cbiAgQElucHV0KClcbiAgYWNjZXB0OiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgbXVsdGlwbGU6IGJvb2xlYW47XG5cbiAgQElucHV0KClcbiAgcmVzdWx0VHlwZTogRmlsZVJlc3VsdFR5cGUgPSBGaWxlUmVzdWx0VHlwZS5URVhUO1xuXG4gIEBWaWV3Q2hpbGQoJ2ZpbGVJbnB1dCcpXG4gIGZpbGVJbnB1dDogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcblxuICB2YWx1ZUNoYW5nZTogKGV2OiBGaWxlUmVzdWx0IHwgRmlsZVJlc3VsdFtdKSA9PiB2b2lkO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbm90aWZpY2F0aW9uOiBOb3RpZmljYXRpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICApIHt9XG5cbiAgQEhvc3RMaXN0ZW5lcignY2xpY2snKVxuICBvbkNsaWNrKCkge1xuICAgIGlmIChjb2VyY2VBdHRyQm9vbGVhbih0aGlzLmRpc2FibGVkKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmZpbGVJbnB1dC5uYXRpdmVFbGVtZW50LmNsaWNrKCk7XG4gIH1cblxuICBhc3luYyBvbkNoYW5nZShlOiBFdmVudCkge1xuICAgIGNvbnN0IGVsID0gZS50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudDtcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXN1bHRzID0gYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICAgIEFycmF5LmZyb20oZWwuZmlsZXMpLm1hcChcbiAgICAgICAgICBmaWxlID0+XG4gICAgICAgICAgICBuZXcgUHJvbWlzZTxGaWxlUmVzdWx0PigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IGZpbGVSZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuICAgICAgICAgICAgICBmaWxlUmVhZGVyLmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgeyByZXN1bHQgfSA9IGZpbGVSZWFkZXI7XG5cbiAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICB0aGlzLnJlc3VsdFR5cGUgPT09IEZpbGVSZXN1bHRUeXBlLlRFWFQgJiZcbiAgICAgICAgICAgICAgICAgIChyZXN1bHQgYXMgc3RyaW5nKS5pbmNsdWRlcygnXFx1RkZGRCcpXG4gICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICByZWplY3QobmV3IEVycm9yKHRoaXMudHJhbnNsYXRlLmdldCgndGV4dF9maWxlX3R5cGVfZXJyb3InKSkpO1xuICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJlc29sdmUocmVzdWx0KTtcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIGZpbGVSZWFkZXJbYHJlYWRBcyR7dGhpcy5yZXN1bHRUeXBlfWBdKGZpbGUpO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICksXG4gICAgICApO1xuICAgICAgdGhpcy52YWx1ZUNoYW5nZSh0aGlzLm11bHRpcGxlID8gcmVzdWx0cyA6IHJlc3VsdHNbMF0pO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGlmIChpc0Vycm9yTWVzc2FnZShlKSkge1xuICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbi5lcnJvcihlLm1lc3NhZ2UpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGVsLnZhbHVlID0gbnVsbDtcbiAgfVxuXG4gIHdyaXRlVmFsdWUoKSB7XG4gICAgLy9cbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSkge1xuICAgIHRoaXMudmFsdWVDaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKCkge1xuICAgIC8vXG4gIH1cbn1cbiIsIjxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjxpbnB1dFxuICAjZmlsZUlucHV0XG4gIGNsYXNzPVwiZmlsZS1pbnB1dFwiXG4gIHR5cGU9XCJmaWxlXCJcbiAgW2F0dHIuYWNjZXB0XT1cImFjY2VwdFwiXG4gIFttdWx0aXBsZV09XCJtdWx0aXBsZVwiXG4gIChjaGFuZ2UpPVwib25DaGFuZ2UoJGV2ZW50KVwiXG4vPlxuIl19
@@ -0,0 +1,51 @@
1
+ import { handlePixel, isTemplateRef } from '@alauda/ui';
2
+ import { TranslatePipe } from '@alauda-fe/dynamic-plugin-sdk';
3
+ import { NgClass, NgIf, NgStyle, NgTemplateOutlet } from '@angular/common';
4
+ import { ChangeDetectionStrategy, Component, HostBinding, Input, } from '@angular/core';
5
+ import { PurePipe } from '../../pipes';
6
+ import { LoadingMaskComponent } from '../loading-mask/loading-mask.component';
7
+ import * as i0 from "@angular/core";
8
+ export class ZeroStateComponent {
9
+ constructor() {
10
+ this.zeroState = true;
11
+ this.fetching = false;
12
+ this.context = 'form';
13
+ this.handlePixel = handlePixel;
14
+ this.isTemplateRef = isTemplateRef;
15
+ }
16
+ get hiddenState() {
17
+ return !this.zeroState && !this.fetching;
18
+ }
19
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: ZeroStateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
20
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.1", type: ZeroStateComponent, isStandalone: true, selector: "acl-zero-state", inputs: { resourceName: "resourceName", resourceNameTranslated: "resourceNameTranslated", customPlaceholder: "customPlaceholder", zeroState: "zeroState", fetching: "fetching", context: "context", minHeight: "minHeight" }, host: { properties: { "hidden": "this.hiddenState" } }, ngImport: i0, template: "<div\n *ngIf=\"zeroState && !fetching\"\n class=\"zero-placeholder\"\n [ngClass]=\"context\"\n [ngStyle]=\"{\n minHeight: (minHeight | pure: handlePixel),\n }\"\n>\n @if (customPlaceholder) {\n <ng-container\n [ngTemplateOutlet]=\"\n isTemplateRef(customPlaceholder) ? customPlaceholder : literal\n \"\n ></ng-container>\n <ng-template #literal>{{ customPlaceholder }}</ng-template>\n } @else if (!(resourceName || resourceNameTranslated)) {\n {{ 'no_data' | translate }}\n } @else {\n {{\n 'no_named_data_hint'\n | translate\n : {\n name: resourceNameTranslated || (resourceName | translate),\n }\n }}\n }\n</div>\n<acl-loading-mask\n class=\"zero-placeholder\"\n [loading]=\"fetching\"\n></acl-loading-mask>\n", styles: [":host::ng-deep .zero-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 .zero-placeholder>aui-icon:first-child{margin-right:var(--aui-spacing-m)}:host::ng-deep .aui-table .aui-table__row+.zero-placeholder{border-top-left-radius:0;border-top-right-radius:0}.zero-placeholder.form{border:none;padding:14px 0}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "pipe", type: PurePipe, name: "pure" }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "component", type: LoadingMaskComponent, selector: "acl-loading-mask", inputs: ["loading", "type", "text"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
21
+ }
22
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: ZeroStateComponent, decorators: [{
23
+ type: Component,
24
+ args: [{ selector: 'acl-zero-state', changeDetection: ChangeDetectionStrategy.OnPush, imports: [
25
+ NgClass,
26
+ NgStyle,
27
+ PurePipe,
28
+ TranslatePipe,
29
+ LoadingMaskComponent,
30
+ NgTemplateOutlet,
31
+ NgIf,
32
+ ], standalone: true, template: "<div\n *ngIf=\"zeroState && !fetching\"\n class=\"zero-placeholder\"\n [ngClass]=\"context\"\n [ngStyle]=\"{\n minHeight: (minHeight | pure: handlePixel),\n }\"\n>\n @if (customPlaceholder) {\n <ng-container\n [ngTemplateOutlet]=\"\n isTemplateRef(customPlaceholder) ? customPlaceholder : literal\n \"\n ></ng-container>\n <ng-template #literal>{{ customPlaceholder }}</ng-template>\n } @else if (!(resourceName || resourceNameTranslated)) {\n {{ 'no_data' | translate }}\n } @else {\n {{\n 'no_named_data_hint'\n | translate\n : {\n name: resourceNameTranslated || (resourceName | translate),\n }\n }}\n }\n</div>\n<acl-loading-mask\n class=\"zero-placeholder\"\n [loading]=\"fetching\"\n></acl-loading-mask>\n", styles: [":host::ng-deep .zero-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 .zero-placeholder>aui-icon:first-child{margin-right:var(--aui-spacing-m)}:host::ng-deep .aui-table .aui-table__row+.zero-placeholder{border-top-left-radius:0;border-top-right-radius:0}.zero-placeholder.form{border:none;padding:14px 0}\n"] }]
33
+ }], propDecorators: { resourceName: [{
34
+ type: Input
35
+ }], resourceNameTranslated: [{
36
+ type: Input
37
+ }], customPlaceholder: [{
38
+ type: Input
39
+ }], zeroState: [{
40
+ type: Input
41
+ }], fetching: [{
42
+ type: Input
43
+ }], context: [{
44
+ type: Input
45
+ }], minHeight: [{
46
+ type: Input
47
+ }], hiddenState: [{
48
+ type: HostBinding,
49
+ args: ['hidden']
50
+ }] } });
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiemVyby1zdGF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2R5bmFtaWMtcGx1Z2luLXNoYXJlZC9zcmMvY29tcG9uZW50cy96ZXJvLXN0YXRlL3plcm8tc3RhdGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9keW5hbWljLXBsdWdpbi1zaGFyZWQvc3JjL2NvbXBvbmVudHMvemVyby1zdGF0ZS96ZXJvLXN0YXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3hELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzRSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxXQUFXLEVBQ1gsS0FBSyxHQUVOLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDdkMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7O0FBa0I5RSxNQUFNLE9BQU8sa0JBQWtCO0lBaEIvQjtRQTBCRSxjQUFTLEdBQUcsSUFBSSxDQUFDO1FBR2pCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFHakIsWUFBTyxHQUFxQixNQUFNLENBQUM7UUFVbkMsZ0JBQVcsR0FBRyxXQUFXLENBQUM7UUFFMUIsa0JBQWEsR0FBRyxhQUFhLENBQUM7S0FDL0I7SUFSQyxJQUNJLFdBQVc7UUFDYixPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDM0MsQ0FBQzs4R0F4QlUsa0JBQWtCO2tHQUFsQixrQkFBa0IsZ1dDOUIvQix1eUJBK0JBLHl2QkRYSSxPQUFPLG9GQUNQLE9BQU8sc0VBQ1AsUUFBUSx3Q0FDUixhQUFhLGtEQUNiLG9CQUFvQixrR0FDcEIsZ0JBQWdCLG9KQUNoQixJQUFJOzsyRkFJSyxrQkFBa0I7a0JBaEI5QixTQUFTOytCQUNFLGdCQUFnQixtQkFHVCx1QkFBdUIsQ0FBQyxNQUFNLFdBQ3RDO3dCQUNQLE9BQU87d0JBQ1AsT0FBTzt3QkFDUCxRQUFRO3dCQUNSLGFBQWE7d0JBQ2Isb0JBQW9CO3dCQUNwQixnQkFBZ0I7d0JBQ2hCLElBQUk7cUJBQ0wsY0FDVyxJQUFJOzhCQUloQixZQUFZO3NCQURYLEtBQUs7Z0JBSU4sc0JBQXNCO3NCQURyQixLQUFLO2dCQUdHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFHTixTQUFTO3NCQURSLEtBQUs7Z0JBSU4sUUFBUTtzQkFEUCxLQUFLO2dCQUlOLE9BQU87c0JBRE4sS0FBSztnQkFJTixTQUFTO3NCQURSLEtBQUs7Z0JBSUYsV0FBVztzQkFEZCxXQUFXO3VCQUFDLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBoYW5kbGVQaXhlbCwgaXNUZW1wbGF0ZVJlZiB9IGZyb20gJ0BhbGF1ZGEvdWknO1xuaW1wb3J0IHsgVHJhbnNsYXRlUGlwZSB9IGZyb20gJ0BhbGF1ZGEtZmUvZHluYW1pYy1wbHVnaW4tc2RrJztcbmltcG9ydCB7IE5nQ2xhc3MsIE5nSWYsIE5nU3R5bGUsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgSG9zdEJpbmRpbmcsXG4gIElucHV0LFxuICBUZW1wbGF0ZVJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFB1cmVQaXBlIH0gZnJvbSAnLi4vLi4vcGlwZXMnO1xuaW1wb3J0IHsgTG9hZGluZ01hc2tDb21wb25lbnQgfSBmcm9tICcuLi9sb2FkaW5nLW1hc2svbG9hZGluZy1tYXNrLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FjbC16ZXJvLXN0YXRlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3plcm8tc3RhdGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi96ZXJvLXN0YXRlLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbXG4gICAgTmdDbGFzcyxcbiAgICBOZ1N0eWxlLFxuICAgIFB1cmVQaXBlLFxuICAgIFRyYW5zbGF0ZVBpcGUsXG4gICAgTG9hZGluZ01hc2tDb21wb25lbnQsXG4gICAgTmdUZW1wbGF0ZU91dGxldCxcbiAgICBOZ0lmLFxuICBdLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBaZXJvU3RhdGVDb21wb25lbnQge1xuICBASW5wdXQoKVxuICByZXNvdXJjZU5hbWU6IHN0cmluZztcblxuICBASW5wdXQoKVxuICByZXNvdXJjZU5hbWVUcmFuc2xhdGVkOiBzdHJpbmc7XG5cbiAgQElucHV0KCkgY3VzdG9tUGxhY2Vob2xkZXI6IFRlbXBsYXRlUmVmPHVua25vd24+IHwgc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIHplcm9TdGF0ZSA9IHRydWU7XG5cbiAgQElucHV0KClcbiAgZmV0Y2hpbmcgPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBjb250ZXh0OiAnZm9ybScgfCAndGFibGUnID0gJ2Zvcm0nO1xuXG4gIEBJbnB1dCgpXG4gIG1pbkhlaWdodDogc3RyaW5nIHwgbnVtYmVyO1xuXG4gIEBIb3N0QmluZGluZygnaGlkZGVuJylcbiAgZ2V0IGhpZGRlblN0YXRlKCkge1xuICAgIHJldHVybiAhdGhpcy56ZXJvU3RhdGUgJiYgIXRoaXMuZmV0Y2hpbmc7XG4gIH1cblxuICBoYW5kbGVQaXhlbCA9IGhhbmRsZVBpeGVsO1xuXG4gIGlzVGVtcGxhdGVSZWYgPSBpc1RlbXBsYXRlUmVmO1xufVxuIiwiPGRpdlxuICAqbmdJZj1cInplcm9TdGF0ZSAmJiAhZmV0Y2hpbmdcIlxuICBjbGFzcz1cInplcm8tcGxhY2Vob2xkZXJcIlxuICBbbmdDbGFzc109XCJjb250ZXh0XCJcbiAgW25nU3R5bGVdPVwie1xuICAgIG1pbkhlaWdodDogKG1pbkhlaWdodCB8IHB1cmU6IGhhbmRsZVBpeGVsKSxcbiAgfVwiXG4+XG4gIEBpZiAoY3VzdG9tUGxhY2Vob2xkZXIpIHtcbiAgICA8bmctY29udGFpbmVyXG4gICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJcbiAgICAgICAgaXNUZW1wbGF0ZVJlZihjdXN0b21QbGFjZWhvbGRlcikgPyBjdXN0b21QbGFjZWhvbGRlciA6IGxpdGVyYWxcbiAgICAgIFwiXG4gICAgPjwvbmctY29udGFpbmVyPlxuICAgIDxuZy10ZW1wbGF0ZSAjbGl0ZXJhbD57eyBjdXN0b21QbGFjZWhvbGRlciB9fTwvbmctdGVtcGxhdGU+XG4gIH0gQGVsc2UgaWYgKCEocmVzb3VyY2VOYW1lIHx8IHJlc291cmNlTmFtZVRyYW5zbGF0ZWQpKSB7XG4gICAge3sgJ25vX2RhdGEnIHwgdHJhbnNsYXRlIH19XG4gIH0gQGVsc2Uge1xuICAgIHt7XG4gICAgICAnbm9fbmFtZWRfZGF0YV9oaW50J1xuICAgICAgICB8IHRyYW5zbGF0ZVxuICAgICAgICAgIDoge1xuICAgICAgICAgICAgICBuYW1lOiByZXNvdXJjZU5hbWVUcmFuc2xhdGVkIHx8IChyZXNvdXJjZU5hbWUgfCB0cmFuc2xhdGUpLFxuICAgICAgICAgICAgfVxuICAgIH19XG4gIH1cbjwvZGl2PlxuPGFjbC1sb2FkaW5nLW1hc2tcbiAgY2xhc3M9XCJ6ZXJvLXBsYWNlaG9sZGVyXCJcbiAgW2xvYWRpbmddPVwiZmV0Y2hpbmdcIlxuPjwvYWNsLWxvYWRpbmctbWFzaz5cbiJdfQ==
@@ -0,0 +1,86 @@
1
+ /**
2
+ * @packageDocumentation
3
+ * @module utils
4
+ */
5
+ export const API_GATEWAY = '{{API_GATEWAY}}';
6
+ export const TRUE = 'true';
7
+ export const FALSE = 'false';
8
+ export const EMPTY = '';
9
+ export const SPACE = ' ';
10
+ export const DOT = '.';
11
+ export const SLASH = '/';
12
+ export const HYPHEN = '-';
13
+ export const UNDERSCORE = '_';
14
+ export const DELIMITER = ':';
15
+ export const WILDCARD = '.*';
16
+ export const DATE_FORMAT = 'YYYY-MM-DD';
17
+ export const TIME_FORMAT = 'HH:mm:ss';
18
+ export const DATE_TIME_FORMAT = `${DATE_FORMAT} ${TIME_FORMAT}`;
19
+ export const WORKSPACE_PARAMS = 'workspace_params_v1';
20
+ export const PUBLIC_NAMESPACE = 'kube-public';
21
+ export const ASSIGN_ALL = 'ALL_ALL';
22
+ export const ALL = 'ALL';
23
+ export const Bracket = {
24
+ PARENTHESES: ['(', ')'],
25
+ BRACES: ['{', '}'],
26
+ SQUARE_BRACKETS: ['[', ']'],
27
+ POINTY_BRACKETS: ['<', '>'],
28
+ };
29
+ export const TEMPLATE_OPTIONS = Object.freeze({
30
+ interpolate: /{{([\S\s]+?)}}/g,
31
+ });
32
+ export const DEFAULT_CODE_EDITOR_OPTIONS = {
33
+ fontSize: 12,
34
+ folding: true,
35
+ scrollBeyondLastLine: false,
36
+ minimap: { enabled: false },
37
+ find: {
38
+ seedSearchStringFromSelection: 'never',
39
+ autoFindInSelection: 'never',
40
+ },
41
+ mouseWheelZoom: true,
42
+ scrollbar: {
43
+ vertical: 'visible',
44
+ horizontal: 'visible',
45
+ },
46
+ fixedOverflowWidgets: true,
47
+ };
48
+ export const NOTIFY_ON_ERROR_HEADER = '__NOTIFICATION_ON_ERROR__';
49
+ export const NOTIFY_DURATION_HEADER = '__NOTIFICATION_DURATION__';
50
+ export const NOTIFY_ON_ERROR_HEADERS = {
51
+ [NOTIFY_ON_ERROR_HEADER]: TRUE,
52
+ };
53
+ export const NOT_NOTIFY_ON_ERROR_HEADERS = {
54
+ [NOTIFY_ON_ERROR_HEADER]: FALSE,
55
+ };
56
+ // 当前环境是否允许降级
57
+ // 'enabled_downgrade_watch' 主要提供本地开发强制打开需要
58
+ export const DOWNGRADE_WATCH_ENABLED = localStorage.getItem('enabled_downgrade_watch') === TRUE ||
59
+ (document.location.protocol !== 'https:' &&
60
+ document.location.hostname !== 'localhost');
61
+ export const DOWNGRADE_WATCH_POLLING = 5000;
62
+ export const CREATED_AT = 'created_at';
63
+ export const UPDATED_AT = 'updated_at';
64
+ export const ACTION = 'action';
65
+ export const SPEC = 'spec';
66
+ export const CREATE = 'create';
67
+ export const UPDATE = 'update';
68
+ export const LINK = 'link';
69
+ export const ESCAPE_DEACTIVATE_CHECK = 'escape';
70
+ export const CUSTOMIZED = 'customized';
71
+ export const GLOBAL_CLUSTER = 'global';
72
+ export const PACKAGE_RUNTIME_VALUE = 'Runtime';
73
+ export const CRYPTO_HEADER_KEY = 'X-Param-Response';
74
+ export var CRYPTO_TYPE;
75
+ (function (CRYPTO_TYPE) {
76
+ CRYPTO_TYPE["Enable"] = "Force";
77
+ CRYPTO_TYPE["Drop"] = "Drop";
78
+ CRYPTO_TYPE["Disable"] = "None";
79
+ })(CRYPTO_TYPE || (CRYPTO_TYPE = {}));
80
+ export const CRYPTO_RANDOM_HEADER_KEY = 'X-Param-Init';
81
+ export const CRYPTO_KEY = 'alauda';
82
+ export const PLATFORM_OPS_MODE = 'platform-ops-mode';
83
+ // https://kubernetes.io/docs/reference/labels-annotations-taints/#kubectl-kubernetes-io-default-container
84
+ export const DEFAULT_CONTAINER_ANNOTATION = 'kubectl.kubernetes.io/default-container';
85
+ export const NOTIFICATION_SERVER_NAME = 'platform-email-server';
86
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9keW5hbWljLXBsdWdpbi1zaGFyZWQvc3JjL2NvbnN0YW50cy9jb21tb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHO0FBRUgsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLGlCQUFpQixDQUFDO0FBRTdDLE1BQU0sQ0FBQyxNQUFNLElBQUksR0FBRyxNQUFNLENBQUM7QUFDM0IsTUFBTSxDQUFDLE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQztBQUU3QixNQUFNLENBQUMsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDO0FBQ3hCLE1BQU0sQ0FBQyxNQUFNLEtBQUssR0FBRyxHQUFHLENBQUM7QUFDekIsTUFBTSxDQUFDLE1BQU0sR0FBRyxHQUFHLEdBQUcsQ0FBQztBQUN2QixNQUFNLENBQUMsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDO0FBQ3pCLE1BQU0sQ0FBQyxNQUFNLE1BQU0sR0FBRyxHQUFHLENBQUM7QUFDMUIsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLEdBQUcsQ0FBQztBQUM5QixNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsR0FBRyxDQUFDO0FBRTdCLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUM7QUFFN0IsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLFlBQVksQ0FBQztBQUN4QyxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsVUFBVSxDQUFDO0FBQ3RDLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLEdBQUcsV0FBVyxJQUFJLFdBQVcsRUFBRSxDQUFDO0FBRWhFLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLHFCQUFxQixDQUFDO0FBRXRELE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLGFBQWEsQ0FBQztBQUU5QyxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsU0FBUyxDQUFDO0FBQ3BDLE1BQU0s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Q3ZELE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxRQUFRLENBQUM7QUFFbkMsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsbUJBQW1CLENBQUM7QUFFckQsMEdBQTBHO0FBQzFHLE1BQU0sQ0FBQyxNQUFNLDRCQUE0QixHQUN2Qyx5Q0FBeUMsQ0FBQztBQUU1QyxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyx1QkFBdUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHBhY2thZ2VEb2N1bWVudGF0aW9uXG4gKiBAbW9kdWxlIHV0aWxzXG4gKi9cblxuZXhwb3J0IGNvbnN0IEFQSV9HQVRFV0FZID0gJ3t7QVBJX0dBVEVXQVl9fSc7XG5cbmV4cG9ydCBjb25zdCBUUlVFID0gJ3RydWUnO1xuZXhwb3J0IGNvbnN0IEZBTFNFID0gJ2ZhbHNlJztcblxuZXhwb3J0IGNvbnN0IEVNUFRZID0gJyc7XG5leHBvcnQgY29uc3QgU1BBQ0UgPSAnICc7XG5leHBvcnQgY29uc3QgRE9UID0gJy4nO1xuZXhwb3J0IGNvbnN0IFNMQVNIID0gJy8nO1xuZXhwb3J0IGNvbnN0IEhZUEhFTiA9ICctJztcbmV4cG9ydCBjb25zdCBVTkRFUlNDT1JFID0gJ18nO1xuZXhwb3J0IGNvbnN0IERFTElNSVRFUiA9ICc6JztcblxuZXhwb3J0IGNvbnN0IFdJTERDQVJEID0gJy4qJztcblxuZXhwb3J0IGNvbnN0IERBVEVfRk9STUFUID0gJ1lZWVktTU0tREQnO1xuZXhwb3J0IGNvbnN0IFRJTUVfRk9STUFUID0gJ0hIOm1tOnNzJztcbmV4cG9ydCBjb25zdCBEQVRFX1RJTUVfRk9STUFUID0gYCR7REFURV9GT1JNQVR9ICR7VElNRV9GT1JNQVR9YDtcblxuZXhwb3J0IGNvbnN0IFdPUktTUEFDRV9QQVJBTVMgPSAnd29ya3NwYWNlX3BhcmFtc192MSc7XG5cbmV4cG9ydCBjb25zdCBQVUJMSUNfTkFNRVNQQUNFID0gJ2t1YmUtcHVibGljJztcblxuZXhwb3J0IGNvbnN0IEFTU0lHTl9BTEwgPSAnQUxMX0FMTCc7XG5leHBvcnQgY29uc3QgQUxMID0gJ0FMTCc7XG5cbmV4cG9ydCBjb25zdCBCcmFja2V0ID0ge1xuICBQQVJFTlRIRVNFUzogWycoJywgJyknXSxcbiAgQlJBQ0VTOiBbJ3snLCAnfSddLFxuICBTUVVBUkVfQlJBQ0tFVFM6IFsnWycsICddJ10sXG4gIFBPSU5UWV9CUkFDS0VUUzogWyc8JywgJz4nXSxcbn0gYXMgY29uc3Q7XG5cbmV4cG9ydCBjb25zdCBURU1QTEFURV9PUFRJT05TID0gT2JqZWN0LmZyZWV6ZSh7XG4gIGludGVycG9sYXRlOiAve3soW1xcU1xcc10rPyl9fS9nLFxufSk7XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX0NPREVfRURJVE9SX09QVElPTlM6IGltcG9ydCgnQGFsYXVkYS9jb2RlLWVkaXRvcicpLk1vbmFjb0VkaXRvck9wdGlvbnMgPVxuICB7XG4gICAgZm9udFNpemU6IDEyLFxuICAgIGZvbGRpbmc6IHRydWUsXG4gICAgc2Nyb2xsQmV5b25kTGFzdExpbmU6IGZhbHNlLFxuICAgIG1pbmltYXA6IHsgZW5hYmxlZDogZmFsc2UgfSxcbiAgICBmaW5kOiB7XG4gICAgICBzZWVkU2VhcmNoU3RyaW5nRnJvbVNlbGVjdGlvbjogJ25ldmVyJyxcbiAgICAgIGF1dG9GaW5kSW5TZWxlY3Rpb246ICduZXZlcicsXG4gICAgfSxcbiAgICBtb3VzZVdoZWVsWm9vbTogdHJ1ZSxcbiAgICBzY3JvbGxiYXI6IHtcbiAgICAgIHZlcnRpY2FsOiAndmlzaWJsZScsXG4gICAgICBob3Jpem9udGFsOiAndmlzaWJsZScsXG4gICAgfSxcbiAgICBmaXhlZE92ZXJmbG93V2lkZ2V0czogdHJ1ZSxcbiAgfTtcblxuZXhwb3J0IGNvbnN0IE5PVElGWV9PTl9FUlJPUl9IRUFERVIgPSAnX19OT1RJRklDQVRJT05fT05fRVJST1JfXyc7XG5cbmV4cG9ydCBjb25zdCBOT1RJRllfRFVSQVRJT05fSEVBREVSID0gJ19fTk9USUZJQ0FUSU9OX0RVUkFUSU9OX18nO1xuXG5leHBvcnQgY29uc3QgTk9USUZZX09OX0VSUk9SX0hFQURFUlMgPSB7XG4gIFtOT1RJRllfT05fRVJST1JfSEVBREVSXTogVFJVRSxcbn0gYXMgY29uc3Q7XG5cbmV4cG9ydCBjb25zdCBOT1RfTk9USUZZX09OX0VSUk9SX0hFQURFUlMgPSB7XG4gIFtOT1RJRllfT05fRVJST1JfSEVBREVSXTogRkFMU0UsXG59IGFzIGNvbnN0O1xuXG4vLyDlvZPliY3njq/looPmmK/lkKblhYHorrjpmY3nuqdcbi8vICdlbmFibGVkX2Rvd25ncmFkZV93YXRjaCcg5Li76KaB5o+Q5L6b5pys5Zyw5byA5Y+R5by65Yi25omT5byA6ZyA6KaBXG5leHBvcnQgY29uc3QgRE9XTkdSQURFX1dBVENIX0VOQUJMRUQgPVxuICBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnZW5hYmxlZF9kb3duZ3JhZGVfd2F0Y2gnKSA9PT0gVFJVRSB8fFxuICAoZG9jdW1lbnQubG9jYXRpb24ucHJvdG9jb2wgIT09ICdodHRwczonICYmXG4gICAgZG9jdW1lbnQubG9jYXRpb24uaG9zdG5hbWUgIT09ICdsb2NhbGhvc3QnKTtcblxuZXhwb3J0IGNvbnN0IERPV05HUkFERV9XQVRDSF9QT0xMSU5HID0gNTAwMCBhcyBjb25zdDtcblxuZXhwb3J0IGNvbnN0IENSRUFURURfQVQgPSAnY3JlYXRlZF9hdCc7XG5leHBvcnQgY29uc3QgVVBEQVRFRF9BVCA9ICd1cGRhdGVkX2F0JztcbmV4cG9ydCBjb25zdCBBQ1RJT04gPSAnYWN0aW9uJztcbmV4cG9ydCBjb25zdCBTUEVDID0gJ3NwZWMnO1xuZXhwb3J0IGNvbnN0IENSRUFURSA9ICdjcmVhdGUnO1xuZXhwb3J0IGNvbnN0IFVQREFURSA9ICd1cGRhdGUnO1xuZXhwb3J0IGNvbnN0IExJTksgPSAnbGluayc7XG5cbmV4cG9ydCBjb25zdCBFU0NBUEVfREVBQ1RJVkFURV9DSEVDSyA9ICdlc2NhcGUnO1xuXG5leHBvcnQgY29uc3QgQ1VTVE9NSVpFRCA9ICdjdXN0b21pemVkJztcblxuZXhwb3J0IGNvbnN0IEdMT0JBTF9DTFVTVEVSID0gJ2dsb2JhbCc7XG5cbmV4cG9ydCBjb25zdCBQQUNLQUdFX1JVTlRJTUVfVkFMVUUgPSAnUnVudGltZSc7XG5cbmV4cG9ydCBjb25zdCBDUllQVE9fSEVBREVSX0tFWSA9ICdYLVBhcmFtLVJlc3BvbnNlJztcbmV4cG9ydCBlbnVtIENSWVBUT19UWVBFIHtcbiAgRW5hYmxlID0gJ0ZvcmNlJyxcbiAgRHJvcCA9ICdEcm9wJyxcbiAgRGlzYWJsZSA9ICdOb25lJyxcbn1cbmV4cG9ydCBjb25zdCBDUllQVE9fUkFORE9NX0hFQURFUl9LRVkgPSAnWC1QYXJhbS1Jbml0JztcbmV4cG9ydCBjb25zdCBDUllQVE9fS0VZID0gJ2FsYXVkYSc7XG5cbmV4cG9ydCBjb25zdCBQTEFURk9STV9PUFNfTU9ERSA9ICdwbGF0Zm9ybS1vcHMtbW9kZSc7XG5cbi8vIGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL3JlZmVyZW5jZS9sYWJlbHMtYW5ub3RhdGlvbnMtdGFpbnRzLyNrdWJlY3RsLWt1YmVybmV0ZXMtaW8tZGVmYXVsdC1jb250YWluZXJcbmV4cG9ydCBjb25zdCBERUZBVUxUX0NPTlRBSU5FUl9BTk5PVEFUSU9OID1cbiAgJ2t1YmVjdGwua3ViZXJuZXRlcy5pby9kZWZhdWx0LWNvbnRhaW5lcic7XG5cbmV4cG9ydCBjb25zdCBOT1RJRklDQVRJT05fU0VSVkVSX05BTUUgPSAncGxhdGZvcm0tZW1haWwtc2VydmVyJztcbiJdfQ==
@@ -0,0 +1,7 @@
1
+ export * from './common';
2
+ export * from './k8s';
3
+ export * from './patterns';
4
+ export * from './status-icons';
5
+ export * from './timezones';
6
+ export * from './resource-definitions';
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2R5bmFtaWMtcGx1Z2luLXNoYXJlZC9zcmMvY29uc3RhbnRzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsT0FBTyxDQUFDO0FBQ3RCLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyx3QkFBd0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY29tbW9uJztcbmV4cG9ydCAqIGZyb20gJy4vazhzJztcbmV4cG9ydCAqIGZyb20gJy4vcGF0dGVybnMnO1xuZXhwb3J0ICogZnJvbSAnLi9zdGF0dXMtaWNvbnMnO1xuZXhwb3J0ICogZnJvbSAnLi90aW1lem9uZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9yZXNvdXJjZS1kZWZpbml0aW9ucyc7XG4iXX0=
@@ -0,0 +1,13 @@
1
+ export const METADATA = 'metadata';
2
+ export const NAMESPACE = 'namespace';
3
+ export const NAME = 'name';
4
+ export const CREATION_TIMESTAMP = 'creationTimestamp';
5
+ export const ANNOTATIONS = 'annotations';
6
+ export const LABELS = 'labels';
7
+ export const DISPLAY_NAME = 'display-name';
8
+ export const DESCRIPTION = 'description';
9
+ export const CREATOR = 'creator';
10
+ export const UPDATED__AT = 'updated-at';
11
+ export const PROJECT = 'project';
12
+ export const CLUSTER = 'cluster';
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiazhzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9keW5hbWljLXBsdWdpbi1zaGFyZWQvc3JjL2NvbnN0YW50cy9rOHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFHLFVBQVUsQ0FBQztBQUNuQyxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsV0FBVyxDQUFDO0FBQ3JDLE1BQU0sQ0FBQyxNQUFNLElBQUksR0FBRyxNQUFNLENBQUM7QUFDM0IsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsbUJBQW1CLENBQUM7QUFDdEQsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLGFBQWEsQ0FBQztBQUN6QyxNQUFNLENBQUMsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDO0FBQy9CLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxjQUFjLENBQUM7QUFDM0MsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLGFBQWEsQ0FBQztBQUN6QyxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDO0FBQ2pDLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxZQUFZLENBQUM7QUFDeEMsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLFNBQVMsQ0FBQztBQUNqQyxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IE1FVEFEQVRBID0gJ21ldGFkYXRhJztcbmV4cG9ydCBjb25zdCBOQU1FU1BBQ0UgPSAnbmFtZXNwYWNlJztcbmV4cG9ydCBjb25zdCBOQU1FID0gJ25hbWUnO1xuZXhwb3J0IGNvbnN0IENSRUFUSU9OX1RJTUVTVEFNUCA9ICdjcmVhdGlvblRpbWVzdGFtcCc7XG5leHBvcnQgY29uc3QgQU5OT1RBVElPTlMgPSAnYW5ub3RhdGlvbnMnO1xuZXhwb3J0IGNvbnN0IExBQkVMUyA9ICdsYWJlbHMnO1xuZXhwb3J0IGNvbnN0IERJU1BMQVlfTkFNRSA9ICdkaXNwbGF5LW5hbWUnO1xuZXhwb3J0IGNvbnN0IERFU0NSSVBUSU9OID0gJ2Rlc2NyaXB0aW9uJztcbmV4cG9ydCBjb25zdCBDUkVBVE9SID0gJ2NyZWF0b3InO1xuZXhwb3J0IGNvbnN0IFVQREFURURfX0FUID0gJ3VwZGF0ZWQtYXQnO1xuZXhwb3J0IGNvbnN0IFBST0pFQ1QgPSAncHJvamVjdCc7XG5leHBvcnQgY29uc3QgQ0xVU1RFUiA9ICdjbHVzdGVyJztcbiJdfQ==
@@ -0,0 +1,142 @@
1
+ export const DOMAIN_PATTERN_BASE = '^([\\da-z.-]+)\\.([a-z.]{2,6})$';
2
+ export const IP_PATTERN_BASE = '^(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d{1,2})\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d{1,2})$';
3
+ export const IPV6_PATTERN_BASE = '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]+|::(ffff(:0{1,4})?:)?((25[0-5]|(2[0-4]|1?[0-9])?[0-9]).){3}(25[0-5]|(2[0-4]|1?[0-9])?[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1?[0-9])?[0-9]).){3}(25[0-5]|(2[0-4]|1?[0-9])?[0-9]))$';
4
+ const PROTOCOL_PATTERN_BASE = 'https?://';
5
+ const PORT_PATTERN_BASE = '(:(6553[0-5]|655[0-2]\\d|65[0-4]\\d\\d|6[0-4]\\d\\d\\d|[1-5]\\d\\d\\d\\d|[1-9]\\d\\d\\d|[1-9]\\d\\d|[1-9]\\d|[1-9]))';
6
+ const addPortAndProtocol = (patternStr) => {
7
+ const main = patternStr.replace(/(^\^)?/, '').replace(/(\$?)$/, '');
8
+ return `^(${PROTOCOL_PATTERN_BASE})?${main}(${PORT_PATTERN_BASE})?$`;
9
+ };
10
+ const addPortAndProtocolForIpv6 = (patternStr) => {
11
+ const main = patternStr.replace(/(^\^)?/, '').replace(/(\$?)$/, '');
12
+ return `(${patternStr})|(^(${PROTOCOL_PATTERN_BASE})\\[${main}\\]$)|(^(${PROTOCOL_PATTERN_BASE})?\\[${main}\\](${PORT_PATTERN_BASE})$)`;
13
+ };
14
+ export const PORT_PATTERN = {
15
+ pattern: /(^[1-9]\d{0,3}$)|(^[1-5]\d{4}$)|^(6[0-4]\d{3}$)|(^65[0-4]\d{2}$)|(^655[0-2]\d$)|(^6553[0-5]$)/,
16
+ tip: 'invalid_port',
17
+ };
18
+ // include ipv4, domain
19
+ export const IP_ADDRESS_HOSTNAME_PATTERN = {
20
+ pattern: new RegExp(`(${IP_PATTERN_BASE})|(${DOMAIN_PATTERN_BASE})`),
21
+ tip: 'regexp_tip_ip_address_or_hostname',
22
+ };
23
+ // include ipv6, domain
24
+ export const IPV6_ADDRESS_HOSTNAME_PATTERN = {
25
+ pattern: new RegExp(`(${IPV6_PATTERN_BASE})|(${DOMAIN_PATTERN_BASE})`),
26
+ tip: 'regexp_tip_ipv6_address_or_hostname',
27
+ };
28
+ // include ipv4, domain, and support port and protocol
29
+ export const IP_ADDRESS_HOSTNAME_PORT_PATTERN = {
30
+ pattern: new RegExp(`(${addPortAndProtocol(IP_PATTERN_BASE)})|(${addPortAndProtocol(DOMAIN_PATTERN_BASE)})`),
31
+ tip: 'regexp_tip_ip_address_or_hostname',
32
+ };
33
+ // include ipv6, domain, and support port and protocol
34
+ export const IPV6_ADDRESS_HOSTNAME_PORT_PATTERN = {
35
+ pattern: new RegExp(`(${addPortAndProtocolForIpv6(IPV6_PATTERN_BASE)})|(${addPortAndProtocol(DOMAIN_PATTERN_BASE)})`),
36
+ tip: 'regexp_tip_ipv6_address_or_hostname',
37
+ };
38
+ // include ipv4, ipv6, domain, and support port and protocol
39
+ export const IPV4_IPV6_ADDRESS_HOSTNAME_PORT_PATTERN = {
40
+ pattern: new RegExp(`(${addPortAndProtocol(IP_PATTERN_BASE)})|(${addPortAndProtocolForIpv6(IPV6_PATTERN_BASE)})|(${addPortAndProtocol(DOMAIN_PATTERN_BASE)})`),
41
+ tip: 'regexp_tip_ipv4_ipv6_address_or_hostname',
42
+ };
43
+ // include ipv4, ipv6, domain
44
+ export const IP_ADDRESS_HOSTNAME_PATTERN_EXTEND = {
45
+ pattern: new RegExp(`(${IP_PATTERN_BASE})|(${DOMAIN_PATTERN_BASE})|(${IPV6_PATTERN_BASE})`),
46
+ tip: 'regexp_tip_ip_address_or_hostname',
47
+ };
48
+ export const IP_ADDRESS_SUBNET_PATTERN = {
49
+ pattern: /^((\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])\.){3}(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])\/\d+$/,
50
+ tip: 'regexp_tip_ip_address_with_subnet',
51
+ };
52
+ export const DOMAIN_PATTERN = {
53
+ pattern: new RegExp(DOMAIN_PATTERN_BASE),
54
+ placeholder: 'domain_regexp_placeholder',
55
+ tip: 'domain_regexp_tip',
56
+ };
57
+ export const IP_ADDRESS_PATTERN = {
58
+ pattern: /^(?:(?:25[0-5]|2[0-4]\d|[01]?\d{1,2})\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d{1,2})$/,
59
+ placeholder: 'ip_address_placeholder',
60
+ tip: 'regexp_tip_ip_address',
61
+ };
62
+ export const IP_PATTERN = {
63
+ pattern: /^((2(5[0-5]|[0-4]\d))|[01]?\d{1,2})(\.((2(5[0-5]|[0-4]\d))|[01]?\d{1,2})){3}$/,
64
+ tip: 'invalid_ip',
65
+ };
66
+ export const IP_V6_PATTERN = {
67
+ pattern: new RegExp(`${IPV6_PATTERN_BASE}`),
68
+ tip: 'invalid_ip',
69
+ };
70
+ export const IP_V6_ADDRESS_PATTERN = {
71
+ pattern: new RegExp(IPV6_PATTERN_BASE),
72
+ };
73
+ export const IP_V4_OR_V6_PATTERN = {
74
+ pattern: new RegExp(`(${IP_PATTERN_BASE})|(${IPV6_PATTERN_BASE})`),
75
+ };
76
+ export const IP_ADDRESS_PORT_PATTERN = {
77
+ pattern: new RegExp(`${IP_PATTERN_BASE.slice(0, -1)}(?::\\d+)?$`),
78
+ tip: 'regexp_tip_ip_address',
79
+ };
80
+ export const INT_ZERO_PATTERN = {
81
+ pattern: /^(0|\+?[1-9]\d*)$/,
82
+ tip: 'regexp_tip_positive_integer_pattern_zero',
83
+ };
84
+ export const POSITIVE_INT_PATTERN = {
85
+ pattern: /^[1-9]\d*$/,
86
+ tip: 'regexp_tip_positive_integer_pattern',
87
+ };
88
+ export const POSITIVE_NUMBER_PATTERN = {
89
+ pattern: /^([1-9]\d*(?:\.\d*)?|0*\.0*[1-9]\d*)$/,
90
+ tip: 'regexp_tip_positive_number_pattern',
91
+ };
92
+ export const K8S_RESOURCE_NAME_BASE = {
93
+ pattern: /^[\da-z]([\da-z-]*[\da-z])?$/,
94
+ tip: 'regexp_tip_k8s_resource_name_base',
95
+ };
96
+ export const K8S_RESOURCE_LABEL_KEY_PREFIX_PATTERN = {
97
+ pattern: /^[\da-z]([\da-z-]*[\da-z])?(\.[\da-z]([\da-z-]*[\da-z])?)*$/,
98
+ tip: 'regexp_tip_resource_label_key_prefix',
99
+ };
100
+ // 不能直接用来校验 label key,需要使用 `k8sResourceLabelKeyValidator`
101
+ export const K8S_RESOURCE_LABEL_KEY_NAME_PATTERN = {
102
+ pattern: /^(([\dA-Za-z][\w.-]*)?[\dA-Za-z])$/,
103
+ tip: 'k8s_resource_label_key_invalid',
104
+ };
105
+ export const K8S_RESOURCE_LABEL_VALUE_PATTERN = {
106
+ pattern: /^(([\dA-Za-z][\w.-]*)?[\dA-Za-z])?$/,
107
+ tip: 'k8s_resource_label_value_invalid',
108
+ };
109
+ export const K8S_RESOURCE_NAME_START_WITH_CHARS_ONLY = {
110
+ pattern: /^[a-z]([\da-z-]*[\da-z])?$/,
111
+ tip: 'regexp_tip_k8s_resource_name_start_with_chars_only',
112
+ };
113
+ export const HTTP_IP_OR_DOMAIN_PATTERN = {
114
+ pattern: /^((http|https):\/\/)((((2(5[0-5]|[0-4]\d))|[01]?\d{1,2})(\.((2(5[0-5]|[0-4]\d))|[01]?\d{1,2})){3})|((([\dA-Za-z-]*[\dA-Za-z])\.)*([A-Za-z]|[A-Za-z][\dA-Za-z-]*[\dA-Za-z])))(:(([1-9]\d{0,3})|([1-5]\d{4})|(6[0-4]\d{3})|(65[0-4]\d{2})|(655[0-2]\d)|(6553[0-5])))?(\/\S*)*$/,
115
+ tip: 'domain_ip_placeholder',
116
+ };
117
+ export const HTTP_DUAL_IP_OR_DOMAIN_PATTERN = {
118
+ pattern: /^((http|https):\/\/)((((2(5[0-5]|[0-4]\d))|[01]?\d{1,2})(\.((2(5[0-5]|[0-4]\d))|[01]?\d{1,2})){3})|((([\dA-Za-z-]*[\dA-Za-z])\.)*([A-Za-z]|[A-Za-z][\dA-Za-z-]*[\dA-Za-z]))|(\[((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:)(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?\]))(:(([1-9]\d{0,3})|([1-5]\d{4})|(6[0-4]\d{3})|(65[0-4]\d{2})|(655[0-2]\d)|(6553[0-5])))?(\/\S*)*$/,
119
+ tip: 'domain_ip_placeholder',
120
+ };
121
+ export const HTTP_ADDRESS_PATTERN = {
122
+ pattern: /^(http|https):\/\/([\w.])\S*$/,
123
+ tip: 'http_address_format_limit',
124
+ };
125
+ export const EMAIL_PATTERN = {
126
+ pattern: /^[\w.-]+@[\w-]+(\.[\w-]+)+$/,
127
+ tip: 'invalid_email',
128
+ };
129
+ export const IMAGE_TAG_PATTERN = {
130
+ pattern: /^((sha256:[\da-f]{6,64})|(\w[\w.-]{0,127}))$/,
131
+ tip: 'regexp_tip_image_tag',
132
+ placeholder: 'image_tag_input_placeholder',
133
+ };
134
+ export const INT_PATTERN = {
135
+ pattern: /^-?\d+$/,
136
+ tip: 'regexp_tip_integer_pattern',
137
+ };
138
+ export const NUMBER_PATTERN = {
139
+ pattern: /^-?\d+(\.\d*)?$/,
140
+ tip: 'invalid_number',
141
+ };
142
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF0dGVybnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2R5bmFtaWMtcGx1Z2luLXNoYXJlZC9zcmMvY29uc3RhbnRzL3BhdHRlcm5zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLGlDQUFpQyxDQUFDO0FBRXJFLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FDMUIsb0ZBQW9GLENBQUM7QUFFdkYsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQzVCLG9tQkFBb21CLENBQUM7QUFFdm1CLE1BQU0scUJBQXFCLEdBQUcsV0FBVyxDQUFDO0FBQzFDLE1BQU0saUJBQWlCLEdBQ3JCLHNIQUFzSCxDQUFDO0FBRXpILE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxVQUFrQixFQUFFLEVBQUU7SUFDaEQsTUFBTSxJQUFJLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNwRSxPQUFPLEtBQUsscUJBQXFCLEtBQUssSUFBSSxJQUFJLGlCQUFpQixLQUFLLENBQUM7QUFDdkUsQ0FBQyxDQUFDO0FBRUYsTUFBTSx5QkFBeUIsR0FBRyxDQUFDLFVBQWtCLEVBQUUsRUFBRTtJQUN2RCxNQUFNLElBQUksR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3BFLE9BQU8sSUFBSSxVQUFVLFFBQVEscUJBQXFCLE9BQU8sSUFBSSxZQUFZLHFCQUFxQixRQUFRLElBQUksT0FBTyxpQkFBaUIsS0FBSyxDQUFDO0FBQzFJLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRztJQUMxQixPQUFPLEVBQ0wsK0ZBQStGO0lBQ2pHLEdBQUcsRUFBRSxjQUFjO0NB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N0IsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLDhCQUE4QixHQUFHO0lBQzVDLE9BQU8sRUFDTCxpMENBQWkwQztJQUNuMEMsR0FBRyxFQUFFLHVCQUF1QjtDQUM3QixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUc7SUFDbEMsT0FBTyxFQUFFLCtCQUErQjtJQUN4QyxHQUFHLEVBQUUsMkJBQTJCO0NBQ2pDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUc7SUFDM0IsT0FBTyxFQUFFLDZCQUE2QjtJQUN0QyxHQUFHLEVBQUUsZUFBZTtDQUNyQixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUc7SUFDL0IsT0FBTyxFQUFFLDhDQUE4QztJQUN2RCxHQUFHLEVBQUUsc0JBQXNCO0lBQzNCLFdBQVcsRUFBRSw2QkFBNkI7Q0FDM0MsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRztJQUN6QixPQUFPLEVBQUUsU0FBUztJQUNsQixHQUFHLEVBQUUsNEJBQTRCO0NBQ2xDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUc7SUFDNUIsT0FBTyxFQUFFLGlCQUFpQjtJQUMxQixHQUFHLEVBQUUsZ0JBQWdCO0NBQ3RCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgRE9NQUlOX1BBVFRFUk5fQkFTRSA9ICdeKFtcXFxcZGEtei4tXSspXFxcXC4oW2Etei5dezIsNn0pJCc7XG5cbmV4cG9ydCBjb25zdCBJUF9QQVRURVJOX0JBU0UgPVxuICAnXig/Oig/OjI1WzAtNV18MlswLTRdXFxcXGR8WzAxXT9cXFxcZHsxLDJ9KVxcXFwuKXszfSg/OjI1WzAtNV18MlswLTRdXFxcXGR8WzAxXT9cXFxcZHsxLDJ9KSQnO1xuXG5leHBvcnQgY29uc3QgSVBWNl9QQVRURVJOX0JBU0UgPVxuICAnXigoWzAtOWEtZkEtRl17MSw0fTopezd9WzAtOWEtZkEtRl17MSw0fXwoWzAtOWEtZkEtRl17MSw0fTopezEsN306fChbMC05YS1mQS1GXXsxLDR9Oil7MSw2fTpbMC05YS1mQS1GXXsxLDR9fChbMC05YS1mQS1GXXsxLDR9Oil7MSw1fSg6WzAtOWEtZkEtRl17MSw0fSl7MSwyfXwoWzAtOWEtZkEtRl17MSw0fTopezEsNH0oOlswLTlhLWZBLUZdezEsNH0pezEsM318KFswLTlhLWZBLUZdezEsNH06KXsxLDN9KDpbMC05YS1mQS1GXXsxLDR9KXsxLDR9fChbMC05YS1mQS1GXXsxLDR9Oil7MSwyfSg6WzAtOWEtZkEtRl17MSw0fSl7MSw1fXxbMC05YS1mQS1GXXsxLDR9OigoOlswLTlhLWZBLUZdezEsNH0pezEsNn0pfDooKDpbMC05YS1mQS1GXXsxLDR9KXsxLDd9fDopfGZlODA6KDpbMC05YS1mQS1GXXswLDR9KXswLDR9JVswLTlhLXpBLVpdK3w6OihmZmZmKDowezEsNH0pPzopPygoMjVbMC01XXwoMlswLTRdfDE/WzAtOV0pP1swLTldKS4pezN9KDI1WzAtNV18KDJbMC00XXwxP1swLTldKT9bMC05XSl8KFswLTlhLWZBLUZdezEsNH06KXsxLDR9OigoMjVbMC01XXwoMlswLTRdfDE/WzAtOV0pP1swLTldKS4pezN9KDI1WzAtNV18KDJbMC00XXwxP1swLTldKT9bMC05XSkpJCc7XG5cbmNvbnN0IFBST1RPQ09MX1BBVFRFUk5fQkFTRSA9ICdodHRwcz86Ly8nO1xuY29uc3QgUE9SVF9QQVRURVJOX0JBU0UgPVxuICAnKDooNjU1M1swLTVdfDY1NVswLTJdXFxcXGR8NjVbMC00XVxcXFxkXFxcXGR8NlswLTRdXFxcXGRcXFxcZFxcXFxkfFsxLTVdXFxcXGRcXFxcZFxcXFxkXFxcXGR8WzEtOV1cXFxcZFxcXFxkXFxcXGR8WzEtOV1cXFxcZFxcXFxkfFsxLTldXFxcXGR8WzEtOV0pKSc7XG5cbmNvbnN0IGFkZFBvcnRBbmRQcm90b2NvbCA9IChwYXR0ZXJuU3RyOiBzdHJpbmcpID0+IHtcbiAgY29uc3QgbWFpbiA9IHBhdHRlcm5TdHIucmVwbGFjZSgvKF5cXF4pPy8sICcnKS5yZXBsYWNlKC8oXFwkPykkLywgJycpO1xuICByZXR1cm4gYF4oJHtQUk9UT0NPTF9QQVRURVJOX0JBU0V9KT8ke21haW59KCR7UE9SVF9QQVRURVJOX0JBU0V9KT8kYDtcbn07XG5cbmNvbnN0IGFkZFBvcnRBbmRQcm90b2NvbEZvcklwdjYgPSAocGF0dGVyblN0cjogc3RyaW5nKSA9PiB7XG4gIGNvbnN0IG1haW4gPSBwYXR0ZXJuU3RyLnJlcGxhY2UoLyheXFxeKT8vLCAnJykucmVwbGFjZSgvKFxcJD8pJC8sICcnKTtcbiAgcmV0dXJuIGAoJHtwYXR0ZXJuU3RyfSl8KF4oJHtQUk9UT0NPTF9QQVRURVJOX0JBU0V9KVxcXFxbJHttYWlufVxcXFxdJCl8KF4oJHtQUk9UT0NPTF9QQVRURVJOX0JBU0V9KT9cXFxcWyR7bWFpbn1cXFxcXSgke1BPUlRfUEFUVEVSTl9CQVNFfSkkKWA7XG59O1xuXG5leHBvcnQgY29uc3QgUE9SVF9QQVRURVJOID0ge1xuICBwYXR0ZXJuOlxuICAgIC8oXlsxLTldXFxkezAsM30kKXwoXlsxLTVdXFxkezR9JCl8Xig2WzAtNF1cXGR7M30kKXwoXjY1WzAtNF1cXGR7Mn0kKXwoXjY1NVswLTJdXFxkJCl8KF42NTUzWzAtNV0kKS8sXG4gIHRpcDogJ2ludmFsaWRfcG9ydCcsXG59O1xuXG4vLyBpbmNsdWRlIGlwdjQsIGRvbWFpblxuZXhwb3J0IGNvbnN0IElQX0FERFJFU1NfSE9TVE5BTUVfUEFUVEVSTiA9IHtcbiAgcGF0dGVybjogbmV3IFJlZ0V4cChgKCR7SVBfUEFUVEVSTl9CQVNFfSl8KCR7RE9NQUlOX1BBVFRFUk5fQkFTRX0pYCksXG4gIHRpcDogJ3JlZ2V4cF90aXBfaXBfYWRkcmVzc19vcl9ob3N0bmFtZScsXG59O1xuXG4vLyBpbmNsdWRlIGlwdjYsIGRvbWFpblxuZXhwb3J0IGNvbnN0IElQVjZfQUREUkVTU19IT1NUTkFNRV9QQVRURVJOID0ge1xuICBwYXR0ZXJuOiBuZXcgUmVnRXhwKGAoJHtJUFY2X1BBVFRFUk5fQkFTRX0pfCgke0RPTUFJTl9QQVRURVJOX0JBU0V9KWApLFxuICB0aXA6ICdyZWdleHBfdGlwX2lwdjZfYWRkcmVzc19vcl9ob3N0bmFtZScsXG59O1xuXG4vLyBpbmNsdWRlIGlwdjQsIGRvbWFpbiwgYW5kIHN1cHBvcnQgcG9ydCBhbmQgcHJvdG9jb2xcbmV4cG9ydCBjb25zdCBJUF9BRERSRVNTX0hPU1ROQU1FX1BPUlRfUEFUVEVSTiA9IHtcbiAgcGF0dGVybjogbmV3IFJlZ0V4cChcbiAgICBgKCR7YWRkUG9ydEFuZFByb3RvY29sKElQX1BBVFRFUk5fQkFTRSl9KXwoJHthZGRQb3J0QW5kUHJvdG9jb2woXG4gICAgICBET01BSU5fUEFUVEVSTl9CQVNFLFxuICAgICl9KWAsXG4gICksXG4gIHRpcDogJ3JlZ2V4cF90aXBfaXBfYWRkcmVzc19vcl9ob3N0bmFtZScsXG59O1xuXG4vLyBpbmNsdWRlIGlwdjYsIGRvbWFpbiwgYW5kIHN1cHBvcnQgcG9ydCBhbmQgcHJvdG9jb2xcbmV4cG9ydCBjb25zdCBJUFY2X0FERFJFU1NfSE9TVE5BTUVfUE9SVF9QQVRURVJOID0ge1xuICBwYXR0ZXJuOiBuZXcgUmVnRXhwKFxuICAgIGAoJHthZGRQb3J0QW5kUHJvdG9jb2xGb3JJcHY2KElQVjZfUEFUVEVSTl9CQVNFKX0pfCgke2FkZFBvcnRBbmRQcm90b2NvbChcbiAgICAgIERPTUFJTl9QQVRURVJOX0JBU0UsXG4gICAgKX0pYCxcbiAgKSxcbiAgdGlwOiAncmVnZXhwX3RpcF9pcHY2X2FkZHJlc3Nfb3JfaG9zdG5hbWUnLFxufTtcblxuLy8gaW5jbHVkZSAgaXB2NCwgaXB2NiwgZG9tYWluLCBhbmQgc3VwcG9ydCBwb3J0IGFuZCBwcm90b2NvbFxuZXhwb3J0IGNvbnN0IElQVjRfSVBWNl9BRERSRVNTX0hPU1ROQU1FX1BPUlRfUEFUVEVSTiA9IHtcbiAgcGF0dGVybjogbmV3IFJlZ0V4cChcbiAgICBgKCR7YWRkUG9ydEFuZFByb3RvY29sKElQX1BBVFRFUk5fQkFTRSl9KXwoJHthZGRQb3J0QW5kUHJvdG9jb2xGb3JJcHY2KFxuICAgICAgSVBWNl9QQVRURVJOX0JBU0UsXG4gICAgKX0pfCgke2FkZFBvcnRBbmRQcm90b2NvbChET01BSU5fUEFUVEVSTl9CQVNFKX0pYCxcbiAgKSxcbiAgdGlwOiAncmVnZXhwX3RpcF9pcHY0X2lwdjZfYWRkcmVzc19vcl9ob3N0bmFtZScsXG59O1xuXG4vLyBpbmNsdWRlIGlwdjQsIGlwdjYsIGRvbWFpblxuZXhwb3J0IGNvbnN0IElQX0FERFJFU1NfSE9TVE5BTUVfUEFUVEVSTl9FWFRFTkQgPSB7XG4gIHBhdHRlcm46IG5ldyBSZWdFeHAoXG4gICAgYCgke0lQX1BBVFRFUk5fQkFTRX0pfCgke0RPTUFJTl9QQVRURVJOX0JBU0V9KXwoJHtJUFY2X1BBVFRFUk5fQkFTRX0pYCxcbiAgKSxcbiAgdGlwOiAncmVnZXhwX3RpcF9pcF9hZGRyZXNzX29yX2hvc3RuYW1lJyxcbn07XG5cbmV4cG9ydCBjb25zdCBJUF9BRERSRVNTX1NVQk5FVF9QQVRURVJOID0ge1xuICBwYXR0ZXJuOlxuICAgIC9eKChcXGR8WzEtOV1cXGR8MVxcZHsyfXwyWzAtNF1cXGR8MjVbMC01XSlcXC4pezN9KFxcZHxbMS05XVxcZHwxXFxkezJ9fDJbMC00XVxcZHwyNVswLTVdKVxcL1xcZCskLyxcbiAgdGlwOiAncmVnZXhwX3RpcF9pcF9hZGRyZXNzX3dpdGhfc3VibmV0Jyxcbn07XG5cbmV4cG9ydCBjb25zdCBET01BSU5fUEFUVEVSTiA9IHtcbiAgcGF0dGVybjogbmV3IFJlZ0V4cChET01BSU5fUEFUVEVSTl9CQVNFKSxcbiAgcGxhY2Vob2xkZXI6ICdkb21haW5fcmVnZXhwX3BsYWNlaG9sZGVyJyxcbiAgdGlwOiAnZG9tYWluX3JlZ2V4cF90aXAnLFxufTtcblxuZXhwb3J0IGNvbnN0IElQX0FERFJFU1NfUEFUVEVSTiA9IHtcbiAgcGF0dGVybjpcbiAgICAvXig/Oig/OjI1WzAtNV18MlswLTRdXFxkfFswMV0/XFxkezEsMn0pXFwuKXszfSg/OjI1WzAtNV18MlswLTRdXFxkfFswMV0/XFxkezEsMn0pJC8sXG4gIHBsYWNlaG9sZGVyOiAnaXBfYWRkcmVzc19wbGFjZWhvbGRlcicsXG4gIHRpcDogJ3JlZ2V4cF90aXBfaXBfYWRkcmVzcycsXG59O1xuXG5leHBvcnQgY29uc3QgSVBfUEFUVEVSTiA9IHtcbiAgcGF0dGVybjpcbiAgICAvXigoMig1WzAtNV18WzAtNF1cXGQpKXxbMDFdP1xcZHsxLDJ9KShcXC4oKDIoNVswLTVdfFswLTRdXFxkKSl8WzAxXT9cXGR7MSwyfSkpezN9JC8sXG4gIHRpcDogJ2ludmFsaWRfaXAnLFxufTtcblxuZXhwb3J0IGNvbnN0IElQX1Y2X1BBVFRFUk4gPSB7XG4gIHBhdHRlcm46IG5ldyBSZWdFeHAoYCR7SVBWNl9QQVRURVJOX0JBU0V9YCksXG4gIHRpcDogJ2ludmFsaWRfaXAnLFxufTtcblxuZXhwb3J0IGNvbnN0IElQX1Y2X0FERFJFU1NfUEFUVEVSTiA9IHtcbiAgcGF0dGVybjogbmV3IFJlZ0V4cChJUFY2X1BBVFRFUk5fQkFTRSksXG59O1xuXG5leHBvcnQgY29uc3QgSVBfVjRfT1JfVjZfUEFUVEVSTiA9IHtcbiAgcGF0dGVybjogbmV3IFJlZ0V4cChgKCR7SVBfUEFUVEVSTl9CQVNFfSl8KCR7SVBWNl9QQVRURVJOX0JBU0V9KWApLFxufTtcblxuZXhwb3J0IGNvbnN0IElQX0FERFJFU1NfUE9SVF9QQVRURVJOID0ge1xuICBwYXR0ZXJuOiBuZXcgUmVnRXhwKGAke0lQX1BBVFRFUk5fQkFTRS5zbGljZSgwLCAtMSl9KD86OlxcXFxkKyk/JGApLFxuICB0aXA6ICdyZWdleHBfdGlwX2lwX2FkZHJlc3MnLFxufTtcblxuZXhwb3J0IGNvbnN0IElOVF9aRVJPX1BBVFRFUk4gPSB7XG4gIHBhdHRlcm46IC9eKDB8XFwrP1sxLTldXFxkKikkLyxcbiAgdGlwOiAncmVnZXhwX3RpcF9wb3NpdGl2ZV9pbnRlZ2VyX3BhdHRlcm5femVybycsXG59O1xuXG5leHBvcnQgY29uc3QgUE9TSVRJVkVfSU5UX1BBVFRFUk4gPSB7XG4gIHBhdHRlcm46IC9eWzEtOV1cXGQqJC8sXG4gIHRpcDogJ3JlZ2V4cF90aXBfcG9zaXRpdmVfaW50ZWdlcl9wYXR0ZXJuJyxcbn07XG5cbmV4cG9ydCBjb25zdCBQT1NJVElWRV9OVU1CRVJfUEFUVEVSTiA9IHtcbiAgcGF0dGVybjogL14oWzEtOV1cXGQqKD86XFwuXFxkKik/fDAqXFwuMCpbMS05XVxcZCopJC8sXG4gIHRpcDogJ3JlZ2V4cF90aXBfcG9zaXRpdmVfbnVtYmVyX3BhdHRlcm4nLFxufTtcblxuZXhwb3J0IGNvbnN0IEs4U19SRVNPVVJDRV9OQU1FX0JBU0UgPSB7XG4gIHBhdHRlcm46IC9eW1xcZGEtel0oW1xcZGEtei1dKltcXGRhLXpdKT8kLyxcbiAgdGlwOiAncmVnZXhwX3RpcF9rOHNfcmVzb3VyY2VfbmFtZV9iYXNlJyxcbn07XG5cbmV4cG9ydCBjb25zdCBLOFNfUkVTT1VSQ0VfTEFCRUxfS0VZX1BSRUZJWF9QQVRURVJOID0ge1xuICBwYXR0ZXJuOiAvXltcXGRhLXpdKFtcXGRhLXotXSpbXFxkYS16XSk/KFxcLltcXGRhLXpdKFtcXGRhLXotXSpbXFxkYS16XSk/KSokLyxcbiAgdGlwOiAncmVnZXhwX3RpcF9yZXNvdXJjZV9sYWJlbF9rZXlfcHJlZml4Jyxcbn07XG5cbi8vIOS4jeiDveebtOaOpeeUqOadpeagoemqjCBsYWJlbCBrZXnvvIzpnIDopoHkvb/nlKggYGs4c1Jlc291cmNlTGFiZWxLZXlWYWxpZGF0b3JgXG5leHBvcnQgY29uc3QgSzhTX1JFU09VUkNFX0xBQkVMX0tFWV9OQU1FX1BBVFRFUk4gPSB7XG4gIHBhdHRlcm46IC9eKChbXFxkQS1aYS16XVtcXHcuLV0qKT9bXFxkQS1aYS16XSkkLyxcbiAgdGlwOiAnazhzX3Jlc291cmNlX2xhYmVsX2tleV9pbnZhbGlkJyxcbn07XG5cbmV4cG9ydCBjb25zdCBLOFNfUkVTT1VSQ0VfTEFCRUxfVkFMVUVfUEFUVEVSTiA9IHtcbiAgcGF0dGVybjogL14oKFtcXGRBLVphLXpdW1xcdy4tXSopP1tcXGRBLVphLXpdKT8kLyxcbiAgdGlwOiAnazhzX3Jlc291cmNlX2xhYmVsX3ZhbHVlX2ludmFsaWQnLFxufTtcblxuZXhwb3J0IGNvbnN0IEs4U19SRVNPVVJDRV9OQU1FX1NUQVJUX1dJVEhfQ0hBUlNfT05MWSA9IHtcbiAgcGF0dGVybjogL15bYS16XShbXFxkYS16LV0qW1xcZGEtel0pPyQvLFxuICB0aXA6ICdyZWdleHBfdGlwX2s4c19yZXNvdXJjZV9uYW1lX3N0YXJ0X3dpdGhfY2hhcnNfb25seScsXG59O1xuXG5leHBvcnQgY29uc3QgSFRUUF9JUF9PUl9ET01BSU5fUEFUVEVSTiA9IHtcbiAgcGF0dGVybjpcbiAgICAvXigoaHR0cHxodHRwcyk6XFwvXFwvKSgoKCgyKDVbMC01XXxbMC00XVxcZCkpfFswMV0/XFxkezEsMn0pKFxcLigoMig1WzAtNV18WzAtNF1cXGQpKXxbMDFdP1xcZHsxLDJ9KSl7M30pfCgoKFtcXGRBLVphLXotXSpbXFxkQS1aYS16XSlcXC4pKihbQS1aYS16XXxbQS1aYS16XVtcXGRBLVphLXotXSpbXFxkQS1aYS16XSkpKSg6KChbMS05XVxcZHswLDN9KXwoWzEtNV1cXGR7NH0pfCg2WzAtNF1cXGR7M30pfCg2NVswLTRdXFxkezJ9KXwoNjU1WzAtMl1cXGQpfCg2NTUzWzAtNV0pKSk/KFxcL1xcUyopKiQvLFxuICB0aXA6ICdkb21haW5faXBfcGxhY2Vob2xkZXInLFxufTtcblxuZXhwb3J0IGNvbnN0IEhUVFBfRFVBTF9JUF9PUl9ET01BSU5fUEFUVEVSTiA9IHtcbiAgcGF0dGVybjpcbiAgICAvXigoaHR0cHxodHRwcyk6XFwvXFwvKSgoKCgyKDVbMC01XXxbMC00XVxcZCkpfFswMV0/XFxkezEsMn0pKFxcLigoMig1WzAtNV18WzAtNF1cXGQpKXxbMDFdP1xcZHsxLDJ9KSl7M30pfCgoKFtcXGRBLVphLXotXSpbXFxkQS1aYS16XSlcXC4pKihbQS1aYS16XXxbQS1aYS16XVtcXGRBLVphLXotXSpbXFxkQS1aYS16XSkpfChcXFsoKChbMC05QS1GYS1mXXsxLDR9Oil7N30oWzAtOUEtRmEtZl17MSw0fXw6KSl8KChbMC05QS1GYS1mXXsxLDR9Oil7Nn0oOlswLTlBLUZhLWZdezEsNH18KCgyNVswLTVdfDJbMC00XVxcZHwxXFxkXFxkfFsxLTldP1xcZCkoXFwuKDI1WzAtNV18MlswLTRdXFxkfDFcXGRcXGR8WzEtOV0/XFxkKSl7M30pfDopKXwoKFswLTlBLUZhLWZdezEsNH06KXs1fSgoKDpbMC05QS1GYS1mXXsxLDR9KXsxLDJ9KXw6KCgyNVswLTVdfDJbMC00XVxcZHwxXFxkXFxkfFsxLTldP1xcZCkoXFwuKDI1WzAtNV18MlswLTRdXFxkfDFcXGRcXGR8WzEtOV0/XFxkKSl7M30pfDopKXwoKFswLTlBLUZhLWZdezEsNH06KXs0fSgoKDpbMC05QS1GYS1mXXsxLDR9KXsxLDN9KXwoKDpbMC05QS1GYS1mXXsxLDR9KT86KCgyNVswLTVdfDJbMC00XVxcZHwxXFxkXFxkfFsxLTldP1xcZCkoXFwuKDI1WzAtNV18MlswLTRdXFxkfDFcXGRcXGR8WzEtOV0/XFxkKSl7M30pKXw6KSl8KChbMC05QS1GYS1mXXsxLDR9Oil7M30oKCg6WzAtOUEtRmEtZl17MSw0fSl7MSw0fSl8KCg6WzAtOUEtRmEtZl17MSw0fSl7MCwyfTooKDI1WzAtNV18MlswLTRdXFxkfDFcXGRcXGR8WzEtOV0/XFxkKShcXC4oMjVbMC01XXwyWzAtNF1cXGR8MVxcZFxcZHxbMS05XT9cXGQpKXszfSkpfDopKXwoKFswLTlBLUZhLWZdezEsNH06KXsyfSgoKDpbMC05QS1GYS1mXXsxLDR9KXsxLDV9KXwoKDpbMC05QS1GYS1mXXsxLDR9KXswLDN9OigoMjVbMC01XXwyWzAtNF1cXGR8MVxcZFxcZHxbMS05XT9cXGQpKFxcLigyNVswLTVdfDJbMC00XVxcZHwxXFxkXFxkfFsxLTldP1xcZCkpezN9KSl8OikpfCgoWzAtOUEtRmEtZl17MSw0fTopKCgoOlswLTlBLUZhLWZdezEsNH0pezEsNn0pfCgoOlswLTlBLUZhLWZdezEsNH0pezAsNH06KCgyNVswLTVdfDJbMC00XVxcZHwxXFxkXFxkfFsxLTldP1xcZCkoXFwuKDI1WzAtNV18MlswLTRdXFxkfDFcXGRcXGR8WzEtOV0/XFxkKSl7M30pKXw6KSl8KDooKCg6WzAtOUEtRmEtZl17MSw0fSl7MSw3fSl8KCg6WzAtOUEtRmEtZl17MSw0fSl7MCw1fTooKDI1WzAtNV18MlswLTRdXFxkfDFcXGRcXGR8WzEtOV0/XFxkKShcXC4oMjVbMC01XXwyWzAtNF1cXGR8MVxcZFxcZHxbMS05XT9cXGQpKXszfSkpfDopKSkoJS4rKT9cXF0pKSg6KChbMS05XVxcZHswLDN9KXwoWzEtNV1cXGR7NH0pfCg2WzAtNF1cXGR7M30pfCg2NVswLTRdXFxkezJ9KXwoNjU1WzAtMl1cXGQpfCg2NTUzWzAtNV0pKSk/KFxcL1xcUyopKiQvLFxuICB0aXA6ICdkb21haW5faXBfcGxhY2Vob2xkZXInLFxufTtcblxuZXhwb3J0IGNvbnN0IEhUVFBfQUREUkVTU19QQVRURVJOID0ge1xuICBwYXR0ZXJuOiAvXihodHRwfGh0dHBzKTpcXC9cXC8oW1xcdy5dKVxcUyokLyxcbiAgdGlwOiAnaHR0cF9hZGRyZXNzX2Zvcm1hdF9saW1pdCcsXG59O1xuXG5leHBvcnQgY29uc3QgRU1BSUxfUEFUVEVSTiA9IHtcbiAgcGF0dGVybjogL15bXFx3Li1dK0BbXFx3LV0rKFxcLltcXHctXSspKyQvLFxuICB0aXA6ICdpbnZhbGlkX2VtYWlsJyxcbn07XG5cbmV4cG9ydCBjb25zdCBJTUFHRV9UQUdfUEFUVEVSTiA9IHtcbiAgcGF0dGVybjogL14oKHNoYTI1NjpbXFxkYS1mXXs2LDY0fSl8KFxcd1tcXHcuLV17MCwxMjd9KSkkLyxcbiAgdGlwOiAncmVnZXhwX3RpcF9pbWFnZV90YWcnLFxuICBwbGFjZWhvbGRlcjogJ2ltYWdlX3RhZ19pbnB1dF9wbGFjZWhvbGRlcicsXG59O1xuXG5leHBvcnQgY29uc3QgSU5UX1BBVFRFUk4gPSB7XG4gIHBhdHRlcm46IC9eLT9cXGQrJC8sXG4gIHRpcDogJ3JlZ2V4cF90aXBfaW50ZWdlcl9wYXR0ZXJuJyxcbn07XG5cbmV4cG9ydCBjb25zdCBOVU1CRVJfUEFUVEVSTiA9IHtcbiAgcGF0dGVybjogL14tP1xcZCsoXFwuXFxkKik/JC8sXG4gIHRpcDogJ2ludmFsaWRfbnVtYmVyJyxcbn07XG4iXX0=