@odx/angular 1.0.0-rc.1 → 1.0.0-rc.3
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/LICENSE +1 -0
- package/README.md +43 -0
- package/animations/index.d.ts +3 -2
- package/animations/{config.d.ts → lib/config.d.ts} +0 -0
- package/animations/lib/expand.d.ts +2 -0
- package/animations/{fade.d.ts → lib/fade.d.ts} +0 -0
- package/animations/{slide.d.ts → lib/slide.d.ts} +0 -0
- package/cdk/checkbox-control/README.md +3 -0
- package/cdk/checkbox-control/index.d.ts +1 -0
- package/cdk/checkbox-control/lib/checkbox-control.directive.d.ts +16 -0
- package/cdk/custom-form-control/README.md +3 -0
- package/cdk/custom-form-control/index.d.ts +2 -0
- package/{lib/directives → cdk/custom-form-control/lib}/control.directive.d.ts +1 -3
- package/{lib/controls → cdk/custom-form-control/lib}/custom-form-control.d.ts +7 -8
- package/cdk/dynamic-view/lib/dynamic-view.directive.d.ts +1 -1
- package/cdk/dynamic-view/lib/facade/dynamic-content.d.ts +1 -1
- package/cdk/dynamic-view/lib/facade/dynamic-view-ref.d.ts +1 -1
- package/cdk/dynamic-view/lib/facade/index.d.ts +0 -1
- package/cdk/dynamic-view/lib/helpers/index.d.ts +0 -2
- package/cdk/dynamic-view/lib/models/dynamic-component-ref.d.ts +5 -3
- package/cdk/dynamic-view/lib/models/dynamic-template-ref.d.ts +1 -1
- package/cdk/expandable/README.md +3 -0
- package/cdk/expandable/index.d.ts +3 -0
- package/cdk/expandable/lib/directives/expandable-item.directive.d.ts +18 -0
- package/cdk/expandable/lib/directives/extandable-container.directive.d.ts +13 -0
- package/cdk/expandable/lib/directives/index.d.ts +2 -0
- package/cdk/expandable/lib/expandable.module.d.ts +8 -0
- package/cdk/expandable/lib/facade/expandable-container.d.ts +6 -0
- package/cdk/expandable/lib/facade/expandable-item.d.ts +7 -0
- package/cdk/expandable/lib/facade/index.d.ts +2 -0
- package/cdk/radio-group-control/README.md +3 -0
- package/cdk/radio-group-control/index.d.ts +3 -0
- package/cdk/radio-group-control/lib/radio-control.directive.d.ts +13 -0
- package/cdk/radio-group-control/lib/radio-group-control.directive.d.ts +10 -0
- package/cdk/radio-group-control/lib/radio-group-control.module.d.ts +9 -0
- package/components/accordion/README.md +3 -0
- package/components/accordion/index.d.ts +4 -0
- package/components/accordion/lib/accordion.component.d.ts +7 -0
- package/components/accordion/lib/accordion.module.d.ts +10 -0
- package/components/accordion/lib/components/accordion-item/accordion-item.component.d.ts +16 -0
- package/components/accordion/lib/components/index.d.ts +1 -0
- package/components/accordion/lib/directives/accordion-item-title.d.ts +5 -0
- package/components/accordion/lib/directives/index.d.ts +1 -0
- package/components/action-group/action-group.component.d.ts +1 -3
- package/components/area-header/area-header.component.d.ts +1 -3
- package/components/area-header/area-header.module.d.ts +2 -1
- package/components/avatar/lib/avatar.component.d.ts +1 -3
- package/components/badge/lib/badge.component.d.ts +3 -5
- package/components/badge/lib/badge.directive.d.ts +4 -5
- package/components/button/lib/button.component.d.ts +8 -16
- package/components/button/lib/models/button-size.d.ts +5 -0
- package/components/button/lib/models/index.d.ts +1 -0
- package/components/button-group/README.md +3 -0
- package/components/button-group/index.d.ts +1 -0
- package/components/button-group/lib/button-group.component.d.ts +15 -0
- package/components/checkbox/lib/checkbox.component.d.ts +5 -12
- package/components/form-field/README.md +3 -0
- package/components/form-field/index.d.ts +6 -0
- package/components/form-field/lib/components/form-field-info/form-field-info.component.d.ts +9 -0
- package/components/form-field/lib/components/form-group/form-group.component.d.ts +14 -0
- package/components/form-field/lib/components/index.d.ts +2 -0
- package/components/form-field/lib/directives/form-field-control.directive.d.ts +22 -0
- package/components/form-field/lib/directives/form-field-error.directive.d.ts +10 -0
- package/components/form-field/lib/directives/form-field-hint.directive.d.ts +8 -0
- package/components/form-field/lib/directives/form-field-label.directive.d.ts +6 -0
- package/components/form-field/lib/directives/form.directive.d.ts +9 -0
- package/components/form-field/lib/directives/index.d.ts +5 -0
- package/components/form-field/lib/form-field.component.d.ts +18 -0
- package/components/form-field/lib/form-field.config.d.ts +19 -0
- package/components/form-field/lib/form-field.module.d.ts +18 -0
- package/components/form-field/lib/form-field.service.d.ts +30 -0
- package/components/form-field/lib/models/form-field-error-resolver.d.ts +27 -0
- package/components/form-field/lib/models/form-field-error.d.ts +7 -0
- package/components/form-field/lib/models/index.d.ts +2 -0
- package/components/form-field/lib/services/form-field-error.service.d.ts +18 -0
- package/components/form-field/lib/services/index.d.ts +1 -0
- package/components/header/lib/header.component.d.ts +1 -3
- package/components/header/lib/header.module.d.ts +2 -1
- package/components/icon/lib/icon.component.d.ts +9 -5
- package/components/link/link.directive.d.ts +4 -6
- package/components/logo/logo.directive.d.ts +1 -3
- package/components/main-menu/lib/directives/main-menu-button.directive.d.ts +1 -4
- package/components/main-menu/lib/directives/main-menu-item.directive.d.ts +3 -4
- package/components/main-menu/lib/main-menu.component.d.ts +2 -4
- package/components/main-menu/lib/main-menu.module.d.ts +6 -6
- package/components/modal/README.md +3 -0
- package/components/modal/index.d.ts +9 -0
- package/components/modal/lib/components/index.d.ts +2 -0
- package/components/modal/lib/components/modal-footer/modal-footer.component.d.ts +6 -0
- package/components/modal/lib/components/modal-header/modal-header.component.d.ts +11 -0
- package/components/modal/lib/directives/index.d.ts +3 -0
- package/components/modal/lib/directives/modal-close.directive.d.ts +8 -0
- package/components/modal/lib/directives/modal-content.directive.d.ts +6 -0
- package/components/modal/lib/directives/modal-dismiss.directive.d.ts +7 -0
- package/components/modal/lib/helpers/index.d.ts +2 -0
- package/components/modal/lib/helpers/inject-modal-ref.d.ts +2 -0
- package/components/modal/lib/helpers/provide-modal-ref.d.ts +3 -0
- package/components/modal/lib/modal.component.d.ts +16 -0
- package/components/modal/lib/modal.config.d.ts +3 -0
- package/components/modal/lib/modal.directive.d.ts +14 -0
- package/components/modal/lib/modal.module.d.ts +21 -0
- package/components/modal/lib/modal.service.d.ts +20 -0
- package/components/modal/lib/models/index.d.ts +4 -0
- package/components/modal/lib/models/modal-options.d.ts +13 -0
- package/components/modal/lib/models/modal-ref.d.ts +16 -0
- package/components/modal/lib/models/modal-size.d.ts +6 -0
- package/components/modal/lib/models/modal-type.d.ts +8 -0
- package/components/modal/lib/services/index.d.ts +1 -0
- package/components/modal/lib/services/open-modal-manager.service.d.ts +15 -0
- package/components/radio-group/lib/components/radio-button/radio-button.component.d.ts +4 -11
- package/components/radio-group/lib/radio-group.component.d.ts +3 -5
- package/components/radio-group/lib/radio-group.module.d.ts +4 -4
- package/components/switch/README.md +3 -0
- package/components/switch/index.d.ts +1 -0
- package/components/switch/lib/switch.component.d.ts +6 -0
- package/components/toggle-button-group/README.md +3 -0
- package/components/toggle-button-group/index.d.ts +3 -0
- package/components/toggle-button-group/lib/components/index.d.ts +1 -0
- package/components/toggle-button-group/lib/components/toggle-button/toggle-button.component.d.ts +7 -0
- package/components/toggle-button-group/lib/toggle-button-group.component.d.ts +7 -0
- package/components/toggle-button-group/lib/toggle-button-group.module.d.ts +9 -0
- package/esm2020/animations/index.mjs +4 -3
- package/esm2020/animations/lib/config.mjs +8 -0
- package/esm2020/animations/lib/expand.mjs +12 -0
- package/esm2020/animations/lib/fade.mjs +12 -0
- package/esm2020/animations/lib/slide.mjs +34 -0
- package/esm2020/cdk/checkbox-control/index.mjs +2 -0
- package/esm2020/cdk/checkbox-control/lib/checkbox-control.directive.mjs +43 -0
- package/esm2020/cdk/checkbox-control/odx-angular-cdk-checkbox-control.mjs +5 -0
- package/esm2020/cdk/custom-form-control/index.mjs +3 -0
- package/esm2020/cdk/custom-form-control/lib/control.directive.mjs +19 -0
- package/esm2020/cdk/custom-form-control/lib/custom-form-control.mjs +121 -0
- package/esm2020/cdk/custom-form-control/odx-angular-cdk-custom-form-control.mjs +5 -0
- package/esm2020/cdk/dynamic-view/lib/dynamic-view.component.mjs +3 -3
- package/esm2020/cdk/dynamic-view/lib/dynamic-view.directive.mjs +11 -10
- package/esm2020/cdk/dynamic-view/lib/dynamic-view.service.mjs +5 -5
- package/esm2020/cdk/dynamic-view/lib/facade/dynamic-content.mjs +1 -1
- package/esm2020/cdk/dynamic-view/lib/facade/dynamic-view-ref.mjs +1 -1
- package/esm2020/cdk/dynamic-view/lib/facade/index.mjs +1 -2
- package/esm2020/cdk/dynamic-view/lib/helpers/index.mjs +1 -3
- package/esm2020/cdk/dynamic-view/lib/helpers/is-dynamic-text-content.mjs +2 -2
- package/esm2020/cdk/dynamic-view/lib/models/dynamic-component-ref.mjs +18 -8
- package/esm2020/cdk/dynamic-view/lib/models/dynamic-template-ref.mjs +6 -2
- package/esm2020/cdk/expandable/index.mjs +4 -0
- package/esm2020/cdk/expandable/lib/directives/expandable-item.directive.mjs +48 -0
- package/esm2020/cdk/expandable/lib/directives/extandable-container.directive.mjs +43 -0
- package/esm2020/cdk/expandable/lib/directives/index.mjs +3 -0
- package/esm2020/cdk/expandable/lib/expandable.module.mjs +17 -0
- package/esm2020/cdk/expandable/lib/facade/expandable-container.mjs +3 -0
- package/esm2020/cdk/expandable/lib/facade/expandable-item.mjs +3 -0
- package/esm2020/cdk/expandable/lib/facade/index.mjs +3 -0
- package/esm2020/cdk/expandable/odx-angular-cdk-expandable.mjs +5 -0
- package/esm2020/cdk/radio-group-control/index.mjs +4 -0
- package/esm2020/cdk/radio-group-control/lib/radio-control.directive.mjs +39 -0
- package/esm2020/cdk/radio-group-control/lib/radio-group-control.directive.mjs +43 -0
- package/esm2020/cdk/radio-group-control/lib/radio-group-control.module.mjs +19 -0
- package/esm2020/cdk/radio-group-control/odx-angular-cdk-radio-group-control.mjs +5 -0
- package/esm2020/components/accordion/index.mjs +5 -0
- package/esm2020/components/accordion/lib/accordion.component.mjs +24 -0
- package/esm2020/components/accordion/lib/accordion.module.mjs +20 -0
- package/esm2020/components/accordion/lib/components/accordion-item/accordion-item.component.mjs +54 -0
- package/esm2020/components/accordion/lib/components/index.mjs +2 -0
- package/esm2020/components/accordion/lib/directives/accordion-item-title.mjs +14 -0
- package/esm2020/components/accordion/lib/directives/index.mjs +2 -0
- package/esm2020/components/accordion/odx-angular-components-accordion.mjs +5 -0
- package/esm2020/components/action-group/action-group.component.mjs +15 -18
- package/esm2020/components/area-header/area-header.component.mjs +10 -10
- package/esm2020/components/area-header/area-header.module.mjs +9 -8
- package/esm2020/components/area-header/directives/area-header-content.directive.mjs +4 -5
- package/esm2020/components/area-header/directives/area-header-subtitle.directive.mjs +4 -5
- package/esm2020/components/avatar/lib/avatar.component.mjs +10 -10
- package/esm2020/components/badge/lib/badge.component.mjs +20 -22
- package/esm2020/components/badge/lib/badge.directive.mjs +11 -11
- package/esm2020/components/button/lib/button.component.mjs +26 -33
- package/esm2020/components/button/lib/models/button-size.mjs +5 -0
- package/esm2020/components/button/lib/models/index.mjs +2 -1
- package/esm2020/components/button-group/index.mjs +2 -0
- package/esm2020/components/button-group/lib/button-group.component.mjs +54 -0
- package/esm2020/components/button-group/odx-angular-components-button-group.mjs +5 -0
- package/esm2020/components/checkbox/lib/checkbox.component.mjs +16 -33
- package/esm2020/components/content-box/lib/content-box.component.mjs +3 -3
- package/esm2020/components/content-box/lib/content-box.module.mjs +4 -4
- package/esm2020/components/content-box/lib/directives/content-box-footer-directive.mjs +4 -5
- package/esm2020/components/content-box/lib/directives/content-box-header-directive.mjs +4 -5
- package/esm2020/components/form-field/index.mjs +7 -0
- package/esm2020/components/form-field/lib/components/form-field-info/form-field-info.component.mjs +24 -0
- package/esm2020/components/form-field/lib/components/form-group/form-group.component.mjs +36 -0
- package/esm2020/components/form-field/lib/components/index.mjs +3 -0
- package/esm2020/components/form-field/lib/directives/form-field-control.directive.mjs +68 -0
- package/esm2020/components/form-field/lib/directives/form-field-error.directive.mjs +25 -0
- package/esm2020/components/form-field/lib/directives/form-field-hint.directive.mjs +23 -0
- package/esm2020/components/form-field/lib/directives/form-field-label.directive.mjs +24 -0
- package/esm2020/components/form-field/lib/directives/form.directive.mjs +28 -0
- package/esm2020/components/form-field/lib/directives/index.mjs +6 -0
- package/esm2020/components/form-field/lib/form-field.component.mjs +47 -0
- package/esm2020/components/form-field/lib/form-field.config.mjs +7 -0
- package/esm2020/components/form-field/lib/form-field.module.mjs +49 -0
- package/esm2020/components/form-field/lib/form-field.service.mjs +53 -0
- package/esm2020/components/form-field/lib/models/form-field-error-resolver.mjs +2 -0
- package/esm2020/components/form-field/lib/models/form-field-error.mjs +2 -0
- package/esm2020/components/form-field/lib/models/index.mjs +3 -0
- package/esm2020/components/form-field/lib/services/form-field-error.service.mjs +56 -0
- package/esm2020/components/form-field/lib/services/index.mjs +2 -0
- package/esm2020/components/form-field/odx-angular-components-form-field.mjs +5 -0
- package/esm2020/components/header/lib/directives/header-avatar.directive.mjs +3 -3
- package/esm2020/components/header/lib/directives/header-title.directive.mjs +4 -5
- package/esm2020/components/header/lib/header.component.mjs +11 -11
- package/esm2020/components/header/lib/header.module.mjs +9 -9
- package/esm2020/components/icon/lib/icon.component.mjs +36 -12
- package/esm2020/components/link/link.directive.mjs +14 -18
- package/esm2020/components/logo/logo.directive.mjs +10 -11
- package/esm2020/components/main-menu/lib/directives/main-menu-button.directive.mjs +12 -13
- package/esm2020/components/main-menu/lib/directives/main-menu-item.directive.mjs +14 -14
- package/esm2020/components/main-menu/lib/main-menu.component.mjs +21 -22
- package/esm2020/components/main-menu/lib/main-menu.module.mjs +7 -7
- package/esm2020/components/main-menu/lib/main-menu.service.mjs +5 -5
- package/esm2020/components/modal/index.mjs +10 -0
- package/esm2020/components/modal/lib/components/index.mjs +3 -0
- package/esm2020/components/modal/lib/components/modal-footer/modal-footer.component.mjs +21 -0
- package/esm2020/components/modal/lib/components/modal-header/modal-header.component.mjs +38 -0
- package/esm2020/components/modal/lib/directives/index.mjs +4 -0
- package/esm2020/components/modal/lib/directives/modal-close.directive.mjs +29 -0
- package/esm2020/components/modal/lib/directives/modal-content.directive.mjs +24 -0
- package/esm2020/components/modal/lib/directives/modal-dismiss.directive.mjs +24 -0
- package/esm2020/components/modal/lib/helpers/index.mjs +3 -0
- package/esm2020/components/modal/lib/helpers/inject-modal-ref.mjs +6 -0
- package/esm2020/components/modal/lib/helpers/provide-modal-ref.mjs +5 -0
- package/esm2020/components/modal/lib/modal.component.mjs +63 -0
- package/esm2020/components/modal/lib/modal.config.mjs +8 -0
- package/esm2020/components/modal/lib/modal.directive.mjs +33 -0
- package/esm2020/components/modal/lib/modal.module.mjs +32 -0
- package/esm2020/components/modal/lib/modal.service.mjs +70 -0
- package/esm2020/components/modal/lib/models/index.mjs +5 -0
- package/esm2020/components/modal/lib/models/modal-options.mjs +2 -0
- package/esm2020/components/modal/lib/models/modal-ref.mjs +33 -0
- package/esm2020/components/modal/lib/models/modal-size.mjs +6 -0
- package/esm2020/components/modal/lib/models/modal-type.mjs +2 -0
- package/esm2020/components/modal/lib/services/index.mjs +2 -0
- package/esm2020/components/modal/lib/services/open-modal-manager.service.mjs +42 -0
- package/esm2020/components/modal/odx-angular-components-modal.mjs +5 -0
- package/esm2020/components/radio-group/lib/components/radio-button/radio-button.component.mjs +19 -38
- package/esm2020/components/radio-group/lib/radio-group.component.mjs +33 -16
- package/esm2020/components/radio-group/lib/radio-group.module.mjs +7 -7
- package/esm2020/components/switch/index.mjs +2 -0
- package/esm2020/components/switch/lib/switch.component.mjs +22 -0
- package/esm2020/components/switch/odx-angular-components-switch.mjs +5 -0
- package/esm2020/components/toggle-button-group/index.mjs +4 -0
- package/esm2020/components/toggle-button-group/lib/components/index.mjs +2 -0
- package/esm2020/components/toggle-button-group/lib/components/toggle-button/toggle-button.component.mjs +30 -0
- package/esm2020/components/toggle-button-group/lib/toggle-button-group.component.mjs +33 -0
- package/esm2020/components/toggle-button-group/lib/toggle-button-group.module.mjs +19 -0
- package/esm2020/components/toggle-button-group/odx-angular-components-toggle-button-group.mjs +5 -0
- package/esm2020/index.mjs +1 -2
- package/esm2020/internal/decorators/css-modifier.mjs +6 -5
- package/esm2020/internal/helpers/camel-to-kebab-case.mjs +12 -0
- package/esm2020/internal/helpers/index.mjs +2 -4
- package/esm2020/internal/index.mjs +1 -4
- package/esm2020/lib/controllers/controller.mjs +37 -0
- package/esm2020/lib/controllers/disabled.controller.mjs +25 -19
- package/esm2020/lib/controllers/index.mjs +3 -1
- package/esm2020/lib/controllers/readonly.controller.mjs +68 -0
- package/esm2020/lib/core.module.mjs +11 -10
- package/esm2020/lib/directives/click-outside.directive.mjs +58 -0
- package/esm2020/lib/directives/index.mjs +2 -3
- package/esm2020/lib/services/index.mjs +1 -2
- package/esm2020/lib/services/window-ref.mjs +6 -6
- package/esm2020/rxjs/index.mjs +2 -1
- package/esm2020/rxjs/lib/mark-for-check.mjs +5 -0
- package/esm2020/utils/index.mjs +2 -1
- package/esm2020/utils/lib/helpers/angular.mjs +30 -0
- package/esm2020/utils/lib/helpers/dom.mjs +22 -0
- package/esm2020/utils/lib/helpers/index.mjs +6 -1
- package/esm2020/utils/lib/helpers/ng-changes.mjs +1 -1
- package/esm2020/utils/lib/helpers/provide-module-config.mjs +21 -0
- package/esm2020/utils/lib/helpers/type-guards.mjs +29 -0
- package/esm2020/utils/lib/helpers/until-destroyed.mjs +13 -0
- package/esm2020/utils/lib/types/get-properties.mjs +2 -0
- package/esm2020/utils/lib/types/index.mjs +2 -0
- package/fesm2015/odx-angular-animations.mjs +11 -1
- package/fesm2015/odx-angular-animations.mjs.map +1 -1
- package/fesm2015/odx-angular-cdk-checkbox-control.mjs +50 -0
- package/fesm2015/odx-angular-cdk-checkbox-control.mjs.map +1 -0
- package/fesm2015/odx-angular-cdk-custom-form-control.mjs +150 -0
- package/fesm2015/odx-angular-cdk-custom-form-control.mjs.map +1 -0
- package/fesm2015/odx-angular-cdk-dynamic-view.mjs +48 -55
- package/fesm2015/odx-angular-cdk-dynamic-view.mjs.map +1 -1
- package/fesm2015/odx-angular-cdk-expandable.mjs +114 -0
- package/fesm2015/odx-angular-cdk-expandable.mjs.map +1 -0
- package/fesm2015/odx-angular-cdk-radio-group-control.mjs +99 -0
- package/fesm2015/odx-angular-cdk-radio-group-control.mjs.map +1 -0
- package/fesm2015/odx-angular-components-accordion.mjs +104 -0
- package/fesm2015/odx-angular-components-accordion.mjs.map +1 -0
- package/fesm2015/odx-angular-components-action-group.mjs +14 -17
- package/fesm2015/odx-angular-components-action-group.mjs.map +1 -1
- package/fesm2015/odx-angular-components-area-header.mjs +23 -24
- package/fesm2015/odx-angular-components-area-header.mjs.map +1 -1
- package/fesm2015/odx-angular-components-avatar.mjs +9 -9
- package/fesm2015/odx-angular-components-avatar.mjs.map +1 -1
- package/fesm2015/odx-angular-components-badge.mjs +27 -29
- package/fesm2015/odx-angular-components-badge.mjs.map +1 -1
- package/fesm2015/odx-angular-components-button-group.mjs +60 -0
- package/fesm2015/odx-angular-components-button-group.mjs.map +1 -0
- package/fesm2015/odx-angular-components-button.mjs +30 -36
- package/fesm2015/odx-angular-components-button.mjs.map +1 -1
- package/fesm2015/odx-angular-components-checkbox.mjs +15 -31
- package/fesm2015/odx-angular-components-checkbox.mjs.map +1 -1
- package/fesm2015/odx-angular-components-content-box.mjs +13 -15
- package/fesm2015/odx-angular-components-content-box.mjs.map +1 -1
- package/fesm2015/odx-angular-components-form-field.mjs +381 -0
- package/fesm2015/odx-angular-components-form-field.mjs.map +1 -0
- package/fesm2015/odx-angular-components-header.mjs +24 -25
- package/fesm2015/odx-angular-components-header.mjs.map +1 -1
- package/fesm2015/odx-angular-components-icon.mjs +35 -11
- package/fesm2015/odx-angular-components-icon.mjs.map +1 -1
- package/fesm2015/odx-angular-components-link.mjs +13 -17
- package/fesm2015/odx-angular-components-link.mjs.map +1 -1
- package/fesm2015/odx-angular-components-logo.mjs +9 -10
- package/fesm2015/odx-angular-components-logo.mjs.map +1 -1
- package/fesm2015/odx-angular-components-main-menu.mjs +48 -50
- package/fesm2015/odx-angular-components-main-menu.mjs.map +1 -1
- package/fesm2015/odx-angular-components-modal.mjs +380 -0
- package/fesm2015/odx-angular-components-modal.mjs.map +1 -0
- package/fesm2015/odx-angular-components-radio-group.mjs +64 -67
- package/fesm2015/odx-angular-components-radio-group.mjs.map +1 -1
- package/fesm2015/odx-angular-components-switch.mjs +28 -0
- package/fesm2015/odx-angular-components-switch.mjs.map +1 -0
- package/fesm2015/odx-angular-components-toggle-button-group.mjs +75 -0
- package/fesm2015/odx-angular-components-toggle-button-group.mjs.map +1 -0
- package/fesm2015/odx-angular-internal.mjs +39 -104
- package/fesm2015/odx-angular-internal.mjs.map +1 -1
- package/fesm2015/odx-angular-rxjs.mjs +6 -2
- package/fesm2015/odx-angular-rxjs.mjs.map +1 -1
- package/fesm2015/odx-angular-utils.mjs +110 -1
- package/fesm2015/odx-angular-utils.mjs.map +1 -1
- package/fesm2015/odx-angular.mjs +179 -212
- package/fesm2015/odx-angular.mjs.map +1 -1
- package/fesm2020/odx-angular-animations.mjs +11 -1
- package/fesm2020/odx-angular-animations.mjs.map +1 -1
- package/fesm2020/odx-angular-cdk-checkbox-control.mjs +50 -0
- package/fesm2020/odx-angular-cdk-checkbox-control.mjs.map +1 -0
- package/fesm2020/odx-angular-cdk-custom-form-control.mjs +144 -0
- package/fesm2020/odx-angular-cdk-custom-form-control.mjs.map +1 -0
- package/fesm2020/odx-angular-cdk-dynamic-view.mjs +41 -37
- package/fesm2020/odx-angular-cdk-dynamic-view.mjs.map +1 -1
- package/fesm2020/odx-angular-cdk-expandable.mjs +113 -0
- package/fesm2020/odx-angular-cdk-expandable.mjs.map +1 -0
- package/fesm2020/odx-angular-cdk-radio-group-control.mjs +99 -0
- package/fesm2020/odx-angular-cdk-radio-group-control.mjs.map +1 -0
- package/fesm2020/odx-angular-components-accordion.mjs +103 -0
- package/fesm2020/odx-angular-components-accordion.mjs.map +1 -0
- package/fesm2020/odx-angular-components-action-group.mjs +14 -17
- package/fesm2020/odx-angular-components-action-group.mjs.map +1 -1
- package/fesm2020/odx-angular-components-area-header.mjs +23 -24
- package/fesm2020/odx-angular-components-area-header.mjs.map +1 -1
- package/fesm2020/odx-angular-components-avatar.mjs +9 -9
- package/fesm2020/odx-angular-components-avatar.mjs.map +1 -1
- package/fesm2020/odx-angular-components-badge.mjs +27 -29
- package/fesm2020/odx-angular-components-badge.mjs.map +1 -1
- package/fesm2020/odx-angular-components-button-group.mjs +60 -0
- package/fesm2020/odx-angular-components-button-group.mjs.map +1 -0
- package/fesm2020/odx-angular-components-button.mjs +30 -32
- package/fesm2020/odx-angular-components-button.mjs.map +1 -1
- package/fesm2020/odx-angular-components-checkbox.mjs +15 -31
- package/fesm2020/odx-angular-components-checkbox.mjs.map +1 -1
- package/fesm2020/odx-angular-components-content-box.mjs +13 -15
- package/fesm2020/odx-angular-components-content-box.mjs.map +1 -1
- package/fesm2020/odx-angular-components-form-field.mjs +378 -0
- package/fesm2020/odx-angular-components-form-field.mjs.map +1 -0
- package/fesm2020/odx-angular-components-header.mjs +24 -25
- package/fesm2020/odx-angular-components-header.mjs.map +1 -1
- package/fesm2020/odx-angular-components-icon.mjs +35 -11
- package/fesm2020/odx-angular-components-icon.mjs.map +1 -1
- package/fesm2020/odx-angular-components-link.mjs +13 -17
- package/fesm2020/odx-angular-components-link.mjs.map +1 -1
- package/fesm2020/odx-angular-components-logo.mjs +9 -10
- package/fesm2020/odx-angular-components-logo.mjs.map +1 -1
- package/fesm2020/odx-angular-components-main-menu.mjs +48 -50
- package/fesm2020/odx-angular-components-main-menu.mjs.map +1 -1
- package/fesm2020/odx-angular-components-modal.mjs +376 -0
- package/fesm2020/odx-angular-components-modal.mjs.map +1 -0
- package/fesm2020/odx-angular-components-radio-group.mjs +64 -66
- package/fesm2020/odx-angular-components-radio-group.mjs.map +1 -1
- package/fesm2020/odx-angular-components-switch.mjs +28 -0
- package/fesm2020/odx-angular-components-switch.mjs.map +1 -0
- package/fesm2020/odx-angular-components-toggle-button-group.mjs +75 -0
- package/fesm2020/odx-angular-components-toggle-button-group.mjs.map +1 -0
- package/fesm2020/odx-angular-internal.mjs +38 -102
- package/fesm2020/odx-angular-internal.mjs.map +1 -1
- package/fesm2020/odx-angular-rxjs.mjs +6 -2
- package/fesm2020/odx-angular-rxjs.mjs.map +1 -1
- package/fesm2020/odx-angular-utils.mjs +109 -1
- package/fesm2020/odx-angular-utils.mjs.map +1 -1
- package/fesm2020/odx-angular.mjs +175 -206
- package/fesm2020/odx-angular.mjs.map +1 -1
- package/index.d.ts +0 -1
- package/internal/helpers/camel-to-kebab-case.d.ts +2 -0
- package/internal/helpers/index.d.ts +1 -3
- package/internal/index.d.ts +0 -3
- package/{internal/abstract → lib/controllers}/controller.d.ts +3 -2
- package/lib/controllers/disabled.controller.d.ts +5 -3
- package/lib/controllers/index.d.ts +2 -0
- package/lib/controllers/readonly.controller.d.ts +18 -0
- package/lib/core.module.d.ts +3 -3
- package/lib/directives/click-outside.directive.d.ts +18 -0
- package/lib/directives/index.d.ts +1 -2
- package/lib/services/index.d.ts +0 -1
- package/package.json +93 -10
- package/rxjs/index.d.ts +1 -0
- package/rxjs/lib/mark-for-check.d.ts +3 -0
- package/utils/index.d.ts +1 -0
- package/utils/lib/helpers/angular.d.ts +5 -0
- package/utils/lib/helpers/dom.d.ts +5 -0
- package/utils/lib/helpers/index.d.ts +5 -0
- package/utils/lib/helpers/ng-changes.d.ts +1 -1
- package/utils/lib/helpers/provide-module-config.d.ts +12 -0
- package/{internal → utils/lib}/helpers/type-guards.d.ts +2 -1
- package/utils/lib/helpers/until-destroyed.d.ts +2 -0
- package/{internal → utils/lib}/types/get-properties.d.ts +1 -1
- package/{internal → utils/lib}/types/index.d.ts +0 -0
- package/cdk/dynamic-view/lib/facade/animated-component.d.ts +0 -4
- package/cdk/dynamic-view/lib/helpers/is-animated-component.d.ts +0 -3
- package/cdk/dynamic-view/lib/helpers/wait-for-animations.d.ts +0 -3
- package/esm2020/animations/config.mjs +0 -8
- package/esm2020/animations/fade.mjs +0 -12
- package/esm2020/animations/slide.mjs +0 -34
- package/esm2020/cdk/dynamic-view/lib/facade/animated-component.mjs +0 -2
- package/esm2020/cdk/dynamic-view/lib/helpers/is-animated-component.mjs +0 -5
- package/esm2020/cdk/dynamic-view/lib/helpers/wait-for-animations.mjs +0 -9
- package/esm2020/internal/abstract/controller.mjs +0 -29
- package/esm2020/internal/abstract/index.mjs +0 -2
- package/esm2020/internal/helpers/dom.mjs +0 -7
- package/esm2020/internal/helpers/type-guards.mjs +0 -27
- package/esm2020/internal/helpers/watch.mjs +0 -8
- package/esm2020/internal/providers/index.mjs +0 -2
- package/esm2020/internal/providers/watched-controller-provider.mjs +0 -9
- package/esm2020/internal/types/get-properties.mjs +0 -2
- package/esm2020/internal/types/index.mjs +0 -2
- package/esm2020/lib/controls/custom-form-control.mjs +0 -133
- package/esm2020/lib/controls/index.mjs +0 -2
- package/esm2020/lib/directives/control.directive.mjs +0 -18
- package/esm2020/lib/directives/monitor-focus.directive.mjs +0 -34
- package/esm2020/lib/services/destroy.service.mjs +0 -18
- package/internal/abstract/index.d.ts +0 -1
- package/internal/helpers/dom.d.ts +0 -2
- package/internal/helpers/watch.d.ts +0 -4
- package/internal/providers/index.d.ts +0 -1
- package/internal/providers/watched-controller-provider.d.ts +0 -5
- package/lib/controls/index.d.ts +0 -1
- package/lib/directives/monitor-focus.directive.d.ts +0 -12
- package/lib/services/destroy.service.d.ts +0 -9
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { Directive, inject } from '@angular/core';
|
|
2
|
+
import { FormControl, NgControl } from '@angular/forms';
|
|
3
|
+
import { booleanToOptionalAttributeString, injectElement, reactiveAttributeBinding, untilDestroyed } from '@odx/angular/utils';
|
|
4
|
+
import { EMPTY, fromEvent, map, merge, NEVER, of, startWith, switchMap, tap } from 'rxjs';
|
|
5
|
+
import { injectFormFieldModuleConfig } from '../form-field.config';
|
|
6
|
+
import { FormFieldService } from '../form-field.service';
|
|
7
|
+
import { FormFieldErrorService } from '../services';
|
|
8
|
+
import { FormDirective } from './form.directive';
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
export class FormFieldControlDirective {
|
|
11
|
+
constructor() {
|
|
12
|
+
this.config = injectFormFieldModuleConfig();
|
|
13
|
+
this.element = injectElement();
|
|
14
|
+
this.ngControl = inject(NgControl, { optional: true, self: true });
|
|
15
|
+
this.form = inject(FormDirective, { optional: true, skipSelf: true });
|
|
16
|
+
this.onFormReset$ = this.form?.reset$ ?? EMPTY;
|
|
17
|
+
this.onFormSubmit$ = this.form?.submit$ ?? EMPTY;
|
|
18
|
+
this.formFieldService = inject(FormFieldService);
|
|
19
|
+
this.formFieldErrorService = inject(FormFieldErrorService);
|
|
20
|
+
this.isInput = this.config.blurPredicate(this.element.nativeElement);
|
|
21
|
+
this.takeUntilDestroyed = untilDestroyed();
|
|
22
|
+
reactiveAttributeBinding(this.formFieldService.controlId$, 'id');
|
|
23
|
+
reactiveAttributeBinding(this.formFieldService.controlHintId$, 'aria-describedby');
|
|
24
|
+
reactiveAttributeBinding(this.formFieldService.isReadonly$, 'readonly');
|
|
25
|
+
reactiveAttributeBinding(this.formFieldService.isDisabled$.pipe(map(booleanToOptionalAttributeString)), 'aria-disabled');
|
|
26
|
+
reactiveAttributeBinding(this.formFieldService.isReadonly$.pipe(map(booleanToOptionalAttributeString)), 'aria-readonly');
|
|
27
|
+
reactiveAttributeBinding(this.formFieldService.isRequired$.pipe(map(booleanToOptionalAttributeString)), 'aria-required');
|
|
28
|
+
reactiveAttributeBinding(this.formFieldErrorService.hasError$.pipe(map(booleanToOptionalAttributeString)), 'aria-invalid');
|
|
29
|
+
reactiveAttributeBinding(this.formFieldErrorService.hasError$.pipe(switchMap((hasError) => (hasError ? this.formFieldService.controlErrorId$ : of(null)))), 'aria-errormessage');
|
|
30
|
+
}
|
|
31
|
+
ngOnInit() {
|
|
32
|
+
const control = this.ngControl?.control;
|
|
33
|
+
this.formFieldService.registerControl(control ?? new FormControl(), this.element);
|
|
34
|
+
if (!control)
|
|
35
|
+
return;
|
|
36
|
+
const controlChanges$ = merge(this.registerOnBlur(control), this.registerOnChange(control), this.registerOnSubmit(control));
|
|
37
|
+
const changes$ = merge(this.onFormReset$.pipe(tap(() => this.formFieldErrorService?.setError(null))), controlChanges$.pipe(tap(() => this.formFieldErrorService?.setError(control.errors))));
|
|
38
|
+
changes$.pipe(this.takeUntilDestroyed()).subscribe();
|
|
39
|
+
}
|
|
40
|
+
registerOnBlur({ valueChanges }) {
|
|
41
|
+
if (this.config.updateOn.includes('blur') && this.isInput) {
|
|
42
|
+
return fromEvent(this.element.nativeElement, 'focusout').pipe(switchMap(() => valueChanges.pipe(startWith(true))));
|
|
43
|
+
}
|
|
44
|
+
return EMPTY;
|
|
45
|
+
}
|
|
46
|
+
ngOnDestroy() {
|
|
47
|
+
this.formFieldService.removeControl();
|
|
48
|
+
}
|
|
49
|
+
registerOnChange({ valueChanges }) {
|
|
50
|
+
if (this.config.updateOn.includes('change') && this.isInput) {
|
|
51
|
+
return valueChanges;
|
|
52
|
+
}
|
|
53
|
+
return EMPTY;
|
|
54
|
+
}
|
|
55
|
+
registerOnSubmit({ statusChanges, valueChanges }) {
|
|
56
|
+
return merge(this.onFormSubmit$, this.onFormReset$).pipe(switchMap(({ type }) => (type === 'submit' ? merge(statusChanges, valueChanges).pipe(startWith(true)) : NEVER)));
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
FormFieldControlDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: FormFieldControlDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
60
|
+
FormFieldControlDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.8", type: FormFieldControlDirective, isStandalone: true, selector: "[odxFormFieldControl]", ngImport: i0 });
|
|
61
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: FormFieldControlDirective, decorators: [{
|
|
62
|
+
type: Directive,
|
|
63
|
+
args: [{
|
|
64
|
+
standalone: true,
|
|
65
|
+
selector: '[odxFormFieldControl]',
|
|
66
|
+
}]
|
|
67
|
+
}], ctorParameters: function () { return []; } });
|
|
68
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC1jb250cm9sLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jb21wb25lbnRzL2Zvcm0tZmllbGQvc3JjL2xpYi9kaXJlY3RpdmVzL2Zvcm0tZmllbGQtY29udHJvbC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQ3JFLE9BQU8sRUFBbUIsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxhQUFhLEVBQUUsd0JBQXdCLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDL0gsT0FBTyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQWMsRUFBRSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RHLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNwRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7O0FBTWpELE1BQU0sT0FBTyx5QkFBeUI7SUFZcEM7UUFYaUIsV0FBTSxHQUFHLDJCQUEyQixFQUFFLENBQUM7UUFDdkMsWUFBTyxHQUFHLGFBQWEsRUFBRSxDQUFDO1FBQzFCLGNBQVMsR0FBRyxNQUFNLENBQUMsU0FBUyxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUM5RCxTQUFJLEdBQUcsTUFB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LENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQ2hILENBQUM7SUFDSixDQUFDOztzSEE3RFUseUJBQXlCOzBHQUF6Qix5QkFBeUI7MkZBQXpCLHlCQUF5QjtrQkFKckMsU0FBUzttQkFBQztvQkFDVCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLHVCQUF1QjtpQkFDbEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIGluamVjdCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgRm9ybUNvbnRyb2wsIE5nQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGJvb2xlYW5Ub09wdGlvbmFsQXR0cmlidXRlU3RyaW5nLCBpbmplY3RFbGVtZW50LCByZWFjdGl2ZUF0dHJpYnV0ZUJpbmRpbmcsIHVudGlsRGVzdHJveWVkIH0gZnJvbSAnQG9keC9hbmd1bGFyL3V0aWxzJztcbmltcG9ydCB7IEVNUFRZLCBmcm9tRXZlbnQsIG1hcCwgbWVyZ2UsIE5FVkVSLCBPYnNlcnZhYmxlLCBvZiwgc3RhcnRXaXRoLCBzd2l0Y2hNYXAsIHRhcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgaW5qZWN0Rm9ybUZpZWxkTW9kdWxlQ29uZmlnIH0gZnJvbSAnLi4vZm9ybS1maWVsZC5jb25maWcnO1xuaW1wb3J0IHsgRm9ybUZpZWxkU2VydmljZSB9IGZyb20gJy4uL2Zvcm0tZmllbGQuc2VydmljZSc7XG5pbXBvcnQgeyBGb3JtRmllbGRFcnJvclNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBGb3JtRGlyZWN0aXZlIH0gZnJvbSAnLi9mb3JtLmRpcmVjdGl2ZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ1tvZHhGb3JtRmllbGRDb250cm9sXScsXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1GaWVsZENvbnRyb2xEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgY29uZmlnID0gaW5qZWN0Rm9ybUZpZWxkTW9kdWxlQ29uZmlnKCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudCA9IGluamVjdEVsZW1lbnQoKTtcbiAgcHJpdmF0ZSByZWFkb25seSBuZ0NvbnRyb2wgPSBpbmplY3QoTmdDb250cm9sLCB7IG9wdGlvbmFsOiB0cnVlLCBzZWxmOiB0cnVlIH0pO1xuICBwcml2YXRlIHJlYWRvbmx5IGZvcm0gPSBpbmplY3QoRm9ybURpcmVjdGl2ZSwgeyBvcHRpb25hbDogdHJ1ZSwgc2tpcFNlbGY6IHRydWUgfSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgb25Gb3JtUmVzZXQkID0gdGhpcy5mb3JtPy5yZXNldCQgPz8gRU1QVFk7XG4gIHByaXZhdGUgcmVhZG9ubHkgb25Gb3JtU3VibWl0JCA9IHRoaXMuZm9ybT8uc3VibWl0JCA/PyBFTVBUWTtcbiAgcHJpdmF0ZSByZWFkb25seSBmb3JtRmllbGRTZXJ2aWNlID0gaW5qZWN0KEZvcm1GaWVsZFNlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IGZvcm1GaWVsZEVycm9yU2VydmljZSA9IGluamVjdChGb3JtRmllbGRFcnJvclNlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IGlzSW5wdXQgPSB0aGlzLmNvbmZpZy5ibHVyUHJlZGljYXRlKHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50KTtcbiAgcHJpdmF0ZSByZWFkb25seSB0YWtlVW50aWxEZXN0cm95ZWQgPSB1bnRpbERlc3Ryb3llZCgpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHJlYWN0aXZlQXR0cmlidXRlQmluZGluZyh0aGlzLmZvcm1GaWVsZFNlcnZpY2UuY29udHJvbElkJCwgJ2lkJyk7XG4gICAgcmVhY3RpdmVBdHRyaWJ1dGVCaW5kaW5nKHRoaXMuZm9ybUZpZWxkU2VydmljZS5jb250cm9sSGludElkJCwgJ2FyaWEtZGVzY3JpYmVkYnknKTtcbiAgICByZWFjdGl2ZUF0dHJpYnV0ZUJpbmRpbmcodGhpcy5mb3JtRmllbGRTZXJ2aWNlLmlzUmVhZG9ubHkkLCAncmVhZG9ubHknKTtcbiAgICByZWFjdGl2ZUF0dHJpYnV0ZUJpbmRpbmcodGhpcy5mb3JtRmllbGRTZXJ2aWNlLmlzRGlzYWJsZWQkLnBpcGUobWFwKGJvb2xlYW5Ub09wdGlvbmFsQXR0cmlidXRlU3RyaW5nKSksICdhcmlhLWRpc2FibGVkJyk7XG4gICAgcmVhY3RpdmVBdHRyaWJ1dGVCaW5kaW5nKHRoaXMuZm9ybUZpZWxkU2VydmljZS5pc1JlYWRvbmx5JC5waXBlKG1hcChib29sZWFuVG9PcHRpb25hbEF0dHJpYnV0ZVN0cmluZykpLCAnYXJpYS1yZWFkb25seScpO1xuICAgIHJlYWN0aXZlQXR0cmlidXRlQmluZGluZyh0aGlzLmZvcm1GaWVsZFNlcnZpY2UuaXNSZXF1aXJlZCQucGlwZShtYXAoYm9vbGVhblRvT3B0aW9uYWxBdHRyaWJ1dGVTdHJpbmcpKSwgJ2FyaWEtcmVxdWlyZWQnKTtcbiAgICByZWFjdGl2ZUF0dHJpYnV0ZUJpbmRpbmcodGhpcy5mb3JtRmllbGRFcnJvclNlcnZpY2UuaGFzRXJyb3IkLnBpcGUobWFwKGJvb2xlYW5Ub09wdGlvbmFsQXR0cmlidXRlU3RyaW5nKSksICdhcmlhLWludmFsaWQnKTtcbiAgICByZWFjdGl2ZUF0dHJpYnV0ZUJpbmRpbmcoXG4gICAgICB0aGlzLmZvcm1GaWVsZEVycm9yU2VydmljZS5oYXNFcnJvciQucGlwZShzd2l0Y2hNYXAoKGhhc0Vycm9yKSA9PiAoaGFzRXJyb3IgPyB0aGlzLmZvcm1GaWVsZFNlcnZpY2UuY29udHJvbEVycm9ySWQkIDogb2YobnVsbCkpKSksXG4gICAgICAnYXJpYS1lcnJvcm1lc3NhZ2UnXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICBjb25zdCBjb250cm9sID0gdGhpcy5uZ0NvbnRyb2w/LmNvbnRyb2w7XG4gICAgdGhpcy5mb3JtRmllbGRTZXJ2aWNlLnJlZ2lzdGVyQ29udHJvbChjb250cm9sID8/IG5ldyBGb3JtQ29udHJvbCgpLCB0aGlzLmVsZW1lbnQpO1xuICAgIGlmICghY29udHJvbCkgcmV0dXJuO1xuXG4gICAgY29uc3QgY29udHJvbENoYW5nZXMkID0gbWVyZ2UodGhpcy5yZWdpc3Rlck9uQmx1cihjb250cm9sKSwgdGhpcy5yZWdpc3Rlck9uQ2hhbmdlKGNvbnRyb2wpLCB0aGlzLnJlZ2lzdGVyT25TdWJtaXQoY29udHJvbCkpO1xuICAgIGNvbnN0IGNoYW5nZXMkID0gbWVyZ2UoXG4gICAgICB0aGlzLm9uRm9ybVJlc2V0JC5waXBlKHRhcCgoKSA9PiB0aGlzLmZvcm1GaWVsZEVycm9yU2VydmljZT8uc2V0RXJyb3IobnVsbCkpKSxcbiAgICAgIGNvbnRyb2xDaGFuZ2VzJC5waXBlKHRhcCgoKSA9PiB0aGlzLmZvcm1GaWVsZEVycm9yU2VydmljZT8uc2V0RXJyb3IoY29udHJvbC5lcnJvcnMpKSlcbiAgICApO1xuICAgIGNoYW5nZXMkLnBpcGUodGhpcy50YWtlVW50aWxEZXN0cm95ZWQoKSkuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwcml2YXRlIHJlZ2lzdGVyT25CbHVyKHsgdmFsdWVDaGFuZ2VzIH06IEFic3RyYWN0Q29udHJvbCk6IE9ic2VydmFibGU8dW5rbm93bj4ge1xuICAgIGlmICh0aGlzLmNvbmZpZy51cGRhdGVPbi5pbmNsdWRlcygnYmx1cicpICYmIHRoaXMuaXNJbnB1dCkge1xuICAgICAgcmV0dXJuIGZyb21FdmVudCh0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCwgJ2ZvY3Vzb3V0JykucGlwZShzd2l0Y2hNYXAoKCkgPT4gdmFsdWVDaGFuZ2VzLnBpcGUoc3RhcnRXaXRoKHRydWUpKSkpO1xuICAgIH1cbiAgICByZXR1cm4gRU1QVFk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5mb3JtRmllbGRTZXJ2aWNlLnJlbW92ZUNvbnRyb2woKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVnaXN0ZXJPbkNoYW5nZSh7IHZhbHVlQ2hhbmdlcyB9OiBBYnN0cmFjdENvbnRyb2wpOiBPYnNlcnZhYmxlPHVua25vd24+IHtcbiAgICBpZiAodGhpcy5jb25maWcudXBkYXRlT24uaW5jbHVkZXMoJ2NoYW5nZScpICYmIHRoaXMuaXNJbnB1dCkge1xuICAgICAgcmV0dXJuIHZhbHVlQ2hhbmdlcztcbiAgICB9XG4gICAgcmV0dXJuIEVNUFRZO1xuICB9XG5cbiAgcHJpdmF0ZSByZWdpc3Rlck9uU3VibWl0KHsgc3RhdHVzQ2hhbmdlcywgdmFsdWVDaGFuZ2VzIH06IEFic3RyYWN0Q29udHJvbCk6IE9ic2VydmFibGU8dW5rbm93bj4ge1xuICAgIHJldHVybiBtZXJnZSh0aGlzLm9uRm9ybVN1Ym1pdCQsIHRoaXMub25Gb3JtUmVzZXQkKS5waXBlKFxuICAgICAgc3dpdGNoTWFwKCh7IHR5cGUgfSkgPT4gKHR5cGUgPT09ICdzdWJtaXQnID8gbWVyZ2Uoc3RhdHVzQ2hhbmdlcywgdmFsdWVDaGFuZ2VzKS5waXBlKHN0YXJ0V2l0aCh0cnVlKSkgOiBORVZFUikpXG4gICAgKTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { Directive, inject, Input, TemplateRef } from '@angular/core';
|
|
2
|
+
import { FormFieldErrorService } from '../services';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class FormFieldErrorDirective {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.formFieldErrorService = inject(FormFieldErrorService, { skipSelf: true });
|
|
7
|
+
this.template = inject(TemplateRef, { self: true });
|
|
8
|
+
}
|
|
9
|
+
ngOnInit() {
|
|
10
|
+
this.formFieldErrorService.registerCustomError(this.key, this.template);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
FormFieldErrorDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: FormFieldErrorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
14
|
+
FormFieldErrorDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.8", type: FormFieldErrorDirective, isStandalone: true, selector: "[odxFormFieldError]", inputs: { key: ["odxFormFieldError", "key"] }, ngImport: i0 });
|
|
15
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: FormFieldErrorDirective, decorators: [{
|
|
16
|
+
type: Directive,
|
|
17
|
+
args: [{
|
|
18
|
+
standalone: true,
|
|
19
|
+
selector: '[odxFormFieldError]',
|
|
20
|
+
}]
|
|
21
|
+
}], propDecorators: { key: [{
|
|
22
|
+
type: Input,
|
|
23
|
+
args: ['odxFormFieldError']
|
|
24
|
+
}] } });
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC1lcnJvci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9mb3JtLWZpZWxkL3NyYy9saWIvZGlyZWN0aXZlcy9mb3JtLWZpZWxkLWVycm9yLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQVUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7QUFNcEQsTUFBTSxPQUFPLHVCQUF1QjtJQUpwQztRQUttQiwwQkFBcUIsR0FBRyxNQUFNLENBQUMscUJBQXFCLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUMxRSxhQUFRLEdBQUcsTUFBTSxDQUFDLFdBQVcsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0tBUWpFO0lBSFEsUUFBUTtRQUNiLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMxRSxDQUFDOztvSEFUVSx1QkFBdUI7d0dBQXZCLHVCQUF1QjsyRkFBdkIsdUJBQXVCO2tCQUpuQyxTQUFTO21CQUFDO29CQUNULFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUscUJBQXFCO2lCQUNoQzs4QkFNUSxHQUFHO3NCQURULEtBQUs7dUJBQUMsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBpbmplY3QsIElucHV0LCBPbkluaXQsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtRmllbGRFcnJvclNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcyc7XG5cbkBEaXJlY3RpdmUoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ1tvZHhGb3JtRmllbGRFcnJvcl0nLFxufSlcbmV4cG9ydCBjbGFzcyBGb3JtRmllbGRFcnJvckRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgZm9ybUZpZWxkRXJyb3JTZXJ2aWNlID0gaW5qZWN0KEZvcm1GaWVsZEVycm9yU2VydmljZSwgeyBza2lwU2VsZjogdHJ1ZSB9KTtcbiAgcHJpdmF0ZSByZWFkb25seSB0ZW1wbGF0ZSA9IGluamVjdChUZW1wbGF0ZVJlZiwgeyBzZWxmOiB0cnVlIH0pO1xuXG4gIEBJbnB1dCgnb2R4Rm9ybUZpZWxkRXJyb3InKVxuICBwdWJsaWMga2V5Pzogc3RyaW5nO1xuXG4gIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmZvcm1GaWVsZEVycm9yU2VydmljZS5yZWdpc3RlckN1c3RvbUVycm9yKHRoaXMua2V5LCB0aGlzLnRlbXBsYXRlKTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { Directive, inject } from '@angular/core';
|
|
2
|
+
import { reactiveAttributeBinding } from '@odx/angular/utils';
|
|
3
|
+
import { FormFieldService } from '../form-field.service';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class FormFieldHintDirective {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.formFieldService = inject(FormFieldService, { skipSelf: true });
|
|
8
|
+
reactiveAttributeBinding(inject(FormFieldService).controlHintId$, 'id');
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
FormFieldHintDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: FormFieldHintDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
12
|
+
FormFieldHintDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.8", type: FormFieldHintDirective, isStandalone: true, selector: "odx-form-field-hint", host: { properties: { "class.odx-form-field__hint": "true" } }, ngImport: i0 });
|
|
13
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: FormFieldHintDirective, decorators: [{
|
|
14
|
+
type: Directive,
|
|
15
|
+
args: [{
|
|
16
|
+
standalone: true,
|
|
17
|
+
selector: 'odx-form-field-hint',
|
|
18
|
+
host: {
|
|
19
|
+
'[class.odx-form-field__hint]': 'true',
|
|
20
|
+
},
|
|
21
|
+
}]
|
|
22
|
+
}], ctorParameters: function () { return []; } });
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC1oaW50LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jb21wb25lbnRzL2Zvcm0tZmllbGQvc3JjL2xpYi9kaXJlY3RpdmVzL2Zvcm0tZmllbGQtaGludC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDOUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7O0FBU3pELE1BQU0sT0FBTyxzQkFBc0I7SUFHakM7UUFGbUIscUJBQWdCLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFHakYsd0JBQXdCLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzFFLENBQUM7O21IQUxVLHNCQUFzQjt1R0FBdEIsc0JBQXNCOzJGQUF0QixzQkFBc0I7a0JBUGxDLFNBQVM7bUJBQUM7b0JBQ1QsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSxxQkFBcUI7b0JBQy9CLElBQUksRUFBRTt3QkFDSiw4QkFBOEIsRUFBRSxNQUFNO3FCQUN2QztpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyByZWFjdGl2ZUF0dHJpYnV0ZUJpbmRpbmcgfSBmcm9tICdAb2R4L2FuZ3VsYXIvdXRpbHMnO1xuaW1wb3J0IHsgRm9ybUZpZWxkU2VydmljZSB9IGZyb20gJy4uL2Zvcm0tZmllbGQuc2VydmljZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ29keC1mb3JtLWZpZWxkLWhpbnQnLFxuICBob3N0OiB7XG4gICAgJ1tjbGFzcy5vZHgtZm9ybS1maWVsZF9faGludF0nOiAndHJ1ZScsXG4gIH0sXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1GaWVsZEhpbnREaXJlY3RpdmUge1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZm9ybUZpZWxkU2VydmljZSA9IGluamVjdChGb3JtRmllbGRTZXJ2aWNlLCB7IHNraXBTZWxmOiB0cnVlIH0pO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHJlYWN0aXZlQXR0cmlidXRlQmluZGluZyhpbmplY3QoRm9ybUZpZWxkU2VydmljZSkuY29udHJvbEhpbnRJZCQsICdpZCcpO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { Directive } from '@angular/core';
|
|
3
|
+
import { CSSComponent } from '@odx/angular/internal';
|
|
4
|
+
import { injectElement } from '@odx/angular/utils';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
let FormFieldLabelDirective = class FormFieldLabelDirective {
|
|
7
|
+
constructor() {
|
|
8
|
+
this.element = injectElement();
|
|
9
|
+
}
|
|
10
|
+
};
|
|
11
|
+
FormFieldLabelDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: FormFieldLabelDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
12
|
+
FormFieldLabelDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.8", type: FormFieldLabelDirective, isStandalone: true, selector: "odx-form-field-label", ngImport: i0 });
|
|
13
|
+
FormFieldLabelDirective = __decorate([
|
|
14
|
+
CSSComponent('form-field-label')
|
|
15
|
+
], FormFieldLabelDirective);
|
|
16
|
+
export { FormFieldLabelDirective };
|
|
17
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: FormFieldLabelDirective, decorators: [{
|
|
18
|
+
type: Directive,
|
|
19
|
+
args: [{
|
|
20
|
+
standalone: true,
|
|
21
|
+
selector: 'odx-form-field-label',
|
|
22
|
+
}]
|
|
23
|
+
}] });
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC1sYWJlbC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9mb3JtLWZpZWxkL3NyYy9saWIvZGlyZWN0aXZlcy9mb3JtLWZpZWxkLWxhYmVsLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9CQUFvQixDQUFDOztBQU81QyxJQUFNLHVCQUF1QixHQUE3QixNQUFNLHVCQUF1QjtJQUE3QjtRQUNXLFlBQU8sR0FBRyxhQUFhLEVBQUUsQ0FBQztLQUMzQzs7b0hBRlksdUJBQXVCO3dHQUF2Qix1QkFBdUI7QUFBdkIsdUJBQXVCO0lBTG5DLFlBQVksQ0FBQyxrQkFBa0IsQ0FBQztHQUtwQix1QkFBdUIsQ0FFbkM7U0FGWSx1QkFBdUI7MkZBQXZCLHVCQUF1QjtrQkFKbkMsU0FBUzttQkFBQztvQkFDVCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLHNCQUFzQjtpQkFDakMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENTU0NvbXBvbmVudCB9IGZyb20gJ0BvZHgvYW5ndWxhci9pbnRlcm5hbCc7XG5pbXBvcnQgeyBpbmplY3RFbGVtZW50IH0gZnJvbSAnQG9keC9hbmd1bGFyL3V0aWxzJztcblxuQENTU0NvbXBvbmVudCgnZm9ybS1maWVsZC1sYWJlbCcpXG5ARGlyZWN0aXZlKHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2VsZWN0b3I6ICdvZHgtZm9ybS1maWVsZC1sYWJlbCcsXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1GaWVsZExhYmVsRGlyZWN0aXZlIHtcbiAgcHVibGljIHJlYWRvbmx5IGVsZW1lbnQgPSBpbmplY3RFbGVtZW50KCk7XG59XG4iXX0=
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { Directive } from '@angular/core';
|
|
3
|
+
import { CSSComponent } from '@odx/angular/internal';
|
|
4
|
+
import { injectElement, untilDestroyed } from '@odx/angular/utils';
|
|
5
|
+
import { fromEvent, share } from 'rxjs';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
let FormDirective = class FormDirective {
|
|
8
|
+
constructor() {
|
|
9
|
+
this.takeUntilDestroyed = untilDestroyed();
|
|
10
|
+
this.element = injectElement();
|
|
11
|
+
this.submit$ = fromEvent(this.element.nativeElement, 'submit').pipe(this.takeUntilDestroyed(), share());
|
|
12
|
+
this.reset$ = fromEvent(this.element.nativeElement, 'reset').pipe(this.takeUntilDestroyed(), share());
|
|
13
|
+
}
|
|
14
|
+
};
|
|
15
|
+
FormDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: FormDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
16
|
+
FormDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.8", type: FormDirective, isStandalone: true, selector: "form[odxForm]", ngImport: i0 });
|
|
17
|
+
FormDirective = __decorate([
|
|
18
|
+
CSSComponent('form')
|
|
19
|
+
], FormDirective);
|
|
20
|
+
export { FormDirective };
|
|
21
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: FormDirective, decorators: [{
|
|
22
|
+
type: Directive,
|
|
23
|
+
args: [{
|
|
24
|
+
standalone: true,
|
|
25
|
+
selector: 'form[odxForm]',
|
|
26
|
+
}]
|
|
27
|
+
}] });
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9mb3JtLWZpZWxkL3NyYy9saWIvZGlyZWN0aXZlcy9mb3JtLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckQsT0FBTyxFQUFFLGFBQWEsRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNuRSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFPakMsSUFBTSxhQUFhLEdBQW5CLE1BQU0sYUFBYTtJQUFuQjtRQUNZLHVCQUFrQixHQUFHLGNBQWMsRUFBRSxDQUFDO1FBRXZDLFlBQU8sR0FBRyxhQUFhLEVBQW1CLENBQUM7UUFDM0MsWUFBTyxHQUFHLFNBQVMsQ0FBUSxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUMxRyxXQUFNLEdBQUcsU0FBUyxDQUFRLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0tBQ3pIOzswR0FOWSxhQUFhOzhGQUFiLGFBQWE7QUFBYixhQUFhO0lBTHpCLFlBQVksQ0FBQyxNQUFNLENBQUM7R0FLUixhQUFhLENBTXpCO1NBTlksYUFBYTsyRkFBYixhQUFhO2tCQUp6QixTQUFTO21CQUFDO29CQUNULFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsZUFBZTtpQkFDMUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENTU0NvbXBvbmVudCB9IGZyb20gJ0BvZHgvYW5ndWxhci9pbnRlcm5hbCc7XG5pbXBvcnQgeyBpbmplY3RFbGVtZW50LCB1bnRpbERlc3Ryb3llZCB9IGZyb20gJ0BvZHgvYW5ndWxhci91dGlscyc7XG5pbXBvcnQgeyBmcm9tRXZlbnQsIHNoYXJlIH0gZnJvbSAncnhqcyc7XG5cbkBDU1NDb21wb25lbnQoJ2Zvcm0nKVxuQERpcmVjdGl2ZSh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAnZm9ybVtvZHhGb3JtXScsXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1EaXJlY3RpdmUge1xuICBwcml2YXRlIHJlYWRvbmx5IHRha2VVbnRpbERlc3Ryb3llZCA9IHVudGlsRGVzdHJveWVkKCk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGVsZW1lbnQgPSBpbmplY3RFbGVtZW50PEhUTUxGb3JtRWxlbWVudD4oKTtcbiAgcHVibGljIHJlYWRvbmx5IHN1Ym1pdCQgPSBmcm9tRXZlbnQ8RXZlbnQ+KHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LCAnc3VibWl0JykucGlwZSh0aGlzLnRha2VVbnRpbERlc3Ryb3llZCgpLCBzaGFyZSgpKTtcbiAgcHVibGljIHJlYWRvbmx5IHJlc2V0JCA9IGZyb21FdmVudDxFdmVudD4odGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsICdyZXNldCcpLnBpcGUodGhpcy50YWtlVW50aWxEZXN0cm95ZWQoKSwgc2hhcmUoKSk7XG59XG4iXX0=
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export * from './form-field-control.directive';
|
|
2
|
+
export * from './form-field-error.directive';
|
|
3
|
+
export * from './form-field-hint.directive';
|
|
4
|
+
export * from './form-field-label.directive';
|
|
5
|
+
export * from './form.directive';
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9mb3JtLWZpZWxkL3NyYy9saWIvZGlyZWN0aXZlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsa0JBQWtCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2Zvcm0tZmllbGQtY29udHJvbC5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9mb3JtLWZpZWxkLWVycm9yLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2Zvcm0tZmllbGQtaGludC5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9mb3JtLWZpZWxkLWxhYmVsLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2Zvcm0uZGlyZWN0aXZlJztcbiJdfQ==
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { __decorate, __metadata } from "tslib";
|
|
2
|
+
import { ChangeDetectionStrategy, Component, ContentChild, inject, Input, ViewEncapsulation } from '@angular/core';
|
|
3
|
+
import { CoreModule, DisabledController, ReadonlyController } from '@odx/angular';
|
|
4
|
+
import { CSSComponent } from '@odx/angular/internal';
|
|
5
|
+
import { injectElement, reactiveClassBinding } from '@odx/angular/utils';
|
|
6
|
+
import { FormFieldInfoComponent, FormGroupComponent } from './components';
|
|
7
|
+
import { FormFieldLabelDirective } from './directives';
|
|
8
|
+
import { FormFieldService } from './form-field.service';
|
|
9
|
+
import { FormFieldErrorService } from './services';
|
|
10
|
+
import * as i0 from "@angular/core";
|
|
11
|
+
import * as i1 from "@angular/common";
|
|
12
|
+
let FormFieldComponent = class FormFieldComponent {
|
|
13
|
+
constructor() {
|
|
14
|
+
this.formGroup = inject(FormGroupComponent, { optional: true, host: true });
|
|
15
|
+
this.formFieldService = inject(FormFieldService, { self: true });
|
|
16
|
+
this.formFieldErrorService = inject(FormFieldErrorService, { self: true });
|
|
17
|
+
this.element = injectElement();
|
|
18
|
+
this.label = null;
|
|
19
|
+
reactiveClassBinding(this.formFieldService.isRequired$, 'odx-form-field--required');
|
|
20
|
+
reactiveClassBinding(this.formFieldService.isDisabled$, 'is-disabled');
|
|
21
|
+
reactiveClassBinding(this.formFieldService.isReadonly$, 'is-readonly');
|
|
22
|
+
reactiveClassBinding(this.formFieldErrorService.hasError$, 'has-error');
|
|
23
|
+
}
|
|
24
|
+
get hasLabel() {
|
|
25
|
+
return !!(this.labelDirective || this.label);
|
|
26
|
+
}
|
|
27
|
+
get isStandalone() {
|
|
28
|
+
return !this.formGroup;
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
FormFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: FormFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
32
|
+
FormFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.8", type: FormFieldComponent, isStandalone: true, selector: "odx-form-field", inputs: { label: "label" }, providers: [FormFieldService, FormFieldErrorService, DisabledController.connect(), ReadonlyController.connect()], queries: [{ propertyName: "labelDirective", first: true, predicate: FormFieldLabelDirective, descendants: true }], ngImport: i0, template: "<label class=\"odx-form-field__label\" [attr.for]=\"formFieldService.controlId$ | async\" [attr.aria-owns]=\"formFieldService.controlId$ | async\" *ngIf=\"hasLabel\">\n <odx-form-field-label *ngIf=\"label; else labelTemplate\">\n {{ label }}\n </odx-form-field-label>\n <ng-template #labelTemplate>\n <ng-content select=\"odx-form-field-label\"></ng-content>\n </ng-template>\n</label>\n<div class=\"odx-form-field__inner\">\n <div class=\"odx-form-field__control\">\n <div class=\"odx-form-field__prefix\">\n <ng-content select=\"[odxFormFieldPrefix]\"></ng-content>\n </div>\n <ng-content></ng-content>\n <div class=\"odx-form-field__suffix\">\n <ng-content select=\"[odxFormFieldSuffix]\"></ng-content>\n </div>\n </div>\n <odx-form-field-info [error]=\"formFieldErrorService.error$ | async\" *ngIf=\"!formGroup\">\n <ng-content select=\"odx-form-field-hint\"></ng-content>\n </odx-form-field-info>\n</div>\n", dependencies: [{ kind: "ngmodule", type: CoreModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "component", type: FormFieldInfoComponent, selector: "odx-form-field-info", inputs: ["error"] }, { kind: "directive", type: FormFieldLabelDirective, selector: "odx-form-field-label" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
33
|
+
FormFieldComponent = __decorate([
|
|
34
|
+
CSSComponent('form-field'),
|
|
35
|
+
__metadata("design:paramtypes", [])
|
|
36
|
+
], FormFieldComponent);
|
|
37
|
+
export { FormFieldComponent };
|
|
38
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: FormFieldComponent, decorators: [{
|
|
39
|
+
type: Component,
|
|
40
|
+
args: [{ standalone: true, selector: 'odx-form-field', imports: [CoreModule, FormFieldInfoComponent, FormFieldLabelDirective], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [FormFieldService, FormFieldErrorService, DisabledController.connect(), ReadonlyController.connect()], template: "<label class=\"odx-form-field__label\" [attr.for]=\"formFieldService.controlId$ | async\" [attr.aria-owns]=\"formFieldService.controlId$ | async\" *ngIf=\"hasLabel\">\n <odx-form-field-label *ngIf=\"label; else labelTemplate\">\n {{ label }}\n </odx-form-field-label>\n <ng-template #labelTemplate>\n <ng-content select=\"odx-form-field-label\"></ng-content>\n </ng-template>\n</label>\n<div class=\"odx-form-field__inner\">\n <div class=\"odx-form-field__control\">\n <div class=\"odx-form-field__prefix\">\n <ng-content select=\"[odxFormFieldPrefix]\"></ng-content>\n </div>\n <ng-content></ng-content>\n <div class=\"odx-form-field__suffix\">\n <ng-content select=\"[odxFormFieldSuffix]\"></ng-content>\n </div>\n </div>\n <odx-form-field-info [error]=\"formFieldErrorService.error$ | async\" *ngIf=\"!formGroup\">\n <ng-content select=\"odx-form-field-hint\"></ng-content>\n </odx-form-field-info>\n</div>\n" }]
|
|
41
|
+
}], ctorParameters: function () { return []; }, propDecorators: { labelDirective: [{
|
|
42
|
+
type: ContentChild,
|
|
43
|
+
args: [FormFieldLabelDirective]
|
|
44
|
+
}], label: [{
|
|
45
|
+
type: Input
|
|
46
|
+
}] } });
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9mb3JtLWZpZWxkL3NyYy9saWIvZm9ybS1maWVsZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9mb3JtLWZpZWxkL3NyYy9saWIvZm9ybS1maWVsZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuSCxPQUFPLEVBQUUsVUFBVSxFQUFFLGtCQUFrQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsYUFBYSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDekUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzFFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxZQUFZLENBQUM7OztBQVk1QyxJQUFNLGtCQUFrQixHQUF4QixNQUFNLGtCQUFrQjtJQW9CN0I7UUFuQm1CLGNBQVMsR0FBRyxNQUFNLENBQUMsa0JBQWtCLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZFLHFCQUFnQixHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzVELDBCQUFxQixHQUFHLE1BQU0sQ0FBQyxxQkFBcUIsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ3pFLFlBQU8sR0FBRyxhQUFhLEVBQUUsQ0FBQztRQU1uQyxVQUFLLEdBQW1CLElBQUksQ0FBQztRQVdsQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxFQUFFLDBCQUEwQixDQUFDLENBQUM7UUFDcEYsb0JBQW9CLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsRUFBRSxhQUFhLENBQUMsQ0FBQztRQUN2RSxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBQ3ZFLG9CQUFvQixDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxTQUFTLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDMUUsQ0FBQztJQWJELElBQVcsUUFBUTtRQUNqQixPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRCxJQUFXLFlBQVk7UUFDckIsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDekIsQ0FBQzs7K0dBbEJVLGtCQUFrQjttR0FBbEIsa0JBQWtCLHlGQUZsQixDQUFDLGdCQUFnQixFQUFFLHFCQUFxQixFQUFFLGtCQUFrQixDQUFDLE9BQU8sRUFBRSxFQUFFLGtCQUFrQixDQUFDLE9BQU8sRUFBRSxDQUFDLHNFQVFsRyx1QkFBdUIsZ0RDekJ2QywyN0JBc0JBLDJDRFRZLFVBQVUsd0xBQUUsc0JBQXNCLG1GQUFFLHVCQUF1QjtBQU0xRCxrQkFBa0I7SUFWOUIsWUFBWSxDQUFDLFlBQVksQ0FBQzs7R0FVZCxrQkFBa0IsQ0EwQjlCO1NBMUJZLGtCQUFrQjsyRkFBbEIsa0JBQWtCO2tCQVQ5QixTQUFTO2lDQUNJLElBQUksWUFDTixnQkFBZ0IsV0FDakIsQ0FBQyxVQUFVLEVBQUUsc0JBQXNCLEVBQUUsdUJBQXVCLENBQUMsaUJBRXZELGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sYUFDcEMsQ0FBQyxnQkFBZ0IsRUFBRSxxQkFBcUIsRUFBRSxrQkFBa0IsQ0FBQyxPQUFPLEVBQUUsRUFBRSxrQkFBa0IsQ0FBQyxPQUFPLEVBQUUsQ0FBQzswRUFTekcsY0FBYztzQkFEcEIsWUFBWTt1QkFBQyx1QkFBdUI7Z0JBSTlCLEtBQUs7c0JBRFgsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIENvbnRlbnRDaGlsZCwgaW5qZWN0LCBJbnB1dCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvcmVNb2R1bGUsIERpc2FibGVkQ29udHJvbGxlciwgUmVhZG9ubHlDb250cm9sbGVyIH0gZnJvbSAnQG9keC9hbmd1bGFyJztcbmltcG9ydCB7IENTU0NvbXBvbmVudCB9IGZyb20gJ0BvZHgvYW5ndWxhci9pbnRlcm5hbCc7XG5pbXBvcnQgeyBpbmplY3RFbGVtZW50LCByZWFjdGl2ZUNsYXNzQmluZGluZyB9IGZyb20gJ0BvZHgvYW5ndWxhci91dGlscyc7XG5pbXBvcnQgeyBGb3JtRmllbGRJbmZvQ29tcG9uZW50LCBGb3JtR3JvdXBDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgRm9ybUZpZWxkTGFiZWxEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMnO1xuaW1wb3J0IHsgRm9ybUZpZWxkU2VydmljZSB9IGZyb20gJy4vZm9ybS1maWVsZC5zZXJ2aWNlJztcbmltcG9ydCB7IEZvcm1GaWVsZEVycm9yU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMnO1xuXG5AQ1NTQ29tcG9uZW50KCdmb3JtLWZpZWxkJylcbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ29keC1mb3JtLWZpZWxkJyxcbiAgaW1wb3J0czogW0NvcmVNb2R1bGUsIEZvcm1GaWVsZEluZm9Db21wb25lbnQsIEZvcm1GaWVsZExhYmVsRGlyZWN0aXZlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0tZmllbGQuY29tcG9uZW50Lmh0bWwnLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgcHJvdmlkZXJzOiBbRm9ybUZpZWxkU2VydmljZSwgRm9ybUZpZWxkRXJyb3JTZXJ2aWNlLCBEaXNhYmxlZENvbnRyb2xsZXIuY29ubmVjdCgpLCBSZWFkb25seUNvbnRyb2xsZXIuY29ubmVjdCgpXSxcbn0pXG5leHBvcnQgY2xhc3MgRm9ybUZpZWxkQ29tcG9uZW50IHtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGZvcm1Hcm91cCA9IGluamVjdChGb3JtR3JvdXBDb21wb25lbnQsIHsgb3B0aW9uYWw6IHRydWUsIGhvc3Q6IHRydWUgfSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBmb3JtRmllbGRTZXJ2aWNlID0gaW5qZWN0KEZvcm1GaWVsZFNlcnZpY2UsIHsgc2VsZjogdHJ1ZSB9KTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGZvcm1GaWVsZEVycm9yU2VydmljZSA9IGluamVjdChGb3JtRmllbGRFcnJvclNlcnZpY2UsIHsgc2VsZjogdHJ1ZSB9KTtcbiAgcHVibGljIHJlYWRvbmx5IGVsZW1lbnQgPSBpbmplY3RFbGVtZW50KCk7XG5cbiAgQENvbnRlbnRDaGlsZChGb3JtRmllbGRMYWJlbERpcmVjdGl2ZSlcbiAgcHVibGljIGxhYmVsRGlyZWN0aXZlPzogRm9ybUZpZWxkTGFiZWxEaXJlY3RpdmU7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGxhYmVsPzogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgcHVibGljIGdldCBoYXNMYWJlbCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISEodGhpcy5sYWJlbERpcmVjdGl2ZSB8fCB0aGlzLmxhYmVsKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXNTdGFuZGFsb25lKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhdGhpcy5mb3JtR3JvdXA7XG4gIH1cblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICByZWFjdGl2ZUNsYXNzQmluZGluZyh0aGlzLmZvcm1GaWVsZFNlcnZpY2UuaXNSZXF1aXJlZCQsICdvZHgtZm9ybS1maWVsZC0tcmVxdWlyZWQnKTtcbiAgICByZWFjdGl2ZUNsYXNzQmluZGluZyh0aGlzLmZvcm1GaWVsZFNlcnZpY2UuaXNEaXNhYmxlZCQsICdpcy1kaXNhYmxlZCcpO1xuICAgIHJlYWN0aXZlQ2xhc3NCaW5kaW5nKHRoaXMuZm9ybUZpZWxkU2VydmljZS5pc1JlYWRvbmx5JCwgJ2lzLXJlYWRvbmx5Jyk7XG4gICAgcmVhY3RpdmVDbGFzc0JpbmRpbmcodGhpcy5mb3JtRmllbGRFcnJvclNlcnZpY2UuaGFzRXJyb3IkLCAnaGFzLWVycm9yJyk7XG4gIH1cbn1cbiIsIjxsYWJlbCBjbGFzcz1cIm9keC1mb3JtLWZpZWxkX19sYWJlbFwiIFthdHRyLmZvcl09XCJmb3JtRmllbGRTZXJ2aWNlLmNvbnRyb2xJZCQgfCBhc3luY1wiIFthdHRyLmFyaWEtb3duc109XCJmb3JtRmllbGRTZXJ2aWNlLmNvbnRyb2xJZCQgfCBhc3luY1wiICpuZ0lmPVwiaGFzTGFiZWxcIj5cbiAgPG9keC1mb3JtLWZpZWxkLWxhYmVsICpuZ0lmPVwibGFiZWw7IGVsc2UgbGFiZWxUZW1wbGF0ZVwiPlxuICAgIHt7IGxhYmVsIH19XG4gIDwvb2R4LWZvcm0tZmllbGQtbGFiZWw+XG4gIDxuZy10ZW1wbGF0ZSAjbGFiZWxUZW1wbGF0ZT5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJvZHgtZm9ybS1maWVsZC1sYWJlbFwiPjwvbmctY29udGVudD5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvbGFiZWw+XG48ZGl2IGNsYXNzPVwib2R4LWZvcm0tZmllbGRfX2lubmVyXCI+XG4gIDxkaXYgY2xhc3M9XCJvZHgtZm9ybS1maWVsZF9fY29udHJvbFwiPlxuICAgIDxkaXYgY2xhc3M9XCJvZHgtZm9ybS1maWVsZF9fcHJlZml4XCI+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbb2R4Rm9ybUZpZWxkUHJlZml4XVwiPjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPGRpdiBjbGFzcz1cIm9keC1mb3JtLWZpZWxkX19zdWZmaXhcIj5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltvZHhGb3JtRmllbGRTdWZmaXhdXCI+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPG9keC1mb3JtLWZpZWxkLWluZm8gW2Vycm9yXT1cImZvcm1GaWVsZEVycm9yU2VydmljZS5lcnJvciQgfCBhc3luY1wiICpuZ0lmPVwiIWZvcm1Hcm91cFwiPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIm9keC1mb3JtLWZpZWxkLWhpbnRcIj48L25nLWNvbnRlbnQ+XG4gIDwvb2R4LWZvcm0tZmllbGQtaW5mbz5cbjwvZGl2PlxuIl19
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { createModuleConfigTokens } from '@odx/angular/utils';
|
|
2
|
+
export const { FormFieldDefaultModuleConfig, FormFieldModuleConfig, injectFormFieldModuleConfig } = createModuleConfigTokens('FormField', '@odx/angular/components/form-field', {
|
|
3
|
+
errors: {},
|
|
4
|
+
blurPredicate: ({ tagName }) => ['input', 'select', 'textarea'].includes(tagName.toLowerCase()),
|
|
5
|
+
updateOn: ['blur'],
|
|
6
|
+
});
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC5jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9mb3JtLWZpZWxkL3NyYy9saWIvZm9ybS1maWVsZC5jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFxQjlELE1BQU0sQ0FBQyxNQUFNLEVBQUUsNEJBQTRCLEVBQUUscUJBQXFCLEVBQUUsMkJBQTJCLEVBQUUsR0FBRyx3QkFBd0IsQ0FDMUgsV0FBVyxFQUNYLG9DQUFvQyxFQUNwQztJQUNFLE1BQU0sRUFBRSxFQUFFO0lBQ1YsYUFBYSxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQVcsRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsUUFBUSxFQUFFLFVBQVUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDeEcsUUFBUSxFQUFFLENBQUMsTUFBTSxDQUFDO0NBQ00sQ0FDM0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZU1vZHVsZUNvbmZpZ1Rva2VucyB9IGZyb20gJ0BvZHgvYW5ndWxhci91dGlscyc7XG5pbXBvcnQgeyBGb3JtRmllbGRFcnJvclJlc29sdmVycyB9IGZyb20gJy4vbW9kZWxzJztcblxuZXhwb3J0IGludGVyZmFjZSBGb3JtRmllbGRNb2R1bGVDb25maWcge1xuICAvKipcbiAgICogT2JqZWN0IG9mIGVycm9yIHJlc29sdmVycyB1c2VkIHRvIHJlc29sdmUgZXJyb3IgbWVzc2FnZXMgZ2xvYmFsbHlcbiAgICogQGRlZmF1bHQge31cbiAgICovXG4gIGVycm9yczogRm9ybUZpZWxkRXJyb3JSZXNvbHZlcnM7XG4gIC8qKlxuICAgKiBEZXRlY3QgaWYgbmF0aXZlIGNvbnRyb2wgZWxlbWVudCBzdXBwb3J0cyB0aGUgYGJsdXJgIGV2ZW50XG4gICAqIEBkZWZhdWx0ICh7IHRhZ05hbWUgfTogRWxlbWVudCkgPT4gWydpbnB1dCcsICdzZWxlY3QnLCAndGV4dGFyZWEnXS5pbmNsdWRlcyh0YWdOYW1lLnRvTG93ZXJDYXNlKCkpXG4gICAqICovXG4gIGJsdXJQcmVkaWNhdGU6IChlbGVtZW50OiBFbGVtZW50KSA9PiBib29sZWFuO1xuICAvKipcbiAgICogRGV0ZWN0IGZvcm0gZmllbGQgY29udHJvbCBjaGFuZ2VzIG9uIGBibHVyYCBhbmQvb3IgYGNoYW5nZWBcbiAgICogQGRlZmF1bHQgWydibHVyJ11cbiAgICovXG4gIHVwZGF0ZU9uOiBBcnJheTwnYmx1cicgfCAnY2hhbmdlJz47XG59XG5cbmV4cG9ydCBjb25zdCB7IEZvcm1GaWVsZERlZmF1bHRNb2R1bGVDb25maWcsIEZvcm1GaWVsZE1vZHVsZUNvbmZpZywgaW5qZWN0Rm9ybUZpZWxkTW9kdWxlQ29uZmlnIH0gPSBjcmVhdGVNb2R1bGVDb25maWdUb2tlbnMoXG4gICdGb3JtRmllbGQnLFxuICAnQG9keC9hbmd1bGFyL2NvbXBvbmVudHMvZm9ybS1maWVsZCcsXG4gIHtcbiAgICBlcnJvcnM6IHt9LFxuICAgIGJsdXJQcmVkaWNhdGU6ICh7IHRhZ05hbWUgfTogRWxlbWVudCkgPT4gWydpbnB1dCcsICdzZWxlY3QnLCAndGV4dGFyZWEnXS5pbmNsdWRlcyh0YWdOYW1lLnRvTG93ZXJDYXNlKCkpLFxuICAgIHVwZGF0ZU9uOiBbJ2JsdXInXSxcbiAgfSBhcyBGb3JtRmllbGRNb2R1bGVDb25maWdcbik7XG4iXX0=
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { CoreModule } from '@odx/angular';
|
|
3
|
+
import { provideModuleConfig } from '@odx/angular/utils';
|
|
4
|
+
import { FormGroupComponent } from './components';
|
|
5
|
+
import { FormDirective, FormFieldControlDirective, FormFieldErrorDirective, FormFieldHintDirective, FormFieldLabelDirective } from './directives';
|
|
6
|
+
import { FormFieldComponent } from './form-field.component';
|
|
7
|
+
import { FormFieldModuleConfig } from './form-field.config';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
const modules = [
|
|
10
|
+
FormFieldComponent,
|
|
11
|
+
FormGroupComponent,
|
|
12
|
+
FormDirective,
|
|
13
|
+
FormFieldControlDirective,
|
|
14
|
+
FormFieldErrorDirective,
|
|
15
|
+
FormFieldHintDirective,
|
|
16
|
+
FormFieldLabelDirective,
|
|
17
|
+
];
|
|
18
|
+
export class FormFieldModule {
|
|
19
|
+
static forRoot(config) {
|
|
20
|
+
return {
|
|
21
|
+
ngModule: FormFieldModule,
|
|
22
|
+
providers: [provideModuleConfig(FormFieldModuleConfig, config)],
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
FormFieldModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: FormFieldModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
27
|
+
FormFieldModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.8", ngImport: i0, type: FormFieldModule, imports: [FormFieldComponent,
|
|
28
|
+
FormGroupComponent,
|
|
29
|
+
FormDirective,
|
|
30
|
+
FormFieldControlDirective,
|
|
31
|
+
FormFieldErrorDirective,
|
|
32
|
+
FormFieldHintDirective,
|
|
33
|
+
FormFieldLabelDirective], exports: [CoreModule, FormFieldComponent,
|
|
34
|
+
FormGroupComponent,
|
|
35
|
+
FormDirective,
|
|
36
|
+
FormFieldControlDirective,
|
|
37
|
+
FormFieldErrorDirective,
|
|
38
|
+
FormFieldHintDirective,
|
|
39
|
+
FormFieldLabelDirective] });
|
|
40
|
+
FormFieldModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: FormFieldModule, imports: [FormFieldComponent,
|
|
41
|
+
FormGroupComponent, CoreModule] });
|
|
42
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: FormFieldModule, decorators: [{
|
|
43
|
+
type: NgModule,
|
|
44
|
+
args: [{
|
|
45
|
+
imports: modules,
|
|
46
|
+
exports: [CoreModule, ...modules],
|
|
47
|
+
}]
|
|
48
|
+
}] });
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9mb3JtLWZpZWxkL3NyYy9saWIvZm9ybS1maWVsZC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF1QixRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMxQyxPQUFPLEVBQWtELG1CQUFtQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDekcsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ2xELE9BQU8sRUFBRSxhQUFhLEVBQUUseUJBQXlCLEVBQUUsdUJBQXVCLEVBQUUsc0JBQXNCLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDbEosT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0scUJBQXFCLENBQUM7O0FBRTVELE1BQU0sT0FBTyxHQUFHO0lBQ2Qsa0JBQWtCO0lBQ2xCLGtCQUFrQjtJQUNsQixhQUFhO0lBQ2IseUJBQXlCO0lBQ3pCLHVCQUF1QjtJQUN2QixzQkFBc0I7SUFDdEIsdUJBQXVCO0NBQ3hCLENBQUM7QUFNRixNQUFNLE9BQU8sZUFBZTtJQUNuQixNQUFNLENBQUMsT0FBTyxDQUNuQixNQUErRDtRQUUvRCxPQUFPO1lBQ0wsUUFBUSxFQUFFLGVBQWU7WUFDekIsU0FBUyxFQUFFLENBQUMsbUJBQW1CLENBQUMscUJBQXFCLEVBQUUsTUFBTSxDQUFDLENBQUM7U0FDaEUsQ0FBQztJQUNKLENBQUM7OzRHQVJVLGVBQWU7NkdBQWYsZUFBZSxZQWIxQixrQkFBa0I7UUFDbEIsa0JBQWtCO1FBQ2xCLGFBQWE7UUFDYix5QkFBeUI7UUFDekIsdUJBQXVCO1FBQ3ZCLHNCQUFzQjtRQUN0Qix1QkFBdUIsYUFLYixVQUFVLEVBWHBCLGtCQUFrQjtRQUNsQixrQkFBa0I7UUFDbEIsYUFBYTtRQUNiLHlCQUF5QjtRQUN6Qix1QkFBdUI7UUFDdkIsc0JBQXNCO1FBQ3RCLHVCQUF1Qjs2R0FPWixlQUFlLFlBYjFCLGtCQUFrQjtRQUNsQixrQkFBa0IsRUFVUixVQUFVOzJGQUVULGVBQWU7a0JBSjNCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLE9BQU87b0JBQ2hCLE9BQU8sRUFBRSxDQUFDLFVBQVUsRUFBRSxHQUFHLE9BQU8sQ0FBQztpQkFDbEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29yZU1vZHVsZSB9IGZyb20gJ0BvZHgvYW5ndWxhcic7XG5pbXBvcnQgeyBNb2R1bGVDb25maWdEZXBlbmRlbmNpZXMsIE1vZHVsZUNvbmZpZ1Byb3ZpZGVyLCBwcm92aWRlTW9kdWxlQ29uZmlnIH0gZnJvbSAnQG9keC9hbmd1bGFyL3V0aWxzJztcbmltcG9ydCB7IEZvcm1Hcm91cENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cyc7XG5pbXBvcnQgeyBGb3JtRGlyZWN0aXZlLCBGb3JtRmllbGRDb250cm9sRGlyZWN0aXZlLCBGb3JtRmllbGRFcnJvckRpcmVjdGl2ZSwgRm9ybUZpZWxkSGludERpcmVjdGl2ZSwgRm9ybUZpZWxkTGFiZWxEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMnO1xuaW1wb3J0IHsgRm9ybUZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi9mb3JtLWZpZWxkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGb3JtRmllbGRNb2R1bGVDb25maWcgfSBmcm9tICcuL2Zvcm0tZmllbGQuY29uZmlnJztcblxuY29uc3QgbW9kdWxlcyA9IFtcbiAgRm9ybUZpZWxkQ29tcG9uZW50LFxuICBGb3JtR3JvdXBDb21wb25lbnQsXG4gIEZvcm1EaXJlY3RpdmUsXG4gIEZvcm1GaWVsZENvbnRyb2xEaXJlY3RpdmUsXG4gIEZvcm1GaWVsZEVycm9yRGlyZWN0aXZlLFxuICBGb3JtRmllbGRIaW50RGlyZWN0aXZlLFxuICBGb3JtRmllbGRMYWJlbERpcmVjdGl2ZSxcbl07XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IG1vZHVsZXMsXG4gIGV4cG9ydHM6IFtDb3JlTW9kdWxlLCAuLi5tb2R1bGVzXSxcbn0pXG5leHBvcnQgY2xhc3MgRm9ybUZpZWxkTW9kdWxlIHtcbiAgcHVibGljIHN0YXRpYyBmb3JSb290PEQgZXh0ZW5kcyBNb2R1bGVDb25maWdEZXBlbmRlbmNpZXM+KFxuICAgIGNvbmZpZzogTW9kdWxlQ29uZmlnUHJvdmlkZXI8UGFydGlhbDxGb3JtRmllbGRNb2R1bGVDb25maWc+LCBEPlxuICApOiBNb2R1bGVXaXRoUHJvdmlkZXJzPEZvcm1GaWVsZE1vZHVsZT4ge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogRm9ybUZpZWxkTW9kdWxlLFxuICAgICAgcHJvdmlkZXJzOiBbcHJvdmlkZU1vZHVsZUNvbmZpZyhGb3JtRmllbGRNb2R1bGVDb25maWcsIGNvbmZpZyldLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { Validators } from '@angular/forms';
|
|
3
|
+
import { Controller, DisabledController, ReadonlyController } from '@odx/angular';
|
|
4
|
+
import { BehaviorSubject, distinctUntilChanged, EMPTY, map, merge, of, shareReplay, startWith, switchMap, tap } from 'rxjs';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export class FormFieldService extends Controller {
|
|
7
|
+
constructor() {
|
|
8
|
+
super(...arguments);
|
|
9
|
+
this.disabledController = DisabledController.inject();
|
|
10
|
+
this.readonlyController = ReadonlyController.inject();
|
|
11
|
+
this.control$$ = new BehaviorSubject(null);
|
|
12
|
+
this.control$ = this.control$$.pipe(shareReplay({ refCount: true }));
|
|
13
|
+
this.controlId$ = this.control$.pipe(map((control) => (control ? control.nativeElement.id || `odx-form-field-${FormFieldService.ID++}` : null)), shareReplay({ refCount: true }));
|
|
14
|
+
this.controlHintId$ = this.controlId$.pipe(map((id) => (id ? `${id}-hint` : null)), shareReplay({ refCount: true }));
|
|
15
|
+
this.controlErrorId$ = this.controlId$.pipe(map((id) => (id ? `${id}-error` : null)), shareReplay({ refCount: true }));
|
|
16
|
+
this.isDisabled$ = this.control$.pipe(switchMap((control) => (control ? merge(this.updateControlDisabledState(control), this.getControlDisabledState(control)) : of(false))), distinctUntilChanged(), shareReplay({ refCount: true }));
|
|
17
|
+
this.isRequired$ = this.control$.pipe(map((control) => (control ? control.nativeElement.hasAttribute('required') || control.control.hasValidator(Validators.required) : false)), shareReplay({ refCount: true }));
|
|
18
|
+
this.isReadonly$ = this.control$.pipe(switchMap((control) => (control && this.readonlyController ? this.readonlyController.isReadonly$ : of(false))));
|
|
19
|
+
}
|
|
20
|
+
ngOnDestroy() {
|
|
21
|
+
this.control$$.complete();
|
|
22
|
+
super.ngOnDestroy();
|
|
23
|
+
}
|
|
24
|
+
registerControl(control, { nativeElement }) {
|
|
25
|
+
this.control$$.next({ control, nativeElement });
|
|
26
|
+
}
|
|
27
|
+
removeControl() {
|
|
28
|
+
this.control$$.next(null);
|
|
29
|
+
}
|
|
30
|
+
updateControlDisabledState({ control }) {
|
|
31
|
+
if (this.disabledController) {
|
|
32
|
+
return this.disabledController.isDisabled$.pipe(tap((state) => {
|
|
33
|
+
if (state) {
|
|
34
|
+
control.disable();
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
control.enable();
|
|
38
|
+
}
|
|
39
|
+
}));
|
|
40
|
+
}
|
|
41
|
+
return EMPTY;
|
|
42
|
+
}
|
|
43
|
+
getControlDisabledState({ control }) {
|
|
44
|
+
return control.statusChanges.pipe(startWith(control.status), map((status) => status === 'DISABLED'), distinctUntilChanged());
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
FormFieldService.ID = 0;
|
|
48
|
+
FormFieldService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: FormFieldService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
|
|
49
|
+
FormFieldService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: FormFieldService });
|
|
50
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: FormFieldService, decorators: [{
|
|
51
|
+
type: Injectable
|
|
52
|
+
}] });
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2NvbXBvbmVudHMvZm9ybS1maWVsZC9zcmMvbGliL2Zvcm0tZmllbGQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ2xFLE9BQU8sRUFBbUIsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxrQkFBa0IsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNsRixPQUFPLEVBQUUsZUFBZSxFQUFFLG9CQUFvQixFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFjLEVBQUUsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBUXhJLE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxVQUFVO0lBRGhEOztRQUltQix1QkFBa0IsR0FBRyxrQkFBa0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNqRCx1QkFBa0IsR0FBRyxrQkFBa0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNqRCxjQUFTLEdBQUcsSUFBSSxlQUFlLENBQXNCLElBQUksQ0FBQyxDQUFDO1FBRTVELGFBQVEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2hFLGVBQVUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FDN0MsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxFQUFFLElBQUksa0JBQWtCLGdCQUFnQixDQUFDLEVBQUUs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LE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztpQkFDbkI7cUJBQU07b0JBQ0wsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO2lCQUNsQjtZQUNILENBQUMsQ0FBQyxDQUNILENBQUM7U0FDSDtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVPLHVCQUF1QixDQUFDLEVBQUUsT0FBTyxFQUFnQjtRQUN2RCxPQUFPLE9BQU8sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUMvQixTQUFTLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUN6QixHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sS0FBSyxVQUFVLENBQUMsRUFDdEMsb0JBQW9CLEVBQUUsQ0FDdkIsQ0FBQztJQUNKLENBQUM7O0FBbEVjLG1CQUFFLEdBQUcsQ0FBQyxDQUFDOzZHQURYLGdCQUFnQjtpSEFBaEIsZ0JBQWdCOzJGQUFoQixnQkFBZ0I7a0JBRDVCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbGVtZW50UmVmLCBJbmplY3RhYmxlLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IENvbnRyb2xsZXIsIERpc2FibGVkQ29udHJvbGxlciwgUmVhZG9ubHlDb250cm9sbGVyIH0gZnJvbSAnQG9keC9hbmd1bGFyJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgZGlzdGluY3RVbnRpbENoYW5nZWQsIEVNUFRZLCBtYXAsIG1lcmdlLCBPYnNlcnZhYmxlLCBvZiwgc2hhcmVSZXBsYXksIHN0YXJ0V2l0aCwgc3dpdGNoTWFwLCB0YXAgfSBmcm9tICdyeGpzJztcblxuaW50ZXJmYWNlIEZpZWxkQ29udHJvbCB7XG4gIGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbDtcbiAgbmF0aXZlRWxlbWVudDogSFRNTEVsZW1lbnQ7XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBGb3JtRmllbGRTZXJ2aWNlIGV4dGVuZHMgQ29udHJvbGxlciBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgc3RhdGljIElEID0gMDtcblxuICBwcml2YXRlIHJlYWRvbmx5IGRpc2FibGVkQ29udHJvbGxlciA9IERpc2FibGVkQ29udHJvbGxlci5pbmplY3QoKTtcbiAgcHJpdmF0ZSByZWFkb25seSByZWFkb25seUNvbnRyb2xsZXIgPSBSZWFkb25seUNvbnRyb2xsZXIuaW5qZWN0KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgY29udHJvbCQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxGaWVsZENvbnRyb2wgfCBudWxsPihudWxsKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgY29udHJvbCQgPSB0aGlzLmNvbnRyb2wkJC5waXBlKHNoYXJlUmVwbGF5KHsgcmVmQ291bnQ6IHRydWUgfSkpO1xuICBwdWJsaWMgcmVhZG9ubHkgY29udHJvbElkJCA9IHRoaXMuY29udHJvbCQucGlwZShcbiAgICBtYXAoKGNvbnRyb2wpID0+IChjb250cm9sID8gY29udHJvbC5uYXRpdmVFbGVtZW50LmlkIHx8IGBvZHgtZm9ybS1maWVsZC0ke0Zvcm1GaWVsZFNlcnZpY2UuSUQrK31gIDogbnVsbCkpLFxuICAgIHNoYXJlUmVwbGF5KHsgcmVmQ291bnQ6IHRydWUgfSlcbiAgKTtcbiAgcHVibGljIHJlYWRvbmx5IGNvbnRyb2xIaW50SWQkID0gdGhpcy5jb250cm9sSWQkLnBpcGUoXG4gICAgbWFwKChpZCkgPT4gKGlkID8gYCR7aWR9LWhpbnRgIDogbnVsbCkpLFxuICAgIHNoYXJlUmVwbGF5KHsgcmVmQ291bnQ6IHRydWUgfSlcbiAgKTtcbiAgcHVibGljIHJlYWRvbmx5IGNvbnRyb2xFcnJvcklkJCA9IHRoaXMuY29udHJvbElkJC5waXBlKFxuICAgIG1hcCgoaWQpID0+IChpZCA/IGAke2lkfS1lcnJvcmAgOiBudWxsKSksXG4gICAgc2hhcmVSZXBsYXkoeyByZWZDb3VudDogdHJ1ZSB9KVxuICApO1xuICBwdWJsaWMgcmVhZG9ubHkgaXNEaXNhYmxlZCQgPSB0aGlzLmNvbnRyb2wkLnBpcGUoXG4gICAgc3dpdGNoTWFwKChjb250cm9sKSA9PiAoY29udHJvbCA/IG1lcmdlKHRoaXMudXBkYXRlQ29udHJvbERpc2FibGVkU3RhdGUoY29udHJvbCksIHRoaXMuZ2V0Q29udHJvbERpc2FibGVkU3RhdGUoY29udHJvbCkpIDogb2YoZmFsc2UpKSksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBzaGFyZVJlcGxheSh7IHJlZkNvdW50OiB0cnVlIH0pXG4gICk7XG4gIHB1YmxpYyByZWFkb25seSBpc1JlcXVpcmVkJCA9IHRoaXMuY29udHJvbCQucGlwZShcbiAgICBtYXAoKGNvbnRyb2wpID0+IChjb250cm9sID8gY29udHJvbC5uYXRpdmVFbGVtZW50Lmhhc0F0dHJpYnV0ZSgncmVxdWlyZWQnKSB8fCBjb250cm9sLmNvbnRyb2wuaGFzVmFsaWRhdG9yKFZhbGlkYXRvcnMucmVxdWlyZWQpIDogZmFsc2UpKSxcbiAgICBzaGFyZVJlcGxheSh7IHJlZkNvdW50OiB0cnVlIH0pXG4gICk7XG4gIHB1YmxpYyByZWFkb25seSBpc1JlYWRvbmx5JCA9IHRoaXMuY29udHJvbCQucGlwZShcbiAgICBzd2l0Y2hNYXAoKGNvbnRyb2wpID0+IChjb250cm9sICYmIHRoaXMucmVhZG9ubHlDb250cm9sbGVyID8gdGhpcy5yZWFkb25seUNvbnRyb2xsZXIuaXNSZWFkb25seSQgOiBvZihmYWxzZSkpKVxuICApO1xuXG4gIHB1YmxpYyBvdmVycmlkZSBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmNvbnRyb2wkJC5jb21wbGV0ZSgpO1xuICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJDb250cm9sKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCwgeyBuYXRpdmVFbGVtZW50IH06IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+KTogdm9pZCB7XG4gICAgdGhpcy5jb250cm9sJCQubmV4dCh7IGNvbnRyb2wsIG5hdGl2ZUVsZW1lbnQgfSk7XG4gIH1cblxuICBwdWJsaWMgcmVtb3ZlQ29udHJvbCgpOiB2b2lkIHtcbiAgICB0aGlzLmNvbnRyb2wkJC5uZXh0KG51bGwpO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVDb250cm9sRGlzYWJsZWRTdGF0ZSh7IGNvbnRyb2wgfTogRmllbGRDb250cm9sKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWRDb250cm9sbGVyKSB7XG4gICAgICByZXR1cm4gdGhpcy5kaXNhYmxlZENvbnRyb2xsZXIuaXNEaXNhYmxlZCQucGlwZShcbiAgICAgICAgdGFwKChzdGF0ZSkgPT4ge1xuICAgICAgICAgIGlmIChzdGF0ZSkge1xuICAgICAgICAgICAgY29udHJvbC5kaXNhYmxlKCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnRyb2wuZW5hYmxlKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIEVNUFRZO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDb250cm9sRGlzYWJsZWRTdGF0ZSh7IGNvbnRyb2wgfTogRmllbGRDb250cm9sKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIGNvbnRyb2wuc3RhdHVzQ2hhbmdlcy5waXBlKFxuICAgICAgc3RhcnRXaXRoKGNvbnRyb2wuc3RhdHVzKSxcbiAgICAgIG1hcCgoc3RhdHVzKSA9PiBzdGF0dXMgPT09ICdESVNBQkxFRCcpLFxuICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKVxuICAgICk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC1lcnJvci1yZXNvbHZlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jb21wb25lbnRzL2Zvcm0tZmllbGQvc3JjL2xpYi9tb2RlbHMvZm9ybS1maWVsZC1lcnJvci1yZXNvbHZlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRHluYW1pY1RleHRDb250ZW50IH0gZnJvbSAnQG9keC9hbmd1bGFyL2Nkay9keW5hbWljLXZpZXcnO1xuXG5leHBvcnQgdHlwZSBGb3JtRmllbGRFcnJvclJlc29sdmVyPEMgPSBib29sZWFuPiA9IChjb250ZXh0OiBDKSA9PiBEeW5hbWljVGV4dENvbnRlbnQ7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRm9ybUZpZWxkRXJyb3JSZXNvbHZlcnMge1xuICBtaW4/OiBGb3JtRmllbGRFcnJvclJlc29sdmVyPHsgbWluOiBudW1iZXI7IGFjdHVhbDogbnVtYmVyIH0+O1xuICBtYXg/OiBGb3JtRmllbGRFcnJvclJlc29sdmVyPHsgbWF4OiBudW1iZXI7IGFjdHVhbDogbnVtYmVyIH0+O1xuICByZXF1aXJlZD86IEZvcm1GaWVsZEVycm9yUmVzb2x2ZXI7XG4gIHJlcXVpcmVkVHJ1ZT86IEZvcm1GaWVsZEVycm9yUmVzb2x2ZXI7XG4gIGVtYWlsPzogRm9ybUZpZWxkRXJyb3JSZXNvbHZlcjtcbiAgbWlubGVuZ3RoPzogRm9ybUZpZWxkRXJyb3JSZXNvbHZlcjx7IHJlcXVpcmVkTGVuZ3RoOiBudW1iZXI7IGFjdHVhbExlbmd0aDogbnVtYmVyIH0+O1xuICBtYXhsZW5ndGg/OiBGb3JtRmllbGRFcnJvclJlc29sdmVyPHsgcmVxdWlyZWRMZW5ndGg6IG51bWJlcjsgYWN0dWFsTGVuZ3RoOiBudW1iZXIgfT47XG4gIHBhdHRlcm4/OiBGb3JtRmllbGRFcnJvclJlc29sdmVyPHsgcmVxdWlyZWRQYXR0ZXJuOiBzdHJpbmcgfT47XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gIFtrZXk6IHN0cmluZ106IEZvcm1GaWVsZEVycm9yUmVzb2x2ZXI8YW55PiB8IHVuZGVmaW5lZDtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC1lcnJvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jb21wb25lbnRzL2Zvcm0tZmllbGQvc3JjL2xpYi9tb2RlbHMvZm9ybS1maWVsZC1lcnJvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRHluYW1pY0NvbnRlbnQgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY2RrL2R5bmFtaWMtdmlldyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRm9ybUZpZWxkRXJyb3Ige1xuICBtZXNzYWdlOiBEeW5hbWljQ29udGVudDtcbiAgY29udGV4dD86IHsgJGltcGxpY2l0OiB1bmtub3duIH07XG59XG4iXX0=
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export * from './form-field-error';
|
|
2
|
+
export * from './form-field-error-resolver';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9mb3JtLWZpZWxkL3NyYy9saWIvbW9kZWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyw2QkFBNkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZm9ybS1maWVsZC1lcnJvcic7XG5leHBvcnQgKiBmcm9tICcuL2Zvcm0tZmllbGQtZXJyb3ItcmVzb2x2ZXInO1xuIl19
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { isFunction, isTemplateRef } from '@odx/angular/utils';
|
|
3
|
+
import { BehaviorSubject, combineLatest, distinctUntilChanged, map, shareReplay } from 'rxjs';
|
|
4
|
+
import { injectFormFieldModuleConfig } from '../form-field.config';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
const DEFAULT_CUSTOM_FORM_FIELD_ERROR = '@odx/angular/form-field/default-error';
|
|
7
|
+
export class FormFieldErrorService {
|
|
8
|
+
constructor() {
|
|
9
|
+
this.config = injectFormFieldModuleConfig();
|
|
10
|
+
this.fieldError$$ = new BehaviorSubject(null);
|
|
11
|
+
this.customErrors$$ = new BehaviorSubject({});
|
|
12
|
+
this.error$ = combineLatest([this.fieldError$$, this.customErrors$$]).pipe(map(([error, customErrors]) => this.resolveError(error, customErrors)), distinctUntilChanged(), shareReplay({ refCount: true }));
|
|
13
|
+
this.hasError$ = this.error$.pipe(map((error) => error !== null));
|
|
14
|
+
}
|
|
15
|
+
get hasError() {
|
|
16
|
+
return this.fieldError$$.getValue() !== null;
|
|
17
|
+
}
|
|
18
|
+
ngOnDestroy() {
|
|
19
|
+
this.fieldError$$.next(null);
|
|
20
|
+
this.customErrors$$.next({});
|
|
21
|
+
this.fieldError$$.complete();
|
|
22
|
+
this.customErrors$$.complete();
|
|
23
|
+
}
|
|
24
|
+
setError(errors) {
|
|
25
|
+
if (!errors) {
|
|
26
|
+
this.fieldError$$.next(null);
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
const [key, context] = Object.entries(errors)[0];
|
|
30
|
+
this.fieldError$$.next({ key, context });
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
registerCustomError(key, template) {
|
|
34
|
+
this.customErrors$$.next({ ...this.customErrors$$.getValue(), [key || DEFAULT_CUSTOM_FORM_FIELD_ERROR]: template });
|
|
35
|
+
}
|
|
36
|
+
resolveError(error, customErrors) {
|
|
37
|
+
if (!error)
|
|
38
|
+
return null;
|
|
39
|
+
const { key, context } = error;
|
|
40
|
+
const message = customErrors[key] ?? customErrors[DEFAULT_CUSTOM_FORM_FIELD_ERROR];
|
|
41
|
+
if (isTemplateRef(message)) {
|
|
42
|
+
return {
|
|
43
|
+
message,
|
|
44
|
+
context: { $implicit: context },
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
const getMessage = this.config.errors[key] ?? null;
|
|
48
|
+
return isFunction(getMessage) ? { message: getMessage(context) } : null;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
FormFieldErrorService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: FormFieldErrorService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
52
|
+
FormFieldErrorService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: FormFieldErrorService });
|
|
53
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: FormFieldErrorService, decorators: [{
|
|
54
|
+
type: Injectable
|
|
55
|
+
}] });
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC1lcnJvci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2NvbXBvbmVudHMvZm9ybS1maWVsZC9zcmMvbGliL3NlcnZpY2VzL2Zvcm0tZmllbGQtZXJyb3Iuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUEwQixNQUFNLGVBQWUsQ0FBQztBQUVuRSxPQUFPLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLG9CQUFvQixFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDOUYsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7O0FBR25FLE1BQU0sK0JBQStCLEdBQUcsdUNBQXVDLENBQUM7QUFVaEYsTUFBTSxPQUFPLHFCQUFxQjtJQURsQztRQUVtQixXQUFNLEdBQUcsMkJBQTJCLEVBQUUsQ0FBQztRQUN2QyxpQkFBWSxHQUFHLElBQUksZUFBZSxDQUEwQixJQUFJLENBQUMsQ0FBQztRQUNsRSxtQkFBYyxHQUFHLElBQUksZUFBZSxDQUF3QixFQUFFLENBQUMsQ0FBQztRQUVqRSxXQUFNLEdBQUcsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQ25GLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLFlBQVksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxZQUFZLENBQUMsQ0FBQyxFQUN0RSxvQkFBb0IsRUFBRSxFQUN0QixXQUFXLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FDaEMsQ0FBQztRQUNjLGNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDO0tBd0M5RTtJQXRDQyxJQUFXLFFBQVE7UUFDakIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxLQUFLLElBQUksQ0FBQztJQUMvQyxDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM3QixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM3QixJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDakMsQ0FBQztJQUVNLFFBQVEsQ0FBQyxNQUFnQztRQUM5QyxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ1gsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDOUI7YUFBTTtZQUNMLE1BQU0sQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNqRCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO1NBQzFDO0lBQ0gsQ0FBQztJQUVNLG1CQUFtQixDQUFDLEdBQXVCLEVBQUUsUUFBOEI7UUFDaEYsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksK0JBQStCLENBQUMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQ3RILENBQUM7SUFFTyxZQUFZLENBQUMsS0FBOEIsRUFBRSxZQUFtQztRQUN0RixJQUFJLENBQUMsS0FBSztZQUFFLE9BQU8sSUFBSSxDQUFDO1FBQ3hCLE1BQU0sRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLEdBQUcsS0FBSyxDQUFDO1FBQy9CLE1BQU0sT0FBTyxHQUFHLFlBQVksQ0FBQyxHQUFHLENBQUMsSUFBSSxZQUFZLENBQUMsK0JBQStCLENBQUMsQ0FBQztRQUNuRixJQUFJLGFBQWEsQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUMxQixPQUFPO2dCQUNMLE9BQU87Z0JBQ1AsT0FBTyxFQUFFLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRTthQUNoQyxDQUFDO1NBQ0g7UUFFRCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUM7UUFDbkQsT0FBTyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLFVBQVUsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDMUUsQ0FBQzs7a0hBakRVLHFCQUFxQjtzSEFBckIscUJBQXFCOzJGQUFyQixxQkFBcUI7a0JBRGpDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBPbkRlc3Ryb3ksIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBWYWxpZGF0aW9uRXJyb3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgaXNGdW5jdGlvbiwgaXNUZW1wbGF0ZVJlZiB9IGZyb20gJ0BvZHgvYW5ndWxhci91dGlscyc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIHNoYXJlUmVwbGF5IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBpbmplY3RGb3JtRmllbGRNb2R1bGVDb25maWcgfSBmcm9tICcuLi9mb3JtLWZpZWxkLmNvbmZpZyc7XG5pbXBvcnQgeyBGb3JtRmllbGRFcnJvciB9IGZyb20gJy4uL21vZGVscyc7XG5cbmNvbnN0IERFRkFVTFRfQ1VTVE9NX0ZPUk1fRklFTERfRVJST1IgPSAnQG9keC9hbmd1bGFyL2Zvcm0tZmllbGQvZGVmYXVsdC1lcnJvcic7XG5cbmludGVyZmFjZSBOZ0Zvcm1GaWVsZEVycm9yIHtcbiAga2V5OiBzdHJpbmc7XG4gIGNvbnRleHQ6IHVua25vd247XG59XG5cbnR5cGUgQ3VzdG9tRm9ybUZpZWxkRXJyb3JzID0gUmVjb3JkPHN0cmluZywgVGVtcGxhdGVSZWY8dW5rbm93bj4+O1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRm9ybUZpZWxkRXJyb3JTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSByZWFkb25seSBjb25maWcgPSBpbmplY3RGb3JtRmllbGRNb2R1bGVDb25maWcoKTtcbiAgcHJpdmF0ZSByZWFkb25seSBmaWVsZEVycm9yJCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE5nRm9ybUZpZWxkRXJyb3IgfCBudWxsPihudWxsKTtcbiAgcHJpdmF0ZSByZWFkb25seSBjdXN0b21FcnJvcnMkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Q3VzdG9tRm9ybUZpZWxkRXJyb3JzPih7fSk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGVycm9yJCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMuZmllbGRFcnJvciQkLCB0aGlzLmN1c3RvbUVycm9ycyQkXSkucGlwZShcbiAgICBtYXAoKFtlcnJvciwgY3VzdG9tRXJyb3JzXSkgPT4gdGhpcy5yZXNvbHZlRXJyb3IoZXJyb3IsIGN1c3RvbUVycm9ycykpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgc2hhcmVSZXBsYXkoeyByZWZDb3VudDogdHJ1ZSB9KVxuICApO1xuICBwdWJsaWMgcmVhZG9ubHkgaGFzRXJyb3IkID0gdGhpcy5lcnJvciQucGlwZShtYXAoKGVycm9yKSA9PiBlcnJvciAhPT0gbnVsbCkpO1xuXG4gIHB1YmxpYyBnZXQgaGFzRXJyb3IoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZmllbGRFcnJvciQkLmdldFZhbHVlKCkgIT09IG51bGw7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5maWVsZEVycm9yJCQubmV4dChudWxsKTtcbiAgICB0aGlzLmN1c3RvbUVycm9ycyQkLm5leHQoe30pO1xuICAgIHRoaXMuZmllbGRFcnJvciQkLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5jdXN0b21FcnJvcnMkJC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgcHVibGljIHNldEVycm9yKGVycm9ycz86IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsKTogdm9pZCB7XG4gICAgaWYgKCFlcnJvcnMpIHtcbiAgICAgIHRoaXMuZmllbGRFcnJvciQkLm5leHQobnVsbCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IFtrZXksIGNvbnRleHRdID0gT2JqZWN0LmVudHJpZXMoZXJyb3JzKVswXTtcbiAgICAgIHRoaXMuZmllbGRFcnJvciQkLm5leHQoeyBrZXksIGNvbnRleHQgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyQ3VzdG9tRXJyb3Ioa2V5OiBzdHJpbmcgfCB1bmRlZmluZWQsIHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjx1bmtub3duPik6IHZvaWQge1xuICAgIHRoaXMuY3VzdG9tRXJyb3JzJCQubmV4dCh7IC4uLnRoaXMuY3VzdG9tRXJyb3JzJCQuZ2V0VmFsdWUoKSwgW2tleSB8fCBERUZBVUxUX0NVU1RPTV9GT1JNX0ZJRUxEX0VSUk9SXTogdGVtcGxhdGUgfSk7XG4gIH1cblxuICBwcml2YXRlIHJlc29sdmVFcnJvcihlcnJvcjogTmdGb3JtRmllbGRFcnJvciB8IG51bGwsIGN1c3RvbUVycm9yczogQ3VzdG9tRm9ybUZpZWxkRXJyb3JzKTogRm9ybUZpZWxkRXJyb3IgfCBudWxsIHtcbiAgICBpZiAoIWVycm9yKSByZXR1cm4gbnVsbDtcbiAgICBjb25zdCB7IGtleSwgY29udGV4dCB9ID0gZXJyb3I7XG4gICAgY29uc3QgbWVzc2FnZSA9IGN1c3RvbUVycm9yc1trZXldID8/IGN1c3RvbUVycm9yc1tERUZBVUxUX0NVU1RPTV9GT1JNX0ZJRUxEX0VSUk9SXTtcbiAgICBpZiAoaXNUZW1wbGF0ZVJlZihtZXNzYWdlKSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbWVzc2FnZSxcbiAgICAgICAgY29udGV4dDogeyAkaW1wbGljaXQ6IGNvbnRleHQgfSxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgY29uc3QgZ2V0TWVzc2FnZSA9IHRoaXMuY29uZmlnLmVycm9yc1trZXldID8/IG51bGw7XG4gICAgcmV0dXJuIGlzRnVuY3Rpb24oZ2V0TWVzc2FnZSkgPyB7IG1lc3NhZ2U6IGdldE1lc3NhZ2UoY29udGV4dCkgfSA6IG51bGw7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './form-field-error.service';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9mb3JtLWZpZWxkL3NyYy9saWIvc2VydmljZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyw0QkFBNEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZm9ybS1maWVsZC1lcnJvci5zZXJ2aWNlJztcbiJdfQ==
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './index';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2R4LWFuZ3VsYXItY29tcG9uZW50cy1mb3JtLWZpZWxkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2NvbXBvbmVudHMvZm9ybS1maWVsZC9zcmMvb2R4LWFuZ3VsYXItY29tcG9uZW50cy1mb3JtLWZpZWxkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
|
|
@@ -2,9 +2,9 @@ import { Directive } from '@angular/core';
|
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
export class HeaderAvatarDirective {
|
|
4
4
|
}
|
|
5
|
-
HeaderAvatarDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.
|
|
6
|
-
HeaderAvatarDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.
|
|
7
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.
|
|
5
|
+
HeaderAvatarDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: HeaderAvatarDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
6
|
+
HeaderAvatarDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.8", type: HeaderAvatarDirective, isStandalone: true, selector: "button[odxHeaderAvatar]", host: { properties: { "class.odx-header__avatar": "true" } }, ngImport: i0 });
|
|
7
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: HeaderAvatarDirective, decorators: [{
|
|
8
8
|
type: Directive,
|
|
9
9
|
args: [{
|
|
10
10
|
standalone: true,
|
|
@@ -2,12 +2,11 @@ import { Directive } from '@angular/core';
|
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
export class HeaderTitleDirective {
|
|
4
4
|
}
|
|
5
|
-
HeaderTitleDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.
|
|
6
|
-
HeaderTitleDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.
|
|
7
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.
|
|
5
|
+
HeaderTitleDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: HeaderTitleDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
6
|
+
HeaderTitleDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.8", type: HeaderTitleDirective, isStandalone: true, selector: "odx-header-title", host: { properties: { "class.odx-header__title": "true" } }, ngImport: i0 });
|
|
7
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: HeaderTitleDirective, decorators: [{
|
|
8
8
|
type: Directive,
|
|
9
9
|
args: [{
|
|
10
|
-
// eslint-disable-next-line @angular-eslint/directive-selector
|
|
11
10
|
selector: 'odx-header-title',
|
|
12
11
|
standalone: true,
|
|
13
12
|
host: {
|
|
@@ -15,4 +14,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImpor
|
|
|
15
14
|
},
|
|
16
15
|
}]
|
|
17
16
|
}] });
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLXRpdGxlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jb21wb25lbnRzL2hlYWRlci9zcmMvbGliL2RpcmVjdGl2ZXMvaGVhZGVyLXRpdGxlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQVMxQyxNQUFNLE9BQU8sb0JBQW9COztpSEFBcEIsb0JBQW9CO3FHQUFwQixvQkFBb0I7MkZBQXBCLG9CQUFvQjtrQkFQaEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsa0JBQWtCO29CQUM1QixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsSUFBSSxFQUFFO3dCQUNKLDJCQUEyQixFQUFFLE1BQU07cUJBQ3BDO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ29keC1oZWFkZXItdGl0bGUnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBob3N0OiB7XG4gICAgJ1tjbGFzcy5vZHgtaGVhZGVyX190aXRsZV0nOiAndHJ1ZScsXG4gIH0sXG59KVxuZXhwb3J0IGNsYXNzIEhlYWRlclRpdGxlRGlyZWN0aXZlIHt9XG4iXX0=
|