imask
Version:
vanilla javascript input mask
77 lines • 3.83 kB
TypeScript
import ChangeDetails from '../core/change-details';
import { type ExtendFactoryArgOptions } from './factory';
import Masked, { type AppendFlags, type MaskedState, type MaskedOptions, type ExtractFlags } from './base';
import { type Direction } from '../core/utils';
import { type TailDetails } from '../core/tail-details';
type MaskedDynamicNoRefState = MaskedState & {
compiledMasks: Array<MaskedState>;
};
type MaskedDynamicRefState = MaskedDynamicNoRefState & {
currentMaskRef: Masked;
currentMask: MaskedState;
};
export type MaskedDynamicState = MaskedDynamicNoRefState | MaskedDynamicRefState;
export type DynamicMaskType = Array<ExtendFactoryArgOptions<{
expose?: boolean;
}>> | ArrayConstructor;
export type MaskedDynamicOptions = MaskedOptions<MaskedDynamic, 'dispatch'>;
type HandleState = MaskedDynamicState | MaskedState;
/** Dynamic mask for choosing appropriate mask in run-time */
export default class MaskedDynamic<Value = any> extends Masked<Value> {
mask: DynamicMaskType;
/** Currently chosen mask */
currentMask?: Masked;
/** Currently chosen mask */
exposeMask?: Masked;
/** Compliled {@link Masked} options */
compiledMasks: Array<Masked>;
/** Chooses {@link Masked} depending on input value */
dispatch: (appended: string, masked: MaskedDynamic, flags: AppendFlags<HandleState>, tail: string | String | TailDetails) => (Masked | undefined);
_overwrite?: this['overwrite'];
_eager?: this['eager'];
_skipInvalid?: this['skipInvalid'];
_autofix?: this['autofix'];
static DEFAULTS: typeof Masked.DEFAULTS & Pick<MaskedDynamic, 'dispatch'>;
constructor(opts?: MaskedDynamicOptions);
updateOptions(opts: Partial<MaskedDynamicOptions>): void;
_update(opts: Partial<MaskedDynamicOptions>): void;
_appendCharRaw(ch: string, flags?: AppendFlags<HandleState>): ChangeDetails;
_applyDispatch(appended?: string, flags?: AppendFlags<HandleState>, tail?: string | String | TailDetails): ChangeDetails;
_appendPlaceholder(): ChangeDetails;
_appendEager(): ChangeDetails;
appendTail(tail: string | String | TailDetails): ChangeDetails;
currentMaskFlags(flags: AppendFlags<HandleState>): AppendFlags;
doDispatch(appended: string, flags?: AppendFlags<HandleState>, tail?: string | String | TailDetails): Masked | undefined;
doValidate(flags: AppendFlags<HandleState>): boolean;
doPrepare(str: string, flags?: AppendFlags<HandleState>): [string, ChangeDetails];
doPrepareChar(str: string, flags?: AppendFlags<HandleState>): [string, ChangeDetails];
reset(): void;
get value(): string;
set value(value: string);
get unmaskedValue(): string;
set unmaskedValue(unmaskedValue: string);
get typedValue(): Value;
set typedValue(typedValue: Value);
get displayValue(): string;
get isComplete(): boolean;
get isFilled(): boolean;
remove(fromPos?: number, toPos?: number): ChangeDetails;
get state(): MaskedDynamicState;
set state(state: HandleState);
extractInput(fromPos?: number, toPos?: number, flags?: ExtractFlags): string;
extractTail(fromPos?: number, toPos?: number): TailDetails;
doCommit(): void;
nearestInputPos(cursorPos: number, direction?: Direction): number;
get overwrite(): boolean | 'shift' | undefined;
set overwrite(overwrite: boolean | 'shift' | undefined);
get eager(): boolean | 'remove' | 'append' | undefined;
set eager(eager: boolean | 'remove' | 'append' | undefined);
get skipInvalid(): boolean | undefined;
set skipInvalid(skipInvalid: boolean | undefined);
get autofix(): boolean | 'pad' | undefined;
set autofix(autofix: boolean | 'pad' | undefined);
maskEquals(mask: any): boolean;
typedValueEquals(value: any): boolean;
}
export {};
//# sourceMappingURL=dynamic.d.ts.map