@tft/crispr-forms 14.0.1 → 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} +244 -235
- 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 -192
- package/public-api.d.ts +3 -3
- package/src/index.d.ts +1 -1
- package/src/lib/crispr-forms.module.d.ts +16 -15
- package/src/lib/display-field.directive.d.ts +23 -0
- 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 -36
- 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/src/lib/utils/abstracts/crispr-display-field.abstract.d.ts +22 -0
- package/{utils → src/lib/utils}/abstracts/crispr-field.abstract.d.ts +11 -11
- package/{utils → src/lib/utils}/abstracts/index.d.ts +4 -3
- 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 -17
- 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 -57
- 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 -93
- 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-field.abstract.mjs +0 -20
- package/esm2020/utils/abstracts/index.mjs +0 -4
- 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 -270
- package/fesm2015/tft-crispr-forms-utils.mjs.map +0 -1
- package/fesm2015/tft-crispr-forms.mjs +0 -379
- 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 -377
- package/fesm2020/tft-crispr-forms.mjs.map +0 -1
- package/tft-crispr-forms-14.0.1.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 @@
|
|
|
1
|
+
{"version":3,"file":"tft-crispr-forms-index-BfR4XbYi.mjs","sources":["../../../../libs/crispr-forms/src/lib/ui/file-upload-field/file-upload-field.component.ts","../../../../libs/crispr-forms/src/lib/ui/file-upload-field/file-upload-field.component.html"],"sourcesContent":["/* eslint-disable @nx/enforce-module-boundaries */\nimport { CommonModule } from '@angular/common';\nimport {\n Component,\n ElementRef,\n ViewChild,\n OnInit,\n ChangeDetectionStrategy,\n Optional,\n Self,\n} from '@angular/core';\nimport {\n ControlValueAccessor,\n NgControl,\n ReactiveFormsModule,\n} from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { Observable, of } from 'rxjs';\nimport { FileDropzoneDirective } from '../file-dropzone';\nimport { FormValidationHandlerModule } from '@tft/form-validation-handler';\n\nimport {\n crisprControlMixin,\n CrisprFieldComponent,\n FileUploadFieldConfig,\n} from '../../utils';\nimport { FieldContainerComponent } from '../field-container';\nimport { SelectedFileComponent } from '../selected-file';\n\nconst FileUploadFieldMixin =\n crisprControlMixin<FileUploadFieldConfig>(CrisprFieldComponent);\n\n@Component({\n selector: 'crispr-file-upload-field',\n templateUrl: './file-upload-field.component.html',\n styleUrls: ['./file-upload-field.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [\n CommonModule,\n FieldContainerComponent,\n ReactiveFormsModule,\n MatIconModule,\n MatButtonModule,\n MatFormFieldModule,\n MatInputModule,\n SelectedFileComponent,\n FormValidationHandlerModule,\n FileDropzoneDirective,\n ],\n})\nexport class FileUploadFieldComponent\n extends FileUploadFieldMixin\n implements OnInit, ControlValueAccessor\n{\n onChange: () => void;\n\n defaultConfig: Partial<FileUploadFieldConfig> = {\n allowMultipleFiles: false,\n acceptedTypes: '*.*',\n dropZoneText: 'DROP FILE HERE',\n selectFilesButtonType: 'button',\n selectButtonText: 'SELECT',\n showClearFilesButton: true,\n clearFilesButtonText: 'CLEAR',\n uploadButtonText: 'UPLOAD',\n uploadButtonType: 'button',\n showUploadProgress: false,\n disableOnUpload: true,\n };\n\n @ViewChild('fileInput') fileInputRef: ElementRef;\n\n selectedFiles: FileList;\n\n isUploaded = false;\n\n fileProgress: Observable<number>[] = [];\n disabled$: Observable<boolean>;\n\n // ngControl: NgControl = null;\n constructor(@Optional() @Self() public ngControl: NgControl) {\n super();\n if (this.ngControl != null) {\n // Setting the value accessor directly (instead of using\n // the providers) to avoid running into a circular import.\n ngControl.valueAccessor = this;\n }\n }\n\n ngOnInit() {\n super.ngOnInit();\n this.disabled$ = this.config.disabledCallback\n ? this.config.disabledCallback(this.group)\n : of(false);\n }\n\n filesChanged(files: FileList): void {\n if (files && files.length > 0) {\n this.selectedFiles = files;\n this.control.patchValue(files);\n }\n }\n\n uploadFiles() {\n if (this.selectedFiles && this.config.uploadFiles) {\n this.isUploaded = true;\n this.config.uploadFiles(this.group, this.selectedFiles, this);\n }\n }\n\n resetFileInput(): void {\n this.fileInputRef.nativeElement.value = '';\n this.control.patchValue(null);\n this.isUploaded = false;\n }\n\n writeValue(value: null) {\n // clear file input\n // this.host.nativeElement.value = '';\n // this.file = null;\n }\n\n registerOnChange(fn: () => void) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void) {}\n}\n","<crispr-field-container\n [config]=\"config\"\n [group]=\"group\">\n <mat-form-field floatLabel=\"always\"\n [color]=\"config.color\"\n appearance=\"outline\"\n [crisprFileDropzone]=\"!(disabled$ | async) && !(config.disableOnUpload && isUploaded)\"\n [formGroup]=\"group\"\n (fileDrop)=\"filesChanged($event)\">\n\n <input [formControlName]=\"config.controlName\" matInput type=\"text\"/>\n <input\n #fileInput\n type=\"file\"\n style=\"display: none\"\n [accept]=\"config.acceptedTypes\"\n [multiple]=\"config.allowMultipleFiles\"\n (change)=\"filesChanged($event.target.files)\"/>\n <mat-label>{{config.label}}</mat-label>\n\n <div *ngIf=\"!(selectedFiles?.length > 0); else selectedFileList\" class=\"drop-info\">\n <mat-icon class=\"drop-icon\" inline=\"true\">cloud_upload</mat-icon>\n <h2 class=\"mat-h2\">{{config.dropZoneText}}</h2>\n or\n <button\n mat-raised-button\n type=\"button\"\n color=\"primary\"\n [disabled]=\"(disabled$ | async) || config.disableOnUpload && isUploaded\"\n (click)=\"fileInput.click()\"\n [attr.aria-label]=\"config.controlName\">\n {{config.selectButtonText}}\n </button>\n </div>\n <ng-template #selectedFileList>\n <div class=\"selected-files-container\">\n <div class=\"selected-files-list\">\n <crispr-selected-file\n *ngFor=\"let file of selectedFiles; let i = index;\"\n [color]=\"config.color === 'primary' ? 'accent' : 'primary'\"\n [fileName]=\"file.name\"\n [showProgress]=\"config.showUploadProgress\"\n [progress]=\"fileProgress && (fileProgress[i] | async)\">\n </crispr-selected-file>\n </div>\n\n </div>\n </ng-template>\n <mat-hint *ngIf=\"config.hint && (control.valid || !control.touched)\">{{config.hint}}</mat-hint>\n </mat-form-field>\n <div class=\"button-container\" *ngIf=\"selectedFiles?.length > 0\">\n\n <button\n mat-button\n (click)=\"resetFileInput()\"\n type=\"button\"\n [disabled]=\"(disabled$ | async) || (config.disableOnUpload && isUploaded)\"\n aria-label=\"Remove Selected File(s)\">\n {{config.clearFilesButtonText}}\n <mat-icon>delete</mat-icon>\n </button>\n\n <button\n *ngIf=\"!!config.uploadFiles\"\n mat-raised-button\n type=\"button\"\n color=\"accent\"\n class=\"file-input-button\"\n [disabled]=\"(disabled$ | async) || (config.disableOnUpload && isUploaded)\"\n (click)=\"uploadFiles()\"\n [attr.aria-label]=\"config.uploadButtonText\">\n {{ config.uploadButtonText }}\n </button>\n\n </div>\n</crispr-field-container>\n"],"names":["i1","i4","i5"],"mappings":"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"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { Component, ChangeDetectionStrategy } from '@angular/core';
|
|
3
|
+
import * as i5 from '@angular/material/input';
|
|
4
|
+
import { MatInputModule } from '@angular/material/input';
|
|
5
|
+
import * as i1 from '@angular/common';
|
|
6
|
+
import { CommonModule } from '@angular/common';
|
|
7
|
+
import * as i2 from '@angular/forms';
|
|
8
|
+
import { ReactiveFormsModule } from '@angular/forms';
|
|
9
|
+
import * as i3 from '@angular/material/form-field';
|
|
10
|
+
import { MatFormFieldModule } from '@angular/material/form-field';
|
|
11
|
+
import * as i7 from '@tft/form-validation-handler';
|
|
12
|
+
import { FormValidationHandlerModule } from '@tft/form-validation-handler';
|
|
13
|
+
import { crisprControlMixin, CrisprFieldComponent, InfoComponent, FieldContainerComponent } from './tft-crispr-forms.mjs';
|
|
14
|
+
import { MatIconModule } from '@angular/material/icon';
|
|
15
|
+
import 'rxjs';
|
|
16
|
+
import 'rxjs/operators';
|
|
17
|
+
import '@angular/material/button';
|
|
18
|
+
import '@angular/material/progress-bar';
|
|
19
|
+
import '@angular/material/tooltip';
|
|
20
|
+
|
|
21
|
+
/* eslint-disable @nx/enforce-module-boundaries */
|
|
22
|
+
const InputFieldMixin = crisprControlMixin(CrisprFieldComponent);
|
|
23
|
+
class InputFieldComponent extends InputFieldMixin {
|
|
24
|
+
constructor() {
|
|
25
|
+
super();
|
|
26
|
+
this.defaultConfig = { inputType: 'text' };
|
|
27
|
+
}
|
|
28
|
+
ngOnInit() {
|
|
29
|
+
super.ngOnInit();
|
|
30
|
+
}
|
|
31
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: InputFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
32
|
+
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: i5.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "ngmodule", type: FormValidationHandlerModule }, { kind: "directive", type: i7.ControlErrorsDirective, selector: "[formControl], [formControlName]" }, { kind: "directive", type: i7.ControlErrorContainerDirective, selector: "[controlErrorContainer], [formGroup]" }, { kind: "ngmodule", type: MatIconModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush, preserveWhitespaces: true }); }
|
|
33
|
+
}
|
|
34
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: InputFieldComponent, decorators: [{
|
|
35
|
+
type: Component,
|
|
36
|
+
args: [{ selector: 'crispr-input-field', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
37
|
+
CommonModule,
|
|
38
|
+
InfoComponent,
|
|
39
|
+
ReactiveFormsModule,
|
|
40
|
+
FieldContainerComponent,
|
|
41
|
+
MatFormFieldModule,
|
|
42
|
+
MatInputModule,
|
|
43
|
+
FormValidationHandlerModule,
|
|
44
|
+
MatIconModule
|
|
45
|
+
], 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" }]
|
|
46
|
+
}], ctorParameters: () => [] });
|
|
47
|
+
|
|
48
|
+
export { InputFieldComponent };
|
|
49
|
+
//# sourceMappingURL=tft-crispr-forms-index-C5X0mk3N.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tft-crispr-forms-index-C5X0mk3N.mjs","sources":["../../../../libs/crispr-forms/src/lib/ui/input-field/input-field.component.ts","../../../../libs/crispr-forms/src/lib/ui/input-field/input-field.component.html"],"sourcesContent":["/* eslint-disable @nx/enforce-module-boundaries */\nimport { Component, ChangeDetectionStrategy, OnInit } from '@angular/core';\nimport { MatInputModule } from '@angular/material/input';\nimport { CommonModule } from '@angular/common';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { FormValidationHandlerModule } from '@tft/form-validation-handler';\nimport { FieldContainerComponent } from '../field-container';\nimport { InfoComponent } from '../info';\nimport {\n InputFieldConfig,\n crisprControlMixin,\n CrisprFieldComponent,\n} from '../../utils';\nimport { MatIconModule } from '@angular/material/icon';\n\nconst InputFieldMixin =\n crisprControlMixin<InputFieldConfig>(CrisprFieldComponent);\n@Component({\n selector: 'crispr-input-field',\n templateUrl: './input-field.component.html',\n styleUrls: ['./input-field.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [\n CommonModule,\n InfoComponent,\n ReactiveFormsModule,\n FieldContainerComponent,\n MatFormFieldModule,\n MatInputModule,\n FormValidationHandlerModule,\n MatIconModule\n ],\n})\nexport class InputFieldComponent extends InputFieldMixin implements OnInit {\n\n defaultConfig: Partial<InputFieldConfig> = {inputType: 'text'};\n constructor() {\n super();\n }\n\n ngOnInit() {\n super.ngOnInit();\n }\n}\n","<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"],"names":["i4"],"mappings":"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"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { Component, ChangeDetectionStrategy, ViewChild } from '@angular/core';
|
|
3
|
+
import * as i4 from '@angular/material/select';
|
|
4
|
+
import { MatSelectModule } from '@angular/material/select';
|
|
5
|
+
import * as i1 from '@angular/common';
|
|
6
|
+
import { CommonModule } from '@angular/common';
|
|
7
|
+
import * as i2 from '@angular/material/checkbox';
|
|
8
|
+
import { MatCheckboxModule } from '@angular/material/checkbox';
|
|
9
|
+
import * as i2$1 from '@angular/forms';
|
|
10
|
+
import { ReactiveFormsModule } from '@angular/forms';
|
|
11
|
+
import * as i3 from '@angular/material/form-field';
|
|
12
|
+
import { MatFormFieldModule } from '@angular/material/form-field';
|
|
13
|
+
import { O as OptionComponent } from './tft-crispr-forms-index-2dAn0905.mjs';
|
|
14
|
+
import * as i7 from '@tft/form-validation-handler';
|
|
15
|
+
import { FormValidationHandlerModule } from '@tft/form-validation-handler';
|
|
16
|
+
import { crisprControlMixin, CrisprFieldComponent, observablifyOptions, InfoComponent, FieldContainerComponent } from './tft-crispr-forms.mjs';
|
|
17
|
+
import * as i4$1 from '@angular/material/core';
|
|
18
|
+
import 'rxjs';
|
|
19
|
+
import 'rxjs/operators';
|
|
20
|
+
import '@angular/material/button';
|
|
21
|
+
import '@angular/material/icon';
|
|
22
|
+
import '@angular/material/progress-bar';
|
|
23
|
+
import '@angular/material/tooltip';
|
|
24
|
+
|
|
25
|
+
/* eslint-disable @nx/enforce-module-boundaries */
|
|
26
|
+
const SelectFieldMixin = crisprControlMixin(CrisprFieldComponent);
|
|
27
|
+
class SelectFieldComponent extends SelectFieldMixin {
|
|
28
|
+
constructor() {
|
|
29
|
+
super(...arguments);
|
|
30
|
+
this.defaultConfig = {
|
|
31
|
+
enableToggleAll: false,
|
|
32
|
+
color: 'primary',
|
|
33
|
+
};
|
|
34
|
+
this.allSelected = false;
|
|
35
|
+
}
|
|
36
|
+
ngOnInit() {
|
|
37
|
+
super.ngOnInit();
|
|
38
|
+
// options$ can be passed as an array, promise that resolves array, or observable that resolves array
|
|
39
|
+
// this functions accounts for all possibilities and converts to observable that resolves array
|
|
40
|
+
this.options$ = observablifyOptions(this.config.options, this.group);
|
|
41
|
+
}
|
|
42
|
+
ngAfterViewInit() {
|
|
43
|
+
if (this.config.multiple &&
|
|
44
|
+
this.config.enableToggleAll &&
|
|
45
|
+
this.selectField.options?.length === this.value?.length) {
|
|
46
|
+
this.allSelected = true;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
toggleAll(isSelected) {
|
|
50
|
+
if (isSelected) {
|
|
51
|
+
this.selectField.options.forEach((option) => option.deselect());
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
this.selectField.options.forEach((option) => option.select());
|
|
55
|
+
}
|
|
56
|
+
this.allSelected = !this.allSelected;
|
|
57
|
+
}
|
|
58
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: SelectFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
59
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: SelectFieldComponent, isStandalone: true, selector: "crispr-select-field", viewQueries: [{ propertyName: "selectField", first: true, predicate: ["selectField"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<crispr-field-container\n [config]=\"config\"\n [group]=\"group\">\n\n <mat-form-field\n [color]=\"config.color\"\n [appearance]=\"config.appearance\"\n [formGroup]=\"group\">\n <mat-label *ngIf=\"config.label\">\n {{config.label}}\n </mat-label>\n <mat-select\n #selectField\n [formControlName]=\"config.controlName\"\n [placeholder]=\"config.placeholder\"\n [multiple]=\"config.multiple\">\n\n <mat-checkbox\n [color]=\"config.color\"\n [checked]=\"allSelected\"\n *ngIf=\"config?.multiple && config.enableToggleAll\"\n (click)=\"toggleAll(allSelected)\">\n Select All\n </mat-checkbox>\n <mat-option\n *ngFor=\"let option of options$ | async\"\n [value]=\"option.value\">\n <crispr-option [option]=\"option\">\n </crispr-option>\n </mat-option>\n\n </mat-select>\n\n <span *ngIf=\"config.fieldSuffix\" matSuffix>{{config.fieldSuffix}}</span>\n <crispr-info\n *ngIf=\"config.info\"\n matSuffix\n [info]=\"config.info\">\n </crispr-info>\n\n <mat-hint *ngIf=\"config.hint && (control.valid || !control.touched)\">{{config.hint}}</mat-hint>\n\n </mat-form-field>\n\n</crispr-field-container>\n", styles: ["mat-checkbox{display:block;padding:16px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "component", type: InfoComponent, selector: "crispr-info", inputs: ["info"] }, { kind: "component", type: OptionComponent, selector: "crispr-option", inputs: ["option"] }, { kind: "ngmodule", type: MatCheckboxModule }, { kind: "component", type: i2.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "ngmodule", type: MatSelectModule }, { 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: "component", type: i4.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex", "aria-describedby", "panelClass", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i4$1.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: FormValidationHandlerModule }, { kind: "directive", type: i7.ControlErrorsDirective, selector: "[formControl], [formControlName]" }, { kind: "directive", type: i7.ControlErrorContainerDirective, selector: "[controlErrorContainer], [formGroup]" }, { kind: "component", type: FieldContainerComponent, selector: "crispr-field-container", inputs: ["config", "group", "inlineField"] }, { kind: "ngmodule", type: MatFormFieldModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush, preserveWhitespaces: true }); }
|
|
60
|
+
}
|
|
61
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: SelectFieldComponent, decorators: [{
|
|
62
|
+
type: Component,
|
|
63
|
+
args: [{ selector: 'crispr-select-field', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
64
|
+
CommonModule,
|
|
65
|
+
InfoComponent,
|
|
66
|
+
OptionComponent,
|
|
67
|
+
MatCheckboxModule,
|
|
68
|
+
MatSelectModule,
|
|
69
|
+
ReactiveFormsModule,
|
|
70
|
+
FormValidationHandlerModule,
|
|
71
|
+
FieldContainerComponent,
|
|
72
|
+
MatFormFieldModule,
|
|
73
|
+
], template: "<crispr-field-container\n [config]=\"config\"\n [group]=\"group\">\n\n <mat-form-field\n [color]=\"config.color\"\n [appearance]=\"config.appearance\"\n [formGroup]=\"group\">\n <mat-label *ngIf=\"config.label\">\n {{config.label}}\n </mat-label>\n <mat-select\n #selectField\n [formControlName]=\"config.controlName\"\n [placeholder]=\"config.placeholder\"\n [multiple]=\"config.multiple\">\n\n <mat-checkbox\n [color]=\"config.color\"\n [checked]=\"allSelected\"\n *ngIf=\"config?.multiple && config.enableToggleAll\"\n (click)=\"toggleAll(allSelected)\">\n Select All\n </mat-checkbox>\n <mat-option\n *ngFor=\"let option of options$ | async\"\n [value]=\"option.value\">\n <crispr-option [option]=\"option\">\n </crispr-option>\n </mat-option>\n\n </mat-select>\n\n <span *ngIf=\"config.fieldSuffix\" matSuffix>{{config.fieldSuffix}}</span>\n <crispr-info\n *ngIf=\"config.info\"\n matSuffix\n [info]=\"config.info\">\n </crispr-info>\n\n <mat-hint *ngIf=\"config.hint && (control.valid || !control.touched)\">{{config.hint}}</mat-hint>\n\n </mat-form-field>\n\n</crispr-field-container>\n", styles: ["mat-checkbox{display:block;padding:16px}\n"] }]
|
|
74
|
+
}], propDecorators: { selectField: [{
|
|
75
|
+
type: ViewChild,
|
|
76
|
+
args: ['selectField']
|
|
77
|
+
}] } });
|
|
78
|
+
|
|
79
|
+
export { SelectFieldComponent };
|
|
80
|
+
//# sourceMappingURL=tft-crispr-forms-index-CFUop3Cq.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tft-crispr-forms-index-CFUop3Cq.mjs","sources":["../../../../libs/crispr-forms/src/lib/ui/select-field/select-field.component.ts","../../../../libs/crispr-forms/src/lib/ui/select-field/select-field.component.html"],"sourcesContent":["/* eslint-disable @nx/enforce-module-boundaries */\nimport {\n Component,\n OnInit,\n ChangeDetectionStrategy,\n ViewChild,\n AfterViewInit,\n} from '@angular/core';\nimport { Observable } from 'rxjs';\n\nimport { MatSelect, MatSelectModule } from '@angular/material/select';\nimport { ThemePalette } from '@angular/material/core';\nimport { CommonModule } from '@angular/common';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { OptionComponent } from '../option';\nimport { FormValidationHandlerModule } from '@tft/form-validation-handler';\nimport { InfoComponent } from '../info';\nimport { FieldContainerComponent } from '../field-container';\nimport {\n observablifyOptions,\n CrisprFieldComponent,\n crisprControlMixin,\n SelectFieldConfig,\n SelectOption,\n} from '../../utils';\n\nconst SelectFieldMixin =\n crisprControlMixin<SelectFieldConfig>(CrisprFieldComponent);\n\n@Component({\n selector: 'crispr-select-field',\n templateUrl: './select-field.component.html',\n styleUrls: ['./select-field.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [\n CommonModule,\n InfoComponent,\n OptionComponent,\n MatCheckboxModule,\n MatSelectModule,\n ReactiveFormsModule,\n FormValidationHandlerModule,\n FieldContainerComponent,\n MatFormFieldModule,\n ],\n})\nexport class SelectFieldComponent\n extends SelectFieldMixin\n implements OnInit, AfterViewInit\n{\n defaultConfig = {\n enableToggleAll: false,\n color: 'primary' as ThemePalette,\n };\n options$: Observable<SelectOption[]>;\n allSelected = false;\n\n @ViewChild('selectField') selectField: MatSelect;\n\n ngOnInit() {\n super.ngOnInit();\n // options$ can be passed as an array, promise that resolves array, or observable that resolves array\n // this functions accounts for all possibilities and converts to observable that resolves array\n this.options$ = observablifyOptions(this.config.options, this.group);\n }\n\n ngAfterViewInit() {\n if (\n this.config.multiple &&\n this.config.enableToggleAll &&\n this.selectField.options?.length === (this.value as any[])?.length\n ) {\n this.allSelected = true;\n }\n }\n\n toggleAll(isSelected: boolean) {\n if (isSelected) {\n this.selectField.options.forEach((option) => option.deselect());\n } else {\n this.selectField.options.forEach((option) => option.select());\n }\n this.allSelected = !this.allSelected;\n }\n}\n","<crispr-field-container\n [config]=\"config\"\n [group]=\"group\">\n\n <mat-form-field\n [color]=\"config.color\"\n [appearance]=\"config.appearance\"\n [formGroup]=\"group\">\n <mat-label *ngIf=\"config.label\">\n {{config.label}}\n </mat-label>\n <mat-select\n #selectField\n [formControlName]=\"config.controlName\"\n [placeholder]=\"config.placeholder\"\n [multiple]=\"config.multiple\">\n\n <mat-checkbox\n [color]=\"config.color\"\n [checked]=\"allSelected\"\n *ngIf=\"config?.multiple && config.enableToggleAll\"\n (click)=\"toggleAll(allSelected)\">\n Select All\n </mat-checkbox>\n <mat-option\n *ngFor=\"let option of options$ | async\"\n [value]=\"option.value\">\n <crispr-option [option]=\"option\">\n </crispr-option>\n </mat-option>\n\n </mat-select>\n\n <span *ngIf=\"config.fieldSuffix\" matSuffix>{{config.fieldSuffix}}</span>\n <crispr-info\n *ngIf=\"config.info\"\n matSuffix\n [info]=\"config.info\">\n </crispr-info>\n\n <mat-hint *ngIf=\"config.hint && (control.valid || !control.touched)\">{{config.hint}}</mat-hint>\n\n </mat-form-field>\n\n</crispr-field-container>\n"],"names":["i6"],"mappings":"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"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import * as i1 from '@angular/common';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import * as i0 from '@angular/core';
|
|
4
|
+
import { Component, ChangeDetectionStrategy } from '@angular/core';
|
|
5
|
+
import * as i2 from '@angular/forms';
|
|
6
|
+
import { FormControl, ReactiveFormsModule } from '@angular/forms';
|
|
7
|
+
import * as i4$1 from '@angular/material/core';
|
|
8
|
+
import { MatOptionModule } from '@angular/material/core';
|
|
9
|
+
import * as i5 from '@angular/material/input';
|
|
10
|
+
import { MatInputModule } from '@angular/material/input';
|
|
11
|
+
import * as i4 from '@angular/material/select';
|
|
12
|
+
import { MatSelectModule } from '@angular/material/select';
|
|
13
|
+
import { combineLatest } from 'rxjs';
|
|
14
|
+
import { startWith } from 'rxjs/operators';
|
|
15
|
+
import { O as OptionComponent } from './tft-crispr-forms-index-2dAn0905.mjs';
|
|
16
|
+
import * as i7 from '@tft/form-validation-handler';
|
|
17
|
+
import { FormValidationHandlerModule } from '@tft/form-validation-handler';
|
|
18
|
+
import { crisprControlMixin, CrisprFieldComponent, observablifyOptions, InfoComponent, FieldContainerComponent } from './tft-crispr-forms.mjs';
|
|
19
|
+
import * as i3 from '@angular/material/form-field';
|
|
20
|
+
import '@angular/material/button';
|
|
21
|
+
import '@angular/material/icon';
|
|
22
|
+
import '@angular/material/progress-bar';
|
|
23
|
+
import '@angular/material/tooltip';
|
|
24
|
+
|
|
25
|
+
/* eslint-disable @nx/enforce-module-boundaries */
|
|
26
|
+
const defaultConfig = {};
|
|
27
|
+
const UnitConversionFieldMixin = crisprControlMixin(CrisprFieldComponent);
|
|
28
|
+
class UnitConversionFieldComponent extends UnitConversionFieldMixin {
|
|
29
|
+
constructor() {
|
|
30
|
+
super(...arguments);
|
|
31
|
+
this.defaultConfig = defaultConfig;
|
|
32
|
+
this.displayValueControl = new FormControl();
|
|
33
|
+
this.unitSelectControl = new FormControl();
|
|
34
|
+
}
|
|
35
|
+
ngOnInit() {
|
|
36
|
+
super.ngOnInit();
|
|
37
|
+
// TODO: Validators need work. validation is tricky because the input needs to be validated against but the validator will compare against the controls value
|
|
38
|
+
// this.displayValueControl.setValidators(this.config.validators);
|
|
39
|
+
const controlValuePipeline = [
|
|
40
|
+
this.displayValueControl.valueChanges.pipe(startWith(this.displayValueControl.value)),
|
|
41
|
+
];
|
|
42
|
+
// setup all required pieces when showing a field for selecting units
|
|
43
|
+
if (this.config.showUnitSelect) {
|
|
44
|
+
this.unitOptions$ = observablifyOptions(this.config.selectableUnits, this.group);
|
|
45
|
+
controlValuePipeline.push(this.unitSelectControl.valueChanges.pipe(startWith(this.config?.initialDisplayUnit || null)));
|
|
46
|
+
this.unitSelectControl.setValue(this.config?.initialDisplayUnit || null);
|
|
47
|
+
}
|
|
48
|
+
this.transformationSubscription = combineLatest(controlValuePipeline).subscribe(([displayValue, unitValue]) => {
|
|
49
|
+
const computedValue = this.config.storedValueConversion(displayValue, unitValue);
|
|
50
|
+
this.control.setValue(computedValue);
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
ngOnDestroy() {
|
|
54
|
+
this.transformationSubscription.unsubscribe();
|
|
55
|
+
}
|
|
56
|
+
setInitialDisplayValue(storedValue, unit) {
|
|
57
|
+
const initialDisplayValue = this.config.initialDisplayValueConversion(storedValue || null, unit);
|
|
58
|
+
this.displayValueControl.setValue(initialDisplayValue);
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* We override the 'setControlValue' we inherited from crisprControlMixin and add our custom logic,
|
|
62
|
+
* This function gets called onInit because were object oriented. it's so great, so great that I'm
|
|
63
|
+
* typing a paragraph to explain what the hell is going on...
|
|
64
|
+
* @param value the initial value for the control passed down from the form components input
|
|
65
|
+
*/
|
|
66
|
+
setControlValue(value) {
|
|
67
|
+
const initialUnitValue = this.config.showUnitSelect
|
|
68
|
+
? this.config?.initialDisplayUnit
|
|
69
|
+
: null;
|
|
70
|
+
this.setInitialDisplayValue(value, initialUnitValue);
|
|
71
|
+
}
|
|
72
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: UnitConversionFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
73
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: UnitConversionFieldComponent, isStandalone: true, selector: "crispr-unit-conversion-field", usesInheritance: true, ngImport: i0, template: "<crispr-field-container\n [config]=\"config\"\n [group]=\"group\">\n <mat-form-field\n [style.width.%]=\"config.showUnitSelect ? 60 : 100\"\n class=\"number-field\"\n [color]=\"config.color\"\n [appearance]=\"config.appearance\">\n <mat-label *ngIf=\"config.label\">\n {{config.label}}\n </mat-label>\n <input\n type=\"number\"\n matInput\n [formControl]=\"displayValueControl\"\n [placeholder]=\"config.placeholder\"\n [min]=\"config.min\"\n [max]=\"config.max\"\n [step]=\"config.step\"\n [autofocus]=\"config.autofocus\">\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 </mat-form-field>\n\n <mat-form-field\n *ngIf=\"config.showUnitSelect\"\n [color]=\"config.color\"\n [appearance]=\"config.appearance\"\n [formGroup]=\"group\"\n class=\"unit-field\">\n <mat-label *ngIf=\"config.label\">\n {{config.label}}\n </mat-label>\n <mat-select\n #selectField\n [formControl]=\"unitSelectControl\">\n\n <mat-option\n *ngFor=\"let option of unitOptions$ | async\"\n [value]=\"option.value\">\n <crispr-option [option]=\"option\">\n </crispr-option>\n </mat-option>\n\n </mat-select>\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: [".unit-field{width:40%;margin-left:16px}:host ::ng-deep .field-container{display:flex}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "component", type: InfoComponent, selector: "crispr-info", inputs: ["info"] }, { kind: "component", type: OptionComponent, selector: "crispr-option", inputs: ["option"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { 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.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { kind: "directive", type: i2.MaxValidator, selector: "input[type=number][max][formControlName],input[type=number][max][formControl],input[type=number][max][ngModel]", inputs: ["max"] }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: FieldContainerComponent, selector: "crispr-field-container", inputs: ["config", "group", "inlineField"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i5.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: 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: MatSelectModule }, { kind: "component", type: i4.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex", "aria-describedby", "panelClass", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i4$1.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: MatOptionModule }, { kind: "ngmodule", type: FormValidationHandlerModule }, { kind: "directive", type: i7.ControlErrorsDirective, selector: "[formControl], [formControlName]" }, { kind: "directive", type: i7.ControlErrorContainerDirective, selector: "[controlErrorContainer], [formGroup]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, preserveWhitespaces: true }); }
|
|
74
|
+
}
|
|
75
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: UnitConversionFieldComponent, decorators: [{
|
|
76
|
+
type: Component,
|
|
77
|
+
args: [{ selector: 'crispr-unit-conversion-field', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
78
|
+
CommonModule,
|
|
79
|
+
InfoComponent,
|
|
80
|
+
OptionComponent,
|
|
81
|
+
ReactiveFormsModule,
|
|
82
|
+
FieldContainerComponent,
|
|
83
|
+
MatInputModule,
|
|
84
|
+
MatSelectModule,
|
|
85
|
+
MatOptionModule,
|
|
86
|
+
FormValidationHandlerModule,
|
|
87
|
+
], template: "<crispr-field-container\n [config]=\"config\"\n [group]=\"group\">\n <mat-form-field\n [style.width.%]=\"config.showUnitSelect ? 60 : 100\"\n class=\"number-field\"\n [color]=\"config.color\"\n [appearance]=\"config.appearance\">\n <mat-label *ngIf=\"config.label\">\n {{config.label}}\n </mat-label>\n <input\n type=\"number\"\n matInput\n [formControl]=\"displayValueControl\"\n [placeholder]=\"config.placeholder\"\n [min]=\"config.min\"\n [max]=\"config.max\"\n [step]=\"config.step\"\n [autofocus]=\"config.autofocus\">\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 </mat-form-field>\n\n <mat-form-field\n *ngIf=\"config.showUnitSelect\"\n [color]=\"config.color\"\n [appearance]=\"config.appearance\"\n [formGroup]=\"group\"\n class=\"unit-field\">\n <mat-label *ngIf=\"config.label\">\n {{config.label}}\n </mat-label>\n <mat-select\n #selectField\n [formControl]=\"unitSelectControl\">\n\n <mat-option\n *ngFor=\"let option of unitOptions$ | async\"\n [value]=\"option.value\">\n <crispr-option [option]=\"option\">\n </crispr-option>\n </mat-option>\n\n </mat-select>\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: [".unit-field{width:40%;margin-left:16px}:host ::ng-deep .field-container{display:flex}\n"] }]
|
|
88
|
+
}] });
|
|
89
|
+
|
|
90
|
+
export { UnitConversionFieldComponent };
|
|
91
|
+
//# sourceMappingURL=tft-crispr-forms-index-CFdMVgM0.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tft-crispr-forms-index-CFdMVgM0.mjs","sources":["../../../../libs/crispr-forms/src/lib/ui/unit-conversion-field/unit-conversion-field.component.ts","../../../../libs/crispr-forms/src/lib/ui/unit-conversion-field/unit-conversion-field.component.html"],"sourcesContent":["/* eslint-disable @nx/enforce-module-boundaries */\nimport { CommonModule } from '@angular/common';\nimport {\n Component,\n OnInit,\n ChangeDetectionStrategy,\n OnDestroy,\n} from '@angular/core';\nimport { ReactiveFormsModule, FormControl } from '@angular/forms';\nimport { MatOptionModule } from '@angular/material/core';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatSelectModule } from '@angular/material/select';\nimport { combineLatest, Observable, Subscription } from 'rxjs';\nimport { startWith } from 'rxjs/operators';\nimport { OptionComponent } from '../option';\nimport { FormValidationHandlerModule } from '@tft/form-validation-handler';\nimport { FieldContainerComponent } from '../field-container';\nimport { InfoComponent } from '../info';\nimport {\n crisprControlMixin,\n CrisprFieldComponent,\n observablifyOptions,\n SelectOption,\n UnitConversionFieldConfig,\n} from '../../utils';\n\nconst defaultConfig: Partial<UnitConversionFieldConfig> = {};\nconst UnitConversionFieldMixin =\n crisprControlMixin<UnitConversionFieldConfig>(CrisprFieldComponent);\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'crispr-unit-conversion-field',\n templateUrl: './unit-conversion-field.component.html',\n styleUrls: ['./unit-conversion-field.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [\n CommonModule,\n InfoComponent,\n OptionComponent,\n ReactiveFormsModule,\n FieldContainerComponent,\n MatInputModule,\n MatSelectModule,\n MatOptionModule,\n FormValidationHandlerModule,\n ],\n})\nexport class UnitConversionFieldComponent\n extends UnitConversionFieldMixin\n implements OnInit, OnDestroy\n{\n defaultConfig = defaultConfig;\n\n displayValueControl = new FormControl();\n unitSelectControl = new FormControl();\n unitOptions$: Observable<SelectOption[]>;\n\n transformationSubscription: Subscription;\n\n ngOnInit() {\n super.ngOnInit();\n // TODO: Validators need work. validation is tricky because the input needs to be validated against but the validator will compare against the controls value\n // this.displayValueControl.setValidators(this.config.validators);\n\n const controlValuePipeline: Observable<string>[] = [\n this.displayValueControl.valueChanges.pipe(\n startWith(this.displayValueControl.value)\n ),\n ];\n // setup all required pieces when showing a field for selecting units\n if (this.config.showUnitSelect) {\n this.unitOptions$ = observablifyOptions(\n this.config.selectableUnits,\n this.group\n );\n controlValuePipeline.push(\n this.unitSelectControl.valueChanges.pipe(\n startWith(this.config?.initialDisplayUnit || null)\n )\n );\n this.unitSelectControl.setValue(this.config?.initialDisplayUnit || null);\n }\n\n this.transformationSubscription = combineLatest(\n controlValuePipeline\n ).subscribe(([displayValue, unitValue]) => {\n const computedValue = this.config.storedValueConversion(\n displayValue,\n unitValue\n );\n this.control.setValue(computedValue);\n });\n }\n\n ngOnDestroy() {\n this.transformationSubscription.unsubscribe();\n }\n\n setInitialDisplayValue(storedValue: any, unit: unknown) {\n const initialDisplayValue = this.config.initialDisplayValueConversion(\n storedValue || null,\n unit\n );\n this.displayValueControl.setValue(initialDisplayValue);\n }\n\n /**\n * We override the 'setControlValue' we inherited from crisprControlMixin and add our custom logic,\n * This function gets called onInit because were object oriented. it's so great, so great that I'm\n * typing a paragraph to explain what the hell is going on...\n * @param value the initial value for the control passed down from the form components input\n */\n setControlValue(value) {\n const initialUnitValue = this.config.showUnitSelect\n ? this.config?.initialDisplayUnit\n : null;\n this.setInitialDisplayValue(value, initialUnitValue);\n }\n}\n","<crispr-field-container\n [config]=\"config\"\n [group]=\"group\">\n <mat-form-field\n [style.width.%]=\"config.showUnitSelect ? 60 : 100\"\n class=\"number-field\"\n [color]=\"config.color\"\n [appearance]=\"config.appearance\">\n <mat-label *ngIf=\"config.label\">\n {{config.label}}\n </mat-label>\n <input\n type=\"number\"\n matInput\n [formControl]=\"displayValueControl\"\n [placeholder]=\"config.placeholder\"\n [min]=\"config.min\"\n [max]=\"config.max\"\n [step]=\"config.step\"\n [autofocus]=\"config.autofocus\">\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 </mat-form-field>\n\n <mat-form-field\n *ngIf=\"config.showUnitSelect\"\n [color]=\"config.color\"\n [appearance]=\"config.appearance\"\n [formGroup]=\"group\"\n class=\"unit-field\">\n <mat-label *ngIf=\"config.label\">\n {{config.label}}\n </mat-label>\n <mat-select\n #selectField\n [formControl]=\"unitSelectControl\">\n\n <mat-option\n *ngFor=\"let option of unitOptions$ | async\"\n [value]=\"option.value\">\n <crispr-option [option]=\"option\">\n </crispr-option>\n </mat-option>\n\n </mat-select>\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"],"names":["i3","i4","i5","i6"],"mappings":"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"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { Component, ChangeDetectionStrategy } from '@angular/core';
|
|
3
|
+
import * as i2 from '@angular/forms';
|
|
4
|
+
import { ReactiveFormsModule } from '@angular/forms';
|
|
5
|
+
import * as i1 from '@angular/common';
|
|
6
|
+
import { CommonModule } from '@angular/common';
|
|
7
|
+
import * as i3 from '@angular/material/form-field';
|
|
8
|
+
import { MatFormFieldModule } from '@angular/material/form-field';
|
|
9
|
+
import * as i5 from '@angular/material/input';
|
|
10
|
+
import { MatInputModule } from '@angular/material/input';
|
|
11
|
+
import * as i7 from '@tft/form-validation-handler';
|
|
12
|
+
import { FormValidationHandlerModule } from '@tft/form-validation-handler';
|
|
13
|
+
import { crisprControlMixin, CrisprFieldComponent, InfoComponent, FieldContainerComponent } from './tft-crispr-forms.mjs';
|
|
14
|
+
import 'rxjs';
|
|
15
|
+
import 'rxjs/operators';
|
|
16
|
+
import '@angular/material/button';
|
|
17
|
+
import '@angular/material/icon';
|
|
18
|
+
import '@angular/material/progress-bar';
|
|
19
|
+
import '@angular/material/tooltip';
|
|
20
|
+
|
|
21
|
+
/* eslint-disable @nx/enforce-module-boundaries */
|
|
22
|
+
const defaultConfig = { rows: 5 };
|
|
23
|
+
const TextareaFieldMixin = crisprControlMixin(CrisprFieldComponent);
|
|
24
|
+
class TextareaFieldComponent extends TextareaFieldMixin {
|
|
25
|
+
constructor() {
|
|
26
|
+
super(...arguments);
|
|
27
|
+
this.defaultConfig = defaultConfig;
|
|
28
|
+
}
|
|
29
|
+
ngOnInit() {
|
|
30
|
+
super.ngOnInit();
|
|
31
|
+
}
|
|
32
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: TextareaFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
33
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: TextareaFieldComponent, isStandalone: true, selector: "crispr-textarea-field", usesInheritance: true, ngImport: i0, template: "<crispr-field-container\n [config]=\"config\"\n [group]=\"group\">\n <mat-form-field\n [color]=\"config.color\"\n [appearance]=\"config.appearance\"\n [formGroup]=\"group\">\n <mat-label *ngIf=\"config.label\">\n {{config.label}}\n </mat-label>\n <textarea\n [rows]=\"config.rows\"\n matInput\n [placeholder]=\"config.placeholder\"\n [formControlName]=\"config.controlName\">\n </textarea>\n <span *ngIf=\"config.fieldSuffix\" matSuffix>{{config.fieldSuffix}}</span>\n <crispr-info\n *ngIf=\"config.info\"\n matSuffix\n [info]=\"config.info\">\n </crispr-info>\n\n <mat-hint *ngIf=\"config.hint && control.valid\">{{config.hint}}</mat-hint>\n\n </mat-form-field>\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.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: i5.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "ngmodule", type: FormValidationHandlerModule }, { kind: "directive", type: i7.ControlErrorsDirective, selector: "[formControl], [formControlName]" }, { kind: "directive", type: i7.ControlErrorContainerDirective, selector: "[controlErrorContainer], [formGroup]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, preserveWhitespaces: true }); }
|
|
34
|
+
}
|
|
35
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: TextareaFieldComponent, decorators: [{
|
|
36
|
+
type: Component,
|
|
37
|
+
args: [{ selector: 'crispr-textarea-field', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
38
|
+
CommonModule,
|
|
39
|
+
InfoComponent,
|
|
40
|
+
ReactiveFormsModule,
|
|
41
|
+
FieldContainerComponent,
|
|
42
|
+
MatFormFieldModule,
|
|
43
|
+
MatInputModule,
|
|
44
|
+
FormValidationHandlerModule,
|
|
45
|
+
], template: "<crispr-field-container\n [config]=\"config\"\n [group]=\"group\">\n <mat-form-field\n [color]=\"config.color\"\n [appearance]=\"config.appearance\"\n [formGroup]=\"group\">\n <mat-label *ngIf=\"config.label\">\n {{config.label}}\n </mat-label>\n <textarea\n [rows]=\"config.rows\"\n matInput\n [placeholder]=\"config.placeholder\"\n [formControlName]=\"config.controlName\">\n </textarea>\n <span *ngIf=\"config.fieldSuffix\" matSuffix>{{config.fieldSuffix}}</span>\n <crispr-info\n *ngIf=\"config.info\"\n matSuffix\n [info]=\"config.info\">\n </crispr-info>\n\n <mat-hint *ngIf=\"config.hint && control.valid\">{{config.hint}}</mat-hint>\n\n </mat-form-field>\n\n</crispr-field-container>\n" }]
|
|
46
|
+
}] });
|
|
47
|
+
|
|
48
|
+
export { TextareaFieldComponent };
|
|
49
|
+
//# sourceMappingURL=tft-crispr-forms-index-CZdi06Jj.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tft-crispr-forms-index-CZdi06Jj.mjs","sources":["../../../../libs/crispr-forms/src/lib/ui/textarea-field/textarea-field.component.ts","../../../../libs/crispr-forms/src/lib/ui/textarea-field/textarea-field.component.html"],"sourcesContent":["/* eslint-disable @nx/enforce-module-boundaries */\nimport { Component, OnInit, ChangeDetectionStrategy } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { FormValidationHandlerModule } from '@tft/form-validation-handler';\nimport { FieldContainerComponent } from '../field-container';\nimport { InfoComponent } from '../info';\nimport {\n crisprControlMixin,\n CrisprFieldComponent,\n TextareaFieldConfig,\n} from '../../utils';\n\nconst defaultConfig: Partial<TextareaFieldConfig> = { rows: 5 };\nconst TextareaFieldMixin =\n crisprControlMixin<TextareaFieldConfig>(CrisprFieldComponent);\n\n@Component({\n selector: 'crispr-textarea-field',\n templateUrl: './textarea-field.component.html',\n styleUrls: ['./textarea-field.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [\n CommonModule,\n InfoComponent,\n ReactiveFormsModule,\n FieldContainerComponent,\n MatFormFieldModule,\n MatInputModule,\n FormValidationHandlerModule,\n ],\n})\nexport class TextareaFieldComponent\n extends TextareaFieldMixin\n implements OnInit\n{\n defaultConfig = defaultConfig;\n\n ngOnInit() {\n super.ngOnInit();\n }\n}\n","<crispr-field-container\n [config]=\"config\"\n [group]=\"group\">\n <mat-form-field\n [color]=\"config.color\"\n [appearance]=\"config.appearance\"\n [formGroup]=\"group\">\n <mat-label *ngIf=\"config.label\">\n {{config.label}}\n </mat-label>\n <textarea\n [rows]=\"config.rows\"\n matInput\n [placeholder]=\"config.placeholder\"\n [formControlName]=\"config.controlName\">\n </textarea>\n <span *ngIf=\"config.fieldSuffix\" matSuffix>{{config.fieldSuffix}}</span>\n <crispr-info\n *ngIf=\"config.info\"\n matSuffix\n [info]=\"config.info\">\n </crispr-info>\n\n <mat-hint *ngIf=\"config.hint && control.valid\">{{config.hint}}</mat-hint>\n\n </mat-form-field>\n\n</crispr-field-container>\n"],"names":["i5"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAeA,MAAM,aAAa,GAAiC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;AAChE,MAAM,kBAAkB,GACtB,kBAAkB,CAAsB,oBAAoB,CAAC,CAAC;AAkB1D,MAAO,sBACX,SAAQ,kBAAkB,CAAA;AAjB5B,IAAA,WAAA,GAAA;;QAoBE,IAAa,CAAA,aAAA,GAAG,aAAa,CAAC;AAK/B,KAAA;IAHC,QAAQ,GAAA;QACN,KAAK,CAAC,QAAQ,EAAE,CAAC;KAClB;8GARU,sBAAsB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sBAAsB,ECnCnC,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,owBA4BA,EDFI,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,mIACZ,aAAa,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACb,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACnB,uBAAuB,EACvB,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,OAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,kBAAkB,EAClB,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,+CAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,cAAc,0WACd,2BAA2B,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,kCAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,8BAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,mBAAA,EAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FAGlB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAhBlC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,uBAAuB,mBAGhB,uBAAuB,CAAC,MAAM,EAAA,UAAA,EACnC,IAAI,EACP,OAAA,EAAA;wBACP,YAAY;wBACZ,aAAa;wBACb,mBAAmB;wBACnB,uBAAuB;wBACvB,kBAAkB;wBAClB,cAAc;wBACd,2BAA2B;AAC5B,qBAAA,EAAA,QAAA,EAAA,owBAAA,EAAA,CAAA;;;;;"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { Component, ChangeDetectionStrategy } from '@angular/core';
|
|
3
|
+
import * as i2$1 from '@angular/forms';
|
|
4
|
+
import { ReactiveFormsModule } from '@angular/forms';
|
|
5
|
+
import { map, startWith } from 'rxjs/operators';
|
|
6
|
+
import * as i1 from '@angular/common';
|
|
7
|
+
import { CommonModule } from '@angular/common';
|
|
8
|
+
import * as i2 from '@angular/material/button';
|
|
9
|
+
import { MatButtonModule } from '@angular/material/button';
|
|
10
|
+
import * as i3 from '@angular/material/icon';
|
|
11
|
+
import { MatIconModule } from '@angular/material/icon';
|
|
12
|
+
import * as i3$1 from '@angular/material/tooltip';
|
|
13
|
+
import { MatTooltipModule } from '@angular/material/tooltip';
|
|
14
|
+
import * as i7 from '@tft/form-validation-handler';
|
|
15
|
+
import { FormValidationHandlerModule } from '@tft/form-validation-handler';
|
|
16
|
+
import { CrisprFieldComponent } from './tft-crispr-forms.mjs';
|
|
17
|
+
import 'rxjs';
|
|
18
|
+
import '@angular/material/progress-bar';
|
|
19
|
+
import '@angular/material/form-field';
|
|
20
|
+
|
|
21
|
+
class ButtonComponent extends CrisprFieldComponent {
|
|
22
|
+
constructor() {
|
|
23
|
+
super(...arguments);
|
|
24
|
+
this.defaultConfig = {
|
|
25
|
+
buttonType: 'raised',
|
|
26
|
+
type: 'submit',
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
get matButtonClass() {
|
|
30
|
+
return this.config.buttonType ? `mat-${this.config.buttonType}-button` : '';
|
|
31
|
+
}
|
|
32
|
+
ngOnInit() {
|
|
33
|
+
super.ngOnInit();
|
|
34
|
+
this.formValid$ = this.group.statusChanges.pipe(map((status) => status === 'VALID'), startWith(this.group.valid));
|
|
35
|
+
}
|
|
36
|
+
handleClick(group, event) {
|
|
37
|
+
if (this.config.callback) {
|
|
38
|
+
this.config.callback(group, event);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: ButtonComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
42
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: ButtonComponent, isStandalone: true, selector: "crispr-button", usesInheritance: true, ngImport: i0, template: "<button\n [formGroup]=\"group\"\n mat-button\n [ngClass]=\"matButtonClass\"\n [color]=\"config.color\"\n [disabled]=\"config.disabledOnInvalidForm && !(formValid$ | async)\"\n [type]=\"config.type\"\n (click)=\"handleClick(group, $event)\"\n [matTooltip]=\"config.info?.content\"\n [matTooltipPosition]=\"config.info?.tooltipPosition || 'below'\">\n {{ config.label }}\n <mat-icon *ngIf=\"config.icon\">\n {{ config.icon}}\n </mat-icon>\n</button>\n\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i3$1.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: FormValidationHandlerModule }, { kind: "directive", type: i7.ControlErrorContainerDirective, selector: "[controlErrorContainer], [formGroup]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, preserveWhitespaces: true }); }
|
|
43
|
+
}
|
|
44
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: ButtonComponent, decorators: [{
|
|
45
|
+
type: Component,
|
|
46
|
+
args: [{ selector: 'crispr-button', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
47
|
+
CommonModule,
|
|
48
|
+
MatButtonModule,
|
|
49
|
+
MatIconModule,
|
|
50
|
+
MatTooltipModule,
|
|
51
|
+
ReactiveFormsModule,
|
|
52
|
+
FormValidationHandlerModule,
|
|
53
|
+
], template: "<button\n [formGroup]=\"group\"\n mat-button\n [ngClass]=\"matButtonClass\"\n [color]=\"config.color\"\n [disabled]=\"config.disabledOnInvalidForm && !(formValid$ | async)\"\n [type]=\"config.type\"\n (click)=\"handleClick(group, $event)\"\n [matTooltip]=\"config.info?.content\"\n [matTooltipPosition]=\"config.info?.tooltipPosition || 'below'\">\n {{ config.label }}\n <mat-icon *ngIf=\"config.icon\">\n {{ config.icon}}\n </mat-icon>\n</button>\n\n" }]
|
|
54
|
+
}] });
|
|
55
|
+
|
|
56
|
+
export { ButtonComponent };
|
|
57
|
+
//# sourceMappingURL=tft-crispr-forms-index-C_I9vjqf.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tft-crispr-forms-index-C_I9vjqf.mjs","sources":["../../../../libs/crispr-forms/src/lib/ui/button/button.component.ts","../../../../libs/crispr-forms/src/lib/ui/button/button.component.html"],"sourcesContent":["import { Component, OnInit, ChangeDetectionStrategy } from '@angular/core';\nimport { ReactiveFormsModule, FormGroup } from '@angular/forms';\nimport { Observable } from 'rxjs';\nimport { map, startWith } from 'rxjs/operators';\nimport { CommonModule } from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { FormValidationHandlerModule } from '@tft/form-validation-handler';\n// eslint-disable-next-line @nx/enforce-module-boundaries\nimport { CrisprFieldComponent, ButtonConfig } from '../../utils';\n\n@Component({\n selector: 'crispr-button',\n templateUrl: './button.component.html',\n styleUrls: ['./button.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [\n CommonModule,\n MatButtonModule,\n MatIconModule,\n MatTooltipModule,\n ReactiveFormsModule,\n FormValidationHandlerModule,\n ],\n})\nexport class ButtonComponent\n extends CrisprFieldComponent<ButtonConfig>\n implements OnInit\n{\n group: FormGroup;\n defaultConfig: Partial<ButtonConfig> = {\n buttonType: 'raised',\n type: 'submit',\n };\n formValid$: Observable<boolean>;\n\n get matButtonClass() {\n return this.config.buttonType ? `mat-${this.config.buttonType}-button` : '';\n }\n\n ngOnInit() {\n super.ngOnInit();\n this.formValid$ = this.group.statusChanges.pipe(\n map((status) => status === 'VALID'),\n startWith(this.group.valid)\n );\n }\n\n handleClick(group: FormGroup, event: MouseEvent) {\n if (this.config.callback) {\n this.config.callback(group, event);\n }\n }\n}\n","<button\n [formGroup]=\"group\"\n mat-button\n [ngClass]=\"matButtonClass\"\n [color]=\"config.color\"\n [disabled]=\"config.disabledOnInvalidForm && !(formValid$ | async)\"\n [type]=\"config.type\"\n (click)=\"handleClick(group, $event)\"\n [matTooltip]=\"config.info?.content\"\n [matTooltipPosition]=\"config.info?.tooltipPosition || 'below'\">\n {{ config.label }}\n <mat-icon *ngIf=\"config.icon\">\n {{ config.icon}}\n </mat-icon>\n</button>\n\n"],"names":["i4","i6"],"mappings":"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"}
|