UNPKG

@umbraco-ui/uui-base

Version:

This is a base dependency for Umbraco UI components. It contains mixins, animations, abstract base classes, UUIEvent base class, and universal types for properties shared by different components

56 lines (55 loc) 2.56 kB
import { LitElement } from 'lit'; type HTMLElementConstructor<T = HTMLElement> = new (...args: any[]) => T; type NativeFormControlElement = HTMLInputElement; type FlagTypes = 'badInput' | 'customError' | 'patternMismatch' | 'rangeOverflow' | 'rangeUnderflow' | 'stepMismatch' | 'tooLong' | 'tooShort' | 'typeMismatch' | 'valueMissing' | 'badInput' | 'valid'; interface UUIFormControlValidatorConfig { flagKey: FlagTypes; getMessageMethod: () => string; checkMethod: () => boolean; weight: number; } export interface UUIFormControlMixinInterface<ValueType> extends LitElement { addValidator: (flagKey: FlagTypes, getMessageMethod: () => string, checkMethod: () => boolean) => void; removeValidator: (obj: UUIFormControlValidatorConfig) => void; focusFirstInvalidElement(): void; get value(): ValueType; set value(newValue: ValueType); formResetCallback(): void; checkValidity(): boolean; get validationMessage(): string; get validity(): ValidityState; setCustomValidity(error?: string): void; submit(): void; pristine: boolean; } export declare abstract class UUIFormControlMixinElement<ValueType> extends LitElement implements UUIFormControlMixinInterface<ValueType> { protected _internals: ElementInternals; protected _runValidators(): void; addValidator: (flagKey: FlagTypes, getMessageMethod: () => string, checkMethod: () => boolean) => void; removeValidator: (obj: UUIFormControlValidatorConfig) => void; protected addFormControlElement(element: NativeFormControlElement): void; protected abstract getFormElement(): HTMLElement | undefined | null; focusFirstInvalidElement(): void; get value(): ValueType; set value(newValue: ValueType); formResetCallback(): void; checkValidity(): boolean; get validationMessage(): string; get validity(): ValidityState; setCustomValidity(error: string): void; submit(): void; pristine: boolean; name: string; required: boolean; requiredMessage: string; error: boolean; errorMessage: string; } /** * The mixin allows a custom element to participate in HTML forms. * * @param {Object} superClass - superclass to be extended. * @mixin */ export declare const UUIFormControlMixin: <ValueType = FormDataEntryValue | FormData, T extends HTMLElementConstructor<LitElement> = typeof LitElement, DefaultValueType = undefined>(superClass: T, defaultValue?: DefaultValueType) => HTMLElementConstructor<UUIFormControlMixinElement<ValueType | DefaultValueType>> & T; export {};