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)

153 lines 9.48 kB
/** * @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