ngx-mask 22.0.1 → 22.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/ngx-mask.mjs +41 -26
- package/package.json +1 -1
- package/types/ngx-mask.d.ts +22 -8
package/fesm2022/ngx-mask.mjs
CHANGED
|
@@ -550,7 +550,7 @@ const percentHandler = function (state, params) {
|
|
|
550
550
|
}
|
|
551
551
|
processedValue = `${base}${processedValue.substring(processedValue.indexOf(decimalMarker), processedValue.length)}`;
|
|
552
552
|
}
|
|
553
|
-
let value
|
|
553
|
+
let value;
|
|
554
554
|
// eslint-disable-next-line @typescript-eslint/no-unused-expressions
|
|
555
555
|
this.allowNegativeNumbers && processedValue.slice(cursor, cursor + 1) === MaskExpression.MINUS
|
|
556
556
|
? (value = `${MaskExpression.MINUS}${processedValue.slice(cursor + 1, cursor + processedValue.length)}`)
|
|
@@ -580,7 +580,8 @@ const percentHandler = function (state, params) {
|
|
|
580
580
|
*/
|
|
581
581
|
const separatorHandler = function (state, params) {
|
|
582
582
|
const { backspaced, justPasted, startsWithPrefix, prefixAlreadyRemovedByCaller, cb, inputValue, } = params;
|
|
583
|
-
let { processedValue, processedPosition,
|
|
583
|
+
let { processedValue, processedPosition, backspaceShift, shift, stepBack } = state;
|
|
584
|
+
let result;
|
|
584
585
|
if (processedValue.match('[wа-яА-Я]') ||
|
|
585
586
|
processedValue.match('[ЁёА-я]') ||
|
|
586
587
|
processedValue.match('[a-z]|[A-Z]') ||
|
|
@@ -942,7 +943,7 @@ class NgxMaskApplierService {
|
|
|
942
943
|
}
|
|
943
944
|
let cursor = 0;
|
|
944
945
|
let result = '';
|
|
945
|
-
|
|
946
|
+
const multi = false;
|
|
946
947
|
let backspaceShift = false;
|
|
947
948
|
let shift = 1;
|
|
948
949
|
let stepBack = false;
|
|
@@ -1011,7 +1012,6 @@ class NgxMaskApplierService {
|
|
|
1011
1012
|
processedPosition = resolved.processedPosition;
|
|
1012
1013
|
cursor = resolved.cursor;
|
|
1013
1014
|
result = resolved.result;
|
|
1014
|
-
multi = resolved.multi;
|
|
1015
1015
|
backspaceShift = resolved.backspaceShift;
|
|
1016
1016
|
shift = resolved.shift;
|
|
1017
1017
|
stepBack = resolved.stepBack;
|
|
@@ -1091,8 +1091,8 @@ class NgxMaskApplierService {
|
|
|
1091
1091
|
false);
|
|
1092
1092
|
}
|
|
1093
1093
|
_formatWithSeparators = (str, thousandSeparatorChar, decimalChars, precision) => {
|
|
1094
|
-
let x
|
|
1095
|
-
let decimalChar
|
|
1094
|
+
let x;
|
|
1095
|
+
let decimalChar;
|
|
1096
1096
|
if (Array.isArray(decimalChars)) {
|
|
1097
1097
|
const regExp = new RegExp(decimalChars.map((v) => ('[\\^$.|?*+()'.indexOf(v) >= 0 ? `\\${v}` : v)).join('|'));
|
|
1098
1098
|
x = str.split(regExp);
|
|
@@ -1302,10 +1302,10 @@ class NgxMaskApplierService {
|
|
|
1302
1302
|
nonZeroIndex,
|
|
1303
1303
|
};
|
|
1304
1304
|
}
|
|
1305
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.
|
|
1306
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.
|
|
1305
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: NgxMaskApplierService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1306
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: NgxMaskApplierService });
|
|
1307
1307
|
}
|
|
1308
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.
|
|
1308
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: NgxMaskApplierService, decorators: [{
|
|
1309
1309
|
type: Injectable
|
|
1310
1310
|
}] });
|
|
1311
1311
|
|
|
@@ -1488,10 +1488,6 @@ class NgxMaskService extends NgxMaskApplierService {
|
|
|
1488
1488
|
actualResult = [];
|
|
1489
1489
|
}
|
|
1490
1490
|
}
|
|
1491
|
-
// Remove mask if showMaskTyped is true and hiddenInput is false
|
|
1492
|
-
if (this.showMaskTyped && !this.hiddenInput) {
|
|
1493
|
-
newInputValue = this.removeMask(inputValue);
|
|
1494
|
-
}
|
|
1495
1491
|
// Handle actual value length
|
|
1496
1492
|
if (this.actualValue.length) {
|
|
1497
1493
|
if (actualResult.length < inputValue.length) {
|
|
@@ -2190,10 +2186,10 @@ class NgxMaskService extends NgxMaskApplierService {
|
|
|
2190
2186
|
currentLocaleDecimalMarker() {
|
|
2191
2187
|
return MaskExpression.DOT;
|
|
2192
2188
|
}
|
|
2193
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.
|
|
2194
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.
|
|
2189
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: NgxMaskService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
|
|
2190
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: NgxMaskService });
|
|
2195
2191
|
}
|
|
2196
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.
|
|
2192
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: NgxMaskService, decorators: [{
|
|
2197
2193
|
type: Injectable
|
|
2198
2194
|
}] });
|
|
2199
2195
|
|
|
@@ -2574,7 +2570,7 @@ class NgxMaskDirective {
|
|
|
2574
2570
|
this._hasPendingInitialValue = false;
|
|
2575
2571
|
const pendingValue = this._pendingInitialValue;
|
|
2576
2572
|
this._pendingInitialValue = null;
|
|
2577
|
-
|
|
2573
|
+
this.writeValue(pendingValue);
|
|
2578
2574
|
}
|
|
2579
2575
|
}
|
|
2580
2576
|
}
|
|
@@ -3144,7 +3140,11 @@ class NgxMaskDirective {
|
|
|
3144
3140
|
MaskExpression.NUMBER_ZERO.repeat(precision) +
|
|
3145
3141
|
suffix;
|
|
3146
3142
|
this._maskService.actualValue = el.value;
|
|
3147
|
-
|
|
3143
|
+
// #1634: propagate through the regular formControlResult pipeline (not a
|
|
3144
|
+
// raw onChange) so outputTransformFn runs on this blur-time reformat, same
|
|
3145
|
+
// as every typing-time emission. A raw onChange here sent the masked display
|
|
3146
|
+
// string straight to the model, bypassing outputTransformFn entirely.
|
|
3147
|
+
this._maskService.formControlResult(this._maskService.actualValue);
|
|
3148
3148
|
}
|
|
3149
3149
|
}
|
|
3150
3150
|
this._maskService.clearIfNotMatchFn();
|
|
@@ -3356,7 +3356,7 @@ class NgxMaskDirective {
|
|
|
3356
3356
|
}
|
|
3357
3357
|
}
|
|
3358
3358
|
/** It writes the value in the input */
|
|
3359
|
-
|
|
3359
|
+
writeValue(controlValue) {
|
|
3360
3360
|
if (!this._configApplied && this.mask()) {
|
|
3361
3361
|
// Called before the first ngOnChanges pass configured the mask service (happens with
|
|
3362
3362
|
// Signal Forms' [formField], whose control-sync instruction runs before sibling
|
|
@@ -3570,8 +3570,23 @@ class NgxMaskDirective {
|
|
|
3570
3570
|
el.selectionStart = Math.min(Math.max(prefixLength, el.selectionStart), inputValueLength - suffixLength);
|
|
3571
3571
|
el.selectionEnd = Math.min(Math.max(prefixLength, el.selectionEnd), inputValueLength - suffixLength);
|
|
3572
3572
|
}
|
|
3573
|
-
/**
|
|
3573
|
+
/**
|
|
3574
|
+
* It disables the input element.
|
|
3575
|
+
*
|
|
3576
|
+
* Mirrors `_writeElementValueSync` (#1305): the service's `formElementProperty` setter
|
|
3577
|
+
* defers ALL DOM writes via `queueMicrotask` to dodge ExpressionChangedAfterItHasBeenChecked
|
|
3578
|
+
* and keep FIFO ordering with config-driven re-renders. For `disabled` specifically, that
|
|
3579
|
+
* deferral leaves `nativeElement.disabled` stale for at least one microtask after Angular
|
|
3580
|
+
* Forms' `setUpControl` calls this method synchronously during init — long enough for a
|
|
3581
|
+
* consumer reading the DOM property in the same synchronous phase (or another deferred write
|
|
3582
|
+
* racing in FIFO order) to observe the wrong value, e.g. an initially-disabled FormControl
|
|
3583
|
+
* whose native input briefly (or, depending on interleaving, persistently) reports
|
|
3584
|
+
* `disabled === false` (#1633). Writing synchronously here closes that gap; the deferred
|
|
3585
|
+
* write below still runs afterwards and re-applies the same final value, preserving the
|
|
3586
|
+
* existing ordering guarantees other call sites rely on.
|
|
3587
|
+
*/
|
|
3574
3588
|
setDisabledState(isDisabled) {
|
|
3589
|
+
this._renderer.setProperty(this._elementRef.nativeElement, 'disabled', isDisabled);
|
|
3575
3590
|
this._maskService.formElementProperty = ['disabled', isDisabled];
|
|
3576
3591
|
}
|
|
3577
3592
|
_applyMask() {
|
|
@@ -3784,8 +3799,8 @@ class NgxMaskDirective {
|
|
|
3784
3799
|
return uniqueCharacters.size === 1;
|
|
3785
3800
|
});
|
|
3786
3801
|
}
|
|
3787
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.
|
|
3788
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.
|
|
3802
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: NgxMaskDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
3803
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.7", type: NgxMaskDirective, isStandalone: true, selector: "input[mask], textarea[mask]", inputs: { mask: { classPropertyName: "mask", publicName: "mask", isSignal: true, isRequired: false, transformFunction: null }, specialCharacters: { classPropertyName: "specialCharacters", publicName: "specialCharacters", isSignal: true, isRequired: false, transformFunction: null }, patterns: { classPropertyName: "patterns", publicName: "patterns", isSignal: true, isRequired: false, transformFunction: null }, prefix: { classPropertyName: "prefix", publicName: "prefix", isSignal: true, isRequired: false, transformFunction: null }, suffix: { classPropertyName: "suffix", publicName: "suffix", isSignal: true, isRequired: false, transformFunction: null }, thousandSeparator: { classPropertyName: "thousandSeparator", publicName: "thousandSeparator", isSignal: true, isRequired: false, transformFunction: null }, decimalMarker: { classPropertyName: "decimalMarker", publicName: "decimalMarker", isSignal: true, isRequired: false, transformFunction: null }, dropSpecialCharacters: { classPropertyName: "dropSpecialCharacters", publicName: "dropSpecialCharacters", isSignal: true, isRequired: false, transformFunction: null }, hiddenInput: { classPropertyName: "hiddenInput", publicName: "hiddenInput", isSignal: true, isRequired: false, transformFunction: null }, showMaskTyped: { classPropertyName: "showMaskTyped", publicName: "showMaskTyped", isSignal: true, isRequired: false, transformFunction: null }, placeHolderCharacter: { classPropertyName: "placeHolderCharacter", publicName: "placeHolderCharacter", isSignal: true, isRequired: false, transformFunction: null }, shownMaskExpression: { classPropertyName: "shownMaskExpression", publicName: "shownMaskExpression", isSignal: true, isRequired: false, transformFunction: null }, clearIfNotMatch: { classPropertyName: "clearIfNotMatch", publicName: "clearIfNotMatch", isSignal: true, isRequired: false, transformFunction: null }, validation: { classPropertyName: "validation", publicName: "validation", isSignal: true, isRequired: false, transformFunction: null }, separatorLimit: { classPropertyName: "separatorLimit", publicName: "separatorLimit", isSignal: true, isRequired: false, transformFunction: null }, typeFromDecimals: { classPropertyName: "typeFromDecimals", publicName: "typeFromDecimals", isSignal: true, isRequired: false, transformFunction: null }, allowNegativeNumbers: { classPropertyName: "allowNegativeNumbers", publicName: "allowNegativeNumbers", isSignal: true, isRequired: false, transformFunction: null }, leadZeroDateTime: { classPropertyName: "leadZeroDateTime", publicName: "leadZeroDateTime", isSignal: true, isRequired: false, transformFunction: null }, leadZero: { classPropertyName: "leadZero", publicName: "leadZero", isSignal: true, isRequired: false, transformFunction: null }, triggerOnMaskChange: { classPropertyName: "triggerOnMaskChange", publicName: "triggerOnMaskChange", isSignal: true, isRequired: false, transformFunction: null }, apm: { classPropertyName: "apm", publicName: "apm", isSignal: true, isRequired: false, transformFunction: null }, inputTransformFn: { classPropertyName: "inputTransformFn", publicName: "inputTransformFn", isSignal: true, isRequired: false, transformFunction: null }, outputTransformFn: { classPropertyName: "outputTransformFn", publicName: "outputTransformFn", isSignal: true, isRequired: false, transformFunction: null }, keepCharacterPositions: { classPropertyName: "keepCharacterPositions", publicName: "keepCharacterPositions", isSignal: true, isRequired: false, transformFunction: null }, instantPrefix: { classPropertyName: "instantPrefix", publicName: "instantPrefix", isSignal: true, isRequired: false, transformFunction: null }, defaultValueOnBlur: { classPropertyName: "defaultValueOnBlur", publicName: "defaultValueOnBlur", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, touched: { classPropertyName: "touched", publicName: "touched", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange", touched: "touchedChange", maskFilled: "maskFilled" }, host: { listeners: { "paste": "onPaste()", "focus": "onFocus()", "ngModelChange": "onModelChange($event)", "input": "onInput($event)", "compositionstart": "onCompositionStart()", "compositionend": "onCompositionEnd($event)", "blur": "onBlur($event)", "click": "onClick($event)", "keydown": "onKeyDown($event)" } }, providers: [
|
|
3789
3804
|
{
|
|
3790
3805
|
provide: NG_VALUE_ACCESSOR,
|
|
3791
3806
|
useExisting: NgxMaskDirective,
|
|
@@ -3799,7 +3814,7 @@ class NgxMaskDirective {
|
|
|
3799
3814
|
NgxMaskService,
|
|
3800
3815
|
], exportAs: ["mask", "ngxMask"], usesOnChanges: true, ngImport: i0 });
|
|
3801
3816
|
}
|
|
3802
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.
|
|
3817
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: NgxMaskDirective, decorators: [{
|
|
3803
3818
|
type: Directive,
|
|
3804
3819
|
args: [{
|
|
3805
3820
|
selector: 'input[mask], textarea[mask]',
|
|
@@ -3937,10 +3952,10 @@ class NgxMaskPipe {
|
|
|
3937
3952
|
});
|
|
3938
3953
|
}
|
|
3939
3954
|
}
|
|
3940
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.
|
|
3941
|
-
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "22.0.
|
|
3955
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: NgxMaskPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
3956
|
+
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "22.0.7", ngImport: i0, type: NgxMaskPipe, isStandalone: true, name: "mask" });
|
|
3942
3957
|
}
|
|
3943
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.
|
|
3958
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: NgxMaskPipe, decorators: [{
|
|
3944
3959
|
type: Pipe,
|
|
3945
3960
|
args: [{
|
|
3946
3961
|
name: 'mask',
|
package/package.json
CHANGED
package/types/ngx-mask.d.ts
CHANGED
|
@@ -120,7 +120,7 @@ declare class NgxMaskApplierService {
|
|
|
120
120
|
writingValue: boolean;
|
|
121
121
|
ipError?: boolean;
|
|
122
122
|
cpfCnpjError?: boolean;
|
|
123
|
-
applyMask(inputValue: string | object | boolean | null | undefined, maskExpression: string, position?: number, justPasted?: boolean, backspaced?: boolean, cb?: (
|
|
123
|
+
applyMask(inputValue: string | object | boolean | null | undefined, maskExpression: string, position?: number, justPasted?: boolean, backspaced?: boolean, cb?: (actualShift: number, backspaceShift: boolean) => void): string;
|
|
124
124
|
_findDropSpecialChar(inputSymbol: string): undefined | string;
|
|
125
125
|
_findSpecialChar(inputSymbol: string): undefined | string;
|
|
126
126
|
_checkSymbolMask(inputSymbol: string, maskSymbol: string): boolean;
|
|
@@ -177,7 +177,7 @@ declare class NgxMaskService extends NgxMaskApplierService {
|
|
|
177
177
|
private _emitValue;
|
|
178
178
|
private _start;
|
|
179
179
|
private _end;
|
|
180
|
-
onChange: (_:
|
|
180
|
+
onChange: (_: unknown) => void;
|
|
181
181
|
readonly _elementRef: ElementRef<any> | null;
|
|
182
182
|
private readonly document;
|
|
183
183
|
protected _config: NgxMaskConfig;
|
|
@@ -192,9 +192,9 @@ declare class NgxMaskService extends NgxMaskApplierService {
|
|
|
192
192
|
* @param cb Callback function.
|
|
193
193
|
* @returns The masked value.
|
|
194
194
|
*/
|
|
195
|
-
applyMask(inputValue: string, maskExpression: string, position?: number, justPasted?: boolean, backspaced?: boolean, cb?: (
|
|
195
|
+
applyMask(inputValue: string, maskExpression: string, position?: number, justPasted?: boolean, backspaced?: boolean, cb?: (actualShift: number, backspaceShift: boolean) => void): string;
|
|
196
196
|
private _numberSkipedSymbols;
|
|
197
|
-
applyValueChanges(position: number, justPasted: boolean, backspaced: boolean, cb?: (
|
|
197
|
+
applyValueChanges(position: number, justPasted: boolean, backspaced: boolean, cb?: (actualShift: number, backspaceShift: boolean) => void): void;
|
|
198
198
|
hideInput(inputValue: string, maskExpression: string): string;
|
|
199
199
|
getActualValue(res: string): string;
|
|
200
200
|
shiftTypedSymbols(inputValue: string): string;
|
|
@@ -231,7 +231,7 @@ declare class NgxMaskService extends NgxMaskApplierService {
|
|
|
231
231
|
* model value too. Therefore, we don't trigger onChange in this scenario.
|
|
232
232
|
* @param inputValue the current form input value
|
|
233
233
|
*/
|
|
234
|
-
|
|
234
|
+
formControlResult(inputValue: string): void;
|
|
235
235
|
private _toNumber;
|
|
236
236
|
private _removeMask;
|
|
237
237
|
private _removePrefix;
|
|
@@ -380,7 +380,7 @@ declare class NgxMaskDirective implements ControlValueAccessor, OnChanges, Valid
|
|
|
380
380
|
private readonly _injector;
|
|
381
381
|
private _ngControl;
|
|
382
382
|
private _resolveNgControl;
|
|
383
|
-
onChange: (_:
|
|
383
|
+
onChange: (_: unknown) => void;
|
|
384
384
|
onTouch: () => void;
|
|
385
385
|
constructor();
|
|
386
386
|
ngOnChanges(changes: SimpleChanges): void;
|
|
@@ -424,7 +424,7 @@ declare class NgxMaskDirective implements ControlValueAccessor, OnChanges, Valid
|
|
|
424
424
|
*/
|
|
425
425
|
private _restoreControlStateAfterWrite;
|
|
426
426
|
/** It writes the value in the input */
|
|
427
|
-
writeValue(controlValue: unknown):
|
|
427
|
+
writeValue(controlValue: unknown): void;
|
|
428
428
|
/**
|
|
429
429
|
* Mirrors a writeValue-driven render into the DOM synchronously, in the same
|
|
430
430
|
* change-detection pass (#1305). The service's `formElementProperty` setter defers all
|
|
@@ -460,7 +460,21 @@ declare class NgxMaskDirective implements ControlValueAccessor, OnChanges, Valid
|
|
|
460
460
|
focus(): void;
|
|
461
461
|
private _getActiveElement;
|
|
462
462
|
checkSelectionOnDeletion(el: HTMLInputElement): void;
|
|
463
|
-
/**
|
|
463
|
+
/**
|
|
464
|
+
* It disables the input element.
|
|
465
|
+
*
|
|
466
|
+
* Mirrors `_writeElementValueSync` (#1305): the service's `formElementProperty` setter
|
|
467
|
+
* defers ALL DOM writes via `queueMicrotask` to dodge ExpressionChangedAfterItHasBeenChecked
|
|
468
|
+
* and keep FIFO ordering with config-driven re-renders. For `disabled` specifically, that
|
|
469
|
+
* deferral leaves `nativeElement.disabled` stale for at least one microtask after Angular
|
|
470
|
+
* Forms' `setUpControl` calls this method synchronously during init — long enough for a
|
|
471
|
+
* consumer reading the DOM property in the same synchronous phase (or another deferred write
|
|
472
|
+
* racing in FIFO order) to observe the wrong value, e.g. an initially-disabled FormControl
|
|
473
|
+
* whose native input briefly (or, depending on interleaving, persistently) reports
|
|
474
|
+
* `disabled === false` (#1633). Writing synchronously here closes that gap; the deferred
|
|
475
|
+
* write below still runs afterwards and re-applies the same final value, preserving the
|
|
476
|
+
* existing ordering guarantees other call sites rely on.
|
|
477
|
+
*/
|
|
464
478
|
setDisabledState(isDisabled: boolean): void;
|
|
465
479
|
private _applyMask;
|
|
466
480
|
/**
|