@tft/crispr-forms 13.0.23 → 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 (320) 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 +127 -0
  18. package/esm2020/ui/autocomplete-chiplist-field/index.mjs +2 -0
  19. package/esm2020/ui/autocomplete-field/autocomplete-field.component.mjs +90 -0
  20. package/esm2020/ui/autocomplete-field/index.mjs +2 -0
  21. package/esm2020/ui/button/button.component.mjs +46 -0
  22. package/esm2020/ui/button/index.mjs +2 -0
  23. package/esm2020/ui/checkbox-field/checkbox-field.component.mjs +42 -0
  24. package/esm2020/ui/checkbox-field/index.mjs +2 -0
  25. package/esm2020/ui/datepicker-field/datepicker-field.component.mjs +60 -0
  26. package/esm2020/ui/datepicker-field/index.mjs +2 -0
  27. package/esm2020/ui/divider/divider.component.mjs +28 -0
  28. package/esm2020/ui/divider/index.mjs +2 -0
  29. package/esm2020/ui/field-container/field-container.component.mjs +58 -0
  30. package/esm2020/ui/field-container/public-api.mjs +2 -0
  31. package/esm2020/ui/field-container/tft-crispr-forms-ui-field-container.mjs +5 -0
  32. package/esm2020/ui/file-dropzone/file-dropzone.directive.mjs +40 -0
  33. package/esm2020/ui/file-dropzone/public-api.mjs +2 -0
  34. package/esm2020/ui/file-dropzone/tft-crispr-forms-ui-file-dropzone.mjs +5 -0
  35. package/esm2020/ui/file-upload/file-upload.component.mjs +108 -0
  36. package/esm2020/ui/file-upload/index.mjs +2 -0
  37. package/esm2020/ui/heading/heading.component.mjs +31 -0
  38. package/esm2020/ui/heading/public-api.mjs +2 -0
  39. package/esm2020/ui/heading/tft-crispr-forms-ui-heading.mjs +5 -0
  40. package/esm2020/ui/image-upload-field/image-upload-field.component.mjs +179 -0
  41. package/esm2020/ui/image-upload-field/public-api.mjs +2 -0
  42. package/esm2020/ui/image-upload-field/tft-crispr-forms-ui-image-upload-field.mjs +5 -0
  43. package/esm2020/ui/info/info.component.mjs +23 -0
  44. package/esm2020/ui/info/public-api.mjs +2 -0
  45. package/esm2020/ui/info/tft-crispr-forms-ui-info.mjs +5 -0
  46. package/esm2020/ui/input-field/index.mjs +2 -0
  47. package/esm2020/ui/input-field/input-field.component.mjs +38 -0
  48. package/esm2020/ui/option/index.mjs +2 -0
  49. package/esm2020/ui/option/option.component.mjs +19 -0
  50. package/esm2020/ui/public-api.mjs +21 -0
  51. package/esm2020/ui/radio-field/index.mjs +2 -0
  52. package/esm2020/ui/radio-field/radio-field.component.mjs +36 -0
  53. package/esm2020/ui/select-field/index.mjs +2 -0
  54. package/esm2020/ui/select-field/select-field.component.mjs +74 -0
  55. package/esm2020/ui/selected-file/public-api.mjs +2 -0
  56. package/esm2020/ui/selected-file/selected-file.component.mjs +26 -0
  57. package/esm2020/ui/selected-file/tft-crispr-forms-ui-selected-file.mjs +5 -0
  58. package/esm2020/ui/slider-field/index.mjs +2 -0
  59. package/esm2020/ui/slider-field/slider-field.component.mjs +41 -0
  60. package/esm2020/ui/textarea-field/index.mjs +2 -0
  61. package/esm2020/ui/textarea-field/textarea-field.component.mjs +39 -0
  62. package/esm2020/ui/tft-crispr-forms-ui.mjs +5 -0
  63. package/esm2020/ui/unit-conversion-field/index.mjs +2 -0
  64. package/esm2020/ui/unit-conversion-field/unit-conversion-field.component.mjs +81 -0
  65. package/esm2020/utils/abstracts/autocomplete-field.abstract.mjs +30 -0
  66. package/esm2020/utils/abstracts/crispr-control.mixin.mjs +27 -0
  67. package/esm2020/utils/abstracts/crispr-field.abstract.mjs +20 -0
  68. package/esm2020/utils/abstracts/index.mjs +4 -0
  69. package/esm2020/utils/functions/buildFormGroupFromConfig.mjs +28 -0
  70. package/esm2020/utils/functions/callOptionsIfFunction.mjs +4 -0
  71. package/esm2020/utils/functions/createControlForType.mjs +19 -0
  72. package/esm2020/utils/functions/filterOptionsByLabel.mjs +11 -0
  73. package/esm2020/utils/functions/image-compression.helpers.mjs +50 -0
  74. package/esm2020/utils/functions/index.mjs +8 -0
  75. package/esm2020/utils/functions/isControlConfig.mjs +7 -0
  76. package/esm2020/utils/functions/observablifyOptions.mjs +29 -0
  77. package/esm2020/utils/models/autocomplete-chiplist-field.config.mjs +2 -0
  78. package/esm2020/utils/models/autocomplete-field.config.mjs +2 -0
  79. package/esm2020/utils/models/button.config.mjs +2 -0
  80. package/esm2020/utils/models/checkbox-field.config.mjs +2 -0
  81. package/esm2020/utils/models/crispr-field.config.mjs +23 -0
  82. package/esm2020/utils/models/datepicker-field.config.mjs +2 -0
  83. package/esm2020/utils/models/divider.config.mjs +2 -0
  84. package/esm2020/utils/models/file-upload-field.config.mjs +2 -0
  85. package/esm2020/utils/models/form-group-list.config.mjs +2 -0
  86. package/esm2020/utils/models/heading.config.mjs +3 -0
  87. package/esm2020/utils/models/image-upload-field.config.mjs +2 -0
  88. package/esm2020/utils/models/index.mjs +18 -0
  89. package/esm2020/utils/models/input-field.config.mjs +2 -0
  90. package/esm2020/utils/models/radio-field.config.mjs +2 -0
  91. package/esm2020/utils/models/select-field.config.mjs +2 -0
  92. package/esm2020/utils/models/slider-field.config.mjs +2 -0
  93. package/esm2020/utils/models/textarea-field.config.mjs +2 -0
  94. package/esm2020/utils/models/unit-conversion-field.config.mjs +2 -0
  95. package/esm2020/utils/operators/form.operators.mjs +24 -0
  96. package/esm2020/utils/operators/index.mjs +2 -0
  97. package/esm2020/utils/public-api.mjs +5 -0
  98. package/esm2020/utils/tft-crispr-forms-utils.mjs +5 -0
  99. package/fesm2015/tft-crispr-forms-ui-field-container.mjs +64 -0
  100. package/fesm2015/tft-crispr-forms-ui-field-container.mjs.map +1 -0
  101. package/fesm2015/tft-crispr-forms-ui-file-dropzone.mjs +47 -0
  102. package/fesm2015/tft-crispr-forms-ui-file-dropzone.mjs.map +1 -0
  103. package/fesm2015/tft-crispr-forms-ui-heading.mjs +37 -0
  104. package/fesm2015/tft-crispr-forms-ui-heading.mjs.map +1 -0
  105. package/fesm2015/tft-crispr-forms-ui-image-upload-field.mjs +182 -0
  106. package/fesm2015/tft-crispr-forms-ui-image-upload-field.mjs.map +1 -0
  107. package/fesm2015/tft-crispr-forms-ui-info.mjs +30 -0
  108. package/fesm2015/tft-crispr-forms-ui-info.mjs.map +1 -0
  109. package/fesm2015/tft-crispr-forms-ui-selected-file.mjs +33 -0
  110. package/fesm2015/tft-crispr-forms-ui-selected-file.mjs.map +1 -0
  111. package/fesm2015/tft-crispr-forms-ui.mjs +684 -0
  112. package/fesm2015/tft-crispr-forms-ui.mjs.map +1 -0
  113. package/fesm2015/tft-crispr-forms-utils.mjs +270 -0
  114. package/fesm2015/tft-crispr-forms-utils.mjs.map +1 -0
  115. package/fesm2015/tft-crispr-forms.mjs +117 -1730
  116. package/fesm2015/tft-crispr-forms.mjs.map +1 -1
  117. package/fesm2020/tft-crispr-forms-ui-field-container.mjs +65 -0
  118. package/fesm2020/tft-crispr-forms-ui-field-container.mjs.map +1 -0
  119. package/fesm2020/tft-crispr-forms-ui-file-dropzone.mjs +47 -0
  120. package/fesm2020/tft-crispr-forms-ui-file-dropzone.mjs.map +1 -0
  121. package/fesm2020/tft-crispr-forms-ui-heading.mjs +37 -0
  122. package/fesm2020/tft-crispr-forms-ui-heading.mjs.map +1 -0
  123. package/fesm2020/tft-crispr-forms-ui-image-upload-field.mjs +185 -0
  124. package/fesm2020/tft-crispr-forms-ui-image-upload-field.mjs.map +1 -0
  125. package/fesm2020/tft-crispr-forms-ui-info.mjs +30 -0
  126. package/fesm2020/tft-crispr-forms-ui-info.mjs.map +1 -0
  127. package/fesm2020/tft-crispr-forms-ui-selected-file.mjs +33 -0
  128. package/fesm2020/tft-crispr-forms-ui-selected-file.mjs.map +1 -0
  129. package/fesm2020/tft-crispr-forms-ui.mjs +676 -0
  130. package/fesm2020/tft-crispr-forms-ui.mjs.map +1 -0
  131. package/fesm2020/tft-crispr-forms-utils.mjs +269 -0
  132. package/fesm2020/tft-crispr-forms-utils.mjs.map +1 -0
  133. package/fesm2020/tft-crispr-forms.mjs +117 -1723
  134. package/fesm2020/tft-crispr-forms.mjs.map +1 -1
  135. package/index.d.ts +5 -1
  136. package/package.json +77 -15
  137. package/public-api.d.ts +3 -0
  138. package/src/index.d.ts +1 -0
  139. package/src/lib/crispr-forms.module.d.ts +15 -0
  140. package/{lib → src/lib}/field-component-map.const.d.ts +7 -6
  141. package/{lib → src/lib}/field.directive.d.ts +4 -10
  142. package/{lib → src/lib}/form/form.component.d.ts +3 -3
  143. package/{lib → src/lib}/form-group-list/form-group-list.component.d.ts +12 -14
  144. package/{lib → src/lib}/form-group-list/index.d.ts +0 -1
  145. package/{lib → src/lib}/pipes/crispr-pipes.module.d.ts +0 -0
  146. package/{lib → src/lib}/pipes/initial-control-value.pipe.d.ts +2 -2
  147. package/src/lib/public_api.d.ts +2 -0
  148. package/{lib → src/lib}/sub-group/index.d.ts +0 -0
  149. package/src/lib/sub-group/sub-group.component.d.ts +22 -0
  150. package/{lib → src/lib}/sub-group/sub-group.module.d.ts +2 -2
  151. package/tft-crispr-forms-14.0.1-rc.2.tgz +0 -0
  152. package/ui/README.md +3 -0
  153. package/{lib/material → ui}/autocomplete-chiplist-field/autocomplete-chiplist-field.component.d.ts +2 -3
  154. package/ui/autocomplete-chiplist-field/index.d.ts +1 -0
  155. package/{lib/material → ui}/autocomplete-field/autocomplete-field.component.d.ts +2 -3
  156. package/ui/autocomplete-field/index.d.ts +1 -0
  157. package/{lib/material → ui}/button/button.component.d.ts +2 -3
  158. package/ui/button/index.d.ts +1 -0
  159. package/ui/checkbox-field/checkbox-field.component.d.ts +21 -0
  160. package/ui/checkbox-field/index.d.ts +1 -0
  161. package/{lib/material → ui}/datepicker-field/datepicker-field.component.d.ts +14 -17
  162. package/ui/datepicker-field/index.d.ts +1 -0
  163. package/{lib/material → ui}/divider/divider.component.d.ts +2 -3
  164. package/ui/divider/index.d.ts +1 -0
  165. package/{lib → ui}/field-container/field-container.component.d.ts +3 -10
  166. package/ui/field-container/index.d.ts +5 -0
  167. package/{lib/field-container/index.d.ts → ui/field-container/public-api.d.ts} +0 -0
  168. package/{lib/material/file-upload → ui/file-dropzone}/file-dropzone.directive.d.ts +1 -1
  169. package/ui/file-dropzone/index.d.ts +5 -0
  170. package/{lib/material/file-upload/index.d.ts → ui/file-dropzone/public-api.d.ts} +0 -1
  171. package/ui/file-upload/file-upload.component.d.ts +37 -0
  172. package/ui/file-upload/index.d.ts +1 -0
  173. package/ui/heading/heading.component.d.ts +8 -0
  174. package/ui/heading/index.d.ts +5 -0
  175. package/ui/heading/public-api.d.ts +1 -0
  176. package/ui/image-upload-field/image-upload-field.component.d.ts +48 -0
  177. package/ui/image-upload-field/index.d.ts +5 -0
  178. package/{lib/material/image-upload-field/index.d.ts → ui/image-upload-field/public-api.d.ts} +0 -0
  179. package/ui/index.d.ts +5 -0
  180. package/ui/info/index.d.ts +5 -0
  181. package/ui/info/info.component.d.ts +7 -0
  182. package/ui/info/public-api.d.ts +1 -0
  183. package/ui/input-field/index.d.ts +1 -0
  184. package/ui/input-field/input-field.component.d.ts +22 -0
  185. package/{lib/material → ui}/option/index.d.ts +0 -0
  186. package/{lib/material → ui}/option/option.component.d.ts +2 -2
  187. package/ui/public-api.d.ts +19 -0
  188. package/ui/radio-field/index.d.ts +1 -0
  189. package/ui/radio-field/radio-field.component.d.ts +23 -0
  190. package/ui/select-field/index.d.ts +1 -0
  191. package/{lib/material → ui}/select-field/select-field.component.d.ts +12 -14
  192. package/ui/selected-file/index.d.ts +5 -0
  193. package/ui/selected-file/public-api.d.ts +1 -0
  194. package/ui/selected-file/selected-file.component.d.ts +10 -0
  195. package/ui/slider-field/index.d.ts +1 -0
  196. package/ui/slider-field/slider-field.component.d.ts +25 -0
  197. package/ui/textarea-field/index.d.ts +1 -0
  198. package/ui/textarea-field/textarea-field.component.d.ts +21 -0
  199. package/ui/unit-conversion-field/index.d.ts +1 -0
  200. package/{lib/material → ui}/unit-conversion-field/unit-conversion-field.component.d.ts +14 -17
  201. package/utils/README.md +3 -0
  202. package/{lib → utils}/abstracts/autocomplete-field.abstract.d.ts +4 -4
  203. package/{lib → utils}/abstracts/crispr-control.mixin.d.ts +0 -0
  204. package/{lib → utils}/abstracts/crispr-field.abstract.d.ts +1 -1
  205. package/{lib → utils}/abstracts/index.d.ts +0 -0
  206. package/utils/functions/buildFormGroupFromConfig.d.ts +9 -0
  207. package/utils/functions/callOptionsIfFunction.d.ts +3 -0
  208. package/utils/functions/createControlForType.d.ts +9 -0
  209. package/utils/functions/filterOptionsByLabel.d.ts +7 -0
  210. package/utils/functions/image-compression.helpers.d.ts +5 -0
  211. package/utils/functions/index.d.ts +7 -0
  212. package/utils/functions/isControlConfig.d.ts +5 -0
  213. package/utils/functions/observablifyOptions.d.ts +12 -0
  214. package/utils/index.d.ts +5 -0
  215. package/{lib → utils}/models/autocomplete-chiplist-field.config.d.ts +2 -1
  216. package/{lib → utils}/models/autocomplete-field.config.d.ts +1 -2
  217. package/{lib → utils}/models/button.config.d.ts +0 -0
  218. package/{lib → utils}/models/checkbox-field.config.d.ts +1 -2
  219. package/{lib → utils}/models/crispr-field.config.d.ts +5 -7
  220. package/{lib → utils}/models/datepicker-field.config.d.ts +4 -6
  221. package/{lib → utils}/models/divider.config.d.ts +1 -1
  222. package/{lib → utils}/models/file-upload-field.config.d.ts +3 -4
  223. package/{lib → utils}/models/form-group-list.config.d.ts +1 -2
  224. package/{lib → utils}/models/heading.config.d.ts +1 -2
  225. package/{lib → utils}/models/image-upload-field.config.d.ts +2 -1
  226. package/{lib → utils}/models/index.d.ts +0 -0
  227. package/{lib → utils}/models/input-field.config.d.ts +1 -2
  228. package/{lib → utils}/models/radio-field.config.d.ts +0 -0
  229. package/{lib → utils}/models/select-field.config.d.ts +1 -2
  230. package/{lib → utils}/models/slider-field.config.d.ts +1 -2
  231. package/{lib → utils}/models/textarea-field.config.d.ts +1 -2
  232. package/{lib → utils}/models/unit-conversion-field.config.d.ts +1 -2
  233. package/{lib → utils/operators}/form.operators.d.ts +0 -0
  234. package/utils/operators/index.d.ts +1 -0
  235. package/utils/public-api.d.ts +4 -0
  236. package/esm2020/index.mjs +0 -2
  237. package/esm2020/lib/abstracts/autocomplete-field.abstract.mjs +0 -30
  238. package/esm2020/lib/abstracts/crispr-control.mixin.mjs +0 -27
  239. package/esm2020/lib/abstracts/crispr-field.abstract.mjs +0 -17
  240. package/esm2020/lib/abstracts/index.mjs +0 -4
  241. package/esm2020/lib/crispr-forms.module.mjs +0 -66
  242. package/esm2020/lib/field-component-map.const.mjs +0 -28
  243. package/esm2020/lib/field-container/field-container.component.mjs +0 -85
  244. package/esm2020/lib/field-container/index.mjs +0 -2
  245. package/esm2020/lib/field.directive.mjs +0 -90
  246. package/esm2020/lib/form/form.component.mjs +0 -53
  247. package/esm2020/lib/form-group-list/form-group-list.component.mjs +0 -77
  248. package/esm2020/lib/form-group-list/form-group-list.module.mjs +0 -54
  249. package/esm2020/lib/form-group-list/index.mjs +0 -3
  250. package/esm2020/lib/form.helpers.mjs +0 -190
  251. package/esm2020/lib/form.operators.mjs +0 -24
  252. package/esm2020/lib/material/autocomplete-chiplist-field/autocomplete-chiplist-field.component.mjs +0 -111
  253. package/esm2020/lib/material/autocomplete-field/autocomplete-field.component.mjs +0 -78
  254. package/esm2020/lib/material/button/button.component.mjs +0 -35
  255. package/esm2020/lib/material/checkbox-field/checkbox-field.component.mjs +0 -31
  256. package/esm2020/lib/material/datepicker-field/datepicker-field.component.mjs +0 -45
  257. package/esm2020/lib/material/divider/divider.component.mjs +0 -22
  258. package/esm2020/lib/material/file-upload/file-dropzone.directive.mjs +0 -39
  259. package/esm2020/lib/material/file-upload/file-upload.component.mjs +0 -145
  260. package/esm2020/lib/material/file-upload/index.mjs +0 -3
  261. package/esm2020/lib/material/heading/heading.component.mjs +0 -54
  262. package/esm2020/lib/material/image-upload-field/image-compression.helpers.mjs +0 -4
  263. package/esm2020/lib/material/image-upload-field/image-upload-field.component.mjs +0 -265
  264. package/esm2020/lib/material/image-upload-field/index.mjs +0 -2
  265. package/esm2020/lib/material/index.mjs +0 -18
  266. package/esm2020/lib/material/info/info.component.mjs +0 -46
  267. package/esm2020/lib/material/input-field/input-field.component.mjs +0 -27
  268. package/esm2020/lib/material/material.module.mjs +0 -200
  269. package/esm2020/lib/material/option/index.mjs +0 -2
  270. package/esm2020/lib/material/option/option.component.mjs +0 -15
  271. package/esm2020/lib/material/radio-field/radio-field.component.mjs +0 -29
  272. package/esm2020/lib/material/select-field/select-field.component.mjs +0 -58
  273. package/esm2020/lib/material/selected-file/selected-file.component.mjs +0 -47
  274. package/esm2020/lib/material/slider-field/slider-field.component.mjs +0 -30
  275. package/esm2020/lib/material/textarea-field/textarea-field.component.mjs +0 -28
  276. package/esm2020/lib/material/unit-conversion-field/unit-conversion-field.component.mjs +0 -69
  277. package/esm2020/lib/models/autocomplete-chiplist-field.config.mjs +0 -2
  278. package/esm2020/lib/models/autocomplete-field.config.mjs +0 -2
  279. package/esm2020/lib/models/button.config.mjs +0 -2
  280. package/esm2020/lib/models/checkbox-field.config.mjs +0 -2
  281. package/esm2020/lib/models/crispr-field.config.mjs +0 -23
  282. package/esm2020/lib/models/datepicker-field.config.mjs +0 -2
  283. package/esm2020/lib/models/divider.config.mjs +0 -2
  284. package/esm2020/lib/models/file-upload-field.config.mjs +0 -2
  285. package/esm2020/lib/models/form-group-list.config.mjs +0 -2
  286. package/esm2020/lib/models/heading.config.mjs +0 -3
  287. package/esm2020/lib/models/image-upload-field.config.mjs +0 -2
  288. package/esm2020/lib/models/index.mjs +0 -18
  289. package/esm2020/lib/models/input-field.config.mjs +0 -2
  290. package/esm2020/lib/models/radio-field.config.mjs +0 -2
  291. package/esm2020/lib/models/select-field.config.mjs +0 -2
  292. package/esm2020/lib/models/slider-field.config.mjs +0 -2
  293. package/esm2020/lib/models/textarea-field.config.mjs +0 -2
  294. package/esm2020/lib/models/unit-conversion-field.config.mjs +0 -2
  295. package/esm2020/lib/pipes/crispr-pipes.module.mjs +0 -26
  296. package/esm2020/lib/pipes/initial-control-value.pipe.mjs +0 -20
  297. package/esm2020/lib/public_api.mjs +0 -10
  298. package/esm2020/lib/sub-group/index.mjs +0 -3
  299. package/esm2020/lib/sub-group/sub-group.component.mjs +0 -20
  300. package/esm2020/lib/sub-group/sub-group.module.mjs +0 -45
  301. package/lib/crispr-forms.module.d.ts +0 -16
  302. package/lib/form-group-list/form-group-list.module.d.ts +0 -15
  303. package/lib/form.helpers.d.ts +0 -88
  304. package/lib/material/checkbox-field/checkbox-field.component.d.ts +0 -23
  305. package/lib/material/file-upload/file-upload.component.d.ts +0 -54
  306. package/lib/material/heading/heading.component.d.ts +0 -17
  307. package/lib/material/image-upload-field/image-compression.helpers.d.ts +0 -1
  308. package/lib/material/image-upload-field/image-upload-field.component.d.ts +0 -68
  309. package/lib/material/index.d.ts +0 -17
  310. package/lib/material/info/info.component.d.ts +0 -15
  311. package/lib/material/input-field/input-field.component.d.ts +0 -24
  312. package/lib/material/material.module.d.ts +0 -44
  313. package/lib/material/radio-field/radio-field.component.d.ts +0 -26
  314. package/lib/material/selected-file/selected-file.component.d.ts +0 -17
  315. package/lib/material/slider-field/slider-field.component.d.ts +0 -27
  316. package/lib/material/textarea-field/textarea-field.component.d.ts +0 -24
  317. package/lib/public_api.d.ts +0 -9
  318. package/lib/sub-group/sub-group.component.d.ts +0 -24
  319. package/tft-crispr-forms-13.0.23.tgz +0 -0
  320. package/tft-crispr-forms.d.ts +0 -5
