UNPKG

ngx-upper-case-directive

Version:

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

84 lines (78 loc) 4.09 kB
import * as i0 from '@angular/core'; import { Directive, Input, HostListener, NgModule } from '@angular/core'; class NgxUpperCaseDirective { 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.toUpperCase(); this.dispatchEvent(el, 'input'); } onBlur(el, value) { if ((!this.upperCase || 'blur' === this.upperCase) && 'function' === typeof value.toUpperCase && value.toUpperCase() !== value) { this.convertValue(el, value); this.dispatchEvent(el, 'blur'); // in case updateOn is set to blur } } onInput(el, value) { if (!this.upperCase && 'function' === typeof value.toUpperCase && value.toUpperCase() !== 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 */ NgxUpperCaseDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: NgxUpperCaseDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); /** @nocollapse */ /** @nocollapse */ NgxUpperCaseDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.3", type: NgxUpperCaseDirective, selector: "input[upperCase]:not([lowerCase]),textarea[upperCase]:not([lowerCase])", inputs: { upperCase: "upperCase" }, 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: NgxUpperCaseDirective, decorators: [{ type: Directive, args: [{ selector: 'input[upperCase]:not([lowerCase]),textarea[upperCase]:not([lowerCase])', }] }], propDecorators: { upperCase: [{ type: Input }], onBlur: [{ type: HostListener, args: ['blur', ['$event.target', '$event.target.value']] }], onInput: [{ type: HostListener, args: ['input', ['$event.target', '$event.target.value']] }] } }); class NgxUpperCaseDirectiveModule { } /** @nocollapse */ /** @nocollapse */ NgxUpperCaseDirectiveModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: NgxUpperCaseDirectiveModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); /** @nocollapse */ /** @nocollapse */ NgxUpperCaseDirectiveModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: NgxUpperCaseDirectiveModule, declarations: [NgxUpperCaseDirective], exports: [NgxUpperCaseDirective] }); /** @nocollapse */ /** @nocollapse */ NgxUpperCaseDirectiveModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: NgxUpperCaseDirectiveModule, imports: [[]] }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: NgxUpperCaseDirectiveModule, decorators: [{ type: NgModule, args: [{ imports: [], declarations: [NgxUpperCaseDirective], exports: [NgxUpperCaseDirective], }] }] }); /* * Public API Surface of ngx-upper-case-directive */ /** * Generated bundle index. Do not edit. */ export { NgxUpperCaseDirective, NgxUpperCaseDirectiveModule }; //# sourceMappingURL=ngx-upper-case-directive.mjs.map