@tft/crispr-forms 14.0.1 → 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 (488) 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} +244 -235
  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 -192
  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 -15
  154. package/src/lib/display-field.directive.d.ts +23 -0
  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 -36
  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/src/lib/utils/abstracts/crispr-display-field.abstract.d.ts +22 -0
  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 -3
  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 -17
  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 -57
  266. package/esm2020/src/lib/field-component-map.const.mjs +0 -27
  267. package/esm2020/src/lib/field.directive.mjs +0 -69
  268. package/esm2020/src/lib/form/form.component.mjs +0 -63
  269. package/esm2020/src/lib/form-group-list/form-group-list.component.mjs +0 -93
  270. package/esm2020/src/lib/pipes/initial-control-value.pipe.mjs +0 -21
  271. package/esm2020/src/lib/sub-group/sub-group.component.mjs +0 -21
  272. package/esm2020/src/lib/sub-group/sub-group.module.mjs +0 -42
  273. package/esm2020/ui/autocomplete-chiplist-field/autocomplete-chiplist-field.component.mjs +0 -130
  274. package/esm2020/ui/autocomplete-chiplist-field/public-api.mjs +0 -2
  275. package/esm2020/ui/autocomplete-chiplist-field/tft-crispr-forms-ui-autocomplete-chiplist-field.mjs +0 -5
  276. package/esm2020/ui/autocomplete-field/autocomplete-field.component.mjs +0 -93
  277. package/esm2020/ui/autocomplete-field/public-api.mjs +0 -2
  278. package/esm2020/ui/autocomplete-field/tft-crispr-forms-ui-autocomplete-field.mjs +0 -5
  279. package/esm2020/ui/button/button.component.mjs +0 -49
  280. package/esm2020/ui/button/public-api.mjs +0 -2
  281. package/esm2020/ui/button/tft-crispr-forms-ui-button.mjs +0 -5
  282. package/esm2020/ui/checkbox-field/checkbox-field.component.mjs +0 -42
  283. package/esm2020/ui/checkbox-field/public-api.mjs +0 -2
  284. package/esm2020/ui/checkbox-field/tft-crispr-forms-ui-checkbox-field.mjs +0 -5
  285. package/esm2020/ui/datepicker-field/datepicker-field.component.mjs +0 -63
  286. package/esm2020/ui/datepicker-field/public-api.mjs +0 -2
  287. package/esm2020/ui/datepicker-field/tft-crispr-forms-ui-datepicker-field.mjs +0 -5
  288. package/esm2020/ui/divider/divider.component.mjs +0 -28
  289. package/esm2020/ui/divider/public-api.mjs +0 -2
  290. package/esm2020/ui/divider/tft-crispr-forms-ui-divider.mjs +0 -5
  291. package/esm2020/ui/field-container/field-container.component.mjs +0 -58
  292. package/esm2020/ui/field-container/public-api.mjs +0 -2
  293. package/esm2020/ui/field-container/tft-crispr-forms-ui-field-container.mjs +0 -5
  294. package/esm2020/ui/file-dropzone/file-dropzone.directive.mjs +0 -40
  295. package/esm2020/ui/file-dropzone/public-api.mjs +0 -2
  296. package/esm2020/ui/file-dropzone/tft-crispr-forms-ui-file-dropzone.mjs +0 -5
  297. package/esm2020/ui/file-upload-field/file-upload-field.component.mjs +0 -108
  298. package/esm2020/ui/file-upload-field/public-api.mjs +0 -2
  299. package/esm2020/ui/file-upload-field/tft-crispr-forms-ui-file-upload-field.mjs +0 -5
  300. package/esm2020/ui/heading/heading.component.mjs +0 -31
  301. package/esm2020/ui/heading/public-api.mjs +0 -2
  302. package/esm2020/ui/heading/tft-crispr-forms-ui-heading.mjs +0 -5
  303. package/esm2020/ui/image-upload-field/image-upload-field.component.mjs +0 -179
  304. package/esm2020/ui/image-upload-field/public-api.mjs +0 -2
  305. package/esm2020/ui/image-upload-field/tft-crispr-forms-ui-image-upload-field.mjs +0 -5
  306. package/esm2020/ui/info/info.component.mjs +0 -23
  307. package/esm2020/ui/info/public-api.mjs +0 -2
  308. package/esm2020/ui/info/tft-crispr-forms-ui-info.mjs +0 -5
  309. package/esm2020/ui/input-field/input-field.component.mjs +0 -41
  310. package/esm2020/ui/input-field/public-api.mjs +0 -2
  311. package/esm2020/ui/input-field/tft-crispr-forms-ui-input-field.mjs +0 -5
  312. package/esm2020/ui/option/option.component.mjs +0 -19
  313. package/esm2020/ui/option/public-api.mjs +0 -2
  314. package/esm2020/ui/option/tft-crispr-forms-ui-option.mjs +0 -5
  315. package/esm2020/ui/public-api.mjs +0 -7
  316. package/esm2020/ui/radio-field/public-api.mjs +0 -2
  317. package/esm2020/ui/radio-field/radio-field.component.mjs +0 -39
  318. package/esm2020/ui/radio-field/tft-crispr-forms-ui-radio-field.mjs +0 -5
  319. package/esm2020/ui/select-field/public-api.mjs +0 -2
  320. package/esm2020/ui/select-field/select-field.component.mjs +0 -73
  321. package/esm2020/ui/select-field/tft-crispr-forms-ui-select-field.mjs +0 -5
  322. package/esm2020/ui/selected-file/public-api.mjs +0 -2
  323. package/esm2020/ui/selected-file/selected-file.component.mjs +0 -26
  324. package/esm2020/ui/selected-file/tft-crispr-forms-ui-selected-file.mjs +0 -5
  325. package/esm2020/ui/slider-field/public-api.mjs +0 -2
  326. package/esm2020/ui/slider-field/slider-field.component.mjs +0 -44
  327. package/esm2020/ui/slider-field/tft-crispr-forms-ui-slider-field.mjs +0 -5
  328. package/esm2020/ui/textarea-field/public-api.mjs +0 -2
  329. package/esm2020/ui/textarea-field/textarea-field.component.mjs +0 -42
  330. package/esm2020/ui/textarea-field/tft-crispr-forms-ui-textarea-field.mjs +0 -5
  331. package/esm2020/ui/tft-crispr-forms-ui.mjs +0 -5
  332. package/esm2020/ui/unit-conversion-field/public-api.mjs +0 -2
  333. package/esm2020/ui/unit-conversion-field/tft-crispr-forms-ui-unit-conversion-field.mjs +0 -5
  334. package/esm2020/ui/unit-conversion-field/unit-conversion-field.component.mjs +0 -84
  335. package/esm2020/utils/abstracts/autocomplete-field.abstract.mjs +0 -30
  336. package/esm2020/utils/abstracts/crispr-control.mixin.mjs +0 -27
  337. package/esm2020/utils/abstracts/crispr-field.abstract.mjs +0 -20
  338. package/esm2020/utils/abstracts/index.mjs +0 -4
  339. package/esm2020/utils/functions/buildFormGroupFromConfig.mjs +0 -28
  340. package/esm2020/utils/functions/callOptionsIfFunction.mjs +0 -4
  341. package/esm2020/utils/functions/createControlForType.mjs +0 -19
  342. package/esm2020/utils/functions/filterOptionsByLabel.mjs +0 -11
  343. package/esm2020/utils/functions/image-compression.helpers.mjs +0 -50
  344. package/esm2020/utils/functions/index.mjs +0 -8
  345. package/esm2020/utils/functions/isControlConfig.mjs +0 -7
  346. package/esm2020/utils/functions/observablifyOptions.mjs +0 -29
  347. package/esm2020/utils/models/autocomplete-chiplist-field.config.mjs +0 -2
  348. package/esm2020/utils/models/autocomplete-field.config.mjs +0 -2
  349. package/esm2020/utils/models/button.config.mjs +0 -2
  350. package/esm2020/utils/models/checkbox-field.config.mjs +0 -2
  351. package/esm2020/utils/models/crispr-field.config.mjs +0 -23
  352. package/esm2020/utils/models/datepicker-field.config.mjs +0 -2
  353. package/esm2020/utils/models/divider.config.mjs +0 -2
  354. package/esm2020/utils/models/file-upload-field.config.mjs +0 -2
  355. package/esm2020/utils/models/form-group-list.config.mjs +0 -2
  356. package/esm2020/utils/models/heading.config.mjs +0 -3
  357. package/esm2020/utils/models/image-upload-field.config.mjs +0 -2
  358. package/esm2020/utils/models/index.mjs +0 -18
  359. package/esm2020/utils/models/input-field.config.mjs +0 -2
  360. package/esm2020/utils/models/radio-field.config.mjs +0 -2
  361. package/esm2020/utils/models/select-field.config.mjs +0 -2
  362. package/esm2020/utils/models/slider-field.config.mjs +0 -2
  363. package/esm2020/utils/models/textarea-field.config.mjs +0 -2
  364. package/esm2020/utils/models/unit-conversion-field.config.mjs +0 -2
  365. package/esm2020/utils/operators/form.operators.mjs +0 -24
  366. package/esm2020/utils/operators/index.mjs +0 -2
  367. package/esm2020/utils/public-api.mjs +0 -5
  368. package/esm2020/utils/tft-crispr-forms-utils.mjs +0 -5
  369. package/fesm2015/tft-crispr-forms-ui-autocomplete-chiplist-field.mjs +0 -138
  370. package/fesm2015/tft-crispr-forms-ui-autocomplete-chiplist-field.mjs.map +0 -1
  371. package/fesm2015/tft-crispr-forms-ui-autocomplete-field.mjs +0 -101
  372. package/fesm2015/tft-crispr-forms-ui-autocomplete-field.mjs.map +0 -1
  373. package/fesm2015/tft-crispr-forms-ui-button.mjs +0 -55
  374. package/fesm2015/tft-crispr-forms-ui-button.mjs.map +0 -1
  375. package/fesm2015/tft-crispr-forms-ui-checkbox-field.mjs +0 -49
  376. package/fesm2015/tft-crispr-forms-ui-checkbox-field.mjs.map +0 -1
  377. package/fesm2015/tft-crispr-forms-ui-datepicker-field.mjs +0 -71
  378. package/fesm2015/tft-crispr-forms-ui-datepicker-field.mjs.map +0 -1
  379. package/fesm2015/tft-crispr-forms-ui-divider.mjs +0 -34
  380. package/fesm2015/tft-crispr-forms-ui-divider.mjs.map +0 -1
  381. package/fesm2015/tft-crispr-forms-ui-field-container.mjs +0 -64
  382. package/fesm2015/tft-crispr-forms-ui-field-container.mjs.map +0 -1
  383. package/fesm2015/tft-crispr-forms-ui-file-dropzone.mjs +0 -47
  384. package/fesm2015/tft-crispr-forms-ui-file-dropzone.mjs.map +0 -1
  385. package/fesm2015/tft-crispr-forms-ui-file-upload-field.mjs +0 -117
  386. package/fesm2015/tft-crispr-forms-ui-file-upload-field.mjs.map +0 -1
  387. package/fesm2015/tft-crispr-forms-ui-heading.mjs +0 -37
  388. package/fesm2015/tft-crispr-forms-ui-heading.mjs.map +0 -1
  389. package/fesm2015/tft-crispr-forms-ui-image-upload-field.mjs +0 -182
  390. package/fesm2015/tft-crispr-forms-ui-image-upload-field.mjs.map +0 -1
  391. package/fesm2015/tft-crispr-forms-ui-info.mjs +0 -30
  392. package/fesm2015/tft-crispr-forms-ui-info.mjs.map +0 -1
  393. package/fesm2015/tft-crispr-forms-ui-input-field.mjs +0 -48
  394. package/fesm2015/tft-crispr-forms-ui-input-field.mjs.map +0 -1
  395. package/fesm2015/tft-crispr-forms-ui-option.mjs +0 -26
  396. package/fesm2015/tft-crispr-forms-ui-option.mjs.map +0 -1
  397. package/fesm2015/tft-crispr-forms-ui-radio-field.mjs +0 -46
  398. package/fesm2015/tft-crispr-forms-ui-radio-field.mjs.map +0 -1
  399. package/fesm2015/tft-crispr-forms-ui-select-field.mjs +0 -81
  400. package/fesm2015/tft-crispr-forms-ui-select-field.mjs.map +0 -1
  401. package/fesm2015/tft-crispr-forms-ui-selected-file.mjs +0 -33
  402. package/fesm2015/tft-crispr-forms-ui-selected-file.mjs.map +0 -1
  403. package/fesm2015/tft-crispr-forms-ui-slider-field.mjs +0 -51
  404. package/fesm2015/tft-crispr-forms-ui-slider-field.mjs.map +0 -1
  405. package/fesm2015/tft-crispr-forms-ui-textarea-field.mjs +0 -49
  406. package/fesm2015/tft-crispr-forms-ui-textarea-field.mjs.map +0 -1
  407. package/fesm2015/tft-crispr-forms-ui-unit-conversion-field.mjs +0 -93
  408. package/fesm2015/tft-crispr-forms-ui-unit-conversion-field.mjs.map +0 -1
  409. package/fesm2015/tft-crispr-forms-ui.mjs +0 -12
  410. package/fesm2015/tft-crispr-forms-ui.mjs.map +0 -1
  411. package/fesm2015/tft-crispr-forms-utils.mjs +0 -270
  412. package/fesm2015/tft-crispr-forms-utils.mjs.map +0 -1
  413. package/fesm2015/tft-crispr-forms.mjs +0 -379
  414. package/fesm2015/tft-crispr-forms.mjs.map +0 -1
  415. package/fesm2020/tft-crispr-forms-ui-autocomplete-chiplist-field.mjs +0 -137
  416. package/fesm2020/tft-crispr-forms-ui-autocomplete-chiplist-field.mjs.map +0 -1
  417. package/fesm2020/tft-crispr-forms-ui-autocomplete-field.mjs +0 -100
  418. package/fesm2020/tft-crispr-forms-ui-autocomplete-field.mjs.map +0 -1
  419. package/fesm2020/tft-crispr-forms-ui-button.mjs +0 -55
  420. package/fesm2020/tft-crispr-forms-ui-button.mjs.map +0 -1
  421. package/fesm2020/tft-crispr-forms-ui-checkbox-field.mjs +0 -49
  422. package/fesm2020/tft-crispr-forms-ui-checkbox-field.mjs.map +0 -1
  423. package/fesm2020/tft-crispr-forms-ui-datepicker-field.mjs +0 -70
  424. package/fesm2020/tft-crispr-forms-ui-datepicker-field.mjs.map +0 -1
  425. package/fesm2020/tft-crispr-forms-ui-divider.mjs +0 -34
  426. package/fesm2020/tft-crispr-forms-ui-divider.mjs.map +0 -1
  427. package/fesm2020/tft-crispr-forms-ui-field-container.mjs +0 -65
  428. package/fesm2020/tft-crispr-forms-ui-field-container.mjs.map +0 -1
  429. package/fesm2020/tft-crispr-forms-ui-file-dropzone.mjs +0 -47
  430. package/fesm2020/tft-crispr-forms-ui-file-dropzone.mjs.map +0 -1
  431. package/fesm2020/tft-crispr-forms-ui-file-upload-field.mjs +0 -115
  432. package/fesm2020/tft-crispr-forms-ui-file-upload-field.mjs.map +0 -1
  433. package/fesm2020/tft-crispr-forms-ui-heading.mjs +0 -37
  434. package/fesm2020/tft-crispr-forms-ui-heading.mjs.map +0 -1
  435. package/fesm2020/tft-crispr-forms-ui-image-upload-field.mjs.map +0 -1
  436. package/fesm2020/tft-crispr-forms-ui-info.mjs +0 -30
  437. package/fesm2020/tft-crispr-forms-ui-info.mjs.map +0 -1
  438. package/fesm2020/tft-crispr-forms-ui-input-field.mjs +0 -48
  439. package/fesm2020/tft-crispr-forms-ui-input-field.mjs.map +0 -1
  440. package/fesm2020/tft-crispr-forms-ui-option.mjs +0 -26
  441. package/fesm2020/tft-crispr-forms-ui-option.mjs.map +0 -1
  442. package/fesm2020/tft-crispr-forms-ui-radio-field.mjs +0 -46
  443. package/fesm2020/tft-crispr-forms-ui-radio-field.mjs.map +0 -1
  444. package/fesm2020/tft-crispr-forms-ui-select-field.mjs +0 -80
  445. package/fesm2020/tft-crispr-forms-ui-select-field.mjs.map +0 -1
  446. package/fesm2020/tft-crispr-forms-ui-selected-file.mjs +0 -33
  447. package/fesm2020/tft-crispr-forms-ui-selected-file.mjs.map +0 -1
  448. package/fesm2020/tft-crispr-forms-ui-slider-field.mjs +0 -51
  449. package/fesm2020/tft-crispr-forms-ui-slider-field.mjs.map +0 -1
  450. package/fesm2020/tft-crispr-forms-ui-textarea-field.mjs +0 -49
  451. package/fesm2020/tft-crispr-forms-ui-textarea-field.mjs.map +0 -1
  452. package/fesm2020/tft-crispr-forms-ui-unit-conversion-field.mjs +0 -91
  453. package/fesm2020/tft-crispr-forms-ui-unit-conversion-field.mjs.map +0 -1
  454. package/fesm2020/tft-crispr-forms-ui.mjs +0 -12
  455. package/fesm2020/tft-crispr-forms-ui.mjs.map +0 -1
  456. package/fesm2020/tft-crispr-forms-utils.mjs.map +0 -1
  457. package/fesm2020/tft-crispr-forms.mjs +0 -377
  458. package/fesm2020/tft-crispr-forms.mjs.map +0 -1
  459. package/tft-crispr-forms-14.0.1.tgz +0 -0
  460. package/ui/README.md +0 -3
  461. package/ui/autocomplete-chiplist-field/index.d.ts +0 -5
  462. package/ui/autocomplete-field/index.d.ts +0 -5
  463. package/ui/button/index.d.ts +0 -5
  464. package/ui/checkbox-field/checkbox-field.component.d.ts +0 -21
  465. package/ui/checkbox-field/index.d.ts +0 -5
  466. package/ui/datepicker-field/index.d.ts +0 -5
  467. package/ui/divider/index.d.ts +0 -5
  468. package/ui/field-container/index.d.ts +0 -5
  469. package/ui/file-dropzone/index.d.ts +0 -5
  470. package/ui/file-upload-field/index.d.ts +0 -5
  471. package/ui/heading/index.d.ts +0 -5
  472. package/ui/image-upload-field/index.d.ts +0 -5
  473. package/ui/info/index.d.ts +0 -5
  474. package/ui/input-field/index.d.ts +0 -5
  475. package/ui/input-field/input-field.component.d.ts +0 -22
  476. package/ui/option/index.d.ts +0 -5
  477. package/ui/public-api.d.ts +0 -5
  478. package/ui/radio-field/index.d.ts +0 -5
  479. package/ui/radio-field/radio-field.component.d.ts +0 -23
  480. package/ui/select-field/index.d.ts +0 -5
  481. package/ui/selected-file/index.d.ts +0 -5
  482. package/ui/slider-field/index.d.ts +0 -5
  483. package/ui/slider-field/slider-field.component.d.ts +0 -25
  484. package/ui/textarea-field/index.d.ts +0 -5
  485. package/ui/textarea-field/textarea-field.component.d.ts +0 -21
  486. package/ui/unit-conversion-field/index.d.ts +0 -5
  487. package/utils/index.d.ts +0 -5
  488. /package/{utils → src/lib/utils}/README.md +0 -0