@@ -0,0 +1,21 @@
1
+ import { Pipe } from '@angular/core';
2
+ // eslint-disable-next-line @nrwl/nx/enforce-module-boundaries
3
+ import { isControlConfig } from '@tft/crispr-forms/utils';
4
+ import * as i0 from "@angular/core";
5
+ export class InitialControlValuePipe {
6
+ // TODO: does changing any to unknown break anything?
7
+ transform(initialFormValue, fieldConfig) {
8
+ return (initialFormValue && isControlConfig(fieldConfig))
9
+ ? initialFormValue[fieldConfig.controlName] || null
10
+ : null;
11
+ }
12
+ }
13
+ InitialControlValuePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: InitialControlValuePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
14
+ InitialControlValuePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "14.0.1", ngImport: i0, type: InitialControlValuePipe, name: "initialControlValue" });
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: InitialControlValuePipe, decorators: [{
16
+ type: Pipe,
17
+ args: [{
18
+ name: 'initialControlValue'
19
+ }]
20
+ }] });
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5pdGlhbC1jb250cm9sLXZhbHVlLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NyaXNwci1mb3Jtcy9zcmMvbGliL3BpcGVzL2luaXRpYWwtY29udHJvbC12YWx1ZS5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ3BELDhEQUE4RDtBQUM5RCxPQUFPLEVBQWdDLGVBQWUsRUFBRSxNQUFNLHlCQUF5QixDQUFDOztBQUt4RixNQUFNLE9BQU8sdUJBQXVCO0lBQ2xDLHFEQUFxRDtJQUNyRCxTQUFTLENBQUMsZ0JBQXFELEVBQUUsV0FBMkI7UUFDMUYsT0FBTyxDQUFDLGdCQUFnQixJQUFJLGVBQWUsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUN2RCxDQUFDLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxJQUFJLElBQUk7WUFDbkQsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUNYLENBQUM7O29IQU5VLHVCQUF1QjtrSEFBdkIsdUJBQXVCOzJGQUF2Qix1QkFBdUI7a0JBSG5DLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLHFCQUFxQjtpQkFDNUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQG5yd2wvbngvZW5mb3JjZS1tb2R1bGUtYm91bmRhcmllc1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlLCBBbnlGaWVsZENvbmZpZywgaXNDb250cm9sQ29uZmlnIH0gZnJvbSAnQHRmdC9jcmlzcHItZm9ybXMvdXRpbHMnO1xuXG5AUGlwZSh7XG4gIG5hbWU6ICdpbml0aWFsQ29udHJvbFZhbHVlJ1xufSlcbmV4cG9ydCBjbGFzcyBJbml0aWFsQ29udHJvbFZhbHVlUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICAvLyBUT0RPOiBkb2VzIGNoYW5naW5nIGFueSB0byB1bmtub3duIGJyZWFrIGFueXRoaW5nP1xuICB0cmFuc2Zvcm0oaW5pdGlhbEZvcm1WYWx1ZToge1trZXk6IHN0cmluZ106IENvbnRyb2xWYWx1ZSB8IGFueX0sIGZpZWxkQ29uZmlnOiBBbnlGaWVsZENvbmZpZyk6IHVua25vd24ge1xuICAgIHJldHVybiAoaW5pdGlhbEZvcm1WYWx1ZSAmJiBpc0NvbnRyb2xDb25maWcoZmllbGRDb25maWcpKVxuICAgICAgPyBpbml0aWFsRm9ybVZhbHVlW2ZpZWxkQ29uZmlnLmNvbnRyb2xOYW1lXSB8fCBudWxsXG4gICAgICA6IG51bGw7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,3 @@
1
+ export * from './crispr-forms.module';
2
+ export * from './form/form.component';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY3Jpc3ByLWZvcm1zL3NyYy9saWIvcHVibGljX2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsdUJBQXVCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NyaXNwci1mb3Jtcy5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9mb3JtL2Zvcm0uY29tcG9uZW50JztcbiJdfQ==
@@ -0,0 +1,3 @@
1
+ export * from './sub-group.component';
2
+ export * from './sub-group.module';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NyaXNwci1mb3Jtcy9zcmMvbGliL3N1Yi1ncm91cC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsb0JBQW9CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3N1Yi1ncm91cC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9zdWItZ3JvdXAubW9kdWxlJztcbiJdfQ==
@@ -0,0 +1,21 @@
1
+ import { Component } from '@angular/core';
2
+ // eslint-disable-next-line @nrwl/nx/enforce-module-boundaries
3
+ import { crisprControlMixin, CrisprFieldComponent } from '@tft/crispr-forms/utils';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/common";
6
+ import * as i2 from "../field.directive";
7
+ import * as i3 from "@tft/crispr-forms/ui";
8
+ import * as i4 from "../pipes/initial-control-value.pipe";
9
+ const FormGroupMixin = crisprControlMixin(CrisprFieldComponent);
10
+ export class SubGroupComponent extends FormGroupMixin {
11
+ ngOnInit() {
12
+ super.ngOnInit();
13
+ }
14
+ }
15
+ SubGroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: SubGroupComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
16
+ SubGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.1", type: SubGroupComponent, selector: "crispr-sub-group", usesInheritance: true, ngImport: i0, template: "<crispr-field-container\n [config]=\"config\"\n [group]=\"group\">\n <ng-container\n *ngFor=\"let fieldConfig of config.fields;\"\n crisprField\n [value]=\"value | initialControlValue : fieldConfig\"\n [config]=\"fieldConfig\"\n [group]=\"control\">\n </ng-container>\n</crispr-field-container>\n\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.CrisprFieldDirective, selector: "[crisprField]", inputs: ["config", "group", "value"] }, { kind: "component", type: i3.FieldContainerComponent, selector: "crispr-field-container", inputs: ["config", "group", "inlineField"] }, { kind: "pipe", type: i4.InitialControlValuePipe, name: "initialControlValue" }], preserveWhitespaces: true });
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: SubGroupComponent, decorators: [{
18
+ type: Component,
19
+ args: [{ selector: 'crispr-sub-group', template: "<crispr-field-container\n [config]=\"config\"\n [group]=\"group\">\n <ng-container\n *ngFor=\"let fieldConfig of config.fields;\"\n crisprField\n [value]=\"value | initialControlValue : fieldConfig\"\n [config]=\"fieldConfig\"\n [group]=\"control\">\n </ng-container>\n</crispr-field-container>\n\n" }]
20
+ }] });
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ViLWdyb3VwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY3Jpc3ByLWZvcm1zL3NyYy9saWIvc3ViLWdyb3VwL3N1Yi1ncm91cC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NyaXNwci1mb3Jtcy9zcmMvbGliL3N1Yi1ncm91cC9zdWItZ3JvdXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUdsRCw4REFBOEQ7QUFDOUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLG9CQUFvQixFQUFrQixNQUFNLHlCQUF5QixDQUFDOzs7Ozs7QUFFbkcsTUFBTSxjQUFjLEdBQUcsa0JBQWtCLENBQWlCLG9CQUFvQixDQUFDLENBQUM7QUFVaEYsTUFBTSxPQUFPLGlCQUFrQixTQUFRLGNBQWM7SUFHbkQsUUFBUTtRQUNOLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNuQixDQUFDOzs4R0FMVSxpQkFBaUI7a0dBQWpCLGlCQUFpQiwrRUNoQjlCLCtUQVlBOzJGRElhLGlCQUFpQjtrQkFSN0IsU0FBUzsrQkFDRSxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQG5yd2wvbngvZW5mb3JjZS1tb2R1bGUtYm91bmRhcmllc1xuaW1wb3J0IHsgY3Jpc3ByQ29udHJvbE1peGluLCBDcmlzcHJGaWVsZENvbXBvbmVudCwgU3ViR3JvdXBDb25maWcgfSBmcm9tICdAdGZ0L2NyaXNwci1mb3Jtcy91dGlscyc7XG5cbmNvbnN0IEZvcm1Hcm91cE1peGluID0gY3Jpc3ByQ29udHJvbE1peGluPFN1Ykdyb3VwQ29uZmlnPihDcmlzcHJGaWVsZENvbXBvbmVudCk7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NyaXNwci1zdWItZ3JvdXAnLFxuICB0ZW1wbGF0ZVVybDogJy4vc3ViLWdyb3VwLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc3ViLWdyb3VwLmNvbXBvbmVudC5zY3NzJ10sXG4gIC8vIFRPRE86IGNoaWxkIGltYWdlIHVwbG9hZCBjb250cm9scyBhcmVuJ3QgZ2V0dGluZyB1cGRhdGVkIGFwcHJvcHJpYXRlbHkgd2hlbiBpbiBPblB1c2ggc3RyYXRlZ3kuXG4gIC8vIFdlIGNhbiBhZGQgY2RyIHRvIHRoaXMgY2xhc3MsIGJ1dCBldmVyeXRoaW5nIHRoYXQgZXh0ZW5kcyBpdCB3aWxsIG5lZWQgdGhlIGNkciBhdHRhY2hlZFxuICAvLyBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBTdWJHcm91cENvbXBvbmVudCBleHRlbmRzIEZvcm1Hcm91cE1peGluIGltcGxlbWVudHMgT25Jbml0IHtcbiAgZ3JvdXA6IEZvcm1Hcm91cDtcblxuICBuZ09uSW5pdCgpIHtcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xuICB9XG59XG4iLCI8Y3Jpc3ByLWZpZWxkLWNvbnRhaW5lclxuICBbY29uZmlnXT1cImNvbmZpZ1wiXG4gIFtncm91cF09XCJncm91cFwiPlxuICA8bmctY29udGFpbmVyXG4gICAgKm5nRm9yPVwibGV0IGZpZWxkQ29uZmlnIG9mIGNvbmZpZy5maWVsZHM7XCJcbiAgICBjcmlzcHJGaWVsZFxuICAgIFt2YWx1ZV09XCJ2YWx1ZSB8IGluaXRpYWxDb250cm9sVmFsdWUgOiBmaWVsZENvbmZpZ1wiXG4gICAgW2NvbmZpZ109XCJmaWVsZENvbmZpZ1wiXG4gICAgW2dyb3VwXT1cImNvbnRyb2xcIj5cbiAgPC9uZy1jb250YWluZXI+XG48L2NyaXNwci1maWVsZC1jb250YWluZXI+XG5cbiJdfQ==
@@ -0,0 +1,42 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { CrisprFieldDirective } from '../field.directive';
4
+ import { CrisprPipesModule } from '../pipes/crispr-pipes.module';
5
+ import { SubGroupComponent } from './sub-group.component';
6
+ import { FormValidationHandlerModule } from '@tft/form-validation-handler';
7
+ import { FieldContainerComponent } from '@tft/crispr-forms/ui';
8
+ import * as i0 from "@angular/core";
9
+ export class SubGroupModule {
10
+ }
11
+ SubGroupModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: SubGroupModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
12
+ SubGroupModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.1", ngImport: i0, type: SubGroupModule, declarations: [SubGroupComponent], imports: [CommonModule,
13
+ CrisprFieldDirective,
14
+ FieldContainerComponent,
15
+ CrisprPipesModule,
16
+ // TODO: Does this need to be here?
17
+ FormValidationHandlerModule], exports: [SubGroupComponent] });
18
+ SubGroupModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: SubGroupModule, imports: [CommonModule,
19
+ FieldContainerComponent,
20
+ CrisprPipesModule,
21
+ // TODO: Does this need to be here?
22
+ FormValidationHandlerModule] });
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: SubGroupModule, decorators: [{
24
+ type: NgModule,
25
+ args: [{
26
+ imports: [
27
+ CommonModule,
28
+ CrisprFieldDirective,
29
+ FieldContainerComponent,
30
+ CrisprPipesModule,
31
+ // TODO: Does this need to be here?
32
+ FormValidationHandlerModule
33
+ ],
34
+ exports: [
35
+ SubGroupComponent
36
+ ],
37
+ declarations: [
38
+ SubGroupComponent
39
+ ]
40
+ }]
41
+ }] });
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ViLWdyb3VwLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY3Jpc3ByLWZvcm1zL3NyYy9saWIvc3ViLWdyb3VwL3N1Yi1ncm91cC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDMUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDakUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDM0UsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sc0JBQXNCLENBQUM7O0FBa0IvRCxNQUFNLE9BQU8sY0FBYzs7MkdBQWQsY0FBYzs0R0FBZCxjQUFjLGlCQUp2QixpQkFBaUIsYUFYakIsWUFBWTtRQUNaLG9CQUFvQjtRQUNwQix1QkFBdUI7UUFDdkIsaUJBQWlCO1FBQ2pCLG1DQUFtQztRQUNuQywyQkFBMkIsYUFHM0IsaUJBQWlCOzRHQU9SLGNBQWMsWUFmdkIsWUFBWTtRQUVaLHVCQUF1QjtRQUN2QixpQkFBaUI7UUFDakIsbUNBQW1DO1FBQ25DLDJCQUEyQjsyRkFVbEIsY0FBYztrQkFqQjFCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osb0JBQW9CO3dCQUNwQix1QkFBdUI7d0JBQ3ZCLGlCQUFpQjt3QkFDakIsbUNBQW1DO3dCQUNuQywyQkFBMkI7cUJBQzVCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxpQkFBaUI7cUJBQ2xCO29CQUNELFlBQVksRUFBRTt3QkFDWixpQkFBaUI7cUJBQ2xCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDcmlzcHJGaWVsZERpcmVjdGl2ZSB9IGZyb20gJy4uL2ZpZWxkLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBDcmlzcHJQaXBlc01vZHVsZSB9IGZyb20gJy4uL3BpcGVzL2NyaXNwci1waXBlcy5tb2R1bGUnO1xuaW1wb3J0IHsgU3ViR3JvdXBDb21wb25lbnQgfSBmcm9tICcuL3N1Yi1ncm91cC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRm9ybVZhbGlkYXRpb25IYW5kbGVyTW9kdWxlIH0gZnJvbSAnQHRmdC9mb3JtLXZhbGlkYXRpb24taGFuZGxlcic7XG5pbXBvcnQgeyBGaWVsZENvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gJ0B0ZnQvY3Jpc3ByLWZvcm1zL3VpJztcbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgQ3Jpc3ByRmllbGREaXJlY3RpdmUsXG4gICAgRmllbGRDb250YWluZXJDb21wb25lbnQsXG4gICAgQ3Jpc3ByUGlwZXNNb2R1bGUsXG4gICAgLy8gVE9ETzogRG9lcyB0aGlzIG5lZWQgdG8gYmUgaGVyZT9cbiAgICBGb3JtVmFsaWRhdGlvbkhhbmRsZXJNb2R1bGVcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIFN1Ykdyb3VwQ29tcG9uZW50XG4gIF0sXG4gIGRlY2xhcmF0aW9uczogW1xuICAgIFN1Ykdyb3VwQ29tcG9uZW50XG4gIF1cbn0pXG5cbmV4cG9ydCBjbGFzcyBTdWJHcm91cE1vZHVsZSB7XG59XG4iXX0=
@@ -1,5 +1,5 @@
1
1
  /**
2
2
  * Generated bundle index. Do not edit.
3
3
  */
