@tft/crispr-forms 14.0.1-rc.1 → 14.0.1-rc.2

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 (291) hide show
  1. package/esm2020/public-api.mjs +5 -0
  2. package/esm2020/src/index.mjs +2 -0
  3. package/esm2020/src/lib/crispr-forms.module.mjs +57 -0
  4. package/esm2020/src/lib/field-component-map.const.mjs +27 -0
  5. package/esm2020/src/lib/field.directive.mjs +69 -0
  6. package/esm2020/{lib → src/lib}/form/form.component.mjs +3 -2
  7. package/esm2020/src/lib/form-group-list/form-group-list.component.mjs +93 -0
  8. package/esm2020/src/lib/form-group-list/index.mjs +2 -0
  9. package/esm2020/{lib → src/lib}/pipes/crispr-pipes.module.mjs +1 -1
  10. package/esm2020/src/lib/pipes/initial-control-value.pipe.mjs +21 -0
  11. package/esm2020/src/lib/public_api.mjs +3 -0
  12. package/esm2020/src/lib/sub-group/index.mjs +3 -0
  13. package/esm2020/src/lib/sub-group/sub-group.component.mjs +21 -0
  14. package/esm2020/src/lib/sub-group/sub-group.module.mjs +42 -0
  15. package/esm2020/tft-crispr-forms.mjs +2 -2
  16. package/esm2020/{lib/material → ui}/autocomplete-chiplist-field/autocomplete-chiplist-field.component.mjs +5 -5
  17. package/esm2020/ui/autocomplete-chiplist-field/index.mjs +2 -0
  18. package/esm2020/{lib/material → ui}/autocomplete-field/autocomplete-field.component.mjs +5 -5
  19. package/esm2020/ui/autocomplete-field/index.mjs +2 -0
  20. package/esm2020/ui/button/button.component.mjs +46 -0
  21. package/esm2020/ui/button/index.mjs +2 -0
  22. package/esm2020/ui/checkbox-field/checkbox-field.component.mjs +42 -0
  23. package/esm2020/ui/checkbox-field/index.mjs +2 -0
  24. package/esm2020/{lib/material → ui}/datepicker-field/datepicker-field.component.mjs +4 -3
  25. package/esm2020/ui/datepicker-field/index.mjs +2 -0
  26. package/esm2020/ui/divider/divider.component.mjs +28 -0
  27. package/esm2020/ui/divider/index.mjs +2 -0
  28. package/esm2020/ui/field-container/field-container.component.mjs +58 -0
  29. package/esm2020/ui/field-container/public-api.mjs +2 -0
  30. package/esm2020/ui/field-container/tft-crispr-forms-ui-field-container.mjs +5 -0
  31. package/esm2020/ui/file-dropzone/file-dropzone.directive.mjs +40 -0
  32. package/esm2020/ui/file-dropzone/public-api.mjs +2 -0
  33. package/esm2020/ui/file-dropzone/tft-crispr-forms-ui-file-dropzone.mjs +5 -0
  34. package/esm2020/{lib/material → ui}/file-upload/file-upload.component.mjs +7 -6
  35. package/esm2020/ui/file-upload/index.mjs +2 -0
  36. package/esm2020/{lib/material → ui}/heading/heading.component.mjs +4 -3
  37. package/esm2020/ui/heading/public-api.mjs +2 -0
  38. package/esm2020/ui/heading/tft-crispr-forms-ui-heading.mjs +5 -0
  39. package/esm2020/{lib/material → ui}/image-upload-field/image-upload-field.component.mjs +7 -53
  40. package/esm2020/ui/image-upload-field/public-api.mjs +2 -0
  41. package/esm2020/ui/image-upload-field/tft-crispr-forms-ui-image-upload-field.mjs +5 -0
  42. package/esm2020/{lib/material → ui}/info/info.component.mjs +1 -1
  43. package/esm2020/ui/info/public-api.mjs +2 -0
  44. package/esm2020/ui/info/tft-crispr-forms-ui-info.mjs +5 -0
  45. package/esm2020/ui/input-field/index.mjs +2 -0
  46. package/esm2020/{lib/material → ui}/input-field/input-field.component.mjs +5 -4
  47. package/esm2020/ui/option/index.mjs +2 -0
  48. package/esm2020/{lib/material → ui}/option/option.component.mjs +2 -2
  49. package/esm2020/ui/public-api.mjs +21 -0
  50. package/esm2020/ui/radio-field/index.mjs +2 -0
  51. package/esm2020/ui/radio-field/radio-field.component.mjs +36 -0
  52. package/esm2020/ui/select-field/index.mjs +2 -0
  53. package/esm2020/{lib/material → ui}/select-field/select-field.component.mjs +10 -8
  54. package/esm2020/ui/selected-file/public-api.mjs +2 -0
  55. package/esm2020/{lib/material → ui}/selected-file/selected-file.component.mjs +1 -1
  56. package/esm2020/ui/selected-file/tft-crispr-forms-ui-selected-file.mjs +5 -0
  57. package/esm2020/ui/slider-field/index.mjs +2 -0
  58. package/esm2020/{lib/material → ui}/slider-field/slider-field.component.mjs +5 -4
  59. package/esm2020/ui/textarea-field/index.mjs +2 -0
  60. package/esm2020/{lib/material → ui}/textarea-field/textarea-field.component.mjs +5 -4
  61. package/esm2020/ui/tft-crispr-forms-ui.mjs +5 -0
  62. package/esm2020/ui/unit-conversion-field/index.mjs +2 -0
  63. package/esm2020/ui/unit-conversion-field/unit-conversion-field.component.mjs +81 -0
  64. package/esm2020/utils/abstracts/autocomplete-field.abstract.mjs +30 -0
  65. package/esm2020/utils/abstracts/crispr-control.mixin.mjs +27 -0
  66. package/esm2020/utils/abstracts/crispr-field.abstract.mjs +20 -0
  67. package/esm2020/utils/abstracts/index.mjs +4 -0
  68. package/esm2020/utils/functions/buildFormGroupFromConfig.mjs +28 -0
  69. package/esm2020/utils/functions/callOptionsIfFunction.mjs +4 -0
  70. package/esm2020/utils/functions/createControlForType.mjs +19 -0
  71. package/esm2020/utils/functions/filterOptionsByLabel.mjs +11 -0
  72. package/esm2020/utils/functions/image-compression.helpers.mjs +50 -0
  73. package/esm2020/utils/functions/index.mjs +8 -0
  74. package/esm2020/utils/functions/isControlConfig.mjs +7 -0
  75. package/esm2020/utils/functions/observablifyOptions.mjs +29 -0
  76. package/esm2020/utils/models/autocomplete-chiplist-field.config.mjs +2 -0
  77. package/esm2020/utils/models/autocomplete-field.config.mjs +2 -0
  78. package/esm2020/utils/models/button.config.mjs +2 -0
  79. package/esm2020/utils/models/checkbox-field.config.mjs +2 -0
  80. package/esm2020/utils/models/crispr-field.config.mjs +23 -0
  81. package/esm2020/utils/models/datepicker-field.config.mjs +2 -0
  82. package/esm2020/utils/models/divider.config.mjs +2 -0
  83. package/esm2020/utils/models/file-upload-field.config.mjs +2 -0
  84. package/esm2020/utils/models/form-group-list.config.mjs +2 -0
  85. package/esm2020/utils/models/heading.config.mjs +3 -0
  86. package/esm2020/utils/models/image-upload-field.config.mjs +2 -0
  87. package/esm2020/utils/models/index.mjs +18 -0
  88. package/esm2020/utils/models/input-field.config.mjs +2 -0
  89. package/esm2020/utils/models/radio-field.config.mjs +2 -0
  90. package/esm2020/utils/models/select-field.config.mjs +2 -0
  91. package/esm2020/utils/models/slider-field.config.mjs +2 -0
  92. package/esm2020/utils/models/textarea-field.config.mjs +2 -0
  93. package/esm2020/utils/models/unit-conversion-field.config.mjs +2 -0
  94. package/esm2020/utils/operators/form.operators.mjs +24 -0
  95. package/esm2020/utils/operators/index.mjs +2 -0
  96. package/esm2020/utils/public-api.mjs +5 -0
  97. package/esm2020/utils/tft-crispr-forms-utils.mjs +5 -0
  98. package/fesm2015/tft-crispr-forms-ui-field-container.mjs +64 -0
  99. package/fesm2015/tft-crispr-forms-ui-field-container.mjs.map +1 -0
  100. package/fesm2015/tft-crispr-forms-ui-file-dropzone.mjs +47 -0
  101. package/fesm2015/tft-crispr-forms-ui-file-dropzone.mjs.map +1 -0
  102. package/fesm2015/tft-crispr-forms-ui-heading.mjs +37 -0
  103. package/fesm2015/tft-crispr-forms-ui-heading.mjs.map +1 -0
  104. package/fesm2015/tft-crispr-forms-ui-image-upload-field.mjs +182 -0
  105. package/fesm2015/tft-crispr-forms-ui-image-upload-field.mjs.map +1 -0
  106. package/fesm2015/tft-crispr-forms-ui-info.mjs +30 -0
  107. package/fesm2015/tft-crispr-forms-ui-info.mjs.map +1 -0
  108. package/fesm2015/tft-crispr-forms-ui-selected-file.mjs +33 -0
  109. package/fesm2015/tft-crispr-forms-ui-selected-file.mjs.map +1 -0
  110. package/fesm2015/tft-crispr-forms-ui.mjs +684 -0
  111. package/fesm2015/tft-crispr-forms-ui.mjs.map +1 -0
  112. package/fesm2015/tft-crispr-forms-utils.mjs +270 -0
  113. package/fesm2015/tft-crispr-forms-utils.mjs.map +1 -0
  114. package/fesm2015/tft-crispr-forms.mjs +32 -1355
  115. package/fesm2015/tft-crispr-forms.mjs.map +1 -1
  116. package/fesm2020/tft-crispr-forms-ui-field-container.mjs +65 -0
  117. package/fesm2020/tft-crispr-forms-ui-field-container.mjs.map +1 -0
  118. package/fesm2020/tft-crispr-forms-ui-file-dropzone.mjs +47 -0
  119. package/fesm2020/tft-crispr-forms-ui-file-dropzone.mjs.map +1 -0
  120. package/fesm2020/tft-crispr-forms-ui-heading.mjs +37 -0
  121. package/fesm2020/tft-crispr-forms-ui-heading.mjs.map +1 -0
  122. package/fesm2020/tft-crispr-forms-ui-image-upload-field.mjs +185 -0
  123. package/fesm2020/tft-crispr-forms-ui-image-upload-field.mjs.map +1 -0
  124. package/fesm2020/tft-crispr-forms-ui-info.mjs +30 -0
  125. package/fesm2020/tft-crispr-forms-ui-info.mjs.map +1 -0
  126. package/fesm2020/tft-crispr-forms-ui-selected-file.mjs +33 -0
  127. package/fesm2020/tft-crispr-forms-ui-selected-file.mjs.map +1 -0
  128. package/fesm2020/tft-crispr-forms-ui.mjs +676 -0
  129. package/fesm2020/tft-crispr-forms-ui.mjs.map +1 -0
  130. package/fesm2020/tft-crispr-forms-utils.mjs +269 -0
  131. package/fesm2020/tft-crispr-forms-utils.mjs.map +1 -0
  132. package/fesm2020/tft-crispr-forms.mjs +33 -1349
  133. package/fesm2020/tft-crispr-forms.mjs.map +1 -1
  134. package/index.d.ts +5 -1
  135. package/package.json +67 -3
  136. package/public-api.d.ts +3 -0
  137. package/src/index.d.ts +1 -0
  138. package/{lib → src/lib}/crispr-forms.module.d.ts +1 -1
  139. package/{lib → src/lib}/field-component-map.const.d.ts +7 -6
  140. package/{lib → src/lib}/field.directive.d.ts +3 -3
  141. package/{lib → src/lib}/form/form.component.d.ts +1 -1
  142. package/{lib → src/lib}/form-group-list/form-group-list.component.d.ts +11 -13
  143. package/{lib → src/lib}/form-group-list/index.d.ts +0 -0
  144. package/{lib → src/lib}/pipes/crispr-pipes.module.d.ts +0 -0
  145. package/{lib → src/lib}/pipes/initial-control-value.pipe.d.ts +1 -1
  146. package/src/lib/public_api.d.ts +2 -0
  147. package/{lib → src/lib}/sub-group/index.d.ts +0 -0
  148. package/{lib → src/lib}/sub-group/sub-group.component.d.ts +11 -13
  149. package/{lib → src/lib}/sub-group/sub-group.module.d.ts +1 -1
  150. package/tft-crispr-forms-14.0.1-rc.2.tgz +0 -0
  151. package/ui/README.md +3 -0
  152. package/{lib/material → ui}/autocomplete-chiplist-field/autocomplete-chiplist-field.component.d.ts +1 -2
  153. package/ui/autocomplete-chiplist-field/index.d.ts +1 -0
  154. package/{lib/material → ui}/autocomplete-field/autocomplete-field.component.d.ts +1 -2
  155. package/ui/autocomplete-field/index.d.ts +1 -0
  156. package/{lib/material → ui}/button/button.component.d.ts +1 -2
  157. package/ui/button/index.d.ts +1 -0
  158. package/ui/checkbox-field/checkbox-field.component.d.ts +21 -0
  159. package/ui/checkbox-field/index.d.ts +1 -0
  160. package/{lib/material → ui}/datepicker-field/datepicker-field.component.d.ts +11 -13
  161. package/ui/datepicker-field/index.d.ts +1 -0
  162. package/{lib/material → ui}/divider/divider.component.d.ts +1 -2
  163. package/ui/divider/index.d.ts +1 -0
  164. package/{lib → ui}/field-container/field-container.component.d.ts +1 -1
  165. package/ui/field-container/index.d.ts +5 -0
  166. package/{lib/field-container/index.d.ts → ui/field-container/public-api.d.ts} +0 -0
  167. package/{lib/material/file-upload → ui/file-dropzone}/file-dropzone.directive.d.ts +0 -0
  168. package/ui/file-dropzone/index.d.ts +5 -0
  169. package/{lib/material/file-upload/index.d.ts → ui/file-dropzone/public-api.d.ts} +0 -1
  170. package/{lib/material → ui}/file-upload/file-upload.component.d.ts +11 -13
  171. package/ui/file-upload/index.d.ts +1 -0
  172. package/{lib/material → ui}/heading/heading.component.d.ts +1 -2
  173. package/ui/heading/index.d.ts +5 -0
  174. package/ui/heading/public-api.d.ts +1 -0
  175. package/{lib/material → ui}/image-upload-field/image-upload-field.component.d.ts +12 -17
  176. package/ui/image-upload-field/index.d.ts +5 -0
  177. package/{lib/material/image-upload-field/index.d.ts → ui/image-upload-field/public-api.d.ts} +0 -0
  178. package/ui/index.d.ts +5 -0
  179. package/ui/info/index.d.ts +5 -0
  180. package/{lib/material → ui}/info/info.component.d.ts +1 -1
  181. package/ui/info/public-api.d.ts +1 -0
  182. package/ui/input-field/index.d.ts +1 -0
  183. package/ui/input-field/input-field.component.d.ts +22 -0
  184. package/{lib/material → ui}/option/index.d.ts +0 -0
  185. package/{lib/material → ui}/option/option.component.d.ts +1 -1
  186. package/ui/public-api.d.ts +19 -0
  187. package/ui/radio-field/index.d.ts +1 -0
  188. package/ui/radio-field/radio-field.component.d.ts +23 -0
  189. package/ui/select-field/index.d.ts +1 -0
  190. package/{lib/material → ui}/select-field/select-field.component.d.ts +11 -13
  191. package/ui/selected-file/index.d.ts +5 -0
  192. package/ui/selected-file/public-api.d.ts +1 -0
  193. package/{lib/material → ui}/selected-file/selected-file.component.d.ts +0 -0
  194. package/ui/slider-field/index.d.ts +1 -0
  195. package/{lib/material → ui}/slider-field/slider-field.component.d.ts +11 -13
  196. package/ui/textarea-field/index.d.ts +1 -0
  197. package/ui/textarea-field/textarea-field.component.d.ts +21 -0
  198. package/ui/unit-conversion-field/index.d.ts +1 -0
  199. package/{lib/material → ui}/unit-conversion-field/unit-conversion-field.component.d.ts +11 -14
  200. package/utils/README.md +3 -0
  201. package/{lib → utils}/abstracts/autocomplete-field.abstract.d.ts +0 -0
  202. package/{lib → utils}/abstracts/crispr-control.mixin.d.ts +0 -0
  203. package/{lib → utils}/abstracts/crispr-field.abstract.d.ts +0 -0
  204. package/{lib → utils}/abstracts/index.d.ts +0 -0
  205. package/utils/functions/buildFormGroupFromConfig.d.ts +9 -0
  206. package/utils/functions/callOptionsIfFunction.d.ts +3 -0
  207. package/utils/functions/createControlForType.d.ts +9 -0
  208. package/utils/functions/filterOptionsByLabel.d.ts +7 -0
  209. package/utils/functions/image-compression.helpers.d.ts +5 -0
  210. package/utils/functions/index.d.ts +7 -0
  211. package/utils/functions/isControlConfig.d.ts +5 -0
  212. package/utils/functions/observablifyOptions.d.ts +12 -0
  213. package/utils/index.d.ts +5 -0
  214. package/{lib → utils}/models/autocomplete-chiplist-field.config.d.ts +2 -1
  215. package/{lib → utils}/models/autocomplete-field.config.d.ts +1 -2
  216. package/{lib → utils}/models/button.config.d.ts +0 -0
  217. package/{lib → utils}/models/checkbox-field.config.d.ts +1 -2
  218. package/{lib → utils}/models/crispr-field.config.d.ts +1 -10
  219. package/{lib → utils}/models/datepicker-field.config.d.ts +1 -2
  220. package/{lib → utils}/models/divider.config.d.ts +1 -1
  221. package/{lib → utils}/models/file-upload-field.config.d.ts +3 -4
  222. package/{lib → utils}/models/form-group-list.config.d.ts +1 -2
  223. package/{lib → utils}/models/heading.config.d.ts +1 -2
  224. package/{lib → utils}/models/image-upload-field.config.d.ts +2 -1
  225. package/{lib → utils}/models/index.d.ts +0 -0
  226. package/{lib → utils}/models/input-field.config.d.ts +1 -2
  227. package/{lib → utils}/models/radio-field.config.d.ts +0 -0
  228. package/{lib → utils}/models/select-field.config.d.ts +1 -2
  229. package/{lib → utils}/models/slider-field.config.d.ts +1 -2
  230. package/{lib → utils}/models/textarea-field.config.d.ts +1 -2
  231. package/{lib → utils}/models/unit-conversion-field.config.d.ts +1 -2
  232. package/{lib → utils/operators}/form.operators.d.ts +0 -0
  233. package/utils/operators/index.d.ts +1 -0
  234. package/utils/public-api.d.ts +4 -0
  235. package/esm2020/index.mjs +0 -2
  236. package/esm2020/lib/abstracts/autocomplete-field.abstract.mjs +0 -30
  237. package/esm2020/lib/abstracts/crispr-control.mixin.mjs +0 -27
  238. package/esm2020/lib/abstracts/crispr-field.abstract.mjs +0 -20
  239. package/esm2020/lib/abstracts/index.mjs +0 -4
  240. package/esm2020/lib/crispr-forms.module.mjs +0 -57
  241. package/esm2020/lib/field-component-map.const.mjs +0 -28
  242. package/esm2020/lib/field-container/field-container.component.mjs +0 -63
  243. package/esm2020/lib/field-container/index.mjs +0 -2
  244. package/esm2020/lib/field.directive.mjs +0 -69
  245. package/esm2020/lib/form-group-list/form-group-list.component.mjs +0 -92
  246. package/esm2020/lib/form-group-list/index.mjs +0 -2
  247. package/esm2020/lib/form.helpers.mjs +0 -190
  248. package/esm2020/lib/form.operators.mjs +0 -24
  249. package/esm2020/lib/material/button/button.component.mjs +0 -45
  250. package/esm2020/lib/material/checkbox-field/checkbox-field.component.mjs +0 -40
  251. package/esm2020/lib/material/divider/divider.component.mjs +0 -27
  252. package/esm2020/lib/material/file-upload/file-dropzone.directive.mjs +0 -40
  253. package/esm2020/lib/material/file-upload/index.mjs +0 -3
  254. package/esm2020/lib/material/image-upload-field/image-compression.helpers.mjs +0 -4
  255. package/esm2020/lib/material/image-upload-field/index.mjs +0 -2
  256. package/esm2020/lib/material/index.mjs +0 -17
  257. package/esm2020/lib/material/option/index.mjs +0 -2
  258. package/esm2020/lib/material/radio-field/radio-field.component.mjs +0 -36
  259. package/esm2020/lib/material/unit-conversion-field/unit-conversion-field.component.mjs +0 -81
  260. package/esm2020/lib/models/autocomplete-chiplist-field.config.mjs +0 -2
  261. package/esm2020/lib/models/autocomplete-field.config.mjs +0 -2
  262. package/esm2020/lib/models/button.config.mjs +0 -2
  263. package/esm2020/lib/models/checkbox-field.config.mjs +0 -2
  264. package/esm2020/lib/models/crispr-field.config.mjs +0 -23
  265. package/esm2020/lib/models/datepicker-field.config.mjs +0 -2
  266. package/esm2020/lib/models/divider.config.mjs +0 -2
  267. package/esm2020/lib/models/file-upload-field.config.mjs +0 -2
  268. package/esm2020/lib/models/form-group-list.config.mjs +0 -2
  269. package/esm2020/lib/models/heading.config.mjs +0 -3
  270. package/esm2020/lib/models/image-upload-field.config.mjs +0 -2
  271. package/esm2020/lib/models/index.mjs +0 -18
  272. package/esm2020/lib/models/input-field.config.mjs +0 -2
  273. package/esm2020/lib/models/radio-field.config.mjs +0 -2
  274. package/esm2020/lib/models/select-field.config.mjs +0 -2
  275. package/esm2020/lib/models/slider-field.config.mjs +0 -2
  276. package/esm2020/lib/models/textarea-field.config.mjs +0 -2
  277. package/esm2020/lib/models/unit-conversion-field.config.mjs +0 -2
  278. package/esm2020/lib/pipes/initial-control-value.pipe.mjs +0 -20
  279. package/esm2020/lib/public_api.mjs +0 -10
  280. package/esm2020/lib/sub-group/index.mjs +0 -3
  281. package/esm2020/lib/sub-group/sub-group.component.mjs +0 -20
  282. package/esm2020/lib/sub-group/sub-group.module.mjs +0 -42
  283. package/lib/form.helpers.d.ts +0 -88
  284. package/lib/material/checkbox-field/checkbox-field.component.d.ts +0 -23
  285. package/lib/material/image-upload-field/image-compression.helpers.d.ts +0 -1
  286. package/lib/material/index.d.ts +0 -16
  287. package/lib/material/input-field/input-field.component.d.ts +0 -24
  288. package/lib/material/radio-field/radio-field.component.d.ts +0 -26
  289. package/lib/material/textarea-field/textarea-field.component.d.ts +0 -23
  290. package/lib/public_api.d.ts +0 -9
  291. package/tft-crispr-forms-14.0.1-rc.1.tgz +0 -0
