@catull/igniteui-angular
Version:
Ignite UI for Angular is a dependency-free Angular toolkit for building modern web apps
132 lines • 13.5 kB
JavaScript
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==