import * as i0 from '@angular/core'; import { OnInit, OnDestroy, Type, PipeTransform, ViewContainerRef, Provider, StaticProvider, Signal, OnChanges, EventEmitter, ChangeDetectorRef, SimpleChanges, ComponentRef, Injector, ApplicationRef, AfterViewInit, InjectionToken } from '@angular/core'; import * as _angular_forms from '@angular/forms'; import { UntypedFormGroup, ValidatorFn, AsyncValidatorFn, UntypedFormBuilder, FormGroup, ControlValueAccessor, AbstractControl, FormArray, UntypedFormArray, FormControl, UntypedFormControl, FormGroupDirective, NgForm } from '@angular/forms'; import { Subject, Observable } from 'rxjs'; import * as i30 from '@angular/material/core'; import { ThemePalette, DateAdapter, MatDateFormats, ErrorStateMatcher } from '@angular/material/core'; import * as i10 from '@angular/material/form-field'; import { SubscriptSizing } from '@angular/material/form-field'; import * as i3 from '@angular/material/button'; import { MatButtonAppearance } from '@angular/material/button'; import * as _3kles_kles_material_color_picker from '@3kles/kles-material-color-picker'; import { ColorPickerPosition, ColorOutputFormat, ColorCommitMode } from '@3kles/kles-material-color-picker'; import * as _3kles_kles_material_dynamicforms from '@3kles/kles-material-dynamicforms'; import * as i1 from '@angular/common'; import * as i2 from '@angular/material/slider'; import * as i4 from '@angular/material/toolbar'; import * as i5 from '@angular/material/icon'; import * as i6 from '@angular/material/sidenav'; import * as i7 from '@angular/material/badge'; import * as i8 from '@angular/material/list'; import { MatSelectionListChange } from '@angular/material/list'; import * as i9 from '@angular/material/grid-list'; import * as i11 from '@angular/material/input'; import * as i12 from '@angular/material/select'; import * as i13 from '@angular/material/radio'; import * as i14 from '@angular/material/datepicker'; import * as i15 from '@angular/material/chips'; import { MatChipInputEvent, MatChipInput } from '@angular/material/chips'; import * as i16 from '@angular/material/tooltip'; import * as i17 from '@angular/material/table'; import * as i18 from '@angular/material/paginator'; import * as i19 from '@angular/material/card'; import * as i20 from '@angular/material/menu'; import * as i21 from '@angular/material/tabs'; import * as i22 from '@angular/cdk/table'; import * as i23 from '@angular/material/progress-spinner'; import * as i24 from '@angular/material/checkbox'; import { MatCheckboxChange } from '@angular/material/checkbox'; import * as i25 from '@angular/material/dialog'; import * as i26 from '@angular/material/autocomplete'; import { MatAutocompleteSelectedEvent } from '@angular/material/autocomplete'; import * as i27 from '@angular/material/progress-bar'; import * as i28 from '@angular/material/sort'; import * as i29 from '@angular/material/expansion'; import * as i31 from '@angular/material/snack-bar'; import * as i32 from '@angular/material/tree'; import * as i33 from '@angular/material/slide-toggle'; import * as i34 from '@angular/material/button-toggle'; import * as i35 from '@angular/cdk/portal'; import * as i36 from '@angular/cdk/scrolling'; type Exclusive = (T & { [K in keyof U]?: never; }) | (U & { [K in keyof T]?: never; }); type KlesValidationKey = { name: string; message?: string; messageKey?: string; }; type KlesValidatorMultiple = { keys: KlesValidationKey[]; }; type IKlesValidator = { validator: T; } & Exclusive; declare enum EnumType { input = "input", select = "select", text = "text", file = "file", imageUpload = "imageUpload", button = "button", checkbox = "checkbox", number = "number", time = "time", date = "date", color = "color", list = "list", multi = "multi", array = "array", group = "group", lineBreak = "lineBreak", badge = "badge", range = "range", currency = "currency", status = "status" } interface IKlesField { field: IKlesFieldConfig; group: UntypedFormGroup; siblingFields: IKlesFieldConfig[]; } interface IKlesDirective extends OnInit, OnDestroy { } /** Contract implemented by components used to render an option or a select trigger. */ interface IKlesComponent { value: TValue; } /** Angular component type compatible with the dynamic option renderer. */ type KlesComponentType = Type>; interface IKlesElementLayoutBreakpoint { colSpan?: number; rowSpan?: number; colStart?: number; rowStart?: number; } interface IKlesElementLayout extends IKlesElementLayoutBreakpoint { class?: string | string[]; responsive?: { xs?: IKlesElementLayoutBreakpoint; sm?: IKlesElementLayoutBreakpoint; md?: IKlesElementLayoutBreakpoint; lg?: IKlesElementLayoutBreakpoint; xl?: IKlesElementLayoutBreakpoint; }; } interface IKlesLayoutConfig { /** Number of columns in the grid. Defaults to 12. */ columns?: number; /** CSS gap between grid cells. Defaults to 0. */ gap?: string; } interface IKlesStructuralElement { layout?: IKlesElementLayout; } interface IKlesFormSection extends IKlesStructuralElement { type: 'section'; title: string; description?: string; /** Material icon displayed before the section title. */ icon?: string; /** Registered Material SVG icon displayed before the section title. */ iconSvg?: string; fields: KlesFormElement[]; layoutConfig?: IKlesLayoutConfig; } /** A visual layout group. Unlike an EnumType.group field, it creates no FormGroup. */ interface IKlesFormLayoutGroup extends IKlesStructuralElement { type: 'layoutGroup'; fields: KlesFormElement[]; layoutConfig?: IKlesLayoutConfig; } interface IKlesFormDivider extends IKlesStructuralElement { type: 'divider'; } interface IKlesFormSpacer extends IKlesStructuralElement { type: 'spacer'; size?: string | number; } type KlesFormStructuralElement = IKlesFormSection | IKlesFormLayoutGroup | IKlesFormDivider | IKlesFormSpacer; type KlesFormElement = IKlesFieldConfig | KlesFormStructuralElement; declare function isKlesStructuralElement(element: KlesFormElement): element is KlesFormStructuralElement; declare function flattenKlesFields(elements: readonly KlesFormElement[]): IKlesFieldConfig[]; interface IKlesFieldActionEvent { actionId: string; value?: TValue; context: TContext | null; field: IKlesFieldConfig; group: UntypedFormGroup; originalEvent: Event; } interface IKlesCurrencyOptions { /** * Code ISO 4217 : EUR, USD, GBP... * DEFAULT_CURRENCY_CODE sera utilisé par défaut. */ code?: string; /** * Locale Intl : fr-FR, en-US... * LOCALE_ID sera utilisé par défaut. */ locale?: string; display?: 'symbol' | 'narrowSymbol' | 'code' | 'name'; minimumFractionDigits?: number; maximumFractionDigits?: number; useGrouping?: boolean; allowNegative?: boolean; } interface IKlesImageUploadOptions { /** Taille maximale autorisée, en octets. 2 Mio par défaut. */ maxFileSize?: number; changeLabel?: string; deleteLabel?: string; emptyIcon?: string; uploadIcon?: string; invalidTypeMessage?: string; maxFileSizeMessage?: string; } type KlesStatusTone = 'neutral' | 'info' | 'success' | 'warning' | 'error'; type KlesStatusAppearance = 'chip' | 'badge' | 'text'; interface IKlesStatusDefinition { label: string; tone?: KlesStatusTone; icon?: string; iconSvg?: string; tooltip?: string; ariaLabel?: string; ngClass?: any; } interface IKlesStatusOptions { values?: Record; appearance?: KlesStatusAppearance; /** * Affiche un point coloré lorsque le statut * ne possède pas d'icône. */ showDot?: boolean; fallback?: IKlesStatusDefinition; /** * Permet de gérer des valeurs plus complexes, * notamment des objets. */ resolve?: (value: any, context: unknown | null, field: IKlesFieldConfig, group: UntypedFormGroup) => IKlesStatusDefinition | null; } interface IKlesFieldUiResolveEvent { context: TContext | null; field: IKlesFieldConfig; group: UntypedFormGroup; siblingFields: IKlesFieldConfig[]; } type IKlesFieldUiResolver = (event: IKlesFieldUiResolveEvent) => Partial>; interface IKlesFieldUi { inputType?: 'text' | 'button' | 'checkbox' | 'color' | 'date' | 'datetime-local' | 'email' | 'file' | 'hidden' | 'image' | 'month' | 'number' | 'password' | 'radio' | 'range' | 'reset' | 'search' | 'submit' | 'tel' | 'time' | 'url' | 'week'; min?: number | Date; max?: number | Date; maxLength?: number; step?: number; hostClass?: string | string[] | Set | { [klass: string]: any; }; ngClass?: any; ngStyle?: any; indeterminate?: boolean; color?: ThemePalette; icon?: string; iconSvg?: string; appearance?: 'fill' | 'outline'; buttonAppearance?: MatButtonAppearance; visible?: boolean; colorOption?: { disable?: boolean; position?: ColorPickerPosition; positionOffset?: number; format?: ColorOutputFormat; commitMode?: ColorCommitMode; alpha?: boolean; eyeDropper?: boolean; saveOnOutside?: boolean; fallbackColor?: string; presets?: readonly string[]; }; direction?: 'column' | 'row' | 'grid' | 'inline-grid'; wrap?: boolean; textareaAutoSize?: { minRows?: number; maxRows?: number; }; virtualScroll?: boolean; itemSize?: number; hint?: string; label?: string; placeholder?: any; tooltip?: string; imageUrl?: string; imageAlt?: string; currencyOptions?: IKlesCurrencyOptions; resolveUi?: IKlesFieldUiResolver; } interface IKlesSelectSearchOptions { mode?: 'local' | 'remote'; keys?: string[]; debounceTime?: number; minLength?: number; clearOnClose?: boolean; placeholder?: string; ariaLabel?: string; } interface IKlesFormField { type?: EnumType; name: string; component?: Type; id?: string; options?: any[] | Subject | Observable | ((value?: string, group?: { [key: string]: any; }) => Observable); search?: boolean | IKlesSelectSearchOptions; property?: string; collections?: IKlesFieldConfig[]; value?: any; asyncValue?: Observable; multiple?: boolean; disabled?: boolean; autocomplete?: boolean; autocompleteComponent?: KlesComponentType; displayWith?: ((value: any) => string) | null; panelWidth?: string | number; pending?: boolean; validations?: IKlesValidator[]; asyncValidations?: IKlesValidator[]; pipeTransform?: { pipe: PipeTransform; options?: any[]; }[]; valueChanges?: (field: IKlesFieldConfig, group: UntypedFormGroup, siblingField?: IKlesFieldConfig[], valueChanged?: any) => void; triggerComponent?: KlesComponentType; searchKeys?: string[]; updateOn?: 'change' | 'blur' | 'submit'; debounceTime?: number; directive?: new (ref: ViewContainerRef, field: IKlesField) => IKlesDirective; lazy?: boolean; buttonType?: 'submit' | 'button' | 'reset'; accept?: string; imageUploadOptions?: IKlesImageUploadOptions; dateOptions?: { adapter?: { class: Type>; deps?: any[]; }; language: string; dateFormat: MatDateFormats; }; clearable?: boolean; clearableComponent?: Type; subComponents?: Type[]; autofocus?: boolean; subscriptSizing?: SubscriptSizing; nonNullable?: boolean; onFocus?: (field: IKlesFieldConfig, group: UntypedFormGroup) => void; onBlur?: (field: IKlesFieldConfig, group: UntypedFormGroup) => void; providers?: Array; onAction?: (event: IKlesFieldActionEvent) => void; statusOptions?: IKlesStatusOptions; /** Position of this field in an advanced CSS Grid container. */ layout?: IKlesElementLayout; } type IKlesFieldConfig = IKlesFormField & IKlesFieldUi; /** Selects the untyped result when T is `any`, otherwise the typed result. */ type KlesTypedOrUntyped = 0 extends 1 & T ? TUntyped : TTyped; type KlesPathSegment = string | number; type KlesTokenize = TPath extends `${infer THead}.${infer TTail}` ? [THead, ...KlesTokenize] : [TPath]; type KlesCoercePathSegment = TSegment extends `${infer TIndex extends number}` ? TIndex : TSegment; type KlesProperty = TValue extends unknown ? KlesCoercePathSegment extends keyof TValue ? TValue[KlesCoercePathSegment] : never : never; type KlesNavigate = number extends TPath['length'] ? any : TPath extends readonly [infer THead extends KlesPathSegment, ...infer TTail extends KlesPathSegment[]] ? KlesNavigate, TTail> : TValue; /** Resolves the value located at a dot-separated path or an array of path segments. */ type KlesGetProperty = KlesTypedOrUntyped> : TPath extends readonly KlesPathSegment[] ? KlesNavigate : never, any>; declare abstract class AbstractUiState { protected _value: i0.WritableSignal; private _parent; private _parentKey; get

(path: P): AbstractUiState> | null; get

>(path: P): AbstractUiState> | null; _find(name: string | number): AbstractUiState | null; abstract setValue(value: TRawValue): void; abstract patchValue(value: Partial): void; get value(): Signal; setParent(parent: AbstractUiState, key: string | number): void; protected notifyParent(): void; childValueChanged(key: string | number, value: any): void; } declare class GroupUiState; } = any> extends AbstractUiState { states: KlesTypedOrUntyped; }>; constructor(states?: TUiState); setValue(value: any): void; patchValue(value: any): void; childValueChanged(key: string | number, value: any): void; _find(name: string | number): AbstractUiState | null; addUiState(name: string, uiState: AbstractUiState): void; private buildInitialValue; } declare class KlesDynamicFormComponent implements OnInit, OnChanges { private fb; private ref; context: Signal | null; fields: KlesFormElement[]; validators: IKlesValidator[]; asyncValidators: IKlesValidator[]; submit: EventEmitter; _onLoaded: EventEmitter; direction: 'column' | 'row' | 'grid' | 'inline-grid'; wrap: boolean; /** Configuration of the advanced grid container. */ layout: IKlesLayoutConfig; formClass: string | string[] | Set | { [klass: string]: any; }; form: UntypedFormGroup; ui: GroupUiState; private flattenedSource; private flattenedFields; private readonly layoutWarnings; get orientationClass(): 'dynamic-form-column' | 'dynamic-form-row' | 'dynamic-form-grid' | 'dynamic-form-inline-grid'; get value(): any; get legacyFields(): IKlesFieldConfig[]; get usesAdvancedLayout(): boolean; get gridStyles(): Record | null; private get hasRootElementLayout(); constructor(fb: UntypedFormBuilder, ref: ChangeDetectorRef); ngOnInit(): void; ngOnChanges(changes: SimpleChanges): void; onSubmit(event: Event): void; private updateForm; private updateControl; private createControl; private createUiState; private createForm; private validateAllFormFields; private createUi; private normalizeColumns; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } declare class KlesComponentDirective implements OnInit, OnChanges, OnDestroy { private container; component: KlesComponentType; value: TValue; field: IKlesFieldConfig; componentRef?: ComponentRef>; constructor(container: ViewContainerRef); ngOnInit(): void; ngOnChanges(changes: SimpleChanges): void; ngOnDestroy(): void; private buildComponent; static ɵfac: i0.ɵɵFactoryDeclaration, never>; static ɵdir: i0.ɵɵDirectiveDeclaration, "[klesComponent]", never, { "component": { "alias": "component"; "required": true; }; "value": { "alias": "value"; "required": true; }; "field": { "alias": "field"; "required": true; }; }, {}, never, never, true, never>; } declare class KlesDynamicFieldDirective implements OnInit, OnChanges, OnDestroy { protected container: ViewContainerRef; protected injector: Injector; private applicationRef; field: T; group: UntypedFormGroup; ui: GroupUiState; siblingFields: T[]; context: Signal | null; componentRef: ComponentRef | undefined; subComponents: ComponentRef[]; private subComponentViews; constructor(container: ViewContainerRef, injector: Injector, applicationRef: ApplicationRef); ngOnDestroy(): void; ngOnInit(): void; ngOnChanges(changes: SimpleChanges): void; buildComponent(): void; protected createComponentRef(injector: Injector): ComponentRef | undefined; protected findComponent(): Type | undefined; private createSubComponent; private destroyComponents; static ɵfac: i0.ɵɵFactoryDeclaration, never>; static ɵdir: i0.ɵɵDirectiveDeclaration, "[klesDynamicField]", never, { "field": { "alias": "field"; "required": false; }; "group": { "alias": "group"; "required": false; }; "ui": { "alias": "ui"; "required": false; }; "siblingFields": { "alias": "siblingFields"; "required": false; }; "context": { "alias": "context"; "required": false; }; }, {}, never, never, true, never>; } declare class KlesFocusTargetDirective { private readonly element; focus(): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; } declare abstract class KlesFieldAbstract implements IKlesField, OnInit, AfterViewInit, OnDestroy { readonly field: IKlesFieldConfig; readonly group: FormGroup; readonly siblingFields: IKlesFieldConfig[]; readonly ui: GroupUiState | null; readonly context: Signal | null; protected readonly fieldUi: Signal; protected readonly resolvedFieldUi: Signal; readonly appearance: Signal<"fill" | "outline">; readonly inputType: Signal<"number" | "text" | "image" | "url" | "search" | "date" | "email" | "submit" | "reset" | "file" | "button" | "checkbox" | "time" | "color" | "range" | "datetime-local" | "hidden" | "month" | "password" | "radio" | "tel" | "week">; readonly min: Signal; readonly max: Signal; readonly maxLength: Signal; readonly step: Signal; readonly ngClass: Signal; readonly ngStyle: Signal; readonly indeterminate: Signal; readonly color: Signal<"primary" | "accent" | "warn">; readonly icon: Signal; readonly iconSvg: Signal; readonly buttonAppearance: Signal; readonly label: Signal; readonly hint: Signal; readonly placeholder: Signal; readonly tooltip: Signal; readonly imageUrl: Signal; readonly imageAlt: Signal; protected readonly viewRef: ViewContainerRef; protected readonly focusTarget: Signal; directive: any; protected _onDestroy: Subject; constructor(); ngOnInit(): void; ngAfterViewInit(): void; ngOnDestroy(): void; applyPipeTransform(): void; isPending(): boolean | undefined; onFocus(): void; onBlur(): void; protected focus(): void; triggerAction(actionId: string, originalEvent: Event, value?: unknown): void; static ɵfac: i0.ɵɵFactoryDeclaration, never>; static ɵdir: i0.ɵɵDirectiveDeclaration, never, never, {}, {}, never, never, true, never>; } declare class KlesFormLabelComponent extends KlesFieldAbstract implements OnInit, OnDestroy { constructor(); ngOnInit(): void; ngOnDestroy(): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } interface IButton { event?: string; uiButton?: IUIButton; } interface IUIButton { label?: string; color?: string; icon?: string; iconSvg?: string; disabled?: boolean; class?: string; type?: string; accept?: string; buttonAppearance?: MatButtonAppearance; } declare abstract class KlesButtonBase implements OnInit, ControlValueAccessor { readonly name: i0.InputSignal; readonly label: i0.InputSignal; readonly color: i0.InputSignal; readonly icon: i0.InputSignal; readonly iconSvg: i0.InputSignal; readonly disabled: i0.InputSignal; readonly type: i0.InputSignal; readonly classButton: i0.InputSignal; readonly value: i0.InputSignal; readonly tooltip: i0.InputSignal; readonly buttonAppearance: i0.InputSignal; protected readonly uiButtonState: i0.WritableSignal; private readonly formDisabledState; private readonly writtenValueState; readonly effectiveLabel: i0.Signal; readonly effectiveColor: i0.Signal; readonly effectiveIcon: i0.Signal; readonly effectiveIconSvg: i0.Signal; readonly effectiveDisabled: i0.Signal; readonly effectiveType: i0.Signal; readonly effectiveClassButton: i0.Signal; readonly effectiveButtonAppearance: i0.Signal; readonly effectiveValue: i0.Signal; action: EventEmitter; protected onChange: (value: TButton) => void; protected onTouched: () => void; ngOnInit(): void; click(event: MouseEvent): void; writeValue(value: TButton | null | undefined): void; registerOnChange(fn: (value: TButton) => void): void; registerOnTouched(fn: () => void): void; protected markAsTouched(): void; setDisabledState?(isDisabled: boolean): void; static ɵfac: i0.ɵɵFactoryDeclaration, never>; static ɵcmp: i0.ɵɵComponentDeclaration, "ng-component", never, { "name": { "alias": "name"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "iconSvg": { "alias": "iconSvg"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "classButton": { "alias": "classButton"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "tooltip": { "alias": "tooltip"; "required": false; "isSignal": true; }; "buttonAppearance": { "alias": "buttonAppearance"; "required": false; "isSignal": true; }; }, { "action": "action"; }, never, never, true, never>; } declare class KlesButtonComponent extends KlesButtonBase implements OnInit { static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } interface IButtonChecker extends IButton { busy: boolean; error?: any[]; message?: string; } declare class KlesButtonCheckerComponent extends KlesButtonBase implements ControlValueAccessor { countError(): number; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } interface IButtonFile extends IButton { fileContent?: string | ArrayBuffer | (string | ArrayBuffer)[] | null; } declare class KlesButtonFileComponent extends KlesButtonBase { private readonly file; readonly accept: i0.InputSignal; readonly effectiveAccept: i0.Signal; click(_event: MouseEvent): void; writeValue(value: IButtonFile | null | undefined): void; onFileSelect(input: HTMLInputElement): Promise; readUploadedFile(inputFile: File): Promise; private resetNativeFileInput; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } declare class KlesTransformPipe implements PipeTransform { transform(value: any, pipes?: { pipe: PipeTransform; options?: any[]; }[]): any; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵpipe: i0.ɵɵPipeDeclaration; } declare class ArrayFormatPipe implements PipeTransform { transform(values: any[], property?: string): string; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵpipe: i0.ɵɵPipeDeclaration; } interface IKlesClearControl extends IKlesField { clear(event: any): void; } declare class KlesFormClearComponent implements IKlesClearControl { readonly field: IKlesFieldConfig; readonly group: FormGroup; readonly siblingFields: IKlesFieldConfig[]; disabled: Signal; constructor(); clear(event: MouseEvent): void; private isPresent; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } declare class MatErrorMessageDirective implements AfterViewInit { readonly validations: i0.InputSignal[] | undefined>; readonly asyncValidations: i0.InputSignal[] | undefined>; readonly validationsKeys: i0.Signal<_3kles_kles_material_dynamicforms.KlesValidationKey[]>; readonly asyncValidationsKeys: i0.Signal<_3kles_kles_material_dynamicforms.KlesValidationKey[]>; private readonly formField; private readonly inputRef; private readonly controlStatus; readonly errors: i0.Signal<_angular_forms.ValidationErrors | null>; ngAfterViewInit(): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } declare class MatErrorFormDirective { readonly form: i0.InputSignal>; readonly validations: i0.InputSignal[] | undefined>; readonly asyncValidations: i0.InputSignal[] | undefined>; readonly validationsKeys: i0.Signal<_3kles_kles_material_dynamicforms.KlesValidationKey[]>; readonly asyncValidationsKeys: i0.Signal<_3kles_kles_material_dynamicforms.KlesValidationKey[]>; readonly formErrors: i0.Signal<_angular_forms.ValidationErrors | null>; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } declare class KlesFileControlComponent implements ControlValueAccessor { private readonly fileInput; private readonly disabledState; get disabled(): boolean; set disabled(value: boolean); accept: string; multiple: boolean; value: KlesFileControlValue; private onChange; private onTouched; writeValue(value: KlesFileControlValue | undefined): void; onFileSelected(input: HTMLInputElement): Promise; registerOnChange(fn: (value: KlesFileControlValue) => void): void; registerOnTouched(fn: () => void): void; markAsTouched(): void; setDisabledState?(isDisabled: boolean): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } interface KlesFileValue { name: string; content: ArrayBuffer; type?: string; size?: number; } type KlesFileControlValue = KlesFileValue[] | null; declare class KlesDynamicFormIntl { loading: string; selectAll: string; clearSearch: string; search: string; add: string; delete: string; copy: string; empty: string; imageUploadChange: string; imageUploadDelete: string; imageUploadInvalidType: string; imageUploadMaxSize: string; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵprov: i0.ɵɵInjectableDeclaration; } declare class KlesFormCopyComponent implements IKlesField { private readonly tooltip; readonly field: IKlesFieldConfig; readonly group: FormGroup; readonly siblingFields: IKlesFieldConfig[]; readonly intl: KlesDynamicFormIntl; private readonly clipboard; readonly tooltipText: string; copy(event: MouseEvent): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } declare class MaterialModule { static ɵfac: i0.ɵɵFactoryDeclaration; static ɵmod: i0.ɵɵNgModuleDeclaration; static ɵinj: i0.ɵɵInjectorDeclaration; } declare class KlesFormInputComponent extends KlesFieldAbstract implements OnInit, OnDestroy { filteredOption$: Observable<{ loading: boolean; options: any[]; }>; options$: Observable<{ loading: boolean; options: any[]; }>; private isFocused; isLoading: i0.WritableSignal; intl: KlesDynamicFormIntl; constructor(); ngOnInit(): void; onFocus(): void; private filterData; displayFn(value: any): any; ngOnDestroy(): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } declare class KlesFormInputClearableComponent extends KlesFormInputComponent implements OnInit, OnDestroy { ngOnDestroy(): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } declare class KlesFormBadgeComponent extends KlesFieldAbstract implements OnInit, OnDestroy { ngOnInit(): void; ngOnDestroy(): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } declare class KlesFormFileComponent extends KlesFieldAbstract { static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } declare class KlesFormButtonComponent extends KlesFieldAbstract implements OnInit, OnDestroy { ngOnInit(): void; ngOnDestroy(): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } declare class KlesFormButtonCheckerComponent extends KlesFieldAbstract implements OnInit, OnDestroy { ngOnInit(): void; ngOnDestroy(): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } declare class KlesFormButtonFileComponent extends KlesFieldAbstract implements OnInit, OnDestroy { ngOnInit(): void; ngOnDestroy(): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } declare class KlesFormDateComponent extends KlesFieldAbstract implements OnInit, OnDestroy { ngOnInit(): void; ngOnDestroy(): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } declare class KlesFormDateTimeComponent extends KlesFieldAbstract { static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } declare class KlesFormRadioComponent extends KlesFieldAbstract implements OnInit, OnDestroy { private readonly radioButtons; protected focus(): void; options$: Observable; ngOnInit(): void; ngOnDestroy(): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } declare class KlesFormCheckboxComponent extends KlesFieldAbstract implements OnInit, OnDestroy { private readonly checkbox; protected focus(): void; ngOnInit(): void; ngOnDestroy(): void; onChange(e: MatCheckboxChange): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } declare class ArrayUiState = AbstractUiState, TValue extends any[] = any[], TRawValue extends TValue = TValue> extends AbstractUiState { states: TItem[]; constructor(states?: TItem[]); setValue(value: TRawValue): void; patchValue(value: Partial): void; childValueChanged(key: string | number, value: any): void; at(index: number): AbstractUiState; _find(name: string | number): AbstractUiState | null; push(control: TItem | TItem[]): void; insert(index: number, state: TItem | TItem[]): void; removeAt(index: number): void; clear(): void; } declare class KlesFormListFieldComponent extends KlesFieldAbstract implements OnInit, OnDestroy { readonly intl: KlesDynamicFormIntl; formArray: FormArray>>; subUi: ArrayUiState; readonly collections: i0.WritableSignal; constructor(); ngOnInit(): void; getRowUi(index: number): GroupUiState; get hasLayout(): boolean; get fieldsDirection(): 'column' | 'row' | 'grid' | 'inline-grid'; deleteField(index: number): void; addField(): void; ngOnDestroy(): void; getGridColumn(field: IKlesFieldConfig): string; getGridRow(field: IKlesFieldConfig): string | undefined; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } declare class KlesFormColorComponent extends KlesFieldAbstract { private readonly formControl; private readonly controlValue; private readonly controlStatus; readonly colorOption: i0.Signal; readonly parsedColor: i0.Signal<_3kles_kles_material_color_picker.RgbaColor | null>; readonly currentColor: i0.Signal; readonly backgroundColor: i0.Signal; readonly foregroundColor: i0.Signal<"#000000" | "#ffffff">; readonly pickerDisabled: i0.Signal; setColor(value: string): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } declare class KlesFormTextareaComponent extends KlesFieldAbstract implements OnInit, OnDestroy { ngOnInit(): void; ngOnDestroy(): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } declare class KlesFormTextComponent extends KlesFieldAbstract implements OnInit, OnDestroy { ngOnInit(): void; ngOnDestroy(): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } declare class KlesFormChipComponent extends KlesFieldAbstract implements OnInit, OnDestroy { ngOnInit(): void; ngOnDestroy(): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } declare class KlesFormGroupComponent extends KlesFieldAbstract implements OnInit, OnDestroy { private readonly orientationClass; get className(): string; subGroup: UntypedFormGroup; subUi: GroupUiState; ngOnInit(): void; ngOnDestroy(): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } declare class KlesFormIconComponent extends KlesFieldAbstract implements OnInit, OnDestroy { ngOnInit(): void; ngOnDestroy(): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } declare class KlesFormLineBreakComponent extends KlesFieldAbstract implements OnInit, OnDestroy { ngOnInit(): void; ngOnDestroy(): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } declare class KlesFormLinkComponent extends KlesFieldAbstract implements OnInit, OnDestroy { ngOnInit(): void; ngOnDestroy(): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } declare class KlesFormSlideToggleComponent extends KlesFieldAbstract implements OnInit, OnDestroy { private readonly slideToggle; protected focus(): void; ngOnInit(): void; ngOnDestroy(): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } /** * Copy and past from https://github.com/angular/components/blob/17.0.x/src/cdk/collections/selection-model.ts * (They put everything in private, thanks to angular team) */ declare class KlesSelectionModel { private _multiple; private _emitChanges; compareWith?: ((o1: T, o2: T) => boolean) | undefined; private readonly _revision; /** Currently-selected values. */ private _selection; /** Keeps track of the deselected options that haven't been emitted by the change event. */ private _deselectedToEmit; /** Keeps track of the selected options that haven't been emitted by the change event. */ private _selectedToEmit; /** Cache for the array value of the selected items. */ private _selected; /** Selected values. */ get selected(): T[]; /** Event emitted when the value has changed. */ readonly changed: Subject; constructor(_multiple?: boolean, initiallySelectedValues?: T[], _emitChanges?: boolean, compareWith?: ((o1: T, o2: T) => boolean) | undefined); /** * Selects a value or an array of values. * @param values The values to select * @return Whether the selection changed as a result of this call * @breaking-change 16.0.0 make return type boolean */ select(values: T[], option?: { emitEvent: boolean; }): boolean | void; /** * Deselects a value or an array of values. * @param values The values to deselect * @return Whether the selection changed as a result of this call * @breaking-change 16.0.0 make return type boolean */ deselect(values: T[], option?: { emitEvent: boolean; }): boolean | void; /** * Sets the selected values * @param values The new selected values * @return Whether the selection changed as a result of this call * @breaking-change 16.0.0 make return type boolean */ setSelection(values: T[], option?: { emitEvent: boolean; }): boolean | void; /** * Toggles a value between selected and deselected. * @param value The value to toggle * @return Whether the selection changed as a result of this call * @breaking-change 16.0.0 make return type boolean */ toggle(value: T): boolean | void; /** * Clears all of the selected values. * @param flushEvent Whether to flush the changes in an event. * If false, the changes to the selection will be flushed along with the next event. * @return Whether the selection changed as a result of this call * @breaking-change 16.0.0 make return type boolean */ clear(flushEvent?: boolean): boolean | void; /** * Determines whether a value is selected. */ isSelected(value: T): boolean; /** * Determines whether the model does not have a value. */ isEmpty(): boolean; /** * Determines whether the model has a value. */ hasValue(): boolean; /** * Sorts the selected values based on a predicate function. */ sort(predicate?: (a: T, b: T) => number): void; /** * Gets whether multiple values can be selected. */ isMultipleSelection(): boolean; /** Emits a change event and clears the records of selected and deselected values. */ private _emitChangeEvent; /** Selects a value. */ private _markSelected; /** Deselects a value. */ private _unmarkSelected; /** Clears out the selected values. */ private _unmarkAll; /** * Verifies the value assignment and throws an error if the specified value array is * including multiple values while the selection model is not supporting multiple values. */ private _verifyValueAssignment; /** Whether there are queued up change to be emitted. */ private _hasQueuedChanges; /** Returns a value that is comparable to inputValue by applying compareWith function, returns the same inputValue otherwise. */ private _getConcreteValue; } declare class KlesFormSelectionListComponent extends KlesFieldAbstract implements OnInit, OnDestroy { selection: KlesSelectionModel; options$: Observable; private readonly control; private readonly controlStatus; readonly disabled: i0.Signal; ngOnInit(): void; ngOnDestroy(): void; onSelectionChange(selection: MatSelectionListChange): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } declare class KlesFormButtonToogleGroupComponent extends KlesFieldAbstract implements OnInit, OnDestroy { private readonly buttonToggles; protected focus(): void; options$: Observable; ngOnInit(): void; ngOnDestroy(): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } declare class KlesFormArrayComponent extends KlesFieldAbstract implements OnInit, OnDestroy { formArray: UntypedFormArray; subUi: ArrayUiState; constructor(); ngOnInit(): void; asFormGroup(control: AbstractControl): UntypedFormGroup; uiAt(index: number): GroupUiState; ngOnDestroy(): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } declare class KlesFormRangeComponent extends KlesFieldAbstract implements OnInit, OnDestroy { ngOnInit(): void; ngOnDestroy(): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } declare class KlesFormFabComponent extends KlesFieldAbstract implements OnInit, OnDestroy { ngOnInit(): void; ngOnDestroy(): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } declare class KlesFabComponent extends KlesButtonBase implements OnInit { static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } declare class KlesMiniFabComponent extends KlesButtonBase implements OnInit { static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } declare class KlesFormMiniFabComponent extends KlesFieldAbstract implements OnInit, OnDestroy { ngOnInit(): void; ngOnDestroy(): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } declare class KlesIconButtonComponent extends KlesButtonBase implements OnInit { static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } declare class KlesFormIconButtonComponent extends KlesFieldAbstract implements OnInit, OnDestroy { ngOnInit(): void; ngOnDestroy(): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } declare class KlesFormSelectionListSearchComponent extends KlesFieldAbstract implements OnInit, OnDestroy { selection: KlesSelectionModel; options$: Observable; searchControl: FormControl; optionFiltered$: Observable; private readonly control; private readonly controlStatus; readonly disabled: i0.Signal; ngOnInit(): void; ngOnDestroy(): void; onSelectionChange(selection: MatSelectionListChange): void; private syncSearchDisabledState; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } declare class KlesFormTileComponent extends KlesFieldAbstract { private readonly control; private readonly controlValue; readonly formattedValue: i0.Signal; readonly displayValue: i0.Signal; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } /** * Condition statique ou calculée à partir du contexte du field. */ type KlesActionMenuCondition = boolean | ((context: TContext | null, field: IKlesFieldConfig, group: UntypedFormGroup) => boolean); /** * Configuration d'une entrée du menu. * * Le callback n'est pas placé ici : * toutes les actions sont gérées par field.onAction. */ interface KlesActionMenuItem { id: string; label: string; icon?: string; iconSvg?: string; visible?: KlesActionMenuCondition; disabled?: KlesActionMenuCondition; dividerBefore?: boolean; color?: 'default' | 'warn'; } /** * Configuration spécialisée du field action-menu. */ interface KlesActionMenuFieldConfig extends IKlesFieldConfig { options?: KlesActionMenuItem[] | Observable[]> | ((value?: string, group?: { [key: string]: any; }) => Observable[]>); menuXPosition?: 'before' | 'after'; menuYPosition?: 'above' | 'below'; } declare class KlesFormActionMenuComponent extends KlesFieldAbstract { /** * Configuration du field avec le typage spécialisé. */ readonly actionField: KlesActionMenuFieldConfig; private readonly control; private readonly controlStatus; /** * Options statiques ou asynchrones. */ private readonly actionsSource$; readonly actions: i0.Signal[]>; readonly disabled: i0.Signal; readonly visibleActions: i0.Signal[]>; readonly ariaLabel: i0.Signal; onTriggerClick(event: MouseEvent): void; isDisabled(action: KlesActionMenuItem): boolean; execute(action: KlesActionMenuItem, event: MouseEvent): void; private resolveCondition; private resolveOptions; static ɵfac: i0.ɵɵFactoryDeclaration, never>; static ɵcmp: i0.ɵɵComponentDeclaration, "kles-form-action-menu", never, {}, {}, never, never, true, never>; } /** * ValueAccessor monétaire. * * La valeur du FormControl reste un number | null. * Seule la valeur affichée dans l'input est formatée. */ declare class KlesCurrencyValueAccessorDirective implements ControlValueAccessor, OnChanges { private readonly elementRef; private readonly renderer; currency: string; locale: string; currencyDisplay: 'symbol' | 'narrowSymbol' | 'code' | 'name'; minimumFractionDigits?: number; maximumFractionDigits?: number; useGrouping: boolean; allowNegative: boolean; private currentValue; private focused; private onChange; private onTouched; ngOnChanges(changes: SimpleChanges): void; writeValue(value: unknown): void; registerOnChange(callback: (value: number | null) => void): void; registerOnTouched(callback: () => void): void; setDisabledState(disabled: boolean): void; handleFocus(): void; handleInput(event: Event): void; handleBlur(): void; private normalizeModelValue; private renderFormattedValue; private setInputValue; private formatCurrency; /** * Pendant l'édition, on retire le symbole et * les séparateurs de milliers. */ private formatEditableValue; private createCurrencyFormatOptions; private parseLocalizedNumber; /** * Convertit également les chiffres localisés * vers 0-9. */ private normalizeLocalizedDigits; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; } declare class KlesFormCurrencyComponent extends KlesFieldAbstract { readonly localeId: string; readonly currencyOptions: i0.Signal<_3kles_kles_material_dynamicforms.IKlesCurrencyOptions | undefined>; readonly defaultCurrencyCode: string; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } declare class KlesFormStatusComponent extends KlesFieldAbstract { private readonly control; private readonly controlValue; private readonly controlStatus; readonly statusAppearance: i0.Signal<_3kles_kles_material_dynamicforms.KlesStatusAppearance>; readonly showDot: i0.Signal; readonly disabled: i0.Signal; readonly pending: i0.Signal; readonly resolvedStatus: i0.Signal; private resolveStatusKey; private resolveDefaultLabel; static ɵfac: i0.ɵɵFactoryDeclaration, never>; static ɵcmp: i0.ɵɵComponentDeclaration, "kles-form-status", never, {}, {}, never, never, true, never>; } interface ChipOptionsState { loading: boolean; options: any[]; } declare class KlesFormChipGridComponent extends KlesFieldAbstract implements OnInit { readonly control: FormControl; readonly intl: KlesDynamicFormIntl; readonly separatorKeysCodes: number[]; readonly searchControl: FormControl; filteredOption$: Observable; private options$; private readonly loadOptions$; ngOnInit(): void; onFocus(): void; onTokenEnd(event: MatChipInputEvent): void; addChip(value: unknown): void; removeChip(value: unknown): void; selected(event: MatAutocompleteSelectedEvent, chipInput: MatChipInput): void; displayValue(value: any): any; private createOptionsStream; private resolveOptions; private filterData; private isSameOption; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } declare class KlesFormImageUploadComponent extends KlesFieldAbstract implements OnInit, OnDestroy { readonly intl: KlesDynamicFormIntl; private readonly fileInput; private readonly control; private readonly localPreviewUrl; private readonly imageRemoved; private readonly controlValue; private controlSubscription?; readonly options: i0.Signal<_3kles_kles_material_dynamicforms.IKlesImageUploadOptions>; readonly accept: i0.Signal; readonly disabled: i0.Signal; readonly errorMessage: i0.WritableSignal; readonly previewUrl: i0.Signal; readonly hasImage: i0.Signal; ngOnInit(): void; ngOnDestroy(): void; openFilePicker(): void; selectFile(event: Event): Promise; deleteImage(): void; private previewFromValue; private isAccepted; private rejectFile; private clearImageErrors; private clearLocalPreview; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } declare class KlesMaterialDynamicformsModule { static declarations: ((typeof KlesFormClearComponent | typeof KlesDynamicFormComponent | typeof KlesFormLabelComponent | typeof KlesButtonComponent | typeof KlesButtonCheckerComponent | typeof KlesButtonFileComponent | typeof KlesFileControlComponent | typeof KlesFormCopyComponent)[] | (typeof KlesDynamicFieldDirective | typeof MatErrorFormDirective | typeof KlesComponentDirective | typeof MatErrorMessageDirective)[] | (typeof KlesTransformPipe | typeof ArrayFormatPipe)[])[]; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵmod: i0.ɵɵNgModuleDeclaration; static ɵinj: i0.ɵɵInjectorDeclaration; } declare class KlesFormPasswordVisibilityComponent implements IKlesField { readonly field: IKlesFieldConfig; readonly group: FormGroup; readonly siblingFields: IKlesFieldConfig[]; readonly ui: GroupUiState | null; private readonly control; readonly disabled: i0.Signal; readonly hide: i0.Signal; toggleVisibility(event: MouseEvent): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } declare class KlesFormSelectComponent extends KlesFieldAbstract implements OnInit, AfterViewInit, OnDestroy { readonly searchControl: FormControl; readonly selectAllControl: FormControl; readonly selectAllIndeterminate: i0.WritableSignal; readonly isLoading: i0.WritableSignal; readonly filteredOptions: i0.WritableSignal; readonly intl: KlesDynamicFormIntl; protected readonly changeDetectorRef: ChangeDetectorRef; private readonly matSelect; private readonly virtualViewport; protected focus(): void; searchOptions: IKlesSelectSearchOptions; private readonly deferredQuery$; private sourceOptions; private visibleOptions; private isPanelOpen; private isDeferredSourceLoaded; private deferredOptionsRequest$?; private restoreMatSelectScroll?; ngOnInit(): void; ngOnDestroy(): void; ngAfterViewInit(): void; isSearchEnabled(): boolean; panelClasses(): string[]; onOpenedChange(opened: boolean): void; toggleVisibleOptions(state: { checked: boolean; }): void; getHiddenSelectedOptions(): any[]; compareFn: (first: any, second: any) => boolean; private normalizeSearchOptions; private usesDeferredSource; private loadInitialOptions; private initializeDeferredQueries; private resolveOptions; private applyLocalFilter; private setVisibleOptions; private filterOptions; private normalizeSearchValue; private installMatSelectScrollCorrection; private keepOptionVisible; private selectedValues; private updateSelectAllState; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } declare class KlesFormErrorStateMatcher implements ErrorStateMatcher { constructor(); isErrorState(control: UntypedFormControl | null, form: FormGroupDirective | NgForm | null): boolean; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵprov: i0.ɵɵInjectableDeclaration; } declare function autocompleteObjectValidator(optional?: boolean): ValidatorFn; declare function autocompleteStringValidator(validOptions: Array, optional?: boolean): ValidatorFn; declare const componentMapper: { component: Type; type: string; factory: (field: IKlesFieldConfig, ref?: ChangeDetectorRef) => AbstractControl | null; ui: (field: IKlesFieldConfig) => AbstractUiState; }[]; declare function FieldMapper(config: { type: string; factory?: (field: IKlesFieldConfig) => AbstractControl | null; ui?: (field: IKlesFieldConfig) => AbstractUiState; }): (target: Type) => void; declare const klesFieldControlFactory: (field: IKlesFieldConfig, ref?: ChangeDetectorRef) => AbstractControl; declare const klesFieldUiFactory: (field: IKlesFieldConfig) => AbstractUiState; interface IKlesControl { create(): AbstractControl; bindValidations(validations: IKlesValidator[]): ValidatorFn | null; bindAsyncValidations(validations: IKlesValidator[]): AsyncValidatorFn | null; } declare abstract class KlesAbstractFormControl implements IKlesControl { protected field: IKlesFieldConfig; protected ref?: ChangeDetectorRef | undefined; constructor(field: IKlesFieldConfig, ref?: ChangeDetectorRef | undefined); abstract create(): AbstractControl; bindValidations(validations: IKlesValidator[]): ValidatorFn | null; bindAsyncValidations(validations: IKlesValidator[]): AsyncValidatorFn | null; } declare class KlesFormControl extends KlesAbstractFormControl { create(): AbstractControl; } declare class KlesFormArray extends KlesFormControl { create(): AbstractControl; } declare class KlesFormGroup extends KlesFormControl { create(): AbstractControl; } declare class KlesFormRange extends KlesFormControl { create(): AbstractControl; } interface Destroyable { destroy(): void; } declare function isDestroyable(value: unknown): value is Destroyable; interface IKlesUi { create(): AbstractUiState; } declare abstract class KlesAbstractFormUiControl implements IKlesUi { protected field: IKlesFieldConfig; constructor(field: IKlesFieldConfig); abstract create(): AbstractUiState; } declare class KlesFormUiControl extends KlesAbstractFormUiControl { create(): AbstractUiState; } declare class KlesFormUiArray extends KlesFormUiControl { create(): AbstractUiState; } declare class KlesFormUiGroup extends KlesFormUiControl { create(): AbstractUiState; } declare class ControlUiState extends AbstractUiState { constructor(value?: TValue); get value(): Signal; setValue(value: TValue): void; patchValue(value: Partial | TValue): void; } declare const FIELD_NAME: InjectionToken; declare const GROUP: InjectionToken>; declare const SIBLING_FIELDS: InjectionToken; declare const GROUP_UI: InjectionToken>; declare const FIELD: InjectionToken; declare const FIELD_CONTEXT: InjectionToken>; export { AbstractUiState, ArrayFormatPipe, ArrayUiState, ControlUiState, EnumType, FIELD, FIELD_CONTEXT, FIELD_NAME, FieldMapper, GROUP, GROUP_UI, GroupUiState, KlesAbstractFormControl, KlesAbstractFormUiControl, KlesButtonBase, KlesButtonCheckerComponent, KlesButtonComponent, KlesButtonFileComponent, KlesComponentDirective, KlesCurrencyValueAccessorDirective, KlesDynamicFieldDirective, KlesDynamicFormComponent, KlesDynamicFormIntl, KlesFabComponent, KlesFieldAbstract, KlesFileControlComponent, KlesFocusTargetDirective, KlesFormActionMenuComponent, KlesFormArray, KlesFormArrayComponent, KlesFormBadgeComponent, KlesFormButtonCheckerComponent, KlesFormButtonComponent, KlesFormButtonFileComponent, KlesFormButtonToogleGroupComponent, KlesFormCheckboxComponent, KlesFormChipComponent, KlesFormChipGridComponent, KlesFormClearComponent, KlesFormColorComponent, KlesFormControl, KlesFormCopyComponent, KlesFormCurrencyComponent, KlesFormDateComponent, KlesFormDateTimeComponent, KlesFormErrorStateMatcher, KlesFormFabComponent, KlesFormFileComponent, KlesFormGroup, KlesFormGroupComponent, KlesFormIconButtonComponent, KlesFormIconComponent, KlesFormImageUploadComponent, KlesFormInputClearableComponent, KlesFormInputComponent, KlesFormLabelComponent, KlesFormLineBreakComponent, KlesFormLinkComponent, KlesFormListFieldComponent, KlesFormMiniFabComponent, KlesFormPasswordVisibilityComponent, KlesFormRadioComponent, KlesFormRange, KlesFormRangeComponent, KlesFormSelectComponent, KlesFormSelectionListComponent, KlesFormSelectionListSearchComponent, KlesFormSlideToggleComponent, KlesFormStatusComponent, KlesFormTextComponent, KlesFormTextareaComponent, KlesFormTileComponent, KlesFormUiArray, KlesFormUiControl, KlesFormUiGroup, KlesIconButtonComponent, KlesMaterialDynamicformsModule, KlesMiniFabComponent, KlesSelectionModel, KlesTransformPipe, MatErrorFormDirective, MatErrorMessageDirective, SIBLING_FIELDS, autocompleteObjectValidator, autocompleteStringValidator, componentMapper, flattenKlesFields, isDestroyable, isKlesStructuralElement, klesFieldControlFactory, klesFieldUiFactory }; export type { Destroyable, IButton, IButtonChecker, IButtonFile, IKlesClearControl, IKlesComponent, IKlesControl, IKlesCurrencyOptions, IKlesDirective, IKlesElementLayout, IKlesElementLayoutBreakpoint, IKlesField, IKlesFieldActionEvent, IKlesFieldConfig, IKlesFieldUi, IKlesFieldUiResolveEvent, IKlesFieldUiResolver, IKlesFormDivider, IKlesFormField, IKlesFormLayoutGroup, IKlesFormSection, IKlesFormSpacer, IKlesImageUploadOptions, IKlesLayoutConfig, IKlesSelectSearchOptions, IKlesStatusDefinition, IKlesStatusOptions, IKlesUi, IKlesValidator, IUIButton, KlesActionMenuCondition, KlesActionMenuFieldConfig, KlesActionMenuItem, KlesComponentType, KlesFileControlValue, KlesFileValue, KlesFormElement, KlesFormStructuralElement, KlesGetProperty, KlesStatusAppearance, KlesStatusTone, KlesTypedOrUntyped, KlesValidationKey };