@tft/crispr-forms 14.0.2 → 15.0.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 (490) hide show
  1. package/esm2022/public-api.mjs +4 -0
  2. package/{esm2020 → esm2022}/src/index.mjs +1 -1
  3. package/esm2022/src/lib/crispr-forms.module.mjs +55 -0
  4. package/esm2022/src/lib/display-field.directive.mjs +52 -0
  5. package/esm2022/src/lib/field-component-map.const.mjs +28 -0
  6. package/esm2022/src/lib/field.directive.mjs +69 -0
  7. package/esm2022/src/lib/form/form.component.mjs +62 -0
  8. package/esm2022/src/lib/form-group-list/form-group-list.component.mjs +97 -0
  9. package/{esm2020 → esm2022}/src/lib/form-group-list/index.mjs +1 -1
  10. package/{esm2020 → esm2022}/src/lib/pipes/crispr-pipes.module.mjs +24 -24
  11. package/esm2022/src/lib/pipes/initial-control-value.pipe.mjs +20 -0
  12. package/{esm2020 → esm2022}/src/lib/public_api.mjs +2 -2
  13. package/{esm2020 → esm2022}/src/lib/sub-group/index.mjs +2 -2
  14. package/esm2022/src/lib/sub-group/sub-group.component.mjs +20 -0
  15. package/esm2022/src/lib/sub-group/sub-group.module.mjs +42 -0
  16. package/esm2022/src/lib/ui/autocomplete-chiplist-field/autocomplete-chiplist-field.component.mjs +138 -0
  17. package/esm2022/src/lib/ui/autocomplete-chiplist-field/index.mjs +2 -0
  18. package/esm2022/src/lib/ui/autocomplete-chiplist-field/public-api.mjs +2 -0
  19. package/esm2022/src/lib/ui/autocomplete-field/autocomplete-field.component.mjs +95 -0
  20. package/esm2022/src/lib/ui/autocomplete-field/index.mjs +2 -0
  21. package/esm2022/src/lib/ui/autocomplete-field/public-api.mjs +2 -0
  22. package/esm2022/src/lib/ui/button/button.component.mjs +52 -0
  23. package/esm2022/src/lib/ui/button/index.mjs +2 -0
  24. package/esm2022/src/lib/ui/button/public-api.mjs +2 -0
  25. package/esm2022/src/lib/ui/checkbox-field/checkbox-field.component.mjs +42 -0
  26. package/esm2022/src/lib/ui/checkbox-field/index.mjs +2 -0
  27. package/esm2022/src/lib/ui/checkbox-field/public-api.mjs +2 -0
  28. package/esm2022/src/lib/ui/datepicker-field/datepicker-field.component.mjs +66 -0
  29. package/esm2022/src/lib/ui/datepicker-field/index.mjs +2 -0
  30. package/esm2022/src/lib/ui/datepicker-field/public-api.mjs +2 -0
  31. package/esm2022/src/lib/ui/divider/divider.component.mjs +25 -0
  32. package/esm2022/src/lib/ui/divider/index.mjs +2 -0
  33. package/esm2022/src/lib/ui/divider/public-api.mjs +2 -0
  34. package/esm2022/src/lib/ui/field-container/field-container.component.mjs +59 -0
  35. package/esm2022/src/lib/ui/field-container/index.mjs +2 -0
  36. package/esm2022/src/lib/ui/field-container/public-api.mjs +2 -0
  37. package/esm2022/src/lib/ui/file-dropzone/file-dropzone.directive.mjs +40 -0
  38. package/esm2022/src/lib/ui/file-dropzone/index.mjs +2 -0
  39. package/esm2022/src/lib/ui/file-dropzone/public-api.mjs +2 -0
  40. package/esm2022/src/lib/ui/file-upload-field/file-upload-field.component.mjs +107 -0
  41. package/esm2022/src/lib/ui/file-upload-field/index.mjs +2 -0
  42. package/esm2022/src/lib/ui/file-upload-field/public-api.mjs +2 -0
  43. package/esm2022/src/lib/ui/heading/heading.component.mjs +27 -0
  44. package/esm2022/src/lib/ui/heading/index.mjs +2 -0
  45. package/esm2022/src/lib/ui/heading/public-api.mjs +2 -0
  46. package/esm2022/src/lib/ui/image-upload-field/image-upload-field.component.mjs +184 -0
  47. package/esm2022/src/lib/ui/image-upload-field/index.mjs +2 -0
  48. package/esm2022/src/lib/ui/image-upload-field/public-api.mjs +2 -0
  49. package/esm2022/src/lib/ui/index.mjs +2 -0
  50. package/esm2022/src/lib/ui/info/index.mjs +2 -0
  51. package/esm2022/src/lib/ui/info/info.component.mjs +23 -0
  52. package/esm2022/src/lib/ui/info/public-api.mjs +2 -0
  53. package/esm2022/src/lib/ui/input-field/index.mjs +2 -0
  54. package/esm2022/src/lib/ui/input-field/input-field.component.mjs +43 -0
  55. package/esm2022/src/lib/ui/input-field/public-api.mjs +2 -0
  56. package/esm2022/src/lib/ui/option/index.mjs +2 -0
  57. package/esm2022/src/lib/ui/option/option.component.mjs +16 -0
  58. package/esm2022/src/lib/ui/option/public-api.mjs +2 -0
  59. package/esm2022/src/lib/ui/public-api.mjs +7 -0
  60. package/esm2022/src/lib/ui/radio-field/index.mjs +2 -0
  61. package/esm2022/src/lib/ui/radio-field/public-api.mjs +2 -0
  62. package/esm2022/src/lib/ui/radio-field/radio-field.component.mjs +39 -0
  63. package/esm2022/src/lib/ui/select-field/index.mjs +2 -0
  64. package/esm2022/src/lib/ui/select-field/public-api.mjs +2 -0
  65. package/esm2022/src/lib/ui/select-field/select-field.component.mjs +73 -0
  66. package/esm2022/src/lib/ui/selected-file/index.mjs +2 -0
  67. package/esm2022/src/lib/ui/selected-file/public-api.mjs +2 -0
  68. package/esm2022/src/lib/ui/selected-file/selected-file.component.mjs +26 -0
  69. package/esm2022/src/lib/ui/slider-field/index.mjs +2 -0
  70. package/esm2022/src/lib/ui/slider-field/public-api.mjs +2 -0
  71. package/esm2022/src/lib/ui/slider-field/slider-field.component.mjs +46 -0
  72. package/esm2022/src/lib/ui/textarea-field/index.mjs +2 -0
  73. package/esm2022/src/lib/ui/textarea-field/public-api.mjs +2 -0
  74. package/esm2022/src/lib/ui/textarea-field/textarea-field.component.mjs +42 -0
  75. package/esm2022/src/lib/ui/unit-conversion-field/index.mjs +2 -0
  76. package/esm2022/src/lib/ui/unit-conversion-field/public-api.mjs +2 -0
  77. package/esm2022/src/lib/ui/unit-conversion-field/unit-conversion-field.component.mjs +86 -0
  78. package/esm2022/src/lib/utils/abstracts/autocomplete-field.abstract.mjs +30 -0
  79. package/esm2022/src/lib/utils/abstracts/crispr-control.mixin.mjs +27 -0
  80. package/esm2022/src/lib/utils/abstracts/crispr-display-field.abstract.mjs +14 -0
  81. package/esm2022/src/lib/utils/abstracts/crispr-field.abstract.mjs +19 -0
  82. package/esm2022/src/lib/utils/abstracts/index.mjs +5 -0
  83. package/esm2022/src/lib/utils/functions/buildFormGroupFromConfig.mjs +28 -0
  84. package/esm2022/src/lib/utils/functions/callOptionsIfFunction.mjs +4 -0
  85. package/esm2022/src/lib/utils/functions/createControlForType.mjs +19 -0
  86. package/esm2022/src/lib/utils/functions/filterOptionsByLabel.mjs +11 -0
  87. package/esm2022/src/lib/utils/functions/image-compression.helpers.mjs +50 -0
  88. package/esm2022/src/lib/utils/functions/index.mjs +8 -0
  89. package/esm2022/src/lib/utils/functions/isControlConfig.mjs +7 -0
  90. package/esm2022/src/lib/utils/functions/observablifyOptions.mjs +29 -0
  91. package/esm2022/src/lib/utils/index.mjs +2 -0
  92. package/esm2022/src/lib/utils/models/autocomplete-chiplist-field.config.mjs +2 -0
  93. package/esm2022/src/lib/utils/models/autocomplete-field.config.mjs +2 -0
  94. package/esm2022/src/lib/utils/models/button.config.mjs +2 -0
  95. package/esm2022/src/lib/utils/models/checkbox-field.config.mjs +2 -0
  96. package/esm2022/src/lib/utils/models/crispr-field.config.mjs +23 -0
  97. package/esm2022/src/lib/utils/models/datepicker-field.config.mjs +2 -0
  98. package/esm2022/src/lib/utils/models/divider.config.mjs +2 -0
  99. package/esm2022/src/lib/utils/models/file-upload-field.config.mjs +2 -0
  100. package/esm2022/src/lib/utils/models/form-group-list.config.mjs +2 -0
  101. package/esm2022/src/lib/utils/models/heading.config.mjs +3 -0
  102. package/esm2022/src/lib/utils/models/image-upload-field.config.mjs +2 -0
  103. package/esm2022/src/lib/utils/models/index.mjs +18 -0
  104. package/esm2022/src/lib/utils/models/input-field.config.mjs +2 -0
  105. package/esm2022/src/lib/utils/models/radio-field.config.mjs +2 -0
  106. package/esm2022/src/lib/utils/models/select-field.config.mjs +2 -0
  107. package/esm2022/src/lib/utils/models/slider-field.config.mjs +2 -0
  108. package/esm2022/src/lib/utils/models/textarea-field.config.mjs +2 -0
  109. package/esm2022/src/lib/utils/models/unit-conversion-field.config.mjs +2 -0
  110. package/esm2022/src/lib/utils/operators/form.operators.mjs +24 -0
  111. package/esm2022/src/lib/utils/operators/index.mjs +2 -0
  112. package/esm2022/src/lib/utils/public-api.mjs +5 -0
  113. package/esm2022/src/lib/utils/tft-crispr-forms-src-lib-utils.mjs +5 -0
  114. package/{esm2020 → esm2022}/tft-crispr-forms.mjs +4 -4
  115. package/fesm2022/tft-crispr-forms-index-2dAn0905.mjs +19 -0
  116. package/fesm2022/tft-crispr-forms-index-2dAn0905.mjs.map +1 -0
  117. package/fesm2022/tft-crispr-forms-index-76UuF0AI.mjs +36 -0
  118. package/fesm2022/tft-crispr-forms-index-76UuF0AI.mjs.map +1 -0
  119. package/{fesm2020/tft-crispr-forms-ui-image-upload-field.mjs → fesm2022/tft-crispr-forms-index-BXwiulEX.mjs} +169 -169
  120. package/fesm2022/tft-crispr-forms-index-BXwiulEX.mjs.map +1 -0
  121. package/fesm2022/tft-crispr-forms-index-BfR4XbYi.mjs +110 -0
  122. package/fesm2022/tft-crispr-forms-index-BfR4XbYi.mjs.map +1 -0
  123. package/fesm2022/tft-crispr-forms-index-C5X0mk3N.mjs +49 -0
  124. package/fesm2022/tft-crispr-forms-index-C5X0mk3N.mjs.map +1 -0
  125. package/fesm2022/tft-crispr-forms-index-CFUop3Cq.mjs +80 -0
  126. package/fesm2022/tft-crispr-forms-index-CFUop3Cq.mjs.map +1 -0
  127. package/fesm2022/tft-crispr-forms-index-CFdMVgM0.mjs +91 -0
  128. package/fesm2022/tft-crispr-forms-index-CFdMVgM0.mjs.map +1 -0
  129. package/fesm2022/tft-crispr-forms-index-CZdi06Jj.mjs +49 -0
  130. package/fesm2022/tft-crispr-forms-index-CZdi06Jj.mjs.map +1 -0
  131. package/fesm2022/tft-crispr-forms-index-C_I9vjqf.mjs +57 -0
  132. package/fesm2022/tft-crispr-forms-index-C_I9vjqf.mjs.map +1 -0
  133. package/fesm2022/tft-crispr-forms-index-DE8VOdBd.mjs +102 -0
  134. package/fesm2022/tft-crispr-forms-index-DE8VOdBd.mjs.map +1 -0
  135. package/fesm2022/tft-crispr-forms-index-OLo2t0tl.mjs +48 -0
  136. package/fesm2022/tft-crispr-forms-index-OLo2t0tl.mjs.map +1 -0
  137. package/fesm2022/tft-crispr-forms-index-OT7kkOgd.mjs +50 -0
  138. package/fesm2022/tft-crispr-forms-index-OT7kkOgd.mjs.map +1 -0
  139. package/fesm2022/tft-crispr-forms-index-Ukk3WgS2.mjs +54 -0
  140. package/fesm2022/tft-crispr-forms-index-Ukk3WgS2.mjs.map +1 -0
  141. package/fesm2022/tft-crispr-forms-index-rRi6OMY6.mjs +142 -0
  142. package/fesm2022/tft-crispr-forms-index-rRi6OMY6.mjs.map +1 -0
  143. package/fesm2022/tft-crispr-forms-index-xAaInTLg.mjs +73 -0
  144. package/fesm2022/tft-crispr-forms-index-xAaInTLg.mjs.map +1 -0
  145. package/{fesm2020/tft-crispr-forms-utils.mjs → fesm2022/tft-crispr-forms-src-lib-utils.mjs} +242 -243
  146. package/fesm2022/tft-crispr-forms-src-lib-utils.mjs.map +1 -0
  147. package/fesm2022/tft-crispr-forms.mjs +848 -0
  148. package/fesm2022/tft-crispr-forms.mjs.map +1 -0
  149. package/index.d.ts +5 -5
  150. package/package.json +13 -191
  151. package/public-api.d.ts +3 -3
  152. package/src/index.d.ts +1 -1
  153. package/src/lib/crispr-forms.module.d.ts +16 -16
  154. package/src/lib/display-field.directive.d.ts +23 -23
  155. package/src/lib/field-component-map.const.d.ts +42 -42
  156. package/src/lib/field.directive.d.ts +24 -24
  157. package/src/lib/form/form.component.d.ts +19 -19
  158. package/src/lib/form-group-list/form-group-list.component.d.ts +40 -38
  159. package/src/lib/form-group-list/index.d.ts +1 -1
  160. package/src/lib/pipes/crispr-pipes.module.d.ts +8 -8
  161. package/src/lib/pipes/initial-control-value.pipe.d.ts +10 -10
  162. package/src/lib/public_api.d.ts +2 -2
  163. package/src/lib/sub-group/index.d.ts +2 -2
  164. package/src/lib/sub-group/sub-group.component.d.ts +24 -22
  165. package/src/lib/sub-group/sub-group.module.d.ts +12 -12
  166. package/{ui → src/lib/ui}/autocomplete-chiplist-field/autocomplete-chiplist-field.component.d.ts +36 -33
  167. package/src/lib/ui/autocomplete-chiplist-field/index.d.ts +1 -0
  168. package/{ui → src/lib/ui}/autocomplete-chiplist-field/public-api.d.ts +1 -1
  169. package/{ui → src/lib/ui}/autocomplete-field/autocomplete-field.component.d.ts +25 -25
  170. package/src/lib/ui/autocomplete-field/index.d.ts +1 -0
  171. package/{ui → src/lib/ui}/autocomplete-field/public-api.d.ts +1 -1
  172. package/{ui → src/lib/ui}/button/button.component.d.ts +15 -15
  173. package/src/lib/ui/button/index.d.ts +1 -0
  174. package/{ui → src/lib/ui}/button/public-api.d.ts +1 -1
  175. package/src/lib/ui/checkbox-field/checkbox-field.component.d.ts +23 -0
  176. package/src/lib/ui/checkbox-field/index.d.ts +1 -0
  177. package/{ui → src/lib/ui}/checkbox-field/public-api.d.ts +1 -1
  178. package/{ui → src/lib/ui}/datepicker-field/datepicker-field.component.d.ts +32 -30
  179. package/src/lib/ui/datepicker-field/index.d.ts +1 -0
  180. package/{ui → src/lib/ui}/datepicker-field/public-api.d.ts +1 -1
  181. package/{ui → src/lib/ui}/divider/divider.component.d.ts +9 -9
  182. package/src/lib/ui/divider/index.d.ts +1 -0
  183. package/{ui → src/lib/ui}/divider/public-api.d.ts +1 -1
  184. package/{ui → src/lib/ui}/field-container/field-container.component.d.ts +24 -24
  185. package/src/lib/ui/field-container/index.d.ts +1 -0
  186. package/{ui → src/lib/ui}/field-container/public-api.d.ts +1 -1
  187. package/{ui → src/lib/ui}/file-dropzone/file-dropzone.directive.d.ts +10 -10
  188. package/src/lib/ui/file-dropzone/index.d.ts +1 -0
  189. package/{ui → src/lib/ui}/file-dropzone/public-api.d.ts +1 -1
  190. package/{ui → src/lib/ui}/file-upload-field/file-upload-field.component.d.ts +39 -37
  191. package/src/lib/ui/file-upload-field/index.d.ts +1 -0
  192. package/{ui → src/lib/ui}/file-upload-field/public-api.d.ts +1 -1
  193. package/{ui → src/lib/ui}/heading/heading.component.d.ts +8 -8
  194. package/src/lib/ui/heading/index.d.ts +1 -0
  195. package/{ui → src/lib/ui}/heading/public-api.d.ts +1 -1
  196. package/{ui → src/lib/ui}/image-upload-field/image-upload-field.component.d.ts +50 -48
  197. package/src/lib/ui/image-upload-field/index.d.ts +1 -0
  198. package/{ui → src/lib/ui}/image-upload-field/public-api.d.ts +1 -1
  199. package/src/lib/ui/index.d.ts +1 -0
  200. package/src/lib/ui/info/index.d.ts +1 -0
  201. package/{ui → src/lib/ui}/info/info.component.d.ts +7 -7
  202. package/{ui → src/lib/ui}/info/public-api.d.ts +1 -1
  203. package/src/lib/ui/input-field/index.d.ts +1 -0
  204. package/src/lib/ui/input-field/input-field.component.d.ts +24 -0
  205. package/{ui → src/lib/ui}/input-field/public-api.d.ts +1 -1
  206. package/src/lib/ui/option/index.d.ts +1 -0
  207. package/{ui → src/lib/ui}/option/option.component.d.ts +7 -7
  208. package/{ui → src/lib/ui}/option/public-api.d.ts +1 -1
  209. package/src/lib/ui/public-api.d.ts +6 -0
  210. package/src/lib/ui/radio-field/index.d.ts +1 -0
  211. package/{ui → src/lib/ui}/radio-field/public-api.d.ts +1 -1
  212. package/src/lib/ui/radio-field/radio-field.component.d.ts +25 -0
  213. package/src/lib/ui/select-field/index.d.ts +1 -0
  214. package/{ui → src/lib/ui}/select-field/public-api.d.ts +1 -1
  215. package/{ui → src/lib/ui}/select-field/select-field.component.d.ts +34 -32
  216. package/src/lib/ui/selected-file/index.d.ts +1 -0
  217. package/{ui → src/lib/ui}/selected-file/public-api.d.ts +1 -1
  218. package/{ui → src/lib/ui}/selected-file/selected-file.component.d.ts +10 -10
  219. package/src/lib/ui/slider-field/index.d.ts +1 -0
  220. package/{ui → src/lib/ui}/slider-field/public-api.d.ts +1 -1
  221. package/src/lib/ui/slider-field/slider-field.component.d.ts +24 -0
  222. package/src/lib/ui/textarea-field/index.d.ts +1 -0
  223. package/{ui → src/lib/ui}/textarea-field/public-api.d.ts +1 -1
  224. package/src/lib/ui/textarea-field/textarea-field.component.d.ts +23 -0
  225. package/src/lib/ui/unit-conversion-field/index.d.ts +1 -0
  226. package/{ui → src/lib/ui}/unit-conversion-field/public-api.d.ts +1 -1
  227. package/{ui → src/lib/ui}/unit-conversion-field/unit-conversion-field.component.d.ts +38 -36
  228. package/{utils → src/lib/utils}/abstracts/autocomplete-field.abstract.d.ts +28 -28
  229. package/{utils → src/lib/utils}/abstracts/crispr-control.mixin.d.ts +16 -16
  230. package/{utils → src/lib/utils}/abstracts/crispr-display-field.abstract.d.ts +22 -22
  231. package/{utils → src/lib/utils}/abstracts/crispr-field.abstract.d.ts +11 -11
  232. package/{utils → src/lib/utils}/abstracts/index.d.ts +4 -4
  233. package/{utils → src/lib/utils}/functions/buildFormGroupFromConfig.d.ts +9 -9
  234. package/{utils → src/lib/utils}/functions/callOptionsIfFunction.d.ts +3 -3
  235. package/{utils → src/lib/utils}/functions/createControlForType.d.ts +9 -9
  236. package/{utils → src/lib/utils}/functions/filterOptionsByLabel.d.ts +7 -7
  237. package/{utils → src/lib/utils}/functions/image-compression.helpers.d.ts +5 -5
  238. package/{utils → src/lib/utils}/functions/index.d.ts +7 -7
  239. package/{utils → src/lib/utils}/functions/isControlConfig.d.ts +5 -5
  240. package/{utils → src/lib/utils}/functions/observablifyOptions.d.ts +12 -12
  241. package/{ui → src/lib/utils}/index.d.ts +5 -5
  242. package/{utils → src/lib/utils}/models/autocomplete-chiplist-field.config.d.ts +20 -20
  243. package/{utils → src/lib/utils}/models/autocomplete-field.config.d.ts +14 -14
  244. package/{utils → src/lib/utils}/models/button.config.d.ts +17 -17
  245. package/{utils → src/lib/utils}/models/checkbox-field.config.d.ts +6 -6
  246. package/{utils → src/lib/utils}/models/crispr-field.config.d.ts +97 -94
  247. package/{utils → src/lib/utils}/models/datepicker-field.config.d.ts +20 -20
  248. package/{utils → src/lib/utils}/models/divider.config.d.ts +5 -5
  249. package/{utils → src/lib/utils}/models/file-upload-field.config.d.ts +33 -33
  250. package/{utils → src/lib/utils}/models/form-group-list.config.d.ts +18 -18
  251. package/{utils → src/lib/utils}/models/heading.config.d.ts +6 -6
  252. package/{utils → src/lib/utils}/models/image-upload-field.config.d.ts +54 -54
  253. package/{utils → src/lib/utils}/models/index.d.ts +17 -17
  254. package/{utils → src/lib/utils}/models/input-field.config.d.ts +16 -16
  255. package/{utils → src/lib/utils}/models/radio-field.config.d.ts +6 -6
  256. package/{utils → src/lib/utils}/models/select-field.config.d.ts +21 -21
  257. package/{utils → src/lib/utils}/models/slider-field.config.d.ts +11 -13
  258. package/{utils → src/lib/utils}/models/textarea-field.config.d.ts +5 -5
  259. package/{utils → src/lib/utils}/models/unit-conversion-field.config.d.ts +30 -30
  260. package/{utils → src/lib/utils}/operators/form.operators.d.ts +1 -1
  261. package/{utils → src/lib/utils}/operators/index.d.ts +1 -1
  262. package/{utils → src/lib/utils}/public-api.d.ts +4 -4
  263. package/tft-crispr-forms-15.0.0.tgz +0 -0
  264. package/esm2020/public-api.mjs +0 -5
  265. package/esm2020/src/lib/crispr-forms.module.mjs +0 -60
  266. package/esm2020/src/lib/display-field.directive.mjs +0 -53
  267. package/esm2020/src/lib/field-component-map.const.mjs +0 -27
  268. package/esm2020/src/lib/field.directive.mjs +0 -69
  269. package/esm2020/src/lib/form/form.component.mjs +0 -63
  270. package/esm2020/src/lib/form-group-list/form-group-list.component.mjs +0 -99
  271. package/esm2020/src/lib/pipes/initial-control-value.pipe.mjs +0 -21
  272. package/esm2020/src/lib/sub-group/sub-group.component.mjs +0 -21
  273. package/esm2020/src/lib/sub-group/sub-group.module.mjs +0 -42
  274. package/esm2020/ui/autocomplete-chiplist-field/autocomplete-chiplist-field.component.mjs +0 -130
  275. package/esm2020/ui/autocomplete-chiplist-field/public-api.mjs +0 -2
  276. package/esm2020/ui/autocomplete-chiplist-field/tft-crispr-forms-ui-autocomplete-chiplist-field.mjs +0 -5
  277. package/esm2020/ui/autocomplete-field/autocomplete-field.component.mjs +0 -93
  278. package/esm2020/ui/autocomplete-field/public-api.mjs +0 -2
  279. package/esm2020/ui/autocomplete-field/tft-crispr-forms-ui-autocomplete-field.mjs +0 -5
  280. package/esm2020/ui/button/button.component.mjs +0 -49
  281. package/esm2020/ui/button/public-api.mjs +0 -2
  282. package/esm2020/ui/button/tft-crispr-forms-ui-button.mjs +0 -5
  283. package/esm2020/ui/checkbox-field/checkbox-field.component.mjs +0 -42
  284. package/esm2020/ui/checkbox-field/public-api.mjs +0 -2
  285. package/esm2020/ui/checkbox-field/tft-crispr-forms-ui-checkbox-field.mjs +0 -5
  286. package/esm2020/ui/datepicker-field/datepicker-field.component.mjs +0 -63
  287. package/esm2020/ui/datepicker-field/public-api.mjs +0 -2
  288. package/esm2020/ui/datepicker-field/tft-crispr-forms-ui-datepicker-field.mjs +0 -5
  289. package/esm2020/ui/divider/divider.component.mjs +0 -28
  290. package/esm2020/ui/divider/public-api.mjs +0 -2
  291. package/esm2020/ui/divider/tft-crispr-forms-ui-divider.mjs +0 -5
  292. package/esm2020/ui/field-container/field-container.component.mjs +0 -58
  293. package/esm2020/ui/field-container/public-api.mjs +0 -2
  294. package/esm2020/ui/field-container/tft-crispr-forms-ui-field-container.mjs +0 -5
  295. package/esm2020/ui/file-dropzone/file-dropzone.directive.mjs +0 -40
  296. package/esm2020/ui/file-dropzone/public-api.mjs +0 -2
  297. package/esm2020/ui/file-dropzone/tft-crispr-forms-ui-file-dropzone.mjs +0 -5
  298. package/esm2020/ui/file-upload-field/file-upload-field.component.mjs +0 -108
  299. package/esm2020/ui/file-upload-field/public-api.mjs +0 -2
  300. package/esm2020/ui/file-upload-field/tft-crispr-forms-ui-file-upload-field.mjs +0 -5
  301. package/esm2020/ui/heading/heading.component.mjs +0 -31
  302. package/esm2020/ui/heading/public-api.mjs +0 -2
  303. package/esm2020/ui/heading/tft-crispr-forms-ui-heading.mjs +0 -5
  304. package/esm2020/ui/image-upload-field/image-upload-field.component.mjs +0 -179
  305. package/esm2020/ui/image-upload-field/public-api.mjs +0 -2
  306. package/esm2020/ui/image-upload-field/tft-crispr-forms-ui-image-upload-field.mjs +0 -5
  307. package/esm2020/ui/info/info.component.mjs +0 -23
  308. package/esm2020/ui/info/public-api.mjs +0 -2
  309. package/esm2020/ui/info/tft-crispr-forms-ui-info.mjs +0 -5
  310. package/esm2020/ui/input-field/input-field.component.mjs +0 -41
  311. package/esm2020/ui/input-field/public-api.mjs +0 -2
  312. package/esm2020/ui/input-field/tft-crispr-forms-ui-input-field.mjs +0 -5
  313. package/esm2020/ui/option/option.component.mjs +0 -19
  314. package/esm2020/ui/option/public-api.mjs +0 -2
  315. package/esm2020/ui/option/tft-crispr-forms-ui-option.mjs +0 -5
  316. package/esm2020/ui/public-api.mjs +0 -7
  317. package/esm2020/ui/radio-field/public-api.mjs +0 -2
  318. package/esm2020/ui/radio-field/radio-field.component.mjs +0 -39
  319. package/esm2020/ui/radio-field/tft-crispr-forms-ui-radio-field.mjs +0 -5
  320. package/esm2020/ui/select-field/public-api.mjs +0 -2
  321. package/esm2020/ui/select-field/select-field.component.mjs +0 -73
  322. package/esm2020/ui/select-field/tft-crispr-forms-ui-select-field.mjs +0 -5
  323. package/esm2020/ui/selected-file/public-api.mjs +0 -2
  324. package/esm2020/ui/selected-file/selected-file.component.mjs +0 -26
  325. package/esm2020/ui/selected-file/tft-crispr-forms-ui-selected-file.mjs +0 -5
  326. package/esm2020/ui/slider-field/public-api.mjs +0 -2
  327. package/esm2020/ui/slider-field/slider-field.component.mjs +0 -44
  328. package/esm2020/ui/slider-field/tft-crispr-forms-ui-slider-field.mjs +0 -5
  329. package/esm2020/ui/textarea-field/public-api.mjs +0 -2
  330. package/esm2020/ui/textarea-field/textarea-field.component.mjs +0 -42
  331. package/esm2020/ui/textarea-field/tft-crispr-forms-ui-textarea-field.mjs +0 -5
  332. package/esm2020/ui/tft-crispr-forms-ui.mjs +0 -5
  333. package/esm2020/ui/unit-conversion-field/public-api.mjs +0 -2
  334. package/esm2020/ui/unit-conversion-field/tft-crispr-forms-ui-unit-conversion-field.mjs +0 -5
  335. package/esm2020/ui/unit-conversion-field/unit-conversion-field.component.mjs +0 -84
  336. package/esm2020/utils/abstracts/autocomplete-field.abstract.mjs +0 -30
  337. package/esm2020/utils/abstracts/crispr-control.mixin.mjs +0 -27
  338. package/esm2020/utils/abstracts/crispr-display-field.abstract.mjs +0 -14
  339. package/esm2020/utils/abstracts/crispr-field.abstract.mjs +0 -20
  340. package/esm2020/utils/abstracts/index.mjs +0 -5
  341. package/esm2020/utils/functions/buildFormGroupFromConfig.mjs +0 -28
  342. package/esm2020/utils/functions/callOptionsIfFunction.mjs +0 -4
  343. package/esm2020/utils/functions/createControlForType.mjs +0 -19
  344. package/esm2020/utils/functions/filterOptionsByLabel.mjs +0 -11
  345. package/esm2020/utils/functions/image-compression.helpers.mjs +0 -50
  346. package/esm2020/utils/functions/index.mjs +0 -8
  347. package/esm2020/utils/functions/isControlConfig.mjs +0 -7
  348. package/esm2020/utils/functions/observablifyOptions.mjs +0 -29
  349. package/esm2020/utils/models/autocomplete-chiplist-field.config.mjs +0 -2
  350. package/esm2020/utils/models/autocomplete-field.config.mjs +0 -2
  351. package/esm2020/utils/models/button.config.mjs +0 -2
  352. package/esm2020/utils/models/checkbox-field.config.mjs +0 -2
  353. package/esm2020/utils/models/crispr-field.config.mjs +0 -23
  354. package/esm2020/utils/models/datepicker-field.config.mjs +0 -2
  355. package/esm2020/utils/models/divider.config.mjs +0 -2
  356. package/esm2020/utils/models/file-upload-field.config.mjs +0 -2
  357. package/esm2020/utils/models/form-group-list.config.mjs +0 -2
  358. package/esm2020/utils/models/heading.config.mjs +0 -3
  359. package/esm2020/utils/models/image-upload-field.config.mjs +0 -2
  360. package/esm2020/utils/models/index.mjs +0 -18
  361. package/esm2020/utils/models/input-field.config.mjs +0 -2
  362. package/esm2020/utils/models/radio-field.config.mjs +0 -2
  363. package/esm2020/utils/models/select-field.config.mjs +0 -2
  364. package/esm2020/utils/models/slider-field.config.mjs +0 -2
  365. package/esm2020/utils/models/textarea-field.config.mjs +0 -2
  366. package/esm2020/utils/models/unit-conversion-field.config.mjs +0 -2
  367. package/esm2020/utils/operators/form.operators.mjs +0 -24
  368. package/esm2020/utils/operators/index.mjs +0 -2
  369. package/esm2020/utils/public-api.mjs +0 -5
  370. package/esm2020/utils/tft-crispr-forms-utils.mjs +0 -5
  371. package/fesm2015/tft-crispr-forms-ui-autocomplete-chiplist-field.mjs +0 -138
  372. package/fesm2015/tft-crispr-forms-ui-autocomplete-chiplist-field.mjs.map +0 -1
  373. package/fesm2015/tft-crispr-forms-ui-autocomplete-field.mjs +0 -101
  374. package/fesm2015/tft-crispr-forms-ui-autocomplete-field.mjs.map +0 -1
  375. package/fesm2015/tft-crispr-forms-ui-button.mjs +0 -55
  376. package/fesm2015/tft-crispr-forms-ui-button.mjs.map +0 -1
  377. package/fesm2015/tft-crispr-forms-ui-checkbox-field.mjs +0 -49
  378. package/fesm2015/tft-crispr-forms-ui-checkbox-field.mjs.map +0 -1
  379. package/fesm2015/tft-crispr-forms-ui-datepicker-field.mjs +0 -71
  380. package/fesm2015/tft-crispr-forms-ui-datepicker-field.mjs.map +0 -1
  381. package/fesm2015/tft-crispr-forms-ui-divider.mjs +0 -34
  382. package/fesm2015/tft-crispr-forms-ui-divider.mjs.map +0 -1
  383. package/fesm2015/tft-crispr-forms-ui-field-container.mjs +0 -64
  384. package/fesm2015/tft-crispr-forms-ui-field-container.mjs.map +0 -1
  385. package/fesm2015/tft-crispr-forms-ui-file-dropzone.mjs +0 -47
  386. package/fesm2015/tft-crispr-forms-ui-file-dropzone.mjs.map +0 -1
  387. package/fesm2015/tft-crispr-forms-ui-file-upload-field.mjs +0 -117
  388. package/fesm2015/tft-crispr-forms-ui-file-upload-field.mjs.map +0 -1
  389. package/fesm2015/tft-crispr-forms-ui-heading.mjs +0 -37
  390. package/fesm2015/tft-crispr-forms-ui-heading.mjs.map +0 -1
  391. package/fesm2015/tft-crispr-forms-ui-image-upload-field.mjs +0 -182
  392. package/fesm2015/tft-crispr-forms-ui-image-upload-field.mjs.map +0 -1
  393. package/fesm2015/tft-crispr-forms-ui-info.mjs +0 -30
  394. package/fesm2015/tft-crispr-forms-ui-info.mjs.map +0 -1
  395. package/fesm2015/tft-crispr-forms-ui-input-field.mjs +0 -48
  396. package/fesm2015/tft-crispr-forms-ui-input-field.mjs.map +0 -1
  397. package/fesm2015/tft-crispr-forms-ui-option.mjs +0 -26
  398. package/fesm2015/tft-crispr-forms-ui-option.mjs.map +0 -1
  399. package/fesm2015/tft-crispr-forms-ui-radio-field.mjs +0 -46
  400. package/fesm2015/tft-crispr-forms-ui-radio-field.mjs.map +0 -1
  401. package/fesm2015/tft-crispr-forms-ui-select-field.mjs +0 -81
  402. package/fesm2015/tft-crispr-forms-ui-select-field.mjs.map +0 -1
  403. package/fesm2015/tft-crispr-forms-ui-selected-file.mjs +0 -33
  404. package/fesm2015/tft-crispr-forms-ui-selected-file.mjs.map +0 -1
  405. package/fesm2015/tft-crispr-forms-ui-slider-field.mjs +0 -51
  406. package/fesm2015/tft-crispr-forms-ui-slider-field.mjs.map +0 -1
  407. package/fesm2015/tft-crispr-forms-ui-textarea-field.mjs +0 -49
  408. package/fesm2015/tft-crispr-forms-ui-textarea-field.mjs.map +0 -1
  409. package/fesm2015/tft-crispr-forms-ui-unit-conversion-field.mjs +0 -93
  410. package/fesm2015/tft-crispr-forms-ui-unit-conversion-field.mjs.map +0 -1
  411. package/fesm2015/tft-crispr-forms-ui.mjs +0 -12
  412. package/fesm2015/tft-crispr-forms-ui.mjs.map +0 -1
  413. package/fesm2015/tft-crispr-forms-utils.mjs +0 -280
  414. package/fesm2015/tft-crispr-forms-utils.mjs.map +0 -1
  415. package/fesm2015/tft-crispr-forms.mjs +0 -438
  416. package/fesm2015/tft-crispr-forms.mjs.map +0 -1
  417. package/fesm2020/tft-crispr-forms-ui-autocomplete-chiplist-field.mjs +0 -137
  418. package/fesm2020/tft-crispr-forms-ui-autocomplete-chiplist-field.mjs.map +0 -1
  419. package/fesm2020/tft-crispr-forms-ui-autocomplete-field.mjs +0 -100
  420. package/fesm2020/tft-crispr-forms-ui-autocomplete-field.mjs.map +0 -1
  421. package/fesm2020/tft-crispr-forms-ui-button.mjs +0 -55
  422. package/fesm2020/tft-crispr-forms-ui-button.mjs.map +0 -1
  423. package/fesm2020/tft-crispr-forms-ui-checkbox-field.mjs +0 -49
  424. package/fesm2020/tft-crispr-forms-ui-checkbox-field.mjs.map +0 -1
  425. package/fesm2020/tft-crispr-forms-ui-datepicker-field.mjs +0 -70
  426. package/fesm2020/tft-crispr-forms-ui-datepicker-field.mjs.map +0 -1
  427. package/fesm2020/tft-crispr-forms-ui-divider.mjs +0 -34
  428. package/fesm2020/tft-crispr-forms-ui-divider.mjs.map +0 -1
  429. package/fesm2020/tft-crispr-forms-ui-field-container.mjs +0 -65
  430. package/fesm2020/tft-crispr-forms-ui-field-container.mjs.map +0 -1
  431. package/fesm2020/tft-crispr-forms-ui-file-dropzone.mjs +0 -47
  432. package/fesm2020/tft-crispr-forms-ui-file-dropzone.mjs.map +0 -1
  433. package/fesm2020/tft-crispr-forms-ui-file-upload-field.mjs +0 -115
  434. package/fesm2020/tft-crispr-forms-ui-file-upload-field.mjs.map +0 -1
  435. package/fesm2020/tft-crispr-forms-ui-heading.mjs +0 -37
  436. package/fesm2020/tft-crispr-forms-ui-heading.mjs.map +0 -1
  437. package/fesm2020/tft-crispr-forms-ui-image-upload-field.mjs.map +0 -1
  438. package/fesm2020/tft-crispr-forms-ui-info.mjs +0 -30
  439. package/fesm2020/tft-crispr-forms-ui-info.mjs.map +0 -1
  440. package/fesm2020/tft-crispr-forms-ui-input-field.mjs +0 -48
  441. package/fesm2020/tft-crispr-forms-ui-input-field.mjs.map +0 -1
  442. package/fesm2020/tft-crispr-forms-ui-option.mjs +0 -26
  443. package/fesm2020/tft-crispr-forms-ui-option.mjs.map +0 -1
  444. package/fesm2020/tft-crispr-forms-ui-radio-field.mjs +0 -46
  445. package/fesm2020/tft-crispr-forms-ui-radio-field.mjs.map +0 -1
  446. package/fesm2020/tft-crispr-forms-ui-select-field.mjs +0 -80
  447. package/fesm2020/tft-crispr-forms-ui-select-field.mjs.map +0 -1
  448. package/fesm2020/tft-crispr-forms-ui-selected-file.mjs +0 -33
  449. package/fesm2020/tft-crispr-forms-ui-selected-file.mjs.map +0 -1
  450. package/fesm2020/tft-crispr-forms-ui-slider-field.mjs +0 -51
  451. package/fesm2020/tft-crispr-forms-ui-slider-field.mjs.map +0 -1
  452. package/fesm2020/tft-crispr-forms-ui-textarea-field.mjs +0 -49
  453. package/fesm2020/tft-crispr-forms-ui-textarea-field.mjs.map +0 -1
  454. package/fesm2020/tft-crispr-forms-ui-unit-conversion-field.mjs +0 -91
  455. package/fesm2020/tft-crispr-forms-ui-unit-conversion-field.mjs.map +0 -1
  456. package/fesm2020/tft-crispr-forms-ui.mjs +0 -12
  457. package/fesm2020/tft-crispr-forms-ui.mjs.map +0 -1
  458. package/fesm2020/tft-crispr-forms-utils.mjs.map +0 -1
  459. package/fesm2020/tft-crispr-forms.mjs +0 -434
  460. package/fesm2020/tft-crispr-forms.mjs.map +0 -1
  461. package/tft-crispr-forms-14.0.2.tgz +0 -0
  462. package/ui/README.md +0 -3
  463. package/ui/autocomplete-chiplist-field/index.d.ts +0 -5
  464. package/ui/autocomplete-field/index.d.ts +0 -5
  465. package/ui/button/index.d.ts +0 -5
  466. package/ui/checkbox-field/checkbox-field.component.d.ts +0 -21
  467. package/ui/checkbox-field/index.d.ts +0 -5
  468. package/ui/datepicker-field/index.d.ts +0 -5
  469. package/ui/divider/index.d.ts +0 -5
  470. package/ui/field-container/index.d.ts +0 -5
  471. package/ui/file-dropzone/index.d.ts +0 -5
  472. package/ui/file-upload-field/index.d.ts +0 -5
  473. package/ui/heading/index.d.ts +0 -5
  474. package/ui/image-upload-field/index.d.ts +0 -5
  475. package/ui/info/index.d.ts +0 -5
  476. package/ui/input-field/index.d.ts +0 -5
  477. package/ui/input-field/input-field.component.d.ts +0 -22
  478. package/ui/option/index.d.ts +0 -5
  479. package/ui/public-api.d.ts +0 -5
  480. package/ui/radio-field/index.d.ts +0 -5
  481. package/ui/radio-field/radio-field.component.d.ts +0 -23
  482. package/ui/select-field/index.d.ts +0 -5
  483. package/ui/selected-file/index.d.ts +0 -5
  484. package/ui/slider-field/index.d.ts +0 -5
  485. package/ui/slider-field/slider-field.component.d.ts +0 -25
  486. package/ui/textarea-field/index.d.ts +0 -5
  487. package/ui/textarea-field/textarea-field.component.d.ts +0 -21
  488. package/ui/unit-conversion-field/index.d.ts +0 -5
  489. package/utils/index.d.ts +0 -5
  490. /package/{utils → src/lib/utils}/README.md +0 -0
