@codecabinet.online/codecabinet.online-sni-custom-grid-library
Version:
codecabinet.online created an astonishing grid library
38 lines • 6.25 kB
JavaScript
import { Directive, HostListener } from '@angular/core';
import * as i0 from "@angular/core";
export class TwoDigitDecimaNumberDirective {
constructor(el) {
this.el = el;
this.regex = new RegExp(/^\d*\.?\d{0,2}$/g);
this.specialKeys = ['Backspace', 'Tab', 'End', 'Home', 'ArrowLeft', 'ArrowRight', 'Del', 'Delete'];
}
onKeyDown(event) {
if (this.specialKeys.indexOf(event.key) !== -1 ||
((event.key === 'a' && event.ctrlKey === true)) ||
((event.key === 'a' && event.metaKey === true)) ||
((event.key === 'c' && event.ctrlKey === true)) ||
((event.key === 'c' && event.metaKey === true)) ||
((event.key === 'x' && event.ctrlKey === true)) ||
((event.key === 'x' && event.metaKey === true))) {
return;
}
let current = this.el.nativeElement.value;
const position = this.el.nativeElement.selectionStart;
const next = [current.slice(0, position), event.key == 'Decimal' ? '.' : event.key, current.slice(position)].join('');
if (next && !String(next).match(this.regex)) {
event.preventDefault();
}
}
}
TwoDigitDecimaNumberDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: TwoDigitDecimaNumberDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
TwoDigitDecimaNumberDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.11", type: TwoDigitDecimaNumberDirective, selector: "[appTwoDigitDecimaNumber]", host: { listeners: { "keydown": "onKeyDown($event)" } }, ngImport: i0 });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: TwoDigitDecimaNumberDirective, decorators: [{
type: Directive,
args: [{
selector: '[appTwoDigitDecimaNumber]'
}]
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { onKeyDown: [{
type: HostListener,
args: ['keydown', ['$event']]
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHdvZGlnaXRkZWNpbWFsbnVtYmVyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2N1c3RvbS1ncmlkLWxpYnJhcnkvc3JjL2xpYi9jdXN0b21HcmlkQ29tcG9uZW50cy9kaXJlY3RpdmVzL3R3b2RpZ2l0ZGVjaW1hbG51bWJlci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBS3BFLE1BQU0sT0FBTyw2QkFBNkI7SUFJeEMsWUFBb0IsRUFBYztRQUFkLE9BQUUsR0FBRixFQUFFLENBQVk7UUFIMUIsVUFBSyxHQUFXLElBQUksTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDL0MsZ0JBQVcsR0FBa0IsQ0FBQyxXQUFXLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFHckgsQ0FBQztJQUVELFNBQVMsQ0FBQyxLQUFvQjtRQUM1QixJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDMUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLEtBQUssR0FBRyxJQUFJLEtBQUssQ0FBQyxPQUFPLEtBQUssSUFBSSxDQUFDLENBQUM7WUFDL0MsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLEtBQUssR0FBRyxJQUFJLEtBQUssQ0FBQyxPQUFPLEtBQUssSUFBSSxDQUFDLENBQUM7WUFDL0MsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLEtBQUssR0FBRyxJQUFJLEtBQUssQ0FBQyxPQUFPLEtBQUssSUFBSSxDQUFDLENBQUM7WUFDL0MsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLEtBQUssR0FBRyxJQUFJLEtBQUssQ0FBQyxPQUFPLEtBQUssSUFBSSxDQUFDLENBQUM7WUFDL0MsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLEtBQUssR0FBRyxJQUFJLEtBQUssQ0FBQyxPQUFPLEtBQUssSUFBSSxDQUFDLENBQUM7WUFDL0MsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLEtBQUssR0FBRyxJQUFJLEtBQUssQ0FBQyxPQUFPLEtBQUssSUFBSSxDQUFDLENBQUMsRUFDakQ7WUFDQSxPQUFPO1NBQ1I7UUFDRCxJQUFJLE9BQU8sR0FBVyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUM7UUFDbEQsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDO1FBQ3RELE1BQU0sSUFBSSxHQUFXLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsUUFBUSxDQUFDLEVBQUUsS0FBSyxDQUFDLEdBQUcsSUFBSSxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzlILElBQUksSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDM0MsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1NBQ3hCO0lBQ0gsQ0FBQzs7MkhBeEJVLDZCQUE2QjsrR0FBN0IsNkJBQTZCOzRGQUE3Qiw2QkFBNkI7a0JBSHpDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLDJCQUEyQjtpQkFDdEM7aUdBUUMsU0FBUztzQkFEUixZQUFZO3VCQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1thcHBUd29EaWdpdERlY2ltYU51bWJlcl0nXG59KVxuZXhwb3J0IGNsYXNzIFR3b0RpZ2l0RGVjaW1hTnVtYmVyRGlyZWN0aXZlIHtcbiAgcHJpdmF0ZSByZWdleDogUmVnRXhwID0gbmV3IFJlZ0V4cCgvXlxcZCpcXC4/XFxkezAsMn0kL2cpO1xuICBwcml2YXRlIHNwZWNpYWxLZXlzOiBBcnJheTxzdHJpbmc+ID0gWydCYWNrc3BhY2UnLCAnVGFiJywgJ0VuZCcsICdIb21lJywgJ0Fycm93TGVmdCcsICdBcnJvd1JpZ2h0JywgJ0RlbCcsICdEZWxldGUnXTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsOiBFbGVtZW50UmVmKSB7XG4gIH1cbiAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bicsIFsnJGV2ZW50J10pXG4gIG9uS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIGlmICh0aGlzLnNwZWNpYWxLZXlzLmluZGV4T2YoZXZlbnQua2V5KSAhPT0gLTEgfHwgXG4gICAgICAgICgoZXZlbnQua2V5ID09PSAnYScgJiYgZXZlbnQuY3RybEtleSA9PT0gdHJ1ZSkpIHx8XG4gICAgICAgICgoZXZlbnQua2V5ID09PSAnYScgJiYgZXZlbnQubWV0YUtleSA9PT0gdHJ1ZSkpIHx8XG4gICAgICAgICgoZXZlbnQua2V5ID09PSAnYycgJiYgZXZlbnQuY3RybEtleSA9PT0gdHJ1ZSkpIHx8XG4gICAgICAgICgoZXZlbnQua2V5ID09PSAnYycgJiYgZXZlbnQubWV0YUtleSA9PT0gdHJ1ZSkpIHx8XG4gICAgICAgICgoZXZlbnQua2V5ID09PSAneCcgJiYgZXZlbnQuY3RybEtleSA9PT0gdHJ1ZSkpIHx8XG4gICAgICAgICgoZXZlbnQua2V5ID09PSAneCcgJiYgZXZlbnQubWV0YUtleSA9PT0gdHJ1ZSkpIFxuICAgICkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBsZXQgY3VycmVudDogc3RyaW5nID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50LnZhbHVlO1xuICAgIGNvbnN0IHBvc2l0aW9uID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50LnNlbGVjdGlvblN0YXJ0O1xuICAgIGNvbnN0IG5leHQ6IHN0cmluZyA9IFtjdXJyZW50LnNsaWNlKDAsIHBvc2l0aW9uKSwgZXZlbnQua2V5ID09ICdEZWNpbWFsJyA/ICcuJyA6IGV2ZW50LmtleSwgY3VycmVudC5zbGljZShwb3NpdGlvbildLmpvaW4oJycpO1xuICAgIGlmIChuZXh0ICYmICFTdHJpbmcobmV4dCkubWF0Y2godGhpcy5yZWdleCkpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuICB9XG59Il19