systelab-components
Version:
systelab-components is a set of components that use wide accepted and adopted standard technologies like Angular and Bootstrap, as well as other popular libraries. Please read the ATTRIBUTION.md file for a complete list of dependencies.
796 lines • 102 kB
JavaScript
import { Directive, EventEmitter, HostListener, Input, Output, ViewChild } from '@angular/core';
import { StylesUtilService } from '../utilities/styles.util.service';
import { ComboboxFavouriteRendererComponent } from './renderer/combobox-favourite-renderer.component';
import { AutosizeGridHelper, initializeCalculatedGridState } from '../helper/autosize-grid-helper';
import * as i0 from "@angular/core";
import * as i1 from "systelab-preferences";
export class AbstractComboBox {
static { this.ROW_HEIGHT = -1; }
static { this.DROPDOWN_MENU_MARGIN = 16; }
getAllFieldIDValue() {
return '0';
}
getAllFieldDescriptionValue() {
return '';
}
getAllCodeFieldValue() {
return '';
}
getAllInstance() {
const instance = this.getInstance();
instance[this.getIdField()] = this.getAllFieldIDValue();
instance[this.getDescriptionField()] = this.getAllFieldDescriptionValue();
instance[this.getCodeField()] = this.getAllCodeFieldValue();
return instance;
}
set values(newValues) {
if (newValues) {
if (this.withEmptyValue) {
newValues.unshift({ description: '', id: undefined });
}
}
this._values = newValues;
if (this.gridOptions) {
this.gridOptions.rowData = this._values;
}
this.setCodeDescriptionById();
}
get values() {
return this._values;
}
set id(value) {
this._id = value;
this.idChange.emit(value);
this.setCodeDescriptionById();
this.checkIfIsFavourite(value);
}
get id() {
return this._id;
}
set description(value) {
this._description = value;
if (this.id && this.values) {
const item = this.values.find(it => it[this.getIdField()] === this.id);
if (item) {
this._description = item[this.getDescriptionField()];
}
}
this.descriptionChange.emit(this._description);
this.fieldToShow = this._description;
}
get description() {
return this._description;
}
set level(value) {
this._level = value;
this.levelChange.emit(this._level);
}
get level() {
return this._level;
}
set fieldToShow(value) {
this._fieldToShow = value;
this.fieldToShowChange.emit(this._fieldToShow);
}
get fieldToShow() {
return this._fieldToShow;
}
set code(value) {
this._code = value;
if (this.id != null && this.values) {
const item = this.values.find(it => it[this.getIdField()] === this.id);
if (item) {
this._code = item[this.getCodeField()];
}
}
this.codeChange.emit(this._code);
}
get code() {
return this._code;
}
set multipleSelectedItemList(value) {
this._multipleSelectedItemList = value;
this.setDescriptionAndCodeWhenMultiple(value);
this.multipleSelectedItemListChange.emit(this._multipleSelectedItemList);
this.multipleSelectedIDListChange.emit(this.selectionItemListToIDList());
}
get multipleSelectedItemList() {
return this._multipleSelectedItemList;
}
constructor(myRenderer, chRef, preferencesService) {
this.myRenderer = myRenderer;
this.chRef = chRef;
this.preferencesService = preferencesService;
this.comboId = (Math.floor(Math.random() * (999999999999 - 1))).toString();
this.filter = false;
this.multipleSelection = false;
this.listSelectedValues = false;
this.allElement = false;
this.deleteIconClass = 'icon-close';
this.expandToParentContainerHeight = false;
this.change = new EventEmitter();
this.idChange = new EventEmitter();
this.descriptionChange = new EventEmitter();
this.levelChange = new EventEmitter();
this.allowEditInput = false;
this.emptyElement = false;
this.selectDeselectAll = false;
this.withFavourites = false;
this.isFavourite = false;
this.favouriteList = [];
this.isTree = false;
this.fieldToShowChange = new EventEmitter();
this.codeChange = new EventEmitter();
this._multipleSelectedItemList = [];
this.multipleSelectedItemListChange = new EventEmitter();
this.multipleSelectedIDListChange = new EventEmitter();
this.selectedItemChange = new EventEmitter();
this.filterValue = '';
this.currentSelected = {};
this.selectionChanged = false;
this.top = 0;
this.left = 0;
this.windowResized = false;
this.isDropdownOpened = false;
this.calculatedGridState = initializeCalculatedGridState();
}
ngOnInit() {
this.setRowHeight();
this.setStyle('font-family', this.fontFamily);
this.setStyle('font-size', this.fontSize);
this.setStyle('font-weight', this.fontWeight);
this.setStyle('font-style', this.fontStyle);
jQuery(this.comboboxElement.nativeElement)
.on('hide.bs.dropdown', this.closeDropDown.bind(this));
this.initializeFavouriteList();
this.configGrid();
}
setStyle(styleName, styleValue) {
if (styleValue) {
this.myRenderer.setStyle(this.dropdownElement.nativeElement, styleName, styleValue);
}
}
setDescriptionAndCodeWhenMultiple(value) {
this._description = '';
this._code = '';
for (const selectedItem of value) {
if (this._code !== '') {
this._code += '; ';
}
this._code += selectedItem[this.getCodeField()];
if (this._description !== '') {
this._description += '; ';
}
this._description += selectedItem[this.getDescriptionField()];
}
}
initializeFavouriteList() {
const favouriteListPreference = (this.preferencesService) ? this.preferencesService.get(this.preferenceName + '.favourites') : undefined;
if (this.withFavourites && favouriteListPreference && favouriteListPreference.length > 0) {
this.favouriteList = favouriteListPreference;
if (this.id != null) {
this.checkIfIsFavourite(this.id.toString());
}
}
}
configGrid() {
this.columnDefs = (this.withFavourites) ? [
{
colId: 'itemDescription',
id: this.getIdField(),
field: this.getDescriptionField(),
tooltipField: this.getDescriptionField(),
checkboxSelection: this.multipleSelection,
cellRenderer: ComboboxFavouriteRendererComponent,
cellRendererParams: {
favouriteList: this.favouriteList
}
}
] : [
{
colId: 'itemDescription',
field: this.getDescriptionField(),
tooltipField: this.getDescriptionField(),
checkboxSelection: this.multipleSelection,
}
];
this.gridOptions = {};
this.gridOptions.columnDefs = this.columnDefs;
this.gridOptions.rowHeight = AbstractComboBox.ROW_HEIGHT;
this.gridOptions.headerHeight = 0;
this.gridOptions.suppressCellFocus = false;
if (this.multipleSelection) {
this.gridOptions.rowSelection = 'multiple';
this.gridOptions.suppressRowClickSelection = true;
}
else {
this.gridOptions.rowSelection = 'single';
}
this.gridOptions.getRowId = (item) => this.getRowNodeId(item)
?.toString();
this.configGridData();
this.gridOptions.enableBrowserTooltips = true;
}
getRowNodeId(item) {
if (item) {
if (item[this.getIdField()] != null) {
return item[this.getIdField()];
}
return item.data?.[this.getIdField()] ?? '';
}
return '';
}
configGridData() {
this.gridOptions.rowData = this.values;
}
setRowHeight() {
const lineHeight = StylesUtilService.getStyleValue(this.hiddenElement, 'line-height');
AbstractComboBox.ROW_HEIGHT = Number(lineHeight ? lineHeight : 26);
}
refresh(params) {
return true;
}
agInit(params) {
this.params = params;
}
getInputHeight() {
return this.expandToParentContainerHeight ? { 'height': '100%' } : undefined;
}
getComboPreferencesPrefix() {
return this.preferenceName || this.constructor.name;
}
doToggleFavourite(event) {
event.stopPropagation();
this.toggleFavourite();
}
deleteValueSelected(event) {
event.stopPropagation();
if (this.multipleSelection) {
if (this.multipleSelectedItemList && this.multipleSelectedItemList.length > 0) {
this.multipleSelectedItemList = [];
}
}
else {
this.id = this.defaultIdValue ? this.defaultIdValue : undefined;
this._description = this.defaultDescription ? this.defaultDescription : undefined;
this._code = this.defaultCode ? this.defaultCode : undefined;
}
}
onComboClicked(event) {
if (this.isDisabled || (this.allowEditInput && event.target.className.indexOf('input') > -1)) {
event.stopPropagation();
}
else {
if (!this.isDropDownOpen()) {
this.isDropdownOpened = true;
this.showDropDown();
}
else {
// close
this.checkMultipleSelectionClosed();
}
}
}
onComboKeyArrowDown(event) {
if (!this.isDropDownOpen()) {
this.isDropdownOpened = true;
this.showDropDown();
}
else {
// close
this.checkMultipleSelectionClosed();
}
}
onComboKeyArrowUp(event) {
event.preventDefault();
event.stopPropagation();
}
toggleFavourite() {
this.isFavourite = !this.isFavourite;
if (this.isFavourite) {
this.favouriteList.push(this.id.toString());
}
else {
this.favouriteList.splice(this.favouriteList.map(String)
.indexOf(this.id.toString()), 1);
}
this.preferencesService.put(this.getComboPreferencesPrefix() + '.favourites', this.favouriteList.map(String));
}
setDropdownWidth() {
const parentWidth = this.comboboxElement.nativeElement.offsetWidth;
this.myRenderer.setStyle(this.dropdownElement.nativeElement, 'width', parentWidth + 'px');
this.setGridSize();
}
isDropDownOpen() {
return this.comboboxElement.nativeElement.className.includes('show');
}
closeDropDown() {
this.isDropdownOpened = false;
this.removeWindowScrollHandler();
this.removeGridScrollHandler();
this.resetDropDownPositionAndHeight();
if (this.isDropDownOpen()) {
this.myRenderer.removeClass(this.comboboxElement.nativeElement, 'show');
this.myRenderer.removeClass(this.dropdownMenuElement.nativeElement, 'show');
}
this.chRef.detectChanges();
this.checkMultipleSelectionClosed();
this.input.nativeElement.focus();
}
resetDropDownPositionAndHeight() {
this.myRenderer.setStyle(this.dropdownElement.nativeElement, 'top', null);
this.myRenderer.setStyle(this.dropdownElement.nativeElement, 'left', null);
this.myRenderer.setStyle(this.dropdownElement.nativeElement, 'height', '0px');
}
loop() {
let result = true;
if (this.isDropDownOpen()) {
this.setDropdownHeight();
this.setDropdownPosition();
this.transferFocusToGrid();
result = false;
}
if (result && this.isDropdownOpened) {
setTimeout(() => this.loop(), 10);
}
else {
if (this.filter === true) {
this.filterInput.nativeElement.focus();
}
return;
}
}
transferFocusToGrid() {
// scrolls to the first row
this.gridOptions.api.ensureIndexVisible(0);
// scrolls to the first column
const firstCol = this.gridOptions.columnApi.getAllDisplayedColumns()[0];
this.gridOptions.api.ensureColumnVisible(firstCol);
// sets focus into the first grid cell
this.gridOptions.api.setFocusedCell(0, firstCol);
}
onCellKeyDown(e) {
if (e.event.key === 'Enter') {
if (this.multipleSelection && e.node.selected) {
e.node.setSelected(false);
}
else {
e.node.setSelected(true);
}
e.event.preventDefault();
}
if (e.event.key === 'Tab') {
this.closeDropDown();
e.event.preventDefault();
e.event.stopPropagation();
}
}
showDropDown() {
this.addWindowScrollHandler();
this.setDropdownWidth();
if (!this.isDropDownOpen()) {
setTimeout(() => this.loop(), 10);
}
}
clickDropDownMenu(e) {
e.stopPropagation();
}
setDropdownHeight() {
let calculatedHeight = 0;
const totalItems = this.getTotalItemsForDropdownHeight();
if (this.selectDeselectAll === true) {
calculatedHeight += AbstractComboBox.ROW_HEIGHT + 10;
}
if (this.filter === true) {
calculatedHeight += AbstractComboBox.ROW_HEIGHT + 5;
}
if (totalItems === 0) {
calculatedHeight += 8 + AbstractComboBox.ROW_HEIGHT;
this.myRenderer.setStyle(this.dropdownElement.nativeElement, 'height', calculatedHeight + 'px');
}
else if (totalItems < 10) {
calculatedHeight += 8 + AbstractComboBox.ROW_HEIGHT * totalItems;
this.myRenderer.setStyle(this.dropdownElement.nativeElement, 'height', calculatedHeight + 'px');
}
else {
calculatedHeight += AbstractComboBox.ROW_HEIGHT * 10;
this.myRenderer.setStyle(this.dropdownElement.nativeElement, 'height', calculatedHeight + 'px');
}
}
getTotalItemsInCombo() {
return Number(this.values ? this.values.length : 0);
}
getTotalItemsForDropdownHeight() {
let totalItems = this.getTotalItemsInCombo();
if (this.emptyElement) {
totalItems += 1;
}
if (this.allElement) {
totalItems += 1;
}
return totalItems;
}
setDropdownPosition() {
this.myRenderer.setStyle(this.dropdownMenuElement.nativeElement, 'position', 'fixed');
const dropdownParentRect = this.inputElement.nativeElement.getBoundingClientRect();
this.top = dropdownParentRect.top;
this.left = dropdownParentRect.left;
// Trick for positioning in IE11
if (!!window.MSInputMethodContext && !!window.document.documentMode) {
this.top = dropdownParentRect.top + this.inputElement.nativeElement.offsetHeight;
}
if (this.top + this.dropdownElement.nativeElement.offsetHeight > window.innerHeight) {
this.top = this.top - this.dropdownElement.nativeElement.offsetHeight - this.inputElement.nativeElement.offsetHeight - AbstractComboBox.DROPDOWN_MENU_MARGIN;
}
this.myRenderer.setStyle(this.dropdownElement.nativeElement, 'top', this.top + 'px');
this.myRenderer.setStyle(this.dropdownElement.nativeElement, 'left', this.left + 'px');
}
getSelectedRow() {
if (this.gridOptions && this.gridOptions.api) {
const selectedRow = this.gridOptions.api.getSelectedRows();
if (selectedRow !== null) {
return selectedRow[0];
}
}
return undefined;
}
doSearch(event) {
this.filterValue = event.target.value;
this.doFilter();
}
doFilter() {
const auxListArray = this.values.filter(element => element.description.toLowerCase()
.indexOf(this.filterValue.toLowerCase()) > -1);
this.gridOptions.api.setRowData(auxListArray);
}
doSelectAll() {
this.gridOptions.api.selectAll();
}
doDeselectAll() {
this.gridOptions.api.deselectAll();
}
onSelectionChanged(event) {
if (!this.multipleSelection) {
const selectedRow = this.getSelectedRow();
if (selectedRow !== null && selectedRow !== undefined) {
this.id = selectedRow[this.getIdField()];
this.code = selectedRow[this.getCodeField()];
this.description = selectedRow[this.getDescriptionField()];
this.currentSelected = selectedRow;
this.change.emit(selectedRow);
this.selectedItemChange.emit(selectedRow);
this.closeDropDown();
if (selectedRow[this.getIdField()]) {
this.checkIfIsFavourite(selectedRow[this.getIdField()].toString());
}
}
}
else {
this.selectionChanged = true;
}
}
checkIfIsFavourite(id) {
if (id != null) {
const idString = id.toString();
this.isFavourite = this.favouriteList.map(String)
.includes(idString);
}
else {
this.isFavourite = false;
}
}
onModelUpdated() {
this.addGridScrollHandler();
if (this.multipleSelection) {
if (this.multipleSelectedItemList && this.multipleSelectedItemList.length > 0) {
this.gridOptions.api.forEachNode(node => {
if (this.multipleSelectedItemList.some((item) => (item !== undefined && node.data !== undefined && item[this.getIdField()] === this.getRowNodeId(node.data)))) {
node.selectThisNode(true);
}
});
}
}
else if (this._id) {
this.gridOptions.api.forEachNode(node => {
if (this.getRowNodeId(node.data) === this._id) {
this.currentSelected = node.data;
node.selectThisNode(true);
}
});
}
}
setGridSize() {
this.gridOptions.rowHeight = AbstractComboBox.ROW_HEIGHT;
if (this.gridOptions.api && this.columnDefs) {
if (this.windowResized) {
setTimeout(() => {
AutosizeGridHelper.sizeColumnsToFit(this.gridOptions);
this.windowResized = false;
}, 5);
}
else {
AutosizeGridHelper.sizeColumnsToFit(this.gridOptions);
}
}
}
// overrides
onRowSelected(event) {
if (!this.multipleSelection) {
}
else if (event.node && event.node.data && event.node.data[this.getIdField()] !== undefined) {
if (this.multipleSelectedItemList) {
const elementIndexInSelectedList = this.multipleSelectedItemList.findIndex((item) => {
return item[this.getIdField()] === event.node.data[this.getIdField()];
});
if (event.node.selected) {
if (elementIndexInSelectedList < 0) {
if (this.allElement) {
// if the selectedNode is "all"
if (event.node.data[this.getIdField()] === this.getAllFieldIDValue()) {
this.multipleSelectedItemList = [];
this.unselectAllNodesInGridOptions();
}
else {
// the selectedNode is NOT "all: was "all" node already selected?
const elementAllInSelectedList = this.multipleSelectedItemList.findIndex((item) => {
return item[this.getIdField()] === this.getAllFieldIDValue();
});
// yes, it was => unselect "all" node and empty the multipleSelectedItemList
if (elementAllInSelectedList !== -1) {
this.multipleSelectedItemList = [];
this.unselectNodeAllInGridOptions();
}
}
}
// Regardless the value of allElement, we have to add the newElement using the selectedNode
this.multipleSelectedItemList.push(event.node.data);
this.multipleSelectedItemList = this.multipleSelectedItemList.slice();
}
}
else {
if (elementIndexInSelectedList !== -1) {
this.multipleSelectedItemList.splice(elementIndexInSelectedList, 1);
this.multipleSelectedItemList = this.multipleSelectedItemList.slice();
}
}
}
else {
this.multipleSelectedItemList = [];
this.multipleSelectedItemList.push(event.node.data);
this.multipleSelectedItemList = this.multipleSelectedItemList.slice();
}
this.setDescriptionAndCodeWhenMultiple(this.multipleSelectedItemList);
}
}
unselectAllNodesInGridOptions() {
if (this.gridOptions && this.gridOptions.api) {
this.gridOptions.api.forEachNode(node => {
if (node && this.getRowNodeId(node.data) !== this.getAllFieldIDValue()) {
node.selectThisNode(false);
}
});
}
}
unselectNodeAllInGridOptions() {
if (this.gridOptions && this.gridOptions.api) {
this.gridOptions.api.forEachNode(node => {
if (node && this.getRowNodeId(node.data) === this.getAllFieldIDValue()) {
node.selectThisNode(false);
}
});
}
}
setCodeDescriptionById() {
if (this.id !== undefined && this.values) {
const item = this.values.find(it => it[this.getIdField()] === this.id);
if (item) {
this.description = item[this.getDescriptionField()];
this.code = item[this.getCodeField()];
}
}
else if (this.id === undefined) {
this.description = undefined;
this.code = undefined;
}
}
onResize() {
if (this.isDropDownOpen()) {
this.closeDropDown();
}
const parentWidth = this.comboboxElement.nativeElement.offsetWidth;
this.myRenderer.setStyle(this.dropdownElement.nativeElement, 'width', parentWidth + 'px');
this.windowResized = true;
}
isComboBoxScrolling(element) {
if (element.id === this.dropdownElement.nativeElement.id) {
return true;
}
else if (element.parentElement) {
return this.isComboBoxScrolling(element.parentElement);
}
return false;
}
scroll(event) {
if (!this.isComboBoxScrolling(event.target)) {
this.closeDropDown();
}
}
addWindowScrollHandler() {
this.windowScrollHandler = this.scroll.bind(this);
window.addEventListener('scroll', this.windowScrollHandler, true);
}
removeWindowScrollHandler() {
window.removeEventListener('scroll', this.windowScrollHandler, true);
}
addGridScrollHandler() {
if (this.gridOptions.api) {
this.gridOptions.api.removeEventListener('bodyScroll', this.onBodyScroll.bind(this));
this.calculatedGridState = initializeCalculatedGridState();
this.onBodyScroll(undefined);
this.gridOptions.api.addEventListener('bodyScroll', this.onBodyScroll.bind(this));
}
}
removeGridScrollHandler() {
if (this.gridOptions.api) {
this.gridOptions.api.removeEventListener('bodyScroll', this.onBodyScroll.bind(this));
}
}
ngOnDestroy() {
this.removeWindowScrollHandler();
this.removeGridScrollHandler();
this.chRef.detach();
}
removeItem(item) {
const index = this.multipleSelectedItemList.findIndex(it => it[this.getIdField()] === item[this.getIdField()]);
if (index !== -1) {
this.multipleSelectedItemList.splice(index, 1);
this.multipleSelectedItemList = this.multipleSelectedItemList;
}
}
selectionItemListToIDList() {
return this.multipleSelectedItemList.map(item => item[this.getIdField()]);
}
checkMultipleSelectionClosed() {
if (this.selectionChanged) {
this.change.emit(this.multipleSelectedItemList);
this.selectedItemChange.emit(this.multipleSelectedItemList);
this.multipleSelectedItemListChange.emit(this.multipleSelectedItemList);
this.multipleSelectedIDListChange.emit(this.selectionItemListToIDList());
}
}
doGridReady() {
if (this.filterValue && this.filter === true) {
this.doFilter();
}
}
onBodyScroll(event) {
clearTimeout(this.scrollTimeout);
this.scrollTimeout = setTimeout(() => {
this.doAutoSizeManagement(event);
}, 150);
}
doAutoSizeManagement(event) {
AutosizeGridHelper.doAutoSizeManagement(this.calculatedGridState, this.gridOptions, event);
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: AbstractComboBox, deps: [{ token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: i1.PreferencesService }], target: i0.ɵɵFactoryTarget.Directive }); }
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.9", type: AbstractComboBox, inputs: { customInputRenderer: "customInputRenderer", initialParams: "initialParams", filter: "filter", multipleSelection: "multipleSelection", listSelectedValues: "listSelectedValues", allElement: "allElement", fontFamily: "fontFamily", fontSize: "fontSize", fontWeight: "fontWeight", fontStyle: "fontStyle", withIcon: "withIcon", withDeleteOption: "withDeleteOption", defaultIdValue: "defaultIdValue", defaultDescription: "defaultDescription", defaultCode: "defaultCode", iconClass: "iconClass", inputColor: "inputColor", iconColor: "iconColor", tabindex: "tabindex", deleteIconClass: "deleteIconClass", withEmptyValue: "withEmptyValue", values: "values", isDisabled: "isDisabled", expandToParentContainerHeight: "expandToParentContainerHeight", allowEditInput: "allowEditInput", emptyElement: "emptyElement", selectDeselectAll: "selectDeselectAll", withFavourites: "withFavourites", preferenceName: "preferenceName", id: "id", description: "description", level: "level", fieldToShow: "fieldToShow", code: "code", multipleSelectedItemList: "multipleSelectedItemList" }, outputs: { change: "change", idChange: "idChange", descriptionChange: "descriptionChange", levelChange: "levelChange", fieldToShowChange: "fieldToShowChange", codeChange: "codeChange", multipleSelectedItemListChange: "multipleSelectedItemListChange", multipleSelectedIDListChange: "multipleSelectedIDListChange", selectedItemChange: "selectedItemChange" }, host: { listeners: { "window:resize": "onResize($event)" } }, viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }, { propertyName: "filterInput", first: true, predicate: ["filterInput"], descendants: true }, { propertyName: "comboboxElement", first: true, predicate: ["combobox"], descendants: true, static: true }, { propertyName: "dropdownToogleElement", first: true, predicate: ["dropdowntoogle"], descendants: true }, { propertyName: "dropdownMenuElement", first: true, predicate: ["dropdownmenu"], descendants: true }, { propertyName: "dropdownElement", first: true, predicate: ["dropdown"], descendants: true, static: true }, { propertyName: "inputElement", first: true, predicate: ["input"], descendants: true }, { propertyName: "hiddenElement", first: true, predicate: ["hidden"], descendants: true, static: true }], ngImport: i0 }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: AbstractComboBox, decorators: [{
type: Directive
}], ctorParameters: () => [{ type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }, { type: i1.PreferencesService }], propDecorators: { input: [{
type: ViewChild,
args: ['input', { static: false }]
}], filterInput: [{
type: ViewChild,
args: ['filterInput', { static: false }]
}], customInputRenderer: [{
type: Input
}], initialParams: [{
type: Input
}], filter: [{
type: Input
}], multipleSelection: [{
type: Input
}], listSelectedValues: [{
type: Input
}], allElement: [{
type: Input
}], fontFamily: [{
type: Input
}], fontSize: [{
type: Input
}], fontWeight: [{
type: Input
}], fontStyle: [{
type: Input
}], withIcon: [{
type: Input
}], withDeleteOption: [{
type: Input
}], defaultIdValue: [{
type: Input
}], defaultDescription: [{
type: Input
}], defaultCode: [{
type: Input
}], iconClass: [{
type: Input
}], inputColor: [{
type: Input
}], iconColor: [{
type: Input
}], tabindex: [{
type: Input
}], deleteIconClass: [{
type: Input
}], withEmptyValue: [{
type: Input
}], values: [{
type: Input
}], isDisabled: [{
type: Input
}], expandToParentContainerHeight: [{
type: Input
}], change: [{
type: Output
}], idChange: [{
type: Output
}], descriptionChange: [{
type: Output
}], levelChange: [{
type: Output
}], allowEditInput: [{
type: Input
}], emptyElement: [{
type: Input
}], selectDeselectAll: [{
type: Input
}], withFavourites: [{
type: Input
}], preferenceName: [{
type: Input
}], id: [{
type: Input
}], description: [{
type: Input
}], level: [{
type: Input
}], fieldToShow: [{
type: Input
}], fieldToShowChange: [{
type: Output
}], code: [{
type: Input
}], codeChange: [{
type: Output
}], multipleSelectedItemList: [{
type: Input
}], multipleSelectedItemListChange: [{
type: Output
}], multipleSelectedIDListChange: [{
type: Output
}], selectedItemChange: [{
type: Output
}], comboboxElement: [{
type: ViewChild,
args: ['combobox', { static: true }]
}], dropdownToogleElement: [{
type: ViewChild,
args: ['dropdowntoogle', { static: false }]
}], dropdownMenuElement: [{
type: ViewChild,
args: ['dropdownmenu', { static: false }]
}], dropdownElement: [{
type: ViewChild,
args: ['dropdown', { static: true }]
}], inputElement: [{
type: ViewChild,
args: ['input', { static: false }]
}], hiddenElement: [{
type: ViewChild,
args: ['hidden', { static: true }]
}], onResize: [{
type: HostListener,
args: ['window:resize', ['$event']]
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtY29tYm9ib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3lzdGVsYWItY29tcG9uZW50cy9zcmMvbGliL2NvbWJvYm94L2Fic3RyYWN0LWNvbWJvYm94LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLFNBQVMsRUFBYyxZQUFZLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFhLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUc3SixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUV0RyxPQUFPLEVBQUUsa0JBQWtCLEVBQXVCLDZCQUE2QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7OztBQUt4SCxNQUFNLE9BQWdCLGdCQUFnQjthQUV2QixlQUFVLEdBQUcsQ0FBQyxDQUFDLEFBQUwsQ0FBTTthQUNoQix5QkFBb0IsR0FBRyxFQUFFLEFBQUwsQ0FBTTtJQStCakMsa0JBQWtCO1FBQ3hCLE9BQU8sR0FBRyxDQUFDO0lBQ1osQ0FBQztJQUVNLDJCQUEyQjtRQUNqQyxPQUFPLEVBQUUsQ0FBQztJQUNYLENBQUM7SUFFTSxvQkFBb0I7UUFDMUIsT0FBTyxFQUFFLENBQUM7SUFDWCxDQUFDO0lBRU0sY0FBYztRQUNwQixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFFcEMsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQ3hELFFBQVEsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQywyQkFBMkIsRUFBRSxDQUFDO1FBQzFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsWUFBWSxF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