@catull/igniteui-angular
Version:
Ignite UI for Angular is a dependency-free Angular toolkit for building modern web apps
95 lines • 8.07 kB
JavaScript
import { __decorate, __metadata, __param } from "tslib";
import { Directive, ElementRef, Input, NgModule, Optional, Inject, Self } from '@angular/core';
import { NG_VALUE_ACCESSOR } from '@angular/forms';
let IgxFocusDirective = class IgxFocusDirective {
constructor(element, comp) {
this.element = element;
this.comp = comp;
this.focusState = true;
}
/**
* Returns the state of the igxFocus.
* ```typescript
* @ViewChild('focusContainer', {read: IgxFocusDirective})
* public igxFocus: IgxFocusDirective;
* let isFocusOn = this.igxFocus.focused;
* ```
* @memberof IgxFocusDirective
*/
get focused() {
return this.focusState;
}
/**
* Sets the state of the igxFocus.
* ```html
* <igx-input-group >
* <input #focusContainer igxInput [igxFocus]="true"/>
* </igx-input-group>
* ```
* @memberof IgxFocusDirective
*/
set focused(val) {
this.focusState = val;
this.trigger();
}
/**
* Gets the native element of the igxFocus.
* ```typescript
* @ViewChild('focusContainer', {read: IgxFocusDirective})
* public igxFocus: IgxFocusDirective;
* let igxFocusNativeElement = this.igxFocus.nativeElement;
* ```
* @memberof IgxFocusDirective
*/
get nativeElement() {
if (this.comp && this.comp[0] && this.comp[0].getEditElement) {
return this.comp[0].getEditElement();
}
return this.element.nativeElement;
}
/**
* Triggers the igxFocus state.
* ```typescript
* @ViewChild('focusContainer', {read: IgxFocusDirective})
* public igxFocus: IgxFocusDirective;
* this.igxFocus.trigger();
* ```
* @memberof IgxFocusDirective
*/
trigger() {
if (this.focusState) {
requestAnimationFrame(() => this.nativeElement.focus());
}
}
};
IgxFocusDirective.ctorParameters = () => [
{ type: ElementRef },
{ type: Array, decorators: [{ type: Inject, args: [NG_VALUE_ACCESSOR,] }, { type: Self }, { type: Optional }] }
];
__decorate([
Input('igxFocus'),
__metadata("design:type", Boolean),
__metadata("design:paramtypes", [Boolean])
], IgxFocusDirective.prototype, "focused", null);
IgxFocusDirective = __decorate([
Directive({
exportAs: 'igxFocus',
selector: '[igxFocus]'
}),
__param(1, Inject(NG_VALUE_ACCESSOR)), __param(1, Self()), __param(1, Optional()),
__metadata("design:paramtypes", [ElementRef, Array])
], IgxFocusDirective);
export { IgxFocusDirective };
/**
* @hidden
*/
let IgxFocusModule = class IgxFocusModule {
};
IgxFocusModule = __decorate([
NgModule({
declarations: [IgxFocusDirective],
exports: [IgxFocusDirective]
})
], IgxFocusModule);
export { IgxFocusModule };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9jdXMuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vaWduaXRldWktYW5ndWxhci8iLCJzb3VyY2VzIjpbImxpYi9kaXJlY3RpdmVzL2ZvY3VzL2ZvY3VzLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQU9uRCxJQUFhLGlCQUFpQixHQUE5QixNQUFhLGlCQUFpQjtJQTZDMUIsWUFBb0IsT0FBbUIsRUFBeUQsSUFBWTtRQUF4RixZQUFPLEdBQVAsT0FBTyxDQUFZO1FBQXlELFNBQUksR0FBSixJQUFJLENBQVE7UUEzQ3BHLGVBQVUsR0FBRyxJQUFJLENBQUM7SUEyQ3NGLENBQUM7SUExQ2pIOzs7Ozs7OztPQVFHO0lBRUgsSUFBSSxPQUFPO1FBQ1AsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQzNCLENBQUM7SUFDRDs7Ozs7Ozs7T0FRRztJQUNILElBQUksT0FBTyxDQUFDLEdBQVk7UUFDcEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxHQUFHLENBQUM7UUFDdEIsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFDRDs7Ozs7Ozs7T0FRRztJQUNILElBQUksYUFBYTtRQUNiLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxFQUFFO1lBQzFELE9BQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQW9CLENBQUMsY0FBYyxFQUFFLENBQUM7U0FDNUQ7UUFDRCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDO0lBQ3RDLENBQUM7SUFHRDs7Ozs7Ozs7T0FRRztJQUNILE9BQU87UUFDSCxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDakIscUJBQXFCLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1NBQzNEO0lBQ0wsQ0FBQztDQUNKLENBQUE7O1lBZmdDLFVBQVU7d0NBQUcsTUFBTSxTQUFDLGlCQUFpQixjQUFHLElBQUksWUFBSSxRQUFROztBQWhDckY7SUFEQyxLQUFLLENBQUMsVUFBVSxDQUFDOzs7Z0RBR2pCO0FBZlEsaUJBQWlCO0lBSjdCLFNBQVMsQ0FBQztRQUNQLFFBQVEsRUFBRSxVQUFVO1FBQ3BCLFFBQVEsRUFBRSxZQUFZO0tBQ3pCLENBQUM7SUE4QzRDLFdBQUEsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUEsRUFBRSxXQUFBLElBQUksRUFBRSxDQUFBLEVBQUUsV0FBQSxRQUFRLEVBQUUsQ0FBQTtxQ0FBMUQsVUFBVTtHQTdDOUIsaUJBQWlCLENBNEQ3QjtTQTVEWSxpQkFBaUI7QUE4RDlCOztHQUVHO0FBS0gsSUFBYSxjQUFjLEdBQTNCLE1BQWEsY0FBYztDQUFJLENBQUE7QUFBbEIsY0FBYztJQUoxQixRQUFRLENBQUM7UUFDTixZQUFZLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQztRQUNqQyxPQUFPLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQztLQUMvQixDQUFDO0dBQ1csY0FBYyxDQUFJO1NBQWxCLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIElucHV0LCBOZ01vZHVsZSwgT3B0aW9uYWwsIEluamVjdCwgU2VsZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBFZGl0b3JQcm92aWRlciB9IGZyb20gJy4uLy4uL2NvcmUvZWRpdC1wcm92aWRlcic7XG5cbkBEaXJlY3RpdmUoe1xuICAgIGV4cG9ydEFzOiAnaWd4Rm9jdXMnLFxuICAgIHNlbGVjdG9yOiAnW2lneEZvY3VzXSdcbn0pXG5leHBvcnQgY2xhc3MgSWd4Rm9jdXNEaXJlY3RpdmUge1xuXG4gICAgcHJpdmF0ZSBmb2N1c1N0YXRlID0gdHJ1ZTtcbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBzdGF0ZSBvZiB0aGUgaWd4Rm9jdXMuXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIEBWaWV3Q2hpbGQoJ2ZvY3VzQ29udGFpbmVyJywge3JlYWQ6IElneEZvY3VzRGlyZWN0aXZlfSlcbiAgICAgKiBwdWJsaWMgaWd4Rm9jdXM6IElneEZvY3VzRGlyZWN0aXZlO1xuICAgICAqIGxldCBpc0ZvY3VzT24gPSB0aGlzLmlneEZvY3VzLmZvY3VzZWQ7XG4gICAgICogYGBgXG4gICAgICogQG1lbWJlcm9mIElneEZvY3VzRGlyZWN0aXZlXG4gICAgICovXG4gICAgQElucHV0KCdpZ3hGb2N1cycpXG4gICAgZ2V0IGZvY3VzZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmZvY3VzU3RhdGU7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIHN0YXRlIG9mIHRoZSBpZ3hGb2N1cy5cbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlneC1pbnB1dC1ncm91cCA+XG4gICAgICogIDxpbnB1dCAjZm9jdXNDb250YWluZXIgaWd4SW5wdXQgW2lneEZvY3VzXT1cInRydWVcIi8+XG4gICAgICogPC9pZ3gtaW5wdXQtZ3JvdXA+XG4gICAgICogYGBgXG4gICAgICogQG1lbWJlcm9mIElneEZvY3VzRGlyZWN0aXZlXG4gICAgICovXG4gICAgc2V0IGZvY3VzZWQodmFsOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuZm9jdXNTdGF0ZSA9IHZhbDtcbiAgICAgICAgdGhpcy50cmlnZ2VyKCk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIG5hdGl2ZSBlbGVtZW50IG9mIHRoZSBpZ3hGb2N1cy5cbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogQFZpZXdDaGlsZCgnZm9jdXNDb250YWluZXInLCB7cmVhZDogSWd4Rm9jdXNEaXJlY3RpdmV9KVxuICAgICAqIHB1YmxpYyBpZ3hGb2N1czogSWd4Rm9jdXNEaXJlY3RpdmU7XG4gICAgICogbGV0IGlneEZvY3VzTmF0aXZlRWxlbWVudCA9IHRoaXMuaWd4Rm9jdXMubmF0aXZlRWxlbWVudDtcbiAgICAgKiBgYGBcbiAgICAgKiBAbWVtYmVyb2YgSWd4Rm9jdXNEaXJlY3RpdmVcbiAgICAgKi9cbiAgICBnZXQgbmF0aXZlRWxlbWVudCgpIHtcbiAgICAgICAgaWYgKHRoaXMuY29tcCAmJiB0aGlzLmNvbXBbMF0gJiYgdGhpcy5jb21wWzBdLmdldEVkaXRFbGVtZW50KSB7XG4gICAgICAgICAgICByZXR1cm4gKHRoaXMuY29tcFswXSBhcyBFZGl0b3JQcm92aWRlcikuZ2V0RWRpdEVsZW1lbnQoKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBlbGVtZW50OiBFbGVtZW50UmVmLCBASW5qZWN0KE5HX1ZBTFVFX0FDQ0VTU09SKSBAU2VsZigpIEBPcHRpb25hbCgpIHByaXZhdGUgY29tcD86IGFueVtdKSB7IH1cbiAgICAvKipcbiAgICAgKiBUcmlnZ2VycyB0aGUgaWd4Rm9jdXMgc3RhdGUuXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIEBWaWV3Q2hpbGQoJ2ZvY3VzQ29udGFpbmVyJywge3JlYWQ6IElneEZvY3VzRGlyZWN0aXZlfSlcbiAgICAgKiBwdWJsaWMgaWd4Rm9jdXM6IElneEZvY3VzRGlyZWN0aXZlO1xuICAgICAqIHRoaXMuaWd4Rm9jdXMudHJpZ2dlcigpO1xuICAgICAqIGBgYFxuICAgICAqIEBtZW1iZXJvZiBJZ3hGb2N1c0RpcmVjdGl2ZVxuICAgICAqL1xuICAgIHRyaWdnZXIoKSB7XG4gICAgICAgIGlmICh0aGlzLmZvY3VzU3RhdGUpIHtcbiAgICAgICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB0aGlzLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qKlxuICogQGhpZGRlblxuICovXG5ATmdNb2R1bGUoe1xuICAgIGRlY2xhcmF0aW9uczogW0lneEZvY3VzRGlyZWN0aXZlXSxcbiAgICBleHBvcnRzOiBbSWd4Rm9jdXNEaXJlY3RpdmVdXG59KVxuZXhwb3J0IGNsYXNzIElneEZvY3VzTW9kdWxlIHsgfVxuIl19