@ngx-performance-ui/ui
Version:
Ngx Performance UI - UI
154 lines • 14.7 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import * as tslib_1 from "tslib";
import { Component, ViewEncapsulation, ChangeDetectionStrategy, forwardRef, Input, Injector, } from '@angular/core';
import { AbstractNgModelComponent } from '@ngx-performance-ui/core';
import { NG_VALUE_ACCESSOR } from '@angular/forms';
import compare from 'just-compare';
/**
* @record
*/
export function ListboxItem() { }
if (false) {
/** @type {?} */
ListboxItem.prototype.text;
/** @type {?|undefined} */
ListboxItem.prototype.value;
/** @type {?|undefined} */
ListboxItem.prototype.classes;
}
var ListboxComponent = /** @class */ (function (_super) {
tslib_1.__extends(ListboxComponent, _super);
function ListboxComponent(injector) {
var _this = _super.call(this, injector) || this;
_this.injector = injector;
_this.items = [];
_this.classes = '';
_this.activeClass = 'active';
_this.title = '';
_this.isFilterShow = true;
_this.filterPlaceholder = '';
_this.multiple = false;
_this.filterValue = '';
_this.trackByFn = (/**
* @param {?} index
* @param {?} item
* @return {?}
*/
function (index, item) { return item.text || index; });
return _this;
}
/**
* @param {?} item
* @return {?}
*/
ListboxComponent.prototype.onClick = /**
* @param {?} item
* @return {?}
*/
function (item) {
if (!this.multiple) {
compare(this.value, item) ? (this.value = (/** @type {?} */ ({}))) : (this.value = item);
return;
}
if (!this.value || !Array.isArray(this.value) || !this.value.length)
this.value = [];
/** @type {?} */
var index = this.value.findIndex((/**
* @param {?} val
* @return {?}
*/
function (val) { return compare(val, item); }));
if (index > -1) {
this.value = tslib_1.__spread(this.value.slice(0, index), this.value.slice(index + 1));
}
else {
/** @type {?} */
var cloneItem = tslib_1.__assign({}, item);
delete cloneItem.classes;
this.value = tslib_1.__spread(this.value, [cloneItem]);
}
this.cdRef.detectChanges();
};
/**
* @param {?} item
* @return {?}
*/
ListboxComponent.prototype.isActive = /**
* @param {?} item
* @return {?}
*/
function (item) {
if (!this.multiple) {
return compare(this.value, item);
}
if (!this.value || !((/** @type {?} */ (this.value))).length)
return;
/** @type {?} */
var cloneItem = tslib_1.__assign({}, item);
delete cloneItem.classes;
return ((/** @type {?} */ (this.value))).findIndex((/**
* @param {?} val
* @return {?}
*/
function (val) { return compare(val, cloneItem); })) > -1;
};
ListboxComponent.decorators = [
{ type: Component, args: [{
selector: 'p-listbox',
template: "\n <div class=\"card\">\n <div class=\"card-header\">\n <div class=\"col-12 px-0\">\n <h5>{{ title }}</h5>\n </div>\n <div *ngIf=\"isFilterShow\" class=\"col-12 px-0 mt-2\">\n <div class=\"input-group mb-3\">\n <div class=\"input-group-prepend\">\n <span class=\"input-group-text\"><fa-icon [icon]=\"['fas', 'search']\"></fa-icon></span>\n </div>\n <p-input\n [(ngModel)]=\"filterValue\"\n [attr.placeholder]=\"filterPlaceholder\"\n classes=\"bg-transparent\"\n class=\"w-75\"\n ></p-input>\n </div>\n </div>\n </div>\n <ul class=\"list-group list-group-flush {{ classes }}\">\n <li\n *pFor=\"\n let item of items;\n filterValue: filterValue;\n filterContain: true;\n filterKey: 'text';\n trackBy: trackByFn\n \"\n [ngClass]=\"[isActive(item) ? activeClass : '']\"\n (click)=\"onClick(item)\"\n style=\"cursor: pointer\"\n class=\"list-group-item {{ item.classes }}\"\n >\n {{ item.text }}\n </li>\n </ul>\n </div>\n ",
encapsulation: ViewEncapsulation.None,
changeDetection: ChangeDetectionStrategy.OnPush,
providers: [
{
provide: NG_VALUE_ACCESSOR,
useExisting: forwardRef((/**
* @return {?}
*/
function () { return ListboxComponent; })),
multi: true,
},
]
}] }
];
/** @nocollapse */
ListboxComponent.ctorParameters = function () { return [
{ type: Injector }
]; };
ListboxComponent.propDecorators = {
items: [{ type: Input }],
classes: [{ type: Input }],
activeClass: [{ type: Input }],
title: [{ type: Input }],
isFilterShow: [{ type: Input }],
filterPlaceholder: [{ type: Input }],
multiple: [{ type: Input }]
};
return ListboxComponent;
}(AbstractNgModelComponent));
export { ListboxComponent };
if (false) {
/** @type {?} */
ListboxComponent.prototype.items;
/** @type {?} */
ListboxComponent.prototype.classes;
/** @type {?} */
ListboxComponent.prototype.activeClass;
/** @type {?} */
ListboxComponent.prototype.title;
/** @type {?} */
ListboxComponent.prototype.isFilterShow;
/** @type {?} */
ListboxComponent.prototype.filterPlaceholder;
/** @type {?} */
ListboxComponent.prototype.multiple;
/** @type {?} */
ListboxComponent.prototype.filterValue;
/** @type {?} */
ListboxComponent.prototype.trackByFn;
/** @type {?} */
ListboxComponent.prototype.injector;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdGJveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Abmd4LXBlcmZvcm1hbmNlLXVpL3VpLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvbGlzdGJveC9saXN0Ym94LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFDTCxTQUFTLEVBRVQsaUJBQWlCLEVBQ2pCLHVCQUF1QixFQUN2QixVQUFVLEVBQ1YsS0FBSyxFQUVMLFFBQVEsR0FDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRCxPQUFPLE9BQU8sTUFBTSxjQUFjLENBQUM7Ozs7QUFFbkMsaUNBSUM7OztJQUhDLDJCQUFhOztJQUNiLDRCQUFZOztJQUNaLDhCQUFpQjs7QUFHbkI7SUFtRHNDLDRDQUFxRDtJQW9CekYsMEJBQW1CLFFBQWtCO1FBQXJDLFlBQ0Usa0JBQU0sUUFBUSxDQUFDLFNBQ2hCO1FBRmtCLGNBQVEsR0FBUixRQUFRLENBQVU7UUFsQnJDLFdBQUssR0FBa0IsRUFBRSxDQUFDO1FBRWpCLGFBQU8sR0FBVyxFQUFFLENBQUM7UUFFckIsaUJBQVcsR0FBVyxRQUFRLENBQUM7UUFFL0IsV0FBSyxHQUFXLEVBQUUsQ0FBQztRQUVuQixrQkFBWSxHQUFZLElBQUksQ0FBQztRQUU3Qix1QkFBaUIsR0FBVyxFQUFFLENBQUM7UUFFL0IsY0FBUSxHQUFZLEtBQUssQ0FBQztRQUVuQyxpQkFBVyxHQUFXLEVBQUUsQ0FBQztRQUV6QixlQUFTOzs7OztRQUFpQyxVQUFDLEtBQUssRUFBRSxJQUFJLElBQUssT0FBQSxJQUFJLENBQUMsSUFBSSxJQUFJLEtBQUssRUFBbEIsQ0FBa0IsRUFBQzs7SUFJOUUsQ0FBQzs7Ozs7SUFFRCxrQ0FBTzs7OztJQUFQLFVBQVEsSUFBaUI7UUFD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OztJQUV0Qyw2Q0FBd0M7O0lBRXhDLG9DQUFtQzs7SUFFbkMsdUNBQXlCOztJQUV6QixxQ0FBOEU7O0lBRWxFLG9DQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgT25Jbml0LFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIGZvcndhcmRSZWYsXG4gIElucHV0LFxuICBUcmFja0J5RnVuY3Rpb24sXG4gIEluamVjdG9yLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0TmdNb2RlbENvbXBvbmVudCB9IGZyb20gJ0BuZ3gtcGVyZm9ybWFuY2UtdWkvY29yZSc7XG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCBjb21wYXJlIGZyb20gJ2p1c3QtY29tcGFyZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGlzdGJveEl0ZW0ge1xuICB0ZXh0OiBzdHJpbmc7XG4gIHZhbHVlPzogYW55O1xuICBjbGFzc2VzPzogc3RyaW5nO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwLWxpc3Rib3gnLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJjYXJkXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1oZWFkZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBweC0wXCI+XG4gICAgICAgICAgPGg1Pnt7IHRpdGxlIH19PC9oNT5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJpc0ZpbHRlclNob3dcIiBjbGFzcz1cImNvbC0xMiBweC0wIG10LTJcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXAgbWItM1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwLXByZXBlbmRcIj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpbnB1dC1ncm91cC10ZXh0XCI+PGZhLWljb24gW2ljb25dPVwiWydmYXMnLCAnc2VhcmNoJ11cIj48L2ZhLWljb24+PC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8cC1pbnB1dFxuICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImZpbHRlclZhbHVlXCJcbiAgICAgICAgICAgICAgW2F0dHIucGxhY2Vob2xkZXJdPVwiZmlsdGVyUGxhY2Vob2xkZXJcIlxuICAgICAgICAgICAgICBjbGFzc2VzPVwiYmctdHJhbnNwYXJlbnRcIlxuICAgICAgICAgICAgICBjbGFzcz1cInctNzVcIlxuICAgICAgICAgICAgPjwvcC1pbnB1dD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDx1bCBjbGFzcz1cImxpc3QtZ3JvdXAgIGxpc3QtZ3JvdXAtZmx1c2gge3sgY2xhc3NlcyB9fVwiPlxuICAgICAgICA8bGlcbiAgICAgICAgICAqcEZvcj1cIlxuICAgICAgICAgICAgbGV0IGl0ZW0gb2YgaXRlbXM7XG4gICAgICAgICAgICBmaWx0ZXJWYWx1ZTogZmlsdGVyVmFsdWU7XG4gICAgICAgICAgICBmaWx0ZXJDb250YWluOiB0cnVlO1xuICAgICAgICAgICAgZmlsdGVyS2V5OiAndGV4dCc7XG4gICAgICAgICAgICB0cmFja0J5OiB0cmFja0J5Rm5cbiAgICAgICAgICBcIlxuICAgICAgICAgIFtuZ0NsYXNzXT1cIltpc0FjdGl2ZShpdGVtKSA/IGFjdGl2ZUNsYXNzIDogJyddXCJcbiAgICAgICAgICAoY2xpY2spPVwib25DbGljayhpdGVtKVwiXG4gICAgICAgICAgc3R5bGU9XCJjdXJzb3I6IHBvaW50ZXJcIlxuICAgICAgICAgIGNsYXNzPVwibGlzdC1ncm91cC1pdGVtIHt7IGl0ZW0uY2xhc3NlcyB9fVwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyBpdGVtLnRleHQgfX1cbiAgICAgICAgPC9saT5cbiAgICAgIDwvdWw+XG4gICAgPC9kaXY+XG4gIGAsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IExpc3Rib3hDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgTGlzdGJveENvbXBvbmVudCBleHRlbmRzIEFic3RyYWN0TmdNb2RlbENvbXBvbmVudDxMaXN0Ym94SXRlbSB8IExpc3Rib3hJdGVtW10+IHtcbiAgQElucHV0KClcbiAgaXRlbXM6IExpc3Rib3hJdGVtW10gPSBbXTtcblxuICBASW5wdXQoKSBjbGFzc2VzOiBzdHJpbmcgPSAnJztcblxuICBASW5wdXQoKSBhY3RpdmVDbGFzczogc3RyaW5nID0gJ2FjdGl2ZSc7XG5cbiAgQElucHV0KCkgdGl0bGU6IHN0cmluZyA9ICcnO1xuXG4gIEBJbnB1dCgpIGlzRmlsdGVyU2hvdzogYm9vbGVhbiA9IHRydWU7XG5cbiAgQElucHV0KCkgZmlsdGVyUGxhY2Vob2xkZXI6IHN0cmluZyA9ICcnO1xuXG4gIEBJbnB1dCgpIG11bHRpcGxlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgZmlsdGVyVmFsdWU6IHN0cmluZyA9ICcnO1xuXG4gIHRyYWNrQnlGbjogVHJhY2tCeUZ1bmN0aW9uPExpc3Rib3hJdGVtPiA9IChpbmRleCwgaXRlbSkgPT4gaXRlbS50ZXh0IHx8IGluZGV4O1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBpbmplY3RvcjogSW5qZWN0b3IpIHtcbiAgICBzdXBlcihpbmplY3Rvcik7XG4gIH1cblxuICBvbkNsaWNrKGl0ZW06IExpc3Rib3hJdGVtKSB7XG4gICAgaWYgKCF0aGlzLm11bHRpcGxlKSB7XG4gICAgICBjb21wYXJlKHRoaXMudmFsdWUsIGl0ZW0pID8gKHRoaXMudmFsdWUgPSB7fSBhcyBMaXN0Ym94SXRlbSkgOiAodGhpcy52YWx1ZSA9IGl0ZW0pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICghdGhpcy52YWx1ZSB8fCAhQXJyYXkuaXNBcnJheSh0aGlzLnZhbHVlKSB8fCAhdGhpcy52YWx1ZS5sZW5ndGgpIHRoaXMudmFsdWUgPSBbXTtcblxuICAgIGNvbnN0IGluZGV4ID0gdGhpcy52YWx1ZS5maW5kSW5kZXgodmFsID0+IGNvbXBhcmUodmFsLCBpdGVtKSk7XG4gICAgaWYgKGluZGV4ID4gLTEpIHtcbiAgICAgIHRoaXMudmFsdWUgPSBbLi4udGhpcy52YWx1ZS5zbGljZSgwLCBpbmRleCksIC4uLnRoaXMudmFsdWUuc2xpY2UoaW5kZXggKyAxKV07XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGNsb25lSXRlbSA9IHsgLi4uaXRlbSB9O1xuICAgICAgZGVsZXRlIGNsb25lSXRlbS5jbGFzc2VzO1xuICAgICAgdGhpcy52YWx1ZSA9IFsuLi50aGlzLnZhbHVlLCBjbG9uZUl0ZW1dO1xuICAgIH1cbiAgICB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIGlzQWN0aXZlKGl0ZW06IExpc3Rib3hJdGVtKSB7XG4gICAgaWYgKCF0aGlzLm11bHRpcGxlKSB7XG4gICAgICByZXR1cm4gY29tcGFyZSh0aGlzLnZhbHVlLCBpdGVtKTtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMudmFsdWUgfHwgISh0aGlzLnZhbHVlIGFzIExpc3Rib3hJdGVtW10pLmxlbmd0aCkgcmV0dXJuO1xuICAgIGNvbnN0IGNsb25lSXRlbSA9IHsgLi4uaXRlbSB9O1xuICAgIGRlbGV0ZSBjbG9uZUl0ZW0uY2xhc3NlcztcbiAgICByZXR1cm4gKHRoaXMudmFsdWUgYXMgTGlzdGJveEl0ZW1bXSkuZmluZEluZGV4KHZhbCA9PiBjb21wYXJlKHZhbCwgY2xvbmVJdGVtKSkgPiAtMTtcbiAgfVxufVxuIl19