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)

188 lines 11.8 kB
/** * @fileoverview added by tsickle * Generated from: lib/money-mask.directive.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { Directive, Input, ElementRef, HostListener } from '@angular/core'; import InputMask from 'inputmask'; /** * @deprecated Use `jstCurrencyMask` instead. */ var MoneyMaskDirective = /** @class */ (function () { function MoneyMaskDirective(elementRef) { this.elementRef = elementRef; // Ref to the element in the DOM this.hasDecimal = false; // Input to set decimals to inputmask obj // Input to set decimals to inputmask obj this.hasPrefix = false; // Prefix to insert to the inputmask obj // Prefix to insert to the inputmask obj this.prefixSymbol = 'R$ '; // prefix symbol to the inputmask // prefix symbol to the inputmask this.imObject = { alias: 'currency', autoGroup: true, groupSeparator: '.', radixPoint: ',', rightAlign: false, prefix: 'R$ ', }; // Attach the local variable to the element in the DOM this.el = this.elementRef.nativeElement; } /** * @return {?} */ MoneyMaskDirective.prototype.ngOnInit = /** * @return {?} */ function () { // verify if has prefix. Eg.: R$ if (this.hasPrefix && this.prefixSymbol) { this.imObject['prefix'] = this.prefixSymbol; } // Verify if has decimal numbers if (this.hasDecimal) { this.imObject['numericInput'] = true; } this.im = new InputMask(this.imObject); this.im.mask(this.el); }; /** * @param {?} event * @return {?} */ MoneyMaskDirective.prototype.onKeyPress = /** * @param {?} event * @return {?} */ function (event) { console.log(event); if (!this.restrictNumeric(event)) { event.preventDefault; } }; /** * @param {?} e * @return {?} */ MoneyMaskDirective.prototype.onPaste = /** * @param {?} e * @return {?} */ function (e) { this.onInputChange(e); }; /** * @param {?} e * @return {?} */ MoneyMaskDirective.prototype.onChange = /** * @param {?} e * @return {?} */ function (e) { this.onInputChange(e); }; /** * @param {?} e * @return {?} */ MoneyMaskDirective.prototype.onInput = /** * @param {?} e * @return {?} */ function (e) { this.onInputChange(e); }; /** * @param {?} event * @return {?} */ MoneyMaskDirective.prototype.onInputChange = /** * @param {?} event * @return {?} */ function (event) { /** @type {?} */ var eventValue = event; /** @type {?} */ var newVal = typeof event === 'string' && (eventValue.includes('R$') || eventValue.includes('.')) ? eventValue.replace(/\D/gi, '') : eventValue; }; /** * @param {?} e * @return {?} */ MoneyMaskDirective.prototype.restrictNumeric = /** * @param {?} e * @return {?} */ function (e) { /** @type {?} */ var input; if (e.metaKey || e.ctrlKey) { return true; } if (e.which === 32) { return false; } if (e.which === 0) { return true; } if (e.which < 33) { return true; } input = String.fromCharCode(e.which); return !!/[\d\s]/.test(input); }; MoneyMaskDirective.decorators = [ { type: Directive, args: [{ selector: '[jstMoneyMask]', },] } ]; /** @nocollapse */ MoneyMaskDirective.ctorParameters = function () { return [ { type: ElementRef } ]; }; MoneyMaskDirective.propDecorators = { hasDecimal: [{ type: Input }], hasPrefix: [{ type: Input }], prefixSymbol: [{ type: Input }], onKeyPress: [{ type: HostListener, args: ['keypress', ['$event'],] }], onPaste: [{ type: HostListener, args: ['paste', ['$event'],] }], onChange: [{ type: HostListener, args: ['change', ['$event'],] }], onInput: [{ type: HostListener, args: ['input', ['$event'],] }] }; return MoneyMaskDirective; }()); export { MoneyMaskDirective }; if (false) { /** * @type {?} * @private */ MoneyMaskDirective.prototype.im; /** * @type {?} * @private */ MoneyMaskDirective.prototype.el; /** @type {?} */ MoneyMaskDirective.prototype.hasDecimal; /** @type {?} */ MoneyMaskDirective.prototype.hasPrefix; /** @type {?} */ MoneyMaskDirective.prototype.prefixSymbol; /** * @type {?} * @private */ MoneyMaskDirective.prototype.imObject; /** * @type {?} * @private */ MoneyMaskDirective.prototype.elementRef; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9uZXktbWFzay5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AanVzdGEvbWFzay1kaXJlY3RpdmUvIiwic291cmNlcyI6WyJsaWIvbW9uZXktbWFzay5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxVQUFVLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25GLE9BQU8sU0FBUyxNQUFNLFdBQVcsQ0FBQzs7OztBQUtsQztJQW1CRSw0QkFBb0IsVUFBc0I7UUFBdEIsZUFBVSxHQUFWLFVBQVUsQ0FBWTs7UUFiakMsZUFBVSxHQUFZLEtBQUssQ0FBQyxDQUFDLHlDQUF5Qzs7UUFDdEUsY0FBUyxHQUFZLEtBQUssQ0FBQyxDQUFDLHdDQUF3Qzs7UUFDcEUsaUJBQVksR0FBVyxLQUFLLENBQUMsQ0FBQyxpQ0FBaUM7O1FBRWhFLGFBQVEsR0FBRztZQUNqQixLQUFLLEVBQUUsVUFBVTtZQUNqQixTQUFTLEVBQUUsSUFBSTtZQUNmLGNBQWMsRUFBRSxHQUFHO1lBQ25CLFVBQVUsRUFBRSxHQUFHO1lBQ2YsVUFBVSxFQUFFLEtBQUs7WUFDakIsTUFBTSxFQUFFLEtBQUs7U0FDZCxDQUFDO1FBR0Esc0RBQXNEO1FBQ3RELElBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUM7SUFDMUMsQ0FBQzs7OztJQUVELHFDQUFROzs7SUFBUjtRQUNFLGdDQUFnQztRQUNoQyxJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtZQUN2QyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7U0FDN0M7UUFDRCxnQ0FBZ0M7UUFDaEMsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ25CLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLEdBQUcsSUFBSSxDQUFDO1NBQ3RDO1FBQ0QsSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDdkMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3hCLENBQUM7Ozs7O0lBR0QsdUNBQVU7Ozs7SUFEVixVQUNXLEtBQUs7UUFDZCxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ25CLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ2hDLEtBQUssQ0FBQyxjQUFjLENBQUM7U0FDdEI7SUFDSCxDQUFDOzs7OztJQUVrQyxvQ0FBTzs7OztJQUExQyxVQUEyQyxDQUFDO1FBQzFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDeEIsQ0FBQzs7Ozs7SUFDbUMscUNBQVE7Ozs7SUFBNUMsVUFBNkMsQ0FBQztRQUM1QyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3hCLENBQUM7Ozs7O0lBQ2tDLG9DQUFPOzs7O0lBQTFDLFVBQTJDLENBQUM7UUFDMUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN4QixDQUFDOzs7OztJQUVELDBDQUFhOzs7O0lBQWIsVUFBYyxLQUFVOztZQUNoQixVQUFVLEdBQUcsS0FBSzs7WUFDbEIsTUFBTSxHQUNWLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksVUFBVSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNsRixDQUFDLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDO1lBQ2hDLENBQUMsQ0FBQyxVQUFVO0lBQ2xCLENBQUM7Ozs7O0lBRUQsNENBQWU7Ozs7SUFBZixVQUFnQixDQUFDOztZQUNYLEtBQUs7UUFDVCxJQUFJLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxDQUFDLE9BQU8sRUFBRTtZQUMxQixPQUFPLElBQUksQ0FBQztTQUNiO1FBQ0QsSUFBSSxDQUFDLENBQUMsS0FBSyxLQUFLLEVBQUUsRUFBRTtZQUNsQixPQUFPLEtBQUssQ0FBQztTQUNkO1FBQ0QsSUFBSSxDQUFDLENBQUMsS0FBSyxLQUFLLENBQUMsRUFBRTtZQUNqQixPQUFPLElBQUksQ0FBQztTQUNiO1FBQ0QsSUFBSSxDQUFDLENBQUMsS0FBSyxHQUFHLEVBQUUsRUFBRTtZQUNoQixPQUFPLElBQUksQ0FBQztTQUNiO1FBQ0QsS0FBSyxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JDLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDaEMsQ0FBQzs7Z0JBL0VGLFNBQVMsU0FBQztvQkFDVCxRQUFRLEVBQUUsZ0JBQWdCO2lCQUMzQjs7OztnQkFSa0MsVUFBVTs7OzZCQVkxQyxLQUFLOzRCQUNMLEtBQUs7K0JBQ0wsS0FBSzs2QkE2QkwsWUFBWSxTQUFDLFVBQVUsRUFBRSxDQUFDLFFBQVEsQ0FBQzswQkFRbkMsWUFBWSxTQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQzsyQkFHaEMsWUFBWSxTQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQzswQkFHakMsWUFBWSxTQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQzs7SUE2Qm5DLHlCQUFDO0NBQUEsQUFoRkQsSUFnRkM7U0E3RVksa0JBQWtCOzs7Ozs7SUFDN0IsZ0NBQWdCOzs7OztJQUNoQixnQ0FBNkI7O0lBQzdCLHdDQUFxQzs7SUFDckMsdUNBQW9DOztJQUNwQywwQ0FBc0M7Ozs7O0lBRXRDLHNDQU9FOzs7OztJQUVVLHdDQUE4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQsIE9uSW5pdCwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgSW5wdXRNYXNrIGZyb20gJ2lucHV0bWFzayc7XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGBqc3RDdXJyZW5jeU1hc2tgIGluc3RlYWQuXG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tqc3RNb25leU1hc2tdJyxcbn0pXG5leHBvcnQgY2xhc3MgTW9uZXlNYXNrRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0IHtcbiAgcHJpdmF0ZSBpbTogYW55OyAvLyBJbnB1dG1hc2sgcmVmXG4gIHByaXZhdGUgZWw6IEhUTUxJbnB1dEVsZW1lbnQ7IC8vIFJlZiB0byB0aGUgZWxlbWVudCBpbiB0aGUgRE9NXG4gIEBJbnB1dCgpIGhhc0RlY2ltYWw6IGJvb2xlYW4gPSBmYWxzZTsgLy8gSW5wdXQgdG8gc2V0IGRlY2ltYWxzIHRvIGlucHV0bWFzayBvYmpcbiAgQElucHV0KCkgaGFzUHJlZml4OiBib29sZWFuID0gZmFsc2U7IC8vIFByZWZpeCB0byBpbnNlcnQgdG8gdGhlIGlucHV0bWFzayBvYmpcbiAgQElucHV0KCkgcHJlZml4U3ltYm9sOiBzdHJpbmcgPSAnUiQgJzsgLy8gcHJlZml4IHN5bWJvbCB0byB0aGUgaW5wdXRtYXNrXG5cbiAgcHJpdmF0ZSBpbU9iamVjdCA9IHtcbiAgICBhbGlhczogJ2N1cnJlbmN5JyxcbiAgICBhdXRvR3JvdXA6IHRydWUsXG4gICAgZ3JvdXBTZXBhcmF0b3I6ICcuJyxcbiAgICByYWRpeFBvaW50OiAnLCcsXG4gICAgcmlnaHRBbGlnbjogZmFsc2UsXG4gICAgcHJlZml4OiAnUiQgJyxcbiAgfTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHtcbiAgICAvLyBBdHRhY2ggdGhlIGxvY2FsIHZhcmlhYmxlIHRvIHRoZSBlbGVtZW50IGluIHRoZSBET01cbiAgICB0aGlzLmVsID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICAvLyB2ZXJpZnkgaWYgaGFzIHByZWZpeC4gRWcuOiBSJFxuICAgIGlmICh0aGlzLmhhc1ByZWZpeCAmJiB0aGlzLnByZWZpeFN5bWJvbCkge1xuICAgICAgdGhpcy5pbU9iamVjdFsncHJlZml4J10gPSB0aGlzLnByZWZpeFN5bWJvbDtcbiAgICB9XG4gICAgLy8gVmVyaWZ5IGlmIGhhcyBkZWNpbWFsIG51bWJlcnNcbiAgICBpZiAodGhpcy5oYXNEZWNpbWFsKSB7XG4gICAgICB0aGlzLmltT2JqZWN0WydudW1lcmljSW5wdXQnXSA9IHRydWU7XG4gICAgfVxuICAgIHRoaXMuaW0gPSBuZXcgSW5wdXRNYXNrKHRoaXMuaW1PYmplY3QpO1xuICAgIHRoaXMuaW0ubWFzayh0aGlzLmVsKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2tleXByZXNzJywgWyckZXZlbnQnXSlcbiAgb25LZXlQcmVzcyhldmVudCkge1xuICAgIGNvbnNvbGUubG9nKGV2ZW50KTtcbiAgICBpZiAoIXRoaXMucmVzdHJpY3ROdW1lcmljKGV2ZW50KSkge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQ7XG4gICAgfVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcigncGFzdGUnLCBbJyRldmVudCddKSBvblBhc3RlKGUpIHtcbiAgICB0aGlzLm9uSW5wdXRDaGFuZ2UoZSk7XG4gIH1cbiAgQEhvc3RMaXN0ZW5lcignY2hhbmdlJywgWyckZXZlbnQnXSkgb25DaGFuZ2UoZSkge1xuICAgIHRoaXMub25JbnB1dENoYW5nZShlKTtcbiAgfVxuICBASG9zdExpc3RlbmVyKCdpbnB1dCcsIFsnJGV2ZW50J10pIG9uSW5wdXQoZSkge1xuICAgIHRoaXMub25JbnB1dENoYW5nZShlKTtcbiAgfVxuXG4gIG9uSW5wdXRDaGFuZ2UoZXZlbnQ6IGFueSkge1xuICAgIGNvbnN0IGV2ZW50VmFsdWUgPSBldmVudDtcbiAgICBjb25zdCBuZXdWYWwgPVxuICAgICAgdHlwZW9mIGV2ZW50ID09PSAnc3RyaW5nJyAmJiAoZXZlbnRWYWx1ZS5pbmNsdWRlcygnUiQnKSB8fCBldmVudFZhbHVlLmluY2x1ZGVzKCcuJykpXG4gICAgICAgID8gZXZlbnRWYWx1ZS5yZXBsYWNlKC9cXEQvZ2ksICcnKVxuICAgICAgICA6IGV2ZW50VmFsdWU7XG4gIH1cblxuICByZXN0cmljdE51bWVyaWMoZSk6IGJvb2xlYW4ge1xuICAgIGxldCBpbnB1dDtcbiAgICBpZiAoZS5tZXRhS2V5IHx8IGUuY3RybEtleSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGlmIChlLndoaWNoID09PSAzMikge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpZiAoZS53aGljaCA9PT0gMCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGlmIChlLndoaWNoIDwgMzMpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBpbnB1dCA9IFN0cmluZy5mcm9tQ2hhckNvZGUoZS53aGljaCk7XG4gICAgcmV0dXJuICEhL1tcXGRcXHNdLy50ZXN0KGlucHV0KTtcbiAgfVxufVxuIl19