@catull/igniteui-angular
Version:
Ignite UI for Angular is a dependency-free Angular toolkit for building modern web apps
149 lines • 14.9 kB
JavaScript
import { __decorate, __metadata, __param } from "tslib";
import { Directive, Optional, Self, Input, HostListener, Inject } from '@angular/core';
import { IGX_DROPDOWN_BASE } from './drop-down.common';
import { IgxDropDownBaseDirective } from './drop-down.base';
import { DropDownActionKey } from './drop-down.common';
/**
* Navigation Directive that handles keyboard events on its host and controls a targeted IgxDropDownBaseDirective component
*/
var IgxDropDownItemNavigationDirective = /** @class */ (function () {
function IgxDropDownItemNavigationDirective(dropdown) {
this.dropdown = dropdown;
this._target = null;
}
Object.defineProperty(IgxDropDownItemNavigationDirective.prototype, "target", {
/**
* Gets the target of the navigation directive;
*
* ```typescript
* // Get
* export class MyComponent {
* ...
* @ContentChild(IgxDropDownNavigationDirective)
* navDirective: IgxDropDownNavigationDirective = null
* ...
* const navTarget: IgxDropDownBaseDirective = navDirective.navTarget
* }
* ```
*/
get: function () {
return this._target;
},
/**
* Sets the target of the navigation directive;
* If no valid target is passed, it falls back to the drop down context
*
* ```html
* <!-- Set -->
* <input [igxDropDownItemNavigation]="dropdown" />
* ...
* <igx-drop-down #dropdown>
* ...
* </igx-drop-down>
* ```
*/
set: function (target) {
this._target = target ? target : this.dropdown;
},
enumerable: true,
configurable: true
});
/**
* Captures keydown events and calls the appropriate handlers on the target component
*/
IgxDropDownItemNavigationDirective.prototype.handleKeyDown = function (event) {
if (event) {
var key = event.key.toLowerCase();
if (!this.target.collapsed) { // If dropdown is opened
var navKeys = ['esc', 'escape', 'enter', 'space', 'spacebar', ' ',
'arrowup', 'up', 'arrowdown', 'down', 'home', 'end'];
if (navKeys.indexOf(key) === -1) { // If key has appropriate function in DD
return;
}
event.preventDefault();
event.stopPropagation();
}
else { // If dropdown is closed, do nothing
return;
}
switch (key) {
case 'esc':
case 'escape':
this.target.onItemActionKey(DropDownActionKey.ESCAPE, event);
break;
case 'enter':
this.target.onItemActionKey(DropDownActionKey.ENTER, event);
break;
case 'space':
case 'spacebar':
case ' ':
this.target.onItemActionKey(DropDownActionKey.SPACE, event);
break;
case 'arrowup':
case 'up':
this.onArrowUpKeyDown();
break;
case 'arrowdown':
case 'down':
this.onArrowDownKeyDown();
break;
case 'home':
this.onHomeKeyDown();
break;
case 'end':
this.onEndKeyDown();
break;
default:
return;
}
}
};
/**
* Navigates to previous item
*/
IgxDropDownItemNavigationDirective.prototype.onArrowDownKeyDown = function () {
this.target.navigateNext();
};
/**
* Navigates to previous item
*/
IgxDropDownItemNavigationDirective.prototype.onArrowUpKeyDown = function () {
this.target.navigatePrev();
};
/**
* Navigates to target's last item
*/
IgxDropDownItemNavigationDirective.prototype.onEndKeyDown = function () {
this.target.navigateLast();
};
/**
* Navigates to target's first item
*/
IgxDropDownItemNavigationDirective.prototype.onHomeKeyDown = function () {
this.target.navigateFirst();
};
IgxDropDownItemNavigationDirective.ctorParameters = function () { return [
{ type: IgxDropDownBaseDirective, decorators: [{ type: Self }, { type: Optional }, { type: Inject, args: [IGX_DROPDOWN_BASE,] }] }
]; };
__decorate([
Input('igxDropDownItemNavigation'),
__metadata("design:type", IgxDropDownBaseDirective),
__metadata("design:paramtypes", [IgxDropDownBaseDirective])
], IgxDropDownItemNavigationDirective.prototype, "target", null);
__decorate([
HostListener('keydown', ['$event']),
__metadata("design:type", Function),
__metadata("design:paramtypes", [KeyboardEvent]),
__metadata("design:returntype", void 0)
], IgxDropDownItemNavigationDirective.prototype, "handleKeyDown", null);
IgxDropDownItemNavigationDirective = __decorate([
Directive({
selector: '[igxDropDownItemNavigation]'
}),
__param(0, Self()), __param(0, Optional()), __param(0, Inject(IGX_DROPDOWN_BASE)),
__metadata("design:paramtypes", [IgxDropDownBaseDirective])
], IgxDropDownItemNavigationDirective);
return IgxDropDownItemNavigationDirective;
}());
export { IgxDropDownItemNavigationDirective };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcC1kb3duLW5hdmlnYXRpb24uZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vaWduaXRldWktYW5ndWxhci8iLCJzb3VyY2VzIjpbImxpYi9kcm9wLWRvd24vZHJvcC1kb3duLW5hdmlnYXRpb24uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFdkQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFdkQ7O0dBRUc7QUFJSDtJQUlJLDRDQUFrRSxRQUFrQztRQUFsQyxhQUFRLEdBQVIsUUFBUSxDQUEwQjtRQUYxRixZQUFPLEdBQTZCLElBQUksQ0FBQztJQUVxRCxDQUFDO0lBZ0J6RyxzQkFBSSxzREFBTTtRQWRWOzs7Ozs7Ozs7Ozs7O1dBYUc7YUFDSDtZQUNJLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUN4QixDQUFDO1FBRUQ7Ozs7Ozs7Ozs7OztXQVlHO2FBRUgsVUFBVyxNQUFnQztZQUN2QyxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQ25ELENBQUM7OztPQWxCQTtJQW9CRDs7T0FFRztJQUVILDBEQUFhLEdBQWIsVUFBYyxLQUFvQjtRQUM5QixJQUFJLEtBQUssRUFBRTtZQUNQLElBQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDcEMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLEVBQUUs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QUFrQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgT3B0aW9uYWwsIFNlbGYsIElucHV0LCBIb3N0TGlzdGVuZXIsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSUdYX0RST1BET1dOX0JBU0UgfSBmcm9tICcuL2Ryb3AtZG93bi5jb21tb24nO1xuaW1wb3J0IHsgSURyb3BEb3duTmF2aWdhdGlvbkRpcmVjdGl2ZSB9IGZyb20gJy4vZHJvcC1kb3duLmNvbW1vbic7XG5pbXBvcnQgeyBJZ3hEcm9wRG93bkJhc2VEaXJlY3RpdmUgfSBmcm9tICcuL2Ryb3AtZG93bi5iYXNlJztcbmltcG9ydCB7IERyb3BEb3duQWN0aW9uS2V5IH0gZnJvbSAnLi9kcm9wLWRvd24uY29tbW9uJztcblxuLyoqXG4gKiBOYXZpZ2F0aW9uIERpcmVjdGl2ZSB0aGF0IGhhbmRsZXMga2V5Ym9hcmQgZXZlbnRzIG9uIGl0cyBob3N0IGFuZCBjb250cm9scyBhIHRhcmdldGVkIElneERyb3BEb3duQmFzZURpcmVjdGl2ZSBjb21wb25lbnRcbiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbaWd4RHJvcERvd25JdGVtTmF2aWdhdGlvbl0nXG59KVxuZXhwb3J0IGNsYXNzIElneERyb3BEb3duSXRlbU5hdmlnYXRpb25EaXJlY3RpdmUgaW1wbGVtZW50cyBJRHJvcERvd25OYXZpZ2F0aW9uRGlyZWN0aXZlIHtcblxuICAgIHByb3RlY3RlZCBfdGFyZ2V0OiBJZ3hEcm9wRG93bkJhc2VEaXJlY3RpdmUgPSBudWxsO1xuXG4gICAgY29uc3RydWN0b3IoQFNlbGYoKSBAT3B0aW9uYWwoKSBASW5qZWN0KElHWF9EUk9QRE9XTl9CQVNFKSBwdWJsaWMgZHJvcGRvd246IElneERyb3BEb3duQmFzZURpcmVjdGl2ZSkgeyB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSB0YXJnZXQgb2YgdGhlIG5hdmlnYXRpb24gZGlyZWN0aXZlO1xuICAgICAqXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIC8vIEdldFxuICAgICAqIGV4cG9ydCBjbGFzcyBNeUNvbXBvbmVudCB7XG4gICAgICogIC4uLlxuICAgICAqICBAQ29udGVudENoaWxkKElneERyb3BEb3duTmF2aWdhdGlvbkRpcmVjdGl2ZSlcbiAgICAgKiAgbmF2RGlyZWN0aXZlOiBJZ3hEcm9wRG93bk5hdmlnYXRpb25EaXJlY3RpdmUgPSBudWxsXG4gICAgICogIC4uLlxuICAgICAqICBjb25zdCBuYXZUYXJnZXQ6IElneERyb3BEb3duQmFzZURpcmVjdGl2ZSA9IG5hdkRpcmVjdGl2ZS5uYXZUYXJnZXRcbiAgICAgKiB9XG4gICAgICogYGBgXG4gICAgICovXG4gICAgZ2V0IHRhcmdldCgpOiBJZ3hEcm9wRG93bkJhc2VEaXJlY3RpdmUge1xuICAgICAgICByZXR1cm4gdGhpcy5fdGFyZ2V0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIHRhcmdldCBvZiB0aGUgbmF2aWdhdGlvbiBkaXJlY3RpdmU7XG4gICAgICogSWYgbm8gdmFsaWQgdGFyZ2V0IGlzIHBhc3NlZCwgaXQgZmFsbHMgYmFjayB0byB0aGUgZHJvcCBkb3duIGNvbnRleHRcbiAgICAgKlxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8IS0tIFNldCAtLT5cbiAgICAgKiA8aW5wdXQgW2lneERyb3BEb3duSXRlbU5hdmlnYXRpb25dPVwiZHJvcGRvd25cIiAvPlxuICAgICAqIC4uLlxuICAgICAqIDxpZ3gtZHJvcC1kb3duICNkcm9wZG93bj5cbiAgICAgKiAuLi5cbiAgICAgKiA8L2lneC1kcm9wLWRvd24+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQElucHV0KCdpZ3hEcm9wRG93bkl0ZW1OYXZpZ2F0aW9uJylcbiAgICBzZXQgdGFyZ2V0KHRhcmdldDogSWd4RHJvcERvd25CYXNlRGlyZWN0aXZlKSB7XG4gICAgICAgIHRoaXMuX3RhcmdldCA9IHRhcmdldCA/IHRhcmdldCA6IHRoaXMuZHJvcGRvd247XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2FwdHVyZXMga2V5ZG93biBldmVudHMgYW5kIGNhbGxzIHRoZSBhcHByb3ByaWF0ZSBoYW5kbGVycyBvbiB0aGUgdGFyZ2V0IGNvbXBvbmVudFxuICAgICAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKVxuICAgIGhhbmRsZUtleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgaWYgKGV2ZW50KSB7XG4gICAgICAgICAgICBjb25zdCBrZXkgPSBldmVudC5rZXkudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICAgIGlmICghdGhpcy50YXJnZXQuY29sbGFwc2VkKSB7IC8vIElmIGRyb3Bkb3duIGlzIG9wZW5lZFxuICAgICAgICAgICAgICAgIGNvbnN0IG5hdktleXMgPSBbJ2VzYycsICdlc2NhcGUnLCAnZW50ZXInLCAnc3BhY2UnLCAnc3BhY2ViYXInLCAnICcsXG4gICAgICAgICAgICAnYXJyb3d1cCcsICd1cCcsICdhcnJvd2Rvd24nLCAnZG93bicsICdob21lJywgJ2VuZCddO1xuICAgICAgICAgICAgICAgIGlmIChuYXZLZXlzLmluZGV4T2Yoa2V5KSA9PT0gLTEpIHsgLy8gSWYga2V5IGhhcyBhcHByb3ByaWF0ZSBmdW5jdGlvbiBpbiBERFxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICB9IGVsc2UgeyAvLyBJZiBkcm9wZG93biBpcyBjbG9zZWQsIGRvIG5vdGhpbmdcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzd2l0Y2ggKGtleSkge1xuICAgICAgICAgICAgICAgIGNhc2UgJ2VzYyc6XG4gICAgICAgICAgICAgICAgY2FzZSAnZXNjYXBlJzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50YXJnZXQub25JdGVtQWN0aW9uS2V5KERyb3BEb3duQWN0aW9uS2V5LkVTQ0FQRSwgZXZlbnQpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdlbnRlcic6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudGFyZ2V0Lm9uSXRlbUFjdGlvbktleShEcm9wRG93bkFjdGlvbktleS5FTlRFUiwgZXZlbnQpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdzcGFjZSc6XG4gICAgICAgICAgICAgICAgY2FzZSAnc3BhY2ViYXInOlxuICAgICAgICAgICAgICAgIGNhc2UgJyAnOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRhcmdldC5vbkl0ZW1BY3Rpb25LZXkoRHJvcERvd25BY3Rpb25LZXkuU1BBQ0UsIGV2ZW50KTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAnYXJyb3d1cCc6XG4gICAgICAgICAgICAgICAgY2FzZSAndXAnOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLm9uQXJyb3dVcEtleURvd24oKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAnYXJyb3dkb3duJzpcbiAgICAgICAgICAgICAgICBjYXNlICdkb3duJzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vbkFycm93RG93bktleURvd24oKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAnaG9tZSc6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMub25Ib21lS2V5RG93bigpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdlbmQnOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLm9uRW5kS2V5RG93bigpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBOYXZpZ2F0ZXMgdG8gcHJldmlvdXMgaXRlbVxuICAgICAqL1xuICAgIG9uQXJyb3dEb3duS2V5RG93bigpIHtcbiAgICAgICAgdGhpcy50YXJnZXQubmF2aWdhdGVOZXh0KCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTmF2aWdhdGVzIHRvIHByZXZpb3VzIGl0ZW1cbiAgICAgKi9cbiAgICBvbkFycm93VXBLZXlEb3duKCkge1xuICAgICAgICB0aGlzLnRhcmdldC5uYXZpZ2F0ZVByZXYoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBOYXZpZ2F0ZXMgdG8gdGFyZ2V0J3MgbGFzdCBpdGVtXG4gICAgICovXG4gICAgb25FbmRLZXlEb3duKCkge1xuICAgICAgICB0aGlzLnRhcmdldC5uYXZpZ2F0ZUxhc3QoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBOYXZpZ2F0ZXMgdG8gdGFyZ2V0J3MgZmlyc3QgaXRlbVxuICAgICAqL1xuICAgIG9uSG9tZUtleURvd24oKSB7XG4gICAgICAgIHRoaXMudGFyZ2V0Lm5hdmlnYXRlRmlyc3QoKTtcbiAgICB9XG59XG4iXX0=