@tft/crispr-forms 12.2.20 → 13.0.1
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.
- package/README.md +9 -69
- package/esm2020/index.mjs +2 -0
- package/esm2020/lib/abstracts/autocomplete-field.abstract.mjs +30 -0
- package/esm2020/lib/abstracts/crispr-control.mixin.mjs +27 -0
- package/esm2020/lib/abstracts/crispr-field.abstract.mjs +17 -0
- package/esm2020/lib/abstracts/index.mjs +4 -0
- package/esm2020/lib/crispr-forms.module.mjs +66 -0
- package/esm2020/lib/field-component-map.const.mjs +25 -0
- package/esm2020/lib/field-container/field-container.component.mjs +85 -0
- package/esm2020/lib/field-container/index.mjs +2 -0
- package/esm2020/lib/field.directive.mjs +77 -0
- package/esm2020/lib/form/form.component.mjs +54 -0
- package/esm2020/lib/form-group-list/form-group-list.component.mjs +51 -0
- package/esm2020/lib/form-group-list/form-group-list.module.mjs +54 -0
- package/esm2020/lib/form-group-list/index.mjs +3 -0
- package/esm2020/lib/form.helpers.mjs +185 -0
- package/esm2020/lib/form.operators.mjs +24 -0
- package/esm2020/lib/material/autocomplete-chiplist-field/autocomplete-chiplist-field.component.mjs +111 -0
- package/esm2020/lib/material/autocomplete-field/autocomplete-field.component.mjs +70 -0
- package/esm2020/lib/material/button/button.component.mjs +35 -0
- package/esm2020/lib/material/checkbox-field/checkbox-field.component.mjs +31 -0
- package/esm2020/lib/material/datepicker-field/datepicker-field.component.mjs +45 -0
- package/esm2020/lib/material/divider/divider.component.mjs +22 -0
- package/esm2020/lib/material/file-upload/file-dropzone.directive.mjs +39 -0
- package/esm2020/lib/material/file-upload/file-upload.component.mjs +145 -0
- package/esm2020/lib/material/file-upload/index.mjs +3 -0
- package/esm2020/lib/material/heading/heading.component.mjs +54 -0
- package/esm2020/lib/material/image-upload-field/image-compression.helpers.mjs +4 -0
- package/esm2020/lib/material/image-upload-field/image-upload-field.component.mjs +213 -0
- package/esm2020/lib/material/image-upload-field/index.mjs +2 -0
- package/esm2020/lib/material/index.mjs +18 -0
- package/esm2020/lib/material/info/info.component.mjs +46 -0
- package/esm2020/lib/material/input-field/input-field.component.mjs +27 -0
- package/esm2020/lib/material/material.module.mjs +200 -0
- package/esm2020/lib/material/option/index.mjs +2 -0
- package/esm2020/lib/material/option/option.component.mjs +14 -0
- package/esm2020/lib/material/radio-field/radio-field.component.mjs +29 -0
- package/esm2020/lib/material/select-field/select-field.component.mjs +58 -0
- package/esm2020/lib/material/selected-file/selected-file.component.mjs +47 -0
- package/esm2020/lib/material/slider-field/slider-field.component.mjs +30 -0
- package/esm2020/lib/material/textarea-field/textarea-field.component.mjs +28 -0
- package/esm2020/lib/material/unit-conversion-field/unit-conversion-field.component.mjs +69 -0
- package/esm2020/lib/models/autocomplete-chiplist-field.config.mjs +2 -0
- package/esm2020/lib/models/autocomplete-field.config.mjs +2 -0
- package/esm2020/lib/models/button.config.mjs +2 -0
- package/esm2020/lib/models/checkbox-field.config.mjs +2 -0
- package/esm2020/lib/models/crispr-field.config.mjs +23 -0
- package/esm2020/lib/models/datepicker-field.config.mjs +2 -0
- package/esm2020/lib/models/divider.config.mjs +2 -0
- package/esm2020/lib/models/file-upload-field.config.mjs +2 -0
- package/esm2020/lib/models/form-group-list.config.mjs +2 -0
- package/esm2020/lib/models/heading.config.mjs +3 -0
- package/esm2020/lib/models/image-upload-field.config.mjs +2 -0
- package/esm2020/lib/models/index.mjs +18 -0
- package/esm2020/lib/models/input-field.config.mjs +2 -0
- package/esm2020/lib/models/radio-field.config.mjs +2 -0
- package/esm2020/lib/models/select-field.config.mjs +2 -0
- package/esm2020/lib/models/slider-field.config.mjs +2 -0
- package/esm2020/lib/models/textarea-field.config.mjs +2 -0
- package/esm2020/lib/models/unit-conversion-field.config.mjs +2 -0
- package/esm2020/lib/pipes/crispr-pipes.module.mjs +26 -0
- package/esm2020/lib/pipes/initial-control-value.pipe.mjs +20 -0
- package/esm2020/lib/public_api.mjs +10 -0
- package/esm2020/lib/sub-group/index.mjs +3 -0
- package/esm2020/lib/sub-group/sub-group.component.mjs +20 -0
- package/esm2020/lib/sub-group/sub-group.module.mjs +45 -0
- package/esm2020/tft-crispr-forms.mjs +5 -0
- package/fesm2015/tft-crispr-forms.mjs +1883 -0
- package/fesm2015/tft-crispr-forms.mjs.map +1 -0
- package/fesm2020/tft-crispr-forms.mjs +1875 -0
- package/fesm2020/tft-crispr-forms.mjs.map +1 -0
- package/lib/abstracts/autocomplete-field.abstract.d.ts +4 -1
- package/lib/abstracts/crispr-control.mixin.d.ts +1 -1
- package/lib/abstracts/crispr-field.abstract.d.ts +4 -1
- package/lib/crispr-forms.module.d.ts +14 -0
- package/lib/field-component-map.const.d.ts +21 -20
- package/lib/field-container/field-container.component.d.ts +11 -1
- package/lib/field-container/index.d.ts +1 -0
- package/lib/field.directive.d.ts +14 -5
- package/lib/form/form.component.d.ts +6 -1
- package/lib/form-group-list/form-group-list.component.d.ts +4 -1
- package/lib/form-group-list/form-group-list.module.d.ts +15 -0
- package/lib/form-group-list/index.d.ts +2 -0
- package/lib/form.helpers.d.ts +1 -1
- package/lib/material/autocomplete-chiplist-field/autocomplete-chiplist-field.component.d.ts +3 -0
- package/lib/material/autocomplete-field/autocomplete-field.component.d.ts +4 -1
- package/lib/material/button/button.component.d.ts +3 -0
- package/lib/material/checkbox-field/checkbox-field.component.d.ts +3 -0
- package/lib/material/datepicker-field/datepicker-field.component.d.ts +3 -0
- package/lib/material/divider/divider.component.d.ts +3 -0
- package/lib/material/file-upload/file-dropzone.directive.d.ts +3 -0
- package/lib/material/file-upload/file-upload.component.d.ts +20 -2
- package/lib/material/file-upload/index.d.ts +2 -0
- package/lib/material/heading/heading.component.d.ts +12 -1
- package/lib/material/image-upload-field/image-compression.helpers.d.ts +1 -0
- package/lib/material/image-upload-field/image-upload-field.component.d.ts +63 -0
- package/lib/material/image-upload-field/index.d.ts +1 -0
- package/lib/material/index.d.ts +4 -1
- package/lib/material/info/info.component.d.ts +12 -1
- package/lib/material/input-field/input-field.component.d.ts +3 -0
- package/lib/material/material.module.d.ts +42 -0
- package/lib/material/option/index.d.ts +1 -0
- package/lib/material/option/option.component.d.ts +3 -0
- package/lib/material/radio-field/radio-field.component.d.ts +3 -0
- package/lib/material/select-field/select-field.component.d.ts +3 -0
- package/lib/material/selected-file/selected-file.component.d.ts +10 -0
- package/lib/material/slider-field/slider-field.component.d.ts +3 -0
- package/lib/material/textarea-field/textarea-field.component.d.ts +3 -0
- package/lib/material/unit-conversion-field/unit-conversion-field.component.d.ts +3 -0
- package/lib/models/autocomplete-field.config.d.ts +2 -1
- package/lib/models/button.config.d.ts +3 -2
- package/lib/models/crispr-field.config.d.ts +8 -7
- package/lib/models/file-upload-field.config.d.ts +3 -2
- package/lib/models/image-upload-field.config.d.ts +47 -0
- package/lib/models/index.d.ts +2 -0
- package/lib/models/input-field.config.d.ts +1 -1
- package/lib/models/radio-field.config.d.ts +1 -1
- package/lib/models/unit-conversion-field.config.d.ts +0 -1
- package/lib/pipes/crispr-pipes.module.d.ts +8 -0
- package/lib/pipes/initial-control-value.pipe.d.ts +3 -0
- package/lib/public_api.d.ts +1 -0
- package/lib/sub-group/index.d.ts +2 -0
- package/lib/sub-group/sub-group.component.d.ts +3 -0
- package/lib/sub-group/sub-group.module.d.ts +12 -0
- package/package.json +30 -15
- package/tft-crispr-forms-13.0.1.tgz +0 -0
- package/tft-crispr-forms.d.ts +1 -25
- package/bundles/tft-crispr-forms.umd.js +0 -1719
- package/bundles/tft-crispr-forms.umd.js.map +0 -1
- package/esm2015/index.js +0 -2
- package/esm2015/index.js.map +0 -1
- package/esm2015/index.metadata.json +0 -1
- package/esm2015/lib/abstracts/autocomplete-field.abstract.js +0 -27
- package/esm2015/lib/abstracts/autocomplete-field.abstract.js.map +0 -1
- package/esm2015/lib/abstracts/autocomplete-field.abstract.metadata.json +0 -1
- package/esm2015/lib/abstracts/crispr-control.mixin.js +0 -27
- package/esm2015/lib/abstracts/crispr-control.mixin.js.map +0 -1
- package/esm2015/lib/abstracts/crispr-control.mixin.metadata.json +0 -1
- package/esm2015/lib/abstracts/crispr-field.abstract.js +0 -14
- package/esm2015/lib/abstracts/crispr-field.abstract.js.map +0 -1
- package/esm2015/lib/abstracts/crispr-field.abstract.metadata.json +0 -1
- package/esm2015/lib/abstracts/index.js +0 -4
- package/esm2015/lib/abstracts/index.js.map +0 -1
- package/esm2015/lib/abstracts/index.metadata.json +0 -1
- package/esm2015/lib/crispr-forms.module.js +0 -41
- package/esm2015/lib/crispr-forms.module.js.map +0 -1
- package/esm2015/lib/crispr-forms.module.metadata.json +0 -1
- package/esm2015/lib/crispr-forms.module.ngfactory.js.map +0 -1
- package/esm2015/lib/field-component-map.const.js +0 -28
- package/esm2015/lib/field-component-map.const.js.map +0 -1
- package/esm2015/lib/field-component-map.const.metadata.json +0 -1
- package/esm2015/lib/field-container/field-container.component.js +0 -57
- package/esm2015/lib/field-container/field-container.component.js.map +0 -1
- package/esm2015/lib/field-container/field-container.component.metadata.json +0 -1
- package/esm2015/lib/field-container/field-container.component.ngfactory.js.map +0 -1
- package/esm2015/lib/field-container/field-container.component.scss.shim.ngstyle.js.map +0 -1
- package/esm2015/lib/field.directive.js +0 -55
- package/esm2015/lib/field.directive.js.map +0 -1
- package/esm2015/lib/field.directive.metadata.json +0 -1
- package/esm2015/lib/field.directive.ngfactory.js.map +0 -1
- package/esm2015/lib/form/form.component.js +0 -40
- package/esm2015/lib/form/form.component.js.map +0 -1
- package/esm2015/lib/form/form.component.metadata.json +0 -1
- package/esm2015/lib/form/form.component.ngfactory.js.map +0 -1
- package/esm2015/lib/form/form.component.scss.shim.ngstyle.js.map +0 -1
- package/esm2015/lib/form-group-list/form-group-list.component.js +0 -44
- package/esm2015/lib/form-group-list/form-group-list.component.js.map +0 -1
- package/esm2015/lib/form-group-list/form-group-list.component.metadata.json +0 -1
- package/esm2015/lib/form-group-list/form-group-list.component.ngfactory.js.map +0 -1
- package/esm2015/lib/form-group-list/form-group-list.component.scss.shim.ngstyle.js.map +0 -1
- package/esm2015/lib/form.helpers.js +0 -186
- package/esm2015/lib/form.helpers.js.map +0 -1
- package/esm2015/lib/form.helpers.metadata.json +0 -1
- package/esm2015/lib/form.operators.js +0 -24
- package/esm2015/lib/form.operators.js.map +0 -1
- package/esm2015/lib/form.operators.metadata.json +0 -1
- package/esm2015/lib/material/autocomplete-chiplist-field/autocomplete-chiplist-field.component.js +0 -101
- package/esm2015/lib/material/autocomplete-chiplist-field/autocomplete-chiplist-field.component.js.map +0 -1
- package/esm2015/lib/material/autocomplete-chiplist-field/autocomplete-chiplist-field.component.metadata.json +0 -1
- package/esm2015/lib/material/autocomplete-chiplist-field/autocomplete-chiplist-field.component.ngfactory.js.map +0 -1
- package/esm2015/lib/material/autocomplete-chiplist-field/autocomplete-chiplist-field.component.scss.shim.ngstyle.js.map +0 -1
- package/esm2015/lib/material/autocomplete-field/autocomplete-field.component.js +0 -57
- package/esm2015/lib/material/autocomplete-field/autocomplete-field.component.js.map +0 -1
- package/esm2015/lib/material/autocomplete-field/autocomplete-field.component.metadata.json +0 -1
- package/esm2015/lib/material/autocomplete-field/autocomplete-field.component.ngfactory.js.map +0 -1
- package/esm2015/lib/material/autocomplete-field/autocomplete-field.component.scss.shim.ngstyle.js.map +0 -1
- package/esm2015/lib/material/button/button.component.js +0 -30
- package/esm2015/lib/material/button/button.component.js.map +0 -1
- package/esm2015/lib/material/button/button.component.metadata.json +0 -1
- package/esm2015/lib/material/button/button.component.ngfactory.js.map +0 -1
- package/esm2015/lib/material/button/button.component.scss.shim.ngstyle.js.map +0 -1
- package/esm2015/lib/material/checkbox-field/checkbox-field.component.js +0 -25
- package/esm2015/lib/material/checkbox-field/checkbox-field.component.js.map +0 -1
- package/esm2015/lib/material/checkbox-field/checkbox-field.component.metadata.json +0 -1
- package/esm2015/lib/material/checkbox-field/checkbox-field.component.ngfactory.js.map +0 -1
- package/esm2015/lib/material/checkbox-field/checkbox-field.component.scss.shim.ngstyle.js.map +0 -1
- package/esm2015/lib/material/datepicker-field/datepicker-field.component.js +0 -45
- package/esm2015/lib/material/datepicker-field/datepicker-field.component.js.map +0 -1
- package/esm2015/lib/material/datepicker-field/datepicker-field.component.metadata.json +0 -1
- package/esm2015/lib/material/datepicker-field/datepicker-field.component.ngfactory.js.map +0 -1
- package/esm2015/lib/material/datepicker-field/datepicker-field.component.scss.shim.ngstyle.js.map +0 -1
- package/esm2015/lib/material/divider/divider.component.js +0 -20
- package/esm2015/lib/material/divider/divider.component.js.map +0 -1
- package/esm2015/lib/material/divider/divider.component.metadata.json +0 -1
- package/esm2015/lib/material/divider/divider.component.ngfactory.js.map +0 -1
- package/esm2015/lib/material/divider/divider.component.scss.shim.ngstyle.js.map +0 -1
- package/esm2015/lib/material/file-upload/file-dropzone.directive.js +0 -31
- package/esm2015/lib/material/file-upload/file-dropzone.directive.js.map +0 -1
- package/esm2015/lib/material/file-upload/file-dropzone.directive.metadata.json +0 -1
- package/esm2015/lib/material/file-upload/file-dropzone.directive.ngfactory.js.map +0 -1
- package/esm2015/lib/material/file-upload/file-upload.component.js +0 -80
- package/esm2015/lib/material/file-upload/file-upload.component.js.map +0 -1
- package/esm2015/lib/material/file-upload/file-upload.component.metadata.json +0 -1
- package/esm2015/lib/material/file-upload/file-upload.component.ngfactory.js.map +0 -1
- package/esm2015/lib/material/file-upload/file-upload.component.scss.shim.ngstyle.js.map +0 -1
- package/esm2015/lib/material/heading/heading.component.js +0 -23
- package/esm2015/lib/material/heading/heading.component.js.map +0 -1
- package/esm2015/lib/material/heading/heading.component.metadata.json +0 -1
- package/esm2015/lib/material/heading/heading.component.ngfactory.js.map +0 -1
- package/esm2015/lib/material/heading/heading.component.scss.shim.ngstyle.js.map +0 -1
- package/esm2015/lib/material/index.js +0 -15
- package/esm2015/lib/material/index.js.map +0 -1
- package/esm2015/lib/material/index.metadata.json +0 -1
- package/esm2015/lib/material/info/info.component.js +0 -15
- package/esm2015/lib/material/info/info.component.js.map +0 -1
- package/esm2015/lib/material/info/info.component.metadata.json +0 -1
- package/esm2015/lib/material/info/info.component.ngfactory.js.map +0 -1
- package/esm2015/lib/material/info/info.component.scss.shim.ngstyle.js.map +0 -1
- package/esm2015/lib/material/input-field/input-field.component.js +0 -22
- package/esm2015/lib/material/input-field/input-field.component.js.map +0 -1
- package/esm2015/lib/material/input-field/input-field.component.metadata.json +0 -1
- package/esm2015/lib/material/input-field/input-field.component.ngfactory.js.map +0 -1
- package/esm2015/lib/material/input-field/input-field.component.scss.shim.ngstyle.js.map +0 -1
- package/esm2015/lib/material/material.module.js +0 -107
- package/esm2015/lib/material/material.module.js.map +0 -1
- package/esm2015/lib/material/material.module.metadata.json +0 -1
- package/esm2015/lib/material/material.module.ngfactory.js.map +0 -1
- package/esm2015/lib/material/option/option.component.js +0 -15
- package/esm2015/lib/material/option/option.component.js.map +0 -1
- package/esm2015/lib/material/option/option.component.metadata.json +0 -1
- package/esm2015/lib/material/option/option.component.ngfactory.js.map +0 -1
- package/esm2015/lib/material/option/option.component.scss.shim.ngstyle.js.map +0 -1
- package/esm2015/lib/material/radio-field/radio-field.component.js +0 -25
- package/esm2015/lib/material/radio-field/radio-field.component.js.map +0 -1
- package/esm2015/lib/material/radio-field/radio-field.component.metadata.json +0 -1
- package/esm2015/lib/material/radio-field/radio-field.component.ngfactory.js.map +0 -1
- package/esm2015/lib/material/radio-field/radio-field.component.scss.shim.ngstyle.js.map +0 -1
- package/esm2015/lib/material/select-field/select-field.component.js +0 -50
- package/esm2015/lib/material/select-field/select-field.component.js.map +0 -1
- package/esm2015/lib/material/select-field/select-field.component.metadata.json +0 -1
- package/esm2015/lib/material/select-field/select-field.component.ngfactory.js.map +0 -1
- package/esm2015/lib/material/select-field/select-field.component.scss.shim.ngstyle.js.map +0 -1
- package/esm2015/lib/material/selected-file/selected-file.component.js +0 -17
- package/esm2015/lib/material/selected-file/selected-file.component.js.map +0 -1
- package/esm2015/lib/material/selected-file/selected-file.component.metadata.json +0 -1
- package/esm2015/lib/material/selected-file/selected-file.component.ngfactory.js.map +0 -1
- package/esm2015/lib/material/selected-file/selected-file.component.scss.shim.ngstyle.js.map +0 -1
- package/esm2015/lib/material/slider-field/slider-field.component.js +0 -26
- package/esm2015/lib/material/slider-field/slider-field.component.js.map +0 -1
- package/esm2015/lib/material/slider-field/slider-field.component.metadata.json +0 -1
- package/esm2015/lib/material/slider-field/slider-field.component.ngfactory.js.map +0 -1
- package/esm2015/lib/material/slider-field/slider-field.component.scss.shim.ngstyle.js.map +0 -1
- package/esm2015/lib/material/textarea-field/textarea-field.component.js +0 -22
- package/esm2015/lib/material/textarea-field/textarea-field.component.js.map +0 -1
- package/esm2015/lib/material/textarea-field/textarea-field.component.metadata.json +0 -1
- package/esm2015/lib/material/textarea-field/textarea-field.component.ngfactory.js.map +0 -1
- package/esm2015/lib/material/textarea-field/textarea-field.component.scss.shim.ngstyle.js.map +0 -1
- package/esm2015/lib/material/unit-conversion-field/unit-conversion-field.component.js +0 -63
- package/esm2015/lib/material/unit-conversion-field/unit-conversion-field.component.js.map +0 -1
- package/esm2015/lib/material/unit-conversion-field/unit-conversion-field.component.metadata.json +0 -1
- package/esm2015/lib/material/unit-conversion-field/unit-conversion-field.component.ngfactory.js.map +0 -1
- package/esm2015/lib/material/unit-conversion-field/unit-conversion-field.component.scss.shim.ngstyle.js.map +0 -1
- package/esm2015/lib/models/autocomplete-chiplist-field.config.js +0 -2
- package/esm2015/lib/models/autocomplete-chiplist-field.config.js.map +0 -1
- package/esm2015/lib/models/autocomplete-chiplist-field.config.metadata.json +0 -1
- package/esm2015/lib/models/autocomplete-field.config.js +0 -2
- package/esm2015/lib/models/autocomplete-field.config.js.map +0 -1
- package/esm2015/lib/models/autocomplete-field.config.metadata.json +0 -1
- package/esm2015/lib/models/button.config.js +0 -2
- package/esm2015/lib/models/button.config.js.map +0 -1
- package/esm2015/lib/models/button.config.metadata.json +0 -1
- package/esm2015/lib/models/checkbox-field.config.js +0 -2
- package/esm2015/lib/models/checkbox-field.config.js.map +0 -1
- package/esm2015/lib/models/checkbox-field.config.metadata.json +0 -1
- package/esm2015/lib/models/crispr-field.config.js +0 -22
- package/esm2015/lib/models/crispr-field.config.js.map +0 -1
- package/esm2015/lib/models/crispr-field.config.metadata.json +0 -1
- package/esm2015/lib/models/datepicker-field.config.js +0 -2
- package/esm2015/lib/models/datepicker-field.config.js.map +0 -1
- package/esm2015/lib/models/datepicker-field.config.metadata.json +0 -1
- package/esm2015/lib/models/divider.config.js +0 -2
- package/esm2015/lib/models/divider.config.js.map +0 -1
- package/esm2015/lib/models/divider.config.metadata.json +0 -1
- package/esm2015/lib/models/file-upload-field.config.js +0 -2
- package/esm2015/lib/models/file-upload-field.config.js.map +0 -1
- package/esm2015/lib/models/file-upload-field.config.metadata.json +0 -1
- package/esm2015/lib/models/form-group-list.config.js +0 -2
- package/esm2015/lib/models/form-group-list.config.js.map +0 -1
- package/esm2015/lib/models/form-group-list.config.metadata.json +0 -1
- package/esm2015/lib/models/heading.config.js +0 -3
- package/esm2015/lib/models/heading.config.js.map +0 -1
- package/esm2015/lib/models/heading.config.metadata.json +0 -1
- package/esm2015/lib/models/index.js +0 -16
- package/esm2015/lib/models/index.js.map +0 -1
- package/esm2015/lib/models/index.metadata.json +0 -1
- package/esm2015/lib/models/input-field.config.js +0 -2
- package/esm2015/lib/models/input-field.config.js.map +0 -1
- package/esm2015/lib/models/input-field.config.metadata.json +0 -1
- package/esm2015/lib/models/radio-field.config.js +0 -2
- package/esm2015/lib/models/radio-field.config.js.map +0 -1
- package/esm2015/lib/models/radio-field.config.metadata.json +0 -1
- package/esm2015/lib/models/select-field.config.js +0 -2
- package/esm2015/lib/models/select-field.config.js.map +0 -1
- package/esm2015/lib/models/select-field.config.metadata.json +0 -1
- package/esm2015/lib/models/slider-field.config.js +0 -2
- package/esm2015/lib/models/slider-field.config.js.map +0 -1
- package/esm2015/lib/models/slider-field.config.metadata.json +0 -1
- package/esm2015/lib/models/textarea-field.config.js +0 -2
- package/esm2015/lib/models/textarea-field.config.js.map +0 -1
- package/esm2015/lib/models/textarea-field.config.metadata.json +0 -1
- package/esm2015/lib/models/unit-conversion-field.config.js +0 -2
- package/esm2015/lib/models/unit-conversion-field.config.js.map +0 -1
- package/esm2015/lib/models/unit-conversion-field.config.metadata.json +0 -1
- package/esm2015/lib/pipes/initial-control-value.pipe.js +0 -16
- package/esm2015/lib/pipes/initial-control-value.pipe.js.map +0 -1
- package/esm2015/lib/pipes/initial-control-value.pipe.metadata.json +0 -1
- package/esm2015/lib/pipes/initial-control-value.pipe.ngfactory.js.map +0 -1
- package/esm2015/lib/public_api.js +0 -9
- package/esm2015/lib/public_api.js.map +0 -1
- package/esm2015/lib/public_api.metadata.json +0 -1
- package/esm2015/lib/sub-group/sub-group.component.js +0 -17
- package/esm2015/lib/sub-group/sub-group.component.js.map +0 -1
- package/esm2015/lib/sub-group/sub-group.component.metadata.json +0 -1
- package/esm2015/lib/sub-group/sub-group.component.ngfactory.js.map +0 -1
- package/esm2015/lib/sub-group/sub-group.component.scss.shim.ngstyle.js.map +0 -1
- package/esm2015/tft-crispr-forms.js +0 -30
- package/esm2015/tft-crispr-forms.js.map +0 -1
- package/esm2015/tft-crispr-forms.metadata.json +0 -1
- package/fesm2015/tft-crispr-forms.js +0 -1263
- package/fesm2015/tft-crispr-forms.js.map +0 -1
- package/tft-crispr-forms-12.2.20.tgz +0 -0
- package/tft-crispr-forms.metadata.json +0 -1
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { Component, ElementRef, ViewChild, ChangeDetectionStrategy, Optional, Self, ChangeDetectorRef, 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 { DomSanitizer } from '@angular/platform-browser';
|
|
9
|
+
import imageCompression from 'browser-image-compression';
|
|
10
|
+
import { combineLatest, of, Subject } from 'rxjs';
|
|
11
|
+
import { map, shareReplay, startWith, switchMap, tap } from 'rxjs/operators';
|
|
12
|
+
import { FileUploadFieldModule } from '../file-upload';
|
|
13
|
+
import { crisprControlMixin, CrisprFieldComponent } from '../../abstracts';
|
|
14
|
+
import { FieldContainerModule } from '../../field-container/field-container.component';
|
|
15
|
+
import { convertBytesToMb } from './image-compression.helpers';
|
|
16
|
+
import { SelectedFileModule } from '../selected-file/selected-file.component';
|
|
17
|
+
import { FormValidationHandlerModule } from '@tft/form-validation-handler';
|
|
18
|
+
import * as i0 from "@angular/core";
|
|
19
|
+
import * as i1 from "@angular/forms";
|
|
20
|
+
import * as i2 from "@angular/platform-browser";
|
|
21
|
+
import * as i3 from "../../field-container/field-container.component";
|
|
22
|
+
import * as i4 from "@angular/material/form-field";
|
|
23
|
+
import * as i5 from "../selected-file/selected-file.component";
|
|
24
|
+
import * as i6 from "@angular/material/icon";
|
|
25
|
+
import * as i7 from "@angular/material/button";
|
|
26
|
+
import * as i8 from "@tft/form-validation-handler";
|
|
27
|
+
import * as i9 from "@angular/material/input";
|
|
28
|
+
import * as i10 from "@angular/common";
|
|
29
|
+
import * as i11 from "../file-upload/file-dropzone.directive";
|
|
30
|
+
const ImageUploadFieldMixin = crisprControlMixin(CrisprFieldComponent);
|
|
31
|
+
export class ImageUploadFieldComponent extends ImageUploadFieldMixin {
|
|
32
|
+
// ngControl: NgControl = null;
|
|
33
|
+
constructor(ngControl, domSanitizer, cdr) {
|
|
34
|
+
super();
|
|
35
|
+
this.ngControl = ngControl;
|
|
36
|
+
this.domSanitizer = domSanitizer;
|
|
37
|
+
this.cdr = cdr;
|
|
38
|
+
this.defaultConfig = {
|
|
39
|
+
// allowMultipleFiles: false,
|
|
40
|
+
acceptedTypes: 'image/*',
|
|
41
|
+
dropZoneText: 'DROP FILE HERE',
|
|
42
|
+
selectFilesButtonType: 'button',
|
|
43
|
+
selectButtonText: 'SELECT',
|
|
44
|
+
showClearFilesButton: true,
|
|
45
|
+
clearFilesButtonText: 'CLEAR',
|
|
46
|
+
resetFilesButtonText: 'RESET',
|
|
47
|
+
imagePreviewHeight: '250px',
|
|
48
|
+
compressImage: false,
|
|
49
|
+
targetCompressedImageFileSizeMb: .4,
|
|
50
|
+
minCompressionThresholdMb: .6,
|
|
51
|
+
useWebWorker: true,
|
|
52
|
+
};
|
|
53
|
+
this.inputImageFileSubject = new Subject();
|
|
54
|
+
this.inputImageFile$ = this.inputImageFileSubject.asObservable().pipe(shareReplay(1));
|
|
55
|
+
this.compressedFile$ = this.inputImageFile$.pipe(switchMap(async (file) => {
|
|
56
|
+
if (!file)
|
|
57
|
+
return null;
|
|
58
|
+
if (typeof file === 'string')
|
|
59
|
+
return file;
|
|
60
|
+
const { compressImage, targetCompressedImageFileSizeMb, minCompressionThresholdMb, maxWidthOrHeight, useWebWorker } = this.config;
|
|
61
|
+
const fileSizeMb = convertBytesToMb(file.size);
|
|
62
|
+
const shouldCompress = compressImage && targetCompressedImageFileSizeMb < fileSizeMb && minCompressionThresholdMb < fileSizeMb;
|
|
63
|
+
if (shouldCompress) {
|
|
64
|
+
const options = {
|
|
65
|
+
// Use maxWidthOrHeight if it was provided, else use target compressed size
|
|
66
|
+
...(maxWidthOrHeight ? { maxWidthOrHeight } : { maxSizeMB: targetCompressedImageFileSizeMb }),
|
|
67
|
+
useWebWorker,
|
|
68
|
+
maxIterations: 30,
|
|
69
|
+
onProgress: (p) => {
|
|
70
|
+
this.progress = p;
|
|
71
|
+
this.cdr.detectChanges();
|
|
72
|
+
}
|
|
73
|
+
};
|
|
74
|
+
const compressedFile = await imageCompression(file, options);
|
|
75
|
+
return compressedFile;
|
|
76
|
+
}
|
|
77
|
+
else
|
|
78
|
+
return file;
|
|
79
|
+
}), tap(file => {
|
|
80
|
+
this.control.setValue(file);
|
|
81
|
+
if (file || this.value) {
|
|
82
|
+
this.control.markAsTouched();
|
|
83
|
+
setTimeout(() => {
|
|
84
|
+
this.cdr.detectChanges();
|
|
85
|
+
}, 100);
|
|
86
|
+
}
|
|
87
|
+
}), map(file => typeof file === 'string' ? null : file), shareReplay(1));
|
|
88
|
+
this.compressedImageUrlString$ = this.compressedFile$.pipe(switchMap(async (file) => {
|
|
89
|
+
if (!file)
|
|
90
|
+
return null;
|
|
91
|
+
const compressedStringImage = await imageCompression.getDataUrlFromFile(file);
|
|
92
|
+
return file.type.includes('svg')
|
|
93
|
+
? this.domSanitizer.bypassSecurityTrustResourceUrl(compressedStringImage)
|
|
94
|
+
: compressedStringImage;
|
|
95
|
+
}), shareReplay(1));
|
|
96
|
+
this.isUploaded = false;
|
|
97
|
+
if (this.ngControl != null) {
|
|
98
|
+
// Setting the value accessor directly (instead of using
|
|
99
|
+
// the providers) to avoid running into a circular import.
|
|
100
|
+
ngControl.valueAccessor = this;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
ngOnInit() {
|
|
104
|
+
super.ngOnInit();
|
|
105
|
+
this.imageSrcUrl$ = combineLatest([
|
|
106
|
+
this.compressedImageUrlString$.pipe(startWith(null)),
|
|
107
|
+
this.control.valueChanges.pipe(startWith(this.value))
|
|
108
|
+
]).pipe(map(([compressedImageUrlString, controlUrl]) => {
|
|
109
|
+
return compressedImageUrlString || typeof controlUrl === 'string' && controlUrl || null;
|
|
110
|
+
}));
|
|
111
|
+
this.disabled$ = this.config.disabledCallback
|
|
112
|
+
? this.config.disabledCallback(this.group, this.config)
|
|
113
|
+
: of(false);
|
|
114
|
+
}
|
|
115
|
+
filesChanged(files) {
|
|
116
|
+
if (files && files.length > 0) {
|
|
117
|
+
const imageFile = files[0];
|
|
118
|
+
this.control.markAsTouched();
|
|
119
|
+
this.inputImageFileSubject.next(imageFile);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
clearFileInput() {
|
|
123
|
+
this.inputImageFileSubject.next(null);
|
|
124
|
+
this.fileInputRef.nativeElement.value = '';
|
|
125
|
+
this.control.patchValue(null);
|
|
126
|
+
this.control.markAsTouched();
|
|
127
|
+
this.isUploaded = false;
|
|
128
|
+
}
|
|
129
|
+
resetToInitialValue(initialValue) {
|
|
130
|
+
this.inputImageFileSubject.next(initialValue);
|
|
131
|
+
// this.fileInputRef.nativeElement.value = initialValue
|
|
132
|
+
this.isUploaded = false;
|
|
133
|
+
}
|
|
134
|
+
writeValue(value) { }
|
|
135
|
+
registerOnChange(fn) {
|
|
136
|
+
this.onChange = fn;
|
|
137
|
+
}
|
|
138
|
+
registerOnTouched(fn) { }
|
|
139
|
+
}
|
|
140
|
+
ImageUploadFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: ImageUploadFieldComponent, deps: [{ token: i1.NgControl, optional: true, self: true }, { token: i2.DomSanitizer }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
141
|
+
ImageUploadFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.1", type: ImageUploadFieldComponent, selector: "crispr-image-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\n <mat-form-field floatLabel=\"always\"\n [color]=\"config.color\"\n [appearance]=\"config.appearance\"\n [formGroup]=\"group\">\n <mat-label>{{config.label}}</mat-label>\n <input [formControlName]=\"config.controlName\" matInput type=\"text\"/>\n <input\n #fileInput\n type=\"file\"\n [accept]=\"config.acceptedTypes\"\n (change)=\"filesChanged($event.target.files)\"/>\n <div class=\"ui-container\">\n\n <div class=\"image-preview\" [style.height]=\"config.imagePreviewHeight\">\n <crispr-selected-file\n *ngIf=\"(progress < 100) && inputImageFile$ | async as file; else dropzoneOrPreview\"\n [color]=\"config.color === 'primary' ? 'accent' : 'primary'\"\n [fileName]=\"'Compressing: ' + file.name\"\n [showProgress]=\"true\"\n [progress]=\"progress\">\n </crispr-selected-file>\n\n <ng-template #dropzoneOrPreview>\n <!-- <img *ngIf=\"(initialUrlString$ | async) as initialUrlString;\" [src]=\"initialUrlString\" alt=\"\"> -->\n <img *ngIf=\"imageSrcUrl$ | async as srcUrl; else noImage\" [src]=\"srcUrl\" alt=\"\">\n <ng-template #noImage>\n <div class=\"drop-container\"\n [crisprFileDropzone]=\"!(disabled$ | async)\"\n (fileDrop)=\"filesChanged($event)\">\n <mat-icon class=\"drop-icon\" inline=\"true\">cloud_upload</mat-icon>\n <h2 class=\"mat-h2\">{{config.dropZoneText}}</h2>\n </div>\n </ng-template>\n\n </ng-template>\n </div>\n\n\n\n <!-- </ng-template> -->\n <div class=\"button-container\" *ngIf=\"true\">\n\n <button\n mat-button\n (click)=\"clearFileInput()\"\n type=\"button\"\n [disabled]=\"(disabled$ | async)\"\n aria-label=\"Remove Selected File(s)\">\n <mat-icon>delete</mat-icon>\n {{config.clearFilesButtonText}}\n </button>\n\n <button\n *ngIf=\"value\"\n mat-button\n (click)=\"resetToInitialValue(value)\"\n type=\"button\"\n [disabled]=\"(disabled$ | async)\"\n aria-label=\"Remove Selected File(s)\">\n <mat-icon>replay</mat-icon>\n {{config.resetFilesButtonText}}\n </button>\n\n <button\n mat-button\n type=\"button\"\n color=\"primary\"\n [disabled]=\"(disabled$ | async)\"\n (click)=\"fileInput.click()\"\n [attr.aria-label]=\"config.controlName\">\n <mat-icon>\n camera\n </mat-icon>\n SELECT\n </button>\n </div>\n </div>\n\n </mat-form-field>\n\n</crispr-field-container>\n", styles: [":host ::ng-deep .mat-form-field .mat-form-field-infix{padding-top:0}:host ::ng-deep .mat-form-field .mat-button-wrapper{display:flex;flex-direction:column;align-items:center;padding-top:8px}:host .ui-container{display:flex;flex-direction:column}:host .ui-container .image-preview{display:flex;flex-direction:column;align-content:space-between;justify-content:center;align-items:center;margin:8px 0;flex-grow:1}:host .ui-container .image-preview crispr-selected-file{width:100%}:host .ui-container .image-preview .drop-container{display:flex;flex-direction:column;align-items:center;border:3px dashed gray;height:100%;width:100%;align-content:center;justify-content:center;border-radius:8px}:host .ui-container .image-preview .drop-container .drop-icon{height:32px;width:32px;font-size:36px}:host .ui-container .image-preview .drop-container .mat-h2{margin:0}:host .ui-container .image-preview img{height:inherit;max-width:100%}:host .ui-container .button-container{display:flex;flex-direction:var(--image-upload-button-container-direction);justify-content:flex-end}:host .ui-container .button-container button{margin-left:8px}:host input{position:absolute;max-height:0;visibility:hidden}\n"], components: [{ type: i3.FieldContainerComponent, selector: "crispr-field-container", inputs: ["config", "group", "inlineField"] }, { type: i4.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i5.SelectedFileComponent, selector: "crispr-selected-file", inputs: ["fileName", "progress", "showProgress", "color"] }, { type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i7.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"] }], directives: [{ type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i8.ControlErrorContainerDirective, selector: "[controlErrorContainer], [formGroup]" }, { type: i4.MatLabel, selector: "mat-label" }, { type: i9.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: 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: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { type: i8.ControlErrorsDirective, selector: "[formControl], [formControlName]" }, { type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i11.FileDropzoneDirective, selector: "[crisprFileDropzone]", inputs: ["crisprFileDropzone"], outputs: ["fileDrop"] }], pipes: { "async": i10.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush, preserveWhitespaces: true });
|
|
142
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: ImageUploadFieldComponent, decorators: [{
|
|
143
|
+
type: Component,
|
|
144
|
+
args: [{ selector: 'crispr-image-upload-field', changeDetection: ChangeDetectionStrategy.OnPush, template: "<crispr-field-container\n [config]=\"config\"\n [group]=\"group\">\n\n <mat-form-field floatLabel=\"always\"\n [color]=\"config.color\"\n [appearance]=\"config.appearance\"\n [formGroup]=\"group\">\n <mat-label>{{config.label}}</mat-label>\n <input [formControlName]=\"config.controlName\" matInput type=\"text\"/>\n <input\n #fileInput\n type=\"file\"\n [accept]=\"config.acceptedTypes\"\n (change)=\"filesChanged($event.target.files)\"/>\n <div class=\"ui-container\">\n\n <div class=\"image-preview\" [style.height]=\"config.imagePreviewHeight\">\n <crispr-selected-file\n *ngIf=\"(progress < 100) && inputImageFile$ | async as file; else dropzoneOrPreview\"\n [color]=\"config.color === 'primary' ? 'accent' : 'primary'\"\n [fileName]=\"'Compressing: ' + file.name\"\n [showProgress]=\"true\"\n [progress]=\"progress\">\n </crispr-selected-file>\n\n <ng-template #dropzoneOrPreview>\n <!-- <img *ngIf=\"(initialUrlString$ | async) as initialUrlString;\" [src]=\"initialUrlString\" alt=\"\"> -->\n <img *ngIf=\"imageSrcUrl$ | async as srcUrl; else noImage\" [src]=\"srcUrl\" alt=\"\">\n <ng-template #noImage>\n <div class=\"drop-container\"\n [crisprFileDropzone]=\"!(disabled$ | async)\"\n (fileDrop)=\"filesChanged($event)\">\n <mat-icon class=\"drop-icon\" inline=\"true\">cloud_upload</mat-icon>\n <h2 class=\"mat-h2\">{{config.dropZoneText}}</h2>\n </div>\n </ng-template>\n\n </ng-template>\n </div>\n\n\n\n <!-- </ng-template> -->\n <div class=\"button-container\" *ngIf=\"true\">\n\n <button\n mat-button\n (click)=\"clearFileInput()\"\n type=\"button\"\n [disabled]=\"(disabled$ | async)\"\n aria-label=\"Remove Selected File(s)\">\n <mat-icon>delete</mat-icon>\n {{config.clearFilesButtonText}}\n </button>\n\n <button\n *ngIf=\"value\"\n mat-button\n (click)=\"resetToInitialValue(value)\"\n type=\"button\"\n [disabled]=\"(disabled$ | async)\"\n aria-label=\"Remove Selected File(s)\">\n <mat-icon>replay</mat-icon>\n {{config.resetFilesButtonText}}\n </button>\n\n <button\n mat-button\n type=\"button\"\n color=\"primary\"\n [disabled]=\"(disabled$ | async)\"\n (click)=\"fileInput.click()\"\n [attr.aria-label]=\"config.controlName\">\n <mat-icon>\n camera\n </mat-icon>\n SELECT\n </button>\n </div>\n </div>\n\n </mat-form-field>\n\n</crispr-field-container>\n", styles: [":host ::ng-deep .mat-form-field .mat-form-field-infix{padding-top:0}:host ::ng-deep .mat-form-field .mat-button-wrapper{display:flex;flex-direction:column;align-items:center;padding-top:8px}:host .ui-container{display:flex;flex-direction:column}:host .ui-container .image-preview{display:flex;flex-direction:column;align-content:space-between;justify-content:center;align-items:center;margin:8px 0;flex-grow:1}:host .ui-container .image-preview crispr-selected-file{width:100%}:host .ui-container .image-preview .drop-container{display:flex;flex-direction:column;align-items:center;border:3px dashed gray;height:100%;width:100%;align-content:center;justify-content:center;border-radius:8px}:host .ui-container .image-preview .drop-container .drop-icon{height:32px;width:32px;font-size:36px}:host .ui-container .image-preview .drop-container .mat-h2{margin:0}:host .ui-container .image-preview img{height:inherit;max-width:100%}:host .ui-container .button-container{display:flex;flex-direction:var(--image-upload-button-container-direction);justify-content:flex-end}:host .ui-container .button-container button{margin-left:8px}:host input{position:absolute;max-height:0;visibility:hidden}\n"] }]
|
|
145
|
+
}], ctorParameters: function () { return [{ type: i1.NgControl, decorators: [{
|
|
146
|
+
type: Optional
|
|
147
|
+
}, {
|
|
148
|
+
type: Self
|
|
149
|
+
}] }, { type: i2.DomSanitizer }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { fileInputRef: [{
|
|
150
|
+
type: ViewChild,
|
|
151
|
+
args: ['fileInput']
|
|
152
|
+
}] } });
|
|
153
|
+
export class ImageUploadFieldModule {
|
|
154
|
+
}
|
|
155
|
+
ImageUploadFieldModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: ImageUploadFieldModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
156
|
+
ImageUploadFieldModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: ImageUploadFieldModule, declarations: [ImageUploadFieldComponent], imports: [CommonModule,
|
|
157
|
+
FieldContainerModule,
|
|
158
|
+
ReactiveFormsModule,
|
|
159
|
+
MatIconModule,
|
|
160
|
+
MatButtonModule,
|
|
161
|
+
MatFormFieldModule,
|
|
162
|
+
MatInputModule,
|
|
163
|
+
SelectedFileModule,
|
|
164
|
+
FileUploadFieldModule,
|
|
165
|
+
FormValidationHandlerModule], exports: [ImageUploadFieldComponent] });
|
|
166
|
+
ImageUploadFieldModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: ImageUploadFieldModule, imports: [[
|
|
167
|
+
CommonModule,
|
|
168
|
+
FieldContainerModule,
|
|
169
|
+
ReactiveFormsModule,
|
|
170
|
+
MatIconModule,
|
|
171
|
+
MatButtonModule,
|
|
172
|
+
MatFormFieldModule,
|
|
173
|
+
MatInputModule,
|
|
174
|
+
SelectedFileModule,
|
|
175
|
+
FileUploadFieldModule,
|
|
176
|
+
FormValidationHandlerModule
|
|
177
|
+
]] });
|
|
178
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: ImageUploadFieldModule, decorators: [{
|
|
179
|
+
type: NgModule,
|
|
180
|
+
args: [{
|
|
181
|
+
imports: [
|
|
182
|
+
CommonModule,
|
|
183
|
+
FieldContainerModule,
|
|
184
|
+
ReactiveFormsModule,
|
|
185
|
+
MatIconModule,
|
|
186
|
+
MatButtonModule,
|
|
187
|
+
MatFormFieldModule,
|
|
188
|
+
MatInputModule,
|
|
189
|
+
SelectedFileModule,
|
|
190
|
+
FileUploadFieldModule,
|
|
191
|
+
FormValidationHandlerModule
|
|
192
|
+
],
|
|
193
|
+
exports: [
|
|
194
|
+
ImageUploadFieldComponent
|
|
195
|
+
],
|
|
196
|
+
declarations: [
|
|
197
|
+
ImageUploadFieldComponent
|
|
198
|
+
]
|
|
199
|
+
}]
|
|
200
|
+
}] });
|
|
201
|
+
export function maxFileSizeValidator(maxFileSize) {
|
|
202
|
+
return (control) => {
|
|
203
|
+
const controlValue = control.value;
|
|
204
|
+
if (!(controlValue instanceof Blob))
|
|
205
|
+
return null;
|
|
206
|
+
const actualFileSize = +convertBytesToMb(controlValue.size).toPrecision(3);
|
|
207
|
+
if (maxFileSize > actualFileSize)
|
|
208
|
+
return null;
|
|
209
|
+
control.setErrors({ maxFileSize: { maxFileSize, actualFileSize } });
|
|
210
|
+
return { maxFileSize: { maxFileSize, actualFileSize } };
|
|
211
|
+
};
|
|
212
|
+
}
|
|
213
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtdXBsb2FkLWZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY3Jpc3ByLWZvcm1zL3NyYy9saWIvbWF0ZXJpYWwvaW1hZ2UtdXBsb2FkLWZpZWxkL2ltYWdlLXVwbG9hZC1maWVsZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NyaXNwci1mb3Jtcy9zcmMvbGliL21hdGVyaWFsL2ltYWdlLXVwbG9hZC1maWVsZC9pbWFnZS11cGxvYWQtZmllbGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFNBQVMsRUFFVCx1QkFBdUIsRUFDdkIsUUFBUSxFQUNSLElBQUksRUFDSixpQkFBaUIsRUFDakIsUUFBUSxFQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBcUMsU0FBUyxFQUFFLG1CQUFtQixFQUFpQyxNQUFNLGdCQUFnQixDQUFDO0FBQ2xJLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RCxPQUFPLGdCQUFnQixNQUFNLDJCQUEyQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxhQUFhLEVBQWMsRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM5RCxPQUFPLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUs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QUFDLENBQUE7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgVmlld0NoaWxkLFxuICBPbkluaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBPcHRpb25hbCxcbiAgU2VsZixcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIE5nTW9kdWxlXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEZvcm1Db250cm9sLCBOZ0NvbnRyb2wsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIFZhbGlkYXRpb25FcnJvcnMsIFZhbGlkYXRvckZuIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCBpbWFnZUNvbXByZXNzaW9uIGZyb20gJ2Jyb3dzZXItaW1hZ2UtY29tcHJlc3Npb24nO1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgT2JzZXJ2YWJsZSwgb2YsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCwgc2hhcmVSZXBsYXksIHN0YXJ0V2l0aCwgc3dpdGNoTWFwLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBGaWxlVXBsb2FkRmllbGRNb2R1bGUgfSBmcm9tICcuLi9maWxlLXVwbG9hZCc7XG5pbXBvcnQgeyBjcmlzcHJDb250cm9sTWl4aW4sIENyaXNwckZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYWJzdHJhY3RzJztcbmltcG9ydCB7IEZpZWxkQ29udGFpbmVyTW9kdWxlIH0gZnJvbSAnLi4vLi4vZmllbGQtY29udGFpbmVyL2ZpZWxkLWNvbnRhaW5lci5jb21wb25lbnQnO1xuaW1wb3J0IHR5cGUgeyBJbWFnZVVwbG9hZEZpZWxkQ29uZmlnIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2ltYWdlLXVwbG9hZC1maWVsZC5jb25maWcnO1xuaW1wb3J0IHsgY29udmVydEJ5dGVzVG9NYiB9IGZyb20gJy4vaW1hZ2UtY29tcHJlc3Npb24uaGVscGVycyc7XG5pbXBvcnQgeyBTZWxlY3RlZEZpbGVNb2R1bGUgfSBmcm9tICcuLi9zZWxlY3RlZC1maWxlL3NlbGVjdGVkLWZpbGUuY29tcG9uZW50JztcbmltcG9ydCB7IEZvcm1WYWxpZGF0aW9uSGFuZGxlck1vZHVsZSB9IGZyb20gJ0B0ZnQvZm9ybS12YWxpZGF0aW9uLWhhbmRsZXInO1xuXG5jb25zdCBJbWFnZVVwbG9hZEZpZWxkTWl4aW4gPSBjcmlzcHJDb250cm9sTWl4aW48SW1hZ2VVcGxvYWRGaWVsZENvbmZpZz4oQ3Jpc3ByRmllbGRDb21wb25lbnQpO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjcmlzcHItaW1hZ2UtdXBsb2FkLWZpZWxkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ltYWdlLXVwbG9hZC1maWVsZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2ltYWdlLXVwbG9hZC1maWVsZC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgSW1hZ2VVcGxvYWRGaWVsZENvbXBvbmVudCBleHRlbmRzIEltYWdlVXBsb2FkRmllbGRNaXhpbiBpbXBsZW1lbnRzIE9uSW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuXG4gIG9uQ2hhbmdlOiAoKSA9PiB2b2lkO1xuXG4gIGRlZmF1bHRDb25maWc6IFBhcnRpYWw8SW1hZ2VVcGxvYWRGaWVsZENvbmZpZz4gPSB7XG4gICAgLy8gYWxsb3dNdWx0aXBsZUZpbGVzOiBmYWxzZSxcbiAgICBhY2NlcHRlZFR5cGVzOiAnaW1hZ2UvKicsXG4gICAgZHJvcFpvbmVUZXh0OiAnRFJPUCBGSUxFIEhFUkUnLFxuICAgIHNlbGVjdEZpbGVzQnV0dG9uVHlwZTogJ2J1dHRvbicsXG4gICAgc2VsZWN0QnV0dG9uVGV4dDogJ1NFTEVDVCcsXG4gICAgc2hvd0NsZWFyRmlsZXNCdXR0b246IHRydWUsXG4gICAgY2xlYXJGaWxlc0J1dHRvblRleHQ6ICdDTEVBUicsXG4gICAgcmVzZXRGaWxlc0J1dHRvblRleHQ6ICdSRVNFVCcsXG4gICAgaW1hZ2VQcmV2aWV3SGVpZ2h0OiAnMjUwcHgnLFxuICAgIGNvbXByZXNzSW1hZ2U6IGZhbHNlLFxuICAgIHRhcmdldENvbXByZXNzZWRJbWFnZUZpbGVTaXplTWI6IC40LFxuICAgIG1pbkNvbXByZXNzaW9uVGhyZXNob2xkTWI6IC42LFxuICAgIHVzZVdlYldvcmtlcjogdHJ1ZSxcbiAgfVxuXG4gIHByb2dyZXNzOiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gIHByaXZhdGUgaW5wdXRJbWFnZUZpbGVTdWJqZWN0ID0gbmV3IFN1YmplY3Q8RmlsZSB8IHN0cmluZyB8IG51bGw+KCk7XG5cbiAgaW5wdXRJbWFnZUZpbGUkID0gdGhpcy5pbnB1dEltYWdlRmlsZVN1YmplY3QuYXNPYnNlcnZhYmxlKCkucGlwZShcbiAgICBzaGFyZVJlcGxheSgxKSxcbiAgKTtcblxuICBjb21wcmVzc2VkRmlsZSQ6IE9ic2VydmFibGU8RmlsZT4gPSB0aGlzLmlucHV0SW1hZ2VGaWxlJC5waXBlKFxuICAgIHN3aXRjaE1hcChhc3luYyAoZmlsZSkgPT4ge1xuICAgICAgaWYgKCFmaWxlKSByZXR1cm4gbnVsbDtcbiAgICAgIGlmICh0eXBlb2YgZmlsZSA9PT0gJ3N0cmluZycpIHJldHVybiBmaWxlXG4gICAgICBjb25zdCB7IGNvbXByZXNzSW1hZ2UsIHRhcmdldENvbXByZXNzZWRJbWFnZUZpbGVTaXplTWIsIG1pbkNvbXByZXNzaW9uVGhyZXNob2xkTWIsIG1heFdpZHRoT3JIZWlnaHQsIHVzZVdlYldvcmtlciB9ID0gdGhpcy5jb25maWc7XG4gICAgICBjb25zdCBmaWxlU2l6ZU1iID0gY29udmVydEJ5dGVzVG9NYihmaWxlLnNpemUpO1xuICAgICAgY29uc3Qgc2hvdWxkQ29tcHJlc3MgPSBjb21wcmVzc0ltYWdlICYmIHRhcmdldENvbXByZXNzZWRJbWFnZUZpbGVTaXplTWIgPCBmaWxlU2l6ZU1iICYmIG1pbkNvbXByZXNzaW9uVGhyZXNob2xkTWIgPCBmaWxlU2l6ZU1iXG4gICAgICBpZiAoc2hvdWxkQ29tcHJlc3MpIHtcbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgICAgICAvLyBVc2UgbWF4V2lkdGhPckhlaWdodCBpZiBpdCB3YXMgcHJvdmlkZWQsIGVsc2UgdXNlIHRhcmdldCBjb21wcmVzc2VkIHNpemVcbiAgICAgICAgICAuLi4obWF4V2lkdGhPckhlaWdodCA/IHttYXhXaWR0aE9ySGVpZ2h0fSA6IHsgbWF4U2l6ZU1COiB0YXJnZXRDb21wcmVzc2VkSW1hZ2VGaWxlU2l6ZU1ifSksXG4gICAgICAgICAgdXNlV2ViV29ya2VyLFxuICAgICAgICAgIG1heEl0ZXJhdGlvbnM6IDMwLFxuICAgICAgICAgIG9uUHJvZ3Jlc3M6IChwOiBudW1iZXIpID0+IHtcbiAgICAgICAgICAgIHRoaXMucHJvZ3Jlc3MgPSBwO1xuICAgICAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjb21wcmVzc2VkRmlsZSA9IGF3YWl0IGltYWdlQ29tcHJlc3Npb24oZmlsZSwgb3B0aW9ucylcbiAgICAgICAgcmV0dXJuIGNvbXByZXNzZWRGaWxlO1xuICAgICAgfSBlbHNlIHJldHVybiBmaWxlO1xuICAgIH0pLFxuICAgIHRhcChmaWxlID0+IHtcbiAgICAgIHRoaXMuY29udHJvbC5zZXRWYWx1ZShmaWxlKTtcbiAgICAgIGlmIChmaWxlIHx8IHRoaXMudmFsdWUpIHtcbiAgICAgICAgdGhpcy5jb250cm9sLm1hcmtBc1RvdWNoZWQoKTtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9LCAxMDApXG4gICAgICB9XG4gICAgfSksXG4gICAgbWFwKGZpbGUgPT4gdHlwZW9mIGZpbGUgPT09ICdzdHJpbmcnID8gbnVsbCA6IGZpbGUpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gIClcblxuICBjb21wcmVzc2VkSW1hZ2VVcmxTdHJpbmckOiBPYnNlcnZhYmxlPHN0cmluZyB8IG51bGw+ID0gdGhpcy5jb21wcmVzc2VkRmlsZSQucGlwZShcbiAgICBzd2l0Y2hNYXAoYXN5bmMgKGZpbGUpID0+IHtcbiAgICAgIGlmKCFmaWxlKSByZXR1cm4gbnVsbDtcbiAgICAgIGNvbnN0IGNvbXByZXNzZWRTdHJpbmdJbWFnZSA9IGF3YWl0IGltYWdlQ29tcHJlc3Npb24uZ2V0RGF0YVVybEZyb21GaWxlKGZpbGUpO1xuICAgICAgcmV0dXJuIGZpbGUudHlwZS5pbmNsdWRlcygnc3ZnJylcbiAgICAgICAgPyB0aGlzLmRvbVNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0UmVzb3VyY2VVcmwoY29tcHJlc3NlZFN0cmluZ0ltYWdlKSBhcyBzdHJpbmdcbiAgICAgICAgOiBjb21wcmVzc2VkU3RyaW5nSW1hZ2U7XG4gICAgfSksXG4gICAgc2hhcmVSZXBsYXkoMSksXG4gIClcblxuICAvLyBUaGlzIGlzIHdoYXQgaXMgZGlzcGxheWVkIGJ5IHRoZSBpbWFnZSBwcmV2aWV3XG4gIGltYWdlU3JjVXJsJDogT2JzZXJ2YWJsZTxzdHJpbmcgfCBudWxsPjtcblxuICBAVmlld0NoaWxkKCdmaWxlSW5wdXQnKSBmaWxlSW5wdXRSZWY6IEVsZW1lbnRSZWZcblxuICBzZWxlY3RlZEZpbGVzOiBGaWxlTGlzdDtcblxuICBpc1VwbG9hZGVkID0gZmFsc2U7XG5cbiAgZGlzYWJsZWQkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuXG4gIC8vIG5nQ29udHJvbDogTmdDb250cm9sID0gbnVsbDtcbiAgY29uc3RydWN0b3IoXG4gICAgQE9wdGlvbmFsKCkgQFNlbGYoKSBwdWJsaWMgbmdDb250cm9sOiBOZ0NvbnRyb2wsXG4gICAgcHJpdmF0ZSBkb21TYW5pdGl6ZXI6IERvbVNhbml0aXplcixcbiAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICkge1xuICAgIHN1cGVyKCk7XG4gICAgaWYgKHRoaXMubmdDb250cm9sICE9IG51bGwpIHtcbiAgICAgIC8vIFNldHRpbmcgdGhlIHZhbHVlIGFjY2Vzc29yIGRpcmVjdGx5IChpbnN0ZWFkIG9mIHVzaW5nXG4gICAgICAvLyB0aGUgcHJvdmlkZXJzKSB0byBhdm9pZCBydW5uaW5nIGludG8gYSBjaXJjdWxhciBpbXBvcnQuXG4gICAgICBuZ0NvbnRyb2wudmFsdWVBY2Nlc3NvciA9IHRoaXM7XG4gICAgfVxuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICB0aGlzLmltYWdlU3JjVXJsJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5jb21wcmVzc2VkSW1hZ2VVcmxTdHJpbmckLnBpcGUoc3RhcnRXaXRoKG51bGwpKSxcbiAgICAgIHRoaXMuY29udHJvbC52YWx1ZUNoYW5nZXMucGlwZShzdGFydFdpdGgodGhpcy52YWx1ZSkpXG4gICAgXSkucGlwZShcbiAgICAgIG1hcCgoW2NvbXByZXNzZWRJbWFnZVVybFN0cmluZywgY29udHJvbFVybF0pID0+IHtcbiAgICAgICAgcmV0dXJuIGNvbXByZXNzZWRJbWFnZVVybFN0cmluZyB8fCB0eXBlb2YgY29udHJvbFVybCA9PT0gJ3N0cmluZycgJiYgY29udHJvbFVybCB8fCBudWxsO1xuICAgICAgfSlcbiAgICApXG4gICAgdGhpcy5kaXNhYmxlZCQgPSB0aGlzLmNvbmZpZy5kaXNhYmxlZENhbGxiYWNrXG4gICAgPyB0aGlzLmNvbmZpZy5kaXNhYmxlZENhbGxiYWNrKHRoaXMuZ3JvdXAsIHRoaXMuY29uZmlnKVxuICAgIDogb2YoZmFsc2UpO1xuICB9XG5cbiAgZmlsZXNDaGFuZ2VkKGZpbGVzOiBGaWxlTGlzdCk6IHZvaWQge1xuICAgIGlmIChmaWxlcyAmJiBmaWxlcy5sZW5ndGggPiAwICkge1xuICAgICAgY29uc3QgaW1hZ2VGaWxlID0gZmlsZXNbMF07XG4gICAgICB0aGlzLmNvbnRyb2wubWFya0FzVG91Y2hlZCgpO1xuICAgICAgdGhpcy5pbnB1dEltYWdlRmlsZVN1YmplY3QubmV4dChpbWFnZUZpbGUpO1xuICAgIH1cbiAgfVxuXG4gIGNsZWFyRmlsZUlucHV0KCk6IHZvaWQge1xuICAgIHRoaXMuaW5wdXRJbWFnZUZpbGVTdWJqZWN0Lm5leHQobnVsbCk7XG4gICAgdGhpcy5maWxlSW5wdXRSZWYubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnXG4gICAgdGhpcy5jb250cm9sLnBhdGNoVmFsdWUobnVsbCk7XG4gICAgdGhpcy5jb250cm9sLm1hcmtBc1RvdWNoZWQoKTtcbiAgICB0aGlzLmlzVXBsb2FkZWQgPSBmYWxzZTtcbiAgfVxuXG4gIHJlc2V0VG9Jbml0aWFsVmFsdWUoaW5pdGlhbFZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmlucHV0SW1hZ2VGaWxlU3ViamVjdC5uZXh0KGluaXRpYWxWYWx1ZSk7XG4gICAgLy8gdGhpcy5maWxlSW5wdXRSZWYubmF0aXZlRWxlbWVudC52YWx1ZSA9IGluaXRpYWxWYWx1ZVxuICAgIHRoaXMuaXNVcGxvYWRlZCA9IGZhbHNlO1xuICB9XG5cbiAgd3JpdGVWYWx1ZSggdmFsdWU6IG51bGwgKSB7IH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKCBmbjogKCkgPT4gdm9pZCApIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZCggZm46ICgpID0+IHZvaWQgKSB7IH1cbn1cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRmllbGRDb250YWluZXJNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBNYXRJY29uTW9kdWxlLFxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICBNYXRGb3JtRmllbGRNb2R1bGUsXG4gICAgTWF0SW5wdXRNb2R1bGUsXG4gICAgU2VsZWN0ZWRGaWxlTW9kdWxlLFxuICAgIEZpbGVVcGxvYWRGaWVsZE1vZHVsZSxcbiAgICBGb3JtVmFsaWRhdGlvbkhhbmRsZXJNb2R1bGVcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgICAgSW1hZ2VVcGxvYWRGaWVsZENvbXBvbmVudFxuICBdLFxuICBkZWNsYXJhdGlvbnM6IFtcbiAgICAgIEltYWdlVXBsb2FkRmllbGRDb21wb25lbnRcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBJbWFnZVVwbG9hZEZpZWxkTW9kdWxlIHsgfVxuXG5leHBvcnQgZnVuY3Rpb24gbWF4RmlsZVNpemVWYWxpZGF0b3IobWF4RmlsZVNpemU6IG51bWJlcik6IFZhbGlkYXRvckZuIHtcbiAgcmV0dXJuIChjb250cm9sOiBGb3JtQ29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0+IHtcbiAgICBjb25zdCBjb250cm9sVmFsdWUgPSBjb250cm9sLnZhbHVlO1xuICAgIGlmICghKGNvbnRyb2xWYWx1ZSBpbnN0YW5jZW9mIEJsb2IpKSByZXR1cm4gbnVsbDtcbiAgICBjb25zdCBhY3R1YWxGaWxlU2l6ZSA9ICtjb252ZXJ0Qnl0ZXNUb01iKGNvbnRyb2xWYWx1ZS5zaXplKS50b1ByZWNpc2lvbigzKTtcbiAgICBpZiAobWF4RmlsZVNpemUgPiBhY3R1YWxGaWxlU2l6ZSkgcmV0dXJuIG51bGw7XG4gICAgY29udHJvbC5zZXRFcnJvcnMoe21heEZpbGVTaXplOiB7IG1heEZpbGVTaXplLCBhY3R1YWxGaWxlU2l6ZSB9fSApXG4gICAgcmV0dXJuIHttYXhGaWxlU2l6ZTogeyBtYXhGaWxlU2l6ZSwgYWN0dWFsRmlsZVNpemUgfX07XG4gIH1cbn1cbiIsIjxjcmlzcHItZmllbGQtY29udGFpbmVyXG4gIFtjb25maWddPVwiY29uZmlnXCJcbiAgW2dyb3VwXT1cImdyb3VwXCI+XG5cbiAgPG1hdC1mb3JtLWZpZWxkIGZsb2F0TGFiZWw9XCJhbHdheXNcIlxuICAgIFtjb2xvcl09XCJjb25maWcuY29sb3JcIlxuICAgIFthcHBlYXJhbmNlXT1cImNvbmZpZy5hcHBlYXJhbmNlXCJcbiAgICBbZm9ybUdyb3VwXT1cImdyb3VwXCI+XG4gICAgPG1hdC1sYWJlbD57e2NvbmZpZy5sYWJlbH19PC9tYXQtbGFiZWw+XG4gICAgPGlucHV0IFtmb3JtQ29udHJvbE5hbWVdPVwiY29uZmlnLmNvbnRyb2xOYW1lXCIgbWF0SW5wdXQgdHlwZT1cInRleHRcIi8+XG4gICAgPGlucHV0XG4gICAgICAjZmlsZUlucHV0XG4gICAgICB0eXBlPVwiZmlsZVwiXG4gICAgICBbYWNjZXB0XT1cImNvbmZpZy5hY2NlcHRlZFR5cGVzXCJcbiAgICAgIChjaGFuZ2UpPVwiZmlsZXNDaGFuZ2VkKCRldmVudC50YXJnZXQuZmlsZXMpXCIvPlxuICAgIDxkaXYgY2xhc3M9XCJ1aS1jb250YWluZXJcIj5cblxuICAgICAgPGRpdiBjbGFzcz1cImltYWdlLXByZXZpZXdcIiBbc3R5bGUuaGVpZ2h0XT1cImNvbmZpZy5pbWFnZVByZXZpZXdIZWlnaHRcIj5cbiAgICAgICAgPGNyaXNwci1zZWxlY3RlZC1maWxlXG4gICAgICAgICAgKm5nSWY9XCIocHJvZ3Jlc3MgPCAxMDApICYmIGlucHV0SW1hZ2VGaWxlJCB8IGFzeW5jIGFzIGZpbGU7IGVsc2UgZHJvcHpvbmVPclByZXZpZXdcIlxuICAgICAgICAgIFtjb2xvcl09XCJjb25maWcuY29sb3IgPT09ICdwcmltYXJ5JyA/ICdhY2NlbnQnIDogJ3ByaW1hcnknXCJcbiAgICAgICAgICBbZmlsZU5hbWVdPVwiJ0NvbXByZXNzaW5nOiAnICsgZmlsZS5uYW1lXCJcbiAgICAgICAgICBbc2hvd1Byb2dyZXNzXT1cInRydWVcIlxuICAgICAgICAgIFtwcm9ncmVzc109XCJwcm9ncmVzc1wiPlxuICAgICAgICA8L2NyaXNwci1zZWxlY3RlZC1maWxlPlxuXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjZHJvcHpvbmVPclByZXZpZXc+XG4gICAgICAgICAgPCEtLSA8aW1nICpuZ0lmPVwiKGluaXRpYWxVcmxTdHJpbmckIHwgYXN5bmMpIGFzIGluaXRpYWxVcmxTdHJpbmc7XCIgW3NyY109XCJpbml0aWFsVXJsU3RyaW5nXCIgYWx0PVwiXCI+IC0tPlxuICAgICAgICAgIDxpbWcgKm5nSWY9XCJpbWFnZVNyY1VybCQgfCBhc3luYyBhcyBzcmNVcmw7IGVsc2Ugbm9JbWFnZVwiIFtzcmNdPVwic3JjVXJsXCIgYWx0PVwiXCI+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNub0ltYWdlPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRyb3AtY29udGFpbmVyXCJcbiAgICAgICAgICAgICAgW2NyaXNwckZpbGVEcm9wem9uZV09XCIhKGRpc2FibGVkJCB8IGFzeW5jKVwiXG4gICAgICAgICAgICAgIChmaWxlRHJvcCk9XCJmaWxlc0NoYW5nZWQoJGV2ZW50KVwiPlxuICAgICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJkcm9wLWljb25cIiBpbmxpbmU9XCJ0cnVlXCI+Y2xvdWRfdXBsb2FkPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgPGgyIGNsYXNzPVwibWF0LWgyXCI+e3tjb25maWcuZHJvcFpvbmVUZXh0fX08L2gyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPC9kaXY+XG5cblxuXG4gICAgICA8IS0tIDwvbmctdGVtcGxhdGU+IC0tPlxuICAgICAgPGRpdiBjbGFzcz1cImJ1dHRvbi1jb250YWluZXJcIiAqbmdJZj1cInRydWVcIj5cblxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgbWF0LWJ1dHRvblxuICAgICAgICAgIChjbGljayk9XCJjbGVhckZpbGVJbnB1dCgpXCJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiKGRpc2FibGVkJCB8IGFzeW5jKVwiXG4gICAgICAgICAgYXJpYS1sYWJlbD1cIlJlbW92ZSBTZWxlY3RlZCBGaWxlKHMpXCI+XG4gICAgICAgICAgPG1hdC1pY29uPmRlbGV0ZTwvbWF0LWljb24+XG4gICAgICAgICAge3tjb25maWcuY2xlYXJGaWxlc0J1dHRvblRleHR9fVxuICAgICAgICA8L2J1dHRvbj5cblxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgKm5nSWY9XCJ2YWx1ZVwiXG4gICAgICAgICAgbWF0LWJ1dHRvblxuICAgICAgICAgIChjbGljayk9XCJyZXNldFRvSW5pdGlhbFZhbHVlKHZhbHVlKVwiXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIihkaXNhYmxlZCQgfCBhc3luYylcIlxuICAgICAgICAgIGFyaWEtbGFiZWw9XCJSZW1vdmUgU2VsZWN0ZWQgRmlsZShzKVwiPlxuICAgICAgICAgIDxtYXQtaWNvbj5yZXBsYXk8L21hdC1pY29uPlxuICAgICAgICAgIHt7Y29uZmlnLnJlc2V0RmlsZXNCdXR0b25UZXh0fX1cbiAgICAgICAgPC9idXR0b24+XG5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIG1hdC1idXR0b25cbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCIoZGlzYWJsZWQkIHwgYXN5bmMpXCJcbiAgICAgICAgICAoY2xpY2spPVwiZmlsZUlucHV0LmNsaWNrKClcIlxuICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiY29uZmlnLmNvbnRyb2xOYW1lXCI+XG4gICAgICAgICAgPG1hdC1pY29uPlxuICAgICAgICAgICAgY2FtZXJhXG4gICAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgICAgICBTRUxFQ1RcbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICA8L21hdC1mb3JtLWZpZWxkPlxuXG48L2NyaXNwci1maWVsZC1jb250YWluZXI+XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './image-upload-field.component';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NyaXNwci1mb3Jtcy9zcmMvbGliL21hdGVyaWFsL2ltYWdlLXVwbG9hZC1maWVsZC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGdDQUFnQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9pbWFnZS11cGxvYWQtZmllbGQuY29tcG9uZW50JztcclxuIl19
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export * from './input-field/input-field.component';
|
|
2
|
+
export * from './select-field/select-field.component';
|
|
3
|
+
export * from './autocomplete-field/autocomplete-field.component';
|
|
4
|
+
export * from './autocomplete-chiplist-field/autocomplete-chiplist-field.component';
|
|
5
|
+
export * from './checkbox-field/checkbox-field.component';
|
|
6
|
+
export * from './textarea-field/textarea-field.component';
|
|
7
|
+
export * from './slider-field/slider-field.component';
|
|
8
|
+
export * from './button/button.component';
|
|
9
|
+
export * from './datepicker-field/datepicker-field.component';
|
|
10
|
+
export * from './heading/heading.component';
|
|
11
|
+
export * from './divider/divider.component';
|
|
12
|
+
export * from './radio-field/radio-field.component';
|
|
13
|
+
export * from './unit-conversion-field/unit-conversion-field.component';
|
|
14
|
+
export * from './image-upload-field';
|
|
15
|
+
export * from './file-upload';
|
|
16
|
+
export * from './material.module';
|
|
17
|
+
export * from './option';
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NyaXNwci1mb3Jtcy9zcmMvbGliL21hdGVyaWFsL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLG1EQUFtRCxDQUFDO0FBQ2xFLGNBQWMscUVBQXFFLENBQUM7QUFDcEYsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLDJDQUEyQyxDQUFDO0FBQzFELGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLCtDQUErQyxDQUFDO0FBQzlELGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMseURBQXlELENBQUM7QUFDeEUsY0FBYyxzQkFBc0IsQ0FBQTtBQUNwQyxjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsVUFBVSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9pbnB1dC1maWVsZC9pbnB1dC1maWVsZC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9zZWxlY3QtZmllbGQvc2VsZWN0LWZpZWxkLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2F1dG9jb21wbGV0ZS1maWVsZC9hdXRvY29tcGxldGUtZmllbGQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vYXV0b2NvbXBsZXRlLWNoaXBsaXN0LWZpZWxkL2F1dG9jb21wbGV0ZS1jaGlwbGlzdC1maWVsZC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jaGVja2JveC1maWVsZC9jaGVja2JveC1maWVsZC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi90ZXh0YXJlYS1maWVsZC90ZXh0YXJlYS1maWVsZC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9zbGlkZXItZmllbGQvc2xpZGVyLWZpZWxkLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vZGF0ZXBpY2tlci1maWVsZC9kYXRlcGlja2VyLWZpZWxkLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2hlYWRpbmcvaGVhZGluZy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9kaXZpZGVyL2RpdmlkZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vcmFkaW8tZmllbGQvcmFkaW8tZmllbGQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vdW5pdC1jb252ZXJzaW9uLWZpZWxkL3VuaXQtY29udmVyc2lvbi1maWVsZC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9pbWFnZS11cGxvYWQtZmllbGQnXG5leHBvcnQgKiBmcm9tICcuL2ZpbGUtdXBsb2FkJztcbmV4cG9ydCAqIGZyb20gJy4vbWF0ZXJpYWwubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vb3B0aW9uJztcbiJdfQ==
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { Component, Input, ChangeDetectionStrategy, NgModule } from '@angular/core';
|
|
3
|
+
import { MatIconModule } from '@angular/material/icon';
|
|
4
|
+
import { MatTooltipModule } from '@angular/material/tooltip';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@angular/material/icon";
|
|
7
|
+
import * as i2 from "@angular/common";
|
|
8
|
+
import * as i3 from "@angular/material/tooltip";
|
|
9
|
+
export class InfoComponent {
|
|
10
|
+
}
|
|
11
|
+
InfoComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: InfoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
12
|
+
InfoComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.1", type: InfoComponent, selector: "crispr-info", inputs: { info: "info" }, ngImport: i0, template: "<mat-icon\n *ngIf=\"info\"\n [matTooltip]=\"info.content\"\n [matTooltipPosition]=\"info.tooltipPosition || 'below'\"\n matSuffix>\n info\n</mat-icon>\n", styles: ["mat-icon{font-size:1.2em;width:1em;height:1em;opacity:.8}\n"], components: [{ type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, preserveWhitespaces: true });
|
|
13
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: InfoComponent, decorators: [{
|
|
14
|
+
type: Component,
|
|
15
|
+
args: [{ selector: 'crispr-info', changeDetection: ChangeDetectionStrategy.OnPush, template: "<mat-icon\n *ngIf=\"info\"\n [matTooltip]=\"info.content\"\n [matTooltipPosition]=\"info.tooltipPosition || 'below'\"\n matSuffix>\n info\n</mat-icon>\n", styles: ["mat-icon{font-size:1.2em;width:1em;height:1em;opacity:.8}\n"] }]
|
|
16
|
+
}], propDecorators: { info: [{
|
|
17
|
+
type: Input
|
|
18
|
+
}] } });
|
|
19
|
+
export class InfoModule {
|
|
20
|
+
}
|
|
21
|
+
InfoModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: InfoModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
22
|
+
InfoModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: InfoModule, declarations: [InfoComponent], imports: [CommonModule,
|
|
23
|
+
MatIconModule,
|
|
24
|
+
MatTooltipModule], exports: [InfoComponent] });
|
|
25
|
+
InfoModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: InfoModule, imports: [[
|
|
26
|
+
CommonModule,
|
|
27
|
+
MatIconModule,
|
|
28
|
+
MatTooltipModule
|
|
29
|
+
]] });
|
|
30
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: InfoModule, decorators: [{
|
|
31
|
+
type: NgModule,
|
|
32
|
+
args: [{
|
|
33
|
+
imports: [
|
|
34
|
+
CommonModule,
|
|
35
|
+
MatIconModule,
|
|
36
|
+
MatTooltipModule
|
|
37
|
+
],
|
|
38
|
+
exports: [
|
|
39
|
+
InfoComponent
|
|
40
|
+
],
|
|
41
|
+
declarations: [
|
|
42
|
+
InfoComponent
|
|
43
|
+
]
|
|
44
|
+
}]
|
|
45
|
+
}] });
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5mby5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NyaXNwci1mb3Jtcy9zcmMvbGliL21hdGVyaWFsL2luZm8vaW5mby5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NyaXNwci1mb3Jtcy9zcmMvbGliL21hdGVyaWFsL2luZm8vaW5mby5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsdUJBQXVCLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7QUFTN0QsTUFBTSxPQUFPLGFBQWE7OzBHQUFiLGFBQWE7OEZBQWIsYUFBYSw2RUNaMUIsK0pBT0E7MkZES2EsYUFBYTtrQkFOekIsU0FBUzsrQkFDRSxhQUFhLG1CQUdOLHVCQUF1QixDQUFDLE1BQU07OEJBSXRDLElBQUk7c0JBQVosS0FBSzs7QUFpQlIsTUFBTSxPQUFPLFVBQVU7O3VHQUFWLFVBQVU7d0dBQVYsVUFBVSxpQkFuQlYsYUFBYSxhQU9sQixZQUFZO1FBQ1osYUFBYTtRQUNiLGdCQUFnQixhQVRYLGFBQWE7d0dBbUJiLFVBQVUsWUFiVjtZQUNMLFlBQVk7WUFDWixhQUFhO1lBQ2IsZ0JBQWdCO1NBQ25COzJGQVNRLFVBQVU7a0JBZHRCLFFBQVE7bUJBQUM7b0JBQ04sT0FBTyxFQUFFO3dCQUNMLFlBQVk7d0JBQ1osYUFBYTt3QkFDYixnQkFBZ0I7cUJBQ25CO29CQUNELE9BQU8sRUFBRTt3QkFDTCxhQUFhO3FCQUNoQjtvQkFDRCxZQUFZLEVBQUU7d0JBQ1YsYUFBYTtxQkFDaEI7aUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XG5pbXBvcnQgdHlwZSB7IEluZm8gfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjcmlzcHItaW5mbycsXG4gIHRlbXBsYXRlVXJsOiAnLi9pbmZvLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vaW5mby5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBJbmZvQ29tcG9uZW50IHtcblxuICBASW5wdXQoKSBpbmZvOiBJbmZvO1xuXG59XG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBNYXRJY29uTW9kdWxlLFxuICAgICAgICBNYXRUb29sdGlwTW9kdWxlXG4gICAgXSxcbiAgICBleHBvcnRzOiBbXG4gICAgICAgIEluZm9Db21wb25lbnRcbiAgICBdLFxuICAgIGRlY2xhcmF0aW9uczogW1xuICAgICAgICBJbmZvQ29tcG9uZW50XG4gICAgXVxufSlcblxuZXhwb3J0IGNsYXNzIEluZm9Nb2R1bGUge1xufVxuIiwiPG1hdC1pY29uXG4gICpuZ0lmPVwiaW5mb1wiXG4gIFttYXRUb29sdGlwXT1cImluZm8uY29udGVudFwiXG4gIFttYXRUb29sdGlwUG9zaXRpb25dPVwiaW5mby50b29sdGlwUG9zaXRpb24gfHwgJ2JlbG93J1wiXG4gIG1hdFN1ZmZpeD5cbiAgaW5mb1xuPC9tYXQtaWNvbj5cbiJdfQ==
|
|
@@ -0,0 +1,27 @@
|
|
|
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/form-field";
|
|
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/material/input";
|
|
10
|
+
import * as i7 from "@angular/common";
|
|
11
|
+
const InputFieldMixin = crisprControlMixin(CrisprFieldComponent);
|
|
12
|
+
export class InputFieldComponent extends InputFieldMixin {
|
|
13
|
+
constructor() {
|
|
14
|
+
super();
|
|
15
|
+
this.defaultConfig = { inputType: 'text' };
|
|
16
|
+
}
|
|
17
|
+
ngOnInit() {
|
|
18
|
+
super.ngOnInit();
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
InputFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: InputFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
22
|
+
InputFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.1", type: InputFieldComponent, selector: "crispr-input-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>\n {{config.label}}\n </mat-label>\n <input\n [type]=\"config.inputType\"\n matInput\n [placeholder]=\"config.placeholder\"\n [formControlName]=\"config.controlName\"\n [min]=\"config.min\"\n [max]=\"config.max\"\n [maxlength]=\"config.maxLength\"\n [step]=\"config.step\"\n [autofocus]=\"config.autofocus\"\n [pattern]=\"config.pattern\"\n [spellcheck]=\"config.spellcheck\"\n [autocomplete]=\"config.autoComplete\"\n [autocapitalize]=\"config.autoCapitalize\">\n <span *ngIf=\"config.fieldSuffix\" matSuffix>{{config.fieldSuffix}}</span>\n <crispr-info\n matSuffix\n *ngIf=\"config.info\"\n [info]=\"config.info\">\n </crispr-info>\n\n </mat-form-field>\n\n\n</crispr-field-container>\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.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: i2.MatLabel, selector: "mat-label" }, { type: i6.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { 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: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { type: i5.ControlErrorsDirective, selector: "[formControl], [formControlName]" }, { type: i4.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { type: i4.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.MatSuffix, selector: "[matSuffix]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, preserveWhitespaces: true });
|
|
23
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: InputFieldComponent, decorators: [{
|
|
24
|
+
type: Component,
|
|
25
|
+
args: [{ selector: 'crispr-input-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>\n {{config.label}}\n </mat-label>\n <input\n [type]=\"config.inputType\"\n matInput\n [placeholder]=\"config.placeholder\"\n [formControlName]=\"config.controlName\"\n [min]=\"config.min\"\n [max]=\"config.max\"\n [maxlength]=\"config.maxLength\"\n [step]=\"config.step\"\n [autofocus]=\"config.autofocus\"\n [pattern]=\"config.pattern\"\n [spellcheck]=\"config.spellcheck\"\n [autocomplete]=\"config.autoComplete\"\n [autocapitalize]=\"config.autoCapitalize\">\n <span *ngIf=\"config.fieldSuffix\" matSuffix>{{config.fieldSuffix}}</span>\n <crispr-info\n matSuffix\n *ngIf=\"config.info\"\n [info]=\"config.info\">\n </crispr-info>\n\n </mat-form-field>\n\n\n</crispr-field-container>\n", styles: [""] }]
|
|
26
|
+
}], ctorParameters: function () { return []; } });
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZmllbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jcmlzcHItZm9ybXMvc3JjL2xpYi9tYXRlcmlhbC9pbnB1dC1maWVsZC9pbnB1dC1maWVsZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NyaXNwci1mb3Jtcy9zcmMvbGliL21hdGVyaWFsL2lucHV0LWZpZWxkL2lucHV0LWZpZWxkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsdUJBQXVCLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFFM0UsT0FBTyxFQUFFLGtCQUFrQixFQUFFLG9CQUFvQixFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7Ozs7OztBQUUzRSxNQUFNLGVBQWUsR0FBRyxrQkFBa0IsQ0FBbUIsb0JBQW9CLENBQUMsQ0FBQztBQU9uRixNQUFNLE9BQU8sbUJBQW9CLFNBQVEsZUFBZTtJQUd0RDtRQUNFLEtBQUssRUFBRSxDQUFDO1FBRlYsa0JBQWEsR0FBOEIsRUFBQyxTQUFTLEVBQUUsTUFBTSxFQUFDLENBQUM7SUFHL0QsQ0FBQztJQUVELFFBQVE7UUFDTixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDbkIsQ0FBQzs7Z0hBVFUsbUJBQW1CO29HQUFuQixtQkFBbUIsaUZDWGhDLGkrQkFtQ0E7MkZEeEJhLG1CQUFtQjtrQkFOL0IsU0FBUzsrQkFDRSxvQkFBb0IsbUJBR2IsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSW5wdXRGaWVsZENvbmZpZyB9IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyBjcmlzcHJDb250cm9sTWl4aW4sIENyaXNwckZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYWJzdHJhY3RzJztcblxuY29uc3QgSW5wdXRGaWVsZE1peGluID0gY3Jpc3ByQ29udHJvbE1peGluPElucHV0RmllbGRDb25maWc+KENyaXNwckZpZWxkQ29tcG9uZW50KTtcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NyaXNwci1pbnB1dC1maWVsZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9pbnB1dC1maWVsZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2lucHV0LWZpZWxkLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIElucHV0RmllbGRDb21wb25lbnQgZXh0ZW5kcyBJbnB1dEZpZWxkTWl4aW4gaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIGRlZmF1bHRDb25maWc6IFBhcnRpYWw8SW5wdXRGaWVsZENvbmZpZz4gPSB7aW5wdXRUeXBlOiAndGV4dCd9O1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgc3VwZXIubmdPbkluaXQoKTtcbiAgfVxufVxuIiwiPGNyaXNwci1maWVsZC1jb250YWluZXJcbiAgW2NvbmZpZ109XCJjb25maWdcIlxuICBbZ3JvdXBdPVwiZ3JvdXBcIj5cbiAgPG1hdC1mb3JtLWZpZWxkXG4gICAgW2NvbG9yXT1cImNvbmZpZy5jb2xvclwiXG4gICAgW2FwcGVhcmFuY2VdPVwiY29uZmlnLmFwcGVhcmFuY2VcIlxuICAgIFtmb3JtR3JvdXBdPVwiZ3JvdXBcIj5cbiAgICA8bWF0LWxhYmVsPlxuICAgICAge3tjb25maWcubGFiZWx9fVxuICAgIDwvbWF0LWxhYmVsPlxuICAgIDxpbnB1dFxuICAgICAgW3R5cGVdPVwiY29uZmlnLmlucHV0VHlwZVwiXG4gICAgICBtYXRJbnB1dFxuICAgICAgW3BsYWNlaG9sZGVyXT1cImNvbmZpZy5wbGFjZWhvbGRlclwiXG4gICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImNvbmZpZy5jb250cm9sTmFtZVwiXG4gICAgICBbbWluXT1cImNvbmZpZy5taW5cIlxuICAgICAgW21heF09XCJjb25maWcubWF4XCJcbiAgICAgIFttYXhsZW5ndGhdPVwiY29uZmlnLm1heExlbmd0aFwiXG4gICAgICBbc3RlcF09XCJjb25maWcuc3RlcFwiXG4gICAgICBbYXV0b2ZvY3VzXT1cImNvbmZpZy5hdXRvZm9jdXNcIlxuICAgICAgW3BhdHRlcm5dPVwiY29uZmlnLnBhdHRlcm5cIlxuICAgICAgW3NwZWxsY2hlY2tdPVwiY29uZmlnLnNwZWxsY2hlY2tcIlxuICAgICAgW2F1dG9jb21wbGV0ZV09XCJjb25maWcuYXV0b0NvbXBsZXRlXCJcbiAgICAgIFthdXRvY2FwaXRhbGl6ZV09XCJjb25maWcuYXV0b0NhcGl0YWxpemVcIj5cbiAgICA8c3BhbiAqbmdJZj1cImNvbmZpZy5maWVsZFN1ZmZpeFwiIG1hdFN1ZmZpeD57e2NvbmZpZy5maWVsZFN1ZmZpeH19PC9zcGFuPlxuICAgIDxjcmlzcHItaW5mb1xuICAgICAgbWF0U3VmZml4XG4gICAgICAqbmdJZj1cImNvbmZpZy5pbmZvXCJcbiAgICAgIFtpbmZvXT1cImNvbmZpZy5pbmZvXCI+XG4gICAgPC9jcmlzcHItaW5mbz5cblxuICA8L21hdC1mb3JtLWZpZWxkPlxuXG5cbjwvY3Jpc3ByLWZpZWxkLWNvbnRhaW5lcj5cbiJdfQ==
|
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { ReactiveFormsModule } from '@angular/forms';
|
|
4
|
+
import { MatAutocompleteModule } from '@angular/material/autocomplete';
|
|
5
|
+
import { MatButtonModule } from '@angular/material/button';
|
|
6
|
+
import { MatButtonToggleModule } from '@angular/material/button-toggle';
|
|
7
|
+
import { MatCheckboxModule } from '@angular/material/checkbox';
|
|
8
|
+
import { MatChipsModule } from '@angular/material/chips';
|
|
9
|
+
import { MatDatepickerModule } from '@angular/material/datepicker';
|
|
10
|
+
import { MatFormFieldModule } from '@angular/material/form-field';
|
|
11
|
+
import { MatIconModule } from '@angular/material/icon';
|
|
12
|
+
import { MatInputModule } from '@angular/material/input';
|
|
13
|
+
import { MatRadioModule } from '@angular/material/radio';
|
|
14
|
+
import { MatSelectModule } from '@angular/material/select';
|
|
15
|
+
import { MatSlideToggleModule } from '@angular/material/slide-toggle';
|
|
16
|
+
import { MatSliderModule } from '@angular/material/slider';
|
|
17
|
+
import { MatTooltipModule } from '@angular/material/tooltip';
|
|
18
|
+
import { MatDividerModule } from '@angular/material/divider';
|
|
19
|
+
import { MatProgressBarModule } from '@angular/material/progress-bar';
|
|
20
|
+
import { FormValidationHandlerModule } from '@tft/form-validation-handler';
|
|
21
|
+
import { FieldContainerModule } from '../field-container/field-container.component';
|
|
22
|
+
import { InputFieldComponent } from './input-field/input-field.component';
|
|
23
|
+
import { SelectFieldComponent } from './select-field/select-field.component';
|
|
24
|
+
import { AutocompleteFieldComponent } from './autocomplete-field/autocomplete-field.component';
|
|
25
|
+
import { CheckboxFieldComponent } from './checkbox-field/checkbox-field.component';
|
|
26
|
+
import { TextareaFieldComponent } from './textarea-field/textarea-field.component';
|
|
27
|
+
import { ButtonComponent } from './button/button.component';
|
|
28
|
+
import { DatepickerFieldComponent } from './datepicker-field/datepicker-field.component';
|
|
29
|
+
import { MatMomentDateModule } from '@angular/material-moment-adapter';
|
|
30
|
+
import { HeadingModule } from './heading/heading.component';
|
|
31
|
+
import { InfoModule } from './info/info.component';
|
|
32
|
+
import { SliderFieldComponent } from './slider-field/slider-field.component';
|
|
33
|
+
import { DividerComponent } from './divider/divider.component';
|
|
34
|
+
// tslint:disable-next-line: max-line-length
|
|
35
|
+
import { AutocompleteChiplistFieldComponent } from './autocomplete-chiplist-field/autocomplete-chiplist-field.component';
|
|
36
|
+
import { OptionComponent } from './option/option.component';
|
|
37
|
+
import { RadioFieldComponent } from './radio-field/radio-field.component';
|
|
38
|
+
import { UnitConversionFieldComponent } from './unit-conversion-field/unit-conversion-field.component';
|
|
39
|
+
import { PortalModule } from '@angular/cdk/portal';
|
|
40
|
+
import { FileUploadFieldModule } from './file-upload';
|
|
41
|
+
import * as i0 from "@angular/core";
|
|
42
|
+
// TODO: Should we import UI library?
|
|
43
|
+
// Will the tree shaker shake the unused modules?
|
|
44
|
+
const MAT_DESIGN_MODULES = [
|
|
45
|
+
MatIconModule,
|
|
46
|
+
MatAutocompleteModule,
|
|
47
|
+
MatDatepickerModule,
|
|
48
|
+
MatInputModule,
|
|
49
|
+
MatRadioModule,
|
|
50
|
+
MatSelectModule,
|
|
51
|
+
MatCheckboxModule,
|
|
52
|
+
MatChipsModule,
|
|
53
|
+
MatSliderModule,
|
|
54
|
+
MatSlideToggleModule,
|
|
55
|
+
MatButtonModule,
|
|
56
|
+
MatButtonToggleModule,
|
|
57
|
+
MatChipsModule,
|
|
58
|
+
MatTooltipModule,
|
|
59
|
+
MatFormFieldModule,
|
|
60
|
+
MatMomentDateModule,
|
|
61
|
+
MatDividerModule,
|
|
62
|
+
MatProgressBarModule,
|
|
63
|
+
PortalModule
|
|
64
|
+
];
|
|
65
|
+
const CRISPR_FIELDS = [
|
|
66
|
+
InputFieldComponent,
|
|
67
|
+
SelectFieldComponent,
|
|
68
|
+
RadioFieldComponent,
|
|
69
|
+
AutocompleteFieldComponent,
|
|
70
|
+
AutocompleteChiplistFieldComponent,
|
|
71
|
+
CheckboxFieldComponent,
|
|
72
|
+
TextareaFieldComponent,
|
|
73
|
+
DatepickerFieldComponent,
|
|
74
|
+
SliderFieldComponent,
|
|
75
|
+
ButtonComponent,
|
|
76
|
+
DividerComponent,
|
|
77
|
+
UnitConversionFieldComponent,
|
|
78
|
+
OptionComponent,
|
|
79
|
+
];
|
|
80
|
+
export class MaterialModule {
|
|
81
|
+
}
|
|
82
|
+
MaterialModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: MaterialModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
83
|
+
MaterialModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: MaterialModule, declarations: [InputFieldComponent,
|
|
84
|
+
SelectFieldComponent,
|
|
85
|
+
RadioFieldComponent,
|
|
86
|
+
AutocompleteFieldComponent,
|
|
87
|
+
AutocompleteChiplistFieldComponent,
|
|
88
|
+
CheckboxFieldComponent,
|
|
89
|
+
TextareaFieldComponent,
|
|
90
|
+
DatepickerFieldComponent,
|
|
91
|
+
SliderFieldComponent,
|
|
92
|
+
ButtonComponent,
|
|
93
|
+
DividerComponent,
|
|
94
|
+
UnitConversionFieldComponent,
|
|
95
|
+
OptionComponent], imports: [CommonModule,
|
|
96
|
+
ReactiveFormsModule,
|
|
97
|
+
FormValidationHandlerModule,
|
|
98
|
+
InfoModule,
|
|
99
|
+
FileUploadFieldModule,
|
|
100
|
+
HeadingModule,
|
|
101
|
+
FieldContainerModule, MatIconModule,
|
|
102
|
+
MatAutocompleteModule,
|
|
103
|
+
MatDatepickerModule,
|
|
104
|
+
MatInputModule,
|
|
105
|
+
MatRadioModule,
|
|
106
|
+
MatSelectModule,
|
|
107
|
+
MatCheckboxModule,
|
|
108
|
+
MatChipsModule,
|
|
109
|
+
MatSliderModule,
|
|
110
|
+
MatSlideToggleModule,
|
|
111
|
+
MatButtonModule,
|
|
112
|
+
MatButtonToggleModule,
|
|
113
|
+
MatChipsModule,
|
|
114
|
+
MatTooltipModule,
|
|
115
|
+
MatFormFieldModule,
|
|
116
|
+
MatMomentDateModule,
|
|
117
|
+
MatDividerModule,
|
|
118
|
+
MatProgressBarModule,
|
|
119
|
+
PortalModule], exports: [MatIconModule,
|
|
120
|
+
MatAutocompleteModule,
|
|
121
|
+
MatDatepickerModule,
|
|
122
|
+
MatInputModule,
|
|
123
|
+
MatRadioModule,
|
|
124
|
+
MatSelectModule,
|
|
125
|
+
MatCheckboxModule,
|
|
126
|
+
MatChipsModule,
|
|
127
|
+
MatSliderModule,
|
|
128
|
+
MatSlideToggleModule,
|
|
129
|
+
MatButtonModule,
|
|
130
|
+
MatButtonToggleModule,
|
|
131
|
+
MatChipsModule,
|
|
132
|
+
MatTooltipModule,
|
|
133
|
+
MatFormFieldModule,
|
|
134
|
+
MatMomentDateModule,
|
|
135
|
+
MatDividerModule,
|
|
136
|
+
MatProgressBarModule,
|
|
137
|
+
PortalModule, InputFieldComponent,
|
|
138
|
+
SelectFieldComponent,
|
|
139
|
+
RadioFieldComponent,
|
|
140
|
+
AutocompleteFieldComponent,
|
|
141
|
+
AutocompleteChiplistFieldComponent,
|
|
142
|
+
CheckboxFieldComponent,
|
|
143
|
+
TextareaFieldComponent,
|
|
144
|
+
DatepickerFieldComponent,
|
|
145
|
+
SliderFieldComponent,
|
|
146
|
+
ButtonComponent,
|
|
147
|
+
DividerComponent,
|
|
148
|
+
UnitConversionFieldComponent,
|
|
149
|
+
OptionComponent] });
|
|
150
|
+
MaterialModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: MaterialModule, imports: [[
|
|
151
|
+
CommonModule,
|
|
152
|
+
ReactiveFormsModule,
|
|
153
|
+
FormValidationHandlerModule,
|
|
154
|
+
InfoModule,
|
|
155
|
+
FileUploadFieldModule,
|
|
156
|
+
HeadingModule,
|
|
157
|
+
FieldContainerModule,
|
|
158
|
+
...MAT_DESIGN_MODULES,
|
|
159
|
+
], MatIconModule,
|
|
160
|
+
MatAutocompleteModule,
|
|
161
|
+
MatDatepickerModule,
|
|
162
|
+
MatInputModule,
|
|
163
|
+
MatRadioModule,
|
|
164
|
+
MatSelectModule,
|
|
165
|
+
MatCheckboxModule,
|
|
166
|
+
MatChipsModule,
|
|
167
|
+
MatSliderModule,
|
|
168
|
+
MatSlideToggleModule,
|
|
169
|
+
MatButtonModule,
|
|
170
|
+
MatButtonToggleModule,
|
|
171
|
+
MatChipsModule,
|
|
172
|
+
MatTooltipModule,
|
|
173
|
+
MatFormFieldModule,
|
|
174
|
+
MatMomentDateModule,
|
|
175
|
+
MatDividerModule,
|
|
176
|
+
MatProgressBarModule,
|
|
177
|
+
PortalModule] });
|
|
178
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: MaterialModule, decorators: [{
|
|
179
|
+
type: NgModule,
|
|
180
|
+
args: [{
|
|
181
|
+
imports: [
|
|
182
|
+
CommonModule,
|
|
183
|
+
ReactiveFormsModule,
|
|
184
|
+
FormValidationHandlerModule,
|
|
185
|
+
InfoModule,
|
|
186
|
+
FileUploadFieldModule,
|
|
187
|
+
HeadingModule,
|
|
188
|
+
FieldContainerModule,
|
|
189
|
+
...MAT_DESIGN_MODULES,
|
|
190
|
+
],
|
|
191
|
+
exports: [
|
|
192
|
+
...MAT_DESIGN_MODULES,
|
|
193
|
+
...CRISPR_FIELDS
|
|
194
|
+
],
|
|
195
|
+
declarations: [
|
|
196
|
+
...CRISPR_FIELDS,
|
|
197
|
+
]
|
|
198
|
+
}]
|
|
199
|
+
}] });
|
|
200
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0ZXJpYWwubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jcmlzcHItZm9ybXMvc3JjL2xpYi9tYXRlcmlhbC9tYXRlcmlhbC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFckQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJC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LG9CQUFvQjtRQUNwQixZQUFZOzJGQXNDRCxjQUFjO2tCQXBCMUIsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixtQkFBbUI7d0JBQ25CLDJCQUEyQjt3QkFDM0IsVUFBVTt3QkFDVixxQkFBcUI7d0JBQ3JCLGFBQWE7d0JBQ2Isb0JBQW9CO3dCQUNwQixHQUFHLGtCQUFrQjtxQkFDdEI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLEdBQUcsa0JBQWtCO3dCQUNyQixHQUFHLGFBQWE7cUJBQ2pCO29CQUNELFlBQVksRUFBRTt3QkFDWixHQUFHLGFBQWE7cUJBQ2pCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBNYXRBdXRvY29tcGxldGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9hdXRvY29tcGxldGUnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdEJ1dHRvblRvZ2dsZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbi10b2dnbGUnO1xuaW1wb3J0IHsgTWF0Q2hlY2tib3hNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGVja2JveCc7XG5pbXBvcnQgeyBNYXRDaGlwc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoaXBzJztcbmltcG9ydCB7IE1hdERhdGVwaWNrZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kYXRlcGlja2VyJztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQgeyBNYXRSYWRpb01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3JhZGlvJztcbmltcG9ydCB7IE1hdFNlbGVjdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NlbGVjdCc7XG5pbXBvcnQgeyBNYXRTbGlkZVRvZ2dsZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NsaWRlLXRvZ2dsZSc7XG5pbXBvcnQgeyBNYXRTbGlkZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbGlkZXInO1xuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xuaW1wb3J0IHsgTWF0RGl2aWRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpdmlkZXInO1xuaW1wb3J0IHsgTWF0UHJvZ3Jlc3NCYXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1iYXInO1xuXG5pbXBvcnQgeyBGb3JtVmFsaWRhdGlvbkhhbmRsZXJNb2R1bGUgfSBmcm9tICdAdGZ0L2Zvcm0tdmFsaWRhdGlvbi1oYW5kbGVyJztcblxuaW1wb3J0IHsgRmllbGRDb250YWluZXJNb2R1bGUgfSBmcm9tICcuLi9maWVsZC1jb250YWluZXIvZmllbGQtY29udGFpbmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJbnB1dEZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi9pbnB1dC1maWVsZC9pbnB1dC1maWVsZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2VsZWN0RmllbGRDb21wb25lbnQgfSBmcm9tICcuL3NlbGVjdC1maWVsZC9zZWxlY3QtZmllbGQuY29tcG9uZW50JztcbmltcG9ydCB7IEF1dG9jb21wbGV0ZUZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi9hdXRvY29tcGxldGUtZmllbGQvYXV0b2NvbXBsZXRlLWZpZWxkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDaGVja2JveEZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi9jaGVja2JveC1maWVsZC9jaGVja2JveC1maWVsZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGV4dGFyZWFGaWVsZENvbXBvbmVudCB9IGZyb20gJy4vdGV4dGFyZWEtZmllbGQvdGV4dGFyZWEtZmllbGQuY29tcG9uZW50JztcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4vYnV0dG9uL2J1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGF0ZXBpY2tlckZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi9kYXRlcGlja2VyLWZpZWxkL2RhdGVwaWNrZXItZmllbGQuY29tcG9uZW50JztcbmltcG9ydCB7IE1hdE1vbWVudERhdGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC1tb21lbnQtYWRhcHRlcic7XG5pbXBvcnQgeyBIZWFkaW5nTW9kdWxlIH0gZnJvbSAnLi9oZWFkaW5nL2hlYWRpbmcuY29tcG9uZW50JztcbmltcG9ydCB7IEluZm9Nb2R1bGUgfSBmcm9tICcuL2luZm8vaW5mby5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2xpZGVyRmllbGRDb21wb25lbnQgfSBmcm9tICcuL3NsaWRlci1maWVsZC9zbGlkZXItZmllbGQuY29tcG9uZW50JztcbmltcG9ydCB7IERpdmlkZXJDb21wb25lbnQgfSBmcm9tICcuL2RpdmlkZXIvZGl2aWRlci5jb21wb25lbnQnO1xuLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBtYXgtbGluZS1sZW5ndGhcbmltcG9ydCB7IEF1dG9jb21wbGV0ZUNoaXBsaXN0RmllbGRDb21wb25lbnQgfSBmcm9tICcuL2F1dG9jb21wbGV0ZS1jaGlwbGlzdC1maWVsZC9hdXRvY29tcGxldGUtY2hpcGxpc3QtZmllbGQuY29tcG9uZW50JztcbmltcG9ydCB7IE9wdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vb3B0aW9uL29wdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgUmFkaW9GaWVsZENvbXBvbmVudCB9IGZyb20gJy4vcmFkaW8tZmllbGQvcmFkaW8tZmllbGQuY29tcG9uZW50JztcbmltcG9ydCB7IFVuaXRDb252ZXJzaW9uRmllbGRDb21wb25lbnQgfSBmcm9tICcuL3VuaXQtY29udmVyc2lvbi1maWVsZC91bml0LWNvbnZlcnNpb24tZmllbGQuY29tcG9uZW50JztcbmltcG9ydCB7IFBvcnRhbE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHsgRmlsZVVwbG9hZEZpZWxkTW9kdWxlIH0gZnJvbSAnLi9maWxlLXVwbG9hZCc7XG5cbi8vIFRPRE86IFNob3VsZCB3ZSBpbXBvcnQgVUkgbGlicmFyeT9cbi8vIFdpbGwgdGhlIHRyZWUgc2hha2VyIHNoYWtlIHRoZSB1bnVzZWQgbW9kdWxlcz9cbmNvbnN0IE1BVF9ERVNJR05fTU9EVUxFUyA9IFtcbiAgTWF0SWNvbk1vZHVsZSxcbiAgTWF0QXV0b2NvbXBsZXRlTW9kdWxlLFxuICBNYXREYXRlcGlja2VyTW9kdWxlLFxuICBNYXRJbnB1dE1vZHVsZSxcbiAgTWF0UmFkaW9Nb2R1bGUsXG4gIE1hdFNlbGVjdE1vZHVsZSxcbiAgTWF0Q2hlY2tib3hNb2R1bGUsXG4gIE1hdENoaXBzTW9kdWxlLFxuICBNYXRTbGlkZXJNb2R1bGUsXG4gIE1hdFNsaWRlVG9nZ2xlTW9kdWxlLFxuICBNYXRCdXR0b25Nb2R1bGUsXG4gIE1hdEJ1dHRvblRvZ2dsZU1vZHVsZSxcbiAgTWF0Q2hpcHNNb2R1bGUsXG4gIE1hdFRvb2x0aXBNb2R1bGUsXG4gIE1hdEZvcm1GaWVsZE1vZHVsZSxcbiAgTWF0TW9tZW50RGF0ZU1vZHVsZSxcbiAgTWF0RGl2aWRlck1vZHVsZSxcbiAgTWF0UHJvZ3Jlc3NCYXJNb2R1bGUsXG4gIFBvcnRhbE1vZHVsZVxuXTtcblxuY29uc3QgQ1JJU1BSX0ZJRUxEUyA9IFtcbiAgSW5wdXRGaWVsZENvbXBvbmVudCxcbiAgU2VsZWN0RmllbGRDb21wb25lbnQsXG4gIFJhZGlvRmllbGRDb21wb25lbnQsXG4gIEF1dG9jb21wbGV0ZUZpZWxkQ29tcG9uZW50LFxuICBBdXRvY29tcGxldGVDaGlwbGlzdEZpZWxkQ29tcG9uZW50LFxuICBDaGVja2JveEZpZWxkQ29tcG9uZW50LFxuICBUZXh0YXJlYUZpZWxkQ29tcG9uZW50LFxuICBEYXRlcGlja2VyRmllbGRDb21wb25lbnQsXG4gIFNsaWRlckZpZWxkQ29tcG9uZW50LFxuICBCdXR0b25Db21wb25lbnQsXG4gIERpdmlkZXJDb21wb25lbnQsXG4gIFVuaXRDb252ZXJzaW9uRmllbGRDb21wb25lbnQsXG4gIE9wdGlvbkNvbXBvbmVudCxcbl07XG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgRm9ybVZhbGlkYXRpb25IYW5kbGVyTW9kdWxlLFxuICAgIEluZm9Nb2R1bGUsXG4gICAgRmlsZVVwbG9hZEZpZWxkTW9kdWxlLFxuICAgIEhlYWRpbmdNb2R1bGUsXG4gICAgRmllbGRDb250YWluZXJNb2R1bGUsXG4gICAgLi4uTUFUX0RFU0lHTl9NT0RVTEVTLFxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgLi4uTUFUX0RFU0lHTl9NT0RVTEVTLFxuICAgIC4uLkNSSVNQUl9GSUVMRFNcbiAgXSxcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgLi4uQ1JJU1BSX0ZJRUxEUyxcbiAgXVxufSlcblxuZXhwb3J0IGNsYXNzIE1hdGVyaWFsTW9kdWxlIHtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './option.component';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NyaXNwci1mb3Jtcy9zcmMvbGliL21hdGVyaWFsL29wdGlvbi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLG9CQUFvQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9vcHRpb24uY29tcG9uZW50JztcbiJdfQ==
|