UNPKG

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.

56 lines 39.9 kB
import { AbstractComboBox } from '../combobox/abstract-combobox.component'; import { Component } from '@angular/core'; import * as i0 from "@angular/core"; import * as i1 from "systelab-translate"; import * as i2 from "@angular/common"; import * as i3 from "@angular/forms"; import * as i4 from "ag-grid-angular"; import * as i5 from "../combobox/renderer/combobox-input-renderer.component"; class Element { constructor(id, description) { this.id = id; this.description = description; } } export class PeriodSelect extends AbstractComboBox { constructor(myRenderer, chRef, i18nService) { super(myRenderer, chRef); this.myRenderer = myRenderer; this.chRef = chRef; this.i18nService = i18nService; } ngAfterViewInit() { const elements = new Array(); elements.push(new Element(this.i18nService.instant('COMMON_PERIOD_WILL_BE_SPECIFIED'), this.i18nService.instant('COMMON_PERIOD_WILL_BE_SPECIFIED'))); elements.push(new Element(this.i18nService.instant('COMMON_CURRENT_MONTH'), this.i18nService.instant('COMMON_CURRENT_MONTH'))); elements.push(new Element(this.i18nService.instant('COMMON_ONE_MONTH_AGO'), this.i18nService.instant('COMMON_ONE_MONTH_AGO'))); elements.push(new Element(this.i18nService.instant('COMMON_TWO_MONTHS_AGO'), this.i18nService.instant('COMMON_TWO_MONTHS_AGO'))); elements.push(new Element(this.i18nService.instant('COMMON_THREE_MONTHS_AGO'), this.i18nService.instant('COMMON_THREE_MONTHS_AGO'))); elements.push(new Element(this.i18nService.instant('COMMON_CURRENT_YEAR'), this.i18nService.instant('COMMON_CURRENT_YEAR'))); elements.push(new Element(this.i18nService.instant('COMMON_ONE_YEAR_AGO'), this.i18nService.instant('COMMON_ONE_YEAR_AGO'))); elements.push(new Element(this.i18nService.instant('COMMON_TWO_YEARS_AGO'), this.i18nService.instant('COMMON_TWO_YEARS_AGO'))); elements.push(new Element(this.i18nService.instant('COMMON_THREE_YEARS_AGO'), this.i18nService.instant('COMMON_THREE_YEARS_AGO'))); elements.push(new Element(this.i18nService.instant('COMMON_ALL'), this.i18nService.instant('COMMON_ALL'))); this._id = this.i18nService.instant('COMMON_PERIOD_WILL_BE_SPECIFIED'); this.values = elements; } getInstance() { return new Element('', ''); } getDescriptionField() { return 'description'; } getCodeField() { return ''; } getIdField() { return 'id'; } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: PeriodSelect, deps: [{ token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: i1.I18nService }], target: i0.ɵɵFactoryTarget.Component }); } static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: PeriodSelect, selector: "systelab-period-select", 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\">&times;</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: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i3.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: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.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: i5.ComboBoxInputRendererComponent, selector: "combobox-input-renderer", inputs: ["componentType", "id", "description", "selectedData", "initialParams"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.GeneralTranslatePipe, name: "translate" }] }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: PeriodSelect, decorators: [{ type: Component, args: [{ selector: 'systelab-period-select', 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\">&times;</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 }, { type: i1.I18nService }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVyaW9kLWNvbWJvYm94LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N5c3RlbGFiLWNvbXBvbmVudHMvc3JjL2xpYi9zZWxlY3QvcGVyaW9kLWNvbWJvYm94LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N5c3RlbGFiLWNvbXBvbmVudHMvc3JjL2xpYi9jb21ib2JveC9hYnN0cmFjdC1jb21ib2JveC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUMzRSxPQUFPLEVBQW9DLFNBQVMsRUFBYSxNQUFNLGVBQWUsQ0FBQzs7Ozs7OztBQUd2RixNQUFNLE9BQU87SUFDWixZQUFtQixFQUFVLEVBQVMsV0FBbUI7UUFBdEMsT0FBRSxHQUFGLEVBQUUsQ0FBUTtRQUFTLGdCQUFXLEdBQVgsV0FBVyxDQUFRO0lBRXpELENBQUM7Q0FDRDtBQU9ELE1BQU0sT0FBTyxZQUFhLFNBQVEsZ0JBQXlCO0lBRTFELFlBQTZCLFVBQXFCLEVBQWtCLEtBQXdCLEVBQVMsV0FBd0I7UUFDNUgsS0FBSyxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsQ0FBQztRQURHLGVBQVUsR0FBVixVQUFVLENBQVc7UUFBa0IsVUFBSyxHQUFMLEtBQUssQ0FBbUI7UUFBUyxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtJQUU3SCxDQUFDO0lBRU0sZUFBZTtRQUNyQixNQUFNLFFBQVEsR0FBRyxJQUFJLEtBQUssRUFBVyxDQUFDO1FBQ3RDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsaUNBQWlDLENBQUMsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNySixRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLHNCQUFzQixDQUFDLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDL0gsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxzQkFBc0IsQ0FBQyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQy9ILFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsdUJBQXVCLENBQUMsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNqSSxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLHlCQUF5QixDQUFDLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMseUJBQXlCLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDckksUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzdILFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMscUJBQXFCLENBQUMsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM3SCxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLHNCQUFzQixDQUFDLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDL0gsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyx3QkFBd0IsQ0FBQyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLHdCQUF3QixDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ25JLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzNHLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsaUNBQWlDLENBQUMsQ0FBQztRQUV2RSxJQUFJLENBQUMsTUFBTSxHQUFHLFFBQVEsQ0FBQztJQUN4QixDQUFDO0lBRUQsV0FBVztRQUNWLE9BQU8sSUFBSSxPQUFPLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFRCxtQkFBbUI7UUFDbEIsT0FBTyxhQUFhLENBQUM7SUFDdEIsQ0FBQztJQUVELFlBQVk7UUFDWCxPQUFPLEVBQUUsQ0FBQztJQUNYLENBQUM7SUFFRCxVQUFVO1FBQ1QsT0FBTyxJQUFJLENBQUM7SUFDYixDQUFDOzhHQXJDVyxZQUFZO2tHQUFaLFlBQVkscUZDZnpCLDR0TEFrRkE7OzJGRG5FYSxZQUFZO2tCQUx4QixTQUFTOytCQUNJLHdCQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFic3RyYWN0Q29tYm9Cb3ggfSBmcm9tICcuLi9jb21ib2JveC9hYnN0cmFjdC1jb21ib2JveC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgUmVuZGVyZXIyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJMThuU2VydmljZSB9IGZyb20gJ3N5c3RlbGFiLXRyYW5zbGF0ZSc7XG5cbmNsYXNzIEVsZW1lbnQge1xuXHRjb25zdHJ1Y3RvcihwdWJsaWMgaWQ6IHN0cmluZywgcHVibGljIGRlc2NyaXB0aW9uOiBzdHJpbmcpIHtcblxuXHR9XG59XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogICAgJ3N5c3RlbGFiLXBlcmlvZC1zZWxlY3QnLFxuXHR0ZW1wbGF0ZVVybDogJy4uL2NvbWJvYm94L2Fic3RyYWN0LWNvbWJvYm94LmNvbXBvbmVudC5odG1sJ1xufSlcblxuZXhwb3J0IGNsYXNzIFBlcmlvZFNlbGVjdCBleHRlbmRzIEFic3RyYWN0Q29tYm9Cb3g8RWxlbWVudD4gaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcblxuXHRjb25zdHJ1Y3RvcihwdWJsaWMgb3ZlcnJpZGUgIG15UmVuZGVyZXI6IFJlbmRlcmVyMiwgcHVibGljIG92ZXJyaWRlIGNoUmVmOiBDaGFuZ2VEZXRlY3RvclJlZiwgcHVibGljIGkxOG5TZXJ2aWNlOiBJMThuU2VydmljZSkge1xuXHRcdHN1cGVyKG15UmVuZGVyZXIsIGNoUmVmKTtcblx0fVxuXG5cdHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG5cdFx0Y29uc3QgZWxlbWVudHMgPSBuZXcgQXJyYXk8RWxlbWVudD4oKTtcblx0XHRlbGVtZW50cy5wdXNoKG5ldyBFbGVtZW50KHRoaXMuaTE4blNlcnZpY2UuaW5zdGFudCgnQ09NTU9OX1BFUklPRF9XSUxMX0JFX1NQRUNJRklFRCcpLCB0aGlzLmkxOG5TZXJ2aWNlLmluc3RhbnQoJ0NPTU1PTl9QRVJJT0RfV0lMTF9CRV9TUEVDSUZJRUQnKSkpO1xuXHRcdGVsZW1lbnRzLnB1c2gobmV3IEVsZW1lbnQodGhpcy5pMThuU2VydmljZS5pbnN0YW50KCdDT01NT05fQ1VSUkVOVF9NT05USCcpLCB0aGlzLmkxOG5TZXJ2aWNlLmluc3RhbnQoJ0NPTU1PTl9DVVJSRU5UX01PTlRIJykpKTtcblx0XHRlbGVtZW50cy5wdXNoKG5ldyBFbGVtZW50KHRoaXMuaTE4blNlcnZpY2UuaW5zdGFudCgnQ09NTU9OX09ORV9NT05USF9BR08nKSwgdGhpcy5pMThuU2VydmljZS5pbnN0YW50KCdDT01NT05fT05FX01PTlRIX0FHTycpKSk7XG5cdFx0ZWxlbWVudHMucHVzaChuZXcgRWxlbWVudCh0aGlzLmkxOG5TZXJ2aWNlLmluc3RhbnQoJ0NPTU1PTl9UV09fTU9OVEhTX0FHTycpLCB0aGlzLmkxOG5TZXJ2aWNlLmluc3RhbnQoJ0NPTU1PTl9UV09fTU9OVEhTX0FHTycpKSk7XG5cdFx0ZWxlbWVudHMucHVzaChuZXcgRWxlbWVudCh0aGlzLmkxOG5TZXJ2aWNlLmluc3RhbnQoJ0NPTU1PTl9USFJFRV9NT05USFNfQUdPJyksIHRoaXMuaTE4blNlcnZpY2UuaW5zdGFudCgnQ09NTU9OX1RIUkVFX01PTlRIU19BR08nKSkpO1xuXHRcdGVsZW1lbnRzLnB1c2gobmV3IEVsZW1lbnQodGhpcy5pMThuU2VydmljZS5pbnN0YW50KCdDT01NT05fQ1VSUkVOVF9ZRUFSJyksIHRoaXMuaTE4blNlcnZpY2UuaW5zdGFudCgnQ09NTU9OX0NVUlJFTlRfWUVBUicpKSk7XG5cdFx0ZWxlbWVudHMucHVzaChuZXcgRWxlbWVudCh0aGlzLmkxOG5TZXJ2aWNlLmluc3RhbnQoJ0NPTU1PTl9PTkVfWUVBUl9BR08nKSwgdGhpcy5pMThuU2VydmljZS5pbnN0YW50KCdDT01NT05fT05FX1lFQVJfQUdPJykpKTtcblx0XHRlbGVtZW50cy5wdXNoKG5ldyBFbGVtZW50KHRoaXMuaTE4blNlcnZpY2UuaW5zdGFudCgnQ09NTU9OX1RXT19ZRUFSU19BR08nKSwgdGhpcy5pMThuU2VydmljZS5pbnN0YW50KCdDT01NT05fVFdPX1lFQVJTX0FHTycpKSk7XG5cdFx0ZWxlbWVudHMucHVzaChuZXcgRWxlbWVudCh0aGlzLmkxOG5TZXJ2aWNlLmluc3RhbnQoJ0NPTU1PTl9USFJFRV9ZRUFSU19BR08nKSwgdGhpcy5pMThuU2VydmljZS5pbnN0YW50KCdDT01NT05fVEhSRUVfWUVBUlNfQUdPJykpKTtcblx0XHRlbGVtZW50cy5wdXNoKG5ldyBFbGVtZW50KHRoaXMuaTE4blNlcnZpY2UuaW5zdGFudCgnQ09NTU9OX0FMTCcpLCB0aGlzLmkxOG5TZXJ2aWNlLmluc3RhbnQoJ0NPTU1PTl9BTEwnKSkpO1xuXHRcdHRoaXMuX2lkID0gdGhpcy5pMThuU2VydmljZS5pbnN0YW50KCdDT01NT05fUEVSSU9EX1dJTExfQkVfU1BFQ0lGSUVEJyk7XG5cblx0XHR0aGlzLnZhbHVlcyA9IGVsZW1lbnRzO1xuXHR9XG5cblx0Z2V0SW5zdGFuY2UoKTogRWxlbWVudCB7XG5cdFx0cmV0dXJuIG5ldyBFbGVtZW50KCcnLCAnJyk7XG5cdH1cblxuXHRnZXREZXNjcmlwdGlvbkZpZWxkKCk6IHN0cmluZyB7XG5cdFx0cmV0dXJuICdkZXNjcmlwdGlvbic7XG5cdH1cblxuXHRnZXRDb2RlRmllbGQoKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gJyc7XG5cdH1cblxuXHRnZXRJZEZpZWxkKCk6IHN0cmluZyB7XG5cdFx0cmV0dXJuICdpZCc7XG5cdH1cbn1cbiIsIjxkaXYgI2NvbWJvYm94IGNsYXNzPVwiZHJvcGRvd24gc2xhYi1jb21ib2JveCBkLWZsZXggdy0xMDBcIiBbbmdDbGFzc109XCJ7J2Rpc2FibGVkJzogaXNEaXNhYmxlZH1cIj5cbiAgICA8ZGl2ICNkcm9wZG93bnRvb2dsZSBjbGFzcz1cInNsYWItZmxleC0xIGQtZmxleCBkcm9wZG93bi10b2dnbGUgc2xhYi1kcm9wZG93bi10b29nbGVcIiBpZD1cInt7Y29tYm9JZH19XCJcbiAgICAgICAgIGRhdGEtdG9nZ2xlPVwiZHJvcGRvd25cIiAoY2xpY2spPVwib25Db21ib0NsaWNrZWQoJGV2ZW50KVwiIChrZXlkb3duLmFycm93RG93bik9XCJvbkNvbWJvS2V5QXJyb3dEb3duKCRldmVudClcIlxuICAgICAgICAgKGtleWRvd24uYXJyb3dVcCk9XCJvbkNvbWJvS2V5QXJyb3dVcCgkZXZlbnQpXCI+XG4gICAgICAgIDxpbnB1dCAqbmdJZj1cIiFjdXN0b21JbnB1dFJlbmRlcmVyXCIgI2lucHV0IFtyZWFkb25seV09XCIhYWxsb3dFZGl0SW5wdXRcIiB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICBjbGFzcz1cInNsYWItZmxleC0xIHNsYWItY29tYm8tbGFiZWwgc2xhYi1jb21iby1pbnB1dFwiXG4gICAgICAgICAgICAgICBbdGFiaW5kZXhdPVwidGFiaW5kZXhcIlxuICAgICAgICAgICAgICAgW25nU3R5bGVdPVwiZ2V0SW5wdXRIZWlnaHQoKVwiIFtzdHlsZS5mb250LWZhbWlseV09XCJmb250RmFtaWx5XCIgW3N0eWxlLmZvbnQtc2l6ZS5weF09XCJmb250U2l6ZVwiXG4gICAgICAgICAgICAgICBbc3R5bGUuZm9udC13ZWlnaHRdPVwiZm9udFdlaWdodFwiIFtzdHlsZS5mb250LXN0eWxlXT1cImZvbnRTdHlsZVwiXG4gICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImRlc2NyaXB0aW9uXCIgW2Rpc2FibGVkXT1cImlzRGlzYWJsZWRcIiBbc3R5bGUuY29sb3JdPVwiaW5wdXRDb2xvclwiLz5cbiAgICAgICAgPGRpdiAqbmdJZj1cImN1c3RvbUlucHV0UmVuZGVyZXJcIiAjaW5wdXQgcmVhZG9ubHkgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgIGNsYXNzPVwic2xhYi1mbGV4LTEgc2xhYi1jb21iby1pbnB1dCBjb21ib2JveC1pbnB1dC1yZW5kZXJlclwiIFtuZ1N0eWxlXT1cImdldElucHV0SGVpZ2h0KClcIlxuICAgICAgICAgICAgIFtzdHlsZS5mb250LWZhbWlseV09XCJmb250RmFtaWx5XCIgW3N0eWxlLmZvbnQtc2l6ZS5weF09XCJmb250U2l6ZVwiIFtzdHlsZS5mb250LXdlaWdodF09XCJmb250V2VpZ2h0XCJcbiAgICAgICAgICAgICBbc3R5bGUuZm9udC1zdHlsZV09XCJmb250U3R5bGVcIiBbc3R5bGUuY29sb3JdPVwiaW5wdXRDb2xvclwiXG4gICAgICAgICAgICAgW3RhYmluZGV4XT1cInRhYmluZGV4XCI+XG4gICAgICAgICAgICA8Y29tYm9ib3gtaW5wdXQtcmVuZGVyZXIgW2NvbXBvbmVudFR5cGVdPVwiY3VzdG9tSW5wdXRSZW5kZXJlclwiIFtpZF09XCJpZFwiIFtkZXNjcmlwdGlvbl09XCJkZXNjcmlwdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2luaXRpYWxQYXJhbXNdPVwiaW5pdGlhbFBhcmFtc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NlbGVjdGVkRGF0YV09XCJjdXJyZW50U2VsZWN0ZWRcIj48L2NvbWJvYm94LWlucHV0LXJlbmRlcmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGJ1dHRvbiAqbmdJZj1cIndpdGhEZWxldGVPcHRpb24gJiYgaWQgJiYgKGlkICE9PSBkZWZhdWx0SWRWYWx1ZSlcIiB0eXBlPVwiYnV0dG9uXCIgI2RlbGV0ZUJ1dHRvblxuICAgICAgICAgICAgICAgIGNsYXNzPVwic2xhYi1jb21iby1idXR0b24gYm9yZGVyLXJpZ2h0LTAgcm91bmRlZC0wIHt7ZGVsZXRlSWNvbkNsYXNzfX1cIiAoY2xpY2spPVwiZGVsZXRlVmFsdWVTZWxlY3RlZCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICB0YWJpbmRleD1cIi0xXCI+PC9idXR0b24+XG4gICAgICAgIDxidXR0b24gKm5nSWY9XCJ3aXRoSWNvbiAmJiBpZFwiIGNsYXNzPVwic2xhYi1jb21iby1idXR0b24gYm9yZGVyLXJpZ2h0LTAgcm91bmRlZC0wIHt7aWNvbkNsYXNzfX1cIlxuICAgICAgICAgICAgICAgIFtzdHlsZS5jb2xvcl09XCJpY29uQ29sb3JcIiB0YWJpbmRleD1cIi0xXCI+PC9idXR0b24+XG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiICpuZ0lmPVwid2l0aEZhdm91cml0ZXMgJiYgaWQhPT1udWxsICYmICghaXNUcmVlIHx8IChpc1RyZWUgJiYgbGV2ZWwpKVwiICNmYXZvdXJpdGVCdXR0b25cbiAgICAgICAgICAgICAgICBjbGFzcz1cInNsYWItY29tYm8tYnV0dG9uIHNsYWItY29tYm8tc3RhciBib3JkZXItcmlnaHQtMCByb3VuZGVkLTAgdGV4dC1wcmltYXJ5XCJcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7J2ljb24tc3Rhcic6IGlzRmF2b3VyaXRlLCAnaWNvbi1zdGFyLW8nOiAhaXNGYXZvdXJpdGUgfVwiIChjbGljayk9XCJkb1RvZ2dsZUZhdm91cml0ZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICB0YWJpbmRleD1cIi0xXCI+PC9idXR0b24+XG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiICNjb21ib2J1dHRvbiBjbGFzcz1cInNsYWItY29tYm8tYnV0dG9uIHNsYWItY29tYm8tYnV0dG9uLWljb25cIiBbZGlzYWJsZWRdPVwiaXNEaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgdGFiaW5kZXg9XCItMVwiPjwvYnV0dG9uPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiAjZHJvcGRvd25tZW51IGNsYXNzPVwiZHJvcGRvd24tbWVudSBzbGFiLWNvbWJvLWRyb3Bkb3duXCIgKGNsaWNrKT1cImNsaWNrRHJvcERvd25NZW51KCRldmVudClcIlxuICAgICAgICAgW25nQ2xhc3NdPVwieydkaXNhYmxlZCc6IGlzRGlzYWJsZWR9XCI+XG4gICAgICAgIDxkaXYgI2Ryb3Bkb3duIGlkPVwic2xhYi1jb21iby1kcm9wZG93bi1ib3hcIiBjbGFzcz1cInNsYWItY29tYm8tZHJvcGRvd24tYm94IGQtZmxleCBmbGV4LWNvbHVtblwiPlxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cImZpbHRlclwiIGNsYXNzPVwic2xhYi1maWx0ZXItY29udGFpbmVyXCIgW3N0eWxlLmZvbnQtZmFtaWx5XT1cImZvbnRGYW1pbHlcIlxuICAgICAgICAgICAgICAgICBbc3R5bGUuZm9udC1zaXplLnB4XT1cImZvbnRTaXplXCIgW3N0eWxlLmZvbnQtd2VpZ2h0XT1cImZvbnRXZWlnaHRcIiBbdGFiaW5kZXhdPVwidGFiaW5kZXhcIlxuICAgICAgICAgICAgICAgICBbc3R5bGUuZm9udC1zdHlsZV09XCJmb250U3R5bGVcIj5cbiAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJ3LTEwMCBib3JkZXIgcm91bmRlZFwiIFt2YWx1ZV09XCJmaWx0ZXJWYWx1ZVwiICNmaWx0ZXJJbnB1dCAoa2V5dXApPVwiZG9TZWFyY2goJGV2ZW50KVwiPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwic2VsZWN0RGVzZWxlY3RBbGxcIiBjbGFzcz1cInNsYWItZmlsdGVyLWNvbnRhaW5lciBtYi0yXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInctMTAwIHRleHQtY2VudGVyIGJ0bi1ncm91cFwiIHJvbGU9XCJncm91cFwiPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tc20gdy01MFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImRvU2VsZWN0QWxsKClcIj57eydDT01NT05fU0VMRUNUX0FMTCcgfCB0cmFuc2xhdGUgfCBhc3luYyB9fTwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tc20gdy01MFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImRvRGVzZWxlY3RBbGwoKVwiPnt7J0NPTU1PTl9ERVNFTEVDVF9BTEwnIHwgdHJhbnNsYXRlIHwgYXN5bmMgfX08L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiAjaGlkZGVuIGNsYXNzPVwiaGVpZ2h0LWhpZGRlblwiPjwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNsYWItZmxleC0xIHBvc2l0aW9uLXJlbGF0aXZlXCI+XG4gICAgICAgICAgICAgICAgPGFnLWdyaWQtYW5ndWxhciAqbmdJZj1cImlzRHJvcGRvd25PcGVuZWRcIiAjZ3JpZCBpZD1cImFnR3JpZFwiICNhZ0dyaWQgc3R5bGU9XCJ3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlO1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3R5bGUuZm9udC1mYW1pbHldPVwiZm9udEZhbWlseVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3R5bGUuZm9udC1zaXplLnB4XT1cImZvbnRTaXplXCIgW3N0eWxlLmZvbnQtd2VpZ2h0XT1cImZvbnRXZWlnaHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N0eWxlLmZvbnQtc3R5bGVdPVwiZm9udFN0eWxlXCIgY2xhc3M9XCJhZy10aGVtZS1mcmVzaFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZ3JpZE9wdGlvbnNdPVwiZ3JpZE9wdGlvbnNcIiAoc2VsZWN0aW9uQ2hhbmdlZCk9XCJvblNlbGVjdGlvbkNoYW5nZWQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9kZWxVcGRhdGVkKT1cIm9uTW9kZWxVcGRhdGVkKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJvd1NlbGVjdGVkKT1cIm9uUm93U2VsZWN0ZWQoJGV2ZW50KVwiIChncmlkUmVhZHkpPVwiZG9HcmlkUmVhZHkoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2VsbEtleURvd24pPVwib25DZWxsS2V5RG93bigkZXZlbnQpXCI+XG4gICAgICAgICAgICAgICAgPC9hZy1ncmlkLWFuZ3VsYXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj5cblxuPGRpdiAqbmdJZj1cImxpc3RTZWxlY3RlZFZhbHVlcyAmJiBtdWx0aXBsZVNlbGVjdGlvblwiPlxuICAgIDx1bCBjbGFzcz1cIm1sLTEgbXQtMiBtYi0wIHBsLTBcIiAqbmdJZj1cIm11bHRpcGxlU2VsZWN0ZWRJdGVtTGlzdC5sZW5ndGggPCA4XCI+XG4gICAgICAgIDxsaSBjbGFzcz1cInNsYWItY29tYm8tYmFkZ2UgYmFkZ2UgYmFkZ2UtcHJpbWFyeSBtci0xIHAtMlwiIHJvbGU9XCJiYWRnZVwiXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBtdWx0aXBsZVNlbGVjdGVkSXRlbUxpc3RcIj48c3BhblxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZmxvYXQtbGVmdCBtci0yXCI+e3tpdGVtLmRlc2NyaXB0aW9ufX08L3NwYW4+XG4gICAgICAgICAgICA8YnV0dG9uIGRhdGEtZGlzbWlzcz1cImJhZGdlXCIgdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiY2xvc2VcIiAoY2xpY2spPVwicmVtb3ZlSXRlbShpdGVtKVwiIGFyaWEtbGFiZWw9XCJDbG9zZVwiXG4gICAgICAgICAgICAgICAgICAgIHRhYmluZGV4PVwiLTFcIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBhcmlhLWhpZGRlbj1cInRydWVcIj4mdGltZXM7PC9zcGFuPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvbGk+XG4gICAgPC91bD5cbiAgICA8dWwgY2xhc3M9XCJtbC0xIG10LTIgcGwtMFwiICpuZ0lmPVwibXVsdGlwbGVTZWxlY3RlZEl0ZW1MaXN0Lmxlbmd0aCA+IDdcIj5cbiAgICAgICAgPGxpIGNsYXNzPVwic2xhYi1jb21iby1iYWRnZSBiYWRnZSBiYWRnZS1wcmltYXJ5IG1yLTEgcC0yXCJcbiAgICAgICAgICAgIHJvbGU9XCJiYWRnZVwiPnt7J0NPTU1PTl9TRUxFQ1RFRF9JVEVNUycgfCB0cmFuc2xhdGUgfCBhc3luYyB9fVxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJiYWRnZSBiYWRnZS1saWdodFwiPnt7bXVsdGlwbGVTZWxlY3RlZEl0ZW1MaXN0Lmxlbmd0aH19PC9zcGFuPlxuICAgICAgICA8L2xpPlxuICAgIDwvdWw+XG48L2Rpdj5cbiJdfQ==