ngx-lower-case-directive
Version:
This directive helps to convert an input text value to lower case.
84 lines (78 loc) • 4.09 kB
JavaScript
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