@tft/crispr-forms 13.0.21 → 14.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (405) hide show
  1. package/README.md +77 -76
  2. package/esm2020/public-api.mjs +5 -0
  3. package/esm2020/src/index.mjs +2 -0
  4. package/esm2020/src/lib/crispr-forms.module.mjs +57 -0
  5. package/esm2020/src/lib/field-component-map.const.mjs +27 -0
  6. package/esm2020/src/lib/field.directive.mjs +69 -0
  7. package/esm2020/src/lib/form/form.component.mjs +63 -0
  8. package/esm2020/src/lib/form-group-list/form-group-list.component.mjs +93 -0
  9. package/esm2020/src/lib/form-group-list/index.mjs +2 -0
  10. package/esm2020/src/lib/pipes/crispr-pipes.module.mjs +24 -0
  11. package/esm2020/src/lib/pipes/initial-control-value.pipe.mjs +21 -0
  12. package/esm2020/src/lib/public_api.mjs +3 -0
  13. package/esm2020/src/lib/sub-group/index.mjs +3 -0
  14. package/esm2020/src/lib/sub-group/sub-group.component.mjs +21 -0
  15. package/esm2020/src/lib/sub-group/sub-group.module.mjs +42 -0
  16. package/esm2020/tft-crispr-forms.mjs +2 -2
  17. package/esm2020/ui/autocomplete-chiplist-field/autocomplete-chiplist-field.component.mjs +130 -0
  18. package/esm2020/ui/autocomplete-chiplist-field/public-api.mjs +2 -0
  19. package/esm2020/ui/autocomplete-chiplist-field/tft-crispr-forms-ui-autocomplete-chiplist-field.mjs +5 -0
  20. package/esm2020/ui/autocomplete-field/autocomplete-field.component.mjs +93 -0
  21. package/esm2020/ui/autocomplete-field/public-api.mjs +2 -0
  22. package/esm2020/ui/autocomplete-field/tft-crispr-forms-ui-autocomplete-field.mjs +5 -0
  23. package/esm2020/ui/button/button.component.mjs +49 -0
  24. package/esm2020/ui/button/public-api.mjs +2 -0
  25. package/esm2020/ui/button/tft-crispr-forms-ui-button.mjs +5 -0
  26. package/esm2020/ui/checkbox-field/checkbox-field.component.mjs +42 -0
  27. package/esm2020/ui/checkbox-field/public-api.mjs +2 -0
  28. package/esm2020/ui/checkbox-field/tft-crispr-forms-ui-checkbox-field.mjs +5 -0
  29. package/esm2020/ui/datepicker-field/datepicker-field.component.mjs +63 -0
  30. package/esm2020/ui/datepicker-field/public-api.mjs +2 -0
  31. package/esm2020/ui/datepicker-field/tft-crispr-forms-ui-datepicker-field.mjs +5 -0
  32. package/esm2020/ui/divider/divider.component.mjs +28 -0
  33. package/esm2020/ui/divider/public-api.mjs +2 -0
  34. package/esm2020/ui/divider/tft-crispr-forms-ui-divider.mjs +5 -0
  35. package/esm2020/ui/field-container/field-container.component.mjs +58 -0
  36. package/esm2020/ui/field-container/public-api.mjs +2 -0
  37. package/esm2020/ui/field-container/tft-crispr-forms-ui-field-container.mjs +5 -0
  38. package/esm2020/ui/file-dropzone/file-dropzone.directive.mjs +40 -0
  39. package/esm2020/ui/file-dropzone/public-api.mjs +2 -0
  40. package/esm2020/ui/file-dropzone/tft-crispr-forms-ui-file-dropzone.mjs +5 -0
  41. package/esm2020/ui/file-upload-field/file-upload-field.component.mjs +108 -0
  42. package/esm2020/ui/file-upload-field/public-api.mjs +2 -0
  43. package/esm2020/ui/file-upload-field/tft-crispr-forms-ui-file-upload-field.mjs +5 -0
  44. package/esm2020/ui/heading/heading.component.mjs +31 -0
  45. package/esm2020/ui/heading/public-api.mjs +2 -0
  46. package/esm2020/ui/heading/tft-crispr-forms-ui-heading.mjs +5 -0
  47. package/esm2020/ui/image-upload-field/image-upload-field.component.mjs +179 -0
  48. package/esm2020/ui/image-upload-field/public-api.mjs +2 -0
  49. package/esm2020/ui/image-upload-field/tft-crispr-forms-ui-image-upload-field.mjs +5 -0
  50. package/esm2020/ui/info/info.component.mjs +23 -0
  51. package/esm2020/ui/info/public-api.mjs +2 -0
  52. package/esm2020/ui/info/tft-crispr-forms-ui-info.mjs +5 -0
  53. package/esm2020/ui/input-field/input-field.component.mjs +41 -0
  54. package/esm2020/ui/input-field/public-api.mjs +2 -0
  55. package/esm2020/ui/input-field/tft-crispr-forms-ui-input-field.mjs +5 -0
  56. package/esm2020/ui/option/option.component.mjs +19 -0
  57. package/esm2020/ui/option/public-api.mjs +2 -0
  58. package/esm2020/ui/option/tft-crispr-forms-ui-option.mjs +5 -0
  59. package/esm2020/ui/public-api.mjs +7 -0
  60. package/esm2020/ui/radio-field/public-api.mjs +2 -0
  61. package/esm2020/ui/radio-field/radio-field.component.mjs +39 -0
  62. package/esm2020/ui/radio-field/tft-crispr-forms-ui-radio-field.mjs +5 -0
  63. package/esm2020/ui/select-field/public-api.mjs +2 -0
  64. package/esm2020/ui/select-field/select-field.component.mjs +73 -0
  65. package/esm2020/ui/select-field/tft-crispr-forms-ui-select-field.mjs +5 -0
  66. package/esm2020/ui/selected-file/public-api.mjs +2 -0
  67. package/esm2020/ui/selected-file/selected-file.component.mjs +26 -0
  68. package/esm2020/ui/selected-file/tft-crispr-forms-ui-selected-file.mjs +5 -0
  69. package/esm2020/ui/slider-field/public-api.mjs +2 -0
  70. package/esm2020/ui/slider-field/slider-field.component.mjs +44 -0
  71. package/esm2020/ui/slider-field/tft-crispr-forms-ui-slider-field.mjs +5 -0
  72. package/esm2020/ui/textarea-field/public-api.mjs +2 -0
  73. package/esm2020/ui/textarea-field/textarea-field.component.mjs +42 -0
  74. package/esm2020/ui/textarea-field/tft-crispr-forms-ui-textarea-field.mjs +5 -0
  75. package/esm2020/ui/tft-crispr-forms-ui.mjs +5 -0
  76. package/esm2020/ui/unit-conversion-field/public-api.mjs +2 -0
  77. package/esm2020/ui/unit-conversion-field/tft-crispr-forms-ui-unit-conversion-field.mjs +5 -0
  78. package/esm2020/ui/unit-conversion-field/unit-conversion-field.component.mjs +84 -0
  79. package/esm2020/utils/abstracts/autocomplete-field.abstract.mjs +30 -0
  80. package/esm2020/utils/abstracts/crispr-control.mixin.mjs +27 -0
  81. package/esm2020/utils/abstracts/crispr-field.abstract.mjs +20 -0
  82. package/esm2020/utils/abstracts/index.mjs +4 -0
  83. package/esm2020/utils/functions/buildFormGroupFromConfig.mjs +28 -0
  84. package/esm2020/utils/functions/callOptionsIfFunction.mjs +4 -0
  85. package/esm2020/utils/functions/createControlForType.mjs +19 -0
  86. package/esm2020/utils/functions/filterOptionsByLabel.mjs +11 -0
  87. package/esm2020/utils/functions/image-compression.helpers.mjs +50 -0
  88. package/esm2020/utils/functions/index.mjs +8 -0
  89. package/esm2020/utils/functions/isControlConfig.mjs +7 -0
  90. package/esm2020/utils/functions/observablifyOptions.mjs +29 -0
  91. package/esm2020/utils/models/autocomplete-chiplist-field.config.mjs +2 -0
  92. package/esm2020/utils/models/autocomplete-field.config.mjs +2 -0
  93. package/esm2020/utils/models/button.config.mjs +2 -0
  94. package/esm2020/utils/models/checkbox-field.config.mjs +2 -0
  95. package/esm2020/utils/models/crispr-field.config.mjs +23 -0
  96. package/esm2020/utils/models/datepicker-field.config.mjs +2 -0
  97. package/esm2020/utils/models/divider.config.mjs +2 -0
  98. package/esm2020/utils/models/file-upload-field.config.mjs +2 -0
  99. package/esm2020/utils/models/form-group-list.config.mjs +2 -0
  100. package/esm2020/utils/models/heading.config.mjs +3 -0
  101. package/esm2020/utils/models/image-upload-field.config.mjs +2 -0
  102. package/esm2020/utils/models/index.mjs +18 -0
  103. package/esm2020/utils/models/input-field.config.mjs +2 -0
  104. package/esm2020/utils/models/radio-field.config.mjs +2 -0
  105. package/esm2020/utils/models/select-field.config.mjs +2 -0
  106. package/esm2020/utils/models/slider-field.config.mjs +2 -0
  107. package/esm2020/utils/models/textarea-field.config.mjs +2 -0
  108. package/esm2020/utils/models/unit-conversion-field.config.mjs +2 -0
  109. package/esm2020/utils/operators/form.operators.mjs +24 -0
  110. package/esm2020/utils/operators/index.mjs +2 -0
  111. package/esm2020/utils/public-api.mjs +5 -0
  112. package/esm2020/utils/tft-crispr-forms-utils.mjs +5 -0
  113. package/fesm2015/tft-crispr-forms-ui-autocomplete-chiplist-field.mjs +138 -0
  114. package/fesm2015/tft-crispr-forms-ui-autocomplete-chiplist-field.mjs.map +1 -0
  115. package/fesm2015/tft-crispr-forms-ui-autocomplete-field.mjs +101 -0
  116. package/fesm2015/tft-crispr-forms-ui-autocomplete-field.mjs.map +1 -0
  117. package/fesm2015/tft-crispr-forms-ui-button.mjs +55 -0
  118. package/fesm2015/tft-crispr-forms-ui-button.mjs.map +1 -0
  119. package/fesm2015/tft-crispr-forms-ui-checkbox-field.mjs +49 -0
  120. package/fesm2015/tft-crispr-forms-ui-checkbox-field.mjs.map +1 -0
  121. package/fesm2015/tft-crispr-forms-ui-datepicker-field.mjs +71 -0
  122. package/fesm2015/tft-crispr-forms-ui-datepicker-field.mjs.map +1 -0
  123. package/fesm2015/tft-crispr-forms-ui-divider.mjs +34 -0
  124. package/fesm2015/tft-crispr-forms-ui-divider.mjs.map +1 -0
  125. package/fesm2015/tft-crispr-forms-ui-field-container.mjs +64 -0
  126. package/fesm2015/tft-crispr-forms-ui-field-container.mjs.map +1 -0
  127. package/fesm2015/tft-crispr-forms-ui-file-dropzone.mjs +47 -0
  128. package/fesm2015/tft-crispr-forms-ui-file-dropzone.mjs.map +1 -0
  129. package/fesm2015/tft-crispr-forms-ui-file-upload-field.mjs +117 -0
  130. package/fesm2015/tft-crispr-forms-ui-file-upload-field.mjs.map +1 -0
  131. package/fesm2015/tft-crispr-forms-ui-heading.mjs +37 -0
  132. package/fesm2015/tft-crispr-forms-ui-heading.mjs.map +1 -0
  133. package/fesm2015/tft-crispr-forms-ui-image-upload-field.mjs +182 -0
  134. package/fesm2015/tft-crispr-forms-ui-image-upload-field.mjs.map +1 -0
  135. package/fesm2015/tft-crispr-forms-ui-info.mjs +30 -0
  136. package/fesm2015/tft-crispr-forms-ui-info.mjs.map +1 -0
  137. package/fesm2015/tft-crispr-forms-ui-input-field.mjs +48 -0
  138. package/fesm2015/tft-crispr-forms-ui-input-field.mjs.map +1 -0
  139. package/fesm2015/tft-crispr-forms-ui-option.mjs +26 -0
  140. package/fesm2015/tft-crispr-forms-ui-option.mjs.map +1 -0
  141. package/fesm2015/tft-crispr-forms-ui-radio-field.mjs +46 -0
  142. package/fesm2015/tft-crispr-forms-ui-radio-field.mjs.map +1 -0
  143. package/fesm2015/tft-crispr-forms-ui-select-field.mjs +81 -0
  144. package/fesm2015/tft-crispr-forms-ui-select-field.mjs.map +1 -0
  145. package/fesm2015/tft-crispr-forms-ui-selected-file.mjs +33 -0
  146. package/fesm2015/tft-crispr-forms-ui-selected-file.mjs.map +1 -0
  147. package/fesm2015/tft-crispr-forms-ui-slider-field.mjs +51 -0
  148. package/fesm2015/tft-crispr-forms-ui-slider-field.mjs.map +1 -0
  149. package/fesm2015/tft-crispr-forms-ui-textarea-field.mjs +49 -0
  150. package/fesm2015/tft-crispr-forms-ui-textarea-field.mjs.map +1 -0
  151. package/fesm2015/tft-crispr-forms-ui-unit-conversion-field.mjs +93 -0
  152. package/fesm2015/tft-crispr-forms-ui-unit-conversion-field.mjs.map +1 -0
  153. package/fesm2015/tft-crispr-forms-ui.mjs +12 -0
  154. package/fesm2015/tft-crispr-forms-ui.mjs.map +1 -0
  155. package/fesm2015/tft-crispr-forms-utils.mjs +270 -0
  156. package/fesm2015/tft-crispr-forms-utils.mjs.map +1 -0
  157. package/fesm2015/tft-crispr-forms.mjs +117 -1730
  158. package/fesm2015/tft-crispr-forms.mjs.map +1 -1
  159. package/fesm2020/tft-crispr-forms-ui-autocomplete-chiplist-field.mjs +137 -0
  160. package/fesm2020/tft-crispr-forms-ui-autocomplete-chiplist-field.mjs.map +1 -0
  161. package/fesm2020/tft-crispr-forms-ui-autocomplete-field.mjs +100 -0
  162. package/fesm2020/tft-crispr-forms-ui-autocomplete-field.mjs.map +1 -0
  163. package/fesm2020/tft-crispr-forms-ui-button.mjs +55 -0
  164. package/fesm2020/tft-crispr-forms-ui-button.mjs.map +1 -0
  165. package/fesm2020/tft-crispr-forms-ui-checkbox-field.mjs +49 -0
  166. package/fesm2020/tft-crispr-forms-ui-checkbox-field.mjs.map +1 -0
  167. package/fesm2020/tft-crispr-forms-ui-datepicker-field.mjs +70 -0
  168. package/fesm2020/tft-crispr-forms-ui-datepicker-field.mjs.map +1 -0
  169. package/fesm2020/tft-crispr-forms-ui-divider.mjs +34 -0
  170. package/fesm2020/tft-crispr-forms-ui-divider.mjs.map +1 -0
  171. package/fesm2020/tft-crispr-forms-ui-field-container.mjs +65 -0
  172. package/fesm2020/tft-crispr-forms-ui-field-container.mjs.map +1 -0
  173. package/fesm2020/tft-crispr-forms-ui-file-dropzone.mjs +47 -0
  174. package/fesm2020/tft-crispr-forms-ui-file-dropzone.mjs.map +1 -0
  175. package/fesm2020/tft-crispr-forms-ui-file-upload-field.mjs +115 -0
  176. package/fesm2020/tft-crispr-forms-ui-file-upload-field.mjs.map +1 -0
  177. package/fesm2020/tft-crispr-forms-ui-heading.mjs +37 -0
  178. package/fesm2020/tft-crispr-forms-ui-heading.mjs.map +1 -0
  179. package/fesm2020/tft-crispr-forms-ui-image-upload-field.mjs +185 -0
  180. package/fesm2020/tft-crispr-forms-ui-image-upload-field.mjs.map +1 -0
  181. package/fesm2020/tft-crispr-forms-ui-info.mjs +30 -0
  182. package/fesm2020/tft-crispr-forms-ui-info.mjs.map +1 -0
  183. package/fesm2020/tft-crispr-forms-ui-input-field.mjs +48 -0
  184. package/fesm2020/tft-crispr-forms-ui-input-field.mjs.map +1 -0
  185. package/fesm2020/tft-crispr-forms-ui-option.mjs +26 -0
  186. package/fesm2020/tft-crispr-forms-ui-option.mjs.map +1 -0
  187. package/fesm2020/tft-crispr-forms-ui-radio-field.mjs +46 -0
  188. package/fesm2020/tft-crispr-forms-ui-radio-field.mjs.map +1 -0
  189. package/fesm2020/tft-crispr-forms-ui-select-field.mjs +80 -0
  190. package/fesm2020/tft-crispr-forms-ui-select-field.mjs.map +1 -0
  191. package/fesm2020/tft-crispr-forms-ui-selected-file.mjs +33 -0
  192. package/fesm2020/tft-crispr-forms-ui-selected-file.mjs.map +1 -0
  193. package/fesm2020/tft-crispr-forms-ui-slider-field.mjs +51 -0
  194. package/fesm2020/tft-crispr-forms-ui-slider-field.mjs.map +1 -0
  195. package/fesm2020/tft-crispr-forms-ui-textarea-field.mjs +49 -0
  196. package/fesm2020/tft-crispr-forms-ui-textarea-field.mjs.map +1 -0
  197. package/fesm2020/tft-crispr-forms-ui-unit-conversion-field.mjs +91 -0
  198. package/fesm2020/tft-crispr-forms-ui-unit-conversion-field.mjs.map +1 -0
  199. package/fesm2020/tft-crispr-forms-ui.mjs +12 -0
  200. package/fesm2020/tft-crispr-forms-ui.mjs.map +1 -0
  201. package/fesm2020/tft-crispr-forms-utils.mjs +269 -0
  202. package/fesm2020/tft-crispr-forms-utils.mjs.map +1 -0
  203. package/fesm2020/tft-crispr-forms.mjs +117 -1723
  204. package/fesm2020/tft-crispr-forms.mjs.map +1 -1
  205. package/index.d.ts +5 -1
  206. package/package.json +188 -15
  207. package/public-api.d.ts +3 -0
  208. package/src/index.d.ts +1 -0
  209. package/src/lib/crispr-forms.module.d.ts +15 -0
  210. package/src/lib/field-component-map.const.d.ts +42 -0
  211. package/{lib → src/lib}/field.directive.d.ts +4 -10
  212. package/{lib → src/lib}/form/form.component.d.ts +3 -3
  213. package/{lib → src/lib}/form-group-list/form-group-list.component.d.ts +12 -14
  214. package/{lib → src/lib}/form-group-list/index.d.ts +0 -1
  215. package/{lib → src/lib}/pipes/crispr-pipes.module.d.ts +0 -0
  216. package/{lib → src/lib}/pipes/initial-control-value.pipe.d.ts +2 -2
  217. package/src/lib/public_api.d.ts +2 -0
  218. package/{lib → src/lib}/sub-group/index.d.ts +0 -0
  219. package/src/lib/sub-group/sub-group.component.d.ts +22 -0
  220. package/{lib → src/lib}/sub-group/sub-group.module.d.ts +2 -2
  221. package/tft-crispr-forms-14.0.0.tgz +0 -0
  222. package/ui/README.md +3 -0
  223. package/{lib/material → ui}/autocomplete-chiplist-field/autocomplete-chiplist-field.component.d.ts +2 -3
  224. package/ui/autocomplete-chiplist-field/index.d.ts +5 -0
  225. package/ui/autocomplete-chiplist-field/public-api.d.ts +1 -0
  226. package/{lib/material → ui}/autocomplete-field/autocomplete-field.component.d.ts +2 -3
  227. package/ui/autocomplete-field/index.d.ts +5 -0
  228. package/ui/autocomplete-field/public-api.d.ts +1 -0
  229. package/{lib/material → ui}/button/button.component.d.ts +2 -3
  230. package/ui/button/index.d.ts +5 -0
  231. package/ui/button/public-api.d.ts +1 -0
  232. package/ui/checkbox-field/checkbox-field.component.d.ts +21 -0
  233. package/ui/checkbox-field/index.d.ts +5 -0
  234. package/ui/checkbox-field/public-api.d.ts +1 -0
  235. package/{lib/material → ui}/datepicker-field/datepicker-field.component.d.ts +14 -17
  236. package/ui/datepicker-field/index.d.ts +5 -0
  237. package/ui/datepicker-field/public-api.d.ts +1 -0
  238. package/{lib/material → ui}/divider/divider.component.d.ts +2 -3
  239. package/ui/divider/index.d.ts +5 -0
  240. package/ui/divider/public-api.d.ts +1 -0
  241. package/{lib → ui}/field-container/field-container.component.d.ts +3 -10
  242. package/ui/field-container/index.d.ts +5 -0
  243. package/{lib/field-container/index.d.ts → ui/field-container/public-api.d.ts} +0 -0
  244. package/{lib/material/file-upload → ui/file-dropzone}/file-dropzone.directive.d.ts +1 -1
  245. package/ui/file-dropzone/index.d.ts +5 -0
  246. package/{lib/material/file-upload/index.d.ts → ui/file-dropzone/public-api.d.ts} +0 -1
  247. package/ui/file-upload-field/file-upload-field.component.d.ts +37 -0
  248. package/ui/file-upload-field/index.d.ts +5 -0
  249. package/ui/file-upload-field/public-api.d.ts +1 -0
  250. package/ui/heading/heading.component.d.ts +8 -0
  251. package/ui/heading/index.d.ts +5 -0
  252. package/ui/heading/public-api.d.ts +1 -0
  253. package/ui/image-upload-field/image-upload-field.component.d.ts +48 -0
  254. package/ui/image-upload-field/index.d.ts +5 -0
  255. package/{lib/material/image-upload-field/index.d.ts → ui/image-upload-field/public-api.d.ts} +0 -0
  256. package/ui/index.d.ts +5 -0
  257. package/ui/info/index.d.ts +5 -0
  258. package/ui/info/info.component.d.ts +7 -0
  259. package/ui/info/public-api.d.ts +1 -0
  260. package/ui/input-field/index.d.ts +5 -0
  261. package/ui/input-field/input-field.component.d.ts +22 -0
  262. package/ui/input-field/public-api.d.ts +1 -0
  263. package/ui/option/index.d.ts +5 -0
  264. package/{lib/material → ui}/option/option.component.d.ts +2 -2
  265. package/{lib/material/option/index.d.ts → ui/option/public-api.d.ts} +0 -0
  266. package/ui/public-api.d.ts +5 -0
  267. package/ui/radio-field/index.d.ts +5 -0
  268. package/ui/radio-field/public-api.d.ts +1 -0
  269. package/ui/radio-field/radio-field.component.d.ts +23 -0
  270. package/ui/select-field/index.d.ts +5 -0
  271. package/ui/select-field/public-api.d.ts +1 -0
  272. package/{lib/material → ui}/select-field/select-field.component.d.ts +12 -14
  273. package/ui/selected-file/index.d.ts +5 -0
  274. package/ui/selected-file/public-api.d.ts +1 -0
  275. package/ui/selected-file/selected-file.component.d.ts +10 -0
  276. package/ui/slider-field/index.d.ts +5 -0
  277. package/ui/slider-field/public-api.d.ts +1 -0
  278. package/ui/slider-field/slider-field.component.d.ts +25 -0
  279. package/ui/textarea-field/index.d.ts +5 -0
  280. package/ui/textarea-field/public-api.d.ts +1 -0
  281. package/ui/textarea-field/textarea-field.component.d.ts +21 -0
  282. package/ui/unit-conversion-field/index.d.ts +5 -0
  283. package/ui/unit-conversion-field/public-api.d.ts +1 -0
  284. package/{lib/material → ui}/unit-conversion-field/unit-conversion-field.component.d.ts +14 -17
  285. package/utils/README.md +3 -0
  286. package/{lib → utils}/abstracts/autocomplete-field.abstract.d.ts +4 -4
  287. package/{lib → utils}/abstracts/crispr-control.mixin.d.ts +0 -0
  288. package/{lib → utils}/abstracts/crispr-field.abstract.d.ts +1 -1
  289. package/{lib → utils}/abstracts/index.d.ts +0 -0
  290. package/utils/functions/buildFormGroupFromConfig.d.ts +9 -0
  291. package/utils/functions/callOptionsIfFunction.d.ts +3 -0
  292. package/utils/functions/createControlForType.d.ts +9 -0
  293. package/utils/functions/filterOptionsByLabel.d.ts +7 -0
  294. package/utils/functions/image-compression.helpers.d.ts +5 -0
  295. package/utils/functions/index.d.ts +7 -0
  296. package/utils/functions/isControlConfig.d.ts +5 -0
  297. package/utils/functions/observablifyOptions.d.ts +12 -0
  298. package/utils/index.d.ts +5 -0
  299. package/{lib → utils}/models/autocomplete-chiplist-field.config.d.ts +2 -1
  300. package/{lib → utils}/models/autocomplete-field.config.d.ts +1 -2
  301. package/{lib → utils}/models/button.config.d.ts +0 -0
  302. package/{lib → utils}/models/checkbox-field.config.d.ts +1 -2
  303. package/{lib → utils}/models/crispr-field.config.d.ts +5 -7
  304. package/{lib → utils}/models/datepicker-field.config.d.ts +4 -6
  305. package/{lib → utils}/models/divider.config.d.ts +1 -1
  306. package/{lib → utils}/models/file-upload-field.config.d.ts +9 -4
  307. package/{lib → utils}/models/form-group-list.config.d.ts +1 -2
  308. package/{lib → utils}/models/heading.config.d.ts +1 -2
  309. package/{lib → utils}/models/image-upload-field.config.d.ts +2 -1
  310. package/{lib → utils}/models/index.d.ts +0 -0
  311. package/{lib → utils}/models/input-field.config.d.ts +1 -2
  312. package/{lib → utils}/models/radio-field.config.d.ts +0 -0
  313. package/{lib → utils}/models/select-field.config.d.ts +2 -2
  314. package/{lib → utils}/models/slider-field.config.d.ts +1 -2
  315. package/{lib → utils}/models/textarea-field.config.d.ts +1 -2
  316. package/{lib → utils}/models/unit-conversion-field.config.d.ts +1 -2
  317. package/{lib → utils/operators}/form.operators.d.ts +0 -0
  318. package/utils/operators/index.d.ts +1 -0
  319. package/utils/public-api.d.ts +4 -0
  320. package/esm2020/index.mjs +0 -2
  321. package/esm2020/lib/abstracts/autocomplete-field.abstract.mjs +0 -30
  322. package/esm2020/lib/abstracts/crispr-control.mixin.mjs +0 -27
  323. package/esm2020/lib/abstracts/crispr-field.abstract.mjs +0 -17
  324. package/esm2020/lib/abstracts/index.mjs +0 -4
  325. package/esm2020/lib/crispr-forms.module.mjs +0 -66
  326. package/esm2020/lib/field-component-map.const.mjs +0 -28
  327. package/esm2020/lib/field-container/field-container.component.mjs +0 -85
  328. package/esm2020/lib/field-container/index.mjs +0 -2
  329. package/esm2020/lib/field.directive.mjs +0 -90
  330. package/esm2020/lib/form/form.component.mjs +0 -53
  331. package/esm2020/lib/form-group-list/form-group-list.component.mjs +0 -77
  332. package/esm2020/lib/form-group-list/form-group-list.module.mjs +0 -54
  333. package/esm2020/lib/form-group-list/index.mjs +0 -3
  334. package/esm2020/lib/form.helpers.mjs +0 -190
  335. package/esm2020/lib/form.operators.mjs +0 -24
  336. package/esm2020/lib/material/autocomplete-chiplist-field/autocomplete-chiplist-field.component.mjs +0 -111
  337. package/esm2020/lib/material/autocomplete-field/autocomplete-field.component.mjs +0 -78
  338. package/esm2020/lib/material/button/button.component.mjs +0 -35
  339. package/esm2020/lib/material/checkbox-field/checkbox-field.component.mjs +0 -31
  340. package/esm2020/lib/material/datepicker-field/datepicker-field.component.mjs +0 -45
  341. package/esm2020/lib/material/divider/divider.component.mjs +0 -22
  342. package/esm2020/lib/material/file-upload/file-dropzone.directive.mjs +0 -39
  343. package/esm2020/lib/material/file-upload/file-upload.component.mjs +0 -145
  344. package/esm2020/lib/material/file-upload/index.mjs +0 -3
  345. package/esm2020/lib/material/heading/heading.component.mjs +0 -54
  346. package/esm2020/lib/material/image-upload-field/image-compression.helpers.mjs +0 -4
  347. package/esm2020/lib/material/image-upload-field/image-upload-field.component.mjs +0 -265
  348. package/esm2020/lib/material/image-upload-field/index.mjs +0 -2
  349. package/esm2020/lib/material/index.mjs +0 -18
  350. package/esm2020/lib/material/info/info.component.mjs +0 -46
  351. package/esm2020/lib/material/input-field/input-field.component.mjs +0 -27
  352. package/esm2020/lib/material/material.module.mjs +0 -200
  353. package/esm2020/lib/material/option/index.mjs +0 -2
  354. package/esm2020/lib/material/option/option.component.mjs +0 -14
  355. package/esm2020/lib/material/radio-field/radio-field.component.mjs +0 -29
  356. package/esm2020/lib/material/select-field/select-field.component.mjs +0 -58
  357. package/esm2020/lib/material/selected-file/selected-file.component.mjs +0 -47
  358. package/esm2020/lib/material/slider-field/slider-field.component.mjs +0 -30
  359. package/esm2020/lib/material/textarea-field/textarea-field.component.mjs +0 -28
  360. package/esm2020/lib/material/unit-conversion-field/unit-conversion-field.component.mjs +0 -69
  361. package/esm2020/lib/models/autocomplete-chiplist-field.config.mjs +0 -2
  362. package/esm2020/lib/models/autocomplete-field.config.mjs +0 -2
  363. package/esm2020/lib/models/button.config.mjs +0 -2
  364. package/esm2020/lib/models/checkbox-field.config.mjs +0 -2
  365. package/esm2020/lib/models/crispr-field.config.mjs +0 -23
  366. package/esm2020/lib/models/datepicker-field.config.mjs +0 -2
  367. package/esm2020/lib/models/divider.config.mjs +0 -2
  368. package/esm2020/lib/models/file-upload-field.config.mjs +0 -2
  369. package/esm2020/lib/models/form-group-list.config.mjs +0 -2
  370. package/esm2020/lib/models/heading.config.mjs +0 -3
  371. package/esm2020/lib/models/image-upload-field.config.mjs +0 -2
  372. package/esm2020/lib/models/index.mjs +0 -18
  373. package/esm2020/lib/models/input-field.config.mjs +0 -2
  374. package/esm2020/lib/models/radio-field.config.mjs +0 -2
  375. package/esm2020/lib/models/select-field.config.mjs +0 -2
  376. package/esm2020/lib/models/slider-field.config.mjs +0 -2
  377. package/esm2020/lib/models/textarea-field.config.mjs +0 -2
  378. package/esm2020/lib/models/unit-conversion-field.config.mjs +0 -2
  379. package/esm2020/lib/pipes/crispr-pipes.module.mjs +0 -26
  380. package/esm2020/lib/pipes/initial-control-value.pipe.mjs +0 -20
  381. package/esm2020/lib/public_api.mjs +0 -10
  382. package/esm2020/lib/sub-group/index.mjs +0 -3
  383. package/esm2020/lib/sub-group/sub-group.component.mjs +0 -20
  384. package/esm2020/lib/sub-group/sub-group.module.mjs +0 -45
  385. package/lib/crispr-forms.module.d.ts +0 -16
  386. package/lib/field-component-map.const.d.ts +0 -28
  387. package/lib/form-group-list/form-group-list.module.d.ts +0 -15
  388. package/lib/form.helpers.d.ts +0 -88
  389. package/lib/material/checkbox-field/checkbox-field.component.d.ts +0 -23
  390. package/lib/material/file-upload/file-upload.component.d.ts +0 -54
  391. package/lib/material/heading/heading.component.d.ts +0 -17
  392. package/lib/material/image-upload-field/image-compression.helpers.d.ts +0 -1
  393. package/lib/material/image-upload-field/image-upload-field.component.d.ts +0 -68
  394. package/lib/material/index.d.ts +0 -17
  395. package/lib/material/info/info.component.d.ts +0 -15
  396. package/lib/material/input-field/input-field.component.d.ts +0 -24
  397. package/lib/material/material.module.d.ts +0 -44
  398. package/lib/material/radio-field/radio-field.component.d.ts +0 -26
  399. package/lib/material/selected-file/selected-file.component.d.ts +0 -17
  400. package/lib/material/slider-field/slider-field.component.d.ts +0 -27
  401. package/lib/material/textarea-field/textarea-field.component.d.ts +0 -24
  402. package/lib/public_api.d.ts +0 -9
  403. package/lib/sub-group/sub-group.component.d.ts +0 -24
  404. package/tft-crispr-forms-13.0.21.tgz +0 -0
  405. package/tft-crispr-forms.d.ts +0 -5