@@ -0,0 +1,23 @@
1
+ import { OnInit } from '@angular/core';
2
+ import { Observable } from 'rxjs';
3
+ import { RadioFieldConfig, SelectOption } from '@tft/crispr-forms/utils';
4
+ import * as i0 from "@angular/core";
5
+ declare const RadioFieldMixin: new () => {
6
+ config: RadioFieldConfig;
7
+ group: import("@angular/forms").FormGroup<any>;
8
+ control: import("@angular/forms").AbstractControl<any, any>;
9
+ _value: any;
10
+ value: any;
11
+ ngOnInit(): void;
12
+ setControlValue(value: any): void;
13
+ defaultConfig?: Partial<RadioFieldConfig>;
14
+ applyDefaultConfig(): void;
15
+ };
16
+ export declare class RadioFieldComponent extends RadioFieldMixin implements OnInit {
17
+ defaultConfig: {};
18
+ options$: Observable<SelectOption[]>;
19
+ ngOnInit(): void;
20
+ static ɵfac: i0.ɵɵFactoryDeclaration<RadioFieldComponent, never>;
21
+ static ɵcmp: i0.ɵɵComponentDeclaration<RadioFieldComponent, "crispr-radio-field", never, {}, {}, never, never, true>;
22
+ }
23
+ export {};
@@ -0,0 +1 @@
1
+ export * from './select-field.component';
@@ -1,21 +1,19 @@
1
1
  import { OnInit, AfterViewInit } from '@angular/core';
