UNPKG

@catull/igniteui-angular

Version:

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

93 lines 9.14 kB
import { __decorate, __metadata } from "tslib"; import { Component, HostListener, HostBinding } from '@angular/core'; import { IgxDropDownItemBaseDirective } from './drop-down-item.base'; /** * The `<igx-drop-down-item>` is a container intended for row items in * a `<igx-drop-down>` container. */ let IgxDropDownItemComponent = class IgxDropDownItemComponent extends IgxDropDownItemBaseDirective { /** * @inheritdoc */ get focused() { let focusedState = this._focused; if (this.hasIndex) { const focusedItem = this.selection.first_item(`${this.dropDown.id}-active`); const focusedIndex = focusedItem ? focusedItem.index : -1; focusedState = this._index === focusedIndex; } return !this.isHeader && !this.disabled && focusedState; } /** * @inheritdoc */ set focused(value) { this._focused = value; } /** * @inheritdoc */ get selected() { if (this.hasIndex) { const item = this.selection.first_item(`${this.dropDown.id}`); return item ? item.index === this._index && item.value === this.value : false; } return this._selected; } /** * @inheritdoc */ set selected(value) { if (this.isHeader) { return; } this._selected = value; this.selectedChange.emit(this._selected); } /** * @hidden @internal */ get setTabIndex() { const shouldSetTabIndex = this.dropDown.allowItemsFocus && !(this.disabled || this.isHeader); if (shouldSetTabIndex) { return 0; } else { return null; } } /** * @hidden @internal */ clicked(event) { if (this.disabled || this.isHeader) { const focusedItem = this.dropDown.items.find((item) => item.focused); if (this.dropDown.allowItemsFocus && focusedItem) { focusedItem.element.nativeElement.focus({ preventScroll: true }); } return; } if (this.selection) { this.dropDown.selectItem(this, event); } } }; __decorate([ HostBinding('attr.tabindex'), __metadata("design:type", Object), __metadata("design:paramtypes", []) ], IgxDropDownItemComponent.prototype, "setTabIndex", null); __decorate([ HostListener('click', ['$event']), __metadata("design:type", Function), __metadata("design:paramtypes", [Object]), __metadata("design:returntype", void 0) ], IgxDropDownItemComponent.prototype, "clicked", null); IgxDropDownItemComponent = __decorate([ Component({ selector: 'igx-drop-down-item', template: "<ng-content></ng-content>" }) ], IgxDropDownItemComponent); export { IgxDropDownItemComponent }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcC1kb3duLWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vaWduaXRldWktYW5ndWxhci8iLCJzb3VyY2VzIjpbImxpYi9kcm9wLWRvd24vZHJvcC1kb3duLWl0ZW0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULFlBQVksRUFDWixXQUFXLEVBQ2QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFckU7OztHQUdHO0FBS0gsSUFBYSx3QkFBd0IsR0FBckMsTUFBYSx3QkFBeUIsU0FBUSw0QkFBNEI7SUFDdEU7O09BRUc7SUFDSCxJQUFJLE9BQU87UUFDUCxJQUFJLFlBQVksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQ2pDLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNmLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBQzVFLE1BQU0sWUFBWSxHQUFHLFdBQVcsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDMUQsWUFBWSxHQUFHLElBQUksQ0FBQyxNQUFNLEtBQUssWUFBWSxDQUFDO1NBQy9DO1FBQ0QsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLFlBQVksQ0FBQztJQUM1RCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFJLE9BQU8sQ0FBQyxLQUFjO1FBQ3RCLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO0lBQzFCLENBQUM7SUFDRDs7T0FFRztJQUNILElBQUksUUFBUTtRQUNSLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNmLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQzlELE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxLQUFLLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7U0FDakY7UUFDRCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDMUIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBSSxRQUFRLENBQUMsS0FBYztRQUN2QixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDZixPQUFPO1NBQ1Y7UUFDRCxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUN2QixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUNEOztPQUVHO0lBRUgsSUFBSSxXQUFXO1FBQ1gsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDN0YsSUFBSSxpQkFBaUIsRUFBRTtZQUNuQixPQUFPLENBQUMsQ0FBQztTQUNaO2FBQU07WUFDSCxPQUFPLElBQUksQ0FBQztTQUNmO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBRUgsT0FBTyxDQUFDLEtBQUs7UUFDVCxJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNoQyxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNyRSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsZUFBZSxJQUFJLFdBQVcsRUFBRTtnQkFDOUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7YUFDcEU7WUFDRCxPQUFPO1NBQ1Y7UUFDRCxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDaEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1NBQ3pDO0lBQ0wsQ0FBQztDQUNKLENBQUE7QUF6Qkc7SUFEQyxXQUFXLENBQUMsZUFBZSxDQUFDOzs7MkRBUTVCO0FBTUQ7SUFEQyxZQUFZLENBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUM7Ozs7dURBWWpDO0FBckVRLHdCQUF3QjtJQUpwQyxTQUFTLENBQUM7UUFDUCxRQUFRLEVBQUUsb0JBQW9CO1FBQzlCLHFDQUE0QztLQUMvQyxDQUFDO0dBQ1csd0JBQXdCLENBc0VwQztTQXRFWSx3QkFBd0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSG9zdEJpbmRpbmdcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJZ3hEcm9wRG93bkl0ZW1CYXNlRGlyZWN0aXZlIH0gZnJvbSAnLi9kcm9wLWRvd24taXRlbS5iYXNlJztcblxuLyoqXG4gKiBUaGUgYDxpZ3gtZHJvcC1kb3duLWl0ZW0+YCBpcyBhIGNvbnRhaW5lciBpbnRlbmRlZCBmb3Igcm93IGl0ZW1zIGluXG4gKiBhIGA8aWd4LWRyb3AtZG93bj5gIGNvbnRhaW5lci5cbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdpZ3gtZHJvcC1kb3duLWl0ZW0nLFxuICAgIHRlbXBsYXRlVXJsOiAnZHJvcC1kb3duLWl0ZW0uY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIElneERyb3BEb3duSXRlbUNvbXBvbmVudCBleHRlbmRzIElneERyb3BEb3duSXRlbUJhc2VEaXJlY3RpdmUge1xuICAgIC8qKlxuICAgICAqIEBpbmhlcml0ZG9jXG4gICAgICovXG4gICAgZ2V0IGZvY3VzZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIGxldCBmb2N1c2VkU3RhdGUgPSB0aGlzLl9mb2N1c2VkO1xuICAgICAgICBpZiAodGhpcy5oYXNJbmRleCkge1xuICAgICAgICAgICAgY29uc3QgZm9jdXNlZEl0ZW0gPSB0aGlzLnNlbGVjdGlvbi5maXJzdF9pdGVtKGAke3RoaXMuZHJvcERvd24uaWR9LWFjdGl2ZWApO1xuICAgICAgICAgICAgY29uc3QgZm9jdXNlZEluZGV4ID0gZm9jdXNlZEl0ZW0gPyBmb2N1c2VkSXRlbS5pbmRleCA6IC0xO1xuICAgICAgICAgICAgZm9jdXNlZFN0YXRlID0gdGhpcy5faW5kZXggPT09IGZvY3VzZWRJbmRleDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gIXRoaXMuaXNIZWFkZXIgJiYgIXRoaXMuZGlzYWJsZWQgJiYgZm9jdXNlZFN0YXRlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0ZG9jXG4gICAgICovXG4gICAgc2V0IGZvY3VzZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fZm9jdXNlZCA9IHZhbHVlO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdGRvY1xuICAgICAqL1xuICAgIGdldCBzZWxlY3RlZCgpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKHRoaXMuaGFzSW5kZXgpIHtcbiAgICAgICAgICAgIGNvbnN0IGl0ZW0gPSB0aGlzLnNlbGVjdGlvbi5maXJzdF9pdGVtKGAke3RoaXMuZHJvcERvd24uaWR9YCk7XG4gICAgICAgICAgICByZXR1cm4gaXRlbSA/IGl0ZW0uaW5kZXggPT09IHRoaXMuX2luZGV4ICYmIGl0ZW0udmFsdWUgPT09IHRoaXMudmFsdWUgOiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5fc2VsZWN0ZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXRkb2NcbiAgICAgKi9cbiAgICBzZXQgc2VsZWN0ZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgaWYgKHRoaXMuaXNIZWFkZXIpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9zZWxlY3RlZCA9IHZhbHVlO1xuICAgICAgICB0aGlzLnNlbGVjdGVkQ2hhbmdlLmVtaXQodGhpcy5fc2VsZWN0ZWQpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIEBIb3N0QmluZGluZygnYXR0ci50YWJpbmRleCcpXG4gICAgZ2V0IHNldFRhYkluZGV4KCkge1xuICAgICAgICBjb25zdCBzaG91bGRTZXRUYWJJbmRleCA9IHRoaXMuZHJvcERvd24uYWxsb3dJdGVtc0ZvY3VzICYmICEodGhpcy5kaXNhYmxlZCB8fCB0aGlzLmlzSGVhZGVyKTtcbiAgICAgICAgaWYgKHNob3VsZFNldFRhYkluZGV4KSB7XG4gICAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlbiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBASG9zdExpc3RlbmVyKCdjbGljaycsIFsnJGV2ZW50J10pXG4gICAgY2xpY2tlZChldmVudCkge1xuICAgICAgICBpZiAodGhpcy5kaXNhYmxlZCB8fCB0aGlzLmlzSGVhZGVyKSB7XG4gICAgICAgICAgICBjb25zdCBmb2N1c2VkSXRlbSA9IHRoaXMuZHJvcERvd24uaXRlbXMuZmluZCgoaXRlbSkgPT4gaXRlbS5mb2N1c2VkKTtcbiAgICAgICAgICAgIGlmICh0aGlzLmRyb3BEb3duLmFsbG93SXRlbXNGb2N1cyAmJiBmb2N1c2VkSXRlbSkge1xuICAgICAgICAgICAgICAgIGZvY3VzZWRJdGVtLmVsZW1lbnQubmF0aXZlRWxlbWVudC5mb2N1cyh7IHByZXZlbnRTY3JvbGw6IHRydWUgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLmRyb3BEb3duLnNlbGVjdEl0ZW0odGhpcywgZXZlbnQpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19