@@ -7,8 +7,8 @@ declare type AutocompleteConfigTypes = AutocompleteFieldConfig | AutocompleteChi
7
7
  declare const AbstractAutocompleteFieldMixin: {
8
8
  new (): {
9
9
  config: AutocompleteConfigTypes;
10
- group: import("@angular/forms").FormGroup;
11
- control: import("@angular/forms").AbstractControl;
10
+ group: import("@angular/forms").FormGroup<any>;
11
+ control: import("@angular/forms").AbstractControl<any, any>;
12
12
  _value: any;
13
13
  value: any;
14
14
  ngOnInit(): void;
@@ -18,11 +18,11 @@ declare const AbstractAutocompleteFieldMixin: {
18
18
  };
19
19
  };
20
20
  export declare class AbstractAutocompleteComponent<C> extends AbstractAutocompleteFieldMixin implements OnInit {
21
- autocompleteInputControl: FormControl;
21
+ autocompleteInputControl: FormControl<string>;
22
22
  options$: Observable<SelectOption[]>;
23
23
  config: AutocompleteConfigTypes & C;
24
24
  ngOnInit(): void;
25
25
  static ɵfac: i0.ɵɵFactoryDeclaration<AbstractAutocompleteComponent<any>, never>;
26
- static ɵdir: i0.ɵɵDirectiveDeclaration<AbstractAutocompleteComponent<any>, never, never, {}, {}, never>;
26
+ static ɵdir: i0.ɵɵDirectiveDeclaration<AbstractAutocompleteComponent<any>, never, never, {}, {}, never, never, false>;
27
27
  }
28
28
  export {};
@@ -7,5 +7,5 @@ export declare abstract class CrisprFieldComponent<C extends CrisprFieldConfig>
7
7
  ngOnInit(): void;
8
8
  applyDefaultConfig(): void;
9
9
  static ɵfac: i0.ɵɵFactoryDeclaration<CrisprFieldComponent<any>, never>;
10
- static ɵdir: i0.ɵɵDirectiveDeclaration<CrisprFieldComponent<any>, never, never, {}, {}, never>;
10
+ static ɵdir: i0.ɵɵDirectiveDeclaration<CrisprFieldComponent<any>, never, never, {}, {}, never, never, true>;
11
11
  }
