@tft/crispr-forms 14.0.2 → 17.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (490) hide show
  1. package/esm2022/public-api.mjs +4 -0
  2. package/{esm2020 → esm2022}/src/index.mjs +1 -1
  3. package/esm2022/src/lib/crispr-forms.module.mjs +55 -0
  4. package/esm2022/src/lib/display-field.directive.mjs +52 -0
  5. package/esm2022/src/lib/field-component-map.const.mjs +28 -0
  6. package/esm2022/src/lib/field.directive.mjs +69 -0
  7. package/esm2022/src/lib/form/form.component.mjs +62 -0
  8. package/esm2022/src/lib/form-group-list/form-group-list.component.mjs +97 -0
  9. package/{esm2020 → esm2022}/src/lib/form-group-list/index.mjs +1 -1
  10. package/{esm2020 → esm2022}/src/lib/pipes/crispr-pipes.module.mjs +24 -24
  11. package/esm2022/src/lib/pipes/initial-control-value.pipe.mjs +20 -0
  12. package/{esm2020 → esm2022}/src/lib/public_api.mjs +2 -2
  13. package/{esm2020 → esm2022}/src/lib/sub-group/index.mjs +2 -2
  14. package/esm2022/src/lib/sub-group/sub-group.component.mjs +20 -0
  15. package/esm2022/src/lib/sub-group/sub-group.module.mjs +42 -0
  16. package/esm2022/src/lib/ui/autocomplete-chiplist-field/autocomplete-chiplist-field.component.mjs +138 -0
  17. package/esm2022/src/lib/ui/autocomplete-chiplist-field/index.mjs +2 -0
  18. package/esm2022/src/lib/ui/autocomplete-chiplist-field/public-api.mjs +2 -0
  19. package/esm2022/src/lib/ui/autocomplete-field/autocomplete-field.component.mjs +95 -0
  20. package/esm2022/src/lib/ui/autocomplete-field/index.mjs +2 -0
  21. package/esm2022/src/lib/ui/autocomplete-field/public-api.mjs +2 -0
  22. package/esm2022/src/lib/ui/button/button.component.mjs +52 -0
  23. package/esm2022/src/lib/ui/button/index.mjs +2 -0
  24. package/esm2022/src/lib/ui/button/public-api.mjs +2 -0
  25. package/esm2022/src/lib/ui/checkbox-field/checkbox-field.component.mjs +42 -0
  26. package/esm2022/src/lib/ui/checkbox-field/index.mjs +2 -0
  27. package/esm2022/src/lib/ui/checkbox-field/public-api.mjs +2 -0
  28. package/esm2022/src/lib/ui/datepicker-field/datepicker-field.component.mjs +66 -0
  29. package/esm2022/src/lib/ui/datepicker-field/index.mjs +2 -0
  30. package/esm2022/src/lib/ui/datepicker-field/public-api.mjs +2 -0
  31. package/esm2022/src/lib/ui/divider/divider.component.mjs +25 -0
  32. package/esm2022/src/lib/ui/divider/index.mjs +2 -0
  33. package/esm2022/src/lib/ui/divider/public-api.mjs +2 -0
  34. package/esm2022/src/lib/ui/field-container/field-container.component.mjs +59 -0
  35. package/esm2022/src/lib/ui/field-container/index.mjs +2 -0
  36. package/esm2022/src/lib/ui/field-container/public-api.mjs +2 -0
  37. package/esm2022/src/lib/ui/file-dropzone/file-dropzone.directive.mjs +40 -0
  38. package/esm2022/src/lib/ui/file-dropzone/index.mjs +2 -0
  39. package/esm2022/src/lib/ui/file-dropzone/public-api.mjs +2 -0
  40. package/esm2022/src/lib/ui/file-upload-field/file-upload-field.component.mjs +107 -0
  41. package/esm2022/src/lib/ui/file-upload-field/index.mjs +2 -0
  42. package/esm2022/src/lib/ui/file-upload-field/public-api.mjs +2 -0
  43. package/esm2022/src/lib/ui/heading/heading.component.mjs +27 -0
  44. package/esm2022/src/lib/ui/heading/index.mjs +2 -0
  45. package/esm2022/src/lib/ui/heading/public-api.mjs +2 -0
  46. package/esm2022/src/lib/ui/image-upload-field/image-upload-field.component.mjs +184 -0
  47. package/esm2022/src/lib/ui/image-upload-field/index.mjs +2 -0
  48. package/esm2022/src/lib/ui/image-upload-field/public-api.mjs +2 -0
  49. package/esm2022/src/lib/ui/index.mjs +2 -0
  50. package/esm2022/src/lib/ui/info/index.mjs +2 -0
  51. package/esm2022/src/lib/ui/info/info.component.mjs +23 -0
  52. package/esm2022/src/lib/ui/info/public-api.mjs +2 -0
  53. package/esm2022/src/lib/ui/input-field/index.mjs +2 -0
  54. package/esm2022/src/lib/ui/input-field/input-field.component.mjs +43 -0
  55. package/esm2022/src/lib/ui/input-field/public-api.mjs +2 -0
  56. package/esm2022/src/lib/ui/option/index.mjs +2 -0
  57. package/esm2022/src/lib/ui/option/option.component.mjs +16 -0
  58. package/esm2022/src/lib/ui/option/public-api.mjs +2 -0
  59. package/esm2022/src/lib/ui/public-api.mjs +7 -0
  60. package/esm2022/src/lib/ui/radio-field/index.mjs +2 -0
  61. package/esm2022/src/lib/ui/radio-field/public-api.mjs +2 -0
  62. package/esm2022/src/lib/ui/radio-field/radio-field.component.mjs +39 -0
  63. package/esm2022/src/lib/ui/select-field/index.mjs +2 -0
  64. package/esm2022/src/lib/ui/select-field/public-api.mjs +2 -0
  65. package/esm2022/src/lib/ui/select-field/select-field.component.mjs +73 -0
  66. package/esm2022/src/lib/ui/selected-file/index.mjs +2 -0
  67. package/esm2022/src/lib/ui/selected-file/public-api.mjs +2 -0
  68. package/esm2022/src/lib/ui/selected-file/selected-file.component.mjs +26 -0
  69. package/esm2022/src/lib/ui/slider-field/index.mjs +2 -0
  70. package/esm2022/src/lib/ui/slider-field/public-api.mjs +2 -0
  71. package/esm2022/src/lib/ui/slider-field/slider-field.component.mjs +46 -0
  72. package/esm2022/src/lib/ui/textarea-field/index.mjs +2 -0
  73. package/esm2022/src/lib/ui/textarea-field/public-api.mjs +2 -0
  74. package/esm2022/src/lib/ui/textarea-field/textarea-field.component.mjs +42 -0
  75. package/esm2022/src/lib/ui/unit-conversion-field/index.mjs +2 -0
  76. package/esm2022/src/lib/ui/unit-conversion-field/public-api.mjs +2 -0
  77. package/esm2022/src/lib/ui/unit-conversion-field/unit-conversion-field.component.mjs +86 -0
  78. package/esm2022/src/lib/utils/abstracts/autocomplete-field.abstract.mjs +30 -0
  79. package/esm2022/src/lib/utils/abstracts/crispr-control.mixin.mjs +27 -0
  80. package/esm2022/src/lib/utils/abstracts/crispr-display-field.abstract.mjs +14 -0
  81. package/esm2022/src/lib/utils/abstracts/crispr-field.abstract.mjs +19 -0
  82. package/esm2022/src/lib/utils/abstracts/index.mjs +5 -0
  83. package/esm2022/src/lib/utils/functions/buildFormGroupFromConfig.mjs +28 -0
  84. package/esm2022/src/lib/utils/functions/callOptionsIfFunction.mjs +4 -0
  85. package/esm2022/src/lib/utils/functions/createControlForType.mjs +19 -0
  86. package/esm2022/src/lib/utils/functions/filterOptionsByLabel.mjs +11 -0
  87. package/esm2022/src/lib/utils/functions/image-compression.helpers.mjs +50 -0
  88. package/esm2022/src/lib/utils/functions/index.mjs +8 -0
  89. package/esm2022/src/lib/utils/functions/isControlConfig.mjs +7 -0
  90. package/esm2022/src/lib/utils/functions/observablifyOptions.mjs +29 -0
  91. package/esm2022/src/lib/utils/index.mjs +2 -0
  92. package/esm2022/src/lib/utils/models/autocomplete-chiplist-field.config.mjs +2 -0
  93. package/esm2022/src/lib/utils/models/autocomplete-field.config.mjs +2 -0
  94. package/esm2022/src/lib/utils/models/button.config.mjs +2 -0
  95. package/esm2022/src/lib/utils/models/checkbox-field.config.mjs +2 -0
  96. package/esm2022/src/lib/utils/models/crispr-field.config.mjs +23 -0
  97. package/esm2022/src/lib/utils/models/datepicker-field.config.mjs +2 -0
  98. package/esm2022/src/lib/utils/models/divider.config.mjs +2 -0
  99. package/esm2022/src/lib/utils/models/file-upload-field.config.mjs +2 -0
  100. package/esm2022/src/lib/utils/models/form-group-list.config.mjs +2 -0
  101. package/esm2022/src/lib/utils/models/heading.config.mjs +3 -0
  102. package/esm2022/src/lib/utils/models/image-upload-field.config.mjs +2 -0
  103. package/esm2022/src/lib/utils/models/index.mjs +18 -0
  104. package/esm2022/src/lib/utils/models/input-field.config.mjs +2 -0
  105. package/esm2022/src/lib/utils/models/radio-field.config.mjs +2 -0
  106. package/esm2022/src/lib/utils/models/select-field.config.mjs +2 -0
  107. package/esm2022/src/lib/utils/models/slider-field.config.mjs +2 -0
  108. package/esm2022/src/lib/utils/models/textarea-field.config.mjs +2 -0
  109. package/esm2022/src/lib/utils/models/unit-conversion-field.config.mjs +2 -0
  110. package/esm2022/src/lib/utils/operators/form.operators.mjs +24 -0
  111. package/esm2022/src/lib/utils/operators/index.mjs +2 -0
  112. package/esm2022/src/lib/utils/public-api.mjs +5 -0
  113. package/esm2022/src/lib/utils/tft-crispr-forms-src-lib-utils.mjs +5 -0
  114. package/{esm2020 → esm2022}/tft-crispr-forms.mjs +4 -4
  115. package/fesm2022/tft-crispr-forms-index-2dAn0905.mjs +19 -0
  116. package/fesm2022/tft-crispr-forms-index-2dAn0905.mjs.map +1 -0
  117. package/fesm2022/tft-crispr-forms-index-76UuF0AI.mjs +36 -0
  118. package/fesm2022/tft-crispr-forms-index-76UuF0AI.mjs.map +1 -0
  119. package/{fesm2020/tft-crispr-forms-ui-image-upload-field.mjs → fesm2022/tft-crispr-forms-index-BXwiulEX.mjs} +169 -169
  120. package/fesm2022/tft-crispr-forms-index-BXwiulEX.mjs.map +1 -0
  121. package/fesm2022/tft-crispr-forms-index-BfR4XbYi.mjs +110 -0
  122. package/fesm2022/tft-crispr-forms-index-BfR4XbYi.mjs.map +1 -0
  123. package/fesm2022/tft-crispr-forms-index-C5X0mk3N.mjs +49 -0
  124. package/fesm2022/tft-crispr-forms-index-C5X0mk3N.mjs.map +1 -0
  125. package/fesm2022/tft-crispr-forms-index-CFUop3Cq.mjs +80 -0
  126. package/fesm2022/tft-crispr-forms-index-CFUop3Cq.mjs.map +1 -0
  127. package/fesm2022/tft-crispr-forms-index-CFdMVgM0.mjs +91 -0
  128. package/fesm2022/tft-crispr-forms-index-CFdMVgM0.mjs.map +1 -0
  129. package/fesm2022/tft-crispr-forms-index-CZdi06Jj.mjs +49 -0
  130. package/fesm2022/tft-crispr-forms-index-CZdi06Jj.mjs.map +1 -0
  131. package/fesm2022/tft-crispr-forms-index-C_I9vjqf.mjs +57 -0
  132. package/fesm2022/tft-crispr-forms-index-C_I9vjqf.mjs.map +1 -0
  133. package/fesm2022/tft-crispr-forms-index-DE8VOdBd.mjs +102 -0
  134. package/fesm2022/tft-crispr-forms-index-DE8VOdBd.mjs.map +1 -0
  135. package/fesm2022/tft-crispr-forms-index-OLo2t0tl.mjs +48 -0
  136. package/fesm2022/tft-crispr-forms-index-OLo2t0tl.mjs.map +1 -0
  137. package/fesm2022/tft-crispr-forms-index-OT7kkOgd.mjs +50 -0
  138. package/fesm2022/tft-crispr-forms-index-OT7kkOgd.mjs.map +1 -0
  139. package/fesm2022/tft-crispr-forms-index-Ukk3WgS2.mjs +54 -0
  140. package/fesm2022/tft-crispr-forms-index-Ukk3WgS2.mjs.map +1 -0
  141. package/fesm2022/tft-crispr-forms-index-rRi6OMY6.mjs +142 -0
  142. package/fesm2022/tft-crispr-forms-index-rRi6OMY6.mjs.map +1 -0
  143. package/fesm2022/tft-crispr-forms-index-xAaInTLg.mjs +73 -0
  144. package/fesm2022/tft-crispr-forms-index-xAaInTLg.mjs.map +1 -0
  145. package/{fesm2020/tft-crispr-forms-utils.mjs → fesm2022/tft-crispr-forms-src-lib-utils.mjs} +242 -243
  146. package/fesm2022/tft-crispr-forms-src-lib-utils.mjs.map +1 -0
  147. package/fesm2022/tft-crispr-forms.mjs +848 -0
  148. package/fesm2022/tft-crispr-forms.mjs.map +1 -0
  149. package/index.d.ts +5 -5
  150. package/package.json +13 -191
  151. package/public-api.d.ts +3 -3
  152. package/src/index.d.ts +1 -1
  153. package/src/lib/crispr-forms.module.d.ts +16 -16
  154. package/src/lib/display-field.directive.d.ts +23 -23
  155. package/src/lib/field-component-map.const.d.ts +42 -42
  156. package/src/lib/field.directive.d.ts +24 -24
  157. package/src/lib/form/form.component.d.ts +19 -19
  158. package/src/lib/form-group-list/form-group-list.component.d.ts +40 -38
  159. package/src/lib/form-group-list/index.d.ts +1 -1
  160. package/src/lib/pipes/crispr-pipes.module.d.ts +8 -8
  161. package/src/lib/pipes/initial-control-value.pipe.d.ts +10 -10
  162. package/src/lib/public_api.d.ts +2 -2
  163. package/src/lib/sub-group/index.d.ts +2 -2
  164. package/src/lib/sub-group/sub-group.component.d.ts +24 -22
  165. package/src/lib/sub-group/sub-group.module.d.ts +12 -12
  166. package/{ui → src/lib/ui}/autocomplete-chiplist-field/autocomplete-chiplist-field.component.d.ts +36 -33
  167. package/src/lib/ui/autocomplete-chiplist-field/index.d.ts +1 -0
  168. package/{ui → src/lib/ui}/autocomplete-chiplist-field/public-api.d.ts +1 -1
  169. package/{ui → src/lib/ui}/autocomplete-field/autocomplete-field.component.d.ts +25 -25
  170. package/src/lib/ui/autocomplete-field/index.d.ts +1 -0
  171. package/{ui → src/lib/ui}/autocomplete-field/public-api.d.ts +1 -1
  172. package/{ui → src/lib/ui}/button/button.component.d.ts +15 -15
  173. package/src/lib/ui/button/index.d.ts +1 -0
  174. package/{ui → src/lib/ui}/button/public-api.d.ts +1 -1
  175. package/src/lib/ui/checkbox-field/checkbox-field.component.d.ts +23 -0
  176. package/src/lib/ui/checkbox-field/index.d.ts +1 -0
  177. package/{ui → src/lib/ui}/checkbox-field/public-api.d.ts +1 -1
  178. package/{ui → src/lib/ui}/datepicker-field/datepicker-field.component.d.ts +32 -30
  179. package/src/lib/ui/datepicker-field/index.d.ts +1 -0
  180. package/{ui → src/lib/ui}/datepicker-field/public-api.d.ts +1 -1
  181. package/{ui → src/lib/ui}/divider/divider.component.d.ts +9 -9
  182. package/src/lib/ui/divider/index.d.ts +1 -0
  183. package/{ui → src/lib/ui}/divider/public-api.d.ts +1 -1
  184. package/{ui → src/lib/ui}/field-container/field-container.component.d.ts +24 -24
  185. package/src/lib/ui/field-container/index.d.ts +1 -0
  186. package/{ui → src/lib/ui}/field-container/public-api.d.ts +1 -1
  187. package/{ui → src/lib/ui}/file-dropzone/file-dropzone.directive.d.ts +10 -10
  188. package/src/lib/ui/file-dropzone/index.d.ts +1 -0
  189. package/{ui → src/lib/ui}/file-dropzone/public-api.d.ts +1 -1
  190. package/{ui → src/lib/ui}/file-upload-field/file-upload-field.component.d.ts +39 -37
  191. package/src/lib/ui/file-upload-field/index.d.ts +1 -0
  192. package/{ui → src/lib/ui}/file-upload-field/public-api.d.ts +1 -1
  193. package/{ui → src/lib/ui}/heading/heading.component.d.ts +8 -8
  194. package/src/lib/ui/heading/index.d.ts +1 -0
  195. package/{ui → src/lib/ui}/heading/public-api.d.ts +1 -1
  196. package/{ui → src/lib/ui}/image-upload-field/image-upload-field.component.d.ts +50 -48
  197. package/src/lib/ui/image-upload-field/index.d.ts +1 -0
  198. package/{ui → src/lib/ui}/image-upload-field/public-api.d.ts +1 -1
  199. package/src/lib/ui/index.d.ts +1 -0
  200. package/src/lib/ui/info/index.d.ts +1 -0
  201. package/{ui → src/lib/ui}/info/info.component.d.ts +7 -7
  202. package/{ui → src/lib/ui}/info/public-api.d.ts +1 -1
  203. package/src/lib/ui/input-field/index.d.ts +1 -0
  204. package/src/lib/ui/input-field/input-field.component.d.ts +24 -0
  205. package/{ui → src/lib/ui}/input-field/public-api.d.ts +1 -1
  206. package/src/lib/ui/option/index.d.ts +1 -0
  207. package/{ui → src/lib/ui}/option/option.component.d.ts +7 -7
  208. package/{ui → src/lib/ui}/option/public-api.d.ts +1 -1
  209. package/src/lib/ui/public-api.d.ts +6 -0
  210. package/src/lib/ui/radio-field/index.d.ts +1 -0
  211. package/{ui → src/lib/ui}/radio-field/public-api.d.ts +1 -1
  212. package/src/lib/ui/radio-field/radio-field.component.d.ts +25 -0
  213. package/src/lib/ui/select-field/index.d.ts +1 -0
  214. package/{ui → src/lib/ui}/select-field/public-api.d.ts +1 -1
  215. package/{ui → src/lib/ui}/select-field/select-field.component.d.ts +34 -32
  216. package/src/lib/ui/selected-file/index.d.ts +1 -0
  217. package/{ui → src/lib/ui}/selected-file/public-api.d.ts +1 -1
  218. package/{ui → src/lib/ui}/selected-file/selected-file.component.d.ts +10 -10
  219. package/src/lib/ui/slider-field/index.d.ts +1 -0
  220. package/{ui → src/lib/ui}/slider-field/public-api.d.ts +1 -1
  221. package/src/lib/ui/slider-field/slider-field.component.d.ts +24 -0
  222. package/src/lib/ui/textarea-field/index.d.ts +1 -0
  223. package/{ui → src/lib/ui}/textarea-field/public-api.d.ts +1 -1
  224. package/src/lib/ui/textarea-field/textarea-field.component.d.ts +23 -0
  225. package/src/lib/ui/unit-conversion-field/index.d.ts +1 -0
  226. package/{ui → src/lib/ui}/unit-conversion-field/public-api.d.ts +1 -1
  227. package/{ui → src/lib/ui}/unit-conversion-field/unit-conversion-field.component.d.ts +38 -36
  228. package/{utils → src/lib/utils}/abstracts/autocomplete-field.abstract.d.ts +28 -28
  229. package/{utils → src/lib/utils}/abstracts/crispr-control.mixin.d.ts +16 -16
  230. package/{utils → src/lib/utils}/abstracts/crispr-display-field.abstract.d.ts +22 -22
  231. package/{utils → src/lib/utils}/abstracts/crispr-field.abstract.d.ts +11 -11
  232. package/{utils → src/lib/utils}/abstracts/index.d.ts +4 -4
  233. package/{utils → src/lib/utils}/functions/buildFormGroupFromConfig.d.ts +9 -9
  234. package/{utils → src/lib/utils}/functions/callOptionsIfFunction.d.ts +3 -3
  235. package/{utils → src/lib/utils}/functions/createControlForType.d.ts +9 -9
  236. package/{utils → src/lib/utils}/functions/filterOptionsByLabel.d.ts +7 -7
  237. package/{utils → src/lib/utils}/functions/image-compression.helpers.d.ts +5 -5
  238. package/{utils → src/lib/utils}/functions/index.d.ts +7 -7
  239. package/{utils → src/lib/utils}/functions/isControlConfig.d.ts +5 -5
  240. package/{utils → src/lib/utils}/functions/observablifyOptions.d.ts +12 -12
  241. package/{ui → src/lib/utils}/index.d.ts +5 -5
  242. package/{utils → src/lib/utils}/models/autocomplete-chiplist-field.config.d.ts +20 -20
  243. package/{utils → src/lib/utils}/models/autocomplete-field.config.d.ts +14 -14
  244. package/{utils → src/lib/utils}/models/button.config.d.ts +17 -17
  245. package/{utils → src/lib/utils}/models/checkbox-field.config.d.ts +6 -6
  246. package/{utils → src/lib/utils}/models/crispr-field.config.d.ts +97 -94
  247. package/{utils → src/lib/utils}/models/datepicker-field.config.d.ts +20 -20
  248. package/{utils → src/lib/utils}/models/divider.config.d.ts +5 -5
  249. package/{utils → src/lib/utils}/models/file-upload-field.config.d.ts +33 -33
  250. package/{utils → src/lib/utils}/models/form-group-list.config.d.ts +18 -18
  251. package/{utils → src/lib/utils}/models/heading.config.d.ts +6 -6
  252. package/{utils → src/lib/utils}/models/image-upload-field.config.d.ts +54 -54
  253. package/{utils → src/lib/utils}/models/index.d.ts +17 -17
  254. package/{utils → src/lib/utils}/models/input-field.config.d.ts +16 -16
  255. package/{utils → src/lib/utils}/models/radio-field.config.d.ts +6 -6
  256. package/{utils → src/lib/utils}/models/select-field.config.d.ts +21 -21
  257. package/{utils → src/lib/utils}/models/slider-field.config.d.ts +11 -13
  258. package/{utils → src/lib/utils}/models/textarea-field.config.d.ts +5 -5
  259. package/{utils → src/lib/utils}/models/unit-conversion-field.config.d.ts +30 -30
  260. package/{utils → src/lib/utils}/operators/form.operators.d.ts +1 -1
  261. package/{utils → src/lib/utils}/operators/index.d.ts +1 -1
  262. package/{utils → src/lib/utils}/public-api.d.ts +4 -4
  263. package/tft-crispr-forms-17.0.0.tgz +0 -0
  264. package/esm2020/public-api.mjs +0 -5
  265. package/esm2020/src/lib/crispr-forms.module.mjs +0 -60
  266. package/esm2020/src/lib/display-field.directive.mjs +0 -53
  267. package/esm2020/src/lib/field-component-map.const.mjs +0 -27
  268. package/esm2020/src/lib/field.directive.mjs +0 -69
  269. package/esm2020/src/lib/form/form.component.mjs +0 -63
  270. package/esm2020/src/lib/form-group-list/form-group-list.component.mjs +0 -99
  271. package/esm2020/src/lib/pipes/initial-control-value.pipe.mjs +0 -21
  272. package/esm2020/src/lib/sub-group/sub-group.component.mjs +0 -21
  273. package/esm2020/src/lib/sub-group/sub-group.module.mjs +0 -42
  274. package/esm2020/ui/autocomplete-chiplist-field/autocomplete-chiplist-field.component.mjs +0 -130
  275. package/esm2020/ui/autocomplete-chiplist-field/public-api.mjs +0 -2
  276. package/esm2020/ui/autocomplete-chiplist-field/tft-crispr-forms-ui-autocomplete-chiplist-field.mjs +0 -5
  277. package/esm2020/ui/autocomplete-field/autocomplete-field.component.mjs +0 -93
  278. package/esm2020/ui/autocomplete-field/public-api.mjs +0 -2
  279. package/esm2020/ui/autocomplete-field/tft-crispr-forms-ui-autocomplete-field.mjs +0 -5
  280. package/esm2020/ui/button/button.component.mjs +0 -49
  281. package/esm2020/ui/button/public-api.mjs +0 -2
  282. package/esm2020/ui/button/tft-crispr-forms-ui-button.mjs +0 -5
  283. package/esm2020/ui/checkbox-field/checkbox-field.component.mjs +0 -42
  284. package/esm2020/ui/checkbox-field/public-api.mjs +0 -2
  285. package/esm2020/ui/checkbox-field/tft-crispr-forms-ui-checkbox-field.mjs +0 -5
  286. package/esm2020/ui/datepicker-field/datepicker-field.component.mjs +0 -63
  287. package/esm2020/ui/datepicker-field/public-api.mjs +0 -2
  288. package/esm2020/ui/datepicker-field/tft-crispr-forms-ui-datepicker-field.mjs +0 -5
  289. package/esm2020/ui/divider/divider.component.mjs +0 -28
  290. package/esm2020/ui/divider/public-api.mjs +0 -2
  291. package/esm2020/ui/divider/tft-crispr-forms-ui-divider.mjs +0 -5
  292. package/esm2020/ui/field-container/field-container.component.mjs +0 -58
  293. package/esm2020/ui/field-container/public-api.mjs +0 -2
  294. package/esm2020/ui/field-container/tft-crispr-forms-ui-field-container.mjs +0 -5
  295. package/esm2020/ui/file-dropzone/file-dropzone.directive.mjs +0 -40
  296. package/esm2020/ui/file-dropzone/public-api.mjs +0 -2
  297. package/esm2020/ui/file-dropzone/tft-crispr-forms-ui-file-dropzone.mjs +0 -5
  298. package/esm2020/ui/file-upload-field/file-upload-field.component.mjs +0 -108
  299. package/esm2020/ui/file-upload-field/public-api.mjs +0 -2
  300. package/esm2020/ui/file-upload-field/tft-crispr-forms-ui-file-upload-field.mjs +0 -5
  301. package/esm2020/ui/heading/heading.component.mjs +0 -31
  302. package/esm2020/ui/heading/public-api.mjs +0 -2
  303. package/esm2020/ui/heading/tft-crispr-forms-ui-heading.mjs +0 -5
  304. package/esm2020/ui/image-upload-field/image-upload-field.component.mjs +0 -179
  305. package/esm2020/ui/image-upload-field/public-api.mjs +0 -2
  306. package/esm2020/ui/image-upload-field/tft-crispr-forms-ui-image-upload-field.mjs +0 -5
  307. package/esm2020/ui/info/info.component.mjs +0 -23
  308. package/esm2020/ui/info/public-api.mjs +0 -2
  309. package/esm2020/ui/info/tft-crispr-forms-ui-info.mjs +0 -5
  310. package/esm2020/ui/input-field/input-field.component.mjs +0 -41
  311. package/esm2020/ui/input-field/public-api.mjs +0 -2
  312. package/esm2020/ui/input-field/tft-crispr-forms-ui-input-field.mjs +0 -5
  313. package/esm2020/ui/option/option.component.mjs +0 -19
  314. package/esm2020/ui/option/public-api.mjs +0 -2
  315. package/esm2020/ui/option/tft-crispr-forms-ui-option.mjs +0 -5
  316. package/esm2020/ui/public-api.mjs +0 -7
  317. package/esm2020/ui/radio-field/public-api.mjs +0 -2
  318. package/esm2020/ui/radio-field/radio-field.component.mjs +0 -39
  319. package/esm2020/ui/radio-field/tft-crispr-forms-ui-radio-field.mjs +0 -5
  320. package/esm2020/ui/select-field/public-api.mjs +0 -2
  321. package/esm2020/ui/select-field/select-field.component.mjs +0 -73
  322. package/esm2020/ui/select-field/tft-crispr-forms-ui-select-field.mjs +0 -5
  323. package/esm2020/ui/selected-file/public-api.mjs +0 -2
  324. package/esm2020/ui/selected-file/selected-file.component.mjs +0 -26
  325. package/esm2020/ui/selected-file/tft-crispr-forms-ui-selected-file.mjs +0 -5
  326. package/esm2020/ui/slider-field/public-api.mjs +0 -2
  327. package/esm2020/ui/slider-field/slider-field.component.mjs +0 -44
  328. package/esm2020/ui/slider-field/tft-crispr-forms-ui-slider-field.mjs +0 -5
  329. package/esm2020/ui/textarea-field/public-api.mjs +0 -2
  330. package/esm2020/ui/textarea-field/textarea-field.component.mjs +0 -42
  331. package/esm2020/ui/textarea-field/tft-crispr-forms-ui-textarea-field.mjs +0 -5
  332. package/esm2020/ui/tft-crispr-forms-ui.mjs +0 -5
  333. package/esm2020/ui/unit-conversion-field/public-api.mjs +0 -2
  334. package/esm2020/ui/unit-conversion-field/tft-crispr-forms-ui-unit-conversion-field.mjs +0 -5
  335. package/esm2020/ui/unit-conversion-field/unit-conversion-field.component.mjs +0 -84
  336. package/esm2020/utils/abstracts/autocomplete-field.abstract.mjs +0 -30
  337. package/esm2020/utils/abstracts/crispr-control.mixin.mjs +0 -27
  338. package/esm2020/utils/abstracts/crispr-display-field.abstract.mjs +0 -14
  339. package/esm2020/utils/abstracts/crispr-field.abstract.mjs +0 -20
  340. package/esm2020/utils/abstracts/index.mjs +0 -5
  341. package/esm2020/utils/functions/buildFormGroupFromConfig.mjs +0 -28
  342. package/esm2020/utils/functions/callOptionsIfFunction.mjs +0 -4
  343. package/esm2020/utils/functions/createControlForType.mjs +0 -19
  344. package/esm2020/utils/functions/filterOptionsByLabel.mjs +0 -11
  345. package/esm2020/utils/functions/image-compression.helpers.mjs +0 -50
  346. package/esm2020/utils/functions/index.mjs +0 -8
  347. package/esm2020/utils/functions/isControlConfig.mjs +0 -7
  348. package/esm2020/utils/functions/observablifyOptions.mjs +0 -29
  349. package/esm2020/utils/models/autocomplete-chiplist-field.config.mjs +0 -2
  350. package/esm2020/utils/models/autocomplete-field.config.mjs +0 -2
  351. package/esm2020/utils/models/button.config.mjs +0 -2
  352. package/esm2020/utils/models/checkbox-field.config.mjs +0 -2
  353. package/esm2020/utils/models/crispr-field.config.mjs +0 -23
  354. package/esm2020/utils/models/datepicker-field.config.mjs +0 -2
  355. package/esm2020/utils/models/divider.config.mjs +0 -2
  356. package/esm2020/utils/models/file-upload-field.config.mjs +0 -2
  357. package/esm2020/utils/models/form-group-list.config.mjs +0 -2
  358. package/esm2020/utils/models/heading.config.mjs +0 -3
  359. package/esm2020/utils/models/image-upload-field.config.mjs +0 -2
  360. package/esm2020/utils/models/index.mjs +0 -18
  361. package/esm2020/utils/models/input-field.config.mjs +0 -2
  362. package/esm2020/utils/models/radio-field.config.mjs +0 -2
  363. package/esm2020/utils/models/select-field.config.mjs +0 -2
  364. package/esm2020/utils/models/slider-field.config.mjs +0 -2
  365. package/esm2020/utils/models/textarea-field.config.mjs +0 -2
  366. package/esm2020/utils/models/unit-conversion-field.config.mjs +0 -2
  367. package/esm2020/utils/operators/form.operators.mjs +0 -24
  368. package/esm2020/utils/operators/index.mjs +0 -2
  369. package/esm2020/utils/public-api.mjs +0 -5
  370. package/esm2020/utils/tft-crispr-forms-utils.mjs +0 -5
  371. package/fesm2015/tft-crispr-forms-ui-autocomplete-chiplist-field.mjs +0 -138
  372. package/fesm2015/tft-crispr-forms-ui-autocomplete-chiplist-field.mjs.map +0 -1
  373. package/fesm2015/tft-crispr-forms-ui-autocomplete-field.mjs +0 -101
  374. package/fesm2015/tft-crispr-forms-ui-autocomplete-field.mjs.map +0 -1
  375. package/fesm2015/tft-crispr-forms-ui-button.mjs +0 -55
  376. package/fesm2015/tft-crispr-forms-ui-button.mjs.map +0 -1
  377. package/fesm2015/tft-crispr-forms-ui-checkbox-field.mjs +0 -49
  378. package/fesm2015/tft-crispr-forms-ui-checkbox-field.mjs.map +0 -1
  379. package/fesm2015/tft-crispr-forms-ui-datepicker-field.mjs +0 -71
  380. package/fesm2015/tft-crispr-forms-ui-datepicker-field.mjs.map +0 -1
  381. package/fesm2015/tft-crispr-forms-ui-divider.mjs +0 -34
  382. package/fesm2015/tft-crispr-forms-ui-divider.mjs.map +0 -1
  383. package/fesm2015/tft-crispr-forms-ui-field-container.mjs +0 -64
  384. package/fesm2015/tft-crispr-forms-ui-field-container.mjs.map +0 -1
  385. package/fesm2015/tft-crispr-forms-ui-file-dropzone.mjs +0 -47
  386. package/fesm2015/tft-crispr-forms-ui-file-dropzone.mjs.map +0 -1
  387. package/fesm2015/tft-crispr-forms-ui-file-upload-field.mjs +0 -117
  388. package/fesm2015/tft-crispr-forms-ui-file-upload-field.mjs.map +0 -1
  389. package/fesm2015/tft-crispr-forms-ui-heading.mjs +0 -37
  390. package/fesm2015/tft-crispr-forms-ui-heading.mjs.map +0 -1
  391. package/fesm2015/tft-crispr-forms-ui-image-upload-field.mjs +0 -182
  392. package/fesm2015/tft-crispr-forms-ui-image-upload-field.mjs.map +0 -1
  393. package/fesm2015/tft-crispr-forms-ui-info.mjs +0 -30
  394. package/fesm2015/tft-crispr-forms-ui-info.mjs.map +0 -1
  395. package/fesm2015/tft-crispr-forms-ui-input-field.mjs +0 -48
  396. package/fesm2015/tft-crispr-forms-ui-input-field.mjs.map +0 -1
  397. package/fesm2015/tft-crispr-forms-ui-option.mjs +0 -26
  398. package/fesm2015/tft-crispr-forms-ui-option.mjs.map +0 -1
  399. package/fesm2015/tft-crispr-forms-ui-radio-field.mjs +0 -46
  400. package/fesm2015/tft-crispr-forms-ui-radio-field.mjs.map +0 -1
  401. package/fesm2015/tft-crispr-forms-ui-select-field.mjs +0 -81
  402. package/fesm2015/tft-crispr-forms-ui-select-field.mjs.map +0 -1
  403. package/fesm2015/tft-crispr-forms-ui-selected-file.mjs +0 -33
  404. package/fesm2015/tft-crispr-forms-ui-selected-file.mjs.map +0 -1
  405. package/fesm2015/tft-crispr-forms-ui-slider-field.mjs +0 -51
  406. package/fesm2015/tft-crispr-forms-ui-slider-field.mjs.map +0 -1
  407. package/fesm2015/tft-crispr-forms-ui-textarea-field.mjs +0 -49
  408. package/fesm2015/tft-crispr-forms-ui-textarea-field.mjs.map +0 -1
  409. package/fesm2015/tft-crispr-forms-ui-unit-conversion-field.mjs +0 -93
  410. package/fesm2015/tft-crispr-forms-ui-unit-conversion-field.mjs.map +0 -1
  411. package/fesm2015/tft-crispr-forms-ui.mjs +0 -12
  412. package/fesm2015/tft-crispr-forms-ui.mjs.map +0 -1
  413. package/fesm2015/tft-crispr-forms-utils.mjs +0 -280
  414. package/fesm2015/tft-crispr-forms-utils.mjs.map +0 -1
  415. package/fesm2015/tft-crispr-forms.mjs +0 -438
  416. package/fesm2015/tft-crispr-forms.mjs.map +0 -1
  417. package/fesm2020/tft-crispr-forms-ui-autocomplete-chiplist-field.mjs +0 -137
  418. package/fesm2020/tft-crispr-forms-ui-autocomplete-chiplist-field.mjs.map +0 -1
  419. package/fesm2020/tft-crispr-forms-ui-autocomplete-field.mjs +0 -100
  420. package/fesm2020/tft-crispr-forms-ui-autocomplete-field.mjs.map +0 -1
  421. package/fesm2020/tft-crispr-forms-ui-button.mjs +0 -55
  422. package/fesm2020/tft-crispr-forms-ui-button.mjs.map +0 -1
  423. package/fesm2020/tft-crispr-forms-ui-checkbox-field.mjs +0 -49
  424. package/fesm2020/tft-crispr-forms-ui-checkbox-field.mjs.map +0 -1
  425. package/fesm2020/tft-crispr-forms-ui-datepicker-field.mjs +0 -70
  426. package/fesm2020/tft-crispr-forms-ui-datepicker-field.mjs.map +0 -1
  427. package/fesm2020/tft-crispr-forms-ui-divider.mjs +0 -34
  428. package/fesm2020/tft-crispr-forms-ui-divider.mjs.map +0 -1
  429. package/fesm2020/tft-crispr-forms-ui-field-container.mjs +0 -65
  430. package/fesm2020/tft-crispr-forms-ui-field-container.mjs.map +0 -1
  431. package/fesm2020/tft-crispr-forms-ui-file-dropzone.mjs +0 -47
  432. package/fesm2020/tft-crispr-forms-ui-file-dropzone.mjs.map +0 -1
  433. package/fesm2020/tft-crispr-forms-ui-file-upload-field.mjs +0 -115
  434. package/fesm2020/tft-crispr-forms-ui-file-upload-field.mjs.map +0 -1
  435. package/fesm2020/tft-crispr-forms-ui-heading.mjs +0 -37
  436. package/fesm2020/tft-crispr-forms-ui-heading.mjs.map +0 -1
  437. package/fesm2020/tft-crispr-forms-ui-image-upload-field.mjs.map +0 -1
  438. package/fesm2020/tft-crispr-forms-ui-info.mjs +0 -30
  439. package/fesm2020/tft-crispr-forms-ui-info.mjs.map +0 -1
  440. package/fesm2020/tft-crispr-forms-ui-input-field.mjs +0 -48
  441. package/fesm2020/tft-crispr-forms-ui-input-field.mjs.map +0 -1
  442. package/fesm2020/tft-crispr-forms-ui-option.mjs +0 -26
  443. package/fesm2020/tft-crispr-forms-ui-option.mjs.map +0 -1
  444. package/fesm2020/tft-crispr-forms-ui-radio-field.mjs +0 -46
  445. package/fesm2020/tft-crispr-forms-ui-radio-field.mjs.map +0 -1
  446. package/fesm2020/tft-crispr-forms-ui-select-field.mjs +0 -80
  447. package/fesm2020/tft-crispr-forms-ui-select-field.mjs.map +0 -1
  448. package/fesm2020/tft-crispr-forms-ui-selected-file.mjs +0 -33
  449. package/fesm2020/tft-crispr-forms-ui-selected-file.mjs.map +0 -1
  450. package/fesm2020/tft-crispr-forms-ui-slider-field.mjs +0 -51
  451. package/fesm2020/tft-crispr-forms-ui-slider-field.mjs.map +0 -1
  452. package/fesm2020/tft-crispr-forms-ui-textarea-field.mjs +0 -49
  453. package/fesm2020/tft-crispr-forms-ui-textarea-field.mjs.map +0 -1
  454. package/fesm2020/tft-crispr-forms-ui-unit-conversion-field.mjs +0 -91
  455. package/fesm2020/tft-crispr-forms-ui-unit-conversion-field.mjs.map +0 -1
  456. package/fesm2020/tft-crispr-forms-ui.mjs +0 -12
  457. package/fesm2020/tft-crispr-forms-ui.mjs.map +0 -1
  458. package/fesm2020/tft-crispr-forms-utils.mjs.map +0 -1
  459. package/fesm2020/tft-crispr-forms.mjs +0 -434
  460. package/fesm2020/tft-crispr-forms.mjs.map +0 -1
  461. package/tft-crispr-forms-14.0.2.tgz +0 -0
  462. package/ui/README.md +0 -3
  463. package/ui/autocomplete-chiplist-field/index.d.ts +0 -5
  464. package/ui/autocomplete-field/index.d.ts +0 -5
  465. package/ui/button/index.d.ts +0 -5
  466. package/ui/checkbox-field/checkbox-field.component.d.ts +0 -21
  467. package/ui/checkbox-field/index.d.ts +0 -5
  468. package/ui/datepicker-field/index.d.ts +0 -5
  469. package/ui/divider/index.d.ts +0 -5
  470. package/ui/field-container/index.d.ts +0 -5
  471. package/ui/file-dropzone/index.d.ts +0 -5
  472. package/ui/file-upload-field/index.d.ts +0 -5
  473. package/ui/heading/index.d.ts +0 -5
  474. package/ui/image-upload-field/index.d.ts +0 -5
  475. package/ui/info/index.d.ts +0 -5
  476. package/ui/input-field/index.d.ts +0 -5
  477. package/ui/input-field/input-field.component.d.ts +0 -22
  478. package/ui/option/index.d.ts +0 -5
  479. package/ui/public-api.d.ts +0 -5
  480. package/ui/radio-field/index.d.ts +0 -5
  481. package/ui/radio-field/radio-field.component.d.ts +0 -23
  482. package/ui/select-field/index.d.ts +0 -5
  483. package/ui/selected-file/index.d.ts +0 -5
  484. package/ui/slider-field/index.d.ts +0 -5
  485. package/ui/slider-field/slider-field.component.d.ts +0 -25
  486. package/ui/textarea-field/index.d.ts +0 -5
  487. package/ui/textarea-field/textarea-field.component.d.ts +0 -21
  488. package/ui/unit-conversion-field/index.d.ts +0 -5
  489. package/utils/index.d.ts +0 -5
  490. /package/{utils → src/lib/utils}/README.md +0 -0
