igniteui-webcomponents
Version:
Ignite UI for Web Components is a complete library of UI components, giving you the ability to build modern web applications using encapsulation and the concept of reusable components in a dependency-free approach.
33 lines (32 loc) • 1.26 kB
TypeScript
import type { FormValueType, IgcFormControl } from './types.js';
export declare function createFormValueState<T>(host: IgcFormControl, config: FormValueConfig<T>): FormValue<T>;
type FormValueTransformers<T> = {
setValue: (value: T) => T;
getValue: (value: T) => T;
setDefaultValue: (value: T) => T;
getDefaultValue: (value: T) => T;
setFormValue: (value: T, host: IgcFormControl) => FormValueType;
};
type FormValueConfig<T> = {
initialValue: T;
initialDefaultValue?: T;
transformers?: Partial<FormValueTransformers<T>>;
};
export declare const defaultBooleanTransformers: Partial<FormValueTransformers<boolean>>;
export declare const defaultNumberTransformers: Partial<FormValueTransformers<number>>;
export declare const defaultDateTimeTransformers: Partial<FormValueTransformers<Date | null>>;
export declare class FormValue<T> {
private static readonly setFormValueKey;
private _host;
private _value;
private _defaultValue;
private _transformers;
private _setFormValue;
constructor(host: IgcFormControl, config: FormValueConfig<T>);
setValueAndFormState(value: T): void;
set defaultValue(value: T);
get defaultValue(): T;
set value(value: T);
get value(): T;
}
export {};