@catull/igniteui-angular
Version:
Ignite UI for Angular is a dependency-free Angular toolkit for building modern web apps
138 lines • 9.49 kB
JavaScript
import { __decorate, __metadata } from "tslib";
import { Directive, ElementRef, HostListener, Input, NgModule } from '@angular/core';
let IgxTextSelectionDirective = class IgxTextSelectionDirective {
constructor(element) {
this.element = element;
this.selectionState = true;
}
/**
* Returns whether the input element is selectable through the directive.
*
* ```typescript
* // get
* @ViewChild('firstName',
* {read: IgxTextSelectionDirective})
* public firstName: IgxTextSelectionDirective;
*
* public getFirstNameSelectionStatus() {
* return this.firstName.selected;
* }
* ```
*/
get selected() {
return this.selectionState;
}
/**
* Determines whether the input element could be selected through the directive.
*
*```html
* <!--set-->
* <input
* type="text"
* id="firstName"
* [igxTextSelection]="true">
* </input>
*
* <input
* type="text"
* id="lastName"
* igxTextSelection
* [selected]="true">
* </input>
* ```
*/
set selected(val) {
this.selectionState = val;
}
/**
* Returns the nativeElement of the element where the directive was applied.
*
* ```html
* <input
* type="text"
* id="firstName"
* igxTextSelection>
* </input>
* ```
*
* ```typescript
* @ViewChild('firstName',
* {read: IgxTextSelectionDirective})
* public inputElement: IgxTextSelectionDirective;
*
* public getNativeElement() {
* return this.inputElement.nativeElement;
* }
* ```
*/
get nativeElement() {
return this.element.nativeElement;
}
/**
* @hidden
*/
onFocus() {
this.trigger();
}
/**
* Triggers the selection of the element if it is marked as selectable.
*
* ```html
* <input
* type="text"
* id="firstName"
* igxTextSelection>
* </input>
* ```
*
* ```typescript
* @ViewChild('firstName',
* {read: IgxTextSelectionDirective})
* public inputElement: IgxTextSelectionDirective;
*
* public triggerElementSelection() {
* this.inputElement.trigger();
* }
* ```
*/
trigger() {
if (this.selected && this.nativeElement.value.length) {
requestAnimationFrame(() => this.nativeElement.setSelectionRange(0, this.nativeElement.value.length));
}
}
};
IgxTextSelectionDirective.ctorParameters = () => [
{ type: ElementRef }
];
__decorate([
Input('igxTextSelection'),
__metadata("design:type", Boolean),
__metadata("design:paramtypes", [Boolean])
], IgxTextSelectionDirective.prototype, "selected", null);
__decorate([
HostListener('focus'),
__metadata("design:type", Function),
__metadata("design:paramtypes", []),
__metadata("design:returntype", void 0)
], IgxTextSelectionDirective.prototype, "onFocus", null);
IgxTextSelectionDirective = __decorate([
Directive({
exportAs: 'igxTextSelection',
selector: '[igxTextSelection]'
}),
__metadata("design:paramtypes", [ElementRef])
], IgxTextSelectionDirective);
export { IgxTextSelectionDirective };
/**
* @hidden
*/
let IgxTextSelectionModule = class IgxTextSelectionModule {
};
IgxTextSelectionModule = __decorate([
NgModule({
declarations: [IgxTextSelectionDirective],
exports: [IgxTextSelectionDirective]
})
], IgxTextSelectionModule);
export { IgxTextSelectionModule };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1zZWxlY3Rpb24uZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vaWduaXRldWktYW5ndWxhci8iLCJzb3VyY2VzIjpbImxpYi9kaXJlY3RpdmVzL3RleHQtc2VsZWN0aW9uL3RleHQtc2VsZWN0aW9uLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFNckYsSUFBYSx5QkFBeUIsR0FBdEMsTUFBYSx5QkFBeUI7SUErRWxDLFlBQW9CLE9BQW1CO1FBQW5CLFlBQU8sR0FBUCxPQUFPLENBQVk7UUE3RS9CLG1CQUFjLEdBQUcsSUFBSSxDQUFDO0lBNkVhLENBQUM7SUEzRTVDOzs7Ozs7Ozs7Ozs7O09BYUc7SUFFSCxJQUFJLFFBQVE7UUFDUixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUM7SUFDL0IsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7T0FrQkc7SUFDSCxJQUFJLFFBQVEsQ0FBQyxHQUFZO1FBQ3JCLElBQUksQ0FBQyxjQUFjLEdBQUcsR0FBRyxDQUFDO0lBQzlCLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0FvQkc7SUFDSCxJQUFJLGFBQWE7UUFDYixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDO0lBQ3RDLENBQUM7SUFFRDs7T0FFRztJQUVILE9BQU87UUFDSCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDbkIsQ0FBQztJQUlEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztPQW9CRztJQUNILE9BQU87UUFDSCxJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFO1lBQ2xELHFCQUFxQixDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7U0FDekc7SUFDTCxDQUFDO0NBQ0osQ0FBQTs7WUE1QmdDLFVBQVU7O0FBNUR2QztJQURDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQzs7O3lEQUd6QjtBQXNERDtJQURDLFlBQVksQ0FBQyxPQUFPLENBQUM7Ozs7d0RBR3JCO0FBN0VRLHlCQUF5QjtJQUpyQyxTQUFTLENBQUM7UUFDUCxRQUFRLEVBQUUsa0JBQWtCO1FBQzVCLFFBQVEsRUFBRSxvQkFBb0I7S0FDakMsQ0FBQztxQ0FnRitCLFVBQVU7R0EvRTlCLHlCQUF5QixDQTJHckM7U0EzR1kseUJBQXlCO0FBNkd0Qzs7R0FFRztBQUtILElBQWEsc0JBQXNCLEdBQW5DLE1BQWEsc0JBQXNCO0NBQUksQ0FBQTtBQUExQixzQkFBc0I7SUFKbEMsUUFBUSxDQUFDO1FBQ04sWUFBWSxFQUFFLENBQUMseUJBQXlCLENBQUM7UUFDekMsT0FBTyxFQUFFLENBQUMseUJBQXlCLENBQUM7S0FDdkMsQ0FBQztHQUNXLHNCQUFzQixDQUFJO1NBQTFCLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBJbnB1dCwgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQERpcmVjdGl2ZSh7XG4gICAgZXhwb3J0QXM6ICdpZ3hUZXh0U2VsZWN0aW9uJyxcbiAgICBzZWxlY3RvcjogJ1tpZ3hUZXh0U2VsZWN0aW9uXSdcbn0pXG5leHBvcnQgY2xhc3MgSWd4VGV4dFNlbGVjdGlvbkRpcmVjdGl2ZSB7XG5cbiAgICBwcml2YXRlIHNlbGVjdGlvblN0YXRlID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgd2hldGhlciB0aGUgaW5wdXQgZWxlbWVudCBpcyBzZWxlY3RhYmxlIHRocm91Z2ggdGhlIGRpcmVjdGl2ZS5cbiAgICAgKlxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiAvLyBnZXRcbiAgICAgKiBAVmlld0NoaWxkKCdmaXJzdE5hbWUnLFxuICAgICAqICB7cmVhZDogSWd4VGV4dFNlbGVjdGlvbkRpcmVjdGl2ZX0pXG4gICAgICogcHVibGljIGZpcnN0TmFtZTogSWd4VGV4dFNlbGVjdGlvbkRpcmVjdGl2ZTtcbiAgICAgKlxuICAgICAqIHB1YmxpYyBnZXRGaXJzdE5hbWVTZWxlY3Rpb25TdGF0dXMoKSB7XG4gICAgICogIHJldHVybiB0aGlzLmZpcnN0TmFtZS5zZWxlY3RlZDtcbiAgICAgKiB9XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQElucHV0KCdpZ3hUZXh0U2VsZWN0aW9uJylcbiAgICBnZXQgc2VsZWN0ZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnNlbGVjdGlvblN0YXRlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqICBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlIGlucHV0IGVsZW1lbnQgY291bGQgYmUgc2VsZWN0ZWQgdGhyb3VnaCB0aGUgZGlyZWN0aXZlLlxuICAgICAqXG4gICAgICpgYGBodG1sXG4gICAgICogPCEtLXNldC0tPlxuICAgICAqIDxpbnB1dFxuICAgICAqICAgdHlwZT1cInRleHRcIlxuICAgICAqICAgaWQ9XCJmaXJzdE5hbWVcIlxuICAgICAqICAgW2lneFRleHRTZWxlY3Rpb25dPVwidHJ1ZVwiPlxuICAgICAqIDwvaW5wdXQ+XG4gICAgICpcbiAgICAgKiA8aW5wdXRcbiAgICAgKiAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgKiAgIGlkPVwibGFzdE5hbWVcIlxuICAgICAqICAgaWd4VGV4dFNlbGVjdGlvblxuICAgICAqICAgW3NlbGVjdGVkXT1cInRydWVcIj5cbiAgICAgKiA8L2lucHV0PlxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIHNldCBzZWxlY3RlZCh2YWw6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5zZWxlY3Rpb25TdGF0ZSA9IHZhbDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBuYXRpdmVFbGVtZW50IG9mIHRoZSBlbGVtZW50IHdoZXJlIHRoZSBkaXJlY3RpdmUgd2FzIGFwcGxpZWQuXG4gICAgICpcbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlucHV0XG4gICAgICogICB0eXBlPVwidGV4dFwiXG4gICAgKiAgICBpZD1cImZpcnN0TmFtZVwiXG4gICAgICogICBpZ3hUZXh0U2VsZWN0aW9uPlxuICAgICAqIDwvaW5wdXQ+XG4gICAgICogYGBgXG4gICAgICpcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogQFZpZXdDaGlsZCgnZmlyc3ROYW1lJyxcbiAgICAgKiAge3JlYWQ6IElneFRleHRTZWxlY3Rpb25EaXJlY3RpdmV9KVxuICAgICAqIHB1YmxpYyBpbnB1dEVsZW1lbnQ6IElneFRleHRTZWxlY3Rpb25EaXJlY3RpdmU7XG4gICAgICpcbiAgICAgKiBwdWJsaWMgZ2V0TmF0aXZlRWxlbWVudCgpIHtcbiAgICAgKiAgcmV0dXJuIHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgICogfVxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIGdldCBuYXRpdmVFbGVtZW50KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ2ZvY3VzJylcbiAgICBvbkZvY3VzKCkge1xuICAgICAgICB0aGlzLnRyaWdnZXIoKTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsZW1lbnQ6IEVsZW1lbnRSZWYpIHsgfVxuXG4gICAgLyoqXG4gICAgICogVHJpZ2dlcnMgdGhlIHNlbGVjdGlvbiBvZiB0aGUgZWxlbWVudCBpZiBpdCBpcyBtYXJrZWQgYXMgc2VsZWN0YWJsZS5cbiAgICAgKlxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aW5wdXRcbiAgICAgKiAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgKiAgIGlkPVwiZmlyc3ROYW1lXCJcbiAgICAgKiAgIGlneFRleHRTZWxlY3Rpb24+XG4gICAgICogPC9pbnB1dD5cbiAgICAgKiBgYGBcbiAgICAgKlxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBAVmlld0NoaWxkKCdmaXJzdE5hbWUnLFxuICAgICAqICB7cmVhZDogSWd4VGV4dFNlbGVjdGlvbkRpcmVjdGl2ZX0pXG4gICAgICogcHVibGljIGlucHV0RWxlbWVudDogSWd4VGV4dFNlbGVjdGlvbkRpcmVjdGl2ZTtcbiAgICAgKlxuICAgICAqIHB1YmxpYyB0cmlnZ2VyRWxlbWVudFNlbGVjdGlvbigpIHtcbiAgICAgKiAgdGhpcy5pbnB1dEVsZW1lbnQudHJpZ2dlcigpO1xuICAgICAqIH1cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICB0cmlnZ2VyKCkge1xuICAgICAgICBpZiAodGhpcy5zZWxlY3RlZCAmJiB0aGlzLm5hdGl2ZUVsZW1lbnQudmFsdWUubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4gdGhpcy5uYXRpdmVFbGVtZW50LnNldFNlbGVjdGlvblJhbmdlKDAsIHRoaXMubmF0aXZlRWxlbWVudC52YWx1ZS5sZW5ndGgpKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyoqXG4gKiBAaGlkZGVuXG4gKi9cbkBOZ01vZHVsZSh7XG4gICAgZGVjbGFyYXRpb25zOiBbSWd4VGV4dFNlbGVjdGlvbkRpcmVjdGl2ZV0sXG4gICAgZXhwb3J0czogW0lneFRleHRTZWxlY3Rpb25EaXJlY3RpdmVdXG59KVxuZXhwb3J0IGNsYXNzIElneFRleHRTZWxlY3Rpb25Nb2R1bGUgeyB9XG4iXX0=