@@ -0,0 +1,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 '../../lib/ui';
8
+ import * as i0 from "@angular/core";
9
+ export class SubGroupModule {
10
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: SubGroupModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
11
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.9", ngImport: i0, type: SubGroupModule, declarations: [SubGroupComponent], imports: [CommonModule,
12
+ CrisprFieldDirective,
13
+ FieldContainerComponent,
14
+ CrisprPipesModule,
15
+ // TODO: Does this need to be here?
16
+ FormValidationHandlerModule], exports: [SubGroupComponent] }); }
17
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: SubGroupModule, imports: [CommonModule,
18
+ FieldContainerComponent,
19
+ CrisprPipesModule,
20
+ // TODO: Does this need to be here?
21
+ FormValidationHandlerModule] }); }
22
+ }
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ViLWdyb3VwLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY3Jpc3ByLWZvcm1zL3NyYy9saWIvc3ViLWdyb3VwL3N1Yi1ncm91cC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDMUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDakUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDM0UsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sY0FBYyxDQUFDOztBQWtCdkQsTUFBTSxPQUFPLGNBQWM7OEdBQWQsY0FBYzsrR0FBZCxjQUFjLGlCQUp2QixpQkFBaUIsYUFYakIsWUFBWTtZQUNaLG9CQUFvQjtZQUNwQix1QkFBdUI7WUFDdkIsaUJBQWlCO1lBQ2pCLG1DQUFtQztZQUNuQywyQkFBMkIsYUFHM0IsaUJBQWlCOytHQU9SLGNBQWMsWUFmdkIsWUFBWTtZQUVaLHVCQUF1QjtZQUN2QixpQkFBaUI7WUFDakIsbUNBQW1DO1lBQ25DLDJCQUEyQjs7MkZBVWxCLGNBQWM7a0JBakIxQixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLG9CQUFvQjt3QkFDcEIsdUJBQXVCO3dCQUN2QixpQkFBaUI7d0JBQ2pCLG1DQUFtQzt3QkFDbkMsMkJBQTJCO3FCQUM1QjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsaUJBQWlCO3FCQUNsQjtvQkFDRCxZQUFZLEVBQUU7d0JBQ1osaUJBQWlCO3FCQUNsQjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ3Jpc3ByRmllbGREaXJlY3RpdmUgfSBmcm9tICcuLi9maWVsZC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQ3Jpc3ByUGlwZXNNb2R1bGUgfSBmcm9tICcuLi9waXBlcy9jcmlzcHItcGlwZXMubW9kdWxlJztcbmltcG9ydCB7IFN1Ykdyb3VwQ29tcG9uZW50IH0gZnJvbSAnLi9zdWItZ3JvdXAuY29tcG9uZW50JztcbmltcG9ydCB7IEZvcm1WYWxpZGF0aW9uSGFuZGxlck1vZHVsZSB9IGZyb20gJ0B0ZnQvZm9ybS12YWxpZGF0aW9uLWhhbmRsZXInO1xuaW1wb3J0IHsgRmllbGRDb250YWluZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9saWIvdWknO1xuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBDcmlzcHJGaWVsZERpcmVjdGl2ZSxcbiAgICBGaWVsZENvbnRhaW5lckNvbXBvbmVudCxcbiAgICBDcmlzcHJQaXBlc01vZHVsZSxcbiAgICAvLyBUT0RPOiBEb2VzIHRoaXMgbmVlZCB0byBiZSBoZXJlP1xuICAgIEZvcm1WYWxpZGF0aW9uSGFuZGxlck1vZHVsZVxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgU3ViR3JvdXBDb21wb25lbnRcbiAgXSxcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgU3ViR3JvdXBDb21wb25lbnRcbiAgXVxufSlcblxuZXhwb3J0IGNsYXNzIFN1Ykdyb3VwTW9kdWxlIHtcbn1cbiJdfQ==
@@ -0,0 +1,138 @@
1
+ /* eslint-disable @nx/enforce-module-boundaries */
2
+ import { Component, ChangeDetectionStrategy, ViewChild, ElementRef, } from '@angular/core';
3
+ import { map, tap } from 'rxjs/operators';
4
+ import { MatAutocompleteModule, MatAutocompleteTrigger, } from '@angular/material/autocomplete';
5
+ import { BehaviorSubject, combineLatest } from 'rxjs';
6
+ import { ENTER } from '@angular/cdk/keycodes';
7
+ import { MatChipsModule } from '@angular/material/chips';
8
+ import { CommonModule } from '@angular/common';
9
+ import { ReactiveFormsModule } from '@angular/forms';
10
+ import { MatOptionModule } from '@angular/material/core';
11
+ import { MatInputModule } from '@angular/material/input';
12
+ import { OptionComponent } from '../option';
13
+ import { MatIconModule } from '@angular/material/icon';
14
+ import { AbstractAutocompleteComponent, DEFAULT_EMPTY_OPTIONS_MESSAGE, } from '../../utils';
15
+ import { FieldContainerComponent } from '../field-container';
16
+ import { InfoComponent } from '../info';
17
+ import { FormValidationHandlerModule } from '@tft/form-validation-handler';
18
+ import * as i0 from "@angular/core";
19
+ import * as i1 from "@angular/common";
20
+ import * as i2 from "@angular/forms";
21
+ import * as i3 from "@angular/material/autocomplete";
22
+ import * as i4 from "@angular/material/core";
23
+ import * as i5 from "@angular/material/input";
24
+ import * as i6 from "@angular/material/form-field";
25
+ import * as i7 from "@angular/material/chips";
26
+ import * as i8 from "@angular/material/icon";
27
+ import * as i9 from "@tft/form-validation-handler";
28
+ const defaultConfig = {
29
+ chipsSelectable: true,
30
+ areChipsRemovable: true,
31
+ tabToSelect: true,
32
+ autoActiveFirstOption: true,
33
+ imageUrlParam: 'image',
34
+ typeDebounceTime: 500,
35
+ allowDuplicates: false,
36
+ duplicateCompareFunction: (chip, option) => chip.value === option.value,
37
+ separatorKeyCodes: [ENTER],
38
+ emptyOptionsMessage: DEFAULT_EMPTY_OPTIONS_MESSAGE,
39
+ };
40
+ export class AutocompleteChiplistFieldComponent extends AbstractAutocompleteComponent {
41
+ constructor() {
42
+ super(...arguments);
43
+ this.defaultConfig = defaultConfig;
44
+ this.chips$ = new BehaviorSubject([]);
45
+ this.selectedChip = null;
46
+ this.controlValue$ = this.chips$.pipe(tap((chips) => {
47
+ this.control.setValue(chips.map((chip) => chip.value));
48
+ }));
49
+ }
50
+ ngOnInit() {
51
+ super.ngOnInit();
52
+ this.remainingOptions$ = combineLatest([this.chips$, this.options$]).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 &&
81
+ (this.config.tabToSelect || this.config.addChipOnBlur)) {
82
+ const chip = this.chipInput.activeOption.value;
83
+ this.chips$.next([...this.chips$.value, chip]);
84
+ }
85
+ }
86
+ /**
87
+ * Handles selection via key tokens passed through separatorKeyCodes property
88
+ * NOTE: If TAB is used focus does not move on to next component
89
+ * @param event
90
+ */
91
+ handleTokenEnd(event) {
92
+ if (this.chipInput.activeOption) {
93
+ this.chipInput.activeOption.select();
94
+ }
95
+ event.chipInput?.clear();
96
+ }
97
+ mapToLabel(option) {
98
+ return option ? option.label : '';
99
+ }
100
+ removeChip(removedChip) {
101
+ const remainingChips = this.chips$.value.filter((chip) => chip !== removedChip);
102
+ this.chips$.next(remainingChips);
103
+ }
104
+ highlightChip(chip) {
105
+ if (this.config.chipsSelectable) {
106
+ this.selectedChip = chip;
107
+ }
108
+ }
109
+ blurField() {
110
+ console.log('blur');
111
+ this.selectedChip = null;
112
+ }
113
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: AutocompleteChiplistFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
114
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", 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-grid\n #chipList>\n <!-- [selectable]=\"config.chipsSelectable\" -->\n <mat-chip-row\n class=\"refinement-chip\"\n *ngFor=\"let chip of controlValue$ | async; let i = index\"\n [removable]=\"config.areChipsRemovable\"\n [highlighted]=\"chip?.value === selectedChip?.value\"\n (click)=\"highlightChip(chip)\"\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-row>\n <input class=\"hidden-error-directive-anchor\" (blur)=\"blurField()\"\n [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 (blur)=\"blurField()\"\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-grid>\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: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i4.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i3.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i5.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i6.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i6.MatLabel, selector: "mat-label" }, { kind: "directive", type: i6.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i6.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatOptionModule }, { kind: "ngmodule", type: MatChipsModule }, { kind: "component", type: i7.MatChipGrid, selector: "mat-chip-grid", inputs: ["tabIndex", "disabled", "placeholder", "required", "value", "errorStateMatcher"], outputs: ["change", "valueChange"] }, { 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: "component", type: i7.MatChipRow, selector: "mat-chip-row, [mat-chip-row], mat-basic-chip-row, [mat-basic-chip-row]", inputs: ["color", "disabled", "disableRipple", "tabIndex", "editable"], outputs: ["edited"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: FormValidationHandlerModule }, { kind: "directive", type: i9.ControlErrorsDirective, selector: "[formControl], [formControlName]" }, { kind: "directive", type: i9.ControlErrorContainerDirective, selector: "[controlErrorContainer], [formGroup]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, preserveWhitespaces: true }); }
115
+ }
116
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: AutocompleteChiplistFieldComponent, decorators: [{
117
+ type: Component,
118
+ args: [{ selector: 'crispr-autocomplete-chiplist-field', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
119
+ CommonModule,
120
+ InfoComponent,
121
+ OptionComponent,
122
+ ReactiveFormsModule,
123
+ FieldContainerComponent,
124
+ MatAutocompleteModule,
125
+ MatInputModule,
126
+ MatOptionModule,
127
+ MatChipsModule,
128
+ MatIconModule,
129
+ FormValidationHandlerModule,
130
+ ], 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-grid\n #chipList>\n <!-- [selectable]=\"config.chipsSelectable\" -->\n <mat-chip-row\n class=\"refinement-chip\"\n *ngFor=\"let chip of controlValue$ | async; let i = index\"\n [removable]=\"config.areChipsRemovable\"\n [highlighted]=\"chip?.value === selectedChip?.value\"\n (click)=\"highlightChip(chip)\"\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-row>\n <input class=\"hidden-error-directive-anchor\" (blur)=\"blurField()\"\n [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 (blur)=\"blurField()\"\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-grid>\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"] }]
131
+ }], propDecorators: { chipInput: [{
132
+ type: ViewChild,
133
+ args: ['autoInput', { read: MatAutocompleteTrigger }]
134
+ }], chipInputRef: [{
135
+ type: ViewChild,
136
+ args: ['autoInput']
137
+ }] } });
138
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLWNoaXBsaXN0LWZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY3Jpc3ByLWZvcm1zL3NyYy9saWIvdWkvYXV0b2NvbXBsZXRlLWNoaXBsaXN0LWZpZWxkL2F1dG9jb21wbGV0ZS1jaGlwbGlzdC1maWVsZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NyaXNwci1mb3Jtcy9zcmMvbGliL3VpL2F1dG9jb21wbGV0ZS1jaGlwbGlzdC1maWVsZC9hdXRvY29tcGxldGUtY2hpcGxpc3QtZmllbGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsa0RBQWtEO0FBQ2xELE9BQU8sRUFDTCxTQUFTLEVBRVQsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxVQUFVLEdBQ1gsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMxQyxPQUFPLEVBQ0wscUJBQXFCLEVBRXJCLHNCQUFzQixHQUN2QixNQUFNLGdDQUFnQyxDQUFDO0FBQ3hDLE9BQU8sRUFBYyxlQUFlLEVBQUUsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUU5QyxPQUFPLEVBQXFCLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzVFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQUUs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QUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRCxhQUFhLENBQUMsSUFBa0I7UUFDOUIsSUFBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGVBQWUsRUFBRTtZQUM5QixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQTtTQUN6QjtJQUNILENBQUM7SUFFRCxTQUFTO1FBQ1AsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUNuQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztJQUMzQixDQUFDOzhHQW5HVSxrQ0FBa0M7a0dBQWxDLGtDQUFrQyxpTEFpQmIsc0JBQXNCLGdKQ3BGeEQseTVGQXFGQSwwU0QvQkksWUFBWSxxVEFDWixhQUFhLDBFQUNiLGVBQWUsNkVBQ2YsbUJBQW1CLHVoQ0FDbkIsdUJBQXVCLDhHQUN2QixxQkFBcUIsdzFCQUNyQixjQUFjLCswQkFDZCxlQUFlLDhCQUNmLGNBQWMsMHlCQUNkLGFBQWEsbUxBQ2IsMkJBQTJCOzsyRkFHbEIsa0NBQWtDO2tCQXBCOUMsU0FBUzsrQkFDRSxvQ0FBb0MsbUJBRzdCLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osYUFBYTt3QkFDYixlQUFlO3dCQUNmLG1CQUFtQjt3QkFDbkIsdUJBQXVCO3dCQUN2QixxQkFBcUI7d0JBQ3JCLGNBQWM7d0JBQ2QsZUFBZTt3QkFDZixjQUFjO3dCQUNkLGFBQWE7d0JBQ2IsMkJBQTJCO3FCQUM1Qjs4QkFvQkQsU0FBUztzQkFEUixTQUFTO3VCQUFDLFdBQVcsRUFBRSxFQUFFLElBQUksRUFBRSxzQkFBc0IsRUFBRTtnQkFFaEMsWUFBWTtzQkFBbkMsU0FBUzt1QkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQG54L2VuZm9yY2UtbW9kdWxlLWJvdW5kYXJpZXMgKi9cbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgT25Jbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgVmlld0NoaWxkLFxuICBFbGVtZW50UmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IG1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtcbiAgTWF0QXV0b2NvbXBsZXRlTW9kdWxlLFxuICBNYXRBdXRvY29tcGxldGVTZWxlY3RlZEV2ZW50LFxuICBNYXRBdXRvY29tcGxldGVUcmlnZ2VyLFxufSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9hdXRvY29tcGxldGUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBFTlRFUiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9rZXljb2Rlcyc7XG5cbmltcG9ydCB7IE1hdENoaXBJbnB1dEV2ZW50LCBNYXRDaGlwc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoaXBzJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0T3B0aW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcbmltcG9ydCB7IE9wdGlvbkNvbXBvbmVudCB9IGZyb20gJy4uL29wdGlvbic7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQge1xuICBBdXRvY29tcGxldGVDaGlwbGlzdEZpZWxkQ29uZmlnLFxuICBBYnN0cmFjdEF1dG9jb21wbGV0ZUNvbXBvbmVudCxcbiAgREVGQVVMVF9FTVBUWV9PUFRJT05TX01FU1NBR0UsXG4gIFNlbGVjdE9wdGlvbixcbn0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuaW1wb3J0IHsgRmllbGRDb250YWluZXJDb21wb25lbnQgfSBmcm9tICcuLi9maWVsZC1jb250YWluZXInO1xuaW1wb3J0IHsgSW5mb0NvbXBvbmVudCB9IGZyb20gJy4uL2luZm8nO1xuaW1wb3J0IHsgRm9ybVZhbGlkYXRpb25IYW5kbGVyTW9kdWxlIH0gZnJvbSAnQHRmdC9mb3JtLXZhbGlkYXRpb24taGFuZGxlcic7XG5cbmNvbnN0IGRlZmF1bHRDb25maWc6IFBhcnRpYWw8QXV0b2NvbXBsZXRlQ2hpcGxpc3RGaWVsZENvbmZpZz4gPSB7XG4gIGNoaXBzU2VsZWN0YWJsZTogdHJ1ZSxcbiAgYXJlQ2hpcHNSZW1vdmFibGU6IHRydWUsXG4gIHRhYlRvU2VsZWN0OiB0cnVlLFxuICBhdXRvQWN0aXZlRmlyc3RPcHRpb246IHRydWUsXG4gIGltYWdlVXJsUGFyYW06ICdpbWFnZScsXG4gIHR5cGVEZWJvdW5jZVRpbWU6IDUwMCxcbiAgYWxsb3dEdXBsaWNhdGVzOiBmYWxzZSxcbiAgZHVwbGljYXRlQ29tcGFyZUZ1bmN0aW9uOiAoY2hpcCwgb3B0aW9uKSA9PiBjaGlwLnZhbHVlID09PSBvcHRpb24udmFsdWUsXG4gIHNlcGFyYXRvcktleUNvZGVzOiBbRU5URVJdLFxuICBlbXB0eU9wdGlvbnNNZXNzYWdlOiBERUZBVUxUX0VNUFRZX09QVElPTlNfTUVTU0FHRSxcbn07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NyaXNwci1hdXRvY29tcGxldGUtY2hpcGxpc3QtZmllbGQnLFxuICB0ZW1wbGF0ZVVybDogJy4vYXV0b2NvbXBsZXRlLWNoaXBsaXN0LWZpZWxkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYXV0b2NvbXBsZXRlLWNoaXBsaXN0LWZpZWxkLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEluZm9Db21wb25lbnQsXG4gICAgT3B0aW9uQ29tcG9uZW50LFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgRmllbGRDb250YWluZXJDb21wb25lbnQsXG4gICAgTWF0QXV0b2NvbXBsZXRlTW9kdWxlLFxuICAgIE1hdElucHV0TW9kdWxlLFxuICAgIE1hdE9wdGlvbk1vZHVsZSxcbiAgICBNYXRDaGlwc01vZHVsZSxcbiAgICBNYXRJY29uTW9kdWxlLFxuICAgIEZvcm1WYWxpZGF0aW9uSGFuZGxlck1vZHVsZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQXV0b2NvbXBsZXRlQ2hpcGxpc3RGaWVsZENvbXBvbmVudFxuICBleHRlbmRzIEFic3RyYWN0QXV0b2NvbXBsZXRlQ29tcG9uZW50PEF1dG9jb21wbGV0ZUNoaXBsaXN0RmllbGRDb25maWc+XG4gIGltcGxlbWVudHMgT25Jbml0XG57XG4gIGRlZmF1bHRDb25maWcgPSBkZWZhdWx0Q29uZmlnO1xuICBjaGlwcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFNlbGVjdE9wdGlvbltdPihbXSk7XG4gIHJlbWFpbmluZ09wdGlvbnMkOiBPYnNlcnZhYmxlPFNlbGVjdE9wdGlvbltdPjtcbiAgc2VsZWN0ZWRDaGlwOiBTZWxlY3RPcHRpb24gPSBudWxsO1xuICBjb250cm9sVmFsdWUkID0gdGhpcy5jaGlwcyQucGlwZShcbiAgICB0YXAoKGNoaXBzKSA9PiB7XG4gICAgICB0aGlzLmNvbnRyb2wuc2V0VmFsdWUoY2hpcHMubWFwKChjaGlwKSA9PiBjaGlwLnZhbHVlKSk7XG4gICAgfSlcbiAgKTtcblxuICAvLyBXZSBuZWVkIHVzZSBWaWV3Q2hpbGQgdHdpY2Ugb24gdGhlIHNhbWUgdGVtcGxhdGUgcmVmIHRvIGFjY2VzcyBhcyBkaWZmZXJlbnQgdHlwZXNcbiAgLy8gLSB0aGUgTWF0QXV0b2NvbXBsZXRlVHJpZ2dlciBpcyB1c2VkIHRvIGZvciBzZWxlY3RpbmcgdmFsdWUgb24gdGFiXG4gIC8vIC0gdGhlIEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD4gaXMgdXNlZCB0byBjbGVhciB0aGUgdmFsdWUgZnJvbSBpbnB1dCBlbGVtZW50IG9uIHNlbGVjdGlvblxuICBAVmlld0NoaWxkKCdhdXRvSW5wdXQnLCB7IHJlYWQ6IE1hdEF1dG9jb21wbGV0ZVRyaWdnZXIgfSlcbiAgY2hpcElucHV0OiBNYXRBdXRvY29tcGxldGVUcmlnZ2VyO1xuICBAVmlld0NoaWxkKCdhdXRvSW5wdXQnKSBjaGlwSW5wdXRSZWY6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICB0aGlzLnJlbWFpbmluZ09wdGlvbnMkID0gY29tYmluZUxhdGVzdChbdGhpcy5jaGlwcyQsIHRoaXMub3B0aW9ucyRdKS5waXBlKFxuICAgICAgbWFwKChbY2hpcHMsIG9wdGlvbnNdKSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbmZpZy5hbGxvd0R1cGxpY2F0ZXNcbiAgICAgICAgICA/IG9wdGlvbnNcbiAgICAgICAgICA6IG9wdGlvbnM/LmZpbHRlcigob3B0aW9uKSA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiAhY2hpcHMuc29tZSgoY2hpcCkgPT5cbiAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZy5kdXBsaWNhdGVDb21wYXJlRnVuY3Rpb24oY2hpcCwgb3B0aW9uKVxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBzZXRDb250cm9sVmFsdWUodmFsdWU6IFNlbGVjdE9wdGlvbltdKSB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLmNoaXBzJC5uZXh0KHZhbHVlKTtcbiAgICB9XG4gIH1cblxuICAvLyBoYW5kbGVzIG1hdCBzZWxlY3RpbmdcbiAgaGFuZGxlU2VsZWN0KGV2ZW50OiBNYXRBdXRvY29tcGxldGVTZWxlY3RlZEV2ZW50KSB7XG4gICAgY29uc3Qgc2VsZWN0ZWRPcHRpb246IFNlbGVjdE9wdGlvbiA9IGV2ZW50Lm9wdGlvbi52YWx1ZSBhcyBTZWxlY3RPcHRpb247XG4gICAgdGhpcy5jaGlwcyQubmV4dChbLi4udGhpcy5jaGlwcyQudmFsdWUsIHNlbGVjdGVkT3B0aW9uXSk7XG4gICAgdGhpcy5jaGlwSW5wdXRSZWYubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xuICAgIHRoaXMuYXV0b2NvbXBsZXRlSW5wdXRDb250cm9sLnNldFZhbHVlKCcnKTtcbiAgICAvLyBzZXRUaW1lb3V0IG5lZWRlZCBiZWNhdXNlIHRoZSBwYW5lbCB0aGlua3MgaXQncyBzdGlsbCBvcGVuIGF0IHRoaXMgcG9pbnRcbiAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuY2hpcElucHV0Lm9wZW5QYW5lbCgpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUbyBmb2xsb3cgQVJJQSBzdGFuZGFyZHMgd2Ugd2FudCB0byBzZWxlY3QgdGhlIGFjdGl2ZSBvcHRpb24gb24gYmx1ci5cbiAgICogbWF0Q2hpcElucHV0QWRkT25CbHVyIHNob3VsZCBkbyB0aGlzIGJ1dCBpdCBjYXVzZXMgYnVnZ3kgYmVoYXZpb3VyXG4gICAqIEBwYXJhbSBldmVudCBibHVyIGV2ZW50IHRoYXQgdHJpZ2dlcnMgdGhlIGhhbmRsZSBibHVyXG4gICAqL1xuICBoYW5kbGVUYWIoX2V2ZW50OiBGb2N1c0V2ZW50KSB7XG4gICAgaWYgKFxuICAgICAgdGhpcy5jaGlwSW5wdXQuYWN0aXZlT3B0aW9uICYmXG4gICAgICAodGhpcy5jb25maWcudGFiVG9TZWxlY3QgfHwgdGhpcy5jb25maWcuYWRkQ2hpcE9uQmx1cilcbiAgICApIHtcbiAgICAgIGNvbnN0IGNoaXAgPSB0aGlzLmNoaXBJbnB1dC5hY3RpdmVPcHRpb24udmFsdWU7XG4gICAgICB0aGlzLmNoaXBzJC5uZXh0KFsuLi50aGlzLmNoaXBzJC52YWx1ZSwgY2hpcF0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBIYW5kbGVzIHNlbGVjdGlvbiB2aWEga2V5IHRva2VucyBwYXNzZWQgdGhyb3VnaCBzZXBhcmF0b3JLZXlDb2RlcyBwcm9wZXJ0eVxuICAgKiBOT1RFOiBJZiBUQUIgaXMgdXNlZCBmb2N1cyBkb2VzIG5vdCBtb3ZlIG9uIHRvIG5leHQgY29tcG9uZW50XG4gICAqIEBwYXJhbSBldmVudFxuICAgKi9cbiAgaGFuZGxlVG9rZW5FbmQoZXZlbnQ6IE1hdENoaXBJbnB1dEV2ZW50KSB7XG4gICAgaWYgKHRoaXMuY2hpcElucHV0LmFjdGl2ZU9wdGlvbikge1xuICAgICAgdGhpcy5jaGlwSW5wdXQuYWN0aXZlT3B0aW9uLnNlbGVjdCgpO1xuICAgIH1cbiAgICBldmVudC5jaGlwSW5wdXQ/LmNsZWFyKCk7XG4gIH1cblxuICBtYXBUb0xhYmVsKG9wdGlvbjogU2VsZWN0T3B0aW9uKSB7XG4gICAgcmV0dXJuIG9wdGlvbiA/IG9wdGlvbi5sYWJlbCA6ICcnO1xuICB9XG5cbiAgcmVtb3ZlQ2hpcChyZW1vdmVkQ2hpcDogU2VsZWN0T3B0aW9uKSB7XG4gICAgY29uc3QgcmVtYWluaW5nQ2hpcHM6IFNlbGVjdE9wdGlvbltdID0gdGhpcy5jaGlwcyQudmFsdWUuZmlsdGVyKFxuICAgICAgKGNoaXApID0+IGNoaXAgIT09IHJlbW92ZWRDaGlwXG4gICAgKTtcbiAgICB0aGlzLmNoaXBzJC5uZXh0KHJlbWFpbmluZ0NoaXBzKTtcbiAgfVxuXG4gIGhpZ2hsaWdodENoaXAoY2hpcDogU2VsZWN0T3B0aW9uKSB7XG4gICAgaWYodGhpcy5jb25maWcuY2hpcHNTZWxlY3RhYmxlKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkQ2hpcCA9IGNoaXBcbiAgICB9XG4gIH1cbiAgXG4gIGJsdXJGaWVsZCgpIHtcbiAgICBjb25zb2xlLmxvZygnYmx1cicpXG4gICAgdGhpcy5zZWxlY3RlZENoaXAgPSBudWxsO1xuICB9XG59XG4iLCI8Y3Jpc3ByLWZpZWxkLWNvbnRhaW5lclxuICBbY29uZmlnXT1cImNvbmZpZ1wiXG4gIFtncm91cF09XCJncm91cFwiPlxuXG4gIDxtYXQtZm9ybS1maWVsZFxuICAgIFtjb2xvcl09XCJjb25maWcuY29sb3JcIlxuICAgIFthcHBlYXJhbmNlXT1cImNvbmZpZy5hcHBlYXJhbmNlXCJcbiAgICBbZm9ybUdyb3VwXT1cImdyb3VwXCI+XG4gICAgPG1hdC1sYWJlbCAqbmdJZj1cImNvbmZpZy5sYWJlbFwiPlxuICAgICAge3tjb25maWcubGFiZWx9fVxuICAgIDwvbWF0LWxhYmVsPlxuXG4gICAgPG1hdC1jaGlwLWdyaWRcbiAgICAgICNjaGlwTGlzdD5cbiAgICAgIDwhLS0gW3NlbGVjdGFibGVdPVwiY29uZmlnLmNoaXBzU2VsZWN0YWJsZVwiIC0tPlxuICAgICAgPG1hdC1jaGlwLXJvd1xuICAgICAgICBjbGFzcz1cInJlZmluZW1lbnQtY2hpcFwiXG4gICAgICAgICpuZ0Zvcj1cImxldCBjaGlwIG9mIGNvbnRyb2xWYWx1ZSQgfCBhc3luYzsgbGV0IGkgPSBpbmRleFwiXG4gICAgICAgIFtyZW1vdmFibGVdPVwiY29uZmlnLmFyZUNoaXBzUmVtb3ZhYmxlXCJcbiAgICAgICAgW2hpZ2hsaWdodGVkXT1cImNoaXA/LnZhbHVlID09PSBzZWxlY3RlZENoaXA/LnZhbHVlXCJcbiAgICAgICAgKGNsaWNrKT1cImhpZ2hsaWdodENoaXAoY2hpcClcIlxuICAgICAgICAocmVtb3ZlZCk9XCJyZW1vdmVDaGlwKGNoaXApXCI+XG4gICAgICAgIDxzcGFuICpuZ0lmPVwiY2hpcC5pbWFnZVVybCBhcyBpbWFnZVVybFwiIGNsYXNzPVwiaW1hZ2UtY29udGFpbmVyXCI+XG4gICAgICAgICAgPGltZyBbc3JjXT1cImltYWdlVXJsXCIgYWx0PVwiaW1hZ2Ugb2Yge3tjaGlwLmxhYmVsfX1cIj5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICB7e2NoaXAubGFiZWx9fVxuICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICBtYXRDaGlwUmVtb3ZlXG4gICAgICAgICAgKm5nSWY9XCJjb25maWcuYXJlQ2hpcHNSZW1vdmFibGVcIj5cbiAgICAgICAgICBjYW5jZWxcbiAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgIDwvbWF0LWNoaXAtcm93PlxuICAgICAgPGlucHV0IGNsYXNzPVwiaGlkZGVuLWVycm9yLWRpcmVjdGl2ZS1hbmNob3JcIiAoYmx1cik9XCJibHVyRmllbGQoKVwiXG4gICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImNvbmZpZy5jb250cm9sTmFtZVwiIHR5cGU9XCJ0ZXh0XCIvPlxuXG4gICAgICA8aW5wdXRcbiAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgW2Zvcm1Db250cm9sXT1cImF1dG9jb21wbGV0ZUlucHV0Q29udHJvbFwiXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCJjb25maWcucGxhY2Vob2xkZXJcIlxuICAgICAgICBbbWF0Q2hpcElucHV0Rm9yXT1cImNoaXBMaXN0XCJcbiAgICAgICAgW21hdEF1dG9jb21wbGV0ZV09XCJhdXRvXCJcbiAgICAgICAgKGtleWRvd24udGFiKT1cImhhbmRsZVRhYigkZXZlbnQpXCJcbiAgICAgICAgW21hdENoaXBJbnB1dFNlcGFyYXRvcktleUNvZGVzXT1cImNvbmZpZy5zZXBhcmF0b3JLZXlDb2Rlc1wiXG4gICAgICAgIChtYXRDaGlwSW5wdXRUb2tlbkVuZCk9XCJoYW5kbGVUb2tlbkVuZCgkZXZlbnQpXCJcbiAgICAgICAgcm9sZT1cInNlYXJjaGJveFwiXG4gICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgYXV0b2NhcGl0YWxpemU9XCJvZmZcIlxuICAgICAgICBhdXRvY29ycmVjdD1cIm9mZlwiXG4gICAgICAgIHNwZWxsY2hlY2s9XCJmYWxzZVwiXG4gICAgICAgIChibHVyKT1cImJsdXJGaWVsZCgpXCJcbiAgICAgICAgI2F1dG9JbnB1dC8+XG4gICAgICA8c3BhbiAqbmdJZj1cImNvbmZpZy5maWVsZFN1ZmZpeFwiIG1hdFN1ZmZpeD57e2NvbmZpZy5maWVsZFN1ZmZpeH19PC9zcGFuPlxuICAgICAgPGNyaXNwci1pbmZvXG4gICAgICAgICpuZ0lmPVwiY29uZmlnLmluZm9cIlxuICAgICAgICBtYXRTdWZmaXhcbiAgICAgICAgW2luZm9dPVwiY29uZmlnLmluZm8gXCI+XG4gICAgICA8L2NyaXNwci1pbmZvPlxuXG4gICAgPC9tYXQtY2hpcC1ncmlkPlxuICAgIDxtYXQtYXV0b2NvbXBsZXRlXG4gICAgICAjYXV0bz1cIm1hdEF1dG9jb21wbGV0ZVwiXG4gICAgICBbYXV0b0FjdGl2ZUZpcnN0T3B0aW9uXT1cInRoaXMuY29uZmlnLmF1dG9BY3RpdmVGaXJzdE9wdGlvblwiXG4gICAgICAob3B0aW9uU2VsZWN0ZWQpPVwiaGFuZGxlU2VsZWN0KCRldmVudClcIlxuICAgICAgW2Rpc3BsYXlXaXRoXT1cIm1hcFRvTGFiZWxcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJyZW1haW5pbmdPcHRpb25zJCB8IGFzeW5jIGFzIHJlbWFpbmluZ09wdGlvbnM7IGVsc2UgZW1wdHlPcHRpb25cIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInJlbWFpbmluZ09wdGlvbnMubGVuZ3RoID4gMDsgZWxzZSBlbXB0eU9wdGlvblwiPlxuICAgICAgICAgICA8bWF0LW9wdGlvblxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiByZW1haW5pbmdPcHRpb25zJCB8IGFzeW5jXCJcbiAgICAgICAgICAgIFt2YWx1ZV09XCJvcHRpb25cIj5cbiAgICAgICAgICAgIDxjcmlzcHItb3B0aW9uIFtvcHRpb25dPVwib3B0aW9uXCI+PC9jcmlzcHItb3B0aW9uPlxuICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLXRlbXBsYXRlICNlbXB0eU9wdGlvbj5cbiAgICAgICAgPG1hdC1vcHRpb24gZGlzYWJsZWQ9XCJ0cnVlXCI+XG4gICAgICAgICAge3tjb25maWcuZW1wdHlPcHRpb25zTWVzc2FnZX19XG4gICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9tYXQtYXV0b2NvbXBsZXRlPlxuXG4gICAgPG1hdC1oaW50ICpuZ0lmPVwiY29uZmlnLmhpbnQgJiYgKGNvbnRyb2wudmFsaWQgfHwgIWNvbnRyb2wudG91Y2hlZClcIj57e2NvbmZpZy5oaW50fX08L21hdC1oaW50PlxuXG4gIDwvbWF0LWZvcm0tZmllbGQ+XG48L2NyaXNwci1maWVsZC1jb250YWluZXI+XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export * from './public-api';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NyaXNwci1mb3Jtcy9zcmMvbGliL3VpL2F1dG9jb21wbGV0ZS1jaGlwbGlzdC1maWVsZC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vcHVibGljLWFwaSc7XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export * from './autocomplete-chiplist-field.component';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY3Jpc3ByLWZvcm1zL3NyYy9saWIvdWkvYXV0b2NvbXBsZXRlLWNoaXBsaXN0LWZpZWxkL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx5Q0FBeUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYXV0b2NvbXBsZXRlLWNoaXBsaXN0LWZpZWxkLmNvbXBvbmVudCc7XG4iXX0=
@@ -0,0 +1,95 @@
1
+ /* eslint-disable @nx/enforce-module-boundaries */
2
+ import { Component, ViewChild, ChangeDetectionStrategy, ElementRef, } from '@angular/core';
3
+ import { MatAutocompleteTrigger, MatAutocompleteModule, } from '@angular/material/autocomplete';
4
+ import { CommonModule } from '@angular/common';
5
+ import { ReactiveFormsModule } from '@angular/forms';
6
+ import { MatInputModule } from '@angular/material/input';
7
+ import { MatOptionModule } from '@angular/material/core';
8
+ import { OptionComponent } from '../option';
9
+ import { FormValidationHandlerModule } from '@tft/form-validation-handler';
10
+ import { FieldContainerComponent } from '../field-container';
11
+ import { AbstractAutocompleteComponent, DEFAULT_EMPTY_OPTIONS_MESSAGE, } from '../../utils';
12
+ import { InfoComponent } from '../info';
13
+ import * as i0 from "@angular/core";
14
+ import * as i1 from "@angular/common";
15
+ import * as i2 from "@angular/forms";
16
+ import * as i3 from "@angular/material/autocomplete";
17
+ import * as i4 from "@angular/material/core";
18
+ import * as i5 from "@angular/material/input";
19
+ import * as i6 from "@angular/material/form-field";
20
+ import * as i7 from "@tft/form-validation-handler";
21
+ const defaultConfig = {
22
+ autoActiveFirstOption: true,
23
+ typeDebounceTime: 500,
24
+ emptyOptionsMessage: DEFAULT_EMPTY_OPTIONS_MESSAGE,
25
+ };
26
+ export class AutocompleteFieldComponent extends AbstractAutocompleteComponent {
27
+ constructor() {
28
+ super(...arguments);
29
+ this.defaultConfig = defaultConfig;
30
+ }
31
+ ngOnInit() {
32
+ super.ngOnInit();
33
+ this.clearFieldSubscription =
34
+ this.autocompleteInputControl.valueChanges.subscribe((text) => {
35
+ if (typeof text === 'string' && text?.trim() === '') {
36
+ this.control.setValue(null);
37
+ }
38
+ });
39
+ }
40
+ ngOnDestroy() {
41
+ this.clearFieldSubscription.unsubscribe();
42
+ }
43
+ setControlValue(value) {
44
+ if (this.control && value) {
45
+ // sets the initial value on the control if one is passed
46
+ this.control.setValue(value.value || '');
47
+ this.autocompleteInputControl.setValue(value.label || '');
48
+ }
49
+ }
50
+ /**
51
+ * The material autocomplete defaults to displaying the options value instead of its label.
52
+ * We only have the value from the selected option to work with, so we have to pass the options
53
+ * through a function called in the template and return the function that the material displayWith
54
+ * input is expecting.
55
+ * @param options the array of options to search for option with corresponding value
56
+ */
57
+ displayLabel(options) {
58
+ if (this.config.displayWith) {
59
+ return this.config.displayWith(options);
60
+ }
61
+ return (value) => {
62
+ const label = !!options && Array.isArray(options)
63
+ ? options.find((option) => JSON.stringify(option.value) === JSON.stringify(value))?.label
64
+ : value;
65
+ return label;
66
+ };
67
+ }
68
+ handleSelect(event) {
69
+ this.control.setValue(event.option.value);
70
+ this.autoInputRef.nativeElement.blur();
71
+ }
72
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: AutocompleteFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
73
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", 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: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i4.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i3.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i5.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i6.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i6.MatLabel, selector: "mat-label" }, { kind: "directive", type: i6.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i6.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatOptionModule }, { kind: "ngmodule", type: FormValidationHandlerModule }, { kind: "directive", type: i7.ControlErrorsDirective, selector: "[formControl], [formControlName]" }, { kind: "directive", type: i7.ControlErrorContainerDirective, selector: "[controlErrorContainer], [formGroup]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, preserveWhitespaces: true }); }
74
+ }
75
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: AutocompleteFieldComponent, decorators: [{
76
+ type: Component,
77
+ args: [{ selector: 'crispr-autocomplete-field', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
78
+ CommonModule,
79
+ InfoComponent,
80
+ OptionComponent,
81
+ ReactiveFormsModule,
82
+ FieldContainerComponent,
83
+ MatAutocompleteModule,
84
+ MatInputModule,
85
+ MatOptionModule,
86
+ FormValidationHandlerModule,
87
+ ], 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"] }]
88
+ }], propDecorators: { autoInput: [{
89
+ type: ViewChild,
90
+ args: ['autoInput', { read: MatAutocompleteTrigger }]
91
+ }], autoInputRef: [{
92
+ type: ViewChild,
93
+ args: ['autoInput']
94
+ }] } });
95
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLWZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY3Jpc3ByLWZvcm1zL3NyYy9saWIvdWkvYXV0b2NvbXBsZXRlLWZpZWxkL2F1dG9jb21wbGV0ZS1maWVsZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NyaXNwci1mb3Jtcy9zcmMvbGliL3VpL2F1dG9jb21wbGV0ZS1maWVsZC9hdXRvY29tcGxldGUtZmllbGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsa0RBQWtEO0FBQ2xELE9BQU8sRUFDTCxTQUFTLEVBRVQsU0FBUyxFQUNULHVCQUF1QixFQUN2QixVQUFVLEdBRVgsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLHNCQUFzQixFQUV0QixxQkFBcUIsR0FDdEIsTUFBTSxnQ0FBZ0MsQ0FBQztBQUd4QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzVDLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRTNFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzdELE9BQU8sRUFFTCw2QkFBNkIsRUFFN0IsNkJBQTZCLEdBQzlCLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxTQUFTLENBQUM7Ozs7Ozs7OztBQUV4QyxNQUFNLGFBQWEsR0FBcUM7SUFD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QUVoQyxZQUFZO3NCQUFuQyxTQUFTO3VCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAbngvZW5mb3JjZS1tb2R1bGUtYm91bmRhcmllcyAqL1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBPbkluaXQsXG4gIFZpZXdDaGlsZCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIEVsZW1lbnRSZWYsXG4gIE9uRGVzdHJveSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBNYXRBdXRvY29tcGxldGVUcmlnZ2VyLFxuICBNYXRBdXRvY29tcGxldGVTZWxlY3RlZEV2ZW50LFxuICBNYXRBdXRvY29tcGxldGVNb2R1bGUsXG59IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2F1dG9jb21wbGV0ZSc7XG5cbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcbmltcG9ydCB7IE1hdE9wdGlvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHsgT3B0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi4vb3B0aW9uJztcbmltcG9ydCB7IEZvcm1WYWxpZGF0aW9uSGFuZGxlck1vZHVsZSB9IGZyb20gJ0B0ZnQvZm9ybS12YWxpZGF0aW9uLWhhbmRsZXInO1xuXG5pbXBvcnQgeyBGaWVsZENvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gJy4uL2ZpZWxkLWNvbnRhaW5lcic7XG5pbXBvcnQge1xuICBTZWxlY3RPcHRpb24sXG4gIEFic3RyYWN0QXV0b2NvbXBsZXRlQ29tcG9uZW50LFxuICBBdXRvY29tcGxldGVGaWVsZENvbmZpZyxcbiAgREVGQVVMVF9FTVBUWV9PUFRJT05TX01FU1NBR0UsXG59IGZyb20gJy4uLy4uL3V0aWxzJztcbmltcG9ydCB7IEluZm9Db21wb25lbnQgfSBmcm9tICcuLi9pbmZvJztcblxuY29uc3QgZGVmYXVsdENvbmZpZzogUGFydGlhbDxBdXRvY29tcGxldGVGaWVsZENvbmZpZz4gPSB7XG4gIGF1dG9BY3RpdmVGaXJzdE9wdGlvbjogdHJ1ZSxcbiAgdHlwZURlYm91bmNlVGltZTogNTAwLFxuICBlbXB0eU9wdGlvbnNNZXNzYWdlOiBERUZBVUxUX0VNUFRZX09QVElPTlNfTUVTU0FHRSxcbn07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NyaXNwci1hdXRvY29tcGxldGUtZmllbGQnLFxuICB0ZW1wbGF0ZVVybDogJy4vYXV0b2NvbXBsZXRlLWZpZWxkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYXV0b2NvbXBsZXRlLWZpZWxkLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEluZm9Db21wb25lbnQsXG4gICAgT3B0aW9uQ29tcG9uZW50LFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgRmllbGRDb250YWluZXJDb21wb25lbnQsXG4gICAgTWF0QXV0b2NvbXBsZXRlTW9kdWxlLFxuICAgIE1hdElucHV0TW9kdWxlLFxuICAgIE1hdE9wdGlvbk1vZHVsZSxcbiAgICBGb3JtVmFsaWRhdGlvbkhhbmRsZXJNb2R1bGUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEF1dG9jb21wbGV0ZUZpZWxkQ29tcG9uZW50XG4gIGV4dGVuZHMgQWJzdHJhY3RBdXRvY29tcGxldGVDb21wb25lbnQ8QXV0b2NvbXBsZXRlRmllbGRDb25maWc+XG4gIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3lcbntcbiAgZGVmYXVsdENvbmZpZyA9IGRlZmF1bHRDb25maWc7XG4gIEBWaWV3Q2hpbGQoJ2F1dG9JbnB1dCcsIHsgcmVhZDogTWF0QXV0b2NvbXBsZXRlVHJpZ2dlciB9KVxuICBhdXRvSW5wdXQ6IE1hdEF1dG9jb21wbGV0ZVRyaWdnZXI7XG4gIEBWaWV3Q2hpbGQoJ2F1dG9JbnB1dCcpIGF1dG9JbnB1dFJlZjogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcblxuICBjbGVhckZpZWxkU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICB0aGlzLmNsZWFyRmllbGRTdWJzY3JpcHRpb24gPVxuICAgICAgdGhpcy5hdXRvY29tcGxldGVJbnB1dENvbnRyb2wudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgodGV4dDogc3RyaW5nKSA9PiB7XG4gICAgICAgIGlmICh0eXBlb2YgdGV4dCA9PT0gJ3N0cmluZycgJiYgdGV4dD8udHJpbSgpID09PSAnJykge1xuICAgICAgICAgIHRoaXMuY29udHJvbC5zZXRWYWx1ZShudWxsKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmNsZWFyRmllbGRTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHNldENvbnRyb2xWYWx1ZSh2YWx1ZTogU2VsZWN0T3B0aW9uKSB7XG4gICAgaWYgKHRoaXMuY29udHJvbCAmJiB2YWx1ZSkge1xuICAgICAgLy8gc2V0cyB0aGUgaW5pdGlhbCB2YWx1ZSBvbiB0aGUgY29udHJvbCBpZiBvbmUgaXMgcGFzc2VkXG4gICAgICB0aGlzLmNvbnRyb2wuc2V0VmFsdWUodmFsdWUudmFsdWUgfHwgJycpO1xuICAgICAgdGhpcy5hdXRvY29tcGxldGVJbnB1dENvbnRyb2wuc2V0VmFsdWUodmFsdWUubGFiZWwgfHwgJycpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgbWF0ZXJpYWwgYXV0b2NvbXBsZXRlIGRlZmF1bHRzIHRvIGRpc3BsYXlpbmcgdGhlIG9wdGlvbnMgdmFsdWUgaW5zdGVhZCBvZiBpdHMgbGFiZWwuXG4gICAqIFdlIG9ubHkgaGF2ZSB0aGUgdmFsdWUgZnJvbSB0aGUgc2VsZWN0ZWQgb3B0aW9uIHRvIHdvcmsgd2l0aCwgc28gd2UgaGF2ZSB0byBwYXNzIHRoZSBvcHRpb25zXG4gICAqIHRocm91Z2ggYSBmdW5jdGlvbiBjYWxsZWQgaW4gdGhlIHRlbXBsYXRlIGFuZCByZXR1cm4gdGhlIGZ1bmN0aW9uIHRoYXQgdGhlIG1hdGVyaWFsIGRpc3BsYXlXaXRoXG4gICAqIGlucHV0IGlzIGV4cGVjdGluZy5cbiAgICogQHBhcmFtIG9wdGlvbnMgdGhlIGFycmF5IG9mIG9wdGlvbnMgdG8gc2VhcmNoIGZvciBvcHRpb24gd2l0aCBjb3JyZXNwb25kaW5nIHZhbHVlXG4gICAqL1xuICBkaXNwbGF5TGFiZWwob3B0aW9uczogU2VsZWN0T3B0aW9uW10pIHtcbiAgICBpZiAodGhpcy5jb25maWcuZGlzcGxheVdpdGgpIHtcbiAgICAgIHJldHVybiB0aGlzLmNvbmZpZy5kaXNwbGF5V2l0aChvcHRpb25zKTtcbiAgICB9XG4gICAgcmV0dXJuICh2YWx1ZTogYW55KSA9PiB7XG4gICAgICBjb25zdCBsYWJlbDogc3RyaW5nID1cbiAgICAgICAgISFvcHRpb25zICYmIEFycmF5LmlzQXJyYXkob3B0aW9ucylcbiAgICAgICAgICA/IG9wdGlvbnMuZmluZChcbiAgICAgICAgICAgICAgKG9wdGlvbikgPT4gSlNPTi5zdHJpbmdpZnkob3B0aW9uLnZhbHVlKSA9PT0gSlNPTi5zdHJpbmdpZnkodmFsdWUpXG4gICAgICAgICAgICApPy5sYWJlbFxuICAgICAgICAgIDogdmFsdWU7XG4gICAgICByZXR1cm4gbGFiZWw7XG4gICAgfTtcbiAgfVxuXG4gIGhhbmRsZVNlbGVjdChldmVudDogTWF0QXV0b2NvbXBsZXRlU2VsZWN0ZWRFdmVudCkge1xuICAgIHRoaXMuY29udHJvbC5zZXRWYWx1ZShldmVudC5vcHRpb24udmFsdWUpO1xuICAgIHRoaXMuYXV0b0lucHV0UmVmLm5hdGl2ZUVsZW1lbnQuYmx1cigpO1xuICB9XG59XG4iLCJcbjxjcmlzcHItZmllbGQtY29udGFpbmVyXG4gIFtjb25maWddPVwiY29uZmlnXCJcbiAgW2dyb3VwXT1cImdyb3VwXCI+XG5cbiAgPG1hdC1mb3JtLWZpZWxkXG4gICAgW2NvbG9yXT1cImNvbmZpZy5jb2xvclwiXG4gICAgW2FwcGVhcmFuY2VdPVwiY29uZmlnLmFwcGVhcmFuY2VcIlxuICAgIFtmb3JtR3JvdXBdPVwiZ3JvdXBcIj5cbiAgICA8bWF0LWxhYmVsICpuZ0lmPVwiY29uZmlnLmxhYmVsXCI+XG4gICAgICB7e2NvbmZpZy5sYWJlbH19XG4gICAgPC9tYXQtbGFiZWw+XG5cbiAgICA8aW5wdXQgY2xhc3M9XCJoaWRkZW4tZXJyb3ItZGlyZWN0aXZlLWFuY2hvclwiIFtmb3JtQ29udHJvbE5hbWVdPVwiY29uZmlnLmNvbnRyb2xOYW1lXCIgdHlwZT1cInRleHRcIi8+XG5cbiAgICA8aW5wdXRcbiAgICAgIG1hdElucHV0XG4gICAgICBbZm9ybUNvbnRyb2xdPVwiYXV0b2NvbXBsZXRlSW5wdXRDb250cm9sXCJcbiAgICAgIFtwbGFjZWhvbGRlcl09XCJjb25maWcucGxhY2Vob2xkZXJcIlxuICAgICAgW21hdEF1dG9jb21wbGV0ZV09XCJhdXRvXCJcbiAgICAgIHJvbGU9XCJ0ZXh0Ym94XCJcbiAgICAgIHR5cGU9XCJ0ZXh0Ym94XCJcbiAgICAgIGF1dG9jYXBpdGFsaXplPVwib2ZmXCJcbiAgICAgIGF1dG9jb3JyZWN0PVwib2ZmXCJcbiAgICAgIHNwZWxsY2hlY2s9XCJmYWxzZVwiXG4gICAgICAjYXV0b0lucHV0PlxuXG4gICAgPHNwYW4gKm5nSWY9XCJjb25maWcuZmllbGRTdWZmaXhcIiBtYXRTdWZmaXg+e3tjb25maWcuZmllbGRTdWZmaXh9fTwvc3Bhbj5cbiAgICA8Y3Jpc3ByLWluZm9cbiAgICAgICpuZ0lmPVwiY29uZmlnLmluZm9cIlxuICAgICAgbWF0U3VmZml4XG4gICAgICBbaW5mb109XCJjb25maWcuaW5mbyBcIj5cbiAgICA8L2NyaXNwci1pbmZvPlxuXG4gICAgPG1hdC1hdXRvY29tcGxldGVcbiAgICAgICNhdXRvPVwibWF0QXV0b2NvbXBsZXRlXCJcbiAgICAgIFthdXRvQWN0aXZlRmlyc3RPcHRpb25dPVwiY29uZmlnLmF1dG9BY3RpdmVGaXJzdE9wdGlvblwiXG4gICAgICAob3B0aW9uU2VsZWN0ZWQpPVwiaGFuZGxlU2VsZWN0KCRldmVudClcIlxuICAgICAgW2Rpc3BsYXlXaXRoXT1cImRpc3BsYXlMYWJlbChvcHRpb25zJCB8IGFzeW5jKVwiPlxuXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwib3B0aW9ucyQgfCBhc3luYyBhcyBvcHRpb25zOyBlbHNlIGVtcHR5T3B0aW9uXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJvcHRpb25zLmxlbmd0aCA+IDA7IGVsc2UgZW1wdHlPcHRpb25cIj5cbiAgICAgICAgICA8bWF0LW9wdGlvblxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBvcHRpb25zXCJcbiAgICAgICAgICAgIFt2YWx1ZV09XCJvcHRpb24udmFsdWVcIj5cbiAgICAgICAgICAgIDxjcmlzcHItb3B0aW9uIFtvcHRpb25dPVwib3B0aW9uXCI+PC9jcmlzcHItb3B0aW9uPlxuICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLXRlbXBsYXRlICNlbXB0eU9wdGlvbj5cbiAgICAgICAgPG1hdC1vcHRpb24gZGlzYWJsZWQ9XCJ0cnVlXCI+XG4gICAgICAgICAge3tjb25maWcuZW1wdHlPcHRpb25zTWVzc2FnZX19XG4gICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICA8L21hdC1hdXRvY29tcGxldGU+XG5cbiAgICA8bWF0LWhpbnQgKm5nSWY9XCJjb25maWcuaGludCAmJiAoY29udHJvbC52YWxpZCB8fCAhY29udHJvbC50b3VjaGVkKVwiPnt7Y29uZmlnLmhpbnR9fTwvbWF0LWhpbnQ+XG5cbiAgPC9tYXQtZm9ybS1maWVsZD5cbjwvY3Jpc3ByLWZpZWxkLWNvbnRhaW5lcj5cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export * from './public-api';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NyaXNwci1mb3Jtcy9zcmMvbGliL3VpL2F1dG9jb21wbGV0ZS1maWVsZC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vcHVibGljLWFwaSc7XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export * from './autocomplete-field.component';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY3Jpc3ByLWZvcm1zL3NyYy9saWIvdWkvYXV0b2NvbXBsZXRlLWZpZWxkL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxnQ0FBZ0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYXV0b2NvbXBsZXRlLWZpZWxkLmNvbXBvbmVudCc7XG4iXX0=
@@ -0,0 +1,52 @@
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
+ import { FormValidationHandlerModule } from '@tft/form-validation-handler';
9
+ // eslint-disable-next-line @nx/enforce-module-boundaries
10
+ import { CrisprFieldComponent } from '../../utils';
11
+ import * as i0 from "@angular/core";
12
+ import * as i1 from "@angular/common";
13
+ import * as i2 from "@angular/material/button";
14
+ import * as i3 from "@angular/material/icon";
15
+ import * as i4 from "@angular/material/tooltip";
16
+ import * as i5 from "@angular/forms";
17
+ import * as i6 from "@tft/form-validation-handler";
18
+ export class ButtonComponent extends CrisprFieldComponent {
19
+ constructor() {
20
+ super(...arguments);
21
+ this.defaultConfig = {
22
+ buttonType: 'raised',
23
+ type: 'submit',
24
+ };
25
+ }
26
+ get matButtonClass() {
27
+ return this.config.buttonType ? `mat-${this.config.buttonType}-button` : '';
28
+ }
29
+ ngOnInit() {
30
+ super.ngOnInit();
31
+ this.formValid$ = this.group.statusChanges.pipe(map((status) => status === 'VALID'), startWith(this.group.valid));
32
+ }
33
+ handleClick(group, event) {
34
+ if (this.config.callback) {
35
+ this.config.callback(group, event);
36
+ }
37
+ }
38
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: ButtonComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
39
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", 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-flat-button], button[mat-stroked-button] ", 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]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], 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"] }, { kind: "ngmodule", type: FormValidationHandlerModule }, { kind: "directive", type: i6.ControlErrorContainerDirective, selector: "[controlErrorContainer], [formGroup]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, preserveWhitespaces: true }); }
40
+ }
41
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: ButtonComponent, decorators: [{
42
+ type: Component,
43
+ args: [{ selector: 'crispr-button', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
44
+ CommonModule,
45
+ MatButtonModule,
46
+ MatIconModule,
47
+ MatTooltipModule,
48
+ ReactiveFormsModule,
49
+ FormValidationHandlerModule,
50
+ ], 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" }]
51
+ }] });
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY3Jpc3ByLWZvcm1zL3NyYy9saWIvdWkvYnV0dG9uL2J1dHRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NyaXNwci1mb3Jtcy9zcmMvbGliL3VpL2J1dHRvbi9idXR0b24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSx1QkFBdUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLEVBQUUsbUJBQW1CLEVBQWEsTUFBTSxnQkFBZ0IsQ0FBQztBQUVoRSxPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzNFLHlEQUF5RDtBQUN6RCxPQUFPLEVBQUUsb0JBQW9CLEVBQWdCLE1BQU0sYUFBYSxDQUFDOzs7Ozs7OztBQWlCakUsTUFBTSxPQUFPLGVBQ1gsU0FBUSxvQkFBa0M7SUFoQjVDOztRQW9CRSxrQkFBYSxHQUEwQjtZQUNyQyxVQUFVLEVBQUUsUUFBUTtZQUNwQixJQUFJLEVBQUUsUUFBUTtTQUNmLENBQUM7S0FvQkg7SUFqQkMsSUFBSSxjQUFjO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQzlFLENBQUM7SUFFRCxRQUFRO1FBQ04sS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUM3QyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sS0FBSyxPQUFPLENBQUMsRUFDbkMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQzVCLENBQUM7SUFDSixDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQWdCLEVBQUUsS0FBaUI7UUFDN0MsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRTtZQUN4QixJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7U0FDcEM7SUFDSCxDQUFDOzhHQTNCVSxlQUFlO2tHQUFmLGVBQWUsZ0dDM0I1QixvZEFnQkEseURER0ksWUFBWSxxUkFDWixlQUFlLDJOQUNmLGFBQWEsbUxBQ2IsZ0JBQWdCLDRUQUNoQixtQkFBbUIsMlVBQ25CLDJCQUEyQjs7MkZBR2xCLGVBQWU7a0JBZjNCLFNBQVM7K0JBQ0UsZUFBZSxtQkFHUix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLGVBQWU7d0JBQ2YsYUFBYTt3QkFDYixnQkFBZ0I7d0JBQ2hCLG1CQUFtQjt3QkFDbkIsMkJBQTJCO3FCQUM1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUmVhY3RpdmVGb3Jtc01vZHVsZSwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwLCBzdGFydFdpdGggfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcbmltcG9ydCB7IEZvcm1WYWxpZGF0aW9uSGFuZGxlck1vZHVsZSB9IGZyb20gJ0B0ZnQvZm9ybS12YWxpZGF0aW9uLWhhbmRsZXInO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBueC9lbmZvcmNlLW1vZHVsZS1ib3VuZGFyaWVzXG5pbXBvcnQgeyBDcmlzcHJGaWVsZENvbXBvbmVudCwgQnV0dG9uQ29uZmlnIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjcmlzcHItYnV0dG9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2J1dHRvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2J1dHRvbi5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgTWF0SWNvbk1vZHVsZSxcbiAgICBNYXRUb29sdGlwTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgRm9ybVZhbGlkYXRpb25IYW5kbGVyTW9kdWxlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBCdXR0b25Db21wb25lbnRcbiAgZXh0ZW5kcyBDcmlzcHJGaWVsZENvbXBvbmVudDxCdXR0b25Db25maWc+XG4gIGltcGxlbWVudHMgT25Jbml0XG57XG4gIGdyb3VwOiBGb3JtR3JvdXA7XG4gIGRlZmF1bHRDb25maWc6IFBhcnRpYWw8QnV0dG9uQ29uZmlnPiA9IHtcbiAgICBidXR0b25UeXBlOiAncmFpc2VkJyxcbiAgICB0eXBlOiAnc3VibWl0JyxcbiAgfTtcbiAgZm9ybVZhbGlkJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcblxuICBnZXQgbWF0QnV0dG9uQ2xhc3MoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLmJ1dHRvblR5cGUgPyBgbWF0LSR7dGhpcy5jb25maWcuYnV0dG9uVHlwZX0tYnV0dG9uYCA6ICcnO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICB0aGlzLmZvcm1WYWxpZCQgPSB0aGlzLmdyb3VwLnN0YXR1c0NoYW5nZXMucGlwZShcbiAgICAgIG1hcCgoc3RhdHVzKSA9PiBzdGF0dXMgPT09ICdWQUxJRCcpLFxuICAgICAgc3RhcnRXaXRoKHRoaXMuZ3JvdXAudmFsaWQpXG4gICAgKTtcbiAgfVxuXG4gIGhhbmRsZUNsaWNrKGdyb3VwOiBGb3JtR3JvdXAsIGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgaWYgKHRoaXMuY29uZmlnLmNhbGxiYWNrKSB7XG4gICAgICB0aGlzLmNvbmZpZy5jYWxsYmFjayhncm91cCwgZXZlbnQpO1xuICAgIH1cbiAgfVxufVxuIiwiPGJ1dHRvblxuICBbZm9ybUdyb3VwXT1cImdyb3VwXCJcbiAgbWF0LWJ1dHRvblxuICBbbmdDbGFzc109XCJtYXRCdXR0b25DbGFzc1wiXG4gIFtjb2xvcl09XCJjb25maWcuY29sb3JcIlxuICBbZGlzYWJsZWRdPVwiY29uZmlnLmRpc2FibGVkT25JbnZhbGlkRm9ybSAmJiAhKGZvcm1WYWxpZCQgfCBhc3luYylcIlxuICBbdHlwZV09XCJjb25maWcudHlwZVwiXG4gIChjbGljayk9XCJoYW5kbGVDbGljayhncm91cCwgJGV2ZW50KVwiXG4gIFttYXRUb29sdGlwXT1cImNvbmZpZy5pbmZvPy5jb250ZW50XCJcbiAgW21hdFRvb2x0aXBQb3NpdGlvbl09XCJjb25maWcuaW5mbz8udG9vbHRpcFBvc2l0aW9uIHx8ICdiZWxvdydcIj5cbiAge3sgY29uZmlnLmxhYmVsIH19XG4gIDxtYXQtaWNvbiAqbmdJZj1cImNvbmZpZy5pY29uXCI+XG4gICAge3sgY29uZmlnLmljb259fVxuICA8L21hdC1pY29uPlxuPC9idXR0b24+XG5cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export * from './public-api';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NyaXNwci1mb3Jtcy9zcmMvbGliL3VpL2J1dHRvbi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vcHVibGljLWFwaSc7XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export * from './button.component';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY3Jpc3ByLWZvcm1zL3NyYy9saWIvdWkvYnV0dG9uL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxvQkFBb0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYnV0dG9uLmNvbXBvbmVudCc7XG4iXX0=
@@ -0,0 +1,42 @@
1
+ /* eslint-disable @nx/enforce-module-boundaries */
2
+ import { Component, ChangeDetectionStrategy } from '@angular/core';
3
+ import { CommonModule } from '@angular/common';
4
+ import { MatCheckboxModule } from '@angular/material/checkbox';
5
+ import { ReactiveFormsModule } from '@angular/forms';
6
+ import { FormValidationHandlerModule } from '@tft/form-validation-handler';
7
+ import { FieldContainerComponent } from '../field-container';
8
+ import { crisprControlMixin, CrisprFieldComponent, } from '../../utils';
9
+ import { InfoComponent } from '../info';
10
+ import * as i0 from "@angular/core";
11
+ import * as i1 from "@angular/common";
12
+ import * as i2 from "@angular/material/checkbox";
13
+ import * as i3 from "@angular/forms";
14
+ import * as i4 from "@tft/form-validation-handler";
15
+ const defaultConfig = {
16
+ labelPosition: 'after',
17
+ inline: false,
18
+ };
19
+ const CheckboxFieldMixin = crisprControlMixin(CrisprFieldComponent);
20
+ export class CheckboxFieldComponent extends CheckboxFieldMixin {
21
+ constructor() {
22
+ super(...arguments);
23
+ this.defaultConfig = defaultConfig;
24
+ }
25
+ ngOnInit() {
26
+ super.ngOnInit();
27
+ }
28
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: CheckboxFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
29
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", 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: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], 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: FieldContainerComponent, selector: "crispr-field-container", inputs: ["config", "group", "inlineField"] }, { kind: "ngmodule", type: FormValidationHandlerModule }, { kind: "directive", type: i4.ControlErrorsDirective, selector: "[formControl], [formControlName]" }, { kind: "directive", type: i4.ControlErrorContainerDirective, selector: "[controlErrorContainer], [formGroup]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, preserveWhitespaces: true }); }
30
+ }
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", 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
+ FieldContainerComponent,
39
+ FormValidationHandlerModule,
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3gtZmllbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jcmlzcHItZm9ybXMvc3JjL2xpYi91aS9jaGVja2JveC1maWVsZC9jaGVja2JveC1maWVsZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NyaXNwci1mb3Jtcy9zcmMvbGliL3VpL2NoZWNrYm94LWZpZWxkL2NoZWNrYm94LWZpZWxkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGtEQUFrRDtBQUNsRCxPQUFPLEVBQUUsU0FBUyxFQUFVLHVCQUF1QixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMzRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM3RCxPQUFPLEVBQ0wsa0JBQWtCLEVBQ2xCLG9CQUFvQixHQUVyQixNQUFNLGFBQWEsQ0FBQztBQUNyQixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sU0FBUyxDQUFDOzs7Ozs7QUFFeEMsTUFBTSxhQUFhLEdBQWlDO0lBQ2xELGFBQWEsRUFBRSxPQUFPO0lBQ3RCLE1BQU0sRUFBRSxLQUFLO0NBQ2QsQ0FBQztBQUNGLE1BQU0sa0JBQWtCLEdBQ3RCLGtCQUFrQixDQUFzQixvQkFBb0IsQ0FBQyxDQUFDO0FBaUJoRSxNQUFNLE9BQU8sc0JBQ1gsU0FBUSxrQkFBa0I7SUFoQjVCOztRQW1CRSxrQkFBYSxHQUFHLGFBQWEsQ0FBQztLQUkvQjtJQUhDLFFBQVE7UUFDTixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDbkIsQ0FBQzs4R0FQVSxzQkFBc0I7a0dBQXRCLHNCQUFzQix3R0NwQ25DLHllQWtCQSxvRkRVSSxZQUFZLG1JQUNaLGFBQWEseUVBQ2IsaUJBQWlCLDZXQUNqQixtQkFBbUIsb2xCQUNuQix1QkFBdUIsOEdBQ3ZCLDJCQUEyQjs7MkZBR2xCLHNCQUFzQjtrQkFmbEMsU0FBUzsrQkFDRSx1QkFBdUIsbUJBR2hCLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osYUFBYTt3QkFDYixpQkFBaUI7d0JBQ2pCLG1CQUFtQjt3QkFDbkIsdUJBQXVCO3dCQUN2QiwyQkFBMkI7cUJBQzVCIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQG54L2VuZm9yY2UtbW9kdWxlLWJvdW5kYXJpZXMgKi9cbmltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE1hdENoZWNrYm94TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hlY2tib3gnO1xuaW1wb3J0IHsgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEZvcm1WYWxpZGF0aW9uSGFuZGxlck1vZHVsZSB9IGZyb20gJ0B0ZnQvZm9ybS12YWxpZGF0aW9uLWhhbmRsZXInO1xuaW1wb3J0IHsgRmllbGRDb250YWluZXJDb21wb25lbnQgfSBmcm9tICcuLi9maWVsZC1jb250YWluZXInO1xuaW1wb3J0IHtcbiAgY3Jpc3ByQ29udHJvbE1peGluLFxuICBDcmlzcHJGaWVsZENvbXBvbmVudCxcbiAgQ2hlY2tib3hGaWVsZENvbmZpZyxcbn0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuaW1wb3J0IHsgSW5mb0NvbXBvbmVudCB9IGZyb20gJy4uL2luZm8nO1xuXG5jb25zdCBkZWZhdWx0Q29uZmlnOiBQYXJ0aWFsPENoZWNrYm94RmllbGRDb25maWc+ID0ge1xuICBsYWJlbFBvc2l0aW9uOiAnYWZ0ZXInLFxuICBpbmxpbmU6IGZhbHNlLFxufTtcbmNvbnN0IENoZWNrYm94RmllbGRNaXhpbiA9XG4gIGNyaXNwckNvbnRyb2xNaXhpbjxDaGVja2JveEZpZWxkQ29uZmlnPihDcmlzcHJGaWVsZENvbXBvbmVudCk7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NyaXNwci1jaGVja2JveC1maWVsZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jaGVja2JveC1maWVsZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NoZWNrYm94LWZpZWxkLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEluZm9Db21wb25lbnQsXG4gICAgTWF0Q2hlY2tib3hNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBGaWVsZENvbnRhaW5lckNvbXBvbmVudCxcbiAgICBGb3JtVmFsaWRhdGlvbkhhbmRsZXJNb2R1bGUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIENoZWNrYm94RmllbGRDb21wb25lbnRcbiAgZXh0ZW5kcyBDaGVja2JveEZpZWxkTWl4aW5cbiAgaW1wbGVtZW50cyBPbkluaXRcbntcbiAgZGVmYXVsdENvbmZpZyA9IGRlZmF1bHRDb25maWc7XG4gIG5nT25Jbml0KCkge1xuICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gIH1cbn1cbiIsIjxjcmlzcHItZmllbGQtY29udGFpbmVyXG4gIFtjb25maWddPVwiY29uZmlnXCJcbiAgW2dyb3VwXT1cImdyb3VwXCJcbiAgW2lubGluZUZpZWxkXT1cImNvbmZpZy5pbmxpbmVcIj5cbiAgPGRpdlxuICAgIFtmb3JtR3JvdXBdPVwiZ3JvdXBcIj5cbiAgICA8bWF0LWNoZWNrYm94XG4gICAgICBbY29sb3JdPVwiY29uZmlnLmNvbG9yXCJcbiAgICAgIFtsYWJlbFBvc2l0aW9uXT1cImNvbmZpZy5sYWJlbFBvc2l0aW9uXCJcbiAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiY29uZmlnLmNvbnRyb2xOYW1lXCI+XG4gICAgICB7e2NvbmZpZy5sYWJlbH19XG4gICAgICA8Y3Jpc3ByLWluZm9cbiAgICAgICAgbWF0U3VmZml4ICpuZ0lmPVwiY29uZmlnLmluZm9cIlxuICAgICAgICBbaW5mb109XCJjb25maWcuaW5mb1wiPlxuICAgICAgPC9jcmlzcHItaW5mbz5cbiAgICA8L21hdC1jaGVja2JveD5cbiAgPC9kaXY+XG48L2NyaXNwci1maWVsZC1jb250YWluZXI+XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export * from './public-api';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NyaXNwci1mb3Jtcy9zcmMvbGliL3VpL2NoZWNrYm94LWZpZWxkL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export * from './checkbox-field.component';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY3Jpc3ByLWZvcm1zL3NyYy9saWIvdWkvY2hlY2tib3gtZmllbGQvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDRCQUE0QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jaGVja2JveC1maWVsZC5jb21wb25lbnQnO1xuIl19