2
2
  import { Observable } from 'rxjs';
3
- import { SelectFieldConfig, SelectOption } from '../../models';
4
3
  import { MatSelect } from '@angular/material/select';
5
4
  import { ThemePalette } from '@angular/material/core';
5
+ import { SelectFieldConfig, SelectOption } from '@tft/crispr-forms/utils';
6
6
  import * as i0 from "@angular/core";
7
- declare const SelectFieldMixin: {
8
- new (): {
9
- config: SelectFieldConfig;
10
- group: import("@angular/forms").FormGroup<any>;
11
- control: import("@angular/forms").AbstractControl<any, any>;
12
- _value: any;
13
- value: any;
14
- ngOnInit(): void;
15
- setControlValue(value: any): void;
16
- defaultConfig?: Partial<SelectFieldConfig>;
17
- applyDefaultConfig(): void;
18
- };
7
+ declare const SelectFieldMixin: new () => {
8
+ config: SelectFieldConfig;
9
+ group: import("@angular/forms").FormGroup<any>;
10
+ control: import("@angular/forms").AbstractControl<any, any>;
11
+ _value: any;
12
+ value: any;
13
+ ngOnInit(): void;
14
+ setControlValue(value: any): void;
15
+ defaultConfig?: Partial<SelectFieldConfig>;
16
+ applyDefaultConfig(): void;
19
17
  };
20
18
  export declare class SelectFieldComponent extends SelectFieldMixin implements OnInit, AfterViewInit {
21
19
  defaultConfig: {
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ /// <amd-module name="@tft/crispr-forms/ui/selected-file" />
5
+ export * from './public-api';
@@ -0,0 +1 @@
1
+ export * from './selected-file.component';
@@ -0,0 +1 @@
1
+ export * from './slider-field.component';
@@ -1,18 +1,16 @@
1
1
  import { OnInit } from '@angular/core';
2
- import { SliderFieldConfig } from '../../models';
2
+ import { SliderFieldConfig } from '@tft/crispr-forms/utils';
3
3
  import * as i0 from "@angular/core";
4
- declare const SliderFieldMixin: {
5
- new (): {
6
- config: SliderFieldConfig;
7
- group: import("@angular/forms").FormGroup<any>;
8
- control: import("@angular/forms").AbstractControl<any, any>;
9
- _value: any;
10
- value: any;
11
- ngOnInit(): void;
12
- setControlValue(value: any): void;
13
- defaultConfig?: Partial<SliderFieldConfig>;
14
- applyDefaultConfig(): void;
15
- };
4
+ declare const SliderFieldMixin: new () => {
5
+ config: SliderFieldConfig;
6
+ group: import("@angular/forms").FormGroup<any>;
7
+ control: import("@angular/forms").AbstractControl<any, any>;
8
+ _value: any;
9
+ value: any;
10
+ ngOnInit(): void;
11
+ setControlValue(value: any): void;
12
+ defaultConfig?: Partial<SliderFieldConfig>;
13
+ applyDefaultConfig(): void;
16
14
  };
17
15
  export declare class SliderFieldComponent extends SliderFieldMixin implements OnInit {
18
16
  defaultConfig: {
@@ -0,0 +1 @@
1
+ export * from './textarea-field.component';
@@ -0,0 +1,21 @@
1
+ import { OnInit } from '@angular/core';
2
+ import { TextareaFieldConfig } from '@tft/crispr-forms/utils';
3
+ import * as i0 from "@angular/core";
4
+ declare const TextareaFieldMixin: new () => {
5
+ config: TextareaFieldConfig;
6
+ group: import("@angular/forms").FormGroup<any>;
7
+ control: import("@angular/forms").AbstractControl<any, any>;
8
+ _value: any;
9
+ value: any;
10
+ ngOnInit(): void;
11
+ setControlValue(value: any): void;
12
+ defaultConfig?: Partial<TextareaFieldConfig>;
13
+ applyDefaultConfig(): void;
14
+ };
15
+ export declare class TextareaFieldComponent extends TextareaFieldMixin implements OnInit {
16
+ defaultConfig: Partial<TextareaFieldConfig>;
17
+ ngOnInit(): void;
18
+ static ɵfac: i0.ɵɵFactoryDeclaration<TextareaFieldComponent, never>;
19
+ static ɵcmp: i0.ɵɵComponentDeclaration<TextareaFieldComponent, "crispr-textarea-field", never, {}, {}, never, never, true>;
20
+ }
21
+ export {};
@@ -0,0 +1 @@
1
+ export * from './unit-conversion-field.component';
@@ -1,21 +1,18 @@
1
1
  import { OnInit, OnDestroy } from '@angular/core';
2
2
  import { FormControl } from '@angular/forms';
3
3
  import { Observable, Subscription } from 'rxjs';
4
- import { SelectOption } from '../../models';
5
- import { UnitConversionFieldConfig } from '../../models/unit-conversion-field.config';
4
+ import { SelectOption, UnitConversionFieldConfig } from '@tft/crispr-forms/utils';
6
5
  import * as i0 from "@angular/core";
7
- declare const UnitConversionFieldMixin: {
8
- new (): {
9
- config: UnitConversionFieldConfig<unknown, unknown>;
10
- group: import("@angular/forms").FormGroup<any>;
11
- control: import("@angular/forms").AbstractControl<any, any>;
12
- _value: any;
13
- value: any;
14
- ngOnInit(): void;
15
- setControlValue(value: any): void;
16
- defaultConfig?: Partial<UnitConversionFieldConfig<unknown, unknown>>;
17
- applyDefaultConfig(): void;
18
- };
6
+ declare const UnitConversionFieldMixin: new () => {
7
+ config: UnitConversionFieldConfig<unknown, unknown>;
8
+ group: import("@angular/forms").FormGroup<any>;
9
+ control: import("@angular/forms").AbstractControl<any, any>;
10
+ _value: any;
11
+ value: any;
12
+ ngOnInit(): void;
13
+ setControlValue(value: any): void;
14
+ defaultConfig?: Partial<UnitConversionFieldConfig<unknown, unknown>>;
15
+ applyDefaultConfig(): void;
19
16
  };
20
17
  export declare class UnitConversionFieldComponent extends UnitConversionFieldMixin implements OnInit, OnDestroy {
21
18
  defaultConfig: Partial<UnitConversionFieldConfig<unknown, unknown>>;
@@ -0,0 +1,3 @@
1
+ # @tft/crispr-forms/utils
2
+
3
+ Secondary entry point of `@tft/crispr-forms`. It can be used by importing from `@tft/crispr-forms/utils`.
File without changes
@@ -0,0 +1,9 @@
1
+ import { FormGroup } from "@angular/forms";
2
+ import { FormConfig } from "../models";
3
+ /**
4
+ * builds out form group based on config
5
+ * @param config a configuration for a form group
6
+ * @param value an object of initial values to pass in
7
+ * @param group the form group to modify and build out
8
+ */
9
+ export declare function buildFormGroupFromConfig(config: FormConfig, value?: any, group?: FormGroup): FormGroup<any>;
@@ -0,0 +1,3 @@
1
+ import { FormGroup } from "@angular/forms";
2
+ import { AutocompleteOptionsCallback, OptionsType } from "../models";
3
+ export declare function callOptionsIfFunction(options: OptionsType | AutocompleteOptionsCallback, parentGroup?: FormGroup, searchString?: string): OptionsType;
@@ -0,0 +1,9 @@
1
+ import { FormArray, FormControl } from "@angular/forms";
2
+ import { AnyFieldConfig, ControlValue } from "../models";
3
+ /**
4
+ * Analyze the config and build a form control to spec. Notice we don't use FormBuilder here
5
+ * as we want to keep this function pure.
6
+ * @param controlConfig the configuration object for the control to build
7
+ * @param value an initial value to use if passed in
8
+ */
9
+ export declare function createControlForType(controlConfig: AnyFieldConfig, value?: ControlValue): import("@angular/forms").FormGroup<any> | FormArray<any> | FormControl<any>;
@@ -0,0 +1,7 @@
1
+ import { SelectOption } from "../models";
2
+ /**
3
+ * A basic filter function that filters the search string against the label of the options object
4
+ * @param options the array of options to filter
5
+ * @param searchString the string from the input
6
+ */
7
+ export declare function filterOptionsByLabel(options: SelectOption[], searchString: string): SelectOption[];
@@ -0,0 +1,5 @@
1
+ import { ValidatorFn } from "@angular/forms";
2
+ export declare function convertBytesToMb(bytes: number): number;
3
+ export declare function maxFileSizeValidator(maxFileSize: number): ValidatorFn;
4
+ export declare function allowedFileExtValidator(allowedFileExtensions: string[], onlyAllowFiles?: boolean): ValidatorFn;
5
+ export declare function allowedFileType(matchExp: string | RegExp): ValidatorFn;
@@ -0,0 +1,7 @@
1
+ export * from './buildFormGroupFromConfig';
2
+ export * from './callOptionsIfFunction';
3
+ export * from './createControlForType';
4
+ export * from './filterOptionsByLabel';
5
+ export * from './isControlConfig';
6
+ export * from './observablifyOptions';
7
+ export * from './image-compression.helpers';
@@ -0,0 +1,5 @@
1
+ import { CrisprControlConfig, CrisprFieldConfig } from "../models";
2
+ /**
3
+ * Determines if the field config is for a form control (not a divider, heading or other non-control field)
4
+ * */
5
+ export declare function isControlConfig(fieldConfig: CrisprFieldConfig): fieldConfig is CrisprControlConfig;
@@ -0,0 +1,12 @@
1
+ import { FormGroup } from "@angular/forms";
2
+ import { Observable } from "rxjs";
3
+ import { OptionsType, SelectOption } from "../models";
4
+ /**
5
+ * The user can give us select options as an array, a function that resolves to a promise,
6
+ * or an observable. This functions consumes any of those and returns an observable that
7
+ * resolves an array of options
8
+ *
9
+ * @param options the options passed in from the config
10
+ * @param emptyMessageOption the message to display when the array is empty
11
+ */
12
+ export declare function observablifyOptions(options: OptionsType, parentGroup: FormGroup, searchString?: string): Observable<SelectOption[]>;
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ /// <amd-module name="@tft/crispr-forms/utils" />
5
+ export * from './public-api';
@@ -1,4 +1,5 @@
1
- import { AbstractAutocompleteFieldConfig, SelectOption } from './index';
1
+ import { AbstractAutocompleteFieldConfig } from './autocomplete-field.config';
2
+ import { SelectOption } from './select-field.config';
2
3
  import { ControlType, FieldDescriptors, MatFieldProperties } from './crispr-field.config';
3
4
  export interface AutocompleteChiplistFieldConfig extends AbstractAutocompleteFieldConfig, FieldDescriptors, MatFieldProperties {
4
5
  controlType: ControlType.AUTOCOMPLETE_CHIPLIST;
@@ -1,6 +1,5 @@
1
- import { CrisprControlConfig, ControlType } from '../models';
2
1
  import { AutocompleteOptionsCallback, SelectOption } from './select-field.config';
3
- import { FieldDescriptors, MatFieldProperties } from './crispr-field.config';
2
+ import { FieldDescriptors, MatFieldProperties, CrisprControlConfig, ControlType } from './crispr-field.config';
4
3
  export interface AbstractAutocompleteFieldConfig extends CrisprControlConfig, FieldDescriptors, MatFieldProperties {
5
4
  typeToEmit?: boolean;
6
5
  typeDebounceTime?: number;
File without changes
@@ -1,5 +1,4 @@
1
- import { CrisprControlConfig, ControlType } from '../models';
2
- import { FieldDescriptors, MatFieldProperties } from './crispr-field.config';
1
+ import { FieldDescriptors, MatFieldProperties, CrisprControlConfig, ControlType } from './crispr-field.config';
3
2
  export interface CheckboxFieldConfig extends CrisprControlConfig, Pick<FieldDescriptors, 'label' | 'info'>, Pick<MatFieldProperties, 'color'> {
4
3
  controlType: ControlType.CHECKBOX;
5
4
  labelPosition?: 'before' | 'after';
@@ -3,7 +3,6 @@ import { Observable } from 'rxjs';
3
3
  import { TooltipPosition } from '@angular/material/tooltip';
4
4
  import { MatFormFieldAppearance } from '@angular/material/form-field';
5
5
  import { ErrorDictionary } from '@tft/form-validation-handler';
6
- import { ComputeFieldConfig, CheckControlConfig, CheckControlsConfig } from '../form.helpers';
7
6
  import type { SelectFieldConfig, HeadingConfig, ButtonConfig, DatepickerFieldConfig, InputFieldConfig, CheckboxFieldConfig, TextareaFieldConfig, AutocompleteFieldConfig, FormGroupListConfig, AutocompleteChiplistFieldConfig, SliderFieldConfig, DividerConfig, SelectOption, RadioFieldConfig, ImageUploadFieldConfig, FileUploadFieldConfig, UnitConversionFieldConfig } from '../models';
8
7
  import { ThemePalette } from '@angular/material/core';
9
8
  export declare enum ControlType {
@@ -42,16 +41,8 @@ export interface CrisprControlConfig<M = null> extends CrisprFieldConfig {
42
41
  controlName: RestrictedControlName<M>;
43
42
  controlType: ControlType;
44
43
  validators?: ValidatorFn[];
45
- /**
46
- * @deprecated please us computeValue instead
47
- */
48
- computeFieldConfig?: ComputeFieldConfig;
49
44
  computeValue?: (group: FormGroup) => Observable<unknown>;
50
- disabledCallback?: (group: FormGroup, config?: any) => Observable<boolean>;
51
- /**
52
- * @deprecated this configuration isn't needed as all situations can be handled using `disabledCallback`
53
- */
54
- disabledCallbackConfig?: CheckControlConfig | CheckControlsConfig | any;
45
+ disabledCallback?: (group: FormGroup) => Observable<boolean>;
55
46
  /**
56
47
  * Hide the control when disabled
57
48
  * @default false
@@ -1,5 +1,4 @@
1
- import { CrisprControlConfig, ControlType } from '../models';
2
- import { FieldDescriptors, MatFieldProperties } from './crispr-field.config';
1
+ import { FieldDescriptors, MatFieldProperties, CrisprControlConfig, ControlType } from './crispr-field.config';
3
2
  import { MatCalendarCellClassFunction } from '@angular/material/datepicker';
4
3
  import { Observable } from 'rxjs';
5
4
  import { FormGroup } from '@angular/forms';
@@ -1,4 +1,4 @@
1
- import { CrisprFieldConfig, ControlType } from '../models';
1
+ import { CrisprFieldConfig, ControlType } from './crispr-field.config';
2
2
  export declare type DividerConfig = Omit<CrisprFieldConfig, 'label'> & {
3
3
  controlType?: ControlType.DIVIDER;
4
4
  vertical?: boolean;
@@ -1,7 +1,6 @@
1
1
  import { FormGroup } from '@angular/forms';
2
- import type { FileUploadFieldComponent } from '../material/file-upload/file-upload.component';
3
- import type { ImageUploadFieldComponent } from '../material/image-upload-field';
4
- import { CrisprControlConfig, ControlType, ButtonType, MatFieldProperties } from '../models';
2
+ import { CrisprControlConfig, ControlType, MatFieldProperties } from './crispr-field.config';
3
+ import { ButtonType } from './button.config';
5
4
  export declare type FileUploadFieldConfig = CrisprControlConfig & MatFieldProperties & {
6
5
  controlType: ControlType.FILE_UPLOAD;
7
6
  label: string;
@@ -15,7 +14,7 @@ export declare type FileUploadFieldConfig = CrisprControlConfig & MatFieldProper
15
14
  dropZoneText?: string;
16
15
  } & (EnabledUploadButtonConfig | DisabledUploadButtonConfig);
17
16
  export interface EnabledUploadButtonConfig {
18
- uploadFiles: (parentGroup: FormGroup, files: FileList, uploadComponent: FileUploadFieldComponent | ImageUploadFieldComponent) => Promise<unknown> | unknown;
17
+ uploadFiles: (parentGroup: FormGroup, files: FileList, uploadComponent: any /** FileUploadFieldComponent | ImageUploadFieldComponent */) => Promise<unknown> | unknown;
19
18
  showUploadProgress?: boolean;
20
19
  disableOnUpload?: boolean;
21
20
  uploadButtonType?: ButtonType;
@@ -1,6 +1,5 @@
1
1
  import { ThemePalette } from '@angular/material/core';
2
- import { CrisprControlConfig, ControlType } from './';
3
- import { SubGroupConfig } from './crispr-field.config';
2
+ import { CrisprControlConfig, ControlType, SubGroupConfig } from './crispr-field.config';
4
3
  export interface FormGroupListConfig extends CrisprControlConfig {
5
4
  controlType: ControlType.GROUP_LIST;
6
5
  itemConfig: SubGroupConfig;
@@ -1,5 +1,4 @@
1
- import { CrisprFieldConfig, ControlType } from '../models';
2
- import { FieldDescriptors } from './crispr-field.config';
1
+ import { FieldDescriptors, CrisprFieldConfig, ControlType } from './crispr-field.config';
3
2
  export interface HeadingConfig extends Omit<CrisprFieldConfig, 'controlType'>, Omit<FieldDescriptors, 'placeholder' | 'fieldSuffix'> {
4
3
  controlType?: ControlType.HEADING;
5
4
  typographyClass?: string;
@@ -1,5 +1,6 @@
1
1
  import { FormGroup } from '@angular/forms';
2
- import { CrisprControlConfig, ControlType, ButtonType, MatFieldProperties } from '../models';
2
+ import { CrisprControlConfig, ControlType, MatFieldProperties } from './crispr-field.config';
3
+ import { ButtonType } from './button.config';
3
4
  export declare type ImageUploadFieldConfig = CrisprControlConfig & MatFieldProperties & {
4
5
  controlType: ControlType.IMAGE_UPLOAD;
5
6
  label: string;
File without changes
@@ -1,5 +1,4 @@
1
- import { CrisprControlConfig } from '../models';
2
- import { ControlType, FieldDescriptors, MatFieldProperties } from './crispr-field.config';
1
+ import { ControlType, FieldDescriptors, MatFieldProperties, CrisprControlConfig } from './crispr-field.config';
3
2
  export interface InputFieldConfig extends CrisprControlConfig, FieldDescriptors, MatFieldProperties {
4
3
  controlType: ControlType.INPUT;
5
4
  inputType?: InputType;
File without changes
@@ -1,7 +1,6 @@
1
- import { CrisprControlConfig } from '../models';
2
1
  import { Observable } from 'rxjs';
3
2
  import { FormGroup } from '@angular/forms';
4
- import { ControlType, FieldDescriptors, Info, MatFieldProperties } from './crispr-field.config';
3
+ import { ControlType, FieldDescriptors, Info, MatFieldProperties, CrisprControlConfig } from './crispr-field.config';
5
4
  export interface SelectFieldConfig extends Omit<CrisprControlConfig, 'placeholder'>, FieldDescriptors, MatFieldProperties {
6
5
  controlType: ControlType.SELECT;
7
6
  emptyOptionsMessage?: string;
@@ -1,5 +1,4 @@
1
- import { CrisprControlConfig, ControlType } from '../models';
2
- import { FieldDescriptors, MatFieldProperties } from './crispr-field.config';
1
+ import { FieldDescriptors, MatFieldProperties, CrisprControlConfig, ControlType } from './crispr-field.config';
3
2
  export interface SliderFieldConfig extends CrisprControlConfig, Pick<FieldDescriptors, 'label' | 'info'>, Pick<MatFieldProperties, 'color'> {
4
3
  controlType: ControlType.SLIDER;
5
4
  displayWith?: (value: number) => string | number;
@@ -1,5 +1,4 @@
1
- import { CrisprControlConfig, ControlType } from '../models';
2
- import { FieldDescriptors, MatFieldProperties } from './crispr-field.config';
1
+ import { FieldDescriptors, MatFieldProperties, CrisprControlConfig, ControlType } from './crispr-field.config';
3
2
  export interface TextareaFieldConfig extends CrisprControlConfig, FieldDescriptors, MatFieldProperties {
4
3
  controlType: ControlType.TEXTAREA;
5
4
  rows?: number;
@@ -1,6 +1,5 @@
1
1
  import { FormGroup } from '@angular/forms';
2
- import { CrisprControlConfig, ControlType } from '../models';
3
- import { FieldDescriptors, MatFieldProperties } from './crispr-field.config';
2
+ import { FieldDescriptors, MatFieldProperties, CrisprControlConfig, ControlType } from './crispr-field.config';
4
3
  import { OptionsType } from './select-field.config';
5
4
  export declare type UnitConversionFieldConfig<ST = unknown, UT = unknown> = CrisprControlConfig & FieldDescriptors & MatFieldProperties & {
6
5
  controlType: ControlType.UNIT_CONVERSION;
File without changes
@@ -0,0 +1 @@
1
+ export * from './form.operators';
@@ -0,0 +1,4 @@
1
+ export * from './operators';
2
+ export * from './models';
3
+ export * from './abstracts';
4
+ export * from './functions';
package/esm2020/index.mjs DELETED
@@ -1,2 +0,0 @@
1
- export * from './lib/public_api';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL2NyaXNwci1mb3Jtcy9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxrQkFBa0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGliL3B1YmxpY19hcGknO1xuXG4iXX0=
@@ -1,30 +0,0 @@
1
- import { Directive } from '@angular/core';
2
- import { FormControl } from '@angular/forms';
3
- import { debounceTime, distinctUntilChanged, map, shareReplay, startWith, switchMap } from 'rxjs/operators';
4
- import { crisprControlMixin } from './crispr-control.mixin';
5
- import { CrisprFieldComponent } from './crispr-field.abstract';
6
- import { observablifyOptions } from '../form.helpers';
7
- import * as i0 from "@angular/core";
8
- const AbstractAutocompleteFieldMixin = crisprControlMixin(CrisprFieldComponent);
9
- // eslint-disable-next-line @angular-eslint/directive-class-suffix
10
- export class AbstractAutocompleteComponent extends AbstractAutocompleteFieldMixin {
11
- constructor() {
12
- super(...arguments);
13
- // we need a separate control for the UI because of the way the material autocomplete chiplist works
14
- this.autocompleteInputControl = new FormControl('');
15
- }
16
- ngOnInit() {
17
- super.ngOnInit();
18
- this.group.addControl(this.config.controlName, new FormControl());
19
- // filter options by the search string using either the default filter function or one passed in through config
20
- this.options$ = this.autocompleteInputControl.valueChanges.pipe(
21
- // this is needed to have the options panel to open on focus
22
- startWith(''), debounceTime(this.config.typeDebounceTime), map((searchText) => typeof searchText === 'string' ? searchText?.trim() : ''), distinctUntilChanged(), switchMap((searchText) => observablifyOptions(this.config.options, this.group, searchText)), shareReplay(1));
23
- }
24
- }
25
- AbstractAutocompleteComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: AbstractAutocompleteComponent, deps: null, target: i0.ɵɵFactoryTarget.Directive });
26
- AbstractAutocompleteComponent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.0.1", type: AbstractAutocompleteComponent, usesInheritance: true, ngImport: i0 });
27
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: AbstractAutocompleteComponent, decorators: [{
28
- type: Directive
29
- }] });
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLWZpZWxkLmFic3RyYWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jcmlzcHItZm9ybXMvc3JjL2xpYi9hYnN0cmFjdHMvYXV0b2NvbXBsZXRlLWZpZWxkLmFic3RyYWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBVSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLE9BQU8sRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFNUcsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFNUQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDL0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBSXRELE1BQU0sOEJBQThCLEdBQUcsa0JBQWtCLENBQTBCLG9CQUFvQixDQUFDLENBQUM7QUFHekcsa0VBQWtFO0FBQ2xFLE1BQU0sT0FBTyw2QkFDWCxTQUFRLDhCQUE4QjtJQUh4Qzs7UUFJRSxvR0FBb0c7UUFDcEcsNkJBQXdCLEdBQUcsSUFBSSxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7S0FrQmhEO0lBZkMsUUFBUTtRQUNOLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUVqQixJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxJQUFJLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDbEUsK0dBQStHO1FBQy9HLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLHdCQUF3QixDQUFDLFlBQVksQ0FBQyxJQUFJO1FBQzdELDREQUE0RDtRQUM1RCxTQUFTLENBQUMsRUFBRSxDQUFDLEVBQ2IsWUFBWSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsRUFDMUMsR0FBRyxDQUFDLENBQUMsVUFBa0IsRUFBRSxFQUFFLENBQUMsT0FBTyxVQUFVLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUNyRixvQkFBb0IsRUFBRSxFQUN0QixTQUFTLENBQUMsQ0FBQyxVQUFrQixFQUFFLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBQyxDQUFDLEVBQ25HLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FDZixDQUFDO0lBQ0osQ0FBQzs7MEhBcEJVLDZCQUE2Qjs4R0FBN0IsNkJBQTZCOzJGQUE3Qiw2QkFBNkI7a0JBRnpDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPbkluaXQsIERpcmVjdGl2ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIHNoYXJlUmVwbGF5LCBzdGFydFdpdGgsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgY3Jpc3ByQ29udHJvbE1peGluIH0gZnJvbSAnLi9jcmlzcHItY29udHJvbC5taXhpbic7XG5pbXBvcnQgdHlwZSB7IEF1dG9jb21wbGV0ZUZpZWxkQ29uZmlnLCBBdXRvY29tcGxldGVDaGlwbGlzdEZpZWxkQ29uZmlnLCBTZWxlY3RPcHRpb24gfSBmcm9tICcuLi9tb2RlbHMnO1xuaW1wb3J0IHsgQ3Jpc3ByRmllbGRDb21wb25lbnQgfSBmcm9tICcuL2NyaXNwci1maWVsZC5hYnN0cmFjdCc7XG5pbXBvcnQgeyBvYnNlcnZhYmxpZnlPcHRpb25zIH0gZnJvbSAnLi4vZm9ybS5oZWxwZXJzJztcblxudHlwZSBBdXRvY29tcGxldGVDb25maWdUeXBlcyA9IEF1dG9jb21wbGV0ZUZpZWxkQ29uZmlnIHwgQXV0b2NvbXBsZXRlQ2hpcGxpc3RGaWVsZENvbmZpZztcblxuY29uc3QgQWJzdHJhY3RBdXRvY29tcGxldGVGaWVsZE1peGluID0gY3Jpc3ByQ29udHJvbE1peGluPEF1dG9jb21wbGV0ZUNvbmZpZ1R5cGVzPihDcmlzcHJGaWVsZENvbXBvbmVudCk7XG5cbkBEaXJlY3RpdmUoKVxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtY2xhc3Mtc3VmZml4XG5leHBvcnQgY2xhc3MgQWJzdHJhY3RBdXRvY29tcGxldGVDb21wb25lbnQ8Qz5cbiAgZXh0ZW5kcyBBYnN0cmFjdEF1dG9jb21wbGV0ZUZpZWxkTWl4aW4gaW1wbGVtZW50cyBPbkluaXQge1xuICAvLyB3ZSBuZWVkIGEgc2VwYXJhdGUgY29udHJvbCBmb3IgdGhlIFVJIGJlY2F1c2Ugb2YgdGhlIHdheSB0aGUgbWF0ZXJpYWwgYXV0b2NvbXBsZXRlIGNoaXBsaXN0IHdvcmtzXG4gIGF1dG9jb21wbGV0ZUlucHV0Q29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgnJyk7XG4gIG9wdGlvbnMkOiBPYnNlcnZhYmxlPFNlbGVjdE9wdGlvbltdPlxuICBjb25maWc6IEF1dG9jb21wbGV0ZUNvbmZpZ1R5cGVzICYgQztcbiAgbmdPbkluaXQoKSB7XG4gICAgc3VwZXIubmdPbkluaXQoKTtcblxuICAgIHRoaXMuZ3JvdXAuYWRkQ29udHJvbCh0aGlzLmNvbmZpZy5jb250cm9sTmFtZSwgbmV3IEZvcm1Db250cm9sKCkpO1xuICAgIC8vIGZpbHRlciBvcHRpb25zIGJ5IHRoZSBzZWFyY2ggc3RyaW5nIHVzaW5nIGVpdGhlciB0aGUgZGVmYXVsdCBmaWx0ZXIgZnVuY3Rpb24gb3Igb25lIHBhc3NlZCBpbiB0aHJvdWdoIGNvbmZpZ1xuICAgIHRoaXMub3B0aW9ucyQgPSB0aGlzLmF1dG9jb21wbGV0ZUlucHV0Q29udHJvbC52YWx1ZUNoYW5nZXMucGlwZShcbiAgICAgIC8vIHRoaXMgaXMgbmVlZGVkIHRvIGhhdmUgdGhlIG9wdGlvbnMgcGFuZWwgdG8gb3BlbiBvbiBmb2N1c1xuICAgICAgc3RhcnRXaXRoKCcnKSxcbiAgICAgIGRlYm91bmNlVGltZSh0aGlzLmNvbmZpZy50eXBlRGVib3VuY2VUaW1lKSxcbiAgICAgIG1hcCgoc2VhcmNoVGV4dDogc3RyaW5nKSA9PiB0eXBlb2Ygc2VhcmNoVGV4dCA9PT0gJ3N0cmluZycgPyBzZWFyY2hUZXh0Py50cmltKCkgOiAnJyksXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgc3dpdGNoTWFwKChzZWFyY2hUZXh0OiBzdHJpbmcpID0+IG9ic2VydmFibGlmeU9wdGlvbnModGhpcy5jb25maWcub3B0aW9ucywgdGhpcy5ncm91cCwgc2VhcmNoVGV4dCkpLFxuICAgICAgc2hhcmVSZXBsYXkoMSksXG4gICAgKTtcbiAgfVxufVxuIl19
@@ -1,27 +0,0 @@
1
- import { ControlType } from '../models/crispr-field.config';
2
- export function crisprControlMixin(BaseClass) {
3
- return class extends BaseClass {
4
- set value(value) {
5
- this.setControlValue(value);
6
- this._value = value;
7
- }
8
- get value() {
9
- return this._value;
10
- }
11
- ngOnInit() {
12
- super.ngOnInit();
13
- this.control = this.group.get(this.config.controlName);
14
- this.setControlValue(this.value);
15
- // setTimeouts are ugly but this seems to be the only way to get the computed field to compute initial values
16
- setTimeout(() => {
17
- this.control.updateValueAndValidity();
18
- });
19
- }
20
- setControlValue(value) {
21
- if (value && this.control && this.config.controlType !== ControlType.SUB_GROUP) {
22
- this.control.setValue(value);
23
- }
24
- }
25
- };
26
- }
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3Jpc3ByLWNvbnRyb2wubWl4aW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NyaXNwci1mb3Jtcy9zcmMvbGliL2Fic3RyYWN0cy9jcmlzcHItY29udHJvbC5taXhpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQXFDLFdBQVcsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRy9GLE1BQU0sVUFBVSxrQkFBa0IsQ0FBZ0MsU0FBc0M7SUFDdEcsT0FBTyxLQUFNLFNBQVEsU0FBWTtRQU0vQixJQUFJLEtBQUssQ0FBQyxLQUFtQjtZQUMzQixJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzVCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLENBQUM7UUFFRCxJQUFJLEtBQUs7WUFDUCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDckIsQ0FBQztRQUVELFFBQVE7WUFDTixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ3ZELElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2pDLDZHQUE2RztZQUM3RyxVQUFVLENBQUMsR0FBRSxFQUFFO2dCQUNiLElBQUksQ0FBQyxPQUFPLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztZQUN4QyxDQUFDLENBQUMsQ0FBQTtRQUNKLENBQUM7UUFFRCxlQUFlLENBQUMsS0FBbUI7WUFDakMsSUFBRyxLQUFLLElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsS0FBSyxXQUFXLENBQUMsU0FBUyxFQUFFO2dCQUM3RSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQTthQUM3QjtRQUNILENBQUM7S0FDRixDQUFBO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZvcm1Hcm91cCwgQWJzdHJhY3RDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQ3Jpc3ByQ29udHJvbENvbmZpZywgQ29udHJvbFZhbHVlLCBDb250cm9sVHlwZSB9IGZyb20gJy4uL21vZGVscy9jcmlzcHItZmllbGQuY29uZmlnJztcbmltcG9ydCB7IENyaXNwckZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi9jcmlzcHItZmllbGQuYWJzdHJhY3QnO1xuXG5leHBvcnQgZnVuY3Rpb24gY3Jpc3ByQ29udHJvbE1peGluPEMgZXh0ZW5kcyBDcmlzcHJDb250cm9sQ29uZmlnPihCYXNlQ2xhc3M6IHR5cGVvZiBDcmlzcHJGaWVsZENvbXBvbmVudCkge1xuICByZXR1cm4gY2xhc3MgZXh0ZW5kcyBCYXNlQ2xhc3M8Qz4ge1xuICAgIGNvbmZpZzogQztcbiAgICBncm91cDogRm9ybUdyb3VwO1xuICAgIGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbDtcblxuICAgIF92YWx1ZTogQ29udHJvbFZhbHVlO1xuICAgIHNldCB2YWx1ZSh2YWx1ZTogQ29udHJvbFZhbHVlKSB7XG4gICAgICB0aGlzLnNldENvbnRyb2xWYWx1ZSh2YWx1ZSk7XG4gICAgICB0aGlzLl92YWx1ZSA9IHZhbHVlO1xuICAgIH1cblxuICAgIGdldCB2YWx1ZSgpIHtcbiAgICAgIHJldHVybiB0aGlzLl92YWx1ZTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICB0aGlzLmNvbnRyb2wgPSB0aGlzLmdyb3VwLmdldCh0aGlzLmNvbmZpZy5jb250cm9sTmFtZSk7XG4gICAgICB0aGlzLnNldENvbnRyb2xWYWx1ZSh0aGlzLnZhbHVlKTtcbiAgICAgIC8vIHNldFRpbWVvdXRzIGFyZSB1Z2x5IGJ1dCB0aGlzIHNlZW1zIHRvIGJlIHRoZSBvbmx5IHdheSB0byBnZXQgdGhlIGNvbXB1dGVkIGZpZWxkIHRvIGNvbXB1dGUgaW5pdGlhbCB2YWx1ZXNcbiAgICAgIHNldFRpbWVvdXQoKCk9PiB7XG4gICAgICAgIHRoaXMuY29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgICB9KVxuICAgIH1cblxuICAgIHNldENvbnRyb2xWYWx1ZSh2YWx1ZTogQ29udHJvbFZhbHVlKSB7XG4gICAgICBpZih2YWx1ZSAmJiB0aGlzLmNvbnRyb2wgJiYgdGhpcy5jb25maWcuY29udHJvbFR5cGUgIT09IENvbnRyb2xUeXBlLlNVQl9HUk9VUCkge1xuICAgICAgICB0aGlzLmNvbnRyb2wuc2V0VmFsdWUodmFsdWUpXG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -1,20 +0,0 @@
1
- import { Directive } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- // eslint-disable-next-line @angular-eslint/directive-class-suffix
4
- export class CrisprFieldComponent {
5
- ngOnInit() {
6
- this.applyDefaultConfig();
7
- }
8
- applyDefaultConfig() {
9
- this.config = this.defaultConfig ? { ...this.defaultConfig, ...this.config } : this.config;
10
- }
11
- }
12
- CrisprFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: CrisprFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Directive });
13
- CrisprFieldComponent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.0.1", type: CrisprFieldComponent, isStandalone: true, ngImport: i0 });
14
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: CrisprFieldComponent, decorators: [{
15
- type: Directive,
16
- args: [{
17
- standalone: true
18
- }]
19
- }] });
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3Jpc3ByLWZpZWxkLmFic3RyYWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jcmlzcHItZm9ybXMvc3JjL2xpYi9hYnN0cmFjdHMvY3Jpc3ByLWZpZWxkLmFic3RyYWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFBVSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBS2xELGtFQUFrRTtBQUNsRSxNQUFNLE9BQWdCLG9CQUFvQjtJQUl4QyxRQUFRO1FBQ04sSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEVBQUMsR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQzNGLENBQUM7O2lIQVZtQixvQkFBb0I7cUdBQXBCLG9CQUFvQjsyRkFBcEIsb0JBQW9CO2tCQUp6QyxTQUFTO21CQUFDO29CQUNULFVBQVUsRUFBRSxJQUFJO2lCQUNqQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtcbiAgQ3Jpc3ByRmllbGRDb25maWcsXG59IGZyb20gJy4uL21vZGVscyc7XG5pbXBvcnQgeyBPbkluaXQsIERpcmVjdGl2ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvZGlyZWN0aXZlLWNsYXNzLXN1ZmZpeFxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIENyaXNwckZpZWxkQ29tcG9uZW50PEMgZXh0ZW5kcyBDcmlzcHJGaWVsZENvbmZpZz4gaW1wbGVtZW50cyBPbkluaXQge1xuICBjb25maWc6IEM7XG4gIGRlZmF1bHRDb25maWc/OiBQYXJ0aWFsPEM+XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5hcHBseURlZmF1bHRDb25maWcoKTtcbiAgfVxuXG4gIGFwcGx5RGVmYXVsdENvbmZpZygpIHtcbiAgICB0aGlzLmNvbmZpZyA9IHRoaXMuZGVmYXVsdENvbmZpZyA/IHsuLi50aGlzLmRlZmF1bHRDb25maWcsIC4uLnRoaXMuY29uZmlnfSA6IHRoaXMuY29uZmlnO1xuICB9XG59XG5cblxuIl19
@@ -1,4 +0,0 @@
1
- export * from './autocomplete-field.abstract';
2
- export * from './crispr-control.mixin';
3
- export * from './crispr-field.abstract';
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NyaXNwci1mb3Jtcy9zcmMvbGliL2Fic3RyYWN0cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyx5QkFBeUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYXV0b2NvbXBsZXRlLWZpZWxkLmFic3RyYWN0JztcclxuZXhwb3J0ICogZnJvbSAnLi9jcmlzcHItY29udHJvbC5taXhpbic7XHJcbmV4cG9ydCAqIGZyb20gJy4vY3Jpc3ByLWZpZWxkLmFic3RyYWN0JztcclxuIl19