File without changes
@@ -0,0 +1,9 @@
1
+ import { FormGroup } from "@angular/forms";
2
+ import { FormConfig } from "../models";
3
+ /**
4
+ * builds out form group based on config
5
+ * @param config a configuration for a form group
6
+ * @param value an object of initial values to pass in
7
+ * @param group the form group to modify and build out
8
+ */
9
+ export declare function buildFormGroupFromConfig(config: FormConfig, value?: any, group?: FormGroup): FormGroup<any>;
@@ -0,0 +1,3 @@
1
+ import { FormGroup } from "@angular/forms";
2
+ import { AutocompleteOptionsCallback, OptionsType } from "../models";
3
+ export declare function callOptionsIfFunction(options: OptionsType | AutocompleteOptionsCallback, parentGroup?: FormGroup, searchString?: string): OptionsType;
@@ -0,0 +1,9 @@
1
+ import { FormArray, FormControl } from "@angular/forms";
2
+ import { AnyFieldConfig, ControlValue } from "../models";
3
+ /**
4
+ * Analyze the config and build a form control to spec. Notice we don't use FormBuilder here
5
+ * as we want to keep this function pure.
6
+ * @param controlConfig the configuration object for the control to build
7
+ * @param value an initial value to use if passed in
8
+ */
9
+ export declare function createControlForType(controlConfig: AnyFieldConfig, value?: ControlValue): import("@angular/forms").FormGroup<any> | FormArray<any> | FormControl<any>;
@@ -0,0 +1,7 @@
1
+ import { SelectOption } from "../models";
2
+ /**
3
+ * A basic filter function that filters the search string against the label of the options object
4
+ * @param options the array of options to filter
5
+ * @param searchString the string from the input
6
+ */
7
+ export declare function filterOptionsByLabel(options: SelectOption[], searchString: string): SelectOption[];
@@ -0,0 +1,5 @@
1
+ import { ValidatorFn } from "@angular/forms";
2
+ export declare function convertBytesToMb(bytes: number): number;
3
+ export declare function maxFileSizeValidator(maxFileSize: number): ValidatorFn;
4
+ export declare function allowedFileExtValidator(allowedFileExtensions: string[], onlyAllowFiles?: boolean): ValidatorFn;
5
+ export declare function allowedFileType(matchExp: string | RegExp): ValidatorFn;
@@ -0,0 +1,7 @@
1
+ export * from './buildFormGroupFromConfig';
2
+ export * from './callOptionsIfFunction';
3
+ export * from './createControlForType';
4
+ export * from './filterOptionsByLabel';
5
+ export * from './isControlConfig';
6
+ export * from './observablifyOptions';
7
+ export * from './image-compression.helpers';
@@ -0,0 +1,5 @@
1
+ import { CrisprControlConfig, CrisprFieldConfig } from "../models";
2
+ /**
3
+ * Determines if the field config is for a form control (not a divider, heading or other non-control field)
4
+ * */
5
+ export declare function isControlConfig(fieldConfig: CrisprFieldConfig): fieldConfig is CrisprControlConfig;
@@ -0,0 +1,12 @@
1
+ import { FormGroup } from "@angular/forms";
2
+ import { Observable } from "rxjs";
3
+ import { OptionsType, SelectOption } from "../models";
4
+ /**
5
+ * The user can give us select options as an array, a function that resolves to a promise,
6
+ * or an observable. This functions consumes any of those and returns an observable that
7
+ * resolves an array of options
8
+ *
9
+ * @param options the options passed in from the config
10
+ * @param emptyMessageOption the message to display when the array is empty
11
+ */
12
+ export declare function observablifyOptions(options: OptionsType, parentGroup: FormGroup, searchString?: string): Observable<SelectOption[]>;
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ /// <amd-module name="@tft/crispr-forms/utils" />
5
+ export * from './public-api';
@@ -1,4 +1,5 @@
1
- import { AbstractAutocompleteFieldConfig, SelectOption } from './index';
1
+ import { AbstractAutocompleteFieldConfig } from './autocomplete-field.config';
2
+ import { SelectOption } from './select-field.config';
2
3
  import { ControlType, FieldDescriptors, MatFieldProperties } from './crispr-field.config';
