@justa/mask-directive
Version:
 
208 lines • 14 kB
JavaScript
/**
* @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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGVnYWwtZG9jdW1lbnQtbWFzay5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AanVzdGEvbWFzay1kaXJlY3RpdmUvIiwic291cmNlcyI6WyJsaWIvbGVnYWwtZG9jdW1lbnQtbWFzay5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUNsRyxPQUFPLEVBQXdCLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBS2hELE1BQU0sT0FBTywwQkFBMEI7Ozs7OztJQU1yQyxZQUNVLEVBQWMsRUFDZCxRQUFtQixFQUNuQixRQUFtQjtRQUZuQixPQUFFLEdBQUYsRUFBRSxDQUFZO1FBQ2QsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixhQUFRLEdBQVIsUUFBUSxDQUFXO1FBUjdCLGFBQVE7Ozs7UUFBRyxDQUFDLEtBQVUsRUFBRSxFQUFFLEdBQUUsQ0FBQyxFQUFDO1FBQzlCLGNBQVM7OztRQUFHLEdBQUcsRUFBRSxHQUFFLENBQUMsRUFBQztJQVFoQixDQUFDOzs7O0lBRU4sUUFBUTs7Y0FDQSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxLQUFLO1FBQ3BELElBQUcsZ0JBQWdCLElBQUksZ0JBQWdCLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTs7a0JBQzVDLEtBQUssR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLGdCQUFnQixDQUFDO1lBQ2hELElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDeEI7SUFDSCxDQUFDOzs7O0lBRUQsV0FBVztRQUNULFlBQVksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDbEMsQ0FBQzs7OztJQUVELElBQUks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QUNyRCxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN2QyxDQUFDOzs7WUEzR0YsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSx3QkFBd0I7YUFDbkM7Ozs7WUFObUIsVUFBVTtZQUFnQixTQUFTO1lBQ3hCLFNBQVM7Ozt5QkFrQ3JDLFlBQVksU0FBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUM7MEJBV2hDLFlBQVksU0FBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUM7eUJBWWxDLFlBQVksU0FBQyxVQUFVLEVBQUUsQ0FBQyxRQUFRLENBQUM7eUJBUW5DLFlBQVksU0FBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUM7d0JBT2hDLFlBQVksU0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUM7aUNBTy9CLFlBQVksU0FBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUM7Ozs7SUF4RXpDLDhDQUE4Qjs7SUFDOUIsK0NBQXFCOztJQUVyQixrREFBa0I7Ozs7O0lBR2hCLHdDQUFzQjs7Ozs7SUFDdEIsOENBQTJCOzs7OztJQUMzQiw4Q0FBMkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgUmVuZGVyZXIyLCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5nQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGZvcm1hdENwZiwgZm9ybWF0Q25waiB9IGZyb20gJy4vdXRpbHMnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbanN0TGVnYWxEb2N1bWVudE1hc2tdJyxcbn0pXG5leHBvcnQgY2xhc3MgTGVnYWxEb2N1bWVudE1hc2tEaXJlY3RpdmUgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25EZXN0cm95LCBPbkluaXQge1xuICBvbkNoYW5nZSA9ICh2YWx1ZTogYW55KSA9PiB7fTtcbiAgb25Ub3VjaGVkID0gKCkgPT4ge307XG5cbiAgd3JpdGVUaW1lb3V0OiBhbnk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBlbDogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgcHJpdmF0ZSBfY29udHJvbDogTmdDb250cm9sLFxuICAgICkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBjb25zdCB1bmZvcm1hdHRlZFZhbHVlID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50LnZhbHVlO1xuICAgIGlmKHVuZm9ybWF0dGVkVmFsdWUgJiYgdW5mb3JtYXR0ZWRWYWx1ZS5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCB2YWx1ZSA9IHRoaXMucmV0dXJuVmFsdWUodW5mb3JtYXR0ZWRWYWx1ZSk7XG4gICAgICB0aGlzLndyaXRlVmFsdWUodmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIGNsZWFyVGltZW91dCh0aGlzLndyaXRlVGltZW91dCk7XG4gIH1cblxuICBnZXQgY29udHJvbCgpIHtcbiAgICByZXR1cm4gdGhpcy5fY29udHJvbC5jb250cm9sO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcigna2V5dXAnLCBbJyRldmVudCddKVxuICBpbnB1dEtleXVwKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMucmV0dXJuVmFsdWUoZXZlbnQudGFyZ2V0LnZhbHVlKTtcbiAgICB0aGlzLndyaXRlVmFsdWUodmFsdWUpO1xuICAgIGV2ZW50LnRhcmdldC52YWx1ZSA9IHZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIFRoaXMgbWV0aG9kIGZvciBJb25pYyBpbnB1dHMgd2lsbCBiZSBkZXByZWNhdGVkIGluIHRoZSBuZXh0XG4gICAqIG1pbm9yIHZlcnNpb24uXG4gICAqL1xuICBASG9zdExpc3RlbmVyKCdpb25CbHVyJywgWyckZXZlbnQnXSlcbiAgaW5wdXRPbmJsdXIoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIGNvbnN0IHZhbHVlID0gdGhpcy5yZXR1cm5WYWx1ZShldmVudC52YWx1ZSk7XG4gICAgdGhpcy53cml0ZVZhbHVlKHZhbHVlKTtcbiAgICBldmVudC52YWx1ZSA9IHZhbHVlO1xuICAgIGNvbnNvbGUud2FybignVGhpcyBkaXJlY3RpdmUgd29uXFwndCB3b3JrIG1vcmUgaW4gSW9uaWMgaW50byBuZXh0IG1pbm9yIHZlcnNpb24hJyk7XG4gIH1cblxuICAgIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBUaGlzIG1ldGhvZCBmb3IgSW9uaWMgaW5wdXRzIHdpbGwgYmUgZGVwcmVjYXRlZCBpbiB0aGUgbmV4dFxuICAgKiBtaW5vciB2ZXJzaW9uLlxuICAgKi9cbiAgQEhvc3RMaXN0ZW5lcignaW9uRm9jdXMnLCBbJyRldmVudCddKVxuICBpbnB1dEZvY3VzKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMucmV0dXJuVmFsdWUoZXZlbnQudmFsdWUpO1xuICAgIHRoaXMud3JpdGVWYWx1ZSh2YWx1ZSk7XG4gICAgZXZlbnQudmFsdWUgPSB2YWx1ZTtcbiAgICBjb25zb2xlLndhcm4oJ1RoaXMgZGlyZWN0aXZlIHdvblxcJ3Qgd29yayBtb3JlIGluIElvbmljIGludG8gbmV4dCBtaW5vciB2ZXJzaW9uIScpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZm9jdXMnLCBbJyRldmVudCddKVxuICBmb2N1c0lucHV0KGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMucmV0dXJuVmFsdWUoZXZlbnQudGFyZ2V0LnZhbHVlKTtcbiAgICB0aGlzLndyaXRlVmFsdWUodmFsdWUpO1xuICAgIGV2ZW50LnRhcmdldC52YWx1ZSA9IHZhbHVlO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignYmx1cicsIFsnJGV2ZW50J10pXG4gIGJsdXJJbnB1dChldmVudDogYW55KTogdm9pZCB7XG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLnJldHVyblZhbHVlKGV2ZW50LnRhcmdldC52YWx1ZSk7XG4gICAgdGhpcy53cml0ZVZhbHVlKHZhbHVlKTtcbiAgICBldmVudC50YXJnZXQudmFsdWUgPSB2YWx1ZTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ25nTW9kZWxDaGFuZ2UnLCBbJyRldmVudCddKVxuICBuZ01vZGVsQ2hhbmdlSW5wdXQoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIGNvbnN0IHZhbHVlID0gdGhpcy5yZXR1cm5WYWx1ZShldmVudCk7XG4gICAgdGhpcy53cml0ZVZhbHVlKHZhbHVlKTtcbiAgfVxuXG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgdGhpcy53cml0ZVRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0UHJvcGVydHkodGhpcy5lbC5uYXRpdmVFbGVtZW50LCAndmFsdWUnLCB2YWx1ZSk7XG4gICAgfSwgMSk7XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcHJpdmF0ZSB3cml0ZVZhbHVlUGVyc29uKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmICh2YWx1ZS5sZW5ndGggPD0gMTEpIHtcbiAgICAgIHJldHVybiBmb3JtYXRDcGYodmFsdWUpO1xuICAgIH1cbiAgICByZXR1cm4gZm9ybWF0Q25waih2YWx1ZSk7XG4gIH1cblxuICBwcml2YXRlIHJldHVyblZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICBjb25zdCBuZXdWYWwgPSB2YWx1ZSA/IHZhbHVlLnJlcGxhY2UoL1xcRC9naSwgJycpIDogJyc7XG4gICAgcmV0dXJuIHRoaXMud3JpdGVWYWx1ZVBlcnNvbihuZXdWYWwpO1xuICB9XG59XG4iXX0=