@tft/crispr-forms 13.0.21 → 14.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +77 -76
- package/esm2020/public-api.mjs +5 -0
- package/esm2020/src/index.mjs +2 -0
- package/esm2020/src/lib/crispr-forms.module.mjs +57 -0
- package/esm2020/src/lib/field-component-map.const.mjs +27 -0
- package/esm2020/src/lib/field.directive.mjs +69 -0
- package/esm2020/src/lib/form/form.component.mjs +63 -0
- package/esm2020/src/lib/form-group-list/form-group-list.component.mjs +93 -0
- package/esm2020/src/lib/form-group-list/index.mjs +2 -0
- package/esm2020/src/lib/pipes/crispr-pipes.module.mjs +24 -0
- package/esm2020/src/lib/pipes/initial-control-value.pipe.mjs +21 -0
- package/esm2020/src/lib/public_api.mjs +3 -0
- package/esm2020/src/lib/sub-group/index.mjs +3 -0
- package/esm2020/src/lib/sub-group/sub-group.component.mjs +21 -0
- package/esm2020/src/lib/sub-group/sub-group.module.mjs +42 -0
- package/esm2020/tft-crispr-forms.mjs +2 -2
- package/esm2020/ui/autocomplete-chiplist-field/autocomplete-chiplist-field.component.mjs +130 -0
- package/esm2020/ui/autocomplete-chiplist-field/public-api.mjs +2 -0
- package/esm2020/ui/autocomplete-chiplist-field/tft-crispr-forms-ui-autocomplete-chiplist-field.mjs +5 -0
- package/esm2020/ui/autocomplete-field/autocomplete-field.component.mjs +93 -0
- package/esm2020/ui/autocomplete-field/public-api.mjs +2 -0
- package/esm2020/ui/autocomplete-field/tft-crispr-forms-ui-autocomplete-field.mjs +5 -0
- package/esm2020/ui/button/button.component.mjs +49 -0
- package/esm2020/ui/button/public-api.mjs +2 -0
- package/esm2020/ui/button/tft-crispr-forms-ui-button.mjs +5 -0
- package/esm2020/ui/checkbox-field/checkbox-field.component.mjs +42 -0
- package/esm2020/ui/checkbox-field/public-api.mjs +2 -0
- package/esm2020/ui/checkbox-field/tft-crispr-forms-ui-checkbox-field.mjs +5 -0
- package/esm2020/ui/datepicker-field/datepicker-field.component.mjs +63 -0
- package/esm2020/ui/datepicker-field/public-api.mjs +2 -0
- package/esm2020/ui/datepicker-field/tft-crispr-forms-ui-datepicker-field.mjs +5 -0
- package/esm2020/ui/divider/divider.component.mjs +28 -0
- package/esm2020/ui/divider/public-api.mjs +2 -0
- package/esm2020/ui/divider/tft-crispr-forms-ui-divider.mjs +5 -0
- package/esm2020/ui/field-container/field-container.component.mjs +58 -0
- package/esm2020/ui/field-container/public-api.mjs +2 -0
- package/esm2020/ui/field-container/tft-crispr-forms-ui-field-container.mjs +5 -0
- package/esm2020/ui/file-dropzone/file-dropzone.directive.mjs +40 -0
- package/esm2020/ui/file-dropzone/public-api.mjs +2 -0
- package/esm2020/ui/file-dropzone/tft-crispr-forms-ui-file-dropzone.mjs +5 -0
- package/esm2020/ui/file-upload-field/file-upload-field.component.mjs +108 -0
- package/esm2020/ui/file-upload-field/public-api.mjs +2 -0
- package/esm2020/ui/file-upload-field/tft-crispr-forms-ui-file-upload-field.mjs +5 -0
- package/esm2020/ui/heading/heading.component.mjs +31 -0
- package/esm2020/ui/heading/public-api.mjs +2 -0
- package/esm2020/ui/heading/tft-crispr-forms-ui-heading.mjs +5 -0
- package/esm2020/ui/image-upload-field/image-upload-field.component.mjs +179 -0
- package/esm2020/ui/image-upload-field/public-api.mjs +2 -0
- package/esm2020/ui/image-upload-field/tft-crispr-forms-ui-image-upload-field.mjs +5 -0
- package/esm2020/ui/info/info.component.mjs +23 -0
- package/esm2020/ui/info/public-api.mjs +2 -0
- package/esm2020/ui/info/tft-crispr-forms-ui-info.mjs +5 -0
- package/esm2020/ui/input-field/input-field.component.mjs +41 -0
- package/esm2020/ui/input-field/public-api.mjs +2 -0
- package/esm2020/ui/input-field/tft-crispr-forms-ui-input-field.mjs +5 -0
- package/esm2020/ui/option/option.component.mjs +19 -0
- package/esm2020/ui/option/public-api.mjs +2 -0
- package/esm2020/ui/option/tft-crispr-forms-ui-option.mjs +5 -0
- package/esm2020/ui/public-api.mjs +7 -0
- package/esm2020/ui/radio-field/public-api.mjs +2 -0
- package/esm2020/ui/radio-field/radio-field.component.mjs +39 -0
- package/esm2020/ui/radio-field/tft-crispr-forms-ui-radio-field.mjs +5 -0
- package/esm2020/ui/select-field/public-api.mjs +2 -0
- package/esm2020/ui/select-field/select-field.component.mjs +73 -0
- package/esm2020/ui/select-field/tft-crispr-forms-ui-select-field.mjs +5 -0
- package/esm2020/ui/selected-file/public-api.mjs +2 -0
- package/esm2020/ui/selected-file/selected-file.component.mjs +26 -0
- package/esm2020/ui/selected-file/tft-crispr-forms-ui-selected-file.mjs +5 -0
- package/esm2020/ui/slider-field/public-api.mjs +2 -0
- package/esm2020/ui/slider-field/slider-field.component.mjs +44 -0
- package/esm2020/ui/slider-field/tft-crispr-forms-ui-slider-field.mjs +5 -0
- package/esm2020/ui/textarea-field/public-api.mjs +2 -0
- package/esm2020/ui/textarea-field/textarea-field.component.mjs +42 -0
- package/esm2020/ui/textarea-field/tft-crispr-forms-ui-textarea-field.mjs +5 -0
- package/esm2020/ui/tft-crispr-forms-ui.mjs +5 -0
- package/esm2020/ui/unit-conversion-field/public-api.mjs +2 -0
- package/esm2020/ui/unit-conversion-field/tft-crispr-forms-ui-unit-conversion-field.mjs +5 -0
- package/esm2020/ui/unit-conversion-field/unit-conversion-field.component.mjs +84 -0
- package/esm2020/utils/abstracts/autocomplete-field.abstract.mjs +30 -0
- package/esm2020/utils/abstracts/crispr-control.mixin.mjs +27 -0
- package/esm2020/utils/abstracts/crispr-field.abstract.mjs +20 -0
- package/esm2020/utils/abstracts/index.mjs +4 -0
- package/esm2020/utils/functions/buildFormGroupFromConfig.mjs +28 -0
- package/esm2020/utils/functions/callOptionsIfFunction.mjs +4 -0
- package/esm2020/utils/functions/createControlForType.mjs +19 -0
- package/esm2020/utils/functions/filterOptionsByLabel.mjs +11 -0
- package/esm2020/utils/functions/image-compression.helpers.mjs +50 -0
- package/esm2020/utils/functions/index.mjs +8 -0
- package/esm2020/utils/functions/isControlConfig.mjs +7 -0
- package/esm2020/utils/functions/observablifyOptions.mjs +29 -0
- package/esm2020/utils/models/autocomplete-chiplist-field.config.mjs +2 -0
- package/esm2020/utils/models/autocomplete-field.config.mjs +2 -0
- package/esm2020/utils/models/button.config.mjs +2 -0
- package/esm2020/utils/models/checkbox-field.config.mjs +2 -0
- package/esm2020/utils/models/crispr-field.config.mjs +23 -0
- package/esm2020/utils/models/datepicker-field.config.mjs +2 -0
- package/esm2020/utils/models/divider.config.mjs +2 -0
- package/esm2020/utils/models/file-upload-field.config.mjs +2 -0
- package/esm2020/utils/models/form-group-list.config.mjs +2 -0
- package/esm2020/utils/models/heading.config.mjs +3 -0
- package/esm2020/utils/models/image-upload-field.config.mjs +2 -0
- package/esm2020/utils/models/index.mjs +18 -0
- package/esm2020/utils/models/input-field.config.mjs +2 -0
- package/esm2020/utils/models/radio-field.config.mjs +2 -0
- package/esm2020/utils/models/select-field.config.mjs +2 -0
- package/esm2020/utils/models/slider-field.config.mjs +2 -0
- package/esm2020/utils/models/textarea-field.config.mjs +2 -0
- package/esm2020/utils/models/unit-conversion-field.config.mjs +2 -0
- package/esm2020/utils/operators/form.operators.mjs +24 -0
- package/esm2020/utils/operators/index.mjs +2 -0
- package/esm2020/utils/public-api.mjs +5 -0
- package/esm2020/utils/tft-crispr-forms-utils.mjs +5 -0
- package/fesm2015/tft-crispr-forms-ui-autocomplete-chiplist-field.mjs +138 -0
- package/fesm2015/tft-crispr-forms-ui-autocomplete-chiplist-field.mjs.map +1 -0
- package/fesm2015/tft-crispr-forms-ui-autocomplete-field.mjs +101 -0
- package/fesm2015/tft-crispr-forms-ui-autocomplete-field.mjs.map +1 -0
- package/fesm2015/tft-crispr-forms-ui-button.mjs +55 -0
- package/fesm2015/tft-crispr-forms-ui-button.mjs.map +1 -0
- package/fesm2015/tft-crispr-forms-ui-checkbox-field.mjs +49 -0
- package/fesm2015/tft-crispr-forms-ui-checkbox-field.mjs.map +1 -0
- package/fesm2015/tft-crispr-forms-ui-datepicker-field.mjs +71 -0
- package/fesm2015/tft-crispr-forms-ui-datepicker-field.mjs.map +1 -0
- package/fesm2015/tft-crispr-forms-ui-divider.mjs +34 -0
- package/fesm2015/tft-crispr-forms-ui-divider.mjs.map +1 -0
- package/fesm2015/tft-crispr-forms-ui-field-container.mjs +64 -0
- package/fesm2015/tft-crispr-forms-ui-field-container.mjs.map +1 -0
- package/fesm2015/tft-crispr-forms-ui-file-dropzone.mjs +47 -0
- package/fesm2015/tft-crispr-forms-ui-file-dropzone.mjs.map +1 -0
- package/fesm2015/tft-crispr-forms-ui-file-upload-field.mjs +117 -0
- package/fesm2015/tft-crispr-forms-ui-file-upload-field.mjs.map +1 -0
- package/fesm2015/tft-crispr-forms-ui-heading.mjs +37 -0
- package/fesm2015/tft-crispr-forms-ui-heading.mjs.map +1 -0
- package/fesm2015/tft-crispr-forms-ui-image-upload-field.mjs +182 -0
- package/fesm2015/tft-crispr-forms-ui-image-upload-field.mjs.map +1 -0
- package/fesm2015/tft-crispr-forms-ui-info.mjs +30 -0
- package/fesm2015/tft-crispr-forms-ui-info.mjs.map +1 -0
- package/fesm2015/tft-crispr-forms-ui-input-field.mjs +48 -0
- package/fesm2015/tft-crispr-forms-ui-input-field.mjs.map +1 -0
- package/fesm2015/tft-crispr-forms-ui-option.mjs +26 -0
- package/fesm2015/tft-crispr-forms-ui-option.mjs.map +1 -0
- package/fesm2015/tft-crispr-forms-ui-radio-field.mjs +46 -0
- package/fesm2015/tft-crispr-forms-ui-radio-field.mjs.map +1 -0
- package/fesm2015/tft-crispr-forms-ui-select-field.mjs +81 -0
- package/fesm2015/tft-crispr-forms-ui-select-field.mjs.map +1 -0
- package/fesm2015/tft-crispr-forms-ui-selected-file.mjs +33 -0
- package/fesm2015/tft-crispr-forms-ui-selected-file.mjs.map +1 -0
- package/fesm2015/tft-crispr-forms-ui-slider-field.mjs +51 -0
- package/fesm2015/tft-crispr-forms-ui-slider-field.mjs.map +1 -0
- package/fesm2015/tft-crispr-forms-ui-textarea-field.mjs +49 -0
- package/fesm2015/tft-crispr-forms-ui-textarea-field.mjs.map +1 -0
- package/fesm2015/tft-crispr-forms-ui-unit-conversion-field.mjs +93 -0
- package/fesm2015/tft-crispr-forms-ui-unit-conversion-field.mjs.map +1 -0
- package/fesm2015/tft-crispr-forms-ui.mjs +12 -0
- package/fesm2015/tft-crispr-forms-ui.mjs.map +1 -0
- package/fesm2015/tft-crispr-forms-utils.mjs +270 -0
- package/fesm2015/tft-crispr-forms-utils.mjs.map +1 -0
- package/fesm2015/tft-crispr-forms.mjs +117 -1730
- package/fesm2015/tft-crispr-forms.mjs.map +1 -1
- package/fesm2020/tft-crispr-forms-ui-autocomplete-chiplist-field.mjs +137 -0
- package/fesm2020/tft-crispr-forms-ui-autocomplete-chiplist-field.mjs.map +1 -0
- package/fesm2020/tft-crispr-forms-ui-autocomplete-field.mjs +100 -0
- package/fesm2020/tft-crispr-forms-ui-autocomplete-field.mjs.map +1 -0
- package/fesm2020/tft-crispr-forms-ui-button.mjs +55 -0
- package/fesm2020/tft-crispr-forms-ui-button.mjs.map +1 -0
- package/fesm2020/tft-crispr-forms-ui-checkbox-field.mjs +49 -0
- package/fesm2020/tft-crispr-forms-ui-checkbox-field.mjs.map +1 -0
- package/fesm2020/tft-crispr-forms-ui-datepicker-field.mjs +70 -0
- package/fesm2020/tft-crispr-forms-ui-datepicker-field.mjs.map +1 -0
- package/fesm2020/tft-crispr-forms-ui-divider.mjs +34 -0
- package/fesm2020/tft-crispr-forms-ui-divider.mjs.map +1 -0
- package/fesm2020/tft-crispr-forms-ui-field-container.mjs +65 -0
- package/fesm2020/tft-crispr-forms-ui-field-container.mjs.map +1 -0
- package/fesm2020/tft-crispr-forms-ui-file-dropzone.mjs +47 -0
- package/fesm2020/tft-crispr-forms-ui-file-dropzone.mjs.map +1 -0
- package/fesm2020/tft-crispr-forms-ui-file-upload-field.mjs +115 -0
- package/fesm2020/tft-crispr-forms-ui-file-upload-field.mjs.map +1 -0
- package/fesm2020/tft-crispr-forms-ui-heading.mjs +37 -0
- package/fesm2020/tft-crispr-forms-ui-heading.mjs.map +1 -0
- package/fesm2020/tft-crispr-forms-ui-image-upload-field.mjs +185 -0
- package/fesm2020/tft-crispr-forms-ui-image-upload-field.mjs.map +1 -0
- package/fesm2020/tft-crispr-forms-ui-info.mjs +30 -0
- package/fesm2020/tft-crispr-forms-ui-info.mjs.map +1 -0
- package/fesm2020/tft-crispr-forms-ui-input-field.mjs +48 -0
- package/fesm2020/tft-crispr-forms-ui-input-field.mjs.map +1 -0
- package/fesm2020/tft-crispr-forms-ui-option.mjs +26 -0
- package/fesm2020/tft-crispr-forms-ui-option.mjs.map +1 -0
- package/fesm2020/tft-crispr-forms-ui-radio-field.mjs +46 -0
- package/fesm2020/tft-crispr-forms-ui-radio-field.mjs.map +1 -0
- package/fesm2020/tft-crispr-forms-ui-select-field.mjs +80 -0
- package/fesm2020/tft-crispr-forms-ui-select-field.mjs.map +1 -0
- package/fesm2020/tft-crispr-forms-ui-selected-file.mjs +33 -0
- package/fesm2020/tft-crispr-forms-ui-selected-file.mjs.map +1 -0
- package/fesm2020/tft-crispr-forms-ui-slider-field.mjs +51 -0
- package/fesm2020/tft-crispr-forms-ui-slider-field.mjs.map +1 -0
- package/fesm2020/tft-crispr-forms-ui-textarea-field.mjs +49 -0
- package/fesm2020/tft-crispr-forms-ui-textarea-field.mjs.map +1 -0
- package/fesm2020/tft-crispr-forms-ui-unit-conversion-field.mjs +91 -0
- package/fesm2020/tft-crispr-forms-ui-unit-conversion-field.mjs.map +1 -0
- package/fesm2020/tft-crispr-forms-ui.mjs +12 -0
- package/fesm2020/tft-crispr-forms-ui.mjs.map +1 -0
- package/fesm2020/tft-crispr-forms-utils.mjs +269 -0
- package/fesm2020/tft-crispr-forms-utils.mjs.map +1 -0
- package/fesm2020/tft-crispr-forms.mjs +117 -1723
- package/fesm2020/tft-crispr-forms.mjs.map +1 -1
- package/index.d.ts +5 -1
- package/package.json +188 -15
- package/public-api.d.ts +3 -0
- package/src/index.d.ts +1 -0
- package/src/lib/crispr-forms.module.d.ts +15 -0
- package/src/lib/field-component-map.const.d.ts +42 -0
- package/{lib → src/lib}/field.directive.d.ts +4 -10
- package/{lib → src/lib}/form/form.component.d.ts +3 -3
- package/{lib → src/lib}/form-group-list/form-group-list.component.d.ts +12 -14
- package/{lib → src/lib}/form-group-list/index.d.ts +0 -1
- package/{lib → src/lib}/pipes/crispr-pipes.module.d.ts +0 -0
- package/{lib → src/lib}/pipes/initial-control-value.pipe.d.ts +2 -2
- package/src/lib/public_api.d.ts +2 -0
- package/{lib → src/lib}/sub-group/index.d.ts +0 -0
- package/src/lib/sub-group/sub-group.component.d.ts +22 -0
- package/{lib → src/lib}/sub-group/sub-group.module.d.ts +2 -2
- package/tft-crispr-forms-14.0.0.tgz +0 -0
- package/ui/README.md +3 -0
- package/{lib/material → ui}/autocomplete-chiplist-field/autocomplete-chiplist-field.component.d.ts +2 -3
- package/ui/autocomplete-chiplist-field/index.d.ts +5 -0
- package/ui/autocomplete-chiplist-field/public-api.d.ts +1 -0
- package/{lib/material → ui}/autocomplete-field/autocomplete-field.component.d.ts +2 -3
- package/ui/autocomplete-field/index.d.ts +5 -0
- package/ui/autocomplete-field/public-api.d.ts +1 -0
- package/{lib/material → ui}/button/button.component.d.ts +2 -3
- package/ui/button/index.d.ts +5 -0
- package/ui/button/public-api.d.ts +1 -0
- package/ui/checkbox-field/checkbox-field.component.d.ts +21 -0
- package/ui/checkbox-field/index.d.ts +5 -0
- package/ui/checkbox-field/public-api.d.ts +1 -0
- package/{lib/material → ui}/datepicker-field/datepicker-field.component.d.ts +14 -17
- package/ui/datepicker-field/index.d.ts +5 -0
- package/ui/datepicker-field/public-api.d.ts +1 -0
- package/{lib/material → ui}/divider/divider.component.d.ts +2 -3
- package/ui/divider/index.d.ts +5 -0
- package/ui/divider/public-api.d.ts +1 -0
- package/{lib → ui}/field-container/field-container.component.d.ts +3 -10
- package/ui/field-container/index.d.ts +5 -0
- package/{lib/field-container/index.d.ts → ui/field-container/public-api.d.ts} +0 -0
- package/{lib/material/file-upload → ui/file-dropzone}/file-dropzone.directive.d.ts +1 -1
- package/ui/file-dropzone/index.d.ts +5 -0
- package/{lib/material/file-upload/index.d.ts → ui/file-dropzone/public-api.d.ts} +0 -1
- package/ui/file-upload-field/file-upload-field.component.d.ts +37 -0
- package/ui/file-upload-field/index.d.ts +5 -0
- package/ui/file-upload-field/public-api.d.ts +1 -0
- package/ui/heading/heading.component.d.ts +8 -0
- package/ui/heading/index.d.ts +5 -0
- package/ui/heading/public-api.d.ts +1 -0
- package/ui/image-upload-field/image-upload-field.component.d.ts +48 -0
- package/ui/image-upload-field/index.d.ts +5 -0
- package/{lib/material/image-upload-field/index.d.ts → ui/image-upload-field/public-api.d.ts} +0 -0
- package/ui/index.d.ts +5 -0
- package/ui/info/index.d.ts +5 -0
- package/ui/info/info.component.d.ts +7 -0
- package/ui/info/public-api.d.ts +1 -0
- package/ui/input-field/index.d.ts +5 -0
- package/ui/input-field/input-field.component.d.ts +22 -0
- package/ui/input-field/public-api.d.ts +1 -0
- package/ui/option/index.d.ts +5 -0
- package/{lib/material → ui}/option/option.component.d.ts +2 -2
- package/{lib/material/option/index.d.ts → ui/option/public-api.d.ts} +0 -0
- package/ui/public-api.d.ts +5 -0
- package/ui/radio-field/index.d.ts +5 -0
- package/ui/radio-field/public-api.d.ts +1 -0
- package/ui/radio-field/radio-field.component.d.ts +23 -0
- package/ui/select-field/index.d.ts +5 -0
- package/ui/select-field/public-api.d.ts +1 -0
- package/{lib/material → ui}/select-field/select-field.component.d.ts +12 -14
- package/ui/selected-file/index.d.ts +5 -0
- package/ui/selected-file/public-api.d.ts +1 -0
- package/ui/selected-file/selected-file.component.d.ts +10 -0
- package/ui/slider-field/index.d.ts +5 -0
- package/ui/slider-field/public-api.d.ts +1 -0
- package/ui/slider-field/slider-field.component.d.ts +25 -0
- package/ui/textarea-field/index.d.ts +5 -0
- package/ui/textarea-field/public-api.d.ts +1 -0
- package/ui/textarea-field/textarea-field.component.d.ts +21 -0
- package/ui/unit-conversion-field/index.d.ts +5 -0
- package/ui/unit-conversion-field/public-api.d.ts +1 -0
- package/{lib/material → ui}/unit-conversion-field/unit-conversion-field.component.d.ts +14 -17
- package/utils/README.md +3 -0
- package/{lib → utils}/abstracts/autocomplete-field.abstract.d.ts +4 -4
- package/{lib → utils}/abstracts/crispr-control.mixin.d.ts +0 -0
- package/{lib → utils}/abstracts/crispr-field.abstract.d.ts +1 -1
- package/{lib → utils}/abstracts/index.d.ts +0 -0
- package/utils/functions/buildFormGroupFromConfig.d.ts +9 -0
- package/utils/functions/callOptionsIfFunction.d.ts +3 -0
- package/utils/functions/createControlForType.d.ts +9 -0
- package/utils/functions/filterOptionsByLabel.d.ts +7 -0
- package/utils/functions/image-compression.helpers.d.ts +5 -0
- package/utils/functions/index.d.ts +7 -0
- package/utils/functions/isControlConfig.d.ts +5 -0
- package/utils/functions/observablifyOptions.d.ts +12 -0
- package/utils/index.d.ts +5 -0
- package/{lib → utils}/models/autocomplete-chiplist-field.config.d.ts +2 -1
- package/{lib → utils}/models/autocomplete-field.config.d.ts +1 -2
- package/{lib → utils}/models/button.config.d.ts +0 -0
- package/{lib → utils}/models/checkbox-field.config.d.ts +1 -2
- package/{lib → utils}/models/crispr-field.config.d.ts +5 -7
- package/{lib → utils}/models/datepicker-field.config.d.ts +4 -6
- package/{lib → utils}/models/divider.config.d.ts +1 -1
- package/{lib → utils}/models/file-upload-field.config.d.ts +9 -4
- package/{lib → utils}/models/form-group-list.config.d.ts +1 -2
- package/{lib → utils}/models/heading.config.d.ts +1 -2
- package/{lib → utils}/models/image-upload-field.config.d.ts +2 -1
- package/{lib → utils}/models/index.d.ts +0 -0
- package/{lib → utils}/models/input-field.config.d.ts +1 -2
- package/{lib → utils}/models/radio-field.config.d.ts +0 -0
- package/{lib → utils}/models/select-field.config.d.ts +2 -2
- package/{lib → utils}/models/slider-field.config.d.ts +1 -2
- package/{lib → utils}/models/textarea-field.config.d.ts +1 -2
- package/{lib → utils}/models/unit-conversion-field.config.d.ts +1 -2
- package/{lib → utils/operators}/form.operators.d.ts +0 -0
- package/utils/operators/index.d.ts +1 -0
- package/utils/public-api.d.ts +4 -0
- package/esm2020/index.mjs +0 -2
- package/esm2020/lib/abstracts/autocomplete-field.abstract.mjs +0 -30
- package/esm2020/lib/abstracts/crispr-control.mixin.mjs +0 -27
- package/esm2020/lib/abstracts/crispr-field.abstract.mjs +0 -17
- package/esm2020/lib/abstracts/index.mjs +0 -4
- package/esm2020/lib/crispr-forms.module.mjs +0 -66
- package/esm2020/lib/field-component-map.const.mjs +0 -28
- package/esm2020/lib/field-container/field-container.component.mjs +0 -85
- package/esm2020/lib/field-container/index.mjs +0 -2
- package/esm2020/lib/field.directive.mjs +0 -90
- package/esm2020/lib/form/form.component.mjs +0 -53
- package/esm2020/lib/form-group-list/form-group-list.component.mjs +0 -77
- package/esm2020/lib/form-group-list/form-group-list.module.mjs +0 -54
- package/esm2020/lib/form-group-list/index.mjs +0 -3
- package/esm2020/lib/form.helpers.mjs +0 -190
- package/esm2020/lib/form.operators.mjs +0 -24
- package/esm2020/lib/material/autocomplete-chiplist-field/autocomplete-chiplist-field.component.mjs +0 -111
- package/esm2020/lib/material/autocomplete-field/autocomplete-field.component.mjs +0 -78
- package/esm2020/lib/material/button/button.component.mjs +0 -35
- package/esm2020/lib/material/checkbox-field/checkbox-field.component.mjs +0 -31
- package/esm2020/lib/material/datepicker-field/datepicker-field.component.mjs +0 -45
- package/esm2020/lib/material/divider/divider.component.mjs +0 -22
- package/esm2020/lib/material/file-upload/file-dropzone.directive.mjs +0 -39
- package/esm2020/lib/material/file-upload/file-upload.component.mjs +0 -145
- package/esm2020/lib/material/file-upload/index.mjs +0 -3
- package/esm2020/lib/material/heading/heading.component.mjs +0 -54
- package/esm2020/lib/material/image-upload-field/image-compression.helpers.mjs +0 -4
- package/esm2020/lib/material/image-upload-field/image-upload-field.component.mjs +0 -265
- package/esm2020/lib/material/image-upload-field/index.mjs +0 -2
- package/esm2020/lib/material/index.mjs +0 -18
- package/esm2020/lib/material/info/info.component.mjs +0 -46
- package/esm2020/lib/material/input-field/input-field.component.mjs +0 -27
- package/esm2020/lib/material/material.module.mjs +0 -200
- package/esm2020/lib/material/option/index.mjs +0 -2
- package/esm2020/lib/material/option/option.component.mjs +0 -14
- package/esm2020/lib/material/radio-field/radio-field.component.mjs +0 -29
- package/esm2020/lib/material/select-field/select-field.component.mjs +0 -58
- package/esm2020/lib/material/selected-file/selected-file.component.mjs +0 -47
- package/esm2020/lib/material/slider-field/slider-field.component.mjs +0 -30
- package/esm2020/lib/material/textarea-field/textarea-field.component.mjs +0 -28
- package/esm2020/lib/material/unit-conversion-field/unit-conversion-field.component.mjs +0 -69
- package/esm2020/lib/models/autocomplete-chiplist-field.config.mjs +0 -2
- package/esm2020/lib/models/autocomplete-field.config.mjs +0 -2
- package/esm2020/lib/models/button.config.mjs +0 -2
- package/esm2020/lib/models/checkbox-field.config.mjs +0 -2
- package/esm2020/lib/models/crispr-field.config.mjs +0 -23
- package/esm2020/lib/models/datepicker-field.config.mjs +0 -2
- package/esm2020/lib/models/divider.config.mjs +0 -2
- package/esm2020/lib/models/file-upload-field.config.mjs +0 -2
- package/esm2020/lib/models/form-group-list.config.mjs +0 -2
- package/esm2020/lib/models/heading.config.mjs +0 -3
- package/esm2020/lib/models/image-upload-field.config.mjs +0 -2
- package/esm2020/lib/models/index.mjs +0 -18
- package/esm2020/lib/models/input-field.config.mjs +0 -2
- package/esm2020/lib/models/radio-field.config.mjs +0 -2
- package/esm2020/lib/models/select-field.config.mjs +0 -2
- package/esm2020/lib/models/slider-field.config.mjs +0 -2
- package/esm2020/lib/models/textarea-field.config.mjs +0 -2
- package/esm2020/lib/models/unit-conversion-field.config.mjs +0 -2
- package/esm2020/lib/pipes/crispr-pipes.module.mjs +0 -26
- package/esm2020/lib/pipes/initial-control-value.pipe.mjs +0 -20
- package/esm2020/lib/public_api.mjs +0 -10
- package/esm2020/lib/sub-group/index.mjs +0 -3
- package/esm2020/lib/sub-group/sub-group.component.mjs +0 -20
- package/esm2020/lib/sub-group/sub-group.module.mjs +0 -45
- package/lib/crispr-forms.module.d.ts +0 -16
- package/lib/field-component-map.const.d.ts +0 -28
- package/lib/form-group-list/form-group-list.module.d.ts +0 -15
- package/lib/form.helpers.d.ts +0 -88
- package/lib/material/checkbox-field/checkbox-field.component.d.ts +0 -23
- package/lib/material/file-upload/file-upload.component.d.ts +0 -54
- package/lib/material/heading/heading.component.d.ts +0 -17
- package/lib/material/image-upload-field/image-compression.helpers.d.ts +0 -1
- package/lib/material/image-upload-field/image-upload-field.component.d.ts +0 -68
- package/lib/material/index.d.ts +0 -17
- package/lib/material/info/info.component.d.ts +0 -15
- package/lib/material/input-field/input-field.component.d.ts +0 -24
- package/lib/material/material.module.d.ts +0 -44
- package/lib/material/radio-field/radio-field.component.d.ts +0 -26
- package/lib/material/selected-file/selected-file.component.d.ts +0 -17
- package/lib/material/slider-field/slider-field.component.d.ts +0 -27
- package/lib/material/textarea-field/textarea-field.component.d.ts +0 -24
- package/lib/public_api.d.ts +0 -9
- package/lib/sub-group/sub-group.component.d.ts +0 -24
- package/tft-crispr-forms-13.0.21.tgz +0 -0
- package/tft-crispr-forms.d.ts +0 -5
|
@@ -7,8 +7,8 @@ declare type AutocompleteConfigTypes = AutocompleteFieldConfig | AutocompleteChi
|
|
|
7
7
|
declare const AbstractAutocompleteFieldMixin: {
|
|
8
8
|
new (): {
|
|
9
9
|
config: AutocompleteConfigTypes;
|
|
10
|
-
group: import("@angular/forms").FormGroup
|
|
11
|
-
control: import("@angular/forms").AbstractControl
|
|
10
|
+
group: import("@angular/forms").FormGroup<any>;
|
|
11
|
+
control: import("@angular/forms").AbstractControl<any, any>;
|
|
12
12
|
_value: any;
|
|
13
13
|
value: any;
|
|
14
14
|
ngOnInit(): void;
|
|
@@ -18,11 +18,11 @@ declare const AbstractAutocompleteFieldMixin: {
|
|
|
18
18
|
};
|
|
19
19
|
};
|
|
20
20
|
export declare class AbstractAutocompleteComponent<C> extends AbstractAutocompleteFieldMixin implements OnInit {
|
|
21
|
-
autocompleteInputControl: FormControl
|
|
21
|
+
autocompleteInputControl: FormControl<string>;
|
|
22
22
|
options$: Observable<SelectOption[]>;
|
|
23
23
|
config: AutocompleteConfigTypes & C;
|
|
24
24
|
ngOnInit(): void;
|
|
25
25
|
static ɵfac: i0.ɵɵFactoryDeclaration<AbstractAutocompleteComponent<any>, never>;
|
|
26
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<AbstractAutocompleteComponent<any>, never, never, {}, {}, never>;
|
|
26
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<AbstractAutocompleteComponent<any>, never, never, {}, {}, never, never, false>;
|
|
27
27
|
}
|
|
28
28
|
export {};
|
|
File without changes
|
|
@@ -7,5 +7,5 @@ export declare abstract class CrisprFieldComponent<C extends CrisprFieldConfig>
|
|
|
7
7
|
ngOnInit(): void;
|
|
8
8
|
applyDefaultConfig(): void;
|
|
9
9
|
static ɵfac: i0.ɵɵFactoryDeclaration<CrisprFieldComponent<any>, never>;
|
|
10
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<CrisprFieldComponent<any>, never, never, {}, {}, never>;
|
|
10
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<CrisprFieldComponent<any>, never, never, {}, {}, never, never, true>;
|
|
11
11
|
}
|
|
File without changes
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { FormGroup } from "@angular/forms";
|
|
2
|
+
import { FormConfig } from "../models";
|
|
3
|
+
/**
|
|
4
|
+
* builds out form group based on config
|
|
5
|
+
* @param config a configuration for a form group
|
|
6
|
+
* @param value an object of initial values to pass in
|
|
7
|
+
* @param group the form group to modify and build out
|
|
8
|
+
*/
|
|
9
|
+
export declare function buildFormGroupFromConfig(config: FormConfig, value?: any, group?: FormGroup): FormGroup<any>;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { FormGroup } from "@angular/forms";
|
|
2
|
+
import { AutocompleteOptionsCallback, OptionsType } from "../models";
|
|
3
|
+
export declare function callOptionsIfFunction(options: OptionsType | AutocompleteOptionsCallback, parentGroup?: FormGroup, searchString?: string): OptionsType;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { FormArray, FormControl } from "@angular/forms";
|
|
2
|
+
import { AnyFieldConfig, ControlValue } from "../models";
|
|
3
|
+
/**
|
|
4
|
+
* Analyze the config and build a form control to spec. Notice we don't use FormBuilder here
|
|
5
|
+
* as we want to keep this function pure.
|
|
6
|
+
* @param controlConfig the configuration object for the control to build
|
|
7
|
+
* @param value an initial value to use if passed in
|
|
8
|
+
*/
|
|
9
|
+
export declare function createControlForType(controlConfig: AnyFieldConfig, value?: ControlValue): import("@angular/forms").FormGroup<any> | FormArray<any> | FormControl<any>;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { SelectOption } from "../models";
|
|
2
|
+
/**
|
|
3
|
+
* A basic filter function that filters the search string against the label of the options object
|
|
4
|
+
* @param options the array of options to filter
|
|
5
|
+
* @param searchString the string from the input
|
|
6
|
+
*/
|
|
7
|
+
export declare function filterOptionsByLabel(options: SelectOption[], searchString: string): SelectOption[];
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { ValidatorFn } from "@angular/forms";
|
|
2
|
+
export declare function convertBytesToMb(bytes: number): number;
|
|
3
|
+
export declare function maxFileSizeValidator(maxFileSize: number): ValidatorFn;
|
|
4
|
+
export declare function allowedFileExtValidator(allowedFileExtensions: string[], onlyAllowFiles?: boolean): ValidatorFn;
|
|
5
|
+
export declare function allowedFileType(matchExp: string | RegExp): ValidatorFn;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export * from './buildFormGroupFromConfig';
|
|
2
|
+
export * from './callOptionsIfFunction';
|
|
3
|
+
export * from './createControlForType';
|
|
4
|
+
export * from './filterOptionsByLabel';
|
|
5
|
+
export * from './isControlConfig';
|
|
6
|
+
export * from './observablifyOptions';
|
|
7
|
+
export * from './image-compression.helpers';
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { CrisprControlConfig, CrisprFieldConfig } from "../models";
|
|
2
|
+
/**
|
|
3
|
+
* Determines if the field config is for a form control (not a divider, heading or other non-control field)
|
|
4
|
+
* */
|
|
5
|
+
export declare function isControlConfig(fieldConfig: CrisprFieldConfig): fieldConfig is CrisprControlConfig;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { FormGroup } from "@angular/forms";
|
|
2
|
+
import { Observable } from "rxjs";
|
|
3
|
+
import { OptionsType, SelectOption } from "../models";
|
|
4
|
+
/**
|
|
5
|
+
* The user can give us select options as an array, a function that resolves to a promise,
|
|
6
|
+
* or an observable. This functions consumes any of those and returns an observable that
|
|
7
|
+
* resolves an array of options
|
|
8
|
+
*
|
|
9
|
+
* @param options the options passed in from the config
|
|
10
|
+
* @param emptyMessageOption the message to display when the array is empty
|
|
11
|
+
*/
|
|
12
|
+
export declare function observablifyOptions(options: OptionsType, parentGroup: FormGroup, searchString?: string): Observable<SelectOption[]>;
|
package/utils/index.d.ts
ADDED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { AbstractAutocompleteFieldConfig
|
|
1
|
+
import { AbstractAutocompleteFieldConfig } from './autocomplete-field.config';
|
|
2
|
+
import { SelectOption } from './select-field.config';
|
|
2
3
|
import { ControlType, FieldDescriptors, MatFieldProperties } from './crispr-field.config';
|
|
3
4
|
export interface AutocompleteChiplistFieldConfig extends AbstractAutocompleteFieldConfig, FieldDescriptors, MatFieldProperties {
|
|
4
5
|
controlType: ControlType.AUTOCOMPLETE_CHIPLIST;
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { CrisprControlConfig, ControlType } from '../models';
|
|
2
1
|
import { AutocompleteOptionsCallback, SelectOption } from './select-field.config';
|
|
3
|
-
import { FieldDescriptors, MatFieldProperties } from './crispr-field.config';
|
|
2
|
+
import { FieldDescriptors, MatFieldProperties, CrisprControlConfig, ControlType } from './crispr-field.config';
|
|
4
3
|
export interface AbstractAutocompleteFieldConfig extends CrisprControlConfig, FieldDescriptors, MatFieldProperties {
|
|
5
4
|
typeToEmit?: boolean;
|
|
6
5
|
typeDebounceTime?: number;
|
|
File without changes
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { CrisprControlConfig, ControlType } from '
|
|
2
|
-
import { FieldDescriptors, MatFieldProperties } from './crispr-field.config';
|
|
1
|
+
import { FieldDescriptors, MatFieldProperties, CrisprControlConfig, ControlType } from './crispr-field.config';
|
|
3
2
|
export interface CheckboxFieldConfig extends CrisprControlConfig, Pick<FieldDescriptors, 'label' | 'info'>, Pick<MatFieldProperties, 'color'> {
|
|
4
3
|
controlType: ControlType.CHECKBOX;
|
|
5
4
|
labelPosition?: 'before' | 'after';
|
|
@@ -3,7 +3,6 @@ import { Observable } from 'rxjs';
|
|
|
3
3
|
import { TooltipPosition } from '@angular/material/tooltip';
|
|
4
4
|
import { MatFormFieldAppearance } from '@angular/material/form-field';
|
|
5
5
|
import { ErrorDictionary } from '@tft/form-validation-handler';
|
|
6
|
-
import { ComputeFieldConfig, CheckControlConfig, CheckControlsConfig } from '../form.helpers';
|
|
7
6
|
import type { SelectFieldConfig, HeadingConfig, ButtonConfig, DatepickerFieldConfig, InputFieldConfig, CheckboxFieldConfig, TextareaFieldConfig, AutocompleteFieldConfig, FormGroupListConfig, AutocompleteChiplistFieldConfig, SliderFieldConfig, DividerConfig, SelectOption, RadioFieldConfig, ImageUploadFieldConfig, FileUploadFieldConfig, UnitConversionFieldConfig } from '../models';
|
|
8
7
|
import { ThemePalette } from '@angular/material/core';
|
|
9
8
|
export declare enum ControlType {
|
|
@@ -42,13 +41,12 @@ export interface CrisprControlConfig<M = null> extends CrisprFieldConfig {
|
|
|
42
41
|
controlName: RestrictedControlName<M>;
|
|
43
42
|
controlType: ControlType;
|
|
44
43
|
validators?: ValidatorFn[];
|
|
44
|
+
computeValue?: (group: FormGroup) => Observable<unknown>;
|
|
45
|
+
disabledCallback?: (group: FormGroup) => Observable<boolean>;
|
|
45
46
|
/**
|
|
46
|
-
*
|
|
47
|
+
* Hide the control when disabled
|
|
48
|
+
* @default false
|
|
47
49
|
*/
|
|
48
|
-
computeFieldConfig?: ComputeFieldConfig;
|
|
49
|
-
computeValue?: (group: FormGroup) => Observable<unknown>;
|
|
50
|
-
disabledCallback?: (group: FormGroup, config?: any) => Observable<boolean>;
|
|
51
|
-
disabledCallbackConfig?: CheckControlConfig | CheckControlsConfig | any;
|
|
52
50
|
hideDisabled?: boolean;
|
|
53
51
|
heading?: HeadingConfig;
|
|
54
52
|
hint?: string;
|
|
@@ -85,7 +83,7 @@ export interface FormConfig<C = AnyFieldConfig> extends AbstractGroupConfig<C> {
|
|
|
85
83
|
/**
|
|
86
84
|
* Configuration for SubGroup components
|
|
87
85
|
*/
|
|
88
|
-
export interface SubGroupConfig extends CrisprControlConfig, AbstractGroupConfig {
|
|
86
|
+
export interface SubGroupConfig extends CrisprControlConfig, AbstractGroupConfig<any> {
|
|
89
87
|
controlType: ControlType.SUB_GROUP;
|
|
90
88
|
}
|
|
91
89
|
export declare type AnyFieldConfig = InputFieldConfig | SelectFieldConfig | RadioFieldConfig | FormGroupListConfig | SubGroupConfig | AutocompleteFieldConfig | AutocompleteChiplistFieldConfig | TextareaFieldConfig | CheckboxFieldConfig | DatepickerFieldConfig | SliderFieldConfig | FileUploadFieldConfig | ImageUploadFieldConfig | HeadingConfig | ButtonConfig | DividerConfig | UnitConversionFieldConfig;
|
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
import { CrisprControlConfig, ControlType } from '
|
|
2
|
-
import { Moment } from 'moment';
|
|
3
|
-
import { FieldDescriptors, MatFieldProperties } from './crispr-field.config';
|
|
1
|
+
import { FieldDescriptors, MatFieldProperties, CrisprControlConfig, ControlType } from './crispr-field.config';
|
|
4
2
|
import { MatCalendarCellClassFunction } from '@angular/material/datepicker';
|
|
5
3
|
import { Observable } from 'rxjs';
|
|
6
4
|
import { FormGroup } from '@angular/forms';
|
|
@@ -12,9 +10,9 @@ export interface DatepickerFieldConfig extends CrisprControlConfig, Pick<FieldDe
|
|
|
12
10
|
startView?: 'month' | 'year' | 'multi-year';
|
|
13
11
|
startAt?: Date | ((group: FormGroup) => Observable<Date>) | null;
|
|
14
12
|
touchUi?: boolean;
|
|
15
|
-
datepickerFilter?: (date:
|
|
16
|
-
cellClassFunction?: MatCalendarCellClassFunction<
|
|
17
|
-
dateClass?: (parentGroup: FormGroup) => Observable<MatCalendarCellClassFunction<
|
|
13
|
+
datepickerFilter?: (date: Date) => boolean;
|
|
14
|
+
cellClassFunction?: MatCalendarCellClassFunction<Date>;
|
|
15
|
+
dateClass?: (parentGroup: FormGroup) => Observable<MatCalendarCellClassFunction<Date>>;
|
|
18
16
|
/**
|
|
19
17
|
* Pass a component into mat-datepicker-actions component see [docs](https://material.angular.io/components/datepicker/overview#confirmation-action-buttons)
|
|
20
18
|
*/
|
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
import { FormGroup } from '@angular/forms';
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import {
|
|
2
|
+
import { CrisprControlConfig, ControlType, MatFieldProperties } from './crispr-field.config';
|
|
3
|
+
import { ButtonType } from './button.config';
|
|
4
|
+
import { Observable } from 'rxjs';
|
|
5
|
+
export interface AbstractUploadComponent {
|
|
6
|
+
isUploaded: boolean;
|
|
7
|
+
fileProgress: Observable<number>[];
|
|
8
|
+
disabled$: Observable<boolean>;
|
|
9
|
+
}
|
|
5
10
|
export declare type FileUploadFieldConfig = CrisprControlConfig & MatFieldProperties & {
|
|
6
11
|
controlType: ControlType.FILE_UPLOAD;
|
|
7
12
|
label: string;
|
|
@@ -15,7 +20,7 @@ export declare type FileUploadFieldConfig = CrisprControlConfig & MatFieldProper
|
|
|
15
20
|
dropZoneText?: string;
|
|
16
21
|
} & (EnabledUploadButtonConfig | DisabledUploadButtonConfig);
|
|
17
22
|
export interface EnabledUploadButtonConfig {
|
|
18
|
-
uploadFiles: (parentGroup: FormGroup, files: FileList, uploadComponent:
|
|
23
|
+
uploadFiles: (parentGroup: FormGroup, files: FileList, uploadComponent: AbstractUploadComponent) => Promise<unknown> | unknown;
|
|
19
24
|
showUploadProgress?: boolean;
|
|
20
25
|
disableOnUpload?: boolean;
|
|
21
26
|
uploadButtonType?: ButtonType;
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { ThemePalette } from '@angular/material/core';
|
|
2
|
-
import { CrisprControlConfig, ControlType } from './';
|
|
3
|
-
import { SubGroupConfig } from './crispr-field.config';
|
|
2
|
+
import { CrisprControlConfig, ControlType, SubGroupConfig } from './crispr-field.config';
|
|
4
3
|
export interface FormGroupListConfig extends CrisprControlConfig {
|
|
5
4
|
controlType: ControlType.GROUP_LIST;
|
|
6
5
|
itemConfig: SubGroupConfig;
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { CrisprFieldConfig, ControlType } from '
|
|
2
|
-
import { FieldDescriptors } from './crispr-field.config';
|
|
1
|
+
import { FieldDescriptors, CrisprFieldConfig, ControlType } from './crispr-field.config';
|
|
3
2
|
export interface HeadingConfig extends Omit<CrisprFieldConfig, 'controlType'>, Omit<FieldDescriptors, 'placeholder' | 'fieldSuffix'> {
|
|
4
3
|
controlType?: ControlType.HEADING;
|
|
5
4
|
typographyClass?: string;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { FormGroup } from '@angular/forms';
|
|
2
|
-
import { CrisprControlConfig, ControlType,
|
|
2
|
+
import { CrisprControlConfig, ControlType, MatFieldProperties } from './crispr-field.config';
|
|
3
|
+
import { ButtonType } from './button.config';
|
|
3
4
|
export declare type ImageUploadFieldConfig = CrisprControlConfig & MatFieldProperties & {
|
|
4
5
|
controlType: ControlType.IMAGE_UPLOAD;
|
|
5
6
|
label: string;
|
|
File without changes
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { CrisprControlConfig } from '
|
|
2
|
-
import { ControlType, FieldDescriptors, MatFieldProperties } from './crispr-field.config';
|
|
1
|
+
import { ControlType, FieldDescriptors, MatFieldProperties, CrisprControlConfig } from './crispr-field.config';
|
|
3
2
|
export interface InputFieldConfig extends CrisprControlConfig, FieldDescriptors, MatFieldProperties {
|
|
4
3
|
controlType: ControlType.INPUT;
|
|
5
4
|
inputType?: InputType;
|
|
File without changes
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import { CrisprControlConfig } from '../models';
|
|
2
1
|
import { Observable } from 'rxjs';
|
|
3
2
|
import { FormGroup } from '@angular/forms';
|
|
4
|
-
import { ControlType, FieldDescriptors, MatFieldProperties } from './crispr-field.config';
|
|
3
|
+
import { ControlType, FieldDescriptors, Info, MatFieldProperties, CrisprControlConfig } from './crispr-field.config';
|
|
5
4
|
export interface SelectFieldConfig extends Omit<CrisprControlConfig, 'placeholder'>, FieldDescriptors, MatFieldProperties {
|
|
6
5
|
controlType: ControlType.SELECT;
|
|
7
6
|
emptyOptionsMessage?: string;
|
|
@@ -17,5 +16,6 @@ export interface SelectOption {
|
|
|
17
16
|
label: string;
|
|
18
17
|
value: any;
|
|
19
18
|
imageUrl?: string;
|
|
19
|
+
info?: Info;
|
|
20
20
|
}
|
|
21
21
|
export declare const DEFAULT_EMPTY_OPTIONS_MESSAGE = "No Items";
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { CrisprControlConfig, ControlType } from '
|
|
2
|
-
import { FieldDescriptors, MatFieldProperties } from './crispr-field.config';
|
|
1
|
+
import { FieldDescriptors, MatFieldProperties, CrisprControlConfig, ControlType } from './crispr-field.config';
|
|
3
2
|
export interface SliderFieldConfig extends CrisprControlConfig, Pick<FieldDescriptors, 'label' | 'info'>, Pick<MatFieldProperties, 'color'> {
|
|
4
3
|
controlType: ControlType.SLIDER;
|
|
5
4
|
displayWith?: (value: number) => string | number;
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { CrisprControlConfig, ControlType } from '
|
|
2
|
-
import { FieldDescriptors, MatFieldProperties } from './crispr-field.config';
|
|
1
|
+
import { FieldDescriptors, MatFieldProperties, CrisprControlConfig, ControlType } from './crispr-field.config';
|
|
3
2
|
export interface TextareaFieldConfig extends CrisprControlConfig, FieldDescriptors, MatFieldProperties {
|
|
4
3
|
controlType: ControlType.TEXTAREA;
|
|
5
4
|
rows?: number;
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { FormGroup } from '@angular/forms';
|
|
2
|
-
import { CrisprControlConfig, ControlType } from '
|
|
3
|
-
import { FieldDescriptors, MatFieldProperties } from './crispr-field.config';
|
|
2
|
+
import { FieldDescriptors, MatFieldProperties, CrisprControlConfig, ControlType } from './crispr-field.config';
|
|
4
3
|
import { OptionsType } from './select-field.config';
|
|
5
4
|
export declare type UnitConversionFieldConfig<ST = unknown, UT = unknown> = CrisprControlConfig & FieldDescriptors & MatFieldProperties & {
|
|
6
5
|
controlType: ControlType.UNIT_CONVERSION;
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './form.operators';
|
package/esm2020/index.mjs
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export * from './lib/public_api';
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL2NyaXNwci1mb3Jtcy9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxrQkFBa0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGliL3B1YmxpY19hcGknO1xuXG4iXX0=
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { Directive } from '@angular/core';
|
|
2
|
-
import { FormControl } from '@angular/forms';
|
|
3
|
-
import { debounceTime, distinctUntilChanged, map, shareReplay, startWith, switchMap } from 'rxjs/operators';
|
|
4
|
-
import { crisprControlMixin } from './crispr-control.mixin';
|
|
5
|
-
import { CrisprFieldComponent } from './crispr-field.abstract';
|
|
6
|
-
import { observablifyOptions } from '../form.helpers';
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
const AbstractAutocompleteFieldMixin = crisprControlMixin(CrisprFieldComponent);
|
|
9
|
-
// eslint-disable-next-line @angular-eslint/directive-class-suffix
|
|
10
|
-
export class AbstractAutocompleteComponent extends AbstractAutocompleteFieldMixin {
|
|
11
|
-
constructor() {
|
|
12
|
-
super(...arguments);
|
|
13
|
-
// we need a separate control for the UI because of the way the material autocomplete chiplist works
|
|
14
|
-
this.autocompleteInputControl = new FormControl('');
|
|
15
|
-
}
|
|
16
|
-
ngOnInit() {
|
|
17
|
-
super.ngOnInit();
|
|
18
|
-
this.group.addControl(this.config.controlName, new FormControl());
|
|
19
|
-
// filter options by the search string using either the default filter function or one passed in through config
|
|
20
|
-
this.options$ = this.autocompleteInputControl.valueChanges.pipe(
|
|
21
|
-
// this is needed to have the options panel to open on focus
|
|
22
|
-
startWith(''), debounceTime(this.config.typeDebounceTime), map((searchText) => typeof searchText === 'string' ? searchText?.trim() : ''), distinctUntilChanged(), switchMap((searchText) => observablifyOptions(this.config.options, this.group, searchText)), shareReplay(1));
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
AbstractAutocompleteComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: AbstractAutocompleteComponent, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
26
|
-
AbstractAutocompleteComponent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.1", type: AbstractAutocompleteComponent, usesInheritance: true, ngImport: i0 });
|
|
27
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: AbstractAutocompleteComponent, decorators: [{
|
|
28
|
-
type: Directive
|
|
29
|
-
}] });
|
|
30
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLWZpZWxkLmFic3RyYWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jcmlzcHItZm9ybXMvc3JjL2xpYi9hYnN0cmFjdHMvYXV0b2NvbXBsZXRlLWZpZWxkLmFic3RyYWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBVSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLE9BQU8sRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFNUcsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFNUQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDL0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBSXRELE1BQU0sOEJBQThCLEdBQUcsa0JBQWtCLENBQTBCLG9CQUFvQixDQUFDLENBQUM7QUFHekcsa0VBQWtFO0FBQ2xFLE1BQU0sT0FBTyw2QkFDWCxTQUFRLDhCQUE4QjtJQUh4Qzs7UUFJRSxvR0FBb0c7UUFDcEcsNkJBQXdCLEdBQUcsSUFBSSxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7S0FrQmhEO0lBZkMsUUFBUTtRQUNOLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUVqQixJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxJQUFJLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDbEUsK0dBQStHO1FBQy9HLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLHdCQUF3QixDQUFDLFlBQVksQ0FBQyxJQUFJO1FBQzdELDREQUE0RDtRQUM1RCxTQUFTLENBQUMsRUFBRSxDQUFDLEVBQ2IsWUFBWSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsRUFDMUMsR0FBRyxDQUFDLENBQUMsVUFBa0IsRUFBRSxFQUFFLENBQUMsT0FBTyxVQUFVLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUNyRixvQkFBb0IsRUFBRSxFQUN0QixTQUFTLENBQUMsQ0FBQyxVQUFrQixFQUFFLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBQyxDQUFDLEVBQ25HLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FDZixDQUFDO0lBQ0osQ0FBQzs7MEhBcEJVLDZCQUE2Qjs4R0FBN0IsNkJBQTZCOzJGQUE3Qiw2QkFBNkI7a0JBRnpDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPbkluaXQsIERpcmVjdGl2ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIHNoYXJlUmVwbGF5LCBzdGFydFdpdGgsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgY3Jpc3ByQ29udHJvbE1peGluIH0gZnJvbSAnLi9jcmlzcHItY29udHJvbC5taXhpbic7XG5pbXBvcnQgdHlwZSB7IEF1dG9jb21wbGV0ZUZpZWxkQ29uZmlnLCBBdXRvY29tcGxldGVDaGlwbGlzdEZpZWxkQ29uZmlnLCBTZWxlY3RPcHRpb24gfSBmcm9tICcuLi9tb2RlbHMnO1xuaW1wb3J0IHsgQ3Jpc3ByRmllbGRDb21wb25lbnQgfSBmcm9tICcuL2NyaXNwci1maWVsZC5hYnN0cmFjdCc7XG5pbXBvcnQgeyBvYnNlcnZhYmxpZnlPcHRpb25zIH0gZnJvbSAnLi4vZm9ybS5oZWxwZXJzJztcblxudHlwZSBBdXRvY29tcGxldGVDb25maWdUeXBlcyA9IEF1dG9jb21wbGV0ZUZpZWxkQ29uZmlnIHwgQXV0b2NvbXBsZXRlQ2hpcGxpc3RGaWVsZENvbmZpZztcblxuY29uc3QgQWJzdHJhY3RBdXRvY29tcGxldGVGaWVsZE1peGluID0gY3Jpc3ByQ29udHJvbE1peGluPEF1dG9jb21wbGV0ZUNvbmZpZ1R5cGVzPihDcmlzcHJGaWVsZENvbXBvbmVudCk7XG5cbkBEaXJlY3RpdmUoKVxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtY2xhc3Mtc3VmZml4XG5leHBvcnQgY2xhc3MgQWJzdHJhY3RBdXRvY29tcGxldGVDb21wb25lbnQ8Qz5cbiAgZXh0ZW5kcyBBYnN0cmFjdEF1dG9jb21wbGV0ZUZpZWxkTWl4aW4gaW1wbGVtZW50cyBPbkluaXQge1xuICAvLyB3ZSBuZWVkIGEgc2VwYXJhdGUgY29udHJvbCBmb3IgdGhlIFVJIGJlY2F1c2Ugb2YgdGhlIHdheSB0aGUgbWF0ZXJpYWwgYXV0b2NvbXBsZXRlIGNoaXBsaXN0IHdvcmtzXG4gIGF1dG9jb21wbGV0ZUlucHV0Q29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgnJyk7XG4gIG9wdGlvbnMkOiBPYnNlcnZhYmxlPFNlbGVjdE9wdGlvbltdPlxuICBjb25maWc6IEF1dG9jb21wbGV0ZUNvbmZpZ1R5cGVzICYgQztcbiAgbmdPbkluaXQoKSB7XG4gICAgc3VwZXIubmdPbkluaXQoKTtcblxuICAgIHRoaXMuZ3JvdXAuYWRkQ29udHJvbCh0aGlzLmNvbmZpZy5jb250cm9sTmFtZSwgbmV3IEZvcm1Db250cm9sKCkpO1xuICAgIC8vIGZpbHRlciBvcHRpb25zIGJ5IHRoZSBzZWFyY2ggc3RyaW5nIHVzaW5nIGVpdGhlciB0aGUgZGVmYXVsdCBmaWx0ZXIgZnVuY3Rpb24gb3Igb25lIHBhc3NlZCBpbiB0aHJvdWdoIGNvbmZpZ1xuICAgIHRoaXMub3B0aW9ucyQgPSB0aGlzLmF1dG9jb21wbGV0ZUlucHV0Q29udHJvbC52YWx1ZUNoYW5nZXMucGlwZShcbiAgICAgIC8vIHRoaXMgaXMgbmVlZGVkIHRvIGhhdmUgdGhlIG9wdGlvbnMgcGFuZWwgdG8gb3BlbiBvbiBmb2N1c1xuICAgICAgc3RhcnRXaXRoKCcnKSxcbiAgICAgIGRlYm91bmNlVGltZSh0aGlzLmNvbmZpZy50eXBlRGVib3VuY2VUaW1lKSxcbiAgICAgIG1hcCgoc2VhcmNoVGV4dDogc3RyaW5nKSA9PiB0eXBlb2Ygc2VhcmNoVGV4dCA9PT0gJ3N0cmluZycgPyBzZWFyY2hUZXh0Py50cmltKCkgOiAnJyksXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgc3dpdGNoTWFwKChzZWFyY2hUZXh0OiBzdHJpbmcpID0+IG9ic2VydmFibGlmeU9wdGlvbnModGhpcy5jb25maWcub3B0aW9ucywgdGhpcy5ncm91cCwgc2VhcmNoVGV4dCkpLFxuICAgICAgc2hhcmVSZXBsYXkoMSksXG4gICAgKTtcbiAgfVxufVxuIl19
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { ControlType } from '../models/crispr-field.config';
|
|
2
|
-
export function crisprControlMixin(BaseClass) {
|
|
3
|
-
return class extends BaseClass {
|
|
4
|
-
set value(value) {
|
|
5
|
-
this.setControlValue(value);
|
|
6
|
-
this._value = value;
|
|
7
|
-
}
|
|
8
|
-
get value() {
|
|
9
|
-
return this._value;
|
|
10
|
-
}
|
|
11
|
-
ngOnInit() {
|
|
12
|
-
super.ngOnInit();
|
|
13
|
-
this.control = this.group.get(this.config.controlName);
|
|
14
|
-
this.setControlValue(this.value);
|
|
15
|
-
// setTimeouts are ugly but this seems to be the only way to get the computed field to compute initial values
|
|
16
|
-
setTimeout(() => {
|
|
17
|
-
this.control.updateValueAndValidity();
|
|
18
|
-
});
|
|
19
|
-
}
|
|
20
|
-
setControlValue(value) {
|
|
21
|
-
if (value && this.control && this.config.controlType !== ControlType.SUB_GROUP) {
|
|
22
|
-
this.control.setValue(value);
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
};
|
|
26
|
-
}
|
|
27
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3Jpc3ByLWNvbnRyb2wubWl4aW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NyaXNwci1mb3Jtcy9zcmMvbGliL2Fic3RyYWN0cy9jcmlzcHItY29udHJvbC5taXhpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQXFDLFdBQVcsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRy9GLE1BQU0sVUFBVSxrQkFBa0IsQ0FBZ0MsU0FBc0M7SUFDdEcsT0FBTyxLQUFNLFNBQVEsU0FBWTtRQU0vQixJQUFJLEtBQUssQ0FBQyxLQUFtQjtZQUMzQixJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzVCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLENBQUM7UUFFRCxJQUFJLEtBQUs7WUFDUCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDckIsQ0FBQztRQUVELFFBQVE7WUFDTixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ3ZELElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2pDLDZHQUE2RztZQUM3RyxVQUFVLENBQUMsR0FBRSxFQUFFO2dCQUNiLElBQUksQ0FBQyxPQUFPLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztZQUN4QyxDQUFDLENBQUMsQ0FBQTtRQUNKLENBQUM7UUFFRCxlQUFlLENBQUMsS0FBbUI7WUFDakMsSUFBRyxLQUFLLElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsS0FBSyxXQUFXLENBQUMsU0FBUyxFQUFFO2dCQUM3RSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQTthQUM3QjtRQUNILENBQUM7S0FDRixDQUFBO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZvcm1Hcm91cCwgQWJzdHJhY3RDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQ3Jpc3ByQ29udHJvbENvbmZpZywgQ29udHJvbFZhbHVlLCBDb250cm9sVHlwZSB9IGZyb20gJy4uL21vZGVscy9jcmlzcHItZmllbGQuY29uZmlnJztcbmltcG9ydCB7IENyaXNwckZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi9jcmlzcHItZmllbGQuYWJzdHJhY3QnO1xuXG5leHBvcnQgZnVuY3Rpb24gY3Jpc3ByQ29udHJvbE1peGluPEMgZXh0ZW5kcyBDcmlzcHJDb250cm9sQ29uZmlnPihCYXNlQ2xhc3M6IHR5cGVvZiBDcmlzcHJGaWVsZENvbXBvbmVudCkge1xuICByZXR1cm4gY2xhc3MgZXh0ZW5kcyBCYXNlQ2xhc3M8Qz4ge1xuICAgIGNvbmZpZzogQztcbiAgICBncm91cDogRm9ybUdyb3VwO1xuICAgIGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbDtcblxuICAgIF92YWx1ZTogQ29udHJvbFZhbHVlO1xuICAgIHNldCB2YWx1ZSh2YWx1ZTogQ29udHJvbFZhbHVlKSB7XG4gICAgICB0aGlzLnNldENvbnRyb2xWYWx1ZSh2YWx1ZSk7XG4gICAgICB0aGlzLl92YWx1ZSA9IHZhbHVlO1xuICAgIH1cblxuICAgIGdldCB2YWx1ZSgpIHtcbiAgICAgIHJldHVybiB0aGlzLl92YWx1ZTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICB0aGlzLmNvbnRyb2wgPSB0aGlzLmdyb3VwLmdldCh0aGlzLmNvbmZpZy5jb250cm9sTmFtZSk7XG4gICAgICB0aGlzLnNldENvbnRyb2xWYWx1ZSh0aGlzLnZhbHVlKTtcbiAgICAgIC8vIHNldFRpbWVvdXRzIGFyZSB1Z2x5IGJ1dCB0aGlzIHNlZW1zIHRvIGJlIHRoZSBvbmx5IHdheSB0byBnZXQgdGhlIGNvbXB1dGVkIGZpZWxkIHRvIGNvbXB1dGUgaW5pdGlhbCB2YWx1ZXNcbiAgICAgIHNldFRpbWVvdXQoKCk9PiB7XG4gICAgICAgIHRoaXMuY29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgICB9KVxuICAgIH1cblxuICAgIHNldENvbnRyb2xWYWx1ZSh2YWx1ZTogQ29udHJvbFZhbHVlKSB7XG4gICAgICBpZih2YWx1ZSAmJiB0aGlzLmNvbnRyb2wgJiYgdGhpcy5jb25maWcuY29udHJvbFR5cGUgIT09IENvbnRyb2xUeXBlLlNVQl9HUk9VUCkge1xuICAgICAgICB0aGlzLmNvbnRyb2wuc2V0VmFsdWUodmFsdWUpXG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { Directive } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
// eslint-disable-next-line @angular-eslint/directive-class-suffix
|
|
4
|
-
export class CrisprFieldComponent {
|
|
5
|
-
ngOnInit() {
|
|
6
|
-
this.applyDefaultConfig();
|
|
7
|
-
}
|
|
8
|
-
applyDefaultConfig() {
|
|
9
|
-
this.config = this.defaultConfig ? { ...this.defaultConfig, ...this.config } : this.config;
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
CrisprFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: CrisprFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
13
|
-
CrisprFieldComponent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.1", type: CrisprFieldComponent, ngImport: i0 });
|
|
14
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: CrisprFieldComponent, decorators: [{
|
|
15
|
-
type: Directive
|
|
16
|
-
}] });
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3Jpc3ByLWZpZWxkLmFic3RyYWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jcmlzcHItZm9ybXMvc3JjL2xpYi9hYnN0cmFjdHMvY3Jpc3ByLWZpZWxkLmFic3RyYWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFBVSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBR2xELGtFQUFrRTtBQUNsRSxNQUFNLE9BQWdCLG9CQUFvQjtJQUl4QyxRQUFRO1FBQ04sSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEVBQUMsR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQzNGLENBQUM7O2lIQVZtQixvQkFBb0I7cUdBQXBCLG9CQUFvQjsyRkFBcEIsb0JBQW9CO2tCQUZ6QyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBDcmlzcHJGaWVsZENvbmZpZyxcbn0gZnJvbSAnLi4vbW9kZWxzJztcbmltcG9ydCB7IE9uSW5pdCwgRGlyZWN0aXZlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBEaXJlY3RpdmUoKVxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtY2xhc3Mtc3VmZml4XG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQ3Jpc3ByRmllbGRDb21wb25lbnQ8QyBleHRlbmRzIENyaXNwckZpZWxkQ29uZmlnPiBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIGNvbmZpZzogQztcbiAgZGVmYXVsdENvbmZpZz86IFBhcnRpYWw8Qz5cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmFwcGx5RGVmYXVsdENvbmZpZygpO1xuICB9XG5cbiAgYXBwbHlEZWZhdWx0Q29uZmlnKCkge1xuICAgIHRoaXMuY29uZmlnID0gdGhpcy5kZWZhdWx0Q29uZmlnID8gey4uLnRoaXMuZGVmYXVsdENvbmZpZywgLi4udGhpcy5jb25maWd9IDogdGhpcy5jb25maWc7XG4gIH1cbn1cblxuXG4iXX0=
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
export * from './autocomplete-field.abstract';
|
|
2
|
-
export * from './crispr-control.mixin';
|
|
3
|
-
export * from './crispr-field.abstract';
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NyaXNwci1mb3Jtcy9zcmMvbGliL2Fic3RyYWN0cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyx5QkFBeUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYXV0b2NvbXBsZXRlLWZpZWxkLmFic3RyYWN0JztcclxuZXhwb3J0ICogZnJvbSAnLi9jcmlzcHItY29udHJvbC5taXhpbic7XHJcbmV4cG9ydCAqIGZyb20gJy4vY3Jpc3ByLWZpZWxkLmFic3RyYWN0JztcclxuIl19
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
import { NgModule } from '@angular/core';
|
|
2
|
-
import { CommonModule } from '@angular/common';
|
|
3
|
-
import { ReactiveFormsModule } from '@angular/forms';
|
|
4
|
-
// custom modules
|
|
5
|
-
import { MaterialModule } from './material/material.module';
|
|
6
|
-
import { FormValidationHandlerModule } from '@tft/form-validation-handler';
|
|
7
|
-
// components
|
|
8
|
-
import { CrisprFormComponent } from './form/form.component';
|
|
9
|
-
import { FormGroupListModule } from './form-group-list';
|
|
10
|
-
// directives
|
|
11
|
-
import { CrisprFieldModule } from './field.directive';
|
|
12
|
-
import { SubGroupModule } from './sub-group';
|
|
13
|
-
import { CrisprPipesModule } from './pipes/crispr-pipes.module';
|
|
14
|
-
import { FieldContainerModule } from './field-container';
|
|
15
|
-
import * as i0 from "@angular/core";
|
|
16
|
-
export class CrisprFormsModule {
|
|
17
|
-
}
|
|
18
|
-
CrisprFormsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: CrisprFormsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
19
|
-
CrisprFormsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: CrisprFormsModule, declarations: [CrisprFormComponent], imports: [CommonModule,
|
|
20
|
-
ReactiveFormsModule,
|
|
21
|
-
FormValidationHandlerModule,
|
|
22
|
-
FormGroupListModule,
|
|
23
|
-
FieldContainerModule,
|
|
24
|
-
CrisprFieldModule,
|
|
25
|
-
SubGroupModule,
|
|
26
|
-
MaterialModule,
|
|
27
|
-
CrisprPipesModule], exports: [CrisprFormComponent,
|
|
28
|
-
FieldContainerModule,
|
|
29
|
-
MaterialModule] });
|
|
30
|
-
CrisprFormsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: CrisprFormsModule, imports: [[
|
|
31
|
-
CommonModule,
|
|
32
|
-
ReactiveFormsModule,
|
|
33
|
-
FormValidationHandlerModule,
|
|
34
|
-
FormGroupListModule,
|
|
35
|
-
FieldContainerModule,
|
|
36
|
-
CrisprFieldModule,
|
|
37
|
-
SubGroupModule,
|
|
38
|
-
MaterialModule,
|
|
39
|
-
CrisprPipesModule,
|
|
40
|
-
], FieldContainerModule,
|
|
41
|
-
MaterialModule] });
|
|
42
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: CrisprFormsModule, decorators: [{
|
|
43
|
-
type: NgModule,
|
|
44
|
-
args: [{
|
|
45
|
-
imports: [
|
|
46
|
-
CommonModule,
|
|
47
|
-
ReactiveFormsModule,
|
|
48
|
-
FormValidationHandlerModule,
|
|
49
|
-
FormGroupListModule,
|
|
50
|
-
FieldContainerModule,
|
|
51
|
-
CrisprFieldModule,
|
|
52
|
-
SubGroupModule,
|
|
53
|
-
MaterialModule,
|
|
54
|
-
CrisprPipesModule,
|
|
55
|
-
],
|
|
56
|
-
declarations: [
|
|
57
|
-
CrisprFormComponent,
|
|
58
|
-
],
|
|
59
|
-
exports: [
|
|
60
|
-
CrisprFormComponent,
|
|
61
|
-
FieldContainerModule,
|
|
62
|
-
MaterialModule
|
|
63
|
-
]
|
|
64
|
-
}]
|
|
65
|
-
}] });
|
|
66
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3Jpc3ByLWZvcm1zLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY3Jpc3ByLWZvcm1zL3NyYy9saWIvY3Jpc3ByLWZvcm1zLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxpQkFBaUI7QUFDakIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFBO0FBRTNELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRTNFLGFBQWE7QUFDYixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN4RCxhQUFhO0FBQ2IsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM3QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7QUF1QnpELE1BQU0sT0FBTyxpQkFBaUI7OzhHQUFqQixpQkFBaUI7K0dBQWpCLGlCQUFpQixpQkFSMUIsbUJBQW1CLGFBWG5CLFlBQVk7UUFDWixtQkFBbUI7UUFDbkIsMkJBQTJCO1FBQzNCLG1CQUFtQjtRQUNuQixvQkFBb0I7UUFDcEIsaUJBQWlCO1FBQ2pCLGNBQWM7UUFDZCxjQUFjO1FBQ2QsaUJBQWlCLGFBTWpCLG1CQUFtQjtRQUNuQixvQkFBb0I7UUFDcEIsY0FBYzsrR0FHTCxpQkFBaUIsWUFwQm5CO1lBQ1AsWUFBWTtZQUNaLG1CQUFtQjtZQUNuQiwyQkFBMkI7WUFDM0IsbUJBQW1CO1lBQ25CLG9CQUFvQjtZQUNwQixpQkFBaUI7WUFDakIsY0FBYztZQUNkLGNBQWM7WUFDZCxpQkFBaUI7U0FDbEIsRUFNQyxvQkFBb0I7UUFDcEIsY0FBYzsyRkFHTCxpQkFBaUI7a0JBckI3QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLG1CQUFtQjt3QkFDbkIsMkJBQTJCO3dCQUMzQixtQkFBbUI7d0JBQ25CLG9CQUFvQjt3QkFDcEIsaUJBQWlCO3dCQUNqQixjQUFjO3dCQUNkLGNBQWM7d0JBQ2QsaUJBQWlCO3FCQUNsQjtvQkFDRCxZQUFZLEVBQUU7d0JBQ1osbUJBQW1CO3FCQUNwQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsbUJBQW1CO3dCQUNuQixvQkFBb0I7d0JBQ3BCLGNBQWM7cUJBQ2Y7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG4vLyBjdXN0b20gbW9kdWxlc1xuaW1wb3J0IHsgTWF0ZXJpYWxNb2R1bGUgfSBmcm9tICcuL21hdGVyaWFsL21hdGVyaWFsLm1vZHVsZSdcblxuaW1wb3J0IHsgRm9ybVZhbGlkYXRpb25IYW5kbGVyTW9kdWxlIH0gZnJvbSAnQHRmdC9mb3JtLXZhbGlkYXRpb24taGFuZGxlcic7XG5cbi8vIGNvbXBvbmVudHNcbmltcG9ydCB7IENyaXNwckZvcm1Db21wb25lbnQgfSBmcm9tICcuL2Zvcm0vZm9ybS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRm9ybUdyb3VwTGlzdE1vZHVsZSB9IGZyb20gJy4vZm9ybS1ncm91cC1saXN0Jztcbi8vIGRpcmVjdGl2ZXNcbmltcG9ydCB7IENyaXNwckZpZWxkTW9kdWxlIH0gZnJvbSAnLi9maWVsZC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgU3ViR3JvdXBNb2R1bGUgfSBmcm9tICcuL3N1Yi1ncm91cCc7XG5pbXBvcnQgeyBDcmlzcHJQaXBlc01vZHVsZSB9IGZyb20gJy4vcGlwZXMvY3Jpc3ByLXBpcGVzLm1vZHVsZSc7XG5pbXBvcnQgeyBGaWVsZENvbnRhaW5lck1vZHVsZSB9IGZyb20gJy4vZmllbGQtY29udGFpbmVyJztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIEZvcm1WYWxpZGF0aW9uSGFuZGxlck1vZHVsZSxcbiAgICBGb3JtR3JvdXBMaXN0TW9kdWxlLFxuICAgIEZpZWxkQ29udGFpbmVyTW9kdWxlLFxuICAgIENyaXNwckZpZWxkTW9kdWxlLFxuICAgIFN1Ykdyb3VwTW9kdWxlLFxuICAgIE1hdGVyaWFsTW9kdWxlLFxuICAgIENyaXNwclBpcGVzTW9kdWxlLFxuICBdLFxuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBDcmlzcHJGb3JtQ29tcG9uZW50LFxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgQ3Jpc3ByRm9ybUNvbXBvbmVudCxcbiAgICBGaWVsZENvbnRhaW5lck1vZHVsZSxcbiAgICBNYXRlcmlhbE1vZHVsZVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIENyaXNwckZvcm1zTW9kdWxlIHsgfVxuIl19
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { isControlConfig } from './form.helpers';
|
|
2
|
-
import { ControlType } from './models';
|
|
3
|
-
export const FIELD_COMPONENTS = {
|
|
4
|
-
groupList: import('./form-group-list').then(({ FormGroupListComponent }) => FormGroupListComponent),
|
|
5
|
-
subGroup: import('./sub-group').then(({ SubGroupComponent }) => SubGroupComponent),
|
|
6
|
-
button: import('./material').then(({ ButtonComponent }) => ButtonComponent),
|
|
7
|
-
input: import('./material').then(({ InputFieldComponent }) => InputFieldComponent),
|
|
8
|
-
select: import('./material').then(({ SelectFieldComponent }) => SelectFieldComponent),
|
|
9
|
-
radio: import('./material').then(({ RadioFieldComponent }) => RadioFieldComponent),
|
|
10
|
-
autocomplete: import('./material').then(({ AutocompleteFieldComponent }) => AutocompleteFieldComponent),
|
|
11
|
-
autocompleteChiplist: import('./material').then(({ AutocompleteChiplistFieldComponent }) => AutocompleteChiplistFieldComponent),
|
|
12
|
-
textarea: import('./material').then(({ TextareaFieldComponent }) => TextareaFieldComponent),
|
|
13
|
-
checkbox: import('./material').then(({ CheckboxFieldComponent }) => CheckboxFieldComponent),
|
|
14
|
-
slider: import('./material').then(({ SliderFieldComponent }) => SliderFieldComponent),
|
|
15
|
-
datepicker: import('./material').then(({ DatepickerFieldComponent }) => DatepickerFieldComponent),
|
|
16
|
-
fileUpload: import('./material').then(({ FileUploadFieldComponent }) => FileUploadFieldComponent),
|
|
17
|
-
imageUpload: import('./material').then(({ ImageUploadFieldComponent }) => ImageUploadFieldComponent),
|
|
18
|
-
heading: import('./material').then(({ HeadingComponent }) => HeadingComponent),
|
|
19
|
-
divider: import('./material').then(({ DividerComponent }) => DividerComponent),
|
|
20
|
-
unitConversion: import('./material').then(({ UnitConversionFieldComponent }) => UnitConversionFieldComponent)
|
|
21
|
-
};
|
|
22
|
-
export function isControlComponent(component) {
|
|
23
|
-
return component && isControlConfig(component.config) && 'value' in component; // || component.config.controlType === ControlType.BUTTON;
|
|
24
|
-
}
|
|
25
|
-
export function isControlOrButtonComponent(component) {
|
|
26
|
-
return isControlComponent(component) || component.config.controlType === ControlType.BUTTON;
|
|
27
|
-
}
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtY29tcG9uZW50LW1hcC5jb25zdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY3Jpc3ByLWZvcm1zL3NyYy9saWIvZmllbGQtY29tcG9uZW50LW1hcC5jb25zdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFPQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUV2QyxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRztJQUM5QixTQUFTLEVBQUUsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUMsSUFBSSxDQUFFLENBQUMsRUFBQyxzQkFBc0IsRUFBQyxFQUFFLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztJQUNsRyxRQUFRLEVBQUUsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsaUJBQWlCLEVBQUMsRUFBRSxFQUFFLENBQUUsaUJBQWlCLENBQUM7SUFDbEYsTUFBTSxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLGVBQWUsRUFBQyxFQUFFLEVBQUUsQ0FBRSxlQUFlLENBQUM7SUFDM0UsS0FBSyxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLG1CQUFtQixFQUFDLEVBQUUsRUFBRSxDQUFFLG1CQUFtQixDQUFDO0lBQ2xGLE1BQU0sRUFBRSxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxvQkFBb0IsRUFBQyxFQUFFLEVBQUUsQ0FBRSxvQkFBb0IsQ0FBQztJQUNyRixLQUFLLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsbUJBQW1CLEVBQUMsRUFBRSxFQUFFLENBQUUsbUJBQW1CLENBQUM7SUFDbEYsWUFBWSxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLDBCQUEwQixFQUFDLEVBQUUsRUFBRSxDQUFFLDBCQUEwQixDQUFDO0lBQ3ZHLG9CQUFvQixFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLGtDQUFrQyxFQUFDLEVBQUUsRUFBRSxDQUFFLGtDQUFrQyxDQUFDO0lBQy9ILFFBQVEsRUFBRSxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxzQkFBc0IsRUFBQyxFQUFFLEVBQUUsQ0FBRSxzQkFBc0IsQ0FBQztJQUMzRixRQUFRLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsc0JBQXNCLEVBQUMsRUFBRSxFQUFFLENBQUUsc0JBQXNCLENBQUM7SUFDM0YsTUFBTSxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLG9CQUFvQixFQUFDLEVBQUUsRUFBRSxDQUFFLG9CQUFvQixDQUFDO0lBQ3JGLFVBQVUsRUFBRSxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSx3QkFBd0IsRUFBQyxFQUFFLEVBQUUsQ0FBRSx3QkFBd0IsQ0FBQztJQUNqRyxVQUFVLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsd0JBQXdCLEVBQUMsRUFBRSxFQUFFLENBQUUsd0JBQXdCLENBQUM7SUFDakcsV0FBVyxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLHlCQUF5QixFQUFDLEVBQUUsRUFBRSxDQUFFLHlCQUF5QixDQUFDO0lBQ3BHLE9BQU8sRUFBRSxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxnQkFBZ0IsRUFBQyxFQUFFLEVBQUUsQ0FBRSxnQkFBZ0IsQ0FBQztJQUM5RSxPQUFPLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsZ0JBQWdCLEVBQUMsRUFBRSxFQUFFLENBQUUsZ0JBQWdCLENBQUM7SUFDOUUsY0FBYyxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLDRCQUE0QixFQUFDLEVBQUUsRUFBRSxDQUFFLDRCQUE0QixDQUFDO0NBQzlHLENBQUM7QUFFRixNQUFNLFVBQVUsa0JBQWtCLENBQUMsU0FBK0I7SUFDaEUsT0FBTyxTQUFTLElBQUksZUFBZSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsSUFBSSxPQUFPLElBQUksU0FBUyxDQUFBLENBQUMsMERBQTBEO0FBQzFJLENBQUM7QUFFRCxNQUFNLFVBQVUsMEJBQTBCLENBQUMsU0FBK0I7SUFDeEUsT0FBTyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsSUFBSSxTQUFTLENBQUMsTUFBTSxDQUFDLFdBQVcsS0FBSyxXQUFXLENBQUMsTUFBTSxDQUFDO0FBQzlGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG1heC1saW5lLWxlbmd0aFxuaW1wb3J0IHR5cGUgeyBJbnB1dEZpZWxkQ29tcG9uZW50LCBTZWxlY3RGaWVsZENvbXBvbmVudCwgQXV0b2NvbXBsZXRlRmllbGRDb21wb25lbnQsXG4gIEF1dG9jb21wbGV0ZUNoaXBsaXN0RmllbGRDb21wb25lbnQsIFRleHRhcmVhRmllbGRDb21wb25lbnQsIENoZWNrYm94RmllbGRDb21wb25lbnQsXG4gIFJhZGlvRmllbGRDb21wb25lbnQsIEZpbGVVcGxvYWRGaWVsZENvbXBvbmVudCwgU2xpZGVyRmllbGRDb21wb25lbnQsIERhdGVwaWNrZXJGaWVsZENvbXBvbmVudCxcbiAgSGVhZGluZ0NvbXBvbmVudCwgRGl2aWRlckNvbXBvbmVudCwgQnV0dG9uQ29tcG9uZW50LCBVbml0Q29udmVyc2lvbkZpZWxkQ29tcG9uZW50LCBJbWFnZVVwbG9hZEZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi9tYXRlcmlhbCc7XG5pbXBvcnQgdHlwZSB7IEZvcm1Hcm91cExpc3RDb21wb25lbnQgfSBmcm9tICcuL2Zvcm0tZ3JvdXAtbGlzdC9mb3JtLWdyb3VwLWxpc3QuY29tcG9uZW50JztcbmltcG9ydCB0eXBlIHsgU3ViR3JvdXBDb21wb25lbnQgfSBmcm9tICcuL3N1Yi1ncm91cC9zdWItZ3JvdXAuY29tcG9uZW50JztcbmltcG9ydCB7IGlzQ29udHJvbENvbmZpZyB9IGZyb20gJy4vZm9ybS5oZWxwZXJzJztcbmltcG9ydCB7IENvbnRyb2xUeXBlIH0gZnJvbSAnLi9tb2RlbHMnO1xuXG5leHBvcnQgY29uc3QgRklFTERfQ09NUE9ORU5UUyA9IHtcbiAgZ3JvdXBMaXN0OiBpbXBvcnQoJy4vZm9ybS1ncm91cC1saXN0JykudGhlbiAoKHtGb3JtR3JvdXBMaXN0Q29tcG9uZW50fSkgPT4gRm9ybUdyb3VwTGlzdENvbXBvbmVudCksXG4gIHN1Ykdyb3VwOiBpbXBvcnQoJy4vc3ViLWdyb3VwJykudGhlbigoeyBTdWJHcm91cENvbXBvbmVudH0pID0+ICBTdWJHcm91cENvbXBvbmVudCksXG4gIGJ1dHRvbjogaW1wb3J0KCcuL21hdGVyaWFsJykudGhlbigoeyBCdXR0b25Db21wb25lbnR9KSA9PiAgQnV0dG9uQ29tcG9uZW50KSxcbiAgaW5wdXQ6IGltcG9ydCgnLi9tYXRlcmlhbCcpLnRoZW4oKHsgSW5wdXRGaWVsZENvbXBvbmVudH0pID0+ICBJbnB1dEZpZWxkQ29tcG9uZW50KSxcbiAgc2VsZWN0OiBpbXBvcnQoJy4vbWF0ZXJpYWwnKS50aGVuKCh7IFNlbGVjdEZpZWxkQ29tcG9uZW50fSkgPT4gIFNlbGVjdEZpZWxkQ29tcG9uZW50KSxcbiAgcmFkaW86IGltcG9ydCgnLi9tYXRlcmlhbCcpLnRoZW4oKHsgUmFkaW9GaWVsZENvbXBvbmVudH0pID0+ICBSYWRpb0ZpZWxkQ29tcG9uZW50KSxcbiAgYXV0b2NvbXBsZXRlOiBpbXBvcnQoJy4vbWF0ZXJpYWwnKS50aGVuKCh7IEF1dG9jb21wbGV0ZUZpZWxkQ29tcG9uZW50fSkgPT4gIEF1dG9jb21wbGV0ZUZpZWxkQ29tcG9uZW50KSxcbiAgYXV0b2NvbXBsZXRlQ2hpcGxpc3Q6IGltcG9ydCgnLi9tYXRlcmlhbCcpLnRoZW4oKHsgQXV0b2NvbXBsZXRlQ2hpcGxpc3RGaWVsZENvbXBvbmVudH0pID0+ICBBdXRvY29tcGxldGVDaGlwbGlzdEZpZWxkQ29tcG9uZW50KSxcbiAgdGV4dGFyZWE6IGltcG9ydCgnLi9tYXRlcmlhbCcpLnRoZW4oKHsgVGV4dGFyZWFGaWVsZENvbXBvbmVudH0pID0+ICBUZXh0YXJlYUZpZWxkQ29tcG9uZW50KSxcbiAgY2hlY2tib3g6IGltcG9ydCgnLi9tYXRlcmlhbCcpLnRoZW4oKHsgQ2hlY2tib3hGaWVsZENvbXBvbmVudH0pID0+ICBDaGVja2JveEZpZWxkQ29tcG9uZW50KSxcbiAgc2xpZGVyOiBpbXBvcnQoJy4vbWF0ZXJpYWwnKS50aGVuKCh7IFNsaWRlckZpZWxkQ29tcG9uZW50fSkgPT4gIFNsaWRlckZpZWxkQ29tcG9uZW50KSxcbiAgZGF0ZXBpY2tlcjogaW1wb3J0KCcuL21hdGVyaWFsJykudGhlbigoeyBEYXRlcGlja2VyRmllbGRDb21wb25lbnR9KSA9PiAgRGF0ZXBpY2tlckZpZWxkQ29tcG9uZW50KSxcbiAgZmlsZVVwbG9hZDogaW1wb3J0KCcuL21hdGVyaWFsJykudGhlbigoeyBGaWxlVXBsb2FkRmllbGRDb21wb25lbnR9KSA9PiAgRmlsZVVwbG9hZEZpZWxkQ29tcG9uZW50KSxcbiAgaW1hZ2VVcGxvYWQ6IGltcG9ydCgnLi9tYXRlcmlhbCcpLnRoZW4oKHsgSW1hZ2VVcGxvYWRGaWVsZENvbXBvbmVudH0pID0+ICBJbWFnZVVwbG9hZEZpZWxkQ29tcG9uZW50KSxcbiAgaGVhZGluZzogaW1wb3J0KCcuL21hdGVyaWFsJykudGhlbigoeyBIZWFkaW5nQ29tcG9uZW50fSkgPT4gIEhlYWRpbmdDb21wb25lbnQpLFxuICBkaXZpZGVyOiBpbXBvcnQoJy4vbWF0ZXJpYWwnKS50aGVuKCh7IERpdmlkZXJDb21wb25lbnR9KSA9PiAgRGl2aWRlckNvbXBvbmVudCksXG4gIHVuaXRDb252ZXJzaW9uOiBpbXBvcnQoJy4vbWF0ZXJpYWwnKS50aGVuKCh7IFVuaXRDb252ZXJzaW9uRmllbGRDb21wb25lbnR9KSA9PiAgVW5pdENvbnZlcnNpb25GaWVsZENvbXBvbmVudClcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0NvbnRyb2xDb21wb25lbnQoY29tcG9uZW50OiBDcmlzcHJGaWVsZENvbXBvbmVudCk6IGNvbXBvbmVudCBpcyBDcmlzcHJDb250cm9sQ29tcG9uZW50IHtcbiAgcmV0dXJuIGNvbXBvbmVudCAmJiBpc0NvbnRyb2xDb25maWcoY29tcG9uZW50LmNvbmZpZykgJiYgJ3ZhbHVlJyBpbiBjb21wb25lbnQgLy8gfHwgY29tcG9uZW50LmNvbmZpZy5jb250cm9sVHlwZSA9PT0gQ29udHJvbFR5cGUuQlVUVE9OO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNDb250cm9sT3JCdXR0b25Db21wb25lbnQoY29tcG9uZW50OiBDcmlzcHJGaWVsZENvbXBvbmVudCk6IGNvbXBvbmVudCBpcyBDcmlzcHJDb250cm9sT3JCdXR0b24ge1xuICByZXR1cm4gaXNDb250cm9sQ29tcG9uZW50KGNvbXBvbmVudCkgfHwgY29tcG9uZW50LmNvbmZpZy5jb250cm9sVHlwZSA9PT0gQ29udHJvbFR5cGUuQlVUVE9OO1xufVxuXG5leHBvcnQgdHlwZSBDcmlzcHJDb250cm9sT3JCdXR0b24gPSBDcmlzcHJDb250cm9sQ29tcG9uZW50IHwgQnV0dG9uQ29tcG9uZW50O1xuXG5leHBvcnQgdHlwZSBDcmlzcHJDb250cm9sQ29tcG9uZW50ID0gSW5wdXRGaWVsZENvbXBvbmVudCB8XG4gIFNlbGVjdEZpZWxkQ29tcG9uZW50IHxcbiAgUmFkaW9GaWVsZENvbXBvbmVudCB8XG4gIFN1Ykdyb3VwQ29tcG9uZW50IHxcbiAgRm9ybUdyb3VwTGlzdENvbXBvbmVudCB8XG4gIEF1dG9jb21wbGV0ZUZpZWxkQ29tcG9uZW50IHxcbiAgQXV0b2NvbXBsZXRlQ2hpcGxpc3RGaWVsZENvbXBvbmVudCB8XG4gIFRleHRhcmVhRmllbGRDb21wb25lbnQgfFxuICBDaGVja2JveEZpZWxkQ29tcG9uZW50IHxcbiAgU2xpZGVyRmllbGRDb21wb25lbnQgfFxuICBGaWxlVXBsb2FkRmllbGRDb21wb25lbnQgfFxuICBJbWFnZVVwbG9hZEZpZWxkQ29tcG9uZW50fFxuICBEYXRlcGlja2VyRmllbGRDb21wb25lbnQgfFxuICBVbml0Q29udmVyc2lvbkZpZWxkQ29tcG9uZW50O1xuXG5leHBvcnQgdHlwZSBDb21wb25lbnRLZXlzID0ga2V5b2YgdHlwZW9mIEZJRUxEX0NPTVBPTkVOVFM7XG4vLyBleHBvcnQgdHlwZSBDcmlzcHJGaWVsZENvbXBvbmVudCA9IEZJRUxEX0NPTVBPTkVOVFNbQ29tcG9uZW50S2V5c107XG5cbmV4cG9ydCB0eXBlIENyaXNwckZpZWxkQ29tcG9uZW50ID0gQ3Jpc3ByQ29udHJvbENvbXBvbmVudCB8XG4gIEhlYWRpbmdDb21wb25lbnQgfFxuICBEaXZpZGVyQ29tcG9uZW50IHxcbiAgQnV0dG9uQ29tcG9uZW50O1xuXG4iXX0=
|