UNPKG

imask

Version:

vanilla javascript input mask

63 lines 2.45 kB
import MaskedPattern, { type MaskedPatternOptions } from './pattern'; import { type MaskedRangeOptions } from './range'; import type Masked from './base'; import { type AppendFlags } from './base'; export type DateMaskType = DateConstructor; type DateOptionsKeys = 'pattern' | 'min' | 'max' | 'autofix'; export type DateValue = Date | null; declare const DefaultPattern = "d{.}`m{.}`Y"; type RequiredDateOptions = ({ pattern?: never | typeof DefaultPattern; format?: MaskedDate["format"]; parse?: MaskedDate["parse"]; } | { pattern: MaskedDate["pattern"]; format: MaskedDate["format"]; parse: MaskedDate["parse"]; }); export type MaskedDateOptions = Omit<MaskedPatternOptions<DateValue>, 'mask'> & Partial<Pick<MaskedDate, DateOptionsKeys>> & { mask?: string | DateMaskType; } & RequiredDateOptions; /** Date mask */ export default class MaskedDate extends MaskedPattern<DateValue> { static GET_DEFAULT_BLOCKS: () => { [k: string]: MaskedRangeOptions; }; static DEFAULTS: { mask: DateConstructor; pattern: "d{.}`m{.}`Y"; format: (date: DateValue, masked: Masked) => string; parse: (str: string, masked: Masked) => DateValue; lazy: boolean; placeholderChar: string; skipInvalid?: boolean | undefined; }; static extractPatternOptions(opts: Partial<MaskedDateOptions>): Partial<Omit<MaskedDateOptions, 'mask' | 'pattern'> & { mask: MaskedPatternOptions['mask']; }>; /** Pattern mask for date according to {@link MaskedDate#format} */ pattern: string; /** Start date */ min?: Date; /** End date */ max?: Date; /** Format typed value to string */ format: (value: DateValue, masked: Masked) => string; /** Parse string to get typed value */ parse: (str: string, masked: Masked) => DateValue; constructor(opts?: MaskedDateOptions); updateOptions(opts: Partial<MaskedDateOptions> & RequiredDateOptions): void; _update(opts: Partial<MaskedDateOptions>): void; doValidate(flags: AppendFlags): boolean; /** Checks if date is exists */ isDateExist(str: string): boolean; /** Parsed Date */ get date(): DateValue; set date(date: DateValue); get typedValue(): DateValue; set typedValue(value: DateValue); maskEquals(mask: any): boolean; optionsIsChanged(opts: Partial<MaskedDateOptions>): boolean; } export {}; //# sourceMappingURL=date.d.ts.map