4
- export * from './index';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGZ0LWNyaXNwci1mb3Jtcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMvY3Jpc3ByLWZvcm1zL3NyYy90ZnQtY3Jpc3ByLWZvcm1zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
4
+ export * from './public-api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGZ0LWNyaXNwci1mb3Jtcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMvY3Jpc3ByLWZvcm1zL3RmdC1jcmlzcHItZm9ybXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
@@ -0,0 +1,127 @@
1
+ import { Component, ChangeDetectionStrategy, ViewChild, ElementRef } from '@angular/core';
2
+ import { map, tap } from 'rxjs/operators';
3
+ import { MatAutocompleteModule, MatAutocompleteTrigger } from '@angular/material/autocomplete';
4
+ import { BehaviorSubject, combineLatest } from 'rxjs';
5
+ import { ENTER } from '@angular/cdk/keycodes';
6
+ import { MatChipsModule } from '@angular/material/chips';
7
+ import { CommonModule } from '@angular/common';
8
+ import { ReactiveFormsModule } from '@angular/forms';
9
+ import { MatOptionModule } from '@angular/material/core';
10
+ import { MatInputModule } from '@angular/material/input';
11
+ import { FieldContainerComponent } from '@tft/crispr-forms/ui/field-container';
12
+ import { OptionComponent } from '../option';
13
+ import { MatIconModule } from '@angular/material/icon';
14
+ // eslint-disable-next-line @nrwl/nx/enforce-module-boundaries
15
+ import { AbstractAutocompleteComponent, DEFAULT_EMPTY_OPTIONS_MESSAGE } from '@tft/crispr-forms/utils';
16
+ import { InfoComponent } from '@tft/crispr-forms/ui/info';
17
+ import * as i0 from "@angular/core";
18
+ import * as i1 from "@angular/common";
19
+ import * as i2 from "@angular/forms";
20
+ import * as i3 from "@angular/material/autocomplete";
21
+ import * as i4 from "@angular/material/core";
22
+ import * as i5 from "@angular/material/form-field";
23
+ import * as i6 from "@angular/material/input";
24
+ import * as i7 from "@angular/material/chips";
25
+ import * as i8 from "@angular/material/icon";
26
+ const defaultConfig = {
27
+ chipsSelectable: true,
28
+ areChipsRemovable: true,
29
+ tabToSelect: true,
30
+ autoActiveFirstOption: true,
31
+ imageUrlParam: 'image',
32
+ typeDebounceTime: 500,
33
+ allowDuplicates: false,
34
+ duplicateCompareFunction: (chip, option) => chip.value === option.value,
35
+ separatorKeyCodes: [ENTER],
36
+ emptyOptionsMessage: DEFAULT_EMPTY_OPTIONS_MESSAGE,
37
+ };
38
+ export class AutocompleteChiplistFieldComponent extends AbstractAutocompleteComponent {
39
+ constructor() {
40
+ super(...arguments);
41
+ this.defaultConfig = defaultConfig;
42
+ this.chips$ = new BehaviorSubject([]);
43
+ this.controlValue$ = this.chips$.pipe(tap(chips => {
44
+ this.control.setValue(chips.map(chip => chip.value));
45
+ }));
46
+ }
47
+ ngOnInit() {
48
+ super.ngOnInit();
49
+ this.remainingOptions$ = combineLatest([
50
+ this.chips$,
51
+ this.options$
52
+ ]).pipe(map(([chips, options]) => {
53
+ return this.config.allowDuplicates
54
+ ? options
55
+ : options?.filter(option => {
56
+ return !chips.some(chip => this.config.duplicateCompareFunction(chip, option));
57
+ });
58
+ }));
59
+ }
60
+ setControlValue(value) {
61
+ if (value) {
62
+ this.chips$.next(value);
63
+ }
64
+ }
65
+ // handles mat selecting
66
+ handleSelect(event) {
67
+ const selectedOption = event.option.value;
68
+ this.chips$.next([...this.chips$.value, selectedOption]);
69
+ this.chipInputRef.nativeElement.value = '';
70
+ this.autocompleteInputControl.setValue('');
71
+ // setTimeout needed because the panel thinks it's still open at this point
72
+ setTimeout(() => this.chipInput.openPanel());
73
+ }
74
+ /**
75
+ * To follow ARIA standards we want to select the active option on blur.
76
+ * matChipInputAddOnBlur should do this but it causes buggy behaviour
77
+ * @param event blur event that triggers the handle blur
78
+ */
79
+ handleTab(_event) {
80
+ if (this.chipInput.activeOption && (this.config.tabToSelect || this.config.addChipOnBlur)) {
81
+ const chip = this.chipInput.activeOption.value;
82
+ this.chips$.next([...this.chips$.value, chip]);
83
+ }
84
+ }
85
+ /**
86
+ * Handles selection via key tokens passed through separatorKeyCodes propert
87
+ * NOTE: If TAB is used focus does not move on to next component
88
+ * @param event
89
+ */
90
+ handleTokenEnd(event) {
91
+ if (this.chipInput.activeOption) {
92
+ this.chipInput.activeOption.select();
93
+ }
94
+ event.chipInput?.clear();
95
+ }
96
+ mapToLabel(option) {
97
+ return option ? option.label : '';
98
+ }
99
+ removeChip(removedChip) {
100
+ const remainingChips = this.chips$.value.filter(chip => chip !== removedChip);
101
+ this.chips$.next(remainingChips);
102
+ }
103
+ }
104
+ AutocompleteChiplistFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: AutocompleteChiplistFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
105
+ AutocompleteChiplistFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.1", type: AutocompleteChiplistFieldComponent, isStandalone: true, selector: "crispr-autocomplete-chiplist-field", viewQueries: [{ propertyName: "chipInput", first: true, predicate: ["autoInput"], descendants: true, read: MatAutocompleteTrigger }, { propertyName: "chipInputRef", first: true, predicate: ["autoInput"], 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\n <mat-chip-list\n #chipList>\n <mat-chip\n class=\"refinement-chip\"\n *ngFor=\"let chip of controlValue$ | async\"\n [selectable]=\"config.chipsSelectable\"\n [removable]=\"config.areChipsRemovable\"\n (removed)=\"removeChip(chip)\">\n <span *ngIf=\"chip.imageUrl as imageUrl\" class=\"image-container\">\n <img [src]=\"imageUrl\" alt=\"image of {{chip.label}}\">\n </span>\n {{chip.label}}\n <mat-icon\n matChipRemove\n *ngIf=\"config.areChipsRemovable\">\n cancel\n </mat-icon>\n </mat-chip>\n <input class=\"hidden-error-directive-anchor\" [formControlName]=\"config.controlName\" type=\"text\"/>\n\n <input\n matInput\n [formControl]=\"autocompleteInputControl\"\n [placeholder]=\"config.placeholder\"\n [matChipInputFor]=\"chipList\"\n [matAutocomplete]=\"auto\"\n (keydown.tab)=\"handleTab($event)\"\n [matChipInputSeparatorKeyCodes]=\"config.separatorKeyCodes\"\n (matChipInputTokenEnd)=\"handleTokenEnd($event)\"\n role=\"searchbox\"\n type=\"text\"\n autocapitalize=\"off\"\n autocorrect=\"off\"\n spellcheck=\"false\"\n #autoInput/>\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-chip-list>\n <mat-autocomplete\n #auto=\"matAutocomplete\"\n [autoActiveFirstOption]=\"this.config.autoActiveFirstOption\"\n (optionSelected)=\"handleSelect($event)\"\n [displayWith]=\"mapToLabel\">\n <ng-container *ngIf=\"remainingOptions$ | async as remainingOptions; else emptyOption\">\n <ng-container *ngIf=\"remainingOptions.length > 0; else emptyOption\">\n <mat-option\n *ngFor=\"let option of remainingOptions$ | async\"\n [value]=\"option\">\n <crispr-option [option]=\"option\"></crispr-option>\n </mat-option>\n </ng-container>\n\n </ng-container>\n <ng-template #emptyOption>\n <mat-option disabled=\"true\">\n {{config.emptyOptionsMessage}}\n </mat-option>\n </ng-template>\n </mat-autocomplete>\n\n <mat-hint *ngIf=\"config.hint && (control.valid || !control.touched)\">{{config.hint}}</mat-hint>\n\n </mat-form-field>\n</crispr-field-container>\n", styles: [".refinement-chip .image-container{width:26px;height:26px;border-radius:50%;overflow:hidden;margin:-2px 4px -2px -8px}.refinement-chip .image-container img{width:100%;height:100%;object-fit:cover}.hidden-error-directive-anchor{display:none}\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.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { 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: "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: MatAutocompleteModule }, { kind: "component", type: i3.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple"], exportAs: ["matAutocomplete"] }, { kind: "directive", type: i3.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { kind: "component", type: i4.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "component", type: i5.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i5.MatLabel, selector: "mat-label" }, { kind: "directive", type: i5.MatSuffix, selector: "[matSuffix]" }, { kind: "directive", type: i6.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatOptionModule }, { kind: "ngmodule", type: MatChipsModule }, { kind: "component", type: i7.MatChipList, selector: "mat-chip-list", inputs: ["role", "aria-describedby", "errorStateMatcher", "multiple", "compareWith", "value", "required", "placeholder", "disabled", "aria-orientation", "selectable", "tabIndex"], outputs: ["change", "valueChange"], exportAs: ["matChipList"] }, { kind: "directive", type: i7.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["color", "disableRipple", "tabIndex", "role", "selected", "value", "selectable", "disabled", "removable"], outputs: ["selectionChange", "destroyed", "removed"], exportAs: ["matChip"] }, { kind: "directive", type: i7.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { kind: "directive", type: i7.MatChipRemove, selector: "[matChipRemove]" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, preserveWhitespaces: true });
106
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: AutocompleteChiplistFieldComponent, decorators: [{
107
+ type: Component,
108
+ args: [{ selector: 'crispr-autocomplete-chiplist-field', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
109
+ CommonModule,
110
+ InfoComponent,
111
+ OptionComponent,
112
+ ReactiveFormsModule,
113
+ FieldContainerComponent,
114
+ MatAutocompleteModule,
115
+ MatInputModule,
116
+ MatOptionModule,
117
+ MatChipsModule,
118
+ MatIconModule
119
+ ], 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\n <mat-chip-list\n #chipList>\n <mat-chip\n class=\"refinement-chip\"\n *ngFor=\"let chip of controlValue$ | async\"\n [selectable]=\"config.chipsSelectable\"\n [removable]=\"config.areChipsRemovable\"\n (removed)=\"removeChip(chip)\">\n <span *ngIf=\"chip.imageUrl as imageUrl\" class=\"image-container\">\n <img [src]=\"imageUrl\" alt=\"image of {{chip.label}}\">\n </span>\n {{chip.label}}\n <mat-icon\n matChipRemove\n *ngIf=\"config.areChipsRemovable\">\n cancel\n </mat-icon>\n </mat-chip>\n <input class=\"hidden-error-directive-anchor\" [formControlName]=\"config.controlName\" type=\"text\"/>\n\n <input\n matInput\n [formControl]=\"autocompleteInputControl\"\n [placeholder]=\"config.placeholder\"\n [matChipInputFor]=\"chipList\"\n [matAutocomplete]=\"auto\"\n (keydown.tab)=\"handleTab($event)\"\n [matChipInputSeparatorKeyCodes]=\"config.separatorKeyCodes\"\n (matChipInputTokenEnd)=\"handleTokenEnd($event)\"\n role=\"searchbox\"\n type=\"text\"\n autocapitalize=\"off\"\n autocorrect=\"off\"\n spellcheck=\"false\"\n #autoInput/>\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-chip-list>\n <mat-autocomplete\n #auto=\"matAutocomplete\"\n [autoActiveFirstOption]=\"this.config.autoActiveFirstOption\"\n (optionSelected)=\"handleSelect($event)\"\n [displayWith]=\"mapToLabel\">\n <ng-container *ngIf=\"remainingOptions$ | async as remainingOptions; else emptyOption\">\n <ng-container *ngIf=\"remainingOptions.length > 0; else emptyOption\">\n <mat-option\n *ngFor=\"let option of remainingOptions$ | async\"\n [value]=\"option\">\n <crispr-option [option]=\"option\"></crispr-option>\n </mat-option>\n </ng-container>\n\n </ng-container>\n <ng-template #emptyOption>\n <mat-option disabled=\"true\">\n {{config.emptyOptionsMessage}}\n </mat-option>\n </ng-template>\n </mat-autocomplete>\n\n <mat-hint *ngIf=\"config.hint && (control.valid || !control.touched)\">{{config.hint}}</mat-hint>\n\n </mat-form-field>\n</crispr-field-container>\n", styles: [".refinement-chip .image-container{width:26px;height:26px;border-radius:50%;overflow:hidden;margin:-2px 4px -2px -8px}.refinement-chip .image-container img{width:100%;height:100%;object-fit:cover}.hidden-error-directive-anchor{display:none}\n"] }]
120
+ }], propDecorators: { chipInput: [{
121
+ type: ViewChild,
122
+ args: ['autoInput', { read: MatAutocompleteTrigger }]
123
+ }], chipInputRef: [{
124
+ type: ViewChild,
125
+ args: ['autoInput']
126
+ }] } });
127
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLWNoaXBsaXN0LWZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY3Jpc3ByLWZvcm1zL3VpL2F1dG9jb21wbGV0ZS1jaGlwbGlzdC1maWVsZC9hdXRvY29tcGxldGUtY2hpcGxpc3QtZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jcmlzcHItZm9ybXMvdWkvYXV0b2NvbXBsZXRlLWNoaXBsaXN0LWZpZWxkL2F1dG9jb21wbGV0ZS1jaGlwbGlzdC1maWVsZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEcsT0FBTyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMxQyxPQUFPLEVBQUUscUJBQXFCLEVBQWdDLHNCQUFzQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDN0gsT0FBTyxFQUFjLGVBQWUsRUFBRSxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbEUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTlDLE9BQU8sRUFBcUIsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDNUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDL0UsT0FBTyxFQUFFLGVBQWUsRUFB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QUFlLDZFQUNmLG1CQUFtQix1aENBQ25CLHVCQUF1Qiw4R0FDdkIscUJBQXFCLGdhQUNyQixjQUFjLCt2QkFDZCxlQUFlLDhCQUNmLGNBQWMsKytCQUNkLGFBQWE7MkZBR0osa0NBQWtDO2tCQW5COUMsU0FBUzsrQkFDRSxvQ0FBb0MsbUJBRzdCLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osYUFBYTt3QkFDYixlQUFlO3dCQUNmLG1CQUFtQjt3QkFDbkIsdUJBQXVCO3dCQUN2QixxQkFBcUI7d0JBQ3JCLGNBQWM7d0JBQ2QsZUFBZTt3QkFDZixjQUFjO3dCQUNkLGFBQWE7cUJBQ2Q7OEJBa0J5RCxTQUFTO3NCQUFsRSxTQUFTO3VCQUFDLFdBQVcsRUFBRSxFQUFFLElBQUksRUFBRSxzQkFBc0IsRUFBRTtnQkFDaEMsWUFBWTtzQkFBbkMsU0FBUzt1QkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBWaWV3Q2hpbGQsIEVsZW1lbnRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IG1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgTWF0QXV0b2NvbXBsZXRlTW9kdWxlLCBNYXRBdXRvY29tcGxldGVTZWxlY3RlZEV2ZW50LCBNYXRBdXRvY29tcGxldGVUcmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYXV0b2NvbXBsZXRlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRU5URVIgfSBmcm9tICdAYW5ndWxhci9jZGsva2V5Y29kZXMnO1xuXG5pbXBvcnQgeyBNYXRDaGlwSW5wdXRFdmVudCwgTWF0Q2hpcHNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGlwcyc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdE9wdGlvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQgeyBGaWVsZENvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gJ0B0ZnQvY3Jpc3ByLWZvcm1zL3VpL2ZpZWxkLWNvbnRhaW5lcic7XG5pbXBvcnQgeyBPcHRpb25Db21wb25lbnQgfSBmcm9tICcuLi9vcHRpb24nO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBucndsL254L2VuZm9yY2UtbW9kdWxlLWJvdW5kYXJpZXNcbmltcG9ydCB7IEF1dG9jb21wbGV0ZUNoaXBsaXN0RmllbGRDb25maWcsIEFic3RyYWN0QXV0b2NvbXBsZXRlQ29tcG9uZW50LCBERUZBVUxUX0VNUFRZX09QVElPTlNfTUVTU0FHRSwgU2VsZWN0T3B0aW9uIH0gZnJvbSAnQHRmdC9jcmlzcHItZm9ybXMvdXRpbHMnO1xuaW1wb3J0IHsgSW5mb0NvbXBvbmVudCB9IGZyb20gJ0B0ZnQvY3Jpc3ByLWZvcm1zL3VpL2luZm8nO1xuXG5jb25zdCBkZWZhdWx0Q29uZmlnOiBQYXJ0aWFsPEF1dG9jb21wbGV0ZUNoaXBsaXN0RmllbGRDb25maWc+ID0ge1xuICBjaGlwc1NlbGVjdGFibGU6IHRydWUsXG4gIGFyZUNoaXBzUmVtb3ZhYmxlOiB0cnVlLFxuICB0YWJUb1NlbGVjdDogdHJ1ZSxcbiAgYXV0b0FjdGl2ZUZpcnN0T3B0aW9uOiB0cnVlLFxuICBpbWFnZVVybFBhcmFtOiAnaW1hZ2UnLFxuICB0eXBlRGVib3VuY2VUaW1lOiA1MDAsXG4gIGFsbG93RHVwbGljYXRlczogZmFsc2UsXG4gIGR1cGxpY2F0ZUNvbXBhcmVGdW5jdGlvbjogKGNoaXAsIG9wdGlvbikgPT4gY2hpcC52YWx1ZSA9PT0gb3B0aW9uLnZhbHVlLFxuICBzZXBhcmF0b3JLZXlDb2RlczogW0VOVEVSXSxcbiAgZW1wdHlPcHRpb25zTWVzc2FnZTogREVGQVVMVF9FTVBUWV9PUFRJT05TX01FU1NBR0UsXG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NyaXNwci1hdXRvY29tcGxldGUtY2hpcGxpc3QtZmllbGQnLFxuICB0ZW1wbGF0ZVVybDogJy4vYXV0b2NvbXBsZXRlLWNoaXBsaXN0LWZpZWxkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYXV0b2NvbXBsZXRlLWNoaXBsaXN0LWZpZWxkLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEluZm9Db21wb25lbnQsXG4gICAgT3B0aW9uQ29tcG9uZW50LFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgRmllbGRDb250YWluZXJDb21wb25lbnQsXG4gICAgTWF0QXV0b2NvbXBsZXRlTW9kdWxlLFxuICAgIE1hdElucHV0TW9kdWxlLFxuICAgIE1hdE9wdGlvbk1vZHVsZSxcbiAgICBNYXRDaGlwc01vZHVsZSxcbiAgICBNYXRJY29uTW9kdWxlXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEF1dG9jb21wbGV0ZUNoaXBsaXN0RmllbGRDb21wb25lbnRcbiAgZXh0ZW5kcyBBYnN0cmFjdEF1dG9jb21wbGV0ZUNvbXBvbmVudDxBdXRvY29tcGxldGVDaGlwbGlzdEZpZWxkQ29uZmlnPiBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIGRlZmF1bHRDb25maWcgPSBkZWZhdWx0Q29uZmlnO1xuICBjaGlwcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFNlbGVjdE9wdGlvbltdPihbXSk7XG4gIHJlbWFpbmluZ09wdGlvbnMkOiBPYnNlcnZhYmxlPFNlbGVjdE9wdGlvbltdPjtcblxuICBjb250cm9sVmFsdWUkID0gdGhpcy5jaGlwcyQucGlwZShcbiAgICB0YXAoY2hpcHMgPT4ge1xuICAgICAgdGhpcy5jb250cm9sLnNldFZhbHVlKGNoaXBzLm1hcChjaGlwID0+IGNoaXAudmFsdWUpKVxuICAgIH0pXG4gICk7XG5cblxuICAvLyBXZSBuZWVkIHVzZSBWaWV3Q2hpbGQgdHdpY2Ugb24gdGhlIHNhbWUgdGVtcGxhdGUgcmVmIHRvIGFjY2VzcyBhcyBkaWZmZXJlbnQgdHlwZXNcbiAgLy8gLSB0aGUgTWF0QXV0b2NvbXBsZXRlVHJpZ2dlciBpcyB1c2VkIHRvIGZvciBzZWxlY3RpbmcgdmFsdWUgb24gdGFiXG4gIC8vIC0gdGhlIEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD4gaXMgdXNlZCB0byBjbGVhciB0aGUgdmFsdWUgZnJvbSBpbnB1dCBlbGVtZW50IG9uIHNlbGVjdGlvblxuICBAVmlld0NoaWxkKCdhdXRvSW5wdXQnLCB7IHJlYWQ6IE1hdEF1dG9jb21wbGV0ZVRyaWdnZXIgfSkgY2hpcElucHV0OiBNYXRBdXRvY29tcGxldGVUcmlnZ2VyO1xuICBAVmlld0NoaWxkKCdhdXRvSW5wdXQnKSBjaGlwSW5wdXRSZWY6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG5cblxuICBuZ09uSW5pdCgpIHtcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgIHRoaXMucmVtYWluaW5nT3B0aW9ucyQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMuY2hpcHMkLFxuICAgICAgdGhpcy5vcHRpb25zJFxuICAgIF0pLnBpcGUoXG4gICAgICBtYXAoKFtjaGlwcywgb3B0aW9uc10pID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29uZmlnLmFsbG93RHVwbGljYXRlc1xuICAgICAgICAgID8gb3B0aW9uc1xuICAgICAgICAgIDogb3B0aW9ucz8uZmlsdGVyKG9wdGlvbiA9PiB7XG4gICAgICAgICAgICByZXR1cm4gIWNoaXBzLnNvbWUoY2hpcCA9PiB0aGlzLmNvbmZpZy5kdXBsaWNhdGVDb21wYXJlRnVuY3Rpb24oY2hpcCwgb3B0aW9uKSk7XG4gICAgICAgICAgfSk7XG4gICAgICB9KVxuICAgIClcbiAgfVxuXG4gIHNldENvbnRyb2xWYWx1ZSh2YWx1ZTogU2VsZWN0T3B0aW9uW10pIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuY2hpcHMkLm5leHQodmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIC8vIGhhbmRsZXMgbWF0IHNlbGVjdGluZ1xuICBoYW5kbGVTZWxlY3QoZXZlbnQ6IE1hdEF1dG9jb21wbGV0ZVNlbGVjdGVkRXZlbnQpIHtcbiAgICBjb25zdCBzZWxlY3RlZE9wdGlvbjogU2VsZWN0T3B0aW9uID0gZXZlbnQub3B0aW9uLnZhbHVlIGFzIFNlbGVjdE9wdGlvbjtcbiAgICB0aGlzLmNoaXBzJC5uZXh0KFsuLi50aGlzLmNoaXBzJC52YWx1ZSwgIHNlbGVjdGVkT3B0aW9uXSk7XG4gICAgdGhpcy5jaGlwSW5wdXRSZWYubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xuICAgIHRoaXMuYXV0b2NvbXBsZXRlSW5wdXRDb250cm9sLnNldFZhbHVlKCcnKTtcbiAgICAvLyBzZXRUaW1lb3V0IG5lZWRlZCBiZWNhdXNlIHRoZSBwYW5lbCB0aGlua3MgaXQncyBzdGlsbCBvcGVuIGF0IHRoaXMgcG9pbnRcbiAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuY2hpcElucHV0Lm9wZW5QYW5lbCgpKVxuICB9XG5cbiAgLyoqXG4gICAqIFRvIGZvbGxvdyBBUklBIHN0YW5kYXJkcyB3ZSB3YW50IHRvIHNlbGVjdCB0aGUgYWN0aXZlIG9wdGlvbiBvbiBibHVyLlxuICAgKiBtYXRDaGlwSW5wdXRBZGRPbkJsdXIgc2hvdWxkIGRvIHRoaXMgYnV0IGl0IGNhdXNlcyBidWdneSBiZWhhdmlvdXJcbiAgICogQHBhcmFtIGV2ZW50IGJsdXIgZXZlbnQgdGhhdCB0cmlnZ2VycyB0aGUgaGFuZGxlIGJsdXJcbiAgICovXG4gIGhhbmRsZVRhYihfZXZlbnQ6IEZvY3VzRXZlbnQpIHtcbiAgICBpZiAodGhpcy5jaGlwSW5wdXQuYWN0aXZlT3B0aW9uICYmICh0aGlzLmNvbmZpZy50YWJUb1NlbGVjdCB8fCB0aGlzLmNvbmZpZy5hZGRDaGlwT25CbHVyKSkge1xuICAgICAgY29uc3QgY2hpcCA9IHRoaXMuY2hpcElucHV0LmFjdGl2ZU9wdGlvbi52YWx1ZTtcbiAgICAgIHRoaXMuY2hpcHMkLm5leHQoWy4uLnRoaXMuY2hpcHMkLnZhbHVlLCAgY2hpcF0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBIYW5kbGVzIHNlbGVjdGlvbiB2aWEga2V5IHRva2VucyBwYXNzZWQgdGhyb3VnaCBzZXBhcmF0b3JLZXlDb2RlcyBwcm9wZXJ0XG4gICAqIE5PVEU6IElmIFRBQiBpcyB1c2VkIGZvY3VzIGRvZXMgbm90IG1vdmUgb24gdG8gbmV4dCBjb21wb25lbnRcbiAgICogQHBhcmFtIGV2ZW50XG4gICAqL1xuICBoYW5kbGVUb2tlbkVuZChldmVudDogTWF0Q2hpcElucHV0RXZlbnQpIHtcbiAgICBpZiAodGhpcy5jaGlwSW5wdXQuYWN0aXZlT3B0aW9uKSB7XG4gICAgICB0aGlzLmNoaXBJbnB1dC5hY3RpdmVPcHRpb24uc2VsZWN0KCk7XG4gICAgfVxuICAgIGV2ZW50LmNoaXBJbnB1dD8uY2xlYXIoKTtcbiAgfVxuXG4gIG1hcFRvTGFiZWwob3B0aW9uOiBTZWxlY3RPcHRpb24pIHtcbiAgICByZXR1cm4gb3B0aW9uID8gb3B0aW9uLmxhYmVsIDogJyc7XG4gIH1cblxuICByZW1vdmVDaGlwKHJlbW92ZWRDaGlwOiBTZWxlY3RPcHRpb24pIHtcbiAgICBjb25zdCByZW1haW5pbmdDaGlwczogU2VsZWN0T3B0aW9uW10gPSB0aGlzLmNoaXBzJC52YWx1ZS5maWx0ZXIoY2hpcCA9PiBjaGlwICE9PSByZW1vdmVkQ2hpcCk7XG4gICAgdGhpcy5jaGlwcyQubmV4dChyZW1haW5pbmdDaGlwcyk7XG4gIH1cbn1cblxuIiwiPGNyaXNwci1maWVsZC1jb250YWluZXJcbiAgW2NvbmZpZ109XCJjb25maWdcIlxuICBbZ3JvdXBdPVwiZ3JvdXBcIj5cblxuICA8bWF0LWZvcm0tZmllbGRcbiAgICBbY29sb3JdPVwiY29uZmlnLmNvbG9yXCJcbiAgICBbYXBwZWFyYW5jZV09XCJjb25maWcuYXBwZWFyYW5jZVwiXG4gICAgW2Zvcm1Hcm91cF09XCJncm91cFwiPlxuICAgIDxtYXQtbGFiZWwgKm5nSWY9XCJjb25maWcubGFiZWxcIj5cbiAgICAgIHt7Y29uZmlnLmxhYmVsfX1cbiAgICA8L21hdC1sYWJlbD5cblxuICAgIDxtYXQtY2hpcC1saXN0XG4gICAgICAjY2hpcExpc3Q+XG4gICAgICA8bWF0LWNoaXBcbiAgICAgICAgY2xhc3M9XCJyZWZpbmVtZW50LWNoaXBcIlxuICAgICAgICAqbmdGb3I9XCJsZXQgY2hpcCBvZiBjb250cm9sVmFsdWUkIHwgYXN5bmNcIlxuICAgICAgICBbc2VsZWN0YWJsZV09XCJjb25maWcuY2hpcHNTZWxlY3RhYmxlXCJcbiAgICAgICAgW3JlbW92YWJsZV09XCJjb25maWcuYXJlQ2hpcHNSZW1vdmFibGVcIlxuICAgICAgICAocmVtb3ZlZCk9XCJyZW1vdmVDaGlwKGNoaXApXCI+XG4gICAgICAgIDxzcGFuICpuZ0lmPVwiY2hpcC5pbWFnZVVybCBhcyBpbWFnZVVybFwiIGNsYXNzPVwiaW1hZ2UtY29udGFpbmVyXCI+XG4gICAgICAgICAgPGltZyBbc3JjXT1cImltYWdlVXJsXCIgYWx0PVwiaW1hZ2Ugb2Yge3tjaGlwLmxhYmVsfX1cIj5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICB7e2NoaXAubGFiZWx9fVxuICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICBtYXRDaGlwUmVtb3ZlXG4gICAgICAgICAgKm5nSWY9XCJjb25maWcuYXJlQ2hpcHNSZW1vdmFibGVcIj5cbiAgICAgICAgICBjYW5jZWxcbiAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgIDwvbWF0LWNoaXA+XG4gICAgICA8aW5wdXQgY2xhc3M9XCJoaWRkZW4tZXJyb3ItZGlyZWN0aXZlLWFuY2hvclwiIFtmb3JtQ29udHJvbE5hbWVdPVwiY29uZmlnLmNvbnRyb2xOYW1lXCIgdHlwZT1cInRleHRcIi8+XG5cbiAgICAgIDxpbnB1dFxuICAgICAgICBtYXRJbnB1dFxuICAgICAgICBbZm9ybUNvbnRyb2xdPVwiYXV0b2NvbXBsZXRlSW5wdXRDb250cm9sXCJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cImNvbmZpZy5wbGFjZWhvbGRlclwiXG4gICAgICAgIFttYXRDaGlwSW5wdXRGb3JdPVwiY2hpcExpc3RcIlxuICAgICAgICBbbWF0QXV0b2NvbXBsZXRlXT1cImF1dG9cIlxuICAgICAgICAoa2V5ZG93bi50YWIpPVwiaGFuZGxlVGFiKCRldmVudClcIlxuICAgICAgICBbbWF0Q2hpcElucHV0U2VwYXJhdG9yS2V5Q29kZXNdPVwiY29uZmlnLnNlcGFyYXRvcktleUNvZGVzXCJcbiAgICAgICAgKG1hdENoaXBJbnB1dFRva2VuRW5kKT1cImhhbmRsZVRva2VuRW5kKCRldmVudClcIlxuICAgICAgICByb2xlPVwic2VhcmNoYm94XCJcbiAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICBhdXRvY2FwaXRhbGl6ZT1cIm9mZlwiXG4gICAgICAgIGF1dG9jb3JyZWN0PVwib2ZmXCJcbiAgICAgICAgc3BlbGxjaGVjaz1cImZhbHNlXCJcbiAgICAgICAgI2F1dG9JbnB1dC8+XG4gICAgICA8c3BhbiAqbmdJZj1cImNvbmZpZy5maWVsZFN1ZmZpeFwiIG1hdFN1ZmZpeD57e2NvbmZpZy5maWVsZFN1ZmZpeH19PC9zcGFuPlxuICAgICAgPGNyaXNwci1pbmZvXG4gICAgICAgICpuZ0lmPVwiY29uZmlnLmluZm9cIlxuICAgICAgICBtYXRTdWZmaXhcbiAgICAgICAgW2luZm9dPVwiY29uZmlnLmluZm8gXCI+XG4gICAgICA8L2NyaXNwci1pbmZvPlxuXG4gICAgPC9tYXQtY2hpcC1saXN0PlxuICAgIDxtYXQtYXV0b2NvbXBsZXRlXG4gICAgICAjYXV0bz1cIm1hdEF1dG9jb21wbGV0ZVwiXG4gICAgICBbYXV0b0FjdGl2ZUZpcnN0T3B0aW9uXT1cInRoaXMuY29uZmlnLmF1dG9BY3RpdmVGaXJzdE9wdGlvblwiXG4gICAgICAob3B0aW9uU2VsZWN0ZWQpPVwiaGFuZGxlU2VsZWN0KCRldmVudClcIlxuICAgICAgW2Rpc3BsYXlXaXRoXT1cIm1hcFRvTGFiZWxcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJyZW1haW5pbmdPcHRpb25zJCB8IGFzeW5jIGFzIHJlbWFpbmluZ09wdGlvbnM7IGVsc2UgZW1wdHlPcHRpb25cIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInJlbWFpbmluZ09wdGlvbnMubGVuZ3RoID4gMDsgZWxzZSBlbXB0eU9wdGlvblwiPlxuICAgICAgICAgICA8bWF0LW9wdGlvblxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiByZW1haW5pbmdPcHRpb25zJCB8IGFzeW5jXCJcbiAgICAgICAgICAgIFt2YWx1ZV09XCJvcHRpb25cIj5cbiAgICAgICAgICAgIDxjcmlzcHItb3B0aW9uIFtvcHRpb25dPVwib3B0aW9uXCI+PC9jcmlzcHItb3B0aW9uPlxuICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLXRlbXBsYXRlICNlbXB0eU9wdGlvbj5cbiAgICAgICAgPG1hdC1vcHRpb24gZGlzYWJsZWQ9XCJ0cnVlXCI+XG4gICAgICAgICAge3tjb25maWcuZW1wdHlPcHRpb25zTWVzc2FnZX19XG4gICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9tYXQtYXV0b2NvbXBsZXRlPlxuXG4gICAgPG1hdC1oaW50ICpuZ0lmPVwiY29uZmlnLmhpbnQgJiYgKGNvbnRyb2wudmFsaWQgfHwgIWNvbnRyb2wudG91Y2hlZClcIj57e2NvbmZpZy5oaW50fX08L21hdC1oaW50PlxuXG4gIDwvbWF0LWZvcm0tZmllbGQ+XG48L2NyaXNwci1maWVsZC1jb250YWluZXI+XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export * from './autocomplete-chiplist-field.component';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NyaXNwci1mb3Jtcy91aS9hdXRvY29tcGxldGUtY2hpcGxpc3QtZmllbGQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx5Q0FBeUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYXV0b2NvbXBsZXRlLWNoaXBsaXN0LWZpZWxkLmNvbXBvbmVudCc7XG4iXX0=
@@ -0,0 +1,90 @@
1
+ import { Component, ViewChild, ChangeDetectionStrategy, ElementRef } from '@angular/core';
2
+ import { MatAutocompleteTrigger, MatAutocompleteModule } from '@angular/material/autocomplete';
3
+ import { CommonModule } from '@angular/common';
4
+ import { ReactiveFormsModule } from '@angular/forms';
5
+ import { FieldContainerComponent } from '@tft/crispr-forms/ui/field-container';
6
+ import { MatInputModule } from '@angular/material/input';
7
+ import { MatOptionModule } from '@angular/material/core';
8
+ import { OptionComponent } from '../option';
9
+ // eslint-disable-next-line @nrwl/nx/enforce-module-boundaries
10
+ import { AbstractAutocompleteComponent, DEFAULT_EMPTY_OPTIONS_MESSAGE } from '@tft/crispr-forms/utils';
11
+ import { InfoComponent } from '@tft/crispr-forms/ui/info';
12
+ import * as i0 from "@angular/core";
13
+ import * as i1 from "@angular/common";
14
+ import * as i2 from "@angular/forms";
15
+ import * as i3 from "@angular/material/autocomplete";
16
+ import * as i4 from "@angular/material/core";
17
+ import * as i5 from "@angular/material/form-field";
18
+ import * as i6 from "@angular/material/input";
19
+ const defaultConfig = {
20
+ autoActiveFirstOption: true,
21
+ typeDebounceTime: 500,
22
+ emptyOptionsMessage: DEFAULT_EMPTY_OPTIONS_MESSAGE
23
+ };
24
+ export class AutocompleteFieldComponent extends AbstractAutocompleteComponent {
25
+ constructor() {
26
+ super(...arguments);
27
+ this.defaultConfig = defaultConfig;
28
+ }
29
+ ngOnInit() {
30
+ super.ngOnInit();
31
+ this.clearFieldSubscription = this.autocompleteInputControl.valueChanges.subscribe((text) => {
32
+ if (typeof text === 'string' && text?.trim() === '') {
33
+ this.control.setValue(null);
34
+ }
35
+ });
36
+ }
37
+ ngOnDestroy() {
38
+ this.clearFieldSubscription.unsubscribe();
39
+ }
40
+ setControlValue(value) {
41
+ if (this.control && value) {
42
+ // sets the initial value on the control if one is passed
43
+ this.control.setValue(value.value || '');
44
+ this.autocompleteInputControl.setValue(value.label || '');
45
+ }
46
+ }
47
+ /**
48
+ * The material autocomplete defaults to displaying the options value instead of its label.
49
+ * We only have the value from the selected option to work with, so we have to pass the options
50
+ * through a function called in the template and return the function that the material displayWith
51
+ * input is expecting.
52
+ * @param options the array of options to search for option with corresponding value
53
+ */
54
+ displayLabel(options) {
55
+ if (this.config.displayWith) {
56
+ return this.config.displayWith(options);
57
+ }
58
+ return (value) => {
59
+ const label = !!options && Array.isArray(options)
60
+ ? options.find((option) => JSON.stringify(option.value) === JSON.stringify(value))?.label : value;
61
+ return label;
62
+ };
63
+ }
64
+ handleSelect(event) {
65
+ this.control.setValue(event.option.value);
66
+ this.autoInputRef.nativeElement.blur();
67
+ }
68
+ }
69
+ AutocompleteFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: AutocompleteFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
70
+ AutocompleteFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.1", type: AutocompleteFieldComponent, isStandalone: true, selector: "crispr-autocomplete-field", viewQueries: [{ propertyName: "autoInput", first: true, predicate: ["autoInput"], descendants: true, read: MatAutocompleteTrigger }, { propertyName: "autoInputRef", first: true, predicate: ["autoInput"], descendants: true }], usesInheritance: true, ngImport: i0, template: "\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\n <input class=\"hidden-error-directive-anchor\" [formControlName]=\"config.controlName\" type=\"text\"/>\n\n <input\n matInput\n [formControl]=\"autocompleteInputControl\"\n [placeholder]=\"config.placeholder\"\n [matAutocomplete]=\"auto\"\n role=\"textbox\"\n type=\"textbox\"\n autocapitalize=\"off\"\n autocorrect=\"off\"\n spellcheck=\"false\"\n #autoInput>\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-autocomplete\n #auto=\"matAutocomplete\"\n [autoActiveFirstOption]=\"config.autoActiveFirstOption\"\n (optionSelected)=\"handleSelect($event)\"\n [displayWith]=\"displayLabel(options$ | async)\">\n\n <ng-container *ngIf=\"options$ | async as options; else emptyOption\">\n <ng-container *ngIf=\"options.length > 0; else emptyOption\">\n <mat-option\n *ngFor=\"let option of options\"\n [value]=\"option.value\">\n <crispr-option [option]=\"option\"></crispr-option>\n </mat-option>\n </ng-container>\n\n </ng-container>\n <ng-template #emptyOption>\n <mat-option disabled=\"true\">\n {{config.emptyOptionsMessage}}\n </mat-option>\n </ng-template>\n\n </mat-autocomplete>\n\n <mat-hint *ngIf=\"config.hint && (control.valid || !control.touched)\">{{config.hint}}</mat-hint>\n\n </mat-form-field>\n</crispr-field-container>\n", styles: [".hidden-error-directive-anchor{display:none}\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.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { 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: "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: MatAutocompleteModule }, { kind: "component", type: i3.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple"], exportAs: ["matAutocomplete"] }, { kind: "directive", type: i3.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { kind: "component", type: i4.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "component", type: i5.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i5.MatLabel, selector: "mat-label" }, { kind: "directive", type: i5.MatSuffix, selector: "[matSuffix]" }, { kind: "directive", type: i6.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatOptionModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush, preserveWhitespaces: true });
71
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: AutocompleteFieldComponent, decorators: [{
72
+ type: Component,
73
+ args: [{ selector: 'crispr-autocomplete-field', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
74
+ CommonModule,
75
+ InfoComponent,
76
+ OptionComponent,
77
+ ReactiveFormsModule,
78
+ FieldContainerComponent,
79
+ MatAutocompleteModule,
80
+ MatInputModule,
81
+ MatOptionModule,
82
+ ], template: "\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\n <input class=\"hidden-error-directive-anchor\" [formControlName]=\"config.controlName\" type=\"text\"/>\n\n <input\n matInput\n [formControl]=\"autocompleteInputControl\"\n [placeholder]=\"config.placeholder\"\n [matAutocomplete]=\"auto\"\n role=\"textbox\"\n type=\"textbox\"\n autocapitalize=\"off\"\n autocorrect=\"off\"\n spellcheck=\"false\"\n #autoInput>\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-autocomplete\n #auto=\"matAutocomplete\"\n [autoActiveFirstOption]=\"config.autoActiveFirstOption\"\n (optionSelected)=\"handleSelect($event)\"\n [displayWith]=\"displayLabel(options$ | async)\">\n\n <ng-container *ngIf=\"options$ | async as options; else emptyOption\">\n <ng-container *ngIf=\"options.length > 0; else emptyOption\">\n <mat-option\n *ngFor=\"let option of options\"\n [value]=\"option.value\">\n <crispr-option [option]=\"option\"></crispr-option>\n </mat-option>\n </ng-container>\n\n </ng-container>\n <ng-template #emptyOption>\n <mat-option disabled=\"true\">\n {{config.emptyOptionsMessage}}\n </mat-option>\n </ng-template>\n\n </mat-autocomplete>\n\n <mat-hint *ngIf=\"config.hint && (control.valid || !control.touched)\">{{config.hint}}</mat-hint>\n\n </mat-form-field>\n</crispr-field-container>\n", styles: [".hidden-error-directive-anchor{display:none}\n"] }]
83
+ }], propDecorators: { autoInput: [{
84
+ type: ViewChild,
85
+ args: ['autoInput', { read: MatAutocompleteTrigger }]
86
+ }], autoInputRef: [{
87
+ type: ViewChild,
88
+ args: ['autoInput']
89
+ }] } });
90
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLWZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY3Jpc3ByLWZvcm1zL3VpL2F1dG9jb21wbGV0ZS1maWVsZC9hdXRvY29tcGxldGUtZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jcmlzcHItZm9ybXMvdWkvYXV0b2NvbXBsZXRlLWZpZWxkL2F1dG9jb21wbGV0ZS1maWVsZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLFNBQVMsRUFBRSx1QkFBdUIsRUFBRSxVQUFVLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDN0csT0FBTyxFQUFFLHNCQUFzQixFQUFnQyxxQkFBcUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRzdILE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUMvRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDNUMsOERBQThEO0FBQzlELE9BQU8sRUFBZ0IsNkJBQTZCLEVBQTJCLDZCQUE2QixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUksT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7Ozs7OztBQUUxRCxNQUFNLGFBQWEsR0FBcUM7SUFDdEQscUJBQXFCLEVBQUUsSUFBSTtJQUMzQixnQkFBZ0IsRUFBRSxHQUFHO0lBQ3JCLG1CQUFtQixFQUFFLDZCQUE2QjtDQUNu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Y3Rpb25TdHJhdGVneSwgRWxlbWVudFJlZiwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRBdXRvY29tcGxldGVUcmlnZ2VyLCBNYXRBdXRvY29tcGxldGVTZWxlY3RlZEV2ZW50LCBNYXRBdXRvY29tcGxldGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9hdXRvY29tcGxldGUnO1xuXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRmllbGRDb250YWluZXJDb21wb25lbnQgfSBmcm9tICdAdGZ0L2NyaXNwci1mb3Jtcy91aS9maWVsZC1jb250YWluZXInO1xuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQgeyBNYXRPcHRpb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcbmltcG9ydCB7IE9wdGlvbkNvbXBvbmVudCB9IGZyb20gJy4uL29wdGlvbic7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQG5yd2wvbngvZW5mb3JjZS1tb2R1bGUtYm91bmRhcmllc1xuaW1wb3J0IHsgU2VsZWN0T3B0aW9uLCBBYnN0cmFjdEF1dG9jb21wbGV0ZUNvbXBvbmVudCwgQXV0b2NvbXBsZXRlRmllbGRDb25maWcsIERFRkFVTFRfRU1QVFlfT1BUSU9OU19NRVNTQUdFIH0gZnJvbSAnQHRmdC9jcmlzcHItZm9ybXMvdXRpbHMnO1xuaW1wb3J0IHsgSW5mb0NvbXBvbmVudCB9IGZyb20gJ0B0ZnQvY3Jpc3ByLWZvcm1zL3VpL2luZm8nO1xuXG5jb25zdCBkZWZhdWx0Q29uZmlnOiBQYXJ0aWFsPEF1dG9jb21wbGV0ZUZpZWxkQ29uZmlnPiA9IHtcbiAgYXV0b0FjdGl2ZUZpcnN0T3B0aW9uOiB0cnVlLFxuICB0eXBlRGVib3VuY2VUaW1lOiA1MDAsXG4gIGVtcHR5T3B0aW9uc01lc3NhZ2U6IERFRkFVTFRfRU1QVFlfT1BUSU9OU19NRVNTQUdFXG59O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjcmlzcHItYXV0b2NvbXBsZXRlLWZpZWxkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2F1dG9jb21wbGV0ZS1maWVsZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2F1dG9jb21wbGV0ZS1maWVsZC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBJbmZvQ29tcG9uZW50LFxuICAgIE9wdGlvbkNvbXBvbmVudCxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIEZpZWxkQ29udGFpbmVyQ29tcG9uZW50LFxuICAgIE1hdEF1dG9jb21wbGV0ZU1vZHVsZSxcbiAgICBNYXRJbnB1dE1vZHVsZSxcbiAgICBNYXRPcHRpb25Nb2R1bGUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEF1dG9jb21wbGV0ZUZpZWxkQ29tcG9uZW50XG4gIGV4dGVuZHMgQWJzdHJhY3RBdXRvY29tcGxldGVDb21wb25lbnQ8QXV0b2NvbXBsZXRlRmllbGRDb25maWc+XG4gIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gIGRlZmF1bHRDb25maWcgPSBkZWZhdWx0Q29uZmlnO1xuICBAVmlld0NoaWxkKCdhdXRvSW5wdXQnLCB7IHJlYWQ6IE1hdEF1dG9jb21wbGV0ZVRyaWdnZXIgfSkgYXV0b0lucHV0OiBNYXRBdXRvY29tcGxldGVUcmlnZ2VyO1xuICBAVmlld0NoaWxkKCdhdXRvSW5wdXQnKSBhdXRvSW5wdXRSZWY6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG5cbiAgY2xlYXJGaWVsZFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gIG5nT25Jbml0KCkge1xuICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgdGhpcy5jbGVhckZpZWxkU3Vic2NyaXB0aW9uID0gdGhpcy5hdXRvY29tcGxldGVJbnB1dENvbnRyb2wudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgodGV4dDogc3RyaW5nKSA9PiB7XG4gICAgICBpZiAodHlwZW9mIHRleHQgPT09ICdzdHJpbmcnICYmIHRleHQ/LnRyaW0oKSA9PT0gJycpIHtcbiAgICAgICAgdGhpcy5jb250cm9sLnNldFZhbHVlKG51bGwpO1xuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmNsZWFyRmllbGRTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHNldENvbnRyb2xWYWx1ZSh2YWx1ZTogU2VsZWN0T3B0aW9uKSB7XG4gICAgaWYodGhpcy5jb250cm9sICYmIHZhbHVlKSB7XG4gICAgICAvLyBzZXRzIHRoZSBpbml0aWFsIHZhbHVlIG9uIHRoZSBjb250cm9sIGlmIG9uZSBpcyBwYXNzZWRcbiAgICAgIHRoaXMuY29udHJvbC5zZXRWYWx1ZSh2YWx1ZS52YWx1ZSB8fCAnJyk7XG4gICAgICB0aGlzLmF1dG9jb21wbGV0ZUlucHV0Q29udHJvbC5zZXRWYWx1ZSh2YWx1ZS5sYWJlbCB8fCAnJyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBtYXRlcmlhbCBhdXRvY29tcGxldGUgZGVmYXVsdHMgdG8gZGlzcGxheWluZyB0aGUgb3B0aW9ucyB2YWx1ZSBpbnN0ZWFkIG9mIGl0cyBsYWJlbC5cbiAgICogV2Ugb25seSBoYXZlIHRoZSB2YWx1ZSBmcm9tIHRoZSBzZWxlY3RlZCBvcHRpb24gdG8gd29yayB3aXRoLCBzbyB3ZSBoYXZlIHRvIHBhc3MgdGhlIG9wdGlvbnNcbiAgICogdGhyb3VnaCBhIGZ1bmN0aW9uIGNhbGxlZCBpbiB0aGUgdGVtcGxhdGUgYW5kIHJldHVybiB0aGUgZnVuY3Rpb24gdGhhdCB0aGUgbWF0ZXJpYWwgZGlzcGxheVdpdGhcbiAgICogaW5wdXQgaXMgZXhwZWN0aW5nLlxuICAgKiBAcGFyYW0gb3B0aW9ucyB0aGUgYXJyYXkgb2Ygb3B0aW9ucyB0byBzZWFyY2ggZm9yIG9wdGlvbiB3aXRoIGNvcnJlc3BvbmRpbmcgdmFsdWVcbiAgICovXG4gIGRpc3BsYXlMYWJlbChvcHRpb25zOiBTZWxlY3RPcHRpb25bXSkge1xuICAgIGlmICh0aGlzLmNvbmZpZy5kaXNwbGF5V2l0aCkge1xuICAgICAgcmV0dXJuIHRoaXMuY29uZmlnLmRpc3BsYXlXaXRoKG9wdGlvbnMpO1xuICAgIH1cbiAgICByZXR1cm4gKHZhbHVlOiBhbnkpID0+IHtcbiAgICAgIGNvbnN0IGxhYmVsOiBzdHJpbmcgPSAhIW9wdGlvbnMgJiYgQXJyYXkuaXNBcnJheShvcHRpb25zKVxuICAgICAgPyBvcHRpb25zLmZpbmQoKG9wdGlvbikgPT4gSlNPTi5zdHJpbmdpZnkob3B0aW9uLnZhbHVlKSA9PT0gSlNPTi5zdHJpbmdpZnkodmFsdWUpKT8ubGFiZWw6IHZhbHVlO1xuICAgICAgcmV0dXJuIGxhYmVsXG4gICAgfTtcbiAgfVxuXG4gIGhhbmRsZVNlbGVjdChldmVudDogTWF0QXV0b2NvbXBsZXRlU2VsZWN0ZWRFdmVudCkge1xuICAgIHRoaXMuY29udHJvbC5zZXRWYWx1ZShldmVudC5vcHRpb24udmFsdWUpXG4gICAgdGhpcy5hdXRvSW5wdXRSZWYubmF0aXZlRWxlbWVudC5ibHVyKCk7XG4gIH1cbn1cbiIsIlxuPGNyaXNwci1maWVsZC1jb250YWluZXJcbiAgW2NvbmZpZ109XCJjb25maWdcIlxuICBbZ3JvdXBdPVwiZ3JvdXBcIj5cblxuICA8bWF0LWZvcm0tZmllbGRcbiAgICBbY29sb3JdPVwiY29uZmlnLmNvbG9yXCJcbiAgICBbYXBwZWFyYW5jZV09XCJjb25maWcuYXBwZWFyYW5jZVwiXG4gICAgW2Zvcm1Hcm91cF09XCJncm91cFwiPlxuICAgIDxtYXQtbGFiZWwgKm5nSWY9XCJjb25maWcubGFiZWxcIj5cbiAgICAgIHt7Y29uZmlnLmxhYmVsfX1cbiAgICA8L21hdC1sYWJlbD5cblxuICAgIDxpbnB1dCBjbGFzcz1cImhpZGRlbi1lcnJvci1kaXJlY3RpdmUtYW5jaG9yXCIgW2Zvcm1Db250cm9sTmFtZV09XCJjb25maWcuY29udHJvbE5hbWVcIiB0eXBlPVwidGV4dFwiLz5cblxuICAgIDxpbnB1dFxuICAgICAgbWF0SW5wdXRcbiAgICAgIFtmb3JtQ29udHJvbF09XCJhdXRvY29tcGxldGVJbnB1dENvbnRyb2xcIlxuICAgICAgW3BsYWNlaG9sZGVyXT1cImNvbmZpZy5wbGFjZWhvbGRlclwiXG4gICAgICBbbWF0QXV0b2NvbXBsZXRlXT1cImF1dG9cIlxuICAgICAgcm9sZT1cInRleHRib3hcIlxuICAgICAgdHlwZT1cInRleHRib3hcIlxuICAgICAgYXV0b2NhcGl0YWxpemU9XCJvZmZcIlxuICAgICAgYXV0b2NvcnJlY3Q9XCJvZmZcIlxuICAgICAgc3BlbGxjaGVjaz1cImZhbHNlXCJcbiAgICAgICNhdXRvSW5wdXQ+XG5cbiAgICA8c3BhbiAqbmdJZj1cImNvbmZpZy5maWVsZFN1ZmZpeFwiIG1hdFN1ZmZpeD57e2NvbmZpZy5maWVsZFN1ZmZpeH19PC9zcGFuPlxuICAgIDxjcmlzcHItaW5mb1xuICAgICAgKm5nSWY9XCJjb25maWcuaW5mb1wiXG4gICAgICBtYXRTdWZmaXhcbiAgICAgIFtpbmZvXT1cImNvbmZpZy5pbmZvIFwiPlxuICAgIDwvY3Jpc3ByLWluZm8+XG5cbiAgICA8bWF0LWF1dG9jb21wbGV0ZVxuICAgICAgI2F1dG89XCJtYXRBdXRvY29tcGxldGVcIlxuICAgICAgW2F1dG9BY3RpdmVGaXJzdE9wdGlvbl09XCJjb25maWcuYXV0b0FjdGl2ZUZpcnN0T3B0aW9uXCJcbiAgICAgIChvcHRpb25TZWxlY3RlZCk9XCJoYW5kbGVTZWxlY3QoJGV2ZW50KVwiXG4gICAgICBbZGlzcGxheVdpdGhdPVwiZGlzcGxheUxhYmVsKG9wdGlvbnMkIHwgYXN5bmMpXCI+XG5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJvcHRpb25zJCB8IGFzeW5jIGFzIG9wdGlvbnM7IGVsc2UgZW1wdHlPcHRpb25cIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm9wdGlvbnMubGVuZ3RoID4gMDsgZWxzZSBlbXB0eU9wdGlvblwiPlxuICAgICAgICAgIDxtYXQtb3B0aW9uXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIG9wdGlvbnNcIlxuICAgICAgICAgICAgW3ZhbHVlXT1cIm9wdGlvbi52YWx1ZVwiPlxuICAgICAgICAgICAgPGNyaXNwci1vcHRpb24gW29wdGlvbl09XCJvcHRpb25cIj48L2NyaXNwci1vcHRpb24+XG4gICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8bmctdGVtcGxhdGUgI2VtcHR5T3B0aW9uPlxuICAgICAgICA8bWF0LW9wdGlvbiBkaXNhYmxlZD1cInRydWVcIj5cbiAgICAgICAgICB7e2NvbmZpZy5lbXB0eU9wdGlvbnNNZXNzYWdlfX1cbiAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgIDwvbWF0LWF1dG9jb21wbGV0ZT5cblxuICAgIDxtYXQtaGludCAqbmdJZj1cImNvbmZpZy5oaW50ICYmIChjb250cm9sLnZhbGlkIHx8ICFjb250cm9sLnRvdWNoZWQpXCI+e3tjb25maWcuaGludH19PC9tYXQtaGludD5cblxuICA8L21hdC1mb3JtLWZpZWxkPlxuPC9jcmlzcHItZmllbGQtY29udGFpbmVyPlxuIl19
@@ -0,0 +1,2 @@
1
+ export * from './autocomplete-field.component';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NyaXNwci1mb3Jtcy91aS9hdXRvY29tcGxldGUtZmllbGQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxnQ0FBZ0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYXV0b2NvbXBsZXRlLWZpZWxkLmNvbXBvbmVudCc7XG4iXX0=
@@ -0,0 +1,46 @@
1
+ import { Component, ChangeDetectionStrategy } from '@angular/core';
2
+ import { ReactiveFormsModule } from '@angular/forms';
3
+ import { map, startWith } from 'rxjs/operators';
4
+ import { CommonModule } from '@angular/common';
5
+ import { MatButtonModule } from '@angular/material/button';
6
+ import { MatIconModule } from '@angular/material/icon';
7
+ import { MatTooltipModule } from '@angular/material/tooltip';
8
+ // eslint-disable-next-line @nrwl/nx/enforce-module-boundaries
9
+ import { CrisprFieldComponent } from '@tft/crispr-forms/utils';
10
+ import * as i0 from "@angular/core";
11
+ import * as i1 from "@angular/common";
12
+ import * as i2 from "@angular/material/button";
13
+ import * as i3 from "@angular/material/icon";
14
+ import * as i4 from "@angular/material/tooltip";
15
+ import * as i5 from "@angular/forms";
16
+ export class ButtonComponent extends CrisprFieldComponent {
17
+ constructor() {
18
+ super(...arguments);
19
+ this.defaultConfig = { buttonType: 'raised', type: 'submit' };
20
+ }
21
+ get matButtonClass() {
22
+ return this.config.buttonType ? `mat-${this.config.buttonType}-button` : '';
23
+ }
24
+ ngOnInit() {
25
+ super.ngOnInit();
26
+ this.formValid$ = this.group.statusChanges.pipe(map(status => status === 'VALID'), startWith(this.group.valid));
27
+ }
28
+ handleClick(group, event) {
29
+ if (this.config.callback) {
30
+ this.config.callback(group, event);
31
+ }
32
+ }
33
+ }
34
+ ButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: ButtonComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
35
+ ButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.1", type: ButtonComponent, isStandalone: true, selector: "crispr-button", usesInheritance: true, ngImport: i0, template: "<button\n [formGroup]=\"group\"\n mat-button\n [ngClass]=\"matButtonClass\"\n [color]=\"config.color\"\n [disabled]=\"config.disabledOnInvalidForm && !(formValid$ | async)\"\n [type]=\"config.type\"\n (click)=\"handleClick(group, $event)\"\n [matTooltip]=\"config.info?.content\"\n [matTooltipPosition]=\"config.info?.tooltipPosition || 'below'\">\n {{ config.label }}\n <mat-icon *ngIf=\"config.icon\">\n {{ config.icon}}\n </mat-icon>\n</button>\n\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i4.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, preserveWhitespaces: true });
36
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: ButtonComponent, decorators: [{
37
+ type: Component,
38
+ args: [{ selector: 'crispr-button', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
39
+ CommonModule,
40
+ MatButtonModule,
41
+ MatIconModule,
42
+ MatTooltipModule,
43
+ ReactiveFormsModule,
44
+ ], template: "<button\n [formGroup]=\"group\"\n mat-button\n [ngClass]=\"matButtonClass\"\n [color]=\"config.color\"\n [disabled]=\"config.disabledOnInvalidForm && !(formValid$ | async)\"\n [type]=\"config.type\"\n (click)=\"handleClick(group, $event)\"\n [matTooltip]=\"config.info?.content\"\n [matTooltipPosition]=\"config.info?.tooltipPosition || 'below'\">\n {{ config.label }}\n <mat-icon *ngIf=\"config.icon\">\n {{ config.icon}}\n </mat-icon>\n</button>\n\n" }]
45
+ }] });
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY3Jpc3ByLWZvcm1zL3VpL2J1dHRvbi9idXR0b24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jcmlzcHItZm9ybXMvdWkvYnV0dG9uL2J1dHRvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFVLHVCQUF1QixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxtQkFBbUIsRUFBYSxNQUFNLGdCQUFnQixDQUFDO0FBRWhFLE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsOERBQThEO0FBQzlELE9BQU8sRUFBRSxvQkFBb0IsRUFBZ0IsTUFBTSx5QkFBeUIsQ0FBQzs7Ozs7OztBQWdCN0UsTUFBTSxPQUFPLGVBQWdCLFNBQVEsb0JBQWtDO0lBZHZFOztRQWlCRSxrQkFBYSxHQUEwQixFQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBQyxDQUFDO0tBb0IvRTtJQWpCQyxJQUFJLGNBQWM7UUFDaEIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDOUUsQ0FBQztJQUVELFFBQVE7UUFDTixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQzdDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sS0FBSyxPQUFPLENBQUMsRUFDakMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQzVCLENBQUM7SUFDSixDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQWdCLEVBQUUsS0FBaUI7UUFDN0MsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRTtZQUN4QixJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7U0FDcEM7SUFDSCxDQUFDOzs0R0F0QlUsZUFBZTtnR0FBZixlQUFlLGdHQzFCNUIsb2RBZ0JBLHlEREdJLFlBQVkscVJBQ1osZUFBZSwwVkFDZixhQUFhLG1MQUNiLGdCQUFnQiw4SEFDaEIsbUJBQW1COzJGQUdWLGVBQWU7a0JBZDNCLFNBQVM7K0JBQ0UsZUFBZSxtQkFHUix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLGVBQWU7d0JBQ2YsYUFBYTt3QkFDYixnQkFBZ0I7d0JBQ2hCLG1CQUFtQjtxQkFDcEIiLCJzb3VyY2VzQ29udGVudCI6WyJcbmltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUmVhY3RpdmVGb3Jtc01vZHVsZSwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwLCBzdGFydFdpdGggfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAbnJ3bC9ueC9lbmZvcmNlLW1vZHVsZS1ib3VuZGFyaWVzXG5pbXBvcnQgeyBDcmlzcHJGaWVsZENvbXBvbmVudCwgQnV0dG9uQ29uZmlnIH0gZnJvbSAnQHRmdC9jcmlzcHItZm9ybXMvdXRpbHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjcmlzcHItYnV0dG9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2J1dHRvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2J1dHRvbi5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgTWF0SWNvbk1vZHVsZSxcbiAgICBNYXRUb29sdGlwTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEJ1dHRvbkNvbXBvbmVudCBleHRlbmRzIENyaXNwckZpZWxkQ29tcG9uZW50PEJ1dHRvbkNvbmZpZz4gaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIGdyb3VwOiBGb3JtR3JvdXA7XG4gIGRlZmF1bHRDb25maWc6IFBhcnRpYWw8QnV0dG9uQ29uZmlnPiA9IHtidXR0b25UeXBlOiAncmFpc2VkJywgdHlwZTogJ3N1Ym1pdCd9O1xuICBmb3JtVmFsaWQkOiBPYnNlcnZhYmxlPGJvb2xlYW4+XG5cbiAgZ2V0IG1hdEJ1dHRvbkNsYXNzICgpIHtcbiAgICByZXR1cm4gdGhpcy5jb25maWcuYnV0dG9uVHlwZSA/IGBtYXQtJHt0aGlzLmNvbmZpZy5idXR0b25UeXBlfS1idXR0b25gIDogJyc7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgIHRoaXMuZm9ybVZhbGlkJCA9IHRoaXMuZ3JvdXAuc3RhdHVzQ2hhbmdlcy5waXBlKFxuICAgICAgbWFwKHN0YXR1cyA9PiBzdGF0dXMgPT09ICdWQUxJRCcpLFxuICAgICAgc3RhcnRXaXRoKHRoaXMuZ3JvdXAudmFsaWQpLFxuICAgICk7XG4gIH1cblxuICBoYW5kbGVDbGljayhncm91cDogRm9ybUdyb3VwLCBldmVudDogTW91c2VFdmVudCkge1xuICAgIGlmICh0aGlzLmNvbmZpZy5jYWxsYmFjaykge1xuICAgICAgdGhpcy5jb25maWcuY2FsbGJhY2soZ3JvdXAsIGV2ZW50KTtcbiAgICB9XG4gIH1cbn1cbiIsIjxidXR0b25cbiAgW2Zvcm1Hcm91cF09XCJncm91cFwiXG4gIG1hdC1idXR0b25cbiAgW25nQ2xhc3NdPVwibWF0QnV0dG9uQ2xhc3NcIlxuICBbY29sb3JdPVwiY29uZmlnLmNvbG9yXCJcbiAgW2Rpc2FibGVkXT1cImNvbmZpZy5kaXNhYmxlZE9uSW52YWxpZEZvcm0gJiYgIShmb3JtVmFsaWQkIHwgYXN5bmMpXCJcbiAgW3R5cGVdPVwiY29uZmlnLnR5cGVcIlxuICAoY2xpY2spPVwiaGFuZGxlQ2xpY2soZ3JvdXAsICRldmVudClcIlxuICBbbWF0VG9vbHRpcF09XCJjb25maWcuaW5mbz8uY29udGVudFwiXG4gIFttYXRUb29sdGlwUG9zaXRpb25dPVwiY29uZmlnLmluZm8/LnRvb2x0aXBQb3NpdGlvbiB8fCAnYmVsb3cnXCI+XG4gIHt7IGNvbmZpZy5sYWJlbCB9fVxuICA8bWF0LWljb24gKm5nSWY9XCJjb25maWcuaWNvblwiPlxuICAgIHt7IGNvbmZpZy5pY29ufX1cbiAgPC9tYXQtaWNvbj5cbjwvYnV0dG9uPlxuXG4iXX0=
@@ -0,0 +1,2 @@
1
+ export * from './button.component';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NyaXNwci1mb3Jtcy91aS9idXR0b24vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxvQkFBb0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYnV0dG9uLmNvbXBvbmVudCc7XG4iXX0=
@@ -0,0 +1,42 @@
1
+ import { Component, ChangeDetectionStrategy } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { MatCheckboxModule } from '@angular/material/checkbox';
4
+ import { ReactiveFormsModule } from '@angular/forms';
5
+ import { FieldContainerComponent } from '@tft/crispr-forms/ui/field-container';
6
+ // eslint-disable-next-line @nrwl/nx/enforce-module-boundaries
7
+ import { crisprControlMixin, CrisprFieldComponent } from '@tft/crispr-forms/utils';
8
+ import { InfoComponent } from '@tft/crispr-forms/ui/info';
9
+ import * as i0 from "@angular/core";
10
+ import * as i1 from "@angular/common";
11
+ import * as i2 from "@angular/material/checkbox";
12
+ import * as i3 from "@angular/forms";
13
+ const defaultConfig = {
14
+ labelPosition: 'after',
15
+ inline: false
16
+ };
17
+ const CheckboxFieldMixin = crisprControlMixin(CrisprFieldComponent);
18
+ export class CheckboxFieldComponent extends CheckboxFieldMixin {
19
+ constructor() {
20
+ super(...arguments);
21
+ this.defaultConfig = defaultConfig;
22
+ }
23
+ ngOnInit() {
24
+ super.ngOnInit();
25
+ }
26
+ }
27
+ CheckboxFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: CheckboxFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
28
+ CheckboxFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.1", type: CheckboxFieldComponent, isStandalone: true, selector: "crispr-checkbox-field", usesInheritance: true, ngImport: i0, template: "<crispr-field-container\n [config]=\"config\"\n [group]=\"group\"\n [inlineField]=\"config.inline\">\n <div\n [formGroup]=\"group\">\n <mat-checkbox\n [color]=\"config.color\"\n [labelPosition]=\"config.labelPosition\"\n [formControlName]=\"config.controlName\">\n {{config.label}}\n <crispr-info\n matSuffix *ngIf=\"config.info\"\n [info]=\"config.info\">\n </crispr-info>\n </mat-checkbox>\n </div>\n</crispr-field-container>\n", styles: ["mat-checkbox{height:42px}\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"] }, { kind: "ngmodule", type: MatCheckboxModule }, { kind: "component", type: i2.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type:
29
+ // CrisprFieldDirective,
30
+ FieldContainerComponent, selector: "crispr-field-container", inputs: ["config", "group", "inlineField"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, preserveWhitespaces: true });
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: CheckboxFieldComponent, decorators: [{
32
+ type: Component,
33
+ args: [{ selector: 'crispr-checkbox-field', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
34
+ CommonModule,
35
+ InfoComponent,
36
+ MatCheckboxModule,
37
+ ReactiveFormsModule,
38
+ // CrisprFieldDirective,
39
+ FieldContainerComponent
40
+ ], template: "<crispr-field-container\n [config]=\"config\"\n [group]=\"group\"\n [inlineField]=\"config.inline\">\n <div\n [formGroup]=\"group\">\n <mat-checkbox\n [color]=\"config.color\"\n [labelPosition]=\"config.labelPosition\"\n [formControlName]=\"config.controlName\">\n {{config.label}}\n <crispr-info\n matSuffix *ngIf=\"config.info\"\n [info]=\"config.info\">\n </crispr-info>\n </mat-checkbox>\n </div>\n</crispr-field-container>\n", styles: ["mat-checkbox{height:42px}\n"] }]
41
+ }] });
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3gtZmllbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jcmlzcHItZm9ybXMvdWkvY2hlY2tib3gtZmllbGQvY2hlY2tib3gtZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jcmlzcHItZm9ybXMvdWkvY2hlY2tib3gtZmllbGQvY2hlY2tib3gtZmllbGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSx1QkFBdUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDL0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDL0UsOERBQThEO0FBQzlELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxvQkFBb0IsRUFBdUIsTUFBTSx5QkFBeUIsQ0FBQztBQUN4RyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7Ozs7O0FBRTFELE1BQU0sYUFBYSxHQUFpQztJQUNsRCxhQUFhLEVBQUUsT0FBTztJQUN0QixNQUFNLEVBQUUsS0FBSztDQUNkLENBQUE7QUFDRCxNQUFNLGtCQUFrQixHQUFHLGtCQUFrQixDQUFzQixvQkFBb0IsQ0FBQyxDQUFDO0FBaUJ6RixNQUFNLE9BQU8sc0JBQXVCLFNBQVEsa0JBQWtCO0lBZjlEOztRQWlCRSxrQkFBYSxHQUFHLGFBQWEsQ0FBQztLQUkvQjtJQUhDLFFBQVE7UUFDTixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDbkIsQ0FBQzs7bUhBTFUsc0JBQXNCO3VHQUF0QixzQkFBc0Isd0dDOUJuQyx5ZUFrQkEsb0ZESUksWUFBWSxtSUFDWixhQUFhLHlFQUNiLGlCQUFpQixnTEFDakIsbUJBQW1CO1lBQ25CLHdCQUF3QjtZQUN4Qix1QkFBdUI7MkZBR2Qsc0JBQXNCO2tCQWZsQyxTQUFTOytCQUNFLHVCQUF1QixtQkFHaEIsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixhQUFhO3dCQUNiLGlCQUFpQjt3QkFDakIsbUJBQW1CO3dCQUNuQix3QkFBd0I7d0JBQ3hCLHVCQUF1QjtxQkFDeEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBNYXRDaGVja2JveE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoZWNrYm94JztcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBGaWVsZENvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gJ0B0ZnQvY3Jpc3ByLWZvcm1zL3VpL2ZpZWxkLWNvbnRhaW5lcic7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQG5yd2wvbngvZW5mb3JjZS1tb2R1bGUtYm91bmRhcmllc1xuaW1wb3J0IHsgY3Jpc3ByQ29udHJvbE1peGluLCBDcmlzcHJGaWVsZENvbXBvbmVudCwgQ2hlY2tib3hGaWVsZENvbmZpZyB9IGZyb20gJ0B0ZnQvY3Jpc3ByLWZvcm1zL3V0aWxzJztcbmltcG9ydCB7IEluZm9Db21wb25lbnQgfSBmcm9tICdAdGZ0L2NyaXNwci1mb3Jtcy91aS9pbmZvJztcblxuY29uc3QgZGVmYXVsdENvbmZpZzogUGFydGlhbDxDaGVja2JveEZpZWxkQ29uZmlnPiA9IHtcbiAgbGFiZWxQb3NpdGlvbjogJ2FmdGVyJyxcbiAgaW5saW5lOiBmYWxzZVxufVxuY29uc3QgQ2hlY2tib3hGaWVsZE1peGluID0gY3Jpc3ByQ29udHJvbE1peGluPENoZWNrYm94RmllbGRDb25maWc+KENyaXNwckZpZWxkQ29tcG9uZW50KTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY3Jpc3ByLWNoZWNrYm94LWZpZWxkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NoZWNrYm94LWZpZWxkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2hlY2tib3gtZmllbGQuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgSW5mb0NvbXBvbmVudCxcbiAgICBNYXRDaGVja2JveE1vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIC8vIENyaXNwckZpZWxkRGlyZWN0aXZlLFxuICAgIEZpZWxkQ29udGFpbmVyQ29tcG9uZW50XG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIENoZWNrYm94RmllbGRDb21wb25lbnQgZXh0ZW5kcyBDaGVja2JveEZpZWxkTWl4aW4gaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIGRlZmF1bHRDb25maWcgPSBkZWZhdWx0Q29uZmlnO1xuICBuZ09uSW5pdCgpIHtcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xuICB9XG59XG5cbiIsIjxjcmlzcHItZmllbGQtY29udGFpbmVyXG4gIFtjb25maWddPVwiY29uZmlnXCJcbiAgW2dyb3VwXT1cImdyb3VwXCJcbiAgW2lubGluZUZpZWxkXT1cImNvbmZpZy5pbmxpbmVcIj5cbiAgPGRpdlxuICAgIFtmb3JtR3JvdXBdPVwiZ3JvdXBcIj5cbiAgICA8bWF0LWNoZWNrYm94XG4gICAgICBbY29sb3JdPVwiY29uZmlnLmNvbG9yXCJcbiAgICAgIFtsYWJlbFBvc2l0aW9uXT1cImNvbmZpZy5sYWJlbFBvc2l0aW9uXCJcbiAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiY29uZmlnLmNvbnRyb2xOYW1lXCI+XG4gICAgICB7e2NvbmZpZy5sYWJlbH19XG4gICAgICA8Y3Jpc3ByLWluZm9cbiAgICAgICAgbWF0U3VmZml4ICpuZ0lmPVwiY29uZmlnLmluZm9cIlxuICAgICAgICBbaW5mb109XCJjb25maWcuaW5mb1wiPlxuICAgICAgPC9jcmlzcHItaW5mbz5cbiAgICA8L21hdC1jaGVja2JveD5cbiAgPC9kaXY+XG48L2NyaXNwci1maWVsZC1jb250YWluZXI+XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export * from './checkbox-field.component';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NyaXNwci1mb3Jtcy91aS9jaGVja2JveC1maWVsZC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDRCQUE0QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jaGVja2JveC1maWVsZC5jb21wb25lbnQnO1xuIl19