@tft/crispr-forms 14.0.2 → 17.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (490) hide show
  1. package/esm2022/public-api.mjs +4 -0
  2. package/{esm2020 → esm2022}/src/index.mjs +1 -1
  3. package/esm2022/src/lib/crispr-forms.module.mjs +55 -0
  4. package/esm2022/src/lib/display-field.directive.mjs +52 -0
  5. package/esm2022/src/lib/field-component-map.const.mjs +28 -0
  6. package/esm2022/src/lib/field.directive.mjs +69 -0
  7. package/esm2022/src/lib/form/form.component.mjs +62 -0
  8. package/esm2022/src/lib/form-group-list/form-group-list.component.mjs +97 -0
  9. package/{esm2020 → esm2022}/src/lib/form-group-list/index.mjs +1 -1
  10. package/{esm2020 → esm2022}/src/lib/pipes/crispr-pipes.module.mjs +24 -24
  11. package/esm2022/src/lib/pipes/initial-control-value.pipe.mjs +20 -0
  12. package/{esm2020 → esm2022}/src/lib/public_api.mjs +2 -2
  13. package/{esm2020 → esm2022}/src/lib/sub-group/index.mjs +2 -2
  14. package/esm2022/src/lib/sub-group/sub-group.component.mjs +20 -0
  15. package/esm2022/src/lib/sub-group/sub-group.module.mjs +42 -0
  16. package/esm2022/src/lib/ui/autocomplete-chiplist-field/autocomplete-chiplist-field.component.mjs +138 -0
  17. package/esm2022/src/lib/ui/autocomplete-chiplist-field/index.mjs +2 -0
  18. package/esm2022/src/lib/ui/autocomplete-chiplist-field/public-api.mjs +2 -0
  19. package/esm2022/src/lib/ui/autocomplete-field/autocomplete-field.component.mjs +95 -0
  20. package/esm2022/src/lib/ui/autocomplete-field/index.mjs +2 -0
  21. package/esm2022/src/lib/ui/autocomplete-field/public-api.mjs +2 -0
  22. package/esm2022/src/lib/ui/button/button.component.mjs +52 -0
  23. package/esm2022/src/lib/ui/button/index.mjs +2 -0
  24. package/esm2022/src/lib/ui/button/public-api.mjs +2 -0
  25. package/esm2022/src/lib/ui/checkbox-field/checkbox-field.component.mjs +42 -0
  26. package/esm2022/src/lib/ui/checkbox-field/index.mjs +2 -0
  27. package/esm2022/src/lib/ui/checkbox-field/public-api.mjs +2 -0
  28. package/esm2022/src/lib/ui/datepicker-field/datepicker-field.component.mjs +66 -0
  29. package/esm2022/src/lib/ui/datepicker-field/index.mjs +2 -0
  30. package/esm2022/src/lib/ui/datepicker-field/public-api.mjs +2 -0
  31. package/esm2022/src/lib/ui/divider/divider.component.mjs +25 -0
  32. package/esm2022/src/lib/ui/divider/index.mjs +2 -0
  33. package/esm2022/src/lib/ui/divider/public-api.mjs +2 -0
  34. package/esm2022/src/lib/ui/field-container/field-container.component.mjs +59 -0
  35. package/esm2022/src/lib/ui/field-container/index.mjs +2 -0
  36. package/esm2022/src/lib/ui/field-container/public-api.mjs +2 -0
  37. package/esm2022/src/lib/ui/file-dropzone/file-dropzone.directive.mjs +40 -0
  38. package/esm2022/src/lib/ui/file-dropzone/index.mjs +2 -0
  39. package/esm2022/src/lib/ui/file-dropzone/public-api.mjs +2 -0
  40. package/esm2022/src/lib/ui/file-upload-field/file-upload-field.component.mjs +107 -0
  41. package/esm2022/src/lib/ui/file-upload-field/index.mjs +2 -0
  42. package/esm2022/src/lib/ui/file-upload-field/public-api.mjs +2 -0
  43. package/esm2022/src/lib/ui/heading/heading.component.mjs +27 -0
  44. package/esm2022/src/lib/ui/heading/index.mjs +2 -0
  45. package/esm2022/src/lib/ui/heading/public-api.mjs +2 -0
  46. package/esm2022/src/lib/ui/image-upload-field/image-upload-field.component.mjs +184 -0
  47. package/esm2022/src/lib/ui/image-upload-field/index.mjs +2 -0
  48. package/esm2022/src/lib/ui/image-upload-field/public-api.mjs +2 -0
  49. package/esm2022/src/lib/ui/index.mjs +2 -0
  50. package/esm2022/src/lib/ui/info/index.mjs +2 -0
  51. package/esm2022/src/lib/ui/info/info.component.mjs +23 -0
  52. package/esm2022/src/lib/ui/info/public-api.mjs +2 -0
  53. package/esm2022/src/lib/ui/input-field/index.mjs +2 -0
  54. package/esm2022/src/lib/ui/input-field/input-field.component.mjs +43 -0
  55. package/esm2022/src/lib/ui/input-field/public-api.mjs +2 -0
  56. package/esm2022/src/lib/ui/option/index.mjs +2 -0
  57. package/esm2022/src/lib/ui/option/option.component.mjs +16 -0
  58. package/esm2022/src/lib/ui/option/public-api.mjs +2 -0
  59. package/esm2022/src/lib/ui/public-api.mjs +7 -0
  60. package/esm2022/src/lib/ui/radio-field/index.mjs +2 -0
  61. package/esm2022/src/lib/ui/radio-field/public-api.mjs +2 -0
  62. package/esm2022/src/lib/ui/radio-field/radio-field.component.mjs +39 -0
  63. package/esm2022/src/lib/ui/select-field/index.mjs +2 -0
  64. package/esm2022/src/lib/ui/select-field/public-api.mjs +2 -0
  65. package/esm2022/src/lib/ui/select-field/select-field.component.mjs +73 -0
  66. package/esm2022/src/lib/ui/selected-file/index.mjs +2 -0
  67. package/esm2022/src/lib/ui/selected-file/public-api.mjs +2 -0
  68. package/esm2022/src/lib/ui/selected-file/selected-file.component.mjs +26 -0
  69. package/esm2022/src/lib/ui/slider-field/index.mjs +2 -0
  70. package/esm2022/src/lib/ui/slider-field/public-api.mjs +2 -0
  71. package/esm2022/src/lib/ui/slider-field/slider-field.component.mjs +46 -0
  72. package/esm2022/src/lib/ui/textarea-field/index.mjs +2 -0
  73. package/esm2022/src/lib/ui/textarea-field/public-api.mjs +2 -0
  74. package/esm2022/src/lib/ui/textarea-field/textarea-field.component.mjs +42 -0
  75. package/esm2022/src/lib/ui/unit-conversion-field/index.mjs +2 -0
  76. package/esm2022/src/lib/ui/unit-conversion-field/public-api.mjs +2 -0
  77. package/esm2022/src/lib/ui/unit-conversion-field/unit-conversion-field.component.mjs +86 -0
  78. package/esm2022/src/lib/utils/abstracts/autocomplete-field.abstract.mjs +30 -0
  79. package/esm2022/src/lib/utils/abstracts/crispr-control.mixin.mjs +27 -0
  80. package/esm2022/src/lib/utils/abstracts/crispr-display-field.abstract.mjs +14 -0
  81. package/esm2022/src/lib/utils/abstracts/crispr-field.abstract.mjs +19 -0
  82. package/esm2022/src/lib/utils/abstracts/index.mjs +5 -0
  83. package/esm2022/src/lib/utils/functions/buildFormGroupFromConfig.mjs +28 -0
  84. package/esm2022/src/lib/utils/functions/callOptionsIfFunction.mjs +4 -0
  85. package/esm2022/src/lib/utils/functions/createControlForType.mjs +19 -0
  86. package/esm2022/src/lib/utils/functions/filterOptionsByLabel.mjs +11 -0
  87. package/esm2022/src/lib/utils/functions/image-compression.helpers.mjs +50 -0
  88. package/esm2022/src/lib/utils/functions/index.mjs +8 -0
  89. package/esm2022/src/lib/utils/functions/isControlConfig.mjs +7 -0
  90. package/esm2022/src/lib/utils/functions/observablifyOptions.mjs +29 -0
  91. package/esm2022/src/lib/utils/index.mjs +2 -0
  92. package/esm2022/src/lib/utils/models/autocomplete-chiplist-field.config.mjs +2 -0
  93. package/esm2022/src/lib/utils/models/autocomplete-field.config.mjs +2 -0
  94. package/esm2022/src/lib/utils/models/button.config.mjs +2 -0
  95. package/esm2022/src/lib/utils/models/checkbox-field.config.mjs +2 -0
  96. package/esm2022/src/lib/utils/models/crispr-field.config.mjs +23 -0
  97. package/esm2022/src/lib/utils/models/datepicker-field.config.mjs +2 -0
  98. package/esm2022/src/lib/utils/models/divider.config.mjs +2 -0
  99. package/esm2022/src/lib/utils/models/file-upload-field.config.mjs +2 -0
  100. package/esm2022/src/lib/utils/models/form-group-list.config.mjs +2 -0
  101. package/esm2022/src/lib/utils/models/heading.config.mjs +3 -0
  102. package/esm2022/src/lib/utils/models/image-upload-field.config.mjs +2 -0
  103. package/esm2022/src/lib/utils/models/index.mjs +18 -0
  104. package/esm2022/src/lib/utils/models/input-field.config.mjs +2 -0
  105. package/esm2022/src/lib/utils/models/radio-field.config.mjs +2 -0
  106. package/esm2022/src/lib/utils/models/select-field.config.mjs +2 -0
  107. package/esm2022/src/lib/utils/models/slider-field.config.mjs +2 -0
  108. package/esm2022/src/lib/utils/models/textarea-field.config.mjs +2 -0
  109. package/esm2022/src/lib/utils/models/unit-conversion-field.config.mjs +2 -0
  110. package/esm2022/src/lib/utils/operators/form.operators.mjs +24 -0
  111. package/esm2022/src/lib/utils/operators/index.mjs +2 -0
  112. package/esm2022/src/lib/utils/public-api.mjs +5 -0
  113. package/esm2022/src/lib/utils/tft-crispr-forms-src-lib-utils.mjs +5 -0
  114. package/{esm2020 → esm2022}/tft-crispr-forms.mjs +4 -4
  115. package/fesm2022/tft-crispr-forms-index-2dAn0905.mjs +19 -0
  116. package/fesm2022/tft-crispr-forms-index-2dAn0905.mjs.map +1 -0
  117. package/fesm2022/tft-crispr-forms-index-76UuF0AI.mjs +36 -0
  118. package/fesm2022/tft-crispr-forms-index-76UuF0AI.mjs.map +1 -0
  119. package/{fesm2020/tft-crispr-forms-ui-image-upload-field.mjs → fesm2022/tft-crispr-forms-index-BXwiulEX.mjs} +169 -169
  120. package/fesm2022/tft-crispr-forms-index-BXwiulEX.mjs.map +1 -0
  121. package/fesm2022/tft-crispr-forms-index-BfR4XbYi.mjs +110 -0
  122. package/fesm2022/tft-crispr-forms-index-BfR4XbYi.mjs.map +1 -0
  123. package/fesm2022/tft-crispr-forms-index-C5X0mk3N.mjs +49 -0
  124. package/fesm2022/tft-crispr-forms-index-C5X0mk3N.mjs.map +1 -0
  125. package/fesm2022/tft-crispr-forms-index-CFUop3Cq.mjs +80 -0
  126. package/fesm2022/tft-crispr-forms-index-CFUop3Cq.mjs.map +1 -0
  127. package/fesm2022/tft-crispr-forms-index-CFdMVgM0.mjs +91 -0
  128. package/fesm2022/tft-crispr-forms-index-CFdMVgM0.mjs.map +1 -0
  129. package/fesm2022/tft-crispr-forms-index-CZdi06Jj.mjs +49 -0
  130. package/fesm2022/tft-crispr-forms-index-CZdi06Jj.mjs.map +1 -0
  131. package/fesm2022/tft-crispr-forms-index-C_I9vjqf.mjs +57 -0
  132. package/fesm2022/tft-crispr-forms-index-C_I9vjqf.mjs.map +1 -0
  133. package/fesm2022/tft-crispr-forms-index-DE8VOdBd.mjs +102 -0
  134. package/fesm2022/tft-crispr-forms-index-DE8VOdBd.mjs.map +1 -0
  135. package/fesm2022/tft-crispr-forms-index-OLo2t0tl.mjs +48 -0
  136. package/fesm2022/tft-crispr-forms-index-OLo2t0tl.mjs.map +1 -0
  137. package/fesm2022/tft-crispr-forms-index-OT7kkOgd.mjs +50 -0
  138. package/fesm2022/tft-crispr-forms-index-OT7kkOgd.mjs.map +1 -0
  139. package/fesm2022/tft-crispr-forms-index-Ukk3WgS2.mjs +54 -0
  140. package/fesm2022/tft-crispr-forms-index-Ukk3WgS2.mjs.map +1 -0
  141. package/fesm2022/tft-crispr-forms-index-rRi6OMY6.mjs +142 -0
  142. package/fesm2022/tft-crispr-forms-index-rRi6OMY6.mjs.map +1 -0
  143. package/fesm2022/tft-crispr-forms-index-xAaInTLg.mjs +73 -0
  144. package/fesm2022/tft-crispr-forms-index-xAaInTLg.mjs.map +1 -0
  145. package/{fesm2020/tft-crispr-forms-utils.mjs → fesm2022/tft-crispr-forms-src-lib-utils.mjs} +242 -243
  146. package/fesm2022/tft-crispr-forms-src-lib-utils.mjs.map +1 -0
  147. package/fesm2022/tft-crispr-forms.mjs +848 -0
  148. package/fesm2022/tft-crispr-forms.mjs.map +1 -0
  149. package/index.d.ts +5 -5
  150. package/package.json +13 -191
  151. package/public-api.d.ts +3 -3
  152. package/src/index.d.ts +1 -1
  153. package/src/lib/crispr-forms.module.d.ts +16 -16
  154. package/src/lib/display-field.directive.d.ts +23 -23
  155. package/src/lib/field-component-map.const.d.ts +42 -42
  156. package/src/lib/field.directive.d.ts +24 -24
  157. package/src/lib/form/form.component.d.ts +19 -19
  158. package/src/lib/form-group-list/form-group-list.component.d.ts +40 -38
  159. package/src/lib/form-group-list/index.d.ts +1 -1
  160. package/src/lib/pipes/crispr-pipes.module.d.ts +8 -8
  161. package/src/lib/pipes/initial-control-value.pipe.d.ts +10 -10
  162. package/src/lib/public_api.d.ts +2 -2
  163. package/src/lib/sub-group/index.d.ts +2 -2
  164. package/src/lib/sub-group/sub-group.component.d.ts +24 -22
  165. package/src/lib/sub-group/sub-group.module.d.ts +12 -12
  166. package/{ui → src/lib/ui}/autocomplete-chiplist-field/autocomplete-chiplist-field.component.d.ts +36 -33
  167. package/src/lib/ui/autocomplete-chiplist-field/index.d.ts +1 -0
  168. package/{ui → src/lib/ui}/autocomplete-chiplist-field/public-api.d.ts +1 -1
  169. package/{ui → src/lib/ui}/autocomplete-field/autocomplete-field.component.d.ts +25 -25
  170. package/src/lib/ui/autocomplete-field/index.d.ts +1 -0
  171. package/{ui → src/lib/ui}/autocomplete-field/public-api.d.ts +1 -1
  172. package/{ui → src/lib/ui}/button/button.component.d.ts +15 -15
  173. package/src/lib/ui/button/index.d.ts +1 -0
  174. package/{ui → src/lib/ui}/button/public-api.d.ts +1 -1
  175. package/src/lib/ui/checkbox-field/checkbox-field.component.d.ts +23 -0
  176. package/src/lib/ui/checkbox-field/index.d.ts +1 -0
  177. package/{ui → src/lib/ui}/checkbox-field/public-api.d.ts +1 -1
  178. package/{ui → src/lib/ui}/datepicker-field/datepicker-field.component.d.ts +32 -30
  179. package/src/lib/ui/datepicker-field/index.d.ts +1 -0
  180. package/{ui → src/lib/ui}/datepicker-field/public-api.d.ts +1 -1
  181. package/{ui → src/lib/ui}/divider/divider.component.d.ts +9 -9
  182. package/src/lib/ui/divider/index.d.ts +1 -0
  183. package/{ui → src/lib/ui}/divider/public-api.d.ts +1 -1
  184. package/{ui → src/lib/ui}/field-container/field-container.component.d.ts +24 -24
  185. package/src/lib/ui/field-container/index.d.ts +1 -0
  186. package/{ui → src/lib/ui}/field-container/public-api.d.ts +1 -1
  187. package/{ui → src/lib/ui}/file-dropzone/file-dropzone.directive.d.ts +10 -10
  188. package/src/lib/ui/file-dropzone/index.d.ts +1 -0
  189. package/{ui → src/lib/ui}/file-dropzone/public-api.d.ts +1 -1
  190. package/{ui → src/lib/ui}/file-upload-field/file-upload-field.component.d.ts +39 -37
  191. package/src/lib/ui/file-upload-field/index.d.ts +1 -0
  192. package/{ui → src/lib/ui}/file-upload-field/public-api.d.ts +1 -1
  193. package/{ui → src/lib/ui}/heading/heading.component.d.ts +8 -8
  194. package/src/lib/ui/heading/index.d.ts +1 -0
  195. package/{ui → src/lib/ui}/heading/public-api.d.ts +1 -1
  196. package/{ui → src/lib/ui}/image-upload-field/image-upload-field.component.d.ts +50 -48
  197. package/src/lib/ui/image-upload-field/index.d.ts +1 -0
  198. package/{ui → src/lib/ui}/image-upload-field/public-api.d.ts +1 -1
  199. package/src/lib/ui/index.d.ts +1 -0
  200. package/src/lib/ui/info/index.d.ts +1 -0
  201. package/{ui → src/lib/ui}/info/info.component.d.ts +7 -7
  202. package/{ui → src/lib/ui}/info/public-api.d.ts +1 -1
  203. package/src/lib/ui/input-field/index.d.ts +1 -0
  204. package/src/lib/ui/input-field/input-field.component.d.ts +24 -0
  205. package/{ui → src/lib/ui}/input-field/public-api.d.ts +1 -1
  206. package/src/lib/ui/option/index.d.ts +1 -0
  207. package/{ui → src/lib/ui}/option/option.component.d.ts +7 -7
  208. package/{ui → src/lib/ui}/option/public-api.d.ts +1 -1
  209. package/src/lib/ui/public-api.d.ts +6 -0
  210. package/src/lib/ui/radio-field/index.d.ts +1 -0
  211. package/{ui → src/lib/ui}/radio-field/public-api.d.ts +1 -1
  212. package/src/lib/ui/radio-field/radio-field.component.d.ts +25 -0
  213. package/src/lib/ui/select-field/index.d.ts +1 -0
  214. package/{ui → src/lib/ui}/select-field/public-api.d.ts +1 -1
  215. package/{ui → src/lib/ui}/select-field/select-field.component.d.ts +34 -32
  216. package/src/lib/ui/selected-file/index.d.ts +1 -0
  217. package/{ui → src/lib/ui}/selected-file/public-api.d.ts +1 -1
  218. package/{ui → src/lib/ui}/selected-file/selected-file.component.d.ts +10 -10
  219. package/src/lib/ui/slider-field/index.d.ts +1 -0
  220. package/{ui → src/lib/ui}/slider-field/public-api.d.ts +1 -1
  221. package/src/lib/ui/slider-field/slider-field.component.d.ts +24 -0
  222. package/src/lib/ui/textarea-field/index.d.ts +1 -0
  223. package/{ui → src/lib/ui}/textarea-field/public-api.d.ts +1 -1
  224. package/src/lib/ui/textarea-field/textarea-field.component.d.ts +23 -0
  225. package/src/lib/ui/unit-conversion-field/index.d.ts +1 -0
  226. package/{ui → src/lib/ui}/unit-conversion-field/public-api.d.ts +1 -1
  227. package/{ui → src/lib/ui}/unit-conversion-field/unit-conversion-field.component.d.ts +38 -36
  228. package/{utils → src/lib/utils}/abstracts/autocomplete-field.abstract.d.ts +28 -28
  229. package/{utils → src/lib/utils}/abstracts/crispr-control.mixin.d.ts +16 -16
  230. package/{utils → src/lib/utils}/abstracts/crispr-display-field.abstract.d.ts +22 -22
  231. package/{utils → src/lib/utils}/abstracts/crispr-field.abstract.d.ts +11 -11
  232. package/{utils → src/lib/utils}/abstracts/index.d.ts +4 -4
  233. package/{utils → src/lib/utils}/functions/buildFormGroupFromConfig.d.ts +9 -9
  234. package/{utils → src/lib/utils}/functions/callOptionsIfFunction.d.ts +3 -3
  235. package/{utils → src/lib/utils}/functions/createControlForType.d.ts +9 -9
  236. package/{utils → src/lib/utils}/functions/filterOptionsByLabel.d.ts +7 -7
  237. package/{utils → src/lib/utils}/functions/image-compression.helpers.d.ts +5 -5
  238. package/{utils → src/lib/utils}/functions/index.d.ts +7 -7
  239. package/{utils → src/lib/utils}/functions/isControlConfig.d.ts +5 -5
  240. package/{utils → src/lib/utils}/functions/observablifyOptions.d.ts +12 -12
  241. package/{ui → src/lib/utils}/index.d.ts +5 -5
  242. package/{utils → src/lib/utils}/models/autocomplete-chiplist-field.config.d.ts +20 -20
  243. package/{utils → src/lib/utils}/models/autocomplete-field.config.d.ts +14 -14
  244. package/{utils → src/lib/utils}/models/button.config.d.ts +17 -17
  245. package/{utils → src/lib/utils}/models/checkbox-field.config.d.ts +6 -6
  246. package/{utils → src/lib/utils}/models/crispr-field.config.d.ts +97 -94
  247. package/{utils → src/lib/utils}/models/datepicker-field.config.d.ts +20 -20
  248. package/{utils → src/lib/utils}/models/divider.config.d.ts +5 -5
  249. package/{utils → src/lib/utils}/models/file-upload-field.config.d.ts +33 -33
  250. package/{utils → src/lib/utils}/models/form-group-list.config.d.ts +18 -18
  251. package/{utils → src/lib/utils}/models/heading.config.d.ts +6 -6
  252. package/{utils → src/lib/utils}/models/image-upload-field.config.d.ts +54 -54
  253. package/{utils → src/lib/utils}/models/index.d.ts +17 -17
  254. package/{utils → src/lib/utils}/models/input-field.config.d.ts +16 -16
  255. package/{utils → src/lib/utils}/models/radio-field.config.d.ts +6 -6
  256. package/{utils → src/lib/utils}/models/select-field.config.d.ts +21 -21
  257. package/{utils → src/lib/utils}/models/slider-field.config.d.ts +11 -13
  258. package/{utils → src/lib/utils}/models/textarea-field.config.d.ts +5 -5
  259. package/{utils → src/lib/utils}/models/unit-conversion-field.config.d.ts +30 -30
  260. package/{utils → src/lib/utils}/operators/form.operators.d.ts +1 -1
  261. package/{utils → src/lib/utils}/operators/index.d.ts +1 -1
  262. package/{utils → src/lib/utils}/public-api.d.ts +4 -4
  263. package/tft-crispr-forms-17.0.0.tgz +0 -0
  264. package/esm2020/public-api.mjs +0 -5
  265. package/esm2020/src/lib/crispr-forms.module.mjs +0 -60
  266. package/esm2020/src/lib/display-field.directive.mjs +0 -53
  267. package/esm2020/src/lib/field-component-map.const.mjs +0 -27
  268. package/esm2020/src/lib/field.directive.mjs +0 -69
  269. package/esm2020/src/lib/form/form.component.mjs +0 -63
  270. package/esm2020/src/lib/form-group-list/form-group-list.component.mjs +0 -99
  271. package/esm2020/src/lib/pipes/initial-control-value.pipe.mjs +0 -21
  272. package/esm2020/src/lib/sub-group/sub-group.component.mjs +0 -21
  273. package/esm2020/src/lib/sub-group/sub-group.module.mjs +0 -42
  274. package/esm2020/ui/autocomplete-chiplist-field/autocomplete-chiplist-field.component.mjs +0 -130
  275. package/esm2020/ui/autocomplete-chiplist-field/public-api.mjs +0 -2
  276. package/esm2020/ui/autocomplete-chiplist-field/tft-crispr-forms-ui-autocomplete-chiplist-field.mjs +0 -5
  277. package/esm2020/ui/autocomplete-field/autocomplete-field.component.mjs +0 -93
  278. package/esm2020/ui/autocomplete-field/public-api.mjs +0 -2
  279. package/esm2020/ui/autocomplete-field/tft-crispr-forms-ui-autocomplete-field.mjs +0 -5
  280. package/esm2020/ui/button/button.component.mjs +0 -49
  281. package/esm2020/ui/button/public-api.mjs +0 -2
  282. package/esm2020/ui/button/tft-crispr-forms-ui-button.mjs +0 -5
  283. package/esm2020/ui/checkbox-field/checkbox-field.component.mjs +0 -42
  284. package/esm2020/ui/checkbox-field/public-api.mjs +0 -2
  285. package/esm2020/ui/checkbox-field/tft-crispr-forms-ui-checkbox-field.mjs +0 -5
  286. package/esm2020/ui/datepicker-field/datepicker-field.component.mjs +0 -63
  287. package/esm2020/ui/datepicker-field/public-api.mjs +0 -2
  288. package/esm2020/ui/datepicker-field/tft-crispr-forms-ui-datepicker-field.mjs +0 -5
  289. package/esm2020/ui/divider/divider.component.mjs +0 -28
  290. package/esm2020/ui/divider/public-api.mjs +0 -2
  291. package/esm2020/ui/divider/tft-crispr-forms-ui-divider.mjs +0 -5
  292. package/esm2020/ui/field-container/field-container.component.mjs +0 -58
  293. package/esm2020/ui/field-container/public-api.mjs +0 -2
  294. package/esm2020/ui/field-container/tft-crispr-forms-ui-field-container.mjs +0 -5
  295. package/esm2020/ui/file-dropzone/file-dropzone.directive.mjs +0 -40
  296. package/esm2020/ui/file-dropzone/public-api.mjs +0 -2
  297. package/esm2020/ui/file-dropzone/tft-crispr-forms-ui-file-dropzone.mjs +0 -5
  298. package/esm2020/ui/file-upload-field/file-upload-field.component.mjs +0 -108
  299. package/esm2020/ui/file-upload-field/public-api.mjs +0 -2
  300. package/esm2020/ui/file-upload-field/tft-crispr-forms-ui-file-upload-field.mjs +0 -5
  301. package/esm2020/ui/heading/heading.component.mjs +0 -31
  302. package/esm2020/ui/heading/public-api.mjs +0 -2
  303. package/esm2020/ui/heading/tft-crispr-forms-ui-heading.mjs +0 -5
  304. package/esm2020/ui/image-upload-field/image-upload-field.component.mjs +0 -179
  305. package/esm2020/ui/image-upload-field/public-api.mjs +0 -2
  306. package/esm2020/ui/image-upload-field/tft-crispr-forms-ui-image-upload-field.mjs +0 -5
  307. package/esm2020/ui/info/info.component.mjs +0 -23
  308. package/esm2020/ui/info/public-api.mjs +0 -2
  309. package/esm2020/ui/info/tft-crispr-forms-ui-info.mjs +0 -5
  310. package/esm2020/ui/input-field/input-field.component.mjs +0 -41
  311. package/esm2020/ui/input-field/public-api.mjs +0 -2
  312. package/esm2020/ui/input-field/tft-crispr-forms-ui-input-field.mjs +0 -5
  313. package/esm2020/ui/option/option.component.mjs +0 -19
  314. package/esm2020/ui/option/public-api.mjs +0 -2
  315. package/esm2020/ui/option/tft-crispr-forms-ui-option.mjs +0 -5
  316. package/esm2020/ui/public-api.mjs +0 -7
  317. package/esm2020/ui/radio-field/public-api.mjs +0 -2
  318. package/esm2020/ui/radio-field/radio-field.component.mjs +0 -39
  319. package/esm2020/ui/radio-field/tft-crispr-forms-ui-radio-field.mjs +0 -5
  320. package/esm2020/ui/select-field/public-api.mjs +0 -2
  321. package/esm2020/ui/select-field/select-field.component.mjs +0 -73
  322. package/esm2020/ui/select-field/tft-crispr-forms-ui-select-field.mjs +0 -5
  323. package/esm2020/ui/selected-file/public-api.mjs +0 -2
  324. package/esm2020/ui/selected-file/selected-file.component.mjs +0 -26
  325. package/esm2020/ui/selected-file/tft-crispr-forms-ui-selected-file.mjs +0 -5
  326. package/esm2020/ui/slider-field/public-api.mjs +0 -2
  327. package/esm2020/ui/slider-field/slider-field.component.mjs +0 -44
  328. package/esm2020/ui/slider-field/tft-crispr-forms-ui-slider-field.mjs +0 -5
  329. package/esm2020/ui/textarea-field/public-api.mjs +0 -2
  330. package/esm2020/ui/textarea-field/textarea-field.component.mjs +0 -42
  331. package/esm2020/ui/textarea-field/tft-crispr-forms-ui-textarea-field.mjs +0 -5
  332. package/esm2020/ui/tft-crispr-forms-ui.mjs +0 -5
  333. package/esm2020/ui/unit-conversion-field/public-api.mjs +0 -2
  334. package/esm2020/ui/unit-conversion-field/tft-crispr-forms-ui-unit-conversion-field.mjs +0 -5
  335. package/esm2020/ui/unit-conversion-field/unit-conversion-field.component.mjs +0 -84
  336. package/esm2020/utils/abstracts/autocomplete-field.abstract.mjs +0 -30
  337. package/esm2020/utils/abstracts/crispr-control.mixin.mjs +0 -27
  338. package/esm2020/utils/abstracts/crispr-display-field.abstract.mjs +0 -14
  339. package/esm2020/utils/abstracts/crispr-field.abstract.mjs +0 -20
  340. package/esm2020/utils/abstracts/index.mjs +0 -5
  341. package/esm2020/utils/functions/buildFormGroupFromConfig.mjs +0 -28
  342. package/esm2020/utils/functions/callOptionsIfFunction.mjs +0 -4
  343. package/esm2020/utils/functions/createControlForType.mjs +0 -19
  344. package/esm2020/utils/functions/filterOptionsByLabel.mjs +0 -11
  345. package/esm2020/utils/functions/image-compression.helpers.mjs +0 -50
  346. package/esm2020/utils/functions/index.mjs +0 -8
  347. package/esm2020/utils/functions/isControlConfig.mjs +0 -7
  348. package/esm2020/utils/functions/observablifyOptions.mjs +0 -29
  349. package/esm2020/utils/models/autocomplete-chiplist-field.config.mjs +0 -2
  350. package/esm2020/utils/models/autocomplete-field.config.mjs +0 -2
  351. package/esm2020/utils/models/button.config.mjs +0 -2
  352. package/esm2020/utils/models/checkbox-field.config.mjs +0 -2
  353. package/esm2020/utils/models/crispr-field.config.mjs +0 -23
  354. package/esm2020/utils/models/datepicker-field.config.mjs +0 -2
  355. package/esm2020/utils/models/divider.config.mjs +0 -2
  356. package/esm2020/utils/models/file-upload-field.config.mjs +0 -2
  357. package/esm2020/utils/models/form-group-list.config.mjs +0 -2
  358. package/esm2020/utils/models/heading.config.mjs +0 -3
  359. package/esm2020/utils/models/image-upload-field.config.mjs +0 -2
  360. package/esm2020/utils/models/index.mjs +0 -18
  361. package/esm2020/utils/models/input-field.config.mjs +0 -2
  362. package/esm2020/utils/models/radio-field.config.mjs +0 -2
  363. package/esm2020/utils/models/select-field.config.mjs +0 -2
  364. package/esm2020/utils/models/slider-field.config.mjs +0 -2
  365. package/esm2020/utils/models/textarea-field.config.mjs +0 -2
  366. package/esm2020/utils/models/unit-conversion-field.config.mjs +0 -2
  367. package/esm2020/utils/operators/form.operators.mjs +0 -24
  368. package/esm2020/utils/operators/index.mjs +0 -2
  369. package/esm2020/utils/public-api.mjs +0 -5
  370. package/esm2020/utils/tft-crispr-forms-utils.mjs +0 -5
  371. package/fesm2015/tft-crispr-forms-ui-autocomplete-chiplist-field.mjs +0 -138
  372. package/fesm2015/tft-crispr-forms-ui-autocomplete-chiplist-field.mjs.map +0 -1
  373. package/fesm2015/tft-crispr-forms-ui-autocomplete-field.mjs +0 -101
  374. package/fesm2015/tft-crispr-forms-ui-autocomplete-field.mjs.map +0 -1
  375. package/fesm2015/tft-crispr-forms-ui-button.mjs +0 -55
  376. package/fesm2015/tft-crispr-forms-ui-button.mjs.map +0 -1
  377. package/fesm2015/tft-crispr-forms-ui-checkbox-field.mjs +0 -49
  378. package/fesm2015/tft-crispr-forms-ui-checkbox-field.mjs.map +0 -1
  379. package/fesm2015/tft-crispr-forms-ui-datepicker-field.mjs +0 -71
  380. package/fesm2015/tft-crispr-forms-ui-datepicker-field.mjs.map +0 -1
  381. package/fesm2015/tft-crispr-forms-ui-divider.mjs +0 -34
  382. package/fesm2015/tft-crispr-forms-ui-divider.mjs.map +0 -1
  383. package/fesm2015/tft-crispr-forms-ui-field-container.mjs +0 -64
  384. package/fesm2015/tft-crispr-forms-ui-field-container.mjs.map +0 -1
  385. package/fesm2015/tft-crispr-forms-ui-file-dropzone.mjs +0 -47
  386. package/fesm2015/tft-crispr-forms-ui-file-dropzone.mjs.map +0 -1
  387. package/fesm2015/tft-crispr-forms-ui-file-upload-field.mjs +0 -117
  388. package/fesm2015/tft-crispr-forms-ui-file-upload-field.mjs.map +0 -1
  389. package/fesm2015/tft-crispr-forms-ui-heading.mjs +0 -37
  390. package/fesm2015/tft-crispr-forms-ui-heading.mjs.map +0 -1
  391. package/fesm2015/tft-crispr-forms-ui-image-upload-field.mjs +0 -182
  392. package/fesm2015/tft-crispr-forms-ui-image-upload-field.mjs.map +0 -1
  393. package/fesm2015/tft-crispr-forms-ui-info.mjs +0 -30
  394. package/fesm2015/tft-crispr-forms-ui-info.mjs.map +0 -1
  395. package/fesm2015/tft-crispr-forms-ui-input-field.mjs +0 -48
  396. package/fesm2015/tft-crispr-forms-ui-input-field.mjs.map +0 -1
  397. package/fesm2015/tft-crispr-forms-ui-option.mjs +0 -26
  398. package/fesm2015/tft-crispr-forms-ui-option.mjs.map +0 -1
  399. package/fesm2015/tft-crispr-forms-ui-radio-field.mjs +0 -46
  400. package/fesm2015/tft-crispr-forms-ui-radio-field.mjs.map +0 -1
  401. package/fesm2015/tft-crispr-forms-ui-select-field.mjs +0 -81
  402. package/fesm2015/tft-crispr-forms-ui-select-field.mjs.map +0 -1
  403. package/fesm2015/tft-crispr-forms-ui-selected-file.mjs +0 -33
  404. package/fesm2015/tft-crispr-forms-ui-selected-file.mjs.map +0 -1
  405. package/fesm2015/tft-crispr-forms-ui-slider-field.mjs +0 -51
  406. package/fesm2015/tft-crispr-forms-ui-slider-field.mjs.map +0 -1
  407. package/fesm2015/tft-crispr-forms-ui-textarea-field.mjs +0 -49
  408. package/fesm2015/tft-crispr-forms-ui-textarea-field.mjs.map +0 -1
  409. package/fesm2015/tft-crispr-forms-ui-unit-conversion-field.mjs +0 -93
  410. package/fesm2015/tft-crispr-forms-ui-unit-conversion-field.mjs.map +0 -1
  411. package/fesm2015/tft-crispr-forms-ui.mjs +0 -12
  412. package/fesm2015/tft-crispr-forms-ui.mjs.map +0 -1
  413. package/fesm2015/tft-crispr-forms-utils.mjs +0 -280
  414. package/fesm2015/tft-crispr-forms-utils.mjs.map +0 -1
  415. package/fesm2015/tft-crispr-forms.mjs +0 -438
  416. package/fesm2015/tft-crispr-forms.mjs.map +0 -1
  417. package/fesm2020/tft-crispr-forms-ui-autocomplete-chiplist-field.mjs +0 -137
  418. package/fesm2020/tft-crispr-forms-ui-autocomplete-chiplist-field.mjs.map +0 -1
  419. package/fesm2020/tft-crispr-forms-ui-autocomplete-field.mjs +0 -100
  420. package/fesm2020/tft-crispr-forms-ui-autocomplete-field.mjs.map +0 -1
  421. package/fesm2020/tft-crispr-forms-ui-button.mjs +0 -55
  422. package/fesm2020/tft-crispr-forms-ui-button.mjs.map +0 -1
  423. package/fesm2020/tft-crispr-forms-ui-checkbox-field.mjs +0 -49
  424. package/fesm2020/tft-crispr-forms-ui-checkbox-field.mjs.map +0 -1
  425. package/fesm2020/tft-crispr-forms-ui-datepicker-field.mjs +0 -70
  426. package/fesm2020/tft-crispr-forms-ui-datepicker-field.mjs.map +0 -1
  427. package/fesm2020/tft-crispr-forms-ui-divider.mjs +0 -34
  428. package/fesm2020/tft-crispr-forms-ui-divider.mjs.map +0 -1
  429. package/fesm2020/tft-crispr-forms-ui-field-container.mjs +0 -65
  430. package/fesm2020/tft-crispr-forms-ui-field-container.mjs.map +0 -1
  431. package/fesm2020/tft-crispr-forms-ui-file-dropzone.mjs +0 -47
  432. package/fesm2020/tft-crispr-forms-ui-file-dropzone.mjs.map +0 -1
  433. package/fesm2020/tft-crispr-forms-ui-file-upload-field.mjs +0 -115
  434. package/fesm2020/tft-crispr-forms-ui-file-upload-field.mjs.map +0 -1
  435. package/fesm2020/tft-crispr-forms-ui-heading.mjs +0 -37
  436. package/fesm2020/tft-crispr-forms-ui-heading.mjs.map +0 -1
  437. package/fesm2020/tft-crispr-forms-ui-image-upload-field.mjs.map +0 -1
  438. package/fesm2020/tft-crispr-forms-ui-info.mjs +0 -30
  439. package/fesm2020/tft-crispr-forms-ui-info.mjs.map +0 -1
  440. package/fesm2020/tft-crispr-forms-ui-input-field.mjs +0 -48
  441. package/fesm2020/tft-crispr-forms-ui-input-field.mjs.map +0 -1
  442. package/fesm2020/tft-crispr-forms-ui-option.mjs +0 -26
  443. package/fesm2020/tft-crispr-forms-ui-option.mjs.map +0 -1
  444. package/fesm2020/tft-crispr-forms-ui-radio-field.mjs +0 -46
  445. package/fesm2020/tft-crispr-forms-ui-radio-field.mjs.map +0 -1
  446. package/fesm2020/tft-crispr-forms-ui-select-field.mjs +0 -80
  447. package/fesm2020/tft-crispr-forms-ui-select-field.mjs.map +0 -1
  448. package/fesm2020/tft-crispr-forms-ui-selected-file.mjs +0 -33
  449. package/fesm2020/tft-crispr-forms-ui-selected-file.mjs.map +0 -1
  450. package/fesm2020/tft-crispr-forms-ui-slider-field.mjs +0 -51
  451. package/fesm2020/tft-crispr-forms-ui-slider-field.mjs.map +0 -1
  452. package/fesm2020/tft-crispr-forms-ui-textarea-field.mjs +0 -49
  453. package/fesm2020/tft-crispr-forms-ui-textarea-field.mjs.map +0 -1
  454. package/fesm2020/tft-crispr-forms-ui-unit-conversion-field.mjs +0 -91
  455. package/fesm2020/tft-crispr-forms-ui-unit-conversion-field.mjs.map +0 -1
  456. package/fesm2020/tft-crispr-forms-ui.mjs +0 -12
  457. package/fesm2020/tft-crispr-forms-ui.mjs.map +0 -1
  458. package/fesm2020/tft-crispr-forms-utils.mjs.map +0 -1
  459. package/fesm2020/tft-crispr-forms.mjs +0 -434
  460. package/fesm2020/tft-crispr-forms.mjs.map +0 -1
  461. package/tft-crispr-forms-14.0.2.tgz +0 -0
  462. package/ui/README.md +0 -3
  463. package/ui/autocomplete-chiplist-field/index.d.ts +0 -5
  464. package/ui/autocomplete-field/index.d.ts +0 -5
  465. package/ui/button/index.d.ts +0 -5
  466. package/ui/checkbox-field/checkbox-field.component.d.ts +0 -21
  467. package/ui/checkbox-field/index.d.ts +0 -5
  468. package/ui/datepicker-field/index.d.ts +0 -5
  469. package/ui/divider/index.d.ts +0 -5
  470. package/ui/field-container/index.d.ts +0 -5
  471. package/ui/file-dropzone/index.d.ts +0 -5
  472. package/ui/file-upload-field/index.d.ts +0 -5
  473. package/ui/heading/index.d.ts +0 -5
  474. package/ui/image-upload-field/index.d.ts +0 -5
  475. package/ui/info/index.d.ts +0 -5
  476. package/ui/input-field/index.d.ts +0 -5
  477. package/ui/input-field/input-field.component.d.ts +0 -22
  478. package/ui/option/index.d.ts +0 -5
  479. package/ui/public-api.d.ts +0 -5
  480. package/ui/radio-field/index.d.ts +0 -5
  481. package/ui/radio-field/radio-field.component.d.ts +0 -23
  482. package/ui/select-field/index.d.ts +0 -5
  483. package/ui/selected-file/index.d.ts +0 -5
  484. package/ui/slider-field/index.d.ts +0 -5
  485. package/ui/slider-field/slider-field.component.d.ts +0 -25
  486. package/ui/textarea-field/index.d.ts +0 -5
  487. package/ui/textarea-field/textarea-field.component.d.ts +0 -21
  488. package/ui/unit-conversion-field/index.d.ts +0 -5
  489. package/utils/index.d.ts +0 -5
  490. /package/{utils → src/lib/utils}/README.md +0 -0
