@sixbell-telco/sdk
Version:
A collection of reusable components designed for use in Sixbell Telco Angular projects
53 lines (49 loc) • 2.17 kB
JavaScript
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