@tft/crispr-forms 13.0.23 → 14.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 (405) hide show
  1. package/README.md +77 -76
  2. package/esm2020/public-api.mjs +5 -0
  3. package/esm2020/src/index.mjs +2 -0
  4. package/esm2020/src/lib/crispr-forms.module.mjs +57 -0
  5. package/esm2020/src/lib/field-component-map.const.mjs +27 -0
  6. package/esm2020/src/lib/field.directive.mjs +69 -0
  7. package/esm2020/src/lib/form/form.component.mjs +63 -0
  8. package/esm2020/src/lib/form-group-list/form-group-list.component.mjs +93 -0
  9. package/esm2020/src/lib/form-group-list/index.mjs +2 -0
  10. package/esm2020/src/lib/pipes/crispr-pipes.module.mjs +24 -0
  11. package/esm2020/src/lib/pipes/initial-control-value.pipe.mjs +21 -0
  12. package/esm2020/src/lib/public_api.mjs +3 -0
  13. package/esm2020/src/lib/sub-group/index.mjs +3 -0
  14. package/esm2020/src/lib/sub-group/sub-group.component.mjs +21 -0
  15. package/esm2020/src/lib/sub-group/sub-group.module.mjs +42 -0
  16. package/esm2020/tft-crispr-forms.mjs +2 -2
  17. package/esm2020/ui/autocomplete-chiplist-field/autocomplete-chiplist-field.component.mjs +130 -0
  18. package/esm2020/ui/autocomplete-chiplist-field/public-api.mjs +2 -0
  19. package/esm2020/ui/autocomplete-chiplist-field/tft-crispr-forms-ui-autocomplete-chiplist-field.mjs +5 -0
  20. package/esm2020/ui/autocomplete-field/autocomplete-field.component.mjs +93 -0
  21. package/esm2020/ui/autocomplete-field/public-api.mjs +2 -0
  22. package/esm2020/ui/autocomplete-field/tft-crispr-forms-ui-autocomplete-field.mjs +5 -0
  23. package/esm2020/ui/button/button.component.mjs +49 -0
  24. package/esm2020/ui/button/public-api.mjs +2 -0
  25. package/esm2020/ui/button/tft-crispr-forms-ui-button.mjs +5 -0
  26. package/esm2020/ui/checkbox-field/checkbox-field.component.mjs +42 -0
  27. package/esm2020/ui/checkbox-field/public-api.mjs +2 -0
  28. package/esm2020/ui/checkbox-field/tft-crispr-forms-ui-checkbox-field.mjs +5 -0
  29. package/esm2020/ui/datepicker-field/datepicker-field.component.mjs +63 -0
  30. package/esm2020/ui/datepicker-field/public-api.mjs +2 -0
  31. package/esm2020/ui/datepicker-field/tft-crispr-forms-ui-datepicker-field.mjs +5 -0
  32. package/esm2020/ui/divider/divider.component.mjs +28 -0
  33. package/esm2020/ui/divider/public-api.mjs +2 -0
  34. package/esm2020/ui/divider/tft-crispr-forms-ui-divider.mjs +5 -0
  35. package/esm2020/ui/field-container/field-container.component.mjs +58 -0
  36. package/esm2020/ui/field-container/public-api.mjs +2 -0
  37. package/esm2020/ui/field-container/tft-crispr-forms-ui-field-container.mjs +5 -0
  38. package/esm2020/ui/file-dropzone/file-dropzone.directive.mjs +40 -0
  39. package/esm2020/ui/file-dropzone/public-api.mjs +2 -0
  40. package/esm2020/ui/file-dropzone/tft-crispr-forms-ui-file-dropzone.mjs +5 -0
  41. package/esm2020/ui/file-upload-field/file-upload-field.component.mjs +108 -0
  42. package/esm2020/ui/file-upload-field/public-api.mjs +2 -0
  43. package/esm2020/ui/file-upload-field/tft-crispr-forms-ui-file-upload-field.mjs +5 -0
  44. package/esm2020/ui/heading/heading.component.mjs +31 -0
  45. package/esm2020/ui/heading/public-api.mjs +2 -0
  46. package/esm2020/ui/heading/tft-crispr-forms-ui-heading.mjs +5 -0
  47. package/esm2020/ui/image-upload-field/image-upload-field.component.mjs +179 -0
  48. package/esm2020/ui/image-upload-field/public-api.mjs +2 -0
  49. package/esm2020/ui/image-upload-field/tft-crispr-forms-ui-image-upload-field.mjs +5 -0
  50. package/esm2020/ui/info/info.component.mjs +23 -0
  51. package/esm2020/ui/info/public-api.mjs +2 -0
  52. package/esm2020/ui/info/tft-crispr-forms-ui-info.mjs +5 -0
  53. package/esm2020/ui/input-field/input-field.component.mjs +41 -0
  54. package/esm2020/ui/input-field/public-api.mjs +2 -0
  55. package/esm2020/ui/input-field/tft-crispr-forms-ui-input-field.mjs +5 -0
  56. package/esm2020/ui/option/option.component.mjs +19 -0
  57. package/esm2020/ui/option/public-api.mjs +2 -0
  58. package/esm2020/ui/option/tft-crispr-forms-ui-option.mjs +5 -0
  59. package/esm2020/ui/public-api.mjs +7 -0
  60. package/esm2020/ui/radio-field/public-api.mjs +2 -0
  61. package/esm2020/ui/radio-field/radio-field.component.mjs +39 -0
  62. package/esm2020/ui/radio-field/tft-crispr-forms-ui-radio-field.mjs +5 -0
  63. package/esm2020/ui/select-field/public-api.mjs +2 -0
  64. package/esm2020/ui/select-field/select-field.component.mjs +73 -0
  65. package/esm2020/ui/select-field/tft-crispr-forms-ui-select-field.mjs +5 -0
  66. package/esm2020/ui/selected-file/public-api.mjs +2 -0
  67. package/esm2020/ui/selected-file/selected-file.component.mjs +26 -0
  68. package/esm2020/ui/selected-file/tft-crispr-forms-ui-selected-file.mjs +5 -0
  69. package/esm2020/ui/slider-field/public-api.mjs +2 -0
  70. package/esm2020/ui/slider-field/slider-field.component.mjs +44 -0
  71. package/esm2020/ui/slider-field/tft-crispr-forms-ui-slider-field.mjs +5 -0
  72. package/esm2020/ui/textarea-field/public-api.mjs +2 -0
  73. package/esm2020/ui/textarea-field/textarea-field.component.mjs +42 -0
  74. package/esm2020/ui/textarea-field/tft-crispr-forms-ui-textarea-field.mjs +5 -0
  75. package/esm2020/ui/tft-crispr-forms-ui.mjs +5 -0
  76. package/esm2020/ui/unit-conversion-field/public-api.mjs +2 -0
  77. package/esm2020/ui/unit-conversion-field/tft-crispr-forms-ui-unit-conversion-field.mjs +5 -0
  78. package/esm2020/ui/unit-conversion-field/unit-conversion-field.component.mjs +84 -0
  79. package/esm2020/utils/abstracts/autocomplete-field.abstract.mjs +30 -0
  80. package/esm2020/utils/abstracts/crispr-control.mixin.mjs +27 -0
  81. package/esm2020/utils/abstracts/crispr-field.abstract.mjs +20 -0
  82. package/esm2020/utils/abstracts/index.mjs +4 -0
  83. package/esm2020/utils/functions/buildFormGroupFromConfig.mjs +28 -0
  84. package/esm2020/utils/functions/callOptionsIfFunction.mjs +4 -0
  85. package/esm2020/utils/functions/createControlForType.mjs +19 -0
  86. package/esm2020/utils/functions/filterOptionsByLabel.mjs +11 -0
  87. package/esm2020/utils/functions/image-compression.helpers.mjs +50 -0
  88. package/esm2020/utils/functions/index.mjs +8 -0
  89. package/esm2020/utils/functions/isControlConfig.mjs +7 -0
  90. package/esm2020/utils/functions/observablifyOptions.mjs +29 -0
  91. package/esm2020/utils/models/autocomplete-chiplist-field.config.mjs +2 -0
  92. package/esm2020/utils/models/autocomplete-field.config.mjs +2 -0
  93. package/esm2020/utils/models/button.config.mjs +2 -0
  94. package/esm2020/utils/models/checkbox-field.config.mjs +2 -0
  95. package/esm2020/utils/models/crispr-field.config.mjs +23 -0
  96. package/esm2020/utils/models/datepicker-field.config.mjs +2 -0
  97. package/esm2020/utils/models/divider.config.mjs +2 -0
  98. package/esm2020/utils/models/file-upload-field.config.mjs +2 -0
  99. package/esm2020/utils/models/form-group-list.config.mjs +2 -0
  100. package/esm2020/utils/models/heading.config.mjs +3 -0
  101. package/esm2020/utils/models/image-upload-field.config.mjs +2 -0
  102. package/esm2020/utils/models/index.mjs +18 -0
  103. package/esm2020/utils/models/input-field.config.mjs +2 -0
  104. package/esm2020/utils/models/radio-field.config.mjs +2 -0
  105. package/esm2020/utils/models/select-field.config.mjs +2 -0
  106. package/esm2020/utils/models/slider-field.config.mjs +2 -0
  107. package/esm2020/utils/models/textarea-field.config.mjs +2 -0
  108. package/esm2020/utils/models/unit-conversion-field.config.mjs +2 -0
  109. package/esm2020/utils/operators/form.operators.mjs +24 -0
  110. package/esm2020/utils/operators/index.mjs +2 -0
  111. package/esm2020/utils/public-api.mjs +5 -0
  112. package/esm2020/utils/tft-crispr-forms-utils.mjs +5 -0
  113. package/fesm2015/tft-crispr-forms-ui-autocomplete-chiplist-field.mjs +138 -0
  114. package/fesm2015/tft-crispr-forms-ui-autocomplete-chiplist-field.mjs.map +1 -0
  115. package/fesm2015/tft-crispr-forms-ui-autocomplete-field.mjs +101 -0
  116. package/fesm2015/tft-crispr-forms-ui-autocomplete-field.mjs.map +1 -0
  117. package/fesm2015/tft-crispr-forms-ui-button.mjs +55 -0
  118. package/fesm2015/tft-crispr-forms-ui-button.mjs.map +1 -0
  119. package/fesm2015/tft-crispr-forms-ui-checkbox-field.mjs +49 -0
  120. package/fesm2015/tft-crispr-forms-ui-checkbox-field.mjs.map +1 -0
  121. package/fesm2015/tft-crispr-forms-ui-datepicker-field.mjs +71 -0
  122. package/fesm2015/tft-crispr-forms-ui-datepicker-field.mjs.map +1 -0
  123. package/fesm2015/tft-crispr-forms-ui-divider.mjs +34 -0
  124. package/fesm2015/tft-crispr-forms-ui-divider.mjs.map +1 -0
  125. package/fesm2015/tft-crispr-forms-ui-field-container.mjs +64 -0
  126. package/fesm2015/tft-crispr-forms-ui-field-container.mjs.map +1 -0
  127. package/fesm2015/tft-crispr-forms-ui-file-dropzone.mjs +47 -0
  128. package/fesm2015/tft-crispr-forms-ui-file-dropzone.mjs.map +1 -0
  129. package/fesm2015/tft-crispr-forms-ui-file-upload-field.mjs +117 -0
  130. package/fesm2015/tft-crispr-forms-ui-file-upload-field.mjs.map +1 -0
  131. package/fesm2015/tft-crispr-forms-ui-heading.mjs +37 -0
  132. package/fesm2015/tft-crispr-forms-ui-heading.mjs.map +1 -0
  133. package/fesm2015/tft-crispr-forms-ui-image-upload-field.mjs +182 -0
  134. package/fesm2015/tft-crispr-forms-ui-image-upload-field.mjs.map +1 -0
  135. package/fesm2015/tft-crispr-forms-ui-info.mjs +30 -0
  136. package/fesm2015/tft-crispr-forms-ui-info.mjs.map +1 -0
  137. package/fesm2015/tft-crispr-forms-ui-input-field.mjs +48 -0
  138. package/fesm2015/tft-crispr-forms-ui-input-field.mjs.map +1 -0
  139. package/fesm2015/tft-crispr-forms-ui-option.mjs +26 -0
  140. package/fesm2015/tft-crispr-forms-ui-option.mjs.map +1 -0
  141. package/fesm2015/tft-crispr-forms-ui-radio-field.mjs +46 -0
  142. package/fesm2015/tft-crispr-forms-ui-radio-field.mjs.map +1 -0
  143. package/fesm2015/tft-crispr-forms-ui-select-field.mjs +81 -0
  144. package/fesm2015/tft-crispr-forms-ui-select-field.mjs.map +1 -0
  145. package/fesm2015/tft-crispr-forms-ui-selected-file.mjs +33 -0
  146. package/fesm2015/tft-crispr-forms-ui-selected-file.mjs.map +1 -0
  147. package/fesm2015/tft-crispr-forms-ui-slider-field.mjs +51 -0
  148. package/fesm2015/tft-crispr-forms-ui-slider-field.mjs.map +1 -0
  149. package/fesm2015/tft-crispr-forms-ui-textarea-field.mjs +49 -0
  150. package/fesm2015/tft-crispr-forms-ui-textarea-field.mjs.map +1 -0
  151. package/fesm2015/tft-crispr-forms-ui-unit-conversion-field.mjs +93 -0
  152. package/fesm2015/tft-crispr-forms-ui-unit-conversion-field.mjs.map +1 -0
  153. package/fesm2015/tft-crispr-forms-ui.mjs +12 -0
  154. package/fesm2015/tft-crispr-forms-ui.mjs.map +1 -0
  155. package/fesm2015/tft-crispr-forms-utils.mjs +270 -0
  156. package/fesm2015/tft-crispr-forms-utils.mjs.map +1 -0
  157. package/fesm2015/tft-crispr-forms.mjs +117 -1730
  158. package/fesm2015/tft-crispr-forms.mjs.map +1 -1
  159. package/fesm2020/tft-crispr-forms-ui-autocomplete-chiplist-field.mjs +137 -0
  160. package/fesm2020/tft-crispr-forms-ui-autocomplete-chiplist-field.mjs.map +1 -0
  161. package/fesm2020/tft-crispr-forms-ui-autocomplete-field.mjs +100 -0
  162. package/fesm2020/tft-crispr-forms-ui-autocomplete-field.mjs.map +1 -0
  163. package/fesm2020/tft-crispr-forms-ui-button.mjs +55 -0
  164. package/fesm2020/tft-crispr-forms-ui-button.mjs.map +1 -0
  165. package/fesm2020/tft-crispr-forms-ui-checkbox-field.mjs +49 -0
  166. package/fesm2020/tft-crispr-forms-ui-checkbox-field.mjs.map +1 -0
  167. package/fesm2020/tft-crispr-forms-ui-datepicker-field.mjs +70 -0
  168. package/fesm2020/tft-crispr-forms-ui-datepicker-field.mjs.map +1 -0
  169. package/fesm2020/tft-crispr-forms-ui-divider.mjs +34 -0
  170. package/fesm2020/tft-crispr-forms-ui-divider.mjs.map +1 -0
  171. package/fesm2020/tft-crispr-forms-ui-field-container.mjs +65 -0
  172. package/fesm2020/tft-crispr-forms-ui-field-container.mjs.map +1 -0
  173. package/fesm2020/tft-crispr-forms-ui-file-dropzone.mjs +47 -0
  174. package/fesm2020/tft-crispr-forms-ui-file-dropzone.mjs.map +1 -0
  175. package/fesm2020/tft-crispr-forms-ui-file-upload-field.mjs +115 -0
  176. package/fesm2020/tft-crispr-forms-ui-file-upload-field.mjs.map +1 -0
  177. package/fesm2020/tft-crispr-forms-ui-heading.mjs +37 -0
  178. package/fesm2020/tft-crispr-forms-ui-heading.mjs.map +1 -0
  179. package/fesm2020/tft-crispr-forms-ui-image-upload-field.mjs +185 -0
  180. package/fesm2020/tft-crispr-forms-ui-image-upload-field.mjs.map +1 -0
  181. package/fesm2020/tft-crispr-forms-ui-info.mjs +30 -0
  182. package/fesm2020/tft-crispr-forms-ui-info.mjs.map +1 -0
  183. package/fesm2020/tft-crispr-forms-ui-input-field.mjs +48 -0
  184. package/fesm2020/tft-crispr-forms-ui-input-field.mjs.map +1 -0
  185. package/fesm2020/tft-crispr-forms-ui-option.mjs +26 -0
  186. package/fesm2020/tft-crispr-forms-ui-option.mjs.map +1 -0
  187. package/fesm2020/tft-crispr-forms-ui-radio-field.mjs +46 -0
  188. package/fesm2020/tft-crispr-forms-ui-radio-field.mjs.map +1 -0
  189. package/fesm2020/tft-crispr-forms-ui-select-field.mjs +80 -0
  190. package/fesm2020/tft-crispr-forms-ui-select-field.mjs.map +1 -0
  191. package/fesm2020/tft-crispr-forms-ui-selected-file.mjs +33 -0
  192. package/fesm2020/tft-crispr-forms-ui-selected-file.mjs.map +1 -0
  193. package/fesm2020/tft-crispr-forms-ui-slider-field.mjs +51 -0
  194. package/fesm2020/tft-crispr-forms-ui-slider-field.mjs.map +1 -0
  195. package/fesm2020/tft-crispr-forms-ui-textarea-field.mjs +49 -0
  196. package/fesm2020/tft-crispr-forms-ui-textarea-field.mjs.map +1 -0
  197. package/fesm2020/tft-crispr-forms-ui-unit-conversion-field.mjs +91 -0
  198. package/fesm2020/tft-crispr-forms-ui-unit-conversion-field.mjs.map +1 -0
  199. package/fesm2020/tft-crispr-forms-ui.mjs +12 -0
  200. package/fesm2020/tft-crispr-forms-ui.mjs.map +1 -0
  201. package/fesm2020/tft-crispr-forms-utils.mjs +269 -0
  202. package/fesm2020/tft-crispr-forms-utils.mjs.map +1 -0
  203. package/fesm2020/tft-crispr-forms.mjs +117 -1723
  204. package/fesm2020/tft-crispr-forms.mjs.map +1 -1
  205. package/index.d.ts +5 -1
  206. package/package.json +188 -15
  207. package/public-api.d.ts +3 -0
  208. package/src/index.d.ts +1 -0
  209. package/src/lib/crispr-forms.module.d.ts +15 -0
  210. package/src/lib/field-component-map.const.d.ts +42 -0
  211. package/{lib → src/lib}/field.directive.d.ts +4 -10
  212. package/{lib → src/lib}/form/form.component.d.ts +3 -3
  213. package/{lib → src/lib}/form-group-list/form-group-list.component.d.ts +12 -14
  214. package/{lib → src/lib}/form-group-list/index.d.ts +0 -1
  215. package/{lib → src/lib}/pipes/crispr-pipes.module.d.ts +0 -0
  216. package/{lib → src/lib}/pipes/initial-control-value.pipe.d.ts +2 -2
  217. package/src/lib/public_api.d.ts +2 -0
  218. package/{lib → src/lib}/sub-group/index.d.ts +0 -0
  219. package/src/lib/sub-group/sub-group.component.d.ts +22 -0
  220. package/{lib → src/lib}/sub-group/sub-group.module.d.ts +2 -2
  221. package/tft-crispr-forms-14.0.0.tgz +0 -0
  222. package/ui/README.md +3 -0
  223. package/{lib/material → ui}/autocomplete-chiplist-field/autocomplete-chiplist-field.component.d.ts +2 -3
  224. package/ui/autocomplete-chiplist-field/index.d.ts +5 -0
  225. package/ui/autocomplete-chiplist-field/public-api.d.ts +1 -0
  226. package/{lib/material → ui}/autocomplete-field/autocomplete-field.component.d.ts +2 -3
  227. package/ui/autocomplete-field/index.d.ts +5 -0
  228. package/ui/autocomplete-field/public-api.d.ts +1 -0
  229. package/{lib/material → ui}/button/button.component.d.ts +2 -3
  230. package/ui/button/index.d.ts +5 -0
  231. package/ui/button/public-api.d.ts +1 -0
  232. package/ui/checkbox-field/checkbox-field.component.d.ts +21 -0
  233. package/ui/checkbox-field/index.d.ts +5 -0
  234. package/ui/checkbox-field/public-api.d.ts +1 -0
  235. package/{lib/material → ui}/datepicker-field/datepicker-field.component.d.ts +14 -17
  236. package/ui/datepicker-field/index.d.ts +5 -0
  237. package/ui/datepicker-field/public-api.d.ts +1 -0
  238. package/{lib/material → ui}/divider/divider.component.d.ts +2 -3
  239. package/ui/divider/index.d.ts +5 -0
  240. package/ui/divider/public-api.d.ts +1 -0
  241. package/{lib → ui}/field-container/field-container.component.d.ts +3 -10
  242. package/ui/field-container/index.d.ts +5 -0
  243. package/{lib/field-container/index.d.ts → ui/field-container/public-api.d.ts} +0 -0
  244. package/{lib/material/file-upload → ui/file-dropzone}/file-dropzone.directive.d.ts +1 -1
  245. package/ui/file-dropzone/index.d.ts +5 -0
  246. package/{lib/material/file-upload/index.d.ts → ui/file-dropzone/public-api.d.ts} +0 -1
  247. package/ui/file-upload-field/file-upload-field.component.d.ts +37 -0
  248. package/ui/file-upload-field/index.d.ts +5 -0
  249. package/ui/file-upload-field/public-api.d.ts +1 -0
  250. package/ui/heading/heading.component.d.ts +8 -0
  251. package/ui/heading/index.d.ts +5 -0
  252. package/ui/heading/public-api.d.ts +1 -0
  253. package/ui/image-upload-field/image-upload-field.component.d.ts +48 -0
  254. package/ui/image-upload-field/index.d.ts +5 -0
  255. package/{lib/material/image-upload-field/index.d.ts → ui/image-upload-field/public-api.d.ts} +0 -0
  256. package/ui/index.d.ts +5 -0
  257. package/ui/info/index.d.ts +5 -0
  258. package/ui/info/info.component.d.ts +7 -0
  259. package/ui/info/public-api.d.ts +1 -0
  260. package/ui/input-field/index.d.ts +5 -0
  261. package/ui/input-field/input-field.component.d.ts +22 -0
  262. package/ui/input-field/public-api.d.ts +1 -0
  263. package/ui/option/index.d.ts +5 -0
  264. package/{lib/material → ui}/option/option.component.d.ts +2 -2
  265. package/{lib/material/option/index.d.ts → ui/option/public-api.d.ts} +0 -0
  266. package/ui/public-api.d.ts +5 -0
  267. package/ui/radio-field/index.d.ts +5 -0
  268. package/ui/radio-field/public-api.d.ts +1 -0
  269. package/ui/radio-field/radio-field.component.d.ts +23 -0
  270. package/ui/select-field/index.d.ts +5 -0
  271. package/ui/select-field/public-api.d.ts +1 -0
  272. package/{lib/material → ui}/select-field/select-field.component.d.ts +12 -14
  273. package/ui/selected-file/index.d.ts +5 -0
  274. package/ui/selected-file/public-api.d.ts +1 -0
  275. package/ui/selected-file/selected-file.component.d.ts +10 -0
  276. package/ui/slider-field/index.d.ts +5 -0
  277. package/ui/slider-field/public-api.d.ts +1 -0
  278. package/ui/slider-field/slider-field.component.d.ts +25 -0
  279. package/ui/textarea-field/index.d.ts +5 -0
  280. package/ui/textarea-field/public-api.d.ts +1 -0
  281. package/ui/textarea-field/textarea-field.component.d.ts +21 -0
  282. package/ui/unit-conversion-field/index.d.ts +5 -0
  283. package/ui/unit-conversion-field/public-api.d.ts +1 -0
  284. package/{lib/material → ui}/unit-conversion-field/unit-conversion-field.component.d.ts +14 -17
  285. package/utils/README.md +3 -0
  286. package/{lib → utils}/abstracts/autocomplete-field.abstract.d.ts +4 -4
  287. package/{lib → utils}/abstracts/crispr-control.mixin.d.ts +0 -0
  288. package/{lib → utils}/abstracts/crispr-field.abstract.d.ts +1 -1
  289. package/{lib → utils}/abstracts/index.d.ts +0 -0
  290. package/utils/functions/buildFormGroupFromConfig.d.ts +9 -0
  291. package/utils/functions/callOptionsIfFunction.d.ts +3 -0
  292. package/utils/functions/createControlForType.d.ts +9 -0
  293. package/utils/functions/filterOptionsByLabel.d.ts +7 -0
  294. package/utils/functions/image-compression.helpers.d.ts +5 -0
  295. package/utils/functions/index.d.ts +7 -0
  296. package/utils/functions/isControlConfig.d.ts +5 -0
  297. package/utils/functions/observablifyOptions.d.ts +12 -0
  298. package/utils/index.d.ts +5 -0
  299. package/{lib → utils}/models/autocomplete-chiplist-field.config.d.ts +2 -1
  300. package/{lib → utils}/models/autocomplete-field.config.d.ts +1 -2
  301. package/{lib → utils}/models/button.config.d.ts +0 -0
  302. package/{lib → utils}/models/checkbox-field.config.d.ts +1 -2
  303. package/{lib → utils}/models/crispr-field.config.d.ts +5 -7
  304. package/{lib → utils}/models/datepicker-field.config.d.ts +4 -6
  305. package/{lib → utils}/models/divider.config.d.ts +1 -1
  306. package/{lib → utils}/models/file-upload-field.config.d.ts +9 -4
  307. package/{lib → utils}/models/form-group-list.config.d.ts +1 -2
  308. package/{lib → utils}/models/heading.config.d.ts +1 -2
  309. package/{lib → utils}/models/image-upload-field.config.d.ts +2 -1
  310. package/{lib → utils}/models/index.d.ts +0 -0
  311. package/{lib → utils}/models/input-field.config.d.ts +1 -2
  312. package/{lib → utils}/models/radio-field.config.d.ts +0 -0
  313. package/{lib → utils}/models/select-field.config.d.ts +1 -2
  314. package/{lib → utils}/models/slider-field.config.d.ts +1 -2
  315. package/{lib → utils}/models/textarea-field.config.d.ts +1 -2
  316. package/{lib → utils}/models/unit-conversion-field.config.d.ts +1 -2
  317. package/{lib → utils/operators}/form.operators.d.ts +0 -0
  318. package/utils/operators/index.d.ts +1 -0
  319. package/utils/public-api.d.ts +4 -0
  320. package/esm2020/index.mjs +0 -2
  321. package/esm2020/lib/abstracts/autocomplete-field.abstract.mjs +0 -30
  322. package/esm2020/lib/abstracts/crispr-control.mixin.mjs +0 -27
  323. package/esm2020/lib/abstracts/crispr-field.abstract.mjs +0 -17
  324. package/esm2020/lib/abstracts/index.mjs +0 -4
  325. package/esm2020/lib/crispr-forms.module.mjs +0 -66
  326. package/esm2020/lib/field-component-map.const.mjs +0 -28
  327. package/esm2020/lib/field-container/field-container.component.mjs +0 -85
  328. package/esm2020/lib/field-container/index.mjs +0 -2
  329. package/esm2020/lib/field.directive.mjs +0 -90
  330. package/esm2020/lib/form/form.component.mjs +0 -53
  331. package/esm2020/lib/form-group-list/form-group-list.component.mjs +0 -77
  332. package/esm2020/lib/form-group-list/form-group-list.module.mjs +0 -54
  333. package/esm2020/lib/form-group-list/index.mjs +0 -3
  334. package/esm2020/lib/form.helpers.mjs +0 -190
  335. package/esm2020/lib/form.operators.mjs +0 -24
  336. package/esm2020/lib/material/autocomplete-chiplist-field/autocomplete-chiplist-field.component.mjs +0 -111
  337. package/esm2020/lib/material/autocomplete-field/autocomplete-field.component.mjs +0 -78
  338. package/esm2020/lib/material/button/button.component.mjs +0 -35
  339. package/esm2020/lib/material/checkbox-field/checkbox-field.component.mjs +0 -31
  340. package/esm2020/lib/material/datepicker-field/datepicker-field.component.mjs +0 -45
  341. package/esm2020/lib/material/divider/divider.component.mjs +0 -22
  342. package/esm2020/lib/material/file-upload/file-dropzone.directive.mjs +0 -39
  343. package/esm2020/lib/material/file-upload/file-upload.component.mjs +0 -145
  344. package/esm2020/lib/material/file-upload/index.mjs +0 -3
  345. package/esm2020/lib/material/heading/heading.component.mjs +0 -54
  346. package/esm2020/lib/material/image-upload-field/image-compression.helpers.mjs +0 -4
  347. package/esm2020/lib/material/image-upload-field/image-upload-field.component.mjs +0 -265
  348. package/esm2020/lib/material/image-upload-field/index.mjs +0 -2
  349. package/esm2020/lib/material/index.mjs +0 -18
  350. package/esm2020/lib/material/info/info.component.mjs +0 -46
  351. package/esm2020/lib/material/input-field/input-field.component.mjs +0 -27
  352. package/esm2020/lib/material/material.module.mjs +0 -200
  353. package/esm2020/lib/material/option/index.mjs +0 -2
  354. package/esm2020/lib/material/option/option.component.mjs +0 -15
  355. package/esm2020/lib/material/radio-field/radio-field.component.mjs +0 -29
  356. package/esm2020/lib/material/select-field/select-field.component.mjs +0 -58
  357. package/esm2020/lib/material/selected-file/selected-file.component.mjs +0 -47
  358. package/esm2020/lib/material/slider-field/slider-field.component.mjs +0 -30
  359. package/esm2020/lib/material/textarea-field/textarea-field.component.mjs +0 -28
  360. package/esm2020/lib/material/unit-conversion-field/unit-conversion-field.component.mjs +0 -69
  361. package/esm2020/lib/models/autocomplete-chiplist-field.config.mjs +0 -2
  362. package/esm2020/lib/models/autocomplete-field.config.mjs +0 -2
  363. package/esm2020/lib/models/button.config.mjs +0 -2
  364. package/esm2020/lib/models/checkbox-field.config.mjs +0 -2
  365. package/esm2020/lib/models/crispr-field.config.mjs +0 -23
  366. package/esm2020/lib/models/datepicker-field.config.mjs +0 -2
  367. package/esm2020/lib/models/divider.config.mjs +0 -2
  368. package/esm2020/lib/models/file-upload-field.config.mjs +0 -2
  369. package/esm2020/lib/models/form-group-list.config.mjs +0 -2
  370. package/esm2020/lib/models/heading.config.mjs +0 -3
  371. package/esm2020/lib/models/image-upload-field.config.mjs +0 -2
  372. package/esm2020/lib/models/index.mjs +0 -18
  373. package/esm2020/lib/models/input-field.config.mjs +0 -2
  374. package/esm2020/lib/models/radio-field.config.mjs +0 -2
  375. package/esm2020/lib/models/select-field.config.mjs +0 -2
  376. package/esm2020/lib/models/slider-field.config.mjs +0 -2
  377. package/esm2020/lib/models/textarea-field.config.mjs +0 -2
  378. package/esm2020/lib/models/unit-conversion-field.config.mjs +0 -2
  379. package/esm2020/lib/pipes/crispr-pipes.module.mjs +0 -26
  380. package/esm2020/lib/pipes/initial-control-value.pipe.mjs +0 -20
  381. package/esm2020/lib/public_api.mjs +0 -10
  382. package/esm2020/lib/sub-group/index.mjs +0 -3
  383. package/esm2020/lib/sub-group/sub-group.component.mjs +0 -20
  384. package/esm2020/lib/sub-group/sub-group.module.mjs +0 -45
  385. package/lib/crispr-forms.module.d.ts +0 -16
  386. package/lib/field-component-map.const.d.ts +0 -28
  387. package/lib/form-group-list/form-group-list.module.d.ts +0 -15
  388. package/lib/form.helpers.d.ts +0 -88
  389. package/lib/material/checkbox-field/checkbox-field.component.d.ts +0 -23
  390. package/lib/material/file-upload/file-upload.component.d.ts +0 -54
  391. package/lib/material/heading/heading.component.d.ts +0 -17
  392. package/lib/material/image-upload-field/image-compression.helpers.d.ts +0 -1
  393. package/lib/material/image-upload-field/image-upload-field.component.d.ts +0 -68
  394. package/lib/material/index.d.ts +0 -17
  395. package/lib/material/info/info.component.d.ts +0 -15
  396. package/lib/material/input-field/input-field.component.d.ts +0 -24
  397. package/lib/material/material.module.d.ts +0 -44
  398. package/lib/material/radio-field/radio-field.component.d.ts +0 -26
  399. package/lib/material/selected-file/selected-file.component.d.ts +0 -17
  400. package/lib/material/slider-field/slider-field.component.d.ts +0 -27
  401. package/lib/material/textarea-field/textarea-field.component.d.ts +0 -24
  402. package/lib/public_api.d.ts +0 -9
  403. package/lib/sub-group/sub-group.component.d.ts +0 -24
  404. package/tft-crispr-forms-13.0.23.tgz +0 -0
  405. package/tft-crispr-forms.d.ts +0 -5
