maska
Version: 
Simple zero-dependency input mask for Vanilla JS, Vue, Alpine.js and Svelte
78 lines (65 loc) • 2.07 kB
TypeScript
export declare class Mask {
    readonly opts: MaskOptions;
    private readonly memo;
    constructor(defaults?: MaskOptions);
    masked(value: string | number): string;
    unmasked(value: string | number): string;
    isEager(): boolean;
    isReversed(): boolean;
    completed(value: string | number): boolean;
    private findMask;
    private escapeMask;
    private process;
}
export declare interface MaskaDetail {
    masked: string;
    unmasked: string;
    completed: boolean;
}
declare type MaskaTarget = string | NodeListOf<HTMLInputElement> | HTMLInputElement;
export declare class MaskInput {
    private options;
    readonly items: Map<HTMLInputElement, Mask>;
    private readonly eventAbortController;
    constructor(target: MaskaTarget, options?: MaskInputOptions);
    update(options?: MaskInputOptions): void;
    updateValue(input: HTMLInputElement): void;
    destroy(): void;
    private init;
    private getInputs;
    private getOptions;
    private readonly onInput;
    private fixCursor;
    private setValue;
    private processInput;
}
export declare interface MaskInputOptions extends MaskOptions {
    onMaska?: OnMaskaType | OnMaskaType[];
    preProcess?: (value: string) => string;
    postProcess?: (value: string) => string;
}
declare interface MaskNumber {
    locale?: string;
    fraction?: number;
    unsigned?: boolean;
}
export declare interface MaskOptions {
    mask?: MaskType;
    tokens?: MaskTokens;
    tokensReplace?: boolean;
    eager?: boolean;
    reversed?: boolean;
    number?: MaskNumber;
}
declare interface MaskToken {
    pattern: RegExp;
    multiple?: boolean;
    optional?: boolean;
    repeated?: boolean;
    transform?: (char: string) => string;
}
export declare type MaskTokens = Record<string, MaskToken>;
export declare type MaskType = string | string[] | ((input: string) => string) | null;
declare type OnMaskaType = (detail: MaskaDetail) => void;
export declare const tokens: MaskTokens;
export { }