@asoftwareworld/form-builder-pro
Version:
ASW Form Builder Pro helps you with rapid development and designed web forms which includes several controls. The key feature of Form Builder is to make your content attractive and effective. We can customize our control at run time and preview the same b
56 lines • 7.03 kB
JavaScript
/**
* @license
* Copyright ASW (A Software World) All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file
*/
// import { Directive, ElementRef, HostListener } from '@angular/core';
// @Directive({
// selector: 'input[aswNumbersOnly]'
// })
// export class AswNumberDirective {
// constructor(public element: ElementRef) { }
// @HostListener('input', ['$event']) onInputChange(event: any): void {
// const initalValue = this.element.nativeElement.value;
// this.element.nativeElement.value = initalValue.replace(/[^0-9]*/g, '');
// if (initalValue !== this.element.nativeElement.value) {
// event.stopPropagation();
// }
// }
// }
import { Directive, HostListener } from '@angular/core';
import * as i0 from "@angular/core";
export class AswNumberDirective {
el;
regex = new RegExp(/^\d*\.?\d{0,4}$/g);
specialKeys = ['Backspace', 'Tab', 'End', 'Home', 'ArrowLeft', 'ArrowRight', 'Del', 'Delete'];
constructor(el) {
this.el = el;
}
onKeyDown(event) {
console.log(this.el.nativeElement.value);
// Allow Backspace, tab, end, and home keys
if (this.specialKeys.indexOf(event.key) !== -1) {
return;
}
const 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();
}
}
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: AswNumberDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.8", type: AswNumberDirective, selector: "[aswNumbersOnly]", host: { listeners: { "keydown": "onKeyDown($event)" } }, ngImport: i0 });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: AswNumberDirective, decorators: [{
type: Directive,
args: [{
selector: '[aswNumbersOnly]'
}]
}], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { onKeyDown: [{
type: HostListener,
args: ['keydown', ['$event']]
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVycy1vbmx5LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2NvbW1vbi9kaXJlY3RpdmUvbnVtYmVycy1vbmx5LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFFSCx1RUFBdUU7QUFFdkUsZUFBZTtBQUNmLHdDQUF3QztBQUN4QyxLQUFLO0FBQ0wsb0NBQW9DO0FBRXBDLGtEQUFrRDtBQUVsRCwyRUFBMkU7QUFDM0UsZ0VBQWdFO0FBQ2hFLGtGQUFrRjtBQUNsRixrRUFBa0U7QUFDbEUsdUNBQXVDO0FBQ3ZDLFlBQVk7QUFDWixRQUFRO0FBQ1IsSUFBSTtBQUNKLE9BQU8sRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUtwRSxNQUFNLE9BQU8sa0JBQWtCO0lBR1A7SUFGWixLQUFLLEdBQVcsSUFBSSxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUMvQyxXQUFXLEdBQWtCLENBQUMsV0FBVyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ3JILFlBQW9CLEVBQWM7UUFBZCxPQUFFLEdBQUYsRUFBRSxDQUFZO0lBQUcsQ0FBQztJQUV0QyxTQUFTLENBQUMsS0FBb0I7UUFDMUIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6QywyQ0FBMkM7UUFDM0MsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUM3QyxPQUFPO1FBQ1gsQ0FBQztRQUNELE1BQU0sT0FBTyxHQUFXLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQztRQUNwRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUM7UUFDdEQsTUFBTSxJQUFJLEdBQVcsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxRQUFRLENBQUMsRUFBRSxLQUFLLENBQUMsR0FBRyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDL0gsSUFBSSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQzFDLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUMzQixDQUFDO0lBQ0wsQ0FBQzt1R0FqQlEsa0JBQWtCOzJGQUFsQixrQkFBa0I7OzJGQUFsQixrQkFBa0I7a0JBSDlCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGtCQUFrQjtpQkFDL0I7K0VBTUcsU0FBUztzQkFEUixZQUFZO3VCQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBBU1cgKEEgU29mdHdhcmUgV29ybGQpIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGVcbiAqL1xuXG4vLyBpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vLyBARGlyZWN0aXZlKHtcbi8vICAgICBzZWxlY3RvcjogJ2lucHV0W2Fzd051bWJlcnNPbmx5XSdcbi8vIH0pXG4vLyBleHBvcnQgY2xhc3MgQXN3TnVtYmVyRGlyZWN0aXZlIHtcblxuLy8gICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBlbGVtZW50OiBFbGVtZW50UmVmKSB7IH1cblxuLy8gICAgIEBIb3N0TGlzdGVuZXIoJ2lucHV0JywgWyckZXZlbnQnXSkgb25JbnB1dENoYW5nZShldmVudDogYW55KTogdm9pZCB7XG4vLyAgICAgICAgIGNvbnN0IGluaXRhbFZhbHVlID0gdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQudmFsdWU7XG4vLyAgICAgICAgIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LnZhbHVlID0gaW5pdGFsVmFsdWUucmVwbGFjZSgvW14wLTldKi9nLCAnJyk7XG4vLyAgICAgICAgIGlmIChpbml0YWxWYWx1ZSAhPT0gdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQudmFsdWUpIHtcbi8vICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuLy8gICAgICAgICB9XG4vLyAgICAgfVxuLy8gfVxuaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbYXN3TnVtYmVyc09ubHldJ1xufSlcbmV4cG9ydCBjbGFzcyBBc3dOdW1iZXJEaXJlY3RpdmUge1xuICAgIHByaXZhdGUgcmVnZXg6IFJlZ0V4cCA9IG5ldyBSZWdFeHAoL15cXGQqXFwuP1xcZHswLDR9JC9nKTtcbiAgICBwcml2YXRlIHNwZWNpYWxLZXlzOiBBcnJheTxzdHJpbmc+ID0gWydCYWNrc3BhY2UnLCAnVGFiJywgJ0VuZCcsICdIb21lJywgJ0Fycm93TGVmdCcsICdBcnJvd1JpZ2h0JywgJ0RlbCcsICdEZWxldGUnXTtcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsOiBFbGVtZW50UmVmKSB7fVxuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKVxuICAgIG9uS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgICAgICBjb25zb2xlLmxvZyh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQudmFsdWUpO1xuICAgICAgICAvLyBBbGxvdyBCYWNrc3BhY2UsIHRhYiwgZW5kLCBhbmQgaG9tZSBrZXlzXG4gICAgICAgIGlmICh0aGlzLnNwZWNpYWxLZXlzLmluZGV4T2YoZXZlbnQua2V5KSAhPT0gLTEpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjdXJyZW50OiBzdHJpbmcgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQudmFsdWU7XG4gICAgICAgIGNvbnN0IHBvc2l0aW9uID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50LnNlbGVjdGlvblN0YXJ0O1xuICAgICAgICBjb25zdCBuZXh0OiBzdHJpbmcgPSBbY3VycmVudC5zbGljZSgwLCBwb3NpdGlvbiksIGV2ZW50LmtleSA9PT0gJ0RlY2ltYWwnID8gJy4nIDogZXZlbnQua2V5LCBjdXJyZW50LnNsaWNlKHBvc2l0aW9uKV0uam9pbignJyk7XG4gICAgICAgIGlmIChuZXh0ICYmICFTdHJpbmcobmV4dCkubWF0Y2godGhpcy5yZWdleCkpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=