@justa/mask-directive
Version:
 
162 lines • 10.9 kB
JavaScript
/**
* @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.
*/
export class MoneyMaskDirective {
/**
* @param {?} elementRef
*/
constructor(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 {?}
*/
ngOnInit() {
// 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 {?}
*/
onKeyPress(event) {
console.log(event);
if (!this.restrictNumeric(event)) {
event.preventDefault;
}
}
/**
* @param {?} e
* @return {?}
*/
onPaste(e) {
this.onInputChange(e);
}
/**
* @param {?} e
* @return {?}
*/
onChange(e) {
this.onInputChange(e);
}
/**
* @param {?} e
* @return {?}
*/
onInput(e) {
this.onInputChange(e);
}
/**
* @param {?} event
* @return {?}
*/
onInputChange(event) {
/** @type {?} */
const eventValue = event;
/** @type {?} */
const newVal = typeof event === 'string' && (eventValue.includes('R$') || eventValue.includes('.'))
? eventValue.replace(/\D/gi, '')
: eventValue;
}
/**
* @param {?} e
* @return {?}
*/
restrictNumeric(e) {
/** @type {?} */
let 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 = () => [
{ 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'],] }]
};
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9uZXktbWFzay5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AanVzdGEvbWFzay1kaXJlY3RpdmUvIiwic291cmNlcyI6WyJsaWIvbW9uZXktbWFzay5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxVQUFVLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25GLE9BQU8sU0FBUyxNQUFNLFdBQVcsQ0FBQzs7OztBQVFsQyxNQUFNLE9BQU8sa0JBQWtCOzs7O0lBZ0I3QixZQUFvQixVQUFzQjtRQUF0QixlQUFVLEdBQVYsVUFBVSxDQUFZOztRQWJqQyxlQUFVLEdBQVksS0FBSyxDQUFDLENBQUMseUNBQXlDOztRQUN0RSxjQUFTLEdBQVksS0FBSyxDQUFDLENBQUMsd0NBQXdDOztRQUNwRSxpQkFBWSxHQUFXLEtBQUssQ0FBQyxDQUFDLGlDQUFpQzs7UUFFaEUsYUFBUSxHQUFHO1lBQ2pCLEtBQUssRUFBRSxVQUFVO1lBQ2pCLFNBQVMsRUFBRSxJQUFJO1lBQ2YsY0FBYyxFQUFFLEdBQUc7WUFDbkIsVUFBVSxFQUFFLEdBQUc7WUFDZixVQUFVLEVBQUUsS0FBSztZQUNqQixNQUFNLEVBQUUsS0FBSztTQUNkLENBQUM7UUFHQSxzREFBc0Q7UUFDdEQsSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQztJQUMxQyxDQUFDOzs7O0lBRUQsUUFBUTtRQUNOLGdDQUFnQztRQUNoQyxJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtZQUN2QyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7U0FDN0M7UUFDRCxnQ0FBZ0M7UUFDaEMsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ25CLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLEdBQUcsSUFBSSxDQUFDO1NBQ3RDO1FBQ0QsSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDdkMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3hCLENBQUM7Ozs7O0lBR0QsVUFBVSxDQUFDLEtBQUs7UUFDZCxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ25CLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ2hDLEtBQUssQ0FBQyxjQUFjLENBQUM7U0FDdEI7SUFDSCxDQUFDOzs7OztJQUVrQyxPQUFPLENBQUMsQ0FBQztRQUMxQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3hCLENBQUM7Ozs7O0lBQ21DLFFBQVEsQ0FBQyxDQUFDO1FBQzVDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDeEIsQ0FBQzs7Ozs7SUFDa0MsT0FBTyxDQUFDLENBQUM7UUFDMUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN4QixDQUFDOzs7OztJQUVELGFBQWEsQ0FBQyxLQUFVOztjQUNoQixVQUFVLEdBQUcsS0FBSzs7Y0FDbEIsTUFBTSxHQUNWLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksVUFBVSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNsRixDQUFDLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDO1lBQ2hDLENBQUMsQ0FBQyxVQUFVO0lBQ2xCLENBQUM7Ozs7O0lBRUQsZUFBZSxDQUFDLENBQUM7O1lBQ1gsS0FBSztRQUNULElBQUksQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFO1lBQzFCLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFDRCxJQUFJLENBQUMsQ0FBQyxLQUFLLEtBQUssRUFBRSxFQUFFO1lBQ2xCLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFDRCxJQUFJLENBQUMsQ0FBQyxLQUFLLEtBQUssQ0FBQyxFQUFFO1lBQ2pCLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFDRCxJQUFJLENBQUMsQ0FBQyxLQUFLLEdBQUcsRUFBRSxFQUFFO1lBQ2hCLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFDRCxLQUFLLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckMsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNoQyxDQUFDOzs7WUEvRUYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxnQkFBZ0I7YUFDM0I7Ozs7WUFSa0MsVUFBVTs7O3lCQVkxQyxLQUFLO3dCQUNMLEtBQUs7MkJBQ0wsS0FBSzt5QkE2QkwsWUFBWSxTQUFDLFVBQVUsRUFBRSxDQUFDLFFBQVEsQ0FBQztzQkFRbkMsWUFBWSxTQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQzt1QkFHaEMsWUFBWSxTQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQztzQkFHakMsWUFBWSxTQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQzs7Ozs7OztJQS9DakMsZ0NBQWdCOzs7OztJQUNoQixnQ0FBNkI7O0lBQzdCLHdDQUFxQzs7SUFDckMsdUNBQW9DOztJQUNwQywwQ0FBc0M7Ozs7O0lBRXRDLHNDQU9FOzs7OztJQUVVLHdDQUE4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQsIE9uSW5pdCwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgSW5wdXRNYXNrIGZyb20gJ2lucHV0bWFzayc7XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGBqc3RDdXJyZW5jeU1hc2tgIGluc3RlYWQuXG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tqc3RNb25leU1hc2tdJyxcbn0pXG5leHBvcnQgY2xhc3MgTW9uZXlNYXNrRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0IHtcbiAgcHJpdmF0ZSBpbTogYW55OyAvLyBJbnB1dG1hc2sgcmVmXG4gIHByaXZhdGUgZWw6IEhUTUxJbnB1dEVsZW1lbnQ7IC8vIFJlZiB0byB0aGUgZWxlbWVudCBpbiB0aGUgRE9NXG4gIEBJbnB1dCgpIGhhc0RlY2ltYWw6IGJvb2xlYW4gPSBmYWxzZTsgLy8gSW5wdXQgdG8gc2V0IGRlY2ltYWxzIHRvIGlucHV0bWFzayBvYmpcbiAgQElucHV0KCkgaGFzUHJlZml4OiBib29sZWFuID0gZmFsc2U7IC8vIFByZWZpeCB0byBpbnNlcnQgdG8gdGhlIGlucHV0bWFzayBvYmpcbiAgQElucHV0KCkgcHJlZml4U3ltYm9sOiBzdHJpbmcgPSAnUiQgJzsgLy8gcHJlZml4IHN5bWJvbCB0byB0aGUgaW5wdXRtYXNrXG5cbiAgcHJpdmF0ZSBpbU9iamVjdCA9IHtcbiAgICBhbGlhczogJ2N1cnJlbmN5JyxcbiAgICBhdXRvR3JvdXA6IHRydWUsXG4gICAgZ3JvdXBTZXBhcmF0b3I6ICcuJyxcbiAgICByYWRpeFBvaW50OiAnLCcsXG4gICAgcmlnaHRBbGlnbjogZmFsc2UsXG4gICAgcHJlZml4OiAnUiQgJyxcbiAgfTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHtcbiAgICAvLyBBdHRhY2ggdGhlIGxvY2FsIHZhcmlhYmxlIHRvIHRoZSBlbGVtZW50IGluIHRoZSBET01cbiAgICB0aGlzLmVsID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICAvLyB2ZXJpZnkgaWYgaGFzIHByZWZpeC4gRWcuOiBSJFxuICAgIGlmICh0aGlzLmhhc1ByZWZpeCAmJiB0aGlzLnByZWZpeFN5bWJvbCkge1xuICAgICAgdGhpcy5pbU9iamVjdFsncHJlZml4J10gPSB0aGlzLnByZWZpeFN5bWJvbDtcbiAgICB9XG4gICAgLy8gVmVyaWZ5IGlmIGhhcyBkZWNpbWFsIG51bWJlcnNcbiAgICBpZiAodGhpcy5oYXNEZWNpbWFsKSB7XG4gICAgICB0aGlzLmltT2JqZWN0WydudW1lcmljSW5wdXQnXSA9IHRydWU7XG4gICAgfVxuICAgIHRoaXMuaW0gPSBuZXcgSW5wdXRNYXNrKHRoaXMuaW1PYmplY3QpO1xuICAgIHRoaXMuaW0ubWFzayh0aGlzLmVsKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2tleXByZXNzJywgWyckZXZlbnQnXSlcbiAgb25LZXlQcmVzcyhldmVudCkge1xuICAgIGNvbnNvbGUubG9nKGV2ZW50KTtcbiAgICBpZiAoIXRoaXMucmVzdHJpY3ROdW1lcmljKGV2ZW50KSkge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQ7XG4gICAgfVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcigncGFzdGUnLCBbJyRldmVudCddKSBvblBhc3RlKGUpIHtcbiAgICB0aGlzLm9uSW5wdXRDaGFuZ2UoZSk7XG4gIH1cbiAgQEhvc3RMaXN0ZW5lcignY2hhbmdlJywgWyckZXZlbnQnXSkgb25DaGFuZ2UoZSkge1xuICAgIHRoaXMub25JbnB1dENoYW5nZShlKTtcbiAgfVxuICBASG9zdExpc3RlbmVyKCdpbnB1dCcsIFsnJGV2ZW50J10pIG9uSW5wdXQoZSkge1xuICAgIHRoaXMub25JbnB1dENoYW5nZShlKTtcbiAgfVxuXG4gIG9uSW5wdXRDaGFuZ2UoZXZlbnQ6IGFueSkge1xuICAgIGNvbnN0IGV2ZW50VmFsdWUgPSBldmVudDtcbiAgICBjb25zdCBuZXdWYWwgPVxuICAgICAgdHlwZW9mIGV2ZW50ID09PSAnc3RyaW5nJyAmJiAoZXZlbnRWYWx1ZS5pbmNsdWRlcygnUiQnKSB8fCBldmVudFZhbHVlLmluY2x1ZGVzKCcuJykpXG4gICAgICAgID8gZXZlbnRWYWx1ZS5yZXBsYWNlKC9cXEQvZ2ksICcnKVxuICAgICAgICA6IGV2ZW50VmFsdWU7XG4gIH1cblxuICByZXN0cmljdE51bWVyaWMoZSk6IGJvb2xlYW4ge1xuICAgIGxldCBpbnB1dDtcbiAgICBpZiAoZS5tZXRhS2V5IHx8IGUuY3RybEtleSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGlmIChlLndoaWNoID09PSAzMikge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpZiAoZS53aGljaCA9PT0gMCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGlmIChlLndoaWNoIDwgMzMpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBpbnB1dCA9IFN0cmluZy5mcm9tQ2hhckNvZGUoZS53aGljaCk7XG4gICAgcmV0dXJuICEhL1tcXGRcXHNdLy50ZXN0KGlucHV0KTtcbiAgfVxufVxuIl19