@@ -0,0 +1,4 @@
1
+ export * from './src/index';
2
+ export * from './src/lib/ui';
3
+ export * from './src/lib/utils';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMvY3Jpc3ByLWZvcm1zL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxpQkFBaUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vc3JjL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2xpYi91aSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9saWIvdXRpbHMnO1xuIl19
@@ -1,2 +1,2 @@
1
- export * from './lib/public_api';
1
+ export * from './lib/public_api';
2
2
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NyaXNwci1mb3Jtcy9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxrQkFBa0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGliL3B1YmxpY19hcGknO1xuIl19
@@ -0,0 +1,55 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { ReactiveFormsModule } from '@angular/forms';
4
+ // custom modules
5
+ import { FormValidationHandlerModule } from '@tft/form-validation-handler';
6
+ // components
7
+ import { CrisprFormComponent } from './form/form.component';
8
+ import { FormGroupListComponent } from './form-group-list';
9
+ // directives
10
+ import { CrisprFieldDirective } from './field.directive';
11
+ import { SubGroupModule } from './sub-group';
12
+ import { CrisprPipesModule } from './pipes/crispr-pipes.module';
13
+ import { FieldContainerComponent } from './ui';
14
+ import { CrisprDisplayFieldDirective } from './display-field.directive';
15
+ import * as i0 from "@angular/core";
16
+ export class CrisprFormsModule {
17
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: CrisprFormsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
18
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.9", ngImport: i0, type: CrisprFormsModule, imports: [CommonModule,
19
+ ReactiveFormsModule,
20
+ FormValidationHandlerModule,
21
+ FormGroupListComponent,
22
+ FieldContainerComponent,
23
+ CrisprFieldDirective,
24
+ CrisprDisplayFieldDirective,
25
+ SubGroupModule,
26
+ CrisprPipesModule,
27
+ CrisprFormComponent], exports: [CrisprFormComponent, FieldContainerComponent] }); }
28
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: CrisprFormsModule, imports: [CommonModule,
29
+ ReactiveFormsModule,
30
+ FormValidationHandlerModule,
31
+ FormGroupListComponent,
32
+ FieldContainerComponent,
33
+ SubGroupModule,
34
+ CrisprPipesModule,
35
+ CrisprFormComponent] }); }
36
+ }
37
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: CrisprFormsModule, decorators: [{
38
+ type: NgModule,
39
+ args: [{
40
+ imports: [
41
+ CommonModule,
42
+ ReactiveFormsModule,
43
+ FormValidationHandlerModule,
44
+ FormGroupListComponent,
45
+ FieldContainerComponent,
46
+ CrisprFieldDirective,
47
+ CrisprDisplayFieldDirective,
48
+ SubGroupModule,
49
+ CrisprPipesModule,
50
+ CrisprFormComponent,
51
+ ],
52
+ exports: [CrisprFormComponent, FieldContainerComponent],
53
+ }]
54
+ }] });
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3Jpc3ByLWZvcm1zLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY3Jpc3ByLWZvcm1zL3NyYy9saWIvY3Jpc3ByLWZvcm1zLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxpQkFBaUI7QUFDakIsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFM0UsYUFBYTtBQUNiLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzVELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzNELGFBQWE7QUFDYixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzdDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7QUFpQnhFLE1BQU0sT0FBTyxpQkFBaUI7OEdBQWpCLGlCQUFpQjsrR0FBakIsaUJBQWlCLFlBYjFCLFlBQVk7WUFDWixtQkFBbUI7WUFDbkIsMkJBQTJCO1lBQzNCLHNCQUFzQjtZQUN0Qix1QkFBdUI7WUFDdkIsb0JBQW9CO1lBQ3BCLDJCQUEyQjtZQUMzQixjQUFjO1lBQ2QsaUJBQWlCO1lBQ2pCLG1CQUFtQixhQUVYLG1CQUFtQixFQUFFLHVCQUF1QjsrR0FFM0MsaUJBQWlCLFlBYjFCLFlBQVk7WUFDWixtQkFBbUI7WUFDbkIsMkJBQTJCO1lBQzNCLHNCQUFzQjtZQUN0Qix1QkFBdUI7WUFHdkIsY0FBYztZQUNkLGlCQUFpQjtZQUNqQixtQkFBbUI7OzJGQUlWLGlCQUFpQjtrQkFmN0IsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixtQkFBbUI7d0JBQ25CLDJCQUEyQjt3QkFDM0Isc0JBQXNCO3dCQUN0Qix1QkFBdUI7d0JBQ3ZCLG9CQUFvQjt3QkFDcEIsMkJBQTJCO3dCQUMzQixjQUFjO3dCQUNkLGlCQUFpQjt3QkFDakIsbUJBQW1CO3FCQUNwQjtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxtQkFBbUIsRUFBRSx1QkFBdUIsQ0FBQztpQkFDeEQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG4vLyBjdXN0b20gbW9kdWxlc1xuaW1wb3J0IHsgRm9ybVZhbGlkYXRpb25IYW5kbGVyTW9kdWxlIH0gZnJvbSAnQHRmdC9mb3JtLXZhbGlkYXRpb24taGFuZGxlcic7XG5cbi8vIGNvbXBvbmVudHNcbmltcG9ydCB7IENyaXNwckZvcm1Db21wb25lbnQgfSBmcm9tICcuL2Zvcm0vZm9ybS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRm9ybUdyb3VwTGlzdENvbXBvbmVudCB9IGZyb20gJy4vZm9ybS1ncm91cC1saXN0Jztcbi8vIGRpcmVjdGl2ZXNcbmltcG9ydCB7IENyaXNwckZpZWxkRGlyZWN0aXZlIH0gZnJvbSAnLi9maWVsZC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgU3ViR3JvdXBNb2R1bGUgfSBmcm9tICcuL3N1Yi1ncm91cCc7XG5pbXBvcnQgeyBDcmlzcHJQaXBlc01vZHVsZSB9IGZyb20gJy4vcGlwZXMvY3Jpc3ByLXBpcGVzLm1vZHVsZSc7XG5pbXBvcnQgeyBGaWVsZENvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gJy4vdWknO1xuaW1wb3J0IHsgQ3Jpc3ByRGlzcGxheUZpZWxkRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXNwbGF5LWZpZWxkLmRpcmVjdGl2ZSc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBGb3JtVmFsaWRhdGlvbkhhbmRsZXJNb2R1bGUsXG4gICAgRm9ybUdyb3VwTGlzdENvbXBvbmVudCxcbiAgICBGaWVsZENvbnRhaW5lckNvbXBvbmVudCxcbiAgICBDcmlzcHJGaWVsZERpcmVjdGl2ZSxcbiAgICBDcmlzcHJEaXNwbGF5RmllbGREaXJlY3RpdmUsXG4gICAgU3ViR3JvdXBNb2R1bGUsXG4gICAgQ3Jpc3ByUGlwZXNNb2R1bGUsXG4gICAgQ3Jpc3ByRm9ybUNvbXBvbmVudCxcbiAgXSxcbiAgZXhwb3J0czogW0NyaXNwckZvcm1Db21wb25lbnQsIEZpZWxkQ29udGFpbmVyQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgQ3Jpc3ByRm9ybXNNb2R1bGUge31cbiJdfQ==
@@ -0,0 +1,52 @@
1
+ import { Directive, Input, ViewContainerRef, ChangeDetectorRef, Type, } from '@angular/core';
2
+ import { FormGroup } from '@angular/forms';
3
+ import * as i0 from "@angular/core";
4
+ export class CrisprDisplayFieldDirective {
5
+ set value(value) {
6
+ this._value = value;
7
+ // This is needed to keep the group list from resetting control values to the initial input value
8
+ this.updateComponentValue(value);
9
+ }
10
+ get value() {
11
+ return this._value;
12
+ }
13
+ constructor(container, cdr) {
14
+ this.container = container;
15
+ this.cdr = cdr;
16
+ }
17
+ async ngOnInit() {
18
+ if (this.component) {
19
+ /**
20
+ * create component and set values from config on its instance
21
+ */
22
+ const componentRef = this.container.createComponent(this.component);
23
+ this.componentInstance = componentRef.instance;
24
+ this.componentInstance.index = this.index;
25
+ this.updateComponentValue(this.value);
26
+ }
27
+ }
28
+ updateComponentValue(value) {
29
+ if (!this.componentInstance)
30
+ return;
31
+ this.componentInstance.value = value;
32
+ this.cdr.detectChanges();
33
+ }
34
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: CrisprDisplayFieldDirective, deps: [{ token: i0.ViewContainerRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive }); }
35
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.9", type: CrisprDisplayFieldDirective, isStandalone: true, selector: "[crisprDisplayField]", inputs: { group: "group", value: "value", component: "component", index: "index" }, ngImport: i0 }); }
36
+ }
37
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: CrisprDisplayFieldDirective, decorators: [{
38
+ type: Directive,
39
+ args: [{
40
+ selector: '[crisprDisplayField]',
41
+ standalone: true,
42
+ }]
43
+ }], ctorParameters: () => [{ type: i0.ViewContainerRef }, { type: i0.ChangeDetectorRef }], propDecorators: { group: [{
44
+ type: Input
45
+ }], value: [{
46
+ type: Input
47
+ }], component: [{
48
+ type: Input
49
+ }], index: [{
50
+ type: Input
51
+ }] } });
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzcGxheS1maWVsZC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NyaXNwci1mb3Jtcy9zcmMvbGliL2Rpc3BsYXktZmllbGQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUNMLGdCQUFnQixFQUVoQixpQkFBaUIsRUFDakIsSUFBSSxHQUNMLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFVM0MsTUFBTSxPQUFPLDJCQUEyQjtJQU10QyxJQUFhLEtBQUssQ0FBQyxLQUEyQjtRQUM1QyxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUNwQixpR0FBaUc7UUFDakcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFDRCxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQztJQVFELFlBQ1UsU0FBMkIsRUFDM0IsR0FBc0I7UUFEdEIsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDM0IsUUFBRyxHQUFILEdBQUcsQ0FBbUI7SUFDN0IsQ0FBQztJQUVKLEtBQUssQ0FBQyxRQUFRO1FBQ1osSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2xCOztlQUVHO1lBQ0gsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBRXBFLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxZQUFZLENBQUMsUUFBUSxDQUFDO1lBQy9DLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztZQUMxQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3ZDO0lBQ0gsQ0FBQztJQUVELG9CQUFvQixDQUFDLEtBQTJCO1FBQzlDLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCO1lBQUUsT0FBTztRQUNwQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNyQyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzNCLENBQUM7OEdBM0NVLDJCQUEyQjtrR0FBM0IsMkJBQTJCOzsyRkFBM0IsMkJBQTJCO2tCQUp2QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxzQkFBc0I7b0JBQ2hDLFVBQVUsRUFBRSxJQUFJO2lCQUNqQjtxSEFFVSxLQUFLO3NCQUFiLEtBQUs7Z0JBS08sS0FBSztzQkFBakIsS0FBSztnQkFTVyxTQUFTO3NCQUF6QixLQUFLO2dCQUVHLEtBQUs7c0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIERpcmVjdGl2ZSxcbiAgSW5wdXQsXG4gIFZpZXdDb250YWluZXJSZWYsXG4gIE9uSW5pdCxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIFR5cGUsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtcbiAgQ29udHJvbFZhbHVlLFxuICBDcmlzcHJEaXNwbGF5RmllbGRDb21wb25lbnQsXG59IGZyb20gJy4vdXRpbHMnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbY3Jpc3ByRGlzcGxheUZpZWxkXScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIENyaXNwckRpc3BsYXlGaWVsZERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIGdyb3VwOiBGb3JtR3JvdXA7XG4gIC8qKlxuICAgKiB2YWx1ZSBzZXR0ZXIgdXBkYXRlcyB0aGUgY29udHJvbCdzIHZhbHVlIGFzIHdlbGxcbiAgICovXG4gIF92YWx1ZTogQ29udHJvbFZhbHVlIHwgYW55W107XG4gIEBJbnB1dCgpIHNldCB2YWx1ZSh2YWx1ZTogQ29udHJvbFZhbHVlIHwgYW55W10pIHtcbiAgICB0aGlzLl92YWx1ZSA9IHZhbHVlO1xuICAgIC8vIFRoaXMgaXMgbmVlZGVkIHRvIGtlZXAgdGhlIGdyb3VwIGxpc3QgZnJvbSByZXNldHRpbmcgY29udHJvbCB2YWx1ZXMgdG8gdGhlIGluaXRpYWwgaW5wdXQgdmFsdWVcbiAgICB0aGlzLnVwZGF0ZUNvbXBvbmVudFZhbHVlKHZhbHVlKTtcbiAgfVxuICBnZXQgdmFsdWUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xuICB9XG5cbiAgQElucHV0KCkgcHJpdmF0ZSBjb21wb25lbnQ6IFR5cGU8Q3Jpc3ByRGlzcGxheUZpZWxkQ29tcG9uZW50PjtcblxuICBASW5wdXQoKSBpbmRleD86IG51bWJlcjtcblxuICBwcml2YXRlIGNvbXBvbmVudEluc3RhbmNlOiBDcmlzcHJEaXNwbGF5RmllbGRDb21wb25lbnQ7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBjb250YWluZXI6IFZpZXdDb250YWluZXJSZWYsXG4gICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmXG4gICkge31cblxuICBhc3luYyBuZ09uSW5pdCgpIHtcbiAgICBpZiAodGhpcy5jb21wb25lbnQpIHtcbiAgICAgIC8qKlxuICAgICAgICogY3JlYXRlIGNvbXBvbmVudCBhbmQgc2V0IHZhbHVlcyBmcm9tIGNvbmZpZyBvbiBpdHMgaW5zdGFuY2VcbiAgICAgICAqL1xuICAgICAgY29uc3QgY29tcG9uZW50UmVmID0gdGhpcy5jb250YWluZXIuY3JlYXRlQ29tcG9uZW50KHRoaXMuY29tcG9uZW50KTtcblxuICAgICAgdGhpcy5jb21wb25lbnRJbnN0YW5jZSA9IGNvbXBvbmVudFJlZi5pbnN0YW5jZTtcbiAgICAgIHRoaXMuY29tcG9uZW50SW5zdGFuY2UuaW5kZXggPSB0aGlzLmluZGV4O1xuICAgICAgdGhpcy51cGRhdGVDb21wb25lbnRWYWx1ZSh0aGlzLnZhbHVlKTtcbiAgICB9XG4gIH1cblxuICB1cGRhdGVDb21wb25lbnRWYWx1ZSh2YWx1ZTogQ29udHJvbFZhbHVlIHwgYW55W10pIHtcbiAgICBpZiAoIXRoaXMuY29tcG9uZW50SW5zdGFuY2UpIHJldHVybjtcbiAgICB0aGlzLmNvbXBvbmVudEluc3RhbmNlLnZhbHVlID0gdmFsdWU7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,28 @@
1
+ import { isControlConfig, ControlType } from './utils';
2
+ export const FIELD_COMPONENTS = {
3
+ groupList: () => import('./form-group-list').then(({ FormGroupListComponent }) => FormGroupListComponent),
4
+ subGroup: () => import('./sub-group').then(({ SubGroupComponent }) => SubGroupComponent),
5
+ button: () => import('./ui/button').then(({ ButtonComponent }) => ButtonComponent),
6
+ input: () => import('./ui/input-field').then(({ InputFieldComponent }) => InputFieldComponent),
7
+ select: () => import('./ui/select-field').then(({ SelectFieldComponent }) => SelectFieldComponent),
8
+ radio: () => import('./ui/radio-field').then(({ RadioFieldComponent }) => RadioFieldComponent),
9
+ autocomplete: () => import('./ui/autocomplete-field').then(({ AutocompleteFieldComponent }) => AutocompleteFieldComponent),
10
+ autocompleteChiplist: () => import('./ui/autocomplete-chiplist-field').then(({ AutocompleteChiplistFieldComponent }) => AutocompleteChiplistFieldComponent),
11
+ textarea: () => import('./ui/textarea-field').then(({ TextareaFieldComponent }) => TextareaFieldComponent),
12
+ checkbox: () => import('./ui/checkbox-field').then(({ CheckboxFieldComponent }) => CheckboxFieldComponent),
13
+ slider: () => import('./ui/slider-field').then(({ SliderFieldComponent }) => SliderFieldComponent),
14
+ datepicker: () => import('./ui/datepicker-field').then(({ DatepickerFieldComponent }) => DatepickerFieldComponent),
15
+ fileUpload: () => import('./ui/file-upload-field').then(({ FileUploadFieldComponent }) => FileUploadFieldComponent),
16
+ imageUpload: () => import('./ui/image-upload-field').then(({ ImageUploadFieldComponent }) => ImageUploadFieldComponent),
17
+ heading: () => import('./ui').then(({ HeadingComponent }) => HeadingComponent),
18
+ divider: () => import('./ui/divider').then(({ DividerComponent }) => DividerComponent),
19
+ unitConversion: () => import('./ui/unit-conversion-field').then(({ UnitConversionFieldComponent }) => UnitConversionFieldComponent),
20
+ };
21
+ export function isControlComponent(component) {
22
+ return component && isControlConfig(component.config) && 'value' in component; // || component.config.controlType === ControlType.BUTTON;
23
+ }
24
+ export function isControlOrButtonComponent(component) {
25
+ return (isControlComponent(component) ||
26
+ component.config.controlType === ControlType.BUTTON);
27
+ }
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtY29tcG9uZW50LW1hcC5jb25zdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY3Jpc3ByLWZvcm1zL3NyYy9saWIvZmllbGQtY29tcG9uZW50LW1hcC5jb25zdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFtQkEsT0FBTyxFQUFFLGVBQWUsRUFBRSxXQUFXLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFFdkQsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUc7SUFDOUIsU0FBUyxFQUFFLEdBQUcsRUFBRSxDQUNkLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLElBQUksQ0FDOUIsQ0FBQyxFQUFFLHNCQUFzQixFQUFFLEVBQUUsRUFBRSxDQUFDLHNCQUFzQixDQUN2RDtJQUNILFFBQVEsRUFBRSxHQUFHLEVBQUUsQ0FDYixNQUFNLENBQUMsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxpQkFBaUIsRUFBRSxFQUFFLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQztJQUMxRSxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQ1gsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FDeEIsQ0FBQyxFQUFFLGVBQWUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxlQUFlLENBQ3pDO0lBQ0gsS0FBSyxFQUFFLEdBQUcsRUFBRSxDQUNWLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLElBQUksQ0FDN0IsQ0FBQyxFQUFFLG1CQUFtQixFQUFFLEVBQUUsRUFBRSxDQUFDLG1CQUFtQixDQUNqRDtJQUNILE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FDWCxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxJQUFJLENBQzlCLENBQUMsRUFBRSxvQkFBb0IsRUFBRSxFQUFFLEVBQUUsQ0FBQyxvQkFBb0IsQ0FDbkQ7SUFDSCxLQUFLLEVBQUUsR0FBRyxFQUFFLENBQ1YsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUMsSUFBSSxDQUM3QixDQUFDLEVBQUUsbUJBQW1CLEVBQUUsRUFBRSxFQUFFLENBQUMsbUJBQW1CLENBQ2pEO0lBQ0gsWUFBWSxFQUFFLEdBQUcsRUFBRSxDQUNqQixNQUFNLENBQUMseUJBQXlCLENBQUMsQ0FBQyxJQUFJLENBQ3BDLENBQUMsRUFBRSwwQkFBMEIsRUFBRSxFQUFFLEVBQUUsQ0FBQywwQkFBMEIsQ0FDL0Q7SUFDSCxvQkFBb0IsRUFBRSxHQUFHLEVBQUUsQ0FDekIsTUFBTSxDQUFDLGtDQUFrQyxDQUFDLENBQUMsSUFBSSxDQUM3QyxDQUFDLEVBQUUsa0NBQWtDLEVBQUUsRUFBRSxFQUFFLENBQ3pDLGtDQUFrQyxDQUNyQztJQUNILFFBQVEsRUFBRSxHQUFHLEVBQUUsQ0FDYixNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQyxJQUFJLENBQ2hDLENBQUMsRUFBRSxzQkFBc0IsRUFBRSxFQUFFLEVBQUUsQ0FBQyxzQkFBc0IsQ0FDdkQ7SUFDSCxRQUFRLEVBQUUsR0FBRyxFQUFFLENBQ2IsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUMsSUFBSSxDQUNoQyxDQUFDLEVBQUUsc0JBQXNCLEVBQUUsRUFBRSxFQUFFLENBQUMsc0JBQXNCLENBQ3ZEO0lBQ0gsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUNYLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLElBQUksQ0FDOUIsQ0FBQyxFQUFFLG9CQUFvQixFQUFFLEVBQUUsRUFBRSxDQUFDLG9CQUFvQixDQUNuRDtJQUNILFVBQVUsRUFBRSxHQUFHLEVBQUUsQ0FDZixNQUFNLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxJQUFJLENBQ2xDLENBQUMsRUFBRSx3QkFBd0IsRUFBRSxFQUFFLEVBQUUsQ0FBQyx3QkFBd0IsQ0FDM0Q7SUFDSCxVQUFVLEVBQUUsR0FBRyxFQUFFLENBQ2YsTUFBTSxDQUFDLHdCQUF3QixDQUFDLENBQUMsSUFBSSxDQUNuQyxDQUFDLEVBQUUsd0JBQXdCLEVBQUUsRUFBRSxFQUFFLENBQUMsd0JBQXdCLENBQzNEO0lBQ0gsV0FBVyxFQUFFLEdBQUcsRUFBRSxDQUNoQixNQUFNLENBQUMseUJBQXlCLENBQUMsQ0FBQyxJQUFJLENBQ3BDLENBQUMsRUFBRSx5QkFBeUIsRUFBRSxFQUFFLEVBQUUsQ0FBQyx5QkFBeUIsQ0FDN0Q7SUFDSCxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQ1osTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FDakIsQ0FBQyxFQUFFLGdCQUFnQixFQUFFLEVBQUUsRUFBRSxDQUFDLGdCQUFnQixDQUMzQztJQUNILE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FDWixNQUFNLENBQUMsY0FBYyxDQUFDLENBQUMsSUFBSSxDQUN6QixDQUFDLEVBQUUsZ0JBQWdCLEVBQUUsRUFBRSxFQUFFLENBQUMsZ0JBQWdCLENBQzNDO0lBQ0gsY0FBYyxFQUFFLEdBQUcsRUFBRSxDQUNuQixNQUFNLENBQUMsNEJBQTRCLENBQUMsQ0FBQyxJQUFJLENBQ3ZDLENBQUMsRUFBRSw0QkFBNEIsRUFBRSxFQUFFLEVBQUUsQ0FBQyw0QkFBNEIsQ0FDbkU7Q0FDSixDQUFDO0FBRUYsTUFBTSxVQUFVLGtCQUFrQixDQUNoQyxTQUFtQztJQUVuQyxPQUFPLFNBQVMsSUFBSSxlQUFlLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLE9BQU8sSUFBSSxTQUFTLENBQUMsQ0FBQywwREFBMEQ7QUFDM0ksQ0FBQztBQUVELE1BQU0sVUFBVSwwQkFBMEIsQ0FDeEMsU0FBbUM7SUFFbkMsT0FBTyxDQUNMLGtCQUFrQixDQUFDLFNBQVMsQ0FBQztRQUM3QixTQUFTLENBQUMsTUFBTSxDQUFDLFdBQVcsS0FBSyxXQUFXLENBQUMsTUFBTSxDQUNwRCxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRm9ybUdyb3VwTGlzdENvbXBvbmVudCB9IGZyb20gJy4vZm9ybS1ncm91cC1saXN0L2Zvcm0tZ3JvdXAtbGlzdC5jb21wb25lbnQnO1xuaW1wb3J0IHR5cGUgeyBTdWJHcm91cENvbXBvbmVudCB9IGZyb20gJy4vc3ViLWdyb3VwL3N1Yi1ncm91cC5jb21wb25lbnQnO1xuaW1wb3J0IHR5cGUgeyBIZWFkaW5nQ29tcG9uZW50IH0gZnJvbSAnLi91aSc7XG5pbXBvcnQgdHlwZSB7IEltYWdlVXBsb2FkRmllbGRDb21wb25lbnQgfSBmcm9tICcuL3VpL2ltYWdlLXVwbG9hZC1maWVsZCc7XG5pbXBvcnQgdHlwZSB7IERhdGVwaWNrZXJGaWVsZENvbXBvbmVudCB9IGZyb20gJy4vdWkvZGF0ZXBpY2tlci1maWVsZCc7XG5pbXBvcnQgdHlwZSB7IENoZWNrYm94RmllbGRDb21wb25lbnQgfSBmcm9tICcuL3VpL2NoZWNrYm94LWZpZWxkJztcbmltcG9ydCB0eXBlIHsgVGV4dGFyZWFGaWVsZENvbXBvbmVudCB9IGZyb20gJy4vdWkvdGV4dGFyZWEtZmllbGQnO1xuaW1wb3J0IHR5cGUgeyBBdXRvY29tcGxldGVGaWVsZENvbXBvbmVudCB9IGZyb20gJy4vdWkvYXV0b2NvbXBsZXRlLWZpZWxkJztcbmltcG9ydCB0eXBlIHsgU2VsZWN0RmllbGRDb21wb25lbnQgfSBmcm9tICcuL3VpL3NlbGVjdC1maWVsZCc7XG5pbXBvcnQgdHlwZSB7IElucHV0RmllbGRDb21wb25lbnQgfSBmcm9tICcuL3VpL2lucHV0LWZpZWxkJztcbmltcG9ydCB0eXBlIHsgUmFkaW9GaWVsZENvbXBvbmVudCB9IGZyb20gJy4vdWkvcmFkaW8tZmllbGQnO1xuaW1wb3J0IHR5cGUgeyBGaWxlVXBsb2FkRmllbGRDb21wb25lbnQgfSBmcm9tICcuL3VpL2ZpbGUtdXBsb2FkLWZpZWxkJztcbmltcG9ydCB0eXBlIHsgU2xpZGVyRmllbGRDb21wb25lbnQgfSBmcm9tICcuL3VpL3NsaWRlci1maWVsZCc7XG5pbXBvcnQgdHlwZSB7IERpdmlkZXJDb21wb25lbnQgfSBmcm9tICcuL3VpL2RpdmlkZXInO1xuaW1wb3J0IHR5cGUgeyBCdXR0b25Db21wb25lbnQgfSBmcm9tICcuL3VpL2J1dHRvbic7XG5pbXBvcnQgdHlwZSB7IFVuaXRDb252ZXJzaW9uRmllbGRDb21wb25lbnQgfSBmcm9tICcuL3VpL3VuaXQtY29udmVyc2lvbi1maWVsZCc7XG5cbmltcG9ydCB0eXBlIHsgQXV0b2NvbXBsZXRlQ2hpcGxpc3RGaWVsZENvbXBvbmVudCB9IGZyb20gJy4vdWkvYXV0b2NvbXBsZXRlLWNoaXBsaXN0LWZpZWxkJztcblxuaW1wb3J0IHsgaXNDb250cm9sQ29uZmlnLCBDb250cm9sVHlwZSB9IGZyb20gJy4vdXRpbHMnO1xuXG5leHBvcnQgY29uc3QgRklFTERfQ09NUE9ORU5UUyA9IHtcbiAgZ3JvdXBMaXN0OiAoKSA9PlxuICAgIGltcG9ydCgnLi9mb3JtLWdyb3VwLWxpc3QnKS50aGVuKFxuICAgICAgKHsgRm9ybUdyb3VwTGlzdENvbXBvbmVudCB9KSA9PiBGb3JtR3JvdXBMaXN0Q29tcG9uZW50XG4gICAgKSxcbiAgc3ViR3JvdXA6ICgpID0+XG4gICAgaW1wb3J0KCcuL3N1Yi1ncm91cCcpLnRoZW4oKHsgU3ViR3JvdXBDb21wb25lbnQgfSkgPT4gU3ViR3JvdXBDb21wb25lbnQpLFxuICBidXR0b246ICgpID0+XG4gICAgaW1wb3J0KCcuL3VpL2J1dHRvbicpLnRoZW4oXG4gICAgICAoeyBCdXR0b25Db21wb25lbnQgfSkgPT4gQnV0dG9uQ29tcG9uZW50XG4gICAgKSxcbiAgaW5wdXQ6ICgpID0+XG4gICAgaW1wb3J0KCcuL3VpL2lucHV0LWZpZWxkJykudGhlbihcbiAgICAgICh7IElucHV0RmllbGRDb21wb25lbnQgfSkgPT4gSW5wdXRGaWVsZENvbXBvbmVudFxuICAgICksXG4gIHNlbGVjdDogKCkgPT5cbiAgICBpbXBvcnQoJy4vdWkvc2VsZWN0LWZpZWxkJykudGhlbihcbiAgICAgICh7IFNlbGVjdEZpZWxkQ29tcG9uZW50IH0pID0+IFNlbGVjdEZpZWxkQ29tcG9uZW50XG4gICAgKSxcbiAgcmFkaW86ICgpID0+XG4gICAgaW1wb3J0KCcuL3VpL3JhZGlvLWZpZWxkJykudGhlbihcbiAgICAgICh7IFJhZGlvRmllbGRDb21wb25lbnQgfSkgPT4gUmFkaW9GaWVsZENvbXBvbmVudFxuICAgICksXG4gIGF1dG9jb21wbGV0ZTogKCkgPT5cbiAgICBpbXBvcnQoJy4vdWkvYXV0b2NvbXBsZXRlLWZpZWxkJykudGhlbihcbiAgICAgICh7IEF1dG9jb21wbGV0ZUZpZWxkQ29tcG9uZW50IH0pID0+IEF1dG9jb21wbGV0ZUZpZWxkQ29tcG9uZW50XG4gICAgKSxcbiAgYXV0b2NvbXBsZXRlQ2hpcGxpc3Q6ICgpID0+XG4gICAgaW1wb3J0KCcuL3VpL2F1dG9jb21wbGV0ZS1jaGlwbGlzdC1maWVsZCcpLnRoZW4oXG4gICAgICAoeyBBdXRvY29tcGxldGVDaGlwbGlzdEZpZWxkQ29tcG9uZW50IH0pID0+XG4gICAgICAgIEF1dG9jb21wbGV0ZUNoaXBsaXN0RmllbGRDb21wb25lbnRcbiAgICApLFxuICB0ZXh0YXJlYTogKCkgPT5cbiAgICBpbXBvcnQoJy4vdWkvdGV4dGFyZWEtZmllbGQnKS50aGVuKFxuICAgICAgKHsgVGV4dGFyZWFGaWVsZENvbXBvbmVudCB9KSA9PiBUZXh0YXJlYUZpZWxkQ29tcG9uZW50XG4gICAgKSxcbiAgY2hlY2tib3g6ICgpID0+XG4gICAgaW1wb3J0KCcuL3VpL2NoZWNrYm94LWZpZWxkJykudGhlbihcbiAgICAgICh7IENoZWNrYm94RmllbGRDb21wb25lbnQgfSkgPT4gQ2hlY2tib3hGaWVsZENvbXBvbmVudFxuICAgICksXG4gIHNsaWRlcjogKCkgPT5cbiAgICBpbXBvcnQoJy4vdWkvc2xpZGVyLWZpZWxkJykudGhlbihcbiAgICAgICh7IFNsaWRlckZpZWxkQ29tcG9uZW50IH0pID0+IFNsaWRlckZpZWxkQ29tcG9uZW50XG4gICAgKSxcbiAgZGF0ZXBpY2tlcjogKCkgPT5cbiAgICBpbXBvcnQoJy4vdWkvZGF0ZXBpY2tlci1maWVsZCcpLnRoZW4oXG4gICAgICAoeyBEYXRlcGlja2VyRmllbGRDb21wb25lbnQgfSkgPT4gRGF0ZXBpY2tlckZpZWxkQ29tcG9uZW50XG4gICAgKSxcbiAgZmlsZVVwbG9hZDogKCkgPT5cbiAgICBpbXBvcnQoJy4vdWkvZmlsZS11cGxvYWQtZmllbGQnKS50aGVuKFxuICAgICAgKHsgRmlsZVVwbG9hZEZpZWxkQ29tcG9uZW50IH0pID0+IEZpbGVVcGxvYWRGaWVsZENvbXBvbmVudFxuICAgICksXG4gIGltYWdlVXBsb2FkOiAoKSA9PlxuICAgIGltcG9ydCgnLi91aS9pbWFnZS11cGxvYWQtZmllbGQnKS50aGVuKFxuICAgICAgKHsgSW1hZ2VVcGxvYWRGaWVsZENvbXBvbmVudCB9KSA9PiBJbWFnZVVwbG9hZEZpZWxkQ29tcG9uZW50XG4gICAgKSxcbiAgaGVhZGluZzogKCkgPT5cbiAgICBpbXBvcnQoJy4vdWknKS50aGVuKFxuICAgICAgKHsgSGVhZGluZ0NvbXBvbmVudCB9KSA9PiBIZWFkaW5nQ29tcG9uZW50XG4gICAgKSxcbiAgZGl2aWRlcjogKCkgPT5cbiAgICBpbXBvcnQoJy4vdWkvZGl2aWRlcicpLnRoZW4oXG4gICAgICAoeyBEaXZpZGVyQ29tcG9uZW50IH0pID0+IERpdmlkZXJDb21wb25lbnRcbiAgICApLFxuICB1bml0Q29udmVyc2lvbjogKCkgPT5cbiAgICBpbXBvcnQoJy4vdWkvdW5pdC1jb252ZXJzaW9uLWZpZWxkJykudGhlbihcbiAgICAgICh7IFVuaXRDb252ZXJzaW9uRmllbGRDb21wb25lbnQgfSkgPT4gVW5pdENvbnZlcnNpb25GaWVsZENvbXBvbmVudFxuICAgICksXG59O1xuXG5leHBvcnQgZnVuY3Rpb24gaXNDb250cm9sQ29tcG9uZW50KFxuICBjb21wb25lbnQ6IENyaXNwckZpZWxkQ29tcG9uZW50VHlwZVxuKTogY29tcG9uZW50IGlzIENyaXNwckNvbnRyb2xDb21wb25lbnRUeXBlIHtcbiAgcmV0dXJuIGNvbXBvbmVudCAmJiBpc0NvbnRyb2xDb25maWcoY29tcG9uZW50LmNvbmZpZykgJiYgJ3ZhbHVlJyBpbiBjb21wb25lbnQ7IC8vIHx8IGNvbXBvbmVudC5jb25maWcuY29udHJvbFR5cGUgPT09IENvbnRyb2xUeXBlLkJVVFRPTjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQ29udHJvbE9yQnV0dG9uQ29tcG9uZW50KFxuICBjb21wb25lbnQ6IENyaXNwckZpZWxkQ29tcG9uZW50VHlwZVxuKTogY29tcG9uZW50IGlzIENyaXNwckNvbnRyb2xPckJ1dHRvbiB7XG4gIHJldHVybiAoXG4gICAgaXNDb250cm9sQ29tcG9uZW50KGNvbXBvbmVudCkgfHxcbiAgICBjb21wb25lbnQuY29uZmlnLmNvbnRyb2xUeXBlID09PSBDb250cm9sVHlwZS5CVVRUT05cbiAgKTtcbn1cblxuZXhwb3J0IHR5cGUgQ3Jpc3ByQ29udHJvbE9yQnV0dG9uID1cbiAgfCBDcmlzcHJDb250cm9sQ29tcG9uZW50VHlwZVxuICB8IEJ1dHRvbkNvbXBvbmVudDtcblxuZXhwb3J0IHR5cGUgQ3Jpc3ByQ29udHJvbENvbXBvbmVudFR5cGUgPVxuICB8IElucHV0RmllbGRDb21wb25lbnRcbiAgfCBTZWxlY3RGaWVsZENvbXBvbmVudFxuICB8IFJhZGlvRmllbGRDb21wb25lbnRcbiAgfCBTdWJHcm91cENvbXBvbmVudFxuICB8IEZvcm1Hcm91cExpc3RDb21wb25lbnRcbiAgfCBBdXRvY29tcGxldGVGaWVsZENvbXBvbmVudFxuICB8IEF1dG9jb21wbGV0ZUNoaXBsaXN0RmllbGRDb21wb25lbnRcbiAgfCBUZXh0YXJlYUZpZWxkQ29tcG9uZW50XG4gIHwgQ2hlY2tib3hGaWVsZENvbXBvbmVudFxuICB8IFNsaWRlckZpZWxkQ29tcG9uZW50XG4gIHwgRmlsZVVwbG9hZEZpZWxkQ29tcG9uZW50XG4gIHwgSW1hZ2VVcGxvYWRGaWVsZENvbXBvbmVudFxuICB8IERhdGVwaWNrZXJGaWVsZENvbXBvbmVudFxuICB8IFVuaXRDb252ZXJzaW9uRmllbGRDb21wb25lbnQ7XG5cbmV4cG9ydCB0eXBlIENvbXBvbmVudEtleXMgPSBrZXlvZiB0eXBlb2YgRklFTERfQ09NUE9ORU5UUztcbi8vIGV4cG9ydCB0eXBlIENyaXNwckZpZWxkQ29tcG9uZW50ID0gRklFTERfQ09NUE9ORU5UU1tDb21wb25lbnRLZXlzXTtcblxuZXhwb3J0IHR5cGUgQ3Jpc3ByRmllbGRDb21wb25lbnRUeXBlID1cbiAgfCBDcmlzcHJDb250cm9sQ29tcG9uZW50VHlwZVxuICB8IEhlYWRpbmdDb21wb25lbnRcbiAgfCBEaXZpZGVyQ29tcG9uZW50XG4gIHwgQnV0dG9uQ29tcG9uZW50O1xuIl19
@@ -0,0 +1,69 @@
1
+ import { Directive, Input, ViewContainerRef, Renderer2, ChangeDetectorRef, } from '@angular/core';
2
+ import { FormGroup } from '@angular/forms';
3
+ import { FIELD_COMPONENTS, isControlComponent, isControlOrButtonComponent, } from './field-component-map.const';
4
+ import * as i0 from "@angular/core";
5
+ export class CrisprFieldDirective {
6
+ set value(value) {
7
+ this._value = value;
8
+ // This is needed to keep the group list from resetting control values to the initial input value
9
+ this.updateComponentValue(value);
10
+ }
11
+ get value() {
12
+ return this._value;
13
+ }
14
+ constructor(container, renderer, cdr) {
15
+ this.container = container;
16
+ this.renderer = renderer;
17
+ this.cdr = cdr;
18
+ }
19
+ async ngOnInit() {
20
+ /**
21
+ * create component and set values from config on its instance
22
+ */
23
+ const component = this.config.component ||
24
+ (await FIELD_COMPONENTS[this.config.controlType]());
25
+ const componentRef = this.container.createComponent(component);
26
+ this.component = componentRef.instance;
27
+ this.component.config = this.config;
28
+ if (isControlOrButtonComponent(this.component)) {
29
+ this.component.group = this.group;
30
+ }
31
+ this.updateComponentValue(this.value);
32
+ // adds any config classes to the dynamically generated component
33
+ // doing this here keeps us from having to extend a base component into each field component individually
34
+ if (!this.config.classes)
35
+ return;
36
+ this.config.classes.forEach((klass) => {
37
+ // check for passing multiple classes in one array element
38
+ if (klass.includes(' ')) {
39
+ throw Error(`Improperly formatted class. '${klass}' cannot contain spaces.`);
40
+ }
41
+ else {
42
+ this.renderer.addClass(componentRef.location.nativeElement, klass);
43
+ }
44
+ });
45
+ }
46
+ updateComponentValue(value) {
47
+ if (isControlComponent(this.component)) {
48
+ this.component.value = value;
49
+ // SubGroups won't populate without this detectChanges
50
+ this.cdr.detectChanges();
51
+ }
52
+ }
53
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: CrisprFieldDirective, deps: [{ token: i0.ViewContainerRef }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive }); }
54
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.9", type: CrisprFieldDirective, isStandalone: true, selector: "[crisprField]", inputs: { config: "config", group: "group", value: "value" }, ngImport: i0 }); }
55
+ }
56
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: CrisprFieldDirective, decorators: [{
57
+ type: Directive,
58
+ args: [{
59
+ selector: '[crisprField]',
60
+ standalone: true,
61
+ }]
62
+ }], ctorParameters: () => [{ type: i0.ViewContainerRef }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }], propDecorators: { config: [{
63
+ type: Input
64
+ }], group: [{
65
+ type: Input
66
+ }], value: [{
67
+ type: Input
68
+ }] } });
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jcmlzcHItZm9ybXMvc3JjL2xpYi9maWVsZC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBQ0wsZ0JBQWdCLEVBQ2hCLFNBQVMsRUFFVCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFFTCxnQkFBZ0IsRUFDaEIsa0JBQWtCLEVBQ2xCLDBCQUEwQixHQUMzQixNQUFNLDZCQUE2QixDQUFDOztBQU9yQyxNQUFNLE9BQU8sb0JBQW9CO0lBTy9CLElBQWEsS0FBSyxDQUFDLEtBQTJCO1FBQzVDLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLGlHQUFpRztRQUNqRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUNELElBQUksS0FBSztRQUNQLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDO0lBSUQsWUFDVSxTQUEyQixFQUMzQixRQUFtQixFQUNuQixHQUFzQjtRQUZ0QixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUMzQixhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLFFBQUcsR0FBSCxHQUFHLENBQW1CO0lBQzdCLENBQUM7SUFFSixLQUFLLENBQUMsUUFBUTtRQUNaOztXQUVHO1FBQ0gsTUFBTSxTQUFTLEdBQ2IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTO1lBQ3JCLENBQUMsTUFBTSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN0RCxNQUFNLFlBQVksR0FDaEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQTJCLFNBQVMsQ0FBQyxDQUFDO1FBRXRFLElBQUksQ0FBQyxTQUFTLEdBQUcsWUFBWSxDQUFDLFFBQVEsQ0FBQztRQUN2QyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQ3BDLElBQUksMEJBQTBCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFO1lBQzlDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7U0FDbkM7UUFDRCxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3RDLGlFQUFpRTtRQUNqRSx5R0FBeUc7UUFDekcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTztZQUFFLE9BQU87UUFDakMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDcEMsMERBQTBEO1lBQzFELElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDdkIsTUFBTSxLQUFLLENBQ1QsZ0NBQWdDLEtBQUssMEJBQTBCLENBQ2hFLENBQUM7YUFDSDtpQkFBTTtnQkFDTCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLGFBQWEsRUFBRSxLQUFLLENBQUMsQ0FBQzthQUNwRTtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELG9CQUFvQixDQUFDLEtBQTJCO1FBQzlDLElBQUksa0JBQWtCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFO1lBQ3RDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztZQUM3QixzREFBc0Q7WUFDdEQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztTQUMxQjtJQUNILENBQUM7OEdBN0RVLG9CQUFvQjtrR0FBcEIsb0JBQW9COzsyRkFBcEIsb0JBQW9CO2tCQUpoQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxlQUFlO29CQUN6QixVQUFVLEVBQUUsSUFBSTtpQkFDakI7NklBRVUsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFLTyxLQUFLO3NCQUFqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRGlyZWN0aXZlLFxuICBJbnB1dCxcbiAgVmlld0NvbnRhaW5lclJlZixcbiAgUmVuZGVyZXIyLFxuICBPbkluaXQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gIENyaXNwckZpZWxkQ29tcG9uZW50VHlwZSxcbiAgRklFTERfQ09NUE9ORU5UUyxcbiAgaXNDb250cm9sQ29tcG9uZW50LFxuICBpc0NvbnRyb2xPckJ1dHRvbkNvbXBvbmVudCxcbn0gZnJvbSAnLi9maWVsZC1jb21wb25lbnQtbWFwLmNvbnN0JztcbmltcG9ydCB7IEFueUZpZWxkQ29uZmlnLCBDb250cm9sVmFsdWUgfSBmcm9tICcuL3V0aWxzJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2NyaXNwckZpZWxkXScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIENyaXNwckZpZWxkRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgY29uZmlnOiBBbnlGaWVsZENvbmZpZztcbiAgQElucHV0KCkgZ3JvdXA6IEZvcm1Hcm91cDtcbiAgLyoqXG4gICAqIHZhbHVlIHNldHRlciB1cGRhdGVzIHRoZSBjb250cm9sJ3MgdmFsdWUgYXMgd2VsbFxuICAgKi9cbiAgX3ZhbHVlOiBDb250cm9sVmFsdWUgfCBhbnlbXTtcbiAgQElucHV0KCkgc2V0IHZhbHVlKHZhbHVlOiBDb250cm9sVmFsdWUgfCBhbnlbXSkge1xuICAgIHRoaXMuX3ZhbHVlID0gdmFsdWU7XG4gICAgLy8gVGhpcyBpcyBuZWVkZWQgdG8ga2VlcCB0aGUgZ3JvdXAgbGlzdCBmcm9tIHJlc2V0dGluZyBjb250cm9sIHZhbHVlcyB0byB0aGUgaW5pdGlhbCBpbnB1dCB2YWx1ZVxuICAgIHRoaXMudXBkYXRlQ29tcG9uZW50VmFsdWUodmFsdWUpO1xuICB9XG4gIGdldCB2YWx1ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fdmFsdWU7XG4gIH1cblxuICBjb21wb25lbnQ6IENyaXNwckZpZWxkQ29tcG9uZW50VHlwZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGNvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZixcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmXG4gICkge31cblxuICBhc3luYyBuZ09uSW5pdCgpIHtcbiAgICAvKipcbiAgICAgKiBjcmVhdGUgY29tcG9uZW50IGFuZCBzZXQgdmFsdWVzIGZyb20gY29uZmlnIG9uIGl0cyBpbnN0YW5jZVxuICAgICAqL1xuICAgIGNvbnN0IGNvbXBvbmVudCA9XG4gICAgICB0aGlzLmNvbmZpZy5jb21wb25lbnQgfHxcbiAgICAgIChhd2FpdCBGSUVMRF9DT01QT05FTlRTW3RoaXMuY29uZmlnLmNvbnRyb2xUeXBlXSgpKTtcbiAgICBjb25zdCBjb21wb25lbnRSZWYgPVxuICAgICAgdGhpcy5jb250YWluZXIuY3JlYXRlQ29tcG9uZW50PENyaXNwckZpZWxkQ29tcG9uZW50VHlwZT4oY29tcG9uZW50KTtcblxuICAgIHRoaXMuY29tcG9uZW50ID0gY29tcG9uZW50UmVmLmluc3RhbmNlO1xuICAgIHRoaXMuY29tcG9uZW50LmNvbmZpZyA9IHRoaXMuY29uZmlnO1xuICAgIGlmIChpc0NvbnRyb2xPckJ1dHRvbkNvbXBvbmVudCh0aGlzLmNvbXBvbmVudCkpIHtcbiAgICAgIHRoaXMuY29tcG9uZW50Lmdyb3VwID0gdGhpcy5ncm91cDtcbiAgICB9XG4gICAgdGhpcy51cGRhdGVDb21wb25lbnRWYWx1ZSh0aGlzLnZhbHVlKTtcbiAgICAvLyBhZGRzIGFueSBjb25maWcgY2xhc3NlcyB0byB0aGUgZHluYW1pY2FsbHkgZ2VuZXJhdGVkIGNvbXBvbmVudFxuICAgIC8vIGRvaW5nIHRoaXMgaGVyZSBrZWVwcyB1cyBmcm9tIGhhdmluZyB0byBleHRlbmQgYSBiYXNlIGNvbXBvbmVudCBpbnRvIGVhY2ggZmllbGQgY29tcG9uZW50IGluZGl2aWR1YWxseVxuICAgIGlmICghdGhpcy5jb25maWcuY2xhc3NlcykgcmV0dXJuO1xuICAgIHRoaXMuY29uZmlnLmNsYXNzZXMuZm9yRWFjaCgoa2xhc3MpID0+IHtcbiAgICAgIC8vIGNoZWNrIGZvciBwYXNzaW5nIG11bHRpcGxlIGNsYXNzZXMgaW4gb25lIGFycmF5IGVsZW1lbnRcbiAgICAgIGlmIChrbGFzcy5pbmNsdWRlcygnICcpKSB7XG4gICAgICAgIHRocm93IEVycm9yKFxuICAgICAgICAgIGBJbXByb3Blcmx5IGZvcm1hdHRlZCBjbGFzcy4gJyR7a2xhc3N9JyBjYW5ub3QgY29udGFpbiBzcGFjZXMuYFxuICAgICAgICApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhjb21wb25lbnRSZWYubG9jYXRpb24ubmF0aXZlRWxlbWVudCwga2xhc3MpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgdXBkYXRlQ29tcG9uZW50VmFsdWUodmFsdWU6IENvbnRyb2xWYWx1ZSB8IGFueVtdKSB7XG4gICAgaWYgKGlzQ29udHJvbENvbXBvbmVudCh0aGlzLmNvbXBvbmVudCkpIHtcbiAgICAgIHRoaXMuY29tcG9uZW50LnZhbHVlID0gdmFsdWU7XG4gICAgICAvLyBTdWJHcm91cHMgd29uJ3QgcG9wdWxhdGUgd2l0aG91dCB0aGlzIGRldGVjdENoYW5nZXNcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,62 @@
1
+ import { Component, Input, Output, EventEmitter, ViewChild, ElementRef, } from '@angular/core';
2
+ import { ReactiveFormsModule, FormGroup } from '@angular/forms';
3
+ import { Observable } from 'rxjs';
4
+ import { CommonModule } from '@angular/common';
5
+ import { CrisprFieldDirective } from '../field.directive';
6
+ import { FormValidationHandlerModule } from '@tft/form-validation-handler';
7
+ import { CrisprPipesModule } from '../pipes/crispr-pipes.module';
8
+ import { buildFormGroupFromConfig, } from '../utils';
9
+ import * as i0 from "@angular/core";
10
+ import * as i1 from "@angular/common";
11
+ import * as i2 from "@angular/forms";
12
+ import * as i3 from "@tft/form-validation-handler";
13
+ import * as i4 from "../pipes/initial-control-value.pipe";
14
+ export class CrisprFormComponent {
15
+ constructor() {
16
+ this.form = new FormGroup({});
17
+ this.value = null;
18
+ this.submitted = new EventEmitter();
19
+ // proxy value and status change events through to consuming component
20
+ this.valueChanges = this.form.valueChanges;
21
+ this.statusChanges = this.form.statusChanges;
22
+ }
23
+ ngOnInit() {
24
+ // build out the form, note that we pass in the form as the third argument and the function modifies it
25
+ buildFormGroupFromConfig(this.config, this.value, this.form);
26
+ }
27
+ handleSubmit() {
28
+ this.form.markAllAsTouched();
29
+ this.submitted.emit(this.form);
30
+ }
31
+ triggerSubmit() {
32
+ this.submitTrigger.nativeElement.click();
33
+ }
34
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: CrisprFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
35
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: CrisprFormComponent, isStandalone: true, selector: "crispr-form", inputs: { config: "config", form: "form", value: "value" }, outputs: { submitted: "submitted", valueChanges: "valueChanges", statusChanges: "statusChanges" }, viewQueries: [{ propertyName: "submitTrigger", first: true, predicate: ["submitTrigger"], descendants: true }], ngImport: i0, template: "<form\n class=\"crispr-form\"\n [ngClass]=\"config.classes\"\n [formGroup]=\"form\"\n (ngSubmit)=\"handleSubmit()\"\n [autocomplete]=\"config.autocomplete || 'off'\"\n [errorDictionary]=\"config.errorDictionary\"\n #ngFormElement=\"ngForm\">\n\n <ng-container\n *ngFor=\"let field of config.fields;\"\n crisprField\n [value]=\"value | initialControlValue : field\"\n [config]=\"field\"\n [group]=\"form\">\n </ng-container>\n <!-- Hidden button, programmatically clicked when crispr form triggerSubmit function called.\n Uses a hidden button with type=\"submit\" because it will trigger both native form submit event\n (which the error handler has to listen for) and ngSubmit event -->\n <button #submitTrigger class=\"submit-trigger\" type=\"submit\">\n </button>\n</form>\n", styles: [".submit-trigger{display:none}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: CrisprFieldDirective, selector: "[crisprField]", inputs: ["config", "group", "value"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: FormValidationHandlerModule }, { kind: "directive", type: i3.ControlErrorsFormDirective, selector: "form", inputs: ["errorDictionary"] }, { kind: "directive", type: i3.ControlErrorContainerDirective, selector: "[controlErrorContainer], [formGroup]" }, { kind: "ngmodule", type: CrisprPipesModule }, { kind: "pipe", type: i4.InitialControlValuePipe, name: "initialControlValue" }], preserveWhitespaces: true }); }
36
+ }
37
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: CrisprFormComponent, decorators: [{
38
+ type: Component,
39
+ args: [{ selector: 'crispr-form', standalone: true, imports: [
40
+ CommonModule,
41
+ CrisprFieldDirective,
42
+ ReactiveFormsModule,
43
+ FormValidationHandlerModule,
44
+ CrisprPipesModule,
45
+ ], template: "<form\n class=\"crispr-form\"\n [ngClass]=\"config.classes\"\n [formGroup]=\"form\"\n (ngSubmit)=\"handleSubmit()\"\n [autocomplete]=\"config.autocomplete || 'off'\"\n [errorDictionary]=\"config.errorDictionary\"\n #ngFormElement=\"ngForm\">\n\n <ng-container\n *ngFor=\"let field of config.fields;\"\n crisprField\n [value]=\"value | initialControlValue : field\"\n [config]=\"field\"\n [group]=\"form\">\n </ng-container>\n <!-- Hidden button, programmatically clicked when crispr form triggerSubmit function called.\n Uses a hidden button with type=\"submit\" because it will trigger both native form submit event\n (which the error handler has to listen for) and ngSubmit event -->\n <button #submitTrigger class=\"submit-trigger\" type=\"submit\">\n </button>\n</form>\n", styles: [".submit-trigger{display:none}\n"] }]
46
+ }], propDecorators: { config: [{
47
+ type: Input
48
+ }], form: [{
49
+ type: Input
50
+ }], value: [{
51
+ type: Input
52
+ }], submitted: [{
53
+ type: Output
54
+ }], valueChanges: [{
55
+ type: Output
56
+ }], statusChanges: [{
57
+ type: Output
58
+ }], submitTrigger: [{
59
+ type: ViewChild,
60
+ args: ['submitTrigger']
61
+ }] } });
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NyaXNwci1mb3Jtcy9zcmMvbGliL2Zvcm0vZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NyaXNwci1mb3Jtcy9zcmMvbGliL2Zvcm0vZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULEtBQUssRUFDTCxNQUFNLEVBQ04sWUFBWSxFQUNaLFNBQVMsRUFDVCxVQUFVLEdBRVgsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbEMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzFELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzNFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2pFLE9BQU8sRUFHTCx3QkFBd0IsR0FDekIsTUFBTSxVQUFVLENBQUM7Ozs7OztBQWdCbEIsTUFBTSxPQUFPLG1CQUFtQjtJQWRoQztRQWlCVyxTQUFJLEdBQWMsSUFBSSxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDcEMsVUFBSyxHQUFzQixJQUFJLENBQUM7UUFFL0IsY0FBUyxHQUFHLElBQUksWUFBWSxFQUFhLENBQUM7UUFDcEQsc0VBQXNFO1FBQzVELGlCQUFZLEdBQW9CLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDO1FBQ3ZELGtCQUFhLEdBQXVCLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDO0tBaUJ2RTtJQWJDLFFBQVE7UUFDTix1R0FBdUc7UUFDdkcsd0JBQXdCLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRUQsWUFBWTtRQUNWLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUM3QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELGFBQWE7UUFDWCxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUMzQyxDQUFDOzhHQXpCVSxtQkFBbUI7a0dBQW5CLG1CQUFtQixzVkNuQ2hDLDJ5QkFzQkEsd0ZETUksWUFBWSwwUEFDWixvQkFBb0IsK0ZBQ3BCLG1CQUFtQixvYkFDbkIsMkJBQTJCLDJQQUMzQixpQkFBaUI7OzJGQUdSLG1CQUFtQjtrQkFkL0IsU0FBUzsrQkFDRSxhQUFhLGNBSVgsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osb0JBQW9CO3dCQUNwQixtQkFBbUI7d0JBQ25CLDJCQUEyQjt3QkFDM0IsaUJBQWlCO3FCQUNsQjs4QkFJUSxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFFSSxTQUFTO3NCQUFsQixNQUFNO2dCQUVHLFlBQVk7c0JBQXJCLE1BQU07Z0JBQ0csYUFBYTtzQkFBdEIsTUFBTTtnQkFFcUIsYUFBYTtzQkFBeEMsU0FBUzt1QkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBFdmVudEVtaXR0ZXIsXG4gIFZpZXdDaGlsZCxcbiAgRWxlbWVudFJlZixcbiAgT25Jbml0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDcmlzcHJGaWVsZERpcmVjdGl2ZSB9IGZyb20gJy4uL2ZpZWxkLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBGb3JtVmFsaWRhdGlvbkhhbmRsZXJNb2R1bGUgfSBmcm9tICdAdGZ0L2Zvcm0tdmFsaWRhdGlvbi1oYW5kbGVyJztcbmltcG9ydCB7IENyaXNwclBpcGVzTW9kdWxlIH0gZnJvbSAnLi4vcGlwZXMvY3Jpc3ByLXBpcGVzLm1vZHVsZSc7XG5pbXBvcnQge1xuICBDb250cm9sR3JvdXBWYWx1ZSxcbiAgRm9ybUNvbmZpZyxcbiAgYnVpbGRGb3JtR3JvdXBGcm9tQ29uZmlnLFxufSBmcm9tICcuLi91dGlscyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NyaXNwci1mb3JtJyxcbiAgc3R5bGVVcmxzOiBbJ2Zvcm0uY29tcG9uZW50LnNjc3MnXSxcbiAgdGVtcGxhdGVVcmw6ICdmb3JtLmNvbXBvbmVudC5odG1sJyxcbiAgLy8gY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgQ3Jpc3ByRmllbGREaXJlY3RpdmUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBGb3JtVmFsaWRhdGlvbkhhbmRsZXJNb2R1bGUsXG4gICAgQ3Jpc3ByUGlwZXNNb2R1bGUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIENyaXNwckZvcm1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAvLyBpZiBubyBmb3JtIGhhcyBiZWVuIHBhc3NlZCBpbiBieSBjb25zdW1pbmcgY29tcG9uZW50LCB3ZSBjcmVhdGUgYW4gZW1wdHkgZ3JvdXAgdG8gYnVpbGQgb3V0XG4gIEBJbnB1dCgpIGNvbmZpZzogRm9ybUNvbmZpZztcbiAgQElucHV0KCkgZm9ybTogRm9ybUdyb3VwID0gbmV3IEZvcm1Hcm91cCh7fSk7XG4gIEBJbnB1dCgpIHZhbHVlOiBDb250cm9sR3JvdXBWYWx1ZSA9IG51bGw7XG5cbiAgQE91dHB1dCgpIHN1Ym1pdHRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8Rm9ybUdyb3VwPigpO1xuICAvLyBwcm94eSB2YWx1ZSBhbmQgc3RhdHVzIGNoYW5nZSBldmVudHMgdGhyb3VnaCB0byBjb25zdW1pbmcgY29tcG9uZW50XG4gIEBPdXRwdXQoKSB2YWx1ZUNoYW5nZXM6IE9ic2VydmFibGU8YW55PiA9IHRoaXMuZm9ybS52YWx1ZUNoYW5nZXM7XG4gIEBPdXRwdXQoKSBzdGF0dXNDaGFuZ2VzOiBPYnNlcnZhYmxlPHN0cmluZz4gPSB0aGlzLmZvcm0uc3RhdHVzQ2hhbmdlcztcblxuICBAVmlld0NoaWxkKCdzdWJtaXRUcmlnZ2VyJykgc3VibWl0VHJpZ2dlcjogRWxlbWVudFJlZjxIVE1MQnV0dG9uRWxlbWVudD47XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgLy8gYnVpbGQgb3V0IHRoZSBmb3JtLCBub3RlIHRoYXQgd2UgcGFzcyBpbiB0aGUgZm9ybSBhcyB0aGUgdGhpcmQgYXJndW1lbnQgYW5kIHRoZSBmdW5jdGlvbiBtb2RpZmllcyBpdFxuICAgIGJ1aWxkRm9ybUdyb3VwRnJvbUNvbmZpZyh0aGlzLmNvbmZpZywgdGhpcy52YWx1ZSwgdGhpcy5mb3JtKTtcbiAgfVxuXG4gIGhhbmRsZVN1Ym1pdCgpIHtcbiAgICB0aGlzLmZvcm0ubWFya0FsbEFzVG91Y2hlZCgpO1xuICAgIHRoaXMuc3VibWl0dGVkLmVtaXQodGhpcy5mb3JtKTtcbiAgfVxuXG4gIHRyaWdnZXJTdWJtaXQoKSB7XG4gICAgdGhpcy5zdWJtaXRUcmlnZ2VyLm5hdGl2ZUVsZW1lbnQuY2xpY2soKTtcbiAgfVxufVxuIiwiPGZvcm1cbiAgY2xhc3M9XCJjcmlzcHItZm9ybVwiXG4gIFtuZ0NsYXNzXT1cImNvbmZpZy5jbGFzc2VzXCJcbiAgW2Zvcm1Hcm91cF09XCJmb3JtXCJcbiAgKG5nU3VibWl0KT1cImhhbmRsZVN1Ym1pdCgpXCJcbiAgW2F1dG9jb21wbGV0ZV09XCJjb25maWcuYXV0b2NvbXBsZXRlIHx8ICdvZmYnXCJcbiAgW2Vycm9yRGljdGlvbmFyeV09XCJjb25maWcuZXJyb3JEaWN0aW9uYXJ5XCJcbiAgI25nRm9ybUVsZW1lbnQ9XCJuZ0Zvcm1cIj5cblxuICA8bmctY29udGFpbmVyXG4gICAgKm5nRm9yPVwibGV0IGZpZWxkIG9mIGNvbmZpZy5maWVsZHM7XCJcbiAgICBjcmlzcHJGaWVsZFxuICAgIFt2YWx1ZV09XCJ2YWx1ZSB8IGluaXRpYWxDb250cm9sVmFsdWUgOiBmaWVsZFwiXG4gICAgW2NvbmZpZ109XCJmaWVsZFwiXG4gICAgW2dyb3VwXT1cImZvcm1cIj5cbiAgPC9uZy1jb250YWluZXI+XG4gIDwhLS0gSGlkZGVuIGJ1dHRvbiwgcHJvZ3JhbW1hdGljYWxseSBjbGlja2VkIHdoZW4gY3Jpc3ByIGZvcm0gdHJpZ2dlclN1Ym1pdCBmdW5jdGlvbiBjYWxsZWQuXG4gICAgVXNlcyBhIGhpZGRlbiBidXR0b24gd2l0aCB0eXBlPVwic3VibWl0XCIgYmVjYXVzZSBpdCB3aWxsIHRyaWdnZXIgYm90aCBuYXRpdmUgZm9ybSBzdWJtaXQgZXZlbnRcbiAgICAod2hpY2ggdGhlIGVycm9yIGhhbmRsZXIgaGFzIHRvIGxpc3RlbiBmb3IpIGFuZCBuZ1N1Ym1pdCBldmVudCAgLS0+XG4gIDxidXR0b24gI3N1Ym1pdFRyaWdnZXIgY2xhc3M9XCJzdWJtaXQtdHJpZ2dlclwiIHR5cGU9XCJzdWJtaXRcIj5cbiAgPC9idXR0b24+XG48L2Zvcm0+XG4iXX0=
@@ -0,0 +1,97 @@
1
+ import { Component, ChangeDetectionStrategy, ChangeDetectorRef, } from '@angular/core';
2
+ import { MatButtonModule } from '@angular/material/button';
3
+ import { MatIconModule } from '@angular/material/icon';
4
+ import { CrisprFieldDirective } from '../field.directive';
5
+ import { CrisprPipesModule } from '../pipes/crispr-pipes.module';
6
+ import { ReactiveFormsModule } from '@angular/forms';
7
+ import { CommonModule } from '@angular/common';
8
+ import { FormValidationHandlerModule } from '@tft/form-validation-handler';
9
+ import { CrisprFieldComponent, crisprControlMixin, createControlForType, } from '../utils';
10
+ import { FieldContainerComponent } from '../ui';
11
+ import { CrisprDisplayFieldDirective } from '../display-field.directive';
12
+ import * as i0 from "@angular/core";
13
+ import * as i1 from "@angular/common";
14
+ import * as i2 from "@angular/material/button";
15
+ import * as i3 from "@angular/material/icon";
16
+ import * as i4 from "@angular/forms";
17
+ import * as i5 from "../pipes/initial-control-value.pipe";
18
+ import * as i6 from "@tft/form-validation-handler";
19
+ const defaultConfig = {
20
+ addButtonLabel: 'ADD ITEM',
21
+ minListLength: 1,
22
+ };
23
+ const FormGroupListMixin = crisprControlMixin(CrisprFieldComponent);
24
+ export class FormGroupListComponent extends FormGroupListMixin {
25
+ constructor(cdr) {
26
+ super();
27
+ this.cdr = cdr;
28
+ this.defaultConfig = defaultConfig;
29
+ /**
30
+ * By setting this to true when adding/removing items from array,
31
+ * we can block original values from overwriting form values
32
+ * */
33
+ this.blockValue = false;
34
+ this.selectedIndex = null;
35
+ }
36
+ ngOnInit() {
37
+ super.ngOnInit();
38
+ // TODO: this is required to ngFor of controls in template, must be a better way
39
+ }
40
+ setControlValue(values) {
41
+ if (this.control) {
42
+ if (values?.length > 0) {
43
+ // clear any existing values so that new values don't concatenate onto the old
44
+ const currentValues = this.control.value;
45
+ if (currentValues.length) {
46
+ this.control.clear();
47
+ }
48
+ values.forEach((value) => this.addGroup(value));
49
+ }
50
+ else if (this.config.displayInitialItem) {
51
+ this.addGroup();
52
+ }
53
+ // needed to ensure new array items render
54
+ setTimeout(() => {
55
+ this.cdr.detectChanges();
56
+ });
57
+ }
58
+ }
59
+ clickDelete(index) {
60
+ this.blockValue = true;
61
+ this.deleteGroup(index);
62
+ }
63
+ clickAdd() {
64
+ this.blockValue = true;
65
+ this.addGroup();
66
+ }
67
+ addGroup(value = null) {
68
+ this.control.push(createControlForType(this.config.itemConfig, value));
69
+ // needed to ensure new array items render
70
+ setTimeout(() => {
71
+ this.cdr.detectChanges();
72
+ });
73
+ }
74
+ deleteGroup(index) {
75
+ this.control.removeAt(index);
76
+ }
77
+ clickEditItem(index) {
78
+ this.selectedIndex = index;
79
+ }
80
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: FormGroupListComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
81
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: FormGroupListComponent, isStandalone: true, selector: "crispr-form-group-list", usesInheritance: true, ngImport: i0, template: "\n<crispr-field-container\n [config]=\"config\"\n [group]=\"group\"\n [formGroup]=\"group\">\n\n <div [formArrayName]=\"config.controlName\">\n\n <!-- Don't add trackBy function, it confuses the state of the array -->\n <ng-container *ngFor=\"let itemControl of control?.controls; let i = index; let last = last\">\n <ng-container *ngIf=\"!config.displayItemComponent || i === selectedIndex || (last && selectedIndex ?? true); else display\">\n <!-- TODO: use content projection to allow custom item label component -->\n <div class=\"item-header\">\n <span class=\"mat-h2\"> {{ config.itemLabelBuilder ? config.itemLabelBuilder(i) : 'Item ' + (i + 1) }} </span>\n <button\n mat-icon-button\n type=\"button\"\n *ngIf=\"i + 1 > config.minListLength\">\n <mat-icon (click)=\"clickDelete(i)\">delete</mat-icon>\n </button>\n </div>\n <div\n [formGroup]=\"itemControl\">\n <!-- TODO: if chiplists didn't need to have labels mixed in with their values we could use [value]=\"control.value\" below -->\n <ng-container\n *ngFor=\"let field of config.itemConfig.fields;\"\n crisprField\n [value]=\"blockValue ? null : value && value[i] | initialControlValue : field\"\n [config]=\"field\"\n [group]=\"itemControl\">\n </ng-container>\n </div>\n </ng-container>\n <ng-template #display>\n <div\n class=\"display-field-container\"\n crisprDisplayField\n [component]=\"config.displayItemComponent\"\n [value]=\"itemControl.value\"\n [index]=\"i\">\n <button mat-icon-button (click)=\"clickEditItem(i)\">\n <mat-icon>edit</mat-icon>\n </button>\n </div>\n </ng-template>\n </ng-container>\n </div>\n <div class=\"group-footer\">\n <button\n type=\"button\"\n class=\"add\"\n mat-raised-button\n [color]=\"config.addButtonColor\"\n (click)=\"clickAdd()\">\n {{config.addItemLabel || config.addButtonLabel}}\n </button>\n </div>\n\n</crispr-field-container>\n", styles: [".item-header{display:flex;justify-content:space-between}.group-footer{display:flex;justify-content:flex-end}.group-footer button.add{margin-bottom:16px}.display-field-container{position:relative}.display-field-container button{position:absolute;top:0;right:0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i2.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: FieldContainerComponent, selector: "crispr-field-container", inputs: ["config", "group", "inlineField"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "directive", type: CrisprFieldDirective, selector: "[crisprField]", inputs: ["config", "group", "value"] }, { kind: "directive", type: CrisprDisplayFieldDirective, selector: "[crisprDisplayField]", inputs: ["group", "value", "component", "index"] }, { kind: "ngmodule", type: CrisprPipesModule }, { kind: "pipe", type: i5.InitialControlValuePipe, name: "initialControlValue" }, { kind: "ngmodule", type: FormValidationHandlerModule }, { kind: "directive", type: i6.ControlErrorContainerDirective, selector: "[controlErrorContainer], [formGroup]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, preserveWhitespaces: true }); }
82
+ }
83
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: FormGroupListComponent, decorators: [{
84
+ type: Component,
85
+ args: [{ selector: 'crispr-form-group-list', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
86
+ CommonModule,
87
+ MatButtonModule,
88
+ MatIconModule,
89
+ FieldContainerComponent,
90
+ ReactiveFormsModule,
91
+ CrisprFieldDirective,
92
+ CrisprDisplayFieldDirective,
93
+ CrisprPipesModule,
94
+ FormValidationHandlerModule,
95
+ ], template: "\n<crispr-field-container\n [config]=\"config\"\n [group]=\"group\"\n [formGroup]=\"group\">\n\n <div [formArrayName]=\"config.controlName\">\n\n <!-- Don't add trackBy function, it confuses the state of the array -->\n <ng-container *ngFor=\"let itemControl of control?.controls; let i = index; let last = last\">\n <ng-container *ngIf=\"!config.displayItemComponent || i === selectedIndex || (last && selectedIndex ?? true); else display\">\n <!-- TODO: use content projection to allow custom item label component -->\n <div class=\"item-header\">\n <span class=\"mat-h2\"> {{ config.itemLabelBuilder ? config.itemLabelBuilder(i) : 'Item ' + (i + 1) }} </span>\n <button\n mat-icon-button\n type=\"button\"\n *ngIf=\"i + 1 > config.minListLength\">\n <mat-icon (click)=\"clickDelete(i)\">delete</mat-icon>\n </button>\n </div>\n <div\n [formGroup]=\"itemControl\">\n <!-- TODO: if chiplists didn't need to have labels mixed in with their values we could use [value]=\"control.value\" below -->\n <ng-container\n *ngFor=\"let field of config.itemConfig.fields;\"\n crisprField\n [value]=\"blockValue ? null : value && value[i] | initialControlValue : field\"\n [config]=\"field\"\n [group]=\"itemControl\">\n </ng-container>\n </div>\n </ng-container>\n <ng-template #display>\n <div\n class=\"display-field-container\"\n crisprDisplayField\n [component]=\"config.displayItemComponent\"\n [value]=\"itemControl.value\"\n [index]=\"i\">\n <button mat-icon-button (click)=\"clickEditItem(i)\">\n <mat-icon>edit</mat-icon>\n </button>\n </div>\n </ng-template>\n </ng-container>\n </div>\n <div class=\"group-footer\">\n <button\n type=\"button\"\n class=\"add\"\n mat-raised-button\n [color]=\"config.addButtonColor\"\n (click)=\"clickAdd()\">\n {{config.addItemLabel || config.addButtonLabel}}\n </button>\n </div>\n\n</crispr-field-container>\n", styles: [".item-header{display:flex;justify-content:space-between}.group-footer{display:flex;justify-content:flex-end}.group-footer button.add{margin-bottom:16px}.display-field-container{position:relative}.display-field-container button{position:absolute;top:0;right:0}\n"] }]
96
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }] });
97
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1ncm91cC1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY3Jpc3ByLWZvcm1zL3NyYy9saWIvZm9ybS1ncm91cC1saXN0L2Zvcm0tZ3JvdXAtbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NyaXNwci1mb3Jtcy9zcmMvbGliL2Zvcm0tZ3JvdXAtbGlzdC9mb3JtLWdyb3VwLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCx1QkFBdUIsRUFDdkIsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDMUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDakUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzNFLE9BQU8sRUFDTCxvQkFBb0IsRUFDcEIsa0JBQWtCLEVBQ2xCLG9CQUFvQixHQUVyQixNQUFNLFVBQVUsQ0FBQztBQUNsQixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDaEQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7Ozs7O0FBRXpFLE1BQU0sYUFBYSxHQUFpQztJQUNsRCxjQUFjLEVBQUUsVUFBVTtJQUMxQixhQUFhLEVBQUUsQ0FBQztDQUNqQixDQUFDO0FBRUYsTUFBTSxrQkFBa0IsR0FDdEIsa0JBQWtCLENBQXNCLG9CQUFvQixDQUFDLENBQUM7QUFtQmhFLE1BQU0sT0FBTyxzQkFDWCxTQUFRLGtCQUFrQjtJQWMxQixZQUFvQixHQUFzQjtRQUN4QyxLQUFLLEVBQUUsQ0FBQztRQURVLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBWDFDLGtCQUFhLEdBQUcsYUFBYSxDQUFDO1FBRzlCOzs7YUFHSztRQUNMLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFFbkIsa0JBQWEsR0FBVyxJQUFJLENBQUM7SUFJN0IsQ0FBQztJQUVELFFBQVE7UUFDTixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakIsZ0ZBQWdGO0lBQ2xGLENBQUM7SUFFRCxlQUFlLENBQUMsTUFBYTtRQUMzQixJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDaEIsSUFBSSxNQUFNLEVBQUUsTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFDdEIsOEVBQThFO2dCQUM5RSxNQUFNLGFBQWEsR0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztnQkFDN0MsSUFBSSxhQUFhLENBQUMsTUFBTSxFQUFFO29CQUN4QixJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO2lCQUN0QjtnQkFDRCxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7YUFDakQ7aUJBQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLGtCQUFrQixFQUFFO2dCQUN6QyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7YUFDakI7WUFDRCwwQ0FBMEM7WUFDMUMsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDZCxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQzNCLENBQUMsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQWE7UUFDdkIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7UUFDdkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNsQixDQUFDO0lBRUQsUUFBUSxDQUFDLEtBQUssR0FBRyxJQUFJO1FBQ25CLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDdkUsMENBQTBDO1FBQzFDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQzNCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFhO1FBQ3ZCLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRCxhQUFhLENBQUMsS0FBYTtRQUN6QixJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztJQUM3QixDQUFDOzhHQW5FVSxzQkFBc0I7a0dBQXRCLHNCQUFzQix5R0NoRG5DLDZwRUEyREEsOFREdEJJLFlBQVksK1BBQ1osZUFBZSx3VUFDZixhQUFhLG9MQUNiLHVCQUF1Qiw4R0FDdkIsbUJBQW1CLG1iQUNuQixvQkFBb0IsZ0dBQ3BCLDJCQUEyQixrSEFDM0IsaUJBQWlCLCtHQUNqQiwyQkFBMkI7OzJGQUdsQixzQkFBc0I7a0JBbEJsQyxTQUFTOytCQUNFLHdCQUF3QixtQkFHakIsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixlQUFlO3dCQUNmLGFBQWE7d0JBQ2IsdUJBQXVCO3dCQUN2QixtQkFBbUI7d0JBQ25CLG9CQUFvQjt3QkFDcEIsMkJBQTJCO3dCQUMzQixpQkFBaUI7d0JBQ2pCLDJCQUEyQjtxQkFDNUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIE9uSW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Hcm91cCwgRm9ybUFycmF5IH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IENyaXNwckZpZWxkRGlyZWN0aXZlIH0gZnJvbSAnLi4vZmllbGQuZGlyZWN0aXZlJztcbmltcG9ydCB7IENyaXNwclBpcGVzTW9kdWxlIH0gZnJvbSAnLi4vcGlwZXMvY3Jpc3ByLXBpcGVzLm1vZHVsZSc7XG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEZvcm1WYWxpZGF0aW9uSGFuZGxlck1vZHVsZSB9IGZyb20gJ0B0ZnQvZm9ybS12YWxpZGF0aW9uLWhhbmRsZXInO1xuaW1wb3J0IHtcbiAgQ3Jpc3ByRmllbGRDb21wb25lbnQsXG4gIGNyaXNwckNvbnRyb2xNaXhpbixcbiAgY3JlYXRlQ29udHJvbEZvclR5cGUsXG4gIEZvcm1Hcm91cExpc3RDb25maWcsXG59IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCB7IEZpZWxkQ29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi4vdWknO1xuaW1wb3J0IHsgQ3Jpc3ByRGlzcGxheUZpZWxkRGlyZWN0aXZlIH0gZnJvbSAnLi4vZGlzcGxheS1maWVsZC5kaXJlY3RpdmUnO1xuXG5jb25zdCBkZWZhdWx0Q29uZmlnOiBQYXJ0aWFsPEZvcm1Hcm91cExpc3RDb25maWc+ID0ge1xuICBhZGRCdXR0b25MYWJlbDogJ0FERCBJVEVNJyxcbiAgbWluTGlzdExlbmd0aDogMSxcbn07XG5cbmNvbnN0IEZvcm1Hcm91cExpc3RNaXhpbiA9XG4gIGNyaXNwckNvbnRyb2xNaXhpbjxGb3JtR3JvdXBMaXN0Q29uZmlnPihDcmlzcHJGaWVsZENvbXBvbmVudCk7XG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjcmlzcHItZm9ybS1ncm91cC1saXN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0tZ3JvdXAtbGlzdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Zvcm0tZ3JvdXAtbGlzdC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgTWF0SWNvbk1vZHVsZSxcbiAgICBGaWVsZENvbnRhaW5lckNvbXBvbmVudCxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIENyaXNwckZpZWxkRGlyZWN0aXZlLFxuICAgIENyaXNwckRpc3BsYXlGaWVsZERpcmVjdGl2ZSxcbiAgICBDcmlzcHJQaXBlc01vZHVsZSxcbiAgICBGb3JtVmFsaWRhdGlvbkhhbmRsZXJNb2R1bGUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1Hcm91cExpc3RDb21wb25lbnRcbiAgZXh0ZW5kcyBGb3JtR3JvdXBMaXN0TWl4aW5cbiAgaW1wbGVtZW50cyBPbkluaXRcbntcbiAgZGVmYXVsdENvbmZpZyA9IGRlZmF1bHRDb25maWc7XG4gIGdyb3VwOiBGb3JtR3JvdXA7XG4gIGNvbnRyb2w6IEZvcm1BcnJheTtcbiAgLyoqXG4gICAqIEJ5IHNldHRpbmcgdGhpcyB0byB0cnVlIHdoZW4gYWRkaW5nL3JlbW92aW5nIGl0ZW1zIGZyb20gYXJyYXksXG4gICAqIHdlIGNhbiBibG9jayBvcmlnaW5hbCB2YWx1ZXMgZnJvbSBvdmVyd3JpdGluZyBmb3JtIHZhbHVlc1xuICAgKiAqL1xuICBibG9ja1ZhbHVlID0gZmFsc2U7XG5cbiAgc2VsZWN0ZWRJbmRleDogbnVtYmVyID0gbnVsbDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAvLyBUT0RPOiB0aGlzIGlzIHJlcXVpcmVkIHRvIG5nRm9yIG9mIGNvbnRyb2xzIGluIHRlbXBsYXRlLCBtdXN0IGJlIGEgYmV0dGVyIHdheVxuICB9XG5cbiAgc2V0Q29udHJvbFZhbHVlKHZhbHVlczogYW55W10pIHtcbiAgICBpZiAodGhpcy5jb250cm9sKSB7XG4gICAgICBpZiAodmFsdWVzPy5sZW5ndGggPiAwKSB7XG4gICAgICAgIC8vIGNsZWFyIGFueSBleGlzdGluZyB2YWx1ZXMgc28gdGhhdCBuZXcgdmFsdWVzIGRvbid0IGNvbmNhdGVuYXRlIG9udG8gdGhlIG9sZFxuICAgICAgICBjb25zdCBjdXJyZW50VmFsdWVzOiBbXSA9IHRoaXMuY29udHJvbC52YWx1ZTtcbiAgICAgICAgaWYgKGN1cnJlbnRWYWx1ZXMubGVuZ3RoKSB7XG4gICAgICAgICAgdGhpcy5jb250cm9sLmNsZWFyKCk7XG4gICAgICAgIH1cbiAgICAgICAgdmFsdWVzLmZvckVhY2goKHZhbHVlKSA9PiB0aGlzLmFkZEdyb3VwKHZhbHVlKSk7XG4gICAgICB9IGVsc2UgaWYgKHRoaXMuY29uZmlnLmRpc3BsYXlJbml0aWFsSXRlbSkge1xuICAgICAgICB0aGlzLmFkZEdyb3VwKCk7XG4gICAgICB9XG4gICAgICAvLyBuZWVkZWQgdG8gZW5zdXJlIG5ldyBhcnJheSBpdGVtcyByZW5kZXJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBjbGlja0RlbGV0ZShpbmRleDogbnVtYmVyKSB7XG4gICAgdGhpcy5ibG9ja1ZhbHVlID0gdHJ1ZTtcbiAgICB0aGlzLmRlbGV0ZUdyb3VwKGluZGV4KTtcbiAgfVxuXG4gIGNsaWNrQWRkKCkge1xuICAgIHRoaXMuYmxvY2tWYWx1ZSA9IHRydWU7XG4gICAgdGhpcy5hZGRHcm91cCgpO1xuICB9XG5cbiAgYWRkR3JvdXAodmFsdWUgPSBudWxsKSB7XG4gICAgdGhpcy5jb250cm9sLnB1c2goY3JlYXRlQ29udHJvbEZvclR5cGUodGhpcy5jb25maWcuaXRlbUNvbmZpZywgdmFsdWUpKTtcbiAgICAvLyBuZWVkZWQgdG8gZW5zdXJlIG5ldyBhcnJheSBpdGVtcyByZW5kZXJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9KTtcbiAgfVxuXG4gIGRlbGV0ZUdyb3VwKGluZGV4OiBudW1iZXIpIHtcbiAgICB0aGlzLmNvbnRyb2wucmVtb3ZlQXQoaW5kZXgpO1xuICB9XG5cbiAgY2xpY2tFZGl0SXRlbShpbmRleDogbnVtYmVyKSB7XG4gICAgdGhpcy5zZWxlY3RlZEluZGV4ID0gaW5kZXg7XG4gIH1cbn1cbiIsIlxuPGNyaXNwci1maWVsZC1jb250YWluZXJcbiAgW2NvbmZpZ109XCJjb25maWdcIlxuICBbZ3JvdXBdPVwiZ3JvdXBcIlxuICBbZm9ybUdyb3VwXT1cImdyb3VwXCI+XG5cbiAgPGRpdiBbZm9ybUFycmF5TmFtZV09XCJjb25maWcuY29udHJvbE5hbWVcIj5cblxuICAgIDwhLS0gRG9uJ3QgYWRkIHRyYWNrQnkgZnVuY3Rpb24sIGl0IGNvbmZ1c2VzIHRoZSBzdGF0ZSBvZiB0aGUgYXJyYXkgLS0+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbUNvbnRyb2wgb2YgY29udHJvbD8uY29udHJvbHM7IGxldCBpID0gaW5kZXg7IGxldCBsYXN0ID0gbGFzdFwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFjb25maWcuZGlzcGxheUl0ZW1Db21wb25lbnQgfHwgaSA9PT0gc2VsZWN0ZWRJbmRleCB8fCAobGFzdCAmJiBzZWxlY3RlZEluZGV4ID8/IHRydWUpOyBlbHNlIGRpc3BsYXlcIj5cbiAgICAgICAgPCEtLSBUT0RPOiB1c2UgY29udGVudCBwcm9qZWN0aW9uIHRvIGFsbG93IGN1c3RvbSBpdGVtIGxhYmVsIGNvbXBvbmVudCAtLT5cbiAgICAgICAgPGRpdiAgY2xhc3M9XCJpdGVtLWhlYWRlclwiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWF0LWgyXCI+IHt7IGNvbmZpZy5pdGVtTGFiZWxCdWlsZGVyID8gY29uZmlnLml0ZW1MYWJlbEJ1aWxkZXIoaSkgOiAnSXRlbSAnICsgKGkgKyAxKSB9fSA8L3NwYW4+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICpuZ0lmPVwiaSArIDEgPiBjb25maWcubWluTGlzdExlbmd0aFwiPlxuICAgICAgICAgICAgPG1hdC1pY29uIChjbGljayk9XCJjbGlja0RlbGV0ZShpKVwiPmRlbGV0ZTwvbWF0LWljb24+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgW2Zvcm1Hcm91cF09XCJpdGVtQ29udHJvbFwiPlxuICAgICAgICAgIDwhLS0gVE9ETzogaWYgY2hpcGxpc3RzIGRpZG4ndCBuZWVkIHRvIGhhdmUgbGFiZWxzIG1peGVkIGluIHdpdGggdGhlaXIgdmFsdWVzIHdlIGNvdWxkIHVzZSBbdmFsdWVdPVwiY29udHJvbC52YWx1ZVwiIGJlbG93IC0tPlxuICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBmaWVsZCBvZiBjb25maWcuaXRlbUNvbmZpZy5maWVsZHM7XCJcbiAgICAgICAgICAgIGNyaXNwckZpZWxkXG4gICAgICAgICAgICBbdmFsdWVdPVwiYmxvY2tWYWx1ZSA/IG51bGwgOiB2YWx1ZSAmJiB2YWx1ZVtpXSB8IGluaXRpYWxDb250cm9sVmFsdWUgOiBmaWVsZFwiXG4gICAgICAgICAgICBbY29uZmlnXT1cImZpZWxkXCJcbiAgICAgICAgICAgIFtncm91cF09XCJpdGVtQ29udHJvbFwiPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLXRlbXBsYXRlICNkaXNwbGF5PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJkaXNwbGF5LWZpZWxkLWNvbnRhaW5lclwiXG4gICAgICAgICAgY3Jpc3ByRGlzcGxheUZpZWxkXG4gICAgICAgICAgW2NvbXBvbmVudF09XCJjb25maWcuZGlzcGxheUl0ZW1Db21wb25lbnRcIlxuICAgICAgICAgIFt2YWx1ZV09XCJpdGVtQ29udHJvbC52YWx1ZVwiXG4gICAgICAgICAgW2luZGV4XT1cImlcIj5cbiAgICAgICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiY2xpY2tFZGl0SXRlbShpKVwiPlxuICAgICAgICAgICAgPG1hdC1pY29uPmVkaXQ8L21hdC1pY29uPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiZ3JvdXAtZm9vdGVyXCI+XG4gICAgPGJ1dHRvblxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICBjbGFzcz1cImFkZFwiXG4gICAgICBtYXQtcmFpc2VkLWJ1dHRvblxuICAgICAgW2NvbG9yXT1cImNvbmZpZy5hZGRCdXR0b25Db2xvclwiXG4gICAgICAoY2xpY2spPVwiY2xpY2tBZGQoKVwiPlxuICAgICAge3tjb25maWcuYWRkSXRlbUxhYmVsIHx8IGNvbmZpZy5hZGRCdXR0b25MYWJlbH19XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuXG48L2NyaXNwci1maWVsZC1jb250YWluZXI+XG4iXX0=
@@ -1,2 +1,2 @@
1
- export * from './form-group-list.component';
1
+ export * from './form-group-list.component';
2
2
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NyaXNwci1mb3Jtcy9zcmMvbGliL2Zvcm0tZ3JvdXAtbGlzdC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDZCQUE2QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9mb3JtLWdyb3VwLWxpc3QuY29tcG9uZW50JztcbiJdfQ==
@@ -1,24 +1,24 @@
1
- import { CommonModule } from "@angular/common";
2
- import { NgModule } from "@angular/core";
3
- import { InitialControlValuePipe } from "./initial-control-value.pipe";
4
- import * as i0 from "@angular/core";
5
- export class CrisprPipesModule {
6
- }
7
- CrisprPipesModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: CrisprPipesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
8
- CrisprPipesModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.1", ngImport: i0, type: CrisprPipesModule, declarations: [InitialControlValuePipe], imports: [CommonModule], exports: [InitialControlValuePipe] });
9
- CrisprPipesModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: CrisprPipesModule, imports: [CommonModule] });
10
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: CrisprPipesModule, decorators: [{
11
- type: NgModule,
12
- args: [{
13
- imports: [
14
- CommonModule
15
- ],
16
- exports: [
17
- InitialControlValuePipe
18
- ],
19
- declarations: [
20
- InitialControlValuePipe
21
- ]
22
- }]
23
- }] });
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3Jpc3ByLXBpcGVzLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY3Jpc3ByLWZvcm1zL3NyYy9saWIvcGlwZXMvY3Jpc3ByLXBpcGVzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7QUFjdkUsTUFBTSxPQUFPLGlCQUFpQjs7OEdBQWpCLGlCQUFpQjsrR0FBakIsaUJBQWlCLGlCQUoxQix1QkFBdUIsYUFOdkIsWUFBWSxhQUdaLHVCQUF1QjsrR0FPZCxpQkFBaUIsWUFWMUIsWUFBWTsyRkFVSCxpQkFBaUI7a0JBWjdCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFO3dCQUNQLFlBQVk7cUJBQ2I7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLHVCQUF1QjtxQkFDeEI7b0JBQ0QsWUFBWSxFQUFFO3dCQUNaLHVCQUF1QjtxQkFDeEI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBJbml0aWFsQ29udHJvbFZhbHVlUGlwZSB9IGZyb20gXCIuL2luaXRpYWwtY29udHJvbC12YWx1ZS5waXBlXCI7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGVcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIEluaXRpYWxDb250cm9sVmFsdWVQaXBlXG4gIF0sXG4gIGRlY2xhcmF0aW9uczogW1xuICAgIEluaXRpYWxDb250cm9sVmFsdWVQaXBlXG4gIF1cbn0pXG5cbmV4cG9ydCBjbGFzcyBDcmlzcHJQaXBlc01vZHVsZSB7XG59XG4iXX0=
1
+ import { CommonModule } from "@angular/common";
2
+ import { NgModule } from "@angular/core";
3
+ import { InitialControlValuePipe } from "./initial-control-value.pipe";
4
+ import * as i0 from "@angular/core";
5
+ export class CrisprPipesModule {
6
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: CrisprPipesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
7
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.9", ngImport: i0, type: CrisprPipesModule, declarations: [InitialControlValuePipe], imports: [CommonModule], exports: [InitialControlValuePipe] }); }
8
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: CrisprPipesModule, imports: [CommonModule] }); }
9
+ }
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: CrisprPipesModule, decorators: [{
11
+ type: NgModule,
12
+ args: [{
13
+ imports: [
14
+ CommonModule
15
+ ],
16
+ exports: [
17
+ InitialControlValuePipe
18
+ ],
19
+ declarations: [
20
+ InitialControlValuePipe
21
+ ]
22
+ }]
23
+ }] });
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3Jpc3ByLXBpcGVzLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY3Jpc3ByLWZvcm1zL3NyYy9saWIvcGlwZXMvY3Jpc3ByLXBpcGVzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7QUFjdkUsTUFBTSxPQUFPLGlCQUFpQjs4R0FBakIsaUJBQWlCOytHQUFqQixpQkFBaUIsaUJBSjFCLHVCQUF1QixhQU52QixZQUFZLGFBR1osdUJBQXVCOytHQU9kLGlCQUFpQixZQVYxQixZQUFZOzsyRkFVSCxpQkFBaUI7a0JBWjdCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFO3dCQUNQLFlBQVk7cUJBQ2I7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLHVCQUF1QjtxQkFDeEI7b0JBQ0QsWUFBWSxFQUFFO3dCQUNaLHVCQUF1QjtxQkFDeEI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBJbml0aWFsQ29udHJvbFZhbHVlUGlwZSB9IGZyb20gXCIuL2luaXRpYWwtY29udHJvbC12YWx1ZS5waXBlXCI7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGVcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIEluaXRpYWxDb250cm9sVmFsdWVQaXBlXG4gIF0sXG4gIGRlY2xhcmF0aW9uczogW1xuICAgIEluaXRpYWxDb250cm9sVmFsdWVQaXBlXG4gIF1cbn0pXG5cbmV4cG9ydCBjbGFzcyBDcmlzcHJQaXBlc01vZHVsZSB7XG59XG4iXX0=
@@ -0,0 +1,20 @@
1
+ import { Pipe } from '@angular/core';
2
+ import { isControlConfig, } from '../utils';
3
+ import * as i0 from "@angular/core";
4
+ export class InitialControlValuePipe {
5
+ // TODO: does changing any to unknown break anything?
6
+ transform(initialFormValue, fieldConfig) {
7
+ return initialFormValue && isControlConfig(fieldConfig)
8
+ ? initialFormValue[fieldConfig.controlName] || null
9
+ : null;
10
+ }
11
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: InitialControlValuePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
12
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.0.9", ngImport: i0, type: InitialControlValuePipe, name: "initialControlValue" }); }
13
+ }
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: InitialControlValuePipe, decorators: [{
15
+ type: Pipe,
16
+ args: [{
17
+ name: 'initialControlValue',
18
+ }]
19
+ }] });
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5pdGlhbC1jb250cm9sLXZhbHVlLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NyaXNwci1mb3Jtcy9zcmMvbGliL3BpcGVzL2luaXRpYWwtY29udHJvbC12YWx1ZS5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ3BELE9BQU8sRUFHTCxlQUFlLEdBQ2hCLE1BQU0sVUFBVSxDQUFDOztBQUtsQixNQUFNLE9BQU8sdUJBQXVCO0lBQ2xDLHFEQUFxRDtJQUNyRCxTQUFTLENBQ1AsZ0JBQXVELEVBQ3ZELFdBQTJCO1FBRTNCLE9BQU8sZ0JBQWdCLElBQUksZUFBZSxDQUFDLFdBQVcsQ0FBQztZQUNyRCxDQUFDLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxJQUFJLElBQUk7WUFDbkQsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUNYLENBQUM7OEdBVFUsdUJBQXVCOzRHQUF2Qix1QkFBdUI7OzJGQUF2Qix1QkFBdUI7a0JBSG5DLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLHFCQUFxQjtpQkFDNUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBDb250cm9sVmFsdWUsXG4gIEFueUZpZWxkQ29uZmlnLFxuICBpc0NvbnRyb2xDb25maWcsXG59IGZyb20gJy4uL3V0aWxzJztcblxuQFBpcGUoe1xuICBuYW1lOiAnaW5pdGlhbENvbnRyb2xWYWx1ZScsXG59KVxuZXhwb3J0IGNsYXNzIEluaXRpYWxDb250cm9sVmFsdWVQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIC8vIFRPRE86IGRvZXMgY2hhbmdpbmcgYW55IHRvIHVua25vd24gYnJlYWsgYW55dGhpbmc/XG4gIHRyYW5zZm9ybShcbiAgICBpbml0aWFsRm9ybVZhbHVlOiB7IFtrZXk6IHN0cmluZ106IENvbnRyb2xWYWx1ZSB8IGFueSB9LFxuICAgIGZpZWxkQ29uZmlnOiBBbnlGaWVsZENvbmZpZ1xuICApOiB1bmtub3duIHtcbiAgICByZXR1cm4gaW5pdGlhbEZvcm1WYWx1ZSAmJiBpc0NvbnRyb2xDb25maWcoZmllbGRDb25maWcpXG4gICAgICA/IGluaXRpYWxGb3JtVmFsdWVbZmllbGRDb25maWcuY29udHJvbE5hbWVdIHx8IG51bGxcbiAgICAgIDogbnVsbDtcbiAgfVxufVxuIl19
@@ -1,3 +1,3 @@
1
- export * from './crispr-forms.module';
2
- export * from './form/form.component';
1
+ export * from './crispr-forms.module';
2
+ export * from './form/form.component';
3
3
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY3Jpc3ByLWZvcm1zL3NyYy9saWIvcHVibGljX2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsdUJBQXVCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NyaXNwci1mb3Jtcy5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9mb3JtL2Zvcm0uY29tcG9uZW50JztcbiJdfQ==
@@ -1,3 +1,3 @@
1
- export * from './sub-group.component';
2
- export * from './sub-group.module';
1
+ export * from './sub-group.component';
2
+ export * from './sub-group.module';
3
3
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NyaXNwci1mb3Jtcy9zcmMvbGliL3N1Yi1ncm91cC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsb0JBQW9CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3N1Yi1ncm91cC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9zdWItZ3JvdXAubW9kdWxlJztcbiJdfQ==
@@ -0,0 +1,20 @@
1
+ import { Component } from '@angular/core';
2
+ import { crisprControlMixin, CrisprFieldComponent, } from '../utils';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/common";
5
+ import * as i2 from "../field.directive";
6
+ import * as i3 from "../ui/field-container/field-container.component";
7
+ import * as i4 from "../pipes/initial-control-value.pipe";
8
+ const FormGroupMixin = crisprControlMixin(CrisprFieldComponent);
9
+ export class SubGroupComponent extends FormGroupMixin {
10
+ ngOnInit() {
11
+ super.ngOnInit();
12
+ }
13
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: SubGroupComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
14
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: SubGroupComponent, selector: "crispr-sub-group", usesInheritance: true, ngImport: i0, template: "<crispr-field-container\n [config]=\"config\"\n [group]=\"group\">\n <ng-container\n *ngFor=\"let fieldConfig of config.fields;\"\n crisprField\n [value]=\"value | initialControlValue : fieldConfig\"\n [config]=\"fieldConfig\"\n [group]=\"control\">\n </ng-container>\n</crispr-field-container>\n\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.CrisprFieldDirective, selector: "[crisprField]", inputs: ["config", "group", "value"] }, { kind: "component", type: i3.FieldContainerComponent, selector: "crispr-field-container", inputs: ["config", "group", "inlineField"] }, { kind: "pipe", type: i4.InitialControlValuePipe, name: "initialControlValue" }], preserveWhitespaces: true }); }
15
+ }
16
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: SubGroupComponent, decorators: [{
17
+ type: Component,
18
+ args: [{ selector: 'crispr-sub-group', template: "<crispr-field-container\n [config]=\"config\"\n [group]=\"group\">\n <ng-container\n *ngFor=\"let fieldConfig of config.fields;\"\n crisprField\n [value]=\"value | initialControlValue : fieldConfig\"\n [config]=\"fieldConfig\"\n [group]=\"control\">\n </ng-container>\n</crispr-field-container>\n\n" }]
19
+ }] });
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ViLWdyb3VwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY3Jpc3ByLWZvcm1zL3NyYy9saWIvc3ViLWdyb3VwL3N1Yi1ncm91cC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NyaXNwci1mb3Jtcy9zcmMvbGliL3N1Yi1ncm91cC9zdWItZ3JvdXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUdsRCxPQUFPLEVBQ0wsa0JBQWtCLEVBQ2xCLG9CQUFvQixHQUVyQixNQUFNLFVBQVUsQ0FBQzs7Ozs7O0FBRWxCLE1BQU0sY0FBYyxHQUFHLGtCQUFrQixDQUFpQixvQkFBb0IsQ0FBQyxDQUFDO0FBVWhGLE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxjQUFjO0lBR25ELFFBQVE7UUFDTixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDbkIsQ0FBQzs4R0FMVSxpQkFBaUI7a0dBQWpCLGlCQUFpQiwrRUNuQjlCLCtUQVlBOzsyRkRPYSxpQkFBaUI7a0JBUjdCLFNBQVM7K0JBQ0Usa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHtcbiAgY3Jpc3ByQ29udHJvbE1peGluLFxuICBDcmlzcHJGaWVsZENvbXBvbmVudCxcbiAgU3ViR3JvdXBDb25maWcsXG59IGZyb20gJy4uL3V0aWxzJztcblxuY29uc3QgRm9ybUdyb3VwTWl4aW4gPSBjcmlzcHJDb250cm9sTWl4aW48U3ViR3JvdXBDb25maWc+KENyaXNwckZpZWxkQ29tcG9uZW50KTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY3Jpc3ByLXN1Yi1ncm91cCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9zdWItZ3JvdXAuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zdWItZ3JvdXAuY29tcG9uZW50LnNjc3MnXSxcbiAgLy8gVE9ETzogY2hpbGQgaW1hZ2UgdXBsb2FkIGNvbnRyb2xzIGFyZW4ndCBnZXR0aW5nIHVwZGF0ZWQgYXBwcm9wcmlhdGVseSB3aGVuIGluIE9uUHVzaCBzdHJhdGVneS5cbiAgLy8gV2UgY2FuIGFkZCBjZHIgdG8gdGhpcyBjbGFzcywgYnV0IGV2ZXJ5dGhpbmcgdGhhdCBleHRlbmRzIGl0IHdpbGwgbmVlZCB0aGUgY2RyIGF0dGFjaGVkXG4gIC8vIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFN1Ykdyb3VwQ29tcG9uZW50IGV4dGVuZHMgRm9ybUdyb3VwTWl4aW4gaW1wbGVtZW50cyBPbkluaXQge1xuICBncm91cDogRm9ybUdyb3VwO1xuXG4gIG5nT25Jbml0KCkge1xuICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gIH1cbn1cbiIsIjxjcmlzcHItZmllbGQtY29udGFpbmVyXG4gIFtjb25maWddPVwiY29uZmlnXCJcbiAgW2dyb3VwXT1cImdyb3VwXCI+XG4gIDxuZy1jb250YWluZXJcbiAgICAqbmdGb3I9XCJsZXQgZmllbGRDb25maWcgb2YgY29uZmlnLmZpZWxkcztcIlxuICAgIGNyaXNwckZpZWxkXG4gICAgW3ZhbHVlXT1cInZhbHVlIHwgaW5pdGlhbENvbnRyb2xWYWx1ZSA6IGZpZWxkQ29uZmlnXCJcbiAgICBbY29uZmlnXT1cImZpZWxkQ29uZmlnXCJcbiAgICBbZ3JvdXBdPVwiY29udHJvbFwiPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvY3Jpc3ByLWZpZWxkLWNvbnRhaW5lcj5cblxuIl19