@justa/mask-directive
Version:
 
153 lines • 9.48 kB
JavaScript
/**
* @fileoverview added by tsickle
* Generated from: lib/percentage-mask.directive.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Directive, forwardRef, Input, ElementRef, Renderer2, HostListener, } from '@angular/core';
import { NG_VALUE_ACCESSOR } from '@angular/forms';
import InputMask from 'inputmask';
var PercentageMaskDirective = /** @class */ (function () {
function PercentageMaskDirective(elementRef, renderer) {
this.elementRef = elementRef;
this.renderer = renderer;
this.percentSuffix = ' %';
this.mask = new InputMask({
alias: 'percentage',
autoGroup: false,
autoUnmask: true,
radixPoint: ',',
rightAlign: false,
placeHolder: '0,00',
numericInput: true,
digits: 2,
suffix: this.percentSuffix,
});
}
/**
* @return {?}
*/
PercentageMaskDirective.prototype.ngOnInit = /**
* @return {?}
*/
function () {
this.mask.mask(this.elementRef.nativeElement);
};
/**
* @return {?}
*/
PercentageMaskDirective.prototype.ngOnDestroy = /**
* @return {?}
*/
function () {
window.clearTimeout(this.rendererTimeout);
};
/**
* @param {?} rawValue
* @return {?}
*/
PercentageMaskDirective.prototype.writeValue = /**
* @param {?} rawValue
* @return {?}
*/
function (rawValue) {
var _this = this;
/** @type {?} */
var value = parseFloat(rawValue) * 100;
this.rendererTimeout = window.setTimeout((/**
* @return {?}
*/
function () {
_this.renderer.setProperty(_this.elementRef.nativeElement, 'value', value);
}), 0);
};
/**
* @param {?} onChange
* @return {?}
*/
PercentageMaskDirective.prototype.registerOnChange = /**
* @param {?} onChange
* @return {?}
*/
function (onChange) {
this.onChange = onChange;
};
/**
* @param {?} onTouched
* @return {?}
*/
PercentageMaskDirective.prototype.registerOnTouched = /**
* @param {?} onTouched
* @return {?}
*/
function (onTouched) {
this.onTouched = onTouched;
};
/**
* @param {?} event
* @return {?}
*/
PercentageMaskDirective.prototype.onInputBlur = /**
* @param {?} event
* @return {?}
*/
function (event) {
/** @type {?} */
var value = parseFloat(event.target.value.replace(',', '.')) / 100;
this.onChange(value);
};
PercentageMaskDirective.decorators = [
{ type: Directive, args: [{
selector: '[jstPercentageMask]',
providers: [
{
provide: NG_VALUE_ACCESSOR,
useExisting: forwardRef((/**
* @return {?}
*/
function () { return PercentageMaskDirective; })),
multi: true,
},
],
},] }
];
/** @nocollapse */
PercentageMaskDirective.ctorParameters = function () { return [
{ type: ElementRef },
{ type: Renderer2 }
]; };
PercentageMaskDirective.propDecorators = {
percentSuffix: [{ type: Input }],
onInputBlur: [{ type: HostListener, args: ['blur', ['$event'],] }]
};
return PercentageMaskDirective;
}());
export { PercentageMaskDirective };
if (false) {
/** @type {?} */
PercentageMaskDirective.prototype.percentSuffix;
/** @type {?} */
PercentageMaskDirective.prototype.onChange;
/** @type {?} */
PercentageMaskDirective.prototype.onTouched;
/**
* @type {?}
* @private
*/
PercentageMaskDirective.prototype.mask;
/**
* @type {?}
* @private
*/
PercentageMaskDirective.prototype.rendererTimeout;
/**
* @type {?}
* @private
*/
PercentageMaskDirective.prototype.elementRef;
/**
* @type {?}
* @private
*/
PercentageMaskDirective.prototype.renderer;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVyY2VudGFnZS1tYXNrLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BqdXN0YS9tYXNrLWRpcmVjdGl2ZS8iLCJzb3VyY2VzIjpbImxpYi9wZXJjZW50YWdlLW1hc2suZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxVQUFVLEVBR1YsS0FBSyxFQUNMLFVBQVUsRUFDVixTQUFTLEVBQ1QsWUFBWSxHQUNiLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBd0IsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLFNBQVMsTUFBTSxXQUFXLENBQUM7QUFFbEM7SUFvQkUsaUNBQW9CLFVBQXNCLEVBQVUsUUFBbUI7UUFBbkQsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUFVLGFBQVEsR0FBUixRQUFRLENBQVc7UUFSOUQsa0JBQWEsR0FBRyxJQUFJLENBQUM7UUFTNUIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLFNBQVMsQ0FBQztZQUN4QixLQUFLLEVBQUUsWUFBWTtZQUNuQixTQUFTLEVBQUUsS0FBSztZQUNoQixVQUFVLEVBQUUsSUFBSTtZQUNoQixVQUFVLEVBQUUsR0FBRztZQUNmLFVBQVUsRUFBRSxLQUFLO1lBQ2pCLFdBQVcsRUFBRSxNQUFNO1lBQ25CLFlBQVksRUFBRSxJQUFJO1lBQ2xCLE1BQU0sRUFBRSxDQUFDO1lBQ1QsTUFBTSxFQUFFLElBQUksQ0FBQyxhQUFhO1NBQzNCLENBQUMsQ0FBQztJQUNMLENBQUM7Ozs7SUFFRCwwQ0FBUTs7O0lBQVI7UUFDRSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ2hELENBQUM7Ozs7SUFFRCw2Q0FBVzs7O0lBQVg7UUFDRSxNQUFNLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUM1QyxDQUFDOzs7OztJQUVELDRDQUFVOzs7O0lBQVYsVUFBVyxRQUFhO1FBQXhCLGlCQUtDOztZQUpPLEtBQUssR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDLEdBQUcsR0FBRztRQUN4QyxJQUFJLENBQUMsZUFBZSxHQUFHLE1BQU0sQ0FBQyxVQUFVOzs7UUFBQztZQUN2QyxLQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxLQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDM0UsQ0FBQyxHQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ1IsQ0FBQzs7Ozs7SUFFRCxrREFBZ0I7Ozs7SUFBaEIsVUFBaUIsUUFBOEI7UUFDN0MsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7SUFDM0IsQ0FBQzs7Ozs7SUFFRCxtREFBaUI7Ozs7SUFBakIsVUFBa0IsU0FBK0I7UUFDL0MsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7SUFDN0IsQ0FBQzs7Ozs7SUFHRCw2Q0FBVzs7OztJQURYLFVBQ1ksS0FBVTs7WUFDZCxLQUFLLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBRyxHQUFHO1FBQ3BFLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdkIsQ0FBQzs7Z0JBN0RGLFNBQVMsU0FBQztvQkFDVCxRQUFRLEVBQUUscUJBQXFCO29CQUMvQixTQUFTLEVBQUU7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVU7Ozs0QkFBQyxjQUFNLE9BQUEsdUJBQXVCLEVBQXZCLENBQXVCLEVBQUM7NEJBQ3RELEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGO2lCQUNGOzs7O2dCQWhCQyxVQUFVO2dCQUNWLFNBQVM7OztnQ0FrQlIsS0FBSzs4QkE2Q0wsWUFBWSxTQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQzs7SUFLbEMsOEJBQUM7Q0FBQSxBQTlERCxJQThEQztTQXBEWSx1QkFBdUI7OztJQUVsQyxnREFBOEI7O0lBRTlCLDJDQUFnQzs7SUFDaEMsNENBQWlDOzs7OztJQUVqQyx1Q0FBa0I7Ozs7O0lBQ2xCLGtEQUFpQzs7Ozs7SUFFckIsNkNBQThCOzs7OztJQUFFLDJDQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIERpcmVjdGl2ZSxcbiAgZm9yd2FyZFJlZixcbiAgT25Jbml0LFxuICBPbkRlc3Ryb3ksXG4gIElucHV0LFxuICBFbGVtZW50UmVmLFxuICBSZW5kZXJlcjIsXG4gIEhvc3RMaXN0ZW5lcixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiwgQ29udHJvbFZhbHVlQWNjZXNzb3IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgSW5wdXRNYXNrIGZyb20gJ2lucHV0bWFzayc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tqc3RQZXJjZW50YWdlTWFza10nLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFBlcmNlbnRhZ2VNYXNrRGlyZWN0aXZlKSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFBlcmNlbnRhZ2VNYXNrRGlyZWN0aXZlXG4gIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgQElucHV0KCkgcGVyY2VudFN1ZmZpeCA9ICcgJSc7XG5cbiAgb25DaGFuZ2U/OiAoZXZlbnQ6IGFueSkgPT4gdm9pZDtcbiAgb25Ub3VjaGVkPzogKGV2ZW50OiBhbnkpID0+IHZvaWQ7XG5cbiAgcHJpdmF0ZSBtYXNrOiBhbnk7XG4gIHByaXZhdGUgcmVuZGVyZXJUaW1lb3V0PzogbnVtYmVyO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZiwgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyKSB7XG4gICAgdGhpcy5tYXNrID0gbmV3IElucHV0TWFzayh7XG4gICAgICBhbGlhczogJ3BlcmNlbnRhZ2UnLFxuICAgICAgYXV0b0dyb3VwOiBmYWxzZSxcbiAgICAgIGF1dG9Vbm1hc2s6IHRydWUsXG4gICAgICByYWRpeFBvaW50OiAnLCcsXG4gICAgICByaWdodEFsaWduOiBmYWxzZSxcbiAgICAgIHBsYWNlSG9sZGVyOiAnMCwwMCcsXG4gICAgICBudW1lcmljSW5wdXQ6IHRydWUsXG4gICAgICBkaWdpdHM6IDIsXG4gICAgICBzdWZmaXg6IHRoaXMucGVyY2VudFN1ZmZpeCxcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMubWFzay5tYXNrKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHdpbmRvdy5jbGVhclRpbWVvdXQodGhpcy5yZW5kZXJlclRpbWVvdXQpO1xuICB9XG5cbiAgd3JpdGVWYWx1ZShyYXdWYWx1ZTogYW55KTogdm9pZCB7XG4gICAgY29uc3QgdmFsdWUgPSBwYXJzZUZsb2F0KHJhd1ZhbHVlKSAqIDEwMDtcbiAgICB0aGlzLnJlbmRlcmVyVGltZW91dCA9IHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0UHJvcGVydHkodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICd2YWx1ZScsIHZhbHVlKTtcbiAgICB9LCAwKTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2Uob25DaGFuZ2U6IChldmVudDogYW55KSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IG9uQ2hhbmdlO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQob25Ub3VjaGVkOiAoZXZlbnQ6IGFueSkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkID0gb25Ub3VjaGVkO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignYmx1cicsIFsnJGV2ZW50J10pXG4gIG9uSW5wdXRCbHVyKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICBjb25zdCB2YWx1ZSA9IHBhcnNlRmxvYXQoZXZlbnQudGFyZ2V0LnZhbHVlLnJlcGxhY2UoJywnLCAnLicpKSAvIDEwMDtcbiAgICB0aGlzLm9uQ2hhbmdlKHZhbHVlKTtcbiAgfVxufVxuIl19