UNPKG

@sixbell-telco/sdk

Version:

A collection of reusable components designed for use in Sixbell Telco Angular projects

53 lines (49 loc) 2.17 kB
import * as i0 from '@angular/core'; import { input, HostListener, Directive } from '@angular/core'; class OnlyNumbersDirective { onlyNumbers = input(false); constructor() { } blockPaste(event) { if (!this.onlyNumbers()) return true; const onlyNumbersReg = new RegExp('^[0-9]+$'); const clipboardData = event.clipboardData; if (!clipboardData) return true; const pastedValue = clipboardData.getData('Text'); if (!onlyNumbersReg.test(pastedValue)) { event.preventDefault(); return false; } return true; } onKeyPress(event) { if (!this.onlyNumbers()) return true; const key = event.key; if (!/^[0-9]$/.test(key)) { event.preventDefault(); return false; } return true; } static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.0", ngImport: i0, type: OnlyNumbersDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.0", type: OnlyNumbersDirective, isStandalone: true, selector: "[stOnlynumbers]", inputs: { onlyNumbers: { classPropertyName: "onlyNumbers", publicName: "onlyNumbers", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "paste": "blockPaste($event)", "keypress": "onKeyPress($event)" } }, ngImport: i0 }); } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.0", ngImport: i0, type: OnlyNumbersDirective, decorators: [{ type: Directive, args: [{ selector: '[stOnlynumbers]', }] }], ctorParameters: () => [], propDecorators: { blockPaste: [{ type: HostListener, args: ['paste', ['$event']] }], onKeyPress: [{ type: HostListener, args: ['keypress', ['$event']] }] } }); /** * Generated bundle index. Do not edit. */ export { OnlyNumbersDirective }; //# sourceMappingURL=sixbell-telco-sdk-directives-only-numbers.mjs.map