@fundamental-ngx/cdk 0.56.5 → 0.57.0-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/data-source/index.d.ts +236 -8
- package/fesm2022/fundamental-ngx-cdk-data-source.mjs +7 -7
- package/fesm2022/fundamental-ngx-cdk-data-source.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-cdk-forms.mjs +10 -10
- package/fesm2022/fundamental-ngx-cdk-forms.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-cdk-utils.mjs +302 -300
- package/fesm2022/fundamental-ngx-cdk-utils.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-cdk.mjs +4 -4
- package/fesm2022/fundamental-ngx-cdk.mjs.map +1 -1
- package/forms/index.d.ts +396 -12
- package/index.d.ts +12 -1
- package/package.json +8 -8
- package/utils/index.d.ts +3253 -24
- package/data-source/base/abstract-data-provider.class.d.ts +0 -54
- package/data-source/base/base-data-source.class.d.ts +0 -64
- package/data-source/data-source.directive.d.ts +0 -46
- package/data-source/data-source.module.d.ts +0 -7
- package/data-source/helpers/apply-datasource-directive.d.ts +0 -6
- package/data-source/helpers/common.d.ts +0 -7
- package/data-source/helpers/is-datasource.d.ts +0 -5
- package/data-source/models/data-source-provider.d.ts +0 -22
- package/data-source/models/data-source.d.ts +0 -16
- package/data-source/models/index.d.ts +0 -3
- package/data-source/models/matching-strategy.d.ts +0 -10
- package/data-source/tokens.d.ts +0 -6
- package/forms/cva/cva-control.class.d.ts +0 -25
- package/forms/cva/cva.directive.d.ts +0 -181
- package/forms/forms.module.d.ts +0 -7
- package/forms/helpers/state.d.ts +0 -3
- package/forms/models/control-type.model.d.ts +0 -6
- package/forms/models/cva.d.ts +0 -4
- package/forms/models/form-error.d.ts +0 -36
- package/forms/models/form-field.d.ts +0 -88
- package/forms/models/form-state.d.ts +0 -2
- package/forms/models/select-item.d.ts +0 -47
- package/forms/tokens/form-field-control.token.d.ts +0 -3
- package/forms/tokens/form-field.token.d.ts +0 -3
- package/fundamental-ngx.module.d.ts +0 -9
- package/utils/abstract-fd-ngx-class.d.ts +0 -28
- package/utils/async-strategy/function-strategy.class.d.ts +0 -8
- package/utils/async-strategy/index.d.ts +0 -6
- package/utils/async-strategy/observable-strategy.class.d.ts +0 -9
- package/utils/async-strategy/promise-strategy.class.d.ts +0 -8
- package/utils/async-strategy/select-strategy.class.d.ts +0 -8
- package/utils/async-strategy/subscription-strategy.interface.d.ts +0 -10
- package/utils/async-strategy/value-strategy.class.d.ts +0 -8
- package/utils/coercion/array.d.ts +0 -2
- package/utils/components/dynamic-portal/dynamic-portal.component.d.ts +0 -36
- package/utils/components/index.d.ts +0 -1
- package/utils/consts/error-messages.d.ts +0 -3
- package/utils/consts/index.d.ts +0 -4
- package/utils/consts/overflow-priority-score.d.ts +0 -2
- package/utils/consts/unicode-letters.regex.d.ts +0 -7
- package/utils/consts/unicode-numbers.regex.d.ts +0 -6
- package/utils/datatypes/color-accent.datatype.d.ts +0 -3
- package/utils/datatypes/hash.datatype.d.ts +0 -3
- package/utils/datatypes/index.d.ts +0 -4
- package/utils/datatypes/object-nesting.types.d.ts +0 -4
- package/utils/datatypes/size.datatype.d.ts +0 -1
- package/utils/decorators/apply-css-class.decorator.d.ts +0 -10
- package/utils/decorators/apply-css-style.decorator.d.ts +0 -10
- package/utils/decorators/coerce-boolean.d.ts +0 -4
- package/utils/decorators/coerce-css-pixel.d.ts +0 -1
- package/utils/decorators/index.d.ts +0 -5
- package/utils/decorators/setter-alternator.d.ts +0 -4
- package/utils/deprecated-selector.class.d.ts +0 -18
- package/utils/directives/auto-complete/auto-complete.directive.d.ts +0 -59
- package/utils/directives/auto-complete/auto-complete.module.d.ts +0 -7
- package/utils/directives/breakpoints/breakpoint.directive.d.ts +0 -78
- package/utils/directives/breakpoints/responsive-breakpoints.d.ts +0 -10
- package/utils/directives/clicked/clicked-behavior.module.d.ts +0 -16
- package/utils/directives/clicked/clicked-event.plugin.d.ts +0 -26
- package/utils/directives/clicked/clicked.directive.d.ts +0 -17
- package/utils/directives/clicked/element-click.observable.d.ts +0 -8
- package/utils/directives/clicked/fdk-clicked-provider.service.d.ts +0 -23
- package/utils/directives/clicked/index.d.ts +0 -5
- package/utils/directives/clicked/provide-fdk-clicked.d.ts +0 -11
- package/utils/directives/disabled/default-disabled-view-modifier.d.ts +0 -9
- package/utils/directives/disabled/disabled-behavior.directive.d.ts +0 -35
- package/utils/directives/disabled/disabled-behavior.interface.d.ts +0 -7
- package/utils/directives/disabled/disabled-behavior.module.d.ts +0 -7
- package/utils/directives/disabled/disabled-view-modifier.interface.d.ts +0 -3
- package/utils/directives/disabled/disabled.observer.d.ts +0 -18
- package/utils/directives/disabled/fdk-disabled-provider.service.d.ts +0 -35
- package/utils/directives/disabled/fdk-disabled.token.d.ts +0 -3
- package/utils/directives/disabled/index.d.ts +0 -8
- package/utils/directives/disabled/set-disabled-state.d.ts +0 -4
- package/utils/directives/focus-key-manager/focus-key-manager-helpers.module.d.ts +0 -8
- package/utils/directives/focus-key-manager/focus-key-manager-item.directive.d.ts +0 -30
- package/utils/directives/focus-key-manager/focus-key-manager-list.directive.d.ts +0 -37
- package/utils/directives/focus-key-manager/focus-key-manager.tokens.d.ts +0 -3
- package/utils/directives/focus-key-manager/index.d.ts +0 -4
- package/utils/directives/focusable-grid/focusable-grid.directive.d.ts +0 -41
- package/utils/directives/focusable-grid/focusable-grid.module.d.ts +0 -8
- package/utils/directives/focusable-grid/focusable-grid.tokens.d.ts +0 -2
- package/utils/directives/focusable-grid/index.d.ts +0 -3
- package/utils/directives/focusable-item/focusable-item.directive.d.ts +0 -75
- package/utils/directives/focusable-item/focusable-item.module.d.ts +0 -7
- package/utils/directives/focusable-item/focusable-item.tokens.d.ts +0 -2
- package/utils/directives/focusable-item/focusable-list.position.d.ts +0 -4
- package/utils/directives/focusable-item/focusable.item.d.ts +0 -10
- package/utils/directives/focusable-item/focusable.observer.d.ts +0 -18
- package/utils/directives/focusable-item/get-item-element.d.ts +0 -7
- package/utils/directives/focusable-item/index.d.ts +0 -8
- package/utils/directives/focusable-item/indirect-focusable-item.directive.d.ts +0 -26
- package/utils/directives/focusable-item/is-element-focusable-by-default.d.ts +0 -4
- package/utils/directives/focusable-item/is-item-focusable.d.ts +0 -6
- package/utils/directives/focusable-list/focusable-list.directive.d.ts +0 -117
- package/utils/directives/focusable-list/focusable-list.module.d.ts +0 -8
- package/utils/directives/focusable-list/focusable-list.tokens.d.ts +0 -2
- package/utils/directives/focusable-list/index.d.ts +0 -5
- package/utils/directives/focusable-list/indirect-focusable-list.directive.d.ts +0 -25
- package/utils/directives/focusable-list/scroll.d.ts +0 -4
- package/utils/directives/ignore-click-on-selection/ignore-click-on-selection.directive.d.ts +0 -17
- package/utils/directives/ignore-click-on-selection/ignore-click-on-selection.module.d.ts +0 -7
- package/utils/directives/ignore-click-on-selection/tokens.d.ts +0 -2
- package/utils/directives/index.d.ts +0 -34
- package/utils/directives/initial-focus/initial-focus.directive.d.ts +0 -43
- package/utils/directives/initial-focus/initial-focus.module.d.ts +0 -7
- package/utils/directives/intersection-spy/intersection-spy.directive.d.ts +0 -18
- package/utils/directives/line-clamp/line-clamp.directive.d.ts +0 -91
- package/utils/directives/line-clamp/line-clamp.module.d.ts +0 -7
- package/utils/directives/only-digits/only-digits.directive.d.ts +0 -39
- package/utils/directives/only-digits/only-digits.module.d.ts +0 -7
- package/utils/directives/overflow-list/overflow-list-item.directive.d.ts +0 -9
- package/utils/directives/overflow-list/overflow-list.directive.d.ts +0 -60
- package/utils/directives/overflow-list/overflow-list.module.d.ts +0 -8
- package/utils/directives/readonly/default-readonly-view-modifier.d.ts +0 -9
- package/utils/directives/readonly/fdk-readonly-provider.service.d.ts +0 -35
- package/utils/directives/readonly/fdk-readonly.token.d.ts +0 -2
- package/utils/directives/readonly/index.d.ts +0 -9
- package/utils/directives/readonly/readonly-behavior.directive.d.ts +0 -24
- package/utils/directives/readonly/readonly-behavior.interface.d.ts +0 -7
- package/utils/directives/readonly/readonly-behavior.module.d.ts +0 -7
- package/utils/directives/readonly/readonly-view-modifier.interface.d.ts +0 -3
- package/utils/directives/readonly/readonly.observer.d.ts +0 -18
- package/utils/directives/readonly/set-readonly-state.d.ts +0 -4
- package/utils/directives/repeat/repeat.directive.d.ts +0 -17
- package/utils/directives/repeat/repeat.module.d.ts +0 -7
- package/utils/directives/resize/resize-handle.directive.d.ts +0 -9
- package/utils/directives/resize/resize.directive.d.ts +0 -60
- package/utils/directives/resize/resize.module.d.ts +0 -8
- package/utils/directives/resize-observer/index.d.ts +0 -1
- package/utils/directives/resize-observer/resize-observer.directive.d.ts +0 -20
- package/utils/directives/selectable-list/index.d.ts +0 -7
- package/utils/directives/selectable-list/select-component-root.token.d.ts +0 -10
- package/utils/directives/selectable-list/selectable-item.directive.d.ts +0 -46
- package/utils/directives/selectable-list/selectable-item.token.d.ts +0 -11
- package/utils/directives/selectable-list/selectable-list.directive.d.ts +0 -34
- package/utils/directives/selectable-list/selectable-list.module.d.ts +0 -8
- package/utils/directives/selectable-list/selectable-list.tokens.d.ts +0 -2
- package/utils/directives/selectable-list/selection.service.d.ts +0 -64
- package/utils/directives/template/template.directive.d.ts +0 -13
- package/utils/directives/template/template.module.d.ts +0 -7
- package/utils/directives/truncate/truncate.directive.d.ts +0 -55
- package/utils/directives/truncate/truncate.module.d.ts +0 -7
- package/utils/drag-and-drop/dnd-item/dnd-item.directive.d.ts +0 -95
- package/utils/drag-and-drop/dnd-keyboard-group/dnd-keyboard-group.directive.d.ts +0 -32
- package/utils/drag-and-drop/dnd-keyboard-item/dnd-keyboard-item.directive.d.ts +0 -61
- package/utils/drag-and-drop/dnd-list/dnd-list.directive.d.ts +0 -113
- package/utils/drag-and-drop/dnd.interfaces.d.ts +0 -40
- package/utils/drag-and-drop/drag-and-drop.module.d.ts +0 -11
- package/utils/drag-and-drop/index.d.ts +0 -7
- package/utils/drag-and-drop/tokens.d.ts +0 -3
- package/utils/dynamic-component/dynamic-component-config.d.ts +0 -8
- package/utils/dynamic-component/dynamic-component-container.d.ts +0 -24
- package/utils/dynamic-component/dynamic-component-injector.d.ts +0 -13
- package/utils/dynamic-component/dynamic-component.service.d.ts +0 -46
- package/utils/dynamic-component/index.d.ts +0 -4
- package/utils/functions/consumer-provider-factory.d.ts +0 -5
- package/utils/functions/element-size.d.ts +0 -12
- package/utils/functions/get-document-font-size.d.ts +0 -2
- package/utils/functions/index.d.ts +0 -13
- package/utils/functions/intersection-observable.d.ts +0 -8
- package/utils/functions/is-compact-density.d.ts +0 -7
- package/utils/functions/is-odd.d.ts +0 -6
- package/utils/functions/key-util.d.ts +0 -16
- package/utils/functions/module-deprecations-provider.d.ts +0 -5
- package/utils/functions/parser-file-size.d.ts +0 -2
- package/utils/functions/random-color-accent.d.ts +0 -3
- package/utils/functions/resize-observable.d.ts +0 -8
- package/utils/functions/scroll.d.ts +0 -7
- package/utils/functions/uuidv4-generator.d.ts +0 -2
- package/utils/helpers/destroy-observable.d.ts +0 -7
- package/utils/helpers/dfs.d.ts +0 -18
- package/utils/helpers/get-native-element.d.ts +0 -13
- package/utils/helpers/index.d.ts +0 -5
- package/utils/helpers/range-selector.d.ts +0 -84
- package/utils/helpers/warn-once.d.ts +0 -2
- package/utils/interfaces/content-density.d.ts +0 -1
- package/utils/interfaces/css-class-builder.interface.d.ts +0 -13
- package/utils/interfaces/css-style-builder.interface.d.ts +0 -5
- package/utils/interfaces/has-element-ref.interface.d.ts +0 -5
- package/utils/interfaces/index.d.ts +0 -7
- package/utils/interfaces/keyboard-support-item.interface.d.ts +0 -6
- package/utils/interfaces/module-deprecation.interface.d.ts +0 -8
- package/utils/interfaces/require.interface.d.ts +0 -6
- package/utils/list-item/list-item-utils.d.ts +0 -7
- package/utils/models/nullable.d.ts +0 -6
- package/utils/pipes/async-or-sync.pipe.d.ts +0 -21
- package/utils/pipes/displayFn.pipe.d.ts +0 -8
- package/utils/pipes/filter-strings.pipe.d.ts +0 -16
- package/utils/pipes/index.d.ts +0 -11
- package/utils/pipes/is-compact.pipe.d.ts +0 -9
- package/utils/pipes/make-async.pipe.d.ts +0 -12
- package/utils/pipes/pipe.module.d.ts +0 -16
- package/utils/pipes/safe.pipe.d.ts +0 -12
- package/utils/pipes/search-highlight.pipe.d.ts +0 -8
- package/utils/pipes/truncate.pipe.d.ts +0 -8
- package/utils/pipes/two-digits.pipe.d.ts +0 -8
- package/utils/pipes/value-by-path.pipe.d.ts +0 -8
- package/utils/services/content-density.service.d.ts +0 -19
- package/utils/services/destroyed.service.d.ts +0 -15
- package/utils/services/focus-trap.service.d.ts +0 -43
- package/utils/services/index.d.ts +0 -9
- package/utils/services/keyboard-support/keyboard-support.service.d.ts +0 -32
- package/utils/services/local-storage.service.d.ts +0 -13
- package/utils/services/observers/attribute.observer.d.ts +0 -26
- package/utils/services/resize-observer.service.d.ts +0 -34
- package/utils/services/rtl.service.d.ts +0 -14
- package/utils/services/tabbable-element.service.d.ts +0 -12
- package/utils/toast/base-toast-animations.d.ts +0 -7
- package/utils/toast/base-toast-positions.d.ts +0 -129
- package/utils/toast/base-toast.service.d.ts +0 -148
- package/utils/toast/classes/action-dismissible/base-toast-action-dismissible-ref.d.ts +0 -23
- package/utils/toast/classes/base-toast-animated-container.component.d.ts +0 -41
- package/utils/toast/classes/base-toast-config.d.ts +0 -53
- package/utils/toast/classes/base-toast-container.component.d.ts +0 -55
- package/utils/toast/classes/base-toast-overlay-container.d.ts +0 -16
- package/utils/toast/classes/base-toast-ref.d.ts +0 -35
- package/utils/toast/classes/duration-dismissible/base-toast-duration-dismissible-config.d.ts +0 -15
- package/utils/toast/classes/duration-dismissible/base-toast-duration-dismissible-container.component.d.ts +0 -20
- package/utils/toast/classes/duration-dismissible/base-toast-duration-dismissible-ref.d.ts +0 -20
- package/utils/toast/classes/duration-dismissible/base-toast-duration-dismissible.service.d.ts +0 -11
- package/utils/toast/index.d.ts +0 -15
- package/utils/toast/interfaces/toast-container-component.interface.d.ts +0 -14
- package/utils/toast/interfaces/toast-duration-dismissible-container-component.interface.d.ts +0 -6
- package/utils/toast/interfaces/toast-text-component.interface.d.ts +0 -5
- package/utils/tokens/module-deprecations.token.d.ts +0 -3
- package/utils/tokens/viewport-size.observable.d.ts +0 -8
- package/utils/typecheck.d.ts +0 -47
- package/utils/utils.module.d.ts +0 -25
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fundamental-ngx-cdk-forms.mjs","sources":["../../../../libs/cdk/forms/models/form-state.ts","../../../../libs/cdk/forms/helpers/state.ts","../../../../libs/cdk/forms/tokens/form-field-control.token.ts","../../../../libs/cdk/forms/tokens/form-field.token.ts","../../../../libs/cdk/forms/cva/cva.directive.ts","../../../../libs/cdk/forms/forms.module.ts","../../../../libs/cdk/forms/cva/cva-control.class.ts","../../../../libs/cdk/forms/models/form-field.ts","../../../../libs/cdk/forms/models/select-item.ts","../../../../libs/cdk/forms/fundamental-ngx-cdk-forms.ts"],"sourcesContent":["export const formStates = ['success', 'error', 'warning', 'default', 'information'] as const;\n\nexport type FormStates = (typeof formStates)[number];\n","import { formStates, FormStates } from '../models/form-state';\n\nconst stateSet = new Set<FormStates>(formStates);\n\n/** Checks if the given state is a valid control state. */\nexport function isValidControlState(value: any): value is FormStates {\n return stateSet.has(value);\n}\n","import { InjectionToken } from '@angular/core';\nimport { FormFieldControl } from '../models/form-field';\n\nexport const FD_FORM_FIELD_CONTROL = new InjectionToken<FormFieldControl>('FdFormFieldControl');\n","import { InjectionToken } from '@angular/core';\nimport { FormField } from '../models/form-field';\n\nexport const FD_FORM_FIELD = new InjectionToken<FormField>('FdFormField');\n","import { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport {\n AfterViewInit,\n Directive,\n DoCheck,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n ViewChild,\n computed,\n inject,\n isDevMode,\n signal\n} from '@angular/core';\nimport { ControlContainer, ControlValueAccessor, FormControl, NgControl, NgForm } from '@angular/forms';\nimport { HasElementRef, Nullable } from '@fundamental-ngx/cdk/utils';\nimport { Subject, Subscription } from 'rxjs';\nimport { isValidControlState } from '../helpers/state';\nimport { BaseCVA } from '../models/cva';\nimport { FormField, FormFieldControl } from '../models/form-field';\nimport { FormStates } from '../models/form-state';\nimport { FD_FORM_FIELD_CONTROL } from '../tokens/form-field-control.token';\nimport { FD_FORM_FIELD } from '../tokens/form-field.token';\n\nlet randomId = 0;\n\n@Directive({\n selector: '[fdkCva]',\n standalone: true\n})\nexport class CvaDirective<T = any>\n implements HasElementRef, BaseCVA, FormFieldControl, OnInit, DoCheck, AfterViewInit, OnDestroy, ControlValueAccessor\n{\n /** Input placeholder */\n @Input()\n placeholder: string;\n\n /**\n * The state of the form control - applies css classes.\n * Can be 'success', 'error', 'warning', 'default', 'information'.\n *\n * @default 'default'\n */\n @Input()\n set state(state: Nullable<FormStates>) {\n if (!state || isValidControlState(state)) {\n this._state$.set(state);\n } else if (isDevMode()) {\n console.warn(`Provided value \"${state}\" is not a valid option for FormStates type`);\n }\n }\n get state(): FormStates {\n return this.normalizedState$();\n }\n\n /** Holds the message with respect to state */\n @Input()\n stateMessage: Nullable<string>;\n\n /** Whether the input is disabled */\n @Input()\n set disabled(value: boolean) {\n this.setDisabledState(value);\n }\n get disabled(): boolean {\n if (this.ngControl && this.ngControl.disabled !== null) {\n return this.ngControl.disabled;\n }\n return this._disabled;\n }\n\n /**\n * readOnly Value to Mark component read only\n */\n @Input()\n readonly: boolean;\n\n /** Binds to control aria-labelledBy attribute */\n @Input()\n ariaLabelledBy: Nullable<string>;\n\n /** Sets control aria-label attribute value */\n @Input()\n ariaLabel: Nullable<string>;\n\n /**\n * Tell the component if we are in editing mode.\n */\n @Input()\n set editable(value: BooleanInput) {\n const newVal = coerceBooleanProperty(value);\n if (this._editable !== newVal) {\n this._editable = newVal;\n this._markForCheck();\n this.stateChanges.next('editable');\n }\n }\n get editable(): boolean {\n return this._editable;\n }\n\n /**\n * Name of the control.\n */\n @Input()\n name: string;\n\n /**\n * Emits when change detection is needed.\n */\n @Output()\n detectChanges = new EventEmitter<void>();\n\n /**\n * Emits when mark for changes detection is needed.\n */\n @Output()\n markForCheck = new EventEmitter<void>();\n\n /**\n * Reference to internal Input element\n */\n @ViewChild('inputElementRef', { static: true, read: ElementRef })\n protected _elementRef: ElementRef;\n\n /** @hidden */\n value: T;\n\n /** set when input field is mandatory form field */\n required: boolean;\n\n /**\n * See @FormFieldControl\n */\n focused = false;\n\n /** Whether control has errors */\n get controlInvalid(): boolean {\n return this._controlInvalid$();\n }\n\n /**\n * See @FormFieldControl\n */\n readonly stateChanges: Subject<any> = new Subject<any>();\n\n /** @hidden */\n readonly formField: FormField | null = inject(FD_FORM_FIELD, {\n skipSelf: true,\n optional: true\n });\n\n /**\n * NgControl instance.\n */\n readonly ngControl = inject(NgControl, {\n optional: true,\n host: true\n });\n\n /**\n * Form container instance. Usually ngForm or FormGroup directives.\n */\n readonly controlContainer = inject(ControlContainer, {\n optional: true,\n skipSelf: true\n });\n\n /**\n * Separate NgForm instance. For cases when formGroup is used with the form itself.\n */\n readonly ngForm = inject(NgForm, {\n optional: true,\n skipSelf: true\n });\n\n /** @hidden */\n readonly normalizedState$ = computed(() => {\n const storedState = this._state$();\n if (storedState) {\n return storedState;\n }\n\n if (!this._controlInvalid$()) {\n return 'default';\n }\n\n return this.formField?.getPriorityState() || 'default';\n });\n\n /** @hidden */\n protected _subscriptions = new Subscription();\n\n /**\n * A private property to hold the ElementRef which might be null\n */\n private _elementRefOrNull: ElementRef | null = inject(ElementRef, { optional: true });\n\n /**\n * Element reference.\n */\n get elementRef(): ElementRef {\n // Return a fallback ElementRef if _elementRefOrNull is null\n return this._elementRefOrNull || (this._elementRef as ElementRef);\n }\n\n /** @hidden */\n private _defaultId = `fd-input-id-${randomId++}`;\n\n /** ID for the Element */\n // eslint-disable-next-line @typescript-eslint/member-ordering\n @Input()\n id: string = this._defaultId;\n\n /** @hidden */\n private _disabled: boolean;\n /** @hidden */\n private _editable = true;\n\n /**\n * @hidden\n */\n private readonly _controlInvalid$ = signal(false);\n\n /** @hidden */\n private readonly _parentControl = inject(FD_FORM_FIELD_CONTROL, {\n skipSelf: true,\n optional: true\n });\n\n /**\n * @hidden\n * The state of the form control - applies css classes.\n * Can be `success`, `error`, `warning`, `information` or 'default'\n */\n private readonly _state$ = signal<Nullable<FormStates>>(null);\n\n /** @hidden */\n constructor() {\n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n /** @hidden */\n onChange: (value: any) => void = () => {};\n\n /** @hidden */\n onTouched = (): void => {};\n\n /** @hidden */\n ngOnInit(): void {\n // There may be cases when one form control is used as a base to build another form control.\n if (!this._parentControl) {\n this.formField?.registerFormFieldControl(this);\n }\n }\n\n /**\n * Re-validate and emit event to parent container on every CD cycle as they are some errors\n * that we can't subscribe to.\n */\n ngDoCheck(): void {\n if (this.ngControl) {\n this.updateErrorState();\n }\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n if (this.ngControl) {\n this._subscriptions.add(\n this.ngControl.statusChanges?.subscribe(() => {\n this._markForCheck();\n })\n );\n }\n\n const labelAndHelpId = `fdp-form-label-content-${this.id}`;\n // if not specified, associate label and inline help ids with the input,\n // else add these ids to the specified ones\n if (!this.ariaLabelledBy) {\n this.ariaLabelledBy = labelAndHelpId;\n } else {\n this.ariaLabelledBy += ' ' + labelAndHelpId;\n }\n this._markForCheck();\n }\n\n /** @hidden */\n registerOnChange(fn: (_: any) => void): void {\n this.onChange = fn;\n }\n\n /** @hidden */\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n this.stateChanges.complete();\n this.formField?.unregisterFormFieldControl(this);\n }\n\n /** @hidden */\n setDisabledState(isDisabled: BooleanInput): void {\n const newState = coerceBooleanProperty(isDisabled);\n this._markForCheck();\n if (newState !== this._disabled) {\n this._disabled = newState;\n this.stateChanges.next('setDisabledState');\n }\n }\n\n /**\n * Method for setting the value\n * @param value\n */\n writeValue(value: T): void {\n this.value = value;\n this.stateChanges.next('writeValue');\n this._markForCheck();\n }\n\n /**\n *\n * Keeps track of element focus\n */\n _onFocusChanged(isFocused: boolean): void {\n if (isFocused !== this.focused && (!this.disabled || !isFocused)) {\n this.focused = isFocused;\n this.stateChanges.next('_onFocusChanged');\n }\n\n if (!isFocused) {\n this.onTouched();\n }\n }\n\n /**\n * Handles even when we click on parent container which is the FormField Wrapping this\n * control\n */\n onContainerClick(event: MouseEvent): void {\n this.focus(event);\n }\n\n /**\n * In most of the cases when working with input element directly you should be just find to assign\n * variable to this element\n *\n * ```\n * <input #inputElementRef fd-form-control ...>\n * ```\n *\n * and this default behavior used. For other cases implement focus.\n *\n */\n focus(event?: MouseEvent): void {\n if (this._elementRef && !this.focused) {\n this._elementRef.nativeElement.focus(event);\n }\n }\n\n /**\n * Need re-validates errors on every CD iteration to make sure we are also\n * covering non-control errors, errors that happens outside of this control\n */\n updateErrorState(): void {\n const parent = this.ngForm;\n const parentControlContainer = this.controlContainer;\n const control = this.ngControl ? (this.ngControl.control as FormControl) : null;\n const newStatusIsError = !!(\n control?.invalid &&\n (control.dirty || control.touched || parent?.submitted || (parentControlContainer as any)?.submitted)\n );\n\n if (newStatusIsError !== this._controlInvalid$()) {\n this._controlInvalid$.set(newStatusIsError);\n this.stateChanges.next('updateErrorState');\n this._markForCheck();\n }\n }\n\n /**\n * Used to change the value of a control.\n * @param value the value to be applied\n * @param emitOnChange whether to emit \"onChange\" event.\n * Should be \"false\", if the change is made programmatically (internally) by the control, \"true\" otherwise\n */\n setValue(value: T, emitOnChange = true): void {\n if (value !== this.value) {\n this.writeValue(value);\n if (emitOnChange) {\n this.onChange(value);\n }\n this._markForCheck();\n }\n }\n\n /** @hidden */\n private _markForCheck(): void {\n this.markForCheck.emit();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CvaDirective } from './cva/cva.directive';\n\n@NgModule({\n imports: [CvaDirective],\n exports: [CvaDirective]\n})\nexport class FormsModule {}\n","import { ChangeDetectorRef, DestroyRef, inject, Injectable } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { CvaDirective } from './cva.directive';\n\n/**\n * Base ControlValueAccessor control class.\n * Used in conjunction with CvaDirective.\n *\n * This class performs generic change detection based on `CvaDirective` outputs.\n */\n@Injectable()\nexport class CvaControl<T> {\n /**\n * Control value accessor directive instance.\n */\n public cvaDirective = inject<CvaDirective<T>>(CvaDirective, {\n self: true,\n optional: true\n });\n\n /**\n * Change detector instance.\n */\n protected _changeDetector = inject(ChangeDetectorRef);\n\n /** @Hidden */\n protected _destroyRef = inject(DestroyRef);\n\n /** @hidden */\n listenToChanges(): void {\n this.cvaDirective?.markForCheck.pipe(takeUntilDestroyed(this._destroyRef)).subscribe(() => {\n this._changeDetector.detectChanges();\n });\n\n this.cvaDirective?.detectChanges.pipe(takeUntilDestroyed(this._destroyRef)).subscribe(() => {\n this._changeDetector.detectChanges();\n });\n }\n}\n","import { ElementRef, QueryList } from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport { Observable } from 'rxjs';\nimport { FormError } from './form-error';\nimport { FormStates } from './form-state';\n\n/**\n * FormField base class.\n *\n * This class is used to create form field components.\n *\n */\nexport abstract class FormField {\n /**\n * Register underlying form control\n */\n registerFormFieldControl: (control: FormFieldControl) => void;\n /**\n * Unregister underlying form control\n */\n unregisterFormFieldControl: (control: FormFieldControl) => void;\n\n /**\n * Set default columns layout\n */\n setDefaultColumnLayout: () => void;\n\n /** Gets field error priority state. */\n getPriorityState: () => FormStates;\n\n /** Groups errors. */\n groupErrors: () => void;\n\n /** Sets error directives from parent container */\n setErrorDirectives: (directives: QueryList<FormError>) => void;\n}\n\nexport interface FormFieldControl<T = any> {\n /**\n * Each input control has always a value. Need to make sure we keep a convention for\n * input fields\n */\n value: T | null;\n\n /**\n * Need to have a way to set placeholder to the input\n */\n placeholder: string;\n\n /**\n * Need to have a way to set Mandatory to the input field\n */\n required: boolean;\n\n /**\n * Sets id from FF to Input\n */\n id: string;\n\n /**\n * This should be coming from Parent.\n */\n editable: boolean;\n\n /**\n * The height of the extra content at the bottom of the form control,\n * which should not affect the alignment of form control and it's label\n */\n extraContentHeightPx?: number;\n\n /**\n *\n * Form Field listen for all the changes happening inside the input\n */\n stateChanges: Observable<void>;\n\n /**\n * Each input should inject its own ngControl and we should retrieve it\n */\n ngControl: NgControl | null;\n\n /** Whether the control is disabled. */\n disabled: boolean;\n\n /**\n * Keeps track if the form element is in focus\n */\n focused: boolean;\n\n /** Whether control has errors */\n controlInvalid: boolean;\n\n /** Corresponding element reference. */\n elementRef: ElementRef;\n\n /** Form field instance. */\n formField: Nullable<FormField>;\n\n /** Method for focusing on the element */\n focus(event?: MouseEvent): void;\n\n /**\n * Handles even when we click on parent container which is the FormField Wrapping this\n * control\n */\n onContainerClick(event: MouseEvent): void;\n}\n","/**\n * Interface SelectItem is used to deal with complex object in order to be able to format\n * custom label that is shown in the options.\n *\n * Used in various controls: Select, RadioGroup, CheckboxGroup, Combobox\n */\nexport interface SelectItem<T = any> {\n /**\n * Item text shown in the popup\n */\n label: string;\n\n /**\n * References to the object instance\n */\n value: T;\n disabled?: boolean;\n\n icon?: string;\n /**\n * Trigger values is a text for selected item\n */\n triggerValue?: string;\n\n isGroup?: boolean;\n secondaryText?: string;\n children?: SelectItem[];\n}\n\nexport interface OptionItem<T = any> {\n /** Item text */\n label: string;\n\n /**\n * References to the object instance\n */\n value: T;\n id?: string;\n isGroup?: boolean;\n secondaryText?: string;\n children?: OptionItem[];\n}\n\nexport interface SelectableOptionItem<T = any> extends OptionItem<T> {\n selected?: boolean;\n children?: SelectableOptionItem[];\n}\n\n/** @hidden */\nexport function isSelectableItem(item: SelectItem | any): item is SelectItem {\n return (\n item &&\n item.label !== undefined &&\n item.value !== undefined &&\n Object.prototype.hasOwnProperty.call(item, 'selected')\n );\n}\n\n/** @hidden */\nexport function isSelectItem(item: SelectItem | any): item is SelectItem {\n return item && item.label !== undefined && item.value !== undefined;\n}\n\nexport const isOptionItem = isSelectItem;\nexport const isSelectableOptionItem = isSelectableItem;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fundamental-ngx-cdk-forms.mjs","sources":["../tmp-esm2022/forms/models/form-state.js","../tmp-esm2022/forms/helpers/state.js","../tmp-esm2022/forms/tokens/form-field-control.token.js","../tmp-esm2022/forms/tokens/form-field.token.js","../tmp-esm2022/forms/cva/cva.directive.js","../tmp-esm2022/forms/forms.module.js","../tmp-esm2022/forms/cva/cva-control.class.js","../tmp-esm2022/forms/models/form-field.js","../tmp-esm2022/forms/models/select-item.js","../tmp-esm2022/forms/fundamental-ngx-cdk-forms.js"],"sourcesContent":["export const formStates = ['success', 'error', 'warning', 'default', 'information'];\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1zdGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY2RrL2Zvcm1zL21vZGVscy9mb3JtLXN0YXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxDQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxhQUFhLENBQVUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBmb3JtU3RhdGVzID0gWydzdWNjZXNzJywgJ2Vycm9yJywgJ3dhcm5pbmcnLCAnZGVmYXVsdCcsICdpbmZvcm1hdGlvbiddIGFzIGNvbnN0O1xuXG5leHBvcnQgdHlwZSBGb3JtU3RhdGVzID0gKHR5cGVvZiBmb3JtU3RhdGVzKVtudW1iZXJdO1xuIl19","import { formStates } from '../models/form-state';\nconst stateSet = new Set(formStates);\n/** Checks if the given state is a valid control state. */\nexport function isValidControlState(value) {\n return stateSet.has(value);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay9mb3Jtcy9oZWxwZXJzL3N0YXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQWMsTUFBTSxzQkFBc0IsQ0FBQztBQUU5RCxNQUFNLFFBQVEsR0FBRyxJQUFJLEdBQUcsQ0FBYSxVQUFVLENBQUMsQ0FBQztBQUVqRCwwREFBMEQ7QUFDMUQsTUFBTSxVQUFVLG1CQUFtQixDQUFDLEtBQVU7SUFDMUMsT0FBTyxRQUFRLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQy9CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmb3JtU3RhdGVzLCBGb3JtU3RhdGVzIH0gZnJvbSAnLi4vbW9kZWxzL2Zvcm0tc3RhdGUnO1xuXG5jb25zdCBzdGF0ZVNldCA9IG5ldyBTZXQ8Rm9ybVN0YXRlcz4oZm9ybVN0YXRlcyk7XG5cbi8qKiBDaGVja3MgaWYgdGhlIGdpdmVuIHN0YXRlIGlzIGEgdmFsaWQgY29udHJvbCBzdGF0ZS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1ZhbGlkQ29udHJvbFN0YXRlKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBGb3JtU3RhdGVzIHtcbiAgICByZXR1cm4gc3RhdGVTZXQuaGFzKHZhbHVlKTtcbn1cbiJdfQ==","import { InjectionToken } from '@angular/core';\nexport const FD_FORM_FIELD_CONTROL = new InjectionToken('FdFormFieldControl');\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC1jb250cm9sLnRva2VuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvZm9ybXMvdG9rZW5zL2Zvcm0tZmllbGQtY29udHJvbC50b2tlbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRy9DLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLElBQUksY0FBYyxDQUFtQixvQkFBb0IsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1GaWVsZENvbnRyb2wgfSBmcm9tICcuLi9tb2RlbHMvZm9ybS1maWVsZCc7XG5cbmV4cG9ydCBjb25zdCBGRF9GT1JNX0ZJRUxEX0NPTlRST0wgPSBuZXcgSW5qZWN0aW9uVG9rZW48Rm9ybUZpZWxkQ29udHJvbD4oJ0ZkRm9ybUZpZWxkQ29udHJvbCcpO1xuIl19","import { InjectionToken } from '@angular/core';\nexport const FD_FORM_FIELD = new InjectionToken('FdFormField');\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC50b2tlbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY2RrL2Zvcm1zL3Rva2Vucy9mb3JtLWZpZWxkLnRva2VuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHL0MsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLElBQUksY0FBYyxDQUFZLGFBQWEsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1GaWVsZCB9IGZyb20gJy4uL21vZGVscy9mb3JtLWZpZWxkJztcblxuZXhwb3J0IGNvbnN0IEZEX0ZPUk1fRklFTEQgPSBuZXcgSW5qZWN0aW9uVG9rZW48Rm9ybUZpZWxkPignRmRGb3JtRmllbGQnKTtcbiJdfQ==","import { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { Directive, ElementRef, EventEmitter, Input, Output, ViewChild, computed, inject, isDevMode, signal } from '@angular/core';\nimport { ControlContainer, NgControl, NgForm } from '@angular/forms';\nimport { Subject, Subscription } from 'rxjs';\nimport { isValidControlState } from '../helpers/state';\nimport { FD_FORM_FIELD_CONTROL } from '../tokens/form-field-control.token';\nimport { FD_FORM_FIELD } from '../tokens/form-field.token';\nimport * as i0 from \"@angular/core\";\nlet randomId = 0;\nexport class CvaDirective {\n /**\n * The state of the form control - applies css classes.\n * Can be 'success', 'error', 'warning', 'default', 'information'.\n *\n * @default 'default'\n */\n set state(state) {\n if (!state || isValidControlState(state)) {\n this._state$.set(state);\n }\n else if (isDevMode()) {\n console.warn(`Provided value \"${state}\" is not a valid option for FormStates type`);\n }\n }\n get state() {\n return this.normalizedState$();\n }\n /** Whether the input is disabled */\n set disabled(value) {\n this.setDisabledState(value);\n }\n get disabled() {\n if (this.ngControl && this.ngControl.disabled !== null) {\n return this.ngControl.disabled;\n }\n return this._disabled;\n }\n /**\n * Tell the component if we are in editing mode.\n */\n set editable(value) {\n const newVal = coerceBooleanProperty(value);\n if (this._editable !== newVal) {\n this._editable = newVal;\n this._markForCheck();\n this.stateChanges.next('editable');\n }\n }\n get editable() {\n return this._editable;\n }\n /** Whether control has errors */\n get controlInvalid() {\n return this._controlInvalid$();\n }\n /**\n * Element reference.\n */\n get elementRef() {\n // Return a fallback ElementRef if _elementRefOrNull is null\n return this._elementRefOrNull || this._elementRef;\n }\n /** @hidden */\n constructor() {\n /**\n * Emits when change detection is needed.\n */\n this.detectChanges = new EventEmitter();\n /**\n * Emits when mark for changes detection is needed.\n */\n this.markForCheck = new EventEmitter();\n /**\n * See @FormFieldControl\n */\n this.focused = false;\n /**\n * See @FormFieldControl\n */\n this.stateChanges = new Subject();\n /** @hidden */\n this.formField = inject(FD_FORM_FIELD, {\n skipSelf: true,\n optional: true\n });\n /**\n * NgControl instance.\n */\n this.ngControl = inject(NgControl, {\n optional: true,\n host: true\n });\n /**\n * Form container instance. Usually ngForm or FormGroup directives.\n */\n this.controlContainer = inject(ControlContainer, {\n optional: true,\n skipSelf: true\n });\n /**\n * Separate NgForm instance. For cases when formGroup is used with the form itself.\n */\n this.ngForm = inject(NgForm, {\n optional: true,\n skipSelf: true\n });\n /** @hidden */\n this.normalizedState$ = computed(() => {\n const storedState = this._state$();\n if (storedState) {\n return storedState;\n }\n if (!this._controlInvalid$()) {\n return 'default';\n }\n return this.formField?.getPriorityState() || 'default';\n });\n /** @hidden */\n this._subscriptions = new Subscription();\n /**\n * A private property to hold the ElementRef which might be null\n */\n this._elementRefOrNull = inject(ElementRef, { optional: true });\n /** @hidden */\n this._defaultId = `fd-input-id-${randomId++}`;\n /** ID for the Element */\n // eslint-disable-next-line @typescript-eslint/member-ordering\n this.id = this._defaultId;\n /** @hidden */\n this._editable = true;\n /**\n * @hidden\n */\n this._controlInvalid$ = signal(false);\n /** @hidden */\n this._parentControl = inject(FD_FORM_FIELD_CONTROL, {\n skipSelf: true,\n optional: true\n });\n /**\n * @hidden\n * The state of the form control - applies css classes.\n * Can be `success`, `error`, `warning`, `information` or 'default'\n */\n this._state$ = signal(null);\n /** @hidden */\n this.onChange = () => { };\n /** @hidden */\n this.onTouched = () => { };\n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n }\n /** @hidden */\n ngOnInit() {\n // There may be cases when one form control is used as a base to build another form control.\n if (!this._parentControl) {\n this.formField?.registerFormFieldControl(this);\n }\n }\n /**\n * Re-validate and emit event to parent container on every CD cycle as they are some errors\n * that we can't subscribe to.\n */\n ngDoCheck() {\n if (this.ngControl) {\n this.updateErrorState();\n }\n }\n /** @hidden */\n ngAfterViewInit() {\n if (this.ngControl) {\n this._subscriptions.add(this.ngControl.statusChanges?.subscribe(() => {\n this._markForCheck();\n }));\n }\n const labelAndHelpId = `fdp-form-label-content-${this.id}`;\n // if not specified, associate label and inline help ids with the input,\n // else add these ids to the specified ones\n if (!this.ariaLabelledBy) {\n this.ariaLabelledBy = labelAndHelpId;\n }\n else {\n this.ariaLabelledBy += ' ' + labelAndHelpId;\n }\n this._markForCheck();\n }\n /** @hidden */\n registerOnChange(fn) {\n this.onChange = fn;\n }\n /** @hidden */\n registerOnTouched(fn) {\n this.onTouched = fn;\n }\n /** @hidden */\n ngOnDestroy() {\n this._subscriptions.unsubscribe();\n this.stateChanges.complete();\n this.formField?.unregisterFormFieldControl(this);\n }\n /** @hidden */\n setDisabledState(isDisabled) {\n const newState = coerceBooleanProperty(isDisabled);\n this._markForCheck();\n if (newState !== this._disabled) {\n this._disabled = newState;\n this.stateChanges.next('setDisabledState');\n }\n }\n /**\n * Method for setting the value\n * @param value\n */\n writeValue(value) {\n this.value = value;\n this.stateChanges.next('writeValue');\n this._markForCheck();\n }\n /**\n *\n * Keeps track of element focus\n */\n _onFocusChanged(isFocused) {\n if (isFocused !== this.focused && (!this.disabled || !isFocused)) {\n this.focused = isFocused;\n this.stateChanges.next('_onFocusChanged');\n }\n if (!isFocused) {\n this.onTouched();\n }\n }\n /**\n * Handles even when we click on parent container which is the FormField Wrapping this\n * control\n */\n onContainerClick(event) {\n this.focus(event);\n }\n /**\n * In most of the cases when working with input element directly you should be just find to assign\n * variable to this element\n *\n * ```\n * <input #inputElementRef fd-form-control ...>\n * ```\n *\n * and this default behavior used. For other cases implement focus.\n *\n */\n focus(event) {\n if (this._elementRef && !this.focused) {\n this._elementRef.nativeElement.focus(event);\n }\n }\n /**\n * Need re-validates errors on every CD iteration to make sure we are also\n * covering non-control errors, errors that happens outside of this control\n */\n updateErrorState() {\n const parent = this.ngForm;\n const parentControlContainer = this.controlContainer;\n const control = this.ngControl ? this.ngControl.control : null;\n const newStatusIsError = !!(control?.invalid &&\n (control.dirty || control.touched || parent?.submitted || parentControlContainer?.submitted));\n if (newStatusIsError !== this._controlInvalid$()) {\n this._controlInvalid$.set(newStatusIsError);\n this.stateChanges.next('updateErrorState');\n this._markForCheck();\n }\n }\n /**\n * Used to change the value of a control.\n * @param value the value to be applied\n * @param emitOnChange whether to emit \"onChange\" event.\n * Should be \"false\", if the change is made programmatically (internally) by the control, \"true\" otherwise\n */\n setValue(value, emitOnChange = true) {\n if (value !== this.value) {\n this.writeValue(value);\n if (emitOnChange) {\n this.onChange(value);\n }\n this._markForCheck();\n }\n }\n /** @hidden */\n _markForCheck() {\n this.markForCheck.emit();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.2\", ngImport: i0, type: CvaDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.0.2\", type: CvaDirective, isStandalone: true, selector: \"[fdkCva]\", inputs: { placeholder: \"placeholder\", state: \"state\", stateMessage: \"stateMessage\", disabled: \"disabled\", readonly: \"readonly\", ariaLabelledBy: \"ariaLabelledBy\", ariaLabel: \"ariaLabel\", editable: \"editable\", name: \"name\", id: \"id\" }, outputs: { detectChanges: \"detectChanges\", markForCheck: \"markForCheck\" }, viewQueries: [{ propertyName: \"_elementRef\", first: true, predicate: [\"inputElementRef\"], descendants: true, read: ElementRef, static: true }], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.2\", ngImport: i0, type: CvaDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[fdkCva]',\n standalone: true\n }]\n }], ctorParameters: () => [], propDecorators: { placeholder: [{\n type: Input\n }], state: [{\n type: Input\n }], stateMessage: [{\n type: Input\n }], disabled: [{\n type: Input\n }], readonly: [{\n type: Input\n }], ariaLabelledBy: [{\n type: Input\n }], ariaLabel: [{\n type: Input\n }], editable: [{\n type: Input\n }], name: [{\n type: Input\n }], detectChanges: [{\n type: Output\n }], markForCheck: [{\n type: Output\n }], _elementRef: [{\n type: ViewChild,\n args: ['inputElementRef', { static: true, read: ElementRef }]\n }], id: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3ZhLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY2RrL2Zvcm1zL2N2YS9jdmEuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0IscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RSxPQUFPLEVBRUgsU0FBUyxFQUVULFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFDTixTQUFTLEVBQ1QsUUFBUSxFQUNSLE1BQU0sRUFDTixTQUFTLEVBQ1QsTUFBTSxFQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBcUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXhHLE9BQU8sRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzdDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBSXZELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7QUFFM0QsSUFBSSxRQUFRLEdBQUcsQ0FBQyxDQUFDO0FBTWpCLE1BQU0sT0FBTyxZQUFZO0lBT3JCOzs7OztPQUtHO0lBQ0gsSUFDSSxLQUFLLENBQUMsS0FBMkI7UUFDakMsSUFBSSxDQUFDLEtBQUssSUFBSSxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVCLENBQUM7YUFBTSxJQUFJLFNBQVMsRUFBRSxFQUFFLENBQUM7WUFDckIsT0FBTyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsS0FBSyw2Q0FBNkMsQ0FBQyxDQUFDO1FBQ3hGLENBQUM7SUFDTCxDQUFDO0lBQ0QsSUFB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TixhQUFhO1FBQ2pCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDN0IsQ0FBQzs4R0F2WFEsWUFBWTtrR0FBWixZQUFZLG9kQTRGK0IsVUFBVTs7MkZBNUZyRCxZQUFZO2tCQUp4QixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxVQUFVO29CQUNwQixVQUFVLEVBQUUsSUFBSTtpQkFDbkI7d0RBTUcsV0FBVztzQkFEVixLQUFLO2dCQVVGLEtBQUs7c0JBRFIsS0FBSztnQkFjTixZQUFZO3NCQURYLEtBQUs7Z0JBS0YsUUFBUTtzQkFEWCxLQUFLO2dCQWVOLFFBQVE7c0JBRFAsS0FBSztnQkFLTixjQUFjO3NCQURiLEtBQUs7Z0JBS04sU0FBUztzQkFEUixLQUFLO2dCQU9GLFFBQVE7c0JBRFgsS0FBSztnQkFpQk4sSUFBSTtzQkFESCxLQUFLO2dCQU9OLGFBQWE7c0JBRFosTUFBTTtnQkFPUCxZQUFZO3NCQURYLE1BQU07Z0JBT0csV0FBVztzQkFEcEIsU0FBUzt1QkFBQyxpQkFBaUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTtnQkEwRmhFLEVBQUU7c0JBREQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJvb2xlYW5JbnB1dCwgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBEaXJlY3RpdmUsXG4gICAgRG9DaGVjayxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbnB1dCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIE91dHB1dCxcbiAgICBWaWV3Q2hpbGQsXG4gICAgY29tcHV0ZWQsXG4gICAgaW5qZWN0LFxuICAgIGlzRGV2TW9kZSxcbiAgICBzaWduYWxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sQ29udGFpbmVyLCBDb250cm9sVmFsdWVBY2Nlc3NvciwgRm9ybUNvbnRyb2wsIE5nQ29udHJvbCwgTmdGb3JtIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgSGFzRWxlbWVudFJlZiwgTnVsbGFibGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyBTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGlzVmFsaWRDb250cm9sU3RhdGUgfSBmcm9tICcuLi9oZWxwZXJzL3N0YXRlJztcbmltcG9ydCB7IEJhc2VDVkEgfSBmcm9tICcuLi9tb2RlbHMvY3ZhJztcbmltcG9ydCB7IEZvcm1GaWVsZCwgRm9ybUZpZWxkQ29udHJvbCB9IGZyb20gJy4uL21vZGVscy9mb3JtLWZpZWxkJztcbmltcG9ydCB7IEZvcm1TdGF0ZXMgfSBmcm9tICcuLi9tb2RlbHMvZm9ybS1zdGF0ZSc7XG5pbXBvcnQgeyBGRF9GT1JNX0ZJRUxEX0NPTlRST0wgfSBmcm9tICcuLi90b2tlbnMvZm9ybS1maWVsZC1jb250cm9sLnRva2VuJztcbmltcG9ydCB7IEZEX0ZPUk1fRklFTEQgfSBmcm9tICcuLi90b2tlbnMvZm9ybS1maWVsZC50b2tlbic7XG5cbmxldCByYW5kb21JZCA9IDA7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2Zka0N2YV0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgQ3ZhRGlyZWN0aXZlPFQgPSBhbnk+XG4gICAgaW1wbGVtZW50cyBIYXNFbGVtZW50UmVmLCBCYXNlQ1ZBLCBGb3JtRmllbGRDb250cm9sLCBPbkluaXQsIERvQ2hlY2ssIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSwgQ29udHJvbFZhbHVlQWNjZXNzb3JcbntcbiAgICAvKiogSW5wdXQgcGxhY2Vob2xkZXIgKi9cbiAgICBASW5wdXQoKVxuICAgIHBsYWNlaG9sZGVyOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiAgVGhlIHN0YXRlIG9mIHRoZSBmb3JtIGNvbnRyb2wgLSBhcHBsaWVzIGNzcyBjbGFzc2VzLlxuICAgICAqICBDYW4gYmUgJ3N1Y2Nlc3MnLCAnZXJyb3InLCAnd2FybmluZycsICdkZWZhdWx0JywgJ2luZm9ybWF0aW9uJy5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0ICdkZWZhdWx0J1xuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHN0YXRlKHN0YXRlOiBOdWxsYWJsZTxGb3JtU3RhdGVzPikge1xuICAgICAgICBpZiAoIXN0YXRlIHx8IGlzVmFsaWRDb250cm9sU3RhdGUoc3RhdGUpKSB7XG4gICAgICAgICAgICB0aGlzLl9zdGF0ZSQuc2V0KHN0YXRlKTtcbiAgICAgICAgfSBlbHNlIGlmIChpc0Rldk1vZGUoKSkge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKGBQcm92aWRlZCB2YWx1ZSBcIiR7c3RhdGV9XCIgaXMgbm90IGEgdmFsaWQgb3B0aW9uIGZvciBGb3JtU3RhdGVzIHR5cGVgKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBnZXQgc3RhdGUoKTogRm9ybVN0YXRlcyB7XG4gICAgICAgIHJldHVybiB0aGlzLm5vcm1hbGl6ZWRTdGF0ZSQoKTtcbiAgICB9XG5cbiAgICAvKiogSG9sZHMgdGhlIG1lc3NhZ2Ugd2l0aCByZXNwZWN0IHRvIHN0YXRlICovXG4gICAgQElucHV0KClcbiAgICBzdGF0ZU1lc3NhZ2U6IE51bGxhYmxlPHN0cmluZz47XG5cbiAgICAvKiogV2hldGhlciB0aGUgaW5wdXQgaXMgZGlzYWJsZWQgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCBkaXNhYmxlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnNldERpc2FibGVkU3RhdGUodmFsdWUpO1xuICAgIH1cbiAgICBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICh0aGlzLm5nQ29udHJvbCAmJiB0aGlzLm5nQ29udHJvbC5kaXNhYmxlZCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubmdDb250cm9sLmRpc2FibGVkO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiByZWFkT25seSBWYWx1ZSB0byBNYXJrIGNvbXBvbmVudCByZWFkIG9ubHlcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHJlYWRvbmx5OiBib29sZWFuO1xuXG4gICAgLyoqIEJpbmRzIHRvIGNvbnRyb2wgYXJpYS1sYWJlbGxlZEJ5IGF0dHJpYnV0ZSAqL1xuICAgIEBJbnB1dCgpXG4gICAgYXJpYUxhYmVsbGVkQnk6IE51bGxhYmxlPHN0cmluZz47XG5cbiAgICAvKiogU2V0cyBjb250cm9sIGFyaWEtbGFiZWwgYXR0cmlidXRlIHZhbHVlICovXG4gICAgQElucHV0KClcbiAgICBhcmlhTGFiZWw6IE51bGxhYmxlPHN0cmluZz47XG5cbiAgICAvKipcbiAgICAgKiBUZWxsIHRoZSBjb21wb25lbnQgaWYgd2UgYXJlIGluIGVkaXRpbmcgbW9kZS5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCBlZGl0YWJsZSh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIGNvbnN0IG5ld1ZhbCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgICAgIGlmICh0aGlzLl9lZGl0YWJsZSAhPT0gbmV3VmFsKSB7XG4gICAgICAgICAgICB0aGlzLl9lZGl0YWJsZSA9IG5ld1ZhbDtcbiAgICAgICAgICAgIHRoaXMuX21hcmtGb3JDaGVjaygpO1xuICAgICAgICAgICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgnZWRpdGFibGUnKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBnZXQgZWRpdGFibGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9lZGl0YWJsZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBOYW1lIG9mIHRoZSBjb250cm9sLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgbmFtZTogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogRW1pdHMgd2hlbiBjaGFuZ2UgZGV0ZWN0aW9uIGlzIG5lZWRlZC5cbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICBkZXRlY3RDaGFuZ2VzID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICAgLyoqXG4gICAgICogRW1pdHMgd2hlbiBtYXJrIGZvciBjaGFuZ2VzIGRldGVjdGlvbiBpcyBuZWVkZWQuXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgbWFya0ZvckNoZWNrID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICAgLyoqXG4gICAgICogUmVmZXJlbmNlIHRvIGludGVybmFsIElucHV0IGVsZW1lbnRcbiAgICAgKi9cbiAgICBAVmlld0NoaWxkKCdpbnB1dEVsZW1lbnRSZWYnLCB7IHN0YXRpYzogdHJ1ZSwgcmVhZDogRWxlbWVudFJlZiB9KVxuICAgIHByb3RlY3RlZCBfZWxlbWVudFJlZjogRWxlbWVudFJlZjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgdmFsdWU6IFQ7XG5cbiAgICAvKiogc2V0IHdoZW4gaW5wdXQgZmllbGQgaXMgbWFuZGF0b3J5IGZvcm0gZmllbGQgKi9cbiAgICByZXF1aXJlZDogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIFNlZSBARm9ybUZpZWxkQ29udHJvbFxuICAgICAqL1xuICAgIGZvY3VzZWQgPSBmYWxzZTtcblxuICAgIC8qKiBXaGV0aGVyIGNvbnRyb2wgaGFzIGVycm9ycyAqL1xuICAgIGdldCBjb250cm9sSW52YWxpZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbnRyb2xJbnZhbGlkJCgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNlZSBARm9ybUZpZWxkQ29udHJvbFxuICAgICAqL1xuICAgIHJlYWRvbmx5IHN0YXRlQ2hhbmdlczogU3ViamVjdDxhbnk+ID0gbmV3IFN1YmplY3Q8YW55PigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZWFkb25seSBmb3JtRmllbGQ6IEZvcm1GaWVsZCB8IG51bGwgPSBpbmplY3QoRkRfRk9STV9GSUVMRCwge1xuICAgICAgICBza2lwU2VsZjogdHJ1ZSxcbiAgICAgICAgb3B0aW9uYWw6IHRydWVcbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqIE5nQ29udHJvbCBpbnN0YW5jZS5cbiAgICAgKi9cbiAgICByZWFkb25seSBuZ0NvbnRyb2wgPSBpbmplY3QoTmdDb250cm9sLCB7XG4gICAgICAgIG9wdGlvbmFsOiB0cnVlLFxuICAgICAgICBob3N0OiB0cnVlXG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiBGb3JtIGNvbnRhaW5lciBpbnN0YW5jZS4gVXN1YWxseSBuZ0Zvcm0gb3IgRm9ybUdyb3VwIGRpcmVjdGl2ZXMuXG4gICAgICovXG4gICAgcmVhZG9ubHkgY29udHJvbENvbnRhaW5lciA9IGluamVjdChDb250cm9sQ29udGFpbmVyLCB7XG4gICAgICAgIG9wdGlvbmFsOiB0cnVlLFxuICAgICAgICBza2lwU2VsZjogdHJ1ZVxuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogU2VwYXJhdGUgTmdGb3JtIGluc3RhbmNlLiBGb3IgY2FzZXMgd2hlbiBmb3JtR3JvdXAgaXMgdXNlZCB3aXRoIHRoZSBmb3JtIGl0c2VsZi5cbiAgICAgKi9cbiAgICByZWFkb25seSBuZ0Zvcm0gPSBpbmplY3QoTmdGb3JtLCB7XG4gICAgICAgIG9wdGlvbmFsOiB0cnVlLFxuICAgICAgICBza2lwU2VsZjogdHJ1ZVxuICAgIH0pO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZWFkb25seSBub3JtYWxpemVkU3RhdGUkID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgICBjb25zdCBzdG9yZWRTdGF0ZSA9IHRoaXMuX3N0YXRlJCgpO1xuICAgICAgICBpZiAoc3RvcmVkU3RhdGUpIHtcbiAgICAgICAgICAgIHJldHVybiBzdG9yZWRTdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdGhpcy5fY29udHJvbEludmFsaWQkKCkpIHtcbiAgICAgICAgICAgIHJldHVybiAnZGVmYXVsdCc7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5mb3JtRmllbGQ/LmdldFByaW9yaXR5U3RhdGUoKSB8fCAnZGVmYXVsdCc7XG4gICAgfSk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByb3RlY3RlZCBfc3Vic2NyaXB0aW9ucyA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICAgIC8qKlxuICAgICAqIEEgcHJpdmF0ZSBwcm9wZXJ0eSB0byBob2xkIHRoZSBFbGVtZW50UmVmIHdoaWNoIG1pZ2h0IGJlIG51bGxcbiAgICAgKi9cbiAgICBwcml2YXRlIF9lbGVtZW50UmVmT3JOdWxsOiBFbGVtZW50UmVmIHwgbnVsbCA9IGluamVjdChFbGVtZW50UmVmLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuXG4gICAgLyoqXG4gICAgICogRWxlbWVudCByZWZlcmVuY2UuXG4gICAgICovXG4gICAgZ2V0IGVsZW1lbnRSZWYoKTogRWxlbWVudFJlZiB7XG4gICAgICAgIC8vIFJldHVybiBhIGZhbGxiYWNrIEVsZW1lbnRSZWYgaWYgX2VsZW1lbnRSZWZPck51bGwgaXMgbnVsbFxuICAgICAgICByZXR1cm4gdGhpcy5fZWxlbWVudFJlZk9yTnVsbCB8fCAodGhpcy5fZWxlbWVudFJlZiBhcyBFbGVtZW50UmVmKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2RlZmF1bHRJZCA9IGBmZC1pbnB1dC1pZC0ke3JhbmRvbUlkKyt9YDtcblxuICAgIC8qKiBJRCBmb3IgdGhlIEVsZW1lbnQgKi9cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L21lbWJlci1vcmRlcmluZ1xuICAgIEBJbnB1dCgpXG4gICAgaWQ6IHN0cmluZyA9IHRoaXMuX2RlZmF1bHRJZDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZGlzYWJsZWQ6IGJvb2xlYW47XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9lZGl0YWJsZSA9IHRydWU7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfY29udHJvbEludmFsaWQkID0gc2lnbmFsKGZhbHNlKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfcGFyZW50Q29udHJvbCA9IGluamVjdChGRF9GT1JNX0ZJRUxEX0NPTlRST0wsIHtcbiAgICAgICAgc2tpcFNlbGY6IHRydWUsXG4gICAgICAgIG9wdGlvbmFsOiB0cnVlXG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogVGhlIHN0YXRlIG9mIHRoZSBmb3JtIGNvbnRyb2wgLSBhcHBsaWVzIGNzcyBjbGFzc2VzLlxuICAgICAqIENhbiBiZSBgc3VjY2Vzc2AsIGBlcnJvcmAsIGB3YXJuaW5nYCwgYGluZm9ybWF0aW9uYCBvciAnZGVmYXVsdCdcbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9zdGF0ZSQgPSBzaWduYWw8TnVsbGFibGU8Rm9ybVN0YXRlcz4+KG51bGwpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgaWYgKHRoaXMubmdDb250cm9sKSB7XG4gICAgICAgICAgICB0aGlzLm5nQ29udHJvbC52YWx1ZUFjY2Vzc29yID0gdGhpcztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgb25DaGFuZ2U6ICh2YWx1ZTogYW55KSA9PiB2b2lkID0gKCkgPT4ge307XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG9uVG91Y2hlZCA9ICgpOiB2b2lkID0+IHt9O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgLy8gVGhlcmUgbWF5IGJlIGNhc2VzIHdoZW4gb25lIGZvcm0gY29udHJvbCBpcyB1c2VkIGFzIGEgYmFzZSB0byBidWlsZCBhbm90aGVyIGZvcm0gY29udHJvbC5cbiAgICAgICAgaWYgKCF0aGlzLl9wYXJlbnRDb250cm9sKSB7XG4gICAgICAgICAgICB0aGlzLmZvcm1GaWVsZD8ucmVnaXN0ZXJGb3JtRmllbGRDb250cm9sKHRoaXMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmUtdmFsaWRhdGUgYW5kIGVtaXQgZXZlbnQgdG8gcGFyZW50IGNvbnRhaW5lciBvbiBldmVyeSBDRCBjeWNsZSBhcyB0aGV5IGFyZSBzb21lIGVycm9yc1xuICAgICAqIHRoYXQgd2UgY2FuJ3Qgc3Vic2NyaWJlIHRvLlxuICAgICAqL1xuICAgIG5nRG9DaGVjaygpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMubmdDb250cm9sKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUVycm9yU3RhdGUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5uZ0NvbnRyb2wpIHtcbiAgICAgICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgICAgICAgICAgIHRoaXMubmdDb250cm9sLnN0YXR1c0NoYW5nZXM/LnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX21hcmtGb3JDaGVjaygpO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgbGFiZWxBbmRIZWxwSWQgPSBgZmRwLWZvcm0tbGFiZWwtY29udGVudC0ke3RoaXMuaWR9YDtcbiAgICAgICAgLy8gaWYgbm90IHNwZWNpZmllZCwgYXNzb2NpYXRlIGxhYmVsIGFuZCBpbmxpbmUgaGVscCBpZHMgd2l0aCB0aGUgaW5wdXQsXG4gICAgICAgIC8vIGVsc2UgYWRkIHRoZXNlIGlkcyB0byB0aGUgc3BlY2lmaWVkIG9uZXNcbiAgICAgICAgaWYgKCF0aGlzLmFyaWFMYWJlbGxlZEJ5KSB7XG4gICAgICAgICAgICB0aGlzLmFyaWFMYWJlbGxlZEJ5ID0gbGFiZWxBbmRIZWxwSWQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmFyaWFMYWJlbGxlZEJ5ICs9ICcgJyArIGxhYmVsQW5kSGVscElkO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX21hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKF86IGFueSkgPT4gdm9pZCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMudW5zdWJzY3JpYmUoKTtcbiAgICAgICAgdGhpcy5zdGF0ZUNoYW5nZXMuY29tcGxldGUoKTtcbiAgICAgICAgdGhpcy5mb3JtRmllbGQ/LnVucmVnaXN0ZXJGb3JtRmllbGRDb250cm9sKHRoaXMpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBCb29sZWFuSW5wdXQpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgbmV3U3RhdGUgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkoaXNEaXNhYmxlZCk7XG4gICAgICAgIHRoaXMuX21hcmtGb3JDaGVjaygpO1xuICAgICAgICBpZiAobmV3U3RhdGUgIT09IHRoaXMuX2Rpc2FibGVkKSB7XG4gICAgICAgICAgICB0aGlzLl9kaXNhYmxlZCA9IG5ld1N0YXRlO1xuICAgICAgICAgICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgnc2V0RGlzYWJsZWRTdGF0ZScpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTWV0aG9kIGZvciBzZXR0aW5nIHRoZSB2YWx1ZVxuICAgICAqIEBwYXJhbSB2YWx1ZVxuICAgICAqL1xuICAgIHdyaXRlVmFsdWUodmFsdWU6IFQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgICAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCd3cml0ZVZhbHVlJyk7XG4gICAgICAgIHRoaXMuX21hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqXG4gICAgICogS2VlcHMgdHJhY2sgb2YgZWxlbWVudCBmb2N1c1xuICAgICAqL1xuICAgIF9vbkZvY3VzQ2hhbmdlZChpc0ZvY3VzZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgaWYgKGlzRm9jdXNlZCAhPT0gdGhpcy5mb2N1c2VkICYmICghdGhpcy5kaXNhYmxlZCB8fCAhaXNGb2N1c2VkKSkge1xuICAgICAgICAgICAgdGhpcy5mb2N1c2VkID0gaXNGb2N1c2VkO1xuICAgICAgICAgICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgnX29uRm9jdXNDaGFuZ2VkJyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIWlzRm9jdXNlZCkge1xuICAgICAgICAgICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEhhbmRsZXMgZXZlbiB3aGVuIHdlIGNsaWNrIG9uIHBhcmVudCBjb250YWluZXIgd2hpY2ggaXMgdGhlIEZvcm1GaWVsZCBXcmFwcGluZyB0aGlzXG4gICAgICogY29udHJvbFxuICAgICAqL1xuICAgIG9uQ29udGFpbmVyQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5mb2N1cyhldmVudCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSW4gbW9zdCBvZiB0aGUgY2FzZXMgd2hlbiB3b3JraW5nIHdpdGggaW5wdXQgZWxlbWVudCBkaXJlY3RseSB5b3Ugc2hvdWxkIGJlIGp1c3QgZmluZCB0byBhc3NpZ25cbiAgICAgKiB2YXJpYWJsZSB0byB0aGlzIGVsZW1lbnRcbiAgICAgKlxuICAgICAqIGBgYFxuICAgICAqIDxpbnB1dCAjaW5wdXRFbGVtZW50UmVmIGZkLWZvcm0tY29udHJvbCAuLi4+XG4gICAgICogYGBgXG4gICAgICpcbiAgICAgKiBhbmQgdGhpcyBkZWZhdWx0IGJlaGF2aW9yIHVzZWQuIEZvciBvdGhlciBjYXNlcyBpbXBsZW1lbnQgZm9jdXMuXG4gICAgICpcbiAgICAgKi9cbiAgICBmb2N1cyhldmVudD86IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuX2VsZW1lbnRSZWYgJiYgIXRoaXMuZm9jdXNlZCkge1xuICAgICAgICAgICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmZvY3VzKGV2ZW50KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqICBOZWVkIHJlLXZhbGlkYXRlcyBlcnJvcnMgb24gZXZlcnkgQ0QgaXRlcmF0aW9uIHRvIG1ha2Ugc3VyZSB3ZSBhcmUgYWxzb1xuICAgICAqICBjb3ZlcmluZyBub24tY29udHJvbCBlcnJvcnMsIGVycm9ycyB0aGF0IGhhcHBlbnMgb3V0c2lkZSBvZiB0aGlzIGNvbnRyb2xcbiAgICAgKi9cbiAgICB1cGRhdGVFcnJvclN0YXRlKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBwYXJlbnQgPSB0aGlzLm5nRm9ybTtcbiAgICAgICAgY29uc3QgcGFyZW50Q29udHJvbENvbnRhaW5lciA9IHRoaXMuY29udHJvbENvbnRhaW5lcjtcbiAgICAgICAgY29uc3QgY29udHJvbCA9IHRoaXMubmdDb250cm9sID8gKHRoaXMubmdDb250cm9sLmNvbnRyb2wgYXMgRm9ybUNvbnRyb2wpIDogbnVsbDtcbiAgICAgICAgY29uc3QgbmV3U3RhdHVzSXNFcnJvciA9ICEhKFxuICAgICAgICAgICAgY29udHJvbD8uaW52YWxpZCAmJlxuICAgICAgICAgICAgKGNvbnRyb2wuZGlydHkgfHwgY29udHJvbC50b3VjaGVkIHx8IHBhcmVudD8uc3VibWl0dGVkIHx8IChwYXJlbnRDb250cm9sQ29udGFpbmVyIGFzIGFueSk/LnN1Ym1pdHRlZClcbiAgICAgICAgKTtcblxuICAgICAgICBpZiAobmV3U3RhdHVzSXNFcnJvciAhPT0gdGhpcy5fY29udHJvbEludmFsaWQkKCkpIHtcbiAgICAgICAgICAgIHRoaXMuX2NvbnRyb2xJbnZhbGlkJC5zZXQobmV3U3RhdHVzSXNFcnJvcik7XG4gICAgICAgICAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCd1cGRhdGVFcnJvclN0YXRlJyk7XG4gICAgICAgICAgICB0aGlzLl9tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFVzZWQgdG8gY2hhbmdlIHRoZSB2YWx1ZSBvZiBhIGNvbnRyb2wuXG4gICAgICogQHBhcmFtIHZhbHVlIHRoZSB2YWx1ZSB0byBiZSBhcHBsaWVkXG4gICAgICogQHBhcmFtIGVtaXRPbkNoYW5nZSB3aGV0aGVyIHRvIGVtaXQgXCJvbkNoYW5nZVwiIGV2ZW50LlxuICAgICAqIFNob3VsZCBiZSBcImZhbHNlXCIsIGlmIHRoZSBjaGFuZ2UgaXMgbWFkZSBwcm9ncmFtbWF0aWNhbGx5IChpbnRlcm5hbGx5KSBieSB0aGUgY29udHJvbCwgXCJ0cnVlXCIgb3RoZXJ3aXNlXG4gICAgICovXG4gICAgc2V0VmFsdWUodmFsdWU6IFQsIGVtaXRPbkNoYW5nZSA9IHRydWUpOiB2b2lkIHtcbiAgICAgICAgaWYgKHZhbHVlICE9PSB0aGlzLnZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLndyaXRlVmFsdWUodmFsdWUpO1xuICAgICAgICAgICAgaWYgKGVtaXRPbkNoYW5nZSkge1xuICAgICAgICAgICAgICAgIHRoaXMub25DaGFuZ2UodmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5fbWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX21hcmtGb3JDaGVjaygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tYXJrRm9yQ2hlY2suZW1pdCgpO1xuICAgIH1cbn1cbiJdfQ==","import { NgModule } from '@angular/core';\nimport { CvaDirective } from './cva/cva.directive';\nimport * as i0 from \"@angular/core\";\nexport class FormsModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.2\", ngImport: i0, type: FormsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.0.2\", ngImport: i0, type: FormsModule, imports: [CvaDirective], exports: [CvaDirective] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.0.2\", ngImport: i0, type: FormsModule }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.2\", ngImport: i0, type: FormsModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [CvaDirective],\n exports: [CvaDirective]\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybXMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvZm9ybXMvZm9ybXMubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDOztBQU1uRCxNQUFNLE9BQU8sV0FBVzs4R0FBWCxXQUFXOytHQUFYLFdBQVcsWUFIVixZQUFZLGFBQ1osWUFBWTsrR0FFYixXQUFXOzsyRkFBWCxXQUFXO2tCQUp2QixRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztvQkFDdkIsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO2lCQUMxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDdmFEaXJlY3RpdmUgfSBmcm9tICcuL2N2YS9jdmEuZGlyZWN0aXZlJztcblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbQ3ZhRGlyZWN0aXZlXSxcbiAgICBleHBvcnRzOiBbQ3ZhRGlyZWN0aXZlXVxufSlcbmV4cG9ydCBjbGFzcyBGb3Jtc01vZHVsZSB7fVxuIl19","import { ChangeDetectorRef, DestroyRef, inject, Injectable } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { CvaDirective } from './cva.directive';\nimport * as i0 from \"@angular/core\";\n/**\n * Base ControlValueAccessor control class.\n * Used in conjunction with CvaDirective.\n *\n * This class performs generic change detection based on `CvaDirective` outputs.\n */\nexport class CvaControl {\n constructor() {\n /**\n * Control value accessor directive instance.\n */\n this.cvaDirective = inject(CvaDirective, {\n self: true,\n optional: true\n });\n /**\n * Change detector instance.\n */\n this._changeDetector = inject(ChangeDetectorRef);\n /** @Hidden */\n this._destroyRef = inject(DestroyRef);\n }\n /** @hidden */\n listenToChanges() {\n this.cvaDirective?.markForCheck.pipe(takeUntilDestroyed(this._destroyRef)).subscribe(() => {\n this._changeDetector.detectChanges();\n });\n this.cvaDirective?.detectChanges.pipe(takeUntilDestroyed(this._destroyRef)).subscribe(() => {\n this._changeDetector.detectChanges();\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.2\", ngImport: i0, type: CvaControl, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.2\", ngImport: i0, type: CvaControl }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.2\", ngImport: i0, type: CvaControl, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3ZhLWNvbnRyb2wuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay9mb3Jtcy9jdmEvY3ZhLWNvbnRyb2wuY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFFL0M7Ozs7O0dBS0c7QUFFSCxNQUFNLE9BQU8sVUFBVTtJQUR2QjtRQUVJOztXQUVHO1FBQ0ksaUJBQVksR0FBRyxNQUFNLENBQWtCLFlBQVksRUFBRTtZQUN4RCxJQUFJLEVBQUUsSUFBSTtZQUNWLFFBQVEsRUFBRSxJQUFJO1NBQ2pCLENBQUMsQ0FBQztRQUVIOztXQUVHO1FBQ08sb0JBQWUsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUV0RCxjQUFjO1FBQ0osZ0JBQVcsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7S0FZOUM7SUFWRyxjQUFjO0lBQ2QsZUFBZTtRQUNYLElBQUksQ0FBQyxZQUFZLEVBQUUsWUFBWSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ3RGLElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDekMsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsWUFBWSxFQUFFLGFBQWEsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUN2RixJQUFJLENBQUMsZUFBZSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3pDLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs4R0ExQlEsVUFBVTtrSEFBVixVQUFVOzsyRkFBVixVQUFVO2tCQUR0QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIERlc3Ryb3lSZWYsIGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgQ3ZhRGlyZWN0aXZlIH0gZnJvbSAnLi9jdmEuZGlyZWN0aXZlJztcblxuLyoqXG4gKiBCYXNlIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGNvbnRyb2wgY2xhc3MuXG4gKiBVc2VkIGluIGNvbmp1bmN0aW9uIHdpdGggQ3ZhRGlyZWN0aXZlLlxuICpcbiAqIFRoaXMgY2xhc3MgcGVyZm9ybXMgZ2VuZXJpYyBjaGFuZ2UgZGV0ZWN0aW9uIGJhc2VkIG9uIGBDdmFEaXJlY3RpdmVgIG91dHB1dHMuXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBDdmFDb250cm9sPFQ+IHtcbiAgICAvKipcbiAgICAgKiBDb250cm9sIHZhbHVlIGFjY2Vzc29yIGRpcmVjdGl2ZSBpbnN0YW5jZS5cbiAgICAgKi9cbiAgICBwdWJsaWMgY3ZhRGlyZWN0aXZlID0gaW5qZWN0PEN2YURpcmVjdGl2ZTxUPj4oQ3ZhRGlyZWN0aXZlLCB7XG4gICAgICAgIHNlbGY6IHRydWUsXG4gICAgICAgIG9wdGlvbmFsOiB0cnVlXG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiBDaGFuZ2UgZGV0ZWN0b3IgaW5zdGFuY2UuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIF9jaGFuZ2VEZXRlY3RvciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG5cbiAgICAvKiogQEhpZGRlbiAqL1xuICAgIHByb3RlY3RlZCBfZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbGlzdGVuVG9DaGFuZ2VzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmN2YURpcmVjdGl2ZT8ubWFya0ZvckNoZWNrLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuX2Rlc3Ryb3lSZWYpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmN2YURpcmVjdGl2ZT8uZGV0ZWN0Q2hhbmdlcy5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLl9kZXN0cm95UmVmKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19","/**\n * FormField base class.\n *\n * This class is used to create form field components.\n *\n */\nexport class FormField {\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY2RrL2Zvcm1zL21vZGVscy9mb3JtLWZpZWxkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU9BOzs7OztHQUtHO0FBQ0gsTUFBTSxPQUFnQixTQUFTO0NBdUI5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVsZW1lbnRSZWYsIFF1ZXJ5TGlzdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmdDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTnVsbGFibGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBGb3JtRXJyb3IgfSBmcm9tICcuL2Zvcm0tZXJyb3InO1xuaW1wb3J0IHsgRm9ybVN0YXRlcyB9IGZyb20gJy4vZm9ybS1zdGF0ZSc7XG5cbi8qKlxuICogRm9ybUZpZWxkIGJhc2UgY2xhc3MuXG4gKlxuICogVGhpcyBjbGFzcyBpcyB1c2VkIHRvIGNyZWF0ZSBmb3JtIGZpZWxkIGNvbXBvbmVudHMuXG4gKlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRm9ybUZpZWxkIHtcbiAgICAvKipcbiAgICAgKiBSZWdpc3RlciB1bmRlcmx5aW5nIGZvcm0gY29udHJvbFxuICAgICAqL1xuICAgIHJlZ2lzdGVyRm9ybUZpZWxkQ29udHJvbDogKGNvbnRyb2w6IEZvcm1GaWVsZENvbnRyb2wpID0+IHZvaWQ7XG4gICAgLyoqXG4gICAgICogVW5yZWdpc3RlciB1bmRlcmx5aW5nIGZvcm0gY29udHJvbFxuICAgICAqL1xuICAgIHVucmVnaXN0ZXJGb3JtRmllbGRDb250cm9sOiAoY29udHJvbDogRm9ybUZpZWxkQ29udHJvbCkgPT4gdm9pZDtcblxuICAgIC8qKlxuICAgICAqIFNldCBkZWZhdWx0IGNvbHVtbnMgbGF5b3V0XG4gICAgICovXG4gICAgc2V0RGVmYXVsdENvbHVtbkxheW91dDogKCkgPT4gdm9pZDtcblxuICAgIC8qKiBHZXRzIGZpZWxkIGVycm9yIHByaW9yaXR5IHN0YXRlLiAqL1xuICAgIGdldFByaW9yaXR5U3RhdGU6ICgpID0+IEZvcm1TdGF0ZXM7XG5cbiAgICAvKiogR3JvdXBzIGVycm9ycy4gKi9cbiAgICBncm91cEVycm9yczogKCkgPT4gdm9pZDtcblxuICAgIC8qKiBTZXRzIGVycm9yIGRpcmVjdGl2ZXMgZnJvbSBwYXJlbnQgY29udGFpbmVyICovXG4gICAgc2V0RXJyb3JEaXJlY3RpdmVzOiAoZGlyZWN0aXZlczogUXVlcnlMaXN0PEZvcm1FcnJvcj4pID0+IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRm9ybUZpZWxkQ29udHJvbDxUID0gYW55PiB7XG4gICAgLyoqXG4gICAgICogRWFjaCBpbnB1dCBjb250cm9sIGhhcyBhbHdheXMgYSB2YWx1ZS4gTmVlZCB0byBtYWtlIHN1cmUgd2Uga2VlcCBhIGNvbnZlbnRpb24gZm9yXG4gICAgICogaW5wdXQgZmllbGRzXG4gICAgICovXG4gICAgdmFsdWU6IFQgfCBudWxsO1xuXG4gICAgLyoqXG4gICAgICogTmVlZCB0byBoYXZlIGEgd2F5IHRvIHNldCBwbGFjZWhvbGRlciB0byB0aGUgaW5wdXRcbiAgICAgKi9cbiAgICBwbGFjZWhvbGRlcjogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogTmVlZCB0byBoYXZlIGEgd2F5IHRvIHNldCBNYW5kYXRvcnkgdG8gdGhlIGlucHV0IGZpZWxkXG4gICAgICovXG4gICAgcmVxdWlyZWQ6IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIGlkIGZyb20gRkYgdG8gSW5wdXRcbiAgICAgKi9cbiAgICBpZDogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogVGhpcyBzaG91bGQgYmUgY29taW5nIGZyb20gUGFyZW50LlxuICAgICAqL1xuICAgIGVkaXRhYmxlOiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogVGhlIGhlaWdodCBvZiB0aGUgZXh0cmEgY29udGVudCBhdCB0aGUgYm90dG9tIG9mIHRoZSBmb3JtIGNvbnRyb2wsXG4gICAgICogd2hpY2ggc2hvdWxkIG5vdCBhZmZlY3QgdGhlIGFsaWdubWVudCBvZiBmb3JtIGNvbnRyb2wgYW5kIGl0J3MgbGFiZWxcbiAgICAgKi9cbiAgICBleHRyYUNvbnRlbnRIZWlnaHRQeD86IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqXG4gICAgICogRm9ybSBGaWVsZCBsaXN0ZW4gZm9yIGFsbCB0aGUgY2hhbmdlcyBoYXBwZW5pbmcgaW5zaWRlIHRoZSBpbnB1dFxuICAgICAqL1xuICAgIHN0YXRlQ2hhbmdlczogT2JzZXJ2YWJsZTx2b2lkPjtcblxuICAgIC8qKlxuICAgICAqICBFYWNoIGlucHV0IHNob3VsZCBpbmplY3QgaXRzIG93biBuZ0NvbnRyb2wgYW5kIHdlIHNob3VsZCByZXRyaWV2ZSBpdFxuICAgICAqL1xuICAgIG5nQ29udHJvbDogTmdDb250cm9sIHwgbnVsbDtcblxuICAgIC8qKiBXaGV0aGVyIHRoZSBjb250cm9sIGlzIGRpc2FibGVkLiAqL1xuICAgIGRpc2FibGVkOiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogS2VlcHMgdHJhY2sgaWYgdGhlIGZvcm0gZWxlbWVudCBpcyBpbiBmb2N1c1xuICAgICAqL1xuICAgIGZvY3VzZWQ6IGJvb2xlYW47XG5cbiAgICAvKiogV2hldGhlciBjb250cm9sIGhhcyBlcnJvcnMgKi9cbiAgICBjb250cm9sSW52YWxpZDogYm9vbGVhbjtcblxuICAgIC8qKiBDb3JyZXNwb25kaW5nIGVsZW1lbnQgcmVmZXJlbmNlLiAqL1xuICAgIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY7XG5cbiAgICAvKiogRm9ybSBmaWVsZCBpbnN0YW5jZS4gKi9cbiAgICBmb3JtRmllbGQ6IE51bGxhYmxlPEZvcm1GaWVsZD47XG5cbiAgICAvKiogTWV0aG9kIGZvciBmb2N1c2luZyBvbiB0aGUgZWxlbWVudCAqL1xuICAgIGZvY3VzKGV2ZW50PzogTW91c2VFdmVudCk6IHZvaWQ7XG5cbiAgICAvKipcbiAgICAgKiBIYW5kbGVzIGV2ZW4gd2hlbiB3ZSBjbGljayBvbiBwYXJlbnQgY29udGFpbmVyIHdoaWNoIGlzIHRoZSBGb3JtRmllbGQgV3JhcHBpbmcgdGhpc1xuICAgICAqIGNvbnRyb2xcbiAgICAgKi9cbiAgICBvbkNvbnRhaW5lckNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZDtcbn1cbiJdfQ==","/** @hidden */\nexport function isSelectableItem(item) {\n return (item &&\n item.label !== undefined &&\n item.value !== undefined &&\n Object.prototype.hasOwnProperty.call(item, 'selected'));\n}\n/** @hidden */\nexport function isSelectItem(item) {\n return item && item.label !== undefined && item.value !== undefined;\n}\nexport const isOptionItem = isSelectItem;\nexport const isSelectableOptionItem = isSelectableItem;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWl0ZW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay9mb3Jtcy9tb2RlbHMvc2VsZWN0LWl0ZW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBZ0RBLGNBQWM7QUFDZCxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsSUFBc0I7SUFDbkQsT0FBTyxDQUNILElBQUk7UUFDSixJQUFJLENBQUMsS0FBSyxLQUFLLFNBQVM7UUFDeEIsSUFBSSxDQUFDLEtBQUssS0FBSyxTQUFTO1FBQ3hCLE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLENBQ3pELENBQUM7QUFDTixDQUFDO0FBRUQsY0FBYztBQUNkLE1BQU0sVUFBVSxZQUFZLENBQUMsSUFBc0I7SUFDL0MsT0FBTyxJQUFJLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxTQUFTLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxTQUFTLENBQUM7QUFDeEUsQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxZQUFZLENBQUM7QUFDekMsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsZ0JBQWdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEludGVyZmFjZSBTZWxlY3RJdGVtIGlzIHVzZWQgdG8gZGVhbCB3aXRoIGNvbXBsZXggb2JqZWN0IGluIG9yZGVyIHRvIGJlIGFibGUgdG8gZm9ybWF0XG4gKiBjdXN0b20gbGFiZWwgdGhhdCBpcyBzaG93biBpbiB0aGUgb3B0aW9ucy5cbiAqXG4gKiBVc2VkIGluIHZhcmlvdXMgY29udHJvbHM6IFNlbGVjdCwgUmFkaW9Hcm91cCwgQ2hlY2tib3hHcm91cCwgQ29tYm9ib3hcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTZWxlY3RJdGVtPFQgPSBhbnk+IHtcbiAgICAvKipcbiAgICAgKiBJdGVtIHRleHQgc2hvd24gaW4gdGhlIHBvcHVwXG4gICAgICovXG4gICAgbGFiZWw6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIFJlZmVyZW5jZXMgdG8gdGhlIG9iamVjdCBpbnN0YW5jZVxuICAgICAqL1xuICAgIHZhbHVlOiBUO1xuICAgIGRpc2FibGVkPzogYm9vbGVhbjtcblxuICAgIGljb24/OiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogVHJpZ2dlciB2YWx1ZXMgaXMgYSB0ZXh0IGZvciBzZWxlY3RlZCBpdGVtXG4gICAgICovXG4gICAgdHJpZ2dlclZhbHVlPzogc3RyaW5nO1xuXG4gICAgaXNHcm91cD86IGJvb2xlYW47XG4gICAgc2Vjb25kYXJ5VGV4dD86IHN0cmluZztcbiAgICBjaGlsZHJlbj86IFNlbGVjdEl0ZW1bXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBPcHRpb25JdGVtPFQgPSBhbnk+IHtcbiAgICAvKiogSXRlbSB0ZXh0ICovXG4gICAgbGFiZWw6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIFJlZmVyZW5jZXMgdG8gdGhlIG9iamVjdCBpbnN0YW5jZVxuICAgICAqL1xuICAgIHZhbHVlOiBUO1xuICAgIGlkPzogc3RyaW5nO1xuICAgIGlzR3JvdXA/OiBib29sZWFuO1xuICAgIHNlY29uZGFyeVRleHQ/OiBzdHJpbmc7XG4gICAgY2hpbGRyZW4/OiBPcHRpb25JdGVtW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VsZWN0YWJsZU9wdGlvbkl0ZW08VCA9IGFueT4gZXh0ZW5kcyBPcHRpb25JdGVtPFQ+IHtcbiAgICBzZWxlY3RlZD86IGJvb2xlYW47XG4gICAgY2hpbGRyZW4/OiBTZWxlY3RhYmxlT3B0aW9uSXRlbVtdO1xufVxuXG4vKiogQGhpZGRlbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzU2VsZWN0YWJsZUl0ZW0oaXRlbTogU2VsZWN0SXRlbSB8IGFueSk6IGl0ZW0gaXMgU2VsZWN0SXRlbSB7XG4gICAgcmV0dXJuIChcbiAgICAgICAgaXRlbSAmJlxuICAgICAgICBpdGVtLmxhYmVsICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICAgaXRlbS52YWx1ZSAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChpdGVtLCAnc2VsZWN0ZWQnKVxuICAgICk7XG59XG5cbi8qKiBAaGlkZGVuICovXG5leHBvcnQgZnVuY3Rpb24gaXNTZWxlY3RJdGVtKGl0ZW06IFNlbGVjdEl0ZW0gfCBhbnkpOiBpdGVtIGlzIFNlbGVjdEl0ZW0ge1xuICAgIHJldHVybiBpdGVtICYmIGl0ZW0ubGFiZWwgIT09IHVuZGVmaW5lZCAmJiBpdGVtLnZhbHVlICE9PSB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBjb25zdCBpc09wdGlvbkl0ZW0gPSBpc1NlbGVjdEl0ZW07XG5leHBvcnQgY29uc3QgaXNTZWxlY3RhYmxlT3B0aW9uSXRlbSA9IGlzU2VsZWN0YWJsZUl0ZW07XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuZGFtZW50YWwtbmd4LWNkay1mb3Jtcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY2RrL2Zvcm1zL2Z1bmRhbWVudGFsLW5neC1jZGstZm9ybXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0="],"names":[],"mappings":"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"}
|