UNPKG

ngx-lower-case-directive

Version:

This directive helps to convert an input text value to lower case.

84 lines (78 loc) 4.09 kB
import * as i0 from '@angular/core'; import { Directive, Input, HostListener, NgModule } from '@angular/core'; class NgxLowerCaseDirective { getCaret(el) { return { start: el.selectionStart, end: el.selectionEnd, }; } setCaret(el, start, end) { el.selectionStart = start; el.selectionEnd = end; el.focus(); } dispatchEvent(el, eventType) { const event = document.createEvent('Event'); event.initEvent(eventType, false, false); el.dispatchEvent(event); } convertValue(el, value) { el.value = value.toLowerCase(); this.dispatchEvent(el, 'input'); } onBlur(el, value) { if ((!this.lowerCase || 'blur' === this.lowerCase) && 'function' === typeof value.toLowerCase && value.toLowerCase() !== value) { this.convertValue(el, value); this.dispatchEvent(el, 'blur'); // in case updateOn is set to blur } } onInput(el, value) { if (!this.lowerCase && 'function' === typeof value.toLowerCase && value.toLowerCase() !== value) { let { start, end } = this.getCaret(el); if (value[0] === ' ' && start === 1 && end === 1) { start = 0; end = 0; } this.convertValue(el, value); this.setCaret(el, start, end); } } } /** @nocollapse */ /** @nocollapse */ NgxLowerCaseDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: NgxLowerCaseDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); /** @nocollapse */ /** @nocollapse */ NgxLowerCaseDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.3", type: NgxLowerCaseDirective, selector: "input[lowerCase]:not([upperCase]),textarea[lowerCase]:not([upperCase])", inputs: { lowerCase: "lowerCase" }, host: { listeners: { "blur": "onBlur($event.target,$event.target.value)", "input": "onInput($event.target,$event.target.value)" } }, ngImport: i0 }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: NgxLowerCaseDirective, decorators: [{ type: Directive, args: [{ selector: 'input[lowerCase]:not([upperCase]),textarea[lowerCase]:not([upperCase])', }] }], propDecorators: { lowerCase: [{ type: Input }], onBlur: [{ type: HostListener, args: ['blur', ['$event.target', '$event.target.value']] }], onInput: [{ type: HostListener, args: ['input', ['$event.target', '$event.target.value']] }] } }); class NgxLowerCaseDirectiveModule { } /** @nocollapse */ /** @nocollapse */ NgxLowerCaseDirectiveModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: NgxLowerCaseDirectiveModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); /** @nocollapse */ /** @nocollapse */ NgxLowerCaseDirectiveModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: NgxLowerCaseDirectiveModule, declarations: [NgxLowerCaseDirective], exports: [NgxLowerCaseDirective] }); /** @nocollapse */ /** @nocollapse */ NgxLowerCaseDirectiveModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: NgxLowerCaseDirectiveModule, imports: [[]] }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: NgxLowerCaseDirectiveModule, decorators: [{ type: NgModule, args: [{ imports: [], declarations: [NgxLowerCaseDirective], exports: [NgxLowerCaseDirective], }] }] }); /* * Public API Surface of ngx-lower-case-directive */ /** * Generated bundle index. Do not edit. */ export { NgxLowerCaseDirective, NgxLowerCaseDirectiveModule }; //# sourceMappingURL=ngx-lower-case-directive.mjs.map