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.
51 lines • 35.9 kB
JavaScript
import { Component } from '@angular/core';
import { AbstractComboBox } from '../combobox/abstract-combobox.component';
import { ColorCellRendererComponent } from './color-cell-renderer.component';
import { ColorUtilService } from '../utilities/color.util.service';
import { ComboBoxInputRenderer } from '../combobox/renderer/combobox-input-renderer';
import * as i0 from "@angular/core";
import * as i1 from "@angular/common";
import * as i2 from "@angular/forms";
import * as i3 from "ag-grid-angular";
import * as i4 from "../combobox/renderer/combobox-input-renderer.component";
import * as i5 from "systelab-translate";
export class ColorComboBox extends AbstractComboBox {
constructor(myRenderer, chRef) {
super(myRenderer, chRef);
this.myRenderer = myRenderer;
this.customInputRenderer = ColorCellRendererComponent;
this.values = ColorUtilService.generateColorArray([0, 128, 192, 255], true);
}
ngOnInit() {
super.ngOnInit();
this.columnDefs = [
{
colId: 'id',
field: this.getDescriptionField(),
cellRenderer: ColorCellRendererComponent,
suppressSizeToFit: true,
flex: 1
}
];
this.gridOptions.columnDefs = this.columnDefs;
}
getInstance() {
return new ComboBoxInputRenderer();
}
getDescriptionField() {
return 'description';
}
getCodeField() {
return '';
}
getIdField() {
return 'id';
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: ColorComboBox, deps: [{ token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: ColorComboBox, selector: "systelab-colorpicker", usesInheritance: true, ngImport: i0, template: "<div #combobox class=\"dropdown slab-combobox d-flex w-100\" [ngClass]=\"{'disabled': isDisabled}\">\n <div #dropdowntoogle class=\"slab-flex-1 d-flex dropdown-toggle slab-dropdown-toogle\" id=\"{{comboId}}\"\n data-toggle=\"dropdown\" (click)=\"onComboClicked($event)\" (keydown.arrowDown)=\"onComboKeyArrowDown($event)\"\n (keydown.arrowUp)=\"onComboKeyArrowUp($event)\">\n <input *ngIf=\"!customInputRenderer\" #input [readonly]=\"!allowEditInput\" type=\"text\"\n class=\"slab-flex-1 slab-combo-label slab-combo-input\"\n [tabindex]=\"tabindex\"\n [ngStyle]=\"getInputHeight()\" [style.font-family]=\"fontFamily\" [style.font-size.px]=\"fontSize\"\n [style.font-weight]=\"fontWeight\" [style.font-style]=\"fontStyle\"\n [(ngModel)]=\"description\" [disabled]=\"isDisabled\" [style.color]=\"inputColor\"/>\n <div *ngIf=\"customInputRenderer\" #input readonly type=\"text\"\n class=\"slab-flex-1 slab-combo-input combobox-input-renderer\" [ngStyle]=\"getInputHeight()\"\n [style.font-family]=\"fontFamily\" [style.font-size.px]=\"fontSize\" [style.font-weight]=\"fontWeight\"\n [style.font-style]=\"fontStyle\" [style.color]=\"inputColor\"\n [tabindex]=\"tabindex\">\n <combobox-input-renderer [componentType]=\"customInputRenderer\" [id]=\"id\" [description]=\"description\"\n [initialParams]=\"initialParams\"\n [selectedData]=\"currentSelected\"></combobox-input-renderer>\n </div>\n <button *ngIf=\"withDeleteOption && id && (id !== defaultIdValue)\" type=\"button\" #deleteButton\n class=\"slab-combo-button border-right-0 rounded-0 {{deleteIconClass}}\" (click)=\"deleteValueSelected($event)\"\n tabindex=\"-1\"></button>\n <button *ngIf=\"withIcon && id\" class=\"slab-combo-button border-right-0 rounded-0 {{iconClass}}\"\n [style.color]=\"iconColor\" tabindex=\"-1\"></button>\n <button type=\"button\" *ngIf=\"withFavourites && id!==null && (!isTree || (isTree && level))\" #favouriteButton\n class=\"slab-combo-button slab-combo-star border-right-0 rounded-0 text-primary\"\n [ngClass]=\"{'icon-star': isFavourite, 'icon-star-o': !isFavourite }\" (click)=\"doToggleFavourite($event)\"\n tabindex=\"-1\"></button>\n <button type=\"button\" #combobutton class=\"slab-combo-button slab-combo-button-icon\" [disabled]=\"isDisabled\"\n tabindex=\"-1\"></button>\n </div>\n\n <div #dropdownmenu class=\"dropdown-menu slab-combo-dropdown\" (click)=\"clickDropDownMenu($event)\"\n [ngClass]=\"{'disabled': isDisabled}\">\n <div #dropdown id=\"slab-combo-dropdown-box\" class=\"slab-combo-dropdown-box d-flex flex-column\">\n <div *ngIf=\"filter\" class=\"slab-filter-container\" [style.font-family]=\"fontFamily\"\n [style.font-size.px]=\"fontSize\" [style.font-weight]=\"fontWeight\" [tabindex]=\"tabindex\"\n [style.font-style]=\"fontStyle\">\n <input class=\"w-100 border rounded\" [value]=\"filterValue\" #filterInput (keyup)=\"doSearch($event)\">\n </div>\n <div *ngIf=\"selectDeselectAll\" class=\"slab-filter-container mb-2\">\n <div class=\"w-100 text-center btn-group\" role=\"group\">\n <button type=\"button\" class=\"btn btn-sm w-50\"\n (click)=\"doSelectAll()\">{{'COMMON_SELECT_ALL' | translate | async }}</button>\n <button type=\"button\" class=\"btn btn-sm w-50\"\n (click)=\"doDeselectAll()\">{{'COMMON_DESELECT_ALL' | translate | async }}</button>\n </div>\n </div>\n <div #hidden class=\"height-hidden\"></div>\n <div class=\"slab-flex-1 position-relative\">\n <ag-grid-angular *ngIf=\"isDropdownOpened\" #grid id=\"agGrid\" #agGrid style=\"width: 100%; height: 100%;\"\n [style.font-family]=\"fontFamily\"\n [style.font-size.px]=\"fontSize\" [style.font-weight]=\"fontWeight\"\n [style.font-style]=\"fontStyle\" class=\"ag-theme-fresh\"\n [gridOptions]=\"gridOptions\" (selectionChanged)=\"onSelectionChanged($event)\"\n (modelUpdated)=\"onModelUpdated()\"\n (rowSelected)=\"onRowSelected($event)\" (gridReady)=\"doGridReady()\"\n (cellKeyDown)=\"onCellKeyDown($event)\">\n </ag-grid-angular>\n </div>\n </div>\n </div>\n</div>\n\n<div *ngIf=\"listSelectedValues && multipleSelection\">\n <ul class=\"ml-1 mt-2 mb-0 pl-0\" *ngIf=\"multipleSelectedItemList.length < 8\">\n <li class=\"slab-combo-badge badge badge-primary mr-1 p-2\" role=\"badge\"\n *ngFor=\"let item of multipleSelectedItemList\"><span\n class=\"float-left mr-2\">{{item.description}}</span>\n <button data-dismiss=\"badge\" type=\"button\" class=\"close\" (click)=\"removeItem(item)\" aria-label=\"Close\"\n tabindex=\"-1\">\n <span aria-hidden=\"true\">×</span>\n </button>\n </li>\n </ul>\n <ul class=\"ml-1 mt-2 pl-0\" *ngIf=\"multipleSelectedItemList.length > 7\">\n <li class=\"slab-combo-badge badge badge-primary mr-1 p-2\"\n role=\"badge\">{{'COMMON_SELECTED_ITEMS' | translate | async }}\n <span class=\"badge badge-light\">{{multipleSelectedItemList.length}}</span>\n </li>\n </ul>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.AgGridAngular, selector: "ag-grid-angular", inputs: ["gridOptions", "modules", "statusBar", "sideBar", "suppressContextMenu", "preventDefaultOnContextMenu", "allowContextMenuWithControlKey", "suppressMenuHide", "enableBrowserTooltips", "tooltipShowDelay", "tooltipHideDelay", "tooltipMouseTrack", "popupParent", "copyHeadersToClipboard", "copyGroupHeadersToClipboard", "clipboardDelimiter", "suppressCopyRowsToClipboard", "suppressCopySingleCellRanges", "suppressLastEmptyLineOnPaste", "suppressClipboardPaste", "suppressClipboardApi", "columnDefs", "defaultColDef", "defaultColGroupDef", "columnTypes", "maintainColumnOrder", "suppressFieldDotNotation", "deltaColumnMode", "applyColumnDefOrder", "immutableColumns", "suppressSetColumnStateEvents", "suppressColumnStateEvents", "colWidth", "minColWidth", "maxColWidth", "headerHeight", "groupHeaderHeight", "floatingFiltersHeight", "pivotHeaderHeight", "pivotGroupHeaderHeight", "allowDragFromColumnsToolPanel", "suppressMovableColumns", "suppressColumnMoveAnimation", "suppressDragLeaveHidesColumns", "suppressRowGroupHidesColumns", "colResizeDefault", "suppressAutoSize", "autoSizePadding", "skipHeaderOnAutoSize", "components", "frameworkComponents", "editType", "singleClickEdit", "suppressClickEdit", "readOnlyEdit", "stopEditingWhenCellsLoseFocus", "enterMovesDown", "enterMovesDownAfterEdit", "enableCellEditingOnBackspace", "undoRedoCellEditing", "undoRedoCellEditingLimit", "stopEditingWhenGridLosesFocus", "defaultCsvExportParams", "suppressCsvExport", "defaultExcelExportParams", "suppressExcelExport", "excelStyles", "defaultExportParams", "quickFilterText", "cacheQuickFilter", "excludeChildrenWhenTreeDataFiltering", "enableCharts", "chartThemes", "customChartThemes", "chartThemeOverrides", "enableChartToolPanelsButton", "chartToolPanelsDef", "loadingCellRenderer", "loadingCellRendererFramework", "loadingCellRendererParams", "loadingCellRendererSelector", "localeText", "masterDetail", "keepDetailRows", "keepDetailRowsCount", "detailCellRenderer", "detailCellRendererFramework", "detailCellRendererParams", "detailRowHeight", "detailRowAutoHeight", "context", "alignedGrids", "tabIndex", "rowBuffer", "valueCache", "valueCacheNeverExpires", "enableCellExpressions", "suppressParentsInRowNodes", "suppressTouch", "suppressFocusAfterRefresh", "suppressAsyncEvents", "suppressBrowserResizeObserver", "suppressPropertyNamesCheck", "suppressChangeDetection", "debug", "overlayLoadingTemplate", "loadingOverlayComponent", "loadingOverlayComponentFramework", "loadingOverlayComponentParams", "suppressLoadingOverlay", "overlayNoRowsTemplate", "noRowsOverlayComponent", "noRowsOverlayComponentFramework", "noRowsOverlayComponentParams", "suppressNoRowsOverlay", "pagination", "paginationPageSize", "paginationAutoPageSize", "paginateChildRows", "suppressPaginationPanel", "pivotMode", "pivotPanelShow", "pivotColumnGroupTotals", "pivotRowTotals", "pivotSuppressAutoColumn", "suppressExpandablePivotGroups", "functionsReadOnly", "aggFuncs", "suppressAggFuncInHeader", "suppressAggAtRootLevel", "aggregateOnlyChangedColumns", "suppressAggFilteredOnly", "removePivotHeaderRowWhenSingleValueColumn", "animateRows", "enableCellChangeFlash", "cellFlashDelay", "cellFadeDelay", "allowShowChangeAfterFilter", "domLayout", "ensureDomOrder", "enableRtl", "suppressColumnVirtualisation", "suppressMaxRenderedRowRestriction", "suppressRowVirtualisation", "rowDragManaged", "suppressRowDrag", "suppressMoveWhenRowDragging", "rowDragEntireRow", "rowDragMultiRow", "rowDragText", "fullWidthCellRenderer", "fullWidthCellRendererFramework", "fullWidthCellRendererParams", "embedFullWidthRows", "deprecatedEmbedFullWidthRows", "groupDisplayType", "groupDefaultExpanded", "autoGroupColumnDef", "groupMaintainOrder", "groupSelectsChildren", "groupAggFiltering", "groupIncludeFooter", "groupIncludeTotalFooter", "groupSuppressBlankHeader", "groupSelectsFiltered", "showOpenedGroup", "groupRemoveSingleChildren", "groupRemoveLowestSingleChildren", "groupHideOpenParents", "rowGroupPanelShow", "groupRowRenderer", "groupRowRendererFramework", "groupRowRendererParams", "suppressMakeColumnVisibleAfterUnGroup", "treeData", "rowGroupPanelSuppressSort", "groupRowsSticky", "groupRowInnerRenderer", "groupRowInnerRendererFramework", "groupMultiAutoColumn", "groupUseEntireRow", "groupSuppressAutoColumn", "rememberGroupStateWhenNewData", "pinnedTopRowData", "pinnedBottomRowData", "rowModelType", "rowData", "immutableData", "asyncTransactionWaitMillis", "suppressModelUpdateAfterUpdateTransaction", "deltaRowDataMode", "batchUpdateWaitMillis", "datasource", "cacheOverflowSize", "infiniteInitialRowCount", "serverSideInitialRowCount", "serverSideStoreType", "serverSideInfiniteScroll", "cacheBlockSize", "maxBlocksInCache", "maxConcurrentDatasourceRequests", "blockLoadDebounceMillis", "purgeClosedRowNodes", "serverSideDatasource", "serverSideSortAllLevels", "serverSideFilterAllLevels", "serverSideSortOnServer", "serverSideFilterOnServer", "serverSideSortingAlwaysResets", "serverSideFilteringAlwaysResets", "suppressEnterpriseResetOnNewColumns", "viewportDatasource", "viewportRowModelPageSize", "viewportRowModelBufferSize", "alwaysShowHorizontalScroll", "alwaysShowVerticalScroll", "debounceVerticalScrollbar", "suppressHorizontalScroll", "suppressScrollOnNewData", "suppressScrollWhenPopupsAreOpen", "suppressAnimationFrame", "suppressMiddleClickScrolls", "suppressPreventDefaultOnMouseWheel", "scrollbarWidth", "rowSelection", "rowMultiSelectWithClick", "suppressRowDeselection", "suppressRowClickSelection", "suppressCellSelection", "suppressCellFocus", "suppressMultiRangeSelection", "enableCellTextSelection", "enableRangeSelection", "enableRangeHandle", "enableFillHandle", "fillHandleDirection", "suppressClearOnFillReduction", "sortingOrder", "accentedSort", "unSortIcon", "suppressMultiSort", "alwaysMultiSort", "multiSortKey", "suppressMaintainUnsortedOrder", "icons", "rowHeight", "rowStyle", "rowClass", "rowClassRules", "suppressRowHoverHighlight", "suppressRowTransform", "columnHoverHighlight", "deltaSort", "treeDataDisplayType", "angularCompileRows", "angularCompileFilters", "functionsPassive", "enableGroupEdit", "getContextMenuItems", "getMainMenuItems", "postProcessPopup", "processCellForClipboard", "processHeaderForClipboard", "processGroupHeaderForClipboard", "processCellFromClipboard", "sendToClipboard", "processDataFromClipboard", "isExternalFilterPresent", "doesExternalFilterPass", "getChartToolbarItems", "createChartContainer", "navigateToNextHeader", "tabToNextHeader", "navigateToNextCell", "tabToNextCell", "suppressKeyboardEvent", "localeTextFunc", "getLocaleText", "getDocument", "paginationNumberFormatter", "groupRowAggNodes", "getGroupRowAgg", "isGroupOpenByDefault", "initialGroupOrderComparator", "defaultGroupOrderComparator", "processSecondaryColDef", "processSecondaryColGroupDef", "processPivotResultColDef", "processPivotResultColGroupDef", "getDataPath", "defaultGroupSortComparator", "getChildCount", "getServerSideGroupLevelParams", "getServerSideStoreParams", "isServerSideGroupOpenByDefault", "isApplyServerSideTransaction", "isServerSideGroup", "getServerSideGroupKey", "getBusinessKeyForNode", "getRowNodeId", "getRowId", "resetRowDataOnUpdate", "processRowPostCreate", "isRowSelectable", "isRowMaster", "fillOperation", "postSort", "postSortRows", "getRowStyle", "getRowClass", "getRowHeight", "isFullWidthCell", "isFullWidthRow"], outputs: ["toolPanelVisibleChanged", "toolPanelSizeChanged", "pasteStart", "pasteEnd", "columnVisible", "columnPinned", "columnResized", "columnMoved", "columnValueChanged", "columnPivotModeChanged", "columnPivotChanged", "columnGroupOpened", "newColumnsLoaded", "gridColumnsChanged", "displayedColumnsChanged", "virtualColumnsChanged", "columnEverythingChanged", "componentStateChanged", "cellValueChanged", "cellEditRequest", "rowValueChanged", "cellEditingStarted", "cellEditingStopped", "rowEditingStarted", "rowEditingStopped", "filterOpened", "filterChanged", "filterModified", "chartCreated", "chartRangeSelectionChanged", "chartOptionsChanged", "chartDestroyed", "cellKeyDown", "cellKeyPress", "gridReady", "firstDataRendered", "gridSizeChanged", "modelUpdated", "virtualRowRemoved", "viewportChanged", "bodyScroll", "bodyScrollEnd", "dragStarted", "dragStopped", "paginationChanged", "rowDragEnter", "rowDragMove", "rowDragLeave", "rowDragEnd", "columnRowGroupChanged", "rowGroupOpened", "expandOrCollapseAll", "pinnedRowDataChanged", "rowDataChanged", "rowDataUpdated", "asyncTransactionsFlushed", "cellClicked", "cellDoubleClicked", "cellFocused", "cellMouseOver", "cellMouseOut", "cellMouseDown", "rowClicked", "rowDoubleClicked", "rowSelected", "selectionChanged", "cellContextMenu", "rangeSelectionChanged", "sortChanged", "columnRowGroupChangeRequest", "columnPivotChangeRequest", "columnValueChangeRequest", "columnAggFuncChangeRequest"] }, { kind: "component", type: i4.ComboBoxInputRendererComponent, selector: "combobox-input-renderer", inputs: ["componentType", "id", "description", "selectedData", "initialParams"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.GeneralTranslatePipe, name: "translate" }] }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: ColorComboBox, decorators: [{
type: Component,
args: [{ selector: 'systelab-colorpicker', template: "<div #combobox class=\"dropdown slab-combobox d-flex w-100\" [ngClass]=\"{'disabled': isDisabled}\">\n <div #dropdowntoogle class=\"slab-flex-1 d-flex dropdown-toggle slab-dropdown-toogle\" id=\"{{comboId}}\"\n data-toggle=\"dropdown\" (click)=\"onComboClicked($event)\" (keydown.arrowDown)=\"onComboKeyArrowDown($event)\"\n (keydown.arrowUp)=\"onComboKeyArrowUp($event)\">\n <input *ngIf=\"!customInputRenderer\" #input [readonly]=\"!allowEditInput\" type=\"text\"\n class=\"slab-flex-1 slab-combo-label slab-combo-input\"\n [tabindex]=\"tabindex\"\n [ngStyle]=\"getInputHeight()\" [style.font-family]=\"fontFamily\" [style.font-size.px]=\"fontSize\"\n [style.font-weight]=\"fontWeight\" [style.font-style]=\"fontStyle\"\n [(ngModel)]=\"description\" [disabled]=\"isDisabled\" [style.color]=\"inputColor\"/>\n <div *ngIf=\"customInputRenderer\" #input readonly type=\"text\"\n class=\"slab-flex-1 slab-combo-input combobox-input-renderer\" [ngStyle]=\"getInputHeight()\"\n [style.font-family]=\"fontFamily\" [style.font-size.px]=\"fontSize\" [style.font-weight]=\"fontWeight\"\n [style.font-style]=\"fontStyle\" [style.color]=\"inputColor\"\n [tabindex]=\"tabindex\">\n <combobox-input-renderer [componentType]=\"customInputRenderer\" [id]=\"id\" [description]=\"description\"\n [initialParams]=\"initialParams\"\n [selectedData]=\"currentSelected\"></combobox-input-renderer>\n </div>\n <button *ngIf=\"withDeleteOption && id && (id !== defaultIdValue)\" type=\"button\" #deleteButton\n class=\"slab-combo-button border-right-0 rounded-0 {{deleteIconClass}}\" (click)=\"deleteValueSelected($event)\"\n tabindex=\"-1\"></button>\n <button *ngIf=\"withIcon && id\" class=\"slab-combo-button border-right-0 rounded-0 {{iconClass}}\"\n [style.color]=\"iconColor\" tabindex=\"-1\"></button>\n <button type=\"button\" *ngIf=\"withFavourites && id!==null && (!isTree || (isTree && level))\" #favouriteButton\n class=\"slab-combo-button slab-combo-star border-right-0 rounded-0 text-primary\"\n [ngClass]=\"{'icon-star': isFavourite, 'icon-star-o': !isFavourite }\" (click)=\"doToggleFavourite($event)\"\n tabindex=\"-1\"></button>\n <button type=\"button\" #combobutton class=\"slab-combo-button slab-combo-button-icon\" [disabled]=\"isDisabled\"\n tabindex=\"-1\"></button>\n </div>\n\n <div #dropdownmenu class=\"dropdown-menu slab-combo-dropdown\" (click)=\"clickDropDownMenu($event)\"\n [ngClass]=\"{'disabled': isDisabled}\">\n <div #dropdown id=\"slab-combo-dropdown-box\" class=\"slab-combo-dropdown-box d-flex flex-column\">\n <div *ngIf=\"filter\" class=\"slab-filter-container\" [style.font-family]=\"fontFamily\"\n [style.font-size.px]=\"fontSize\" [style.font-weight]=\"fontWeight\" [tabindex]=\"tabindex\"\n [style.font-style]=\"fontStyle\">\n <input class=\"w-100 border rounded\" [value]=\"filterValue\" #filterInput (keyup)=\"doSearch($event)\">\n </div>\n <div *ngIf=\"selectDeselectAll\" class=\"slab-filter-container mb-2\">\n <div class=\"w-100 text-center btn-group\" role=\"group\">\n <button type=\"button\" class=\"btn btn-sm w-50\"\n (click)=\"doSelectAll()\">{{'COMMON_SELECT_ALL' | translate | async }}</button>\n <button type=\"button\" class=\"btn btn-sm w-50\"\n (click)=\"doDeselectAll()\">{{'COMMON_DESELECT_ALL' | translate | async }}</button>\n </div>\n </div>\n <div #hidden class=\"height-hidden\"></div>\n <div class=\"slab-flex-1 position-relative\">\n <ag-grid-angular *ngIf=\"isDropdownOpened\" #grid id=\"agGrid\" #agGrid style=\"width: 100%; height: 100%;\"\n [style.font-family]=\"fontFamily\"\n [style.font-size.px]=\"fontSize\" [style.font-weight]=\"fontWeight\"\n [style.font-style]=\"fontStyle\" class=\"ag-theme-fresh\"\n [gridOptions]=\"gridOptions\" (selectionChanged)=\"onSelectionChanged($event)\"\n (modelUpdated)=\"onModelUpdated()\"\n (rowSelected)=\"onRowSelected($event)\" (gridReady)=\"doGridReady()\"\n (cellKeyDown)=\"onCellKeyDown($event)\">\n </ag-grid-angular>\n </div>\n </div>\n </div>\n</div>\n\n<div *ngIf=\"listSelectedValues && multipleSelection\">\n <ul class=\"ml-1 mt-2 mb-0 pl-0\" *ngIf=\"multipleSelectedItemList.length < 8\">\n <li class=\"slab-combo-badge badge badge-primary mr-1 p-2\" role=\"badge\"\n *ngFor=\"let item of multipleSelectedItemList\"><span\n class=\"float-left mr-2\">{{item.description}}</span>\n <button data-dismiss=\"badge\" type=\"button\" class=\"close\" (click)=\"removeItem(item)\" aria-label=\"Close\"\n tabindex=\"-1\">\n <span aria-hidden=\"true\">×</span>\n </button>\n </li>\n </ul>\n <ul class=\"ml-1 mt-2 pl-0\" *ngIf=\"multipleSelectedItemList.length > 7\">\n <li class=\"slab-combo-badge badge badge-primary mr-1 p-2\"\n role=\"badge\">{{'COMMON_SELECTED_ITEMS' | translate | async }}\n <span class=\"badge badge-light\">{{multipleSelectedItemList.length}}</span>\n </li>\n </ul>\n</div>\n" }]
}], ctorParameters: () => [{ type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3JwaWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3lzdGVsYWItY29tcG9uZW50cy9zcmMvbGliL2NvbG9ycGlja2VyL2NvbG9ycGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N5c3RlbGFiLWNvbXBvbmVudHMvc3JjL2xpYi9jb21ib2JveC9hYnN0cmFjdC1jb21ib2JveC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLFNBQVMsRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDaEYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDM0UsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDN0UsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbkUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sOENBQThDLENBQUM7Ozs7Ozs7QUFNckYsTUFBTSxPQUFPLGFBQWMsU0FBUSxnQkFBdUM7SUFDekUsWUFBNEIsVUFBcUIsRUFBRSxLQUF3QjtRQUMxRSxLQUFLLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBREUsZUFBVSxHQUFWLFVBQVUsQ0FBVztRQUdoRCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsMEJBQTBCLENBQUM7UUFFdEQsSUFBSSxDQUFDLE1BQU0sR0FBRyxnQkFBZ0IsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzdFLENBQUM7SUFFZSxRQUFRO1FBQ3ZCLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUVqQixJQUFJLENBQUMsVUFBVSxHQUFHO1lBQ2pCO2dCQUNDLEtBQUssRUFBUyxJQUFJO2dCQUNsQixLQUFLLEVBQVMsSUFBSSxDQUFDLG1CQUFtQixFQUFFO2dCQUN4QyxZQUFZLEVBQUUsMEJBQTBCO2dCQUN4QyxpQkFBaUIsRUFBRSxJQUFJO2dCQUN2QixJQUFJLEVBQUUsQ0FBQzthQUNQO1NBQ0QsQ0FBQztRQUVGLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDL0MsQ0FBQztJQUVELFdBQVc7UUFDVixPQUFPLElBQUkscUJBQXFCLEVBQUUsQ0FBQztJQUNwQyxDQUFDO0lBRUQsbUJBQW1CO1FBQ2xCLE9BQU8sYUFBYSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxZQUFZO1FBQ1gsT0FBTyxFQUFFLENBQUM7SUFDWCxDQUFDO0lBRUQsVUFBVTtRQUNULE9BQU8sSUFBSSxDQUFDO0lBQ2IsQ0FBQzs4R0F2Q1csYUFBYTtrR0FBYixhQUFhLG1GQ1YxQiw0dExBa0ZBOzsyRkR4RWEsYUFBYTtrQkFKekIsU0FBUzsrQkFDSSxzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBPbkluaXQsIFJlbmRlcmVyMiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb21ib0JveCB9IGZyb20gJy4uL2NvbWJvYm94L2Fic3RyYWN0LWNvbWJvYm94LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb2xvckNlbGxSZW5kZXJlckNvbXBvbmVudCB9IGZyb20gJy4vY29sb3ItY2VsbC1yZW5kZXJlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29sb3JVdGlsU2VydmljZSB9IGZyb20gJy4uL3V0aWxpdGllcy9jb2xvci51dGlsLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29tYm9Cb3hJbnB1dFJlbmRlcmVyIH0gZnJvbSAnLi4vY29tYm9ib3gvcmVuZGVyZXIvY29tYm9ib3gtaW5wdXQtcmVuZGVyZXInO1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICAgICdzeXN0ZWxhYi1jb2xvcnBpY2tlcicsXG5cdHRlbXBsYXRlVXJsOiAnLi4vY29tYm9ib3gvYWJzdHJhY3QtY29tYm9ib3guY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIENvbG9yQ29tYm9Cb3ggZXh0ZW5kcyBBYnN0cmFjdENvbWJvQm94PENvbWJvQm94SW5wdXRSZW5kZXJlcj4gaW1wbGVtZW50cyBPbkluaXQge1xuXHRjb25zdHJ1Y3RvcihwdWJsaWMgb3ZlcnJpZGUgbXlSZW5kZXJlcjogUmVuZGVyZXIyLCBjaFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcblx0XHRzdXBlcihteVJlbmRlcmVyLCBjaFJlZik7XG5cblx0XHR0aGlzLmN1c3RvbUlucHV0UmVuZGVyZXIgPSBDb2xvckNlbGxSZW5kZXJlckNvbXBvbmVudDtcblxuXHRcdHRoaXMudmFsdWVzID0gQ29sb3JVdGlsU2VydmljZS5nZW5lcmF0ZUNvbG9yQXJyYXkoWzAsIDEyOCwgMTkyLCAyNTVdLCB0cnVlKTtcblx0fVxuXG5cdHB1YmxpYyBvdmVycmlkZSBuZ09uSW5pdCgpOiB2b2lkIHtcblx0XHRzdXBlci5uZ09uSW5pdCgpO1xuXG5cdFx0dGhpcy5jb2x1bW5EZWZzID0gW1xuXHRcdFx0e1xuXHRcdFx0XHRjb2xJZDogICAgICAgICdpZCcsXG5cdFx0XHRcdGZpZWxkOiAgICAgICAgdGhpcy5nZXREZXNjcmlwdGlvbkZpZWxkKCksXG5cdFx0XHRcdGNlbGxSZW5kZXJlcjogQ29sb3JDZWxsUmVuZGVyZXJDb21wb25lbnQsXG5cdFx0XHRcdHN1cHByZXNzU2l6ZVRvRml0OiB0cnVlLFxuXHRcdFx0XHRmbGV4OiAxXG5cdFx0XHR9XG5cdFx0XTtcblxuXHRcdHRoaXMuZ3JpZE9wdGlvbnMuY29sdW1uRGVmcyA9IHRoaXMuY29sdW1uRGVmcztcblx0fVxuXG5cdGdldEluc3RhbmNlKCk6IENvbWJvQm94SW5wdXRSZW5kZXJlciB7XG5cdFx0cmV0dXJuIG5ldyBDb21ib0JveElucHV0UmVuZGVyZXIoKTtcblx0fVxuXG5cdGdldERlc2NyaXB0aW9uRmllbGQoKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gJ2Rlc2NyaXB0aW9uJztcblx0fVxuXG5cdGdldENvZGVGaWVsZCgpOiBzdHJpbmcge1xuXHRcdHJldHVybiAnJztcblx0fVxuXG5cdGdldElkRmllbGQoKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gJ2lkJztcblx0fVxuXG59XG4iLCI8ZGl2ICNjb21ib2JveCBjbGFzcz1cImRyb3Bkb3duIHNsYWItY29tYm9ib3ggZC1mbGV4IHctMTAwXCIgW25nQ2xhc3NdPVwieydkaXNhYmxlZCc6IGlzRGlzYWJsZWR9XCI+XG4gICAgPGRpdiAjZHJvcGRvd250b29nbGUgY2xhc3M9XCJzbGFiLWZsZXgtMSBkLWZsZXggZHJvcGRvd24tdG9nZ2xlIHNsYWItZHJvcGRvd24tdG9vZ2xlXCIgaWQ9XCJ7e2NvbWJvSWR9fVwiXG4gICAgICAgICBkYXRhLXRvZ2dsZT1cImRyb3Bkb3duXCIgKGNsaWNrKT1cIm9uQ29tYm9DbGlja2VkKCRldmVudClcIiAoa2V5ZG93bi5hcnJvd0Rvd24pPVwib25Db21ib0tleUFycm93RG93bigkZXZlbnQpXCJcbiAgICAgICAgIChrZXlkb3duLmFycm93VXApPVwib25Db21ib0tleUFycm93VXAoJGV2ZW50KVwiPlxuICAgICAgICA8aW5wdXQgKm5nSWY9XCIhY3VzdG9tSW5wdXRSZW5kZXJlclwiICNpbnB1dCBbcmVhZG9ubHldPVwiIWFsbG93RWRpdElucHV0XCIgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgY2xhc3M9XCJzbGFiLWZsZXgtMSBzbGFiLWNvbWJvLWxhYmVsIHNsYWItY29tYm8taW5wdXRcIlxuICAgICAgICAgICAgICAgW3RhYmluZGV4XT1cInRhYmluZGV4XCJcbiAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cImdldElucHV0SGVpZ2h0KClcIiBbc3R5bGUuZm9udC1mYW1pbHldPVwiZm9udEZhbWlseVwiIFtzdHlsZS5mb250LXNpemUucHhdPVwiZm9udFNpemVcIlxuICAgICAgICAgICAgICAgW3N0eWxlLmZvbnQtd2VpZ2h0XT1cImZvbnRXZWlnaHRcIiBbc3R5bGUuZm9udC1zdHlsZV09XCJmb250U3R5bGVcIlxuICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJkZXNjcmlwdGlvblwiIFtkaXNhYmxlZF09XCJpc0Rpc2FibGVkXCIgW3N0eWxlLmNvbG9yXT1cImlucHV0Q29sb3JcIi8+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJjdXN0b21JbnB1dFJlbmRlcmVyXCIgI2lucHV0IHJlYWRvbmx5IHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICBjbGFzcz1cInNsYWItZmxleC0xIHNsYWItY29tYm8taW5wdXQgY29tYm9ib3gtaW5wdXQtcmVuZGVyZXJcIiBbbmdTdHlsZV09XCJnZXRJbnB1dEhlaWdodCgpXCJcbiAgICAgICAgICAgICBbc3R5bGUuZm9udC1mYW1pbHldPVwiZm9udEZhbWlseVwiIFtzdHlsZS5mb250LXNpemUucHhdPVwiZm9udFNpemVcIiBbc3R5bGUuZm9udC13ZWlnaHRdPVwiZm9udFdlaWdodFwiXG4gICAgICAgICAgICAgW3N0eWxlLmZvbnQtc3R5bGVdPVwiZm9udFN0eWxlXCIgW3N0eWxlLmNvbG9yXT1cImlucHV0Q29sb3JcIlxuICAgICAgICAgICAgIFt0YWJpbmRleF09XCJ0YWJpbmRleFwiPlxuICAgICAgICAgICAgPGNvbWJvYm94LWlucHV0LXJlbmRlcmVyIFtjb21wb25lbnRUeXBlXT1cImN1c3RvbUlucHV0UmVuZGVyZXJcIiBbaWRdPVwiaWRcIiBbZGVzY3JpcHRpb25dPVwiZGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpbml0aWFsUGFyYW1zXT1cImluaXRpYWxQYXJhbXNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzZWxlY3RlZERhdGFdPVwiY3VycmVudFNlbGVjdGVkXCI+PC9jb21ib2JveC1pbnB1dC1yZW5kZXJlcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxidXR0b24gKm5nSWY9XCJ3aXRoRGVsZXRlT3B0aW9uICYmIGlkICYmIChpZCAhPT0gZGVmYXVsdElkVmFsdWUpXCIgdHlwZT1cImJ1dHRvblwiICNkZWxldGVCdXR0b25cbiAgICAgICAgICAgICAgICBjbGFzcz1cInNsYWItY29tYm8tYnV0dG9uIGJvcmRlci1yaWdodC0wIHJvdW5kZWQtMCB7e2RlbGV0ZUljb25DbGFzc319XCIgKGNsaWNrKT1cImRlbGV0ZVZhbHVlU2VsZWN0ZWQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgdGFiaW5kZXg9XCItMVwiPjwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uICpuZ0lmPVwid2l0aEljb24gJiYgaWRcIiBjbGFzcz1cInNsYWItY29tYm8tYnV0dG9uIGJvcmRlci1yaWdodC0wIHJvdW5kZWQtMCB7e2ljb25DbGFzc319XCJcbiAgICAgICAgICAgICAgICBbc3R5bGUuY29sb3JdPVwiaWNvbkNvbG9yXCIgdGFiaW5kZXg9XCItMVwiPjwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAqbmdJZj1cIndpdGhGYXZvdXJpdGVzICYmIGlkIT09bnVsbCAmJiAoIWlzVHJlZSB8fCAoaXNUcmVlICYmIGxldmVsKSlcIiAjZmF2b3VyaXRlQnV0dG9uXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJzbGFiLWNvbWJvLWJ1dHRvbiBzbGFiLWNvbWJvLXN0YXIgYm9yZGVyLXJpZ2h0LTAgcm91bmRlZC0wIHRleHQtcHJpbWFyeVwiXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieydpY29uLXN0YXInOiBpc0Zhdm91cml0ZSwgJ2ljb24tc3Rhci1vJzogIWlzRmF2b3VyaXRlIH1cIiAoY2xpY2spPVwiZG9Ub2dnbGVGYXZvdXJpdGUoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgdGFiaW5kZXg9XCItMVwiPjwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAjY29tYm9idXR0b24gY2xhc3M9XCJzbGFiLWNvbWJvLWJ1dHRvbiBzbGFiLWNvbWJvLWJ1dHRvbi1pY29uXCIgW2Rpc2FibGVkXT1cImlzRGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgIHRhYmluZGV4PVwiLTFcIj48L2J1dHRvbj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgI2Ryb3Bkb3dubWVudSBjbGFzcz1cImRyb3Bkb3duLW1lbnUgc2xhYi1jb21iby1kcm9wZG93blwiIChjbGljayk9XCJjbGlja0Ryb3BEb3duTWVudSgkZXZlbnQpXCJcbiAgICAgICAgIFtuZ0NsYXNzXT1cInsnZGlzYWJsZWQnOiBpc0Rpc2FibGVkfVwiPlxuICAgICAgICA8ZGl2ICNkcm9wZG93biBpZD1cInNsYWItY29tYm8tZHJvcGRvd24tYm94XCIgY2xhc3M9XCJzbGFiLWNvbWJvLWRyb3Bkb3duLWJveCBkLWZsZXggZmxleC1jb2x1bW5cIj5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJmaWx0ZXJcIiBjbGFzcz1cInNsYWItZmlsdGVyLWNvbnRhaW5lclwiIFtzdHlsZS5mb250LWZhbWlseV09XCJmb250RmFtaWx5XCJcbiAgICAgICAgICAgICAgICAgW3N0eWxlLmZvbnQtc2l6ZS5weF09XCJmb250U2l6ZVwiIFtzdHlsZS5mb250LXdlaWdodF09XCJmb250V2VpZ2h0XCIgW3RhYmluZGV4XT1cInRhYmluZGV4XCJcbiAgICAgICAgICAgICAgICAgW3N0eWxlLmZvbnQtc3R5bGVdPVwiZm9udFN0eWxlXCI+XG4gICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwidy0xMDAgYm9yZGVyIHJvdW5kZWRcIiBbdmFsdWVdPVwiZmlsdGVyVmFsdWVcIiAjZmlsdGVySW5wdXQgKGtleXVwKT1cImRvU2VhcmNoKCRldmVudClcIj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cInNlbGVjdERlc2VsZWN0QWxsXCIgY2xhc3M9XCJzbGFiLWZpbHRlci1jb250YWluZXIgbWItMlwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3LTEwMCB0ZXh0LWNlbnRlciBidG4tZ3JvdXBcIiByb2xlPVwiZ3JvdXBcIj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXNtIHctNTBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJkb1NlbGVjdEFsbCgpXCI+e3snQ09NTU9OX1NFTEVDVF9BTEwnIHwgdHJhbnNsYXRlIHwgYXN5bmMgfX08L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXNtIHctNTBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJkb0Rlc2VsZWN0QWxsKClcIj57eydDT01NT05fREVTRUxFQ1RfQUxMJyB8IHRyYW5zbGF0ZSB8IGFzeW5jIH19PC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgI2hpZGRlbiBjbGFzcz1cImhlaWdodC1oaWRkZW5cIj48L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzbGFiLWZsZXgtMSBwb3NpdGlvbi1yZWxhdGl2ZVwiPlxuICAgICAgICAgICAgICAgIDxhZy1ncmlkLWFuZ3VsYXIgKm5nSWY9XCJpc0Ryb3Bkb3duT3BlbmVkXCIgI2dyaWQgaWQ9XCJhZ0dyaWRcIiAjYWdHcmlkIHN0eWxlPVwid2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N0eWxlLmZvbnQtZmFtaWx5XT1cImZvbnRGYW1pbHlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N0eWxlLmZvbnQtc2l6ZS5weF09XCJmb250U2l6ZVwiIFtzdHlsZS5mb250LXdlaWdodF09XCJmb250V2VpZ2h0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZS5mb250LXN0eWxlXT1cImZvbnRTdHlsZVwiIGNsYXNzPVwiYWctdGhlbWUtZnJlc2hcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2dyaWRPcHRpb25zXT1cImdyaWRPcHRpb25zXCIgKHNlbGVjdGlvbkNoYW5nZWQpPVwib25TZWxlY3Rpb25DaGFuZ2VkKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vZGVsVXBkYXRlZCk9XCJvbk1vZGVsVXBkYXRlZCgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyb3dTZWxlY3RlZCk9XCJvblJvd1NlbGVjdGVkKCRldmVudClcIiAoZ3JpZFJlYWR5KT1cImRvR3JpZFJlYWR5KClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNlbGxLZXlEb3duKT1cIm9uQ2VsbEtleURvd24oJGV2ZW50KVwiPlxuICAgICAgICAgICAgICAgIDwvYWctZ3JpZC1hbmd1bGFyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+XG5cbjxkaXYgKm5nSWY9XCJsaXN0U2VsZWN0ZWRWYWx1ZXMgJiYgbXVsdGlwbGVTZWxlY3Rpb25cIj5cbiAgICA8dWwgY2xhc3M9XCJtbC0xIG10LTIgbWItMCBwbC0wXCIgKm5nSWY9XCJtdWx0aXBsZVNlbGVjdGVkSXRlbUxpc3QubGVuZ3RoIDwgOFwiPlxuICAgICAgICA8bGkgY2xhc3M9XCJzbGFiLWNvbWJvLWJhZGdlIGJhZGdlIGJhZGdlLXByaW1hcnkgbXItMSBwLTJcIiByb2xlPVwiYmFkZ2VcIlxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgbXVsdGlwbGVTZWxlY3RlZEl0ZW1MaXN0XCI+PHNwYW5cbiAgICAgICAgICAgICAgICBjbGFzcz1cImZsb2F0LWxlZnQgbXItMlwiPnt7aXRlbS5kZXNjcmlwdGlvbn19PC9zcGFuPlxuICAgICAgICAgICAgPGJ1dHRvbiBkYXRhLWRpc21pc3M9XCJiYWRnZVwiIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImNsb3NlXCIgKGNsaWNrKT1cInJlbW92ZUl0ZW0oaXRlbSlcIiBhcmlhLWxhYmVsPVwiQ2xvc2VcIlxuICAgICAgICAgICAgICAgICAgICB0YWJpbmRleD1cIi0xXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gYXJpYS1oaWRkZW49XCJ0cnVlXCI+JnRpbWVzOzwvc3Bhbj5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2xpPlxuICAgIDwvdWw+XG4gICAgPHVsIGNsYXNzPVwibWwtMSBtdC0yIHBsLTBcIiAqbmdJZj1cIm11bHRpcGxlU2VsZWN0ZWRJdGVtTGlzdC5sZW5ndGggPiA3XCI+XG4gICAgICAgIDxsaSBjbGFzcz1cInNsYWItY29tYm8tYmFkZ2UgYmFkZ2UgYmFkZ2UtcHJpbWFyeSBtci0xIHAtMlwiXG4gICAgICAgICAgICByb2xlPVwiYmFkZ2VcIj57eydDT01NT05fU0VMRUNURURfSVRFTVMnIHwgdHJhbnNsYXRlIHwgYXN5bmMgfX1cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYmFkZ2UgYmFkZ2UtbGlnaHRcIj57e211bHRpcGxlU2VsZWN0ZWRJdGVtTGlzdC5sZW5ndGh9fTwvc3Bhbj5cbiAgICAgICAgPC9saT5cbiAgICA8L3VsPlxuPC9kaXY+XG4iXX0=