@@ -1,377 +0,0 @@
1
- import * as i0 from '@angular/core';
2
- import { Directive, Input, Pipe, NgModule, EventEmitter, Component, Output, ViewChild, ChangeDetectionStrategy } from '@angular/core';
3
- import * as i1 from '@angular/common';
4
- import { CommonModule } from '@angular/common';
5
- import * as i2 from '@angular/forms';
6
- import { FormGroup, ReactiveFormsModule } from '@angular/forms';
7
- import * as i3$1 from '@tft/form-validation-handler';
8
- import { FormValidationHandlerModule } from '@tft/form-validation-handler';
9
- import 'rxjs';
10
- import { isControlConfig, ControlType, buildFormGroupFromConfig, crisprControlMixin, CrisprFieldComponent, createControlForType } from '@tft/crispr-forms/utils';
11
- export * from '@tft/crispr-forms/utils';
12
- import * as i2$1 from '@angular/material/button';
13
- import { MatButtonModule } from '@angular/material/button';
14
- import * as i3$2 from '@angular/material/icon';
15
- import { MatIconModule } from '@angular/material/icon';
16
- import * as i3 from '@tft/crispr-forms/ui';
17
- import { FieldContainerComponent } from '@tft/crispr-forms/ui';
18
- export * from '@tft/crispr-forms/ui';
19
-
20
- const FIELD_COMPONENTS = {
21
- groupList: () => Promise.resolve().then(function () { return index$1; }).then(({ FormGroupListComponent }) => FormGroupListComponent),
22
- subGroup: () => Promise.resolve().then(function () { return index; }).then(({ SubGroupComponent }) => SubGroupComponent),
23
- button: () => import('@tft/crispr-forms/ui/button').then(({ ButtonComponent }) => ButtonComponent),
24
- input: () => import('@tft/crispr-forms/ui/input-field').then(({ InputFieldComponent }) => InputFieldComponent),
25
- select: () => import('@tft/crispr-forms/ui/select-field').then(({ SelectFieldComponent }) => SelectFieldComponent),
26
- radio: () => import('@tft/crispr-forms/ui/radio-field').then(({ RadioFieldComponent }) => RadioFieldComponent),
27
- autocomplete: () => import('@tft/crispr-forms/ui/autocomplete-field').then(({ AutocompleteFieldComponent }) => AutocompleteFieldComponent),
28
- autocompleteChiplist: () => import('@tft/crispr-forms/ui/autocomplete-chiplist-field').then(({ AutocompleteChiplistFieldComponent }) => AutocompleteChiplistFieldComponent),
29
- textarea: () => import('@tft/crispr-forms/ui/textarea-field').then(({ TextareaFieldComponent }) => TextareaFieldComponent),
30
- checkbox: () => import('@tft/crispr-forms/ui/checkbox-field').then(({ CheckboxFieldComponent }) => CheckboxFieldComponent),
31
- slider: () => import('@tft/crispr-forms/ui/slider-field').then(({ SliderFieldComponent }) => SliderFieldComponent),
32
- datepicker: () => import('@tft/crispr-forms/ui/datepicker-field').then(({ DatepickerFieldComponent }) => DatepickerFieldComponent),
33
- fileUpload: () => import('@tft/crispr-forms/ui/file-upload-field').then(({ FileUploadFieldComponent }) => FileUploadFieldComponent),
34
- imageUpload: () => import('@tft/crispr-forms/ui/image-upload-field').then(({ ImageUploadFieldComponent }) => ImageUploadFieldComponent),
35
- heading: () => import('@tft/crispr-forms/ui').then(({ HeadingComponent }) => HeadingComponent),
36
- divider: () => import('@tft/crispr-forms/ui/divider').then(({ DividerComponent }) => DividerComponent),
37
- unitConversion: () => import('@tft/crispr-forms/ui/unit-conversion-field').then(({ UnitConversionFieldComponent }) => UnitConversionFieldComponent)
38
- };
39
- function isControlComponent(component) {
40
- return component && isControlConfig(component.config) && 'value' in component; // || component.config.controlType === ControlType.BUTTON;
41
- }
42
- function isControlOrButtonComponent(component) {
43
- return isControlComponent(component) || component.config.controlType === ControlType.BUTTON;
44
- }
45
-
46
- class CrisprFieldDirective {
47
- constructor(container, renderer, cdr) {
48
- this.container = container;
49
- this.renderer = renderer;
50
- this.cdr = cdr;
51
- }
52
- set value(value) {
53
- this._value = value;
54
- // This is needed to keep the group list from resetting control values to the initial input value
55
- this.updateComponentValue(value);
56
- }
57
- ;
58
- get value() {
59
- return this._value;
60
- }
61
- async ngOnInit() {
62
- /**
63
- * create component and set values from config on its instance
64
- */
65
- const component = this.config.component || await FIELD_COMPONENTS[this.config.controlType]();
66
- const componentRef = this.container.createComponent(component);
67
- this.component = componentRef.instance;
68
- this.component.config = this.config;
69
- if (isControlOrButtonComponent(this.component)) {
70
- this.component.group = this.group;
71
- }
72
- this.updateComponentValue(this.value);
73
- // adds any config classes to the dynamically generated component
74
- // doing this here keeps us from having to extend a base component into each field component individually
75
- if (!this.config.classes)
76
- return;
77
- this.config.classes.forEach((klass) => {
78
- // check for passing multiple classes in one array element
79
- if (klass.includes(' ')) {
80
- throw Error(`Improperly formatted class. '${klass}' cannot contain spaces.`);
81
- }
82
- else {
83
- this.renderer.addClass(componentRef.location.nativeElement, klass);
84
- }
85
- });
86
- }
87
- updateComponentValue(value) {
88
- if (isControlComponent(this.component)) {
89
- this.component.value = value;
90
- // SubGroups won't populate without this detectChanges
91
- this.cdr.detectChanges();
92
- }
93
- }
94
- }
95
- CrisprFieldDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: CrisprFieldDirective, deps: [{ token: i0.ViewContainerRef }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
96
- CrisprFieldDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.0.1", type: CrisprFieldDirective, isStandalone: true, selector: "[crisprField]", inputs: { config: "config", group: "group", value: "value" }, ngImport: i0 });
97
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: CrisprFieldDirective, decorators: [{
98
- type: Directive,
99
- args: [{
100
- selector: '[crisprField]',
101
- standalone: true
102
- }]
103
- }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { config: [{
104
- type: Input
105
- }], group: [{
106
- type: Input
107
- }], value: [{
108
- type: Input
109
- }] } });
110
-
111
- class InitialControlValuePipe {
112
- // TODO: does changing any to unknown break anything?
113
- transform(initialFormValue, fieldConfig) {
114
- return (initialFormValue && isControlConfig(fieldConfig))
115
- ? initialFormValue[fieldConfig.controlName] || null
116
- : null;
117
- }
118
- }
119
- InitialControlValuePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: InitialControlValuePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
120
- InitialControlValuePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "14.0.1", ngImport: i0, type: InitialControlValuePipe, name: "initialControlValue" });
121
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: InitialControlValuePipe, decorators: [{
122
- type: Pipe,
123
- args: [{
124
- name: 'initialControlValue'
125
- }]
126
- }] });
127
-
128
- class CrisprPipesModule {
129
- }
130
- CrisprPipesModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: CrisprPipesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
131
- CrisprPipesModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.1", ngImport: i0, type: CrisprPipesModule, declarations: [InitialControlValuePipe], imports: [CommonModule], exports: [InitialControlValuePipe] });
132
- CrisprPipesModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: CrisprPipesModule, imports: [CommonModule] });
133
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: CrisprPipesModule, decorators: [{
134
- type: NgModule,
135
- args: [{
136
- imports: [
137
- CommonModule
138
- ],
139
- exports: [
140
- InitialControlValuePipe
141
- ],
142
- declarations: [
143
- InitialControlValuePipe
144
- ]
145
- }]
146
- }] });
147
-
148
- class CrisprFormComponent {
149
- constructor() {
150
- this.form = new FormGroup({});
151
- this.value = null;
152
- this.submitted = new EventEmitter();
153
- // proxy value and status change events through to consuming component
154
- this.valueChanges = this.form.valueChanges;
155
- this.statusChanges = this.form.statusChanges;
156
- }
157
- ngOnInit() {
158
- // build out the form, note that we pass in the form as the third argument and the function modifies it
159
- buildFormGroupFromConfig(this.config, this.value, this.form);
160
- }
161
- handleSubmit() {
162
- this.form.markAllAsTouched();
163
- this.submitted.emit(this.form);
164
- }
165
- triggerSubmit() {
166
- this.submitTrigger.nativeElement.click();
167
- }
168
- }
169
- CrisprFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: CrisprFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
170
- CrisprFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.1", 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$1.ControlErrorsFormDirective, selector: "form", inputs: ["errorDictionary"] }, { kind: "directive", type: i3$1.ControlErrorContainerDirective, selector: "[controlErrorContainer], [formGroup]" }, { kind: "ngmodule", type: CrisprPipesModule }, { kind: "pipe", type: InitialControlValuePipe, name: "initialControlValue" }], preserveWhitespaces: true });
171
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: CrisprFormComponent, decorators: [{
172
- type: Component,
173
- args: [{ selector: 'crispr-form', standalone: true, imports: [
174
- CommonModule,
175
- CrisprFieldDirective,
176
- ReactiveFormsModule,
177
- FormValidationHandlerModule,
178
- CrisprPipesModule
179
- ], 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"] }]
180
- }], propDecorators: { config: [{
181
- type: Input
182
- }], form: [{
183
- type: Input
184
- }], value: [{
185
- type: Input
186
- }], submitted: [{
187
- type: Output
188
- }], valueChanges: [{
189
- type: Output
190
- }], statusChanges: [{
191
- type: Output
192
- }], submitTrigger: [{
193
- type: ViewChild,
194
- args: ['submitTrigger']
195
- }] } });
196
-
197
- const defaultConfig = {
198
- addButtonLabel: 'ADD ITEM',
199
- minListLength: 1,
200
- };
201
- const FormGroupListMixin = crisprControlMixin(CrisprFieldComponent);
202
- class FormGroupListComponent extends FormGroupListMixin {
203
- constructor(cdr) {
204
- super();
205
- this.cdr = cdr;
206
- this.defaultConfig = defaultConfig;
207
- /**
208
- * By setting this to true when adding/removing items from array,
209
- * we can block original values from overwriting form values
210
- * */
211
- this.blockValue = false;
212
- }
213
- ngOnInit() {
214
- super.ngOnInit();
215
- // TODO: this is required to ngFor of controls in template, must be a better way
216
- }
217
- setControlValue(values) {
218
- if (this.control) {
219
- if (values?.length > 0) {
220
- // clear any existing values so that new values don't concatenate onto the old
221
- const currentValues = this.control.value;
222
- if (currentValues.length) {
223
- this.control.clear();
224
- }
225
- values.forEach(value => this.addGroup(value));
226
- }
227
- else if (this.config.displayInitialItem) {
228
- this.addGroup();
229
- }
230
- // needed to ensure new array items render
231
- setTimeout(() => {
232
- this.cdr.detectChanges();
233
- });
234
- }
235
- }
236
- clickDelete(index) {
237
- this.blockValue = true;
238
- this.deleteGroup(index);
239
- }
240
- clickAdd() {
241
- this.blockValue = true;
242
- this.addGroup();
243
- }
244
- addGroup(value = null) {
245
- this.control.push(createControlForType(this.config.itemConfig, value));
246
- // needed to ensure new array items render
247
- setTimeout(() => {
248
- this.cdr.detectChanges();
249
- });
250
- }
251
- deleteGroup(index) {
252
- this.control.removeAt(index);
253
- }
254
- }
255
- FormGroupListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: FormGroupListComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
256
- FormGroupListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.1", 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 <!-- Don't add trackBy function, it confuses the state of the array -->\n <div *ngFor=\"let con of control?.controls; let i = index;\">\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]=\"con\">\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]=\"con\">\n </ng-container>\n </div>\n </div>\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}\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$1.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3$2.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: 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: "directive", type: i2.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "directive", type: CrisprFieldDirective, selector: "[crisprField]", inputs: ["config", "group", "value"] }, { kind: "ngmodule", type: CrisprPipesModule }, { kind: "pipe", type: InitialControlValuePipe, name: "initialControlValue" }, { kind: "ngmodule", type: FormValidationHandlerModule }, { kind: "directive", type: i3$1.ControlErrorContainerDirective, selector: "[controlErrorContainer], [formGroup]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, preserveWhitespaces: true });
257
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: FormGroupListComponent, decorators: [{
258
- type: Component,
259
- args: [{ selector: 'crispr-form-group-list', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
260
- CommonModule,
261
- MatButtonModule,
262
- MatIconModule,
263
- FieldContainerComponent,
264
- ReactiveFormsModule,
265
- CrisprFieldDirective,
266
- CrisprPipesModule,
267
- FormValidationHandlerModule
268
- ], template: "\n<crispr-field-container\n [config]=\"config\"\n [group]=\"group\"\n [formGroup]=\"group\">\n\n <div [formArrayName]=\"config.controlName\">\n <!-- Don't add trackBy function, it confuses the state of the array -->\n <div *ngFor=\"let con of control?.controls; let i = index;\">\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]=\"con\">\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]=\"con\">\n </ng-container>\n </div>\n </div>\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}\n"] }]
269
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; } });
270
-
271
- var index$1 = /*#__PURE__*/Object.freeze({
272
- __proto__: null,
273
- FormGroupListComponent: FormGroupListComponent
274
- });
275
-
276
- const FormGroupMixin = crisprControlMixin(CrisprFieldComponent);
277
- class SubGroupComponent extends FormGroupMixin {
278
- ngOnInit() {
279
- super.ngOnInit();
280
- }
281
- }
282
- SubGroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: SubGroupComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
283
- SubGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.1", 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: CrisprFieldDirective, selector: "[crisprField]", inputs: ["config", "group", "value"] }, { kind: "component", type: i3.FieldContainerComponent, selector: "crispr-field-container", inputs: ["config", "group", "inlineField"] }, { kind: "pipe", type: InitialControlValuePipe, name: "initialControlValue" }], preserveWhitespaces: true });
284
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: SubGroupComponent, decorators: [{
285
- type: Component,
286
- 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" }]
287
- }] });
288
-
289
- class SubGroupModule {
290
- }
291
- SubGroupModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: SubGroupModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
292
- SubGroupModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.1", ngImport: i0, type: SubGroupModule, declarations: [SubGroupComponent], imports: [CommonModule,
293
- CrisprFieldDirective,
294
- FieldContainerComponent,
295
- CrisprPipesModule,
296
- // TODO: Does this need to be here?
297
- FormValidationHandlerModule], exports: [SubGroupComponent] });
298
- SubGroupModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: SubGroupModule, imports: [CommonModule,
299
- FieldContainerComponent,
300
- CrisprPipesModule,
301
- // TODO: Does this need to be here?
302
- FormValidationHandlerModule] });
303
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: SubGroupModule, decorators: [{
304
- type: NgModule,
305
- args: [{
306
- imports: [
307
- CommonModule,
308
- CrisprFieldDirective,
309
- FieldContainerComponent,
310
- CrisprPipesModule,
311
- // TODO: Does this need to be here?
312
- FormValidationHandlerModule
313
- ],
314
- exports: [
315
- SubGroupComponent
316
- ],
317
- declarations: [
318
- SubGroupComponent
319
- ]
320
- }]
321
- }] });
322
-
323
- var index = /*#__PURE__*/Object.freeze({
324
- __proto__: null,
325
- SubGroupComponent: SubGroupComponent,
326
- SubGroupModule: SubGroupModule
327
- });
328
-
329
- class CrisprFormsModule {
330
- }
331
- CrisprFormsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: CrisprFormsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
332
- CrisprFormsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.1", ngImport: i0, type: CrisprFormsModule, imports: [CommonModule,
333
- ReactiveFormsModule,
334
- FormValidationHandlerModule,
335
- FormGroupListComponent,
336
- FieldContainerComponent,
337
- CrisprFieldDirective,
338
- SubGroupModule,
339
- CrisprPipesModule,
340
- CrisprFormComponent], exports: [CrisprFormComponent,
341
- FieldContainerComponent] });
342
- CrisprFormsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: CrisprFormsModule, imports: [CommonModule,
343
- ReactiveFormsModule,
344
- FormValidationHandlerModule,
345
- FormGroupListComponent,
346
- FieldContainerComponent,
347
- SubGroupModule,
348
- CrisprPipesModule,
349
- CrisprFormComponent] });
350
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: CrisprFormsModule, decorators: [{
351
- type: NgModule,
352
- args: [{
353
- imports: [
354
- CommonModule,
355
- ReactiveFormsModule,
356
- FormValidationHandlerModule,
357
- FormGroupListComponent,
358
- FieldContainerComponent,
359
- CrisprFieldDirective,
360
- SubGroupModule,
361
- CrisprPipesModule,
362
- CrisprFormComponent
363
- ],
364
- exports: [
365
- CrisprFormComponent,
366
- FieldContainerComponent,
367
- // MaterialModule
368
- ]
369
- }]
370
- }] });
371
-
372
- /**
373
- * Generated bundle index. Do not edit.
374
- */
375
-
376
- export { CrisprFormComponent, CrisprFormsModule };
377
- //# sourceMappingURL=tft-crispr-forms.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tft-crispr-forms.mjs","sources":["../../../../libs/crispr-forms/src/lib/field-component-map.const.ts","../../../../libs/crispr-forms/src/lib/field.directive.ts","../../../../libs/crispr-forms/src/lib/pipes/initial-control-value.pipe.ts","../../../../libs/crispr-forms/src/lib/pipes/crispr-pipes.module.ts","../../../../libs/crispr-forms/src/lib/form/form.component.ts","../../../../libs/crispr-forms/src/lib/form/form.component.html","../../../../libs/crispr-forms/src/lib/form-group-list/form-group-list.component.ts","../../../../libs/crispr-forms/src/lib/form-group-list/form-group-list.component.html","../../../../libs/crispr-forms/src/lib/sub-group/sub-group.component.ts","../../../../libs/crispr-forms/src/lib/sub-group/sub-group.component.html","../../../../libs/crispr-forms/src/lib/sub-group/sub-group.module.ts","../../../../libs/crispr-forms/src/lib/crispr-forms.module.ts","../../../../libs/crispr-forms/tft-crispr-forms.ts"],"sourcesContent":["/* eslint-disable @nrwl/nx/enforce-module-boundaries */\n// tslint:disable-next-line: max-line-length\nimport type { FormGroupListComponent } from './form-group-list/form-group-list.component';\nimport type { SubGroupComponent } from './sub-group/sub-group.component';\nimport type { HeadingComponent } from '@tft/crispr-forms/ui';\nimport type { ImageUploadFieldComponent } from '@tft/crispr-forms/ui/image-upload-field';\nimport type { DatepickerFieldComponent } from '@tft/crispr-forms/ui/datepicker-field';\nimport type { CheckboxFieldComponent } from '@tft/crispr-forms/ui/checkbox-field';\nimport type { TextareaFieldComponent } from '@tft/crispr-forms/ui/textarea-field';\nimport type { AutocompleteFieldComponent } from '@tft/crispr-forms/ui/autocomplete-field';\nimport type { SelectFieldComponent } from '@tft/crispr-forms/ui/select-field';\nimport type { InputFieldComponent, } from '@tft/crispr-forms/ui/input-field';\nimport type { RadioFieldComponent } from '@tft/crispr-forms/ui/radio-field';\nimport type { FileUploadFieldComponent } from '@tft/crispr-forms/ui/file-upload-field';\nimport type { SliderFieldComponent } from '@tft/crispr-forms/ui/slider-field';\nimport type { DividerComponent } from '@tft/crispr-forms/ui/divider';\nimport type { ButtonComponent } from '@tft/crispr-forms/ui/button';\nimport type { UnitConversionFieldComponent } from '@tft/crispr-forms/ui/unit-conversion-field';\n\nimport type { AutocompleteChiplistFieldComponent } from '@tft/crispr-forms/ui/autocomplete-chiplist-field';\n\nimport { isControlConfig, ControlType } from '@tft/crispr-forms/utils';\n\nexport const FIELD_COMPONENTS = {\n groupList: () => import('./form-group-list').then (({FormGroupListComponent}) => FormGroupListComponent),\n subGroup: () => import('./sub-group').then(({ SubGroupComponent}) => SubGroupComponent),\n button: () => import('@tft/crispr-forms/ui/button').then(({ ButtonComponent}) => ButtonComponent),\n input: () => import('@tft/crispr-forms/ui/input-field').then(({ InputFieldComponent}) => InputFieldComponent),\n select: () => import('@tft/crispr-forms/ui/select-field').then(({ SelectFieldComponent}) => SelectFieldComponent),\n radio: () => import('@tft/crispr-forms/ui/radio-field').then(({ RadioFieldComponent}) => RadioFieldComponent),\n autocomplete: () => import('@tft/crispr-forms/ui/autocomplete-field').then(({ AutocompleteFieldComponent}) => AutocompleteFieldComponent),\n autocompleteChiplist: () => import('@tft/crispr-forms/ui/autocomplete-chiplist-field').then(({ AutocompleteChiplistFieldComponent}) => AutocompleteChiplistFieldComponent),\n textarea: () => import('@tft/crispr-forms/ui/textarea-field').then(({ TextareaFieldComponent}) => TextareaFieldComponent),\n checkbox: () => import('@tft/crispr-forms/ui/checkbox-field').then(({ CheckboxFieldComponent}) => CheckboxFieldComponent),\n slider: () => import('@tft/crispr-forms/ui/slider-field').then(({ SliderFieldComponent}) => SliderFieldComponent),\n datepicker: () => import('@tft/crispr-forms/ui/datepicker-field').then(({ DatepickerFieldComponent}) => DatepickerFieldComponent),\n fileUpload: () => import('@tft/crispr-forms/ui/file-upload-field').then(({ FileUploadFieldComponent}) => FileUploadFieldComponent),\n imageUpload: () => import('@tft/crispr-forms/ui/image-upload-field').then(({ ImageUploadFieldComponent}) => ImageUploadFieldComponent),\n heading: () => import('@tft/crispr-forms/ui').then(({ HeadingComponent}) => HeadingComponent),\n divider: () => import('@tft/crispr-forms/ui/divider').then(({ DividerComponent}) => DividerComponent),\n unitConversion: () => import('@tft/crispr-forms/ui/unit-conversion-field').then(({ UnitConversionFieldComponent}) => UnitConversionFieldComponent)\n};\n\nexport function isControlComponent(component: CrisprFieldComponentType): component is CrisprControlComponentType {\n return component && isControlConfig(component.config) && 'value' in component // || component.config.controlType === ControlType.BUTTON;\n}\n\nexport function isControlOrButtonComponent(component: CrisprFieldComponentType): component is CrisprControlOrButton {\n return isControlComponent(component) || component.config.controlType === ControlType.BUTTON;\n}\n\nexport type CrisprControlOrButton = CrisprControlComponentType | ButtonComponent;\n\nexport type CrisprControlComponentType = InputFieldComponent |\n SelectFieldComponent |\n RadioFieldComponent |\n SubGroupComponent |\n FormGroupListComponent |\n AutocompleteFieldComponent |\n AutocompleteChiplistFieldComponent |\n TextareaFieldComponent |\n CheckboxFieldComponent |\n SliderFieldComponent |\n FileUploadFieldComponent |\n ImageUploadFieldComponent|\n DatepickerFieldComponent |\n UnitConversionFieldComponent;\n\nexport type ComponentKeys = keyof typeof FIELD_COMPONENTS;\n// export type CrisprFieldComponent = FIELD_COMPONENTS[ComponentKeys];\n\nexport type CrisprFieldComponentType = CrisprControlComponentType |\n HeadingComponent |\n DividerComponent |\n ButtonComponent;\n\n","import { Directive, Input, ViewContainerRef, Renderer2, OnInit, ChangeDetectorRef } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { CrisprFieldComponentType, FIELD_COMPONENTS, isControlComponent, isControlOrButtonComponent } from './field-component-map.const';\n// eslint-disable-next-line @nrwl/nx/enforce-module-boundaries\nimport { AnyFieldConfig, ControlValue } from '@tft/crispr-forms/utils';\n\n@Directive({\n selector: '[crisprField]',\n standalone: true\n})\nexport class CrisprFieldDirective implements OnInit {\n\n @Input() config: AnyFieldConfig;\n @Input() group: FormGroup;\n /**\n * value setter updates the control's value as well\n */\n _value: ControlValue | any[]\n @Input() set value(value: ControlValue | any[]) {\n this._value = value;\n // This is needed to keep the group list from resetting control values to the initial input value\n this.updateComponentValue(value);\n };\n get value() {\n return this._value;\n }\n component: CrisprFieldComponentType;\n\n constructor(\n private container: ViewContainerRef,\n private renderer: Renderer2,\n private cdr: ChangeDetectorRef\n ) {}\n\n async ngOnInit() {\n /**\n * create component and set values from config on its instance\n */\n const component = this.config.component || await FIELD_COMPONENTS[this.config.controlType]();\n const componentRef = this.container.createComponent<CrisprFieldComponentType>(component);\n\n this.component = componentRef.instance;\n this.component.config = this.config;\n if (isControlOrButtonComponent(this.component)) {\n this.component.group = this.group;\n }\n this.updateComponentValue(this.value);\n // adds any config classes to the dynamically generated component\n // doing this here keeps us from having to extend a base component into each field component individually\n if(!this.config.classes) return;\n this.config.classes.forEach((klass) => {\n // check for passing multiple classes in one array element\n if(klass.includes(' ')) {\n throw Error(`Improperly formatted class. '${klass}' cannot contain spaces.`);\n } else {\n this.renderer.addClass(componentRef.location.nativeElement, klass);\n }\n });\n }\n\n updateComponentValue(value: ControlValue | any[]) {\n if(isControlComponent(this.component)) {\n this.component.value = value;\n // SubGroups won't populate without this detectChanges\n this.cdr.detectChanges();\n }\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n// eslint-disable-next-line @nrwl/nx/enforce-module-boundaries\nimport { ControlValue, AnyFieldConfig, isControlConfig } from '@tft/crispr-forms/utils';\n\n@Pipe({\n name: 'initialControlValue'\n})\nexport class InitialControlValuePipe implements PipeTransform {\n // TODO: does changing any to unknown break anything?\n transform(initialFormValue: {[key: string]: ControlValue | any}, fieldConfig: AnyFieldConfig): unknown {\n return (initialFormValue && isControlConfig(fieldConfig))\n ? initialFormValue[fieldConfig.controlName] || null\n : null;\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { InitialControlValuePipe } from \"./initial-control-value.pipe\";\n\n@NgModule({\n imports: [\n CommonModule\n ],\n exports: [\n InitialControlValuePipe\n ],\n declarations: [\n InitialControlValuePipe\n ]\n})\n\nexport class CrisprPipesModule {\n}\n","import { Component, Input, Output, EventEmitter, ViewChild, ElementRef, OnInit } from '@angular/core';\nimport { ReactiveFormsModule, FormGroup } from '@angular/forms';\nimport { Observable } from 'rxjs';\nimport { CommonModule } from '@angular/common';\nimport { CrisprFieldDirective } from '../field.directive';\nimport { FormValidationHandlerModule } from '@tft/form-validation-handler';\nimport { CrisprPipesModule } from '../pipes/crispr-pipes.module';\n// eslint-disable-next-line @nrwl/nx/enforce-module-boundaries\nimport { ControlGroupValue, FormConfig, buildFormGroupFromConfig } from '@tft/crispr-forms/utils';\n\n@Component({\n selector: 'crispr-form',\n styleUrls: ['form.component.scss'],\n templateUrl: 'form.component.html',\n // changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [\n CommonModule,\n CrisprFieldDirective,\n ReactiveFormsModule,\n FormValidationHandlerModule,\n CrisprPipesModule\n ],\n})\nexport class CrisprFormComponent implements OnInit {\n // if no form has been passed in by consuming component, we create an empty group to build out\n @Input() config: FormConfig;\n @Input() form: FormGroup = new FormGroup({});\n @Input() value: ControlGroupValue = null;\n\n\n @Output() submitted = new EventEmitter<FormGroup>();\n // proxy value and status change events through to consuming component\n @Output() valueChanges: Observable<any> = this.form.valueChanges;\n @Output() statusChanges: Observable<string> = this.form.statusChanges;\n\n @ViewChild('submitTrigger') submitTrigger: ElementRef<HTMLButtonElement>;\n\n ngOnInit() {\n // build out the form, note that we pass in the form as the third argument and the function modifies it\n buildFormGroupFromConfig(this.config, this.value, this.form);\n }\n\n handleSubmit() {\n this.form.markAllAsTouched();\n this.submitted.emit(this.form);\n }\n\n triggerSubmit() {\n this.submitTrigger.nativeElement.click();\n }\n}\n","<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","import { Component, OnInit, ChangeDetectionStrategy, ChangeDetectorRef } from '@angular/core';\nimport { FormGroup, FormArray } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { CrisprFieldDirective } from '../field.directive';\nimport { CrisprPipesModule } from '../pipes/crispr-pipes.module';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { FormValidationHandlerModule } from '@tft/form-validation-handler';\n// eslint-disable-next-line @nrwl/nx/enforce-module-boundaries\nimport { CrisprFieldComponent, crisprControlMixin, createControlForType, FormGroupListConfig } from '@tft/crispr-forms/utils';\n// eslint-disable-next-line @nrwl/nx/enforce-module-boundaries\nimport { FieldContainerComponent } from '@tft/crispr-forms/ui';\n\nconst defaultConfig: Partial<FormGroupListConfig> = {\n addButtonLabel: 'ADD ITEM',\n minListLength: 1,\n};\n\nconst FormGroupListMixin = crisprControlMixin<FormGroupListConfig>(CrisprFieldComponent);\n@Component({\n selector: 'crispr-form-group-list',\n templateUrl: './form-group-list.component.html',\n styleUrls: ['./form-group-list.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [\n CommonModule,\n MatButtonModule,\n MatIconModule,\n FieldContainerComponent,\n ReactiveFormsModule,\n CrisprFieldDirective,\n CrisprPipesModule,\n FormValidationHandlerModule\n ],\n})\nexport class FormGroupListComponent extends FormGroupListMixin implements OnInit {\n\n defaultConfig = defaultConfig\n group: FormGroup;\n control: FormArray;\n /**\n * By setting this to true when adding/removing items from array,\n * we can block original values from overwriting form values\n * */\n blockValue = false;\n\n constructor(private cdr: ChangeDetectorRef) {\n super();\n }\n\n ngOnInit() {\n super.ngOnInit();\n // TODO: this is required to ngFor of controls in template, must be a better way\n }\n\n setControlValue(values: any[]) {\n if(this.control) {\n if(values?.length > 0) {\n // clear any existing values so that new values don't concatenate onto the old\n const currentValues:[] = this.control.value;\n if(currentValues.length) {\n this.control.clear();\n }\n values.forEach(value => this.addGroup(value));\n\n } else if (this.config.displayInitialItem) {\n this.addGroup()\n }\n // needed to ensure new array items render\n setTimeout(() => {\n this.cdr.detectChanges();\n })\n }\n }\n\n clickDelete(index: number) {\n this.blockValue = true;\n this.deleteGroup(index);\n }\n\n clickAdd() {\n this.blockValue = true;\n this.addGroup();\n }\n\n addGroup(value = null) {\n this.control.push(createControlForType(this.config.itemConfig, value));\n // needed to ensure new array items render\n setTimeout(() => {\n this.cdr.detectChanges();\n })\n }\n\n deleteGroup(index: number) {\n this.control.removeAt(index);\n }\n}\n","\n<crispr-field-container\n [config]=\"config\"\n [group]=\"group\"\n [formGroup]=\"group\">\n\n <div [formArrayName]=\"config.controlName\">\n <!-- Don't add trackBy function, it confuses the state of the array -->\n <div *ngFor=\"let con of control?.controls; let i = index;\">\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]=\"con\">\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]=\"con\">\n </ng-container>\n </div>\n </div>\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","import { Component, OnInit } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\n\n// eslint-disable-next-line @nrwl/nx/enforce-module-boundaries\nimport { crisprControlMixin, CrisprFieldComponent, SubGroupConfig } from '@tft/crispr-forms/utils';\n\nconst FormGroupMixin = crisprControlMixin<SubGroupConfig>(CrisprFieldComponent);\n\n@Component({\n selector: 'crispr-sub-group',\n templateUrl: './sub-group.component.html',\n styleUrls: ['./sub-group.component.scss'],\n // TODO: child image upload controls aren't getting updated appropriately when in OnPush strategy.\n // We can add cdr to this class, but everything that extends it will need the cdr attached\n // changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SubGroupComponent extends FormGroupMixin implements OnInit {\n group: FormGroup;\n\n ngOnInit() {\n super.ngOnInit();\n }\n}\n","<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","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { CrisprFieldDirective } from '../field.directive';\nimport { CrisprPipesModule } from '../pipes/crispr-pipes.module';\nimport { SubGroupComponent } from './sub-group.component';\nimport { FormValidationHandlerModule } from '@tft/form-validation-handler';\nimport { FieldContainerComponent } from '@tft/crispr-forms/ui';\n@NgModule({\n imports: [\n CommonModule,\n CrisprFieldDirective,\n FieldContainerComponent,\n CrisprPipesModule,\n // TODO: Does this need to be here?\n FormValidationHandlerModule\n ],\n exports: [\n SubGroupComponent\n ],\n declarations: [\n SubGroupComponent\n ]\n})\n\nexport class SubGroupModule {\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ReactiveFormsModule } from '@angular/forms';\n// custom modules\nimport { FormValidationHandlerModule } from '@tft/form-validation-handler';\n\n// components\nimport { CrisprFormComponent } from './form/form.component';\nimport { FormGroupListComponent } from './form-group-list';\n// directives\nimport { CrisprFieldDirective } from './field.directive';\nimport { SubGroupModule } from './sub-group';\nimport { CrisprPipesModule } from './pipes/crispr-pipes.module';\nimport { FieldContainerComponent } from '@tft/crispr-forms/ui';\n\n@NgModule({\n imports: [\n CommonModule,\n ReactiveFormsModule,\n FormValidationHandlerModule,\n FormGroupListComponent,\n FieldContainerComponent,\n CrisprFieldDirective,\n SubGroupModule,\n CrisprPipesModule,\n CrisprFormComponent\n ],\n exports: [\n CrisprFormComponent,\n FieldContainerComponent,\n // MaterialModule\n ]\n})\nexport class CrisprFormsModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i3","i4.InitialControlValuePipe","i2","i4","i6","i2.CrisprFieldDirective"],"mappings":";;;;;;;;;;;;;;;;;;;AAuBO,MAAM,gBAAgB,GAAG;AAC9B,IAAA,SAAS,EAAE,MAAM,uDAA2B,CAAC,IAAI,CAAE,CAAC,EAAC,sBAAsB,EAAC,KAAK,sBAAsB,CAAC;AACxG,IAAA,QAAQ,EAAE,MAAM,qDAAqB,CAAC,IAAI,CAAC,CAAC,EAAE,iBAAiB,EAAC,KAAM,iBAAiB,CAAC;AACxF,IAAA,MAAM,EAAE,MAAM,OAAO,6BAA6B,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,eAAe,EAAC,KAAM,eAAe,CAAC;AAClG,IAAA,KAAK,EAAE,MAAM,OAAO,kCAAkC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,mBAAmB,EAAC,KAAM,mBAAmB,CAAC;AAC9G,IAAA,MAAM,EAAE,MAAM,OAAO,mCAAmC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,oBAAoB,EAAC,KAAM,oBAAoB,CAAC;AAClH,IAAA,KAAK,EAAE,MAAM,OAAO,kCAAkC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,mBAAmB,EAAC,KAAM,mBAAmB,CAAC;AAC9G,IAAA,YAAY,EAAE,MAAM,OAAO,yCAAyC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,0BAA0B,EAAC,KAAM,0BAA0B,CAAC;AAC1I,IAAA,oBAAoB,EAAE,MAAM,OAAO,kDAAkD,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,kCAAkC,EAAC,KAAM,kCAAkC,CAAC;AAC3K,IAAA,QAAQ,EAAE,MAAM,OAAO,qCAAqC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,sBAAsB,EAAC,KAAM,sBAAsB,CAAC;AAC1H,IAAA,QAAQ,EAAE,MAAM,OAAO,qCAAqC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,sBAAsB,EAAC,KAAM,sBAAsB,CAAC;AAC1H,IAAA,MAAM,EAAE,MAAM,OAAO,mCAAmC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,oBAAoB,EAAC,KAAM,oBAAoB,CAAC;AAClH,IAAA,UAAU,EAAE,MAAM,OAAO,uCAAuC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,wBAAwB,EAAC,KAAM,wBAAwB,CAAC;AAClI,IAAA,UAAU,EAAE,MAAM,OAAO,wCAAwC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,wBAAwB,EAAC,KAAM,wBAAwB,CAAC;AACnI,IAAA,WAAW,EAAE,MAAM,OAAO,yCAAyC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,yBAAyB,EAAC,KAAM,yBAAyB,CAAC;AACvI,IAAA,OAAO,EAAE,MAAM,OAAO,sBAAsB,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,gBAAgB,EAAC,KAAM,gBAAgB,CAAC;AAC9F,IAAA,OAAO,EAAE,MAAM,OAAO,8BAA8B,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,gBAAgB,EAAC,KAAM,gBAAgB,CAAC;AACtG,IAAA,cAAc,EAAE,MAAM,OAAO,4CAA4C,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,4BAA4B,EAAC,KAAM,4BAA4B,CAAC;CACpJ,CAAC;AAEI,SAAU,kBAAkB,CAAC,SAAmC,EAAA;AACpE,IAAA,OAAO,SAAS,IAAI,eAAe,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,OAAO,IAAI,SAAS,CAAA;AAC/E,CAAC;AAEK,SAAU,0BAA0B,CAAC,SAAmC,EAAA;AAC5E,IAAA,OAAO,kBAAkB,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,MAAM,CAAC,WAAW,KAAK,WAAW,CAAC,MAAM,CAAC;AAC9F;;MCvCa,oBAAoB,CAAA;AAkB/B,IAAA,WAAA,CACU,SAA2B,EAC3B,QAAmB,EACnB,GAAsB,EAAA;QAFtB,IAAS,CAAA,SAAA,GAAT,SAAS,CAAkB;QAC3B,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAW;QACnB,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;KAC5B;IAdJ,IAAa,KAAK,CAAC,KAA2B,EAAA;AAC5C,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;;AAEpB,QAAA,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;KAClC;;AACD,IAAA,IAAI,KAAK,GAAA;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;KACpB;AASD,IAAA,MAAM,QAAQ,GAAA;AACZ;;AAEG;AACH,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,MAAM,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC;QAC7F,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,eAAe,CAA2B,SAAS,CAAC,CAAC;AAEzF,QAAA,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC,QAAQ,CAAC;QACvC,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;AACpC,QAAA,IAAI,0BAA0B,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;YAC9C,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;AACnC,SAAA;AACD,QAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;;;AAGtC,QAAA,IAAG,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO;YAAE,OAAO;QAChC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,KAAI;;AAEpC,YAAA,IAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;AACtB,gBAAA,MAAM,KAAK,CAAC,CAAA,6BAAA,EAAgC,KAAK,CAAA,wBAAA,CAA0B,CAAC,CAAC;AAC9E,aAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;AACpE,aAAA;AACH,SAAC,CAAC,CAAC;KACJ;AAED,IAAA,oBAAoB,CAAC,KAA2B,EAAA;AAC9C,QAAA,IAAG,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;AACrC,YAAA,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,KAAK,CAAC;;AAE7B,YAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;AAC1B,SAAA;KACF;;iHAxDU,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;qGAApB,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,KAAA,EAAA,OAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAJhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,eAAe;AACzB,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA,CAAA;+JAGU,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBAKO,KAAK,EAAA,CAAA;sBAAjB,KAAK;;;MCXK,uBAAuB,CAAA;;IAElC,SAAS,CAAC,gBAAqD,EAAE,WAA2B,EAAA;AAC1F,QAAA,OAAO,CAAC,gBAAgB,IAAI,eAAe,CAAC,WAAW,CAAC;cACpD,gBAAgB,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,IAAI;cACjD,IAAI,CAAC;KACV;;oHANU,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;kHAAvB,uBAAuB,EAAA,IAAA,EAAA,qBAAA,EAAA,CAAA,CAAA;2FAAvB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAHnC,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,qBAAqB;AAC5B,iBAAA,CAAA;;;MCUY,iBAAiB,CAAA;;8GAAjB,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAjB,iBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,EAJ1B,YAAA,EAAA,CAAA,uBAAuB,CANvB,EAAA,OAAA,EAAA,CAAA,YAAY,aAGZ,uBAAuB,CAAA,EAAA,CAAA,CAAA;AAOd,iBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,YAV1B,YAAY,CAAA,EAAA,CAAA,CAAA;2FAUH,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAZ7B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE;wBACP,YAAY;AACb,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,uBAAuB;AACxB,qBAAA;AACD,oBAAA,YAAY,EAAE;wBACZ,uBAAuB;AACxB,qBAAA;AACF,iBAAA,CAAA;;;MCUY,mBAAmB,CAAA;AAdhC,IAAA,WAAA,GAAA;AAiBW,QAAA,IAAA,CAAA,IAAI,GAAc,IAAI,SAAS,CAAC,EAAE,CAAC,CAAC;QACpC,IAAK,CAAA,KAAA,GAAsB,IAAI,CAAC;AAG/B,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,YAAY,EAAa,CAAC;;AAE1C,QAAA,IAAA,CAAA,YAAY,GAAoB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;AACvD,QAAA,IAAA,CAAA,aAAa,GAAuB,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC;AAiBvE,KAAA;IAbC,QAAQ,GAAA;;AAEN,QAAA,wBAAwB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;KAC9D;IAED,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC7B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAChC;IAED,aAAa,GAAA;AACX,QAAA,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;KAC1C;;gHA1BU,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;oGAAnB,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,YAAA,EAAA,cAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,eAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,eAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECxBhC,2yBAsBA,EAAA,MAAA,EAAA,CAAA,iCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDLI,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACZ,oBAAoB,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,OAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACpB,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACnB,2BAA2B,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,0BAAA,EAAA,QAAA,EAAA,MAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,8BAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAC3B,iBAAiB,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,uBAAA,EAAA,IAAA,EAAA,qBAAA,EAAA,CAAA,EAAA,mBAAA,EAAA,IAAA,EAAA,CAAA,CAAA;2FAGR,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAd/B,SAAS;+BACE,aAAa,EAAA,UAAA,EAIX,IAAI,EACP,OAAA,EAAA;wBACP,YAAY;wBACZ,oBAAoB;wBACpB,mBAAmB;wBACnB,2BAA2B;wBAC3B,iBAAiB;AAClB,qBAAA,EAAA,QAAA,EAAA,2yBAAA,EAAA,MAAA,EAAA,CAAA,iCAAA,CAAA,EAAA,CAAA;8BAIQ,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBAGI,SAAS,EAAA,CAAA;sBAAlB,MAAM;gBAEG,YAAY,EAAA,CAAA;sBAArB,MAAM;gBACG,aAAa,EAAA,CAAA;sBAAtB,MAAM;gBAEqB,aAAa,EAAA,CAAA;sBAAxC,SAAS;uBAAC,eAAe,CAAA;;;AEtB5B,MAAM,aAAa,GAAiC;AAClD,IAAA,cAAc,EAAE,UAAU;AAC1B,IAAA,aAAa,EAAE,CAAC;CACjB,CAAC;AAEF,MAAM,kBAAkB,GAAG,kBAAkB,CAAsB,oBAAoB,CAAC,CAAC;AAkBnF,MAAO,sBAAuB,SAAQ,kBAAkB,CAAA;AAW5D,IAAA,WAAA,CAAoB,GAAsB,EAAA;AACxC,QAAA,KAAK,EAAE,CAAC;QADU,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;QAT1C,IAAa,CAAA,aAAA,GAAG,aAAa,CAAA;AAG7B;;;AAGK;QACL,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;KAIlB;IAED,QAAQ,GAAA;QACN,KAAK,CAAC,QAAQ,EAAE,CAAC;;KAElB;AAED,IAAA,eAAe,CAAC,MAAa,EAAA;QAC3B,IAAG,IAAI,CAAC,OAAO,EAAE;AACf,YAAA,IAAG,MAAM,EAAE,MAAM,GAAG,CAAC,EAAE;;AAErB,gBAAA,MAAM,aAAa,GAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;gBAC5C,IAAG,aAAa,CAAC,MAAM,EAAE;AACvB,oBAAA,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;AACtB,iBAAA;AACD,gBAAA,MAAM,CAAC,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;AAE/C,aAAA;AAAM,iBAAA,IAAI,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE;gBACzC,IAAI,CAAC,QAAQ,EAAE,CAAA;AAChB,aAAA;;YAED,UAAU,CAAC,MAAK;AACd,gBAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;AAC3B,aAAC,CAAC,CAAA;AACH,SAAA;KACF;AAED,IAAA,WAAW,CAAC,KAAa,EAAA;AACvB,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AACvB,QAAA,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;KACzB;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,QAAQ,EAAE,CAAC;KACjB;IAED,QAAQ,CAAC,KAAK,GAAG,IAAI,EAAA;AACnB,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC;;QAEvE,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;AAC3B,SAAC,CAAC,CAAA;KACH;AAED,IAAA,WAAW,CAAC,KAAa,EAAA;AACvB,QAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;KAC9B;;mHA5DU,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtB,sBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sBAAsB,yGCrCnC,sgDA4CA,EAAA,MAAA,EAAA,CAAA,4JAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDjBI,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACZ,eAAe,EACf,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,4LAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,eAAA,EAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,aAAa,EACb,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,uBAAuB,8GACvB,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAG,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACnB,oBAAoB,EACpB,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,OAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAiB,4GACjB,2BAA2B,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,8BAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,mBAAA,EAAA,IAAA,EAAA,CAAA,CAAA;2FAGlB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAjBlC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,wBAAwB,mBAGjB,uBAAuB,CAAC,MAAM,EAAA,UAAA,EACnC,IAAI,EACP,OAAA,EAAA;wBACP,YAAY;wBACZ,eAAe;wBACf,aAAa;wBACb,uBAAuB;wBACvB,mBAAmB;wBACnB,oBAAoB;wBACpB,iBAAiB;wBACjB,2BAA2B;AAC5B,qBAAA,EAAA,QAAA,EAAA,sgDAAA,EAAA,MAAA,EAAA,CAAA,4JAAA,CAAA,EAAA,CAAA;;;;;;;;AE7BH,MAAM,cAAc,GAAG,kBAAkB,CAAiB,oBAAoB,CAAC,CAAC;AAU1E,MAAO,iBAAkB,SAAQ,cAAc,CAAA;IAGnD,QAAQ,GAAA;QACN,KAAK,CAAC,QAAQ,EAAE,CAAC;KAClB;;8GALU,iBAAiB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAjB,iBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iBAAiB,+EChB9B,+TAYA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,OAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,OAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAJ,uBAAA,EAAA,IAAA,EAAA,qBAAA,EAAA,CAAA,EAAA,mBAAA,EAAA,IAAA,EAAA,CAAA,CAAA;2FDIa,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAR7B,SAAS;+BACE,kBAAkB,EAAA,QAAA,EAAA,+TAAA,EAAA,CAAA;;;MEejB,cAAc,CAAA;;2GAAd,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;4GAAd,cAAc,EAAA,YAAA,EAAA,CAJvB,iBAAiB,CAAA,EAAA,OAAA,EAAA,CAXjB,YAAY;QACZ,oBAAoB;QACpB,uBAAuB;QACvB,iBAAiB;;AAEjB,QAAA,2BAA2B,aAG3B,iBAAiB,CAAA,EAAA,CAAA,CAAA;AAOR,cAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,YAfvB,YAAY;QAEZ,uBAAuB;QACvB,iBAAiB;;QAEjB,2BAA2B,CAAA,EAAA,CAAA,CAAA;2FAUlB,cAAc,EAAA,UAAA,EAAA,CAAA;kBAjB1B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,oBAAoB;wBACpB,uBAAuB;wBACvB,iBAAiB;;wBAEjB,2BAA2B;AAC5B,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,iBAAiB;AAClB,qBAAA;AACD,oBAAA,YAAY,EAAE;wBACZ,iBAAiB;AAClB,qBAAA;AACF,iBAAA,CAAA;;;;;;;;;MCWY,iBAAiB,CAAA;;8GAAjB,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAjB,iBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,YAhB1B,YAAY;QACZ,mBAAmB;QACnB,2BAA2B;QAC3B,sBAAsB;QACtB,uBAAuB;QACvB,oBAAoB;QACpB,cAAc;QACd,iBAAiB;AACjB,QAAA,mBAAmB,aAGnB,mBAAmB;QACnB,uBAAuB,CAAA,EAAA,CAAA,CAAA;AAId,iBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,YAhB1B,YAAY;QACZ,mBAAmB;QACnB,2BAA2B;QAC3B,sBAAsB;QACtB,uBAAuB;QAEvB,cAAc;QACd,iBAAiB;QACjB,mBAAmB,CAAA,EAAA,CAAA,CAAA;2FAQV,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAlB7B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,mBAAmB;wBACnB,2BAA2B;wBAC3B,sBAAsB;wBACtB,uBAAuB;wBACvB,oBAAoB;wBACpB,cAAc;wBACd,iBAAiB;wBACjB,mBAAmB;AACpB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,mBAAmB;wBACnB,uBAAuB;;AAExB,qBAAA;AACF,iBAAA,CAAA;;;AChCD;;AAEG;;;;"}
Binary file
package/ui/README.md DELETED
@@ -1,3 +0,0 @@
1
- # @tft/crispr-forms/ui
2
-
3
- Secondary entry point of `@tft/crispr-forms`. It can be used by importing from `@tft/crispr-forms/ui`.
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- /// <amd-module name="@tft/crispr-forms/ui/autocomplete-chiplist-field" />
5
- export * from './public-api';
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- /// <amd-module name="@tft/crispr-forms/ui/autocomplete-field" />
5
- export * from './public-api';
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- /// <amd-module name="@tft/crispr-forms/ui/button" />
5
- export * from './public-api';
@@ -1,21 +0,0 @@
1
- import { OnInit } from '@angular/core';
2
- import { CheckboxFieldConfig } from '@tft/crispr-forms/utils';
3
- import * as i0 from "@angular/core";
4
- declare const CheckboxFieldMixin: new () => {
5
- config: CheckboxFieldConfig;
6
- group: import("@angular/forms").FormGroup<any>;
7
- control: import("@angular/forms").AbstractControl<any, any>;
8
- _value: any;
9
- value: any;
10
- ngOnInit(): void;
11
- setControlValue(value: any): void;
12
- defaultConfig?: Partial<CheckboxFieldConfig>;
13
- applyDefaultConfig(): void;
14
- };
15
- export declare class CheckboxFieldComponent extends CheckboxFieldMixin implements OnInit {
16
- defaultConfig: Partial<CheckboxFieldConfig>;
17
- ngOnInit(): void;
18
- static ɵfac: i0.ɵɵFactoryDeclaration<CheckboxFieldComponent, never>;
19
- static ɵcmp: i0.ɵɵComponentDeclaration<CheckboxFieldComponent, "crispr-checkbox-field", never, {}, {}, never, never, true>;
20
- }
21
- export {};
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- /// <amd-module name="@tft/crispr-forms/ui/checkbox-field" />
5
- export * from './public-api';
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- /// <amd-module name="@tft/crispr-forms/ui/datepicker-field" />
5
- export * from './public-api';
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- /// <amd-module name="@tft/crispr-forms/ui/divider" />
5
- export * from './public-api';
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- /// <amd-module name="@tft/crispr-forms/ui/field-container" />
5
- export * from './public-api';
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- /// <amd-module name="@tft/crispr-forms/ui/file-dropzone" />
5
- export * from './public-api';
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- /// <amd-module name="@tft/crispr-forms/ui/file-upload-field" />
5
- export * from './public-api';
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- /// <amd-module name="@tft/crispr-forms/ui/heading" />
5
- export * from './public-api';
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- /// <amd-module name="@tft/crispr-forms/ui/image-upload-field" />
5
- export * from './public-api';
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- /// <amd-module name="@tft/crispr-forms/ui/info" />
5
- export * from './public-api';
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- /// <amd-module name="@tft/crispr-forms/ui/input-field" />
5
- export * from './public-api';
@@ -1,22 +0,0 @@
1
- import { OnInit } from '@angular/core';
2
- import { InputFieldConfig } from '@tft/crispr-forms/utils';
3
- import * as i0 from "@angular/core";
4
- declare const InputFieldMixin: new () => {
5
- config: InputFieldConfig;
6
- group: import("@angular/forms").FormGroup<any>;
7
- control: import("@angular/forms").AbstractControl<any, any>;
8
- _value: any;
9
- value: any;
10
- ngOnInit(): void;
11
- setControlValue(value: any): void;
12
- defaultConfig?: Partial<InputFieldConfig>;
13
- applyDefaultConfig(): void;
14
- };
15
- export declare class InputFieldComponent extends InputFieldMixin implements OnInit {
16
- defaultConfig: Partial<InputFieldConfig>;
17
- constructor();
18
- ngOnInit(): void;
19
- static ɵfac: i0.ɵɵFactoryDeclaration<InputFieldComponent, never>;
20
- static ɵcmp: i0.ɵɵComponentDeclaration<InputFieldComponent, "crispr-input-field", never, {}, {}, never, never, true>;
21
- }
22
- export {};
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- /// <amd-module name="@tft/crispr-forms/ui/option" />
5
- export * from './public-api';