@@ -0,0 +1,26 @@
1
+ import * as i1 from '@angular/common';
2
+ import { CommonModule } from '@angular/common';
3
+ import * as i0 from '@angular/core';
4
+ import { Component, ChangeDetectionStrategy, Input } from '@angular/core';
5
+ import { InfoComponent } from '@tft/crispr-forms/ui/info';
6
+
7
+ class OptionComponent {
8
+ }
9
+ OptionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: OptionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
10
+ OptionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.1", type: OptionComponent, isStandalone: true, selector: "crispr-option", inputs: { option: "option" }, ngImport: i0, template: "<div>\n <img\n *ngIf=\"option.imageUrl\"\n [src]=\"option.imageUrl\"\n alt=\"image of {{option.label}}\"\n style=\"vertical-align:middle;\"\n aria-hidden\n height=\"25\"/>\n {{option.label}}\n</div>\n\n<crispr-info *ngIf=\"option.info as info\" [info]=\"info\">\n\n</crispr-info>\n", styles: [":host{display:flex;justify-content:space-between}:host img{margin-right:4px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: InfoComponent, selector: "crispr-info", inputs: ["info"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, preserveWhitespaces: true });
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: OptionComponent, decorators: [{
12
+ type: Component,
13
+ args: [{ selector: 'crispr-option', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
14
+ CommonModule,
15
+ InfoComponent,
16
+ ], template: "<div>\n <img\n *ngIf=\"option.imageUrl\"\n [src]=\"option.imageUrl\"\n alt=\"image of {{option.label}}\"\n style=\"vertical-align:middle;\"\n aria-hidden\n height=\"25\"/>\n {{option.label}}\n</div>\n\n<crispr-info *ngIf=\"option.info as info\" [info]=\"info\">\n\n</crispr-info>\n", styles: [":host{display:flex;justify-content:space-between}:host img{margin-right:4px}\n"] }]
17
+ }], propDecorators: { option: [{
18
+ type: Input
19
+ }] } });
20
+
21
+ /**
22
+ * Generated bundle index. Do not edit.
23
+ */
24
+
25
+ export { OptionComponent };
26
+ //# sourceMappingURL=tft-crispr-forms-ui-option.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tft-crispr-forms-ui-option.mjs","sources":["../../../../libs/crispr-forms/ui/option/option.component.ts","../../../../libs/crispr-forms/ui/option/option.component.html","../../../../libs/crispr-forms/ui/option/tft-crispr-forms-ui-option.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport { Component, Input, ChangeDetectionStrategy } from '@angular/core';\nimport { InfoComponent } from '@tft/crispr-forms/ui/info';\n// eslint-disable-next-line @nrwl/nx/enforce-module-boundaries\nimport { SelectOption } from '@tft/crispr-forms/utils';\n\n@Component({\n selector: 'crispr-option',\n templateUrl: './option.component.html',\n styleUrls: ['./option.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [\n CommonModule,\n InfoComponent,\n ],\n})\nexport class OptionComponent {\n\n @Input() option: SelectOption\n\n}\n","<div>\n <img\n *ngIf=\"option.imageUrl\"\n [src]=\"option.imageUrl\"\n alt=\"image of {{option.label}}\"\n style=\"vertical-align:middle;\"\n aria-hidden\n height=\"25\"/>\n {{option.label}}\n</div>\n\n<crispr-info *ngIf=\"option.info as info\" [info]=\"info\">\n\n</crispr-info>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;MAiBa,eAAe,CAAA;;4GAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAf,eAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAe,ECjB5B,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,+SAcA,EDDI,MAAA,EAAA,CAAA,gFAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,mIACZ,aAAa,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,mBAAA,EAAA,IAAA,EAAA,CAAA,CAAA;2FAGJ,eAAe,EAAA,UAAA,EAAA,CAAA;kBAX3B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,eAAe,mBAGR,uBAAuB,CAAC,MAAM,EAAA,UAAA,EACnC,IAAI,EACP,OAAA,EAAA;wBACP,YAAY;wBACZ,aAAa;qBACd,EAAA,QAAA,EAAA,+SAAA,EAAA,MAAA,EAAA,CAAA,gFAAA,CAAA,EAAA,CAAA;8BAIQ,MAAM,EAAA,CAAA;sBAAd,KAAK;;;AEnBR;;AAEG;;;;"}
@@ -0,0 +1,46 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Component, ChangeDetectionStrategy } from '@angular/core';
3
+ import * as i3 from '@angular/material/radio';
4
+ import { MatRadioModule } from '@angular/material/radio';
5
+ import * as i2 from '@angular/forms';
6
+ import { ReactiveFormsModule } from '@angular/forms';
7
+ import * as i1 from '@angular/common';
8
+ import { CommonModule } from '@angular/common';
9
+ import * as i4 from '@tft/form-validation-handler';
10
+ import { FormValidationHandlerModule } from '@tft/form-validation-handler';
11
+ import { FieldContainerComponent } from '@tft/crispr-forms/ui/field-container';
12
+ import { crisprControlMixin, CrisprFieldComponent, observablifyOptions } from '@tft/crispr-forms/utils';
13
+
14
+ /* eslint-disable @nrwl/nx/enforce-module-boundaries */
15
+ const RadioFieldMixin = crisprControlMixin(CrisprFieldComponent);
16
+ class RadioFieldComponent extends RadioFieldMixin {
17
+ constructor() {
18
+ super(...arguments);
19
+ this.defaultConfig = {};
20
+ }
21
+ ngOnInit() {
22
+ super.ngOnInit();
23
+ // options$ can be passed as an array, promise that resolves array, or observable that resolves array
24
+ // this functions accounts for all possibilities and converts to observable that resolves array
25
+ this.options$ = observablifyOptions(this.config.options, this.group);
26
+ }
27
+ }
28
+ RadioFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: RadioFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
29
+ RadioFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.1", type: RadioFieldComponent, isStandalone: true, selector: "crispr-radio-field", usesInheritance: true, ngImport: i0, template: "<crispr-field-container\n [config]=\"config\"\n [group]=\"group\">\n\n <mat-radio-group\n [formControl]=\"control\"\n [color]=\"config.color\">\n <mat-radio-button class=\"example-radio-button\" *ngFor=\"let option of options$ | async\" [value]=\"option.value\">\n {{option.label}}\n </mat-radio-button>\n </mat-radio-group>\n</crispr-field-container>\n", styles: ["mat-radio-button{padding:12px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: FieldContainerComponent, selector: "crispr-field-container", inputs: ["config", "group", "inlineField"] }, { kind: "ngmodule", type: MatRadioModule }, { kind: "directive", type: i3.MatRadioGroup, selector: "mat-radio-group", exportAs: ["matRadioGroup"] }, { kind: "component", type: i3.MatRadioButton, selector: "mat-radio-button", inputs: ["disableRipple", "tabIndex"], exportAs: ["matRadioButton"] }, { kind: "ngmodule", type: FormValidationHandlerModule }, { kind: "directive", type: i4.ControlErrorsDirective, selector: "[formControl], [formControlName]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, preserveWhitespaces: true });
30
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: RadioFieldComponent, decorators: [{
31
+ type: Component,
32
+ args: [{ selector: 'crispr-radio-field', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
33
+ CommonModule,
34
+ ReactiveFormsModule,
35
+ FieldContainerComponent,
36
+ MatRadioModule,
37
+ FormValidationHandlerModule,
38
+ ], template: "<crispr-field-container\n [config]=\"config\"\n [group]=\"group\">\n\n <mat-radio-group\n [formControl]=\"control\"\n [color]=\"config.color\">\n <mat-radio-button class=\"example-radio-button\" *ngFor=\"let option of options$ | async\" [value]=\"option.value\">\n {{option.label}}\n </mat-radio-button>\n </mat-radio-group>\n</crispr-field-container>\n", styles: ["mat-radio-button{padding:12px}\n"] }]
39
+ }] });
40
+
41
+ /**
42
+ * Generated bundle index. Do not edit.
43
+ */
44
+
45
+ export { RadioFieldComponent };
46
+ //# sourceMappingURL=tft-crispr-forms-ui-radio-field.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tft-crispr-forms-ui-radio-field.mjs","sources":["../../../../libs/crispr-forms/ui/radio-field/radio-field.component.ts","../../../../libs/crispr-forms/ui/radio-field/radio-field.component.html","../../../../libs/crispr-forms/ui/radio-field/tft-crispr-forms-ui-radio-field.ts"],"sourcesContent":["/* eslint-disable @nrwl/nx/enforce-module-boundaries */\nimport { Component, OnInit, ChangeDetectionStrategy } from '@angular/core';\n import { Observable } from 'rxjs';\n\n\n import { MatRadioModule } from '@angular/material/radio';\n import { ReactiveFormsModule } from '@angular/forms';\n import { CommonModule } from '@angular/common';\n import { FormValidationHandlerModule } from '@tft/form-validation-handler';\n import { FieldContainerComponent } from '@tft/crispr-forms/ui/field-container';\n import { CrisprFieldComponent, crisprControlMixin, RadioFieldConfig, SelectOption, observablifyOptions } from '@tft/crispr-forms/utils';\n\nconst RadioFieldMixin = crisprControlMixin<RadioFieldConfig>(CrisprFieldComponent);\n\n@Component({\n selector: 'crispr-radio-field',\n templateUrl: './radio-field.component.html',\n styleUrls: ['./radio-field.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [\n CommonModule,\n ReactiveFormsModule,\n FieldContainerComponent,\n MatRadioModule,\n FormValidationHandlerModule,\n ],\n})\nexport class RadioFieldComponent extends RadioFieldMixin implements OnInit {\n defaultConfig = {};\n options$: Observable<SelectOption[]>;\n ngOnInit() {\n super.ngOnInit();\n // options$ can be passed as an array, promise that resolves array, or observable that resolves array\n // this functions accounts for all possibilities and converts to observable that resolves array\n this.options$ = observablifyOptions(this.config.options, this.group);\n }\n}\n","<crispr-field-container\n [config]=\"config\"\n [group]=\"group\">\n\n <mat-radio-group\n [formControl]=\"control\"\n [color]=\"config.color\">\n <mat-radio-button class=\"example-radio-button\" *ngFor=\"let option of options$ | async\" [value]=\"option.value\">\n {{option.label}}\n </mat-radio-button>\n </mat-radio-group>\n</crispr-field-container>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,81 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Component, ChangeDetectionStrategy, ViewChild } from '@angular/core';
3
+ import * as i4 from '@angular/material/select';
4
+ import { MatSelectModule } from '@angular/material/select';
5
+ import * as i1 from '@angular/common';
6
+ import { CommonModule } from '@angular/common';
7
+ import * as i2 from '@angular/material/checkbox';
8
+ import { MatCheckboxModule } from '@angular/material/checkbox';
9
+ import * as i6 from '@angular/forms';
10
+ import { ReactiveFormsModule } from '@angular/forms';
11
+ import * as i3 from '@angular/material/form-field';
12
+ import { MatFormFieldModule } from '@angular/material/form-field';
13
+ import { OptionComponent } from '@tft/crispr-forms/ui/option';
14
+ import * as i7 from '@tft/form-validation-handler';
15
+ import { FormValidationHandlerModule } from '@tft/form-validation-handler';
16
+ import { InfoComponent } from '@tft/crispr-forms/ui/info';
17
+ import { FieldContainerComponent } from '@tft/crispr-forms/ui/field-container';
18
+ import { crisprControlMixin, CrisprFieldComponent, observablifyOptions } from '@tft/crispr-forms/utils';
19
+ import * as i5 from '@angular/material/core';
20
+
21
+ /* eslint-disable @nrwl/nx/enforce-module-boundaries */
22
+ const SelectFieldMixin = crisprControlMixin(CrisprFieldComponent);
23
+ class SelectFieldComponent extends SelectFieldMixin {
24
+ constructor() {
25
+ super(...arguments);
26
+ this.defaultConfig = {
27
+ enableToggleAll: false,
28
+ color: 'primary'
29
+ };
30
+ this.allSelected = false;
31
+ }
32
+ ngOnInit() {
33
+ super.ngOnInit();
34
+ // options$ can be passed as an array, promise that resolves array, or observable that resolves array
35
+ // this functions accounts for all possibilities and converts to observable that resolves array
36
+ this.options$ = observablifyOptions(this.config.options, this.group);
37
+ }
38
+ ngAfterViewInit() {
39
+ var _a, _b;
40
+ if (this.config.multiple
41
+ && this.config.enableToggleAll
42
+ && ((_a = this.selectField.options) === null || _a === void 0 ? void 0 : _a.length) === ((_b = this.value) === null || _b === void 0 ? void 0 : _b.length)) {
43
+ this.allSelected = true;
44
+ }
45
+ }
46
+ toggleAll(isSelected) {
47
+ if (isSelected) {
48
+ this.selectField.options.forEach(option => option.deselect());
49
+ }
50
+ else {
51
+ this.selectField.options.forEach(option => option.select());
52
+ }
53
+ this.allSelected = !this.allSelected;
54
+ }
55
+ }
56
+ SelectFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: SelectFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
57
+ SelectFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.1", type: SelectFieldComponent, isStandalone: true, selector: "crispr-select-field", viewQueries: [{ propertyName: "selectField", first: true, predicate: ["selectField"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<crispr-field-container\n [config]=\"config\"\n [group]=\"group\">\n\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 <mat-select\n #selectField\n [formControlName]=\"config.controlName\"\n [placeholder]=\"config.placeholder\"\n [multiple]=\"config.multiple\">\n\n <mat-checkbox\n [color]=\"config.color\"\n [checked]=\"allSelected\"\n *ngIf=\"config?.multiple && config.enableToggleAll\"\n (click)=\"toggleAll(allSelected)\">\n Select All\n </mat-checkbox>\n <mat-option\n *ngFor=\"let option of options$ | async\"\n [value]=\"option.value\">\n <crispr-option [option]=\"option\">\n </crispr-option>\n </mat-option>\n\n </mat-select>\n\n <span *ngIf=\"config.fieldSuffix\" matSuffix>{{config.fieldSuffix}}</span>\n <crispr-info\n *ngIf=\"config.info\"\n matSuffix\n [info]=\"config.info\">\n </crispr-info>\n\n <mat-hint *ngIf=\"config.hint && (control.valid || !control.touched)\">{{config.hint}}</mat-hint>\n\n </mat-form-field>\n\n</crispr-field-container>\n", styles: ["mat-checkbox{display:block;padding:16px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "component", type: InfoComponent, selector: "crispr-info", inputs: ["info"] }, { kind: "component", type: OptionComponent, selector: "crispr-option", inputs: ["option"] }, { kind: "ngmodule", type: MatCheckboxModule }, { kind: "component", type: i2.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3.MatSuffix, selector: "[matSuffix]" }, { kind: "component", type: i4.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i5.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i6.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i6.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: FormValidationHandlerModule }, { kind: "directive", type: i7.ControlErrorsDirective, selector: "[formControl], [formControlName]" }, { kind: "directive", type: i7.ControlErrorContainerDirective, selector: "[controlErrorContainer], [formGroup]" }, { kind: "component", type: FieldContainerComponent, selector: "crispr-field-container", inputs: ["config", "group", "inlineField"] }, { kind: "ngmodule", type: MatFormFieldModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush, preserveWhitespaces: true });
58
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: SelectFieldComponent, decorators: [{
59
+ type: Component,
60
+ args: [{ selector: 'crispr-select-field', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
61
+ CommonModule,
62
+ InfoComponent,
63
+ OptionComponent,
64
+ MatCheckboxModule,
65
+ MatSelectModule,
66
+ ReactiveFormsModule,
67
+ FormValidationHandlerModule,
68
+ FieldContainerComponent,
69
+ MatFormFieldModule,
70
+ ], template: "<crispr-field-container\n [config]=\"config\"\n [group]=\"group\">\n\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 <mat-select\n #selectField\n [formControlName]=\"config.controlName\"\n [placeholder]=\"config.placeholder\"\n [multiple]=\"config.multiple\">\n\n <mat-checkbox\n [color]=\"config.color\"\n [checked]=\"allSelected\"\n *ngIf=\"config?.multiple && config.enableToggleAll\"\n (click)=\"toggleAll(allSelected)\">\n Select All\n </mat-checkbox>\n <mat-option\n *ngFor=\"let option of options$ | async\"\n [value]=\"option.value\">\n <crispr-option [option]=\"option\">\n </crispr-option>\n </mat-option>\n\n </mat-select>\n\n <span *ngIf=\"config.fieldSuffix\" matSuffix>{{config.fieldSuffix}}</span>\n <crispr-info\n *ngIf=\"config.info\"\n matSuffix\n [info]=\"config.info\">\n </crispr-info>\n\n <mat-hint *ngIf=\"config.hint && (control.valid || !control.touched)\">{{config.hint}}</mat-hint>\n\n </mat-form-field>\n\n</crispr-field-container>\n", styles: ["mat-checkbox{display:block;padding:16px}\n"] }]
71
+ }], propDecorators: { selectField: [{
72
+ type: ViewChild,
73
+ args: ['selectField']
74
+ }] } });
75
+
76
+ /**
77
+ * Generated bundle index. Do not edit.
78
+ */
79
+
80
+ export { SelectFieldComponent };
81
+ //# sourceMappingURL=tft-crispr-forms-ui-select-field.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tft-crispr-forms-ui-select-field.mjs","sources":["../../../../libs/crispr-forms/ui/select-field/select-field.component.ts","../../../../libs/crispr-forms/ui/select-field/select-field.component.html","../../../../libs/crispr-forms/ui/select-field/tft-crispr-forms-ui-select-field.ts"],"sourcesContent":["/* eslint-disable @nrwl/nx/enforce-module-boundaries */\nimport { Component, OnInit, ChangeDetectionStrategy, ViewChild, AfterViewInit } from '@angular/core';\n import { Observable } from 'rxjs';\n\nimport { MatSelect, MatSelectModule } from '@angular/material/select';\nimport { ThemePalette } from '@angular/material/core';\nimport { CommonModule } from '@angular/common';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { OptionComponent } from '@tft/crispr-forms/ui/option';\nimport { FormValidationHandlerModule } from '@tft/form-validation-handler';\nimport { InfoComponent } from '@tft/crispr-forms/ui/info';\nimport { FieldContainerComponent } from '@tft/crispr-forms/ui/field-container';\nimport { observablifyOptions, CrisprFieldComponent, crisprControlMixin, SelectFieldConfig, SelectOption } from '@tft/crispr-forms/utils';\n\nconst SelectFieldMixin = crisprControlMixin<SelectFieldConfig>(CrisprFieldComponent);\n\n@Component({\n selector: 'crispr-select-field',\n templateUrl: './select-field.component.html',\n styleUrls: ['./select-field.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [\n CommonModule,\n InfoComponent,\n OptionComponent,\n MatCheckboxModule,\n MatSelectModule,\n ReactiveFormsModule,\n FormValidationHandlerModule,\n FieldContainerComponent,\n MatFormFieldModule,\n ]\n})\nexport class SelectFieldComponent extends SelectFieldMixin implements OnInit, AfterViewInit {\n defaultConfig = {\n enableToggleAll: false,\n color: 'primary' as ThemePalette\n };\n options$: Observable<SelectOption[]>;\n allSelected = false;\n\n @ViewChild('selectField') selectField: MatSelect;\n\n ngOnInit() {\n super.ngOnInit();\n // options$ can be passed as an array, promise that resolves array, or observable that resolves array\n // this functions accounts for all possibilities and converts to observable that resolves array\n this.options$ = observablifyOptions(this.config.options, this.group);\n }\n\n ngAfterViewInit() {\n if (\n this.config.multiple\n && this.config.enableToggleAll\n && this.selectField.options?.length === (this.value as any[])?.length\n ) {\n this.allSelected = true;\n }\n }\n\n toggleAll(isSelected: boolean) {\n if ( isSelected ) {\n this.selectField.options.forEach(option => option.deselect());\n } else {\n this.selectField.options.forEach(option => option.select());\n }\n this.allSelected = !this.allSelected;\n }\n}\n","<crispr-field-container\n [config]=\"config\"\n [group]=\"group\">\n\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 <mat-select\n #selectField\n [formControlName]=\"config.controlName\"\n [placeholder]=\"config.placeholder\"\n [multiple]=\"config.multiple\">\n\n <mat-checkbox\n [color]=\"config.color\"\n [checked]=\"allSelected\"\n *ngIf=\"config?.multiple && config.enableToggleAll\"\n (click)=\"toggleAll(allSelected)\">\n Select All\n </mat-checkbox>\n <mat-option\n *ngFor=\"let option of options$ | async\"\n [value]=\"option.value\">\n <crispr-option [option]=\"option\">\n </crispr-option>\n </mat-option>\n\n </mat-select>\n\n <span *ngIf=\"config.fieldSuffix\" matSuffix>{{config.fieldSuffix}}</span>\n <crispr-info\n *ngIf=\"config.info\"\n matSuffix\n [info]=\"config.info\">\n </crispr-info>\n\n <mat-hint *ngIf=\"config.hint && (control.valid || !control.touched)\">{{config.hint}}</mat-hint>\n\n </mat-form-field>\n\n</crispr-field-container>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import * as i1 from '@angular/common';
2
+ import { CommonModule } from '@angular/common';
3
+ import * as i0 from '@angular/core';
4
+ import { Component, Input } from '@angular/core';
5
+ import * as i2 from '@angular/material/progress-bar';
6
+ import { MatProgressBarModule } from '@angular/material/progress-bar';
7
+
8
+ class SelectedFileComponent {
9
+ }
10
+ SelectedFileComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: SelectedFileComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
11
+ SelectedFileComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.1", type: SelectedFileComponent, isStandalone: true, selector: "crispr-selected-file", inputs: { fileName: "fileName", progress: "progress", showProgress: "showProgress", color: "color" }, ngImport: i0, template: "<h3 class=\"mat-h3\">{{ fileName }}</h3>\n<mat-progress-bar\n *ngIf=\"showProgress\"\n mode=\"determinate\"\n [color]=\"color\"\n [value]=\"progress\">\n</mat-progress-bar>\n", styles: ["mat-progress-bar{margin-bottom:8px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatProgressBarModule }, { kind: "component", type: i2.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }], preserveWhitespaces: true });
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: SelectedFileComponent, decorators: [{
13
+ type: Component,
14
+ args: [{ selector: 'crispr-selected-file', standalone: true, imports: [
15
+ CommonModule,
16
+ MatProgressBarModule
17
+ ], template: "<h3 class=\"mat-h3\">{{ fileName }}</h3>\n<mat-progress-bar\n *ngIf=\"showProgress\"\n mode=\"determinate\"\n [color]=\"color\"\n [value]=\"progress\">\n</mat-progress-bar>\n", styles: ["mat-progress-bar{margin-bottom:8px}\n"] }]
18
+ }], propDecorators: { fileName: [{
19
+ type: Input
20
+ }], progress: [{
21
+ type: Input
22
+ }], showProgress: [{
23
+ type: Input
24
+ }], color: [{
25
+ type: Input
26
+ }] } });
27
+
28
+ /**
29
+ * Generated bundle index. Do not edit.
30
+ */
31
+
32
+ export { SelectedFileComponent };
33
+ //# sourceMappingURL=tft-crispr-forms-ui-selected-file.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tft-crispr-forms-ui-selected-file.mjs","sources":["../../../../libs/crispr-forms/ui/selected-file/selected-file.component.ts","../../../../libs/crispr-forms/ui/selected-file/selected-file.component.html","../../../../libs/crispr-forms/ui/selected-file/tft-crispr-forms-ui-selected-file.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport { Component, Input } from '@angular/core';\nimport { ThemePalette } from '@angular/material/core';\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\n\n@Component({\n selector: 'crispr-selected-file',\n templateUrl: './selected-file.component.html',\n styleUrls: ['./selected-file.component.scss'],\n standalone: true,\n imports: [\n CommonModule,\n MatProgressBarModule\n ],\n})\nexport class SelectedFileComponent {\n\n @Input() fileName: string;\n @Input() progress: number;\n @Input() showProgress: boolean;\n @Input() color: ThemePalette;\n\n}\n","<h3 class=\"mat-h3\">{{ fileName }}</h3>\n<mat-progress-bar\n *ngIf=\"showProgress\"\n mode=\"determinate\"\n [color]=\"color\"\n [value]=\"progress\">\n</mat-progress-bar>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;MAea,qBAAqB,CAAA;;kHAArB,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArB,qBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,ECflC,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,YAAA,EAAA,cAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,oLAOA,EDII,MAAA,EAAA,CAAA,uCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,kIACZ,oBAAoB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,OAAA,EAAA,aAAA,EAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,CAAA,EAAA,mBAAA,EAAA,IAAA,EAAA,CAAA,CAAA;2FAGX,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAVjC,SAAS;+BACE,sBAAsB,EAAA,UAAA,EAGpB,IAAI,EACP,OAAA,EAAA;wBACP,YAAY;wBACZ,oBAAoB;qBACrB,EAAA,QAAA,EAAA,oLAAA,EAAA,MAAA,EAAA,CAAA,uCAAA,CAAA,EAAA,CAAA;8BAIQ,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;;;AEpBR;;AAEG;;;;"}
@@ -0,0 +1,51 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Component, ChangeDetectionStrategy } from '@angular/core';
3
+ import * as i3 from '@angular/material/slider';
4
+ import { MatSliderModule } from '@angular/material/slider';
5
+ import * as i1 from '@angular/common';
6
+ import { CommonModule } from '@angular/common';
7
+ import * as i2 from '@angular/forms';
8
+ import { ReactiveFormsModule } from '@angular/forms';
9
+ import { OptionComponent } from '@tft/crispr-forms/ui/option';
10
+ import * as i4 from '@tft/form-validation-handler';
11
+ import { FormValidationHandlerModule } from '@tft/form-validation-handler';
12
+ import { FieldContainerComponent } from '@tft/crispr-forms/ui/field-container';
13
+ import { InfoComponent } from '@tft/crispr-forms/ui/info';
14
+ import { crisprControlMixin, CrisprFieldComponent } from '@tft/crispr-forms/utils';
15
+
16
+ /* eslint-disable @nrwl/nx/enforce-module-boundaries */
17
+ const defaultConfig = { displayLimits: true };
18
+ const SliderFieldMixin = crisprControlMixin(CrisprFieldComponent);
19
+ class SliderFieldComponent extends SliderFieldMixin {
20
+ constructor() {
21
+ super();
22
+ this.defaultConfig = defaultConfig;
23
+ }
24
+ get flexDirection() {
25
+ return this.config.vertical ? 'column' : 'row';
26
+ }
27
+ ngOnInit() {
28
+ super.ngOnInit();
29
+ }
30
+ }
31
+ SliderFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: SliderFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
32
+ SliderFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.1", type: SliderFieldComponent, isStandalone: true, selector: "crispr-slider-field", usesInheritance: true, ngImport: i0, template: "<crispr-field-container\n [config]=\"config\"\n [group]=\"group\">\n <div\n [formGroup]=\"group\">\n <label *ngIf=\"config.label\">\n {{config.label}}\n <crispr-info\n *ngIf=\"config.info\"\n [info]=\"config.info\">\n </crispr-info>\n </label>\n <div class=\"slider-container\"\n [ngStyle]=\"{'flex-direction': flexDirection}\">\n <span *ngIf=\"config.displayLimits\">\n {{config.min}}\n </span>\n <mat-slider\n class=\"example-margin\"\n [formControlName]=\"config.controlName\"\n [invert]=\"config.invert\"\n [max]=\"config.max\"\n [min]=\"config.min\"\n [step]=\"config.step\"\n [thumbLabel]=\"config.thumbLabel\"\n [tickInterval]=\"config.tickInterval\"\n [vertical]=\"config.vertical\">\n </mat-slider>\n <span *ngIf=\"config.displayLimits\">\n {{config.max}}\n </span>\n </div>\n\n </div>\n</crispr-field-container>\n\n", styles: [".slider-container{display:flex;align-items:center}.slider-container .mat-slider-horizontal{width:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: InfoComponent, selector: "crispr-info", inputs: ["info"] }, { kind: "component", type: FieldContainerComponent, selector: "crispr-field-container", inputs: ["config", "group", "inlineField"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: MatSliderModule }, { kind: "component", type: i3.MatSlider, selector: "mat-slider", inputs: ["disabled", "color", "tabIndex", "invert", "max", "min", "step", "thumbLabel", "tickInterval", "value", "displayWith", "valueText", "vertical"], outputs: ["change", "input", "valueChange"], exportAs: ["matSlider"] }, { kind: "ngmodule", type: FormValidationHandlerModule }, { kind: "directive", type: i4.ControlErrorsDirective, selector: "[formControl], [formControlName]" }, { kind: "directive", type: i4.ControlErrorContainerDirective, selector: "[controlErrorContainer], [formGroup]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, preserveWhitespaces: true });
33
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: SliderFieldComponent, decorators: [{
34
+ type: Component,
35
+ args: [{ selector: 'crispr-slider-field', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
36
+ CommonModule,
37
+ InfoComponent,
38
+ OptionComponent,
39
+ FieldContainerComponent,
40
+ ReactiveFormsModule,
41
+ MatSliderModule,
42
+ FormValidationHandlerModule,
43
+ ], template: "<crispr-field-container\n [config]=\"config\"\n [group]=\"group\">\n <div\n [formGroup]=\"group\">\n <label *ngIf=\"config.label\">\n {{config.label}}\n <crispr-info\n *ngIf=\"config.info\"\n [info]=\"config.info\">\n </crispr-info>\n </label>\n <div class=\"slider-container\"\n [ngStyle]=\"{'flex-direction': flexDirection}\">\n <span *ngIf=\"config.displayLimits\">\n {{config.min}}\n </span>\n <mat-slider\n class=\"example-margin\"\n [formControlName]=\"config.controlName\"\n [invert]=\"config.invert\"\n [max]=\"config.max\"\n [min]=\"config.min\"\n [step]=\"config.step\"\n [thumbLabel]=\"config.thumbLabel\"\n [tickInterval]=\"config.tickInterval\"\n [vertical]=\"config.vertical\">\n </mat-slider>\n <span *ngIf=\"config.displayLimits\">\n {{config.max}}\n </span>\n </div>\n\n </div>\n</crispr-field-container>\n\n", styles: [".slider-container{display:flex;align-items:center}.slider-container .mat-slider-horizontal{width:100%}\n"] }]
44
+ }], ctorParameters: function () { return []; } });
45
+
46
+ /**
47
+ * Generated bundle index. Do not edit.
48
+ */
49
+
50
+ export { SliderFieldComponent };
51
+ //# sourceMappingURL=tft-crispr-forms-ui-slider-field.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tft-crispr-forms-ui-slider-field.mjs","sources":["../../../../libs/crispr-forms/ui/slider-field/slider-field.component.ts","../../../../libs/crispr-forms/ui/slider-field/slider-field.component.html","../../../../libs/crispr-forms/ui/slider-field/tft-crispr-forms-ui-slider-field.ts"],"sourcesContent":["/* eslint-disable @nrwl/nx/enforce-module-boundaries */\nimport { Component, OnInit, ChangeDetectionStrategy } from '@angular/core';\nimport { MatSliderModule } from '@angular/material/slider';\nimport { CommonModule } from '@angular/common';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { OptionComponent } from '@tft/crispr-forms/ui/option';\nimport { FormValidationHandlerModule } from '@tft/form-validation-handler';\nimport { FieldContainerComponent } from '@tft/crispr-forms/ui/field-container';\nimport { InfoComponent } from '@tft/crispr-forms/ui/info';\nimport { SliderFieldConfig, CrisprFieldComponent, crisprControlMixin } from '@tft/crispr-forms/utils';\n\nconst defaultConfig = {displayLimits: true};\nconst SliderFieldMixin = crisprControlMixin<SliderFieldConfig>(CrisprFieldComponent);\n\n@Component({\n selector: 'crispr-slider-field',\n templateUrl: './slider-field.component.html',\n styleUrls: ['./slider-field.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [\n CommonModule,\n InfoComponent,\n OptionComponent,\n FieldContainerComponent,\n ReactiveFormsModule,\n MatSliderModule,\n FormValidationHandlerModule,\n ],\n})\nexport class SliderFieldComponent extends SliderFieldMixin implements OnInit {\n\n defaultConfig = defaultConfig;\n constructor() {\n super();\n }\n\n get flexDirection() {\n return this.config.vertical ? 'column' : 'row';\n }\n\n ngOnInit() {\n super.ngOnInit();\n }\n\n}\n","<crispr-field-container\n [config]=\"config\"\n [group]=\"group\">\n <div\n [formGroup]=\"group\">\n <label *ngIf=\"config.label\">\n {{config.label}}\n <crispr-info\n *ngIf=\"config.info\"\n [info]=\"config.info\">\n </crispr-info>\n </label>\n <div class=\"slider-container\"\n [ngStyle]=\"{'flex-direction': flexDirection}\">\n <span *ngIf=\"config.displayLimits\">\n {{config.min}}\n </span>\n <mat-slider\n class=\"example-margin\"\n [formControlName]=\"config.controlName\"\n [invert]=\"config.invert\"\n [max]=\"config.max\"\n [min]=\"config.min\"\n [step]=\"config.step\"\n [thumbLabel]=\"config.thumbLabel\"\n [tickInterval]=\"config.tickInterval\"\n [vertical]=\"config.vertical\">\n </mat-slider>\n <span *ngIf=\"config.displayLimits\">\n {{config.max}}\n </span>\n </div>\n\n </div>\n</crispr-field-container>\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Component, ChangeDetectionStrategy } from '@angular/core';
3
+ import * as i2 from '@angular/forms';
4
+ import { ReactiveFormsModule } from '@angular/forms';
5
+ import * as i1 from '@angular/common';
6
+ import { CommonModule } from '@angular/common';
7
+ import * as i3 from '@angular/material/form-field';
8
+ import { MatFormFieldModule } from '@angular/material/form-field';
9
+ import * as i4 from '@angular/material/input';
10
+ import { MatInputModule } from '@angular/material/input';
11
+ import * as i5 from '@tft/form-validation-handler';
12
+ import { FormValidationHandlerModule } from '@tft/form-validation-handler';
13
+ import { FieldContainerComponent } from '@tft/crispr-forms/ui/field-container';
14
+ import { InfoComponent } from '@tft/crispr-forms/ui/info';
15
+ import { crisprControlMixin, CrisprFieldComponent } from '@tft/crispr-forms/utils';
16
+
17
+ /* eslint-disable @nrwl/nx/enforce-module-boundaries */
18
+ const defaultConfig = { rows: 5 };
19
+ const TextareaFieldMixin = crisprControlMixin(CrisprFieldComponent);
20
+ class TextareaFieldComponent extends TextareaFieldMixin {
21
+ constructor() {
22
+ super(...arguments);
23
+ this.defaultConfig = defaultConfig;
24
+ }
25
+ ngOnInit() {
26
+ super.ngOnInit();
27
+ }
28
+ }
29
+ TextareaFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: TextareaFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
30
+ TextareaFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.1", type: TextareaFieldComponent, isStandalone: true, selector: "crispr-textarea-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 <textarea\n [rows]=\"config.rows\"\n matInput\n [placeholder]=\"config.placeholder\"\n [formControlName]=\"config.controlName\">\n </textarea>\n <span *ngIf=\"config.fieldSuffix\" matSuffix>{{config.fieldSuffix}}</span>\n <crispr-info\n *ngIf=\"config.info\"\n matSuffix\n [info]=\"config.info\">\n </crispr-info>\n\n <mat-hint *ngIf=\"config.hint && control.valid\">{{config.hint}}</mat-hint>\n\n </mat-form-field>\n\n</crispr-field-container>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: InfoComponent, selector: "crispr-info", inputs: ["info"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: FieldContainerComponent, selector: "crispr-field-container", inputs: ["config", "group", "inlineField"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3.MatSuffix, selector: "[matSuffix]" }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i4.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: FormValidationHandlerModule }, { kind: "directive", type: i5.ControlErrorsDirective, selector: "[formControl], [formControlName]" }, { kind: "directive", type: i5.ControlErrorContainerDirective, selector: "[controlErrorContainer], [formGroup]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, preserveWhitespaces: true });
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: TextareaFieldComponent, decorators: [{
32
+ type: Component,
33
+ args: [{ selector: 'crispr-textarea-field', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
34
+ CommonModule,
35
+ InfoComponent,
36
+ ReactiveFormsModule,
37
+ FieldContainerComponent,
38
+ MatFormFieldModule,
39
+ MatInputModule,
40
+ FormValidationHandlerModule,
41
+ ], 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 <textarea\n [rows]=\"config.rows\"\n matInput\n [placeholder]=\"config.placeholder\"\n [formControlName]=\"config.controlName\">\n </textarea>\n <span *ngIf=\"config.fieldSuffix\" matSuffix>{{config.fieldSuffix}}</span>\n <crispr-info\n *ngIf=\"config.info\"\n matSuffix\n [info]=\"config.info\">\n </crispr-info>\n\n <mat-hint *ngIf=\"config.hint && control.valid\">{{config.hint}}</mat-hint>\n\n </mat-form-field>\n\n</crispr-field-container>\n" }]
42
+ }] });
43
+
44
+ /**
45
+ * Generated bundle index. Do not edit.
46
+ */
47
+
48
+ export { TextareaFieldComponent };
49
+ //# sourceMappingURL=tft-crispr-forms-ui-textarea-field.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tft-crispr-forms-ui-textarea-field.mjs","sources":["../../../../libs/crispr-forms/ui/textarea-field/textarea-field.component.ts","../../../../libs/crispr-forms/ui/textarea-field/textarea-field.component.html","../../../../libs/crispr-forms/ui/textarea-field/tft-crispr-forms-ui-textarea-field.ts"],"sourcesContent":["/* eslint-disable @nrwl/nx/enforce-module-boundaries */\nimport { Component, OnInit, ChangeDetectionStrategy } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { FormValidationHandlerModule } from '@tft/form-validation-handler';\nimport { FieldContainerComponent } from '@tft/crispr-forms/ui/field-container';\nimport { InfoComponent } from '@tft/crispr-forms/ui/info';\nimport { crisprControlMixin, CrisprFieldComponent, TextareaFieldConfig } from '@tft/crispr-forms/utils';\n\nconst defaultConfig: Partial<TextareaFieldConfig> = {rows: 5};\nconst TextareaFieldMixin = crisprControlMixin<TextareaFieldConfig>(CrisprFieldComponent);\n\n@Component({\n selector: 'crispr-textarea-field',\n templateUrl: './textarea-field.component.html',\n styleUrls: ['./textarea-field.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [\n CommonModule,\n InfoComponent,\n ReactiveFormsModule,\n FieldContainerComponent,\n MatFormFieldModule,\n MatInputModule,\n FormValidationHandlerModule,\n ],\n})\nexport class TextareaFieldComponent extends TextareaFieldMixin implements OnInit {\n defaultConfig = defaultConfig;\n\n ngOnInit() {\n super.ngOnInit()\n }\n}\n","<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 <textarea\n [rows]=\"config.rows\"\n matInput\n [placeholder]=\"config.placeholder\"\n [formControlName]=\"config.controlName\">\n </textarea>\n <span *ngIf=\"config.fieldSuffix\" matSuffix>{{config.fieldSuffix}}</span>\n <crispr-info\n *ngIf=\"config.info\"\n matSuffix\n [info]=\"config.info\">\n </crispr-info>\n\n <mat-hint *ngIf=\"config.hint && control.valid\">{{config.hint}}</mat-hint>\n\n </mat-form-field>\n\n</crispr-field-container>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,93 @@
1
+ import * as i1 from '@angular/common';
2
+ import { CommonModule } from '@angular/common';
3
+ import * as i0 from '@angular/core';
4
+ import { Component, ChangeDetectionStrategy } from '@angular/core';
5
+ import * as i2 from '@angular/forms';
6
+ import { FormControl, ReactiveFormsModule } from '@angular/forms';
7
+ import * as i6 from '@angular/material/core';
8
+ import { MatOptionModule } from '@angular/material/core';
9
+ import * as i4 from '@angular/material/input';
10
+ import { MatInputModule } from '@angular/material/input';
11
+ import * as i5 from '@angular/material/select';
12
+ import { MatSelectModule } from '@angular/material/select';
13
+ import { combineLatest } from 'rxjs';
14
+ import { startWith } from 'rxjs/operators';
15
+ import { OptionComponent } from '@tft/crispr-forms/ui/option';
16
+ import * as i7 from '@tft/form-validation-handler';
17
+ import { FormValidationHandlerModule } from '@tft/form-validation-handler';
18
+ import { FieldContainerComponent } from '@tft/crispr-forms/ui/field-container';
19
+ import { InfoComponent } from '@tft/crispr-forms/ui/info';
20
+ import { crisprControlMixin, CrisprFieldComponent, observablifyOptions } from '@tft/crispr-forms/utils';
21
+ import * as i3 from '@angular/material/form-field';
22
+
23
+ /* eslint-disable @nrwl/nx/enforce-module-boundaries */
24
+ const defaultConfig = {};
25
+ const UnitConversionFieldMixin = crisprControlMixin(CrisprFieldComponent);
26
+ class UnitConversionFieldComponent extends UnitConversionFieldMixin {
27
+ constructor() {
28
+ super(...arguments);
29
+ this.defaultConfig = defaultConfig;
30
+ this.displayValueControl = new FormControl();
31
+ this.unitSelectControl = new FormControl();
32
+ }
33
+ ngOnInit() {
34
+ var _a, _b;
35
+ super.ngOnInit();
36
+ // TODO: Validators need work. validation is tricky because the input needs to be validated against but the validator will compare against the controls value
37
+ // this.displayValueControl.setValidators(this.config.validators);
38
+ const controlValuePipeline = [
39
+ this.displayValueControl.valueChanges.pipe(startWith(this.displayValueControl.value))
40
+ ];
41
+ // setup all required pieces when showing a field for selecting units
42
+ if (this.config.showUnitSelect) {
43
+ this.unitOptions$ = observablifyOptions(this.config.selectableUnits, this.group);
44
+ controlValuePipeline.push(this.unitSelectControl.valueChanges.pipe(startWith(((_a = this.config) === null || _a === void 0 ? void 0 : _a.initialDisplayUnit) || null)));
45
+ this.unitSelectControl.setValue(((_b = this.config) === null || _b === void 0 ? void 0 : _b.initialDisplayUnit) || null);
46
+ }
47
+ this.transformationSubscription = combineLatest(controlValuePipeline).subscribe(([displayValue, unitValue]) => {
48
+ const computedValue = this.config.storedValueConversion(displayValue, unitValue);
49
+ this.control.setValue(computedValue);
50
+ });
51
+ }
52
+ ngOnDestroy() {
53
+ this.transformationSubscription.unsubscribe();
54
+ }
55
+ setInitialDisplayValue(storedValue, unit) {
56
+ const initialDisplayValue = this.config.initialDisplayValueConversion(storedValue || null, unit);
57
+ this.displayValueControl.setValue(initialDisplayValue);
58
+ }
59
+ /**
60
+ * We override the 'setControlValue' we inherited from crisprControlMixin and add our custom logic,
61
+ * This function gets called onInit because were object oriented. it's so great, so great that I'm
62
+ * typing a paragraph to explain what the hell is going on...
63
+ * @param value the initial value for the control passed down from the form components input
64
+ */
65
+ setControlValue(value) {
66
+ var _a;
67
+ const initialUnitValue = this.config.showUnitSelect ? (_a = this.config) === null || _a === void 0 ? void 0 : _a.initialDisplayUnit : null;
68
+ this.setInitialDisplayValue(value, initialUnitValue);
69
+ }
70
+ }
71
+ UnitConversionFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: UnitConversionFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
72
+ UnitConversionFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.1", type: UnitConversionFieldComponent, isStandalone: true, selector: "crispr-unit-conversion-field", usesInheritance: true, ngImport: i0, template: "<crispr-field-container\n [config]=\"config\"\n [group]=\"group\">\n <mat-form-field\n [style.width.%]=\"config.showUnitSelect ? 60 : 100\"\n class=\"number-field\"\n [color]=\"config.color\"\n [appearance]=\"config.appearance\">\n <mat-label *ngIf=\"config.label\">\n {{config.label}}\n </mat-label>\n <input\n type=\"number\"\n matInput\n [formControl]=\"displayValueControl\"\n [placeholder]=\"config.placeholder\"\n [min]=\"config.min\"\n [max]=\"config.max\"\n [step]=\"config.step\"\n [autofocus]=\"config.autofocus\">\n <span *ngIf=\"config.fieldSuffix\" matSuffix>{{config.fieldSuffix}}</span>\n <crispr-info\n matSuffix\n *ngIf=\"config.info\"\n [info]=\"config.info\">\n </crispr-info>\n </mat-form-field>\n\n <mat-form-field\n *ngIf=\"config.showUnitSelect\"\n [color]=\"config.color\"\n [appearance]=\"config.appearance\"\n [formGroup]=\"group\"\n class=\"unit-field\">\n <mat-label *ngIf=\"config.label\">\n {{config.label}}\n </mat-label>\n <mat-select\n #selectField\n [formControl]=\"unitSelectControl\">\n\n <mat-option\n *ngFor=\"let option of unitOptions$ | async\"\n [value]=\"option.value\">\n <crispr-option [option]=\"option\">\n </crispr-option>\n </mat-option>\n\n </mat-select>\n\n <mat-hint *ngIf=\"config.hint && (control.valid || !control.touched)\">{{config.hint}}</mat-hint>\n\n </mat-form-field>\n\n</crispr-field-container>\n", styles: [".unit-field{width:40%;margin-left:16px}:host ::ng-deep .field-container{display:flex}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "component", type: InfoComponent, selector: "crispr-info", inputs: ["info"] }, { kind: "component", type: OptionComponent, selector: "crispr-option", inputs: ["option"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.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: i2.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { kind: "directive", type: i2.MaxValidator, selector: "input[type=number][max][formControlName],input[type=number][max][formControl],input[type=number][max][ngModel]", inputs: ["max"] }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: FieldContainerComponent, selector: "crispr-field-container", inputs: ["config", "group", "inlineField"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3.MatSuffix, selector: "[matSuffix]" }, { kind: "directive", type: i4.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: MatSelectModule }, { kind: "component", type: i5.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i6.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "ngmodule", type: MatOptionModule }, { 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 });
73
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: UnitConversionFieldComponent, decorators: [{
74
+ type: Component,
75
+ args: [{ selector: 'crispr-unit-conversion-field', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
76
+ CommonModule,
77
+ InfoComponent,
78
+ OptionComponent,
79
+ ReactiveFormsModule,
80
+ FieldContainerComponent,
81
+ MatInputModule,
82
+ MatSelectModule,
83
+ MatOptionModule,
84
+ FormValidationHandlerModule,
85
+ ], template: "<crispr-field-container\n [config]=\"config\"\n [group]=\"group\">\n <mat-form-field\n [style.width.%]=\"config.showUnitSelect ? 60 : 100\"\n class=\"number-field\"\n [color]=\"config.color\"\n [appearance]=\"config.appearance\">\n <mat-label *ngIf=\"config.label\">\n {{config.label}}\n </mat-label>\n <input\n type=\"number\"\n matInput\n [formControl]=\"displayValueControl\"\n [placeholder]=\"config.placeholder\"\n [min]=\"config.min\"\n [max]=\"config.max\"\n [step]=\"config.step\"\n [autofocus]=\"config.autofocus\">\n <span *ngIf=\"config.fieldSuffix\" matSuffix>{{config.fieldSuffix}}</span>\n <crispr-info\n matSuffix\n *ngIf=\"config.info\"\n [info]=\"config.info\">\n </crispr-info>\n </mat-form-field>\n\n <mat-form-field\n *ngIf=\"config.showUnitSelect\"\n [color]=\"config.color\"\n [appearance]=\"config.appearance\"\n [formGroup]=\"group\"\n class=\"unit-field\">\n <mat-label *ngIf=\"config.label\">\n {{config.label}}\n </mat-label>\n <mat-select\n #selectField\n [formControl]=\"unitSelectControl\">\n\n <mat-option\n *ngFor=\"let option of unitOptions$ | async\"\n [value]=\"option.value\">\n <crispr-option [option]=\"option\">\n </crispr-option>\n </mat-option>\n\n </mat-select>\n\n <mat-hint *ngIf=\"config.hint && (control.valid || !control.touched)\">{{config.hint}}</mat-hint>\n\n </mat-form-field>\n\n</crispr-field-container>\n", styles: [".unit-field{width:40%;margin-left:16px}:host ::ng-deep .field-container{display:flex}\n"] }]
86
+ }] });
87
+
88
+ /**
89
+ * Generated bundle index. Do not edit.
90
+ */
91
+
92
+ export { UnitConversionFieldComponent };
93
+ //# sourceMappingURL=tft-crispr-forms-ui-unit-conversion-field.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tft-crispr-forms-ui-unit-conversion-field.mjs","sources":["../../../../libs/crispr-forms/ui/unit-conversion-field/unit-conversion-field.component.ts","../../../../libs/crispr-forms/ui/unit-conversion-field/unit-conversion-field.component.html","../../../../libs/crispr-forms/ui/unit-conversion-field/tft-crispr-forms-ui-unit-conversion-field.ts"],"sourcesContent":["/* eslint-disable @nrwl/nx/enforce-module-boundaries */\nimport { CommonModule } from '@angular/common';\nimport { Component, OnInit, ChangeDetectionStrategy, OnDestroy } from '@angular/core';\nimport { ReactiveFormsModule, FormControl } from '@angular/forms';\nimport { MatOptionModule } from '@angular/material/core';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatSelectModule } from '@angular/material/select';\nimport { combineLatest, Observable, Subscription } from 'rxjs';\nimport { startWith } from 'rxjs/operators';\nimport { OptionComponent } from '@tft/crispr-forms/ui/option';\nimport { FormValidationHandlerModule } from '@tft/form-validation-handler';\nimport { FieldContainerComponent } from '@tft/crispr-forms/ui/field-container';\nimport { InfoComponent } from '@tft/crispr-forms/ui/info';\nimport { crisprControlMixin, CrisprFieldComponent, observablifyOptions, SelectOption, UnitConversionFieldConfig } from '@tft/crispr-forms/utils';\n\nconst defaultConfig: Partial<UnitConversionFieldConfig> = {};\nconst UnitConversionFieldMixin = crisprControlMixin<UnitConversionFieldConfig>(CrisprFieldComponent);\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'crispr-unit-conversion-field',\n templateUrl: './unit-conversion-field.component.html',\n styleUrls: ['./unit-conversion-field.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [\n CommonModule,\n InfoComponent,\n OptionComponent,\n ReactiveFormsModule,\n FieldContainerComponent,\n MatInputModule,\n MatSelectModule,\n MatOptionModule,\n FormValidationHandlerModule,\n ],\n})\nexport class UnitConversionFieldComponent extends UnitConversionFieldMixin implements OnInit, OnDestroy {\n defaultConfig = defaultConfig;\n\n displayValueControl = new FormControl();\n unitSelectControl = new FormControl();\n unitOptions$: Observable<SelectOption[]>;\n\n transformationSubscription: Subscription;\n\n ngOnInit() {\n super.ngOnInit();\n // TODO: Validators need work. validation is tricky because the input needs to be validated against but the validator will compare against the controls value\n // this.displayValueControl.setValidators(this.config.validators);\n\n const controlValuePipeline: Observable<string>[] = [\n this.displayValueControl.valueChanges.pipe(startWith(this.displayValueControl.value))\n ];\n // setup all required pieces when showing a field for selecting units\n if (this.config.showUnitSelect) {\n this.unitOptions$ = observablifyOptions(this.config.selectableUnits, this.group)\n controlValuePipeline.push(this.unitSelectControl.valueChanges.pipe(startWith(this.config?.initialDisplayUnit || null)));\n this.unitSelectControl.setValue(this.config?.initialDisplayUnit || null);\n }\n\n this.transformationSubscription = combineLatest(controlValuePipeline).subscribe(([displayValue, unitValue] )=> {\n const computedValue = this.config.storedValueConversion(displayValue, unitValue);\n this.control.setValue(computedValue);\n });\n }\n\n ngOnDestroy() {\n this.transformationSubscription.unsubscribe();\n }\n\n setInitialDisplayValue(storedValue: any, unit: unknown) {\n const initialDisplayValue = this.config.initialDisplayValueConversion(storedValue || null, unit);\n this.displayValueControl.setValue(initialDisplayValue);\n }\n\n /**\n * We override the 'setControlValue' we inherited from crisprControlMixin and add our custom logic,\n * This function gets called onInit because were object oriented. it's so great, so great that I'm\n * typing a paragraph to explain what the hell is going on...\n * @param value the initial value for the control passed down from the form components input\n */\n setControlValue(value) {\n const initialUnitValue = this.config.showUnitSelect ? this.config?.initialDisplayUnit : null;\n this.setInitialDisplayValue(value, initialUnitValue);\n }\n}\n","<crispr-field-container\n [config]=\"config\"\n [group]=\"group\">\n <mat-form-field\n [style.width.%]=\"config.showUnitSelect ? 60 : 100\"\n class=\"number-field\"\n [color]=\"config.color\"\n [appearance]=\"config.appearance\">\n <mat-label *ngIf=\"config.label\">\n {{config.label}}\n </mat-label>\n <input\n type=\"number\"\n matInput\n [formControl]=\"displayValueControl\"\n [placeholder]=\"config.placeholder\"\n [min]=\"config.min\"\n [max]=\"config.max\"\n [step]=\"config.step\"\n [autofocus]=\"config.autofocus\">\n <span *ngIf=\"config.fieldSuffix\" matSuffix>{{config.fieldSuffix}}</span>\n <crispr-info\n matSuffix\n *ngIf=\"config.info\"\n [info]=\"config.info\">\n </crispr-info>\n </mat-form-field>\n\n <mat-form-field\n *ngIf=\"config.showUnitSelect\"\n [color]=\"config.color\"\n [appearance]=\"config.appearance\"\n [formGroup]=\"group\"\n class=\"unit-field\">\n <mat-label *ngIf=\"config.label\">\n {{config.label}}\n </mat-label>\n <mat-select\n #selectField\n [formControl]=\"unitSelectControl\">\n\n <mat-option\n *ngFor=\"let option of unitOptions$ | async\"\n [value]=\"option.value\">\n <crispr-option [option]=\"option\">\n </crispr-option>\n </mat-option>\n\n </mat-select>\n\n <mat-hint *ngIf=\"config.hint && (control.valid || !control.touched)\">{{config.hint}}</mat-hint>\n\n </mat-form-field>\n\n</crispr-field-container>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ export * from '@tft/crispr-forms/ui/file-dropzone';
2
+ export * from '@tft/crispr-forms/ui/selected-file';
3
+ export * from '@tft/crispr-forms/ui/field-container';
4
+ export * from '@tft/crispr-forms/ui/heading';
5
+ export * from '@tft/crispr-forms/ui/info';
6
+
7
+ /* eslint-disable @nrwl/nx/enforce-module-boundaries */
8
+
9
+ /**
10
+ * Generated bundle index. Do not edit.
11
+ */
12
+ //# sourceMappingURL=tft-crispr-forms-ui.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tft-crispr-forms-ui.mjs","sources":["../../../../libs/crispr-forms/ui/public-api.ts","../../../../libs/crispr-forms/ui/tft-crispr-forms-ui.ts"],"sourcesContent":["/* eslint-disable @nrwl/nx/enforce-module-boundaries */\n\nexport * from '@tft/crispr-forms/ui/file-dropzone';\nexport * from '@tft/crispr-forms/ui/selected-file';\nexport * from '@tft/crispr-forms/ui/field-container';\nexport * from '@tft/crispr-forms/ui/heading';\nexport * from '@tft/crispr-forms/ui/info';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;AAAA;;ACAA;;AAEG"}