UNPKG

@vraj.patel/viitorcloud-ng-utility-library-test-9

Version:

The **ViitorCloud NG Utility Library** developed with the Angular 16 framework, stands out for its exceptional adaptability and reusability within Angular projects. This comprehensive collection encompasses utility services, directives, and components str

61 lines 7.9 kB
import { Directive, HostListener, Input } from "@angular/core"; import { REGEX_CONSTANTS, RegexType } from "../constants/app.constant"; import * as i0 from "@angular/core"; export class VcAllowNumberOnlyDirective { /* The `@Input() set regexType(type: string)` is a setter method for the `regexType` input property. It allows the value of `regexType` to be set from the outside. */ set regexType(type) { switch (type) { case RegexType.decimal: this.regex = REGEX_CONSTANTS.DECIMAL_REGEX; break; case RegexType.integer: this.regex = REGEX_CONSTANTS.INTEGER_REGEX; break; default: this.regex = REGEX_CONSTANTS.DECIMAL_REGEX; break; } } /** * The constructor function takes an ElementRef parameter and assigns it to the private el property. * @param {ElementRef} el - The `el` parameter is of type `ElementRef`, which is a wrapper around a * native element inside a View. It can be used to access properties and methods of the native * element. */ constructor(el) { this.el = el; /* The `@Input() vcAllowNumberOnly = false;` is a decorator that allows the `vcAllowNumberOnly` property to be set from the outside. It is initialized with a default value of `false`. */ this.vcAllowNumberOnly = false; } /* The `@HostListener('keypress', ['']) keyPress(event: KeyboardEvent): void` is a decorator that listens for the 'keypress' event on the host element and triggers the `keyPress` method when the event occurs. */ keyPress(event) { const val = this.el.nativeElement.value + event.key; if (this.vcAllowNumberOnly) { if (!this.regex.test(val)) { event.preventDefault(); event.stopPropagation(); } } } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: VcAllowNumberOnlyDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); } static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.0", type: VcAllowNumberOnlyDirective, isStandalone: true, selector: "[vcAllowNumberOnly]", inputs: { vcAllowNumberOnly: "vcAllowNumberOnly", regexType: "regexType" }, host: { listeners: { "keypress": "keyPress($event)" } }, ngImport: i0 }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: VcAllowNumberOnlyDirective, decorators: [{ type: Directive, args: [{ selector: '[vcAllowNumberOnly]', standalone: true }] }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { vcAllowNumberOnly: [{ type: Input }], regexType: [{ type: Input }], keyPress: [{ type: HostListener, args: ['keypress', ['$event']] }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmMtYWxsb3ctbnVtYmVyLW9ubHkuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmlpdG9yY2xvdWQtbmctdXRpbGl0eS1saWJyYXJ5L3NyYy9saWIvZGlyZWN0aXZlcy92Yy1hbGxvdy1udW1iZXItb25seS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7O0FBTXZFLE1BQU0sT0FBTywwQkFBMEI7SUFPbkM7cUVBQ2lFO0lBQ2pFLElBQWEsU0FBUyxDQUFDLElBQVk7UUFDL0IsUUFBUSxJQUFJLEVBQUU7WUFDVixLQUFLLFNBQVMsQ0FBQyxPQUFPO2dCQUNsQixJQUFJLENBQUMsS0FBSyxHQUFHLGVBQWUsQ0FBQyxhQUFhLENBQUM7Z0JBQzNDLE1BQU07WUFDVixLQUFLLFNBQVMsQ0FBQyxPQUFPO2dCQUNsQixJQUFJLENBQUMsS0FBSyxHQUFHLGVBQWUsQ0FBQyxhQUFhLENBQUM7Z0JBQzNDLE1BQU07WUFDVjtnQkFDSSxJQUFJLENBQUMsS0FBSyxHQUFHLGVBQWUsQ0FBQyxhQUFhLENBQUM7Z0JBQzNDLE1BQU07U0FDYjtJQUNMLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILFlBQ1ksRUFBYztRQUFkLE9BQUUsR0FBRixFQUFFLENBQVk7UUE1QjFCO2tHQUMwRjtRQUNqRixzQkFBaUIsR0FBRyxLQUFLLENBQUM7SUEyQi9CLENBQUM7SUFFTDs7b0JBRWdCO0lBQ3NCLFFBQVEsQ0FBQyxLQUFvQjtRQUMvRCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQztRQUNwRCxJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtZQUN4QixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ3ZCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztnQkFDdkIsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO2FBQzNCO1NBQ0o7SUFDTCxDQUFDOzhHQTVDUSwwQkFBMEI7a0dBQTFCLDBCQUEwQjs7MkZBQTFCLDBCQUEwQjtrQkFKdEMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUscUJBQXFCO29CQUMvQixVQUFVLEVBQUUsSUFBSTtpQkFDbkI7aUdBS1ksaUJBQWlCO3NCQUF6QixLQUFLO2dCQUtPLFNBQVM7c0JBQXJCLEtBQUs7Z0JBMkJnQyxRQUFRO3NCQUE3QyxZQUFZO3VCQUFDLFVBQVUsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBJbnB1dCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IFJFR0VYX0NPTlNUQU5UUywgUmVnZXhUeXBlIH0gZnJvbSBcIi4uL2NvbnN0YW50cy9hcHAuY29uc3RhbnRcIjtcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gICAgc2VsZWN0b3I6ICdbdmNBbGxvd051bWJlck9ubHldJyxcclxuICAgIHN0YW5kYWxvbmU6IHRydWVcclxufSlcclxuZXhwb3J0IGNsYXNzIFZjQWxsb3dOdW1iZXJPbmx5RGlyZWN0aXZlIHtcclxuXHJcbiAgICAvKiBUaGUgYEBJbnB1dCgpIHZjQWxsb3dOdW1iZXJPbmx5ID0gZmFsc2U7YCBpcyBhIGRlY29yYXRvciB0aGF0IGFsbG93cyB0aGUgYHZjQWxsb3dOdW1iZXJPbmx5YFxyXG4gICAgcHJvcGVydHkgdG8gYmUgc2V0IGZyb20gdGhlIG91dHNpZGUuIEl0IGlzIGluaXRpYWxpemVkIHdpdGggYSBkZWZhdWx0IHZhbHVlIG9mIGBmYWxzZWAuICovXHJcbiAgICBASW5wdXQoKSB2Y0FsbG93TnVtYmVyT25seSA9IGZhbHNlO1xyXG4gICAgcmVnZXghOiBSZWdFeHA7XHJcblxyXG4gICAgLyogVGhlIGBASW5wdXQoKSBzZXQgcmVnZXhUeXBlKHR5cGU6IHN0cmluZylgIGlzIGEgc2V0dGVyIG1ldGhvZCBmb3IgdGhlIGByZWdleFR5cGVgIGlucHV0IHByb3BlcnR5LlxyXG4gICAgSXQgYWxsb3dzIHRoZSB2YWx1ZSBvZiBgcmVnZXhUeXBlYCB0byBiZSBzZXQgZnJvbSB0aGUgb3V0c2lkZS4gKi9cclxuICAgIEBJbnB1dCgpIHNldCByZWdleFR5cGUodHlwZTogc3RyaW5nKSB7XHJcbiAgICAgICAgc3dpdGNoICh0eXBlKSB7XHJcbiAgICAgICAgICAgIGNhc2UgUmVnZXhUeXBlLmRlY2ltYWw6XHJcbiAgICAgICAgICAgICAgICB0aGlzLnJlZ2V4ID0gUkVHRVhfQ09OU1RBTlRTLkRFQ0lNQUxfUkVHRVg7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBSZWdleFR5cGUuaW50ZWdlcjpcclxuICAgICAgICAgICAgICAgIHRoaXMucmVnZXggPSBSRUdFWF9DT05TVEFOVFMuSU5URUdFUl9SRUdFWDtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgdGhpcy5yZWdleCA9IFJFR0VYX0NPTlNUQU5UUy5ERUNJTUFMX1JFR0VYO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIGNvbnN0cnVjdG9yIGZ1bmN0aW9uIHRha2VzIGFuIEVsZW1lbnRSZWYgcGFyYW1ldGVyIGFuZCBhc3NpZ25zIGl0IHRvIHRoZSBwcml2YXRlIGVsIHByb3BlcnR5LlxyXG4gICAgICogQHBhcmFtIHtFbGVtZW50UmVmfSBlbCAtIFRoZSBgZWxgIHBhcmFtZXRlciBpcyBvZiB0eXBlIGBFbGVtZW50UmVmYCwgd2hpY2ggaXMgYSB3cmFwcGVyIGFyb3VuZCBhXHJcbiAgICAgKiBuYXRpdmUgZWxlbWVudCBpbnNpZGUgYSBWaWV3LiBJdCBjYW4gYmUgdXNlZCB0byBhY2Nlc3MgcHJvcGVydGllcyBhbmQgbWV0aG9kcyBvZiB0aGUgbmF0aXZlXHJcbiAgICAgKiBlbGVtZW50LlxyXG4gICAgICovXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIGVsOiBFbGVtZW50UmVmXHJcbiAgICApIHsgfVxyXG5cclxuICAgIC8qIFRoZSBgQEhvc3RMaXN0ZW5lcigna2V5cHJlc3MnLCBbJyddKSBrZXlQcmVzcyhldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWRgIGlzIGEgZGVjb3JhdG9yIHRoYXRcclxuICAgIGxpc3RlbnMgZm9yIHRoZSAna2V5cHJlc3MnIGV2ZW50IG9uIHRoZSBob3N0IGVsZW1lbnQgYW5kIHRyaWdnZXJzIHRoZSBga2V5UHJlc3NgIG1ldGhvZCB3aGVuIHRoZVxyXG4gICAgZXZlbnQgb2NjdXJzLiAqL1xyXG4gICAgQEhvc3RMaXN0ZW5lcigna2V5cHJlc3MnLCBbJyRldmVudCddKSBrZXlQcmVzcyhldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IHZhbCA9IHRoaXMuZWwubmF0aXZlRWxlbWVudC52YWx1ZSArIGV2ZW50LmtleTtcclxuICAgICAgICBpZiAodGhpcy52Y0FsbG93TnVtYmVyT25seSkge1xyXG4gICAgICAgICAgICBpZiAoIXRoaXMucmVnZXgudGVzdCh2YWwpKSB7XHJcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG59XHJcbiJdfQ==