UNPKG

@catull/igniteui-angular

Version:

Ignite UI for Angular is a dependency-free Angular toolkit for building modern web apps

138 lines 9.49 kB
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=