UNPKG

acr-assist-simulator-module

Version:

This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 1.7.4.

53 lines (52 loc) 4.48 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes} checked by tsc */ import { Directive, ElementRef, HostListener } from '@angular/core'; export class NumericOnlyDirective { /** * @param {?} el */ constructor(el) { this.el = el; this.regex = new RegExp(/^(?:[0-9]{0,3}(?:\.[0-9]{0,2})?)?$/); this.specialKeys = ['Backspace', 'Tab', 'End', 'Home', 'ArrowLeft', 'ArrowRight']; } /** * @param {?} event * @return {?} */ onKeyDown(event) { // Allow Backspace, tab, end, and home keys if (this.specialKeys.indexOf(event.key) !== -1) { return; } let /** @type {?} */ current = this.el.nativeElement.value; let /** @type {?} */ next = current.concat(event.key); let /** @type {?} */ value = +next; if (next && (next === '.' || value > 100.00 || !String(next).match(this.regex))) { event.preventDefault(); } } } NumericOnlyDirective.decorators = [ { type: Directive, args: [{ selector: '[acrNumericOnly]' },] }, ]; /** @nocollapse */ NumericOnlyDirective.ctorParameters = () => [ { type: ElementRef } ]; NumericOnlyDirective.propDecorators = { onKeyDown: [{ type: HostListener, args: ['keydown', ['$event'],] }] }; function NumericOnlyDirective_tsickle_Closure_declarations() { /** @type {?} */ NumericOnlyDirective.prototype.regex; /** @type {?} */ NumericOnlyDirective.prototype.specialKeys; /** @type {?} */ NumericOnlyDirective.prototype.el; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtZXJpYy1vbmx5LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2Fjci1hc3Npc3Qtc2ltdWxhdG9yLW1vZHVsZS8iLCJzb3VyY2VzIjpbInNyYy9hcHAvbW9kdWxlcy9hY3ItYXNzaXN0LXNpbXVsYXRvci9zaGFyZWQvZGlyZWN0aXZlcy9udW1lcmljLW9ubHkuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFLcEUsTUFBTTs7OztJQVFKLFlBQW9CLEVBQWM7UUFBZCxPQUFFLEdBQUYsRUFBRSxDQUFZO3FCQU5WLElBQUksTUFBTSxDQUFDLG9DQUFvQyxDQUFDOzJCQUluQyxDQUFDLFdBQVcsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsWUFBWSxDQUFDO0tBR2xHOzs7OztJQUdELFNBQVMsQ0FBQyxLQUFvQjs7UUFFNUIsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMvQyxNQUFNLENBQUM7U0FDUjtRQUNELHFCQUFJLE9BQU8sR0FBVyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUM7UUFDbEQscUJBQUksSUFBSSxHQUFXLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzdDLHFCQUFJLEtBQUssR0FBVyxDQUFDLElBQUksQ0FBQztRQUMxQixFQUFFLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssR0FBRyxJQUFJLEtBQUssR0FBRyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNoRixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7U0FDeEI7S0FDRjs7O1lBMUJGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsa0JBQWtCO2FBQzdCOzs7O1lBSm1CLFVBQVU7Ozt3QkFnQjNCLFlBQVksU0FBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdbYWNyTnVtZXJpY09ubHldJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgTnVtZXJpY09ubHlEaXJlY3RpdmUge1xyXG5cclxuICBwcml2YXRlIHJlZ2V4OiBSZWdFeHAgPSBuZXcgUmVnRXhwKC9eKD86WzAtOV17MCwzfSg/OlxcLlswLTldezAsMn0pPyk/JC8pO1xyXG5cclxuICAvLyBBbGxvdyBrZXkgY29kZXMgZm9yIHNwZWNpYWwgZXZlbnRzLiBSZWZsZWN0IDpcclxuICAvLyBCYWNrc3BhY2UsIHRhYiwgZW5kLCBob21lXHJcbiAgcHJpdmF0ZSBzcGVjaWFsS2V5czogQXJyYXk8c3RyaW5nPiA9IFsnQmFja3NwYWNlJywgJ1RhYicsICdFbmQnLCAnSG9tZScsICdBcnJvd0xlZnQnLCAnQXJyb3dSaWdodCddO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsOiBFbGVtZW50UmVmKSB7XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCdrZXlkb3duJywgWyckZXZlbnQnXSlcclxuICBvbktleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcclxuICAgIC8vIEFsbG93IEJhY2tzcGFjZSwgdGFiLCBlbmQsIGFuZCBob21lIGtleXNcclxuICAgIGlmICh0aGlzLnNwZWNpYWxLZXlzLmluZGV4T2YoZXZlbnQua2V5KSAhPT0gLTEpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgbGV0IGN1cnJlbnQ6IHN0cmluZyA9IHRoaXMuZWwubmF0aXZlRWxlbWVudC52YWx1ZTtcclxuICAgIGxldCBuZXh0OiBzdHJpbmcgPSBjdXJyZW50LmNvbmNhdChldmVudC5rZXkpO1xyXG4gICAgbGV0IHZhbHVlOiBudW1iZXIgPSArbmV4dDtcclxuICAgIGlmIChuZXh0ICYmIChuZXh0ID09PSAnLicgfHwgdmFsdWUgPiAxMDAuMDAgfHwgIVN0cmluZyhuZXh0KS5tYXRjaCh0aGlzLnJlZ2V4KSkpIHtcclxuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19