@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
@@ -1,31 +0,0 @@
1
- import { Component, ChangeDetectionStrategy } from '@angular/core';
2
- import { crisprControlMixin, CrisprFieldComponent } from '../../abstracts';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "../../field-container/field-container.component";
5
- import * as i2 from "@angular/material/checkbox";
6
- import * as i3 from "../info/info.component";
7
- import * as i4 from "@angular/forms";
8
- import * as i5 from "@tft/form-validation-handler";
9
- import * as i6 from "@angular/common";
10
- import * as i7 from "@angular/material/form-field";
11
- const defaultConfig = {
12
- labelPosition: 'after',
13
- inline: false
14
- };
15
- const CheckboxFieldMixin = crisprControlMixin(CrisprFieldComponent);
16
- export class CheckboxFieldComponent extends CheckboxFieldMixin {
17
- constructor() {
18
- super(...arguments);
19
- this.defaultConfig = defaultConfig;
20
- }
21
- ngOnInit() {
22
- super.ngOnInit();
23
- }
24
- }
25
- CheckboxFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: CheckboxFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
26
- CheckboxFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.1", type: CheckboxFieldComponent, 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"], components: [{ type: i1.FieldContainerComponent, selector: "crispr-field-container", inputs: ["config", "group", "inlineField"] }, { type: i2.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex", "aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { type: i3.InfoComponent, selector: "crispr-info", inputs: ["info"] }], directives: [{ type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i5.ControlErrorContainerDirective, selector: "[controlErrorContainer], [formGroup]" }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { type: i5.ControlErrorsDirective, selector: "[formControl], [formControlName]" }, { type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.MatSuffix, selector: "[matSuffix]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, preserveWhitespaces: true });
27
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: CheckboxFieldComponent, decorators: [{
28
- type: Component,
29
- args: [{ selector: 'crispr-checkbox-field', changeDetection: ChangeDetectionStrategy.OnPush, 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"] }]
30
- }] });
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3gtZmllbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jcmlzcHItZm9ybXMvc3JjL2xpYi9tYXRlcmlhbC9jaGVja2JveC1maWVsZC9jaGVja2JveC1maWVsZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NyaXNwci1mb3Jtcy9zcmMvbGliL21hdGVyaWFsL2NoZWNrYm94LWZpZWxkL2NoZWNrYm94LWZpZWxkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsdUJBQXVCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0UsT0FBTyxFQUFFLGtCQUFrQixFQUFFLG9CQUFvQixFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7Ozs7OztBQUUzRSxNQUFNLGFBQWEsR0FBaUM7SUFDbEQsYUFBYSxFQUFFLE9BQU87SUFDdEIsTUFBTSxFQUFFLEtBQUs7Q0FDZCxDQUFBO0FBQ0QsTUFBTSxrQkFBa0IsR0FBRyxrQkFBa0IsQ0FBc0Isb0JBQW9CLENBQUMsQ0FBQztBQVF6RixNQUFNLE9BQU8sc0JBQXVCLFNBQVEsa0JBQWtCO0lBTjlEOztRQVFFLGtCQUFhLEdBQUcsYUFBYSxDQUFDO0tBSS9CO0lBSEMsUUFBUTtRQUNOLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNuQixDQUFDOzttSEFMVSxzQkFBc0I7dUdBQXRCLHNCQUFzQixvRkNoQm5DLHllQWtCQTsyRkRGYSxzQkFBc0I7a0JBTmxDLFNBQVM7K0JBQ0UsdUJBQXVCLG1CQUdoQix1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDaGVja2JveEZpZWxkQ29uZmlnIH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7IGNyaXNwckNvbnRyb2xNaXhpbiwgQ3Jpc3ByRmllbGRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hYnN0cmFjdHMnO1xuXG5jb25zdCBkZWZhdWx0Q29uZmlnOiBQYXJ0aWFsPENoZWNrYm94RmllbGRDb25maWc+ID0ge1xuICBsYWJlbFBvc2l0aW9uOiAnYWZ0ZXInLFxuICBpbmxpbmU6IGZhbHNlXG59XG5jb25zdCBDaGVja2JveEZpZWxkTWl4aW4gPSBjcmlzcHJDb250cm9sTWl4aW48Q2hlY2tib3hGaWVsZENvbmZpZz4oQ3Jpc3ByRmllbGRDb21wb25lbnQpO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjcmlzcHItY2hlY2tib3gtZmllbGQnLFxuICB0ZW1wbGF0ZVVybDogJy4vY2hlY2tib3gtZmllbGQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jaGVja2JveC1maWVsZC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBDaGVja2JveEZpZWxkQ29tcG9uZW50IGV4dGVuZHMgQ2hlY2tib3hGaWVsZE1peGluIGltcGxlbWVudHMgT25Jbml0IHtcblxuICBkZWZhdWx0Q29uZmlnID0gZGVmYXVsdENvbmZpZztcbiAgbmdPbkluaXQoKSB7XG4gICAgc3VwZXIubmdPbkluaXQoKTtcbiAgfVxufVxuIiwiPGNyaXNwci1maWVsZC1jb250YWluZXJcbiAgW2NvbmZpZ109XCJjb25maWdcIlxuICBbZ3JvdXBdPVwiZ3JvdXBcIlxuICBbaW5saW5lRmllbGRdPVwiY29uZmlnLmlubGluZVwiPlxuICA8ZGl2XG4gICAgW2Zvcm1Hcm91cF09XCJncm91cFwiPlxuICAgIDxtYXQtY2hlY2tib3hcbiAgICAgIFtjb2xvcl09XCJjb25maWcuY29sb3JcIlxuICAgICAgW2xhYmVsUG9zaXRpb25dPVwiY29uZmlnLmxhYmVsUG9zaXRpb25cIlxuICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJjb25maWcuY29udHJvbE5hbWVcIj5cbiAgICAgIHt7Y29uZmlnLmxhYmVsfX1cbiAgICAgIDxjcmlzcHItaW5mb1xuICAgICAgICBtYXRTdWZmaXggKm5nSWY9XCJjb25maWcuaW5mb1wiXG4gICAgICAgIFtpbmZvXT1cImNvbmZpZy5pbmZvXCI+XG4gICAgICA8L2NyaXNwci1pbmZvPlxuICAgIDwvbWF0LWNoZWNrYm94PlxuICA8L2Rpdj5cbjwvY3Jpc3ByLWZpZWxkLWNvbnRhaW5lcj5cbiJdfQ==
@@ -1,45 +0,0 @@
1
- import { Component, ChangeDetectionStrategy } from '@angular/core';
2
- import { crisprControlMixin, CrisprFieldComponent } from '../../abstracts';
3
- import { of } from 'rxjs';
4
- import { ComponentPortal } from '@angular/cdk/portal';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "../../field-container/field-container.component";
7
- import * as i2 from "@angular/material/form-field";
8
- import * as i3 from "@angular/material/datepicker";
9
- import * as i4 from "@angular/forms";
10
- import * as i5 from "@tft/form-validation-handler";
11
- import * as i6 from "@angular/common";
12
- import * as i7 from "@angular/material/input";
13
- import * as i8 from "@angular/cdk/portal";
14
- const defaultConfig = {
15
- startView: 'month',
16
- };
17
- const DatepickerFieldMixin = crisprControlMixin(CrisprFieldComponent);
18
- export class DatepickerFieldComponent extends DatepickerFieldMixin {
19
- constructor() {
20
- super(...arguments);
21
- this.defaultConfig = defaultConfig;
22
- }
23
- ngOnInit() {
24
- super.ngOnInit();
25
- this.startAt$ = this.config.startAt instanceof Date
26
- ? of(this.config.startAt)
27
- : this.config.startAt instanceof Function
28
- ? this.config.startAt(this.group)
29
- : of(null);
30
- this.dateClass = this.config?.cellClassFunction || null;
31
- this.dateClass$ = this.config.dateClass ? this.config?.dateClass(this.group) : of(() => '');
32
- }
33
- ngAfterContentInit() {
34
- if (this.config.datepickerActions) {
35
- this.calendarFooterPortal = new ComponentPortal(this.config.datepickerActions);
36
- }
37
- }
38
- }
39
- DatepickerFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: DatepickerFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
40
- DatepickerFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.1", type: DatepickerFieldComponent, selector: "crispr-datepicker-field", usesInheritance: true, ngImport: i0, template: "<crispr-field-container\n [config]=\"config\"\n [group]=\"group\">\n <mat-form-field\n [color]=\"config.color\"\n [appearance]=\"config.appearance\"\n [formGroup]=\"group\">\n <mat-label *ngIf=\"config.label\">\n {{config.label}}\n </mat-label>\n <input\n matInput\n [formControlName]=\"config.controlName\"\n [min]=\"config.min\"\n [max]=\"config.max\"\n [matDatepicker]=\"picker\"\n [matDatepickerFilter]=\"config.datepickerFilter\">\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\n <mat-datepicker\n [touchUi]=\"config.touchUi\"\n [startView]=\"config.startView\"\n [startAt]=\"startAt$ | async\"\n [dateClass]=\"dateClass || (dateClass$ | async)\"\n #picker>\n <mat-datepicker-actions *ngIf=\"calendarFooterPortal\">\n <ng-template [cdkPortalOutlet]=\"calendarFooterPortal\"></ng-template>\n </mat-datepicker-actions>\n </mat-datepicker>\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\n", styles: [""], components: [{ type: i1.FieldContainerComponent, selector: "crispr-field-container", inputs: ["config", "group", "inlineField"] }, { type: i2.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i3.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { type: i3.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { type: i3.MatDatepickerActions, selector: "mat-datepicker-actions, mat-date-range-picker-actions" }], directives: [{ type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i5.ControlErrorContainerDirective, selector: "[controlErrorContainer], [formGroup]" }, { type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.MatLabel, selector: "mat-label" }, { type: i7.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"] }, { type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i3.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { type: i5.ControlErrorsDirective, selector: "[formControl], [formControlName]" }, { type: i2.MatSuffix, selector: "[matSuffix]" }, { type: i8.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { type: i2.MatHint, selector: "mat-hint", inputs: ["align", "id"] }], pipes: { "async": i6.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush, preserveWhitespaces: true });
41
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: DatepickerFieldComponent, decorators: [{
42
- type: Component,
43
- args: [{ selector: 'crispr-datepicker-field', changeDetection: ChangeDetectionStrategy.OnPush, template: "<crispr-field-container\n [config]=\"config\"\n [group]=\"group\">\n <mat-form-field\n [color]=\"config.color\"\n [appearance]=\"config.appearance\"\n [formGroup]=\"group\">\n <mat-label *ngIf=\"config.label\">\n {{config.label}}\n </mat-label>\n <input\n matInput\n [formControlName]=\"config.controlName\"\n [min]=\"config.min\"\n [max]=\"config.max\"\n [matDatepicker]=\"picker\"\n [matDatepickerFilter]=\"config.datepickerFilter\">\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\n <mat-datepicker\n [touchUi]=\"config.touchUi\"\n [startView]=\"config.startView\"\n [startAt]=\"startAt$ | async\"\n [dateClass]=\"dateClass || (dateClass$ | async)\"\n #picker>\n <mat-datepicker-actions *ngIf=\"calendarFooterPortal\">\n <ng-template [cdkPortalOutlet]=\"calendarFooterPortal\"></ng-template>\n </mat-datepicker-actions>\n </mat-datepicker>\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\n", styles: [""] }]
44
- }] });
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NyaXNwci1mb3Jtcy9zcmMvbGliL21hdGVyaWFsL2RhdGVwaWNrZXItZmllbGQvZGF0ZXBpY2tlci1maWVsZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NyaXNwci1mb3Jtcy9zcmMvbGliL21hdGVyaWFsL2RhdGVwaWNrZXItZmllbGQvZGF0ZXBpY2tlci1maWVsZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLHVCQUF1QixFQUFvQixNQUFNLGVBQWUsQ0FBQztBQUU3RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUczRSxPQUFPLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxlQUFlLEVBQVUsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7Ozs7OztBQUU5RCxNQUFNLGFBQWEsR0FBbUM7SUFDcEQsU0FBUyxFQUFFLE9BQU87Q0FDbkIsQ0FBQTtBQUNELE1BQU0sb0JBQW9CLEdBQUcsa0JBQWtCLENBQXdCLG9CQUFvQixDQUFDLENBQUM7QUFRN0YsTUFBTSxPQUFPLHdCQUF5QixTQUFRLG9CQUFvQjtJQU5sRTs7UUFRRSxrQkFBYSxHQUFHLGFBQWEsQ0FBQztLQWdDL0I7SUF2QkMsUUFBUTtRQUNOLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxZQUFZLElBQUk7WUFDakQsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQztZQUN6QixDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLFlBQVksUUFBUTtnQkFDekMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7Z0JBQ2pDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDYixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsaUJBQWlCLElBQUksSUFBSSxDQUFBO1FBQ3ZELElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzlGLENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQixFQUFFO1lBQ2pDLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7U0FDaEY7SUFDSCxDQUFDOztxSEExQlUsd0JBQXdCO3lHQUF4Qix3QkFBd0Isc0ZDbkJyQyxtbkNBa0NBOzJGRGZhLHdCQUF3QjtrQkFOcEMsU0FBUzsrQkFDRSx5QkFBeUIsbUJBR2xCLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIEFmdGVyQ29udGVudEluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERhdGVwaWNrZXJGaWVsZENvbmZpZyB9IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyBjcmlzcHJDb250cm9sTWl4aW4sIENyaXNwckZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYWJzdHJhY3RzJztcbmltcG9ydCB7IE1hdENhbGVuZGFyQ2VsbENsYXNzRnVuY3Rpb24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kYXRlcGlja2VyJztcbmltcG9ydCB7IE1vbWVudCB9IGZyb20gJ21vbWVudCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ29tcG9uZW50UG9ydGFsLCBQb3J0YWwgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcblxuY29uc3QgZGVmYXVsdENvbmZpZzogUGFydGlhbDxEYXRlcGlja2VyRmllbGRDb25maWc+ID0ge1xuICBzdGFydFZpZXc6ICdtb250aCcsXG59XG5jb25zdCBEYXRlcGlja2VyRmllbGRNaXhpbiA9IGNyaXNwckNvbnRyb2xNaXhpbjxEYXRlcGlja2VyRmllbGRDb25maWc+KENyaXNwckZpZWxkQ29tcG9uZW50KTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY3Jpc3ByLWRhdGVwaWNrZXItZmllbGQnLFxuICB0ZW1wbGF0ZVVybDogJy4vZGF0ZXBpY2tlci1maWVsZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2RhdGVwaWNrZXItZmllbGQuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgRGF0ZXBpY2tlckZpZWxkQ29tcG9uZW50IGV4dGVuZHMgRGF0ZXBpY2tlckZpZWxkTWl4aW4gaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyQ29udGVudEluaXQge1xuXG4gIGRlZmF1bHRDb25maWcgPSBkZWZhdWx0Q29uZmlnO1xuXG4gIGRhdGVDbGFzczogTWF0Q2FsZW5kYXJDZWxsQ2xhc3NGdW5jdGlvbjxNb21lbnQ+O1xuICBkYXRlQ2xhc3MkOiBPYnNlcnZhYmxlPE1hdENhbGVuZGFyQ2VsbENsYXNzRnVuY3Rpb248TW9tZW50Pj47XG4gIHN0YXJ0QXQkOiBPYnNlcnZhYmxlPERhdGU+O1xuXG4gIC8qKiBBIHBvcnRhbCBjb250YWluaW5nIHRoZSBmb290ZXIgY29tcG9uZW50IHR5cGUgZm9yIHRoaXMgY2FsZW5kYXIuICovXG4gIGNhbGVuZGFyRm9vdGVyUG9ydGFsOiBQb3J0YWw8YW55PjtcblxuICBuZ09uSW5pdCgpIHtcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgIHRoaXMuc3RhcnRBdCQgPSB0aGlzLmNvbmZpZy5zdGFydEF0IGluc3RhbmNlb2YgRGF0ZVxuICAgICAgPyBvZih0aGlzLmNvbmZpZy5zdGFydEF0KVxuICAgICAgOiB0aGlzLmNvbmZpZy5zdGFydEF0IGluc3RhbmNlb2YgRnVuY3Rpb25cbiAgICAgID8gdGhpcy5jb25maWcuc3RhcnRBdCh0aGlzLmdyb3VwKVxuICAgICAgOiBvZihudWxsKTtcbiAgICB0aGlzLmRhdGVDbGFzcyA9IHRoaXMuY29uZmlnPy5jZWxsQ2xhc3NGdW5jdGlvbiB8fCBudWxsXG4gICAgdGhpcy5kYXRlQ2xhc3MkID0gdGhpcy5jb25maWcuZGF0ZUNsYXNzID8gdGhpcy5jb25maWc/LmRhdGVDbGFzcyh0aGlzLmdyb3VwKSA6IG9mKCgpID0+ICcnKTtcbiAgfVxuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICBpZiAodGhpcy5jb25maWcuZGF0ZXBpY2tlckFjdGlvbnMpIHtcbiAgICAgIHRoaXMuY2FsZW5kYXJGb290ZXJQb3J0YWwgPSBuZXcgQ29tcG9uZW50UG9ydGFsKHRoaXMuY29uZmlnLmRhdGVwaWNrZXJBY3Rpb25zKTtcbiAgICB9XG4gIH1cblxuICAvLyBoYW5kbGVTZWxlY3RlZENoYW5nZShldmVudCwgcGlja2VyOiBNYXREYXRlcGlja2VyPHVua25vd24+KSB7XG4gIC8vICAgY29uc29sZS5sb2coe2V2ZW50LCBwaWNrZXJ9KVxuICAvLyAgIGlmKHRoaXMuY29uZmlnLnNlbGVjdGVkQ2hhbmdlKSB7XG4gIC8vICAgICB0aGlzLmNvbmZpZy5zZWxlY3RlZENoYW5nZShldmVudCwgcGlja2VyKTtcbiAgLy8gICB9XG4gIC8vIH1cbn1cbiIsIjxjcmlzcHItZmllbGQtY29udGFpbmVyXG4gIFtjb25maWddPVwiY29uZmlnXCJcbiAgW2dyb3VwXT1cImdyb3VwXCI+XG4gIDxtYXQtZm9ybS1maWVsZFxuICAgIFtjb2xvcl09XCJjb25maWcuY29sb3JcIlxuICAgIFthcHBlYXJhbmNlXT1cImNvbmZpZy5hcHBlYXJhbmNlXCJcbiAgICBbZm9ybUdyb3VwXT1cImdyb3VwXCI+XG4gICAgPG1hdC1sYWJlbCAqbmdJZj1cImNvbmZpZy5sYWJlbFwiPlxuICAgICAge3tjb25maWcubGFiZWx9fVxuICAgIDwvbWF0LWxhYmVsPlxuICAgIDxpbnB1dFxuICAgICAgbWF0SW5wdXRcbiAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiY29uZmlnLmNvbnRyb2xOYW1lXCJcbiAgICAgIFttaW5dPVwiY29uZmlnLm1pblwiXG4gICAgICBbbWF4XT1cImNvbmZpZy5tYXhcIlxuICAgICAgW21hdERhdGVwaWNrZXJdPVwicGlja2VyXCJcbiAgICAgIFttYXREYXRlcGlja2VyRmlsdGVyXT1cImNvbmZpZy5kYXRlcGlja2VyRmlsdGVyXCI+XG4gICAgPG1hdC1kYXRlcGlja2VyLXRvZ2dsZSBtYXRTdWZmaXggW2Zvcl09XCJwaWNrZXJcIj48L21hdC1kYXRlcGlja2VyLXRvZ2dsZT5cbiAgICA8bWF0LWRhdGVwaWNrZXJcbiAgICAgIFt0b3VjaFVpXT1cImNvbmZpZy50b3VjaFVpXCJcbiAgICAgIFtzdGFydFZpZXddPVwiY29uZmlnLnN0YXJ0Vmlld1wiXG4gICAgICBbc3RhcnRBdF09XCJzdGFydEF0JCB8IGFzeW5jXCJcbiAgICAgIFtkYXRlQ2xhc3NdPVwiZGF0ZUNsYXNzIHx8IChkYXRlQ2xhc3MkIHwgYXN5bmMpXCJcbiAgICAgICNwaWNrZXI+XG4gICAgICA8bWF0LWRhdGVwaWNrZXItYWN0aW9ucyAqbmdJZj1cImNhbGVuZGFyRm9vdGVyUG9ydGFsXCI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBbY2RrUG9ydGFsT3V0bGV0XT1cImNhbGVuZGFyRm9vdGVyUG9ydGFsXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwvbWF0LWRhdGVwaWNrZXItYWN0aW9ucz5cbiAgICA8L21hdC1kYXRlcGlja2VyPlxuXG4gICAgPG1hdC1oaW50ICpuZ0lmPVwiY29uZmlnLmhpbnQgJiYgKGNvbnRyb2wudmFsaWQgfHwgIWNvbnRyb2wudG91Y2hlZClcIj57e2NvbmZpZy5oaW50fX08L21hdC1oaW50PlxuXG4gIDwvbWF0LWZvcm0tZmllbGQ+XG48L2NyaXNwci1maWVsZC1jb250YWluZXI+XG5cbiJdfQ==
@@ -1,22 +0,0 @@
1
- import { Component } from '@angular/core';
2
- import { CrisprFieldComponent } from '../../abstracts';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "@angular/material/divider";
5
- import * as i2 from "@angular/common";
6
- export class DividerComponent extends CrisprFieldComponent {
7
- constructor() {
8
- super(...arguments);
9
- // TODO: pull in type after configs are better organized
10
- this.defaultConfig = {};
11
- }
12
- ngOnInit() {
13
- super.ngOnInit();
14
- }
15
- }
16
- DividerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: DividerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
17
- DividerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.1", type: DividerComponent, selector: "crispr-divider", usesInheritance: true, ngImport: i0, template: "<mat-divider [ngClass]=\"config.classes\"></mat-divider>", styles: [":host{display:block;padding:1em 0}::ng-deep .mat-divider.mat-divider-horizontal{position:relative}\n"], components: [{ type: i1.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }], directives: [{ type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], preserveWhitespaces: true });
18
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: DividerComponent, decorators: [{
19
- type: Component,
20
- args: [{ selector: 'crispr-divider', template: "<mat-divider [ngClass]=\"config.classes\"></mat-divider>", styles: [":host{display:block;padding:1em 0}::ng-deep .mat-divider.mat-divider-horizontal{position:relative}\n"] }]
21
- }] });
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGl2aWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NyaXNwci1mb3Jtcy9zcmMvbGliL21hdGVyaWFsL2RpdmlkZXIvZGl2aWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NyaXNwci1mb3Jtcy9zcmMvbGliL21hdGVyaWFsL2RpdmlkZXIvZGl2aWRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBRWxELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7O0FBT3ZELE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxvQkFBbUM7SUFMekU7O1FBTUUsd0RBQXdEO1FBQ3hELGtCQUFhLEdBQUcsRUFBRSxDQUFDO0tBS3BCO0lBSkMsUUFBUTtRQUNOLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNuQixDQUFDOzs2R0FMVSxnQkFBZ0I7aUdBQWhCLGdCQUFnQiw2RUNUN0IsMERBQXNEOzJGRFN6QyxnQkFBZ0I7a0JBTDVCLFNBQVM7K0JBQ0UsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERpdmlkZXJDb25maWcgfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgQ3Jpc3ByRmllbGRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hYnN0cmFjdHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjcmlzcHItZGl2aWRlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9kaXZpZGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZGl2aWRlci5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIERpdmlkZXJDb21wb25lbnQgZXh0ZW5kcyBDcmlzcHJGaWVsZENvbXBvbmVudDxEaXZpZGVyQ29uZmlnPiBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIC8vIFRPRE86IHB1bGwgaW4gdHlwZSBhZnRlciBjb25maWdzIGFyZSBiZXR0ZXIgb3JnYW5pemVkXG4gIGRlZmF1bHRDb25maWcgPSB7fTtcbiAgbmdPbkluaXQoKSB7XG4gICAgc3VwZXIubmdPbkluaXQoKTtcbiAgfVxuXG59XG4iLCI8bWF0LWRpdmlkZXIgW25nQ2xhc3NdPVwiY29uZmlnLmNsYXNzZXNcIj48L21hdC1kaXZpZGVyPiJdfQ==
@@ -1,39 +0,0 @@
1
- import { Directive, HostListener, Output, EventEmitter, Input } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class FileDropzoneDirective {
4
- constructor() {
5
- this.fileDrop = new EventEmitter();
6
- this.crisprFileDropzone = true;
7
- }
8
- onDrop($event) {
9
- if (this.crisprFileDropzone) {
10
- $event.preventDefault();
11
- this.fileDrop.emit($event.dataTransfer.files);
12
- }
13
- }
14
- // Prevents DOM from trying to open file in browser
15
- onDragOver($event) {
16
- if (this.crisprFileDropzone) {
17
- $event.preventDefault();
18
- }
19
- }
20
- }
21
- FileDropzoneDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: FileDropzoneDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
22
- FileDropzoneDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.1", type: FileDropzoneDirective, selector: "[crisprFileDropzone]", inputs: { crisprFileDropzone: "crisprFileDropzone" }, outputs: { fileDrop: "fileDrop" }, host: { listeners: { "drop": "onDrop($event)", "dragover": "onDragOver($event)" } }, ngImport: i0 });
23
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: FileDropzoneDirective, decorators: [{
24
- type: Directive,
25
- args: [{
26
- selector: '[crisprFileDropzone]'
27
- }]
28
- }], propDecorators: { fileDrop: [{
29
- type: Output
30
- }], crisprFileDropzone: [{
31
- type: Input
32
- }], onDrop: [{
33
- type: HostListener,
34
- args: ['drop', ['$event']]
35
- }], onDragOver: [{
36
- type: HostListener,
37
- args: ['dragover', ['$event']]
38
- }] } });
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1kcm9wem9uZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NyaXNwci1mb3Jtcy9zcmMvbGliL21hdGVyaWFsL2ZpbGUtdXBsb2FkL2ZpbGUtZHJvcHpvbmUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUtyRixNQUFNLE9BQU8scUJBQXFCO0lBSGxDO1FBS1ksYUFBUSxHQUFJLElBQUksWUFBWSxFQUFZLENBQUM7UUFFMUMsdUJBQWtCLEdBQUcsSUFBSSxDQUFDO0tBaUJwQztJQWRDLE1BQU0sQ0FBQyxNQUFpQjtRQUN0QixJQUFHLElBQUksQ0FBQyxrQkFBa0IsRUFBRTtZQUMxQixNQUFNLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDeEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUMvQztJQUNILENBQUM7SUFFRCxtREFBbUQ7SUFFbkQsVUFBVSxDQUFDLE1BQWlCO1FBQzFCLElBQUcsSUFBSSxDQUFDLGtCQUFrQixFQUFFO1lBQzFCLE1BQU0sQ0FBQyxjQUFjLEVBQUUsQ0FBQztTQUN6QjtJQUNILENBQUM7O2tIQXBCVSxxQkFBcUI7c0dBQXJCLHFCQUFxQjsyRkFBckIscUJBQXFCO2tCQUhqQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxzQkFBc0I7aUJBQ2pDOzhCQUdXLFFBQVE7c0JBQWpCLE1BQU07Z0JBRUUsa0JBQWtCO3NCQUExQixLQUFLO2dCQUdOLE1BQU07c0JBREwsWUFBWTt1QkFBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBVWhDLFVBQVU7c0JBRFQsWUFBWTt1QkFBQyxVQUFVLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEhvc3RMaXN0ZW5lciwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1tjcmlzcHJGaWxlRHJvcHpvbmVdJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgRmlsZURyb3B6b25lRGlyZWN0aXZlIHtcclxuXHJcbiAgQE91dHB1dCgpIGZpbGVEcm9wID0gIG5ldyBFdmVudEVtaXR0ZXI8RmlsZUxpc3Q+KCk7XHJcblxyXG4gIEBJbnB1dCgpIGNyaXNwckZpbGVEcm9wem9uZSA9IHRydWU7XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ2Ryb3AnLCBbJyRldmVudCddKVxyXG4gIG9uRHJvcCgkZXZlbnQ6IERyYWdFdmVudCkge1xyXG4gICAgaWYodGhpcy5jcmlzcHJGaWxlRHJvcHpvbmUpIHtcclxuICAgICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgIHRoaXMuZmlsZURyb3AuZW1pdCgkZXZlbnQuZGF0YVRyYW5zZmVyLmZpbGVzKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIFByZXZlbnRzIERPTSBmcm9tIHRyeWluZyB0byBvcGVuIGZpbGUgaW4gYnJvd3NlclxyXG4gIEBIb3N0TGlzdGVuZXIoJ2RyYWdvdmVyJywgWyckZXZlbnQnXSlcclxuICBvbkRyYWdPdmVyKCRldmVudDogRHJhZ0V2ZW50KSB7XHJcbiAgICBpZih0aGlzLmNyaXNwckZpbGVEcm9wem9uZSkge1xyXG4gICAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
@@ -1,145 +0,0 @@
1
- import { CommonModule } from '@angular/common';
2
- import { Component, ElementRef, ViewChild, ChangeDetectionStrategy, Optional, Self, NgModule } from '@angular/core';
3
- import { NgControl, ReactiveFormsModule } from '@angular/forms';
4
- import { MatButtonModule } from '@angular/material/button';
5
- import { MatFormFieldModule } from '@angular/material/form-field';
6
- import { MatIconModule } from '@angular/material/icon';
7
- import { MatInputModule } from '@angular/material/input';
8
- import { FormValidationHandlerModule } from '@tft/form-validation-handler';
9
- import { of } from 'rxjs';
10
- import { crisprControlMixin, CrisprFieldComponent } from '../../abstracts';
11
- import { FieldContainerModule } from '../../field-container/field-container.component';
12
- import { SelectedFileModule } from '../selected-file/selected-file.component';
13
- import { FileDropzoneDirective } from './file-dropzone.directive';
14
- import * as i0 from "@angular/core";
15
- import * as i1 from "@angular/forms";
16
- import * as i2 from "../../field-container/field-container.component";
17
- import * as i3 from "@angular/material/form-field";
18
- import * as i4 from "@angular/material/icon";
19
- import * as i5 from "@angular/material/button";
20
- import * as i6 from "../selected-file/selected-file.component";
21
- import * as i7 from "@tft/form-validation-handler";
22
- import * as i8 from "@angular/material/input";
23
- import * as i9 from "@angular/common";
24
- const FileUploadFieldMixin = crisprControlMixin(CrisprFieldComponent);
25
- export class FileUploadFieldComponent extends FileUploadFieldMixin {
26
- // ngControl: NgControl = null;
27
- constructor(ngControl) {
28
- super();
29
- this.ngControl = ngControl;
30
- this.defaultConfig = {
31
- allowMultipleFiles: false,
32
- acceptedTypes: '*.*',
33
- dropZoneText: 'DROP FILE HERE',
34
- selectFilesButtonType: 'button',
35
- selectButtonText: 'SELECT',
36
- showClearFilesButton: true,
37
- clearFilesButtonText: 'CLEAR',
38
- uploadButtonText: 'UPLOAD',
39
- uploadButtonType: 'button',
40
- showUploadProgress: false,
41
- disableOnUpload: true
42
- };
43
- this.isUploaded = false;
44
- this.fileProgress = [];
45
- if (this.ngControl != null) {
46
- // Setting the value accessor directly (instead of using
47
- // the providers) to avoid running into a circular import.
48
- ngControl.valueAccessor = this;
49
- }
50
- }
51
- ngOnInit() {
52
- super.ngOnInit();
53
- this.disabled$ = this.config.disabledCallback
54
- ? this.config.disabledCallback(this.group, this.config)
55
- : of(false);
56
- }
57
- filesChanged(files) {
58
- if (files && files.length > 0) {
59
- this.selectedFiles = files;
60
- this.control.patchValue(files);
61
- }
62
- }
63
- uploadFiles() {
64
- if (this.selectedFiles && this.config.uploadFiles) {
65
- this.isUploaded = true;
66
- this.config.uploadFiles(this.group, this.selectedFiles, this);
67
- }
68
- }
69
- resetFileInput() {
70
- this.fileInputRef.nativeElement.value = '';
71
- this.control.patchValue(null);
72
- this.isUploaded = false;
73
- }
74
- writeValue(value) {
75
- // clear file input
76
- // this.host.nativeElement.value = '';
77
- // this.file = null;
78
- }
79
- registerOnChange(fn) {
80
- this.onChange = fn;
81
- }
82
- registerOnTouched(fn) {
83
- }
84
- }
85
- FileUploadFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: FileUploadFieldComponent, deps: [{ token: i1.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component });
86
- FileUploadFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.1", type: FileUploadFieldComponent, selector: "crispr-file-upload-field", viewQueries: [{ propertyName: "fileInputRef", first: true, predicate: ["fileInput"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<crispr-field-container\n [config]=\"config\"\n [group]=\"group\">\n <mat-form-field floatLabel=\"always\"\n [color]=\"config.color\"\n appearance=\"outline\"\n [crisprFileDropzone]=\"!(disabled$ | async) && !(config.disableOnUpload && isUploaded)\"\n [formGroup]=\"group\"\n (fileDrop)=\"filesChanged($event)\">\n\n <input [formControlName]=\"config.controlName\" matInput type=\"text\"/>\n <input\n #fileInput\n type=\"file\"\n style=\"display: none\"\n [accept]=\"config.acceptedTypes\"\n [multiple]=\"config.allowMultipleFiles\"\n (change)=\"filesChanged($event.target.files)\"/>\n <mat-label>{{config.label}}</mat-label>\n\n <div *ngIf=\"!(selectedFiles?.length > 0); else selectedFileList\" class=\"drop-info\">\n <mat-icon class=\"drop-icon\" inline=\"true\">cloud_upload</mat-icon>\n <h2 class=\"mat-h2\">{{config.dropZoneText}}</h2>\n or\n <button\n mat-raised-button\n type=\"button\"\n color=\"primary\"\n [disabled]=\"(disabled$ | async) || config.disableOnUpload && isUploaded\"\n (click)=\"fileInput.click()\"\n [attr.aria-label]=\"config.controlName\">\n {{config.selectButtonText}}\n </button>\n </div>\n <ng-template #selectedFileList>\n <div class=\"selected-files-container\">\n <div class=\"selected-files-list\">\n <crispr-selected-file\n *ngFor=\"let file of selectedFiles; let i = index;\"\n [color]=\"config.color === 'primary' ? 'accent' : 'primary'\"\n [fileName]=\"file.name\"\n [showProgress]=\"config.showUploadProgress\"\n [progress]=\"fileProgress && (fileProgress[i] | async)\">\n </crispr-selected-file>\n </div>\n\n </div>\n </ng-template>\n <mat-hint *ngIf=\"config.hint && (control.valid || !control.touched)\">{{config.hint}}</mat-hint>\n </mat-form-field>\n <div class=\"button-container\" *ngIf=\"selectedFiles?.length > 0\">\n\n <button\n mat-button\n (click)=\"resetFileInput()\"\n type=\"button\"\n [disabled]=\"(disabled$ | async) || (config.disableOnUpload && isUploaded)\"\n aria-label=\"Remove Selected File(s)\">\n {{config.clearFilesButtonText}}\n <mat-icon>delete</mat-icon>\n </button>\n\n <button\n *ngIf=\"!!config.uploadFiles\"\n mat-raised-button\n type=\"button\"\n color=\"accent\"\n class=\"file-input-button\"\n [disabled]=\"(disabled$ | async) || (config.disableOnUpload && isUploaded)\"\n (click)=\"uploadFiles()\"\n [attr.aria-label]=\"config.uploadButtonText\">\n {{ config.uploadButtonText }}\n </button>\n\n </div>\n</crispr-field-container>\n", styles: [":host ::ng-deep .mat-form-field .mat-form-field-infix{padding-top:0;display:flex;justify-content:center}:host .drop-info{display:flex;flex-direction:column;align-items:center}:host .drop-info .drop-icon{font-size:36px}:host .drop-info .mat-h2{margin:0}:host .button-container{display:flex;justify-content:flex-end;margin-top:-16px}:host .button-container button{margin-left:8px}:host .selected-files-container{width:100%}:host [matInput]{position:absolute;max-height:0;visibility:hidden}\n"], components: [{ type: i0.forwardRef(function () { return i2.FieldContainerComponent; }), selector: "crispr-field-container", inputs: ["config", "group", "inlineField"] }, { type: i0.forwardRef(function () { return i3.MatFormField; }), selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i0.forwardRef(function () { return i4.MatIcon; }), selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i0.forwardRef(function () { return i5.MatButton; }), selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i0.forwardRef(function () { return i6.SelectedFileComponent; }), selector: "crispr-selected-file", inputs: ["fileName", "progress", "showProgress", "color"] }], directives: [{ type: i0.forwardRef(function () { return FileDropzoneDirective; }), selector: "[crisprFileDropzone]", inputs: ["crisprFileDropzone"], outputs: ["fileDrop"] }, { type: i0.forwardRef(function () { return i1.NgControlStatusGroup; }), selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i0.forwardRef(function () { return i1.FormGroupDirective; }), selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i0.forwardRef(function () { return i7.ControlErrorContainerDirective; }), selector: "[controlErrorContainer], [formGroup]" }, { type: i0.forwardRef(function () { return i8.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"] }, { type: i0.forwardRef(function () { return i1.DefaultValueAccessor; }), selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i0.forwardRef(function () { return i1.NgControlStatus; }), selector: "[formControlName],[ngModel],[formControl]" }, { type: i0.forwardRef(function () { return i1.FormControlName; }), selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { type: i0.forwardRef(function () { return i7.ControlErrorsDirective; }), selector: "[formControl], [formControlName]" }, { type: i0.forwardRef(function () { return i3.MatLabel; }), selector: "mat-label" }, { type: i0.forwardRef(function () { return i9.NgIf; }), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i0.forwardRef(function () { return i9.NgForOf; }), selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i0.forwardRef(function () { return i3.MatHint; }), selector: "mat-hint", inputs: ["align", "id"] }], pipes: { "async": i0.forwardRef(function () { return i9.AsyncPipe; }) }, changeDetection: i0.ChangeDetectionStrategy.OnPush, preserveWhitespaces: true });
87
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: FileUploadFieldComponent, decorators: [{
88
- type: Component,
89
- args: [{ selector: 'crispr-file-upload-field', changeDetection: ChangeDetectionStrategy.OnPush, template: "<crispr-field-container\n [config]=\"config\"\n [group]=\"group\">\n <mat-form-field floatLabel=\"always\"\n [color]=\"config.color\"\n appearance=\"outline\"\n [crisprFileDropzone]=\"!(disabled$ | async) && !(config.disableOnUpload && isUploaded)\"\n [formGroup]=\"group\"\n (fileDrop)=\"filesChanged($event)\">\n\n <input [formControlName]=\"config.controlName\" matInput type=\"text\"/>\n <input\n #fileInput\n type=\"file\"\n style=\"display: none\"\n [accept]=\"config.acceptedTypes\"\n [multiple]=\"config.allowMultipleFiles\"\n (change)=\"filesChanged($event.target.files)\"/>\n <mat-label>{{config.label}}</mat-label>\n\n <div *ngIf=\"!(selectedFiles?.length > 0); else selectedFileList\" class=\"drop-info\">\n <mat-icon class=\"drop-icon\" inline=\"true\">cloud_upload</mat-icon>\n <h2 class=\"mat-h2\">{{config.dropZoneText}}</h2>\n or\n <button\n mat-raised-button\n type=\"button\"\n color=\"primary\"\n [disabled]=\"(disabled$ | async) || config.disableOnUpload && isUploaded\"\n (click)=\"fileInput.click()\"\n [attr.aria-label]=\"config.controlName\">\n {{config.selectButtonText}}\n </button>\n </div>\n <ng-template #selectedFileList>\n <div class=\"selected-files-container\">\n <div class=\"selected-files-list\">\n <crispr-selected-file\n *ngFor=\"let file of selectedFiles; let i = index;\"\n [color]=\"config.color === 'primary' ? 'accent' : 'primary'\"\n [fileName]=\"file.name\"\n [showProgress]=\"config.showUploadProgress\"\n [progress]=\"fileProgress && (fileProgress[i] | async)\">\n </crispr-selected-file>\n </div>\n\n </div>\n </ng-template>\n <mat-hint *ngIf=\"config.hint && (control.valid || !control.touched)\">{{config.hint}}</mat-hint>\n </mat-form-field>\n <div class=\"button-container\" *ngIf=\"selectedFiles?.length > 0\">\n\n <button\n mat-button\n (click)=\"resetFileInput()\"\n type=\"button\"\n [disabled]=\"(disabled$ | async) || (config.disableOnUpload && isUploaded)\"\n aria-label=\"Remove Selected File(s)\">\n {{config.clearFilesButtonText}}\n <mat-icon>delete</mat-icon>\n </button>\n\n <button\n *ngIf=\"!!config.uploadFiles\"\n mat-raised-button\n type=\"button\"\n color=\"accent\"\n class=\"file-input-button\"\n [disabled]=\"(disabled$ | async) || (config.disableOnUpload && isUploaded)\"\n (click)=\"uploadFiles()\"\n [attr.aria-label]=\"config.uploadButtonText\">\n {{ config.uploadButtonText }}\n </button>\n\n </div>\n</crispr-field-container>\n", styles: [":host ::ng-deep .mat-form-field .mat-form-field-infix{padding-top:0;display:flex;justify-content:center}:host .drop-info{display:flex;flex-direction:column;align-items:center}:host .drop-info .drop-icon{font-size:36px}:host .drop-info .mat-h2{margin:0}:host .button-container{display:flex;justify-content:flex-end;margin-top:-16px}:host .button-container button{margin-left:8px}:host .selected-files-container{width:100%}:host [matInput]{position:absolute;max-height:0;visibility:hidden}\n"] }]
90
- }], ctorParameters: function () { return [{ type: i1.NgControl, decorators: [{
91
- type: Optional
92
- }, {
93
- type: Self
94
- }] }]; }, propDecorators: { fileInputRef: [{
95
- type: ViewChild,
96
- args: ['fileInput']
97
- }] } });
98
- export class FileUploadFieldModule {
99
- }
100
- FileUploadFieldModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: FileUploadFieldModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
101
- FileUploadFieldModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: FileUploadFieldModule, declarations: [FileUploadFieldComponent, FileDropzoneDirective], imports: [CommonModule,
102
- FieldContainerModule,
103
- ReactiveFormsModule,
104
- MatIconModule,
105
- MatButtonModule,
106
- MatFormFieldModule,
107
- MatInputModule,
108
- SelectedFileModule,
109
- FormValidationHandlerModule], exports: [FileUploadFieldComponent, FileDropzoneDirective] });
110
- FileUploadFieldModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: FileUploadFieldModule, imports: [[
111
- CommonModule,
112
- FieldContainerModule,
113
- ReactiveFormsModule,
114
- MatIconModule,
115
- MatButtonModule,
116
- MatFormFieldModule,
117
- MatInputModule,
118
- SelectedFileModule,
119
- FormValidationHandlerModule,
120
- ]] });
121
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: FileUploadFieldModule, decorators: [{
122
- type: NgModule,
123
- args: [{
124
- imports: [
125
- CommonModule,
126
- FieldContainerModule,
127
- ReactiveFormsModule,
128
- MatIconModule,
129
- MatButtonModule,
130
- MatFormFieldModule,
131
- MatInputModule,
132
- SelectedFileModule,
133
- FormValidationHandlerModule,
134
- ],
135
- exports: [
136
- FileUploadFieldComponent,
137
- FileDropzoneDirective
138
- ],
139
- declarations: [
140
- FileUploadFieldComponent,
141
- FileDropzoneDirective
142
- ]
143
- }]
144
- }] });
145
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jcmlzcHItZm9ybXMvc3JjL2xpYi9tYXRlcmlhbC9maWxlLXVwbG9hZC9maWxlLXVwbG9hZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NyaXNwci1mb3Jtcy9zcmMvbGliL21hdGVyaWFsL2ZpbGUtdXBsb2FkL2ZpbGUtdXBsb2FkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0wsU0FBUyxFQUNULFVBQVUsRUFDVixTQUFTLEVBRVQsdUJBQXVCLEVBQ3ZCLFFBQVEsRUFDUixJQUFJLEVBQ0osUUFBUSxFQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsU0FBUyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDM0UsT0FBTyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUV2RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUM5RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7Ozs7Ozs7QUFFbEUsTUFBTSxvQkFBb0IsR0FBRyxrQkFBa0IsQ0FBd0Isb0JBQW9CLENBQUMsQ0FBQztBQVE3RixNQUFNLE9BQU8sd0JBQXlCLFNBQVEsb0JBQW9CO0lBMkJoRSwrQkFBK0I7SUFDL0IsWUFDNkIsU0FBb0I7UUFFL0MsS0FBSyxFQUFFLENBQUM7UUFGbUIsY0FBUyxHQUFULFNBQVMsQ0FBVztRQXpCakQsa0JBQWEsR0FBbUM7WUFDOUMsa0JBQWtCLEVBQUUsS0FBSztZQUN6QixhQUFhLEVBQUUsS0FBSztZQUNwQixZQUFZLEVBQUUsZ0JBQWdCO1lBQzlCLHFCQUFxQixFQUFFLFFBQVE7WUFDL0IsZ0JBQWdCLEVBQUUsUUFBUTtZQUMxQixvQkFBb0IsRUFBRSxJQUFJO1lBQzFCLG9CQUFvQixFQUFFLE9BQU87WUFDN0IsZ0JBQWdCLEVBQUUsUUFBUTtZQUMxQixnQkFBZ0IsRUFBRSxRQUFRO1lBQzFCLGtCQUFrQixFQUFFLEtBQUs7WUFDekIsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQTtRQU1ELGVBQVUsR0FBRyxLQUFLLENBQUM7UUFFbkIsaUJBQVksR0FBeUIsRUFBRSxDQUFDO1FBUXRDLElBQUksSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLEVBQUU7WUFDMUIsd0RBQXdEO1lBQ3hELDBEQUEwRDtZQUMxRCxTQUFTLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztTQUNoQztJQUNILENBQUM7SUFFRCxRQUFRO1FBQ04sS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0I7WUFDN0MsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDO1lBQ3ZELENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDZCxDQUFDO0lBR0QsWUFBWSxDQUFDLEtBQWU7UUFDMUIsSUFBSSxLQUFLLElBQUksS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUc7WUFDOUIsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUE7WUFDMUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDaEM7SUFDSCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUcsSUFBSSxDQUFDLGFBQWEsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRTtZQUNoRCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztZQUN2QixJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLENBQUM7U0FDL0Q7SUFDSCxDQUFDO0lBRUQsY0FBYztRQUNaLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUE7UUFDMUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDOUIsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7SUFDMUIsQ0FBQztJQUVELFVBQVUsQ0FBRSxLQUFXO1FBQ3JCLG1CQUFtQjtRQUNuQixzQ0FBc0M7UUFDdEMsb0JBQW9CO0lBQ3RCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBRSxFQUFjO1FBQzlCLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxpQkFBaUIsQ0FBRSxFQUFjO0lBQ2pDLENBQUM7O3FIQTlFVSx3QkFBd0I7eUdBQXhCLHdCQUF3QixrTUNoQ3JDLDRyRkE0RUEseWtERHNESSxxQkFBcUI7MkZBbEdaLHdCQUF3QjtrQkFOcEMsU0FBUzsrQkFDRSwwQkFBMEIsbUJBR25CLHVCQUF1QixDQUFDLE1BQU07OzBCQStCNUMsUUFBUTs7MEJBQUksSUFBSTs0Q0FYSyxZQUFZO3NCQUFuQyxTQUFTO3VCQUFDLFdBQVc7O0FBbUZ4QixNQUFNLE9BQU8scUJBQXFCOztrSEFBckIscUJBQXFCO21IQUFyQixxQkFBcUIsaUJBckdyQix3QkFBd0IsRUFrR2pDLHFCQUFxQixhQWhCckIsWUFBWTtRQUNaLG9CQUFvQjtRQUNwQixtQkFBbUI7UUFDbkIsYUFBYTtRQUNiLGVBQWU7UUFDZixrQkFBa0I7UUFDbEIsY0FBYztRQUNkLGtCQUFrQjtRQUNsQiwyQkFBMkIsYUExRmxCLHdCQUF3QixFQThGakMscUJBQXFCO21IQU9aLHFCQUFxQixZQXBCdkI7WUFDUCxZQUFZO1lBQ1osb0JBQW9CO1lBQ3BCLG1CQUFtQjtZQUNuQixhQUFhO1lBQ2IsZUFBZTtZQUNmLGtCQUFrQjtZQUNsQixjQUFjO1lBQ2Qsa0JBQWtCO1lBQ2xCLDJCQUEyQjtTQUM1QjsyRkFVVSxxQkFBcUI7a0JBckJqQyxRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLG9CQUFvQjt3QkFDcEIsbUJBQW1CO3dCQUNuQixhQUFhO3dCQUNiLGVBQWU7d0JBQ2Ysa0JBQWtCO3dCQUNsQixjQUFjO3dCQUNkLGtCQUFrQjt3QkFDbEIsMkJBQTJCO3FCQUM1QjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1Asd0JBQXdCO3dCQUN4QixxQkFBcUI7cUJBQ3RCO29CQUNELFlBQVksRUFBRTt3QkFDWix3QkFBd0I7d0JBQ3hCLHFCQUFxQjtxQkFDdEI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBWaWV3Q2hpbGQsXG4gIE9uSW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIE9wdGlvbmFsLFxuICBTZWxmLFxuICBOZ01vZHVsZVxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOZ0NvbnRyb2wsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcbmltcG9ydCB7IEZvcm1WYWxpZGF0aW9uSGFuZGxlck1vZHVsZSB9IGZyb20gJ0B0ZnQvZm9ybS12YWxpZGF0aW9uLWhhbmRsZXInO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNyaXNwckNvbnRyb2xNaXhpbiwgQ3Jpc3ByRmllbGRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hYnN0cmFjdHMnO1xuaW1wb3J0IHsgRmllbGRDb250YWluZXJNb2R1bGUgfSBmcm9tICcuLi8uLi9maWVsZC1jb250YWluZXIvZmllbGQtY29udGFpbmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgdHlwZSB7IEZpbGVVcGxvYWRGaWVsZENvbmZpZyB9IGZyb20gJy4uLy4uL21vZGVscy9maWxlLXVwbG9hZC1maWVsZC5jb25maWcnO1xuaW1wb3J0IHsgU2VsZWN0ZWRGaWxlTW9kdWxlIH0gZnJvbSAnLi4vc2VsZWN0ZWQtZmlsZS9zZWxlY3RlZC1maWxlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGaWxlRHJvcHpvbmVEaXJlY3RpdmUgfSBmcm9tICcuL2ZpbGUtZHJvcHpvbmUuZGlyZWN0aXZlJztcblxuY29uc3QgRmlsZVVwbG9hZEZpZWxkTWl4aW4gPSBjcmlzcHJDb250cm9sTWl4aW48RmlsZVVwbG9hZEZpZWxkQ29uZmlnPihDcmlzcHJGaWVsZENvbXBvbmVudCk7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NyaXNwci1maWxlLXVwbG9hZC1maWVsZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9maWxlLXVwbG9hZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2ZpbGUtdXBsb2FkLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBGaWxlVXBsb2FkRmllbGRDb21wb25lbnQgZXh0ZW5kcyBGaWxlVXBsb2FkRmllbGRNaXhpbiBpbXBsZW1lbnRzIE9uSW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuXG4gIG9uQ2hhbmdlOiAoKSA9PiB2b2lkO1xuXG4gIGRlZmF1bHRDb25maWc6IFBhcnRpYWw8RmlsZVVwbG9hZEZpZWxkQ29uZmlnPiA9IHtcbiAgICBhbGxvd011bHRpcGxlRmlsZXM6IGZhbHNlLFxuICAgIGFjY2VwdGVkVHlwZXM6ICcqLionLFxuICAgIGRyb3Bab25lVGV4dDogJ0RST1AgRklMRSBIRVJFJyxcbiAgICBzZWxlY3RGaWxlc0J1dHRvblR5cGU6ICdidXR0b24nLFxuICAgIHNlbGVjdEJ1dHRvblRleHQ6ICdTRUxFQ1QnLFxuICAgIHNob3dDbGVhckZpbGVzQnV0dG9uOiB0cnVlLFxuICAgIGNsZWFyRmlsZXNCdXR0b25UZXh0OiAnQ0xFQVInLFxuICAgIHVwbG9hZEJ1dHRvblRleHQ6ICdVUExPQUQnLFxuICAgIHVwbG9hZEJ1dHRvblR5cGU6ICdidXR0b24nLFxuICAgIHNob3dVcGxvYWRQcm9ncmVzczogZmFsc2UsXG4gICAgZGlzYWJsZU9uVXBsb2FkOiB0cnVlXG4gIH1cblxuICBAVmlld0NoaWxkKCdmaWxlSW5wdXQnKSBmaWxlSW5wdXRSZWY6IEVsZW1lbnRSZWZcblxuICBzZWxlY3RlZEZpbGVzOiBGaWxlTGlzdDtcblxuICBpc1VwbG9hZGVkID0gZmFsc2U7XG5cbiAgZmlsZVByb2dyZXNzOiBPYnNlcnZhYmxlPG51bWJlcj5bXSA9IFtdO1xuICBkaXNhYmxlZCQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG5cbiAgLy8gbmdDb250cm9sOiBOZ0NvbnRyb2wgPSBudWxsO1xuICBjb25zdHJ1Y3RvcihcbiAgICBAT3B0aW9uYWwoKSBAU2VsZigpIHB1YmxpYyBuZ0NvbnRyb2w6IE5nQ29udHJvbCxcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgICBpZiAodGhpcy5uZ0NvbnRyb2wgIT0gbnVsbCkge1xuICAgICAgLy8gU2V0dGluZyB0aGUgdmFsdWUgYWNjZXNzb3IgZGlyZWN0bHkgKGluc3RlYWQgb2YgdXNpbmdcbiAgICAgIC8vIHRoZSBwcm92aWRlcnMpIHRvIGF2b2lkIHJ1bm5pbmcgaW50byBhIGNpcmN1bGFyIGltcG9ydC5cbiAgICAgIG5nQ29udHJvbC52YWx1ZUFjY2Vzc29yID0gdGhpcztcbiAgICB9XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgIHRoaXMuZGlzYWJsZWQkID0gdGhpcy5jb25maWcuZGlzYWJsZWRDYWxsYmFja1xuICAgID8gdGhpcy5jb25maWcuZGlzYWJsZWRDYWxsYmFjayh0aGlzLmdyb3VwLCB0aGlzLmNvbmZpZylcbiAgICA6IG9mKGZhbHNlKTtcbiAgfVxuXG5cbiAgZmlsZXNDaGFuZ2VkKGZpbGVzOiBGaWxlTGlzdCk6IHZvaWQge1xuICAgIGlmIChmaWxlcyAmJiBmaWxlcy5sZW5ndGggPiAwICkge1xuICAgICAgdGhpcy5zZWxlY3RlZEZpbGVzID0gZmlsZXNcbiAgICAgIHRoaXMuY29udHJvbC5wYXRjaFZhbHVlKGZpbGVzKTtcbiAgICB9XG4gIH1cblxuICB1cGxvYWRGaWxlcygpIHtcbiAgICBpZih0aGlzLnNlbGVjdGVkRmlsZXMgJiYgdGhpcy5jb25maWcudXBsb2FkRmlsZXMpIHtcbiAgICAgIHRoaXMuaXNVcGxvYWRlZCA9IHRydWU7XG4gICAgICB0aGlzLmNvbmZpZy51cGxvYWRGaWxlcyh0aGlzLmdyb3VwLCB0aGlzLnNlbGVjdGVkRmlsZXMsIHRoaXMpO1xuICAgIH1cbiAgfVxuXG4gIHJlc2V0RmlsZUlucHV0KCk6IHZvaWQge1xuICAgIHRoaXMuZmlsZUlucHV0UmVmLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJ1xuICAgIHRoaXMuY29udHJvbC5wYXRjaFZhbHVlKG51bGwpO1xuICAgIHRoaXMuaXNVcGxvYWRlZCA9IGZhbHNlO1xuICB9XG5cbiAgd3JpdGVWYWx1ZSggdmFsdWU6IG51bGwgKSB7XG4gICAgLy8gY2xlYXIgZmlsZSBpbnB1dFxuICAgIC8vIHRoaXMuaG9zdC5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XG4gICAgLy8gdGhpcy5maWxlID0gbnVsbDtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoIGZuOiAoKSA9PiB2b2lkICkge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKCBmbjogKCkgPT4gdm9pZCApIHtcbiAgfVxufVxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBGaWVsZENvbnRhaW5lck1vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIE1hdEljb25Nb2R1bGUsXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcbiAgICBNYXRJbnB1dE1vZHVsZSxcbiAgICBTZWxlY3RlZEZpbGVNb2R1bGUsXG4gICAgRm9ybVZhbGlkYXRpb25IYW5kbGVyTW9kdWxlLFxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgRmlsZVVwbG9hZEZpZWxkQ29tcG9uZW50LFxuICAgIEZpbGVEcm9wem9uZURpcmVjdGl2ZVxuICBdLFxuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBGaWxlVXBsb2FkRmllbGRDb21wb25lbnQsXG4gICAgRmlsZURyb3B6b25lRGlyZWN0aXZlXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgRmlsZVVwbG9hZEZpZWxkTW9kdWxlIHtcbn1cbiIsIjxjcmlzcHItZmllbGQtY29udGFpbmVyXG4gIFtjb25maWddPVwiY29uZmlnXCJcbiAgW2dyb3VwXT1cImdyb3VwXCI+XG4gIDxtYXQtZm9ybS1maWVsZCBmbG9hdExhYmVsPVwiYWx3YXlzXCJcbiAgICBbY29sb3JdPVwiY29uZmlnLmNvbG9yXCJcbiAgICBhcHBlYXJhbmNlPVwib3V0bGluZVwiXG4gICAgW2NyaXNwckZpbGVEcm9wem9uZV09XCIhKGRpc2FibGVkJCB8IGFzeW5jKSAmJiAhKGNvbmZpZy5kaXNhYmxlT25VcGxvYWQgJiYgaXNVcGxvYWRlZClcIlxuICAgIFtmb3JtR3JvdXBdPVwiZ3JvdXBcIlxuICAgIChmaWxlRHJvcCk9XCJmaWxlc0NoYW5nZWQoJGV2ZW50KVwiPlxuXG4gICAgPGlucHV0IFtmb3JtQ29udHJvbE5hbWVdPVwiY29uZmlnLmNvbnRyb2xOYW1lXCIgbWF0SW5wdXQgdHlwZT1cInRleHRcIi8+XG4gICAgPGlucHV0XG4gICAgICAjZmlsZUlucHV0XG4gICAgICB0eXBlPVwiZmlsZVwiXG4gICAgICBzdHlsZT1cImRpc3BsYXk6IG5vbmVcIlxuICAgICAgW2FjY2VwdF09XCJjb25maWcuYWNjZXB0ZWRUeXBlc1wiXG4gICAgICBbbXVsdGlwbGVdPVwiY29uZmlnLmFsbG93TXVsdGlwbGVGaWxlc1wiXG4gICAgICAoY2hhbmdlKT1cImZpbGVzQ2hhbmdlZCgkZXZlbnQudGFyZ2V0LmZpbGVzKVwiLz5cbiAgICA8bWF0LWxhYmVsPnt7Y29uZmlnLmxhYmVsfX08L21hdC1sYWJlbD5cblxuICAgIDxkaXYgKm5nSWY9XCIhKHNlbGVjdGVkRmlsZXM/Lmxlbmd0aCA+IDApOyBlbHNlIHNlbGVjdGVkRmlsZUxpc3RcIiAgY2xhc3M9XCJkcm9wLWluZm9cIj5cbiAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImRyb3AtaWNvblwiIGlubGluZT1cInRydWVcIj5jbG91ZF91cGxvYWQ8L21hdC1pY29uPlxuICAgICAgPGgyIGNsYXNzPVwibWF0LWgyXCI+e3tjb25maWcuZHJvcFpvbmVUZXh0fX08L2gyPlxuICAgICAgb3JcbiAgICAgIDxidXR0b25cbiAgICAgICAgbWF0LXJhaXNlZC1idXR0b25cbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCIoZGlzYWJsZWQkIHwgYXN5bmMpIHx8IGNvbmZpZy5kaXNhYmxlT25VcGxvYWQgJiYgaXNVcGxvYWRlZFwiXG4gICAgICAgIChjbGljayk9XCJmaWxlSW5wdXQuY2xpY2soKVwiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiY29uZmlnLmNvbnRyb2xOYW1lXCI+XG4gICAgICAgIHt7Y29uZmlnLnNlbGVjdEJ1dHRvblRleHR9fVxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gICAgPG5nLXRlbXBsYXRlICNzZWxlY3RlZEZpbGVMaXN0PlxuICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdGVkLWZpbGVzLWNvbnRhaW5lclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0ZWQtZmlsZXMtbGlzdFwiPlxuICAgICAgICAgIDxjcmlzcHItc2VsZWN0ZWQtZmlsZVxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IGZpbGUgb2Ygc2VsZWN0ZWRGaWxlczsgbGV0IGkgPSBpbmRleDtcIlxuICAgICAgICAgICAgW2NvbG9yXT1cImNvbmZpZy5jb2xvciA9PT0gJ3ByaW1hcnknID8gJ2FjY2VudCcgOiAncHJpbWFyeSdcIlxuICAgICAgICAgICAgW2ZpbGVOYW1lXT1cImZpbGUubmFtZVwiXG4gICAgICAgICAgICBbc2hvd1Byb2dyZXNzXT1cImNvbmZpZy5zaG93VXBsb2FkUHJvZ3Jlc3NcIlxuICAgICAgICAgICAgW3Byb2dyZXNzXT1cImZpbGVQcm9ncmVzcyAmJiAoZmlsZVByb2dyZXNzW2ldIHwgYXN5bmMpXCI+XG4gICAgICAgICAgPC9jcmlzcHItc2VsZWN0ZWQtZmlsZT5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPG1hdC1oaW50ICpuZ0lmPVwiY29uZmlnLmhpbnQgJiYgKGNvbnRyb2wudmFsaWQgfHwgIWNvbnRyb2wudG91Y2hlZClcIj57e2NvbmZpZy5oaW50fX08L21hdC1oaW50PlxuICA8L21hdC1mb3JtLWZpZWxkPlxuICA8ZGl2IGNsYXNzPVwiYnV0dG9uLWNvbnRhaW5lclwiICpuZ0lmPVwic2VsZWN0ZWRGaWxlcz8ubGVuZ3RoID4gMFwiPlxuXG4gICAgPGJ1dHRvblxuICAgICAgbWF0LWJ1dHRvblxuICAgICAgKGNsaWNrKT1cInJlc2V0RmlsZUlucHV0KClcIlxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICBbZGlzYWJsZWRdPVwiKGRpc2FibGVkJCB8IGFzeW5jKSB8fCAoY29uZmlnLmRpc2FibGVPblVwbG9hZCAmJiBpc1VwbG9hZGVkKVwiXG4gICAgICBhcmlhLWxhYmVsPVwiUmVtb3ZlIFNlbGVjdGVkIEZpbGUocylcIj5cbiAgICAgIHt7Y29uZmlnLmNsZWFyRmlsZXNCdXR0b25UZXh0fX1cbiAgICAgIDxtYXQtaWNvbj5kZWxldGU8L21hdC1pY29uPlxuICAgIDwvYnV0dG9uPlxuXG4gICAgPGJ1dHRvblxuICAgICAgKm5nSWY9XCIhIWNvbmZpZy51cGxvYWRGaWxlc1wiXG4gICAgICBtYXQtcmFpc2VkLWJ1dHRvblxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICBjb2xvcj1cImFjY2VudFwiXG4gICAgICBjbGFzcz1cImZpbGUtaW5wdXQtYnV0dG9uXCJcbiAgICAgIFtkaXNhYmxlZF09XCIoZGlzYWJsZWQkIHwgYXN5bmMpIHx8IChjb25maWcuZGlzYWJsZU9uVXBsb2FkICYmIGlzVXBsb2FkZWQpXCJcbiAgICAgIChjbGljayk9XCJ1cGxvYWRGaWxlcygpXCJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiY29uZmlnLnVwbG9hZEJ1dHRvblRleHRcIj5cbiAgICAgIHt7IGNvbmZpZy51cGxvYWRCdXR0b25UZXh0IH19XG4gICAgPC9idXR0b24+XG5cbiAgPC9kaXY+XG48L2NyaXNwci1maWVsZC1jb250YWluZXI+XG4iXX0=
@@ -1,3 +0,0 @@
1
- export * from './file-dropzone.directive';
2
- export * from './file-upload.component';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NyaXNwci1mb3Jtcy9zcmMvbGliL21hdGVyaWFsL2ZpbGUtdXBsb2FkL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyx5QkFBeUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZmlsZS1kcm9wem9uZS5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9maWxlLXVwbG9hZC5jb21wb25lbnQnO1xuIl19
@@ -1,54 +0,0 @@
1
- import { Component, Input, ChangeDetectionStrategy, NgModule } from '@angular/core';
2
- import { CrisprFieldComponent } from '../../abstracts';
3
- import { CommonModule } from '@angular/common';
4
- import { MatFormFieldModule } from '@angular/material/form-field';
5
- import { InfoModule } from '../info/info.component';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "../info/info.component";
8
- import * as i2 from "@angular/common";
9
- import * as i3 from "@angular/material/form-field";
10
- const defaultConfig = {
11
- typographyClass: 'mat-h3'
12
- };
13
- export class HeadingComponent extends CrisprFieldComponent {
14
- constructor() {
15
- super(...arguments);
16
- this.defaultConfig = defaultConfig;
17
- }
18
- }
19
- HeadingComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: HeadingComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
20
- HeadingComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.1", type: HeadingComponent, selector: "crispr-heading", inputs: { config: "config" }, usesInheritance: true, ngImport: i0, template: " <label\n *ngIf=\"!!config?.label\"\n [ngClass]=\"config.typographyClass\">\n {{ config.label }}\n <crispr-info\n *ngIf=\"config.info\"\n matSuffix\n [info]=\"config.info\">\n </crispr-info>\n </label>\n", styles: [":host{display:block}\n"], components: [{ type: i1.InfoComponent, selector: "crispr-info", inputs: ["info"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i3.MatSuffix, selector: "[matSuffix]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, preserveWhitespaces: true });
21
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: HeadingComponent, decorators: [{
22
- type: Component,
23
- args: [{ selector: 'crispr-heading', changeDetection: ChangeDetectionStrategy.OnPush, template: " <label\n *ngIf=\"!!config?.label\"\n [ngClass]=\"config.typographyClass\">\n {{ config.label }}\n <crispr-info\n *ngIf=\"config.info\"\n matSuffix\n [info]=\"config.info\">\n </crispr-info>\n </label>\n", styles: [":host{display:block}\n"] }]
24
- }], propDecorators: { config: [{
25
- type: Input
26
- }] } });
27
- export class HeadingModule {
28
- }
29
- HeadingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: HeadingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
30
- HeadingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: HeadingModule, declarations: [HeadingComponent], imports: [CommonModule,
31
- MatFormFieldModule,
32
- InfoModule], exports: [HeadingComponent] });
33
- HeadingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: HeadingModule, imports: [[
34
- CommonModule,
35
- MatFormFieldModule,
36
- InfoModule
37
- ]] });
38
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: HeadingModule, decorators: [{
39
- type: NgModule,
40
- args: [{
41
- imports: [
42
- CommonModule,
43
- MatFormFieldModule,
44
- InfoModule
45
- ],
46
- exports: [
47
- HeadingComponent
48
- ],
49
- declarations: [
50
- HeadingComponent
51
- ]
52
- }]
53
- }] });
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGluZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NyaXNwci1mb3Jtcy9zcmMvbGliL21hdGVyaWFsL2hlYWRpbmcvaGVhZGluZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NyaXNwci1mb3Jtcy9zcmMvbGliL21hdGVyaWFsL2hlYWRpbmcvaGVhZGluZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSx1QkFBdUIsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFcEYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7QUFFcEQsTUFBTSxhQUFhLEdBQTJCO0lBQzVDLGVBQWUsRUFBRSxRQUFRO0NBQzFCLENBQUE7QUFPRCxNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsb0JBQW1DO0lBTnpFOztRQVFFLGtCQUFhLEdBQUcsYUFBYSxDQUFDO0tBQy9COzs2R0FIWSxnQkFBZ0I7aUdBQWhCLGdCQUFnQiwyR0NoQjdCLDZPQVVBOzJGRE1hLGdCQUFnQjtrQkFONUIsU0FBUzsrQkFDRSxnQkFBZ0IsbUJBR1QsdUJBQXVCLENBQUMsTUFBTTs4QkFHdEMsTUFBTTtzQkFBZCxLQUFLOztBQWlCUixNQUFNLE9BQU8sYUFBYTs7MEdBQWIsYUFBYTsyR0FBYixhQUFhLGlCQWxCYixnQkFBZ0IsYUFNckIsWUFBWTtRQUNaLGtCQUFrQjtRQUNsQixVQUFVLGFBUkwsZ0JBQWdCOzJHQWtCaEIsYUFBYSxZQWJiO1lBQ0wsWUFBWTtZQUNaLGtCQUFrQjtZQUNsQixVQUFVO1NBQ2I7MkZBU1EsYUFBYTtrQkFkekIsUUFBUTttQkFBQztvQkFDTixPQUFPLEVBQUU7d0JBQ0wsWUFBWTt3QkFDWixrQkFBa0I7d0JBQ2xCLFVBQVU7cUJBQ2I7b0JBQ0QsT0FBTyxFQUFFO3dCQUNMLGdCQUFnQjtxQkFDbkI7b0JBQ0QsWUFBWSxFQUFFO3dCQUNWLGdCQUFnQjtxQkFDbkI7aUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB0eXBlIHsgSGVhZGluZ0NvbmZpZyB9IGZyb20gJy4uLy4uL21vZGVscy9oZWFkaW5nLmNvbmZpZyc7XG5pbXBvcnQgeyBDcmlzcHJGaWVsZENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2Fic3RyYWN0cyc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBJbmZvTW9kdWxlIH0gZnJvbSAnLi4vaW5mby9pbmZvLmNvbXBvbmVudCc7XG5cbmNvbnN0IGRlZmF1bHRDb25maWc6IFBhcnRpYWw8SGVhZGluZ0NvbmZpZz4gPSB7XG4gIHR5cG9ncmFwaHlDbGFzczogJ21hdC1oMydcbn1cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NyaXNwci1oZWFkaW5nJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2hlYWRpbmcuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9oZWFkaW5nLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEhlYWRpbmdDb21wb25lbnQgZXh0ZW5kcyBDcmlzcHJGaWVsZENvbXBvbmVudDxIZWFkaW5nQ29uZmlnPntcbiAgQElucHV0KCkgY29uZmlnOiBIZWFkaW5nQ29uZmlnO1xuICBkZWZhdWx0Q29uZmlnID0gZGVmYXVsdENvbmZpZztcbn1cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcbiAgICAgICAgSW5mb01vZHVsZVxuICAgIF0sXG4gICAgZXhwb3J0czogW1xuICAgICAgICBIZWFkaW5nQ29tcG9uZW50XG4gICAgXSxcbiAgICBkZWNsYXJhdGlvbnM6IFtcbiAgICAgICAgSGVhZGluZ0NvbXBvbmVudFxuICAgIF1cbn0pXG5cbmV4cG9ydCBjbGFzcyBIZWFkaW5nTW9kdWxlIHtcbn1cbiIsIiAgPGxhYmVsXG4gICAgKm5nSWY9XCIhIWNvbmZpZz8ubGFiZWxcIlxuICAgIFtuZ0NsYXNzXT1cImNvbmZpZy50eXBvZ3JhcGh5Q2xhc3NcIj5cbiAgICB7eyBjb25maWcubGFiZWwgfX1cbiAgICA8Y3Jpc3ByLWluZm9cbiAgICAgICpuZ0lmPVwiY29uZmlnLmluZm9cIlxuICAgICAgbWF0U3VmZml4XG4gICAgICBbaW5mb109XCJjb25maWcuaW5mb1wiPlxuICAgIDwvY3Jpc3ByLWluZm8+XG4gIDwvbGFiZWw+XG4iXX0=
@@ -1,4 +0,0 @@
1
- export function convertBytesToMb(bytes) {
2
- return bytes / 1048576;
3
- }
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtY29tcHJlc3Npb24uaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY3Jpc3ByLWZvcm1zL3NyYy9saWIvbWF0ZXJpYWwvaW1hZ2UtdXBsb2FkLWZpZWxkL2ltYWdlLWNvbXByZXNzaW9uLmhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxVQUFVLGdCQUFnQixDQUFFLEtBQWE7SUFDN0MsT0FBTyxLQUFLLEdBQUMsT0FBTyxDQUFDO0FBQ3ZCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gY29udmVydEJ5dGVzVG9NYiggYnl0ZXM6IG51bWJlcik6IG51bWJlciB7XG4gIHJldHVybiBieXRlcy8xMDQ4NTc2O1xufVxuIl19