imask
Version:
vanilla javascript input mask
87 lines • 3.57 kB
TypeScript
import { type Direction } from '../core/utils';
import ChangeDetails from '../core/change-details';
import { type TailDetails } from '../core/tail-details';
import Masked, { type MaskedOptions, type ExtractFlags, type AppendFlags } from './base';
export type MaskedNumberOptions = MaskedOptions<MaskedNumber, 'radix' | 'thousandsSeparator' | 'mapToRadix' | 'scale' | 'min' | 'max' | 'normalizeZeros' | 'padFractionalZeros'>;
/** Number mask */
export default class MaskedNumber extends Masked<number> {
static UNMASKED_RADIX: string;
static EMPTY_VALUES: Array<null | undefined | string | number>;
static DEFAULTS: {
mask: NumberConstructor;
radix: string;
thousandsSeparator: string;
mapToRadix: string[];
min: number;
max: number;
scale: number;
normalizeZeros: boolean;
padFractionalZeros: boolean;
parse: NumberConstructor;
format: (n: number) => string;
skipInvalid?: boolean | undefined;
};
mask: NumberConstructor;
/** Single char */
radix: string;
/** Single char */
thousandsSeparator: string;
/** Array of single chars */
mapToRadix: Array<string>;
/** */
min: number;
/** */
max: number;
/** Digits after point */
scale: number;
/** Flag to remove leading and trailing zeros in the end of editing */
normalizeZeros: boolean;
/** Flag to pad trailing zeros after point in the end of editing */
padFractionalZeros: boolean;
/** Enable characters overwriting */
overwrite?: boolean | 'shift' | undefined;
/** */
eager?: boolean | 'remove' | 'append' | undefined;
/** */
skipInvalid?: boolean | undefined;
/** */
autofix?: boolean | 'pad' | undefined;
/** Format typed value to string */
format: (value: number, masked: Masked) => string;
/** Parse string to get typed value */
parse: (str: string, masked: Masked) => number;
_numberRegExp: RegExp;
_thousandsSeparatorRegExp: RegExp;
_mapToRadixRegExp: RegExp;
_separatorsProcessed: boolean;
constructor(opts?: MaskedNumberOptions);
updateOptions(opts: Partial<MaskedNumberOptions>): void;
_update(opts: Partial<MaskedNumberOptions>): void;
_updateRegExps(): void;
_removeThousandsSeparators(value: string): string;
_insertThousandsSeparators(value: string): string;
doPrepareChar(ch: string, flags?: AppendFlags): [string, ChangeDetails];
_separatorsCount(to: number, extendOnSeparators?: boolean): number;
_separatorsCountFromSlice(slice?: string): number;
extractInput(fromPos?: number, toPos?: number, flags?: ExtractFlags): string;
_appendCharRaw(ch: string, flags?: AppendFlags): ChangeDetails;
_findSeparatorAround(pos: number): number;
_adjustRangeWithSeparators(from: number, to: number): [number, number];
remove(fromPos?: number, toPos?: number): ChangeDetails;
nearestInputPos(cursorPos: number, direction?: Direction): number;
doCommit(): void;
_normalizeZeros(value: string): string;
_padFractionalZeros(value: string): string;
doSkipInvalid(ch: string, flags?: AppendFlags, checkTail?: TailDetails): boolean;
get unmaskedValue(): string;
set unmaskedValue(unmaskedValue: string);
get typedValue(): number;
set typedValue(n: number);
/** Parsed Number */
get number(): number;
set number(number: number);
get allowNegative(): boolean;
get allowPositive(): boolean;
typedValueEquals(value: any): boolean;
}
//# sourceMappingURL=number.d.ts.map