@dotgov/core
Version:
DGS core.
45 lines • 4.42 kB
JavaScript
import { Directive, ElementRef, Input } from '@angular/core';
export class NumberFiledsValidatorDirective {
constructor(elRef) {
this.noValidate = false;
this.elemenet = elRef.nativeElement;
}
ngOnInit() {
const restricted = [
69,
187,
188,
189,
];
this.elemenet.addEventListener('keydown', event => {
if (this.noValidate) {
return;
}
if (restricted.indexOf(event.keyCode) !== -1) {
event.preventDefault();
}
});
this.elemenet.addEventListener('paste', event => {
setTimeout(() => {
if (this.noValidate || !this || !event || !event.target || !event.target['value']) {
return;
}
if (!event.target['value']) {
event.target['value'] = '';
}
});
});
}
}
NumberFiledsValidatorDirective.decorators = [
{ type: Directive, args: [{
selector: `[type='number']`,
},] }
];
NumberFiledsValidatorDirective.ctorParameters = () => [
{ type: ElementRef }
];
NumberFiledsValidatorDirective.propDecorators = {
noValidate: [{ type: Input }]
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLWZpZWxkLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvZGlyZWN0aXZlcy9udW1iZXItZmllbGQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUtyRSxNQUFNLE9BQU8sOEJBQThCO0lBSXpDLFlBQVksS0FBaUI7UUFIcEIsZUFBVSxHQUFZLEtBQUssQ0FBQztRQUluQyxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQyxhQUFhLENBQUM7SUFDdEMsQ0FBQztJQUVELFFBQVE7UUFDTixNQUFNLFVBQVUsR0FBRztZQUNqQixFQUFFO1lBQ0YsR0FBRztZQUNILEdBQUc7WUFDSCxHQUFHO1NBQ0osQ0FBQztRQUNGLElBQUksQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxFQUFFO1lBQ2hELElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtnQkFDbkIsT0FBTzthQUNSO1lBQ0QsSUFBSSxVQUFVLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTtnQkFDNUMsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO2FBQ3hCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsRUFBRTtZQUM5QyxVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNkLElBQUksSUFBSSxDQUFDLFVBQVUsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFO29CQUNqRixPQUFPO2lCQUNSO2dCQUNELElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFO29CQUMxQixLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztpQkFDNUI7WUFDSCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7O1lBcENGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsaUJBQWlCO2FBQzVCOzs7WUFKbUIsVUFBVTs7O3lCQU0zQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogYFt0eXBlPSdudW1iZXInXWAsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOdW1iZXJGaWxlZHNWYWxpZGF0b3JEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBJbnB1dCgpIG5vVmFsaWRhdGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwcml2YXRlIGVsZW1lbmV0OiBIVE1MSW5wdXRFbGVtZW50O1xyXG5cclxuICBjb25zdHJ1Y3RvcihlbFJlZjogRWxlbWVudFJlZikge1xyXG4gICAgdGhpcy5lbGVtZW5ldCA9IGVsUmVmLm5hdGl2ZUVsZW1lbnQ7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIGNvbnN0IHJlc3RyaWN0ZWQgPSBbXHJcbiAgICAgIDY5LCAvLyAgXCJlXCJcclxuICAgICAgMTg3LCAvLyAgXCI9XCJcclxuICAgICAgMTg4LCAvLyAgXCIsXCJcclxuICAgICAgMTg5LCAvLyAgXCItXCJcclxuICAgIF07XHJcbiAgICB0aGlzLmVsZW1lbmV0LmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCBldmVudCA9PiB7XHJcbiAgICAgIGlmICh0aGlzLm5vVmFsaWRhdGUpIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHJlc3RyaWN0ZWQuaW5kZXhPZihldmVudC5rZXlDb2RlKSAhPT0gLTEpIHtcclxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHRoaXMuZWxlbWVuZXQuYWRkRXZlbnRMaXN0ZW5lcigncGFzdGUnLCBldmVudCA9PiB7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIGlmICh0aGlzLm5vVmFsaWRhdGUgfHwgIXRoaXMgfHwgIWV2ZW50IHx8ICFldmVudC50YXJnZXQgfHwgIWV2ZW50LnRhcmdldFsndmFsdWUnXSkge1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoIWV2ZW50LnRhcmdldFsndmFsdWUnXSkge1xyXG4gICAgICAgICAgZXZlbnQudGFyZ2V0Wyd2YWx1ZSddID0gJyc7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG4iXX0=