@@ -0,0 +1,66 @@
1
+ /* eslint-disable @nx/enforce-module-boundaries */
2
+ import { Component, ChangeDetectionStrategy, } from '@angular/core';
3
+ import { MatDatepickerModule, } from '@angular/material/datepicker';
4
+ import { MatDateFnsModule } from '@angular/material-date-fns-adapter';
5
+ import { of } from 'rxjs';
6
+ import { ComponentPortal, PortalModule } from '@angular/cdk/portal';
7
+ import { MatFormFieldModule } from '@angular/material/form-field';
8
+ import { CommonModule } from '@angular/common';
9
+ import { ReactiveFormsModule } from '@angular/forms';
10
+ import { MatInputModule } from '@angular/material/input';
11
+ import { FormValidationHandlerModule } from '@tft/form-validation-handler';
12
+ import { FieldContainerComponent } from '../field-container';
13
+ import { crisprControlMixin, CrisprFieldComponent, } from '../../utils';
14
+ import * as i0 from "@angular/core";
15
+ import * as i1 from "@angular/common";
16
+ import * as i2 from "@angular/material/datepicker";
17
+ import * as i3 from "@angular/material/form-field";
18
+ import * as i4 from "@angular/forms";
19
+ import * as i5 from "@angular/material/input";
20
+ import * as i6 from "@angular/cdk/portal";
21
+ import * as i7 from "@tft/form-validation-handler";
22
+ const defaultConfig = {
23
+ startView: 'month',
24
+ };
25
+ const DatepickerFieldMixin = crisprControlMixin(CrisprFieldComponent);
26
+ export class DatepickerFieldComponent extends DatepickerFieldMixin {
27
+ constructor() {
28
+ super(...arguments);
29
+ this.defaultConfig = defaultConfig;
30
+ }
31
+ ngOnInit() {
32
+ super.ngOnInit();
33
+ this.startAt$ =
34
+ this.config.startAt instanceof Date
35
+ ? of(this.config.startAt)
36
+ : this.config.startAt instanceof Function
37
+ ? this.config.startAt(this.group)
38
+ : of(null);
39
+ this.dateClass = this.config?.cellClassFunction || null;
40
+ this.dateClass$ = this.config.dateClass
41
+ ? this.config?.dateClass(this.group)
42
+ : of(() => '');
43
+ }
44
+ ngAfterContentInit() {
45
+ if (this.config.datepickerActions) {
46
+ this.calendarFooterPortal = new ComponentPortal(this.config.datepickerActions);
47
+ }
48
+ }
49
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: DatepickerFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
50
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: DatepickerFieldComponent, isStandalone: true, selector: "crispr-datepicker-field", usesInheritance: true, ngImport: i0, template: "<crispr-field-container\n [config]=\"config\"\n [group]=\"group\">\n <mat-form-field\n [color]=\"config.color\"\n [appearance]=\"config.appearance\"\n [formGroup]=\"group\">\n <mat-label *ngIf=\"config.label\">\n {{config.label}}\n </mat-label>\n <input\n matInput\n [formControlName]=\"config.controlName\"\n [min]=\"config.min\"\n [max]=\"config.max\"\n [matDatepicker]=\"picker\"\n [matDatepickerFilter]=\"config.datepickerFilter\">\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\n <mat-datepicker\n [touchUi]=\"config.touchUi\"\n [startView]=\"config.startView\"\n [startAt]=\"startAt$ | async\"\n [dateClass]=\"dateClass || (dateClass$ | async)\"\n #picker>\n <mat-datepicker-actions *ngIf=\"calendarFooterPortal\">\n <ng-template [cdkPortalOutlet]=\"calendarFooterPortal\"></ng-template>\n </mat-datepicker-actions>\n </mat-datepicker>\n\n <mat-hint *ngIf=\"config.hint && (control.valid || !control.touched)\">{{config.hint}}</mat-hint>\n\n </mat-form-field>\n</crispr-field-container>\n\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "component", type: FieldContainerComponent, selector: "crispr-field-container", inputs: ["config", "group", "inlineField"] }, { kind: "ngmodule", type: MatDatepickerModule }, { kind: "component", type: i2.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i2.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i2.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "component", type: i2.MatDatepickerActions, selector: "mat-datepicker-actions, mat-date-range-picker-actions" }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i3.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i5.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatDateFnsModule }, { kind: "ngmodule", type: PortalModule }, { kind: "directive", type: i6.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "ngmodule", type: FormValidationHandlerModule }, { kind: "directive", type: i7.ControlErrorsDirective, selector: "[formControl], [formControlName]" }, { kind: "directive", type: i7.ControlErrorContainerDirective, selector: "[controlErrorContainer], [formGroup]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, preserveWhitespaces: true }); }
51
+ }
52
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: DatepickerFieldComponent, decorators: [{
53
+ type: Component,
54
+ args: [{ selector: 'crispr-datepicker-field', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
55
+ CommonModule,
56
+ FieldContainerComponent,
57
+ MatDatepickerModule,
58
+ MatFormFieldModule,
59
+ ReactiveFormsModule,
60
+ MatInputModule,
61
+ MatDateFnsModule,
62
+ PortalModule,
63
+ FormValidationHandlerModule,
64
+ ], template: "<crispr-field-container\n [config]=\"config\"\n [group]=\"group\">\n <mat-form-field\n [color]=\"config.color\"\n [appearance]=\"config.appearance\"\n [formGroup]=\"group\">\n <mat-label *ngIf=\"config.label\">\n {{config.label}}\n </mat-label>\n <input\n matInput\n [formControlName]=\"config.controlName\"\n [min]=\"config.min\"\n [max]=\"config.max\"\n [matDatepicker]=\"picker\"\n [matDatepickerFilter]=\"config.datepickerFilter\">\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\n <mat-datepicker\n [touchUi]=\"config.touchUi\"\n [startView]=\"config.startView\"\n [startAt]=\"startAt$ | async\"\n [dateClass]=\"dateClass || (dateClass$ | async)\"\n #picker>\n <mat-datepicker-actions *ngIf=\"calendarFooterPortal\">\n <ng-template [cdkPortalOutlet]=\"calendarFooterPortal\"></ng-template>\n </mat-datepicker-actions>\n </mat-datepicker>\n\n <mat-hint *ngIf=\"config.hint && (control.valid || !control.touched)\">{{config.hint}}</mat-hint>\n\n </mat-form-field>\n</crispr-field-container>\n\n" }]
65
+ }] });
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NyaXNwci1mb3Jtcy9zcmMvbGliL3VpL2RhdGVwaWNrZXItZmllbGQvZGF0ZXBpY2tlci1maWVsZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NyaXNwci1mb3Jtcy9zcmMvbGliL3VpL2RhdGVwaWNrZXItZmllbGQvZGF0ZXBpY2tlci1maWVsZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxrREFBa0Q7QUFDbEQsT0FBTyxFQUNMLFNBQVMsRUFFVCx1QkFBdUIsR0FFeEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUVMLG1CQUFtQixHQUNwQixNQUFNLDhCQUE4QixDQUFDO0FBQ3RDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3RFLE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLGVBQWUsRUFBVSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM1RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzNFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzdELE9BQU8sRUFDTCxrQkFBa0IsRUFDbEIsb0JBQW9CLEdBRXJCLE1BQU0sYUFBYSxDQUFDOzs7Ozs7Ozs7QUFFckIsTUFBTSxhQUFhLEdBQW1DO0lBQ3BELFNBQVMsRUFBRSxPQUFPO0NBQ25CLENBQUM7QUFDRixNQUFNLG9CQUFvQixHQUN4QixrQkFBa0IsQ0FBd0Isb0JBQW9CLENBQUMsQ0FBQztBQW9CbEUsTUFBTSxPQUFPLHdCQUNYLFNBQVEsb0JBQW9CO0lBbkI5Qjs7UUFzQkUsa0JBQWEsR0FBRyxhQUFhLENBQUM7S0FxQy9CO0lBNUJDLFFBQVE7UUFDTixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLFFBQVE7WUFDWCxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sWUFBWSxJQUFJO2dCQUNqQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDO2dCQUN6QixDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLFlBQVksUUFBUTtvQkFDekMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7b0JBQ2pDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDZixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsaUJBQWlCLElBQUksSUFBSSxDQUFDO1FBQ3hELElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTO1lBQ3JDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO1lBQ3BDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDbkIsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsaUJBQWlCLEVBQUU7WUFDakMsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksZUFBZSxDQUM3QyxJQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUM5QixDQUFDO1NBQ0g7SUFDSCxDQUFDOzhHQWpDVSx3QkFBd0I7a0dBQXhCLHdCQUF3QiwwR0NsRHJDLG1uQ0FrQ0EseURES0ksWUFBWSx3TEFDWix1QkFBdUIsOEdBQ3ZCLG1CQUFtQiwwbkJBQ25CLGtCQUFrQixtZ0JBQ2xCLG1CQUFtQixtMkJBQ25CLGNBQWMsMFdBQ2QsZ0JBQWdCLDhCQUNoQixZQUFZLGlNQUNaLDJCQUEyQjs7MkZBR2xCLHdCQUF3QjtrQkFsQnBDLFNBQVM7K0JBQ0UseUJBQXlCLG1CQUdsQix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLHVCQUF1Qjt3QkFDdkIsbUJBQW1CO3dCQUNuQixrQkFBa0I7d0JBQ2xCLG1CQUFtQjt3QkFDbkIsY0FBYzt3QkFDZCxnQkFBZ0I7d0JBQ2hCLFlBQVk7d0JBQ1osMkJBQTJCO3FCQUM1QiIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEBueC9lbmZvcmNlLW1vZHVsZS1ib3VuZGFyaWVzICovXG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIE9uSW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIEFmdGVyQ29udGVudEluaXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgTWF0Q2FsZW5kYXJDZWxsQ2xhc3NGdW5jdGlvbixcbiAgTWF0RGF0ZXBpY2tlck1vZHVsZSxcbn0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGF0ZXBpY2tlcic7XG5pbXBvcnQgeyBNYXREYXRlRm5zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwtZGF0ZS1mbnMtYWRhcHRlcic7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ29tcG9uZW50UG9ydGFsLCBQb3J0YWwsIFBvcnRhbE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xuaW1wb3J0IHsgRm9ybVZhbGlkYXRpb25IYW5kbGVyTW9kdWxlIH0gZnJvbSAnQHRmdC9mb3JtLXZhbGlkYXRpb24taGFuZGxlcic7XG5pbXBvcnQgeyBGaWVsZENvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gJy4uL2ZpZWxkLWNvbnRhaW5lcic7XG5pbXBvcnQge1xuICBjcmlzcHJDb250cm9sTWl4aW4sXG4gIENyaXNwckZpZWxkQ29tcG9uZW50LFxuICBEYXRlcGlja2VyRmllbGRDb25maWcsXG59IGZyb20gJy4uLy4uL3V0aWxzJztcblxuY29uc3QgZGVmYXVsdENvbmZpZzogUGFydGlhbDxEYXRlcGlja2VyRmllbGRDb25maWc+ID0ge1xuICBzdGFydFZpZXc6ICdtb250aCcsXG59O1xuY29uc3QgRGF0ZXBpY2tlckZpZWxkTWl4aW4gPVxuICBjcmlzcHJDb250cm9sTWl4aW48RGF0ZXBpY2tlckZpZWxkQ29uZmlnPihDcmlzcHJGaWVsZENvbXBvbmVudCk7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NyaXNwci1kYXRlcGlja2VyLWZpZWxkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGVwaWNrZXItZmllbGQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kYXRlcGlja2VyLWZpZWxkLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEZpZWxkQ29udGFpbmVyQ29tcG9uZW50LFxuICAgIE1hdERhdGVwaWNrZXJNb2R1bGUsXG4gICAgTWF0Rm9ybUZpZWxkTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgTWF0SW5wdXRNb2R1bGUsXG4gICAgTWF0RGF0ZUZuc01vZHVsZSxcbiAgICBQb3J0YWxNb2R1bGUsXG4gICAgRm9ybVZhbGlkYXRpb25IYW5kbGVyTW9kdWxlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBEYXRlcGlja2VyRmllbGRDb21wb25lbnRcbiAgZXh0ZW5kcyBEYXRlcGlja2VyRmllbGRNaXhpblxuICBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJDb250ZW50SW5pdFxue1xuICBkZWZhdWx0Q29uZmlnID0gZGVmYXVsdENvbmZpZztcblxuICBkYXRlQ2xhc3M6IE1hdENhbGVuZGFyQ2VsbENsYXNzRnVuY3Rpb248RGF0ZT47XG4gIGRhdGVDbGFzcyQ6IE9ic2VydmFibGU8TWF0Q2FsZW5kYXJDZWxsQ2xhc3NGdW5jdGlvbjxEYXRlPj47XG4gIHN0YXJ0QXQkOiBPYnNlcnZhYmxlPERhdGU+O1xuXG4gIC8qKiBBIHBvcnRhbCBjb250YWluaW5nIHRoZSBmb290ZXIgY29tcG9uZW50IHR5cGUgZm9yIHRoaXMgY2FsZW5kYXIuICovXG4gIGNhbGVuZGFyRm9vdGVyUG9ydGFsOiBQb3J0YWw8YW55PjtcblxuICBuZ09uSW5pdCgpIHtcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgIHRoaXMuc3RhcnRBdCQgPVxuICAgICAgdGhpcy5jb25maWcuc3RhcnRBdCBpbnN0YW5jZW9mIERhdGVcbiAgICAgICAgPyBvZih0aGlzLmNvbmZpZy5zdGFydEF0KVxuICAgICAgICA6IHRoaXMuY29uZmlnLnN0YXJ0QXQgaW5zdGFuY2VvZiBGdW5jdGlvblxuICAgICAgICA/IHRoaXMuY29uZmlnLnN0YXJ0QXQodGhpcy5ncm91cClcbiAgICAgICAgOiBvZihudWxsKTtcbiAgICB0aGlzLmRhdGVDbGFzcyA9IHRoaXMuY29uZmlnPy5jZWxsQ2xhc3NGdW5jdGlvbiB8fCBudWxsO1xuICAgIHRoaXMuZGF0ZUNsYXNzJCA9IHRoaXMuY29uZmlnLmRhdGVDbGFzc1xuICAgICAgPyB0aGlzLmNvbmZpZz8uZGF0ZUNsYXNzKHRoaXMuZ3JvdXApXG4gICAgICA6IG9mKCgpID0+ICcnKTtcbiAgfVxuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICBpZiAodGhpcy5jb25maWcuZGF0ZXBpY2tlckFjdGlvbnMpIHtcbiAgICAgIHRoaXMuY2FsZW5kYXJGb290ZXJQb3J0YWwgPSBuZXcgQ29tcG9uZW50UG9ydGFsKFxuICAgICAgICB0aGlzLmNvbmZpZy5kYXRlcGlja2VyQWN0aW9uc1xuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICAvLyBoYW5kbGVTZWxlY3RlZENoYW5nZShldmVudCwgcGlja2VyOiBNYXREYXRlcGlja2VyPHVua25vd24+KSB7XG4gIC8vICAgY29uc29sZS5sb2coe2V2ZW50LCBwaWNrZXJ9KVxuICAvLyAgIGlmKHRoaXMuY29uZmlnLnNlbGVjdGVkQ2hhbmdlKSB7XG4gIC8vICAgICB0aGlzLmNvbmZpZy5zZWxlY3RlZENoYW5nZShldmVudCwgcGlja2VyKTtcbiAgLy8gICB9XG4gIC8vIH1cbn1cbiIsIjxjcmlzcHItZmllbGQtY29udGFpbmVyXG4gIFtjb25maWddPVwiY29uZmlnXCJcbiAgW2dyb3VwXT1cImdyb3VwXCI+XG4gIDxtYXQtZm9ybS1maWVsZFxuICAgIFtjb2xvcl09XCJjb25maWcuY29sb3JcIlxuICAgIFthcHBlYXJhbmNlXT1cImNvbmZpZy5hcHBlYXJhbmNlXCJcbiAgICBbZm9ybUdyb3VwXT1cImdyb3VwXCI+XG4gICAgPG1hdC1sYWJlbCAqbmdJZj1cImNvbmZpZy5sYWJlbFwiPlxuICAgICAge3tjb25maWcubGFiZWx9fVxuICAgIDwvbWF0LWxhYmVsPlxuICAgIDxpbnB1dFxuICAgICAgbWF0SW5wdXRcbiAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiY29uZmlnLmNvbnRyb2xOYW1lXCJcbiAgICAgIFttaW5dPVwiY29uZmlnLm1pblwiXG4gICAgICBbbWF4XT1cImNvbmZpZy5tYXhcIlxuICAgICAgW21hdERhdGVwaWNrZXJdPVwicGlja2VyXCJcbiAgICAgIFttYXREYXRlcGlja2VyRmlsdGVyXT1cImNvbmZpZy5kYXRlcGlja2VyRmlsdGVyXCI+XG4gICAgPG1hdC1kYXRlcGlja2VyLXRvZ2dsZSBtYXRTdWZmaXggW2Zvcl09XCJwaWNrZXJcIj48L21hdC1kYXRlcGlja2VyLXRvZ2dsZT5cbiAgICA8bWF0LWRhdGVwaWNrZXJcbiAgICAgIFt0b3VjaFVpXT1cImNvbmZpZy50b3VjaFVpXCJcbiAgICAgIFtzdGFydFZpZXddPVwiY29uZmlnLnN0YXJ0Vmlld1wiXG4gICAgICBbc3RhcnRBdF09XCJzdGFydEF0JCB8IGFzeW5jXCJcbiAgICAgIFtkYXRlQ2xhc3NdPVwiZGF0ZUNsYXNzIHx8IChkYXRlQ2xhc3MkIHwgYXN5bmMpXCJcbiAgICAgICNwaWNrZXI+XG4gICAgICA8bWF0LWRhdGVwaWNrZXItYWN0aW9ucyAqbmdJZj1cImNhbGVuZGFyRm9vdGVyUG9ydGFsXCI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBbY2RrUG9ydGFsT3V0bGV0XT1cImNhbGVuZGFyRm9vdGVyUG9ydGFsXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwvbWF0LWRhdGVwaWNrZXItYWN0aW9ucz5cbiAgICA8L21hdC1kYXRlcGlja2VyPlxuXG4gICAgPG1hdC1oaW50ICpuZ0lmPVwiY29uZmlnLmhpbnQgJiYgKGNvbnRyb2wudmFsaWQgfHwgIWNvbnRyb2wudG91Y2hlZClcIj57e2NvbmZpZy5oaW50fX08L21hdC1oaW50PlxuXG4gIDwvbWF0LWZvcm0tZmllbGQ+XG48L2NyaXNwci1maWVsZC1jb250YWluZXI+XG5cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export * from './public-api';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NyaXNwci1mb3Jtcy9zcmMvbGliL3VpL2RhdGVwaWNrZXItZmllbGQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19
@@ -0,0 +1,2 @@
1
+ export * from './datepicker-field.component';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY3Jpc3ByLWZvcm1zL3NyYy9saWIvdWkvZGF0ZXBpY2tlci1maWVsZC9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsOEJBQThCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2RhdGVwaWNrZXItZmllbGQuY29tcG9uZW50JztcbiJdfQ==
@@ -0,0 +1,25 @@
1
+ import { Component } from '@angular/core';
2
+ import { MatDividerModule } from '@angular/material/divider';
3
+ import { CommonModule } from '@angular/common';
4
+ // eslint-disable-next-line @nx/enforce-module-boundaries
5
+ import { CrisprFieldComponent } from '../../utils';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@angular/common";
8
+ import * as i2 from "@angular/material/divider";
9
+ export class DividerComponent extends CrisprFieldComponent {
10
+ constructor() {
11
+ super(...arguments);
12
+ // TODO: pull in type after configs are better organized
13
+ this.defaultConfig = {};
14
+ }
15
+ ngOnInit() {
16
+ super.ngOnInit();
17
+ }
18
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: DividerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
19
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: DividerComponent, isStandalone: true, selector: "crispr-divider", usesInheritance: true, ngImport: i0, template: "<mat-divider [ngClass]=\"config.classes\"></mat-divider>", styles: [":host{display:block;padding:1em 0}::ng-deep .mat-divider.mat-divider-horizontal{position:relative}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: MatDividerModule }, { kind: "component", type: i2.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }], preserveWhitespaces: true }); }
20
+ }
21
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: DividerComponent, decorators: [{
22
+ type: Component,
23
+ args: [{ selector: 'crispr-divider', standalone: true, imports: [CommonModule, MatDividerModule], template: "<mat-divider [ngClass]=\"config.classes\"></mat-divider>", styles: [":host{display:block;padding:1em 0}::ng-deep .mat-divider.mat-divider-horizontal{position:relative}\n"] }]
24
+ }] });
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGl2aWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NyaXNwci1mb3Jtcy9zcmMvbGliL3VpL2RpdmlkZXIvZGl2aWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NyaXNwci1mb3Jtcy9zcmMvbGliL3VpL2RpdmlkZXIvZGl2aWRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyx5REFBeUQ7QUFDekQsT0FBTyxFQUFFLG9CQUFvQixFQUFpQixNQUFNLGFBQWEsQ0FBQzs7OztBQVNsRSxNQUFNLE9BQU8sZ0JBQ1gsU0FBUSxvQkFBbUM7SUFSN0M7O1FBV0Usd0RBQXdEO1FBQ3hELGtCQUFhLEdBQUcsRUFBRSxDQUFDO0tBSXBCO0lBSEMsUUFBUTtRQUNOLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNuQixDQUFDOzhHQVJVLGdCQUFnQjtrR0FBaEIsZ0JBQWdCLGlHQ2I3QiwwREFBc0QsNkpEVzFDLFlBQVksNEhBQUUsZ0JBQWdCOzsyRkFFN0IsZ0JBQWdCO2tCQVA1QixTQUFTOytCQUNFLGdCQUFnQixjQUdkLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxnQkFBZ0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXREaXZpZGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGl2aWRlcic7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBueC9lbmZvcmNlLW1vZHVsZS1ib3VuZGFyaWVzXG5pbXBvcnQgeyBDcmlzcHJGaWVsZENvbXBvbmVudCwgRGl2aWRlckNvbmZpZyB9IGZyb20gJy4uLy4uL3V0aWxzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY3Jpc3ByLWRpdmlkZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vZGl2aWRlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2RpdmlkZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgTWF0RGl2aWRlck1vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIERpdmlkZXJDb21wb25lbnRcbiAgZXh0ZW5kcyBDcmlzcHJGaWVsZENvbXBvbmVudDxEaXZpZGVyQ29uZmlnPlxuICBpbXBsZW1lbnRzIE9uSW5pdFxue1xuICAvLyBUT0RPOiBwdWxsIGluIHR5cGUgYWZ0ZXIgY29uZmlncyBhcmUgYmV0dGVyIG9yZ2FuaXplZFxuICBkZWZhdWx0Q29uZmlnID0ge307XG4gIG5nT25Jbml0KCkge1xuICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gIH1cbn1cbiIsIjxtYXQtZGl2aWRlciBbbmdDbGFzc109XCJjb25maWcuY2xhc3Nlc1wiPjwvbWF0LWRpdmlkZXI+Il19
@@ -0,0 +1,2 @@
1
+ export * from './public-api';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NyaXNwci1mb3Jtcy9zcmMvbGliL3VpL2RpdmlkZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19
@@ -0,0 +1,2 @@
1
+ export * from './divider.component';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY3Jpc3ByLWZvcm1zL3NyYy9saWIvdWkvZGl2aWRlci9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMscUJBQXFCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2RpdmlkZXIuY29tcG9uZW50JztcbiJdfQ==
@@ -0,0 +1,59 @@
1
+ import { Component, Input, ChangeDetectionStrategy, } from '@angular/core';
2
+ import { of } from 'rxjs';
3
+ import { FormGroup } from '@angular/forms';
4
+ import { tap, distinctUntilChanged } from 'rxjs/operators';
5
+ import { CommonModule } from '@angular/common';
6
+ import { HeadingComponent } from '../heading';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@angular/common";
9
+ export class FieldContainerComponent {
10
+ constructor() {
11
+ // boolean whether field-container is inline
12
+ this.inlineField = false;
13
+ this.subs = [];
14
+ }
15
+ ngOnInit() {
16
+ this.disabled$ = this.connectDisabledCallback(this.group, this.config);
17
+ // we tried moving this into afterViewChecked and afterContentChecked lifecycle hooks without any luck
18
+ if (this.config.computeValue) {
19
+ this.subs.push(this.config
20
+ .computeValue(this.group)
21
+ .pipe(distinctUntilChanged(), tap((computedValue) => this.group.get(this.config.controlName).setValue(computedValue)))
22
+ .subscribe());
23
+ }
24
+ }
25
+ ngOnDestroy() {
26
+ this.subs.forEach((sub) => sub.unsubscribe);
27
+ }
28
+ /**
29
+ * Connects user defined disabledCallback function to the the view, so that the control is enabled/disabled
30
+ * appropriately. It also will hide disabled fields in the UI unless `hideDisabled` is set to
31
+ * false in the controls config
32
+ * @param group used to get valueChanges from control
33
+ * @param config configuration object used to
34
+ */
35
+ connectDisabledCallback(group, config = null) {
36
+ const control = group.get(config.controlName);
37
+ // If the disabled$ function exists on the field config then call it with the disabledCallbackConfig
38
+ // as a parameter otherwise return an observable of true.
39
+ return config?.disabledCallback &&
40
+ config.disabledCallback instanceof Function
41
+ ? config.disabledCallback(group).pipe(
42
+ // This enables/disables when callback conditions are met
43
+ tap((shouldDisable) => shouldDisable ? control.disable() : control.enable()))
44
+ : of(false);
45
+ }
46
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: FieldContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
47
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: FieldContainerComponent, isStandalone: true, selector: "crispr-field-container", inputs: { config: "config", group: "group", inlineField: "inlineField" }, ngImport: i0, template: "<div\n *ngIf=\"(disabled$ | async) ? !config.hideDisabled : true\"\n [ngClass]=\"config.classes\"\n [class.inline-field]=\"inlineField\"\n class=\"field-container\">\n\n <crispr-heading\n *ngIf=\"config.heading\"\n [config]=\"config.heading\">\n </crispr-heading>\n\n <ng-content>\n </ng-content>\n\n</div>\n", styles: ["::ng-deep mat-form-field.mat-mdc-form-field{display:block;padding:.25em 0}.inline-field{display:inline-block}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "component", type: HeadingComponent, selector: "crispr-heading", inputs: ["config"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, preserveWhitespaces: true }); }
48
+ }
49
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: FieldContainerComponent, decorators: [{
50
+ type: Component,
51
+ args: [{ selector: 'crispr-field-container', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule, HeadingComponent], template: "<div\n *ngIf=\"(disabled$ | async) ? !config.hideDisabled : true\"\n [ngClass]=\"config.classes\"\n [class.inline-field]=\"inlineField\"\n class=\"field-container\">\n\n <crispr-heading\n *ngIf=\"config.heading\"\n [config]=\"config.heading\">\n </crispr-heading>\n\n <ng-content>\n </ng-content>\n\n</div>\n", styles: ["::ng-deep mat-form-field.mat-mdc-form-field{display:block;padding:.25em 0}.inline-field{display:inline-block}\n"] }]
52
+ }], propDecorators: { config: [{
53
+ type: Input
54
+ }], group: [{
55
+ type: Input
56
+ }], inlineField: [{
57
+ type: Input
58
+ }] } });
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtY29udGFpbmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY3Jpc3ByLWZvcm1zL3NyYy9saWIvdWkvZmllbGQtY29udGFpbmVyL2ZpZWxkLWNvbnRhaW5lci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NyaXNwci1mb3Jtcy9zcmMvbGliL3VpL2ZpZWxkLWNvbnRhaW5lci9maWVsZC1jb250YWluZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxLQUFLLEVBQ0wsdUJBQXVCLEdBRXhCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBYyxFQUFFLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQ3BELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsR0FBRyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFlBQVksQ0FBQzs7O0FBWTlDLE1BQU0sT0FBTyx1QkFBdUI7SUFScEM7UUFhRSw0Q0FBNEM7UUFDbkMsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFJN0IsU0FBSSxHQUFtQixFQUFFLENBQUM7S0ErQzNCO0lBN0NDLFFBQVE7UUFDTixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN2RSxzR0FBc0c7UUFDdEcsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksRUFBRTtZQUM1QixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FDWixJQUFJLENBQUMsTUFBTTtpQkFDUixZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztpQkFDeEIsSUFBSSxDQUNILG9CQUFvQixFQUFFLEVBQ3RCLEdBQUcsQ0FBQyxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQ3BCLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUNoRSxDQUNGO2lCQUNBLFNBQVMsRUFBRSxDQUNmLENBQUM7U0FDSDtJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBQ0Q7Ozs7OztPQU1HO0lBQ0gsdUJBQXVCLENBQ3JCLEtBQWdCLEVBQ2hCLFNBQThCLElBQUk7UUFFbEMsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDOUMsb0dBQW9HO1FBQ3BHLHlEQUF5RDtRQUN6RCxPQUFPLE1BQU0sRUFBRSxnQkFBZ0I7WUFDN0IsTUFBTSxDQUFDLGdCQUFnQixZQUFZLFFBQVE7WUFDM0MsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJO1lBQ2pDLHlEQUF5RDtZQUN6RCxHQUFHLENBQUMsQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUNwQixhQUFhLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUNyRCxDQUNGO1lBQ0gsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNoQixDQUFDOzhHQXhEVSx1QkFBdUI7a0dBQXZCLHVCQUF1Qiw0SkN2QnBDLG9VQWVBLHdLRE1ZLFlBQVksc1JBQUUsZ0JBQWdCOzsyRkFFN0IsdUJBQXVCO2tCQVJuQyxTQUFTOytCQUNFLHdCQUF3QixtQkFHakIsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsZ0JBQWdCLENBQUM7OEJBSWhDLE1BQU07c0JBQWQsS0FBSztnQkFFRyxLQUFLO3NCQUFiLEtBQUs7Z0JBRUcsV0FBVztzQkFBbkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgT25Jbml0LFxuICBJbnB1dCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIE9uRGVzdHJveSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyB0YXAsIGRpc3RpbmN0VW50aWxDaGFuZ2VkIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEhlYWRpbmdDb21wb25lbnQgfSBmcm9tICcuLi9oZWFkaW5nJztcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAbngvZW5mb3JjZS1tb2R1bGUtYm91bmRhcmllc1xuaW1wb3J0IHR5cGUgeyBDcmlzcHJDb250cm9sQ29uZmlnIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjcmlzcHItZmllbGQtY29udGFpbmVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ZpZWxkLWNvbnRhaW5lci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2ZpZWxkLWNvbnRhaW5lci5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgSGVhZGluZ0NvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIEZpZWxkQ29udGFpbmVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAvLyB0aGUgY29uZmlndXJhdGlvbiBvYmplY3QgZm9yIHRoZSBmaWVsZFxuICBASW5wdXQoKSBjb25maWc6IENyaXNwckNvbnRyb2xDb25maWc7XG4gIC8vIHRoZSBwYXJlbnQgZm9ybUdyb3VwXG4gIEBJbnB1dCgpIGdyb3VwOiBGb3JtR3JvdXA7XG4gIC8vIGJvb2xlYW4gd2hldGhlciBmaWVsZC1jb250YWluZXIgaXMgaW5saW5lXG4gIEBJbnB1dCgpIGlubGluZUZpZWxkID0gZmFsc2U7XG4gIC8vIHVzZWQgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgb3Igbm90IGZpZWxkIHNob3VsZCBiZSBzaG93blxuICBkaXNhYmxlZCQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG5cbiAgc3ViczogU3Vic2NyaXB0aW9uW10gPSBbXTtcblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmRpc2FibGVkJCA9IHRoaXMuY29ubmVjdERpc2FibGVkQ2FsbGJhY2sodGhpcy5ncm91cCwgdGhpcy5jb25maWcpO1xuICAgIC8vIHdlIHRyaWVkIG1vdmluZyB0aGlzIGludG8gYWZ0ZXJWaWV3Q2hlY2tlZCBhbmQgYWZ0ZXJDb250ZW50Q2hlY2tlZCBsaWZlY3ljbGUgaG9va3Mgd2l0aG91dCBhbnkgbHVja1xuICAgIGlmICh0aGlzLmNvbmZpZy5jb21wdXRlVmFsdWUpIHtcbiAgICAgIHRoaXMuc3Vicy5wdXNoKFxuICAgICAgICB0aGlzLmNvbmZpZ1xuICAgICAgICAgIC5jb21wdXRlVmFsdWUodGhpcy5ncm91cClcbiAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICAgICAgICB0YXAoKGNvbXB1dGVkVmFsdWUpID0+XG4gICAgICAgICAgICAgIHRoaXMuZ3JvdXAuZ2V0KHRoaXMuY29uZmlnLmNvbnRyb2xOYW1lKS5zZXRWYWx1ZShjb21wdXRlZFZhbHVlKVxuICAgICAgICAgICAgKVxuICAgICAgICAgIClcbiAgICAgICAgICAuc3Vic2NyaWJlKClcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5zdWJzLmZvckVhY2goKHN1YikgPT4gc3ViLnVuc3Vic2NyaWJlKTtcbiAgfVxuICAvKipcbiAgICogQ29ubmVjdHMgdXNlciBkZWZpbmVkIGRpc2FibGVkQ2FsbGJhY2sgZnVuY3Rpb24gdG8gdGhlIHRoZSB2aWV3LCBzbyB0aGF0IHRoZSBjb250cm9sIGlzIGVuYWJsZWQvZGlzYWJsZWRcbiAgICogYXBwcm9wcmlhdGVseS4gSXQgYWxzbyB3aWxsIGhpZGUgZGlzYWJsZWQgZmllbGRzIGluIHRoZSBVSSB1bmxlc3MgYGhpZGVEaXNhYmxlZGAgaXMgc2V0IHRvXG4gICAqIGZhbHNlIGluIHRoZSBjb250cm9scyBjb25maWdcbiAgICogQHBhcmFtIGdyb3VwIHVzZWQgdG8gZ2V0IHZhbHVlQ2hhbmdlcyBmcm9tIGNvbnRyb2xcbiAgICogQHBhcmFtIGNvbmZpZyBjb25maWd1cmF0aW9uIG9iamVjdCB1c2VkIHRvXG4gICAqL1xuICBjb25uZWN0RGlzYWJsZWRDYWxsYmFjayhcbiAgICBncm91cDogRm9ybUdyb3VwLFxuICAgIGNvbmZpZzogQ3Jpc3ByQ29udHJvbENvbmZpZyA9IG51bGxcbiAgKSB7XG4gICAgY29uc3QgY29udHJvbCA9IGdyb3VwLmdldChjb25maWcuY29udHJvbE5hbWUpO1xuICAgIC8vIElmIHRoZSBkaXNhYmxlZCQgZnVuY3Rpb24gZXhpc3RzIG9uIHRoZSBmaWVsZCBjb25maWcgdGhlbiBjYWxsIGl0IHdpdGggdGhlIGRpc2FibGVkQ2FsbGJhY2tDb25maWdcbiAgICAvLyBhcyBhIHBhcmFtZXRlciBvdGhlcndpc2UgcmV0dXJuIGFuIG9ic2VydmFibGUgb2YgdHJ1ZS5cbiAgICByZXR1cm4gY29uZmlnPy5kaXNhYmxlZENhbGxiYWNrICYmXG4gICAgICBjb25maWcuZGlzYWJsZWRDYWxsYmFjayBpbnN0YW5jZW9mIEZ1bmN0aW9uXG4gICAgICA/IGNvbmZpZy5kaXNhYmxlZENhbGxiYWNrKGdyb3VwKS5waXBlKFxuICAgICAgICAgIC8vIFRoaXMgZW5hYmxlcy9kaXNhYmxlcyB3aGVuIGNhbGxiYWNrIGNvbmRpdGlvbnMgYXJlIG1ldFxuICAgICAgICAgIHRhcCgoc2hvdWxkRGlzYWJsZSkgPT5cbiAgICAgICAgICAgIHNob3VsZERpc2FibGUgPyBjb250cm9sLmRpc2FibGUoKSA6IGNvbnRyb2wuZW5hYmxlKClcbiAgICAgICAgICApXG4gICAgICAgIClcbiAgICAgIDogb2YoZmFsc2UpO1xuICB9XG59XG4iLCI8ZGl2XG4gICpuZ0lmPVwiKGRpc2FibGVkJCB8IGFzeW5jKSA/ICFjb25maWcuaGlkZURpc2FibGVkIDogdHJ1ZVwiXG4gIFtuZ0NsYXNzXT1cImNvbmZpZy5jbGFzc2VzXCJcbiAgW2NsYXNzLmlubGluZS1maWVsZF09XCJpbmxpbmVGaWVsZFwiXG4gIGNsYXNzPVwiZmllbGQtY29udGFpbmVyXCI+XG5cbiAgPGNyaXNwci1oZWFkaW5nXG4gICAgKm5nSWY9XCJjb25maWcuaGVhZGluZ1wiXG4gICAgW2NvbmZpZ109XCJjb25maWcuaGVhZGluZ1wiPlxuICA8L2NyaXNwci1oZWFkaW5nPlxuXG4gIDxuZy1jb250ZW50PlxuICA8L25nLWNvbnRlbnQ+XG5cbjwvZGl2PlxuIl19
@@ -0,0 +1,2 @@
1
+ export * from './public-api';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NyaXNwci1mb3Jtcy9zcmMvbGliL3VpL2ZpZWxkLWNvbnRhaW5lci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vcHVibGljLWFwaSc7XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export * from './field-container.component';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY3Jpc3ByLWZvcm1zL3NyYy9saWIvdWkvZmllbGQtY29udGFpbmVyL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyw2QkFBNkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZmllbGQtY29udGFpbmVyLmNvbXBvbmVudCc7XG4iXX0=
@@ -0,0 +1,40 @@
1
+ import { Directive, HostListener, Output, EventEmitter, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class FileDropzoneDirective {
4
+ constructor() {
5
+ this.fileDrop = new EventEmitter();
6
+ this.crisprFileDropzone = true;
7
+ }
8
+ onDrop($event) {
9
+ if (this.crisprFileDropzone) {
10
+ $event.preventDefault();
11
+ this.fileDrop.emit($event.dataTransfer.files);
12
+ }
13
+ }
14
+ // Prevents DOM from trying to open file in browser
15
+ onDragOver($event) {
16
+ if (this.crisprFileDropzone) {
17
+ $event.preventDefault();
18
+ }
19
+ }
20
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: FileDropzoneDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
21
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.9", type: FileDropzoneDirective, isStandalone: true, selector: "[crisprFileDropzone]", inputs: { crisprFileDropzone: "crisprFileDropzone" }, outputs: { fileDrop: "fileDrop" }, host: { listeners: { "drop": "onDrop($event)", "dragover": "onDragOver($event)" } }, ngImport: i0 }); }
22
+ }
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: FileDropzoneDirective, decorators: [{
24
+ type: Directive,
25
+ args: [{
26
+ selector: '[crisprFileDropzone]',
27
+ standalone: true,
28
+ }]
29
+ }], propDecorators: { fileDrop: [{
30
+ type: Output
31
+ }], crisprFileDropzone: [{
32
+ type: Input
33
+ }], onDrop: [{
34
+ type: HostListener,
35
+ args: ['drop', ['$event']]
36
+ }], onDragOver: [{
37
+ type: HostListener,
38
+ args: ['dragover', ['$event']]
39
+ }] } });
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1kcm9wem9uZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NyaXNwci1mb3Jtcy9zcmMvbGliL3VpL2ZpbGUtZHJvcHpvbmUvZmlsZS1kcm9wem9uZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBTXJGLE1BQU0sT0FBTyxxQkFBcUI7SUFKbEM7UUFNWSxhQUFRLEdBQUksSUFBSSxZQUFZLEVBQVksQ0FBQztRQUUxQyx1QkFBa0IsR0FBRyxJQUFJLENBQUM7S0FpQnBDO0lBZEMsTUFBTSxDQUFDLE1BQWlCO1FBQ3RCLElBQUcsSUFBSSxDQUFDLGtCQUFrQixFQUFFO1lBQzFCLE1BQU0sQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN4QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQy9DO0lBQ0gsQ0FBQztJQUVELG1EQUFtRDtJQUVuRCxVQUFVLENBQUMsTUFBaUI7UUFDMUIsSUFBRyxJQUFJLENBQUMsa0JBQWtCLEVBQUU7WUFDMUIsTUFBTSxDQUFDLGNBQWMsRUFBRSxDQUFDO1NBQ3pCO0lBQ0gsQ0FBQzs4R0FwQlUscUJBQXFCO2tHQUFyQixxQkFBcUI7OzJGQUFyQixxQkFBcUI7a0JBSmpDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHNCQUFzQjtvQkFDaEMsVUFBVSxFQUFFLElBQUk7aUJBQ2pCOzhCQUdXLFFBQVE7c0JBQWpCLE1BQU07Z0JBRUUsa0JBQWtCO3NCQUExQixLQUFLO2dCQUdOLE1BQU07c0JBREwsWUFBWTt1QkFBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBVWhDLFVBQVU7c0JBRFQsWUFBWTt1QkFBQyxVQUFVLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEhvc3RMaXN0ZW5lciwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tjcmlzcHJGaWxlRHJvcHpvbmVdJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgRmlsZURyb3B6b25lRGlyZWN0aXZlIHtcblxuICBAT3V0cHV0KCkgZmlsZURyb3AgPSAgbmV3IEV2ZW50RW1pdHRlcjxGaWxlTGlzdD4oKTtcblxuICBASW5wdXQoKSBjcmlzcHJGaWxlRHJvcHpvbmUgPSB0cnVlO1xuXG4gIEBIb3N0TGlzdGVuZXIoJ2Ryb3AnLCBbJyRldmVudCddKVxuICBvbkRyb3AoJGV2ZW50OiBEcmFnRXZlbnQpIHtcbiAgICBpZih0aGlzLmNyaXNwckZpbGVEcm9wem9uZSkge1xuICAgICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB0aGlzLmZpbGVEcm9wLmVtaXQoJGV2ZW50LmRhdGFUcmFuc2Zlci5maWxlcyk7XG4gICAgfVxuICB9XG5cbiAgLy8gUHJldmVudHMgRE9NIGZyb20gdHJ5aW5nIHRvIG9wZW4gZmlsZSBpbiBicm93c2VyXG4gIEBIb3N0TGlzdGVuZXIoJ2RyYWdvdmVyJywgWyckZXZlbnQnXSlcbiAgb25EcmFnT3ZlcigkZXZlbnQ6IERyYWdFdmVudCkge1xuICAgIGlmKHRoaXMuY3Jpc3ByRmlsZURyb3B6b25lKSB7XG4gICAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export * from './public-api';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NyaXNwci1mb3Jtcy9zcmMvbGliL3VpL2ZpbGUtZHJvcHpvbmUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19
@@ -0,0 +1,2 @@
1
+ export * from './file-dropzone.directive';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY3Jpc3ByLWZvcm1zL3NyYy9saWIvdWkvZmlsZS1kcm9wem9uZS9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsMkJBQTJCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2ZpbGUtZHJvcHpvbmUuZGlyZWN0aXZlJztcbiJdfQ==
@@ -0,0 +1,107 @@
1
+ /* eslint-disable @nx/enforce-module-boundaries */
2
+ import { CommonModule } from '@angular/common';
3
+ import { Component, ElementRef, ViewChild, ChangeDetectionStrategy, Optional, Self, } from '@angular/core';
4
+ import { NgControl, ReactiveFormsModule, } from '@angular/forms';
5
+ import { MatButtonModule } from '@angular/material/button';
6
+ import { MatFormFieldModule } from '@angular/material/form-field';
7
+ import { MatIconModule } from '@angular/material/icon';
8
+ import { MatInputModule } from '@angular/material/input';
9
+ import { of } from 'rxjs';
10
+ import { FileDropzoneDirective } from '../file-dropzone';
11
+ import { FormValidationHandlerModule } from '@tft/form-validation-handler';
12
+ import { crisprControlMixin, CrisprFieldComponent, } from '../../utils';
13
+ import { FieldContainerComponent } from '../field-container';
14
+ import { SelectedFileComponent } from '../selected-file';
15
+ import * as i0 from "@angular/core";
16
+ import * as i1 from "@angular/forms";
17
+ import * as i2 from "@angular/common";
18
+ import * as i3 from "@angular/material/icon";
19
+ import * as i4 from "@angular/material/button";
20
+ import * as i5 from "@angular/material/form-field";
21
+ import * as i6 from "@angular/material/input";
22
+ import * as i7 from "@tft/form-validation-handler";
23
+ const FileUploadFieldMixin = crisprControlMixin(CrisprFieldComponent);
24
+ export class FileUploadFieldComponent extends FileUploadFieldMixin {
25
+ // ngControl: NgControl = null;
26
+ constructor(ngControl) {
27
+ super();
28
+ this.ngControl = ngControl;
29
+ this.defaultConfig = {
30
+ allowMultipleFiles: false,
31
+ acceptedTypes: '*.*',
32
+ dropZoneText: 'DROP FILE HERE',
33
+ selectFilesButtonType: 'button',
34
+ selectButtonText: 'SELECT',
35
+ showClearFilesButton: true,
36
+ clearFilesButtonText: 'CLEAR',
37
+ uploadButtonText: 'UPLOAD',
38
+ uploadButtonType: 'button',
39
+ showUploadProgress: false,
40
+ disableOnUpload: true,
41
+ };
42
+ this.isUploaded = false;
43
+ this.fileProgress = [];
44
+ if (this.ngControl != null) {
45
+ // Setting the value accessor directly (instead of using
46
+ // the providers) to avoid running into a circular import.
47
+ ngControl.valueAccessor = this;
48
+ }
49
+ }
50
+ ngOnInit() {
51
+ super.ngOnInit();
52
+ this.disabled$ = this.config.disabledCallback
53
+ ? this.config.disabledCallback(this.group)
54
+ : of(false);
55
+ }
56
+ filesChanged(files) {
57
+ if (files && files.length > 0) {
58
+ this.selectedFiles = files;
59
+ this.control.patchValue(files);
60
+ }
61
+ }
62
+ uploadFiles() {
63
+ if (this.selectedFiles && this.config.uploadFiles) {
64
+ this.isUploaded = true;
65
+ this.config.uploadFiles(this.group, this.selectedFiles, this);
66
+ }
67
+ }
68
+ resetFileInput() {
69
+ this.fileInputRef.nativeElement.value = '';
70
+ this.control.patchValue(null);
71
+ this.isUploaded = false;
72
+ }
73
+ writeValue(value) {
74
+ // clear file input
75
+ // this.host.nativeElement.value = '';
76
+ // this.file = null;
77
+ }
78
+ registerOnChange(fn) {
79
+ this.onChange = fn;
80
+ }
81
+ registerOnTouched(fn) { }
82
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: FileUploadFieldComponent, deps: [{ token: i1.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component }); }
83
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: FileUploadFieldComponent, isStandalone: true, selector: "crispr-file-upload-field", viewQueries: [{ propertyName: "fileInputRef", first: true, predicate: ["fileInput"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<crispr-field-container\n [config]=\"config\"\n [group]=\"group\">\n <mat-form-field floatLabel=\"always\"\n [color]=\"config.color\"\n appearance=\"outline\"\n [crisprFileDropzone]=\"!(disabled$ | async) && !(config.disableOnUpload && isUploaded)\"\n [formGroup]=\"group\"\n (fileDrop)=\"filesChanged($event)\">\n\n <input [formControlName]=\"config.controlName\" matInput type=\"text\"/>\n <input\n #fileInput\n type=\"file\"\n style=\"display: none\"\n [accept]=\"config.acceptedTypes\"\n [multiple]=\"config.allowMultipleFiles\"\n (change)=\"filesChanged($event.target.files)\"/>\n <mat-label>{{config.label}}</mat-label>\n\n <div *ngIf=\"!(selectedFiles?.length > 0); else selectedFileList\" class=\"drop-info\">\n <mat-icon class=\"drop-icon\" inline=\"true\">cloud_upload</mat-icon>\n <h2 class=\"mat-h2\">{{config.dropZoneText}}</h2>\n or\n <button\n mat-raised-button\n type=\"button\"\n color=\"primary\"\n [disabled]=\"(disabled$ | async) || config.disableOnUpload && isUploaded\"\n (click)=\"fileInput.click()\"\n [attr.aria-label]=\"config.controlName\">\n {{config.selectButtonText}}\n </button>\n </div>\n <ng-template #selectedFileList>\n <div class=\"selected-files-container\">\n <div class=\"selected-files-list\">\n <crispr-selected-file\n *ngFor=\"let file of selectedFiles; let i = index;\"\n [color]=\"config.color === 'primary' ? 'accent' : 'primary'\"\n [fileName]=\"file.name\"\n [showProgress]=\"config.showUploadProgress\"\n [progress]=\"fileProgress && (fileProgress[i] | async)\">\n </crispr-selected-file>\n </div>\n\n </div>\n </ng-template>\n <mat-hint *ngIf=\"config.hint && (control.valid || !control.touched)\">{{config.hint}}</mat-hint>\n </mat-form-field>\n <div class=\"button-container\" *ngIf=\"selectedFiles?.length > 0\">\n\n <button\n mat-button\n (click)=\"resetFileInput()\"\n type=\"button\"\n [disabled]=\"(disabled$ | async) || (config.disableOnUpload && isUploaded)\"\n aria-label=\"Remove Selected File(s)\">\n {{config.clearFilesButtonText}}\n <mat-icon>delete</mat-icon>\n </button>\n\n <button\n *ngIf=\"!!config.uploadFiles\"\n mat-raised-button\n type=\"button\"\n color=\"accent\"\n class=\"file-input-button\"\n [disabled]=\"(disabled$ | async) || (config.disableOnUpload && isUploaded)\"\n (click)=\"uploadFiles()\"\n [attr.aria-label]=\"config.uploadButtonText\">\n {{ config.uploadButtonText }}\n </button>\n\n </div>\n</crispr-field-container>\n", styles: [":host ::ng-deep .mat-mdc-form-field .mat-mdc-form-field-infix{padding-top:0;display:flex;justify-content:center}:host .drop-info{display:flex;flex-direction:column;align-items:center}:host .drop-info .drop-icon{font-size:36px}:host .drop-info .mat-h2{margin:0}:host .button-container{display:flex;justify-content:flex-end;margin-top:-16px}:host .button-container button{margin-left:8px}:host .selected-files-container{width:100%}:host [matInput]{position:absolute;max-height:0;visibility:hidden}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "component", type: FieldContainerComponent, selector: "crispr-field-container", inputs: ["config", "group", "inlineField"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i4.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i5.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5.MatLabel, selector: "mat-label" }, { kind: "directive", type: i5.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i6.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: SelectedFileComponent, selector: "crispr-selected-file", inputs: ["fileName", "progress", "showProgress", "color"] }, { kind: "ngmodule", type: FormValidationHandlerModule }, { kind: "directive", type: i7.ControlErrorsDirective, selector: "[formControl], [formControlName]" }, { kind: "directive", type: i7.ControlErrorContainerDirective, selector: "[controlErrorContainer], [formGroup]" }, { kind: "directive", type: FileDropzoneDirective, selector: "[crisprFileDropzone]", inputs: ["crisprFileDropzone"], outputs: ["fileDrop"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, preserveWhitespaces: true }); }
84
+ }
85
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: FileUploadFieldComponent, decorators: [{
86
+ type: Component,
87
+ args: [{ selector: 'crispr-file-upload-field', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
88
+ CommonModule,
89
+ FieldContainerComponent,
90
+ ReactiveFormsModule,
91
+ MatIconModule,
92
+ MatButtonModule,
93
+ MatFormFieldModule,
94
+ MatInputModule,
95
+ SelectedFileComponent,
96
+ FormValidationHandlerModule,
97
+ FileDropzoneDirective,
98
+ ], template: "<crispr-field-container\n [config]=\"config\"\n [group]=\"group\">\n <mat-form-field floatLabel=\"always\"\n [color]=\"config.color\"\n appearance=\"outline\"\n [crisprFileDropzone]=\"!(disabled$ | async) && !(config.disableOnUpload && isUploaded)\"\n [formGroup]=\"group\"\n (fileDrop)=\"filesChanged($event)\">\n\n <input [formControlName]=\"config.controlName\" matInput type=\"text\"/>\n <input\n #fileInput\n type=\"file\"\n style=\"display: none\"\n [accept]=\"config.acceptedTypes\"\n [multiple]=\"config.allowMultipleFiles\"\n (change)=\"filesChanged($event.target.files)\"/>\n <mat-label>{{config.label}}</mat-label>\n\n <div *ngIf=\"!(selectedFiles?.length > 0); else selectedFileList\" class=\"drop-info\">\n <mat-icon class=\"drop-icon\" inline=\"true\">cloud_upload</mat-icon>\n <h2 class=\"mat-h2\">{{config.dropZoneText}}</h2>\n or\n <button\n mat-raised-button\n type=\"button\"\n color=\"primary\"\n [disabled]=\"(disabled$ | async) || config.disableOnUpload && isUploaded\"\n (click)=\"fileInput.click()\"\n [attr.aria-label]=\"config.controlName\">\n {{config.selectButtonText}}\n </button>\n </div>\n <ng-template #selectedFileList>\n <div class=\"selected-files-container\">\n <div class=\"selected-files-list\">\n <crispr-selected-file\n *ngFor=\"let file of selectedFiles; let i = index;\"\n [color]=\"config.color === 'primary' ? 'accent' : 'primary'\"\n [fileName]=\"file.name\"\n [showProgress]=\"config.showUploadProgress\"\n [progress]=\"fileProgress && (fileProgress[i] | async)\">\n </crispr-selected-file>\n </div>\n\n </div>\n </ng-template>\n <mat-hint *ngIf=\"config.hint && (control.valid || !control.touched)\">{{config.hint}}</mat-hint>\n </mat-form-field>\n <div class=\"button-container\" *ngIf=\"selectedFiles?.length > 0\">\n\n <button\n mat-button\n (click)=\"resetFileInput()\"\n type=\"button\"\n [disabled]=\"(disabled$ | async) || (config.disableOnUpload && isUploaded)\"\n aria-label=\"Remove Selected File(s)\">\n {{config.clearFilesButtonText}}\n <mat-icon>delete</mat-icon>\n </button>\n\n <button\n *ngIf=\"!!config.uploadFiles\"\n mat-raised-button\n type=\"button\"\n color=\"accent\"\n class=\"file-input-button\"\n [disabled]=\"(disabled$ | async) || (config.disableOnUpload && isUploaded)\"\n (click)=\"uploadFiles()\"\n [attr.aria-label]=\"config.uploadButtonText\">\n {{ config.uploadButtonText }}\n </button>\n\n </div>\n</crispr-field-container>\n", styles: [":host ::ng-deep .mat-mdc-form-field .mat-mdc-form-field-infix{padding-top:0;display:flex;justify-content:center}:host .drop-info{display:flex;flex-direction:column;align-items:center}:host .drop-info .drop-icon{font-size:36px}:host .drop-info .mat-h2{margin:0}:host .button-container{display:flex;justify-content:flex-end;margin-top:-16px}:host .button-container button{margin-left:8px}:host .selected-files-container{width:100%}:host [matInput]{position:absolute;max-height:0;visibility:hidden}\n"] }]
99
+ }], ctorParameters: () => [{ type: i1.NgControl, decorators: [{
100
+ type: Optional
101
+ }, {
102
+ type: Self
103
+ }] }], propDecorators: { fileInputRef: [{
104
+ type: ViewChild,
105
+ args: ['fileInput']
106
+ }] } });
107
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQtZmllbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jcmlzcHItZm9ybXMvc3JjL2xpYi91aS9maWxlLXVwbG9hZC1maWVsZC9maWxlLXVwbG9hZC1maWVsZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NyaXNwci1mb3Jtcy9zcmMvbGliL3VpL2ZpbGUtdXBsb2FkLWZpZWxkL2ZpbGUtdXBsb2FkLWZpZWxkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGtEQUFrRDtBQUNsRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUNMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsU0FBUyxFQUVULHVCQUF1QixFQUN2QixRQUFRLEVBQ1IsSUFBSSxHQUNMLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFFTCxTQUFTLEVBQ1QsbUJBQW1CLEdBQ3BCLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUUzRSxPQUFPLEVBQ0wsa0JBQWtCLEVBQ2xCLG9CQUFvQixHQUVyQixNQUFNLGFBQWEsQ0FBQztBQUNyQixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7Ozs7Ozs7O0FBRXpELE1BQU0sb0JBQW9CLEdBQ3hCLGtCQUFrQixDQUF3QixvQkFBb0IsQ0FBQyxDQUFDO0FBcUJsRSxNQUFNLE9BQU8sd0JBQ1gsU0FBUSxvQkFBb0I7SUE0QjVCLCtCQUErQjtJQUMvQixZQUF1QyxTQUFvQjtRQUN6RCxLQUFLLEVBQUUsQ0FBQztRQUQ2QixjQUFTLEdBQVQsU0FBUyxDQUFXO1FBeEIzRCxrQkFBYSxHQUFtQztZQUM5QyxrQkFBa0IsRUFBRSxLQUFLO1lBQ3pCLGFBQWEsRUFBRSxLQUFLO1lBQ3BCLFlBQVksRUFBRSxnQkFBZ0I7WUFDOUIscUJBQXFCLEVBQUUsUUFBUTtZQUMvQixnQkFBZ0IsRUFBRSxRQUFRO1lBQzFCLG9CQUFvQixFQUFFLElBQUk7WUFDMUIsb0JBQW9CLEVBQUUsT0FBTztZQUM3QixnQkFBZ0IsRUFBRSxRQUFRO1lBQzFCLGdCQUFnQixFQUFFLFFBQVE7WUFDMUIsa0JBQWtCLEVBQUUsS0FBSztZQUN6QixlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUFDO1FBTUYsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUVuQixpQkFBWSxHQUF5QixFQUFFLENBQUM7UUFNdEMsSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksRUFBRTtZQUMxQix3REFBd0Q7WUFDeEQsMERBQTBEO1lBQzFELFNBQVMsQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO1NBQ2hDO0lBQ0gsQ0FBQztJQUVELFFBQVE7UUFDTixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGdCQUFnQjtZQUMzQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO1lBQzFDLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDaEIsQ0FBQztJQUVELFlBQVksQ0FBQyxLQUFlO1FBQzFCLElBQUksS0FBSyxJQUFJLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQzdCLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO1lBQzNCLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ2hDO0lBQ0gsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLElBQUksQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUU7WUFDakQsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7WUFDdkIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxDQUFDO1NBQy9EO0lBQ0gsQ0FBQztJQUVELGNBQWM7UUFDWixJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO1FBQzNDLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzlCLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO0lBQzFCLENBQUM7SUFFRCxVQUFVLENBQUMsS0FBVztRQUNwQixtQkFBbUI7UUFDbkIsc0NBQXNDO1FBQ3RDLG9CQUFvQjtJQUN0QixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsRUFBYztRQUM3QixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsaUJBQWlCLENBQUMsRUFBYyxJQUFHLENBQUM7OEdBNUV6Qix3QkFBd0I7a0dBQXhCLHdCQUF3QixzTkN0RHJDLDRyRkE0RUEsMGlCRGxDSSxZQUFZLHFUQUNaLHVCQUF1Qiw4R0FDdkIsbUJBQW1CLG0yQkFDbkIsYUFBYSxtTEFDYixlQUFlLDJOQUNmLGtCQUFrQixrWUFDbEIsY0FBYywyV0FDZCxxQkFBcUIsMkhBQ3JCLDJCQUEyQix1UEFDM0IscUJBQXFCOzsyRkFHWix3QkFBd0I7a0JBbkJwQyxTQUFTOytCQUNFLDBCQUEwQixtQkFHbkIsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWix1QkFBdUI7d0JBQ3ZCLG1CQUFtQjt3QkFDbkIsYUFBYTt3QkFDYixlQUFlO3dCQUNmLGtCQUFrQjt3QkFDbEIsY0FBYzt3QkFDZCxxQkFBcUI7d0JBQ3JCLDJCQUEyQjt3QkFDM0IscUJBQXFCO3FCQUN0Qjs7MEJBZ0NZLFFBQVE7OzBCQUFJLElBQUk7eUNBVkwsWUFBWTtzQkFBbkMsU0FBUzt1QkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQG54L2VuZm9yY2UtbW9kdWxlLWJvdW5kYXJpZXMgKi9cbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIFZpZXdDaGlsZCxcbiAgT25Jbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgT3B0aW9uYWwsXG4gIFNlbGYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQ29udHJvbFZhbHVlQWNjZXNzb3IsXG4gIE5nQ29udHJvbCxcbiAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRmlsZURyb3B6b25lRGlyZWN0aXZlIH0gZnJvbSAnLi4vZmlsZS1kcm9wem9uZSc7XG5pbXBvcnQgeyBGb3JtVmFsaWRhdGlvbkhhbmRsZXJNb2R1bGUgfSBmcm9tICdAdGZ0L2Zvcm0tdmFsaWRhdGlvbi1oYW5kbGVyJztcblxuaW1wb3J0IHtcbiAgY3Jpc3ByQ29udHJvbE1peGluLFxuICBDcmlzcHJGaWVsZENvbXBvbmVudCxcbiAgRmlsZVVwbG9hZEZpZWxkQ29uZmlnLFxufSBmcm9tICcuLi8uLi91dGlscyc7XG5pbXBvcnQgeyBGaWVsZENvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gJy4uL2ZpZWxkLWNvbnRhaW5lcic7XG5pbXBvcnQgeyBTZWxlY3RlZEZpbGVDb21wb25lbnQgfSBmcm9tICcuLi9zZWxlY3RlZC1maWxlJztcblxuY29uc3QgRmlsZVVwbG9hZEZpZWxkTWl4aW4gPVxuICBjcmlzcHJDb250cm9sTWl4aW48RmlsZVVwbG9hZEZpZWxkQ29uZmlnPihDcmlzcHJGaWVsZENvbXBvbmVudCk7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NyaXNwci1maWxlLXVwbG9hZC1maWVsZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9maWxlLXVwbG9hZC1maWVsZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2ZpbGUtdXBsb2FkLWZpZWxkLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEZpZWxkQ29udGFpbmVyQ29tcG9uZW50LFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgTWF0SWNvbk1vZHVsZSxcbiAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgTWF0Rm9ybUZpZWxkTW9kdWxlLFxuICAgIE1hdElucHV0TW9kdWxlLFxuICAgIFNlbGVjdGVkRmlsZUNvbXBvbmVudCxcbiAgICBGb3JtVmFsaWRhdGlvbkhhbmRsZXJNb2R1bGUsXG4gICAgRmlsZURyb3B6b25lRGlyZWN0aXZlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBGaWxlVXBsb2FkRmllbGRDb21wb25lbnRcbiAgZXh0ZW5kcyBGaWxlVXBsb2FkRmllbGRNaXhpblxuICBpbXBsZW1lbnRzIE9uSW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3JcbntcbiAgb25DaGFuZ2U6ICgpID0+IHZvaWQ7XG5cbiAgZGVmYXVsdENvbmZpZzogUGFydGlhbDxGaWxlVXBsb2FkRmllbGRDb25maWc+ID0ge1xuICAgIGFsbG93TXVsdGlwbGVGaWxlczogZmFsc2UsXG4gICAgYWNjZXB0ZWRUeXBlczogJyouKicsXG4gICAgZHJvcFpvbmVUZXh0OiAnRFJPUCBGSUxFIEhFUkUnLFxuICAgIHNlbGVjdEZpbGVzQnV0dG9uVHlwZTogJ2J1dHRvbicsXG4gICAgc2VsZWN0QnV0dG9uVGV4dDogJ1NFTEVDVCcsXG4gICAgc2hvd0NsZWFyRmlsZXNCdXR0b246IHRydWUsXG4gICAgY2xlYXJGaWxlc0J1dHRvblRleHQ6ICdDTEVBUicsXG4gICAgdXBsb2FkQnV0dG9uVGV4dDogJ1VQTE9BRCcsXG4gICAgdXBsb2FkQnV0dG9uVHlwZTogJ2J1dHRvbicsXG4gICAgc2hvd1VwbG9hZFByb2dyZXNzOiBmYWxzZSxcbiAgICBkaXNhYmxlT25VcGxvYWQ6IHRydWUsXG4gIH07XG5cbiAgQFZpZXdDaGlsZCgnZmlsZUlucHV0JykgZmlsZUlucHV0UmVmOiBFbGVtZW50UmVmO1xuXG4gIHNlbGVjdGVkRmlsZXM6IEZpbGVMaXN0O1xuXG4gIGlzVXBsb2FkZWQgPSBmYWxzZTtcblxuICBmaWxlUHJvZ3Jlc3M6IE9ic2VydmFibGU8bnVtYmVyPltdID0gW107XG4gIGRpc2FibGVkJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcblxuICAvLyBuZ0NvbnRyb2w6IE5nQ29udHJvbCA9IG51bGw7XG4gIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIEBTZWxmKCkgcHVibGljIG5nQ29udHJvbDogTmdDb250cm9sKSB7XG4gICAgc3VwZXIoKTtcbiAgICBpZiAodGhpcy5uZ0NvbnRyb2wgIT0gbnVsbCkge1xuICAgICAgLy8gU2V0dGluZyB0aGUgdmFsdWUgYWNjZXNzb3IgZGlyZWN0bHkgKGluc3RlYWQgb2YgdXNpbmdcbiAgICAgIC8vIHRoZSBwcm92aWRlcnMpIHRvIGF2b2lkIHJ1bm5pbmcgaW50byBhIGNpcmN1bGFyIGltcG9ydC5cbiAgICAgIG5nQ29udHJvbC52YWx1ZUFjY2Vzc29yID0gdGhpcztcbiAgICB9XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgIHRoaXMuZGlzYWJsZWQkID0gdGhpcy5jb25maWcuZGlzYWJsZWRDYWxsYmFja1xuICAgICAgPyB0aGlzLmNvbmZpZy5kaXNhYmxlZENhbGxiYWNrKHRoaXMuZ3JvdXApXG4gICAgICA6IG9mKGZhbHNlKTtcbiAgfVxuXG4gIGZpbGVzQ2hhbmdlZChmaWxlczogRmlsZUxpc3QpOiB2b2lkIHtcbiAgICBpZiAoZmlsZXMgJiYgZmlsZXMubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5zZWxlY3RlZEZpbGVzID0gZmlsZXM7XG4gICAgICB0aGlzLmNvbnRyb2wucGF0Y2hWYWx1ZShmaWxlcyk7XG4gICAgfVxuICB9XG5cbiAgdXBsb2FkRmlsZXMoKSB7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRGaWxlcyAmJiB0aGlzLmNvbmZpZy51cGxvYWRGaWxlcykge1xuICAgICAgdGhpcy5pc1VwbG9hZGVkID0gdHJ1ZTtcbiAgICAgIHRoaXMuY29uZmlnLnVwbG9hZEZpbGVzKHRoaXMuZ3JvdXAsIHRoaXMuc2VsZWN0ZWRGaWxlcywgdGhpcyk7XG4gICAgfVxuICB9XG5cbiAgcmVzZXRGaWxlSW5wdXQoKTogdm9pZCB7XG4gICAgdGhpcy5maWxlSW5wdXRSZWYubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xuICAgIHRoaXMuY29udHJvbC5wYXRjaFZhbHVlKG51bGwpO1xuICAgIHRoaXMuaXNVcGxvYWRlZCA9IGZhbHNlO1xuICB9XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogbnVsbCkge1xuICAgIC8vIGNsZWFyIGZpbGUgaW5wdXRcbiAgICAvLyB0aGlzLmhvc3QubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xuICAgIC8vIHRoaXMuZmlsZSA9IG51bGw7XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAoKSA9PiB2b2lkKSB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpIHt9XG59XG4iLCI8Y3Jpc3ByLWZpZWxkLWNvbnRhaW5lclxuICBbY29uZmlnXT1cImNvbmZpZ1wiXG4gIFtncm91cF09XCJncm91cFwiPlxuICA8bWF0LWZvcm0tZmllbGQgZmxvYXRMYWJlbD1cImFsd2F5c1wiXG4gICAgW2NvbG9yXT1cImNvbmZpZy5jb2xvclwiXG4gICAgYXBwZWFyYW5jZT1cIm91dGxpbmVcIlxuICAgIFtjcmlzcHJGaWxlRHJvcHpvbmVdPVwiIShkaXNhYmxlZCQgfCBhc3luYykgJiYgIShjb25maWcuZGlzYWJsZU9uVXBsb2FkICYmIGlzVXBsb2FkZWQpXCJcbiAgICBbZm9ybUdyb3VwXT1cImdyb3VwXCJcbiAgICAoZmlsZURyb3ApPVwiZmlsZXNDaGFuZ2VkKCRldmVudClcIj5cblxuICAgIDxpbnB1dCBbZm9ybUNvbnRyb2xOYW1lXT1cImNvbmZpZy5jb250cm9sTmFtZVwiIG1hdElucHV0IHR5cGU9XCJ0ZXh0XCIvPlxuICAgIDxpbnB1dFxuICAgICAgI2ZpbGVJbnB1dFxuICAgICAgdHlwZT1cImZpbGVcIlxuICAgICAgc3R5bGU9XCJkaXNwbGF5OiBub25lXCJcbiAgICAgIFthY2NlcHRdPVwiY29uZmlnLmFjY2VwdGVkVHlwZXNcIlxuICAgICAgW211bHRpcGxlXT1cImNvbmZpZy5hbGxvd011bHRpcGxlRmlsZXNcIlxuICAgICAgKGNoYW5nZSk9XCJmaWxlc0NoYW5nZWQoJGV2ZW50LnRhcmdldC5maWxlcylcIi8+XG4gICAgPG1hdC1sYWJlbD57e2NvbmZpZy5sYWJlbH19PC9tYXQtbGFiZWw+XG5cbiAgICA8ZGl2ICpuZ0lmPVwiIShzZWxlY3RlZEZpbGVzPy5sZW5ndGggPiAwKTsgZWxzZSBzZWxlY3RlZEZpbGVMaXN0XCIgIGNsYXNzPVwiZHJvcC1pbmZvXCI+XG4gICAgICA8bWF0LWljb24gY2xhc3M9XCJkcm9wLWljb25cIiBpbmxpbmU9XCJ0cnVlXCI+Y2xvdWRfdXBsb2FkPC9tYXQtaWNvbj5cbiAgICAgIDxoMiBjbGFzcz1cIm1hdC1oMlwiPnt7Y29uZmlnLmRyb3Bab25lVGV4dH19PC9oMj5cbiAgICAgIG9yXG4gICAgICA8YnV0dG9uXG4gICAgICAgIG1hdC1yYWlzZWQtYnV0dG9uXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiKGRpc2FibGVkJCB8IGFzeW5jKSB8fCBjb25maWcuZGlzYWJsZU9uVXBsb2FkICYmIGlzVXBsb2FkZWRcIlxuICAgICAgICAoY2xpY2spPVwiZmlsZUlucHV0LmNsaWNrKClcIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImNvbmZpZy5jb250cm9sTmFtZVwiPlxuICAgICAgICB7e2NvbmZpZy5zZWxlY3RCdXR0b25UZXh0fX1cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICAgIDxuZy10ZW1wbGF0ZSAjc2VsZWN0ZWRGaWxlTGlzdD5cbiAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3RlZC1maWxlcy1jb250YWluZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdGVkLWZpbGVzLWxpc3RcIj5cbiAgICAgICAgICA8Y3Jpc3ByLXNlbGVjdGVkLWZpbGVcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBmaWxlIG9mIHNlbGVjdGVkRmlsZXM7IGxldCBpID0gaW5kZXg7XCJcbiAgICAgICAgICAgIFtjb2xvcl09XCJjb25maWcuY29sb3IgPT09ICdwcmltYXJ5JyA/ICdhY2NlbnQnIDogJ3ByaW1hcnknXCJcbiAgICAgICAgICAgIFtmaWxlTmFtZV09XCJmaWxlLm5hbWVcIlxuICAgICAgICAgICAgW3Nob3dQcm9ncmVzc109XCJjb25maWcuc2hvd1VwbG9hZFByb2dyZXNzXCJcbiAgICAgICAgICAgIFtwcm9ncmVzc109XCJmaWxlUHJvZ3Jlc3MgJiYgKGZpbGVQcm9ncmVzc1tpXSB8IGFzeW5jKVwiPlxuICAgICAgICAgIDwvY3Jpc3ByLXNlbGVjdGVkLWZpbGU+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxtYXQtaGludCAqbmdJZj1cImNvbmZpZy5oaW50ICYmIChjb250cm9sLnZhbGlkIHx8ICFjb250cm9sLnRvdWNoZWQpXCI+e3tjb25maWcuaGludH19PC9tYXQtaGludD5cbiAgPC9tYXQtZm9ybS1maWVsZD5cbiAgPGRpdiBjbGFzcz1cImJ1dHRvbi1jb250YWluZXJcIiAqbmdJZj1cInNlbGVjdGVkRmlsZXM/Lmxlbmd0aCA+IDBcIj5cblxuICAgIDxidXR0b25cbiAgICAgIG1hdC1idXR0b25cbiAgICAgIChjbGljayk9XCJyZXNldEZpbGVJbnB1dCgpXCJcbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgW2Rpc2FibGVkXT1cIihkaXNhYmxlZCQgfCBhc3luYykgfHwgKGNvbmZpZy5kaXNhYmxlT25VcGxvYWQgJiYgaXNVcGxvYWRlZClcIlxuICAgICAgYXJpYS1sYWJlbD1cIlJlbW92ZSBTZWxlY3RlZCBGaWxlKHMpXCI+XG4gICAgICB7e2NvbmZpZy5jbGVhckZpbGVzQnV0dG9uVGV4dH19XG4gICAgICA8bWF0LWljb24+ZGVsZXRlPC9tYXQtaWNvbj5cbiAgICA8L2J1dHRvbj5cblxuICAgIDxidXR0b25cbiAgICAgICpuZ0lmPVwiISFjb25maWcudXBsb2FkRmlsZXNcIlxuICAgICAgbWF0LXJhaXNlZC1idXR0b25cbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgY29sb3I9XCJhY2NlbnRcIlxuICAgICAgY2xhc3M9XCJmaWxlLWlucHV0LWJ1dHRvblwiXG4gICAgICBbZGlzYWJsZWRdPVwiKGRpc2FibGVkJCB8IGFzeW5jKSB8fCAoY29uZmlnLmRpc2FibGVPblVwbG9hZCAmJiBpc1VwbG9hZGVkKVwiXG4gICAgICAoY2xpY2spPVwidXBsb2FkRmlsZXMoKVwiXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImNvbmZpZy51cGxvYWRCdXR0b25UZXh0XCI+XG4gICAgICB7eyBjb25maWcudXBsb2FkQnV0dG9uVGV4dCB9fVxuICAgIDwvYnV0dG9uPlxuXG4gIDwvZGl2PlxuPC9jcmlzcHItZmllbGQtY29udGFpbmVyPlxuIl19
@@ -0,0 +1,2 @@
1
+ export * from './public-api';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NyaXNwci1mb3Jtcy9zcmMvbGliL3VpL2ZpbGUtdXBsb2FkLWZpZWxkL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export * from './file-upload-field.component';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY3Jpc3ByLWZvcm1zL3NyYy9saWIvdWkvZmlsZS11cGxvYWQtZmllbGQvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLCtCQUErQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9maWxlLXVwbG9hZC1maWVsZC5jb21wb25lbnQnO1xuIl19
@@ -0,0 +1,27 @@
1
+ import { Component, Input, ChangeDetectionStrategy } from '@angular/core';
2
+ // eslint-disable-next-line @nx/enforce-module-boundaries
3
+ import { CrisprFieldComponent } from '../../utils';
4
+ import { CommonModule } from '@angular/common';
5
+ import { MatFormFieldModule } from '@angular/material/form-field';
6
+ import { InfoComponent } from '../info';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@angular/common";
9
+ import * as i2 from "@angular/material/form-field";
10
+ const defaultConfig = {
11
+ typographyClass: 'mat-h3',
12
+ };
13
+ export class HeadingComponent extends CrisprFieldComponent {
14
+ constructor() {
15
+ super(...arguments);
16
+ this.defaultConfig = defaultConfig;
17
+ }
18
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: HeadingComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
19
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: HeadingComponent, isStandalone: true, selector: "crispr-heading", inputs: { config: "config" }, usesInheritance: true, ngImport: i0, template: " <label\n *ngIf=\"!!config?.label\"\n [ngClass]=\"config.typographyClass\">\n {{ config.label }}\n <crispr-info\n *ngIf=\"config.info\"\n matSuffix\n [info]=\"config.info\">\n </crispr-info>\n </label>\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "directive", type: i2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: InfoComponent, selector: "crispr-info", inputs: ["info"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, preserveWhitespaces: true }); }
20
+ }
21
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: HeadingComponent, decorators: [{
22
+ type: Component,
23
+ args: [{ selector: 'crispr-heading', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule, MatFormFieldModule, InfoComponent], template: " <label\n *ngIf=\"!!config?.label\"\n [ngClass]=\"config.typographyClass\">\n {{ config.label }}\n <crispr-info\n *ngIf=\"config.info\"\n matSuffix\n [info]=\"config.info\">\n </crispr-info>\n </label>\n", styles: [":host{display:block}\n"] }]
24
+ }], propDecorators: { config: [{
25
+ type: Input
26
+ }] } });
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGluZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NyaXNwci1mb3Jtcy9zcmMvbGliL3VpL2hlYWRpbmcvaGVhZGluZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NyaXNwci1mb3Jtcy9zcmMvbGliL3VpL2hlYWRpbmcvaGVhZGluZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRSx5REFBeUQ7QUFDekQsT0FBTyxFQUFFLG9CQUFvQixFQUFpQixNQUFNLGFBQWEsQ0FBQztBQUNsRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFNBQVMsQ0FBQzs7OztBQUV4QyxNQUFNLGFBQWEsR0FBMkI7SUFDNUMsZUFBZSxFQUFFLFFBQVE7Q0FDMUIsQ0FBQztBQVNGLE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxvQkFBbUM7SUFSekU7O1FBVUUsa0JBQWEsR0FBRyxhQUFhLENBQUM7S0FDL0I7OEdBSFksZ0JBQWdCO2tHQUFoQixnQkFBZ0IsK0hDbEI3Qiw2T0FVQSwrRURNWSxZQUFZLGdPQUFFLGtCQUFrQixnS0FBRSxhQUFhOzsyRkFFOUMsZ0JBQWdCO2tCQVI1QixTQUFTOytCQUNFLGdCQUFnQixtQkFHVCx1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxrQkFBa0IsRUFBRSxhQUFhLENBQUM7OEJBR2pELE1BQU07c0JBQWQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQG54L2VuZm9yY2UtbW9kdWxlLWJvdW5kYXJpZXNcbmltcG9ydCB7IENyaXNwckZpZWxkQ29tcG9uZW50LCBIZWFkaW5nQ29uZmlnIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgSW5mb0NvbXBvbmVudCB9IGZyb20gJy4uL2luZm8nO1xuXG5jb25zdCBkZWZhdWx0Q29uZmlnOiBQYXJ0aWFsPEhlYWRpbmdDb25maWc+ID0ge1xuICB0eXBvZ3JhcGh5Q2xhc3M6ICdtYXQtaDMnLFxufTtcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NyaXNwci1oZWFkaW5nJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2hlYWRpbmcuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9oZWFkaW5nLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBNYXRGb3JtRmllbGRNb2R1bGUsIEluZm9Db21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBIZWFkaW5nQ29tcG9uZW50IGV4dGVuZHMgQ3Jpc3ByRmllbGRDb21wb25lbnQ8SGVhZGluZ0NvbmZpZz4ge1xuICBASW5wdXQoKSBjb25maWc6IEhlYWRpbmdDb25maWc7XG4gIGRlZmF1bHRDb25maWcgPSBkZWZhdWx0Q29uZmlnO1xufVxuIiwiICA8bGFiZWxcbiAgICAqbmdJZj1cIiEhY29uZmlnPy5sYWJlbFwiXG4gICAgW25nQ2xhc3NdPVwiY29uZmlnLnR5cG9ncmFwaHlDbGFzc1wiPlxuICAgIHt7IGNvbmZpZy5sYWJlbCB9fVxuICAgIDxjcmlzcHItaW5mb1xuICAgICAgKm5nSWY9XCJjb25maWcuaW5mb1wiXG4gICAgICBtYXRTdWZmaXhcbiAgICAgIFtpbmZvXT1cImNvbmZpZy5pbmZvXCI+XG4gICAgPC9jcmlzcHItaW5mbz5cbiAgPC9sYWJlbD5cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export * from './public-api';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NyaXNwci1mb3Jtcy9zcmMvbGliL3VpL2hlYWRpbmcvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19
@@ -0,0 +1,2 @@
1
+ export * from './heading.component';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY3Jpc3ByLWZvcm1zL3NyYy9saWIvdWkvaGVhZGluZy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMscUJBQXFCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2hlYWRpbmcuY29tcG9uZW50JztcbiJdfQ==