ngx-phone-mask
Advanced tools
Comparing version 2.1.3 to 3.0.0
(function (global, factory) { | ||
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/common'), require('@angular/forms')) : | ||
typeof define === 'function' && define.amd ? define(['exports', '@angular/core', '@angular/common', '@angular/forms'], factory) : | ||
(factory((global['ngx-phone-mask'] = {}),global.ng.core,global.ng.common,global.ng.forms)); | ||
}(this, (function (exports,core,common,forms) { 'use strict'; | ||
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/forms'), require('@angular/platform-browser'), require('text-mask-core/dist/textMaskCore'), require('angular2-text-mask')) : | ||
typeof define === 'function' && define.amd ? define('ngx-phone-mask', ['exports', '@angular/core', '@angular/forms', '@angular/platform-browser', 'text-mask-core/dist/textMaskCore', 'angular2-text-mask'], factory) : | ||
(factory((global['ngx-phone-mask'] = {}),global.ng.core,global.ng.forms,global.ng.platformBrowser,global.textMaskCore,global.angular2TextMask)); | ||
}(this, (function (exports,core,forms,platformBrowser,textMaskCore,angular2TextMask) { 'use strict'; | ||
var noop = function () { }; | ||
var masks = [ | ||
'1', | ||
'1 (1', | ||
'1 (11', | ||
'1 (111', | ||
'1 (111) 1', | ||
'1 (111) 11', | ||
'1 (111) 11-1', | ||
'1 (111) 11-11', | ||
'1 (111) 11-111', | ||
'1 (111) 111-111', | ||
'1 (111) 111-11-11', | ||
'1 (111) 111-111-11' | ||
]; | ||
var clean = function (number) { | ||
return number | ||
.toString() | ||
.replace(/[^\d\^]/gm, ''); | ||
}; | ||
var format = function (number) { | ||
var /** @type {?} */ lastCharIndex = 0; | ||
var /** @type {?} */ cleanValue = clean(number); | ||
var /** @type {?} */ charCount = cleanValue.replace(/\^/gm, '').length; | ||
if (charCount === 0) { | ||
return { | ||
formatted: '', | ||
cursorPosition: 0 | ||
}; | ||
} | ||
var /** @type {?} */ mask = masks[charCount - 1]; | ||
if (charCount > 1 && !mask) { | ||
return null; | ||
} | ||
var /** @type {?} */ cursorPosition; | ||
var /** @type {?} */ formatted = mask.split('').map(function (c, i) { | ||
if (c === '1') { | ||
if (cleanValue[lastCharIndex] == '^') { | ||
cursorPosition = i + 1; | ||
lastCharIndex++; | ||
} | ||
lastCharIndex++; | ||
return cleanValue[lastCharIndex - 1]; | ||
} | ||
else { | ||
return c; | ||
} | ||
}).join(''); | ||
if (!cursorPosition) { | ||
cursorPosition = formatted.length; | ||
} | ||
cursorPosition++; // because of '+' | ||
return { | ||
formatted: "+" + formatted, | ||
cursorPosition: cursorPosition | ||
}; | ||
}; | ||
var NgxPhoneMaskDirective = (function () { | ||
/** | ||
* @param {?} input | ||
* @fileoverview added by tsickle | ||
* @suppress {checkTypes,extraRequire,missingReturn,uselessCode} checked by tsc | ||
*/ | ||
function NgxPhoneMaskDirective(input) { | ||
this.input = input; | ||
this.onTouchedCallback = noop; | ||
this.onChangeCallback = noop; | ||
this.valueType = 'clean'; | ||
this.showMask = true; | ||
this.oldValue = ''; | ||
} | ||
/** | ||
* @return {?} | ||
*/ | ||
NgxPhoneMaskDirective.prototype.updateInputView = function () { | ||
var /** @type {?} */ input = this.input.nativeElement; | ||
var /** @type {?} */ cursorPosition = input.selectionStart; | ||
var /** @type {?} */ value = this._value; | ||
var /** @type {?} */ valueWithCursor = value.substring(0, cursorPosition) + '^' + value.substring(cursorPosition); | ||
var /** @type {?} */ formatted = format(valueWithCursor); | ||
if (!formatted) { | ||
input.value = this.oldValue; | ||
return; | ||
var TextMaskConfig = /** @class */ (function () { | ||
function TextMaskConfig() { | ||
} | ||
var /** @type {?} */ newValue = formatted.formatted; | ||
if (newValue != input.value) { | ||
input.value = newValue; | ||
input.setSelectionRange(formatted.cursorPosition, formatted.cursorPosition); | ||
} | ||
this.oldValue = newValue; | ||
this.emitValue(newValue); | ||
return TextMaskConfig; | ||
}()); | ||
/** @type {?} */ | ||
var clean = function (number) { | ||
return number | ||
.toString() | ||
.replace(/[^\d\^\+]/gm, ''); | ||
}; | ||
/** | ||
* @param {?} v | ||
* We must check whether the agent is Android because composition events | ||
* behave differently between iOS and Android. | ||
* @return {?} | ||
*/ | ||
NgxPhoneMaskDirective.prototype.emitValue = function (v) { | ||
var /** @type {?} */ value; | ||
switch (this.valueType) { | ||
case 'clean': | ||
value = v.replace(/[^\d\+]/gm, ''); | ||
break; | ||
case 'full': | ||
value = v; | ||
break; | ||
function _isAndroid() { | ||
/** @type {?} */ | ||
var userAgent = platformBrowser.ɵgetDOM() ? platformBrowser.ɵgetDOM().getUserAgent() : ''; | ||
return /android (\d+)/.test(userAgent.toLowerCase()); | ||
} | ||
var NgxPhoneMaskDirective = /** @class */ (function () { | ||
function NgxPhoneMaskDirective(_renderer, _elementRef, _compositionMode) { | ||
this._renderer = _renderer; | ||
this._elementRef = _elementRef; | ||
this._compositionMode = _compositionMode; | ||
this.clean = true; | ||
this.textMaskConfig = { | ||
mask: ['+', /[1-9]/, ' ', '(', /[1-9]/, /\d/, /\d/, ')', ' ', /\d/, /\d/, /\d/, '-', /\d/, /\d/, '-', /\d/, /\d/], | ||
guide: false, | ||
placeholderChar: '_', | ||
pipe: undefined, | ||
keepCharPositions: false, | ||
}; | ||
/** | ||
* Whether the user is creating a composition string (IME events). | ||
*/ | ||
this._composing = false; | ||
this.onChange = function (_) { | ||
}; | ||
this.onTouched = function () { | ||
}; | ||
if (this._compositionMode == null) { | ||
this._compositionMode = !_isAndroid(); | ||
} | ||
} | ||
this.onChangeCallback(value); | ||
}; | ||
/** | ||
* @return {?} | ||
*/ | ||
NgxPhoneMaskDirective.prototype.onInput = function () { | ||
this._value = this.input.nativeElement.value; | ||
this.updateInputView(); | ||
}; | ||
Object.defineProperty(NgxPhoneMaskDirective.prototype, "value", { | ||
/** | ||
* @param {?} v | ||
* @return {?} | ||
*/ | ||
set: function (v) { | ||
var /** @type {?} */ value = v ? v : ''; | ||
this._value = value; | ||
this.updateInputView(); | ||
}, | ||
enumerable: true, | ||
configurable: true | ||
}); | ||
NgxPhoneMaskDirective.prototype.ngOnInit = /** | ||
* @return {?} | ||
*/ | ||
function () { | ||
this._setupMask(true); | ||
if (this.textMaskInputElement !== undefined) { | ||
this.textMaskInputElement.update(this.inputElement.value); | ||
} | ||
}; | ||
/** | ||
* @param {?} changes | ||
* @return {?} | ||
*/ | ||
NgxPhoneMaskDirective.prototype.ngOnChanges = /** | ||
* @param {?} changes | ||
* @return {?} | ||
*/ | ||
function (changes) { | ||
this._setupMask(true); | ||
if (this.textMaskInputElement !== undefined) { | ||
this.textMaskInputElement.update(this.inputElement.value); | ||
} | ||
}; | ||
/** | ||
* @return {?} | ||
*/ | ||
NgxPhoneMaskDirective.prototype.onBlur = /** | ||
* @return {?} | ||
*/ | ||
function () { | ||
this.onTouched(); | ||
}; | ||
/** | ||
* @param {?} value | ||
* @return {?} | ||
*/ | ||
NgxPhoneMaskDirective.prototype.writeValue = /** | ||
* @param {?} value | ||
* @return {?} | ||
*/ | ||
function (value) { | ||
this._setupMask(); | ||
// set the initial value for cases where the mask is disabled | ||
/** @type {?} */ | ||
var normalizedValue = value == null ? '' : value; | ||
this._renderer.setProperty(this.inputElement, 'value', normalizedValue); | ||
if (this.textMaskInputElement !== undefined) { | ||
this.textMaskInputElement.update(value); | ||
} | ||
}; | ||
/** | ||
* @param {?} fn | ||
* @return {?} | ||
*/ | ||
NgxPhoneMaskDirective.prototype.registerOnChange = /** | ||
* @param {?} fn | ||
* @return {?} | ||
*/ | ||
function (fn) { | ||
this.onChange = fn; | ||
}; | ||
/** | ||
* @param {?} fn | ||
* @return {?} | ||
*/ | ||
NgxPhoneMaskDirective.prototype.registerOnTouched = /** | ||
* @param {?} fn | ||
* @return {?} | ||
*/ | ||
function (fn) { | ||
this.onTouched = fn; | ||
}; | ||
/** | ||
* @param {?} isDisabled | ||
* @return {?} | ||
*/ | ||
NgxPhoneMaskDirective.prototype.setDisabledState = /** | ||
* @param {?} isDisabled | ||
* @return {?} | ||
*/ | ||
function (isDisabled) { | ||
this._renderer.setProperty(this._elementRef.nativeElement, 'disabled', isDisabled); | ||
}; | ||
/** | ||
* @param {?} value | ||
* @return {?} | ||
*/ | ||
NgxPhoneMaskDirective.prototype._handleInput = /** | ||
* @param {?} value | ||
* @return {?} | ||
*/ | ||
function (value) { | ||
if (!this._compositionMode || (this._compositionMode && !this._composing)) { | ||
this._setupMask(); | ||
if (this.textMaskInputElement !== undefined) { | ||
this.textMaskInputElement.update(value); | ||
// get the updated value | ||
value = this.inputElement.value; | ||
if (this.clean) { | ||
this.onChange(clean(value)); | ||
} | ||
else { | ||
this.onChange(value); | ||
} | ||
} | ||
} | ||
}; | ||
/** | ||
* @param {?=} create | ||
* @return {?} | ||
*/ | ||
NgxPhoneMaskDirective.prototype._setupMask = /** | ||
* @param {?=} create | ||
* @return {?} | ||
*/ | ||
function (create) { | ||
if (create === void 0) { | ||
create = false; | ||
} | ||
if (!this.inputElement) { | ||
if (this._elementRef.nativeElement.tagName.toUpperCase() === 'INPUT') { | ||
// `textMask` directive is used directly on an input element | ||
this.inputElement = this._elementRef.nativeElement; | ||
} | ||
else { | ||
// `textMask` directive is used on an abstracted input element, `md-input-container`, etc | ||
this.inputElement = this._elementRef.nativeElement.getElementsByTagName('INPUT')[0]; | ||
} | ||
} | ||
if (this.inputElement && create) { | ||
this.textMaskInputElement = textMaskCore.createTextMaskInputElement(Object.assign({ inputElement: this.inputElement }, this.textMaskConfig)); | ||
} | ||
}; | ||
/** | ||
* @return {?} | ||
*/ | ||
NgxPhoneMaskDirective.prototype._compositionStart = /** | ||
* @return {?} | ||
*/ | ||
function () { | ||
this._composing = true; | ||
}; | ||
/** | ||
* @param {?} value | ||
* @return {?} | ||
*/ | ||
NgxPhoneMaskDirective.prototype._compositionEnd = /** | ||
* @param {?} value | ||
* @return {?} | ||
*/ | ||
function (value) { | ||
this._composing = false; | ||
this._compositionMode && this._handleInput(value); | ||
}; | ||
NgxPhoneMaskDirective.decorators = [ | ||
{ type: core.Directive, args: [{ | ||
host: { | ||
'(input)': '_handleInput($event.target.value)', | ||
'(blur)': 'onTouched()', | ||
'(compositionstart)': '_compositionStart()', | ||
'(compositionend)': '_compositionEnd($event.target.value)' | ||
}, | ||
selector: '[ngxPhoneMask]', | ||
exportAs: 'ngxPhoneMask', | ||
providers: [{ | ||
provide: forms.NG_VALUE_ACCESSOR, | ||
useExisting: core.forwardRef(function () { return NgxPhoneMaskDirective; }), | ||
multi: true | ||
}] | ||
},] } | ||
]; | ||
/** @nocollapse */ | ||
NgxPhoneMaskDirective.ctorParameters = function () { | ||
return [ | ||
{ type: core.Renderer2 }, | ||
{ type: core.ElementRef }, | ||
{ type: Boolean, decorators: [{ type: core.Optional }, { type: core.Inject, args: [forms.COMPOSITION_BUFFER_MODE,] }] } | ||
]; | ||
}; | ||
NgxPhoneMaskDirective.propDecorators = { | ||
clean: [{ type: core.Input }], | ||
onBlur: [{ type: core.HostListener, args: ['blur',] }] | ||
}; | ||
return NgxPhoneMaskDirective; | ||
}()); | ||
/** | ||
* @param {?} value | ||
* @return {?} | ||
* @fileoverview added by tsickle | ||
* @suppress {checkTypes,extraRequire,missingReturn,uselessCode} checked by tsc | ||
*/ | ||
NgxPhoneMaskDirective.prototype.writeValue = function (value) { | ||
this.value = value; | ||
}; | ||
var NgxPhoneMaskModule = /** @class */ (function () { | ||
function NgxPhoneMaskModule() { | ||
} | ||
NgxPhoneMaskModule.decorators = [ | ||
{ type: core.NgModule, args: [{ | ||
imports: [angular2TextMask.TextMaskModule], | ||
declarations: [NgxPhoneMaskDirective], | ||
exports: [NgxPhoneMaskDirective] | ||
},] } | ||
]; | ||
return NgxPhoneMaskModule; | ||
}()); | ||
/** | ||
* @param {?} fn | ||
* @return {?} | ||
* @fileoverview added by tsickle | ||
* @suppress {checkTypes,extraRequire,missingReturn,uselessCode} checked by tsc | ||
*/ | ||
NgxPhoneMaskDirective.prototype.registerOnChange = function (fn) { | ||
this.onChangeCallback = fn; | ||
}; | ||
/** | ||
* @param {?} fn | ||
* @return {?} | ||
* @fileoverview added by tsickle | ||
* @suppress {checkTypes,extraRequire,missingReturn,uselessCode} checked by tsc | ||
*/ | ||
NgxPhoneMaskDirective.prototype.registerOnTouched = function (fn) { | ||
this.onTouchedCallback = fn; | ||
}; | ||
/** | ||
* @param {?} isDisabled | ||
* @return {?} | ||
*/ | ||
NgxPhoneMaskDirective.prototype.setDisabledState = function (isDisabled) { | ||
this.disabled = isDisabled; | ||
}; | ||
return NgxPhoneMaskDirective; | ||
}()); | ||
NgxPhoneMaskDirective.decorators = [ | ||
{ type: core.Directive, args: [{ | ||
selector: '[ngxPhoneMask]', | ||
providers: [ | ||
{ | ||
provide: forms.NG_VALUE_ACCESSOR, | ||
useExisting: core.forwardRef(function () { return NgxPhoneMaskDirective; }), | ||
multi: true | ||
} | ||
] | ||
},] }, | ||
]; | ||
/** | ||
* @nocollapse | ||
*/ | ||
NgxPhoneMaskDirective.ctorParameters = function () { return [ | ||
{ type: core.ElementRef, }, | ||
]; }; | ||
NgxPhoneMaskDirective.propDecorators = { | ||
'valueType': [{ type: core.Input },], | ||
'showMask': [{ type: core.Input },], | ||
'onInput': [{ type: core.HostListener, args: ['input',] },], | ||
}; | ||
var NgxPhoneMaskModule = (function () { | ||
function NgxPhoneMaskModule() { | ||
} | ||
return NgxPhoneMaskModule; | ||
}()); | ||
NgxPhoneMaskModule.decorators = [ | ||
{ type: core.NgModule, args: [{ | ||
imports: [ | ||
common.CommonModule | ||
], | ||
declarations: [NgxPhoneMaskDirective], | ||
exports: [NgxPhoneMaskDirective] | ||
},] }, | ||
]; | ||
/** | ||
* @nocollapse | ||
*/ | ||
NgxPhoneMaskModule.ctorParameters = function () { return []; }; | ||
exports.NgxPhoneMaskModule = NgxPhoneMaskModule; | ||
exports.ɵa = NgxPhoneMaskDirective; | ||
exports.TextMaskConfig = TextMaskConfig; | ||
exports.NgxPhoneMaskDirective = NgxPhoneMaskDirective; | ||
exports.NgxPhoneMaskModule = NgxPhoneMaskModule; | ||
Object.defineProperty(exports, '__esModule', { value: true }); | ||
Object.defineProperty(exports, '__esModule', { value: true }); | ||
}))); | ||
//# sourceMappingURL=ngx-phone-mask.umd.js.map | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXBob25lLW1hc2sudW1kLmpzLm1hcCIsInNvdXJjZXMiOlsibmc6Ly9uZ3gtcGhvbmUtbWFzay9saWIvbmd4LXBob25lLW1hc2suZGlyZWN0aXZlLnRzIiwibmc6Ly9uZ3gtcGhvbmUtbWFzay9saWIvbmd4LXBob25lLW1hc2subW9kdWxlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG5cdERpcmVjdGl2ZSxcblx0RWxlbWVudFJlZixcblx0Zm9yd2FyZFJlZiwgSG9zdExpc3RlbmVyLFxuXHRJbmplY3QsIElucHV0LFxuXHRPbkNoYW5nZXMsIE9uSW5pdCxcblx0T3B0aW9uYWwsXG5cdFJlbmRlcmVyMixcblx0U2ltcGxlQ2hhbmdlc1xufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SLCBDb250cm9sVmFsdWVBY2Nlc3NvciwgQ09NUE9TSVRJT05fQlVGRkVSX01PREUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyDDicK1Z2V0RE9NIGFzIGdldERPTSB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHsgY3JlYXRlVGV4dE1hc2tJbnB1dEVsZW1lbnQgfSBmcm9tICd0ZXh0LW1hc2stY29yZS9kaXN0L3RleHRNYXNrQ29yZSc7XG5cbmV4cG9ydCBjbGFzcyBUZXh0TWFza0NvbmZpZyB7XG5cdG1hc2s6IEFycmF5PHN0cmluZyB8IFJlZ0V4cD4gfCAoKHJhdzogc3RyaW5nKSA9PiBBcnJheTxzdHJpbmcgfCBSZWdFeHA+KSB8IGZhbHNlO1xuXHRndWlkZT86IGJvb2xlYW47XG5cdHBsYWNlaG9sZGVyQ2hhcj86IHN0cmluZztcblx0cGlwZT86IChjb25mb3JtZWRWYWx1ZTogc3RyaW5nLCBjb25maWc6IFRleHRNYXNrQ29uZmlnKSA9PiBmYWxzZSB8IHN0cmluZyB8IG9iamVjdDtcblx0a2VlcENoYXJQb3NpdGlvbnM/OiBib29sZWFuO1xuXHRzaG93TWFzaz86IGJvb2xlYW47XG59XG5cbmNvbnN0IGNsZWFuID0gKG51bWJlcikgPT4ge1xuXHRyZXR1cm4gbnVtYmVyXG5cdFx0LnRvU3RyaW5nKClcblx0XHQucmVwbGFjZSgvW15cXGRcXF5cXCtdL2dtLCAnJyk7XG59O1xuXG4vKipcbiAqIFdlIG11c3QgY2hlY2sgd2hldGhlciB0aGUgYWdlbnQgaXMgQW5kcm9pZCBiZWNhdXNlIGNvbXBvc2l0aW9uIGV2ZW50c1xuICogYmVoYXZlIGRpZmZlcmVudGx5IGJldHdlZW4gaU9TIGFuZCBBbmRyb2lkLlxuICovXG5mdW5jdGlvbiBfaXNBbmRyb2lkKCk6IGJvb2xlYW4ge1xuXHRjb25zdCB1c2VyQWdlbnQgPSBnZXRET00oKSA/IGdldERPTSgpLmdldFVzZXJBZ2VudCgpIDogJyc7XG5cdHJldHVybiAvYW5kcm9pZCAoXFxkKykvLnRlc3QodXNlckFnZW50LnRvTG93ZXJDYXNlKCkpO1xufVxuXG5ARGlyZWN0aXZlKHtcblx0aG9zdDoge1xuXHRcdCcoaW5wdXQpJzogJ19oYW5kbGVJbnB1dCgkZXZlbnQudGFyZ2V0LnZhbHVlKScsXG5cdFx0JyhibHVyKSc6ICdvblRvdWNoZWQoKScsXG5cdFx0Jyhjb21wb3NpdGlvbnN0YXJ0KSc6ICdfY29tcG9zaXRpb25TdGFydCgpJyxcblx0XHQnKGNvbXBvc2l0aW9uZW5kKSc6ICdfY29tcG9zaXRpb25FbmQoJGV2ZW50LnRhcmdldC52YWx1ZSknXG5cdH0sXG5cdHNlbGVjdG9yOiAnW25neFBob25lTWFza10nLFxuXHRleHBvcnRBczogJ25neFBob25lTWFzaycsXG5cdHByb3ZpZGVyczogW3tcblx0XHRwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcblx0XHR1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBOZ3hQaG9uZU1hc2tEaXJlY3RpdmUpLFxuXHRcdG11bHRpOiB0cnVlXG5cdH1dXG59KVxuZXhwb3J0IGNsYXNzIE5neFBob25lTWFza0RpcmVjdGl2ZSBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkNoYW5nZXMsIE9uSW5pdCB7XG5cdEBJbnB1dCgpIGNsZWFuID0gdHJ1ZTtcblxuXHR0ZXh0TWFza0NvbmZpZzogVGV4dE1hc2tDb25maWcgPSB7XG5cdFx0bWFzazogWycrJywgL1sxLTldLywgJyAnLCAnKCcsIC9bMS05XS8sIC9cXGQvLCAvXFxkLywgJyknLCAnICcsIC9cXGQvLCAvXFxkLywgL1xcZC8sICctJywgL1xcZC8sIC9cXGQvLCAnLScsIC9cXGQvLCAvXFxkL10sXG5cdFx0Z3VpZGU6IGZhbHNlLFxuXHRcdHBsYWNlaG9sZGVyQ2hhcjogJ18nLFxuXHRcdHBpcGU6IHVuZGVmaW5lZCxcblx0XHRrZWVwQ2hhclBvc2l0aW9uczogZmFsc2UsXG5cdH07XG5cblx0cHJpdmF0ZSB0ZXh0TWFza0lucHV0RWxlbWVudDogYW55O1xuXHRwcml2YXRlIGlucHV0RWxlbWVudDogSFRNTElucHV0RWxlbWVudDtcblxuXHQvKiogV2hldGhlciB0aGUgdXNlciBpcyBjcmVhdGluZyBhIGNvbXBvc2l0aW9uIHN0cmluZyAoSU1FIGV2ZW50cykuICovXG5cdHByaXZhdGUgX2NvbXBvc2luZyA9IGZhbHNlO1xuXG5cdG9uQ2hhbmdlID0gKF86IGFueSkgPT4ge1xuXHR9O1xuXHRvblRvdWNoZWQgPSAoKSA9PiB7XG5cdH07XG5cblx0Y29uc3RydWN0b3IoXG5cdFx0cHJpdmF0ZSBfcmVuZGVyZXI6IFJlbmRlcmVyMixcblx0XHRwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuXHRcdEBPcHRpb25hbCgpIEBJbmplY3QoQ09NUE9TSVRJT05fQlVGRkVSX01PREUpIHByaXZhdGUgX2NvbXBvc2l0aW9uTW9kZTogYm9vbGVhblxuXHQpIHtcblx0XHRpZiAodGhpcy5fY29tcG9zaXRpb25Nb2RlID09IG51bGwpIHtcblx0XHRcdHRoaXMuX2NvbXBvc2l0aW9uTW9kZSA9ICFfaXNBbmRyb2lkKCk7XG5cdFx0fVxuXHR9XG5cblx0bmdPbkluaXQoKSB7XG5cdFx0dGhpcy5fc2V0dXBNYXNrKHRydWUpO1xuXHRcdGlmICh0aGlzLnRleHRNYXNrSW5wdXRFbGVtZW50ICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdHRoaXMudGV4dE1hc2tJbnB1dEVsZW1lbnQudXBkYXRlKHRoaXMuaW5wdXRFbGVtZW50LnZhbHVlKTtcblx0XHR9XG5cdH1cblxuXHRuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG5cdFx0dGhpcy5fc2V0dXBNYXNrKHRydWUpO1xuXHRcdGlmICh0aGlzLnRleHRNYXNrSW5wdXRFbGVtZW50ICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdHRoaXMudGV4dE1hc2tJbnB1dEVsZW1lbnQudXBkYXRlKHRoaXMuaW5wdXRFbGVtZW50LnZhbHVlKTtcblx0XHR9XG5cdH1cblxuXHRASG9zdExpc3RlbmVyKCdibHVyJylcblx0b25CbHVyKCkge1xuXHRcdHRoaXMub25Ub3VjaGVkKCk7XG5cdH1cblxuXHR3cml0ZVZhbHVlKHZhbHVlOiBhbnkpIHtcblx0XHR0aGlzLl9zZXR1cE1hc2soKTtcblxuXHRcdC8vIHNldCB0aGUgaW5pdGlhbCB2YWx1ZSBmb3IgY2FzZXMgd2hlcmUgdGhlIG1hc2sgaXMgZGlzYWJsZWRcblx0XHRjb25zdCBub3JtYWxpemVkVmFsdWUgPSB2YWx1ZSA9PSBudWxsID8gJycgOiB2YWx1ZTtcblx0XHR0aGlzLl9yZW5kZXJlci5zZXRQcm9wZXJ0eSh0aGlzLmlucHV0RWxlbWVudCwgJ3ZhbHVlJywgbm9ybWFsaXplZFZhbHVlKTtcblxuXHRcdGlmICh0aGlzLnRleHRNYXNrSW5wdXRFbGVtZW50ICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdHRoaXMudGV4dE1hc2tJbnB1dEVsZW1lbnQudXBkYXRlKHZhbHVlKTtcblx0XHR9XG5cdH1cblxuXHRyZWdpc3Rlck9uQ2hhbmdlKGZuOiAoXzogYW55KSA9PiB2b2lkKTogdm9pZCB7XG5cdFx0dGhpcy5vbkNoYW5nZSA9IGZuO1xuXHR9XG5cblx0cmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcblx0XHR0aGlzLm9uVG91Y2hlZCA9IGZuO1xuXHR9XG5cblx0c2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG5cdFx0dGhpcy5fcmVuZGVyZXIuc2V0UHJvcGVydHkodGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnZGlzYWJsZWQnLCBpc0Rpc2FibGVkKTtcblx0fVxuXG5cdF9oYW5kbGVJbnB1dCh2YWx1ZSkge1xuXHRcdGlmICghdGhpcy5fY29tcG9zaXRpb25Nb2RlIHx8ICh0aGlzLl9jb21wb3NpdGlvbk1vZGUgJiYgIXRoaXMuX2NvbXBvc2luZykpIHtcblx0XHRcdHRoaXMuX3NldHVwTWFzaygpO1xuXG5cdFx0XHRpZiAodGhpcy50ZXh0TWFza0lucHV0RWxlbWVudCAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRcdHRoaXMudGV4dE1hc2tJbnB1dEVsZW1lbnQudXBkYXRlKHZhbHVlKTtcblxuXHRcdFx0XHQvLyBnZXQgdGhlIHVwZGF0ZWQgdmFsdWVcblx0XHRcdFx0dmFsdWUgPSB0aGlzLmlucHV0RWxlbWVudC52YWx1ZTtcblxuXHRcdFx0XHRpZiAodGhpcy5jbGVhbikge1xuXHRcdFx0XHRcdHRoaXMub25DaGFuZ2UoY2xlYW4odmFsdWUpKTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHR0aGlzLm9uQ2hhbmdlKHZhbHVlKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdF9zZXR1cE1hc2soY3JlYXRlID0gZmFsc2UpIHtcblx0XHRpZiAoIXRoaXMuaW5wdXRFbGVtZW50KSB7XG5cdFx0XHRpZiAodGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnRhZ05hbWUudG9VcHBlckNhc2UoKSA9PT0gJ0lOUFVUJykge1xuXHRcdFx0XHQvLyBgdGV4dE1hc2tgIGRpcmVjdGl2ZSBpcyB1c2VkIGRpcmVjdGx5IG9uIGFuIGlucHV0IGVsZW1lbnRcblx0XHRcdFx0dGhpcy5pbnB1dEVsZW1lbnQgPSB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHQvLyBgdGV4dE1hc2tgIGRpcmVjdGl2ZSBpcyB1c2VkIG9uIGFuIGFic3RyYWN0ZWQgaW5wdXQgZWxlbWVudCwgYG1kLWlucHV0LWNvbnRhaW5lcmAsIGV0Y1xuXHRcdFx0XHR0aGlzLmlucHV0RWxlbWVudCA9IHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnSU5QVVQnKVswXTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRpZiAodGhpcy5pbnB1dEVsZW1lbnQgJiYgY3JlYXRlKSB7XG5cdFx0XHR0aGlzLnRleHRNYXNrSW5wdXRFbGVtZW50ID0gY3JlYXRlVGV4dE1hc2tJbnB1dEVsZW1lbnQoXG5cdFx0XHRcdE9iamVjdC5hc3NpZ24oeyBpbnB1dEVsZW1lbnQ6IHRoaXMuaW5wdXRFbGVtZW50IH0sIHRoaXMudGV4dE1hc2tDb25maWcpXG5cdFx0XHQpO1xuXHRcdH1cblxuXHR9XG5cblx0X2NvbXBvc2l0aW9uU3RhcnQoKTogdm9pZCB7XG5cdFx0dGhpcy5fY29tcG9zaW5nID0gdHJ1ZTtcblx0fVxuXG5cdF9jb21wb3NpdGlvbkVuZCh2YWx1ZTogYW55KTogdm9pZCB7XG5cdFx0dGhpcy5fY29tcG9zaW5nID0gZmFsc2U7XG5cdFx0dGhpcy5fY29tcG9zaXRpb25Nb2RlICYmIHRoaXMuX2hhbmRsZUlucHV0KHZhbHVlKTtcblx0fVxufVxuIiwiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5neFBob25lTWFza0RpcmVjdGl2ZSB9IGZyb20gJy4vbmd4LXBob25lLW1hc2suZGlyZWN0aXZlJztcbmltcG9ydCB7IFRleHRNYXNrTW9kdWxlIH0gZnJvbSAnYW5ndWxhcjItdGV4dC1tYXNrJztcblxuQE5nTW9kdWxlKHtcblx0aW1wb3J0czogW1RleHRNYXNrTW9kdWxlXSxcblx0ZGVjbGFyYXRpb25zOiBbTmd4UGhvbmVNYXNrRGlyZWN0aXZlXSxcblx0ZXhwb3J0czogW05neFBob25lTWFza0RpcmVjdGl2ZV1cbn0pXG5leHBvcnQgY2xhc3MgTmd4UGhvbmVNYXNrTW9kdWxlIHtcbn1cbiJdLCJuYW1lcyI6WyJnZXRET00iLCJjcmVhdGVUZXh0TWFza0lucHV0RWxlbWVudCIsIkRpcmVjdGl2ZSIsIk5HX1ZBTFVFX0FDQ0VTU09SIiwiZm9yd2FyZFJlZiIsIlJlbmRlcmVyMiIsIkVsZW1lbnRSZWYiLCJPcHRpb25hbCIsIkluamVjdCIsIkNPTVBPU0lUSU9OX0JVRkZFUl9NT0RFIiwiSW5wdXQiLCJIb3N0TGlzdGVuZXIiLCJOZ01vZHVsZSIsIlRleHRNYXNrTW9kdWxlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUE7UUFjQTtTQU9DO1FBQUQscUJBQUM7SUFBRCxDQUFDLElBQUE7O1FBRUssS0FBSyxHQUFHLFVBQUMsTUFBTTtRQUNwQixPQUFPLE1BQU07YUFDWCxRQUFRLEVBQUU7YUFDVixPQUFPLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzlCLENBQUM7Ozs7OztJQU1ELFNBQVMsVUFBVTs7WUFDWixTQUFTLEdBQUdBLHVCQUFNLEVBQUUsR0FBR0EsdUJBQU0sRUFBRSxDQUFDLFlBQVksRUFBRSxHQUFHLEVBQUU7UUFDekQsT0FBTyxlQUFlLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQ3RELENBQUM7QUFFRDtRQXFDQywrQkFDUyxTQUFvQixFQUNwQixXQUF1QixFQUNzQixnQkFBeUI7WUFGdEUsY0FBUyxHQUFULFNBQVMsQ0FBVztZQUNwQixnQkFBVyxHQUFYLFdBQVcsQ0FBWTtZQUNzQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQVM7WUF4QnRFLFVBQUssR0FBRyxJQUFJLENBQUM7WUFFdEIsbUJBQWMsR0FBbUI7Z0JBQ2hDLElBQUksRUFBRSxDQUFDLEdBQUcsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxP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 |
@@ -5,2 +5,1 @@ /** | ||
export * from './public_api'; | ||
export { NgxPhoneMaskDirective as ɵa } from './src/app/ngx-phone-mask/ngx-phone-mask.directive'; |
@@ -1,1 +0,1 @@ | ||
{"__symbolic":"module","version":3,"metadata":{"NgxPhoneMaskModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule"},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule"}],"declarations":[{"__symbolic":"reference","name":"ɵa"}],"exports":[{"__symbolic":"reference","name":"ɵa"}]}]}],"members":{}},"ɵa":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive"},"arguments":[{"selector":"[ngxPhoneMask]","providers":[{"provide":{"__symbolic":"reference","module":"@angular/forms","name":"NG_VALUE_ACCESSOR"},"useExisting":{"__symbolic":"reference","name":"ɵa"},"multi":true}]}]}],"members":{"valueType":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"showMask":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef"}]}],"updateInputView":[{"__symbolic":"method"}],"emitValue":[{"__symbolic":"method"}],"onInput":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener"},"arguments":["input"]}]}],"writeValue":[{"__symbolic":"method"}],"registerOnChange":[{"__symbolic":"method"}],"registerOnTouched":[{"__symbolic":"method"}],"setDisabledState":[{"__symbolic":"method"}]}}},"origins":{"NgxPhoneMaskModule":"./src/app/ngx-phone-mask/ngx-phone-mask.module","ɵa":"./src/app/ngx-phone-mask/ngx-phone-mask.directive"},"importAs":"ngx-phone-mask"} | ||
{"__symbolic":"module","version":4,"metadata":{"TextMaskConfig":{"__symbolic":"class","members":{}},"NgxPhoneMaskDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":38,"character":1},"arguments":[{"host":{"(input)":"_handleInput($event.target.value)","(blur)":"onTouched()","(compositionstart)":"_compositionStart()","(compositionend)":"_compositionEnd($event.target.value)","$quoted$":["(input)","(blur)","(compositionstart)","(compositionend)"]},"selector":"[ngxPhoneMask]","exportAs":"ngxPhoneMask","providers":[{"provide":{"__symbolic":"reference","module":"@angular/forms","name":"NG_VALUE_ACCESSOR","line":48,"character":11},"useExisting":{"__symbolic":"reference","name":"NgxPhoneMaskDirective"},"multi":true}]}]}],"members":{"clean":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":54,"character":2}}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":78,"character":3}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":78,"character":15},"arguments":[{"__symbolic":"reference","module":"@angular/forms","name":"COMPOSITION_BUFFER_MODE","line":78,"character":22}]}]],"parameters":[{"__symbolic":"reference","module":"@angular/core","name":"Renderer2","line":76,"character":21},{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":77,"character":23},{"__symbolic":"reference","name":"boolean"}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}],"onBlur":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":99,"character":2},"arguments":["blur"]}]}],"writeValue":[{"__symbolic":"method"}],"registerOnChange":[{"__symbolic":"method"}],"registerOnTouched":[{"__symbolic":"method"}],"setDisabledState":[{"__symbolic":"method"}],"_handleInput":[{"__symbolic":"method"}],"_setupMask":[{"__symbolic":"method"}],"_compositionStart":[{"__symbolic":"method"}],"_compositionEnd":[{"__symbolic":"method"}]}},"NgxPhoneMaskModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":4,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"angular2-text-mask","name":"TextMaskModule","line":5,"character":11}],"declarations":[{"__symbolic":"reference","name":"NgxPhoneMaskDirective"}],"exports":[{"__symbolic":"reference","name":"NgxPhoneMaskDirective"}]}]}],"members":{}}},"origins":{"TextMaskConfig":"./lib/ngx-phone-mask.directive","NgxPhoneMaskDirective":"./lib/ngx-phone-mask.directive","NgxPhoneMaskModule":"./lib/ngx-phone-mask.module"},"importAs":"ngx-phone-mask"} |
{ | ||
"name": "ngx-phone-mask", | ||
"version": "2.1.3", | ||
"license": "ISC", | ||
"scripts": { | ||
"ng": "ng", | ||
"start": "ng serve", | ||
"build": "ng-packagr -p ng-package.json", | ||
"test": "ng test", | ||
"lint": "ng lint", | ||
"e2e": "ng e2e" | ||
}, | ||
"repository": { | ||
"type": "git", | ||
"url": "https://github.com/Ledzz/ngx-phone-mask.git" | ||
}, | ||
"bugs": { | ||
"web": "https://github.com/Ledzz/ngx-phone-mask/issues" | ||
}, | ||
"keywords": [ | ||
"angular", | ||
"angular2", | ||
"angular4", | ||
"directive", | ||
"mask", | ||
"phone", | ||
"number", | ||
"ng-model", | ||
"form-control", | ||
"masking", | ||
"international" | ||
], | ||
"author": "Ledzz", | ||
"version": "3.0.0", | ||
"peerDependencies": { | ||
"@angular/common": ">=4.0.0", | ||
"@angular/compiler": ">=4.0.0", | ||
"@angular/core": ">=4.0.0", | ||
"@angular/forms": ">=4.0.0", | ||
"@angular/platform-browser": ">=4.0.0", | ||
"@angular/platform-browser-dynamic": ">=4.0.0", | ||
"core-js": "^2.4.1", | ||
"rxjs": "^5.1.0", | ||
"zone.js": "^0.8.4" | ||
"@angular/common": "^6.0.0-rc.0 || ^6.0.0", | ||
"@angular/core": "^6.0.0-rc.0 || ^6.0.0", | ||
"angular2-text-mask": "^9.0.0" | ||
}, | ||
"devDependencies": { | ||
"@angular/cli": "1.2.0", | ||
"@angular/compiler-cli": ">=4.0.0", | ||
"@types/node": "~6.0.60", | ||
"codelyzer": "~3.0.1", | ||
"ng-packagr": "^1.2.0", | ||
"ts-node": "~3.0.4", | ||
"tslint": "~5.3.2", | ||
"typescript": "~2.3.3" | ||
}, | ||
"main": "bundles/ngx-phone-mask.umd.js", | ||
"module": "ngx-phone-mask/ngx-phone-mask.es5.js", | ||
"es2015": "ngx-phone-mask/ngx-phone-mask.js", | ||
"typings": "ngx-phone-mask.d.ts" | ||
} | ||
"module": "fesm5/ngx-phone-mask.js", | ||
"es2015": "fesm2015/ngx-phone-mask.js", | ||
"esm5": "esm5/ngx-phone-mask.js", | ||
"esm2015": "esm2015/ngx-phone-mask.js", | ||
"fesm5": "fesm5/ngx-phone-mask.js", | ||
"fesm2015": "fesm2015/ngx-phone-mask.js", | ||
"typings": "ngx-phone-mask.d.ts", | ||
"metadata": "ngx-phone-mask.metadata.json", | ||
"sideEffects": false, | ||
"dependencies": { | ||
"tslib": "^1.9.0" | ||
} | ||
} |
@@ -1,1 +0,2 @@ | ||
export * from './src/app/ngx-phone-mask/ngx-phone-mask.module'; | ||
export * from './lib/ngx-phone-mask.directive'; | ||
export * from './lib/ngx-phone-mask.module'; |
@@ -1,10 +0,20 @@ | ||
# NgxPhoneMask | ||
# NgxPhoneMask ![pipeline status](https://gitlab.com/Ledzz/ngx-phone-mask/badges/master/pipeline.svg) | ||
Angular directive for autoformatting international phone numbers. | ||
Angular directive for autoformatting phone numbers. Compatible with Angular 7. | ||
Currently doesn't support phone numbers with lengths other than 11. (`+7 (987) 123-45-67`) | ||
[Demo](https://ngx-phone-mask.surge.sh/) | ||
## Usage | ||
This libs rely on text-mask, so you need to install it. | ||
Install via npm: | ||
```shell | ||
npm install ngx-phone-mask | ||
npm install ngx-phone-mask angular2-text-mask | ||
``` | ||
or yarn: | ||
```shell | ||
yarn add ngx-phone-mask angular2-text-mask | ||
``` | ||
@@ -32,4 +42,3 @@ Import in your `app.module.ts`: | ||
## Config | ||
You can set `valueType` to `'clean'`, `'raw'` or `'full'` to change output format. | ||
Default is `'clean'`. | ||
You can set `clean` to `false` if you want formatted value in model. | ||
```html | ||
@@ -43,8 +52,8 @@ <input ngxPhoneMask [(ngModel)]='yourModelName' valueType='full'> | ||
To publish: | ||
``` | ||
git commit | ||
npm version patch | ||
npm run build | ||
npm publish dist | ||
``` | ||
## Contributing | ||
Please feel free to leave your PRs, issues, feature requests. | ||
## Upcoming features | ||
- [ ] Support other phone lengths | ||
- [ ] Return country when recognized | ||
- [ ] Tests |
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
Minified code
QualityThis package contains minified code. This may be harmless in some cases where minified code is included in packaged libraries, however packages on npm should not minify code.
Found 1 instance in 1 package
No contributors or author data
MaintenancePackage does not specify a list of contributors or an author in package.json.
Found 1 instance in 1 package
No bug tracker
MaintenancePackage does not have a linked bug tracker in package.json.
Found 1 instance in 1 package
No License Found
License(Experimental) License information could not be found.
Found 1 instance in 1 package
No repository
Supply chain riskPackage does not have a linked source code repository. Without this field, a package will have no reference to the location of the source code use to generate the package.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
158717
4
0
23
1397
58
1
3
2
1
1
+ Addedtslib@^1.9.0
+ Added@angular/common@6.1.10(transitive)
+ Added@angular/core@6.1.10(transitive)
+ Addedangular2-text-mask@9.0.0(transitive)
+ Addedrxjs@6.6.7(transitive)
+ Addedtext-mask-core@5.1.2(transitive)
+ Addedtslib@1.14.1(transitive)
- Removed@angular/common@19.0.0(transitive)
- Removed@angular/compiler@19.0.0(transitive)
- Removed@angular/core@19.0.0(transitive)
- Removed@angular/forms@19.0.0(transitive)
- Removed@angular/platform-browser@19.0.0(transitive)
- Removed@angular/platform-browser-dynamic@19.0.0(transitive)
- Removedcore-js@2.6.12(transitive)
- Removedrxjs@5.5.127.8.1(transitive)
- Removedsymbol-observable@1.0.1(transitive)
- Removedtslib@2.8.1(transitive)
- Removedzone.js@0.15.0(transitive)