@justa/mask-directive
Version:
 
170 lines • 10.7 kB
JavaScript
/**
* @fileoverview added by tsickle
* Generated from: lib/currency-mask.directive.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Directive, ElementRef, Input, HostListener, Renderer2, forwardRef, } from '@angular/core';
import { NG_VALUE_ACCESSOR } from '@angular/forms';
import InputMask from 'inputmask';
var CurrencyMaskDirective = /** @class */ (function () {
function CurrencyMaskDirective(elementRef, renderer) {
this.elementRef = elementRef;
this.renderer = renderer;
this.currencyMultiplier = 100;
this.currencyPrefix = 'R$ ';
this.masker = new InputMask({
alias: 'currency',
autoGroup: true,
autoUnmask: true,
groupSeparator: '.',
radixPoint: ',',
rightAlign: false,
placeholder: '0,00',
numericInput: true,
prefix: this.currencyPrefix,
});
}
/**
* @return {?}
*/
CurrencyMaskDirective.prototype.ngOnInit = /**
* @return {?}
*/
function () {
this.masker.mask(this.elementRef.nativeElement);
};
/**
* @return {?}
*/
CurrencyMaskDirective.prototype.ngOnDestroy = /**
* @return {?}
*/
function () {
window.clearTimeout(this.rendererTimeout);
};
/**
* @param {?} rawValue
* @return {?}
*/
CurrencyMaskDirective.prototype.writeValue = /**
* @param {?} rawValue
* @return {?}
*/
function (rawValue) {
var _this = this;
/** @type {?} */
var value = parseFloat(rawValue) / this.currencyMultiplier;
this.rendererTimeout = window.setTimeout((/**
* @return {?}
*/
function () {
_this.renderer.setProperty(_this.elementRef.nativeElement, 'value', value);
}), 0);
};
/**
* @param {?} onChange
* @return {?}
*/
CurrencyMaskDirective.prototype.registerOnChange = /**
* @param {?} onChange
* @return {?}
*/
function (onChange) {
this.onChange = onChange;
};
/**
* @param {?} onTouched
* @return {?}
*/
CurrencyMaskDirective.prototype.registerOnTouched = /**
* @param {?} onTouched
* @return {?}
*/
function (onTouched) {
this.onTouched = onTouched;
};
/**
* @param {?} isDisabled
* @return {?}
*/
CurrencyMaskDirective.prototype.setDisabledState = /**
* @param {?} isDisabled
* @return {?}
*/
function (isDisabled) {
this.renderer.setProperty(this.elementRef.nativeElement, 'disabled', isDisabled);
};
/**
* @param {?} event
* @return {?}
*/
CurrencyMaskDirective.prototype.onInputBlur = /**
* @param {?} event
* @return {?}
*/
function (event) {
// Inputmask não troca o separador de casas decimais
/** @type {?} */
var value = parseFloat(event.target.value.replace(',', '.')) *
this.currencyMultiplier;
this.onChange(value);
};
CurrencyMaskDirective.decorators = [
{ type: Directive, args: [{
selector: '[jstCurrencyMask]',
providers: [
{
provide: NG_VALUE_ACCESSOR,
useExisting: forwardRef((/**
* @return {?}
*/
function () { return CurrencyMaskDirective; })),
multi: true,
},
],
},] }
];
/** @nocollapse */
CurrencyMaskDirective.ctorParameters = function () { return [
{ type: ElementRef },
{ type: Renderer2 }
]; };
CurrencyMaskDirective.propDecorators = {
currencyMultiplier: [{ type: Input }],
currencyPrefix: [{ type: Input }],
onInputBlur: [{ type: HostListener, args: ['blur', ['$event'],] }]
};
return CurrencyMaskDirective;
}());
export { CurrencyMaskDirective };
if (false) {
/** @type {?} */
CurrencyMaskDirective.prototype.currencyMultiplier;
/** @type {?} */
CurrencyMaskDirective.prototype.currencyPrefix;
/** @type {?} */
CurrencyMaskDirective.prototype.onChange;
/** @type {?} */
CurrencyMaskDirective.prototype.onTouched;
/**
* @type {?}
* @private
*/
CurrencyMaskDirective.prototype.rendererTimeout;
/**
* @type {?}
* @private
*/
CurrencyMaskDirective.prototype.masker;
/**
* @type {?}
* @private
*/
CurrencyMaskDirective.prototype.elementRef;
/**
* @type {?}
* @private
*/
CurrencyMaskDirective.prototype.renderer;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VycmVuY3ktbWFzay5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AanVzdGEvbWFzay1kaXJlY3RpdmUvIiwic291cmNlcyI6WyJsaWIvY3VycmVuY3ktbWFzay5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUVULFVBQVUsRUFDVixLQUFLLEVBQ0wsWUFBWSxFQUNaLFNBQVMsRUFFVCxVQUFVLEdBQ1gsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sU0FBUyxNQUFNLFdBQVcsQ0FBQztBQUVsQztJQW9CRSwrQkFBb0IsVUFBc0IsRUFBVSxRQUFtQjtRQUFuRCxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQVQ5RCx1QkFBa0IsR0FBRyxHQUFHLENBQUM7UUFDekIsbUJBQWMsR0FBRyxLQUFLLENBQUM7UUFTOUIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLFNBQVMsQ0FBQztZQUMxQixLQUFLLEVBQUUsVUFBVTtZQUNqQixTQUFTLEVBQUUsSUFBSTtZQUNmLFVBQVUsRUFBRSxJQUFJO1lBQ2hCLGNBQWMsRUFBRSxHQUFHO1lBQ25CLFVBQVUsRUFBRSxHQUFHO1lBQ2YsVUFBVSxFQUFFLEtBQUs7WUFDakIsV0FBVyxFQUFFLE1BQU07WUFDbkIsWUFBWSxFQUFFLElBQUk7WUFDbEIsTUFBTSxFQUFFLElBQUksQ0FBQyxjQUFjO1NBQzVCLENBQUMsQ0FBQztJQUNMLENBQUM7Ozs7SUFFRCx3Q0FBUTs7O0lBQVI7UUFDRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ2xELENBQUM7Ozs7SUFFRCwyQ0FBVzs7O0lBQVg7UUFDRSxNQUFNLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUM1QyxDQUFDOzs7OztJQUVELDBDQUFVOzs7O0lBQVYsVUFBVyxRQUFnQjtRQUEzQixpQkFLQzs7WUFKTyxLQUFLLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQyxHQUFHLElBQUksQ0FBQyxrQkFBa0I7UUFDNUQsSUFBSSxDQUFDLGVBQWUsR0FBRyxNQUFNLENBQUMsVUFBVTs7O1FBQUM7WUFDdkMsS0FBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsS0FBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzNFLENBQUMsR0FBRSxDQUFDLENBQUMsQ0FBQztJQUNSLENBQUM7Ozs7O0lBRUQsZ0RBQWdCOzs7O0lBQWhCLFVBQWlCLFFBQThCO1FBQzdDLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO0lBQzNCLENBQUM7Ozs7O0lBRUQsaURBQWlCOzs7O0lBQWpCLFVBQWtCLFNBQStCO1FBQy9DLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO0lBQzdCLENBQUM7Ozs7O0lBRUQsZ0RBQWdCOzs7O0lBQWhCLFVBQWlCLFVBQW1CO1FBQ2xDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUNuRixDQUFDOzs7OztJQUdELDJDQUFXOzs7O0lBRFgsVUFDWSxLQUFVOzs7WUFFZCxLQUFLLEdBQ1QsVUFBVSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDaEQsSUFBSSxDQUFDLGtCQUFrQjtRQUN6QixJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7O2dCQXBFRixTQUFTLFNBQUM7b0JBQ1QsUUFBUSxFQUFFLG1CQUFtQjtvQkFDN0IsU0FBUyxFQUFFO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVOzs7NEJBQUMsY0FBTSxPQUFBLHFCQUFxQixFQUFyQixDQUFxQixFQUFDOzRCQUNwRCxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjtpQkFDRjs7OztnQkFuQkMsVUFBVTtnQkFHVixTQUFTOzs7cUNBa0JSLEtBQUs7aUNBQ0wsS0FBSzs4QkFpREwsWUFBWSxTQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQzs7SUFRbEMsNEJBQUM7Q0FBQSxBQXJFRCxJQXFFQztTQTNEWSxxQkFBcUI7OztJQUNoQyxtREFBa0M7O0lBQ2xDLCtDQUFnQzs7SUFFaEMseUNBQWdDOztJQUNoQywwQ0FBaUM7Ozs7O0lBRWpDLGdEQUFpQzs7Ozs7SUFDakMsdUNBQXFCOzs7OztJQUVULDJDQUE4Qjs7Ozs7SUFBRSx5Q0FBMkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEaXJlY3RpdmUsXG4gIE9uSW5pdCxcbiAgRWxlbWVudFJlZixcbiAgSW5wdXQsXG4gIEhvc3RMaXN0ZW5lcixcbiAgUmVuZGVyZXIyLFxuICBPbkRlc3Ryb3ksXG4gIGZvcndhcmRSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IElucHV0TWFzayBmcm9tICdpbnB1dG1hc2snO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbanN0Q3VycmVuY3lNYXNrXScsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQ3VycmVuY3lNYXNrRGlyZWN0aXZlKSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEN1cnJlbmN5TWFza0RpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gIEBJbnB1dCgpIGN1cnJlbmN5TXVsdGlwbGllciA9IDEwMDtcbiAgQElucHV0KCkgY3VycmVuY3lQcmVmaXggPSAnUiQgJztcblxuICBvbkNoYW5nZT86IChldmVudDogYW55KSA9PiB2b2lkO1xuICBvblRvdWNoZWQ/OiAoZXZlbnQ6IGFueSkgPT4gdm9pZDtcblxuICBwcml2YXRlIHJlbmRlcmVyVGltZW91dD86IG51bWJlcjtcbiAgcHJpdmF0ZSBtYXNrZXI/OiBhbnk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLCBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIpIHtcbiAgICB0aGlzLm1hc2tlciA9IG5ldyBJbnB1dE1hc2soe1xuICAgICAgYWxpYXM6ICdjdXJyZW5jeScsXG4gICAgICBhdXRvR3JvdXA6IHRydWUsXG4gICAgICBhdXRvVW5tYXNrOiB0cnVlLFxuICAgICAgZ3JvdXBTZXBhcmF0b3I6ICcuJyxcbiAgICAgIHJhZGl4UG9pbnQ6ICcsJyxcbiAgICAgIHJpZ2h0QWxpZ246IGZhbHNlLFxuICAgICAgcGxhY2Vob2xkZXI6ICcwLDAwJyxcbiAgICAgIG51bWVyaWNJbnB1dDogdHJ1ZSxcbiAgICAgIHByZWZpeDogdGhpcy5jdXJyZW5jeVByZWZpeCxcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMubWFza2VyLm1hc2sodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgd2luZG93LmNsZWFyVGltZW91dCh0aGlzLnJlbmRlcmVyVGltZW91dCk7XG4gIH1cblxuICB3cml0ZVZhbHVlKHJhd1ZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCB2YWx1ZSA9IHBhcnNlRmxvYXQocmF3VmFsdWUpIC8gdGhpcy5jdXJyZW5jeU11bHRpcGxpZXI7XG4gICAgdGhpcy5yZW5kZXJlclRpbWVvdXQgPSB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFByb3BlcnR5KHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAndmFsdWUnLCB2YWx1ZSk7XG4gICAgfSwgMCk7XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKG9uQ2hhbmdlOiAoZXZlbnQ6IGFueSkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBvbkNoYW5nZTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKG9uVG91Y2hlZDogKGV2ZW50OiBhbnkpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZCA9IG9uVG91Y2hlZDtcbiAgfVxuXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMucmVuZGVyZXIuc2V0UHJvcGVydHkodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdkaXNhYmxlZCcsIGlzRGlzYWJsZWQpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignYmx1cicsIFsnJGV2ZW50J10pXG4gIG9uSW5wdXRCbHVyKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICAvLyBJbnB1dG1hc2sgbsOjbyB0cm9jYSBvIHNlcGFyYWRvciBkZSBjYXNhcyBkZWNpbWFpc1xuICAgIGNvbnN0IHZhbHVlID1cbiAgICAgIHBhcnNlRmxvYXQoZXZlbnQudGFyZ2V0LnZhbHVlLnJlcGxhY2UoJywnLCAnLicpKSAqXG4gICAgICB0aGlzLmN1cnJlbmN5TXVsdGlwbGllcjtcbiAgICB0aGlzLm9uQ2hhbmdlKHZhbHVlKTtcbiAgfVxufVxuIl19