ngx-mask
- Version 22.0.1
- Published
- 248 kB
- 1 dependency
- MIT license
Install
npm i ngx-maskyarn add ngx-maskpnpm add ngx-maskOverview
Input masking for modern Angular — Reactive, template-driven and Signal Forms, zoneless and SSR ready. Dates, numbers, separators, custom patterns.
Index
Variables
Functions
Classes
NgxMaskDirective
- allowNegativeNumbers
- apm
- checkSelectionOnDeletion()
- clearIfNotMatch
- decimalMarker
- defaultValueOnBlur
- disabled
- dropSpecialCharacters
- focus()
- hiddenInput
- inputTransformFn
- instantPrefix
- keepCharacterPositions
- leadZero
- leadZeroDateTime
- mask
- maskFilled
- ngOnChanges()
- onBlur()
- onChange
- onClick()
- onCompositionEnd()
- onCompositionStart()
- onFocus()
- onInput()
- onKeyDown()
- onModelChange()
- onPaste()
- onTouch
- outputTransformFn
- ɵdir
- ɵfac
- patterns
- placeHolderCharacter
- prefix
- registerOnChange()
- registerOnTouched()
- separatorLimit
- setDisabledState()
- showMaskTyped
- shownMaskExpression
- specialCharacters
- suffix
- thousandSeparator
- touched
- triggerOnMaskChange
- typeFromDecimals
- validate()
- validation
- value
- writeValue()
NgxMaskService
- applyMask()
- applyValueChanges()
- checkDropSpecialCharAmount()
- clearIfNotMatchFn()
- currentLocaleDecimalMarker()
- currentValue
- getActualValue()
- hideInput()
- isInitialized
- isNumberValue
- keepCharacterPositionsHandled
- maskChanged
- maskExpressionArray
- maskIsShown
- numberToString()
- onChange
- ɵfac
- ɵprov
- previousValue
- removeMask()
- selEnd
- selStart
- shiftTypedSymbols()
- showMaskInInput()
Type Aliases
Variables
variable INITIAL_CONFIG
const INITIAL_CONFIG: InjectionToken<NgxMaskConfig>;variable initialConfig
const initialConfig: NgxMaskConfig;variable NEW_CONFIG
const NEW_CONFIG: InjectionToken<NgxMaskConfig>;variable NGX_MASK_CONFIG
const NGX_MASK_CONFIG: InjectionToken<NgxMaskConfig>;variable timeMasks
const timeMasks: string[];variable withoutValidation
const withoutValidation: string[];Functions
function provideEnvironmentNgxMask
provideEnvironmentNgxMask: ( configValue?: NgxMaskOptions | (() => NgxMaskOptions)) => EnvironmentProviders;function provideNgxMask
provideNgxMask: ( configValue?: NgxMaskOptions | (() => NgxMaskOptions)) => Provider[];function resolveMaskAlias
resolveMaskAlias: ( maskExpression: string | null | undefined, maskAliases: Record<string, string> | undefined) => string;Resolves a user-defined mask alias to its mask expression. Returns the input expression unchanged when no alias matches or when the alias key shadows a built-in token (in which case a console warning is emitted once per key and the built-in wins).
Classes
class NgxMaskDirective
class NgxMaskDirective implements ControlValueAccessor, OnChanges, Validator, FormValueControl<string> {}constructor
constructor();property allowNegativeNumbers
allowNegativeNumbers: _angular_core.InputSignal<boolean>;property apm
apm: _angular_core.InputSignal<boolean>;property clearIfNotMatch
clearIfNotMatch: _angular_core.InputSignal<boolean>;property decimalMarker
decimalMarker: _angular_core.InputSignal<any>;property defaultValueOnBlur
defaultValueOnBlur: _angular_core.InputSignal<string>;property disabled
disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;property dropSpecialCharacters
dropSpecialCharacters: _angular_core.InputSignal< boolean | string[] | readonly string[]>;property hiddenInput
hiddenInput: _angular_core.InputSignal<boolean>;property inputTransformFn
inputTransformFn: _angular_core.InputSignal<any>;property instantPrefix
instantPrefix: _angular_core.InputSignal<boolean>;property keepCharacterPositions
keepCharacterPositions: _angular_core.InputSignal<boolean>;property leadZero
leadZero: _angular_core.InputSignal<boolean>;property leadZeroDateTime
leadZeroDateTime: _angular_core.InputSignal<boolean>;property mask
mask: _angular_core.InputSignal<string>;property maskFilled
maskFilled: _angular_core.OutputEmitterRef<void>;property onChange
onChange: (_: any) => void;property onTouch
onTouch: () => void;property outputTransformFn
outputTransformFn: _angular_core.InputSignal<any>;property ɵdir
static ɵdir: _angular_core.ɵɵDirectiveDeclaration< NgxMaskDirective, 'input[mask], textarea[mask]', ['mask', 'ngxMask'], { mask: { alias: 'mask'; required: false; isSignal: true }; specialCharacters: { alias: 'specialCharacters'; required: false; isSignal: true; }; patterns: { alias: 'patterns'; required: false; isSignal: true }; prefix: { alias: 'prefix'; required: false; isSignal: true }; suffix: { alias: 'suffix'; required: false; isSignal: true }; thousandSeparator: { alias: 'thousandSeparator'; required: false; isSignal: true; }; decimalMarker: { alias: 'decimalMarker'; required: false; isSignal: true; }; dropSpecialCharacters: { alias: 'dropSpecialCharacters'; required: false; isSignal: true; }; hiddenInput: { alias: 'hiddenInput'; required: false; isSignal: true }; showMaskTyped: { alias: 'showMaskTyped'; required: false; isSignal: true; }; placeHolderCharacter: { alias: 'placeHolderCharacter'; required: false; isSignal: true; }; shownMaskExpression: { alias: 'shownMaskExpression'; required: false; isSignal: true; }; clearIfNotMatch: { alias: 'clearIfNotMatch'; required: false; isSignal: true; }; validation: { alias: 'validation'; required: false; isSignal: true }; separatorLimit: { alias: 'separatorLimit'; required: false; isSignal: true; }; typeFromDecimals: { alias: 'typeFromDecimals'; required: false; isSignal: true; }; allowNegativeNumbers: { alias: 'allowNegativeNumbers'; required: false; isSignal: true; }; leadZeroDateTime: { alias: 'leadZeroDateTime'; required: false; isSignal: true; }; leadZero: { alias: 'leadZero'; required: false; isSignal: true }; triggerOnMaskChange: { alias: 'triggerOnMaskChange'; required: false; isSignal: true; }; apm: { alias: 'apm'; required: false; isSignal: true }; inputTransformFn: { alias: 'inputTransformFn'; required: false; isSignal: true; }; outputTransformFn: { alias: 'outputTransformFn'; required: false; isSignal: true; }; keepCharacterPositions: { alias: 'keepCharacterPositions'; required: false; isSignal: true; }; instantPrefix: { alias: 'instantPrefix'; required: false; isSignal: true; }; defaultValueOnBlur: { alias: 'defaultValueOnBlur'; required: false; isSignal: true; }; value: { alias: 'value'; required: false; isSignal: true }; disabled: { alias: 'disabled'; required: false; isSignal: true }; touched: { alias: 'touched'; required: false; isSignal: true }; }, { value: 'valueChange'; touched: 'touchedChange'; maskFilled: 'maskFilled' }, never, never, true, never>;property ɵfac
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgxMaskDirective, never>;property patterns
patterns: _angular_core.InputSignal< Record<string, { pattern: RegExp; optional?: boolean; symbol?: string }>>;property placeHolderCharacter
placeHolderCharacter: _angular_core.InputSignal<string>;property prefix
prefix: _angular_core.InputSignal<string>;property separatorLimit
separatorLimit: _angular_core.InputSignal<string>;property showMaskTyped
showMaskTyped: _angular_core.InputSignal<boolean>;property shownMaskExpression
shownMaskExpression: _angular_core.InputSignal<string>;property specialCharacters
specialCharacters: _angular_core.InputSignal<string[] | readonly string[]>;property suffix
suffix: _angular_core.InputSignal<string>;property thousandSeparator
thousandSeparator: _angular_core.InputSignal<string>;property touched
touched: _angular_core.ModelSignal<boolean>;property triggerOnMaskChange
triggerOnMaskChange: _angular_core.InputSignal<boolean>;property typeFromDecimals
typeFromDecimals: _angular_core.InputSignal<boolean>;property validation
validation: _angular_core.InputSignal<boolean>;property value
value: _angular_core.ModelSignal<string>;method checkSelectionOnDeletion
checkSelectionOnDeletion: (el: HTMLInputElement) => void;method focus
focus: () => void;Focus the input element. Required by FormValueControl interface for Signal Forms.
method ngOnChanges
ngOnChanges: (changes: SimpleChanges) => void;method onBlur
onBlur: (e: Event) => void;method onClick
onClick: (e: Event) => void;method onCompositionEnd
onCompositionEnd: (e: Event) => void;method onCompositionStart
onCompositionStart: () => void;method onFocus
onFocus: () => void;method onInput
onInput: (e: Event) => void;method onKeyDown
onKeyDown: (event: Event) => void;method onModelChange
onModelChange: (value: unknown) => void;method onPaste
onPaste: () => void;method registerOnChange
registerOnChange: (fn: typeof this.onChange) => void;method registerOnTouched
registerOnTouched: (fn: typeof this.onTouch) => void;method setDisabledState
setDisabledState: (isDisabled: boolean) => void;It disables the input element
method validate
validate: ({ value }: FormControl) => ValidationErrors | null;method writeValue
writeValue: (controlValue: unknown) => Promise<void>;It writes the value in the input
class NgxMaskPipe
class NgxMaskPipe implements PipeTransform {}property ɵfac
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgxMaskPipe, never>;property ɵpipe
static ɵpipe: _angular_core.ɵɵPipeDeclaration<NgxMaskPipe, 'mask', true>;method transform
transform: ( value: string | number, mask: string, { patterns, maskAliases, ...config }?: Partial<NgxMaskConfig>) => string;class NgxMaskService
class NgxMaskService extends NgxMaskApplierService {}property currentValue
currentValue: string;property isInitialized
isInitialized: boolean;property isNumberValue
isNumberValue: boolean;property keepCharacterPositionsHandled
keepCharacterPositionsHandled: boolean;Set by the directive's keepCharacterPositions handling for the current edit: true — the directive fully resolved the resulting display value into actualValue, so applyMask must short-circuit and render actualValue as-is; false — the edit must flow through regular masking (no short-circuit); null — the directive was not involved in this applyMask call (legacy behavior). Consumed and reset by applyMask. This lets keepCharacterPositions work without showMaskTyped (#1545, #1543).
property maskChanged
maskChanged: boolean;property maskExpressionArray
maskExpressionArray: string[];property maskIsShown
maskIsShown: string;property onChange
onChange: (_: any) => void;property ɵfac
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgxMaskService, never>;property ɵprov
static ɵprov: _angular_core.ɵɵInjectableDeclaration<NgxMaskService>;property previousValue
previousValue: string;property selEnd
selEnd: number;property selStart
selStart: number;method applyMask
applyMask: ( inputValue: string, maskExpression: string, position?: number, justPasted?: boolean, backspaced?: boolean, cb?: (...args: any[]) => any) => string;Applies the mask to the input value.
Parameter inputValue
The input value to be masked.
Parameter maskExpression
The mask expression to apply.
Parameter position
The position in the input value.
Parameter justPasted
Whether the value was just pasted.
Parameter backspaced
Whether the value was backspaced.
Parameter cb
Callback function.
Returns
The masked value.
method applyValueChanges
applyValueChanges: ( position: number, justPasted: boolean, backspaced: boolean, cb?: (...args: any[]) => any) => void;method checkDropSpecialCharAmount
checkDropSpecialCharAmount: (mask: string) => number;method clearIfNotMatchFn
clearIfNotMatchFn: () => void;method currentLocaleDecimalMarker
currentLocaleDecimalMarker: () => string;Decimal marker of the value being normalized in writeValue/pipe flows.
#1573: this used to return the RUNTIME default locale's decimal marker ((1.1).toLocaleString().substring(1, 2)), which made mask behavior depend on the OS/browser regional format: under a comma-decimal locale (e.g. Edge + Austrian regional settings) a preformatted value like '10,000' (thousandSeparator ',') had its ',' replaced by the configured '.' decimalMarker, corrupting the value 1000x. JS number stringification (String(n)) always uses '.', and string values are expected to use the configured markers — the runtime locale is never the right source, so this is always '.'.
method getActualValue
getActualValue: (res: string) => string;method hideInput
hideInput: (inputValue: string, maskExpression: string) => string;method numberToString
numberToString: (value: number | string) => string;Convert number value to string 3.1415 -> '3.1415' 1e-7 -> '0.0000001'
method removeMask
removeMask: (inputValue: string) => string;method shiftTypedSymbols
shiftTypedSymbols: (inputValue: string) => string;method showMaskInInput
showMaskInInput: (inputVal?: string) => string;Type Aliases
type DecimalMarkerChar
type DecimalMarkerChar = '.' | ',';Single decimal marker character accepted when
decimalMarkeris given as an array.
type InputTransformFn
type InputTransformFn = (value: unknown) => string | number;type NgxMaskConfig
type NgxMaskConfig = { suffix: string; prefix: string; thousandSeparator: string; decimalMarker: DecimalMarkerChar | [DecimalMarkerChar, DecimalMarkerChar]; clearIfNotMatch: boolean; showMaskTyped: boolean; placeHolderCharacter: string; shownMaskExpression: string; specialCharacters: string[] | readonly string[]; dropSpecialCharacters: boolean | string[] | readonly string[]; hiddenInput: boolean; validation: boolean; instantPrefix: boolean; separatorLimit: string; apm: boolean; allowNegativeNumbers: boolean; leadZeroDateTime: boolean; leadZero: boolean; /** * Opt-in "banking" typing mode for separator masks with a fixed precision * (`separator.N`, N > 0): typed digits fill the value from the decimal end, * ATM/calculator style (5 -> 0.05 -> 0.57 -> 5.73); backspace shifts digits * back to the right. Pasted and model-written values keep the regular * separator formatting. Config-only option (provideNgxMask / pipe config) — * it has no directive input. */ typeFromDecimals: boolean; triggerOnMaskChange: boolean; keepCharacterPositions: boolean; inputTransformFn: InputTransformFn; outputTransformFn: OutputTransformFn; maskFilled: EventEmitter<void>; /** * User-defined named mask aliases resolved at the DI-config level (static per injector). * When the `mask` input (or pipe mask argument) exactly matches an alias key, the aliased * expression is substituted before any other mask processing (including `||` multi-masks). * Alias keys must not shadow built-in tokens (IP, CPF_CNPJ, CPF_CNPJ_ALPHA, ...) — such * aliases are ignored with a one-time console warning. */ maskAliases: Record<string, string>; /** * When set, this raw value is written through the regular mask pipeline on blur * whenever the control's unmasked value is empty (covers '', a bare prefix/suffix and * the showMaskTyped skeleton): the display shows the masked default and the model * receives the usual output (dropSpecialCharacters/outputTransformFn applied). The * write keeps the control's pristine state. `null` (default) keeps current behavior. */ defaultValueOnBlur: string | null; patterns: Record< string, { pattern: RegExp; optional?: boolean; symbol?: string; } >;};type NgxMaskOptions
type NgxMaskOptions = Partial<NgxMaskConfig>;type OutputTransformFn
type OutputTransformFn = (value: string | number | undefined | null) => unknown;Package Files (1)
Dependencies (1)
Dev Dependencies (0)
No dev dependencies.
Peer Dependencies (3)
Badge
To add a badge like this oneto your package's README, use the codes available below.
You may also use Shields.io to create a custom badge linking to https://www.jsdocs.io/package/ngx-mask.
- Markdown[](https://www.jsdocs.io/package/ngx-mask)
- HTML<a href="https://www.jsdocs.io/package/ngx-mask"><img src="https://img.shields.io/badge/jsDocs.io-reference-blue" alt="jsDocs.io"></a>
- Updated .
Package analyzed in 2334 ms. - Missing or incorrect documentation? Open an issue for this package.
