@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,109 @@
1
+ import { __decorate, __metadata } from "tslib";
2
+ import { ComponentPortal, DomPortalOutlet } from '@angular/cdk/portal';
3
+ import { ApplicationRef, ChangeDetectionStrategy, ChangeDetectorRef, Component, ComponentFactoryResolver, Directive, Injector, Input, Optional, Self, } from '@angular/core';
4
+ import { FormGroupDirective, NgControl, NgForm } from '@angular/forms';
5
+ import { Observable, Subject, merge, of, debounceTime, map, switchMap, takeUntil, } from 'rxjs';
6
+ import { ObservableInput } from '../../utils';
7
+ import { BaseErrorsMapper } from './base-errors-mapper';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "@angular/forms";
10
+ export class ErrorsMapperDirective extends BaseErrorsMapper {
11
+ constructor(injector, cdr, cfr, appRef, control, ngForm, formGroup) {
12
+ super(injector);
13
+ this.injector = injector;
14
+ this.cdr = cdr;
15
+ this.cfr = cfr;
16
+ this.appRef = appRef;
17
+ this.control = control;
18
+ this.ngForm = ngForm;
19
+ this.formGroup = formGroup;
20
+ this.destroy$ = new Subject();
21
+ }
22
+ ngAfterViewInit() {
23
+ if (!this.control) {
24
+ throw new Error('Errors mapper is not properly configured. No valid control is found.');
25
+ }
26
+ this.initPortal();
27
+ const statusChange = [this.control.statusChanges];
28
+ if (this.ngForm) {
29
+ statusChange.push(this.ngForm.ngSubmit);
30
+ }
31
+ if (this.formGroup) {
32
+ statusChange.push(this.formGroup.ngSubmit);
33
+ }
34
+ this.aclErrorsMapperDisabled$
35
+ .pipe(switchMap(isDisable => isDisable
36
+ ? of(null)
37
+ : merge(...statusChange, this.translate.locale$).pipe(debounceTime(50), map(() => this.getErrorMessage(this.control.errors, this.aclErrorsMapper || {}, this.aclErrorsMapperFn, this.aclErrorsMapperControlName)))), takeUntil(this.destroy$))
38
+ .subscribe(content => {
39
+ this.updateContent(content);
40
+ this.cdr.markForCheck();
41
+ });
42
+ }
43
+ updateContent(content) {
44
+ if (!content) {
45
+ if (this.portalHost.hasAttached()) {
46
+ this.portalHost.detach();
47
+ }
48
+ return;
49
+ }
50
+ if (!this.portalHost.hasAttached()) {
51
+ this.portalAttach = this.portalHost.attach(this.portal).instance;
52
+ }
53
+ this.portalAttach.data = content;
54
+ this.portalAttach.cdr.markForCheck();
55
+ }
56
+ initPortal() {
57
+ this.portalHost = new DomPortalOutlet(this.aclErrorsMapperOutlet, this.cfr, this.appRef, this.injector);
58
+ this.portal = new ComponentPortal(TextComponent);
59
+ }
60
+ ngOnDestroy() {
61
+ this.destroy$.next();
62
+ this.portalHost.dispose();
63
+ }
64
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: ErrorsMapperDirective, deps: [{ token: i0.Injector }, { token: i0.ChangeDetectorRef }, { token: i0.ComponentFactoryResolver }, { token: i0.ApplicationRef }, { token: i1.NgControl, self: true }, { token: i1.NgForm, optional: true }, { token: i1.FormGroupDirective, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
65
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.1", type: ErrorsMapperDirective, isStandalone: true, selector: "[aclErrorsMapper]", inputs: { aclErrorsMapper: "aclErrorsMapper", aclErrorsMapperFn: "aclErrorsMapperFn", aclErrorsMapperDisabled: "aclErrorsMapperDisabled", aclErrorsMapperOutlet: "aclErrorsMapperOutlet", aclErrorsMapperControlName: "aclErrorsMapperControlName" }, usesInheritance: true, ngImport: i0 }); }
66
+ }
67
+ __decorate([
68
+ ObservableInput(),
69
+ __metadata("design:type", Observable)
70
+ ], ErrorsMapperDirective.prototype, "aclErrorsMapperDisabled$", void 0);
71
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: ErrorsMapperDirective, decorators: [{
72
+ type: Directive,
73
+ args: [{
74
+ selector: '[aclErrorsMapper]',
75
+ standalone: true,
76
+ }]
77
+ }], ctorParameters: () => [{ type: i0.Injector }, { type: i0.ChangeDetectorRef }, { type: i0.ComponentFactoryResolver }, { type: i0.ApplicationRef }, { type: i1.NgControl, decorators: [{
78
+ type: Self
79
+ }] }, { type: i1.NgForm, decorators: [{
80
+ type: Optional
81
+ }] }, { type: i1.FormGroupDirective, decorators: [{
82
+ type: Optional
83
+ }] }], propDecorators: { aclErrorsMapper: [{
84
+ type: Input
85
+ }], aclErrorsMapperFn: [{
86
+ type: Input
87
+ }], aclErrorsMapperDisabled: [{
88
+ type: Input
89
+ }], aclErrorsMapperDisabled$: [], aclErrorsMapperOutlet: [{
90
+ type: Input
91
+ }], aclErrorsMapperControlName: [{
92
+ type: Input
93
+ }] } });
94
+ class TextComponent {
95
+ constructor(cdr) {
96
+ this.cdr = cdr;
97
+ }
98
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: TextComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
99
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.1", type: TextComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: ` {{ data }} `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
100
+ }
101
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: TextComponent, decorators: [{
102
+ type: Component,
103
+ args: [{
104
+ template: ` {{ data }} `,
105
+ changeDetection: ChangeDetectionStrategy.OnPush,
106
+ standalone: true,
107
+ }]
108
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }] });
109
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLW1hcHBlci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2R5bmFtaWMtcGx1Z2luLXNoYXJlZC9zcmMvZm9ybS9lcnJvcnMtbWFwcGVyL2Vycm9ycy1tYXBwZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLGVBQWUsRUFBVSxNQUFNLHFCQUFxQixDQUFDO0FBQy9FLE9BQU8sRUFFTCxjQUFjLEVBQ2QsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1Qsd0JBQXdCLEVBQ3hCLFNBQVMsRUFDVCxRQUFRLEVBQ1IsS0FBSyxFQUVMLFFBQVEsRUFDUixJQUFJLEdBQ0wsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2RSxPQUFPLEVBQ0wsVUFBVSxFQUNWLE9BQU8sRUFDUCxLQUFLLEVBQ0wsRUFBRSxFQUNGLFlBQVksRUFDWixHQUFHLEVBQ0gsU0FBUyxFQUNULFNBQVMsR0FDVixNQUFNLE1BQU0sQ0FBQztBQUdkLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFOUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7OztBQU94RCxNQUFNLE9BQU8scUJBQ1gsU0FBUSxnQkFBZ0I7SUFnQ3hCLFlBQ1MsUUFBa0IsRUFDUixHQUFzQixFQUN0QixHQUE2QixFQUM3QixNQUFzQixFQUNkLE9BQWtCLEVBQ2QsTUFBYyxFQUUxQixTQUE2QjtRQUU5QyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFUVCxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ1IsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDdEIsUUFBRyxHQUFILEdBQUcsQ0FBMEI7UUFDN0IsV0FBTSxHQUFOLE1BQU0sQ0FBZ0I7UUFDZCxZQUFPLEdBQVAsT0FBTyxDQUFXO1FBQ2QsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUUxQixjQUFTLEdBQVQsU0FBUyxDQUFvQjtRQVYvQixhQUFRLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztJQWFoRCxDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDbEIsTUFBTSxJQUFJLEtBQUssQ0FDYixzRUFBc0UsQ0FDdkUsQ0FBQztRQUNKLENBQUM7UUFDRCxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDbEIsTUFBTSxZQUFZLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRWxELElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2hCLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMxQyxDQUFDO1FBQ0QsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDbkIsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzdDLENBQUM7UUFFRCxJQUFJLENBQUMsd0JBQXdCO2FBQzFCLElBQUksQ0FDSCxTQUFTLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FDcEIsU0FBUztZQUNQLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDO1lBQ1YsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLFlBQVksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FDakQsWUFBWSxDQUFDLEVBQUUsQ0FBQyxFQUNoQixHQUFHLENBQUMsR0FBRyxFQUFFLENBQ1AsSUFBSSxDQUFDLGVBQWUsQ0FDbEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQ25CLElBQUksQ0FBQyxlQUFlLElBQUksRUFBRSxFQUMxQixJQUFJLENBQUMsaUJBQWlCLEVBQ3RCLElBQUksQ0FBQywwQkFBMEIsQ0FDaEMsQ0FDRixDQUNGLENBQ04sRUFDRCxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUN6QjthQUNBLFNBQVMsQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUNuQixJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzVCLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDMUIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsYUFBYSxDQUFDLE9BQWU7UUFDM0IsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2IsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUM7Z0JBQ2xDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDM0IsQ0FBQztZQUNELE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQztZQUNuQyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUM7UUFDbkUsQ0FBQztRQUNELElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQztRQUNqQyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN2QyxDQUFDO0lBRUQsVUFBVTtRQUNSLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxlQUFlLENBQ25DLElBQUksQ0FBQyxxQkFBcUIsRUFDMUIsSUFBSSxDQUFDLEdBQUcsRUFDUixJQUFJLENBQUMsTUFBTSxFQUNYLElBQUksQ0FBQyxRQUFRLENBQ2QsQ0FBQztRQUNGLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxlQUFlLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDNUIsQ0FBQzs4R0FsSFUscUJBQXFCO2tHQUFyQixxQkFBcUI7O0FBaUJoQztJQURDLGVBQWUsRUFBRTs4QkFDUSxVQUFVO3VFQUFVOzJGQWpCbkMscUJBQXFCO2tCQUpqQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxtQkFBbUI7b0JBQzdCLFVBQVUsRUFBRSxJQUFJO2lCQUNqQjs7MEJBdUNJLElBQUk7OzBCQUNKLFFBQVE7OzBCQUNSLFFBQVE7eUNBbkNYLGVBQWU7c0JBRGQsS0FBSztnQkFJTixpQkFBaUI7c0JBRGhCLEtBQUs7Z0JBSU4sdUJBQXVCO3NCQUR0QixLQUFLO2dCQU9OLHdCQUF3QixNQU14QixxQkFBcUI7c0JBRHBCLEtBQUs7Z0JBSU4sMEJBQTBCO3NCQUR6QixLQUFLOztBQTRGUixNQUtNLGFBQWE7SUFFakIsWUFBbUIsR0FBc0I7UUFBdEIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7SUFBRyxDQUFDOzhHQUZ6QyxhQUFhO2tHQUFiLGFBQWEsd0VBSlAsY0FBYzs7MkZBSXBCLGFBQWE7a0JBTGxCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGNBQWM7b0JBQ3hCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxVQUFVLEVBQUUsSUFBSTtpQkFDakIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnRQb3J0YWwsIERvbVBvcnRhbE91dGxldCwgUG9ydGFsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBBcHBsaWNhdGlvblJlZixcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgRGlyZWN0aXZlLFxuICBJbmplY3RvcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT3B0aW9uYWwsXG4gIFNlbGYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUdyb3VwRGlyZWN0aXZlLCBOZ0NvbnRyb2wsIE5nRm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gIE9ic2VydmFibGUsXG4gIFN1YmplY3QsXG4gIG1lcmdlLFxuICBvZixcbiAgZGVib3VuY2VUaW1lLFxuICBtYXAsXG4gIHN3aXRjaE1hcCxcbiAgdGFrZVVudGlsLFxufSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgU3RyaW5nTWFwIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZUlucHV0IH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuXG5pbXBvcnQgeyBCYXNlRXJyb3JzTWFwcGVyIH0gZnJvbSAnLi9iYXNlLWVycm9ycy1tYXBwZXInO1xuaW1wb3J0IHsgRXJyb3JzTWFwcGVyRm4gfSBmcm9tICcuL3R5cGVzJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2FjbEVycm9yc01hcHBlcl0nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBFcnJvcnNNYXBwZXJEaXJlY3RpdmVcbiAgZXh0ZW5kcyBCYXNlRXJyb3JzTWFwcGVyXG4gIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95XG57XG4gIEBJbnB1dCgpXG4gIGFjbEVycm9yc01hcHBlcjogU3RyaW5nTWFwIHwgJyc7XG5cbiAgQElucHV0KClcbiAgYWNsRXJyb3JzTWFwcGVyRm46IEVycm9yc01hcHBlckZuO1xuXG4gIEBJbnB1dCgpXG4gIGFjbEVycm9yc01hcHBlckRpc2FibGVkOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBkaXNhYmxlIGVycm9ycyBtYXBwZXJcbiAgICovXG4gIEBPYnNlcnZhYmxlSW5wdXQoKVxuICBhY2xFcnJvcnNNYXBwZXJEaXNhYmxlZCQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG5cbiAgLyoqXG4gICAqIHNwZWNpZnkgb3V0bGV0LCBjb25zaWRlciB0aGlzIG90aGVyIHRoYW4gc3BlY2lmaWMgY29udHJvbCBlbnRpdHkgdG8gbWFrZSBzdXJlIGRpIGNhbiBhbHdheXMgZ2V0IG5nRm9ybVxuICAgKi9cbiAgQElucHV0KClcbiAgYWNsRXJyb3JzTWFwcGVyT3V0bGV0OiBFbGVtZW50O1xuXG4gIEBJbnB1dCgpXG4gIGFjbEVycm9yc01hcHBlckNvbnRyb2xOYW1lOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBwb3J0YWw6IFBvcnRhbDxhbnk+O1xuICBwcml2YXRlIHBvcnRhbEhvc3Q6IERvbVBvcnRhbE91dGxldDtcbiAgcHJpdmF0ZSBwb3J0YWxBdHRhY2g6IFRleHRDb21wb25lbnQ7XG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgcHJpdmF0ZSByZWFkb25seSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2ZyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSBhcHBSZWY6IEFwcGxpY2F0aW9uUmVmLFxuICAgIEBTZWxmKCkgcHJpdmF0ZSByZWFkb25seSBjb250cm9sOiBOZ0NvbnRyb2wsXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSByZWFkb25seSBuZ0Zvcm06IE5nRm9ybSxcbiAgICBAT3B0aW9uYWwoKVxuICAgIHByaXZhdGUgcmVhZG9ubHkgZm9ybUdyb3VwOiBGb3JtR3JvdXBEaXJlY3RpdmUsXG4gICkge1xuICAgIHN1cGVyKGluamVjdG9yKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBpZiAoIXRoaXMuY29udHJvbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnRXJyb3JzIG1hcHBlciBpcyBub3QgcHJvcGVybHkgY29uZmlndXJlZC4gTm8gdmFsaWQgY29udHJvbCBpcyBmb3VuZC4nLFxuICAgICAgKTtcbiAgICB9XG4gICAgdGhpcy5pbml0UG9ydGFsKCk7XG4gICAgY29uc3Qgc3RhdHVzQ2hhbmdlID0gW3RoaXMuY29udHJvbC5zdGF0dXNDaGFuZ2VzXTtcblxuICAgIGlmICh0aGlzLm5nRm9ybSkge1xuICAgICAgc3RhdHVzQ2hhbmdlLnB1c2godGhpcy5uZ0Zvcm0ubmdTdWJtaXQpO1xuICAgIH1cbiAgICBpZiAodGhpcy5mb3JtR3JvdXApIHtcbiAgICAgIHN0YXR1c0NoYW5nZS5wdXNoKHRoaXMuZm9ybUdyb3VwLm5nU3VibWl0KTtcbiAgICB9XG5cbiAgICB0aGlzLmFjbEVycm9yc01hcHBlckRpc2FibGVkJFxuICAgICAgLnBpcGUoXG4gICAgICAgIHN3aXRjaE1hcChpc0Rpc2FibGUgPT5cbiAgICAgICAgICBpc0Rpc2FibGVcbiAgICAgICAgICAgID8gb2YobnVsbClcbiAgICAgICAgICAgIDogbWVyZ2UoLi4uc3RhdHVzQ2hhbmdlLCB0aGlzLnRyYW5zbGF0ZS5sb2NhbGUkKS5waXBlKFxuICAgICAgICAgICAgICAgIGRlYm91bmNlVGltZSg1MCksXG4gICAgICAgICAgICAgICAgbWFwKCgpID0+XG4gICAgICAgICAgICAgICAgICB0aGlzLmdldEVycm9yTWVzc2FnZShcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb250cm9sLmVycm9ycyxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hY2xFcnJvcnNNYXBwZXIgfHwge30sXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWNsRXJyb3JzTWFwcGVyRm4sXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWNsRXJyb3JzTWFwcGVyQ29udHJvbE5hbWUsXG4gICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICksXG4gICAgICAgICksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoY29udGVudCA9PiB7XG4gICAgICAgIHRoaXMudXBkYXRlQ29udGVudChjb250ZW50KTtcbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHVwZGF0ZUNvbnRlbnQoY29udGVudDogc3RyaW5nKSB7XG4gICAgaWYgKCFjb250ZW50KSB7XG4gICAgICBpZiAodGhpcy5wb3J0YWxIb3N0Lmhhc0F0dGFjaGVkKCkpIHtcbiAgICAgICAgdGhpcy5wb3J0YWxIb3N0LmRldGFjaCgpO1xuICAgICAgfVxuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoIXRoaXMucG9ydGFsSG9zdC5oYXNBdHRhY2hlZCgpKSB7XG4gICAgICB0aGlzLnBvcnRhbEF0dGFjaCA9IHRoaXMucG9ydGFsSG9zdC5hdHRhY2godGhpcy5wb3J0YWwpLmluc3RhbmNlO1xuICAgIH1cbiAgICB0aGlzLnBvcnRhbEF0dGFjaC5kYXRhID0gY29udGVudDtcbiAgICB0aGlzLnBvcnRhbEF0dGFjaC5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBpbml0UG9ydGFsKCkge1xuICAgIHRoaXMucG9ydGFsSG9zdCA9IG5ldyBEb21Qb3J0YWxPdXRsZXQoXG4gICAgICB0aGlzLmFjbEVycm9yc01hcHBlck91dGxldCxcbiAgICAgIHRoaXMuY2ZyLFxuICAgICAgdGhpcy5hcHBSZWYsXG4gICAgICB0aGlzLmluamVjdG9yLFxuICAgICk7XG4gICAgdGhpcy5wb3J0YWwgPSBuZXcgQ29tcG9uZW50UG9ydGFsKFRleHRDb21wb25lbnQpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XG4gICAgdGhpcy5wb3J0YWxIb3N0LmRpc3Bvc2UoKTtcbiAgfVxufVxuXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGU6IGAge3sgZGF0YSB9fSBgLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5jbGFzcyBUZXh0Q29tcG9uZW50IHtcbiAgZGF0YTogc3RyaW5nO1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge31cbn1cbiJdfQ==
@@ -0,0 +1,10 @@
1
+ import { ErrorsMapperComponent } from './errors-mapper-component/component';
2
+ import { ErrorsMapperDirective } from './errors-mapper.directive';
3
+ export * from './errors-mapper-component/component';
4
+ export * from './errors-mapper.directive';
5
+ export * from './types';
6
+ export const ERRORS_MAPPER_MODULE = [
7
+ ErrorsMapperComponent,
8
+ ErrorsMapperDirective,
9
+ ];
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2R5bmFtaWMtcGx1Z2luLXNoYXJlZC9zcmMvZm9ybS9lcnJvcnMtbWFwcGVyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRWxFLGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLFNBQVMsQ0FBQztBQUV4QixNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRztJQUNsQyxxQkFBcUI7SUFDckIscUJBQXFCO0NBQ2IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVycm9yc01hcHBlckNvbXBvbmVudCB9IGZyb20gJy4vZXJyb3JzLW1hcHBlci1jb21wb25lbnQvY29tcG9uZW50JztcbmltcG9ydCB7IEVycm9yc01hcHBlckRpcmVjdGl2ZSB9IGZyb20gJy4vZXJyb3JzLW1hcHBlci5kaXJlY3RpdmUnO1xuXG5leHBvcnQgKiBmcm9tICcuL2Vycm9ycy1tYXBwZXItY29tcG9uZW50L2NvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2Vycm9ycy1tYXBwZXIuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgRVJST1JTX01BUFBFUl9NT0RVTEUgPSBbXG4gIEVycm9yc01hcHBlckNvbXBvbmVudCxcbiAgRXJyb3JzTWFwcGVyRGlyZWN0aXZlLFxuXSBhcyBjb25zdDtcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2R5bmFtaWMtcGx1Z2luLXNoYXJlZC9zcmMvZm9ybS9lcnJvcnMtbWFwcGVyL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdHJpbmdNYXAgfSBmcm9tICcuLi8uLi90eXBlcyc7XG5cbi8qKlxuICogRGVmaW5lcyBob3cgYSBlcnJvciBvYmplY3QgKHZhbGlkYXRvciBrZXksIGVycm9yIG9iamVjdCwgdGhlIGNvbnRyb2wgb2JqZWN0KSBzaG91bGQgYmUgbWFwcGVkIHRvIHN0cmluZy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFcnJvck1hcHBlckludGVyZmFjZSB7XG4gIC8qKlxuICAgKiBNYXBzIGFuIGVycm9yIHRvIGEgc3RyaW5nLlxuICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5IHRoZSBlcnJvciBrZXkuIGkuZS4sIHJlcXVpcmVkLCBldGNcbiAgICogQHBhcmFtIGVycm9yIHRoZSBlcnJvciBvYmplY3RcbiAgICogQHBhcmFtIGNvbnRyb2wgY29udHJvbCBPYmplY3QgKEFic3RyYWN0Q29udHJvbCBmb3IgQW5ndWxhciwgTmdNb2RlbCBmb3IgQW5ndWxhckpTKVxuICAgKiBAcmV0dXJucyB7c3RyaW5nfVxuICAgKi9cbiAgbWFwKGtleTogc3RyaW5nLCBlcnJvcj86IHVua25vd24sIGNvbnRyb2w/OiB1bmtub3duKTogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBFcnJvcnNNYXBwZXJGbiA9IChlcnJvcjogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pID0+IHN0cmluZztcblxuZXhwb3J0IHR5cGUgRXJyb3JNYXBwZXIgPSBFcnJvck1hcHBlckludGVyZmFjZSB8IFN0cmluZ01hcDtcbiJdfQ==
@@ -0,0 +1,6 @@
1
+ export * from './validators';
2
+ export * from './errors-mapper';
3
+ export { genControlDepsMap } from './utils';
4
+ export * from './base-form-container';
5
+ export * from './base-nested-form-control';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2R5bmFtaWMtcGx1Z2luLXNoYXJlZC9zcmMvZm9ybS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUU1QyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsNEJBQTRCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3ZhbGlkYXRvcnMnO1xuZXhwb3J0ICogZnJvbSAnLi9lcnJvcnMtbWFwcGVyJztcbmV4cG9ydCB7IGdlbkNvbnRyb2xEZXBzTWFwIH0gZnJvbSAnLi91dGlscyc7XG5cbmV4cG9ydCAqIGZyb20gJy4vYmFzZS1mb3JtLWNvbnRhaW5lcic7XG5leHBvcnQgKiBmcm9tICcuL2Jhc2UtbmVzdGVkLWZvcm0tY29udHJvbCc7XG4iXX0=
@@ -0,0 +1,61 @@
1
+ import { uniq } from 'lodash-es';
2
+ import { distinctUntilChanged, map, merge, startWith, takeUntil, } from 'rxjs';
3
+ /**
4
+ * @description
5
+ * 创建集群中存在大量的 control 依赖的情形,同时,由于业务特殊性,在 ipv4,ipv6 时要对表单控件进行不同外观的展示,因此控件的 disabled 变得很复杂
6
+ * 如果是在 ts 里通过 valueChanges 写:每个影响源都要写自己的 subscription,且某个 control 可能会收到多个其他 control 影响,届时逻辑组织会复杂很多,
7
+ * 如果是在模板里通过 aluControlDisabled 去写,可能会存在多个 control 要重复同一套逻辑,这点在创建集群中很常见,因此提供了如下方案,可以以声明式写法去描述依赖关系
8
+ *
9
+ * @usageNotes
10
+ * For example, for the following `FormGroup`:
11
+ * ```
12
+ * [
13
+ {
14
+ source: 'joinCIDR',
15
+ deps: ['networkType'],
16
+ isEnable: networkType => networkType === 'kube-ovn',
17
+ },
18
+ {
19
+ source: 'gatewayIPv6',
20
+ deps: ['networkType', 'transmitType', 'ipv6DualStack'],
21
+ isEnable: (networkType, transmitType, ipv6DualStack: boolean) =>
22
+ networkType === 'kube-ovn' &&
23
+ transmitType === 'underlay' &&
24
+ ipv6DualStack,
25
+ },
26
+ {
27
+ source: ['clusterCIDRIPv6', 'serviceCIDRIPv6'],
28
+ deps: ['ipv6DualStack'],
29
+ isEnable: (ipv6DualStack: boolean) => ipv6DualStack,
30
+ },
31
+ ]
32
+ * ```
33
+ */
34
+ export function genControlDepsMap(context, rules, destroy$) {
35
+ const normRules = rules.flatMap(r => Array.isArray(r.source) ? r.source.map(s => ({ ...r, source: s })) : r);
36
+ const depPaths = uniq(normRules.flatMap(r => r.deps));
37
+ const depRuleMap = normRules.reduce((acc, rule) => {
38
+ for (const dep of rule.deps) {
39
+ if (!acc[dep]) {
40
+ acc[dep] = new Set();
41
+ }
42
+ acc[dep].add(rule.source);
43
+ }
44
+ return acc;
45
+ }, {});
46
+ // 每一次 deps 中的 valueChange 都有可能是一次 trigger
47
+ merge(...depPaths.map(p => context.get(p).valueChanges.pipe(startWith(context.get(p).value), distinctUntilChanged(), map(value => ({
48
+ key: p,
49
+ value,
50
+ })))))
51
+ .pipe(takeUntil(destroy$))
52
+ .subscribe(result => {
53
+ depRuleMap[result.key].forEach(source => {
54
+ const rules = normRules.filter(r => r.source === source);
55
+ const enable = rules.every(rule => rule.isEnable(...rule.deps.map(dep => context.get(dep).value)));
56
+ context
57
+ .get(source)[enable ? 'enable' : 'disable']({ emitEvent: false }); // emitEvent: false 会防止主动将本控件设为dirty
58
+ });
59
+ });
60
+ }
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2R5bmFtaWMtcGx1Z2luLXNoYXJlZC9zcmMvZm9ybS91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ2pDLE9BQU8sRUFDTCxvQkFBb0IsRUFDcEIsR0FBRyxFQUNILEtBQUssRUFFTCxTQUFTLEVBQ1QsU0FBUyxHQUNWLE1BQU0sTUFBTSxDQUFDO0FBUWQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQThCRztBQUNILE1BQU0sVUFBVSxpQkFBaUIsQ0FDL0IsT0FBa0IsRUFDbEIsS0FBcUMsRUFDckMsUUFBNkI7SUFFN0IsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUNsQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUNoRCxDQUFDO0lBQ3pCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDdEQsTUFBTSxVQUFVLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FDakMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUU7UUFDWixLQUFLLE1BQU0sR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUM1QixJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ2QsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7WUFDdkIsQ0FBQztZQUNELEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzVCLENBQUM7UUFDRCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUMsRUFDRCxFQUFrQyxDQUNuQyxDQUFDO0lBQ0YsMENBQTBDO0lBQzFDLEtBQUssQ0FDSCxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FDbEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUM5QixTQUFTLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFDL0Isb0JBQW9CLEVBQUUsRUFDdEIsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNaLEdBQUcsRUFBRSxDQUFDO1FBQ04sS0FBSztLQUNOLENBQUMsQ0FBQyxDQUNKLENBQ0YsQ0FDRjtTQUNFLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDekIsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1FBQ2xCLFVBQVUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ3RDLE1BQU0sS0FBSyxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLE1BQU0sQ0FBQyxDQUFDO1lBQ3pELE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FDaEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUMvRCxDQUFDO1lBQ0YsT0FBTztpQkFDSixHQUFHLENBQUMsTUFBTSxDQUFDLENBQ1gsTUFBTSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxvQ0FBb0M7UUFDL0YsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNQLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyB1bmlxIH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7XG4gIGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxuICBtYXAsXG4gIG1lcmdlLFxuICBPYnNlcnZhYmxlLFxuICBzdGFydFdpdGgsXG4gIHRha2VVbnRpbCxcbn0gZnJvbSAncnhqcyc7XG5cbmludGVyZmFjZSBSdWxlPFQ+IHtcbiAgc291cmNlOiBUO1xuICBkZXBzOiBzdHJpbmdbXTtcbiAgaXNFbmFibGU6ICguLi5kZXBzOiB1bmtub3duW10pID0+IGJvb2xlYW47XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uXG4gKiDliJvlu7rpm4bnvqTkuK3lrZjlnKjlpKfph4/nmoQgY29udHJvbCDkvp3otZbnmoTmg4XlvaLvvIzlkIzml7bvvIznlLHkuo7kuJrliqHnibnmrormgKfvvIzlnKggaXB2NCxpcHY2IOaXtuimgeWvueihqOWNleaOp+S7tui/m+ihjOS4jeWQjOWkluingueahOWxleekuu+8jOWboOatpOaOp+S7tueahCBkaXNhYmxlZCDlj5jlvpflvojlpI3mnYJcbiAqIOWmguaenOaYr+WcqCB0cyDph4zpgJrov4cgdmFsdWVDaGFuZ2VzIOWGme+8muavj+S4quW9seWTjea6kOmDveimgeWGmeiHquW3seeahCBzdWJzY3JpcHRpb27vvIzkuJTmn5DkuKogY29udHJvbCDlj6/og73kvJrmlLbliLDlpJrkuKrlhbbku5YgY29udHJvbCDlvbHlk43vvIzlsYrml7bpgLvovpHnu4Tnu4fkvJrlpI3mnYLlvojlpJosXG4gKiDlpoLmnpzmmK/lnKjmqKHmnb/ph4zpgJrov4cgYWx1Q29udHJvbERpc2FibGVkIOWOu+WGme+8jOWPr+iDveS8muWtmOWcqOWkmuS4qiBjb250cm9sIOimgemHjeWkjeWQjOS4gOWll+mAu+i+ke+8jOi/meeCueWcqOWIm+W7uumbhue+pOS4reW+iOW4uOinge+8jOWboOatpOaPkOS+m+S6huWmguS4i+aWueahiO+8jOWPr+S7peS7peWjsOaYjuW8j+WGmeazleWOu+aPj+i/sOS+nei1luWFs+ezu1xuICpcbiAqIEB1c2FnZU5vdGVzXG4gKiBGb3IgZXhhbXBsZSwgZm9yIHRoZSBmb2xsb3dpbmcgYEZvcm1Hcm91cGA6XG4gKiBgYGBcbiAqIFtcbiB7XG4gc291cmNlOiAnam9pbkNJRFInLFxuIGRlcHM6IFsnbmV0d29ya1R5cGUnXSxcbiBpc0VuYWJsZTogbmV0d29ya1R5cGUgPT4gbmV0d29ya1R5cGUgPT09ICdrdWJlLW92bicsXG4gfSxcbiB7XG4gc291cmNlOiAnZ2F0ZXdheUlQdjYnLFxuIGRlcHM6IFsnbmV0d29ya1R5cGUnLCAndHJhbnNtaXRUeXBlJywgJ2lwdjZEdWFsU3RhY2snXSxcbiBpc0VuYWJsZTogKG5ldHdvcmtUeXBlLCB0cmFuc21pdFR5cGUsIGlwdjZEdWFsU3RhY2s6IGJvb2xlYW4pID0+XG4gbmV0d29ya1R5cGUgPT09ICdrdWJlLW92bicgJiZcbiB0cmFuc21pdFR5cGUgPT09ICd1bmRlcmxheScgJiZcbiBpcHY2RHVhbFN0YWNrLFxuIH0sXG4ge1xuIHNvdXJjZTogWydjbHVzdGVyQ0lEUklQdjYnLCAnc2VydmljZUNJRFJJUHY2J10sXG4gZGVwczogWydpcHY2RHVhbFN0YWNrJ10sXG4gaXNFbmFibGU6IChpcHY2RHVhbFN0YWNrOiBib29sZWFuKSA9PiBpcHY2RHVhbFN0YWNrLFxuIH0sXG4gXVxuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZW5Db250cm9sRGVwc01hcChcbiAgY29udGV4dDogRm9ybUdyb3VwLFxuICBydWxlczogQXJyYXk8UnVsZTxzdHJpbmcgfCBzdHJpbmdbXT4+LFxuICBkZXN0cm95JDogT2JzZXJ2YWJsZTx1bmtub3duPixcbikge1xuICBjb25zdCBub3JtUnVsZXMgPSBydWxlcy5mbGF0TWFwKHIgPT5cbiAgICBBcnJheS5pc0FycmF5KHIuc291cmNlKSA/IHIuc291cmNlLm1hcChzID0+ICh7IC4uLnIsIHNvdXJjZTogcyB9KSkgOiByLFxuICApIGFzIEFycmF5PFJ1bGU8c3RyaW5nPj47XG4gIGNvbnN0IGRlcFBhdGhzID0gdW5pcShub3JtUnVsZXMuZmxhdE1hcChyID0+IHIuZGVwcykpO1xuICBjb25zdCBkZXBSdWxlTWFwID0gbm9ybVJ1bGVzLnJlZHVjZShcbiAgICAoYWNjLCBydWxlKSA9PiB7XG4gICAgICBmb3IgKGNvbnN0IGRlcCBvZiBydWxlLmRlcHMpIHtcbiAgICAgICAgaWYgKCFhY2NbZGVwXSkge1xuICAgICAgICAgIGFjY1tkZXBdID0gbmV3IFNldCgpO1xuICAgICAgICB9XG4gICAgICAgIGFjY1tkZXBdLmFkZChydWxlLnNvdXJjZSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gYWNjO1xuICAgIH0sXG4gICAge30gYXMgeyBbeDogc3RyaW5nXTogU2V0PHN0cmluZz4gfSxcbiAgKTtcbiAgLy8g5q+P5LiA5qyhIGRlcHMg5Lit55qEIHZhbHVlQ2hhbmdlIOmDveacieWPr+iDveaYr+S4gOasoSB0cmlnZ2VyXG4gIG1lcmdlKFxuICAgIC4uLmRlcFBhdGhzLm1hcChwID0+XG4gICAgICBjb250ZXh0LmdldChwKS52YWx1ZUNoYW5nZXMucGlwZShcbiAgICAgICAgc3RhcnRXaXRoKGNvbnRleHQuZ2V0KHApLnZhbHVlKSxcbiAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgICAgbWFwKHZhbHVlID0+ICh7XG4gICAgICAgICAga2V5OiBwLFxuICAgICAgICAgIHZhbHVlLFxuICAgICAgICB9KSksXG4gICAgICApLFxuICAgICksXG4gIClcbiAgICAucGlwZSh0YWtlVW50aWwoZGVzdHJveSQpKVxuICAgIC5zdWJzY3JpYmUocmVzdWx0ID0+IHtcbiAgICAgIGRlcFJ1bGVNYXBbcmVzdWx0LmtleV0uZm9yRWFjaChzb3VyY2UgPT4ge1xuICAgICAgICBjb25zdCBydWxlcyA9IG5vcm1SdWxlcy5maWx0ZXIociA9PiByLnNvdXJjZSA9PT0gc291cmNlKTtcbiAgICAgICAgY29uc3QgZW5hYmxlID0gcnVsZXMuZXZlcnkocnVsZSA9PlxuICAgICAgICAgIHJ1bGUuaXNFbmFibGUoLi4ucnVsZS5kZXBzLm1hcChkZXAgPT4gY29udGV4dC5nZXQoZGVwKS52YWx1ZSkpLFxuICAgICAgICApO1xuICAgICAgICBjb250ZXh0XG4gICAgICAgICAgLmdldChzb3VyY2UpXG4gICAgICAgICAgW2VuYWJsZSA/ICdlbmFibGUnIDogJ2Rpc2FibGUnXSh7IGVtaXRFdmVudDogZmFsc2UgfSk7IC8vIGVtaXRFdmVudDogZmFsc2Ug5Lya6Ziy5q2i5Li75Yqo5bCG5pys5o6n5Lu26K6+5Li6ZGlydHlcbiAgICAgIH0pO1xuICAgIH0pO1xufVxuIl19
@@ -0,0 +1,49 @@
1
+ import { __decorate, __metadata } from "tslib";
2
+ import { Directive, Input, forwardRef } from '@angular/core';
3
+ import { NG_ASYNC_VALIDATORS, Validators, } from '@angular/forms';
4
+ import { ValueHook } from '../../utils';
5
+ import * as i0 from "@angular/core";
6
+ export class AsyncFunctionValidatorDirective {
7
+ get asyncValidateFn() {
8
+ return Array.isArray(this.aclAsyncValidateFn)
9
+ ? Validators.composeAsync(this.aclAsyncValidateFn)
10
+ : this.aclAsyncValidateFn;
11
+ }
12
+ validate(control) {
13
+ return this.asyncValidateFn?.(control);
14
+ }
15
+ registerOnValidatorChange(fn) {
16
+ this.onValidatorChange = fn;
17
+ }
18
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: AsyncFunctionValidatorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
19
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.1", type: AsyncFunctionValidatorDirective, isStandalone: true, selector: "[aclAsyncValidateFn][ngModel],[aclAsyncValidateFn][formControl],[aclAsyncValidateFn][formControlName]", inputs: { aclAsyncValidateFn: "aclAsyncValidateFn" }, providers: [
20
+ {
21
+ provide: NG_ASYNC_VALIDATORS,
22
+ useExisting: forwardRef(() => AsyncFunctionValidatorDirective),
23
+ multi: true,
24
+ },
25
+ ], ngImport: i0 }); }
26
+ }
27
+ __decorate([
28
+ ValueHook(null, null, function () {
29
+ this.onValidatorChange?.();
30
+ }),
31
+ __metadata("design:type", Object)
32
+ ], AsyncFunctionValidatorDirective.prototype, "aclAsyncValidateFn", void 0);
33
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: AsyncFunctionValidatorDirective, decorators: [{
34
+ type: Directive,
35
+ args: [{
36
+ standalone: true,
37
+ selector: '[aclAsyncValidateFn][ngModel],[aclAsyncValidateFn][formControl],[aclAsyncValidateFn][formControlName]',
38
+ providers: [
39
+ {
40
+ provide: NG_ASYNC_VALIDATORS,
41
+ useExisting: forwardRef(() => AsyncFunctionValidatorDirective),
42
+ multi: true,
43
+ },
44
+ ],
45
+ }]
46
+ }], propDecorators: { aclAsyncValidateFn: [{
47
+ type: Input
48
+ }] } });
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXN5bmMtZnVuY3Rpb24tdmFsaWRhdG9yLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZHluYW1pYy1wbHVnaW4tc2hhcmVkL3NyYy9mb3JtL3ZhbGlkYXRvcnMvYXN5bmMtZnVuY3Rpb24tdmFsaWRhdG9yLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFJTCxtQkFBbUIsRUFDbkIsVUFBVSxHQUNYLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7QUFjeEMsTUFBTSxPQUFPLCtCQUErQjtJQU8xQyxJQUFJLGVBQWU7UUFDakIsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztZQUMzQyxDQUFDLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUM7WUFDbEQsQ0FBQyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztJQUM5QixDQUFDO0lBSUQsUUFBUSxDQUFDLE9BQXdCO1FBQy9CLE9BQU8sSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRCx5QkFBeUIsQ0FBQyxFQUFjO1FBQ3RDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxFQUFFLENBQUM7SUFDOUIsQ0FBQzs4R0FyQlUsK0JBQStCO2tHQUEvQiwrQkFBK0IsME1BUi9CO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLG1CQUFtQjtnQkFDNUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQywrQkFBK0IsQ0FBQztnQkFDOUQsS0FBSyxFQUFFLElBQUk7YUFDWjtTQUNGOztBQU9EO0lBSkMsU0FBUyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUU7UUFDckIsSUFBSSxDQUFDLGlCQUFpQixFQUFFLEVBQUUsQ0FBQztJQUM3QixDQUFDLENBQUM7OzJFQUV3RDsyRkFML0MsK0JBQStCO2tCQVozQyxTQUFTO21CQUFDO29CQUNULFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQ04sdUdBQXVHO29CQUN6RyxTQUFTLEVBQUU7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLG1CQUFtQjs0QkFDNUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsZ0NBQWdDLENBQUM7NEJBQzlELEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGO2lCQUNGOzhCQU1DLGtCQUFrQjtzQkFEakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQsIGZvcndhcmRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEFic3RyYWN0Q29udHJvbCxcbiAgQXN5bmNWYWxpZGF0b3IsXG4gIEFzeW5jVmFsaWRhdG9yRm4sXG4gIE5HX0FTWU5DX1ZBTElEQVRPUlMsXG4gIFZhbGlkYXRvcnMsXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgVmFsdWVIb29rIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2VsZWN0b3I6XG4gICAgJ1thY2xBc3luY1ZhbGlkYXRlRm5dW25nTW9kZWxdLFthY2xBc3luY1ZhbGlkYXRlRm5dW2Zvcm1Db250cm9sXSxbYWNsQXN5bmNWYWxpZGF0ZUZuXVtmb3JtQ29udHJvbE5hbWVdJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfQVNZTkNfVkFMSURBVE9SUyxcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEFzeW5jRnVuY3Rpb25WYWxpZGF0b3JEaXJlY3RpdmUpLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQXN5bmNGdW5jdGlvblZhbGlkYXRvckRpcmVjdGl2ZSBpbXBsZW1lbnRzIEFzeW5jVmFsaWRhdG9yIHtcbiAgQFZhbHVlSG9vayhudWxsLCBudWxsLCBmdW5jdGlvbiAoKSB7XG4gICAgdGhpcy5vblZhbGlkYXRvckNoYW5nZT8uKCk7XG4gIH0pXG4gIEBJbnB1dCgpXG4gIGFjbEFzeW5jVmFsaWRhdGVGbjogQXN5bmNWYWxpZGF0b3JGbiB8IEFzeW5jVmFsaWRhdG9yRm5bXTtcblxuICBnZXQgYXN5bmNWYWxpZGF0ZUZuKCkge1xuICAgIHJldHVybiBBcnJheS5pc0FycmF5KHRoaXMuYWNsQXN5bmNWYWxpZGF0ZUZuKVxuICAgICAgPyBWYWxpZGF0b3JzLmNvbXBvc2VBc3luYyh0aGlzLmFjbEFzeW5jVmFsaWRhdGVGbilcbiAgICAgIDogdGhpcy5hY2xBc3luY1ZhbGlkYXRlRm47XG4gIH1cblxuICBkZWNsYXJlIG9uVmFsaWRhdG9yQ2hhbmdlOiAoKSA9PiB2b2lkO1xuXG4gIHZhbGlkYXRlKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCkge1xuICAgIHJldHVybiB0aGlzLmFzeW5jVmFsaWRhdGVGbj8uKGNvbnRyb2wpO1xuICB9XG5cbiAgcmVnaXN0ZXJPblZhbGlkYXRvckNoYW5nZShmbjogKCkgPT4gdm9pZCkge1xuICAgIHRoaXMub25WYWxpZGF0b3JDaGFuZ2UgPSBmbjtcbiAgfVxufVxuIl19
@@ -0,0 +1,42 @@
1
+ /**
2
+ * https://kubernetes.io/zh/docs/concepts/overview/working-with-objects/names/
3
+ const dns1123LabelFmt string = "[a-z0-9]([-a-z0-9]*[a-z0-9])?"
4
+ const dns1123SubdomainFmt string = dns1123LabelFmt + "(\\." + dns1123LabelFmt + ")*"
5
+ const dns1123SubdomainErrorMsg string = "a lowercase RFC 1123 subdomain must consist of lower case alphanumeric characters, '-' or '.', and must start and end with an alphanumeric character"
6
+
7
+ // DNS1123SubdomainMaxLength is a subdomain's max length in DNS (RFC 1123)
8
+ const DNS1123SubdomainMaxLength int = 253
9
+
10
+ var dns1123SubdomainRegexp = regexp.MustCompile("^" + dns1123SubdomainFmt + "$")
11
+
12
+ // IsDNS1123Subdomain tests for a string that conforms to the definition of a
13
+ // subdomain in DNS (RFC 1123).
14
+ func IsDNS1123Subdomain(value string) []string {
15
+ var errs []string
16
+ if len(value) > DNS1123SubdomainMaxLength {
17
+ errs = append(errs, MaxLenError(DNS1123SubdomainMaxLength))
18
+ }
19
+ if !dns1123SubdomainRegexp.MatchString(value) {
20
+ errs = append(errs, RegexError(dns1123SubdomainErrorMsg, dns1123SubdomainFmt, "example.com"))
21
+ }
22
+ return errs
23
+ }
24
+ */
25
+ export function DNS1123SubdomainValidator(ctrl) {
26
+ const value = ctrl.value;
27
+ if (!value) {
28
+ return null;
29
+ }
30
+ if (value.length > 253) {
31
+ return {
32
+ domain: true,
33
+ };
34
+ }
35
+ const regex = /^[\da-z]([\da-z-]*[\da-z])?(\.[\da-z]([\da-z-]*[\da-z])?)*$/;
36
+ return regex.test(value)
37
+ ? null
38
+ : {
39
+ domain: true,
40
+ };
41
+ }
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG5zMTEyMy1zdWJkb21haW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2R5bmFtaWMtcGx1Z2luLXNoYXJlZC9zcmMvZm9ybS92YWxpZGF0b3JzL2RuczExMjMtc3ViZG9tYWluLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXVCRztBQUNILE1BQU0sVUFBVSx5QkFBeUIsQ0FBQyxJQUFxQjtJQUM3RCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBZSxDQUFDO0lBQ25DLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNYLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUNELElBQUksS0FBSyxDQUFDLE1BQU0sR0FBRyxHQUFHLEVBQUUsQ0FBQztRQUN2QixPQUFPO1lBQ0wsTUFBTSxFQUFFLElBQUk7U0FDYixDQUFDO0lBQ0osQ0FBQztJQUNELE1BQU0sS0FBSyxHQUFHLDZEQUE2RCxDQUFDO0lBQzVFLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDdEIsQ0FBQyxDQUFDLElBQUk7UUFDTixDQUFDLENBQUM7WUFDRSxNQUFNLEVBQUUsSUFBSTtTQUNiLENBQUM7QUFDUixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG4vKipcbiAqIGh0dHBzOi8va3ViZXJuZXRlcy5pby96aC9kb2NzL2NvbmNlcHRzL292ZXJ2aWV3L3dvcmtpbmctd2l0aC1vYmplY3RzL25hbWVzL1xuICBjb25zdCBkbnMxMTIzTGFiZWxGbXQgc3RyaW5nID0gXCJbYS16MC05XShbLWEtejAtOV0qW2EtejAtOV0pP1wiXG4gIGNvbnN0IGRuczExMjNTdWJkb21haW5GbXQgc3RyaW5nID0gZG5zMTEyM0xhYmVsRm10ICsgXCIoXFxcXC5cIiArIGRuczExMjNMYWJlbEZtdCArIFwiKSpcIlxuICBjb25zdCBkbnMxMTIzU3ViZG9tYWluRXJyb3JNc2cgc3RyaW5nID0gXCJhIGxvd2VyY2FzZSBSRkMgMTEyMyBzdWJkb21haW4gbXVzdCBjb25zaXN0IG9mIGxvd2VyIGNhc2UgYWxwaGFudW1lcmljIGNoYXJhY3RlcnMsICctJyBvciAnLicsIGFuZCBtdXN0IHN0YXJ0IGFuZCBlbmQgd2l0aCBhbiBhbHBoYW51bWVyaWMgY2hhcmFjdGVyXCJcblxuICAvLyBETlMxMTIzU3ViZG9tYWluTWF4TGVuZ3RoIGlzIGEgc3ViZG9tYWluJ3MgbWF4IGxlbmd0aCBpbiBETlMgKFJGQyAxMTIzKVxuICBjb25zdCBETlMxMTIzU3ViZG9tYWluTWF4TGVuZ3RoIGludCA9IDI1M1xuXG4gIHZhciBkbnMxMTIzU3ViZG9tYWluUmVnZXhwID0gcmVnZXhwLk11c3RDb21waWxlKFwiXlwiICsgZG5zMTEyM1N1YmRvbWFpbkZtdCArIFwiJFwiKVxuXG4gIC8vIElzRE5TMTEyM1N1YmRvbWFpbiB0ZXN0cyBmb3IgYSBzdHJpbmcgdGhhdCBjb25mb3JtcyB0byB0aGUgZGVmaW5pdGlvbiBvZiBhXG4gIC8vIHN1YmRvbWFpbiBpbiBETlMgKFJGQyAxMTIzKS5cbiAgZnVuYyBJc0ROUzExMjNTdWJkb21haW4odmFsdWUgc3RyaW5nKSBbXXN0cmluZyB7XG4gICAgdmFyIGVycnMgW11zdHJpbmdcbiAgICBpZiBsZW4odmFsdWUpID4gRE5TMTEyM1N1YmRvbWFpbk1heExlbmd0aCB7XG4gICAgICBlcnJzID0gYXBwZW5kKGVycnMsIE1heExlbkVycm9yKEROUzExMjNTdWJkb21haW5NYXhMZW5ndGgpKVxuICAgIH1cbiAgICBpZiAhZG5zMTEyM1N1YmRvbWFpblJlZ2V4cC5NYXRjaFN0cmluZyh2YWx1ZSkge1xuICAgICAgZXJycyA9IGFwcGVuZChlcnJzLCBSZWdleEVycm9yKGRuczExMjNTdWJkb21haW5FcnJvck1zZywgZG5zMTEyM1N1YmRvbWFpbkZtdCwgXCJleGFtcGxlLmNvbVwiKSlcbiAgICB9XG4gICAgcmV0dXJuIGVycnNcbiAgfVxuICovXG5leHBvcnQgZnVuY3Rpb24gRE5TMTEyM1N1YmRvbWFpblZhbGlkYXRvcihjdHJsOiBBYnN0cmFjdENvbnRyb2wpIHtcbiAgY29uc3QgdmFsdWUgPSBjdHJsLnZhbHVlIGFzIHN0cmluZztcbiAgaWYgKCF2YWx1ZSkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG4gIGlmICh2YWx1ZS5sZW5ndGggPiAyNTMpIHtcbiAgICByZXR1cm4ge1xuICAgICAgZG9tYWluOiB0cnVlLFxuICAgIH07XG4gIH1cbiAgY29uc3QgcmVnZXggPSAvXltcXGRhLXpdKFtcXGRhLXotXSpbXFxkYS16XSk/KFxcLltcXGRhLXpdKFtcXGRhLXotXSpbXFxkYS16XSk/KSokLztcbiAgcmV0dXJuIHJlZ2V4LnRlc3QodmFsdWUpXG4gICAgPyBudWxsXG4gICAgOiB7XG4gICAgICAgIGRvbWFpbjogdHJ1ZSxcbiAgICAgIH07XG59XG4iXX0=
@@ -0,0 +1,49 @@
1
+ import { __decorate, __metadata } from "tslib";
2
+ import { Directive, Input, forwardRef } from '@angular/core';
3
+ import { NG_VALIDATORS, Validators, } from '@angular/forms';
4
+ import { ValueHook } from '../../utils';
5
+ import * as i0 from "@angular/core";
6
+ export class FunctionValidatorDirective {
7
+ get validateFn() {
8
+ return Array.isArray(this.aclValidateFn)
9
+ ? Validators.compose(this.aclValidateFn)
10
+ : this.aclValidateFn;
11
+ }
12
+ validate(control) {
13
+ return this.validateFn?.(control);
14
+ }
15
+ registerOnValidatorChange(fn) {
16
+ this.onValidatorChange = fn;
17
+ }
18
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: FunctionValidatorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
19
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.1", type: FunctionValidatorDirective, isStandalone: true, selector: "[aclValidateFn][ngModel],[aclValidateFn][formControl],[aclValidateFn][formControlName]", inputs: { aclValidateFn: "aclValidateFn" }, providers: [
20
+ {
21
+ provide: NG_VALIDATORS,
22
+ useExisting: forwardRef(() => FunctionValidatorDirective),
23
+ multi: true,
24
+ },
25
+ ], ngImport: i0 }); }
26
+ }
27
+ __decorate([
28
+ ValueHook(null, null, function () {
29
+ this.onValidatorChange?.();
30
+ }),
31
+ __metadata("design:type", Object)
32
+ ], FunctionValidatorDirective.prototype, "aclValidateFn", void 0);
33
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: FunctionValidatorDirective, decorators: [{
34
+ type: Directive,
35
+ args: [{
36
+ standalone: true,
37
+ selector: '[aclValidateFn][ngModel],[aclValidateFn][formControl],[aclValidateFn][formControlName]',
38
+ providers: [
39
+ {
40
+ provide: NG_VALIDATORS,
41
+ useExisting: forwardRef(() => FunctionValidatorDirective),
42
+ multi: true,
43
+ },
44
+ ],
45
+ }]
46
+ }], propDecorators: { aclValidateFn: [{
47
+ type: Input
48
+ }] } });
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuY3Rpb24tdmFsaWRhdG9yLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZHluYW1pYy1wbHVnaW4tc2hhcmVkL3NyYy9mb3JtL3ZhbGlkYXRvcnMvZnVuY3Rpb24tdmFsaWRhdG9yLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFFTCxhQUFhLEVBR2IsVUFBVSxHQUNYLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7QUFjeEMsTUFBTSxPQUFPLDBCQUEwQjtJQU9yQyxJQUFJLFVBQVU7UUFDWixPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQztZQUN0QyxDQUFDLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDO1lBQ3hDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQ3pCLENBQUM7SUFJRCxRQUFRLENBQUMsT0FBd0I7UUFDL0IsT0FBTyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELHlCQUF5QixDQUFDLEVBQWM7UUFDdEMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEVBQUUsQ0FBQztJQUM5QixDQUFDOzhHQXJCVSwwQkFBMEI7a0dBQTFCLDBCQUEwQixpTEFSMUI7WUFDVDtnQkFDRSxPQUFPLEVBQUUsYUFBYTtnQkFDdEIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQywwQkFBMEIsQ0FBQztnQkFDekQsS0FBSyxFQUFFLElBQUk7YUFDWjtTQUNGOztBQU9EO0lBSkMsU0FBUyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUU7UUFDckIsSUFBSSxDQUFDLGlCQUFpQixFQUFFLEVBQUUsQ0FBQztJQUM3QixDQUFDLENBQUM7O2lFQUV5QzsyRkFMaEMsMEJBQTBCO2tCQVp0QyxTQUFTO21CQUFDO29CQUNULFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQ04sd0ZBQXdGO29CQUMxRixTQUFTLEVBQUU7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGFBQWE7NEJBQ3RCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLDJCQUEyQixDQUFDOzRCQUN6RCxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjtpQkFDRjs4QkFNQyxhQUFhO3NCQURaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIElucHV0LCBmb3J3YXJkUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBBYnN0cmFjdENvbnRyb2wsXG4gIE5HX1ZBTElEQVRPUlMsXG4gIFZhbGlkYXRvcixcbiAgVmFsaWRhdG9yRm4sXG4gIFZhbGlkYXRvcnMsXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgVmFsdWVIb29rIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2VsZWN0b3I6XG4gICAgJ1thY2xWYWxpZGF0ZUZuXVtuZ01vZGVsXSxbYWNsVmFsaWRhdGVGbl1bZm9ybUNvbnRyb2xdLFthY2xWYWxpZGF0ZUZuXVtmb3JtQ29udHJvbE5hbWVdJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEZ1bmN0aW9uVmFsaWRhdG9yRGlyZWN0aXZlKSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEZ1bmN0aW9uVmFsaWRhdG9yRGlyZWN0aXZlIGltcGxlbWVudHMgVmFsaWRhdG9yIHtcbiAgQFZhbHVlSG9vayhudWxsLCBudWxsLCBmdW5jdGlvbiAoKSB7XG4gICAgdGhpcy5vblZhbGlkYXRvckNoYW5nZT8uKCk7XG4gIH0pXG4gIEBJbnB1dCgpXG4gIGFjbFZhbGlkYXRlRm46IFZhbGlkYXRvckZuIHwgVmFsaWRhdG9yRm5bXTtcblxuICBnZXQgdmFsaWRhdGVGbigpIHtcbiAgICByZXR1cm4gQXJyYXkuaXNBcnJheSh0aGlzLmFjbFZhbGlkYXRlRm4pXG4gICAgICA/IFZhbGlkYXRvcnMuY29tcG9zZSh0aGlzLmFjbFZhbGlkYXRlRm4pXG4gICAgICA6IHRoaXMuYWNsVmFsaWRhdGVGbjtcbiAgfVxuXG4gIGRlY2xhcmUgb25WYWxpZGF0b3JDaGFuZ2U6ICgpID0+IHZvaWQ7XG5cbiAgdmFsaWRhdGUoY29udHJvbDogQWJzdHJhY3RDb250cm9sKSB7XG4gICAgcmV0dXJuIHRoaXMudmFsaWRhdGVGbj8uKGNvbnRyb2wpO1xuICB9XG5cbiAgcmVnaXN0ZXJPblZhbGlkYXRvckNoYW5nZShmbjogKCkgPT4gdm9pZCkge1xuICAgIHRoaXMub25WYWxpZGF0b3JDaGFuZ2UgPSBmbjtcbiAgfVxufVxuIl19
@@ -0,0 +1,10 @@
1
+ export * from './utils';
2
+ export * from './dns1123-subdomain';
3
+ export * from './resource-limit';
4
+ export * from './strong-password';
5
+ export * from './not-be-validator.directive';
6
+ export * from './one-of-validator.directive';
7
+ export * from './function-validator.directive';
8
+ export * from './async-function-validator.directive';
9
+ export * from './maxlength-minlength-validator.directive';
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2R5bmFtaWMtcGx1Z2luLXNoYXJlZC9zcmMvZm9ybS92YWxpZGF0b3JzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsU0FBUyxDQUFDO0FBQ3hCLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYywyQ0FBMkMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vdXRpbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9kbnMxMTIzLXN1YmRvbWFpbic7XG5leHBvcnQgKiBmcm9tICcuL3Jlc291cmNlLWxpbWl0JztcbmV4cG9ydCAqIGZyb20gJy4vc3Ryb25nLXBhc3N3b3JkJztcbmV4cG9ydCAqIGZyb20gJy4vbm90LWJlLXZhbGlkYXRvci5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9vbmUtb2YtdmFsaWRhdG9yLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2Z1bmN0aW9uLXZhbGlkYXRvci5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9hc3luYy1mdW5jdGlvbi12YWxpZGF0b3IuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vbWF4bGVuZ3RoLW1pbmxlbmd0aC12YWxpZGF0b3IuZGlyZWN0aXZlJztcbiJdfQ==
@@ -0,0 +1,71 @@
1
+ import { Directive, forwardRef, Input } from '@angular/core';
2
+ import { MaxLengthValidator, MinLengthValidator, NG_VALIDATORS, } from '@angular/forms';
3
+ import * as i0 from "@angular/core";
4
+ /**
5
+ * 功能和 MaxLengthValidator 完全一样,唯一的区别就是不设置 host maxlength attribute
6
+ * 使用场景:ngModel 的表单希望设置 maxlength validator 但不相限制输入框输入的字符。
7
+ * 比如产品希望最长 20 个字符,超过 20 个字符红色提醒
8
+ * https://github.com/angular/angular/blob/main/packages/forms/src/directives/validators.ts#L591
9
+ */
10
+ export class MaxLengthValidatorDirective extends MaxLengthValidator {
11
+ constructor() {
12
+ super(...arguments);
13
+ this.inputName = 'aclMaxlength';
14
+ }
15
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: MaxLengthValidatorDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
16
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.1", type: MaxLengthValidatorDirective, isStandalone: true, selector: "[aclMaxlength][formControlName],[aclMaxlength][formControl],[aclMaxlength][ngModel]", inputs: { aclMaxlength: "aclMaxlength" }, providers: [
17
+ {
18
+ provide: NG_VALIDATORS,
19
+ useExisting: forwardRef(() => MaxLengthValidatorDirective),
20
+ multi: true,
21
+ },
22
+ ], usesInheritance: true, ngImport: i0 }); }
23
+ }
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: MaxLengthValidatorDirective, decorators: [{
25
+ type: Directive,
26
+ args: [{
27
+ standalone: true,
28
+ selector: '[aclMaxlength][formControlName],[aclMaxlength][formControl],[aclMaxlength][ngModel]',
29
+ providers: [
30
+ {
31
+ provide: NG_VALIDATORS,
32
+ useExisting: forwardRef(() => MaxLengthValidatorDirective),
33
+ multi: true,
34
+ },
35
+ ],
36
+ }]
37
+ }], propDecorators: { aclMaxlength: [{
38
+ type: Input
39
+ }] } });
40
+ // 同上
41
+ export class MinLengthValidatorDirective extends MinLengthValidator {
42
+ constructor() {
43
+ super(...arguments);
44
+ this.inputName = 'aclMinlength';
45
+ }
46
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: MinLengthValidatorDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
47
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.1", type: MinLengthValidatorDirective, isStandalone: true, selector: "[aclMinlength][formControlName],[aclMinlength][formControl],[aclMinlength][ngModel]", inputs: { aclMinlength: "aclMinlength" }, providers: [
48
+ {
49
+ provide: NG_VALIDATORS,
50
+ useExisting: forwardRef(() => MinLengthValidatorDirective),
51
+ multi: true,
52
+ },
53
+ ], usesInheritance: true, ngImport: i0 }); }
54
+ }
55
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: MinLengthValidatorDirective, decorators: [{
56
+ type: Directive,
57
+ args: [{
58
+ standalone: true,
59
+ selector: '[aclMinlength][formControlName],[aclMinlength][formControl],[aclMinlength][ngModel]',
60
+ providers: [
61
+ {
62
+ provide: NG_VALIDATORS,
63
+ useExisting: forwardRef(() => MinLengthValidatorDirective),
64
+ multi: true,
65
+ },
66
+ ],
67
+ }]
68
+ }], propDecorators: { aclMinlength: [{
69
+ type: Input
70
+ }] } });
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF4bGVuZ3RoLW1pbmxlbmd0aC12YWxpZGF0b3IuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9keW5hbWljLXBsdWdpbi1zaGFyZWQvc3JjL2Zvcm0vdmFsaWRhdG9ycy9tYXhsZW5ndGgtbWlubGVuZ3RoLXZhbGlkYXRvci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFDTCxrQkFBa0IsRUFDbEIsa0JBQWtCLEVBQ2xCLGFBQWEsR0FDZCxNQUFNLGdCQUFnQixDQUFDOztBQUN4Qjs7Ozs7R0FLRztBQWFILE1BQU0sT0FBTywyQkFBNEIsU0FBUSxrQkFBa0I7SUFabkU7O1FBZ0JFLGNBQVMsR0FBRyxjQUFjLENBQUM7S0FDNUI7OEdBTFksMkJBQTJCO2tHQUEzQiwyQkFBMkIsNEtBUjNCO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLGFBQWE7Z0JBQ3RCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsMkJBQTJCLENBQUM7Z0JBQzFELEtBQUssRUFBRSxJQUFJO2FBQ1o7U0FDRjs7MkZBRVUsMkJBQTJCO2tCQVp2QyxTQUFTO21CQUFDO29CQUNULFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQ04scUZBQXFGO29CQUN2RixTQUFTLEVBQUU7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGFBQWE7NEJBQ3RCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLDRCQUE0QixDQUFDOzRCQUMxRCxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjtpQkFDRjs4QkFHQyxZQUFZO3NCQURYLEtBQUs7O0FBTVIsS0FBSztBQWFMLE1BQU0sT0FBTywyQkFBNEIsU0FBUSxrQkFBa0I7SUFabkU7O1FBZ0JFLGNBQVMsR0FBRyxjQUFjLENBQUM7S0FDNUI7OEdBTFksMkJBQTJCO2tHQUEzQiwyQkFBMkIsNEtBUjNCO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLGFBQWE7Z0JBQ3RCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsMkJBQTJCLENBQUM7Z0JBQzFELEtBQUssRUFBRSxJQUFJO2FBQ1o7U0FDRjs7MkZBRVUsMkJBQTJCO2tCQVp2QyxTQUFTO21CQUFDO29CQUNULFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQ04scUZBQXFGO29CQUN2RixTQUFTLEVBQUU7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGFBQWE7NEJBQ3RCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLDRCQUE0QixDQUFDOzRCQUMxRCxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjtpQkFDRjs4QkFHQyxZQUFZO3NCQURYLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIGZvcndhcmRSZWYsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBNYXhMZW5ndGhWYWxpZGF0b3IsXG4gIE1pbkxlbmd0aFZhbGlkYXRvcixcbiAgTkdfVkFMSURBVE9SUyxcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuLyoqXG4gKiDlip/og73lkowgTWF4TGVuZ3RoVmFsaWRhdG9yIOWujOWFqOS4gOagt++8jOWUr+S4gOeahOWMuuWIq+WwseaYr+S4jeiuvue9riBob3N0IG1heGxlbmd0aCBhdHRyaWJ1dGVcbiAqIOS9v+eUqOWcuuaZr++8mm5nTW9kZWwg55qE6KGo5Y2V5biM5pyb6K6+572uIG1heGxlbmd0aCB2YWxpZGF0b3Ig5L2G5LiN55u46ZmQ5Yi26L6T5YWl5qGG6L6T5YWl55qE5a2X56ym44CCXG4gKiDmr5TlpoLkuqflk4HluIzmnJvmnIDplb8gMjAg5Liq5a2X56ym77yM6LaF6L+HIDIwIOS4quWtl+espue6ouiJsuaPkOmGklxuICogaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhci9ibG9iL21haW4vcGFja2FnZXMvZm9ybXMvc3JjL2RpcmVjdGl2ZXMvdmFsaWRhdG9ycy50cyNMNTkxXG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjpcbiAgICAnW2FjbE1heGxlbmd0aF1bZm9ybUNvbnRyb2xOYW1lXSxbYWNsTWF4bGVuZ3RoXVtmb3JtQ29udHJvbF0sW2FjbE1heGxlbmd0aF1bbmdNb2RlbF0nLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gTWF4TGVuZ3RoVmFsaWRhdG9yRGlyZWN0aXZlKSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIE1heExlbmd0aFZhbGlkYXRvckRpcmVjdGl2ZSBleHRlbmRzIE1heExlbmd0aFZhbGlkYXRvciB7XG4gIEBJbnB1dCgpXG4gIGFjbE1heGxlbmd0aDogc3RyaW5nIHwgbnVtYmVyO1xuXG4gIGlucHV0TmFtZSA9ICdhY2xNYXhsZW5ndGgnO1xufVxuXG4vLyDlkIzkuIpcbkBEaXJlY3RpdmUoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjpcbiAgICAnW2FjbE1pbmxlbmd0aF1bZm9ybUNvbnRyb2xOYW1lXSxbYWNsTWlubGVuZ3RoXVtmb3JtQ29udHJvbF0sW2FjbE1pbmxlbmd0aF1bbmdNb2RlbF0nLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gTWluTGVuZ3RoVmFsaWRhdG9yRGlyZWN0aXZlKSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIE1pbkxlbmd0aFZhbGlkYXRvckRpcmVjdGl2ZSBleHRlbmRzIE1pbkxlbmd0aFZhbGlkYXRvciB7XG4gIEBJbnB1dCgpXG4gIGFjbE1pbmxlbmd0aDogc3RyaW5nIHwgbnVtYmVyO1xuXG4gIGlucHV0TmFtZSA9ICdhY2xNaW5sZW5ndGgnO1xufVxuIl19
@@ -0,0 +1,56 @@
1
+ import { __decorate, __metadata } from "tslib";
2
+ import { Directive, Input, forwardRef } from '@angular/core';
3
+ import { NG_VALIDATORS, } from '@angular/forms';
4
+ import { ValueHook } from '../../utils';
5
+ import * as i0 from "@angular/core";
6
+ export class NotBeValidatorDirective {
7
+ validate(control) {
8
+ const value = control.value;
9
+ if (this.notBeValues?.some(notBeValue => typeof notBeValue === 'string'
10
+ ? notBeValue === value
11
+ : notBeValue?.test(value))) {
12
+ return {
13
+ notBe: control.value,
14
+ };
15
+ }
16
+ }
17
+ registerOnValidatorChange(fn) {
18
+ this.onValidatorChange = fn;
19
+ }
20
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NotBeValidatorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
21
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.1", type: NotBeValidatorDirective, isStandalone: true, selector: "[aclNotBe][ngModel],[aclNotBe][formControl],[aclNotBe][formControlName]", inputs: { aclNotBe: "aclNotBe" }, providers: [
22
+ {
23
+ provide: NG_VALIDATORS,
24
+ useExisting: forwardRef(() => NotBeValidatorDirective),
25
+ multi: true,
26
+ },
27
+ ], ngImport: i0 }); }
28
+ }
29
+ __decorate([
30
+ ValueHook(null, null, function (notBe) {
31
+ this.notBeValues = notBe
32
+ ? Array.isArray(notBe)
33
+ ? notBe
34
+ : [notBe]
35
+ : null;
36
+ this.onValidatorChange?.();
37
+ }),
38
+ __metadata("design:type", Object)
39
+ ], NotBeValidatorDirective.prototype, "aclNotBe", void 0);
40
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NotBeValidatorDirective, decorators: [{
41
+ type: Directive,
42
+ args: [{
43
+ standalone: true,
44
+ selector: '[aclNotBe][ngModel],[aclNotBe][formControl],[aclNotBe][formControlName]',
45
+ providers: [
46
+ {
47
+ provide: NG_VALIDATORS,
48
+ useExisting: forwardRef(() => NotBeValidatorDirective),
49
+ multi: true,
50
+ },
51
+ ],
52
+ }]
53
+ }], propDecorators: { aclNotBe: [{
54
+ type: Input
55
+ }] } });
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90LWJlLXZhbGlkYXRvci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2R5bmFtaWMtcGx1Z2luLXNoYXJlZC9zcmMvZm9ybS92YWxpZGF0b3JzL25vdC1iZS12YWxpZGF0b3IuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUVMLGFBQWEsR0FHZCxNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUM7O0FBZ0J4QyxNQUFNLE9BQU8sdUJBQXVCO0lBb0JsQyxRQUFRLENBQUMsT0FBd0I7UUFDL0IsTUFBTSxLQUFLLEdBQVcsT0FBTyxDQUFDLEtBQUssQ0FBQztRQUNwQyxJQUNFLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQ2xDLE9BQU8sVUFBVSxLQUFLLFFBQVE7WUFDNUIsQ0FBQyxDQUFDLFVBQVUsS0FBSyxLQUFLO1lBQ3RCLENBQUMsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUM1QixFQUNELENBQUM7WUFDRCxPQUFPO2dCQUNMLEtBQUssRUFBRSxPQUFPLENBQUMsS0FBSzthQUNyQixDQUFDO1FBQ0osQ0FBQztJQUNILENBQUM7SUFFRCx5QkFBeUIsQ0FBQyxFQUFjO1FBQ3RDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxFQUFFLENBQUM7SUFDOUIsQ0FBQzs4R0FyQ1UsdUJBQXVCO2tHQUF2Qix1QkFBdUIsd0pBUnZCO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLGFBQWE7Z0JBQ3RCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsdUJBQXVCLENBQUM7Z0JBQ3RELEtBQUssRUFBRSxJQUFJO2FBQ1o7U0FDRjs7QUFnQkQ7SUFiQyxTQUFTLENBQ1IsSUFBSSxFQUNKLElBQUksRUFDSixVQUF5QyxLQUFnQztRQUN2RSxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUs7WUFDdEIsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO2dCQUNwQixDQUFDLENBQUMsS0FBSztnQkFDUCxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7WUFDWCxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ1QsSUFBSSxDQUFDLGlCQUFpQixFQUFFLEVBQUUsQ0FBQztJQUM3QixDQUFDLENBQ0Y7O3lEQUVtQzsyRkFkekIsdUJBQXVCO2tCQVpuQyxTQUFTO21CQUFDO29CQUNULFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQ04seUVBQXlFO29CQUMzRSxTQUFTLEVBQUU7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGFBQWE7NEJBQ3RCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLHdCQUF3QixDQUFDOzRCQUN0RCxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjtpQkFDRjs4QkFlQyxRQUFRO3NCQURQLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIElucHV0LCBmb3J3YXJkUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBBYnN0cmFjdENvbnRyb2wsXG4gIE5HX1ZBTElEQVRPUlMsXG4gIFZhbGlkYXRpb25FcnJvcnMsXG4gIFZhbGlkYXRvcixcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBWYWx1ZUhvb2sgfSBmcm9tICcuLi8uLi91dGlscyc7XG5cbmV4cG9ydCB0eXBlIE5vdEJlVmFsdWUgPSBzdHJpbmcgfCBSZWdFeHA7XG5cbkBEaXJlY3RpdmUoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjpcbiAgICAnW2FjbE5vdEJlXVtuZ01vZGVsXSxbYWNsTm90QmVdW2Zvcm1Db250cm9sXSxbYWNsTm90QmVdW2Zvcm1Db250cm9sTmFtZV0nLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gTm90QmVWYWxpZGF0b3JEaXJlY3RpdmUpLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgTm90QmVWYWxpZGF0b3JEaXJlY3RpdmUgaW1wbGVtZW50cyBWYWxpZGF0b3Ige1xuICBAVmFsdWVIb29rKFxuICAgIG51bGwsXG4gICAgbnVsbCxcbiAgICBmdW5jdGlvbiAodGhpczogTm90QmVWYWxpZGF0b3JEaXJlY3RpdmUsIG5vdEJlOiBOb3RCZVZhbHVlIHwgTm90QmVWYWx1ZVtdKSB7XG4gICAgICB0aGlzLm5vdEJlVmFsdWVzID0gbm90QmVcbiAgICAgICAgPyBBcnJheS5pc0FycmF5KG5vdEJlKVxuICAgICAgICAgID8gbm90QmVcbiAgICAgICAgICA6IFtub3RCZV1cbiAgICAgICAgOiBudWxsO1xuICAgICAgdGhpcy5vblZhbGlkYXRvckNoYW5nZT8uKCk7XG4gICAgfSxcbiAgKVxuICBASW5wdXQoKVxuICBhY2xOb3RCZTogTm90QmVWYWx1ZSB8IE5vdEJlVmFsdWVbXTtcblxuICBub3RCZVZhbHVlczogTm90QmVWYWx1ZVtdO1xuXG4gIG9uVmFsaWRhdG9yQ2hhbmdlOiAoKSA9PiB2b2lkO1xuXG4gIHZhbGlkYXRlKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMge1xuICAgIGNvbnN0IHZhbHVlOiBzdHJpbmcgPSBjb250cm9sLnZhbHVlO1xuICAgIGlmIChcbiAgICAgIHRoaXMubm90QmVWYWx1ZXM/LnNvbWUobm90QmVWYWx1ZSA9PlxuICAgICAgICB0eXBlb2Ygbm90QmVWYWx1ZSA9PT0gJ3N0cmluZydcbiAgICAgICAgICA/IG5vdEJlVmFsdWUgPT09IHZhbHVlXG4gICAgICAgICAgOiBub3RCZVZhbHVlPy50ZXN0KHZhbHVlKSxcbiAgICAgIClcbiAgICApIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIG5vdEJlOiBjb250cm9sLnZhbHVlLFxuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICByZWdpc3Rlck9uVmFsaWRhdG9yQ2hhbmdlKGZuOiAoKSA9PiB2b2lkKSB7XG4gICAgdGhpcy5vblZhbGlkYXRvckNoYW5nZSA9IGZuO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,57 @@
1
+ import { __decorate, __metadata } from "tslib";
2
+ import { Directive, Input, forwardRef } from '@angular/core';
3
+ import { NG_VALIDATORS, } from '@angular/forms';
4
+ import { ValueHook } from '../../utils';
5
+ import * as i0 from "@angular/core";
6
+ export class OneOfValidatorDirective {
7
+ validate(control) {
8
+ const value = control.value;
9
+ if (this.oneOfValues &&
10
+ !this.oneOfValues?.some(oneOfValue => typeof oneOfValue === 'string'
11
+ ? oneOfValue === value
12
+ : oneOfValue?.test(value))) {
13
+ return {
14
+ oneOf: control.value,
15
+ };
16
+ }
17
+ }
18
+ registerOnValidatorChange(fn) {
19
+ this.onValidatorChange = fn;
20
+ }
21
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: OneOfValidatorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
22
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.1", type: OneOfValidatorDirective, isStandalone: true, selector: "[aclOneOf][ngModel],[aclOneOf][formControl],[aclOneOf][formControlName]", inputs: { aclOneOf: "aclOneOf" }, providers: [
23
+ {
24
+ provide: NG_VALIDATORS,
25
+ useExisting: forwardRef(() => OneOfValidatorDirective),
26
+ multi: true,
27
+ },
28
+ ], ngImport: i0 }); }
29
+ }
30
+ __decorate([
31
+ ValueHook(null, null, function (oneOf) {
32
+ this.oneOfValues = oneOf
33
+ ? Array.isArray(oneOf)
34
+ ? oneOf
35
+ : [oneOf]
36
+ : null;
37
+ this.onValidatorChange?.();
38
+ }),
39
+ __metadata("design:type", Object)
40
+ ], OneOfValidatorDirective.prototype, "aclOneOf", void 0);
41
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: OneOfValidatorDirective, decorators: [{
42
+ type: Directive,
43
+ args: [{
44
+ standalone: true,
45
+ selector: '[aclOneOf][ngModel],[aclOneOf][formControl],[aclOneOf][formControlName]',
46
+ providers: [
47
+ {
48
+ provide: NG_VALIDATORS,
49
+ useExisting: forwardRef(() => OneOfValidatorDirective),
50
+ multi: true,
51
+ },
52
+ ],
53
+ }]
54
+ }], propDecorators: { aclOneOf: [{
55
+ type: Input
56
+ }] } });
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib25lLW9mLXZhbGlkYXRvci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2R5bmFtaWMtcGx1Z2luLXNoYXJlZC9zcmMvZm9ybS92YWxpZGF0b3JzL29uZS1vZi12YWxpZGF0b3IuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUVMLGFBQWEsR0FHZCxNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUM7O0FBZ0J4QyxNQUFNLE9BQU8sdUJBQXVCO0lBb0JsQyxRQUFRLENBQUMsT0FBd0I7UUFDL0IsTUFBTSxLQUFLLEdBQVcsT0FBTyxDQUFDLEtBQUssQ0FBQztRQUNwQyxJQUNFLElBQUksQ0FBQyxXQUFXO1lBQ2hCLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FDbkMsT0FBTyxVQUFVLEtBQUssUUFBUTtnQkFDNUIsQ0FBQyxDQUFDLFVBQVUsS0FBSyxLQUFLO2dCQUN0QixDQUFDLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FDNUIsRUFDRCxDQUFDO1lBQ0QsT0FBTztnQkFDTCxLQUFLLEVBQUUsT0FBTyxDQUFDLEtBQUs7YUFDckIsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0lBRUQseUJBQXlCLENBQUMsRUFBYztRQUN0QyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsRUFBRSxDQUFDO0lBQzlCLENBQUM7OEdBdENVLHVCQUF1QjtrR0FBdkIsdUJBQXVCLHdKQVJ2QjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxhQUFhO2dCQUN0QixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHVCQUF1QixDQUFDO2dCQUN0RCxLQUFLLEVBQUUsSUFBSTthQUNaO1NBQ0Y7O0FBZ0JEO0lBYkMsU0FBUyxDQUNSLElBQUksRUFDSixJQUFJLEVBQ0osVUFBeUMsS0FBZ0M7UUFDdkUsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLO1lBQ3RCLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztnQkFDcEIsQ0FBQyxDQUFDLEtBQUs7Z0JBQ1AsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1lBQ1gsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUNULElBQUksQ0FBQyxpQkFBaUIsRUFBRSxFQUFFLENBQUM7SUFDN0IsQ0FBQyxDQUNGOzt5REFFbUM7MkZBZHpCLHVCQUF1QjtrQkFabkMsU0FBUzttQkFBQztvQkFDVCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUNOLHlFQUF5RTtvQkFDM0UsU0FBUyxFQUFFO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxhQUFhOzRCQUN0QixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSx3QkFBd0IsQ0FBQzs0QkFDdEQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7aUJBQ0Y7OEJBZUMsUUFBUTtzQkFEUCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBJbnB1dCwgZm9yd2FyZFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQWJzdHJhY3RDb250cm9sLFxuICBOR19WQUxJREFUT1JTLFxuICBWYWxpZGF0aW9uRXJyb3JzLFxuICBWYWxpZGF0b3IsXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgVmFsdWVIb29rIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuXG5leHBvcnQgdHlwZSBPbmVPZlZhbHVlID0gc3RyaW5nIHwgUmVnRXhwO1xuXG5ARGlyZWN0aXZlKHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2VsZWN0b3I6XG4gICAgJ1thY2xPbmVPZl1bbmdNb2RlbF0sW2FjbE9uZU9mXVtmb3JtQ29udHJvbF0sW2FjbE9uZU9mXVtmb3JtQ29udHJvbE5hbWVdJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IE9uZU9mVmFsaWRhdG9yRGlyZWN0aXZlKSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIE9uZU9mVmFsaWRhdG9yRGlyZWN0aXZlIGltcGxlbWVudHMgVmFsaWRhdG9yIHtcbiAgQFZhbHVlSG9vayhcbiAgICBudWxsLFxuICAgIG51bGwsXG4gICAgZnVuY3Rpb24gKHRoaXM6IE9uZU9mVmFsaWRhdG9yRGlyZWN0aXZlLCBvbmVPZjogT25lT2ZWYWx1ZSB8IE9uZU9mVmFsdWVbXSkge1xuICAgICAgdGhpcy5vbmVPZlZhbHVlcyA9IG9uZU9mXG4gICAgICAgID8gQXJyYXkuaXNBcnJheShvbmVPZilcbiAgICAgICAgICA/IG9uZU9mXG4gICAgICAgICAgOiBbb25lT2ZdXG4gICAgICAgIDogbnVsbDtcbiAgICAgIHRoaXMub25WYWxpZGF0b3JDaGFuZ2U/LigpO1xuICAgIH0sXG4gIClcbiAgQElucHV0KClcbiAgYWNsT25lT2Y6IE9uZU9mVmFsdWUgfCBPbmVPZlZhbHVlW107XG5cbiAgb25lT2ZWYWx1ZXM6IE9uZU9mVmFsdWVbXTtcblxuICBvblZhbGlkYXRvckNoYW5nZTogKCkgPT4gdm9pZDtcblxuICB2YWxpZGF0ZShjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHtcbiAgICBjb25zdCB2YWx1ZTogc3RyaW5nID0gY29udHJvbC52YWx1ZTtcbiAgICBpZiAoXG4gICAgICB0aGlzLm9uZU9mVmFsdWVzICYmXG4gICAgICAhdGhpcy5vbmVPZlZhbHVlcz8uc29tZShvbmVPZlZhbHVlID0+XG4gICAgICAgIHR5cGVvZiBvbmVPZlZhbHVlID09PSAnc3RyaW5nJ1xuICAgICAgICAgID8gb25lT2ZWYWx1ZSA9PT0gdmFsdWVcbiAgICAgICAgICA6IG9uZU9mVmFsdWU/LnRlc3QodmFsdWUpLFxuICAgICAgKVxuICAgICkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgb25lT2Y6IGNvbnRyb2wudmFsdWUsXG4gICAgICB9O1xuICAgIH1cbiAgfVxuXG4gIHJlZ2lzdGVyT25WYWxpZGF0b3JDaGFuZ2UoZm46ICgpID0+IHZvaWQpIHtcbiAgICB0aGlzLm9uVmFsaWRhdG9yQ2hhbmdlID0gZm47XG4gIH1cbn1cbiJdfQ==