UNPKG

@catull/igniteui-angular

Version:

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

132 lines 13.5 kB
import { __decorate, __extends, __metadata, __param } from "tslib"; import { Component, ElementRef, HostBinding, Inject, Input, DoCheck } from '@angular/core'; import { IgxDropDownItemComponent } from '../drop-down/drop-down-item.component'; import { IGX_DROPDOWN_BASE, Navigate } from '../drop-down/drop-down.common'; import { IgxComboAPIService } from './combo.api'; import { IgxSelectionAPIService } from '../core/selection'; /** @hidden */ var IgxComboItemComponent = /** @class */ (function (_super) { __extends(IgxComboItemComponent, _super); function IgxComboItemComponent(comboAPI, dropDown, elementRef, selection) { var _this = _super.call(this, dropDown, elementRef, null, selection) || this; _this.comboAPI = comboAPI; _this.dropDown = dropDown; _this.elementRef = elementRef; _this.selection = selection; /** * Gets the height of a list item * @hidden */ _this.itemHeight = ''; return _this; } Object.defineProperty(IgxComboItemComponent.prototype, "itemID", { /** * @hidden */ get: function () { var valueKey = this.comboAPI.valueKey; return valueKey !== null ? this.value[valueKey] : this.value; }, enumerable: true, configurable: true }); Object.defineProperty(IgxComboItemComponent.prototype, "comboID", { /** * @hidden */ get: function () { return this.comboAPI.comboID; }, enumerable: true, configurable: true }); Object.defineProperty(IgxComboItemComponent.prototype, "disableTransitions", { /** * @hidden * @internal */ get: function () { return this.comboAPI.disableTransitions; }, enumerable: true, configurable: true }); Object.defineProperty(IgxComboItemComponent.prototype, "selected", { /** * @hidden */ get: function () { return this.comboAPI.is_item_selected(this.itemID); }, set: function (value) { if (this.isHeader) { return; } this._selected = value; }, enumerable: true, configurable: true }); /** * @hidden */ IgxComboItemComponent.prototype.isVisible = function (direction) { var rect = this.element.nativeElement.getBoundingClientRect(); var parentDiv = this.element.nativeElement.parentElement.parentElement.getBoundingClientRect(); if (direction === Navigate.Down) { return rect.y + rect.height <= parentDiv.y + parentDiv.height; } return rect.y >= parentDiv.y; }; IgxComboItemComponent.prototype.clicked = function (event) { this.comboAPI.disableTransitions = false; if (this.disabled || this.isHeader) { var focusedItem = this.dropDown.items.find(function (item) { return item.focused; }); if (this.dropDown.allowItemsFocus && focusedItem) { focusedItem.element.nativeElement.focus({ preventScroll: true }); } return; } this.dropDown.navigateItem(this.index); this.comboAPI.set_selected_item(this.itemID, event); }; /** * @hidden * @internal * The event that is prevented is the click on the checkbox label element. * That is the only visible element that a user can interact with. * The click propagates to the host and the preventDefault is to stop it from * switching focus to the input it's base on. * The toggle happens in an internal handler in the drop-down on the next task queue cycle. */ IgxComboItemComponent.prototype.disableCheck = function (event) { event.preventDefault(); }; IgxComboItemComponent.prototype.ngDoCheck = function () { }; IgxComboItemComponent.ctorParameters = function () { return [ { type: IgxComboAPIService }, { type: undefined, decorators: [{ type: Inject, args: [IGX_DROPDOWN_BASE,] }] }, { type: ElementRef }, { type: IgxSelectionAPIService, decorators: [{ type: Inject, args: [IgxSelectionAPIService,] }] } ]; }; __decorate([ Input(), HostBinding('style.height.px'), __metadata("design:type", Object) ], IgxComboItemComponent.prototype, "itemHeight", void 0); IgxComboItemComponent = __decorate([ Component({ selector: 'igx-combo-item', template: "<ng-container *ngIf=\"!isHeader\">\n <igx-checkbox [checked]=\"selected\" disableRipple=\"true\" [disableTransitions]=\"disableTransitions\" [tabindex]=\"-1\" (click)=\"disableCheck($event)\" class=\"igx-combo__checkbox\"></igx-checkbox>\n</ng-container>\n<ng-content></ng-content>\n" }), __param(1, Inject(IGX_DROPDOWN_BASE)), __param(3, Inject(IgxSelectionAPIService)), __metadata("design:paramtypes", [IgxComboAPIService, Object, ElementRef, IgxSelectionAPIService]) ], IgxComboItemComponent); return IgxComboItemComponent; }(IgxDropDownItemComponent)); export { IgxComboItemComponent }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tYm8taXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9pZ25pdGV1aS1hbmd1bGFyLyIsInNvdXJjZXMiOlsibGliL2NvbWJvL2NvbWJvLWl0ZW0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULFVBQVUsRUFDVixXQUFXLEVBQ1gsTUFBTSxFQUNOLEtBQUssRUFDTCxPQUFPLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDakYsT0FBTyxFQUFFLGlCQUFpQixFQUFpQixRQUFRLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMzRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDakQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFM0QsY0FBYztBQUtkO0lBQTJDLHlDQUF3QjtJQWlDL0QsK0JBQ2MsUUFBNEIsRUFDRCxRQUF1QixFQUNsRCxVQUFzQixFQUNVLFNBQWlDO1FBSi9FLFlBTUksa0JBQU0sUUFBUSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsU0FBUyxDQUFDLFNBQy9DO1FBTmEsY0FBUSxHQUFSLFFBQVEsQ0FBb0I7UUFDRCxjQUFRLEdBQVIsUUFBUSxDQUFlO1FBQ2xELGdCQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ1UsZUFBUyxHQUFULFNBQVMsQ0FBd0I7UUFuQy9FOzs7V0FHRztRQUdJLGdCQUFVLEdBQUcsRUFBRSxDQUFDOztJQWdDdkIsQ0FBQztJQTNCRCxzQkFBVyx5Q0FBTTtRQUhqQjs7V0FFRzthQUNIO1lBQ0ksSUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUM7WUFDeEMsT0FBTyxRQUFRLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENB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Q0FIWCxrQkFBa0IsVUFFaEIsVUFBVTtZQUNxQixzQkFBc0I7T0FyQ3RFLHFCQUFxQixDQWdHakM7SUFBRCw0QkFBQztDQUFBLEFBaEdELENBQTJDLHdCQUF3QixHQWdHbEU7U0FoR1kscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBIb3N0QmluZGluZyxcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgRG9DaGVja1xufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElneERyb3BEb3duSXRlbUNvbXBvbmVudCB9IGZyb20gJy4uL2Ryb3AtZG93bi9kcm9wLWRvd24taXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgSUdYX0RST1BET1dOX0JBU0UsIElEcm9wRG93bkJhc2UsIE5hdmlnYXRlIH0gZnJvbSAnLi4vZHJvcC1kb3duL2Ryb3AtZG93bi5jb21tb24nO1xuaW1wb3J0IHsgSWd4Q29tYm9BUElTZXJ2aWNlIH0gZnJvbSAnLi9jb21iby5hcGknO1xuaW1wb3J0IHsgSWd4U2VsZWN0aW9uQVBJU2VydmljZSB9IGZyb20gJy4uL2NvcmUvc2VsZWN0aW9uJztcblxuLyoqIEBoaWRkZW4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnaWd4LWNvbWJvLWl0ZW0nLFxuICAgIHRlbXBsYXRlVXJsOiAnY29tYm8taXRlbS5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgSWd4Q29tYm9JdGVtQ29tcG9uZW50IGV4dGVuZHMgSWd4RHJvcERvd25JdGVtQ29tcG9uZW50IGltcGxlbWVudHMgRG9DaGVjayB7XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBoZWlnaHQgb2YgYSBsaXN0IGl0ZW1cbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBASG9zdEJpbmRpbmcoJ3N0eWxlLmhlaWdodC5weCcpXG4gICAgcHVibGljIGl0ZW1IZWlnaHQgPSAnJztcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGl0ZW1JRCgpIHtcbiAgICAgICAgY29uc3QgdmFsdWVLZXkgPSB0aGlzLmNvbWJvQVBJLnZhbHVlS2V5O1xuICAgICAgICByZXR1cm4gdmFsdWVLZXkgIT09IG51bGwgPyB0aGlzLnZhbHVlW3ZhbHVlS2V5XSA6IHRoaXMudmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgY29tYm9JRCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29tYm9BUEkuY29tYm9JRDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIGdldCBkaXNhYmxlVHJhbnNpdGlvbnMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbWJvQVBJLmRpc2FibGVUcmFuc2l0aW9ucztcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJvdGVjdGVkIGNvbWJvQVBJOiBJZ3hDb21ib0FQSVNlcnZpY2UsXG4gICAgICAgIEBJbmplY3QoSUdYX0RST1BET1dOX0JBU0UpIHByb3RlY3RlZCBkcm9wRG93bjogSURyb3BEb3duQmFzZSxcbiAgICAgICAgcHJvdGVjdGVkIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIEBJbmplY3QoSWd4U2VsZWN0aW9uQVBJU2VydmljZSkgcHJvdGVjdGVkIHNlbGVjdGlvbjogSWd4U2VsZWN0aW9uQVBJU2VydmljZVxuICAgICkge1xuICAgICAgICBzdXBlcihkcm9wRG93biwgZWxlbWVudFJlZiwgbnVsbCwgc2VsZWN0aW9uKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgZ2V0IHNlbGVjdGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jb21ib0FQSS5pc19pdGVtX3NlbGVjdGVkKHRoaXMuaXRlbUlEKTtcbiAgICB9XG5cbiAgICBzZXQgc2VsZWN0ZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgaWYgKHRoaXMuaXNIZWFkZXIpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9zZWxlY3RlZCA9IHZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBpc1Zpc2libGUoZGlyZWN0aW9uOiBOYXZpZ2F0ZSk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCByZWN0ID0gdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgIGNvbnN0IHBhcmVudERpdiA9IHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQucGFyZW50RWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgaWYgKGRpcmVjdGlvbiA9PT0gTmF2aWdhdGUuRG93bikge1xuICAgICAgICAgICAgcmV0dXJuIHJlY3QueSArIHJlY3QuaGVpZ2h0IDw9IHBhcmVudERpdi55ICsgcGFyZW50RGl2LmhlaWdodDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVjdC55ID49IHBhcmVudERpdi55O1xuICAgIH1cblxuICAgIGNsaWNrZWQoZXZlbnQpIHtcbiAgICAgICAgdGhpcy5jb21ib0FQSS5kaXNhYmxlVHJhbnNpdGlvbnMgPSBmYWxzZTtcbiAgICAgICAgaWYgKHRoaXMuZGlzYWJsZWQgfHwgdGhpcy5pc0hlYWRlcikge1xuICAgICAgICAgICAgY29uc3QgZm9jdXNlZEl0ZW0gPSB0aGlzLmRyb3BEb3duLml0ZW1zLmZpbmQoKGl0ZW0pID0+IGl0ZW0uZm9jdXNlZCk7XG4gICAgICAgICAgICBpZiAodGhpcy5kcm9wRG93bi5hbGxvd0l0ZW1zRm9jdXMgJiYgZm9jdXNlZEl0ZW0pIHtcbiAgICAgICAgICAgICAgICBmb2N1c2VkSXRlbS5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoeyBwcmV2ZW50U2Nyb2xsOiB0cnVlIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZHJvcERvd24ubmF2aWdhdGVJdGVtKHRoaXMuaW5kZXgpO1xuICAgICAgICB0aGlzLmNvbWJvQVBJLnNldF9zZWxlY3RlZF9pdGVtKHRoaXMuaXRlbUlELCBldmVudCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqIFRoZSBldmVudCB0aGF0IGlzIHByZXZlbnRlZCBpcyB0aGUgY2xpY2sgb24gdGhlIGNoZWNrYm94IGxhYmVsIGVsZW1lbnQuXG4gICAgICogVGhhdCBpcyB0aGUgb25seSB2aXNpYmxlIGVsZW1lbnQgdGhhdCBhIHVzZXIgY2FuIGludGVyYWN0IHdpdGguXG4gICAgICogVGhlIGNsaWNrIHByb3BhZ2F0ZXMgdG8gdGhlIGhvc3QgYW5kIHRoZSBwcmV2ZW50RGVmYXVsdCBpcyB0byBzdG9wIGl0IGZyb21cbiAgICAgKiBzd2l0Y2hpbmcgZm9jdXMgdG8gdGhlIGlucHV0IGl0J3MgYmFzZSBvbi5cbiAgICAgKiBUaGUgdG9nZ2xlIGhhcHBlbnMgaW4gYW4gaW50ZXJuYWwgaGFuZGxlciBpbiB0aGUgZHJvcC1kb3duIG9uIHRoZSBuZXh0IHRhc2sgcXVldWUgY3ljbGUuXG4gICAgICovXG4gICAgZGlzYWJsZUNoZWNrKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuXG4gICAgbmdEb0NoZWNrKCkge1xuICAgIH1cbn1cbiJdfQ==