wninputpattern
Version:
Simple directive for your input pattern.
37 lines • 4.07 kB
JavaScript
import { Directive, EventEmitter, HostListener, Input, Output, } from '@angular/core';
import * as i0 from "@angular/core";
export class SpecialAllDirective {
constructor() {
this.params = '';
this.validater = new EventEmitter();
this.regEx = new RegExp(/[!#${}*&^<>~`=|;฿%()'+",./:?@_\[\]\/\-\\]/g);
}
onKeyPress(event) {
const e = event;
if (e.key === 'Tab' || e.key === 'TAB') {
return;
}
const ch = String.fromCharCode(e.keyCode);
const regEx = new RegExp(this.regEx);
if (regEx.test(ch)) {
e.preventDefault();
}
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.10", ngImport: i0, type: SpecialAllDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.10", type: SpecialAllDirective, selector: "[SpecialAll]", inputs: { params: ["specialChar", "params"] }, outputs: { validater: "validater" }, host: { listeners: { "keypress": "onKeyPress($event)" } }, ngImport: i0 }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.10", ngImport: i0, type: SpecialAllDirective, decorators: [{
type: Directive,
args: [{
selector: '[SpecialAll]',
}]
}], ctorParameters: function () { return []; }, propDecorators: { params: [{
type: Input,
args: ['specialChar']
}], validater: [{
type: Output
}], onKeyPress: [{
type: HostListener,
args: ['keypress', ['$event']]
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BlY2lhbGFsbC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy93bmlucHV0cGF0dGVybi9zcmMvbGliL2RpcmVjdGl2ZXMvc3BlY2lhbGFsbC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7O0FBS3ZCLE1BQU0sT0FBTyxtQkFBbUI7SUFDOUI7UUFFc0IsV0FBTSxHQUFXLEVBQUUsQ0FBQztRQUNoQyxjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUN6QyxVQUFLLEdBQUcsSUFBSSxNQUFNLENBQUMsNENBQTRDLENBQUMsQ0FBQztJQUpsRCxDQUFDO0lBTXNCLFVBQVUsQ0FBQyxLQUFVO1FBQ3pELE1BQU0sQ0FBQyxHQUFrQixLQUFLLENBQUM7UUFDL0IsSUFBSSxDQUFDLENBQUMsR0FBRyxLQUFLLEtBQUssSUFBSSxDQUFDLENBQUMsR0FBRyxLQUFLLEtBQUssRUFBRTtZQUN0QyxPQUFPO1NBQ1I7UUFFRCxNQUFNLEVBQUUsR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUUxQyxNQUFNLEtBQUssR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckMsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFO1lBQ2xCLENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQztTQUNwQjtJQUNILENBQUM7K0dBbkJVLG1CQUFtQjttR0FBbkIsbUJBQW1COzs0RkFBbkIsbUJBQW1CO2tCQUgvQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxjQUFjO2lCQUN6QjswRUFJdUIsTUFBTTtzQkFBM0IsS0FBSzt1QkFBQyxhQUFhO2dCQUNWLFNBQVM7c0JBQWxCLE1BQU07Z0JBRytCLFVBQVU7c0JBQS9DLFlBQVk7dUJBQUMsVUFBVSxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRGlyZWN0aXZlLFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tTcGVjaWFsQWxsXScsXG59KVxuZXhwb3J0IGNsYXNzIFNwZWNpYWxBbGxEaXJlY3RpdmUge1xuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgQElucHV0KCdzcGVjaWFsQ2hhcicpIHBhcmFtczogc3RyaW5nID0gJyc7XG4gIEBPdXRwdXQoKSB2YWxpZGF0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIHJlZ0V4ID0gbmV3IFJlZ0V4cCgvWyEjJHt9KiZePD5+YD18O+C4vyUoKScrXCIsLi86P0BfXFxbXFxdXFwvXFwtXFxcXF0vZyk7XG5cbiAgQEhvc3RMaXN0ZW5lcigna2V5cHJlc3MnLCBbJyRldmVudCddKSBvbktleVByZXNzKGV2ZW50OiBhbnkpIHtcbiAgICBjb25zdCBlID0gPEtleWJvYXJkRXZlbnQ+ZXZlbnQ7XG4gICAgaWYgKGUua2V5ID09PSAnVGFiJyB8fCBlLmtleSA9PT0gJ1RBQicpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBjaCA9IFN0cmluZy5mcm9tQ2hhckNvZGUoZS5rZXlDb2RlKTtcblxuICAgIGNvbnN0IHJlZ0V4ID0gbmV3IFJlZ0V4cCh0aGlzLnJlZ0V4KTtcbiAgICBpZiAocmVnRXgudGVzdChjaCkpIHtcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==