3
4
  export interface AutocompleteChiplistFieldConfig extends AbstractAutocompleteFieldConfig, FieldDescriptors, MatFieldProperties {
4
5
  controlType: ControlType.AUTOCOMPLETE_CHIPLIST;
@@ -1,6 +1,5 @@
1
- import { CrisprControlConfig, ControlType } from '../models';
2
1
  import { AutocompleteOptionsCallback, SelectOption } from './select-field.config';
3
- import { FieldDescriptors, MatFieldProperties } from './crispr-field.config';
2
+ import { FieldDescriptors, MatFieldProperties, CrisprControlConfig, ControlType } from './crispr-field.config';
4
3
  export interface AbstractAutocompleteFieldConfig extends CrisprControlConfig, FieldDescriptors, MatFieldProperties {
5
4
  typeToEmit?: boolean;
6
5
  typeDebounceTime?: number;
File without changes
@@ -1,5 +1,4 @@
1
- import { CrisprControlConfig, ControlType } from '../models';
2
- import { FieldDescriptors, MatFieldProperties } from './crispr-field.config';
1
+ import { FieldDescriptors, MatFieldProperties, CrisprControlConfig, ControlType } from './crispr-field.config';
3
2
  export interface CheckboxFieldConfig extends CrisprControlConfig, Pick<FieldDescriptors, 'label' | 'info'>, Pick<MatFieldProperties, 'color'> {
4
3
  controlType: ControlType.CHECKBOX;
5
4
  labelPosition?: 'before' | 'after';
@@ -3,7 +3,6 @@ import { Observable } from 'rxjs';
3
3
  import { TooltipPosition } from '@angular/material/tooltip';
4
4
  import { MatFormFieldAppearance } from '@angular/material/form-field';
5
5
  import { ErrorDictionary } from '@tft/form-validation-handler';
6
- import { ComputeFieldConfig, CheckControlConfig, CheckControlsConfig } from '../form.helpers';
7
6
  import type { SelectFieldConfig, HeadingConfig, ButtonConfig, DatepickerFieldConfig, InputFieldConfig, CheckboxFieldConfig, TextareaFieldConfig, AutocompleteFieldConfig, FormGroupListConfig, AutocompleteChiplistFieldConfig, SliderFieldConfig, DividerConfig, SelectOption, RadioFieldConfig, ImageUploadFieldConfig, FileUploadFieldConfig, UnitConversionFieldConfig } from '../models';
8
7
  import { ThemePalette } from '@angular/material/core';
9
8
  export declare enum ControlType {
@@ -42,13 +41,12 @@ export interface CrisprControlConfig<M = null> extends CrisprFieldConfig {
42
41
  controlName: RestrictedControlName<M>;
43
42
  controlType: ControlType;
44
43
  validators?: ValidatorFn[];
44
+ computeValue?: (group: FormGroup) => Observable<unknown>;
45
+ disabledCallback?: (group: FormGroup) => Observable<boolean>;
45
46
  /**
46
- * @deprecated please us computeValue instead
47
+ * Hide the control when disabled
48
+ * @default false
47
49
  */
48
- computeFieldConfig?: ComputeFieldConfig;
49
- computeValue?: (group: FormGroup) => Observable<unknown>;
50
- disabledCallback?: (group: FormGroup, config?: any) => Observable<boolean>;
51
- disabledCallbackConfig?: CheckControlConfig | CheckControlsConfig | any;
52
50
  hideDisabled?: boolean;
53
51
  heading?: HeadingConfig;
54
52
  hint?: string;
@@ -85,7 +83,7 @@ export interface FormConfig<C = AnyFieldConfig> extends AbstractGroupConfig<C> {
85
83
  /**
86
84
  * Configuration for SubGroup components
87
85
  */
88
- export interface SubGroupConfig extends CrisprControlConfig, AbstractGroupConfig {
86
+ export interface SubGroupConfig extends CrisprControlConfig, AbstractGroupConfig<any> {
89
87
  controlType: ControlType.SUB_GROUP;
90
88
  }
91
89
  export declare type AnyFieldConfig = InputFieldConfig | SelectFieldConfig | RadioFieldConfig | FormGroupListConfig | SubGroupConfig | AutocompleteFieldConfig | AutocompleteChiplistFieldConfig | TextareaFieldConfig | CheckboxFieldConfig | DatepickerFieldConfig | SliderFieldConfig | FileUploadFieldConfig | ImageUploadFieldConfig | HeadingConfig | ButtonConfig | DividerConfig | UnitConversionFieldConfig;
@@ -1,6 +1,4 @@
1
- import { CrisprControlConfig, ControlType } from '../models';
2
- import { Moment } from 'moment';
3
- import { FieldDescriptors, MatFieldProperties } from './crispr-field.config';
1
+ import { FieldDescriptors, MatFieldProperties, CrisprControlConfig, ControlType } from './crispr-field.config';
4
2
  import { MatCalendarCellClassFunction } from '@angular/material/datepicker';
5
3
  import { Observable } from 'rxjs';
6
4
  import { FormGroup } from '@angular/forms';
@@ -12,9 +10,9 @@ export interface DatepickerFieldConfig extends CrisprControlConfig, Pick<FieldDe
12
10
  startView?: 'month' | 'year' | 'multi-year';
13
11
  startAt?: Date | ((group: FormGroup) => Observable<Date>) | null;
14
12
  touchUi?: boolean;
15
- datepickerFilter?: (date: Moment) => boolean;
16
- cellClassFunction?: MatCalendarCellClassFunction<Moment>;
17
- dateClass?: (parentGroup: FormGroup) => Observable<MatCalendarCellClassFunction<Moment>>;
13
+ datepickerFilter?: (date: Date) => boolean;
14
+ cellClassFunction?: MatCalendarCellClassFunction<Date>;
15
+ dateClass?: (parentGroup: FormGroup) => Observable<MatCalendarCellClassFunction<Date>>;
18
16
  /**
19
17
  * Pass a component into mat-datepicker-actions component see [docs](https://material.angular.io/components/datepicker/overview#confirmation-action-buttons)
20
18
  */
@@ -1,4 +1,4 @@
1
- import { CrisprFieldConfig, ControlType } from '../models';
1
+ import { CrisprFieldConfig, ControlType } from './crispr-field.config';
2
2
  export declare type DividerConfig = Omit<CrisprFieldConfig, 'label'> & {
3
3
  controlType?: ControlType.DIVIDER;
4
4
  vertical?: boolean;
@@ -1,7 +1,12 @@
1
1
  import { FormGroup } from '@angular/forms';
2
- import type { FileUploadFieldComponent } from '../material/file-upload/file-upload.component';
3
- import type { ImageUploadFieldComponent } from '../material/image-upload-field';
4
- import { CrisprControlConfig, ControlType, ButtonType, MatFieldProperties } from '../models';
2
+ import { CrisprControlConfig, ControlType, MatFieldProperties } from './crispr-field.config';
3
+ import { ButtonType } from './button.config';
4
+ import { Observable } from 'rxjs';
5
+ export interface AbstractUploadComponent {
6
+ isUploaded: boolean;
7
+ fileProgress: Observable<number>[];
8
+ disabled$: Observable<boolean>;
9
+ }
5
10
  export declare type FileUploadFieldConfig = CrisprControlConfig & MatFieldProperties & {
6
11
  controlType: ControlType.FILE_UPLOAD;
7
12
  label: string;
@@ -15,7 +20,7 @@ export declare type FileUploadFieldConfig = CrisprControlConfig & MatFieldProper
15
20
  dropZoneText?: string;
16
21
  } & (EnabledUploadButtonConfig | DisabledUploadButtonConfig);
17
22
  export interface EnabledUploadButtonConfig {
18
- uploadFiles: (parentGroup: FormGroup, files: FileList, uploadComponent: FileUploadFieldComponent | ImageUploadFieldComponent) => Promise<unknown> | unknown;
23
+ uploadFiles: (parentGroup: FormGroup, files: FileList, uploadComponent: AbstractUploadComponent) => Promise<unknown> | unknown;
19
24
  showUploadProgress?: boolean;
20
25
  disableOnUpload?: boolean;
21
26
  uploadButtonType?: ButtonType;
@@ -1,6 +1,5 @@
1
1
  import { ThemePalette } from '@angular/material/core';
2
- import { CrisprControlConfig, ControlType } from './';
3
- import { SubGroupConfig } from './crispr-field.config';
2
+ import { CrisprControlConfig, ControlType, SubGroupConfig } from './crispr-field.config';
4
3
  export interface FormGroupListConfig extends CrisprControlConfig {
5
4
  controlType: ControlType.GROUP_LIST;
6
5
  itemConfig: SubGroupConfig;
@@ -1,5 +1,4 @@
1
- import { CrisprFieldConfig, ControlType } from '../models';
2
- import { FieldDescriptors } from './crispr-field.config';
1
+ import { FieldDescriptors, CrisprFieldConfig, ControlType } from './crispr-field.config';
3
2
  export interface HeadingConfig extends Omit<CrisprFieldConfig, 'controlType'>, Omit<FieldDescriptors, 'placeholder' | 'fieldSuffix'> {
4
3
  controlType?: ControlType.HEADING;
5
4
  typographyClass?: string;
@@ -1,5 +1,6 @@
1
1
  import { FormGroup } from '@angular/forms';
2
- import { CrisprControlConfig, ControlType, ButtonType, MatFieldProperties } from '../models';
2
+ import { CrisprControlConfig, ControlType, MatFieldProperties } from './crispr-field.config';
3
+ import { ButtonType } from './button.config';
3
4
  export declare type ImageUploadFieldConfig = CrisprControlConfig & MatFieldProperties & {
4
5
  controlType: ControlType.IMAGE_UPLOAD;
5
6
  label: string;
File without changes
@@ -1,5 +1,4 @@
1
- import { CrisprControlConfig } from '../models';
2
- import { ControlType, FieldDescriptors, MatFieldProperties } from './crispr-field.config';
1
+ import { ControlType, FieldDescriptors, MatFieldProperties, CrisprControlConfig } from './crispr-field.config';
3
2
  export interface InputFieldConfig extends CrisprControlConfig, FieldDescriptors, MatFieldProperties {
4
3
  controlType: ControlType.INPUT;
5
4
  inputType?: InputType;
File without changes
@@ -1,7 +1,6 @@
1
- import { CrisprControlConfig } from '../models';
2
1
  import { Observable } from 'rxjs';
3
2
  import { FormGroup } from '@angular/forms';
4
- import { ControlType, FieldDescriptors, MatFieldProperties } from './crispr-field.config';
3
+ import { ControlType, FieldDescriptors, Info, MatFieldProperties, CrisprControlConfig } from './crispr-field.config';
5
4
  export interface SelectFieldConfig extends Omit<CrisprControlConfig, 'placeholder'>, FieldDescriptors, MatFieldProperties {
6
5
  controlType: ControlType.SELECT;
7
6
  emptyOptionsMessage?: string;
@@ -17,5 +16,6 @@ export interface SelectOption {
17
16
  label: string;
18
17
  value: any;
19
18
  imageUrl?: string;
19
+ info?: Info;
20
20
  }
21
21
  export declare const DEFAULT_EMPTY_OPTIONS_MESSAGE = "No Items";
@@ -1,5 +1,4 @@
1
- import { CrisprControlConfig, ControlType } from '../models';
2
- import { FieldDescriptors, MatFieldProperties } from './crispr-field.config';
1
+ import { FieldDescriptors, MatFieldProperties, CrisprControlConfig, ControlType } from './crispr-field.config';
3
2
  export interface SliderFieldConfig extends CrisprControlConfig, Pick<FieldDescriptors, 'label' | 'info'>, Pick<MatFieldProperties, 'color'> {
4
3
  controlType: ControlType.SLIDER;
5
4
  displayWith?: (value: number) => string | number;
@@ -1,5 +1,4 @@
1
- import { CrisprControlConfig, ControlType } from '../models';
2
- import { FieldDescriptors, MatFieldProperties } from './crispr-field.config';
1
+ import { FieldDescriptors, MatFieldProperties, CrisprControlConfig, ControlType } from './crispr-field.config';
3
2
  export interface TextareaFieldConfig extends CrisprControlConfig, FieldDescriptors, MatFieldProperties {
4
3
  controlType: ControlType.TEXTAREA;
5
4
  rows?: number;
@@ -1,6 +1,5 @@
1
1
  import { FormGroup } from '@angular/forms';
2
- import { CrisprControlConfig, ControlType } from '../models';
3
- import { FieldDescriptors, MatFieldProperties } from './crispr-field.config';
2
+ import { FieldDescriptors, MatFieldProperties, CrisprControlConfig, ControlType } from './crispr-field.config';
4
3
  import { OptionsType } from './select-field.config';
5
4
  export declare type UnitConversionFieldConfig<ST = unknown, UT = unknown> = CrisprControlConfig & FieldDescriptors & MatFieldProperties & {
6
5
  controlType: ControlType.UNIT_CONVERSION;
File without changes
@@ -0,0 +1 @@
1
+ export * from './form.operators';
@@ -0,0 +1,4 @@
1
+ export * from './operators';
2
+ export * from './models';
3
+ export * from './abstracts';
4
+ export * from './functions';
package/esm2020/index.mjs DELETED
@@ -1,2 +0,0 @@
1
- export * from './lib/public_api';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL2NyaXNwci1mb3Jtcy9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxrQkFBa0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGliL3B1YmxpY19hcGknO1xuXG4iXX0=
@@ -1,30 +0,0 @@
1
- import { Directive } from '@angular/core';
2
- import { FormControl } from '@angular/forms';
3
- import { debounceTime, distinctUntilChanged, map, shareReplay, startWith, switchMap } from 'rxjs/operators';
4
- import { crisprControlMixin } from './crispr-control.mixin';
5
- import { CrisprFieldComponent } from './crispr-field.abstract';
6
- import { observablifyOptions } from '../form.helpers';
7
- import * as i0 from "@angular/core";
8
- const AbstractAutocompleteFieldMixin = crisprControlMixin(CrisprFieldComponent);
9
- // eslint-disable-next-line @angular-eslint/directive-class-suffix
10
- export class AbstractAutocompleteComponent extends AbstractAutocompleteFieldMixin {
11
- constructor() {
12
- super(...arguments);
13
- // we need a separate control for the UI because of the way the material autocomplete chiplist works
14
- this.autocompleteInputControl = new FormControl('');
15
- }
16
- ngOnInit() {
17
- super.ngOnInit();
18
- this.group.addControl(this.config.controlName, new FormControl());
19
- // filter options by the search string using either the default filter function or one passed in through config
20
- this.options$ = this.autocompleteInputControl.valueChanges.pipe(
21
- // this is needed to have the options panel to open on focus
22
- startWith(''), debounceTime(this.config.typeDebounceTime), map((searchText) => typeof searchText === 'string' ? searchText?.trim() : ''), distinctUntilChanged(), switchMap((searchText) => observablifyOptions(this.config.options, this.group, searchText)), shareReplay(1));
23
- }
24
- }
25
- AbstractAutocompleteComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: AbstractAutocompleteComponent, deps: null, target: i0.ɵɵFactoryTarget.Directive });
26
- AbstractAutocompleteComponent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.1", type: AbstractAutocompleteComponent, usesInheritance: true, ngImport: i0 });
27
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: AbstractAutocompleteComponent, decorators: [{
28
- type: Directive
29
- }] });
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLWZpZWxkLmFic3RyYWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jcmlzcHItZm9ybXMvc3JjL2xpYi9hYnN0cmFjdHMvYXV0b2NvbXBsZXRlLWZpZWxkLmFic3RyYWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBVSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLE9BQU8sRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFNUcsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFNUQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDL0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBSXRELE1BQU0sOEJBQThCLEdBQUcsa0JBQWtCLENBQTBCLG9CQUFvQixDQUFDLENBQUM7QUFHekcsa0VBQWtFO0FBQ2xFLE1BQU0sT0FBTyw2QkFDWCxTQUFRLDhCQUE4QjtJQUh4Qzs7UUFJRSxvR0FBb0c7UUFDcEcsNkJBQXdCLEdBQUcsSUFBSSxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7S0FrQmhEO0lBZkMsUUFBUTtRQUNOLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUVqQixJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxJQUFJLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDbEUsK0dBQStHO1FBQy9HLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLHdCQUF3QixDQUFDLFlBQVksQ0FBQyxJQUFJO1FBQzdELDREQUE0RDtRQUM1RCxTQUFTLENBQUMsRUFBRSxDQUFDLEVBQ2IsWUFBWSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsRUFDMUMsR0FBRyxDQUFDLENBQUMsVUFBa0IsRUFBRSxFQUFFLENBQUMsT0FBTyxVQUFVLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUNyRixvQkFBb0IsRUFBRSxFQUN0QixTQUFTLENBQUMsQ0FBQyxVQUFrQixFQUFFLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBQyxDQUFDLEVBQ25HLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FDZixDQUFDO0lBQ0osQ0FBQzs7MEhBcEJVLDZCQUE2Qjs4R0FBN0IsNkJBQTZCOzJGQUE3Qiw2QkFBNkI7a0JBRnpDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPbkluaXQsIERpcmVjdGl2ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIHNoYXJlUmVwbGF5LCBzdGFydFdpdGgsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgY3Jpc3ByQ29udHJvbE1peGluIH0gZnJvbSAnLi9jcmlzcHItY29udHJvbC5taXhpbic7XG5pbXBvcnQgdHlwZSB7IEF1dG9jb21wbGV0ZUZpZWxkQ29uZmlnLCBBdXRvY29tcGxldGVDaGlwbGlzdEZpZWxkQ29uZmlnLCBTZWxlY3RPcHRpb24gfSBmcm9tICcuLi9tb2RlbHMnO1xuaW1wb3J0IHsgQ3Jpc3ByRmllbGRDb21wb25lbnQgfSBmcm9tICcuL2NyaXNwci1maWVsZC5hYnN0cmFjdCc7XG5pbXBvcnQgeyBvYnNlcnZhYmxpZnlPcHRpb25zIH0gZnJvbSAnLi4vZm9ybS5oZWxwZXJzJztcblxudHlwZSBBdXRvY29tcGxldGVDb25maWdUeXBlcyA9IEF1dG9jb21wbGV0ZUZpZWxkQ29uZmlnIHwgQXV0b2NvbXBsZXRlQ2hpcGxpc3RGaWVsZENvbmZpZztcblxuY29uc3QgQWJzdHJhY3RBdXRvY29tcGxldGVGaWVsZE1peGluID0gY3Jpc3ByQ29udHJvbE1peGluPEF1dG9jb21wbGV0ZUNvbmZpZ1R5cGVzPihDcmlzcHJGaWVsZENvbXBvbmVudCk7XG5cbkBEaXJlY3RpdmUoKVxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtY2xhc3Mtc3VmZml4XG5leHBvcnQgY2xhc3MgQWJzdHJhY3RBdXRvY29tcGxldGVDb21wb25lbnQ8Qz5cbiAgZXh0ZW5kcyBBYnN0cmFjdEF1dG9jb21wbGV0ZUZpZWxkTWl4aW4gaW1wbGVtZW50cyBPbkluaXQge1xuICAvLyB3ZSBuZWVkIGEgc2VwYXJhdGUgY29udHJvbCBmb3IgdGhlIFVJIGJlY2F1c2Ugb2YgdGhlIHdheSB0aGUgbWF0ZXJpYWwgYXV0b2NvbXBsZXRlIGNoaXBsaXN0IHdvcmtzXG4gIGF1dG9jb21wbGV0ZUlucHV0Q29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgnJyk7XG4gIG9wdGlvbnMkOiBPYnNlcnZhYmxlPFNlbGVjdE9wdGlvbltdPlxuICBjb25maWc6IEF1dG9jb21wbGV0ZUNvbmZpZ1R5cGVzICYgQztcbiAgbmdPbkluaXQoKSB7XG4gICAgc3VwZXIubmdPbkluaXQoKTtcblxuICAgIHRoaXMuZ3JvdXAuYWRkQ29udHJvbCh0aGlzLmNvbmZpZy5jb250cm9sTmFtZSwgbmV3IEZvcm1Db250cm9sKCkpO1xuICAgIC8vIGZpbHRlciBvcHRpb25zIGJ5IHRoZSBzZWFyY2ggc3RyaW5nIHVzaW5nIGVpdGhlciB0aGUgZGVmYXVsdCBmaWx0ZXIgZnVuY3Rpb24gb3Igb25lIHBhc3NlZCBpbiB0aHJvdWdoIGNvbmZpZ1xuICAgIHRoaXMub3B0aW9ucyQgPSB0aGlzLmF1dG9jb21wbGV0ZUlucHV0Q29udHJvbC52YWx1ZUNoYW5nZXMucGlwZShcbiAgICAgIC8vIHRoaXMgaXMgbmVlZGVkIHRvIGhhdmUgdGhlIG9wdGlvbnMgcGFuZWwgdG8gb3BlbiBvbiBmb2N1c1xuICAgICAgc3RhcnRXaXRoKCcnKSxcbiAgICAgIGRlYm91bmNlVGltZSh0aGlzLmNvbmZpZy50eXBlRGVib3VuY2VUaW1lKSxcbiAgICAgIG1hcCgoc2VhcmNoVGV4dDogc3RyaW5nKSA9PiB0eXBlb2Ygc2VhcmNoVGV4dCA9PT0gJ3N0cmluZycgPyBzZWFyY2hUZXh0Py50cmltKCkgOiAnJyksXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgc3dpdGNoTWFwKChzZWFyY2hUZXh0OiBzdHJpbmcpID0+IG9ic2VydmFibGlmeU9wdGlvbnModGhpcy5jb25maWcub3B0aW9ucywgdGhpcy5ncm91cCwgc2VhcmNoVGV4dCkpLFxuICAgICAgc2hhcmVSZXBsYXkoMSksXG4gICAgKTtcbiAgfVxufVxuIl19
@@ -1,27 +0,0 @@
1
- import { ControlType } from '../models/crispr-field.config';
2
- export function crisprControlMixin(BaseClass) {
3
- return class extends BaseClass {
4
- set value(value) {
5
- this.setControlValue(value);
6
- this._value = value;
7
- }
8
- get value() {
9
- return this._value;
10
- }
11
- ngOnInit() {
12
- super.ngOnInit();
13
- this.control = this.group.get(this.config.controlName);
14
- this.setControlValue(this.value);
15
- // setTimeouts are ugly but this seems to be the only way to get the computed field to compute initial values
16
- setTimeout(() => {
17
- this.control.updateValueAndValidity();
18
- });
19
- }
20
- setControlValue(value) {
21
- if (value && this.control && this.config.controlType !== ControlType.SUB_GROUP) {
22
- this.control.setValue(value);
23
- }
24
- }
25
- };
26
- }
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3Jpc3ByLWNvbnRyb2wubWl4aW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NyaXNwci1mb3Jtcy9zcmMvbGliL2Fic3RyYWN0cy9jcmlzcHItY29udHJvbC5taXhpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQXFDLFdBQVcsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRy9GLE1BQU0sVUFBVSxrQkFBa0IsQ0FBZ0MsU0FBc0M7SUFDdEcsT0FBTyxLQUFNLFNBQVEsU0FBWTtRQU0vQixJQUFJLEtBQUssQ0FBQyxLQUFtQjtZQUMzQixJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzVCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLENBQUM7UUFFRCxJQUFJLEtBQUs7WUFDUCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDckIsQ0FBQztRQUVELFFBQVE7WUFDTixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ3ZELElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2pDLDZHQUE2RztZQUM3RyxVQUFVLENBQUMsR0FBRSxFQUFFO2dCQUNiLElBQUksQ0FBQyxPQUFPLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztZQUN4QyxDQUFDLENBQUMsQ0FBQTtRQUNKLENBQUM7UUFFRCxlQUFlLENBQUMsS0FBbUI7WUFDakMsSUFBRyxLQUFLLElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsS0FBSyxXQUFXLENBQUMsU0FBUyxFQUFFO2dCQUM3RSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQTthQUM3QjtRQUNILENBQUM7S0FDRixDQUFBO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZvcm1Hcm91cCwgQWJzdHJhY3RDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQ3Jpc3ByQ29udHJvbENvbmZpZywgQ29udHJvbFZhbHVlLCBDb250cm9sVHlwZSB9IGZyb20gJy4uL21vZGVscy9jcmlzcHItZmllbGQuY29uZmlnJztcbmltcG9ydCB7IENyaXNwckZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi9jcmlzcHItZmllbGQuYWJzdHJhY3QnO1xuXG5leHBvcnQgZnVuY3Rpb24gY3Jpc3ByQ29udHJvbE1peGluPEMgZXh0ZW5kcyBDcmlzcHJDb250cm9sQ29uZmlnPihCYXNlQ2xhc3M6IHR5cGVvZiBDcmlzcHJGaWVsZENvbXBvbmVudCkge1xuICByZXR1cm4gY2xhc3MgZXh0ZW5kcyBCYXNlQ2xhc3M8Qz4ge1xuICAgIGNvbmZpZzogQztcbiAgICBncm91cDogRm9ybUdyb3VwO1xuICAgIGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbDtcblxuICAgIF92YWx1ZTogQ29udHJvbFZhbHVlO1xuICAgIHNldCB2YWx1ZSh2YWx1ZTogQ29udHJvbFZhbHVlKSB7XG4gICAgICB0aGlzLnNldENvbnRyb2xWYWx1ZSh2YWx1ZSk7XG4gICAgICB0aGlzLl92YWx1ZSA9IHZhbHVlO1xuICAgIH1cblxuICAgIGdldCB2YWx1ZSgpIHtcbiAgICAgIHJldHVybiB0aGlzLl92YWx1ZTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICB0aGlzLmNvbnRyb2wgPSB0aGlzLmdyb3VwLmdldCh0aGlzLmNvbmZpZy5jb250cm9sTmFtZSk7XG4gICAgICB0aGlzLnNldENvbnRyb2xWYWx1ZSh0aGlzLnZhbHVlKTtcbiAgICAgIC8vIHNldFRpbWVvdXRzIGFyZSB1Z2x5IGJ1dCB0aGlzIHNlZW1zIHRvIGJlIHRoZSBvbmx5IHdheSB0byBnZXQgdGhlIGNvbXB1dGVkIGZpZWxkIHRvIGNvbXB1dGUgaW5pdGlhbCB2YWx1ZXNcbiAgICAgIHNldFRpbWVvdXQoKCk9PiB7XG4gICAgICAgIHRoaXMuY29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgICB9KVxuICAgIH1cblxuICAgIHNldENvbnRyb2xWYWx1ZSh2YWx1ZTogQ29udHJvbFZhbHVlKSB7XG4gICAgICBpZih2YWx1ZSAmJiB0aGlzLmNvbnRyb2wgJiYgdGhpcy5jb25maWcuY29udHJvbFR5cGUgIT09IENvbnRyb2xUeXBlLlNVQl9HUk9VUCkge1xuICAgICAgICB0aGlzLmNvbnRyb2wuc2V0VmFsdWUodmFsdWUpXG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -1,17 +0,0 @@
1
- import { Directive } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- // eslint-disable-next-line @angular-eslint/directive-class-suffix
4
- export class CrisprFieldComponent {
5
- ngOnInit() {
6
- this.applyDefaultConfig();
7
- }
8
- applyDefaultConfig() {
9
- this.config = this.defaultConfig ? { ...this.defaultConfig, ...this.config } : this.config;
10
- }
11
- }
12
- CrisprFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: CrisprFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Directive });
13
- CrisprFieldComponent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.1", type: CrisprFieldComponent, ngImport: i0 });
14
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: CrisprFieldComponent, decorators: [{
15
- type: Directive
16
- }] });
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3Jpc3ByLWZpZWxkLmFic3RyYWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jcmlzcHItZm9ybXMvc3JjL2xpYi9hYnN0cmFjdHMvY3Jpc3ByLWZpZWxkLmFic3RyYWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFBVSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBR2xELGtFQUFrRTtBQUNsRSxNQUFNLE9BQWdCLG9CQUFvQjtJQUl4QyxRQUFRO1FBQ04sSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEVBQUMsR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQzNGLENBQUM7O2lIQVZtQixvQkFBb0I7cUdBQXBCLG9CQUFvQjsyRkFBcEIsb0JBQW9CO2tCQUZ6QyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBDcmlzcHJGaWVsZENvbmZpZyxcbn0gZnJvbSAnLi4vbW9kZWxzJztcbmltcG9ydCB7IE9uSW5pdCwgRGlyZWN0aXZlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBEaXJlY3RpdmUoKVxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtY2xhc3Mtc3VmZml4XG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQ3Jpc3ByRmllbGRDb21wb25lbnQ8QyBleHRlbmRzIENyaXNwckZpZWxkQ29uZmlnPiBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIGNvbmZpZzogQztcbiAgZGVmYXVsdENvbmZpZz86IFBhcnRpYWw8Qz5cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmFwcGx5RGVmYXVsdENvbmZpZygpO1xuICB9XG5cbiAgYXBwbHlEZWZhdWx0Q29uZmlnKCkge1xuICAgIHRoaXMuY29uZmlnID0gdGhpcy5kZWZhdWx0Q29uZmlnID8gey4uLnRoaXMuZGVmYXVsdENvbmZpZywgLi4udGhpcy5jb25maWd9IDogdGhpcy5jb25maWc7XG4gIH1cbn1cblxuXG4iXX0=
@@ -1,4 +0,0 @@
1
- export * from './autocomplete-field.abstract';
2
- export * from './crispr-control.mixin';
3
- export * from './crispr-field.abstract';
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NyaXNwci1mb3Jtcy9zcmMvbGliL2Fic3RyYWN0cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyx5QkFBeUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYXV0b2NvbXBsZXRlLWZpZWxkLmFic3RyYWN0JztcclxuZXhwb3J0ICogZnJvbSAnLi9jcmlzcHItY29udHJvbC5taXhpbic7XHJcbmV4cG9ydCAqIGZyb20gJy4vY3Jpc3ByLWZpZWxkLmFic3RyYWN0JztcclxuIl19
@@ -1,66 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
- import { ReactiveFormsModule } from '@angular/forms';
4
- // custom modules
5
- import { MaterialModule } from './material/material.module';
6
- import { FormValidationHandlerModule } from '@tft/form-validation-handler';
7
- // components
8
- import { CrisprFormComponent } from './form/form.component';
9
- import { FormGroupListModule } from './form-group-list';
10
- // directives
11
- import { CrisprFieldModule } from './field.directive';
12
- import { SubGroupModule } from './sub-group';
13
- import { CrisprPipesModule } from './pipes/crispr-pipes.module';
14
- import { FieldContainerModule } from './field-container';
15
- import * as i0 from "@angular/core";
16
- export class CrisprFormsModule {
17
- }
18
- CrisprFormsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: CrisprFormsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
19
- CrisprFormsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: CrisprFormsModule, declarations: [CrisprFormComponent], imports: [CommonModule,
20
- ReactiveFormsModule,
21
- FormValidationHandlerModule,
22
- FormGroupListModule,
23
- FieldContainerModule,
24
- CrisprFieldModule,
25
- SubGroupModule,
26
- MaterialModule,
27
- CrisprPipesModule], exports: [CrisprFormComponent,
28
- FieldContainerModule,
29
- MaterialModule] });
30
- CrisprFormsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: CrisprFormsModule, imports: [[
31
- CommonModule,
32
- ReactiveFormsModule,
33
- FormValidationHandlerModule,
34
- FormGroupListModule,
35
- FieldContainerModule,
36
- CrisprFieldModule,
37
- SubGroupModule,
38
- MaterialModule,
39
- CrisprPipesModule,
40
- ], FieldContainerModule,
41
- MaterialModule] });
42
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: CrisprFormsModule, decorators: [{
43
- type: NgModule,
44
- args: [{
45
- imports: [
46
- CommonModule,
47
- ReactiveFormsModule,
48
- FormValidationHandlerModule,
49
- FormGroupListModule,
50
- FieldContainerModule,
51
- CrisprFieldModule,
52
- SubGroupModule,
53
- MaterialModule,
54
- CrisprPipesModule,
55
- ],
56
- declarations: [
57
- CrisprFormComponent,
58
- ],
59
- exports: [
60
- CrisprFormComponent,
61
- FieldContainerModule,
62
- MaterialModule
63
- ]
64
- }]
65
- }] });
66
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3Jpc3ByLWZvcm1zLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY3Jpc3ByLWZvcm1zL3NyYy9saWIvY3Jpc3ByLWZvcm1zLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxpQkFBaUI7QUFDakIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFBO0FBRTNELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRTNFLGFBQWE7QUFDYixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN4RCxhQUFhO0FBQ2IsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM3QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7QUF1QnpELE1BQU0sT0FBTyxpQkFBaUI7OzhHQUFqQixpQkFBaUI7K0dBQWpCLGlCQUFpQixpQkFSMUIsbUJBQW1CLGFBWG5CLFlBQVk7UUFDWixtQkFBbUI7UUFDbkIsMkJBQTJCO1FBQzNCLG1CQUFtQjtRQUNuQixvQkFBb0I7UUFDcEIsaUJBQWlCO1FBQ2pCLGNBQWM7UUFDZCxjQUFjO1FBQ2QsaUJBQWlCLGFBTWpCLG1CQUFtQjtRQUNuQixvQkFBb0I7UUFDcEIsY0FBYzsrR0FHTCxpQkFBaUIsWUFwQm5CO1lBQ1AsWUFBWTtZQUNaLG1CQUFtQjtZQUNuQiwyQkFBMkI7WUFDM0IsbUJBQW1CO1lBQ25CLG9CQUFvQjtZQUNwQixpQkFBaUI7WUFDakIsY0FBYztZQUNkLGNBQWM7WUFDZCxpQkFBaUI7U0FDbEIsRUFNQyxvQkFBb0I7UUFDcEIsY0FBYzsyRkFHTCxpQkFBaUI7a0JBckI3QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLG1CQUFtQjt3QkFDbkIsMkJBQTJCO3dCQUMzQixtQkFBbUI7d0JBQ25CLG9CQUFvQjt3QkFDcEIsaUJBQWlCO3dCQUNqQixjQUFjO3dCQUNkLGNBQWM7d0JBQ2QsaUJBQWlCO3FCQUNsQjtvQkFDRCxZQUFZLEVBQUU7d0JBQ1osbUJBQW1CO3FCQUNwQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsbUJBQW1CO3dCQUNuQixvQkFBb0I7d0JBQ3BCLGNBQWM7cUJBQ2Y7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG4vLyBjdXN0b20gbW9kdWxlc1xuaW1wb3J0IHsgTWF0ZXJpYWxNb2R1bGUgfSBmcm9tICcuL21hdGVyaWFsL21hdGVyaWFsLm1vZHVsZSdcblxuaW1wb3J0IHsgRm9ybVZhbGlkYXRpb25IYW5kbGVyTW9kdWxlIH0gZnJvbSAnQHRmdC9mb3JtLXZhbGlkYXRpb24taGFuZGxlcic7XG5cbi8vIGNvbXBvbmVudHNcbmltcG9ydCB7IENyaXNwckZvcm1Db21wb25lbnQgfSBmcm9tICcuL2Zvcm0vZm9ybS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRm9ybUdyb3VwTGlzdE1vZHVsZSB9IGZyb20gJy4vZm9ybS1ncm91cC1saXN0Jztcbi8vIGRpcmVjdGl2ZXNcbmltcG9ydCB7IENyaXNwckZpZWxkTW9kdWxlIH0gZnJvbSAnLi9maWVsZC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgU3ViR3JvdXBNb2R1bGUgfSBmcm9tICcuL3N1Yi1ncm91cCc7XG5pbXBvcnQgeyBDcmlzcHJQaXBlc01vZHVsZSB9IGZyb20gJy4vcGlwZXMvY3Jpc3ByLXBpcGVzLm1vZHVsZSc7XG5pbXBvcnQgeyBGaWVsZENvbnRhaW5lck1vZHVsZSB9IGZyb20gJy4vZmllbGQtY29udGFpbmVyJztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIEZvcm1WYWxpZGF0aW9uSGFuZGxlck1vZHVsZSxcbiAgICBGb3JtR3JvdXBMaXN0TW9kdWxlLFxuICAgIEZpZWxkQ29udGFpbmVyTW9kdWxlLFxuICAgIENyaXNwckZpZWxkTW9kdWxlLFxuICAgIFN1Ykdyb3VwTW9kdWxlLFxuICAgIE1hdGVyaWFsTW9kdWxlLFxuICAgIENyaXNwclBpcGVzTW9kdWxlLFxuICBdLFxuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBDcmlzcHJGb3JtQ29tcG9uZW50LFxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgQ3Jpc3ByRm9ybUNvbXBvbmVudCxcbiAgICBGaWVsZENvbnRhaW5lck1vZHVsZSxcbiAgICBNYXRlcmlhbE1vZHVsZVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIENyaXNwckZvcm1zTW9kdWxlIHsgfVxuIl19
@@ -1,28 +0,0 @@
1
- import { isControlConfig } from './form.helpers';
2
- import { ControlType } from './models';
3
- export const FIELD_COMPONENTS = {
4
- groupList: import('./form-group-list').then(({ FormGroupListComponent }) => FormGroupListComponent),
5
- subGroup: import('./sub-group').then(({ SubGroupComponent }) => SubGroupComponent),
6
- button: import('./material').then(({ ButtonComponent }) => ButtonComponent),
7
- input: import('./material').then(({ InputFieldComponent }) => InputFieldComponent),
8
- select: import('./material').then(({ SelectFieldComponent }) => SelectFieldComponent),
9
- radio: import('./material').then(({ RadioFieldComponent }) => RadioFieldComponent),
10
- autocomplete: import('./material').then(({ AutocompleteFieldComponent }) => AutocompleteFieldComponent),
11
- autocompleteChiplist: import('./material').then(({ AutocompleteChiplistFieldComponent }) => AutocompleteChiplistFieldComponent),
12
- textarea: import('./material').then(({ TextareaFieldComponent }) => TextareaFieldComponent),
13
- checkbox: import('./material').then(({ CheckboxFieldComponent }) => CheckboxFieldComponent),
14
- slider: import('./material').then(({ SliderFieldComponent }) => SliderFieldComponent),
15
- datepicker: import('./material').then(({ DatepickerFieldComponent }) => DatepickerFieldComponent),
16
- fileUpload: import('./material').then(({ FileUploadFieldComponent }) => FileUploadFieldComponent),
17
- imageUpload: import('./material').then(({ ImageUploadFieldComponent }) => ImageUploadFieldComponent),
18
- heading: import('./material').then(({ HeadingComponent }) => HeadingComponent),
19
- divider: import('./material').then(({ DividerComponent }) => DividerComponent),
20
- unitConversion: import('./material').then(({ UnitConversionFieldComponent }) => UnitConversionFieldComponent)
21
- };
22
- export function isControlComponent(component) {
23
- return component && isControlConfig(component.config) && 'value' in component; // || component.config.controlType === ControlType.BUTTON;
24
- }
25
- export function isControlOrButtonComponent(component) {
26
- return isControlComponent(component) || component.config.controlType === ControlType.BUTTON;
27
- }
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtY29tcG9uZW50LW1hcC5jb25zdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY3Jpc3ByLWZvcm1zL3NyYy9saWIvZmllbGQtY29tcG9uZW50LW1hcC5jb25zdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFPQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUV2QyxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRztJQUM5QixTQUFTLEVBQUUsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUMsSUFBSSxDQUFFLENBQUMsRUFBQyxzQkFBc0IsRUFBQyxFQUFFLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztJQUNsRyxRQUFRLEVBQUUsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsaUJBQWlCLEVBQUMsRUFBRSxFQUFFLENBQUUsaUJBQWlCLENBQUM7SUFDbEYsTUFBTSxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLGVBQWUsRUFBQyxFQUFFLEVBQUUsQ0FBRSxlQUFlLENBQUM7SUFDM0UsS0FBSyxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLG1CQUFtQixFQUFDLEVBQUUsRUFBRSxDQUFFLG1CQUFtQixDQUFDO0lBQ2xGLE1BQU0sRUFBRSxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxvQkFBb0IsRUFBQyxFQUFFLEVBQUUsQ0FBRSxvQkFBb0IsQ0FBQztJQUNyRixLQUFLLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsbUJBQW1CLEVBQUMsRUFBRSxFQUFFLENBQUUsbUJBQW1CLENBQUM7SUFDbEYsWUFBWSxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLDBCQUEwQixFQUFDLEVBQUUsRUFBRSxDQUFFLDBCQUEwQixDQUFDO0lBQ3ZHLG9CQUFvQixFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLGtDQUFrQyxFQUFDLEVBQUUsRUFBRSxDQUFFLGtDQUFrQyxDQUFDO0lBQy9ILFFBQVEsRUFBRSxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxzQkFBc0IsRUFBQyxFQUFFLEVBQUUsQ0FBRSxzQkFBc0IsQ0FBQztJQUMzRixRQUFRLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsc0JBQXNCLEVBQUMsRUFBRSxFQUFFLENBQUUsc0JBQXNCLENBQUM7SUFDM0YsTUFBTSxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLG9CQUFvQixFQUFDLEVBQUUsRUFBRSxDQUFFLG9CQUFvQixDQUFDO0lBQ3JGLFVBQVUsRUFBRSxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSx3QkFBd0IsRUFBQyxFQUFFLEVBQUUsQ0FBRSx3QkFBd0IsQ0FBQztJQUNqRyxVQUFVLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsd0JBQXdCLEVBQUMsRUFBRSxFQUFFLENBQUUsd0JBQXdCLENBQUM7SUFDakcsV0FBVyxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLHlCQUF5QixFQUFDLEVBQUUsRUFBRSxDQUFFLHlCQUF5QixDQUFDO0lBQ3BHLE9BQU8sRUFBRSxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxnQkFBZ0IsRUFBQyxFQUFFLEVBQUUsQ0FBRSxnQkFBZ0IsQ0FBQztJQUM5RSxPQUFPLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsZ0JBQWdCLEVBQUMsRUFBRSxFQUFFLENBQUUsZ0JBQWdCLENBQUM7SUFDOUUsY0FBYyxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLDRCQUE0QixFQUFDLEVBQUUsRUFBRSxDQUFFLDRCQUE0QixDQUFDO0NBQzlHLENBQUM7QUFFRixNQUFNLFVBQVUsa0JBQWtCLENBQUMsU0FBK0I7SUFDaEUsT0FBTyxTQUFTLElBQUksZUFBZSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsSUFBSSxPQUFPLElBQUksU0FBUyxDQUFBLENBQUMsMERBQTBEO0FBQzFJLENBQUM7QUFFRCxNQUFNLFVBQVUsMEJBQTBCLENBQUMsU0FBK0I7SUFDeEUsT0FBTyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsSUFBSSxTQUFTLENBQUMsTUFBTSxDQUFDLFdBQVcsS0FBSyxXQUFXLENBQUMsTUFBTSxDQUFDO0FBQzlGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG1heC1saW5lLWxlbmd0aFxuaW1wb3J0IHR5cGUgeyBJbnB1dEZpZWxkQ29tcG9uZW50LCBTZWxlY3RGaWVsZENvbXBvbmVudCwgQXV0b2NvbXBsZXRlRmllbGRDb21wb25lbnQsXG4gIEF1dG9jb21wbGV0ZUNoaXBsaXN0RmllbGRDb21wb25lbnQsIFRleHRhcmVhRmllbGRDb21wb25lbnQsIENoZWNrYm94RmllbGRDb21wb25lbnQsXG4gIFJhZGlvRmllbGRDb21wb25lbnQsIEZpbGVVcGxvYWRGaWVsZENvbXBvbmVudCwgU2xpZGVyRmllbGRDb21wb25lbnQsIERhdGVwaWNrZXJGaWVsZENvbXBvbmVudCxcbiAgSGVhZGluZ0NvbXBvbmVudCwgRGl2aWRlckNvbXBvbmVudCwgQnV0dG9uQ29tcG9uZW50LCBVbml0Q29udmVyc2lvbkZpZWxkQ29tcG9uZW50LCBJbWFnZVVwbG9hZEZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi9tYXRlcmlhbCc7XG5pbXBvcnQgdHlwZSB7IEZvcm1Hcm91cExpc3RDb21wb25lbnQgfSBmcm9tICcuL2Zvcm0tZ3JvdXAtbGlzdC9mb3JtLWdyb3VwLWxpc3QuY29tcG9uZW50JztcbmltcG9ydCB0eXBlIHsgU3ViR3JvdXBDb21wb25lbnQgfSBmcm9tICcuL3N1Yi1ncm91cC9zdWItZ3JvdXAuY29tcG9uZW50JztcbmltcG9ydCB7IGlzQ29udHJvbENvbmZpZyB9IGZyb20gJy4vZm9ybS5oZWxwZXJzJztcbmltcG9ydCB7IENvbnRyb2xUeXBlIH0gZnJvbSAnLi9tb2RlbHMnO1xuXG5leHBvcnQgY29uc3QgRklFTERfQ09NUE9ORU5UUyA9IHtcbiAgZ3JvdXBMaXN0OiBpbXBvcnQoJy4vZm9ybS1ncm91cC1saXN0JykudGhlbiAoKHtGb3JtR3JvdXBMaXN0Q29tcG9uZW50fSkgPT4gRm9ybUdyb3VwTGlzdENvbXBvbmVudCksXG4gIHN1Ykdyb3VwOiBpbXBvcnQoJy4vc3ViLWdyb3VwJykudGhlbigoeyBTdWJHcm91cENvbXBvbmVudH0pID0+ICBTdWJHcm91cENvbXBvbmVudCksXG4gIGJ1dHRvbjogaW1wb3J0KCcuL21hdGVyaWFsJykudGhlbigoeyBCdXR0b25Db21wb25lbnR9KSA9PiAgQnV0dG9uQ29tcG9uZW50KSxcbiAgaW5wdXQ6IGltcG9ydCgnLi9tYXRlcmlhbCcpLnRoZW4oKHsgSW5wdXRGaWVsZENvbXBvbmVudH0pID0+ICBJbnB1dEZpZWxkQ29tcG9uZW50KSxcbiAgc2VsZWN0OiBpbXBvcnQoJy4vbWF0ZXJpYWwnKS50aGVuKCh7IFNlbGVjdEZpZWxkQ29tcG9uZW50fSkgPT4gIFNlbGVjdEZpZWxkQ29tcG9uZW50KSxcbiAgcmFkaW86IGltcG9ydCgnLi9tYXRlcmlhbCcpLnRoZW4oKHsgUmFkaW9GaWVsZENvbXBvbmVudH0pID0+ICBSYWRpb0ZpZWxkQ29tcG9uZW50KSxcbiAgYXV0b2NvbXBsZXRlOiBpbXBvcnQoJy4vbWF0ZXJpYWwnKS50aGVuKCh7IEF1dG9jb21wbGV0ZUZpZWxkQ29tcG9uZW50fSkgPT4gIEF1dG9jb21wbGV0ZUZpZWxkQ29tcG9uZW50KSxcbiAgYXV0b2NvbXBsZXRlQ2hpcGxpc3Q6IGltcG9ydCgnLi9tYXRlcmlhbCcpLnRoZW4oKHsgQXV0b2NvbXBsZXRlQ2hpcGxpc3RGaWVsZENvbXBvbmVudH0pID0+ICBBdXRvY29tcGxldGVDaGlwbGlzdEZpZWxkQ29tcG9uZW50KSxcbiAgdGV4dGFyZWE6IGltcG9ydCgnLi9tYXRlcmlhbCcpLnRoZW4oKHsgVGV4dGFyZWFGaWVsZENvbXBvbmVudH0pID0+ICBUZXh0YXJlYUZpZWxkQ29tcG9uZW50KSxcbiAgY2hlY2tib3g6IGltcG9ydCgnLi9tYXRlcmlhbCcpLnRoZW4oKHsgQ2hlY2tib3hGaWVsZENvbXBvbmVudH0pID0+ICBDaGVja2JveEZpZWxkQ29tcG9uZW50KSxcbiAgc2xpZGVyOiBpbXBvcnQoJy4vbWF0ZXJpYWwnKS50aGVuKCh7IFNsaWRlckZpZWxkQ29tcG9uZW50fSkgPT4gIFNsaWRlckZpZWxkQ29tcG9uZW50KSxcbiAgZGF0ZXBpY2tlcjogaW1wb3J0KCcuL21hdGVyaWFsJykudGhlbigoeyBEYXRlcGlja2VyRmllbGRDb21wb25lbnR9KSA9PiAgRGF0ZXBpY2tlckZpZWxkQ29tcG9uZW50KSxcbiAgZmlsZVVwbG9hZDogaW1wb3J0KCcuL21hdGVyaWFsJykudGhlbigoeyBGaWxlVXBsb2FkRmllbGRDb21wb25lbnR9KSA9PiAgRmlsZVVwbG9hZEZpZWxkQ29tcG9uZW50KSxcbiAgaW1hZ2VVcGxvYWQ6IGltcG9ydCgnLi9tYXRlcmlhbCcpLnRoZW4oKHsgSW1hZ2VVcGxvYWRGaWVsZENvbXBvbmVudH0pID0+ICBJbWFnZVVwbG9hZEZpZWxkQ29tcG9uZW50KSxcbiAgaGVhZGluZzogaW1wb3J0KCcuL21hdGVyaWFsJykudGhlbigoeyBIZWFkaW5nQ29tcG9uZW50fSkgPT4gIEhlYWRpbmdDb21wb25lbnQpLFxuICBkaXZpZGVyOiBpbXBvcnQoJy4vbWF0ZXJpYWwnKS50aGVuKCh7IERpdmlkZXJDb21wb25lbnR9KSA9PiAgRGl2aWRlckNvbXBvbmVudCksXG4gIHVuaXRDb252ZXJzaW9uOiBpbXBvcnQoJy4vbWF0ZXJpYWwnKS50aGVuKCh7IFVuaXRDb252ZXJzaW9uRmllbGRDb21wb25lbnR9KSA9PiAgVW5pdENvbnZlcnNpb25GaWVsZENvbXBvbmVudClcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0NvbnRyb2xDb21wb25lbnQoY29tcG9uZW50OiBDcmlzcHJGaWVsZENvbXBvbmVudCk6IGNvbXBvbmVudCBpcyBDcmlzcHJDb250cm9sQ29tcG9uZW50IHtcbiAgcmV0dXJuIGNvbXBvbmVudCAmJiBpc0NvbnRyb2xDb25maWcoY29tcG9uZW50LmNvbmZpZykgJiYgJ3ZhbHVlJyBpbiBjb21wb25lbnQgLy8gfHwgY29tcG9uZW50LmNvbmZpZy5jb250cm9sVHlwZSA9PT0gQ29udHJvbFR5cGUuQlVUVE9OO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNDb250cm9sT3JCdXR0b25Db21wb25lbnQoY29tcG9uZW50OiBDcmlzcHJGaWVsZENvbXBvbmVudCk6IGNvbXBvbmVudCBpcyBDcmlzcHJDb250cm9sT3JCdXR0b24ge1xuICByZXR1cm4gaXNDb250cm9sQ29tcG9uZW50KGNvbXBvbmVudCkgfHwgY29tcG9uZW50LmNvbmZpZy5jb250cm9sVHlwZSA9PT0gQ29udHJvbFR5cGUuQlVUVE9OO1xufVxuXG5leHBvcnQgdHlwZSBDcmlzcHJDb250cm9sT3JCdXR0b24gPSBDcmlzcHJDb250cm9sQ29tcG9uZW50IHwgQnV0dG9uQ29tcG9uZW50O1xuXG5leHBvcnQgdHlwZSBDcmlzcHJDb250cm9sQ29tcG9uZW50ID0gSW5wdXRGaWVsZENvbXBvbmVudCB8XG4gIFNlbGVjdEZpZWxkQ29tcG9uZW50IHxcbiAgUmFkaW9GaWVsZENvbXBvbmVudCB8XG4gIFN1Ykdyb3VwQ29tcG9uZW50IHxcbiAgRm9ybUdyb3VwTGlzdENvbXBvbmVudCB8XG4gIEF1dG9jb21wbGV0ZUZpZWxkQ29tcG9uZW50IHxcbiAgQXV0b2NvbXBsZXRlQ2hpcGxpc3RGaWVsZENvbXBvbmVudCB8XG4gIFRleHRhcmVhRmllbGRDb21wb25lbnQgfFxuICBDaGVja2JveEZpZWxkQ29tcG9uZW50IHxcbiAgU2xpZGVyRmllbGRDb21wb25lbnQgfFxuICBGaWxlVXBsb2FkRmllbGRDb21wb25lbnQgfFxuICBJbWFnZVVwbG9hZEZpZWxkQ29tcG9uZW50fFxuICBEYXRlcGlja2VyRmllbGRDb21wb25lbnQgfFxuICBVbml0Q29udmVyc2lvbkZpZWxkQ29tcG9uZW50O1xuXG5leHBvcnQgdHlwZSBDb21wb25lbnRLZXlzID0ga2V5b2YgdHlwZW9mIEZJRUxEX0NPTVBPTkVOVFM7XG4vLyBleHBvcnQgdHlwZSBDcmlzcHJGaWVsZENvbXBvbmVudCA9IEZJRUxEX0NPTVBPTkVOVFNbQ29tcG9uZW50S2V5c107XG5cbmV4cG9ydCB0eXBlIENyaXNwckZpZWxkQ29tcG9uZW50ID0gQ3Jpc3ByQ29udHJvbENvbXBvbmVudCB8XG4gIEhlYWRpbmdDb21wb25lbnQgfFxuICBEaXZpZGVyQ29tcG9uZW50IHxcbiAgQnV0dG9uQ29tcG9uZW50O1xuXG4iXX0=