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
JavaScript
/**
* @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