@tft/crispr-forms 14.0.2 → 15.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/public-api.mjs +4 -0
- package/{esm2020 → esm2022}/src/index.mjs +1 -1
- package/esm2022/src/lib/crispr-forms.module.mjs +55 -0
- package/esm2022/src/lib/display-field.directive.mjs +52 -0
- package/esm2022/src/lib/field-component-map.const.mjs +28 -0
- package/esm2022/src/lib/field.directive.mjs +69 -0
- package/esm2022/src/lib/form/form.component.mjs +62 -0
- package/esm2022/src/lib/form-group-list/form-group-list.component.mjs +97 -0
- package/{esm2020 → esm2022}/src/lib/form-group-list/index.mjs +1 -1
- package/{esm2020 → esm2022}/src/lib/pipes/crispr-pipes.module.mjs +24 -24
- package/esm2022/src/lib/pipes/initial-control-value.pipe.mjs +20 -0
- package/{esm2020 → esm2022}/src/lib/public_api.mjs +2 -2
- package/{esm2020 → esm2022}/src/lib/sub-group/index.mjs +2 -2
- package/esm2022/src/lib/sub-group/sub-group.component.mjs +20 -0
- package/esm2022/src/lib/sub-group/sub-group.module.mjs +42 -0
- package/esm2022/src/lib/ui/autocomplete-chiplist-field/autocomplete-chiplist-field.component.mjs +138 -0
- package/esm2022/src/lib/ui/autocomplete-chiplist-field/index.mjs +2 -0
- package/esm2022/src/lib/ui/autocomplete-chiplist-field/public-api.mjs +2 -0
- package/esm2022/src/lib/ui/autocomplete-field/autocomplete-field.component.mjs +95 -0
- package/esm2022/src/lib/ui/autocomplete-field/index.mjs +2 -0
- package/esm2022/src/lib/ui/autocomplete-field/public-api.mjs +2 -0
- package/esm2022/src/lib/ui/button/button.component.mjs +52 -0
- package/esm2022/src/lib/ui/button/index.mjs +2 -0
- package/esm2022/src/lib/ui/button/public-api.mjs +2 -0
- package/esm2022/src/lib/ui/checkbox-field/checkbox-field.component.mjs +42 -0
- package/esm2022/src/lib/ui/checkbox-field/index.mjs +2 -0
- package/esm2022/src/lib/ui/checkbox-field/public-api.mjs +2 -0
- package/esm2022/src/lib/ui/datepicker-field/datepicker-field.component.mjs +66 -0
- package/esm2022/src/lib/ui/datepicker-field/index.mjs +2 -0
- package/esm2022/src/lib/ui/datepicker-field/public-api.mjs +2 -0
- package/esm2022/src/lib/ui/divider/divider.component.mjs +25 -0
- package/esm2022/src/lib/ui/divider/index.mjs +2 -0
- package/esm2022/src/lib/ui/divider/public-api.mjs +2 -0
- package/esm2022/src/lib/ui/field-container/field-container.component.mjs +59 -0
- package/esm2022/src/lib/ui/field-container/index.mjs +2 -0
- package/esm2022/src/lib/ui/field-container/public-api.mjs +2 -0
- package/esm2022/src/lib/ui/file-dropzone/file-dropzone.directive.mjs +40 -0
- package/esm2022/src/lib/ui/file-dropzone/index.mjs +2 -0
- package/esm2022/src/lib/ui/file-dropzone/public-api.mjs +2 -0
- package/esm2022/src/lib/ui/file-upload-field/file-upload-field.component.mjs +107 -0
- package/esm2022/src/lib/ui/file-upload-field/index.mjs +2 -0
- package/esm2022/src/lib/ui/file-upload-field/public-api.mjs +2 -0
- package/esm2022/src/lib/ui/heading/heading.component.mjs +27 -0
- package/esm2022/src/lib/ui/heading/index.mjs +2 -0
- package/esm2022/src/lib/ui/heading/public-api.mjs +2 -0
- package/esm2022/src/lib/ui/image-upload-field/image-upload-field.component.mjs +184 -0
- package/esm2022/src/lib/ui/image-upload-field/index.mjs +2 -0
- package/esm2022/src/lib/ui/image-upload-field/public-api.mjs +2 -0
- package/esm2022/src/lib/ui/index.mjs +2 -0
- package/esm2022/src/lib/ui/info/index.mjs +2 -0
- package/esm2022/src/lib/ui/info/info.component.mjs +23 -0
- package/esm2022/src/lib/ui/info/public-api.mjs +2 -0
- package/esm2022/src/lib/ui/input-field/index.mjs +2 -0
- package/esm2022/src/lib/ui/input-field/input-field.component.mjs +43 -0
- package/esm2022/src/lib/ui/input-field/public-api.mjs +2 -0
- package/esm2022/src/lib/ui/option/index.mjs +2 -0
- package/esm2022/src/lib/ui/option/option.component.mjs +16 -0
- package/esm2022/src/lib/ui/option/public-api.mjs +2 -0
- package/esm2022/src/lib/ui/public-api.mjs +7 -0
- package/esm2022/src/lib/ui/radio-field/index.mjs +2 -0
- package/esm2022/src/lib/ui/radio-field/public-api.mjs +2 -0
- package/esm2022/src/lib/ui/radio-field/radio-field.component.mjs +39 -0
- package/esm2022/src/lib/ui/select-field/index.mjs +2 -0
- package/esm2022/src/lib/ui/select-field/public-api.mjs +2 -0
- package/esm2022/src/lib/ui/select-field/select-field.component.mjs +73 -0
- package/esm2022/src/lib/ui/selected-file/index.mjs +2 -0
- package/esm2022/src/lib/ui/selected-file/public-api.mjs +2 -0
- package/esm2022/src/lib/ui/selected-file/selected-file.component.mjs +26 -0
- package/esm2022/src/lib/ui/slider-field/index.mjs +2 -0
- package/esm2022/src/lib/ui/slider-field/public-api.mjs +2 -0
- package/esm2022/src/lib/ui/slider-field/slider-field.component.mjs +46 -0
- package/esm2022/src/lib/ui/textarea-field/index.mjs +2 -0
- package/esm2022/src/lib/ui/textarea-field/public-api.mjs +2 -0
- package/esm2022/src/lib/ui/textarea-field/textarea-field.component.mjs +42 -0
- package/esm2022/src/lib/ui/unit-conversion-field/index.mjs +2 -0
- package/esm2022/src/lib/ui/unit-conversion-field/public-api.mjs +2 -0
- package/esm2022/src/lib/ui/unit-conversion-field/unit-conversion-field.component.mjs +86 -0
- package/esm2022/src/lib/utils/abstracts/autocomplete-field.abstract.mjs +30 -0
- package/esm2022/src/lib/utils/abstracts/crispr-control.mixin.mjs +27 -0
- package/esm2022/src/lib/utils/abstracts/crispr-display-field.abstract.mjs +14 -0
- package/esm2022/src/lib/utils/abstracts/crispr-field.abstract.mjs +19 -0
- package/esm2022/src/lib/utils/abstracts/index.mjs +5 -0
- package/esm2022/src/lib/utils/functions/buildFormGroupFromConfig.mjs +28 -0
- package/esm2022/src/lib/utils/functions/callOptionsIfFunction.mjs +4 -0
- package/esm2022/src/lib/utils/functions/createControlForType.mjs +19 -0
- package/esm2022/src/lib/utils/functions/filterOptionsByLabel.mjs +11 -0
- package/esm2022/src/lib/utils/functions/image-compression.helpers.mjs +50 -0
- package/esm2022/src/lib/utils/functions/index.mjs +8 -0
- package/esm2022/src/lib/utils/functions/isControlConfig.mjs +7 -0
- package/esm2022/src/lib/utils/functions/observablifyOptions.mjs +29 -0
- package/esm2022/src/lib/utils/index.mjs +2 -0
- package/esm2022/src/lib/utils/models/autocomplete-chiplist-field.config.mjs +2 -0
- package/esm2022/src/lib/utils/models/autocomplete-field.config.mjs +2 -0
- package/esm2022/src/lib/utils/models/button.config.mjs +2 -0
- package/esm2022/src/lib/utils/models/checkbox-field.config.mjs +2 -0
- package/esm2022/src/lib/utils/models/crispr-field.config.mjs +23 -0
- package/esm2022/src/lib/utils/models/datepicker-field.config.mjs +2 -0
- package/esm2022/src/lib/utils/models/divider.config.mjs +2 -0
- package/esm2022/src/lib/utils/models/file-upload-field.config.mjs +2 -0
- package/esm2022/src/lib/utils/models/form-group-list.config.mjs +2 -0
- package/esm2022/src/lib/utils/models/heading.config.mjs +3 -0
- package/esm2022/src/lib/utils/models/image-upload-field.config.mjs +2 -0
- package/esm2022/src/lib/utils/models/index.mjs +18 -0
- package/esm2022/src/lib/utils/models/input-field.config.mjs +2 -0
- package/esm2022/src/lib/utils/models/radio-field.config.mjs +2 -0
- package/esm2022/src/lib/utils/models/select-field.config.mjs +2 -0
- package/esm2022/src/lib/utils/models/slider-field.config.mjs +2 -0
- package/esm2022/src/lib/utils/models/textarea-field.config.mjs +2 -0
- package/esm2022/src/lib/utils/models/unit-conversion-field.config.mjs +2 -0
- package/esm2022/src/lib/utils/operators/form.operators.mjs +24 -0
- package/esm2022/src/lib/utils/operators/index.mjs +2 -0
- package/esm2022/src/lib/utils/public-api.mjs +5 -0
- package/esm2022/src/lib/utils/tft-crispr-forms-src-lib-utils.mjs +5 -0
- package/{esm2020 → esm2022}/tft-crispr-forms.mjs +4 -4
- package/fesm2022/tft-crispr-forms-index-2dAn0905.mjs +19 -0
- package/fesm2022/tft-crispr-forms-index-2dAn0905.mjs.map +1 -0
- package/fesm2022/tft-crispr-forms-index-76UuF0AI.mjs +36 -0
- package/fesm2022/tft-crispr-forms-index-76UuF0AI.mjs.map +1 -0
- package/{fesm2020/tft-crispr-forms-ui-image-upload-field.mjs → fesm2022/tft-crispr-forms-index-BXwiulEX.mjs} +169 -169
- package/fesm2022/tft-crispr-forms-index-BXwiulEX.mjs.map +1 -0
- package/fesm2022/tft-crispr-forms-index-BfR4XbYi.mjs +110 -0
- package/fesm2022/tft-crispr-forms-index-BfR4XbYi.mjs.map +1 -0
- package/fesm2022/tft-crispr-forms-index-C5X0mk3N.mjs +49 -0
- package/fesm2022/tft-crispr-forms-index-C5X0mk3N.mjs.map +1 -0
- package/fesm2022/tft-crispr-forms-index-CFUop3Cq.mjs +80 -0
- package/fesm2022/tft-crispr-forms-index-CFUop3Cq.mjs.map +1 -0
- package/fesm2022/tft-crispr-forms-index-CFdMVgM0.mjs +91 -0
- package/fesm2022/tft-crispr-forms-index-CFdMVgM0.mjs.map +1 -0
- package/fesm2022/tft-crispr-forms-index-CZdi06Jj.mjs +49 -0
- package/fesm2022/tft-crispr-forms-index-CZdi06Jj.mjs.map +1 -0
- package/fesm2022/tft-crispr-forms-index-C_I9vjqf.mjs +57 -0
- package/fesm2022/tft-crispr-forms-index-C_I9vjqf.mjs.map +1 -0
- package/fesm2022/tft-crispr-forms-index-DE8VOdBd.mjs +102 -0
- package/fesm2022/tft-crispr-forms-index-DE8VOdBd.mjs.map +1 -0
- package/fesm2022/tft-crispr-forms-index-OLo2t0tl.mjs +48 -0
- package/fesm2022/tft-crispr-forms-index-OLo2t0tl.mjs.map +1 -0
- package/fesm2022/tft-crispr-forms-index-OT7kkOgd.mjs +50 -0
- package/fesm2022/tft-crispr-forms-index-OT7kkOgd.mjs.map +1 -0
- package/fesm2022/tft-crispr-forms-index-Ukk3WgS2.mjs +54 -0
- package/fesm2022/tft-crispr-forms-index-Ukk3WgS2.mjs.map +1 -0
- package/fesm2022/tft-crispr-forms-index-rRi6OMY6.mjs +142 -0
- package/fesm2022/tft-crispr-forms-index-rRi6OMY6.mjs.map +1 -0
- package/fesm2022/tft-crispr-forms-index-xAaInTLg.mjs +73 -0
- package/fesm2022/tft-crispr-forms-index-xAaInTLg.mjs.map +1 -0
- package/{fesm2020/tft-crispr-forms-utils.mjs → fesm2022/tft-crispr-forms-src-lib-utils.mjs} +242 -243
- package/fesm2022/tft-crispr-forms-src-lib-utils.mjs.map +1 -0
- package/fesm2022/tft-crispr-forms.mjs +848 -0
- package/fesm2022/tft-crispr-forms.mjs.map +1 -0
- package/index.d.ts +5 -5
- package/package.json +13 -191
- package/public-api.d.ts +3 -3
- package/src/index.d.ts +1 -1
- package/src/lib/crispr-forms.module.d.ts +16 -16
- package/src/lib/display-field.directive.d.ts +23 -23
- package/src/lib/field-component-map.const.d.ts +42 -42
- package/src/lib/field.directive.d.ts +24 -24
- package/src/lib/form/form.component.d.ts +19 -19
- package/src/lib/form-group-list/form-group-list.component.d.ts +40 -38
- package/src/lib/form-group-list/index.d.ts +1 -1
- package/src/lib/pipes/crispr-pipes.module.d.ts +8 -8
- package/src/lib/pipes/initial-control-value.pipe.d.ts +10 -10
- package/src/lib/public_api.d.ts +2 -2
- package/src/lib/sub-group/index.d.ts +2 -2
- package/src/lib/sub-group/sub-group.component.d.ts +24 -22
- package/src/lib/sub-group/sub-group.module.d.ts +12 -12
- package/{ui → src/lib/ui}/autocomplete-chiplist-field/autocomplete-chiplist-field.component.d.ts +36 -33
- package/src/lib/ui/autocomplete-chiplist-field/index.d.ts +1 -0
- package/{ui → src/lib/ui}/autocomplete-chiplist-field/public-api.d.ts +1 -1
- package/{ui → src/lib/ui}/autocomplete-field/autocomplete-field.component.d.ts +25 -25
- package/src/lib/ui/autocomplete-field/index.d.ts +1 -0
- package/{ui → src/lib/ui}/autocomplete-field/public-api.d.ts +1 -1
- package/{ui → src/lib/ui}/button/button.component.d.ts +15 -15
- package/src/lib/ui/button/index.d.ts +1 -0
- package/{ui → src/lib/ui}/button/public-api.d.ts +1 -1
- package/src/lib/ui/checkbox-field/checkbox-field.component.d.ts +23 -0
- package/src/lib/ui/checkbox-field/index.d.ts +1 -0
- package/{ui → src/lib/ui}/checkbox-field/public-api.d.ts +1 -1
- package/{ui → src/lib/ui}/datepicker-field/datepicker-field.component.d.ts +32 -30
- package/src/lib/ui/datepicker-field/index.d.ts +1 -0
- package/{ui → src/lib/ui}/datepicker-field/public-api.d.ts +1 -1
- package/{ui → src/lib/ui}/divider/divider.component.d.ts +9 -9
- package/src/lib/ui/divider/index.d.ts +1 -0
- package/{ui → src/lib/ui}/divider/public-api.d.ts +1 -1
- package/{ui → src/lib/ui}/field-container/field-container.component.d.ts +24 -24
- package/src/lib/ui/field-container/index.d.ts +1 -0
- package/{ui → src/lib/ui}/field-container/public-api.d.ts +1 -1
- package/{ui → src/lib/ui}/file-dropzone/file-dropzone.directive.d.ts +10 -10
- package/src/lib/ui/file-dropzone/index.d.ts +1 -0
- package/{ui → src/lib/ui}/file-dropzone/public-api.d.ts +1 -1
- package/{ui → src/lib/ui}/file-upload-field/file-upload-field.component.d.ts +39 -37
- package/src/lib/ui/file-upload-field/index.d.ts +1 -0
- package/{ui → src/lib/ui}/file-upload-field/public-api.d.ts +1 -1
- package/{ui → src/lib/ui}/heading/heading.component.d.ts +8 -8
- package/src/lib/ui/heading/index.d.ts +1 -0
- package/{ui → src/lib/ui}/heading/public-api.d.ts +1 -1
- package/{ui → src/lib/ui}/image-upload-field/image-upload-field.component.d.ts +50 -48
- package/src/lib/ui/image-upload-field/index.d.ts +1 -0
- package/{ui → src/lib/ui}/image-upload-field/public-api.d.ts +1 -1
- package/src/lib/ui/index.d.ts +1 -0
- package/src/lib/ui/info/index.d.ts +1 -0
- package/{ui → src/lib/ui}/info/info.component.d.ts +7 -7
- package/{ui → src/lib/ui}/info/public-api.d.ts +1 -1
- package/src/lib/ui/input-field/index.d.ts +1 -0
- package/src/lib/ui/input-field/input-field.component.d.ts +24 -0
- package/{ui → src/lib/ui}/input-field/public-api.d.ts +1 -1
- package/src/lib/ui/option/index.d.ts +1 -0
- package/{ui → src/lib/ui}/option/option.component.d.ts +7 -7
- package/{ui → src/lib/ui}/option/public-api.d.ts +1 -1
- package/src/lib/ui/public-api.d.ts +6 -0
- package/src/lib/ui/radio-field/index.d.ts +1 -0
- package/{ui → src/lib/ui}/radio-field/public-api.d.ts +1 -1
- package/src/lib/ui/radio-field/radio-field.component.d.ts +25 -0
- package/src/lib/ui/select-field/index.d.ts +1 -0
- package/{ui → src/lib/ui}/select-field/public-api.d.ts +1 -1
- package/{ui → src/lib/ui}/select-field/select-field.component.d.ts +34 -32
- package/src/lib/ui/selected-file/index.d.ts +1 -0
- package/{ui → src/lib/ui}/selected-file/public-api.d.ts +1 -1
- package/{ui → src/lib/ui}/selected-file/selected-file.component.d.ts +10 -10
- package/src/lib/ui/slider-field/index.d.ts +1 -0
- package/{ui → src/lib/ui}/slider-field/public-api.d.ts +1 -1
- package/src/lib/ui/slider-field/slider-field.component.d.ts +24 -0
- package/src/lib/ui/textarea-field/index.d.ts +1 -0
- package/{ui → src/lib/ui}/textarea-field/public-api.d.ts +1 -1
- package/src/lib/ui/textarea-field/textarea-field.component.d.ts +23 -0
- package/src/lib/ui/unit-conversion-field/index.d.ts +1 -0
- package/{ui → src/lib/ui}/unit-conversion-field/public-api.d.ts +1 -1
- package/{ui → src/lib/ui}/unit-conversion-field/unit-conversion-field.component.d.ts +38 -36
- package/{utils → src/lib/utils}/abstracts/autocomplete-field.abstract.d.ts +28 -28
- package/{utils → src/lib/utils}/abstracts/crispr-control.mixin.d.ts +16 -16
- package/{utils → src/lib/utils}/abstracts/crispr-display-field.abstract.d.ts +22 -22
- package/{utils → src/lib/utils}/abstracts/crispr-field.abstract.d.ts +11 -11
- package/{utils → src/lib/utils}/abstracts/index.d.ts +4 -4
- package/{utils → src/lib/utils}/functions/buildFormGroupFromConfig.d.ts +9 -9
- package/{utils → src/lib/utils}/functions/callOptionsIfFunction.d.ts +3 -3
- package/{utils → src/lib/utils}/functions/createControlForType.d.ts +9 -9
- package/{utils → src/lib/utils}/functions/filterOptionsByLabel.d.ts +7 -7
- package/{utils → src/lib/utils}/functions/image-compression.helpers.d.ts +5 -5
- package/{utils → src/lib/utils}/functions/index.d.ts +7 -7
- package/{utils → src/lib/utils}/functions/isControlConfig.d.ts +5 -5
- package/{utils → src/lib/utils}/functions/observablifyOptions.d.ts +12 -12
- package/{ui → src/lib/utils}/index.d.ts +5 -5
- package/{utils → src/lib/utils}/models/autocomplete-chiplist-field.config.d.ts +20 -20
- package/{utils → src/lib/utils}/models/autocomplete-field.config.d.ts +14 -14
- package/{utils → src/lib/utils}/models/button.config.d.ts +17 -17
- package/{utils → src/lib/utils}/models/checkbox-field.config.d.ts +6 -6
- package/{utils → src/lib/utils}/models/crispr-field.config.d.ts +97 -94
- package/{utils → src/lib/utils}/models/datepicker-field.config.d.ts +20 -20
- package/{utils → src/lib/utils}/models/divider.config.d.ts +5 -5
- package/{utils → src/lib/utils}/models/file-upload-field.config.d.ts +33 -33
- package/{utils → src/lib/utils}/models/form-group-list.config.d.ts +18 -18
- package/{utils → src/lib/utils}/models/heading.config.d.ts +6 -6
- package/{utils → src/lib/utils}/models/image-upload-field.config.d.ts +54 -54
- package/{utils → src/lib/utils}/models/index.d.ts +17 -17
- package/{utils → src/lib/utils}/models/input-field.config.d.ts +16 -16
- package/{utils → src/lib/utils}/models/radio-field.config.d.ts +6 -6
- package/{utils → src/lib/utils}/models/select-field.config.d.ts +21 -21
- package/{utils → src/lib/utils}/models/slider-field.config.d.ts +11 -13
- package/{utils → src/lib/utils}/models/textarea-field.config.d.ts +5 -5
- package/{utils → src/lib/utils}/models/unit-conversion-field.config.d.ts +30 -30
- package/{utils → src/lib/utils}/operators/form.operators.d.ts +1 -1
- package/{utils → src/lib/utils}/operators/index.d.ts +1 -1
- package/{utils → src/lib/utils}/public-api.d.ts +4 -4
- package/tft-crispr-forms-15.0.0.tgz +0 -0
- package/esm2020/public-api.mjs +0 -5
- package/esm2020/src/lib/crispr-forms.module.mjs +0 -60
- package/esm2020/src/lib/display-field.directive.mjs +0 -53
- package/esm2020/src/lib/field-component-map.const.mjs +0 -27
- package/esm2020/src/lib/field.directive.mjs +0 -69
- package/esm2020/src/lib/form/form.component.mjs +0 -63
- package/esm2020/src/lib/form-group-list/form-group-list.component.mjs +0 -99
- package/esm2020/src/lib/pipes/initial-control-value.pipe.mjs +0 -21
- package/esm2020/src/lib/sub-group/sub-group.component.mjs +0 -21
- package/esm2020/src/lib/sub-group/sub-group.module.mjs +0 -42
- package/esm2020/ui/autocomplete-chiplist-field/autocomplete-chiplist-field.component.mjs +0 -130
- package/esm2020/ui/autocomplete-chiplist-field/public-api.mjs +0 -2
- package/esm2020/ui/autocomplete-chiplist-field/tft-crispr-forms-ui-autocomplete-chiplist-field.mjs +0 -5
- package/esm2020/ui/autocomplete-field/autocomplete-field.component.mjs +0 -93
- package/esm2020/ui/autocomplete-field/public-api.mjs +0 -2
- package/esm2020/ui/autocomplete-field/tft-crispr-forms-ui-autocomplete-field.mjs +0 -5
- package/esm2020/ui/button/button.component.mjs +0 -49
- package/esm2020/ui/button/public-api.mjs +0 -2
- package/esm2020/ui/button/tft-crispr-forms-ui-button.mjs +0 -5
- package/esm2020/ui/checkbox-field/checkbox-field.component.mjs +0 -42
- package/esm2020/ui/checkbox-field/public-api.mjs +0 -2
- package/esm2020/ui/checkbox-field/tft-crispr-forms-ui-checkbox-field.mjs +0 -5
- package/esm2020/ui/datepicker-field/datepicker-field.component.mjs +0 -63
- package/esm2020/ui/datepicker-field/public-api.mjs +0 -2
- package/esm2020/ui/datepicker-field/tft-crispr-forms-ui-datepicker-field.mjs +0 -5
- package/esm2020/ui/divider/divider.component.mjs +0 -28
- package/esm2020/ui/divider/public-api.mjs +0 -2
- package/esm2020/ui/divider/tft-crispr-forms-ui-divider.mjs +0 -5
- package/esm2020/ui/field-container/field-container.component.mjs +0 -58
- package/esm2020/ui/field-container/public-api.mjs +0 -2
- package/esm2020/ui/field-container/tft-crispr-forms-ui-field-container.mjs +0 -5
- package/esm2020/ui/file-dropzone/file-dropzone.directive.mjs +0 -40
- package/esm2020/ui/file-dropzone/public-api.mjs +0 -2
- package/esm2020/ui/file-dropzone/tft-crispr-forms-ui-file-dropzone.mjs +0 -5
- package/esm2020/ui/file-upload-field/file-upload-field.component.mjs +0 -108
- package/esm2020/ui/file-upload-field/public-api.mjs +0 -2
- package/esm2020/ui/file-upload-field/tft-crispr-forms-ui-file-upload-field.mjs +0 -5
- package/esm2020/ui/heading/heading.component.mjs +0 -31
- package/esm2020/ui/heading/public-api.mjs +0 -2
- package/esm2020/ui/heading/tft-crispr-forms-ui-heading.mjs +0 -5
- package/esm2020/ui/image-upload-field/image-upload-field.component.mjs +0 -179
- package/esm2020/ui/image-upload-field/public-api.mjs +0 -2
- package/esm2020/ui/image-upload-field/tft-crispr-forms-ui-image-upload-field.mjs +0 -5
- package/esm2020/ui/info/info.component.mjs +0 -23
- package/esm2020/ui/info/public-api.mjs +0 -2
- package/esm2020/ui/info/tft-crispr-forms-ui-info.mjs +0 -5
- package/esm2020/ui/input-field/input-field.component.mjs +0 -41
- package/esm2020/ui/input-field/public-api.mjs +0 -2
- package/esm2020/ui/input-field/tft-crispr-forms-ui-input-field.mjs +0 -5
- package/esm2020/ui/option/option.component.mjs +0 -19
- package/esm2020/ui/option/public-api.mjs +0 -2
- package/esm2020/ui/option/tft-crispr-forms-ui-option.mjs +0 -5
- package/esm2020/ui/public-api.mjs +0 -7
- package/esm2020/ui/radio-field/public-api.mjs +0 -2
- package/esm2020/ui/radio-field/radio-field.component.mjs +0 -39
- package/esm2020/ui/radio-field/tft-crispr-forms-ui-radio-field.mjs +0 -5
- package/esm2020/ui/select-field/public-api.mjs +0 -2
- package/esm2020/ui/select-field/select-field.component.mjs +0 -73
- package/esm2020/ui/select-field/tft-crispr-forms-ui-select-field.mjs +0 -5
- package/esm2020/ui/selected-file/public-api.mjs +0 -2
- package/esm2020/ui/selected-file/selected-file.component.mjs +0 -26
- package/esm2020/ui/selected-file/tft-crispr-forms-ui-selected-file.mjs +0 -5
- package/esm2020/ui/slider-field/public-api.mjs +0 -2
- package/esm2020/ui/slider-field/slider-field.component.mjs +0 -44
- package/esm2020/ui/slider-field/tft-crispr-forms-ui-slider-field.mjs +0 -5
- package/esm2020/ui/textarea-field/public-api.mjs +0 -2
- package/esm2020/ui/textarea-field/textarea-field.component.mjs +0 -42
- package/esm2020/ui/textarea-field/tft-crispr-forms-ui-textarea-field.mjs +0 -5
- package/esm2020/ui/tft-crispr-forms-ui.mjs +0 -5
- package/esm2020/ui/unit-conversion-field/public-api.mjs +0 -2
- package/esm2020/ui/unit-conversion-field/tft-crispr-forms-ui-unit-conversion-field.mjs +0 -5
- package/esm2020/ui/unit-conversion-field/unit-conversion-field.component.mjs +0 -84
- package/esm2020/utils/abstracts/autocomplete-field.abstract.mjs +0 -30
- package/esm2020/utils/abstracts/crispr-control.mixin.mjs +0 -27
- package/esm2020/utils/abstracts/crispr-display-field.abstract.mjs +0 -14
- package/esm2020/utils/abstracts/crispr-field.abstract.mjs +0 -20
- package/esm2020/utils/abstracts/index.mjs +0 -5
- package/esm2020/utils/functions/buildFormGroupFromConfig.mjs +0 -28
- package/esm2020/utils/functions/callOptionsIfFunction.mjs +0 -4
- package/esm2020/utils/functions/createControlForType.mjs +0 -19
- package/esm2020/utils/functions/filterOptionsByLabel.mjs +0 -11
- package/esm2020/utils/functions/image-compression.helpers.mjs +0 -50
- package/esm2020/utils/functions/index.mjs +0 -8
- package/esm2020/utils/functions/isControlConfig.mjs +0 -7
- package/esm2020/utils/functions/observablifyOptions.mjs +0 -29
- package/esm2020/utils/models/autocomplete-chiplist-field.config.mjs +0 -2
- package/esm2020/utils/models/autocomplete-field.config.mjs +0 -2
- package/esm2020/utils/models/button.config.mjs +0 -2
- package/esm2020/utils/models/checkbox-field.config.mjs +0 -2
- package/esm2020/utils/models/crispr-field.config.mjs +0 -23
- package/esm2020/utils/models/datepicker-field.config.mjs +0 -2
- package/esm2020/utils/models/divider.config.mjs +0 -2
- package/esm2020/utils/models/file-upload-field.config.mjs +0 -2
- package/esm2020/utils/models/form-group-list.config.mjs +0 -2
- package/esm2020/utils/models/heading.config.mjs +0 -3
- package/esm2020/utils/models/image-upload-field.config.mjs +0 -2
- package/esm2020/utils/models/index.mjs +0 -18
- package/esm2020/utils/models/input-field.config.mjs +0 -2
- package/esm2020/utils/models/radio-field.config.mjs +0 -2
- package/esm2020/utils/models/select-field.config.mjs +0 -2
- package/esm2020/utils/models/slider-field.config.mjs +0 -2
- package/esm2020/utils/models/textarea-field.config.mjs +0 -2
- package/esm2020/utils/models/unit-conversion-field.config.mjs +0 -2
- package/esm2020/utils/operators/form.operators.mjs +0 -24
- package/esm2020/utils/operators/index.mjs +0 -2
- package/esm2020/utils/public-api.mjs +0 -5
- package/esm2020/utils/tft-crispr-forms-utils.mjs +0 -5
- package/fesm2015/tft-crispr-forms-ui-autocomplete-chiplist-field.mjs +0 -138
- package/fesm2015/tft-crispr-forms-ui-autocomplete-chiplist-field.mjs.map +0 -1
- package/fesm2015/tft-crispr-forms-ui-autocomplete-field.mjs +0 -101
- package/fesm2015/tft-crispr-forms-ui-autocomplete-field.mjs.map +0 -1
- package/fesm2015/tft-crispr-forms-ui-button.mjs +0 -55
- package/fesm2015/tft-crispr-forms-ui-button.mjs.map +0 -1
- package/fesm2015/tft-crispr-forms-ui-checkbox-field.mjs +0 -49
- package/fesm2015/tft-crispr-forms-ui-checkbox-field.mjs.map +0 -1
- package/fesm2015/tft-crispr-forms-ui-datepicker-field.mjs +0 -71
- package/fesm2015/tft-crispr-forms-ui-datepicker-field.mjs.map +0 -1
- package/fesm2015/tft-crispr-forms-ui-divider.mjs +0 -34
- package/fesm2015/tft-crispr-forms-ui-divider.mjs.map +0 -1
- package/fesm2015/tft-crispr-forms-ui-field-container.mjs +0 -64
- package/fesm2015/tft-crispr-forms-ui-field-container.mjs.map +0 -1
- package/fesm2015/tft-crispr-forms-ui-file-dropzone.mjs +0 -47
- package/fesm2015/tft-crispr-forms-ui-file-dropzone.mjs.map +0 -1
- package/fesm2015/tft-crispr-forms-ui-file-upload-field.mjs +0 -117
- package/fesm2015/tft-crispr-forms-ui-file-upload-field.mjs.map +0 -1
- package/fesm2015/tft-crispr-forms-ui-heading.mjs +0 -37
- package/fesm2015/tft-crispr-forms-ui-heading.mjs.map +0 -1
- package/fesm2015/tft-crispr-forms-ui-image-upload-field.mjs +0 -182
- package/fesm2015/tft-crispr-forms-ui-image-upload-field.mjs.map +0 -1
- package/fesm2015/tft-crispr-forms-ui-info.mjs +0 -30
- package/fesm2015/tft-crispr-forms-ui-info.mjs.map +0 -1
- package/fesm2015/tft-crispr-forms-ui-input-field.mjs +0 -48
- package/fesm2015/tft-crispr-forms-ui-input-field.mjs.map +0 -1
- package/fesm2015/tft-crispr-forms-ui-option.mjs +0 -26
- package/fesm2015/tft-crispr-forms-ui-option.mjs.map +0 -1
- package/fesm2015/tft-crispr-forms-ui-radio-field.mjs +0 -46
- package/fesm2015/tft-crispr-forms-ui-radio-field.mjs.map +0 -1
- package/fesm2015/tft-crispr-forms-ui-select-field.mjs +0 -81
- package/fesm2015/tft-crispr-forms-ui-select-field.mjs.map +0 -1
- package/fesm2015/tft-crispr-forms-ui-selected-file.mjs +0 -33
- package/fesm2015/tft-crispr-forms-ui-selected-file.mjs.map +0 -1
- package/fesm2015/tft-crispr-forms-ui-slider-field.mjs +0 -51
- package/fesm2015/tft-crispr-forms-ui-slider-field.mjs.map +0 -1
- package/fesm2015/tft-crispr-forms-ui-textarea-field.mjs +0 -49
- package/fesm2015/tft-crispr-forms-ui-textarea-field.mjs.map +0 -1
- package/fesm2015/tft-crispr-forms-ui-unit-conversion-field.mjs +0 -93
- package/fesm2015/tft-crispr-forms-ui-unit-conversion-field.mjs.map +0 -1
- package/fesm2015/tft-crispr-forms-ui.mjs +0 -12
- package/fesm2015/tft-crispr-forms-ui.mjs.map +0 -1
- package/fesm2015/tft-crispr-forms-utils.mjs +0 -280
- package/fesm2015/tft-crispr-forms-utils.mjs.map +0 -1
- package/fesm2015/tft-crispr-forms.mjs +0 -438
- package/fesm2015/tft-crispr-forms.mjs.map +0 -1
- package/fesm2020/tft-crispr-forms-ui-autocomplete-chiplist-field.mjs +0 -137
- package/fesm2020/tft-crispr-forms-ui-autocomplete-chiplist-field.mjs.map +0 -1
- package/fesm2020/tft-crispr-forms-ui-autocomplete-field.mjs +0 -100
- package/fesm2020/tft-crispr-forms-ui-autocomplete-field.mjs.map +0 -1
- package/fesm2020/tft-crispr-forms-ui-button.mjs +0 -55
- package/fesm2020/tft-crispr-forms-ui-button.mjs.map +0 -1
- package/fesm2020/tft-crispr-forms-ui-checkbox-field.mjs +0 -49
- package/fesm2020/tft-crispr-forms-ui-checkbox-field.mjs.map +0 -1
- package/fesm2020/tft-crispr-forms-ui-datepicker-field.mjs +0 -70
- package/fesm2020/tft-crispr-forms-ui-datepicker-field.mjs.map +0 -1
- package/fesm2020/tft-crispr-forms-ui-divider.mjs +0 -34
- package/fesm2020/tft-crispr-forms-ui-divider.mjs.map +0 -1
- package/fesm2020/tft-crispr-forms-ui-field-container.mjs +0 -65
- package/fesm2020/tft-crispr-forms-ui-field-container.mjs.map +0 -1
- package/fesm2020/tft-crispr-forms-ui-file-dropzone.mjs +0 -47
- package/fesm2020/tft-crispr-forms-ui-file-dropzone.mjs.map +0 -1
- package/fesm2020/tft-crispr-forms-ui-file-upload-field.mjs +0 -115
- package/fesm2020/tft-crispr-forms-ui-file-upload-field.mjs.map +0 -1
- package/fesm2020/tft-crispr-forms-ui-heading.mjs +0 -37
- package/fesm2020/tft-crispr-forms-ui-heading.mjs.map +0 -1
- package/fesm2020/tft-crispr-forms-ui-image-upload-field.mjs.map +0 -1
- package/fesm2020/tft-crispr-forms-ui-info.mjs +0 -30
- package/fesm2020/tft-crispr-forms-ui-info.mjs.map +0 -1
- package/fesm2020/tft-crispr-forms-ui-input-field.mjs +0 -48
- package/fesm2020/tft-crispr-forms-ui-input-field.mjs.map +0 -1
- package/fesm2020/tft-crispr-forms-ui-option.mjs +0 -26
- package/fesm2020/tft-crispr-forms-ui-option.mjs.map +0 -1
- package/fesm2020/tft-crispr-forms-ui-radio-field.mjs +0 -46
- package/fesm2020/tft-crispr-forms-ui-radio-field.mjs.map +0 -1
- package/fesm2020/tft-crispr-forms-ui-select-field.mjs +0 -80
- package/fesm2020/tft-crispr-forms-ui-select-field.mjs.map +0 -1
- package/fesm2020/tft-crispr-forms-ui-selected-file.mjs +0 -33
- package/fesm2020/tft-crispr-forms-ui-selected-file.mjs.map +0 -1
- package/fesm2020/tft-crispr-forms-ui-slider-field.mjs +0 -51
- package/fesm2020/tft-crispr-forms-ui-slider-field.mjs.map +0 -1
- package/fesm2020/tft-crispr-forms-ui-textarea-field.mjs +0 -49
- package/fesm2020/tft-crispr-forms-ui-textarea-field.mjs.map +0 -1
- package/fesm2020/tft-crispr-forms-ui-unit-conversion-field.mjs +0 -91
- package/fesm2020/tft-crispr-forms-ui-unit-conversion-field.mjs.map +0 -1
- package/fesm2020/tft-crispr-forms-ui.mjs +0 -12
- package/fesm2020/tft-crispr-forms-ui.mjs.map +0 -1
- package/fesm2020/tft-crispr-forms-utils.mjs.map +0 -1
- package/fesm2020/tft-crispr-forms.mjs +0 -434
- package/fesm2020/tft-crispr-forms.mjs.map +0 -1
- package/tft-crispr-forms-14.0.2.tgz +0 -0
- package/ui/README.md +0 -3
- package/ui/autocomplete-chiplist-field/index.d.ts +0 -5
- package/ui/autocomplete-field/index.d.ts +0 -5
- package/ui/button/index.d.ts +0 -5
- package/ui/checkbox-field/checkbox-field.component.d.ts +0 -21
- package/ui/checkbox-field/index.d.ts +0 -5
- package/ui/datepicker-field/index.d.ts +0 -5
- package/ui/divider/index.d.ts +0 -5
- package/ui/field-container/index.d.ts +0 -5
- package/ui/file-dropzone/index.d.ts +0 -5
- package/ui/file-upload-field/index.d.ts +0 -5
- package/ui/heading/index.d.ts +0 -5
- package/ui/image-upload-field/index.d.ts +0 -5
- package/ui/info/index.d.ts +0 -5
- package/ui/input-field/index.d.ts +0 -5
- package/ui/input-field/input-field.component.d.ts +0 -22
- package/ui/option/index.d.ts +0 -5
- package/ui/public-api.d.ts +0 -5
- package/ui/radio-field/index.d.ts +0 -5
- package/ui/radio-field/radio-field.component.d.ts +0 -23
- package/ui/select-field/index.d.ts +0 -5
- package/ui/selected-file/index.d.ts +0 -5
- package/ui/slider-field/index.d.ts +0 -5
- package/ui/slider-field/slider-field.component.d.ts +0 -25
- package/ui/textarea-field/index.d.ts +0 -5
- package/ui/textarea-field/textarea-field.component.d.ts +0 -21
- package/ui/unit-conversion-field/index.d.ts +0 -5
- package/utils/index.d.ts +0 -5
- /package/{utils → src/lib/utils}/README.md +0 -0
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
/* eslint-disable @nx/enforce-module-boundaries */
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { Component, ElementRef, ViewChild, ChangeDetectionStrategy, Optional, Self, ChangeDetectorRef, } from '@angular/core';
|
|
4
|
+
import { NgControl, ReactiveFormsModule, } from '@angular/forms';
|
|
5
|
+
import { MatButtonModule } from '@angular/material/button';
|
|
6
|
+
import { MatFormFieldModule } from '@angular/material/form-field';
|
|
7
|
+
import { MatIconModule } from '@angular/material/icon';
|
|
8
|
+
import { MatInputModule } from '@angular/material/input';
|
|
9
|
+
import { DomSanitizer } from '@angular/platform-browser';
|
|
10
|
+
import imageCompression from 'browser-image-compression';
|
|
11
|
+
import { combineLatest, of, Subject } from 'rxjs';
|
|
12
|
+
import { map, shareReplay, startWith, switchMap, tap } from 'rxjs/operators';
|
|
13
|
+
import { FormValidationHandlerModule } from '@tft/form-validation-handler';
|
|
14
|
+
import { FileDropzoneDirective } from '../file-dropzone';
|
|
15
|
+
import { SelectedFileComponent } from '../selected-file';
|
|
16
|
+
import { FieldContainerComponent } from '../field-container';
|
|
17
|
+
import { crisprControlMixin, CrisprFieldComponent, convertBytesToMb, } from '../../utils';
|
|
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 "@angular/common";
|
|
22
|
+
import * as i4 from "@angular/material/icon";
|
|
23
|
+
import * as i5 from "@angular/material/button";
|
|
24
|
+
import * as i6 from "@angular/material/form-field";
|
|
25
|
+
import * as i7 from "@angular/material/input";
|
|
26
|
+
import * as i8 from "@tft/form-validation-handler";
|
|
27
|
+
const ImageUploadFieldMixin = crisprControlMixin(CrisprFieldComponent);
|
|
28
|
+
export class ImageUploadFieldComponent extends ImageUploadFieldMixin {
|
|
29
|
+
constructor(ngControl, domSanitizer, cdr) {
|
|
30
|
+
super();
|
|
31
|
+
this.ngControl = ngControl;
|
|
32
|
+
this.domSanitizer = domSanitizer;
|
|
33
|
+
this.cdr = cdr;
|
|
34
|
+
this.defaultConfig = {
|
|
35
|
+
// allowMultipleFiles: false,
|
|
36
|
+
acceptedTypes: 'image/*',
|
|
37
|
+
dropZoneText: 'DROP FILE HERE',
|
|
38
|
+
selectFilesButtonType: 'button',
|
|
39
|
+
selectButtonText: 'SELECT',
|
|
40
|
+
showClearFilesButton: true,
|
|
41
|
+
clearFilesButtonText: 'CLEAR',
|
|
42
|
+
resetFilesButtonText: 'RESET',
|
|
43
|
+
imagePreviewHeight: '250px',
|
|
44
|
+
compressImage: false,
|
|
45
|
+
targetCompressedImageFileSizeMb: 0.4,
|
|
46
|
+
minCompressionThresholdMb: 0.6,
|
|
47
|
+
useWebWorker: true,
|
|
48
|
+
};
|
|
49
|
+
this.inputImageFileSubject = new Subject();
|
|
50
|
+
this.inputImageFile$ = this.inputImageFileSubject
|
|
51
|
+
.asObservable()
|
|
52
|
+
.pipe(shareReplay(1));
|
|
53
|
+
this.compressedFile$ = this.inputImageFile$.pipe(switchMap(async (file) => {
|
|
54
|
+
if (!file || !(file instanceof File))
|
|
55
|
+
return null;
|
|
56
|
+
const { compressImage, targetCompressedImageFileSizeMb, minCompressionThresholdMb, maxWidthOrHeight, useWebWorker, } = this.config;
|
|
57
|
+
const fileSizeMb = convertBytesToMb(file.size);
|
|
58
|
+
const shouldCompress = compressImage &&
|
|
59
|
+
targetCompressedImageFileSizeMb < fileSizeMb &&
|
|
60
|
+
minCompressionThresholdMb < fileSizeMb;
|
|
61
|
+
if (shouldCompress) {
|
|
62
|
+
const options = {
|
|
63
|
+
// Use maxWidthOrHeight if it was provided, else use target compressed size
|
|
64
|
+
...(maxWidthOrHeight
|
|
65
|
+
? { maxWidthOrHeight }
|
|
66
|
+
: { maxSizeMB: targetCompressedImageFileSizeMb }),
|
|
67
|
+
useWebWorker,
|
|
68
|
+
maxIterations: 30,
|
|
69
|
+
onProgress: (progress) => {
|
|
70
|
+
this.progress = progress;
|
|
71
|
+
this.cdr.detectChanges();
|
|
72
|
+
},
|
|
73
|
+
};
|
|
74
|
+
return await imageCompression(file, options);
|
|
75
|
+
}
|
|
76
|
+
else
|
|
77
|
+
return file;
|
|
78
|
+
}), map((compressedFile) => {
|
|
79
|
+
if (!compressedFile)
|
|
80
|
+
return compressedFile;
|
|
81
|
+
const { type, name, lastModified } = compressedFile;
|
|
82
|
+
return new File([compressedFile], this.config.fileName || name, {
|
|
83
|
+
type,
|
|
84
|
+
lastModified,
|
|
85
|
+
});
|
|
86
|
+
}), tap((file) => {
|
|
87
|
+
// only set the value if there is a file because resetToInitialValue sets the control value
|
|
88
|
+
// to initial value and clears the compressed image, so setting it to null here would undo that
|
|
89
|
+
if (file) {
|
|
90
|
+
this.control.setValue(file);
|
|
91
|
+
}
|
|
92
|
+
if (file || this.value) {
|
|
93
|
+
this.control.markAsTouched();
|
|
94
|
+
setTimeout(() => {
|
|
95
|
+
this.cdr.detectChanges();
|
|
96
|
+
}, 100);
|
|
97
|
+
}
|
|
98
|
+
}), shareReplay(1));
|
|
99
|
+
this.compressedImageUrlString$ = this.compressedFile$.pipe(switchMap(async (file) => {
|
|
100
|
+
if (!file)
|
|
101
|
+
return null;
|
|
102
|
+
const compressedStringImage = await imageCompression.getDataUrlFromFile(file);
|
|
103
|
+
return this.domSanitizer.bypassSecurityTrustResourceUrl(compressedStringImage);
|
|
104
|
+
}), shareReplay(1));
|
|
105
|
+
this.isUploaded = false;
|
|
106
|
+
if (this.ngControl != null) {
|
|
107
|
+
// Setting the value accessor directly (instead of using
|
|
108
|
+
// the providers) to avoid running into a circular import.
|
|
109
|
+
ngControl.valueAccessor = this;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
ngOnInit() {
|
|
113
|
+
super.ngOnInit();
|
|
114
|
+
this.imageSrcUrl$ = combineLatest([
|
|
115
|
+
this.compressedImageUrlString$.pipe(startWith(null)),
|
|
116
|
+
this.control.valueChanges.pipe(startWith(this.value), map((controlValue) => {
|
|
117
|
+
if (!controlValue)
|
|
118
|
+
return null;
|
|
119
|
+
if (controlValue instanceof File)
|
|
120
|
+
return null;
|
|
121
|
+
return (this.config.mapInputValueToUrl?.(controlValue) ||
|
|
122
|
+
controlValue);
|
|
123
|
+
})),
|
|
124
|
+
]).pipe(map(([compressedImageUrlString, controlUrl]) => {
|
|
125
|
+
return compressedImageUrlString || controlUrl || null;
|
|
126
|
+
}));
|
|
127
|
+
this.disabled$ = this.config.disabledCallback
|
|
128
|
+
? this.config.disabledCallback(this.group)
|
|
129
|
+
: of(false);
|
|
130
|
+
}
|
|
131
|
+
filesChanged(files) {
|
|
132
|
+
if (files && files.length > 0) {
|
|
133
|
+
const imageFile = files[0];
|
|
134
|
+
// We clear the control here so that it is invalid while compressing
|
|
135
|
+
// the input pipeline will take care of resetting it
|
|
136
|
+
this.control.patchValue(null);
|
|
137
|
+
// this.control.setErrors({compressing: {loadingMessage: 'Please wait while file compresses'}});
|
|
138
|
+
this.control.markAsTouched();
|
|
139
|
+
this.inputImageFileSubject.next(imageFile);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
clearFileInput() {
|
|
143
|
+
this.inputImageFileSubject.next(null);
|
|
144
|
+
this.fileInputRef.nativeElement.value = '';
|
|
145
|
+
this.control.patchValue(null);
|
|
146
|
+
this.control.markAsTouched();
|
|
147
|
+
this.isUploaded = false;
|
|
148
|
+
}
|
|
149
|
+
resetToInitialValue(initialValue) {
|
|
150
|
+
this.inputImageFileSubject.next(null);
|
|
151
|
+
this.control.patchValue(initialValue);
|
|
152
|
+
this.isUploaded = false;
|
|
153
|
+
}
|
|
154
|
+
writeValue(value) { }
|
|
155
|
+
registerOnChange(fn) {
|
|
156
|
+
this.onChange = fn;
|
|
157
|
+
}
|
|
158
|
+
registerOnTouched(fn) { }
|
|
159
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: ImageUploadFieldComponent, deps: [{ token: i1.NgControl, optional: true, self: true }, { token: i2.DomSanitizer }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
160
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: ImageUploadFieldComponent, isStandalone: true, 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-hint *ngIf=\"config.hint && (control.valid || !control.touched)\">{{config.hint}}</mat-hint>\n\n </mat-form-field>\n\n</crispr-field-container>\n", styles: [":host ::ng-deep .mat-mdc-form-field .mat-mdc-form-field-infix{padding-top:0}:host ::ng-deep .mat-mdc-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;box-sizing:border-box;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"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "component", type: FieldContainerComponent, selector: "crispr-field-container", inputs: ["config", "group", "inlineField"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", 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]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i5.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i6.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i6.MatLabel, selector: "mat-label" }, { kind: "directive", type: i6.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i7.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: SelectedFileComponent, selector: "crispr-selected-file", inputs: ["fileName", "progress", "showProgress", "color"] }, { kind: "directive", type: FileDropzoneDirective, selector: "[crisprFileDropzone]", inputs: ["crisprFileDropzone"], outputs: ["fileDrop"] }, { kind: "ngmodule", type: FormValidationHandlerModule }, { kind: "directive", type: i8.ControlErrorsDirective, selector: "[formControl], [formControlName]" }, { kind: "directive", type: i8.ControlErrorContainerDirective, selector: "[controlErrorContainer], [formGroup]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, preserveWhitespaces: true }); }
|
|
161
|
+
}
|
|
162
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: ImageUploadFieldComponent, decorators: [{
|
|
163
|
+
type: Component,
|
|
164
|
+
args: [{ selector: 'crispr-image-upload-field', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
165
|
+
CommonModule,
|
|
166
|
+
FieldContainerComponent,
|
|
167
|
+
ReactiveFormsModule,
|
|
168
|
+
MatIconModule,
|
|
169
|
+
MatButtonModule,
|
|
170
|
+
MatFormFieldModule,
|
|
171
|
+
MatInputModule,
|
|
172
|
+
SelectedFileComponent,
|
|
173
|
+
FileDropzoneDirective,
|
|
174
|
+
FormValidationHandlerModule,
|
|
175
|
+
], 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-hint *ngIf=\"config.hint && (control.valid || !control.touched)\">{{config.hint}}</mat-hint>\n\n </mat-form-field>\n\n</crispr-field-container>\n", styles: [":host ::ng-deep .mat-mdc-form-field .mat-mdc-form-field-infix{padding-top:0}:host ::ng-deep .mat-mdc-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;box-sizing:border-box;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"] }]
|
|
176
|
+
}], ctorParameters: () => [{ type: i1.NgControl, decorators: [{
|
|
177
|
+
type: Optional
|
|
178
|
+
}, {
|
|
179
|
+
type: Self
|
|
180
|
+
}] }, { type: i2.DomSanitizer }, { type: i0.ChangeDetectorRef }], propDecorators: { fileInputRef: [{
|
|
181
|
+
type: ViewChild,
|
|
182
|
+
args: ['fileInput']
|
|
183
|
+
}] } });
|
|
184
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtdXBsb2FkLWZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY3Jpc3ByLWZvcm1zL3NyYy9saWIvdWkvaW1hZ2UtdXBsb2FkLWZpZWxkL2ltYWdlLXVwbG9hZC1maWVsZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NyaXNwci1mb3Jtcy9zcmMvbGliL3VpL2ltYWdlLXVwbG9hZC1maWVsZC9pbWFnZS11cGxvYWQtZmllbGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsa0RBQWtEO0FBQ2xELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0wsU0FBUyxFQUNULFVBQVUsRUFDVixTQUFTLEVBRVQsdUJBQXVCLEVBQ3ZCLFFBQVEsRUFDUixJQUFJLEVBQ0osaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFFTCxTQUFTLEVBQ1QsbUJBQW1CLEdBQ3BCLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3pELE9BQU8sZ0JBQWdCLE1BQU0sMkJBQTJCLENBQUM7QUFDekQsT0FBTyxFQUFFLGFBQWEsRUFBYyxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzlELE9BQU8sRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxTQUFT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QUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsaUJBQWlCLENBQUMsRUFBYyxJQUFHLENBQUM7OEdBckx6Qix5QkFBeUI7a0dBQXpCLHlCQUF5Qix1TkMxRHRDLGkyRkF1RkEsZ3dDRHpDSSxZQUFZLHdMQUNaLHVCQUF1Qiw4R0FDdkIsbUJBQW1CLG0yQkFDbkIsYUFBYSxtTEFDYixlQUFlLDJOQUNmLGtCQUFrQixrWUFDbEIsY0FBYywyV0FDZCxxQkFBcUIsNEhBQ3JCLHFCQUFxQix1SEFDckIsMkJBQTJCOzsyRkFHbEIseUJBQXlCO2tCQW5CckMsU0FBUzsrQkFDRSwyQkFBMkIsbUJBR3BCLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osdUJBQXVCO3dCQUN2QixtQkFBbUI7d0JBQ25CLGFBQWE7d0JBQ2IsZUFBZTt3QkFDZixrQkFBa0I7d0JBQ2xCLGNBQWM7d0JBQ2QscUJBQXFCO3dCQUNyQixxQkFBcUI7d0JBQ3JCLDJCQUEyQjtxQkFDNUI7OzBCQWtIRSxRQUFROzswQkFBSSxJQUFJO29HQVRLLFlBQVk7c0JBQW5DLFNBQVM7dUJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEBueC9lbmZvcmNlLW1vZHVsZS1ib3VuZGFyaWVzICovXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBWaWV3Q2hpbGQsXG4gIE9uSW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIE9wdGlvbmFsLFxuICBTZWxmLFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBDb250cm9sVmFsdWVBY2Nlc3NvcixcbiAgTmdDb250cm9sLFxuICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcbmltcG9ydCB7IERvbVNhbml0aXplciB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IGltYWdlQ29tcHJlc3Npb24gZnJvbSAnYnJvd3Nlci1pbWFnZS1jb21wcmVzc2lvbic7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlLCBvZiwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwLCBzaGFyZVJlcGxheSwgc3RhcnRXaXRoLCBzd2l0Y2hNYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEZvcm1WYWxpZGF0aW9uSGFuZGxlck1vZHVsZSB9IGZyb20gJ0B0ZnQvZm9ybS12YWxpZGF0aW9uLWhhbmRsZXInO1xuaW1wb3J0IHsgRmlsZURyb3B6b25lRGlyZWN0aXZlIH0gZnJvbSAnLi4vZmlsZS1kcm9wem9uZSc7XG5pbXBvcnQgeyBTZWxlY3RlZEZpbGVDb21wb25lbnQgfSBmcm9tICcuLi9zZWxlY3RlZC1maWxlJztcbmltcG9ydCB7IEZpZWxkQ29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi4vZmllbGQtY29udGFpbmVyJztcbmltcG9ydCB7XG4gIGNyaXNwckNvbnRyb2xNaXhpbixcbiAgQ3Jpc3ByRmllbGRDb21wb25lbnQsXG4gIGNvbnZlcnRCeXRlc1RvTWIsXG4gIEltYWdlVXBsb2FkRmllbGRDb25maWcsXG59IGZyb20gJy4uLy4uL3V0aWxzJztcblxuY29uc3QgSW1hZ2VVcGxvYWRGaWVsZE1peGluID1cbiAgY3Jpc3ByQ29udHJvbE1peGluPEltYWdlVXBsb2FkRmllbGRDb25maWc+KENyaXNwckZpZWxkQ29tcG9uZW50KTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY3Jpc3ByLWltYWdlLXVwbG9hZC1maWVsZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9pbWFnZS11cGxvYWQtZmllbGQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9pbWFnZS11cGxvYWQtZmllbGQuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRmllbGRDb250YWluZXJDb21wb25lbnQsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBNYXRJY29uTW9kdWxlLFxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICBNYXRGb3JtRmllbGRNb2R1bGUsXG4gICAgTWF0SW5wdXRNb2R1bGUsXG4gICAgU2VsZWN0ZWRGaWxlQ29tcG9uZW50LFxuICAgIEZpbGVEcm9wem9uZURpcmVjdGl2ZSxcbiAgICBGb3JtVmFsaWRhdGlvbkhhbmRsZXJNb2R1bGUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEltYWdlVXBsb2FkRmllbGRDb21wb25lbnRcbiAgZXh0ZW5kcyBJbWFnZVVwbG9hZEZpZWxkTWl4aW5cbiAgaW1wbGVtZW50cyBPbkluaXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yXG57XG4gIG9uQ2hhbmdlOiAoKSA9PiB2b2lkO1xuXG4gIGRlZmF1bHRDb25maWc6IFBhcnRpYWw8SW1hZ2VVcGxvYWRGaWVsZENvbmZpZz4gPSB7XG4gICAgLy8gYWxsb3dNdWx0aXBsZUZpbGVzOiBmYWxzZSxcbiAgICBhY2NlcHRlZFR5cGVzOiAnaW1hZ2UvKicsXG4gICAgZHJvcFpvbmVUZXh0OiAnRFJPUCBGSUxFIEhFUkUnLFxuICAgIHNlbGVjdEZpbGVzQnV0dG9uVHlwZTogJ2J1dHRvbicsXG4gICAgc2VsZWN0QnV0dG9uVGV4dDogJ1NFTEVDVCcsXG4gICAgc2hvd0NsZWFyRmlsZXNCdXR0b246IHRydWUsXG4gICAgY2xlYXJGaWxlc0J1dHRvblRleHQ6ICdDTEVBUicsXG4gICAgcmVzZXRGaWxlc0J1dHRvblRleHQ6ICdSRVNFVCcsXG4gICAgaW1hZ2VQcmV2aWV3SGVpZ2h0OiAnMjUwcHgnLFxuICAgIGNvbXByZXNzSW1hZ2U6IGZhbHNlLFxuICAgIHRhcmdldENvbXByZXNzZWRJbWFnZUZpbGVTaXplTWI6IDAuNCxcbiAgICBtaW5Db21wcmVzc2lvblRocmVzaG9sZE1iOiAwLjYsXG4gICAgdXNlV2ViV29ya2VyOiB0cnVlLFxuICB9O1xuXG4gIHByaXZhdGUgaW5wdXRJbWFnZUZpbGVTdWJqZWN0ID0gbmV3IFN1YmplY3Q8RmlsZSB8IG51bGw+KCk7XG4gIGlucHV0SW1hZ2VGaWxlJCA9IHRoaXMuaW5wdXRJbWFnZUZpbGVTdWJqZWN0XG4gICAgLmFzT2JzZXJ2YWJsZSgpXG4gICAgLnBpcGUoc2hhcmVSZXBsYXkoMSkpO1xuICAvKipcbiAgICogdGhlIGNvbXByZXNzaW9uIHByb2dyZXNzXG4gICAqL1xuICBwcm9ncmVzczogbnVtYmVyIHwgdW5kZWZpbmVkO1xuXG4gIGNvbXByZXNzZWRGaWxlJDogT2JzZXJ2YWJsZTxGaWxlPiA9IHRoaXMuaW5wdXRJbWFnZUZpbGUkLnBpcGUoXG4gICAgc3dpdGNoTWFwKGFzeW5jIChmaWxlKSA9PiB7XG4gICAgICBpZiAoIWZpbGUgfHwgIShmaWxlIGluc3RhbmNlb2YgRmlsZSkpIHJldHVybiBudWxsO1xuICAgICAgY29uc3Qge1xuICAgICAgICBjb21wcmVzc0ltYWdlLFxuICAgICAgICB0YXJnZXRDb21wcmVzc2VkSW1hZ2VGaWxlU2l6ZU1iLFxuICAgICAgICBtaW5Db21wcmVzc2lvblRocmVzaG9sZE1iLFxuICAgICAgICBtYXhXaWR0aE9ySGVpZ2h0LFxuICAgICAgICB1c2VXZWJXb3JrZXIsXG4gICAgICB9ID0gdGhpcy5jb25maWc7XG4gICAgICBjb25zdCBmaWxlU2l6ZU1iID0gY29udmVydEJ5dGVzVG9NYihmaWxlLnNpemUpO1xuICAgICAgY29uc3Qgc2hvdWxkQ29tcHJlc3MgPVxuICAgICAgICBjb21wcmVzc0ltYWdlICYmXG4gICAgICAgIHRhcmdldENvbXByZXNzZWRJbWFnZUZpbGVTaXplTWIgPCBmaWxlU2l6ZU1iICYmXG4gICAgICAgIG1pbkNvbXByZXNzaW9uVGhyZXNob2xkTWIgPCBmaWxlU2l6ZU1iO1xuICAgICAgaWYgKHNob3VsZENvbXByZXNzKSB7XG4gICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICAgICAgLy8gVXNlIG1heFdpZHRoT3JIZWlnaHQgaWYgaXQgd2FzIHByb3ZpZGVkLCBlbHNlIHVzZSB0YXJnZXQgY29tcHJlc3NlZCBzaXplXG4gICAgICAgICAgLi4uKG1heFdpZHRoT3JIZWlnaHRcbiAgICAgICAgICAgID8geyBtYXhXaWR0aE9ySGVpZ2h0IH1cbiAgICAgICAgICAgIDogeyBtYXhTaXplTUI6IHRhcmdldENvbXByZXNzZWRJbWFnZUZpbGVTaXplTWIgfSksXG4gICAgICAgICAgdXNlV2ViV29ya2VyLFxuICAgICAgICAgIG1heEl0ZXJhdGlvbnM6IDMwLFxuICAgICAgICAgIG9uUHJvZ3Jlc3M6IChwcm9ncmVzczogbnVtYmVyKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnByb2dyZXNzID0gcHJvZ3Jlc3M7XG4gICAgICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIGF3YWl0IGltYWdlQ29tcHJlc3Npb24oZmlsZSwgb3B0aW9ucyk7XG4gICAgICB9IGVsc2UgcmV0dXJuIGZpbGU7XG4gICAgfSksXG4gICAgbWFwKChjb21wcmVzc2VkRmlsZTogRmlsZSkgPT4ge1xuICAgICAgaWYgKCFjb21wcmVzc2VkRmlsZSkgcmV0dXJuIGNvbXByZXNzZWRGaWxlO1xuICAgICAgY29uc3QgeyB0eXBlLCBuYW1lLCBsYXN0TW9kaWZpZWQgfSA9IGNvbXByZXNzZWRGaWxlO1xuICAgICAgcmV0dXJuIG5ldyBGaWxlKFtjb21wcmVzc2VkRmlsZV0sIHRoaXMuY29uZmlnLmZpbGVOYW1lIHx8IG5hbWUsIHtcbiAgICAgICAgdHlwZSxcbiAgICAgICAgbGFzdE1vZGlmaWVkLFxuICAgICAgfSk7XG4gICAgfSksXG4gICAgdGFwKChmaWxlKSA9PiB7XG4gICAgICAvLyBvbmx5IHNldCB0aGUgdmFsdWUgaWYgdGhlcmUgaXMgYSBmaWxlIGJlY2F1c2UgcmVzZXRUb0luaXRpYWxWYWx1ZSBzZXRzIHRoZSBjb250cm9sIHZhbHVlXG4gICAgICAvLyB0byBpbml0aWFsIHZhbHVlIGFuZCBjbGVhcnMgdGhlIGNvbXByZXNzZWQgaW1hZ2UsIHNvIHNldHRpbmcgaXQgdG8gbnVsbCBoZXJlIHdvdWxkIHVuZG8gdGhhdFxuICAgICAgaWYgKGZpbGUpIHtcbiAgICAgICAgdGhpcy5jb250cm9sLnNldFZhbHVlKGZpbGUpO1xuICAgICAgfVxuICAgICAgaWYgKGZpbGUgfHwgdGhpcy52YWx1ZSkge1xuICAgICAgICB0aGlzLmNvbnRyb2wubWFya0FzVG91Y2hlZCgpO1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH0sIDEwMCk7XG4gICAgICB9XG4gICAgfSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICBjb21wcmVzc2VkSW1hZ2VVcmxTdHJpbmckOiBPYnNlcnZhYmxlPHN0cmluZyB8IG51bGw+ID1cbiAgICB0aGlzLmNvbXByZXNzZWRGaWxlJC5waXBlKFxuICAgICAgc3dpdGNoTWFwKGFzeW5jIChmaWxlKSA9PiB7XG4gICAgICAgIGlmICghZmlsZSkgcmV0dXJuIG51bGw7XG4gICAgICAgIGNvbnN0IGNvbXByZXNzZWRTdHJpbmdJbWFnZSA9IGF3YWl0IGltYWdlQ29tcHJlc3Npb24uZ2V0RGF0YVVybEZyb21GaWxlKFxuICAgICAgICAgIGZpbGVcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuZG9tU2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RSZXNvdXJjZVVybChcbiAgICAgICAgICBjb21wcmVzc2VkU3RyaW5nSW1hZ2VcbiAgICAgICAgKSBhcyBzdHJpbmc7XG4gICAgICB9KSxcbiAgICAgIHNoYXJlUmVwbGF5KDEpXG4gICAgKTtcblxuICAvLyBUaGlzIGlzIHdoYXQgaXMgZGlzcGxheWVkIGJ5IHRoZSBpbWFnZSBwcmV2aWV3XG4gIGltYWdlU3JjVXJsJDogT2JzZXJ2YWJsZTxzdHJpbmcgfCBudWxsPjtcblxuICBAVmlld0NoaWxkKCdmaWxlSW5wdXQnKSBmaWxlSW5wdXRSZWY6IEVsZW1lbnRSZWY7XG5cbiAgc2VsZWN0ZWRGaWxlczogRmlsZUxpc3Q7XG5cbiAgaXNVcGxvYWRlZCA9IGZhbHNlO1xuXG4gIGRpc2FibGVkJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBAT3B0aW9uYWwoKSBAU2VsZigpIHB1YmxpYyBuZ0NvbnRyb2w6IE5nQ29udHJvbCxcbiAgICBwcml2YXRlIGRvbVNhbml0aXplcjogRG9tU2FuaXRpemVyLFxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZlxuICApIHtcbiAgICBzdXBlcigpO1xuICAgIGlmICh0aGlzLm5nQ29udHJvbCAhPSBudWxsKSB7XG4gICAgICAvLyBTZXR0aW5nIHRoZSB2YWx1ZSBhY2Nlc3NvciBkaXJlY3RseSAoaW5zdGVhZCBvZiB1c2luZ1xuICAgICAgLy8gdGhlIHByb3ZpZGVycykgdG8gYXZvaWQgcnVubmluZyBpbnRvIGEgY2lyY3VsYXIgaW1wb3J0LlxuICAgICAgbmdDb250cm9sLnZhbHVlQWNjZXNzb3IgPSB0aGlzO1xuICAgIH1cbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgdGhpcy5pbWFnZVNyY1VybCQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMuY29tcHJlc3NlZEltYWdlVXJsU3RyaW5nJC5waXBlKHN0YXJ0V2l0aChudWxsKSksXG4gICAgICB0aGlzLmNvbnRyb2wudmFsdWVDaGFuZ2VzLnBpcGUoXG4gICAgICAgIHN0YXJ0V2l0aCh0aGlzLnZhbHVlKSxcbiAgICAgICAgbWFwKChjb250cm9sVmFsdWUpOiBzdHJpbmcgPT4ge1xuICAgICAgICAgIGlmICghY29udHJvbFZhbHVlKSByZXR1cm4gbnVsbDtcbiAgICAgICAgICBpZiAoY29udHJvbFZhbHVlIGluc3RhbmNlb2YgRmlsZSkgcmV0dXJuIG51bGw7XG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHRoaXMuY29uZmlnLm1hcElucHV0VmFsdWVUb1VybD8uKGNvbnRyb2xWYWx1ZSkgfHxcbiAgICAgICAgICAgIChjb250cm9sVmFsdWUgYXMgc3RyaW5nKVxuICAgICAgICAgICk7XG4gICAgICAgIH0pXG4gICAgICApLFxuICAgIF0pLnBpcGUoXG4gICAgICBtYXAoKFtjb21wcmVzc2VkSW1hZ2VVcmxTdHJpbmcsIGNvbnRyb2xVcmxdKSA9PiB7XG4gICAgICAgIHJldHVybiBjb21wcmVzc2VkSW1hZ2VVcmxTdHJpbmcgfHwgY29udHJvbFVybCB8fCBudWxsO1xuICAgICAgfSlcbiAgICApO1xuICAgIHRoaXMuZGlzYWJsZWQkID0gdGhpcy5jb25maWcuZGlzYWJsZWRDYWxsYmFja1xuICAgICAgPyB0aGlzLmNvbmZpZy5kaXNhYmxlZENhbGxiYWNrKHRoaXMuZ3JvdXApXG4gICAgICA6IG9mKGZhbHNlKTtcbiAgfVxuXG4gIGZpbGVzQ2hhbmdlZChmaWxlczogRmlsZUxpc3QpOiB2b2lkIHtcbiAgICBpZiAoZmlsZXMgJiYgZmlsZXMubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgaW1hZ2VGaWxlID0gZmlsZXNbMF07XG4gICAgICAvLyBXZSBjbGVhciB0aGUgY29udHJvbCBoZXJlIHNvIHRoYXQgaXQgaXMgaW52YWxpZCB3aGlsZSBjb21wcmVzc2luZ1xuICAgICAgLy8gdGhlIGlucHV0IHBpcGVsaW5lIHdpbGwgdGFrZSBjYXJlIG9mIHJlc2V0dGluZyBpdFxuICAgICAgdGhpcy5jb250cm9sLnBhdGNoVmFsdWUobnVsbCk7XG4gICAgICAvLyB0aGlzLmNvbnRyb2wuc2V0RXJyb3JzKHtjb21wcmVzc2luZzoge2xvYWRpbmdNZXNzYWdlOiAnUGxlYXNlIHdhaXQgd2hpbGUgZmlsZSBjb21wcmVzc2VzJ319KTtcbiAgICAgIHRoaXMuY29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XG4gICAgICB0aGlzLmlucHV0SW1hZ2VGaWxlU3ViamVjdC5uZXh0KGltYWdlRmlsZSk7XG4gICAgfVxuICB9XG5cbiAgY2xlYXJGaWxlSW5wdXQoKTogdm9pZCB7XG4gICAgdGhpcy5pbnB1dEltYWdlRmlsZVN1YmplY3QubmV4dChudWxsKTtcbiAgICB0aGlzLmZpbGVJbnB1dFJlZi5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XG4gICAgdGhpcy5jb250cm9sLnBhdGNoVmFsdWUobnVsbCk7XG4gICAgdGhpcy5jb250cm9sLm1hcmtBc1RvdWNoZWQoKTtcbiAgICB0aGlzLmlzVXBsb2FkZWQgPSBmYWxzZTtcbiAgfVxuXG4gIHJlc2V0VG9Jbml0aWFsVmFsdWUoaW5pdGlhbFZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmlucHV0SW1hZ2VGaWxlU3ViamVjdC5uZXh0KG51bGwpO1xuICAgIHRoaXMuY29udHJvbC5wYXRjaFZhbHVlKGluaXRpYWxWYWx1ZSk7XG4gICAgdGhpcy5pc1VwbG9hZGVkID0gZmFsc2U7XG4gIH1cblxuICB3cml0ZVZhbHVlKHZhbHVlOiBudWxsKSB7fVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICgpID0+IHZvaWQpIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCkge31cbn1cbiIsIjxjcmlzcHItZmllbGQtY29udGFpbmVyXG4gIFtjb25maWddPVwiY29uZmlnXCJcbiAgW2dyb3VwXT1cImdyb3VwXCI+XG5cbiAgPG1hdC1mb3JtLWZpZWxkIGZsb2F0TGFiZWw9XCJhbHdheXNcIlxuICAgIFtjb2xvcl09XCJjb25maWcuY29sb3JcIlxuICAgIFthcHBlYXJhbmNlXT1cImNvbmZpZy5hcHBlYXJhbmNlXCJcbiAgICBbZm9ybUdyb3VwXT1cImdyb3VwXCI+XG4gICAgPG1hdC1sYWJlbD57e2NvbmZpZy5sYWJlbH19PC9tYXQtbGFiZWw+XG4gICAgPGlucHV0IFtmb3JtQ29udHJvbE5hbWVdPVwiY29uZmlnLmNvbnRyb2xOYW1lXCIgbWF0SW5wdXQgdHlwZT1cInRleHRcIi8+XG4gICAgPGlucHV0XG4gICAgICAjZmlsZUlucHV0XG4gICAgICB0eXBlPVwiZmlsZVwiXG4gICAgICBbYWNjZXB0XT1cImNvbmZpZy5hY2NlcHRlZFR5cGVzXCJcbiAgICAgIChjaGFuZ2UpPVwiZmlsZXNDaGFuZ2VkKCRldmVudC50YXJnZXQuZmlsZXMpXCIvPlxuICAgIDxkaXYgY2xhc3M9XCJ1aS1jb250YWluZXJcIj5cblxuICAgICAgPGRpdiBjbGFzcz1cImltYWdlLXByZXZpZXdcIiBbc3R5bGUuaGVpZ2h0XT1cImNvbmZpZy5pbWFnZVByZXZpZXdIZWlnaHRcIj5cbiAgICAgICAgPGNyaXNwci1zZWxlY3RlZC1maWxlXG4gICAgICAgICAgKm5nSWY9XCIocHJvZ3Jlc3MgPCAxMDApICYmIGlucHV0SW1hZ2VGaWxlJCB8IGFzeW5jIGFzIGZpbGU7IGVsc2UgZHJvcHpvbmVPclByZXZpZXdcIlxuICAgICAgICAgIFtjb2xvcl09XCJjb25maWcuY29sb3IgPT09ICdwcmltYXJ5JyA/ICdhY2NlbnQnIDogJ3ByaW1hcnknXCJcbiAgICAgICAgICBbZmlsZU5hbWVdPVwiJ0NvbXByZXNzaW5nOiAnICsgZmlsZS5uYW1lXCJcbiAgICAgICAgICBbc2hvd1Byb2dyZXNzXT1cInRydWVcIlxuICAgICAgICAgIFtwcm9ncmVzc109XCJwcm9ncmVzc1wiPlxuICAgICAgICA8L2NyaXNwci1zZWxlY3RlZC1maWxlPlxuXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjZHJvcHpvbmVPclByZXZpZXc+XG4gICAgICAgICAgPCEtLSA8aW1nICpuZ0lmPVwiKGluaXRpYWxVcmxTdHJpbmckIHwgYXN5bmMpIGFzIGluaXRpYWxVcmxTdHJpbmc7XCIgW3NyY109XCJpbml0aWFsVXJsU3RyaW5nXCIgYWx0PVwiXCI+IC0tPlxuICAgICAgICAgIDxpbWcgKm5nSWY9XCJpbWFnZVNyY1VybCQgfCBhc3luYyBhcyBzcmNVcmw7IGVsc2Ugbm9JbWFnZVwiIFtzcmNdPVwic3JjVXJsXCIgYWx0PVwiXCI+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNub0ltYWdlPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRyb3AtY29udGFpbmVyXCJcbiAgICAgICAgICAgICAgW2NyaXNwckZpbGVEcm9wem9uZV09XCIhKGRpc2FibGVkJCB8IGFzeW5jKVwiXG4gICAgICAgICAgICAgIChmaWxlRHJvcCk9XCJmaWxlc0NoYW5nZWQoJGV2ZW50KVwiPlxuICAgICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJkcm9wLWljb25cIiBpbmxpbmU9XCJ0cnVlXCI+Y2xvdWRfdXBsb2FkPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgPGgyIGNsYXNzPVwibWF0LWgyXCI+e3tjb25maWcuZHJvcFpvbmVUZXh0fX08L2gyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPC9kaXY+XG5cblxuXG4gICAgICA8IS0tIDwvbmctdGVtcGxhdGU+IC0tPlxuICAgICAgPGRpdiBjbGFzcz1cImJ1dHRvbi1jb250YWluZXJcIiAqbmdJZj1cInRydWVcIj5cblxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgbWF0LWJ1dHRvblxuICAgICAgICAgIChjbGljayk9XCJjbGVhckZpbGVJbnB1dCgpXCJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiKGRpc2FibGVkJCB8IGFzeW5jKVwiXG4gICAgICAgICAgYXJpYS1sYWJlbD1cIlJlbW92ZSBTZWxlY3RlZCBGaWxlKHMpXCI+XG4gICAgICAgICAgPG1hdC1pY29uPmRlbGV0ZTwvbWF0LWljb24+XG4gICAgICAgICAge3tjb25maWcuY2xlYXJGaWxlc0J1dHRvblRleHR9fVxuICAgICAgICA8L2J1dHRvbj5cblxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgKm5nSWY9XCJ2YWx1ZVwiXG4gICAgICAgICAgbWF0LWJ1dHRvblxuICAgICAgICAgIChjbGljayk9XCJyZXNldFRvSW5pdGlhbFZhbHVlKHZhbHVlKVwiXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIihkaXNhYmxlZCQgfCBhc3luYylcIlxuICAgICAgICAgIGFyaWEtbGFiZWw9XCJSZW1vdmUgU2VsZWN0ZWQgRmlsZShzKVwiPlxuICAgICAgICAgIDxtYXQtaWNvbj5yZXBsYXk8L21hdC1pY29uPlxuICAgICAgICAgIHt7Y29uZmlnLnJlc2V0RmlsZXNCdXR0b25UZXh0fX1cbiAgICAgICAgPC9idXR0b24+XG5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIG1hdC1idXR0b25cbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCIoZGlzYWJsZWQkIHwgYXN5bmMpXCJcbiAgICAgICAgICAoY2xpY2spPVwiZmlsZUlucHV0LmNsaWNrKClcIlxuICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiY29uZmlnLmNvbnRyb2xOYW1lXCI+XG4gICAgICAgICAgPG1hdC1pY29uPlxuICAgICAgICAgICAgY2FtZXJhXG4gICAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgICAgICBTRUxFQ1RcbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxtYXQtaGludCAqbmdJZj1cImNvbmZpZy5oaW50ICYmIChjb250cm9sLnZhbGlkIHx8ICFjb250cm9sLnRvdWNoZWQpXCI+e3tjb25maWcuaGludH19PC9tYXQtaGludD5cblxuICA8L21hdC1mb3JtLWZpZWxkPlxuXG48L2NyaXNwci1maWVsZC1jb250YWluZXI+XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './public-api';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NyaXNwci1mb3Jtcy9zcmMvbGliL3VpL2ltYWdlLXVwbG9hZC1maWVsZC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vcHVibGljLWFwaSc7XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './image-upload-field.component';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY3Jpc3ByLWZvcm1zL3NyYy9saWIvdWkvaW1hZ2UtdXBsb2FkLWZpZWxkL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxnQ0FBZ0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vaW1hZ2UtdXBsb2FkLWZpZWxkLmNvbXBvbmVudCc7XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './public-api';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NyaXNwci1mb3Jtcy9zcmMvbGliL3VpL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './public-api';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NyaXNwci1mb3Jtcy9zcmMvbGliL3VpL2luZm8vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { Component, Input, ChangeDetectionStrategy } 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/common";
|
|
7
|
+
import * as i2 from "@angular/material/icon";
|
|
8
|
+
import * as i3 from "@angular/material/tooltip";
|
|
9
|
+
export class InfoComponent {
|
|
10
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: InfoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
11
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: InfoComponent, isStandalone: true, selector: "crispr-info", inputs: { info: "info" }, ngImport: i0, template: "<mat-icon\n *ngIf=\"info\"\n [matTooltip]=\"info.content\"\n [matTooltipPosition]=\"info.tooltipPosition || 'below'\">\n {{info.iconName || 'info'}}\n</mat-icon>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, preserveWhitespaces: true }); }
|
|
12
|
+
}
|
|
13
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: InfoComponent, decorators: [{
|
|
14
|
+
type: Component,
|
|
15
|
+
args: [{ selector: 'crispr-info', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
16
|
+
CommonModule,
|
|
17
|
+
MatIconModule,
|
|
18
|
+
MatTooltipModule
|
|
19
|
+
], template: "<mat-icon\n *ngIf=\"info\"\n [matTooltip]=\"info.content\"\n [matTooltipPosition]=\"info.tooltipPosition || 'below'\">\n {{info.iconName || 'info'}}\n</mat-icon>\n" }]
|
|
20
|
+
}], propDecorators: { info: [{
|
|
21
|
+
type: Input
|
|
22
|
+
}] } });
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5mby5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NyaXNwci1mb3Jtcy9zcmMvbGliL3VpL2luZm8vaW5mby5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NyaXNwci1mb3Jtcy9zcmMvbGliL3VpL2luZm8vaW5mby5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7OztBQWU3RCxNQUFNLE9BQU8sYUFBYTs4R0FBYixhQUFhO2tHQUFiLGFBQWEsaUdDbEIxQix5S0FNQSx5RERPSSxZQUFZLGtJQUNaLGFBQWEsbUxBQ2IsZ0JBQWdCOzsyRkFHUCxhQUFhO2tCQVp6QixTQUFTOytCQUNFLGFBQWEsbUJBR04sdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixhQUFhO3dCQUNiLGdCQUFnQjtxQkFDakI7OEJBSVEsSUFBSTtzQkFBWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XG5pbXBvcnQgdHlwZSB7IEluZm8gfSBmcm9tICcuLi8uLi91dGlscyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NyaXNwci1pbmZvJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2luZm8uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9pbmZvLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIE1hdEljb25Nb2R1bGUsXG4gICAgTWF0VG9vbHRpcE1vZHVsZVxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBJbmZvQ29tcG9uZW50IHtcblxuICBASW5wdXQoKSBpbmZvOiBJbmZvO1xuXG59XG4iLCI8bWF0LWljb25cbiAgKm5nSWY9XCJpbmZvXCJcbiAgW21hdFRvb2x0aXBdPVwiaW5mby5jb250ZW50XCJcbiAgW21hdFRvb2x0aXBQb3NpdGlvbl09XCJpbmZvLnRvb2x0aXBQb3NpdGlvbiB8fCAnYmVsb3cnXCI+XG4gIHt7aW5mby5pY29uTmFtZSB8fCAnaW5mbyd9fVxuPC9tYXQtaWNvbj5cbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './info.component';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY3Jpc3ByLWZvcm1zL3NyYy9saWIvdWkvaW5mby9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsa0JBQWtCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2luZm8uY29tcG9uZW50JztcbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './public-api';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NyaXNwci1mb3Jtcy9zcmMvbGliL3VpL2lucHV0LWZpZWxkL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/* eslint-disable @nx/enforce-module-boundaries */
|
|
2
|
+
import { Component, ChangeDetectionStrategy } from '@angular/core';
|
|
3
|
+
import { MatInputModule } from '@angular/material/input';
|
|
4
|
+
import { CommonModule } from '@angular/common';
|
|
5
|
+
import { ReactiveFormsModule } from '@angular/forms';
|
|
6
|
+
import { MatFormFieldModule } from '@angular/material/form-field';
|
|
7
|
+
import { FormValidationHandlerModule } from '@tft/form-validation-handler';
|
|
8
|
+
import { FieldContainerComponent } from '../field-container';
|
|
9
|
+
import { InfoComponent } from '../info';
|
|
10
|
+
import { crisprControlMixin, CrisprFieldComponent, } from '../../utils';
|
|
11
|
+
import { MatIconModule } from '@angular/material/icon';
|
|
12
|
+
import * as i0 from "@angular/core";
|
|
13
|
+
import * as i1 from "@angular/common";
|
|
14
|
+
import * as i2 from "@angular/forms";
|
|
15
|
+
import * as i3 from "@angular/material/form-field";
|
|
16
|
+
import * as i4 from "@angular/material/input";
|
|
17
|
+
import * as i5 from "@tft/form-validation-handler";
|
|
18
|
+
const InputFieldMixin = crisprControlMixin(CrisprFieldComponent);
|
|
19
|
+
export class InputFieldComponent extends InputFieldMixin {
|
|
20
|
+
constructor() {
|
|
21
|
+
super();
|
|
22
|
+
this.defaultConfig = { inputType: 'text' };
|
|
23
|
+
}
|
|
24
|
+
ngOnInit() {
|
|
25
|
+
super.ngOnInit();
|
|
26
|
+
}
|
|
27
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: InputFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
28
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: InputFieldComponent, isStandalone: true, 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-hint *ngIf=\"config.hint && (control.valid || !control.touched)\">{{config.hint}}</mat-hint>\n\n </mat-form-field>\n\n\n</crispr-field-container>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: InfoComponent, selector: "crispr-info", inputs: ["info"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i2.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: FieldContainerComponent, selector: "crispr-field-container", inputs: ["config", "group", "inlineField"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i3.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "ngmodule", type: FormValidationHandlerModule }, { kind: "directive", type: i5.ControlErrorsDirective, selector: "[formControl], [formControlName]" }, { kind: "directive", type: i5.ControlErrorContainerDirective, selector: "[controlErrorContainer], [formGroup]" }, { kind: "ngmodule", type: MatIconModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush, preserveWhitespaces: true }); }
|
|
29
|
+
}
|
|
30
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: InputFieldComponent, decorators: [{
|
|
31
|
+
type: Component,
|
|
32
|
+
args: [{ selector: 'crispr-input-field', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
33
|
+
CommonModule,
|
|
34
|
+
InfoComponent,
|
|
35
|
+
ReactiveFormsModule,
|
|
36
|
+
FieldContainerComponent,
|
|
37
|
+
MatFormFieldModule,
|
|
38
|
+
MatInputModule,
|
|
39
|
+
FormValidationHandlerModule,
|
|
40
|
+
MatIconModule
|
|
41
|
+
], 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-hint *ngIf=\"config.hint && (control.valid || !control.touched)\">{{config.hint}}</mat-hint>\n\n </mat-form-field>\n\n\n</crispr-field-container>\n" }]
|
|
42
|
+
}], ctorParameters: () => [] });
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZmllbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jcmlzcHItZm9ybXMvc3JjL2xpYi91aS9pbnB1dC1maWVsZC9pbnB1dC1maWVsZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NyaXNwci1mb3Jtcy9zcmMvbGliL3VpL2lucHV0LWZpZWxkL2lucHV0LWZpZWxkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGtEQUFrRDtBQUNsRCxPQUFPLEVBQUUsU0FBUyxFQUFFLHVCQUF1QixFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDM0UsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDN0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUN4QyxPQUFPLEVBRUwsa0JBQWtCLEVBQ2xCLG9CQUFvQixHQUNyQixNQUFNLGFBQWEsQ0FBQztBQUNyQixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7Ozs7QUFFdkQsTUFBTSxlQUFlLEdBQ25CLGtCQUFrQixDQUFtQixvQkFBb0IsQ0FBQyxDQUFDO0FBa0I3RCxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsZUFBZTtJQUd0RDtRQUNFLEtBQUssRUFBRSxDQUFDO1FBRlYsa0JBQWEsR0FBOEIsRUFBQyxTQUFTLEVBQUUsTUFBTSxFQUFDLENBQUM7SUFHL0QsQ0FBQztJQUVELFFBQVE7UUFDTixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDbkIsQ0FBQzs4R0FUVSxtQkFBbUI7a0dBQW5CLG1CQUFtQixxR0NuQ2hDLDBrQ0FxQ0EseUREWkksWUFBWSxtSUFDWixhQUFhLHlFQUNiLG1CQUFtQixncUNBQ25CLHVCQUF1Qiw4R0FDdkIsa0JBQWtCLG1nQkFDbEIsY0FBYywwV0FDZCwyQkFBMkIsc1BBQzNCLGFBQWE7OzJGQUdKLG1CQUFtQjtrQkFqQi9CLFNBQVM7K0JBQ0Usb0JBQW9CLG1CQUdiLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osYUFBYTt3QkFDYixtQkFBbUI7d0JBQ25CLHVCQUF1Qjt3QkFDdkIsa0JBQWtCO3dCQUNsQixjQUFjO3dCQUNkLDJCQUEyQjt3QkFDM0IsYUFBYTtxQkFDZCIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEBueC9lbmZvcmNlLW1vZHVsZS1ib3VuZGFyaWVzICovXG5pbXBvcnQgeyBDb21wb25lbnQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7IEZvcm1WYWxpZGF0aW9uSGFuZGxlck1vZHVsZSB9IGZyb20gJ0B0ZnQvZm9ybS12YWxpZGF0aW9uLWhhbmRsZXInO1xuaW1wb3J0IHsgRmllbGRDb250YWluZXJDb21wb25lbnQgfSBmcm9tICcuLi9maWVsZC1jb250YWluZXInO1xuaW1wb3J0IHsgSW5mb0NvbXBvbmVudCB9IGZyb20gJy4uL2luZm8nO1xuaW1wb3J0IHtcbiAgSW5wdXRGaWVsZENvbmZpZyxcbiAgY3Jpc3ByQ29udHJvbE1peGluLFxuICBDcmlzcHJGaWVsZENvbXBvbmVudCxcbn0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuXG5jb25zdCBJbnB1dEZpZWxkTWl4aW4gPVxuICBjcmlzcHJDb250cm9sTWl4aW48SW5wdXRGaWVsZENvbmZpZz4oQ3Jpc3ByRmllbGRDb21wb25lbnQpO1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY3Jpc3ByLWlucHV0LWZpZWxkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2lucHV0LWZpZWxkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vaW5wdXQtZmllbGQuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgSW5mb0NvbXBvbmVudCxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIEZpZWxkQ29udGFpbmVyQ29tcG9uZW50LFxuICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcbiAgICBNYXRJbnB1dE1vZHVsZSxcbiAgICBGb3JtVmFsaWRhdGlvbkhhbmRsZXJNb2R1bGUsXG4gICAgTWF0SWNvbk1vZHVsZVxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBJbnB1dEZpZWxkQ29tcG9uZW50IGV4dGVuZHMgSW5wdXRGaWVsZE1peGluIGltcGxlbWVudHMgT25Jbml0IHtcblxuICBkZWZhdWx0Q29uZmlnOiBQYXJ0aWFsPElucHV0RmllbGRDb25maWc+ID0ge2lucHV0VHlwZTogJ3RleHQnfTtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gIH1cbn1cbiIsIjxjcmlzcHItZmllbGQtY29udGFpbmVyXG4gIFtjb25maWddPVwiY29uZmlnXCJcbiAgW2dyb3VwXT1cImdyb3VwXCI+XG4gIDxtYXQtZm9ybS1maWVsZFxuICAgIFtjb2xvcl09XCJjb25maWcuY29sb3JcIlxuICAgIFthcHBlYXJhbmNlXT1cImNvbmZpZy5hcHBlYXJhbmNlXCJcbiAgICBbZm9ybUdyb3VwXT1cImdyb3VwXCI+XG4gICAgPG1hdC1sYWJlbD5cbiAgICAgIHt7Y29uZmlnLmxhYmVsfX1cbiAgICA8L21hdC1sYWJlbD5cbiAgICA8aW5wdXRcbiAgICAgIFt0eXBlXT1cImNvbmZpZy5pbnB1dFR5cGVcIlxuICAgICAgbWF0SW5wdXRcbiAgICAgIFtwbGFjZWhvbGRlcl09XCJjb25maWcucGxhY2Vob2xkZXJcIlxuICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJjb25maWcuY29udHJvbE5hbWVcIlxuICAgICAgW21pbl09XCJjb25maWcubWluXCJcbiAgICAgIFttYXhdPVwiY29uZmlnLm1heFwiXG4gICAgICBbbWF4bGVuZ3RoXT1cImNvbmZpZy5tYXhMZW5ndGhcIlxuICAgICAgW3N0ZXBdPVwiY29uZmlnLnN0ZXBcIlxuICAgICAgW2F1dG9mb2N1c109XCJjb25maWcuYXV0b2ZvY3VzXCJcbiAgICAgIFtwYXR0ZXJuXT1cImNvbmZpZy5wYXR0ZXJuXCJcbiAgICAgIFtzcGVsbGNoZWNrXT1cImNvbmZpZy5zcGVsbGNoZWNrXCJcbiAgICAgIFthdXRvY29tcGxldGVdPVwiY29uZmlnLmF1dG9Db21wbGV0ZVwiXG4gICAgICBbYXV0b2NhcGl0YWxpemVdPVwiY29uZmlnLmF1dG9DYXBpdGFsaXplXCI+XG4gICAgPHNwYW4gKm5nSWY9XCJjb25maWcuZmllbGRTdWZmaXhcIiBtYXRTdWZmaXg+e3tjb25maWcuZmllbGRTdWZmaXh9fTwvc3Bhbj5cbiAgICA8Y3Jpc3ByLWluZm9cbiAgICAgIG1hdFN1ZmZpeFxuICAgICAgKm5nSWY9XCJjb25maWcuaW5mb1wiXG4gICAgICBbaW5mb109XCJjb25maWcuaW5mb1wiPlxuICAgIDwvY3Jpc3ByLWluZm8+XG5cbiAgICA8bWF0LWhpbnQgKm5nSWY9XCJjb25maWcuaGludCAmJiAoY29udHJvbC52YWxpZCB8fCAhY29udHJvbC50b3VjaGVkKVwiPnt7Y29uZmlnLmhpbnR9fTwvbWF0LWhpbnQ+XG5cbiAgPC9tYXQtZm9ybS1maWVsZD5cblxuXG48L2NyaXNwci1maWVsZC1jb250YWluZXI+XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './input-field.component';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY3Jpc3ByLWZvcm1zL3NyYy9saWIvdWkvaW5wdXQtZmllbGQvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHlCQUF5QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9pbnB1dC1maWVsZC5jb21wb25lbnQnO1xuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './public-api';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NyaXNwci1mb3Jtcy9zcmMvbGliL3VpL29wdGlvbi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vcHVibGljLWFwaSc7XG4iXX0=
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { Component, Input, ChangeDetectionStrategy } from '@angular/core';
|
|
3
|
+
import { InfoComponent } from '../info';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@angular/common";
|
|
6
|
+
export class OptionComponent {
|
|
7
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: OptionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
8
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: OptionComponent, isStandalone: true, selector: "crispr-option", inputs: { option: "option" }, ngImport: i0, template: "<div>\n <img\n *ngIf=\"option.imageUrl\"\n [src]=\"option.imageUrl\"\n alt=\"image of {{option.label}}\"\n style=\"vertical-align:middle;\"\n aria-hidden\n height=\"25\"/>\n {{option.label}}\n</div>\n\n<crispr-info *ngIf=\"option.info as info\" [info]=\"info\">\n\n</crispr-info>\n", styles: [":host{display:flex;justify-content:space-between}:host img{margin-right:4px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: InfoComponent, selector: "crispr-info", inputs: ["info"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, preserveWhitespaces: true }); }
|
|
9
|
+
}
|
|
10
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: OptionComponent, decorators: [{
|
|
11
|
+
type: Component,
|
|
12
|
+
args: [{ selector: 'crispr-option', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule, InfoComponent], template: "<div>\n <img\n *ngIf=\"option.imageUrl\"\n [src]=\"option.imageUrl\"\n alt=\"image of {{option.label}}\"\n style=\"vertical-align:middle;\"\n aria-hidden\n height=\"25\"/>\n {{option.label}}\n</div>\n\n<crispr-info *ngIf=\"option.info as info\" [info]=\"info\">\n\n</crispr-info>\n", styles: [":host{display:flex;justify-content:space-between}:host img{margin-right:4px}\n"] }]
|
|
13
|
+
}], propDecorators: { option: [{
|
|
14
|
+
type: Input
|
|
15
|
+
}] } });
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY3Jpc3ByLWZvcm1zL3NyYy9saWIvdWkvb3B0aW9uL29wdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NyaXNwci1mb3Jtcy9zcmMvbGliL3VpL29wdGlvbi9vcHRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxTQUFTLENBQUM7OztBQVl4QyxNQUFNLE9BQU8sZUFBZTs4R0FBZixlQUFlO2tHQUFmLGVBQWUsdUdDZDVCLCtTQWNBLHVJREZZLFlBQVksbUlBQUUsYUFBYTs7MkZBRTFCLGVBQWU7a0JBUjNCLFNBQVM7K0JBQ0UsZUFBZSxtQkFHUix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxhQUFhLENBQUM7OEJBRzdCLE1BQU07c0JBQWQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSW5mb0NvbXBvbmVudCB9IGZyb20gJy4uL2luZm8nO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBueC9lbmZvcmNlLW1vZHVsZS1ib3VuZGFyaWVzXG5pbXBvcnQgeyBTZWxlY3RPcHRpb24gfSBmcm9tICcuLi8uLi91dGlscyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NyaXNwci1vcHRpb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vb3B0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vb3B0aW9uLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBJbmZvQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgT3B0aW9uQ29tcG9uZW50IHtcbiAgQElucHV0KCkgb3B0aW9uOiBTZWxlY3RPcHRpb247XG59XG4iLCI8ZGl2PlxuICA8aW1nXG4gICAgKm5nSWY9XCJvcHRpb24uaW1hZ2VVcmxcIlxuICAgIFtzcmNdPVwib3B0aW9uLmltYWdlVXJsXCJcbiAgICBhbHQ9XCJpbWFnZSBvZiB7e29wdGlvbi5sYWJlbH19XCJcbiAgICBzdHlsZT1cInZlcnRpY2FsLWFsaWduOm1pZGRsZTtcIlxuICAgIGFyaWEtaGlkZGVuXG4gICAgaGVpZ2h0PVwiMjVcIi8+XG4gIHt7b3B0aW9uLmxhYmVsfX1cbjwvZGl2PlxuXG48Y3Jpc3ByLWluZm8gKm5nSWY9XCJvcHRpb24uaW5mbyBhcyBpbmZvXCIgW2luZm9dPVwiaW5mb1wiPlxuXG48L2NyaXNwci1pbmZvPlxuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './option.component';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY3Jpc3ByLWZvcm1zL3NyYy9saWIvdWkvb3B0aW9uL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxvQkFBb0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vb3B0aW9uLmNvbXBvbmVudCc7XG4iXX0=
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export * from './file-dropzone';
|
|
2
|
+
export * from './file-dropzone';
|
|
3
|
+
export * from './selected-file';
|
|
4
|
+
export * from './field-container';
|
|
5
|
+
export * from './heading';
|
|
6
|
+
export * from './info';
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY3Jpc3ByLWZvcm1zL3NyYy9saWIvdWkvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsaUJBQWlCLENBQUM7QUFFaEMsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9maWxlLWRyb3B6b25lJztcbmV4cG9ydCAqIGZyb20gJy4vZmlsZS1kcm9wem9uZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vc2VsZWN0ZWQtZmlsZSc7XG5leHBvcnQgKiBmcm9tICcuL2ZpZWxkLWNvbnRhaW5lcic7XG5leHBvcnQgKiBmcm9tICcuL2hlYWRpbmcnO1xuZXhwb3J0ICogZnJvbSAnLi9pbmZvJztcbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './public-api';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NyaXNwci1mb3Jtcy9zcmMvbGliL3VpL3JhZGlvLWZpZWxkL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './radio-field.component';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY3Jpc3ByLWZvcm1zL3NyYy9saWIvdWkvcmFkaW8tZmllbGQvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHlCQUF5QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9yYWRpby1maWVsZC5jb21wb25lbnQnO1xuIl19
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/* eslint-disable @nx/enforce-module-boundaries */
|
|
2
|
+
import { Component, ChangeDetectionStrategy } from '@angular/core';
|
|
3
|
+
import { MatRadioModule } from '@angular/material/radio';
|
|
4
|
+
import { ReactiveFormsModule } from '@angular/forms';
|
|
5
|
+
import { CommonModule } from '@angular/common';
|
|
6
|
+
import { FormValidationHandlerModule } from '@tft/form-validation-handler';
|
|
7
|
+
import { FieldContainerComponent } from '../field-container';
|
|
8
|
+
import { CrisprFieldComponent, crisprControlMixin, observablifyOptions } from '../../utils';
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
import * as i1 from "@angular/common";
|
|
11
|
+
import * as i2 from "@angular/forms";
|
|
12
|
+
import * as i3 from "@angular/material/radio";
|
|
13
|
+
import * as i4 from "@tft/form-validation-handler";
|
|
14
|
+
const RadioFieldMixin = crisprControlMixin(CrisprFieldComponent);
|
|
15
|
+
export class RadioFieldComponent extends RadioFieldMixin {
|
|
16
|
+
constructor() {
|
|
17
|
+
super(...arguments);
|
|
18
|
+
this.defaultConfig = {};
|
|
19
|
+
}
|
|
20
|
+
ngOnInit() {
|
|
21
|
+
super.ngOnInit();
|
|
22
|
+
// options$ can be passed as an array, promise that resolves array, or observable that resolves array
|
|
23
|
+
// this functions accounts for all possibilities and converts to observable that resolves array
|
|
24
|
+
this.options$ = observablifyOptions(this.config.options, this.group);
|
|
25
|
+
}
|
|
26
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: RadioFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
27
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: RadioFieldComponent, isStandalone: true, selector: "crispr-radio-field", usesInheritance: true, ngImport: i0, template: "<crispr-field-container\n [config]=\"config\"\n [group]=\"group\">\n\n <mat-radio-group\n [formControl]=\"control\"\n [color]=\"config.color\">\n <mat-radio-button class=\"example-radio-button\" *ngFor=\"let option of options$ | async\" [value]=\"option.value\">\n {{option.label}}\n </mat-radio-button>\n </mat-radio-group>\n</crispr-field-container>\n", styles: ["mat-radio-button{padding:12px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: FieldContainerComponent, selector: "crispr-field-container", inputs: ["config", "group", "inlineField"] }, { kind: "ngmodule", type: MatRadioModule }, { kind: "directive", type: i3.MatRadioGroup, selector: "mat-radio-group", inputs: ["color", "name", "labelPosition", "value", "selected", "disabled", "required"], outputs: ["change"], exportAs: ["matRadioGroup"] }, { kind: "component", type: i3.MatRadioButton, selector: "mat-radio-button", inputs: ["disableRipple", "tabIndex", "id", "name", "aria-label", "aria-labelledby", "aria-describedby", "checked", "value", "labelPosition", "disabled", "required", "color"], outputs: ["change"], exportAs: ["matRadioButton"] }, { kind: "ngmodule", type: FormValidationHandlerModule }, { kind: "directive", type: i4.ControlErrorsDirective, selector: "[formControl], [formControlName]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, preserveWhitespaces: true }); }
|
|
28
|
+
}
|
|
29
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: RadioFieldComponent, decorators: [{
|
|
30
|
+
type: Component,
|
|
31
|
+
args: [{ selector: 'crispr-radio-field', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
32
|
+
CommonModule,
|
|
33
|
+
ReactiveFormsModule,
|
|
34
|
+
FieldContainerComponent,
|
|
35
|
+
MatRadioModule,
|
|
36
|
+
FormValidationHandlerModule,
|
|
37
|
+
], template: "<crispr-field-container\n [config]=\"config\"\n [group]=\"group\">\n\n <mat-radio-group\n [formControl]=\"control\"\n [color]=\"config.color\">\n <mat-radio-button class=\"example-radio-button\" *ngFor=\"let option of options$ | async\" [value]=\"option.value\">\n {{option.label}}\n </mat-radio-button>\n </mat-radio-group>\n</crispr-field-container>\n", styles: ["mat-radio-button{padding:12px}\n"] }]
|
|
38
|
+
}] });
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8tZmllbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jcmlzcHItZm9ybXMvc3JjL2xpYi91aS9yYWRpby1maWVsZC9yYWRpby1maWVsZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NyaXNwci1mb3Jtcy9zcmMvbGliL3VpL3JhZGlvLWZpZWxkL3JhZGlvLWZpZWxkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGtEQUFrRDtBQUNsRCxPQUFPLEVBQUUsU0FBUyxFQUFVLHVCQUF1QixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzNFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDM0UsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDN0QsT0FBTyxFQUFFLG9CQUFvQixFQUFrQyxrQkFBa0IsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7Ozs7O0FBRTVILE1BQU0sZUFBZSxHQUNuQixrQkFBa0IsQ0FBbUIsb0JBQW9CLENBQUMsQ0FBQztBQWdCN0QsTUFBTSxPQUFPLG1CQUFvQixTQUFRLGVBQWU7SUFkeEQ7O1FBZUUsa0JBQWEsR0FBRyxFQUFFLENBQUM7S0FRcEI7SUFOQyxRQUFRO1FBQ04sS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLHFHQUFxRztRQUNyRywrRkFBK0Y7UUFDL0YsSUFBSSxDQUFDLFFBQVEsR0FBRyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdkUsQ0FBQzs4R0FSVSxtQkFBbUI7a0dBQW5CLG1CQUFtQixxR0M1QmhDLHdYQVlBLHlGRFNJLFlBQVksZ05BQ1osbUJBQW1CLDBUQUNuQix1QkFBdUIsOEdBQ3ZCLGNBQWMsc2lCQUNkLDJCQUEyQjs7MkZBR2xCLG1CQUFtQjtrQkFkL0IsU0FBUzsrQkFDRSxvQkFBb0IsbUJBR2IsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixtQkFBbUI7d0JBQ25CLHVCQUF1Qjt3QkFDdkIsY0FBYzt3QkFDZCwyQkFBMkI7cUJBQzVCIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQG54L2VuZm9yY2UtbW9kdWxlLWJvdW5kYXJpZXMgKi9cbmltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBNYXRSYWRpb01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3JhZGlvJztcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRm9ybVZhbGlkYXRpb25IYW5kbGVyTW9kdWxlIH0gZnJvbSAnQHRmdC9mb3JtLXZhbGlkYXRpb24taGFuZGxlcic7XG5pbXBvcnQgeyBGaWVsZENvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gJy4uL2ZpZWxkLWNvbnRhaW5lcic7XG5pbXBvcnQgeyBDcmlzcHJGaWVsZENvbXBvbmVudCwgUmFkaW9GaWVsZENvbmZpZywgU2VsZWN0T3B0aW9uLCBjcmlzcHJDb250cm9sTWl4aW4sIG9ic2VydmFibGlmeU9wdGlvbnMgfSBmcm9tICcuLi8uLi91dGlscyc7XG5cbmNvbnN0IFJhZGlvRmllbGRNaXhpbiA9XG4gIGNyaXNwckNvbnRyb2xNaXhpbjxSYWRpb0ZpZWxkQ29uZmlnPihDcmlzcHJGaWVsZENvbXBvbmVudCk7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NyaXNwci1yYWRpby1maWVsZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9yYWRpby1maWVsZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3JhZGlvLWZpZWxkLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgRmllbGRDb250YWluZXJDb21wb25lbnQsXG4gICAgTWF0UmFkaW9Nb2R1bGUsXG4gICAgRm9ybVZhbGlkYXRpb25IYW5kbGVyTW9kdWxlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBSYWRpb0ZpZWxkQ29tcG9uZW50IGV4dGVuZHMgUmFkaW9GaWVsZE1peGluIGltcGxlbWVudHMgT25Jbml0IHtcbiAgZGVmYXVsdENvbmZpZyA9IHt9O1xuICBvcHRpb25zJDogT2JzZXJ2YWJsZTxTZWxlY3RPcHRpb25bXT47XG4gIG5nT25Jbml0KCkge1xuICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgLy8gb3B0aW9ucyQgY2FuIGJlIHBhc3NlZCBhcyBhbiBhcnJheSwgcHJvbWlzZSB0aGF0IHJlc29sdmVzIGFycmF5LCBvciBvYnNlcnZhYmxlIHRoYXQgcmVzb2x2ZXMgYXJyYXlcbiAgICAvLyB0aGlzIGZ1bmN0aW9ucyBhY2NvdW50cyBmb3IgYWxsIHBvc3NpYmlsaXRpZXMgYW5kIGNvbnZlcnRzIHRvIG9ic2VydmFibGUgdGhhdCByZXNvbHZlcyBhcnJheVxuICAgIHRoaXMub3B0aW9ucyQgPSBvYnNlcnZhYmxpZnlPcHRpb25zKHRoaXMuY29uZmlnLm9wdGlvbnMsIHRoaXMuZ3JvdXApO1xuICB9XG59XG4iLCI8Y3Jpc3ByLWZpZWxkLWNvbnRhaW5lclxuICBbY29uZmlnXT1cImNvbmZpZ1wiXG4gIFtncm91cF09XCJncm91cFwiPlxuXG4gIDxtYXQtcmFkaW8tZ3JvdXBcbiAgICBbZm9ybUNvbnRyb2xdPVwiY29udHJvbFwiXG4gICAgW2NvbG9yXT1cImNvbmZpZy5jb2xvclwiPlxuICAgIDxtYXQtcmFkaW8tYnV0dG9uIGNsYXNzPVwiZXhhbXBsZS1yYWRpby1idXR0b25cIiAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIG9wdGlvbnMkIHwgYXN5bmNcIiBbdmFsdWVdPVwib3B0aW9uLnZhbHVlXCI+XG4gICAgICB7e29wdGlvbi5sYWJlbH19XG4gICAgPC9tYXQtcmFkaW8tYnV0dG9uPlxuICA8L21hdC1yYWRpby1ncm91cD5cbjwvY3Jpc3ByLWZpZWxkLWNvbnRhaW5lcj5cbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './public-api';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NyaXNwci1mb3Jtcy9zcmMvbGliL3VpL3NlbGVjdC1maWVsZC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vcHVibGljLWFwaSc7XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './select-field.component';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY3Jpc3ByLWZvcm1zL3NyYy9saWIvdWkvc2VsZWN0LWZpZWxkL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYywwQkFBMEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vc2VsZWN0LWZpZWxkLmNvbXBvbmVudCc7XG4iXX0=
|