| 1 |
import ChangeDetails from '../core/change-details'; |
| 2 |
import { type Direction } from '../core/utils'; |
| 3 |
import { type TailDetails } from '../core/tail-details'; |
| 4 |
export type MaskedState = { |
| 5 |
_value: string; |
| 6 |
_rawInputValue: string; |
| 7 |
}; |
| 8 |
/** Append flags */ |
| 9 |
export type AppendFlags<State = MaskedState> = { |
| 10 |
input?: boolean; |
| 11 |
tail?: boolean; |
| 12 |
raw?: boolean; |
| 13 |
_beforeTailState?: State; |
| 14 |
}; |
| 15 |
/** Extract flags */ |
| 16 |
export type ExtractFlags = { |
| 17 |
raw?: boolean; |
| 18 |
}; |
| 19 |
export type MaskedOptions<M extends Masked = Masked, Props extends keyof M = never> = Partial<Pick<M, 'mask' | 'parent' | 'prepare' | 'prepareChar' | 'validate' | 'commit' | 'format' | 'parse' | 'overwrite' | 'eager' | 'skipInvalid' | 'autofix' | Props>>; |
| 20 |
/** Provides common masking stuff */ |
| 21 |
export default abstract class Masked<Value = any> { |
| 22 |
static DEFAULTS: Pick<MaskedOptions, 'skipInvalid'>; |
| 23 |
static EMPTY_VALUES: Array<any>; |
| 24 |
/** */ |
| 25 |
mask: unknown; |
| 26 |
/** */ |
| 27 |
parent?: Masked; |
| 28 |
/** Transforms value before mask processing */ |
| 29 |
prepare?: (chars: string, masked: Masked, flags: AppendFlags) => string | [string, ChangeDetails]; |
| 30 |
/** Transforms each char before mask processing */ |
| 31 |
prepareChar?: (chars: string, masked: Masked, flags: AppendFlags) => string | [string, ChangeDetails]; |
| 32 |
/** Validates if value is acceptable */ |
| 33 |
validate?: (value: string, masked: Masked, flags: AppendFlags) => boolean; |
| 34 |
/** Does additional processing at the end of editing */ |
| 35 |
commit?: (value: string, masked: Masked) => void; |
| 36 |
/** Format typed value to string */ |
| 37 |
format?: (value: Value, masked: Masked) => string; |
| 38 |
/** Parse string to get typed value */ |
| 39 |
parse?: (str: string, masked: Masked) => Value; |
| 40 |
/** Enable characters overwriting */ |
| 41 |
abstract overwrite?: boolean | 'shift' | undefined; |
| 42 |
/** */ |
| 43 |
abstract eager?: boolean | 'remove' | 'append' | undefined; |
| 44 |
/** */ |
| 45 |
abstract skipInvalid?: boolean | undefined; |
| 46 |
/** */ |
| 47 |
abstract autofix?: boolean | 'pad' | undefined; |
| 48 |
/** */ |
| 49 |
_initialized: boolean; |
| 50 |
_value: string; |
| 51 |
_refreshing?: boolean; |
| 52 |
_isolated?: boolean; |
| 53 |
constructor(opts: MaskedOptions); |
| 54 |
/** Sets and applies new options */ |
| 55 |
updateOptions(opts: Partial<MaskedOptions>): void; |
| 56 |
/** Sets new options */ |
| 57 |
_update(opts: Partial<MaskedOptions>): void; |
| 58 |
/** Mask state */ |
| 59 |
get state(): MaskedState; |
| 60 |
set state(state: MaskedState); |
| 61 |
/** Resets value */ |
| 62 |
reset(): void; |
| 63 |
get value(): string; |
| 64 |
set value(value: string); |
| 65 |
/** Resolve new value */ |
| 66 |
resolve(value: string, flags?: AppendFlags): void; |
| 67 |
get unmaskedValue(): string; |
| 68 |
set unmaskedValue(value: string); |
| 69 |
get typedValue(): Value; |
| 70 |
set typedValue(value: Value); |
| 71 |
/** Value that includes raw user input */ |
| 72 |
get rawInputValue(): string; |
| 73 |
set rawInputValue(value: string); |
| 74 |
get displayValue(): string; |
| 75 |
get isComplete(): boolean; |
| 76 |
get isFilled(): boolean; |
| 77 |
/** Finds nearest input position in direction */ |
| 78 |
nearestInputPos(cursorPos: number, direction?: Direction): number; |
| 79 |
totalInputPositions(fromPos?: number, toPos?: number): number; |
| 80 |
/** Extracts value in range considering flags */ |
| 81 |
extractInput(fromPos?: number, toPos?: number, flags?: ExtractFlags): string; |
| 82 |
/** Extracts tail in range */ |
| 83 |
extractTail(fromPos?: number, toPos?: number): TailDetails; |
| 84 |
/** Appends tail */ |
| 85 |
appendTail(tail: string | String | TailDetails): ChangeDetails; |
| 86 |
/** Appends char */ |
| 87 |
_appendCharRaw(ch: string, flags?: AppendFlags): ChangeDetails; |
| 88 |
/** Appends char */ |
| 89 |
_appendChar(ch: string, flags?: AppendFlags, checkTail?: TailDetails): ChangeDetails; |
| 90 |
/** Appends optional placeholder at the end */ |
| 91 |
_appendPlaceholder(): ChangeDetails; |
| 92 |
/** Appends optional eager placeholder at the end */ |
| 93 |
_appendEager(): ChangeDetails; |
| 94 |
/** Appends symbols considering flags */ |
| 95 |
append(str: string, flags?: AppendFlags, tail?: string | String | TailDetails): ChangeDetails; |
| 96 |
remove(fromPos?: number, toPos?: number): ChangeDetails; |
| 97 |
/** Calls function and reapplies current value */ |
| 98 |
withValueRefresh<T>(fn: () => T): T; |
| 99 |
runIsolated<T>(fn: (masked: this) => T): T; |
| 100 |
doSkipInvalid(ch: string, flags?: AppendFlags, checkTail?: TailDetails): boolean; |
| 101 |
/** Prepares string before mask processing */ |
| 102 |
doPrepare(str: string, flags?: AppendFlags): [string, ChangeDetails]; |
| 103 |
/** Prepares each char before mask processing */ |
| 104 |
doPrepareChar(str: string, flags?: AppendFlags): [string, ChangeDetails]; |
| 105 |
/** Validates if value is acceptable */ |
| 106 |
doValidate(flags: AppendFlags): boolean; |
| 107 |
/** Does additional processing at the end of editing */ |
| 108 |
doCommit(): void; |
| 109 |
splice(start: number, deleteCount: number, inserted?: string, removeDirection?: Direction, flags?: AppendFlags): ChangeDetails; |
| 110 |
maskEquals(mask: any): boolean; |
| 111 |
optionsIsChanged(opts: Partial<MaskedOptions>): boolean; |
| 112 |
typedValueEquals(value: any): boolean; |
| 113 |
pad(flags?: AppendFlags): ChangeDetails; |
| 114 |
} |
| 115 |
//# sourceMappingURL=base.d.ts.map |