UNPKG

@justa/mask-directive

Version:

![](https://img.shields.io/bundlephobia/minzip/@justa/mask-directive.svg?style=flat-square) ![](https://img.shields.io/bundlephobia/min/@justa/mask-directive.svg?style=flat-square)

208 lines 14 kB
/** * @fileoverview added by tsickle * Generated from: lib/legal-document-mask.directive.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { Directive, ElementRef, HostListener, Renderer2 } from '@angular/core'; import { NgControl } from '@angular/forms'; import { formatCpf, formatCnpj } from './utils'; export class LegalDocumentMaskDirective { /** * @param {?} el * @param {?} renderer * @param {?} _control */ constructor(el, renderer, _control) { this.el = el; this.renderer = renderer; this._control = _control; this.onChange = (/** * @param {?} value * @return {?} */ (value) => { }); this.onTouched = (/** * @return {?} */ () => { }); } /** * @return {?} */ ngOnInit() { /** @type {?} */ const unformattedValue = this.el.nativeElement.value; if (unformattedValue && unformattedValue.length > 0) { /** @type {?} */ const value = this.returnValue(unformattedValue); this.writeValue(value); } } /** * @return {?} */ ngOnDestroy() { clearTimeout(this.writeTimeout); } /** * @return {?} */ get control() { return this._control.control; } /** * @param {?} event * @return {?} */ inputKeyup(event) { /** @type {?} */ const value = this.returnValue(event.target.value); this.writeValue(value); event.target.value = value; } /** * @deprecated This method for Ionic inputs will be deprecated in the next * minor version. * @param {?} event * @return {?} */ inputOnblur(event) { /** @type {?} */ const value = this.returnValue(event.value); this.writeValue(value); event.value = value; console.warn('This directive won\'t work more in Ionic into next minor version!'); } /** * @deprecated This method for Ionic inputs will be deprecated in the next * minor version. * @param {?} event * @return {?} */ inputFocus(event) { /** @type {?} */ const value = this.returnValue(event.value); this.writeValue(value); event.value = value; console.warn('This directive won\'t work more in Ionic into next minor version!'); } /** * @param {?} event * @return {?} */ focusInput(event) { /** @type {?} */ const value = this.returnValue(event.target.value); this.writeValue(value); event.target.value = value; } /** * @param {?} event * @return {?} */ blurInput(event) { /** @type {?} */ const value = this.returnValue(event.target.value); this.writeValue(value); event.target.value = value; } /** * @param {?} event * @return {?} */ ngModelChangeInput(event) { /** @type {?} */ const value = this.returnValue(event); this.writeValue(value); } /** * @param {?} value * @return {?} */ writeValue(value) { this.writeTimeout = setTimeout((/** * @return {?} */ () => { this.renderer.setProperty(this.el.nativeElement, 'value', value); }), 1); } /** * @param {?} fn * @return {?} */ registerOnChange(fn) { this.onChange = fn; } /** * @param {?} fn * @return {?} */ registerOnTouched(fn) { this.onChange = fn; } /** * @private * @param {?} value * @return {?} */ writeValuePerson(value) { if (value.length <= 11) { return formatCpf(value); } return formatCnpj(value); } /** * @private * @param {?} value * @return {?} */ returnValue(value) { /** @type {?} */ const newVal = value ? value.replace(/\D/gi, '') : ''; return this.writeValuePerson(newVal); } } LegalDocumentMaskDirective.decorators = [ { type: Directive, args: [{ selector: '[jstLegalDocumentMask]', },] } ]; /** @nocollapse */ LegalDocumentMaskDirective.ctorParameters = () => [ { type: ElementRef }, { type: Renderer2 }, { type: NgControl } ]; LegalDocumentMaskDirective.propDecorators = { inputKeyup: [{ type: HostListener, args: ['keyup', ['$event'],] }], inputOnblur: [{ type: HostListener, args: ['ionBlur', ['$event'],] }], inputFocus: [{ type: HostListener, args: ['ionFocus', ['$event'],] }], focusInput: [{ type: HostListener, args: ['focus', ['$event'],] }], blurInput: [{ type: HostListener, args: ['blur', ['$event'],] }], ngModelChangeInput: [{ type: HostListener, args: ['ngModelChange', ['$event'],] }] }; if (false) { /** @type {?} */ LegalDocumentMaskDirective.prototype.onChange; /** @type {?} */ LegalDocumentMaskDirective.prototype.onTouched; /** @type {?} */ LegalDocumentMaskDirective.prototype.writeTimeout; /** * @type {?} * @private */ LegalDocumentMaskDirective.prototype.el; /** * @type {?} * @private */ LegalDocumentMaskDirective.prototype.renderer; /** * @type {?} * @private */ LegalDocumentMaskDirective.prototype._control; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGVnYWwtZG9jdW1lbnQtbWFzay5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AanVzdGEvbWFzay1kaXJlY3RpdmUvIiwic291cmNlcyI6WyJsaWIvbGVnYWwtZG9jdW1lbnQtbWFzay5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUNsRyxPQUFPLEVBQXdCLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBS2hELE1BQU0sT0FBTywwQkFBMEI7Ozs7OztJQU1yQyxZQUNVLEVBQWMsRUFDZCxRQUFtQixFQUNuQixRQUFtQjtRQUZuQixPQUFFLEdBQUYsRUFBRSxDQUFZO1FBQ2QsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixhQUFRLEdBQVIsUUFBUSxDQUFXO1FBUjdCLGFBQVE7Ozs7UUFBRyxDQUFDLEtBQVUsRUFBRSxFQUFFLEdBQUUsQ0FBQyxFQUFDO1FBQzlCLGNBQVM7OztRQUFHLEdBQUcsRUFBRSxHQUFFLENBQUMsRUFBQztJQVFoQixDQUFDOzs7O0lBRU4sUUFBUTs7Y0FDQSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxLQUFLO1FBQ3BELElBQUcsZ0JBQWdCLElBQUksZ0JBQWdCLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTs7a0JBQzVDLEtBQUssR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLGdCQUFnQixDQUFDO1lBQ2hELElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDeEI7SUFDSCxDQUFDOzs7O0lBRUQsV0FBVztRQUNULFlBQVksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDbEMsQ0FBQzs7OztJQUVELElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUM7SUFDL0IsQ0FBQzs7Ozs7SUFHRCxVQUFVLENBQUMsS0FBVTs7Y0FDYixLQUFLLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUNsRCxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZCLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUM3QixDQUFDOzs7Ozs7O0lBT0QsV0FBVyxDQUFDLEtBQVU7O2NBQ2QsS0FBSyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQztRQUMzQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZCLEtBQUssQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLE9BQU8sQ0FBQyxJQUFJLENBQUMsbUVBQW1FLENBQUMsQ0FBQztJQUNwRixDQUFDOzs7Ozs7O0lBT0QsVUFBVSxDQUFDLEtBQVU7O2NBQ2IsS0FBSyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQztRQUMzQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZCLEtBQUssQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLE9BQU8sQ0FBQyxJQUFJLENBQUMsbUVBQW1FLENBQUMsQ0FBQztJQUNwRixDQUFDOzs7OztJQUdELFVBQVUsQ0FBQyxLQUFVOztjQUNiLEtBQUssR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO1FBQ2xELElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkIsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQzdCLENBQUM7Ozs7O0lBR0QsU0FBUyxDQUFDLEtBQVU7O2NBQ1osS0FBSyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFDbEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2QixLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDN0IsQ0FBQzs7Ozs7SUFHRCxrQkFBa0IsQ0FBQyxLQUFVOztjQUNyQixLQUFLLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUM7UUFDckMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN6QixDQUFDOzs7OztJQUdELFVBQVUsQ0FBQyxLQUFVO1FBQ25CLElBQUksQ0FBQyxZQUFZLEdBQUcsVUFBVTs7O1FBQUMsR0FBRyxFQUFFO1lBQ2xDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNuRSxDQUFDLEdBQUUsQ0FBQyxDQUFDLENBQUM7SUFDUixDQUFDOzs7OztJQUVELGdCQUFnQixDQUFDLEVBQU87UUFDdEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7SUFDckIsQ0FBQzs7Ozs7SUFFRCxpQkFBaUIsQ0FBQyxFQUFPO1FBQ3ZCLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7Ozs7OztJQUVPLGdCQUFnQixDQUFDLEtBQWE7UUFDcEMsSUFBSSxLQUFLLENBQUMsTUFBTSxJQUFJLEVBQUUsRUFBRTtZQUN0QixPQUFPLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUN6QjtRQUNELE9BQU8sVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNCLENBQUM7Ozs7OztJQUVPLFdBQVcsQ0FBQyxLQUFhOztjQUN6QixNQUFNLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtRQUNyRCxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN2QyxDQUFDOzs7WUEzR0YsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSx3QkFBd0I7YUFDbkM7Ozs7WUFObUIsVUFBVTtZQUFnQixTQUFTO1lBQ3hCLFNBQVM7Ozt5QkFrQ3JDLFlBQVksU0FBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUM7MEJBV2hDLFlBQVksU0FBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUM7eUJBWWxDLFlBQVksU0FBQyxVQUFVLEVBQUUsQ0FBQyxRQUFRLENBQUM7eUJBUW5DLFlBQVksU0FBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUM7d0JBT2hDLFlBQVksU0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUM7aUNBTy9CLFlBQVksU0FBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUM7Ozs7SUF4RXpDLDhDQUE4Qjs7SUFDOUIsK0NBQXFCOztJQUVyQixrREFBa0I7Ozs7O0lBR2hCLHdDQUFzQjs7Ozs7SUFDdEIsOENBQTJCOzs7OztJQUMzQiw4Q0FBMkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgUmVuZGVyZXIyLCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5nQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGZvcm1hdENwZiwgZm9ybWF0Q25waiB9IGZyb20gJy4vdXRpbHMnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbanN0TGVnYWxEb2N1bWVudE1hc2tdJyxcbn0pXG5leHBvcnQgY2xhc3MgTGVnYWxEb2N1bWVudE1hc2tEaXJlY3RpdmUgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25EZXN0cm95LCBPbkluaXQge1xuICBvbkNoYW5nZSA9ICh2YWx1ZTogYW55KSA9PiB7fTtcbiAgb25Ub3VjaGVkID0gKCkgPT4ge307XG5cbiAgd3JpdGVUaW1lb3V0OiBhbnk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBlbDogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgcHJpdmF0ZSBfY29udHJvbDogTmdDb250cm9sLFxuICAgICkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBjb25zdCB1bmZvcm1hdHRlZFZhbHVlID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50LnZhbHVlO1xuICAgIGlmKHVuZm9ybWF0dGVkVmFsdWUgJiYgdW5mb3JtYXR0ZWRWYWx1ZS5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCB2YWx1ZSA9IHRoaXMucmV0dXJuVmFsdWUodW5mb3JtYXR0ZWRWYWx1ZSk7XG4gICAgICB0aGlzLndyaXRlVmFsdWUodmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIGNsZWFyVGltZW91dCh0aGlzLndyaXRlVGltZW91dCk7XG4gIH1cblxuICBnZXQgY29udHJvbCgpIHtcbiAgICByZXR1cm4gdGhpcy5fY29udHJvbC5jb250cm9sO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcigna2V5dXAnLCBbJyRldmVudCddKVxuICBpbnB1dEtleXVwKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMucmV0dXJuVmFsdWUoZXZlbnQudGFyZ2V0LnZhbHVlKTtcbiAgICB0aGlzLndyaXRlVmFsdWUodmFsdWUpO1xuICAgIGV2ZW50LnRhcmdldC52YWx1ZSA9IHZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIFRoaXMgbWV0aG9kIGZvciBJb25pYyBpbnB1dHMgd2lsbCBiZSBkZXByZWNhdGVkIGluIHRoZSBuZXh0XG4gICAqIG1pbm9yIHZlcnNpb24uXG4gICAqL1xuICBASG9zdExpc3RlbmVyKCdpb25CbHVyJywgWyckZXZlbnQnXSlcbiAgaW5wdXRPbmJsdXIoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIGNvbnN0IHZhbHVlID0gdGhpcy5yZXR1cm5WYWx1ZShldmVudC52YWx1ZSk7XG4gICAgdGhpcy53cml0ZVZhbHVlKHZhbHVlKTtcbiAgICBldmVudC52YWx1ZSA9IHZhbHVlO1xuICAgIGNvbnNvbGUud2FybignVGhpcyBkaXJlY3RpdmUgd29uXFwndCB3b3JrIG1vcmUgaW4gSW9uaWMgaW50byBuZXh0IG1pbm9yIHZlcnNpb24hJyk7XG4gIH1cblxuICAgIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBUaGlzIG1ldGhvZCBmb3IgSW9uaWMgaW5wdXRzIHdpbGwgYmUgZGVwcmVjYXRlZCBpbiB0aGUgbmV4dFxuICAgKiBtaW5vciB2ZXJzaW9uLlxuICAgKi9cbiAgQEhvc3RMaXN0ZW5lcignaW9uRm9jdXMnLCBbJyRldmVudCddKVxuICBpbnB1dEZvY3VzKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMucmV0dXJuVmFsdWUoZXZlbnQudmFsdWUpO1xuICAgIHRoaXMud3JpdGVWYWx1ZSh2YWx1ZSk7XG4gICAgZXZlbnQudmFsdWUgPSB2YWx1ZTtcbiAgICBjb25zb2xlLndhcm4oJ1RoaXMgZGlyZWN0aXZlIHdvblxcJ3Qgd29yayBtb3JlIGluIElvbmljIGludG8gbmV4dCBtaW5vciB2ZXJzaW9uIScpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZm9jdXMnLCBbJyRldmVudCddKVxuICBmb2N1c0lucHV0KGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMucmV0dXJuVmFsdWUoZXZlbnQudGFyZ2V0LnZhbHVlKTtcbiAgICB0aGlzLndyaXRlVmFsdWUodmFsdWUpO1xuICAgIGV2ZW50LnRhcmdldC52YWx1ZSA9IHZhbHVlO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignYmx1cicsIFsnJGV2ZW50J10pXG4gIGJsdXJJbnB1dChldmVudDogYW55KTogdm9pZCB7XG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLnJldHVyblZhbHVlKGV2ZW50LnRhcmdldC52YWx1ZSk7XG4gICAgdGhpcy53cml0ZVZhbHVlKHZhbHVlKTtcbiAgICBldmVudC50YXJnZXQudmFsdWUgPSB2YWx1ZTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ25nTW9kZWxDaGFuZ2UnLCBbJyRldmVudCddKVxuICBuZ01vZGVsQ2hhbmdlSW5wdXQoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIGNvbnN0IHZhbHVlID0gdGhpcy5yZXR1cm5WYWx1ZShldmVudCk7XG4gICAgdGhpcy53cml0ZVZhbHVlKHZhbHVlKTtcbiAgfVxuXG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgdGhpcy53cml0ZVRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0UHJvcGVydHkodGhpcy5lbC5uYXRpdmVFbGVtZW50LCAndmFsdWUnLCB2YWx1ZSk7XG4gICAgfSwgMSk7XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcHJpdmF0ZSB3cml0ZVZhbHVlUGVyc29uKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmICh2YWx1ZS5sZW5ndGggPD0gMTEpIHtcbiAgICAgIHJldHVybiBmb3JtYXRDcGYodmFsdWUpO1xuICAgIH1cbiAgICByZXR1cm4gZm9ybWF0Q25waih2YWx1ZSk7XG4gIH1cblxuICBwcml2YXRlIHJldHVyblZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICBjb25zdCBuZXdWYWwgPSB2YWx1ZSA/IHZhbHVlLnJlcGxhY2UoL1xcRC9naSwgJycpIDogJyc7XG4gICAgcmV0dXJuIHRoaXMud3JpdGVWYWx1ZVBlcnNvbihuZXdWYWwpO1xuICB9XG59XG4iXX0=