@sarasanalytics-com/design-system 0.0.177 → 0.0.178

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -139,6 +139,20 @@ export class DataGridComponent {
139
139
  }
140
140
  };
141
141
  }
142
+ // Helper method to create a masked email cell
143
+ static createMaskedEmailCell(email, config = {}) {
144
+ return {
145
+ cellType: 'masked',
146
+ viewText: true,
147
+ viewChip: false,
148
+ viewLeadingIcon: false,
149
+ viewTrailingIcon: false,
150
+ viewButton: false,
151
+ viewAvatar: false,
152
+ text: email,
153
+ ...config
154
+ };
155
+ }
142
156
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: DataGridComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
143
157
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.4", type: DataGridComponent, isStandalone: true, selector: "sa-data-grid", inputs: { columnDefs: "columnDefs", rowData: "rowData", defaultColDef: "defaultColDef", pagination: "pagination", paginationPageSize: "paginationPageSize", paginationPageSizeSelector: "paginationPageSizeSelector", gridHeight: "gridHeight", datasource: "datasource", localeText: "localeText" }, outputs: { gridReady: "gridReady" }, ngImport: i0, template: "<ag-grid-angular\n class=\"ag-theme-alpine sa-grid-theme\"\n [columnDefs]=\"columnDefs\"\n [rowData]=\"getEffectiveRowData()\"\n [defaultColDef]=\"defaultColDef\"\n (gridReady)=\"onGridReady($event)\"\n [domLayout]=\"gridHeight ? 'normal' : 'autoHeight'\"\n [style.height.px]=\"gridHeight || null\"\n [pagination]=\"pagination\"\n [paginationPageSize]=\"paginationPageSize\"\n [paginationPageSizeSelector]=\"paginationPageSizeSelector\"\n [localeText]=\"localeText\"\n [rowModelType]=\"datasource ? 'infinite' : 'clientSide'\"\n></ag-grid-angular>\n", styles: ["::ng-deep .sa-grid-theme{--ag-header-background-color: var(--primary-50, #F4EBFF);--ag-header-foreground-color: var(--text-secondary);--ag-row-hover-color: var(--surface-hover);--ag-selected-row-background-color: var(--surface-selected);--ag-odd-row-background-color: transparent;--ag-row-border-color: var(--grey-100, #EAECF0);--ag-cell-horizontal-padding: 16px;--ag-header-column-separator-display: none;--ag-borders: solid 1px;--ag-border-color: var(--grey-100, #EAECF0);font-family:var(--font-family);overflow:visible!important}::ng-deep .sa-grid-theme .ag-header-cell{font-size:12px;font-weight:500;line-height:16px;color:var(--Text-High-Emphasis, #1C1B20);font-family:var(--font-family, Roboto);font-size:14px;font-style:normal;font-weight:400;line-height:20px;letter-spacing:.25px}::ng-deep .sa-grid-theme .ag-theme-alpine .ag-row,.ag-theme-alpine .ag-cell{overflow:visible!important;z-index:auto}::ng-deep .sa-grid-theme .ag-cell{font-size:14px;line-height:20px}::ng-deep .sa-grid-theme .ag-row{border-bottom:1px solid var(--grey-100, #EAECF0);background:var(--structural-white, #FFF)}::ng-deep .sa-grid-theme .ag-row:last-child{border-bottom:none}::ng-deep .sa-grid-theme .ag-header-viewport{border-bottom:1px solid var(--grey-100, #EAECF0);background:var(--primary-50, #F4EBFF)}::ng-deep .sa-grid-theme .main-text{color:var(--text-high-emphasis, #1C1B20);font-family:var(--font-family-roboto, Roboto);font-size:14px;font-style:normal;font-weight:400;line-height:20px;letter-spacing:.25px}::ng-deep .sa-grid-theme .ag-header{border-bottom:none}::ng-deep .sa-grid-theme .avatar-img{background:none}::ng-deep .sa-grid-theme .grid-text{display:flex!important;flex-direction:row!important;gap:4px}::ng-deep .sa-grid-theme .grid-text .sub-text{font-family:var(--font-family-roboto, Roboto);font-size:14px;font-style:normal;font-weight:400;height:20px;line-height:20px;letter-spacing:.25px}::ng-deep .sa-grid-theme .ag-ltr .ag-cell-focus{outline:none!important;border:none!important}::ng-deep .sa-grid-theme .ag-root-wrapper{overflow:visible!important}::ng-deep .sa-grid-theme .ag-root{overflow:visible!important}::ng-deep .sa-grid-theme .ag-body-viewport{overflow:visible!important}::ng-deep .sa-grid-theme .ag-center-cols-container{overflow:visible!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AgGridModule }, { kind: "component", type: i1.AgGridAngular, selector: "ag-grid-angular", inputs: ["gridOptions", "modules", "statusBar", "sideBar", "suppressContextMenu", "preventDefaultOnContextMenu", "allowContextMenuWithControlKey", "columnMenu", "suppressMenuHide", "enableBrowserTooltips", "tooltipTrigger", "tooltipShowDelay", "tooltipHideDelay", "tooltipMouseTrack", "tooltipShowMode", "tooltipInteraction", "popupParent", "copyHeadersToClipboard", "copyGroupHeadersToClipboard", "clipboardDelimiter", "suppressCopyRowsToClipboard", "suppressCopySingleCellRanges", "suppressLastEmptyLineOnPaste", "suppressClipboardPaste", "suppressClipboardApi", "suppressCutToClipboard", "columnDefs", "defaultColDef", "defaultColGroupDef", "columnTypes", "dataTypeDefinitions", "maintainColumnOrder", "suppressFieldDotNotation", "headerHeight", "groupHeaderHeight", "floatingFiltersHeight", "pivotHeaderHeight", "pivotGroupHeaderHeight", "allowDragFromColumnsToolPanel", "suppressMovableColumns", "suppressColumnMoveAnimation", "suppressDragLeaveHidesColumns", "suppressRowGroupHidesColumns", "colResizeDefault", "suppressAutoSize", "autoSizePadding", "skipHeaderOnAutoSize", "autoSizeStrategy", "components", "editType", "singleClickEdit", "suppressClickEdit", "readOnlyEdit", "stopEditingWhenCellsLoseFocus", "enterMovesDown", "enterMovesDownAfterEdit", "enterNavigatesVertically", "enterNavigatesVerticallyAfterEdit", "enableCellEditingOnBackspace", "undoRedoCellEditing", "undoRedoCellEditingLimit", "defaultCsvExportParams", "suppressCsvExport", "defaultExcelExportParams", "suppressExcelExport", "excelStyles", "quickFilterText", "cacheQuickFilter", "excludeHiddenColumnsFromQuickFilter", "includeHiddenColumnsInQuickFilter", "quickFilterParser", "quickFilterMatcher", "excludeChildrenWhenTreeDataFiltering", "enableAdvancedFilter", "advancedFilterModel", "includeHiddenColumnsInAdvancedFilter", "advancedFilterParent", "advancedFilterBuilderParams", "enableCharts", "chartThemes", "customChartThemes", "chartThemeOverrides", "enableChartToolPanelsButton", "suppressChartToolPanelsButton", "chartToolPanelsDef", "chartMenuItems", "loadingCellRenderer", "loadingCellRendererParams", "loadingCellRendererSelector", "localeText", "masterDetail", "keepDetailRows", "keepDetailRowsCount", "detailCellRenderer", "detailCellRendererParams", "detailRowHeight", "detailRowAutoHeight", "context", "alignedGrids", "tabIndex", "rowBuffer", "valueCache", "valueCacheNeverExpires", "enableCellExpressions", "suppressParentsInRowNodes", "suppressTouch", "suppressFocusAfterRefresh", "suppressAsyncEvents", "suppressBrowserResizeObserver", "suppressPropertyNamesCheck", "suppressChangeDetection", "debug", "overlayLoadingTemplate", "loadingOverlayComponent", "loadingOverlayComponentParams", "suppressLoadingOverlay", "overlayNoRowsTemplate", "noRowsOverlayComponent", "noRowsOverlayComponentParams", "suppressNoRowsOverlay", "pagination", "paginationPageSize", "paginationPageSizeSelector", "paginationAutoPageSize", "paginateChildRows", "suppressPaginationPanel", "pivotMode", "pivotPanelShow", "pivotMaxGeneratedColumns", "pivotDefaultExpanded", "pivotColumnGroupTotals", "pivotRowTotals", "pivotSuppressAutoColumn", "suppressExpandablePivotGroups", "functionsReadOnly", "aggFuncs", "suppressAggFuncInHeader", "alwaysAggregateAtRootLevel", "suppressAggAtRootLevel", "aggregateOnlyChangedColumns", "suppressAggFilteredOnly", "removePivotHeaderRowWhenSingleValueColumn", "animateRows", "enableCellChangeFlash", "cellFlashDuration", "cellFlashDelay", "cellFadeDuration", "cellFadeDelay", "allowShowChangeAfterFilter", "domLayout", "ensureDomOrder", "enableRtl", "suppressColumnVirtualisation", "suppressMaxRenderedRowRestriction", "suppressRowVirtualisation", "rowDragManaged", "suppressRowDrag", "suppressMoveWhenRowDragging", "rowDragEntireRow", "rowDragMultiRow", "rowDragText", "fullWidthCellRenderer", "fullWidthCellRendererParams", "embedFullWidthRows", "suppressGroupMaintainValueType", "groupDisplayType", "groupDefaultExpanded", "autoGroupColumnDef", "groupMaintainOrder", "groupSelectsChildren", "groupLockGroupColumns", "groupAggFiltering", "groupIncludeFooter", "groupIncludeTotalFooter", "groupSuppressBlankHeader", "groupSelectsFiltered", "showOpenedGroup", "groupRemoveSingleChildren", "groupRemoveLowestSingleChildren", "groupHideOpenParents", "groupAllowUnbalanced", "rowGroupPanelShow", "groupRowRenderer", "groupRowRendererParams", "suppressMakeColumnVisibleAfterUnGroup", "treeData", "rowGroupPanelSuppressSort", "suppressGroupRowsSticky", "pinnedTopRowData", "pinnedBottomRowData", "rowModelType", "rowData", "asyncTransactionWaitMillis", "suppressModelUpdateAfterUpdateTransaction", "datasource", "cacheOverflowSize", "infiniteInitialRowCount", "serverSideInitialRowCount", "suppressServerSideInfiniteScroll", "cacheBlockSize", "maxBlocksInCache", "maxConcurrentDatasourceRequests", "blockLoadDebounceMillis", "purgeClosedRowNodes", "serverSideDatasource", "serverSideSortAllLevels", "serverSideEnableClientSideSort", "serverSideOnlyRefreshFilteredGroups", "serverSideFilterAllLevels", "serverSideSortOnServer", "serverSideFilterOnServer", "serverSidePivotResultFieldSeparator", "viewportDatasource", "viewportRowModelPageSize", "viewportRowModelBufferSize", "alwaysShowHorizontalScroll", "alwaysShowVerticalScroll", "debounceVerticalScrollbar", "suppressHorizontalScroll", "suppressScrollOnNewData", "suppressScrollWhenPopupsAreOpen", "suppressAnimationFrame", "suppressMiddleClickScrolls", "suppressPreventDefaultOnMouseWheel", "scrollbarWidth", "rowSelection", "rowMultiSelectWithClick", "suppressRowDeselection", "suppressRowClickSelection", "suppressCellFocus", "suppressHeaderFocus", "suppressMultiRangeSelection", "enableCellTextSelection", "enableRangeSelection", "enableRangeHandle", "enableFillHandle", "fillHandleDirection", "suppressClearOnFillReduction", "sortingOrder", "accentedSort", "unSortIcon", "suppressMultiSort", "alwaysMultiSort", "multiSortKey", "suppressMaintainUnsortedOrder", "icons", "rowHeight", "rowStyle", "rowClass", "rowClassRules", "suppressRowHoverHighlight", "suppressRowTransform", "columnHoverHighlight", "gridId", "deltaSort", "treeDataDisplayType", "functionsPassive", "enableGroupEdit", "initialState", "getContextMenuItems", "getMainMenuItems", "postProcessPopup", "processUnpinnedColumns", "processCellForClipboard", "processHeaderForClipboard", "processGroupHeaderForClipboard", "processCellFromClipboard", "sendToClipboard", "processDataFromClipboard", "isExternalFilterPresent", "doesExternalFilterPass", "getChartToolbarItems", "createChartContainer", "navigateToNextHeader", "tabToNextHeader", "navigateToNextCell", "tabToNextCell", "getLocaleText", "getDocument", "paginationNumberFormatter", "getGroupRowAgg", "isGroupOpenByDefault", "initialGroupOrderComparator", "processPivotResultColDef", "processPivotResultColGroupDef", "getDataPath", "getChildCount", "getServerSideGroupLevelParams", "isServerSideGroupOpenByDefault", "isApplyServerSideTransaction", "isServerSideGroup", "getServerSideGroupKey", "getBusinessKeyForNode", "getRowId", "resetRowDataOnUpdate", "processRowPostCreate", "isRowSelectable", "isRowMaster", "fillOperation", "postSortRows", "getRowStyle", "getRowClass", "getRowHeight", "isFullWidthRow"], outputs: ["toolPanelVisibleChanged", "toolPanelSizeChanged", "columnMenuVisibleChanged", "cutStart", "cutEnd", "pasteStart", "pasteEnd", "columnVisible", "columnPinned", "columnResized", "columnMoved", "columnValueChanged", "columnPivotModeChanged", "columnPivotChanged", "columnGroupOpened", "newColumnsLoaded", "gridColumnsChanged", "displayedColumnsChanged", "virtualColumnsChanged", "columnEverythingChanged", "columnHeaderMouseOver", "columnHeaderMouseLeave", "columnHeaderClicked", "columnHeaderContextMenu", "componentStateChanged", "cellValueChanged", "cellEditRequest", "rowValueChanged", "cellEditingStarted", "cellEditingStopped", "rowEditingStarted", "rowEditingStopped", "undoStarted", "undoEnded", "redoStarted", "redoEnded", "rangeDeleteStart", "rangeDeleteEnd", "filterOpened", "filterChanged", "filterModified", "advancedFilterBuilderVisibleChanged", "chartCreated", "chartRangeSelectionChanged", "chartOptionsChanged", "chartDestroyed", "cellKeyDown", "gridReady", "gridPreDestroyed", "firstDataRendered", "gridSizeChanged", "modelUpdated", "virtualRowRemoved", "viewportChanged", "bodyScroll", "bodyScrollEnd", "dragStarted", "dragStopped", "stateUpdated", "paginationChanged", "rowDragEnter", "rowDragMove", "rowDragLeave", "rowDragEnd", "columnRowGroupChanged", "rowGroupOpened", "expandOrCollapseAll", "pivotMaxColumnsExceeded", "pinnedRowDataChanged", "rowDataUpdated", "asyncTransactionsFlushed", "storeRefreshed", "cellClicked", "cellDoubleClicked", "cellFocused", "cellMouseOver", "cellMouseOut", "cellMouseDown", "rowClicked", "rowDoubleClicked", "rowSelected", "selectionChanged", "cellContextMenu", "rangeSelectionChanged", "tooltipShow", "tooltipHide", "sortChanged", "columnRowGroupChangeRequest", "columnPivotChangeRequest", "columnValueChangeRequest", "columnAggFuncChangeRequest"] }] }); }
144
158
  }
@@ -166,4 +180,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
166
180
  }], gridReady: [{
167
181
  type: Output
168
182
  }] } });
169
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1ncmlkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudC1saWJyYXJ5L3NyYy9saWIvZGF0YS1ncmlkL2RhdGEtZ3JpZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnQtbGlicmFyeS9zcmMvbGliL2RhdGEtZ3JpZC9kYXRhLWdyaWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOzs7QUFZckUsTUFBTSxPQUFPLGlCQUFpQjtJQVA5QjtRQVNXLGVBQVUsR0FBYSxFQUFFLENBQUM7UUFDMUIsWUFBTyxHQUFVLEVBQUUsQ0FBQztRQUNwQixrQkFBYSxHQUFXO1lBQy9CLFFBQVEsRUFBRSxJQUFJO1lBQ2QsTUFBTSxFQUFFLElBQUk7WUFDWixTQUFTLEVBQUUsSUFBSTtTQUNoQixDQUFDO1FBRUYsK0JBQStCO1FBQ3RCLGVBQVUsR0FBWSxLQUFLLENBQUM7UUFDNUIsdUJBQWtCLEdBQVcsRUFBRSxDQUFDO1FBQ2hDLCtCQUEwQixHQUFhLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDekQsZUFBVSxHQUFXLEdBQUcsQ0FBQztRQUV6QixlQUFVLEdBQVEsRUFBRSxDQUFDO1FBQ3BCLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBdUIsQ0FBQztLQXNKL0Q7SUFsSkMsNENBQTRDO0lBQzVDLG1CQUFtQjtRQUNq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bEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQWdHcmlkTW9kdWxlIH0gZnJvbSAnYWctZ3JpZC1hbmd1bGFyJztcbmltcG9ydCB7IEdyaWRDZWxsQ29tcG9uZW50IH0gZnJvbSAnLi4vZ3JpZC1jZWxsL2dyaWQtY2VsbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29sRGVmLCBHcmlkQXBpLCBHcmlkUmVhZHlFdmVudCB9IGZyb20gJ2FnLWdyaWQtY29tbXVuaXR5JztcbmltcG9ydCB7IEdyaWRJbnRlcmZhY2UgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2dyaWQtaW50ZXJmYWNlJztcbmltcG9ydCB7IEJ1dHRvbkludGVyZmFjZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvYnV0dG9uLWludGVyZmFjZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NhLWRhdGEtZ3JpZCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEFnR3JpZE1vZHVsZSwgR3JpZENlbGxDb21wb25lbnRdLFxuICB0ZW1wbGF0ZVVybDogJy4vZGF0YS1ncmlkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2RhdGEtZ3JpZC5jb21wb25lbnQuY3NzJ1xufSlcbmV4cG9ydCBjbGFzcyBEYXRhR3JpZENvbXBvbmVudCB7XG4gIHB1YmxpYyBzdGF0aWMgZ3JpZEFwaUluc3RhbmNlOiBHcmlkQXBpO1xuICBASW5wdXQoKSBjb2x1bW5EZWZzOiBDb2xEZWZbXSA9IFtdO1xuICBASW5wdXQoKSByb3dEYXRhOiBhbnlbXSA9IFtdO1xuICBASW5wdXQoKSBkZWZhdWx0Q29sRGVmOiBDb2xEZWYgPSB7XG4gICAgc29ydGFibGU6IHRydWUsXG4gICAgZmlsdGVyOiB0cnVlLFxuICAgIHJlc2l6YWJsZTogdHJ1ZVxuICB9O1xuXG4gIC8vIFBhZ2luYXRpb24gaW5wdXRzIChvcHRpb25hbClcbiAgQElucHV0KCkgcGFnaW5hdGlvbjogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBwYWdpbmF0aW9uUGFnZVNpemU6IG51bWJlciA9IDEwO1xuICBASW5wdXQoKSBwYWdpbmF0aW9uUGFnZVNpemVTZWxlY3RvcjogbnVtYmVyW10gPSBbMTAsIDI1LCA1MCwgMTAwXTtcbiAgQElucHV0KCkgZ3JpZEhlaWdodDogbnVtYmVyID0gNDIwO1xuICBASW5wdXQoKSBkYXRhc291cmNlOiBhbnk7XG4gIEBJbnB1dCgpIGxvY2FsZVRleHQ6IGFueSA9IHt9O1xuICBAT3V0cHV0KCkgZ3JpZFJlYWR5ID0gbmV3IEV2ZW50RW1pdHRlcjxHcmlkUmVhZHlFdmVudDxhbnk+PigpO1xuXG4gIHByaXZhdGUgZ3JpZEFwaSE6IEdyaWRBcGk7XG5cbiAgLy8gTWV0aG9kIHRvIGRldGVybWluZSB3aGljaCByb3cgZGF0YSB0byB1c2VcbiAgZ2V0RWZmZWN0aXZlUm93RGF0YSgpOiBhbnlbXSB8IHVuZGVmaW5lZCB7XG4gICAgLy8gSWYgZGF0YXNvdXJjZSBpcyBwcm92aWRlZCwgcm93RGF0YSBtdXN0IGJlIHVuZGVmaW5lZFxuICAgIHJldHVybiB0aGlzLmRhdGFzb3VyY2UgPyB1bmRlZmluZWQgOiB0aGlzLnJvd0RhdGE7XG4gIH1cblxuICBvbkdyaWRSZWFkeShwYXJhbXM6IEdyaWRSZWFkeUV2ZW50PGFueT4pIHtcbiAgICB0aGlzLmdyaWRBcGkgPSBwYXJhbXMuYXBpO1xuICAgIERhdGFHcmlkQ29tcG9uZW50LmdyaWRBcGlJbnN0YW5jZSA9IHBhcmFtcy5hcGk7XG4gICAgdGhpcy5ncmlkQXBpLnNpemVDb2x1bW5zVG9GaXQoKTtcblxuICAgIC8vIFNldHVwIHNlcnZlci1zaWRlIHJvdyBtb2RlbCBpZiBlbmFibGVkXG4gICAgICBpZiAodGhpcy5kYXRhc291cmNlKSB7XG4gICAgICAgIHRoaXMuZ3JpZEFwaS5zZXRHcmlkT3B0aW9uXG4gICAgICAgID8gdGhpcy5ncmlkQXBpLnNldEdyaWRPcHRpb24oJ2RhdGFzb3VyY2UnLCB0aGlzLmRhdGFzb3VyY2UpXG4gICAgICAgIDogdGhpcy5ncmlkQXBpLnNldERhdGFzb3VyY2UodGhpcy5kYXRhc291cmNlKTtcbiAgICAgIH0gIFxuICAgIHRoaXMuZ3JpZFJlYWR5LmVtaXQocGFyYW1zKTtcbiAgfVxuXG4gIHN0YXRpYyB1cGRhdGVDZWxsQ29udGVudChcbiAgICBncmlkQXBpOiBHcmlkQXBpLFxuICAgIHJvd0luZGV4OiBudW1iZXIsXG4gICAgZmllbGQ6IHN0cmluZyxcbiAgICBuZXdQYXJhbXM6IFBhcnRpYWw8R3JpZEludGVyZmFjZT5cbiAgKSB7XG4gICAgY29uc3Qgcm93Tm9kZSA9IGdyaWRBcGkuZ2V0RGlzcGxheWVkUm93QXRJbmRleChyb3dJbmRleCk7XG4gIFxuICAgIGlmICghcm93Tm9kZSkge1xuICAgICAgY29uc29sZS5lcnJvcihgUm93IGF0IGluZGV4ICR7cm93SW5kZXh9IG5vdCBmb3VuZC5gKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gIFxuICAgIGNvbnN0IHBhcmFtS2V5ID0gYCR7ZmllbGR9X2NlbGxQYXJhbXNgO1xuICBcbiAgICBjb25zdCBleGlzdGluZ1BhcmFtczogUGFydGlhbDxHcmlkSW50ZXJmYWNlPiA9XG4gICAgICByb3dOb2RlLmRhdGFbcGFyYW1LZXldIHx8IHt9O1xuICBcbiAgICBjb25zdCB1cGRhdGVkUGFyYW1zOiBQYXJ0aWFsPEdyaWRJbnRlcmZhY2U+ID0ge1xuICAgICAgLi4uZXhpc3RpbmdQYXJhbXMsXG4gICAgICAuLi5uZXdQYXJhbXMsXG4gICAgfTtcbiAgXG4gICAgcm93Tm9kZS5kYXRhW3BhcmFtS2V5XSA9IHVwZGF0ZWRQYXJhbXM7XG4gIFxuICAgIGdyaWRBcGkuYXBwbHlUcmFuc2FjdGlvbih7IHVwZGF0ZTogW3Jvd05vZGUuZGF0YV0gfSk7XG4gICAgZ3JpZEFwaS5yZWZyZXNoQ2VsbHMoeyByb3dOb2RlczogW3Jvd05vZGVdLCBjb2x1bW5zOiBbZmllbGRdLCBmb3JjZTogdHJ1ZSB9KTtcbiAgfVxuXG4gIC8vIEhlbHBlciBtZXRob2QgdG8gY3JlYXRlIGEgY2VsbCB3aXRoIGNoaXBzXG4gIHN0YXRpYyBjcmVhdGVDaGlwc0NlbGwoY2hpcHM6IGFueVtdLCBjb25maWc6IFBhcnRpYWw8R3JpZEludGVyZmFjZT4gPSB7fSk6IEdyaWRJbnRlcmZhY2Uge1xuICAgIHJldHVybiB7XG4gICAgICBjZWxsVHlwZTogJ2NoaXBzJyxcbiAgICAgIHZpZXdDaGlwOiB0cnVlLFxuICAgICAgdmlld1RleHQ6IGZhbHNlLFxuICAgICAgdmlld0xlYWRpbmdJY29uOiBmYWxzZSxcbiAgICAgIHZpZXdUcmFpbGluZ0ljb246IGZhbHNlLFxuICAgICAgdmlld0J1dHRvbjogZmFsc2UsXG4gICAgICB2aWV3QXZhdGFyOiBmYWxzZSxcbiAgICAgIGNoaXBDb25maWc6IGNoaXBzLm1hcChjaGlwID0+ICh7XG4gICAgICAgIGlkOiBjaGlwLmlkIHx8ICcnLFxuICAgICAgICB0ZXh0OiBjaGlwLnRleHQgfHwgJycsXG4gICAgICAgIHR5cGU6IGNoaXAudHlwZSB8fCAnZGVmYXVsdCcsXG4gICAgICAgIHN0YXRlOiBjaGlwLnN0YXRlIHx8ICdkZWZhdWx0JyxcbiAgICAgICAgLi4uY2hpcFxuICAgICAgfSkpLFxuICAgICAgLi4uY29uZmlnXG4gICAgfTtcbiAgfVxuXG4gIC8vIEhlbHBlciBtZXRob2QgdG8gY3JlYXRlIGEgdGV4dCBjZWxsXG4gIHN0YXRpYyBjcmVhdGVUZXh0Q2VsbCh0ZXh0OiBzdHJpbmcsIGNvbmZpZzogUGFydGlhbDxHcmlkSW50ZXJmYWNlPiA9IHt9KTogR3JpZEludGVyZmFjZSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGNlbGxUeXBlOiAndGV4dCcsXG4gICAgICB2aWV3VGV4dDogdHJ1ZSxcbiAgICAgIHZpZXdDaGlwOiBmYWxzZSxcbiAgICAgIHZpZXdMZWFkaW5nSWNvbjogZmFsc2UsXG4gICAgICB2aWV3VHJhaWxpbmdJY29uOiBmYWxzZSxcbiAgICAgIHZpZXdCdXR0b246IGZhbHNlLFxuICAgICAgdmlld0F2YXRhcjogZmFsc2UsXG4gICAgICB0ZXh0LFxuICAgICAgLi4uY29uZmlnXG4gICAgfTtcbiAgfVxuXG4gIC8vIEhlbHBlciBtZXRob2QgdG8gY3JlYXRlIGFuIGF2YXRhciBjZWxsXG4gIHN0YXRpYyBjcmVhdGVBdmF0YXJDZWxsKGNvbmZpZzoge1xuICAgIHRleHQ6IHN0cmluZztcbiAgICBzdWJUZXh0Pzogc3RyaW5nO1xuICAgIGF2YXRhckNvbmZpZzoge1xuICAgICAgc2l6ZTogJ3NtYWxsJyB8ICdtZWRpdW0nIHwgJ2xhcmdlJztcbiAgICAgIGltYWdlUGF0aDogc3RyaW5nO1xuICAgICAgYWx0VGV4dDogc3RyaW5nO1xuICAgIH07XG4gIH0pOiBHcmlkSW50ZXJmYWNlIHtcbiAgICByZXR1cm4ge1xuICAgICAgY2VsbFR5cGU6ICdhdmF0YXInLFxuICAgICAgdmlld1RleHQ6IHRydWUsXG4gICAgICB2aWV3Q2hpcDogZmFsc2UsXG4gICAgICB2aWV3TGVhZGluZ0ljb246IGZhbHNlLFxuICAgICAgdmlld1RyYWlsaW5nSWNvbjogZmFsc2UsXG4gICAgICB2aWV3QnV0dG9uOiBmYWxzZSxcbiAgICAgIHZpZXdBdmF0YXI6IHRydWUsXG4gICAgICB0ZXh0OiBjb25maWcudGV4dCxcbiAgICAgIHN1YlRleHQ6IGNvbmZpZy5zdWJUZXh0LFxuICAgICAgYXZhdGFyQ29uZmlnOiB7XG4gICAgICAgIGlkOiBjb25maWcudGV4dCxcbiAgICAgICAgc2l6ZTogY29uZmlnLmF2YXRhckNvbmZpZy5zaXplLFxuICAgICAgICBpbWFnZVBhdGg6IGNvbmZpZy5hdmF0YXJDb25maWcuaW1hZ2VQYXRoLFxuICAgICAgICBhbHRUZXh0OiBjb25maWcuYXZhdGFyQ29uZmlnLmFsdFRleHRcbiAgICAgIH1cbiAgICB9O1xuICB9XG5cbiAgLy8gSGVscGVyIG1ldGhvZCB0byBjcmVhdGUgYW4gYWN0aW9ucyBjZWxsXG4gIHN0YXRpYyBjcmVhdGVBY3Rpb25zQ2VsbChjb25maWc6IHsgYWN0aW9uczogQXJyYXk8eyBsYWJlbDogc3RyaW5nLCBvbkNsaWNrOiAoKSA9PiB2b2lkLCBpY29uOiBzdHJpbmcsIGNsYXNzPzogc3RyaW5nIH0+LCBkb3dubG9hZEFjdGlvbj86IHsgbGFiZWw6IHN0cmluZywgb25DbGljazogKCkgPT4gdm9pZCwgaWNvbjogc3RyaW5nLCBpY29uU2l6ZT86IHN0cmluZyB9IH0pOiBHcmlkSW50ZXJmYWNlIHtcbiAgICByZXR1cm4ge1xuICAgICAgY2VsbFR5cGU6ICdhY3Rpb25zJyxcbiAgICAgIHZpZXdUZXh0OiBmYWxzZSxcbiAgICAgIHZpZXdDaGlwOiBmYWxzZSxcbiAgICAgIHZpZXdMZWFkaW5nSWNvbjogZmFsc2UsXG4gICAgICB2aWV3VHJhaWxpbmdJY29uOiBmYWxzZSxcbiAgICAgIHZpZXdCdXR0b246IHRydWUsXG4gICAgICB2aWV3QXZhdGFyOiBmYWxzZSxcbiAgICAgIGFjdGlvbnM6IGNvbmZpZy5hY3Rpb25zLFxuICAgICAgZG93bmxvYWRBY3Rpb246IGNvbmZpZy5kb3dubG9hZEFjdGlvbixcbiAgICAgIGJ1dHRvbkNvbmZpZzoge1xuICAgICAgICBpZDogJ2FjdGlvbnMtYnV0dG9uJyxcbiAgICAgICAgdGV4dDogJycsXG4gICAgICAgIHR5cGU6ICd0cmFuc3BhcmVudCcsXG4gICAgICAgIHN0YXRlOiAnZGVmYXVsdCcsXG4gICAgICAgIHNpemU6ICdzbWFsbCcsXG4gICAgICAgIGltYWdlUGF0aDogJy9hc3NldHMvZnJhbWVJY29uLnN2ZycsXG4gICAgICAgIGljb25Qb3NpdGlvbjogJ2JvdGgnLFxuICAgICAgICBvbkNsaWNrOiAoZXZlbnQ6IGFueSkgPT4ge1xuICAgICAgICAgIGlmIChjb25maWcuYWN0aW9ucykge1xuICAgICAgICAgICAgY29uc29sZS5sb2coJ0FjdGlvbnMgYXZhaWxhYmxlOicsIGNvbmZpZy5hY3Rpb25zKTtcbiAgICAgICAgICAgIGNvbmZpZy5hY3Rpb25zLmZvckVhY2goYWN0aW9uID0+IHtcbiAgICAgICAgICAgICAgY29uc29sZS5sb2coYEFjdGlvbiAke2FjdGlvbi5sYWJlbH0gYXZhaWxhYmxlYCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuICB9XG4gIFxufVxuIiwiPGFnLWdyaWQtYW5ndWxhclxuICBjbGFzcz1cImFnLXRoZW1lLWFscGluZSBzYS1ncmlkLXRoZW1lXCJcbiAgW2NvbHVtbkRlZnNdPVwiY29sdW1uRGVmc1wiXG4gIFtyb3dEYXRhXT1cImdldEVmZmVjdGl2ZVJvd0RhdGEoKVwiXG4gIFtkZWZhdWx0Q29sRGVmXT1cImRlZmF1bHRDb2xEZWZcIlxuICAoZ3JpZFJlYWR5KT1cIm9uR3JpZFJlYWR5KCRldmVudClcIlxuICBbZG9tTGF5b3V0XT1cImdyaWRIZWlnaHQgPyAnbm9ybWFsJyA6ICdhdXRvSGVpZ2h0J1wiXG4gIFtzdHlsZS5oZWlnaHQucHhdPVwiZ3JpZEhlaWdodCB8fCBudWxsXCJcbiAgW3BhZ2luYXRpb25dPVwicGFnaW5hdGlvblwiXG4gIFtwYWdpbmF0aW9uUGFnZVNpemVdPVwicGFnaW5hdGlvblBhZ2VTaXplXCJcbiAgW3BhZ2luYXRpb25QYWdlU2l6ZVNlbGVjdG9yXT1cInBhZ2luYXRpb25QYWdlU2l6ZVNlbGVjdG9yXCJcbiAgW2xvY2FsZVRleHRdPVwibG9jYWxlVGV4dFwiXG4gIFtyb3dNb2RlbFR5cGVdPVwiZGF0YXNvdXJjZSA/ICdpbmZpbml0ZScgOiAnY2xpZW50U2lkZSdcIlxuPjwvYWctZ3JpZC1hbmd1bGFyPlxuIl19
183
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1ncmlkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudC1saWJyYXJ5L3NyYy9saWIvZGF0YS1ncmlkL2RhdGEtZ3JpZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnQtbGlicmFyeS9zcmMvbGliL2RhdGEtZ3JpZC9kYXRhLWdyaWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOzs7QUFZckUsTUFBTSxPQUFPLGlCQUFpQjtJQVA5QjtRQVNXLGVBQVUsR0FBYSxFQUFFLENBQUM7UUFDMUIsWUFBTyxHQUFVLEVBQUUsQ0FBQztRQUNwQixrQkFBYSxHQUFXO1lBQy9CLFFBQVEsRUFBRSxJQUFJO1lBQ2QsTUFBTSxFQUFFLElBQUk7WUFDWixTQUFTLEVBQUUsSUFBSTtTQUNoQixDQUFDO1FBRUYsK0JBQStCO1FBQ3RCLGVBQVUsR0FBWSxLQUFLLENBQUM7UUFDNUIsdUJBQWtCLEdBQVcsRUFBRSxDQUFDO1FBQ2hDLCtCQUEwQixHQUFhLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDekQsZUFBVSxHQUFXLEdBQUcsQ0FBQztRQUV6QixlQUFVLEdBQVEsRUFBRSxDQUFDO1FBQ3BCLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBdUIsQ0FBQztLQXFLL0Q7SUFqS0MsNENBQTRDO0lBQzVDLG1CQUFtQjtRQUNq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LElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxZQUFZLEVBQUUsaUJBQWlCLENBQUM7OEJBTS9DLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBT0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csMEJBQTBCO3NCQUFsQyxLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNJLFNBQVM7c0JBQWxCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEFnR3JpZE1vZHVsZSB9IGZyb20gJ2FnLWdyaWQtYW5ndWxhcic7XG5pbXBvcnQgeyBHcmlkQ2VsbENvbXBvbmVudCB9IGZyb20gJy4uL2dyaWQtY2VsbC9ncmlkLWNlbGwuY29tcG9uZW50JztcbmltcG9ydCB7IENvbERlZiwgR3JpZEFwaSwgR3JpZFJlYWR5RXZlbnQgfSBmcm9tICdhZy1ncmlkLWNvbW11bml0eSc7XG5pbXBvcnQgeyBHcmlkSW50ZXJmYWNlIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9ncmlkLWludGVyZmFjZSc7XG5pbXBvcnQgeyBCdXR0b25JbnRlcmZhY2UgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2J1dHRvbi1pbnRlcmZhY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzYS1kYXRhLWdyaWQnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBBZ0dyaWRNb2R1bGUsIEdyaWRDZWxsQ29tcG9uZW50XSxcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGEtZ3JpZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9kYXRhLWdyaWQuY29tcG9uZW50LmNzcydcbn0pXG5leHBvcnQgY2xhc3MgRGF0YUdyaWRDb21wb25lbnQge1xuICBwdWJsaWMgc3RhdGljIGdyaWRBcGlJbnN0YW5jZTogR3JpZEFwaTtcbiAgQElucHV0KCkgY29sdW1uRGVmczogQ29sRGVmW10gPSBbXTtcbiAgQElucHV0KCkgcm93RGF0YTogYW55W10gPSBbXTtcbiAgQElucHV0KCkgZGVmYXVsdENvbERlZjogQ29sRGVmID0ge1xuICAgIHNvcnRhYmxlOiB0cnVlLFxuICAgIGZpbHRlcjogdHJ1ZSxcbiAgICByZXNpemFibGU6IHRydWVcbiAgfTtcblxuICAvLyBQYWdpbmF0aW9uIGlucHV0cyAob3B0aW9uYWwpXG4gIEBJbnB1dCgpIHBhZ2luYXRpb246IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgcGFnaW5hdGlvblBhZ2VTaXplOiBudW1iZXIgPSAxMDtcbiAgQElucHV0KCkgcGFnaW5hdGlvblBhZ2VTaXplU2VsZWN0b3I6IG51bWJlcltdID0gWzEwLCAyNSwgNTAsIDEwMF07XG4gIEBJbnB1dCgpIGdyaWRIZWlnaHQ6IG51bWJlciA9IDQyMDtcbiAgQElucHV0KCkgZGF0YXNvdXJjZTogYW55O1xuICBASW5wdXQoKSBsb2NhbGVUZXh0OiBhbnkgPSB7fTtcbiAgQE91dHB1dCgpIGdyaWRSZWFkeSA9IG5ldyBFdmVudEVtaXR0ZXI8R3JpZFJlYWR5RXZlbnQ8YW55Pj4oKTtcblxuICBwcml2YXRlIGdyaWRBcGkhOiBHcmlkQXBpO1xuXG4gIC8vIE1ldGhvZCB0byBkZXRlcm1pbmUgd2hpY2ggcm93IGRhdGEgdG8gdXNlXG4gIGdldEVmZmVjdGl2ZVJvd0RhdGEoKTogYW55W10gfCB1bmRlZmluZWQge1xuICAgIC8vIElmIGRhdGFzb3VyY2UgaXMgcHJvdmlkZWQsIHJvd0RhdGEgbXVzdCBiZSB1bmRlZmluZWRcbiAgICByZXR1cm4gdGhpcy5kYXRhc291cmNlID8gdW5kZWZpbmVkIDogdGhpcy5yb3dEYXRhO1xuICB9XG5cbiAgb25HcmlkUmVhZHkocGFyYW1zOiBHcmlkUmVhZHlFdmVudDxhbnk+KSB7XG4gICAgdGhpcy5ncmlkQXBpID0gcGFyYW1zLmFwaTtcbiAgICBEYXRhR3JpZENvbXBvbmVudC5ncmlkQXBpSW5zdGFuY2UgPSBwYXJhbXMuYXBpO1xuICAgIHRoaXMuZ3JpZEFwaS5zaXplQ29sdW1uc1RvRml0KCk7XG5cbiAgICAvLyBTZXR1cCBzZXJ2ZXItc2lkZSByb3cgbW9kZWwgaWYgZW5hYmxlZFxuICAgICAgaWYgKHRoaXMuZGF0YXNvdXJjZSkge1xuICAgICAgICB0aGlzLmdyaWRBcGkuc2V0R3JpZE9wdGlvblxuICAgICAgICA/IHRoaXMuZ3JpZEFwaS5zZXRHcmlkT3B0aW9uKCdkYXRhc291cmNlJywgdGhpcy5kYXRhc291cmNlKVxuICAgICAgICA6IHRoaXMuZ3JpZEFwaS5zZXREYXRhc291cmNlKHRoaXMuZGF0YXNvdXJjZSk7XG4gICAgICB9ICBcbiAgICB0aGlzLmdyaWRSZWFkeS5lbWl0KHBhcmFtcyk7XG4gIH1cblxuICBzdGF0aWMgdXBkYXRlQ2VsbENvbnRlbnQoXG4gICAgZ3JpZEFwaTogR3JpZEFwaSxcbiAgICByb3dJbmRleDogbnVtYmVyLFxuICAgIGZpZWxkOiBzdHJpbmcsXG4gICAgbmV3UGFyYW1zOiBQYXJ0aWFsPEdyaWRJbnRlcmZhY2U+XG4gICkge1xuICAgIGNvbnN0IHJvd05vZGUgPSBncmlkQXBpLmdldERpc3BsYXllZFJvd0F0SW5kZXgocm93SW5kZXgpO1xuICBcbiAgICBpZiAoIXJvd05vZGUpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYFJvdyBhdCBpbmRleCAke3Jvd0luZGV4fSBub3QgZm91bmQuYCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICBcbiAgICBjb25zdCBwYXJhbUtleSA9IGAke2ZpZWxkfV9jZWxsUGFyYW1zYDtcbiAgXG4gICAgY29uc3QgZXhpc3RpbmdQYXJhbXM6IFBhcnRpYWw8R3JpZEludGVyZmFjZT4gPVxuICAgICAgcm93Tm9kZS5kYXRhW3BhcmFtS2V5XSB8fCB7fTtcbiAgXG4gICAgY29uc3QgdXBkYXRlZFBhcmFtczogUGFydGlhbDxHcmlkSW50ZXJmYWNlPiA9IHtcbiAgICAgIC4uLmV4aXN0aW5nUGFyYW1zLFxuICAgICAgLi4ubmV3UGFyYW1zLFxuICAgIH07XG4gIFxuICAgIHJvd05vZGUuZGF0YVtwYXJhbUtleV0gPSB1cGRhdGVkUGFyYW1zO1xuICBcbiAgICBncmlkQXBpLmFwcGx5VHJhbnNhY3Rpb24oeyB1cGRhdGU6IFtyb3dOb2RlLmRhdGFdIH0pO1xuICAgIGdyaWRBcGkucmVmcmVzaENlbGxzKHsgcm93Tm9kZXM6IFtyb3dOb2RlXSwgY29sdW1uczogW2ZpZWxkXSwgZm9yY2U6IHRydWUgfSk7XG4gIH1cblxuICAvLyBIZWxwZXIgbWV0aG9kIHRvIGNyZWF0ZSBhIGNlbGwgd2l0aCBjaGlwc1xuICBzdGF0aWMgY3JlYXRlQ2hpcHNDZWxsKGNoaXBzOiBhbnlbXSwgY29uZmlnOiBQYXJ0aWFsPEdyaWRJbnRlcmZhY2U+ID0ge30pOiBHcmlkSW50ZXJmYWNlIHtcbiAgICByZXR1cm4ge1xuICAgICAgY2VsbFR5cGU6ICdjaGlwcycsXG4gICAgICB2aWV3Q2hpcDogdHJ1ZSxcbiAgICAgIHZpZXdUZXh0OiBmYWxzZSxcbiAgICAgIHZpZXdMZWFkaW5nSWNvbjogZmFsc2UsXG4gICAgICB2aWV3VHJhaWxpbmdJY29uOiBmYWxzZSxcbiAgICAgIHZpZXdCdXR0b246IGZhbHNlLFxuICAgICAgdmlld0F2YXRhcjogZmFsc2UsXG4gICAgICBjaGlwQ29uZmlnOiBjaGlwcy5tYXAoY2hpcCA9PiAoe1xuICAgICAgICBpZDogY2hpcC5pZCB8fCAnJyxcbiAgICAgICAgdGV4dDogY2hpcC50ZXh0IHx8ICcnLFxuICAgICAgICB0eXBlOiBjaGlwLnR5cGUgfHwgJ2RlZmF1bHQnLFxuICAgICAgICBzdGF0ZTogY2hpcC5zdGF0ZSB8fCAnZGVmYXVsdCcsXG4gICAgICAgIC4uLmNoaXBcbiAgICAgIH0pKSxcbiAgICAgIC4uLmNvbmZpZ1xuICAgIH07XG4gIH1cblxuICAvLyBIZWxwZXIgbWV0aG9kIHRvIGNyZWF0ZSBhIHRleHQgY2VsbFxuICBzdGF0aWMgY3JlYXRlVGV4dENlbGwodGV4dDogc3RyaW5nLCBjb25maWc6IFBhcnRpYWw8R3JpZEludGVyZmFjZT4gPSB7fSk6IEdyaWRJbnRlcmZhY2Uge1xuICAgIHJldHVybiB7XG4gICAgICBjZWxsVHlwZTogJ3RleHQnLFxuICAgICAgdmlld1RleHQ6IHRydWUsXG4gICAgICB2aWV3Q2hpcDogZmFsc2UsXG4gICAgICB2aWV3TGVhZGluZ0ljb246IGZhbHNlLFxuICAgICAgdmlld1RyYWlsaW5nSWNvbjogZmFsc2UsXG4gICAgICB2aWV3QnV0dG9uOiBmYWxzZSxcbiAgICAgIHZpZXdBdmF0YXI6IGZhbHNlLFxuICAgICAgdGV4dCxcbiAgICAgIC4uLmNvbmZpZ1xuICAgIH07XG4gIH1cblxuICAvLyBIZWxwZXIgbWV0aG9kIHRvIGNyZWF0ZSBhbiBhdmF0YXIgY2VsbFxuICBzdGF0aWMgY3JlYXRlQXZhdGFyQ2VsbChjb25maWc6IHtcbiAgICB0ZXh0OiBzdHJpbmc7XG4gICAgc3ViVGV4dD86IHN0cmluZztcbiAgICBhdmF0YXJDb25maWc6IHtcbiAgICAgIHNpemU6ICdzbWFsbCcgfCAnbWVkaXVtJyB8ICdsYXJnZSc7XG4gICAgICBpbWFnZVBhdGg6IHN0cmluZztcbiAgICAgIGFsdFRleHQ6IHN0cmluZztcbiAgICB9O1xuICB9KTogR3JpZEludGVyZmFjZSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGNlbGxUeXBlOiAnYXZhdGFyJyxcbiAgICAgIHZpZXdUZXh0OiB0cnVlLFxuICAgICAgdmlld0NoaXA6IGZhbHNlLFxuICAgICAgdmlld0xlYWRpbmdJY29uOiBmYWxzZSxcbiAgICAgIHZpZXdUcmFpbGluZ0ljb246IGZhbHNlLFxuICAgICAgdmlld0J1dHRvbjogZmFsc2UsXG4gICAgICB2aWV3QXZhdGFyOiB0cnVlLFxuICAgICAgdGV4dDogY29uZmlnLnRleHQsXG4gICAgICBzdWJUZXh0OiBjb25maWcuc3ViVGV4dCxcbiAgICAgIGF2YXRhckNvbmZpZzoge1xuICAgICAgICBpZDogY29uZmlnLnRleHQsXG4gICAgICAgIHNpemU6IGNvbmZpZy5hdmF0YXJDb25maWcuc2l6ZSxcbiAgICAgICAgaW1hZ2VQYXRoOiBjb25maWcuYXZhdGFyQ29uZmlnLmltYWdlUGF0aCxcbiAgICAgICAgYWx0VGV4dDogY29uZmlnLmF2YXRhckNvbmZpZy5hbHRUZXh0XG4gICAgICB9XG4gICAgfTtcbiAgfVxuXG4gIC8vIEhlbHBlciBtZXRob2QgdG8gY3JlYXRlIGFuIGFjdGlvbnMgY2VsbFxuICBzdGF0aWMgY3JlYXRlQWN0aW9uc0NlbGwoY29uZmlnOiB7IGFjdGlvbnM6IEFycmF5PHsgbGFiZWw6IHN0cmluZywgb25DbGljazogKCkgPT4gdm9pZCwgaWNvbjogc3RyaW5nLCBjbGFzcz86IHN0cmluZyB9PiwgZG93bmxvYWRBY3Rpb24/OiB7IGxhYmVsOiBzdHJpbmcsIG9uQ2xpY2s6ICgpID0+IHZvaWQsIGljb246IHN0cmluZywgaWNvblNpemU/OiBzdHJpbmcgfSB9KTogR3JpZEludGVyZmFjZSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGNlbGxUeXBlOiAnYWN0aW9ucycsXG4gICAgICB2aWV3VGV4dDogZmFsc2UsXG4gICAgICB2aWV3Q2hpcDogZmFsc2UsXG4gICAgICB2aWV3TGVhZGluZ0ljb246IGZhbHNlLFxuICAgICAgdmlld1RyYWlsaW5nSWNvbjogZmFsc2UsXG4gICAgICB2aWV3QnV0dG9uOiB0cnVlLFxuICAgICAgdmlld0F2YXRhcjogZmFsc2UsXG4gICAgICBhY3Rpb25zOiBjb25maWcuYWN0aW9ucyxcbiAgICAgIGRvd25sb2FkQWN0aW9uOiBjb25maWcuZG93bmxvYWRBY3Rpb24sXG4gICAgICBidXR0b25Db25maWc6IHtcbiAgICAgICAgaWQ6ICdhY3Rpb25zLWJ1dHRvbicsXG4gICAgICAgIHRleHQ6ICcnLFxuICAgICAgICB0eXBlOiAndHJhbnNwYXJlbnQnLFxuICAgICAgICBzdGF0ZTogJ2RlZmF1bHQnLFxuICAgICAgICBzaXplOiAnc21hbGwnLFxuICAgICAgICBpbWFnZVBhdGg6ICcvYXNzZXRzL2ZyYW1lSWNvbi5zdmcnLFxuICAgICAgICBpY29uUG9zaXRpb246ICdib3RoJyxcbiAgICAgICAgb25DbGljazogKGV2ZW50OiBhbnkpID0+IHtcbiAgICAgICAgICBpZiAoY29uZmlnLmFjdGlvbnMpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdBY3Rpb25zIGF2YWlsYWJsZTonLCBjb25maWcuYWN0aW9ucyk7XG4gICAgICAgICAgICBjb25maWcuYWN0aW9ucy5mb3JFYWNoKGFjdGlvbiA9PiB7XG4gICAgICAgICAgICAgIGNvbnNvbGUubG9nKGBBY3Rpb24gJHthY3Rpb24ubGFiZWx9IGF2YWlsYWJsZWApO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcbiAgfVxuXG4gIC8vIEhlbHBlciBtZXRob2QgdG8gY3JlYXRlIGEgbWFza2VkIGVtYWlsIGNlbGxcbiAgc3RhdGljIGNyZWF0ZU1hc2tlZEVtYWlsQ2VsbChlbWFpbDogc3RyaW5nLCBjb25maWc6IFBhcnRpYWw8R3JpZEludGVyZmFjZT4gPSB7fSk6IEdyaWRJbnRlcmZhY2Uge1xuICAgIHJldHVybiB7XG4gICAgICBjZWxsVHlwZTogJ21hc2tlZCcsXG4gICAgICB2aWV3VGV4dDogdHJ1ZSxcbiAgICAgIHZpZXdDaGlwOiBmYWxzZSxcbiAgICAgIHZpZXdMZWFkaW5nSWNvbjogZmFsc2UsXG4gICAgICB2aWV3VHJhaWxpbmdJY29uOiBmYWxzZSxcbiAgICAgIHZpZXdCdXR0b246IGZhbHNlLFxuICAgICAgdmlld0F2YXRhcjogZmFsc2UsXG4gICAgICB0ZXh0OiBlbWFpbCxcbiAgICAgIC4uLmNvbmZpZ1xuICAgIH07XG4gIH1cbiAgXG59XG4iLCI8YWctZ3JpZC1hbmd1bGFyXG4gIGNsYXNzPVwiYWctdGhlbWUtYWxwaW5lIHNhLWdyaWQtdGhlbWVcIlxuICBbY29sdW1uRGVmc109XCJjb2x1bW5EZWZzXCJcbiAgW3Jvd0RhdGFdPVwiZ2V0RWZmZWN0aXZlUm93RGF0YSgpXCJcbiAgW2RlZmF1bHRDb2xEZWZdPVwiZGVmYXVsdENvbERlZlwiXG4gIChncmlkUmVhZHkpPVwib25HcmlkUmVhZHkoJGV2ZW50KVwiXG4gIFtkb21MYXlvdXRdPVwiZ3JpZEhlaWdodCA/ICdub3JtYWwnIDogJ2F1dG9IZWlnaHQnXCJcbiAgW3N0eWxlLmhlaWdodC5weF09XCJncmlkSGVpZ2h0IHx8IG51bGxcIlxuICBbcGFnaW5hdGlvbl09XCJwYWdpbmF0aW9uXCJcbiAgW3BhZ2luYXRpb25QYWdlU2l6ZV09XCJwYWdpbmF0aW9uUGFnZVNpemVcIlxuICBbcGFnaW5hdGlvblBhZ2VTaXplU2VsZWN0b3JdPVwicGFnaW5hdGlvblBhZ2VTaXplU2VsZWN0b3JcIlxuICBbbG9jYWxlVGV4dF09XCJsb2NhbGVUZXh0XCJcbiAgW3Jvd01vZGVsVHlwZV09XCJkYXRhc291cmNlID8gJ2luZmluaXRlJyA6ICdjbGllbnRTaWRlJ1wiXG4+PC9hZy1ncmlkLWFuZ3VsYXI+XG4iXX0=
@@ -7,6 +7,7 @@ import { CommonModule, NgFor, NgIf } from '@angular/common';
7
7
  import { TemplatePortal } from '@angular/cdk/portal';
8
8
  import { IconComponent } from '../icon/icon.component';
9
9
  import { MatTooltipModule } from '@angular/material/tooltip';
10
+ import { isString as _isString, split as _split, join as _join, size as _size, first as _first, takeRight as _takeRight, repeat as _repeat } from 'lodash';
10
11
  import * as i0 from "@angular/core";
11
12
  import * as i1 from "@angular/cdk/overlay";
12
13
  import * as i2 from "@angular/material/tooltip";
@@ -205,8 +206,40 @@ export class GridCellComponent {
205
206
  this.overlayRef.dispose();
206
207
  }
207
208
  }
209
+ /**
210
+ * Masks an email address for privacy
211
+ * Shows first character, masks middle characters, shows last 2 characters before @
212
+ * @param email - The email address to mask
213
+ * @returns Masked email string (e.g., mark@outlook.com -> m••••••rk@outlook.com)
214
+ * @example
215
+ * maskEmail('mark@outlook.com') // Returns: 'm••••••rk@outlook.com'
216
+ * maskEmail('ab@test.com') // Returns: 'a•@test.com'
217
+ */
218
+ maskEmail(email) {
219
+ if (!email)
220
+ return '-';
221
+ // Convert to string if it's a number
222
+ const emailStr = String(email);
223
+ if (!_isString(emailStr))
224
+ return '-';
225
+ const atIndex = emailStr.indexOf('@');
226
+ if (atIndex <= 0)
227
+ return emailStr; // Invalid email format
228
+ const [localPart, ...domainParts] = _split(emailStr, '@');
229
+ const domain = '@' + _join(domainParts, '@');
230
+ const localLength = _size(localPart);
231
+ if (localLength <= 2) {
232
+ // For very short local parts, just mask the middle
233
+ return _first(localPart) + _repeat('•', localLength - 1) + domain;
234
+ }
235
+ // Show first character, mask middle, show last 2 characters before @
236
+ const firstChar = _first(localPart);
237
+ const lastTwoChars = _takeRight(localPart, 2).join('');
238
+ const maskedLength = localLength - 3; // Total length minus first and last 2
239
+ return firstChar + _repeat('•', maskedLength) + lastTwoChars + domain;
240
+ }
208
241
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: GridCellComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.Overlay }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component }); }
209
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.4", type: GridCellComponent, isStandalone: true, selector: "sa-grid-cell", outputs: { onClickButtonEvent: "onClickButtonEvent", onClickChipEvent: "onClickChipEvent", onClickLinkEvent: "onClickLinkEvent", onClickAvatarEvent: "onClickAvatarEvent" }, host: { listeners: { "document:click": "onDocumentClick($event)" } }, viewQueries: [{ propertyName: "dropdownTemplate", first: true, predicate: ["dropdownTemplate"], descendants: true }, { propertyName: "actionsContainer", first: true, predicate: ["actionsContainer"], descendants: true }], ngImport: i0, template: "<div class=\"grid-cell {{params.cellType}}\">\n\n <img class=\"icons\" src={{params.iconPath}} [style.display]=\"(params.viewLeadingIcon) ? 'block' : 'none'\" alt=\"\">\n\n <sa-avatar [id]=\"params.avatarConfig?.id\" [altText]=\"params.avatarConfig?.altText\"\n [imagePath]=\"params.avatarConfig?.imagePath\" [size]=\"params.avatarConfig?.size\"\n [style.display]=\"(params.viewAvatar) ? 'block' : 'none'\" (onClickEvent)=\"avatarClicked($event)\">\n </sa-avatar>\n\n <div class=\"grid-text\" [style.display]=\"(params.viewText) ? 'block' : 'none'\">\n <div [style.display]=\"(params.text) ? 'block' : 'none'\" (click)=\"linkClicked()\" class=\"main-text\">{{params.text}}\n </div>\n\n <div [style.display]=\"(params.subText) ? 'block' : 'none'\" class=\"sub-text\">{{params.subText}}</div>\n </div>\n\n <img class=\"icons\" src={{params.iconPath}} [style.display]=\"(params.viewTrailingIcon) ? 'block' : 'none'\" alt=\"\">\n @if(params?.tooltip){\n <span class=\"tooltip-container\">\n <sa-icon [icon]=\"params?.tooltipIcon || 'infoCircleOutlined'\"\n customClass=\"info-icon\" [matTooltip]=\"params?.tooltip\"\n matTooltipClass=\"custom-tooltip\" class=\"tooltip-icon\"></sa-icon>\n </span>\n }\n <div class=\"chips-container\" [style.display]=\"(params.viewChip) ? 'flex' : 'none'\">\n\n <div *ngFor=\"let config of displayedChips\">\n <sa-chip [id]=\"config.id\" [filling]=\"config.filling\" id=\"chip_{{rowNum}}_{{config.id}}\" [iconPath]=\"config.iconPath\"\n [iconPosition]=\"config.iconPosition\" [largeStateIcon]=\"config.largeStateIcon\" [state]=\"config.state\"\n [type]=\"config.type\" [text]=\"config.text\" [class.small]=\"config.type === 'small'\"\n [class.neutral]=\"config.state === 'neutral'\" (onClickEvent)=\"chipClicked($event)\"></sa-chip>\n </div>\n <div class=\"chip-tooltip-container\" *ngIf=\"remainingChipsCount > 0\" style=\"position: relative;\"\n (mouseenter)=\"showTooltip(remainingChipsCount, $event)\" (mouseleave)=\"hideTooltip()\">\n <sa-chip [id]=\"'chip_' + rowNum + '_more'\" [text]=\"'+' + remainingChipsCount\" [filling]=\"displayedChips[0]?.filling\"\n [type]=\"displayedChips[0]?.type\" [state]=\"displayedChips[0]?.state\" (onClickEvent)=\"chipClicked($event)\"></sa-chip>\n</div>\n\n <sa-button [iconPosition]=\"params.buttonConfig?.iconPosition\" [ImagePath]=\"params.buttonConfig?.imagePath\"\n [id]=\"params.buttonConfig?.id\" [size]=\"params.buttonConfig?.size\" [state]=\"params.buttonConfig?.state\"\n [type]=\"params.buttonConfig?.type\" [text]=\"params.buttonConfig?.text\" [href]=\"params.buttonConfig?.href\"\n [hrefTarget]=\"params.buttonConfig?.hrefTarget\" [style.display]=\"(params.viewButton) ? 'block' : 'none'\"\n (onClickEvent)=\"buttonClicked($event)\"></sa-button>\n\n</div>\n\n <div *ngIf=\"params.cellType === 'actions'\" class=\"actions-container\">\n @if(params?.downloadAction){\n <sa-icon [icon]=\"params?.downloadAction?.icon\" [size]=\"params?.downloadAction?.iconSize\" (click)=\"handleActionClick(params?.downloadAction, $event)\" />\n }\n <img [src]=\"params.buttonConfig?.imagePath\" alt=\"actions\" class=\"actions-icon\" (click)=\"toggleDropdown(actionsButton)\"\n #actionsButton />\n <ng-template #dropdownTemplate>\n <div class=\"actions-dropdown\">\n <div *ngFor=\"let action of params.actions\" class=\"action-item\" (click)=\"handleActionClick(action, $event)\">\n <img *ngIf=\"action.icon\" [src]=\"action.icon\" class=\"action-icon\" />\n <span class=\"action-label\">{{action.label}}</span>\n </div>\n </div>\n </ng-template>\n </div>\n</div>\n", styles: [".header{--bg: var(--primary-50);--color: var(--text-highemphasis);--border: none;--flex-direction: left}.header:hover{cursor:pointer}.row{--color: var(--text-highemphasis);--cursor: default;--border: var(--grey-50);--flex-direction: left}.numeric{--color: var(--text-highemphasis);--cursor: default;--border: var(--grey-50);--flex-direction: right}.interactive{--color: var(--primary-500);--cursor: pointer;--border: var(--grey-50);--flex-direction: left}.grid-cell{display:flex;height:48px;padding:var(--small-12px);justify-content:var(--flex-direction);align-items:center;gap:var(--small-8px);flex-shrink:0;font-family:var(--font);box-sizing:border-box;border-bottom:1px solid var(--border);width:calc(100% - 20px);background-color:var(--bg)}.grid-text{display:flex;flex-direction:column}.main-text{color:var(--color);font-size:14px;font-weight:400;height:20px;line-height:20px}.main-text:hover{cursor:var(--cursor)}.sub-text{font-size:11px;font-weight:400;height:16px;line-height:16px;color:var(--text-mediumemphasis)}.icons{width:var(--medium-20px);height:var(--medium-20px)}.grid-chip{display:flex;height:24px;padding:var(--Small-4px, 4px) var(--Small-8px, 8px);justify-content:center;align-items:center;gap:var(--Small-4px, 4px);border-radius:4px;background:var(--Grey-100, #EAECF0);color:var(--Text-Medium-Emphasis, #6D6979);font-family:var(--font-family, Roboto);font-size:11px;font-style:normal;font-weight:500;line-height:16px;letter-spacing:.5px}.grid-cell,.chips-container{overflow:visible!important;position:relative}.chip-tooltip-container{position:relative;display:inline-flex;overflow:visible!important}.chip-tooltip-container sa-tool-tip{display:none}.chips-container{display:flex;gap:var(--Small-4px, 4px);align-items:center}.actions-container{position:relative;display:flex;width:32px;height:32px;justify-content:center;align-items:center;cursor:pointer}.actions-icon{width:20px;height:20px;cursor:pointer!important}.actions-dropdown{position:absolute;right:0;min-width:150px;z-index:1000;border-radius:4px;border:1px solid var(--Grey-100, #EAECF0);background:var(--Structural-White, #FFF);box-shadow:0 1px 2px #0000004d}.action-item{display:flex;height:40px;padding:12px;align-items:center;gap:8px;align-self:stretch;cursor:pointer;transition:background-color .2s}.action-item:hover{background-color:#f5f5f5}.action-label{color:var(--text-highemphasis, #1C1B20);font-family:var(--font-roboto, Roboto);font-size:14px;font-style:normal;font-weight:400;line-height:20px;letter-spacing:.25px}.actions-container.clicked{border-radius:64px;background:var(--Primary-50, #F4EBFF);padding:8px}.chips-container{overflow:visible!important;position:relative}.chip-tooltip-container{position:relative;display:inline-flex;overflow:visible}.tooltip-icon{display:flex;align-items:center}\n"], dependencies: [{ kind: "component", type: AvatarComponent, selector: "sa-avatar", inputs: ["id", "imagePath", "altText", "size"], outputs: ["onClickEvent", "onMouseInEvent", "onMouseOutEvent"] }, { kind: "component", type: ChipsComponent, selector: "sa-chip", inputs: ["id", "iconPath", "text", "type", "state", "filling", "iconPosition", "largeStateIcon", "largeStateText", "tooltip", "className"], outputs: ["onClickEvent"] }, { kind: "component", type: ButtonComponent, selector: "sa-button", inputs: ["id", "type", "state", "size", "text", "ImagePath", "icon", "iconPosition", "href", "hrefTarget", "width", "isSubmit", "buttonIconSize", "showSpinner"], outputs: ["onClickEvent", "onMouseInEvent", "onMouseOutEvent"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: CommonModule }, { kind: "component", type: IconComponent, selector: "sa-icon", inputs: ["img", "imgWidth", "imgHeight", "icon", "size", "color", "iconPath", "iconUrl", "customClass", "href", "hrefTarget", "iconPosition"], outputs: ["onClickEvent"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i2.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }] }); }
242
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.4", type: GridCellComponent, isStandalone: true, selector: "sa-grid-cell", outputs: { onClickButtonEvent: "onClickButtonEvent", onClickChipEvent: "onClickChipEvent", onClickLinkEvent: "onClickLinkEvent", onClickAvatarEvent: "onClickAvatarEvent" }, host: { listeners: { "document:click": "onDocumentClick($event)" } }, viewQueries: [{ propertyName: "dropdownTemplate", first: true, predicate: ["dropdownTemplate"], descendants: true }, { propertyName: "actionsContainer", first: true, predicate: ["actionsContainer"], descendants: true }], ngImport: i0, template: "<div class=\"grid-cell {{params.cellType}}\">\n\n <img class=\"icons\" src={{params.iconPath}} [style.display]=\"(params.viewLeadingIcon) ? 'block' : 'none'\" alt=\"\">\n\n <sa-avatar [id]=\"params.avatarConfig?.id\" [altText]=\"params.avatarConfig?.altText\"\n [imagePath]=\"params.avatarConfig?.imagePath\" [size]=\"params.avatarConfig?.size\"\n [style.display]=\"(params.viewAvatar) ? 'block' : 'none'\" (onClickEvent)=\"avatarClicked($event)\">\n </sa-avatar>\n\n <div class=\"grid-text\" [style.display]=\"(params.viewText) ? 'block' : 'none'\">\n <div [style.display]=\"(params.text) ? 'block' : 'none'\" (click)=\"linkClicked()\" class=\"main-text\">\n @if(params.cellType === 'masked') {\n {{maskEmail(params.text)}}\n } @else {\n {{params.text}}\n }\n </div>\n\n <div [style.display]=\"(params.subText) ? 'block' : 'none'\" class=\"sub-text\">{{params.subText}}</div>\n </div>\n\n <img class=\"icons\" src={{params.iconPath}} [style.display]=\"(params.viewTrailingIcon) ? 'block' : 'none'\" alt=\"\">\n @if(params?.tooltip){\n <span class=\"tooltip-container\">\n <sa-icon [icon]=\"params?.tooltipIcon || 'infoCircleOutlined'\"\n customClass=\"info-icon\" [matTooltip]=\"params?.tooltip\"\n matTooltipClass=\"custom-tooltip\" class=\"tooltip-icon\"></sa-icon>\n </span>\n }\n <div class=\"chips-container\" [style.display]=\"(params.viewChip) ? 'flex' : 'none'\">\n\n <div *ngFor=\"let config of displayedChips\">\n <sa-chip [id]=\"config.id\" [filling]=\"config.filling\" id=\"chip_{{rowNum}}_{{config.id}}\" [iconPath]=\"config.iconPath\"\n [iconPosition]=\"config.iconPosition\" [largeStateIcon]=\"config.largeStateIcon\" [state]=\"config.state\"\n [type]=\"config.type\" [text]=\"config.text\" [class.small]=\"config.type === 'small'\"\n [class.neutral]=\"config.state === 'neutral'\" (onClickEvent)=\"chipClicked($event)\"></sa-chip>\n </div>\n <div class=\"chip-tooltip-container\" *ngIf=\"remainingChipsCount > 0\" style=\"position: relative;\"\n (mouseenter)=\"showTooltip(remainingChipsCount, $event)\" (mouseleave)=\"hideTooltip()\">\n <sa-chip [id]=\"'chip_' + rowNum + '_more'\" [text]=\"'+' + remainingChipsCount\" [filling]=\"displayedChips[0]?.filling\"\n [type]=\"displayedChips[0]?.type\" [state]=\"displayedChips[0]?.state\" (onClickEvent)=\"chipClicked($event)\"></sa-chip>\n</div>\n\n <sa-button [iconPosition]=\"params.buttonConfig?.iconPosition\" [ImagePath]=\"params.buttonConfig?.imagePath\"\n [id]=\"params.buttonConfig?.id\" [size]=\"params.buttonConfig?.size\" [state]=\"params.buttonConfig?.state\"\n [type]=\"params.buttonConfig?.type\" [text]=\"params.buttonConfig?.text\" [href]=\"params.buttonConfig?.href\"\n [hrefTarget]=\"params.buttonConfig?.hrefTarget\" [style.display]=\"(params.viewButton) ? 'block' : 'none'\"\n (onClickEvent)=\"buttonClicked($event)\"></sa-button>\n\n</div>\n\n <div *ngIf=\"params.cellType === 'actions'\" class=\"actions-container\">\n @if(params?.downloadAction){\n <sa-icon [icon]=\"params?.downloadAction?.icon\" [size]=\"params?.downloadAction?.iconSize\" (click)=\"handleActionClick(params?.downloadAction, $event)\" />\n }\n <img [src]=\"params.buttonConfig?.imagePath\" alt=\"actions\" class=\"actions-icon\" (click)=\"toggleDropdown(actionsButton)\"\n #actionsButton />\n <ng-template #dropdownTemplate>\n <div class=\"actions-dropdown\">\n <div *ngFor=\"let action of params.actions\" class=\"action-item\" (click)=\"handleActionClick(action, $event)\">\n <img *ngIf=\"action.icon\" [src]=\"action.icon\" class=\"action-icon\" />\n <span class=\"action-label\">{{action.label}}</span>\n </div>\n </div>\n </ng-template>\n </div>\n</div>\n", styles: [".header{--bg: var(--primary-50);--color: var(--text-highemphasis);--border: none;--flex-direction: left}.header:hover{cursor:pointer}.row{--color: var(--text-highemphasis);--cursor: default;--border: var(--grey-50);--flex-direction: left}.numeric{--color: var(--text-highemphasis);--cursor: default;--border: var(--grey-50);--flex-direction: right}.interactive{--color: var(--primary-500);--cursor: pointer;--border: var(--grey-50);--flex-direction: left}.grid-cell{display:flex;height:48px;padding:var(--small-12px);justify-content:var(--flex-direction);align-items:center;gap:var(--small-8px);flex-shrink:0;font-family:var(--font);box-sizing:border-box;border-bottom:1px solid var(--border);width:calc(100% - 20px);background-color:var(--bg)}.grid-text{display:flex;flex-direction:column}.main-text{color:var(--color);font-size:14px;font-weight:400;height:20px;line-height:20px}.main-text:hover{cursor:var(--cursor)}.sub-text{font-size:11px;font-weight:400;height:16px;line-height:16px;color:var(--text-mediumemphasis)}.icons{width:var(--medium-20px);height:var(--medium-20px)}.grid-chip{display:flex;height:24px;padding:var(--Small-4px, 4px) var(--Small-8px, 8px);justify-content:center;align-items:center;gap:var(--Small-4px, 4px);border-radius:4px;background:var(--Grey-100, #EAECF0);color:var(--Text-Medium-Emphasis, #6D6979);font-family:var(--font-family, Roboto);font-size:11px;font-style:normal;font-weight:500;line-height:16px;letter-spacing:.5px}.grid-cell,.chips-container{overflow:visible!important;position:relative}.chip-tooltip-container{position:relative;display:inline-flex;overflow:visible!important}.chip-tooltip-container sa-tool-tip{display:none}.chips-container{display:flex;gap:var(--Small-4px, 4px);align-items:center}.actions-container{position:relative;display:flex;width:32px;height:32px;justify-content:center;align-items:center;cursor:pointer}.actions-icon{width:20px;height:20px;cursor:pointer!important}.actions-dropdown{position:absolute;right:0;min-width:150px;z-index:1000;border-radius:4px;border:1px solid var(--Grey-100, #EAECF0);background:var(--Structural-White, #FFF);box-shadow:0 1px 2px #0000004d}.action-item{display:flex;height:40px;padding:12px;align-items:center;gap:8px;align-self:stretch;cursor:pointer;transition:background-color .2s}.action-item:hover{background-color:#f5f5f5}.action-label{color:var(--text-highemphasis, #1C1B20);font-family:var(--font-roboto, Roboto);font-size:14px;font-style:normal;font-weight:400;line-height:20px;letter-spacing:.25px}.actions-container.clicked{border-radius:64px;background:var(--Primary-50, #F4EBFF);padding:8px}.chips-container{overflow:visible!important;position:relative}.chip-tooltip-container{position:relative;display:inline-flex;overflow:visible}.tooltip-icon{display:flex;align-items:center}\n"], dependencies: [{ kind: "component", type: AvatarComponent, selector: "sa-avatar", inputs: ["id", "imagePath", "altText", "size"], outputs: ["onClickEvent", "onMouseInEvent", "onMouseOutEvent"] }, { kind: "component", type: ChipsComponent, selector: "sa-chip", inputs: ["id", "iconPath", "text", "type", "state", "filling", "iconPosition", "largeStateIcon", "largeStateText", "tooltip", "className"], outputs: ["onClickEvent"] }, { kind: "component", type: ButtonComponent, selector: "sa-button", inputs: ["id", "type", "state", "size", "text", "ImagePath", "icon", "iconPosition", "href", "hrefTarget", "width", "isSubmit", "buttonIconSize", "showSpinner"], outputs: ["onClickEvent", "onMouseInEvent", "onMouseOutEvent"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: CommonModule }, { kind: "component", type: IconComponent, selector: "sa-icon", inputs: ["img", "imgWidth", "imgHeight", "icon", "size", "color", "iconPath", "iconUrl", "customClass", "href", "hrefTarget", "iconPosition"], outputs: ["onClickEvent"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i2.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }] }); }
210
243
  }
211
244
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: GridCellComponent, decorators: [{
212
245
  type: Component,
@@ -220,7 +253,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
220
253
  CommonModule,
221
254
  IconComponent,
222
255
  MatTooltipModule
223
- ], template: "<div class=\"grid-cell {{params.cellType}}\">\n\n <img class=\"icons\" src={{params.iconPath}} [style.display]=\"(params.viewLeadingIcon) ? 'block' : 'none'\" alt=\"\">\n\n <sa-avatar [id]=\"params.avatarConfig?.id\" [altText]=\"params.avatarConfig?.altText\"\n [imagePath]=\"params.avatarConfig?.imagePath\" [size]=\"params.avatarConfig?.size\"\n [style.display]=\"(params.viewAvatar) ? 'block' : 'none'\" (onClickEvent)=\"avatarClicked($event)\">\n </sa-avatar>\n\n <div class=\"grid-text\" [style.display]=\"(params.viewText) ? 'block' : 'none'\">\n <div [style.display]=\"(params.text) ? 'block' : 'none'\" (click)=\"linkClicked()\" class=\"main-text\">{{params.text}}\n </div>\n\n <div [style.display]=\"(params.subText) ? 'block' : 'none'\" class=\"sub-text\">{{params.subText}}</div>\n </div>\n\n <img class=\"icons\" src={{params.iconPath}} [style.display]=\"(params.viewTrailingIcon) ? 'block' : 'none'\" alt=\"\">\n @if(params?.tooltip){\n <span class=\"tooltip-container\">\n <sa-icon [icon]=\"params?.tooltipIcon || 'infoCircleOutlined'\"\n customClass=\"info-icon\" [matTooltip]=\"params?.tooltip\"\n matTooltipClass=\"custom-tooltip\" class=\"tooltip-icon\"></sa-icon>\n </span>\n }\n <div class=\"chips-container\" [style.display]=\"(params.viewChip) ? 'flex' : 'none'\">\n\n <div *ngFor=\"let config of displayedChips\">\n <sa-chip [id]=\"config.id\" [filling]=\"config.filling\" id=\"chip_{{rowNum}}_{{config.id}}\" [iconPath]=\"config.iconPath\"\n [iconPosition]=\"config.iconPosition\" [largeStateIcon]=\"config.largeStateIcon\" [state]=\"config.state\"\n [type]=\"config.type\" [text]=\"config.text\" [class.small]=\"config.type === 'small'\"\n [class.neutral]=\"config.state === 'neutral'\" (onClickEvent)=\"chipClicked($event)\"></sa-chip>\n </div>\n <div class=\"chip-tooltip-container\" *ngIf=\"remainingChipsCount > 0\" style=\"position: relative;\"\n (mouseenter)=\"showTooltip(remainingChipsCount, $event)\" (mouseleave)=\"hideTooltip()\">\n <sa-chip [id]=\"'chip_' + rowNum + '_more'\" [text]=\"'+' + remainingChipsCount\" [filling]=\"displayedChips[0]?.filling\"\n [type]=\"displayedChips[0]?.type\" [state]=\"displayedChips[0]?.state\" (onClickEvent)=\"chipClicked($event)\"></sa-chip>\n</div>\n\n <sa-button [iconPosition]=\"params.buttonConfig?.iconPosition\" [ImagePath]=\"params.buttonConfig?.imagePath\"\n [id]=\"params.buttonConfig?.id\" [size]=\"params.buttonConfig?.size\" [state]=\"params.buttonConfig?.state\"\n [type]=\"params.buttonConfig?.type\" [text]=\"params.buttonConfig?.text\" [href]=\"params.buttonConfig?.href\"\n [hrefTarget]=\"params.buttonConfig?.hrefTarget\" [style.display]=\"(params.viewButton) ? 'block' : 'none'\"\n (onClickEvent)=\"buttonClicked($event)\"></sa-button>\n\n</div>\n\n <div *ngIf=\"params.cellType === 'actions'\" class=\"actions-container\">\n @if(params?.downloadAction){\n <sa-icon [icon]=\"params?.downloadAction?.icon\" [size]=\"params?.downloadAction?.iconSize\" (click)=\"handleActionClick(params?.downloadAction, $event)\" />\n }\n <img [src]=\"params.buttonConfig?.imagePath\" alt=\"actions\" class=\"actions-icon\" (click)=\"toggleDropdown(actionsButton)\"\n #actionsButton />\n <ng-template #dropdownTemplate>\n <div class=\"actions-dropdown\">\n <div *ngFor=\"let action of params.actions\" class=\"action-item\" (click)=\"handleActionClick(action, $event)\">\n <img *ngIf=\"action.icon\" [src]=\"action.icon\" class=\"action-icon\" />\n <span class=\"action-label\">{{action.label}}</span>\n </div>\n </div>\n </ng-template>\n </div>\n</div>\n", styles: [".header{--bg: var(--primary-50);--color: var(--text-highemphasis);--border: none;--flex-direction: left}.header:hover{cursor:pointer}.row{--color: var(--text-highemphasis);--cursor: default;--border: var(--grey-50);--flex-direction: left}.numeric{--color: var(--text-highemphasis);--cursor: default;--border: var(--grey-50);--flex-direction: right}.interactive{--color: var(--primary-500);--cursor: pointer;--border: var(--grey-50);--flex-direction: left}.grid-cell{display:flex;height:48px;padding:var(--small-12px);justify-content:var(--flex-direction);align-items:center;gap:var(--small-8px);flex-shrink:0;font-family:var(--font);box-sizing:border-box;border-bottom:1px solid var(--border);width:calc(100% - 20px);background-color:var(--bg)}.grid-text{display:flex;flex-direction:column}.main-text{color:var(--color);font-size:14px;font-weight:400;height:20px;line-height:20px}.main-text:hover{cursor:var(--cursor)}.sub-text{font-size:11px;font-weight:400;height:16px;line-height:16px;color:var(--text-mediumemphasis)}.icons{width:var(--medium-20px);height:var(--medium-20px)}.grid-chip{display:flex;height:24px;padding:var(--Small-4px, 4px) var(--Small-8px, 8px);justify-content:center;align-items:center;gap:var(--Small-4px, 4px);border-radius:4px;background:var(--Grey-100, #EAECF0);color:var(--Text-Medium-Emphasis, #6D6979);font-family:var(--font-family, Roboto);font-size:11px;font-style:normal;font-weight:500;line-height:16px;letter-spacing:.5px}.grid-cell,.chips-container{overflow:visible!important;position:relative}.chip-tooltip-container{position:relative;display:inline-flex;overflow:visible!important}.chip-tooltip-container sa-tool-tip{display:none}.chips-container{display:flex;gap:var(--Small-4px, 4px);align-items:center}.actions-container{position:relative;display:flex;width:32px;height:32px;justify-content:center;align-items:center;cursor:pointer}.actions-icon{width:20px;height:20px;cursor:pointer!important}.actions-dropdown{position:absolute;right:0;min-width:150px;z-index:1000;border-radius:4px;border:1px solid var(--Grey-100, #EAECF0);background:var(--Structural-White, #FFF);box-shadow:0 1px 2px #0000004d}.action-item{display:flex;height:40px;padding:12px;align-items:center;gap:8px;align-self:stretch;cursor:pointer;transition:background-color .2s}.action-item:hover{background-color:#f5f5f5}.action-label{color:var(--text-highemphasis, #1C1B20);font-family:var(--font-roboto, Roboto);font-size:14px;font-style:normal;font-weight:400;line-height:20px;letter-spacing:.25px}.actions-container.clicked{border-radius:64px;background:var(--Primary-50, #F4EBFF);padding:8px}.chips-container{overflow:visible!important;position:relative}.chip-tooltip-container{position:relative;display:inline-flex;overflow:visible}.tooltip-icon{display:flex;align-items:center}\n"] }]
256
+ ], template: "<div class=\"grid-cell {{params.cellType}}\">\n\n <img class=\"icons\" src={{params.iconPath}} [style.display]=\"(params.viewLeadingIcon) ? 'block' : 'none'\" alt=\"\">\n\n <sa-avatar [id]=\"params.avatarConfig?.id\" [altText]=\"params.avatarConfig?.altText\"\n [imagePath]=\"params.avatarConfig?.imagePath\" [size]=\"params.avatarConfig?.size\"\n [style.display]=\"(params.viewAvatar) ? 'block' : 'none'\" (onClickEvent)=\"avatarClicked($event)\">\n </sa-avatar>\n\n <div class=\"grid-text\" [style.display]=\"(params.viewText) ? 'block' : 'none'\">\n <div [style.display]=\"(params.text) ? 'block' : 'none'\" (click)=\"linkClicked()\" class=\"main-text\">\n @if(params.cellType === 'masked') {\n {{maskEmail(params.text)}}\n } @else {\n {{params.text}}\n }\n </div>\n\n <div [style.display]=\"(params.subText) ? 'block' : 'none'\" class=\"sub-text\">{{params.subText}}</div>\n </div>\n\n <img class=\"icons\" src={{params.iconPath}} [style.display]=\"(params.viewTrailingIcon) ? 'block' : 'none'\" alt=\"\">\n @if(params?.tooltip){\n <span class=\"tooltip-container\">\n <sa-icon [icon]=\"params?.tooltipIcon || 'infoCircleOutlined'\"\n customClass=\"info-icon\" [matTooltip]=\"params?.tooltip\"\n matTooltipClass=\"custom-tooltip\" class=\"tooltip-icon\"></sa-icon>\n </span>\n }\n <div class=\"chips-container\" [style.display]=\"(params.viewChip) ? 'flex' : 'none'\">\n\n <div *ngFor=\"let config of displayedChips\">\n <sa-chip [id]=\"config.id\" [filling]=\"config.filling\" id=\"chip_{{rowNum}}_{{config.id}}\" [iconPath]=\"config.iconPath\"\n [iconPosition]=\"config.iconPosition\" [largeStateIcon]=\"config.largeStateIcon\" [state]=\"config.state\"\n [type]=\"config.type\" [text]=\"config.text\" [class.small]=\"config.type === 'small'\"\n [class.neutral]=\"config.state === 'neutral'\" (onClickEvent)=\"chipClicked($event)\"></sa-chip>\n </div>\n <div class=\"chip-tooltip-container\" *ngIf=\"remainingChipsCount > 0\" style=\"position: relative;\"\n (mouseenter)=\"showTooltip(remainingChipsCount, $event)\" (mouseleave)=\"hideTooltip()\">\n <sa-chip [id]=\"'chip_' + rowNum + '_more'\" [text]=\"'+' + remainingChipsCount\" [filling]=\"displayedChips[0]?.filling\"\n [type]=\"displayedChips[0]?.type\" [state]=\"displayedChips[0]?.state\" (onClickEvent)=\"chipClicked($event)\"></sa-chip>\n</div>\n\n <sa-button [iconPosition]=\"params.buttonConfig?.iconPosition\" [ImagePath]=\"params.buttonConfig?.imagePath\"\n [id]=\"params.buttonConfig?.id\" [size]=\"params.buttonConfig?.size\" [state]=\"params.buttonConfig?.state\"\n [type]=\"params.buttonConfig?.type\" [text]=\"params.buttonConfig?.text\" [href]=\"params.buttonConfig?.href\"\n [hrefTarget]=\"params.buttonConfig?.hrefTarget\" [style.display]=\"(params.viewButton) ? 'block' : 'none'\"\n (onClickEvent)=\"buttonClicked($event)\"></sa-button>\n\n</div>\n\n <div *ngIf=\"params.cellType === 'actions'\" class=\"actions-container\">\n @if(params?.downloadAction){\n <sa-icon [icon]=\"params?.downloadAction?.icon\" [size]=\"params?.downloadAction?.iconSize\" (click)=\"handleActionClick(params?.downloadAction, $event)\" />\n }\n <img [src]=\"params.buttonConfig?.imagePath\" alt=\"actions\" class=\"actions-icon\" (click)=\"toggleDropdown(actionsButton)\"\n #actionsButton />\n <ng-template #dropdownTemplate>\n <div class=\"actions-dropdown\">\n <div *ngFor=\"let action of params.actions\" class=\"action-item\" (click)=\"handleActionClick(action, $event)\">\n <img *ngIf=\"action.icon\" [src]=\"action.icon\" class=\"action-icon\" />\n <span class=\"action-label\">{{action.label}}</span>\n </div>\n </div>\n </ng-template>\n </div>\n</div>\n", styles: [".header{--bg: var(--primary-50);--color: var(--text-highemphasis);--border: none;--flex-direction: left}.header:hover{cursor:pointer}.row{--color: var(--text-highemphasis);--cursor: default;--border: var(--grey-50);--flex-direction: left}.numeric{--color: var(--text-highemphasis);--cursor: default;--border: var(--grey-50);--flex-direction: right}.interactive{--color: var(--primary-500);--cursor: pointer;--border: var(--grey-50);--flex-direction: left}.grid-cell{display:flex;height:48px;padding:var(--small-12px);justify-content:var(--flex-direction);align-items:center;gap:var(--small-8px);flex-shrink:0;font-family:var(--font);box-sizing:border-box;border-bottom:1px solid var(--border);width:calc(100% - 20px);background-color:var(--bg)}.grid-text{display:flex;flex-direction:column}.main-text{color:var(--color);font-size:14px;font-weight:400;height:20px;line-height:20px}.main-text:hover{cursor:var(--cursor)}.sub-text{font-size:11px;font-weight:400;height:16px;line-height:16px;color:var(--text-mediumemphasis)}.icons{width:var(--medium-20px);height:var(--medium-20px)}.grid-chip{display:flex;height:24px;padding:var(--Small-4px, 4px) var(--Small-8px, 8px);justify-content:center;align-items:center;gap:var(--Small-4px, 4px);border-radius:4px;background:var(--Grey-100, #EAECF0);color:var(--Text-Medium-Emphasis, #6D6979);font-family:var(--font-family, Roboto);font-size:11px;font-style:normal;font-weight:500;line-height:16px;letter-spacing:.5px}.grid-cell,.chips-container{overflow:visible!important;position:relative}.chip-tooltip-container{position:relative;display:inline-flex;overflow:visible!important}.chip-tooltip-container sa-tool-tip{display:none}.chips-container{display:flex;gap:var(--Small-4px, 4px);align-items:center}.actions-container{position:relative;display:flex;width:32px;height:32px;justify-content:center;align-items:center;cursor:pointer}.actions-icon{width:20px;height:20px;cursor:pointer!important}.actions-dropdown{position:absolute;right:0;min-width:150px;z-index:1000;border-radius:4px;border:1px solid var(--Grey-100, #EAECF0);background:var(--Structural-White, #FFF);box-shadow:0 1px 2px #0000004d}.action-item{display:flex;height:40px;padding:12px;align-items:center;gap:8px;align-self:stretch;cursor:pointer;transition:background-color .2s}.action-item:hover{background-color:#f5f5f5}.action-label{color:var(--text-highemphasis, #1C1B20);font-family:var(--font-roboto, Roboto);font-size:14px;font-style:normal;font-weight:400;line-height:20px;letter-spacing:.25px}.actions-container.clicked{border-radius:64px;background:var(--Primary-50, #F4EBFF);padding:8px}.chips-container{overflow:visible!important;position:relative}.chip-tooltip-container{position:relative;display:inline-flex;overflow:visible}.tooltip-icon{display:flex;align-items:center}\n"] }]
224
257
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.Overlay }, { type: i0.ViewContainerRef }], propDecorators: { dropdownTemplate: [{
225
258
  type: ViewChild,
226
259
  args: ['dropdownTemplate']
@@ -239,4 +272,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
239
272
  type: HostListener,
240
273
  args: ['document:click', ['$event']]
241
274
  }] } });
242
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1jZWxsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudC1saWJyYXJ5L3NyYy9saWIvZ3JpZC1jZWxsL2dyaWQtY2VsbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnQtbGlicmFyeS9zcmMvbGliL2dyaWQtY2VsbC9ncmlkLWNlbGwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFpQyxTQUFTLEVBQUUsWUFBWSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ25JLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFHN0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzdELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBR2xFLE9BQU8sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRzVELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVyRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7Ozs7QUF5QjdELE1BQU0sT0FBTyxpQkFBaUI7SUFnQjVCLFlBQW9CLEdBQXNCLEVBQVUsT0FBZ0IsRUFBVSxnQkFBa0M7UUFBNUYsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFBVSxZQUFPLEdBQVAsT0FBTyxDQUFTO1FBQVUscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQVpoSCxpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUNa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QUFTOytCQUNFLGNBQWMsY0FDWixJQUFJLFdBQ1A7d0JBQ1AsZUFBZTt3QkFDZixjQUFjO3dCQUNkLGVBQWU7d0JBQ2YsS0FBSzt3QkFDTCxJQUFJO3dCQUNKLGdCQUFnQjt3QkFDaEIsWUFBWTt3QkFDWixhQUFhO3dCQUNiLGdCQUFnQjtxQkFDakI7MklBSzhCLGdCQUFnQjtzQkFBOUMsU0FBUzt1QkFBQyxrQkFBa0I7Z0JBRUUsZ0JBQWdCO3NCQUE5QyxTQUFTO3VCQUFDLGtCQUFrQjtnQkFRbkIsa0JBQWtCO3NCQUEzQixNQUFNO2dCQUNHLGdCQUFnQjtzQkFBekIsTUFBTTtnQkFDRyxnQkFBZ0I7c0JBQXpCLE1BQU07Z0JBQ0csa0JBQWtCO3NCQUEzQixNQUFNO2dCQTRHUCxlQUFlO3NCQURkLFlBQVk7dUJBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBDaGFuZ2VEZXRlY3RvclJlZiwgRWxlbWVudFJlZiwgVmlld0NoaWxkLCBIb3N0TGlzdGVuZXIsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2hpcHNDb21wb25lbnQgfSBmcm9tICcuLi9jaGlwcy9jaGlwcy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi4vYnV0dG9uL2J1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgSUNlbGxSZW5kZXJlckFuZ3VsYXJDb21wLCBJSGVhZGVyQW5ndWxhckNvbXAgfSBmcm9tICdhZy1ncmlkLWFuZ3VsYXInO1xuaW1wb3J0IHsgR3JpZEludGVyZmFjZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvZ3JpZC1pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQXZhdGFyQ29tcG9uZW50IH0gZnJvbSAnLi4vYXZhdGFyL2F2YXRhci5jb21wb25lbnQnO1xuaW1wb3J0IHsgVG9vbFRpcENvbXBvbmVudCB9IGZyb20gJy4uL3Rvb2wtdGlwL3Rvb2wtdGlwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDaGlwSW50ZXJmYWNlIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9jaGlwLWludGVyZmFjZSc7XG5pbXBvcnQgeyBPdmVybGF5LCBPdmVybGF5UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlLCBOZ0ZvciwgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRlbXBsYXRlUmVmLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUZW1wbGF0ZVBvcnRhbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHsgSUNlbGxSZW5kZXJlclBhcmFtcyB9IGZyb20gJ2FnLWdyaWQtY29tbXVuaXR5JztcbmltcG9ydCB7IEljb25Db21wb25lbnQgfSBmcm9tICcuLi9pY29uL2ljb24uY29tcG9uZW50JztcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcblxuaW50ZXJmYWNlIENlbGxQYXJhbXMgZXh0ZW5kcyBJQ2VsbFJlbmRlcmVyUGFyYW1zIHtcbiAgcm93SW5kZXg6IG51bWJlcjtcbiAgdmFsdWU6IGFueTtcbiAgZGF0YTogeyB5b3U/OiBib29sZWFuIH07XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NhLWdyaWQtY2VsbCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBBdmF0YXJDb21wb25lbnQsXG4gICAgQ2hpcHNDb21wb25lbnQsXG4gICAgQnV0dG9uQ29tcG9uZW50LFxuICAgIE5nRm9yLFxuICAgIE5nSWYsXG4gICAgVG9vbFRpcENvbXBvbmVudCxcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgSWNvbkNvbXBvbmVudCxcbiAgICBNYXRUb29sdGlwTW9kdWxlXG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9ncmlkLWNlbGwuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vZ3JpZC1jZWxsLmNvbXBvbmVudC5jc3MnXG59KVxuZXhwb3J0IGNsYXNzIEdyaWRDZWxsQ29tcG9uZW50IGltcGxlbWVudHMgSUNlbGxSZW5kZXJlckFuZ3VsYXJDb21wLCBPbkRlc3Ryb3kge1xuICBAVmlld0NoaWxkKCdkcm9wZG93blRlbXBsYXRlJykgZHJvcGRvd25UZW1wbGF0ZSE6IFRlbXBsYXRlUmVmPGFueT47XG4gIG92ZXJsYXlSZWYhOiBPdmVybGF5UmVmO1xuICBAVmlld0NoaWxkKCdhY3Rpb25zQ29udGFpbmVyJykgYWN0aW9uc0NvbnRhaW5lciE6IEVsZW1lbnRSZWY7XG4gIHNob3dEcm9wZG93biA9IGZhbHNlO1xuICByZWFkb25seSBNQVhfVklTSUJMRV9DSElQUyA9IDE7IFxuICBkaXNwbGF5ZWRDaGlwczogQ2hpcEludGVyZmFjZVtdID0gW107XG4gIHJlbWFpbmluZ0NoaXBzQ291bnQgPSAwO1xuICBwYXJhbXMhOiBHcmlkSW50ZXJmYWNlO1xuICByb3dOdW0gPSAwO1xuXG4gIEBPdXRwdXQoKSBvbkNsaWNrQnV0dG9uRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPHsgcm93SWQ6IG51bWJlciB9PigpO1xuICBAT3V0cHV0KCkgb25DbGlja0NoaXBFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8eyByb3dJZDogbnVtYmVyIH0+KCk7XG4gIEBPdXRwdXQoKSBvbkNsaWNrTGlua0V2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgb25DbGlja0F2YXRhckV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjx7IHJvd0lkOiBudW1iZXIgfT4oKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsIHByaXZhdGUgb3ZlcmxheTogT3ZlcmxheSwgcHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmKSB7fVxuXG4gIGhvdmVyZWRDaGlwOiBhbnkgPSBudWxsO1xuICBwcml2YXRlIHRvb2x0aXBDb21wb25lbnRSZWY6IENvbXBvbmVudFJlZjxUb29sVGlwQ29tcG9uZW50PiB8IG51bGwgPSBudWxsO1xuXG4gIGFnSW5pdChwYXJhbXM6IENlbGxQYXJhbXMpOiB2b2lkIHtcbiAgICB0aGlzLnJvd051bSA9IHBhcmFtcy5yb3dJbmRleDtcbiAgICBcbiAgICAvLyBDaGVjayBmb3IgZGlyZWN0IGZpZWxkIHZhbHVlIGZpcnN0LCB0aGVuIGZhbGxiYWNrIHRvIF9jZWxsUGFyYW1zXG4gICAgbGV0IGNlbGxEYXRhID0gcGFyYW1zLnZhbHVlO1xuICAgIGlmICghY2VsbERhdGEgJiYgcGFyYW1zLmRhdGEgJiYgcGFyYW1zLmNvbERlZj8uZmllbGQpIHtcbiAgICAgIGNvbnN0IGNlbGxQYXJhbXNLZXkgPSBgJHtwYXJhbXMuY29sRGVmLmZpZWxkfV9jZWxsUGFyYW1zYDtcbiAgICAgIGNlbGxEYXRhID0gcGFyYW1zLmRhdGFbY2VsbFBhcmFtc0tleV07XG4gICAgfVxuICAgIFxuICAgIHRoaXMucGFyYW1zID0ge1xuICAgICAgLi4ucGFyYW1zLFxuICAgICAgLi4uKGNlbGxEYXRhID8/IHt9KVxuICAgIH07XG4gICAgXG4gICAgaWYgKHRoaXMucGFyYW1zLmNoaXBDb25maWcgJiYgQXJyYXkuaXNBcnJheSh0aGlzLnBhcmFtcy5jaGlwQ29uZmlnKSkge1xuICAgICAgdGhpcy5kaXNwbGF5ZWRDaGlwcyA9IHRoaXMucGFyYW1zLmNoaXBDb25maWcuc2xpY2UoMCwgdGhpcy5NQVhfVklTSUJMRV9DSElQUyk7XG4gICAgICB0aGlzLnJlbWFpbmluZ0NoaXBzQ291bnQgPSBNYXRoLm1heCgwLCB0aGlzLnBhcmFtcy5jaGlwQ29uZmlnLmxlbmd0aCAtIHRoaXMuTUFYX1ZJU0lCTEVfQ0hJUFMpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICB0aGlzLmRpc3BsYXllZENoaXBzID0gdGhpcy5wYXJhbXMuY2hpcENvbmZpZztcbiAgICAgICB0aGlzLnJlbWFpbmluZ0NoaXBzQ291bnQgPSAwO1xuICAgIH1cbiAgfVxuXG4gIHJlZnJlc2gocGFyYW1zOiBDZWxsUGFyYW1zKTogYm9vbGVhbiB7XG4gICAgdGhpcy5hZ0luaXQocGFyYW1zKTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHR5cGVPZih2YWx1ZTogdW5rbm93bik6IHN0cmluZyB7XG4gICAgcmV0dXJuIHR5cGVvZiB2YWx1ZTtcbiAgfVxuICBcbiAgYnV0dG9uQ2xpY2tlZChldmVudDogYW55KSB7XG4gICAgaWYgKHRoaXMucGFyYW1zLmJ1dHRvbkNvbmZpZz8ub25DbGljaykge1xuICAgICAgdGhpcy5wYXJhbXMuYnV0dG9uQ29uZmlnLm9uQ2xpY2soZXZlbnQpO1xuICAgIH1cbiAgICB0aGlzLnBhcmFtcy5idXR0b25DbGlja2VkICYmIHRoaXMucGFyYW1zLmJ1dHRvbkNsaWNrZWQoeyAgICAgICAgICAgIFxuICAgICAgLi4uZXZlbnQsXG4gICAgICByb3dJZDogdGhpcy5yb3dOdW1cbiAgICB9KTtcbiAgICB0aGlzLm9uQ2xpY2tCdXR0b25FdmVudC5lbWl0KHsgLi4uZXZlbnQsIHJvd0lkOiB0aGlzLnJvd051bSB9KTsgICAgICBcbiAgfVxuXG4gIHRvZ2dsZURyb3Bkb3duKGVsZW1lbnQ6IEhUTUxFbGVtZW50KSB7XG4gICAgaWYgKHRoaXMub3ZlcmxheVJlZikge1xuICAgICAgdGhpcy5vdmVybGF5UmVmLmRpc3Bvc2UoKTtcbiAgICAgIHRoaXMub3ZlcmxheVJlZiA9IG51bGwgYXMgYW55O1xuICAgIH1cblxuICAgIGNvbnN0IHBvc2l0aW9uU3RyYXRlZ3kgPSB0aGlzLm92ZXJsYXkucG9zaXRpb24oKVxuICAgICAgLmZsZXhpYmxlQ29ubmVjdGVkVG8oZWxlbWVudClcbiAgICAgIC53aXRoUHVzaCh0cnVlKSBcbiAgICAgIC53aXRoRmxleGlibGVEaW1lbnNpb25zKHRydWUpIFxuICAgICAgLndpdGhWaWV3cG9ydE1hcmdpbig4KSBcbiAgICAgIC53aXRoUG9zaXRpb25zKFtcbiAgICAgICAge1xuICAgICAgICAgIG9yaWdpblg6ICdlbmQnLFxuICAgICAgICAgIG9yaWdpblk6ICdib3R0b20nLFxuICAgICAgICAgIG92ZXJsYXlYOiAnZW5kJyxcbiAgICAgICAgICBvdmVybGF5WTogJ3RvcCcsXG4gICAgICAgICAgb2Zmc2V0WTogNCxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG9yaWdpblg6ICdzdGFydCcsXG4gICAgICAgICAgb3JpZ2luWTogJ2JvdHRvbScsXG4gICAgICAgICAgb3ZlcmxheVg6ICdzdGFydCcsXG4gICAgICAgICAgb3ZlcmxheVk6ICd0b3AnLFxuICAgICAgICAgIG9mZnNldFk6IDQsXG4gICAgICAgIH1cbiAgICAgIF0pO1xuXG4gICAgdGhpcy5vdmVybGF5UmVmID0gdGhpcy5vdmVybGF5LmNyZWF0ZSh7XG4gICAgICBwb3NpdGlvblN0cmF0ZWd5LFxuICAgICAgaGFzQmFja2Ryb3A6IHRydWUsXG4gICAgICBiYWNrZHJvcENsYXNzOiAnY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3AnLFxuICAgICAgcGFuZWxDbGFzczogJ2FjdGlvbnMtZHJvcGRvd24tcGFuZWwnLFxuICAgICAgc2Nyb2xsU3RyYXRlZ3k6IHRoaXMub3ZlcmxheS5zY3JvbGxTdHJhdGVnaWVzLnJlcG9zaXRpb24oKSBcbiAgICB9KTtcblxuICAgIGNvbnN0IHBvcnRhbCA9IG5ldyBUZW1wbGF0ZVBvcnRhbCh0aGlzLmRyb3Bkb3duVGVtcGxhdGUsIHRoaXMudmlld0NvbnRhaW5lclJlZik7XG4gICAgdGhpcy5vdmVybGF5UmVmLmF0dGFjaChwb3J0YWwpO1xuXG4gICAgdGhpcy5vdmVybGF5UmVmLmJhY2tkcm9wQ2xpY2soKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMub3ZlcmxheVJlZikge1xuICAgICAgICB0aGlzLm92ZXJsYXlSZWYuZGlzcG9zZSgpO1xuICAgICAgICB0aGlzLm92ZXJsYXlSZWYgPSBudWxsIGFzIGFueTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGhhbmRsZUFjdGlvbkNsaWNrKGFjdGlvbjogYW55LCBldmVudDogRXZlbnQpIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLnNob3dEcm9wZG93biA9IGZhbHNlO1xuICAgIGlmIChhY3Rpb24ub25DbGljaykge1xuICAgICAgYWN0aW9uLm9uQ2xpY2soKTtcbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDpjbGljaycsIFsnJGV2ZW50J10pXG4gIG9uRG9jdW1lbnRDbGljayhldmVudDogRXZlbnQpIHtcbiAgICBpZiAodGhpcy5hY3Rpb25zQ29udGFpbmVyICYmICF0aGlzLmFjdGlvbnNDb250YWluZXIubmF0aXZlRWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQpKSB7XG4gICAgICB0aGlzLnNob3dEcm9wZG93biA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIGNoaXBDbGlja2VkKGV2dDogRXZlbnQpIHtcbiAgICB0aGlzLnBhcmFtcy5jaGlwQ2xpY2tlZCAmJiB0aGlzLnBhcmFtcy5jaGlwQ2xpY2tlZCh7XG4gICAgICAuLi5ldnQsXG4gICAgICByb3dJZDogdGhpcy5yb3dOdW1cbiAgICB9KTtcbiAgICB0aGlzLm9uQ2xpY2tDaGlwRXZlbnQuZW1pdCh7IC4uLmV2dCwgcm93SWQ6IHRoaXMucm93TnVtIH0pO1xuICB9XG5cbiAgbGlua0NsaWNrZWQoKSB7XG4gICAgaWYgKHRoaXMucGFyYW1zLmNlbGxUeXBlICE9IFwiaW50ZXJhY3RpdmVcIikgcmV0dXJuO1xuXG4gICAgdGhpcy5wYXJhbXMubGlua0NsaWNrZWQgJiYgdGhpcy5wYXJhbXMubGlua0NsaWNrZWQoeyAgICAgICAgIFxuICAgICAgcm93SWQ6IHRoaXMucm93TnVtXG4gICAgfSk7XG5cbiAgICBpZiAodGhpcy5wYXJhbXMuaW50ZXJhY3RpdmVMaW5rICE9IFwiXCIpIHtcbiAgICAgIGlmICh0aGlzLnBhcmFtcy5pbnRlcmFjdGl2ZUxpbmtUYXJnZXQgPT0gXCJibGFua1wiKSB7XG4gICAgICAgIHdpbmRvdy5vcGVuKHRoaXMucGFyYW1zLmludGVyYWN0aXZlTGluaykhO1xuICAgICAgfVxuICAgICAgZWxzZSBpZiAodGhpcy5wYXJhbXMuaW50ZXJhY3RpdmVMaW5rVGFyZ2V0ID09IFwic2VsZlwiKSB7XG4gICAgICAgIGxvY2F0aW9uLmhyZWYgPSB0aGlzLnBhcmFtcy5pbnRlcmFjdGl2ZUxpbmshO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLm9uQ2xpY2tMaW5rRXZlbnQuZW1pdCh7IHJvd0lkOiB0aGlzLnJvd051bSB9KTtcbiAgfVxuXG4gIGF2YXRhckNsaWNrZWQoZXZ0OiBFdmVudCkge1xuICAgIHRoaXMucGFyYW1zLmF2YXRhckNsaWNrZWQgJiYgdGhpcy5wYXJhbXMuYXZhdGFyQ2xpY2tlZCh7XG4gICAgICAuLi5ldnQsXG4gICAgICByb3dJZDogdGhpcy5yb3dOdW1cbiAgICB9KTtcbiAgICB0aGlzLm9uQ2xpY2tBdmF0YXJFdmVudC5lbWl0KHsgLi4uZXZ0LCByb3dJZDogdGhpcy5yb3dOdW0gfSk7XG4gIH1cblxuICBzaG93VG9vbHRpcChjb25maWc6IGFueSwgZXZlbnQ/OiBNb3VzZUV2ZW50KSB7XG4gICAgdGhpcy5ob3ZlcmVkQ2hpcCA9IGNvbmZpZzsgXG4gICAgaWYgKGV2ZW50ICYmIGV2ZW50LmN1cnJlbnRUYXJnZXQpIHtcbiAgICAgIGNvbnN0IGNoaXBDb250YWluZXIgPSBldmVudC5jdXJyZW50VGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xuICAgICAgY29uc3QgY2hpcEVsZW1lbnQgPSBjaGlwQ29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoJ3NhLWNoaXAnKSBhcyBIVE1MRWxlbWVudDtcbiAgICAgIGlmIChjaGlwRWxlbWVudCkge1xuICAgICAgICBjb25zdCByZWN0ID0gY2hpcEVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgIGNvbnN0IHRvcFBvc2l0aW9uID0gcmVjdC5ib3R0b20gKyA4O1xuICAgICAgICBjb25zdCBsZWZ0UG9zaXRpb24gPSByZWN0LmxlZnQgKyByZWN0LndpZHRoIC8gMjtcbiAgICAgICAgdGhpcy5jcmVhdGVUb29sdGlwQ29tcG9uZW50KHRvcFBvc2l0aW9uLCBsZWZ0UG9zaXRpb24pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGhpZGVUb29sdGlwKCkge1xuICAgIHRoaXMuaG92ZXJlZENoaXAgPSBudWxsO1xuICAgIHRoaXMuZGVzdHJveVRvb2x0aXBDb21wb25lbnQoKTtcbiAgfVxuXG4gIGNyZWF0ZVRvb2x0aXBDb21wb25lbnQodG9wOiBudW1iZXIsIGxlZnQ6IG51bWJlcikge1xuICAgIHRoaXMuZGVzdHJveVRvb2x0aXBDb21wb25lbnQoKTtcbiAgICB0aGlzLnRvb2x0aXBDb21wb25lbnRSZWYgPSB0aGlzLnZpZXdDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KFRvb2xUaXBDb21wb25lbnQpOyAgICBcbiAgICB0aGlzLnRvb2x0aXBDb21wb25lbnRSZWYuaW5zdGFuY2UubWVzc2FnZXMgPSB0aGlzLmdldFRvb2x0aXBUZXh0KCk7IFxuICAgIHRoaXMudG9vbHRpcENvbXBvbmVudFJlZi5pbnN0YW5jZS5zaW1wbGVNb2RlID0gdHJ1ZTtcbiAgICB0aGlzLnRvb2x0aXBDb21wb25lbnRSZWYuaW5zdGFuY2UucG9pbnRlclBvc2l0aW9uID0gJ3RvcCc7XG4gICAgXG4gICAgY29uc3QgdG9vbHRpcEVsZW1lbnQgPSB0aGlzLnRvb2x0aXBDb21wb25lbnRSZWYubG9jYXRpb24ubmF0aXZlRWxlbWVudDtcbiAgICB0b29sdGlwRWxlbWVudC5zdHlsZS5jc3NUZXh0ID0gYFxuICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgdG9wOiAke3RvcH1weDtcbiAgICAgIGxlZnQ6ICR7bGVmdH1weDtcbiAgICAgIHotaW5kZXg6IDk5OTk5O1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgYDtcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRvb2x0aXBFbGVtZW50KTtcbiAgICB0aGlzLnRvb2x0aXBDb21wb25lbnRSZWYuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgZGVzdHJveVRvb2x0aXBDb21wb25lbnQoKSB7XG4gICAgaWYgKHRoaXMudG9vbHRpcENvbXBvbmVudFJlZikge1xuICAgICAgY29uc3QgdG9vbHRpcEVsZW1lbnQgPSB0aGlzLnRvb2x0aXBDb21wb25lbnRSZWYubG9jYXRpb24ubmF0aXZlRWxlbWVudDtcbiAgICAgIGlmICh0b29sdGlwRWxlbWVudC5wYXJlbnROb2RlKSB7XG4gICAgICAgIHRvb2x0aXBFbGVtZW50LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodG9vbHRpcEVsZW1lbnQpO1xuICAgICAgfVxuICAgICAgdGhpcy50b29sdGlwQ29tcG9uZW50UmVmLmRlc3Ryb3koKTtcbiAgICAgIHRoaXMudG9vbHRpcENvbXBvbmVudFJlZiA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgZ2V0VG9vbHRpcFRleHQoKTogc3RyaW5nW10ge1xuICAgIGlmICghdGhpcy5wYXJhbXM/LmNoaXBDb25maWcpIHJldHVybiBbXTtcbiAgICByZXR1cm4gdGhpcy5wYXJhbXMuY2hpcENvbmZpZy5tYXAoY2hpcCA9PiBjaGlwLnRleHQpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5oaWRlVG9vbHRpcCgpO1xuICAgIGlmICh0aGlzLm92ZXJsYXlSZWYpIHtcbiAgICAgIHRoaXMub3ZlcmxheVJlZi5kaXNwb3NlKCk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZ3JpZC1jZWxsIHt7cGFyYW1zLmNlbGxUeXBlfX1cIj5cblxuICA8aW1nIGNsYXNzPVwiaWNvbnNcIiBzcmM9e3twYXJhbXMuaWNvblBhdGh9fSBbc3R5bGUuZGlzcGxheV09XCIocGFyYW1zLnZpZXdMZWFkaW5nSWNvbikgPyAnYmxvY2snIDogJ25vbmUnXCIgYWx0PVwiXCI+XG5cbiAgPHNhLWF2YXRhciBbaWRdPVwicGFyYW1zLmF2YXRhckNvbmZpZz8uaWRcIiBbYWx0VGV4dF09XCJwYXJhbXMuYXZhdGFyQ29uZmlnPy5hbHRUZXh0XCJcbiAgICBbaW1hZ2VQYXRoXT1cInBhcmFtcy5hdmF0YXJDb25maWc/LmltYWdlUGF0aFwiIFtzaXplXT1cInBhcmFtcy5hdmF0YXJDb25maWc/LnNpemVcIlxuICAgIFtzdHlsZS5kaXNwbGF5XT1cIihwYXJhbXMudmlld0F2YXRhcikgPyAnYmxvY2snIDogJ25vbmUnXCIgKG9uQ2xpY2tFdmVudCk9XCJhdmF0YXJDbGlja2VkKCRldmVudClcIj5cbiAgPC9zYS1hdmF0YXI+XG5cbiAgPGRpdiBjbGFzcz1cImdyaWQtdGV4dFwiIFtzdHlsZS5kaXNwbGF5XT1cIihwYXJhbXMudmlld1RleHQpID8gJ2Jsb2NrJyA6ICdub25lJ1wiPlxuICAgIDxkaXYgW3N0eWxlLmRpc3BsYXldPVwiKHBhcmFtcy50ZXh0KSA/ICdibG9jaycgOiAnbm9uZSdcIiAoY2xpY2spPVwibGlua0NsaWNrZWQoKVwiIGNsYXNzPVwibWFpbi10ZXh0XCI+e3twYXJhbXMudGV4dH19XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IFtzdHlsZS5kaXNwbGF5XT1cIihwYXJhbXMuc3ViVGV4dCkgPyAnYmxvY2snIDogJ25vbmUnXCIgY2xhc3M9XCJzdWItdGV4dFwiPnt7cGFyYW1zLnN1YlRleHR9fTwvZGl2PlxuICA8L2Rpdj5cblxuICA8aW1nIGNsYXNzPVwiaWNvbnNcIiBzcmM9e3twYXJhbXMuaWNvblBhdGh9fSBbc3R5bGUuZGlzcGxheV09XCIocGFyYW1zLnZpZXdUcmFpbGluZ0ljb24pID8gJ2Jsb2NrJyA6ICdub25lJ1wiIGFsdD1cIlwiPlxuICBAaWYocGFyYW1zPy50b29sdGlwKXtcbiAgICA8c3BhbiBjbGFzcz1cInRvb2x0aXAtY29udGFpbmVyXCI+XG4gICAgICAgIDxzYS1pY29uIFtpY29uXT1cInBhcmFtcz8udG9vbHRpcEljb24gfHwgJ2luZm9DaXJjbGVPdXRsaW5lZCdcIlxuICAgICAgICAgICAgY3VzdG9tQ2xhc3M9XCJpbmZvLWljb25cIiBbbWF0VG9vbHRpcF09XCJwYXJhbXM/LnRvb2x0aXBcIlxuICAgICAgICAgICAgbWF0VG9vbHRpcENsYXNzPVwiY3VzdG9tLXRvb2x0aXBcIiBjbGFzcz1cInRvb2x0aXAtaWNvblwiPjwvc2EtaWNvbj5cbiAgICA8L3NwYW4+XG4gICAgfVxuICA8ZGl2IGNsYXNzPVwiY2hpcHMtY29udGFpbmVyXCIgW3N0eWxlLmRpc3BsYXldPVwiKHBhcmFtcy52aWV3Q2hpcCkgPyAnZmxleCcgOiAnbm9uZSdcIj5cblxuICA8ZGl2ICpuZ0Zvcj1cImxldCBjb25maWcgb2YgZGlzcGxheWVkQ2hpcHNcIj5cbiAgICA8c2EtY2hpcCBbaWRdPVwiY29uZmlnLmlkXCIgW2ZpbGxpbmddPVwiY29uZmlnLmZpbGxpbmdcIiBpZD1cImNoaXBfe3tyb3dOdW19fV97e2NvbmZpZy5pZH19XCIgW2ljb25QYXRoXT1cImNvbmZpZy5pY29uUGF0aFwiXG4gICAgICBbaWNvblBvc2l0aW9uXT1cImNvbmZpZy5pY29uUG9zaXRpb25cIiBbbGFyZ2VTdGF0ZUljb25dPVwiY29uZmlnLmxhcmdlU3RhdGVJY29uXCIgW3N0YXRlXT1cImNvbmZpZy5zdGF0ZVwiXG4gICAgICBbdHlwZV09XCJjb25maWcudHlwZVwiIFt0ZXh0XT1cImNvbmZpZy50ZXh0XCIgW2NsYXNzLnNtYWxsXT1cImNvbmZpZy50eXBlID09PSAnc21hbGwnXCJcbiAgICAgIFtjbGFzcy5uZXV0cmFsXT1cImNvbmZpZy5zdGF0ZSA9PT0gJ25ldXRyYWwnXCIgKG9uQ2xpY2tFdmVudCk9XCJjaGlwQ2xpY2tlZCgkZXZlbnQpXCI+PC9zYS1jaGlwPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImNoaXAtdG9vbHRpcC1jb250YWluZXJcIiAqbmdJZj1cInJlbWFpbmluZ0NoaXBzQ291bnQgPiAwXCIgc3R5bGU9XCJwb3NpdGlvbjogcmVsYXRpdmU7XCJcbiAgICAobW91c2VlbnRlcik9XCJzaG93VG9vbHRpcChyZW1haW5pbmdDaGlwc0NvdW50LCAkZXZlbnQpXCIgKG1vdXNlbGVhdmUpPVwiaGlkZVRvb2x0aXAoKVwiPlxuICAgIDxzYS1jaGlwIFtpZF09XCInY2hpcF8nICsgcm93TnVtICsgJ19tb3JlJ1wiIFt0ZXh0XT1cIicrJyArIHJlbWFpbmluZ0NoaXBzQ291bnRcIiBbZmlsbGluZ109XCJkaXNwbGF5ZWRDaGlwc1swXT8uZmlsbGluZ1wiXG4gICAgICBbdHlwZV09XCJkaXNwbGF5ZWRDaGlwc1swXT8udHlwZVwiIFtzdGF0ZV09XCJkaXNwbGF5ZWRDaGlwc1swXT8uc3RhdGVcIiAob25DbGlja0V2ZW50KT1cImNoaXBDbGlja2VkKCRldmVudClcIj48L3NhLWNoaXA+XG48L2Rpdj5cblxuICA8c2EtYnV0dG9uIFtpY29uUG9zaXRpb25dPVwicGFyYW1zLmJ1dHRvbkNvbmZpZz8uaWNvblBvc2l0aW9uXCIgW0ltYWdlUGF0aF09XCJwYXJhbXMuYnV0dG9uQ29uZmlnPy5pbWFnZVBhdGhcIlxuICAgIFtpZF09XCJwYXJhbXMuYnV0dG9uQ29uZmlnPy5pZFwiIFtzaXplXT1cInBhcmFtcy5idXR0b25Db25maWc/LnNpemVcIiBbc3RhdGVdPVwicGFyYW1zLmJ1dHRvbkNvbmZpZz8uc3RhdGVcIlxuICAgIFt0eXBlXT1cInBhcmFtcy5idXR0b25Db25maWc/LnR5cGVcIiBbdGV4dF09XCJwYXJhbXMuYnV0dG9uQ29uZmlnPy50ZXh0XCIgW2hyZWZdPVwicGFyYW1zLmJ1dHRvbkNvbmZpZz8uaHJlZlwiXG4gICAgW2hyZWZUYXJnZXRdPVwicGFyYW1zLmJ1dHRvbkNvbmZpZz8uaHJlZlRhcmdldFwiIFtzdHlsZS5kaXNwbGF5XT1cIihwYXJhbXMudmlld0J1dHRvbikgPyAnYmxvY2snIDogJ25vbmUnXCJcbiAgICAob25DbGlja0V2ZW50KT1cImJ1dHRvbkNsaWNrZWQoJGV2ZW50KVwiPjwvc2EtYnV0dG9uPlxuXG48L2Rpdj5cblxuICA8ZGl2ICpuZ0lmPVwicGFyYW1zLmNlbGxUeXBlID09PSAnYWN0aW9ucydcIiBjbGFzcz1cImFjdGlvbnMtY29udGFpbmVyXCI+XG4gICAgQGlmKHBhcmFtcz8uZG93bmxvYWRBY3Rpb24pe1xuICAgICAgPHNhLWljb24gW2ljb25dPVwicGFyYW1zPy5kb3dubG9hZEFjdGlvbj8uaWNvblwiIFtzaXplXT1cInBhcmFtcz8uZG93bmxvYWRBY3Rpb24/Lmljb25TaXplXCIgIChjbGljayk9XCJoYW5kbGVBY3Rpb25DbGljayhwYXJhbXM/LmRvd25sb2FkQWN0aW9uLCAkZXZlbnQpXCIgLz5cbiAgICB9XG4gICAgPGltZyBbc3JjXT1cInBhcmFtcy5idXR0b25Db25maWc/LmltYWdlUGF0aFwiIGFsdD1cImFjdGlvbnNcIiBjbGFzcz1cImFjdGlvbnMtaWNvblwiIChjbGljayk9XCJ0b2dnbGVEcm9wZG93bihhY3Rpb25zQnV0dG9uKVwiXG4gICAgICAjYWN0aW9uc0J1dHRvbiAvPlxuICAgIDxuZy10ZW1wbGF0ZSAjZHJvcGRvd25UZW1wbGF0ZT5cbiAgICAgIDxkaXYgY2xhc3M9XCJhY3Rpb25zLWRyb3Bkb3duXCI+XG4gICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGFjdGlvbiBvZiBwYXJhbXMuYWN0aW9uc1wiIGNsYXNzPVwiYWN0aW9uLWl0ZW1cIiAoY2xpY2spPVwiaGFuZGxlQWN0aW9uQ2xpY2soYWN0aW9uLCAkZXZlbnQpXCI+XG4gICAgICAgICAgPGltZyAqbmdJZj1cImFjdGlvbi5pY29uXCIgW3NyY109XCJhY3Rpb24uaWNvblwiIGNsYXNzPVwiYWN0aW9uLWljb25cIiAvPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYWN0aW9uLWxhYmVsXCI+e3thY3Rpb24ubGFiZWx9fTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
275
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1jZWxsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudC1saWJyYXJ5L3NyYy9saWIvZ3JpZC1jZWxsL2dyaWQtY2VsbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnQtbGlicmFyeS9zcmMvbGliL2dyaWQtY2VsbC9ncmlkLWNlbGwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFpQyxTQUFTLEVBQUUsWUFBWSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ25JLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFHN0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzdELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBR2xFLE9BQU8sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRzVELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVyRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUNMLFFBQVEsSUFBSSxTQUFTLEVBQ3JCLEtBQUssSUFBSSxNQUFNLEVBQ2YsSUFBSSxJQUFJLEtBQUssRUFDYixJQUFJLElBQUksS0FBSyxFQUNiLEtBQUssSUFBSSxNQUFNLEVBQ2YsU0FBUyxJQUFJLFVBQVUsRUFDdkIsTUFBTSxJQUFJLE9BQU8sRUFDbEIsTUFBTSxRQUFRLENBQUM7Ozs7QUF5QmhC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QUFZLENBQUMsR0FBRyxZQUFZLEdBQUcsTUFBTSxDQUFDO0lBQ3hFLENBQUM7OEdBcFFVLGlCQUFpQjtrR0FBakIsaUJBQWlCLHdoQkNqRDlCLCt1SEFtRUEsbXlGRC9CSSxlQUFlLHNLQUNmLGNBQWMsMk5BQ2QsZUFBZSx3UkFDZixLQUFLLG1IQUNMLElBQUksNEZBRUosWUFBWSwrQkFDWixhQUFhLDZOQUNiLGdCQUFnQjs7MkZBS1AsaUJBQWlCO2tCQWpCN0IsU0FBUzsrQkFDRSxjQUFjLGNBQ1osSUFBSSxXQUNQO3dCQUNQLGVBQWU7d0JBQ2YsY0FBYzt3QkFDZCxlQUFlO3dCQUNmLEtBQUs7d0JBQ0wsSUFBSTt3QkFDSixnQkFBZ0I7d0JBQ2hCLFlBQVk7d0JBQ1osYUFBYTt3QkFDYixnQkFBZ0I7cUJBQ2pCOzJJQUs4QixnQkFBZ0I7c0JBQTlDLFNBQVM7dUJBQUMsa0JBQWtCO2dCQUVFLGdCQUFnQjtzQkFBOUMsU0FBUzt1QkFBQyxrQkFBa0I7Z0JBUW5CLGtCQUFrQjtzQkFBM0IsTUFBTTtnQkFDRyxnQkFBZ0I7c0JBQXpCLE1BQU07Z0JBQ0csZ0JBQWdCO3NCQUF6QixNQUFNO2dCQUNHLGtCQUFrQjtzQkFBM0IsTUFBTTtnQkE0R1AsZUFBZTtzQkFEZCxZQUFZO3VCQUFDLGdCQUFnQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgQ2hhbmdlRGV0ZWN0b3JSZWYsIEVsZW1lbnRSZWYsIFZpZXdDaGlsZCwgSG9zdExpc3RlbmVyLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENoaXBzQ29tcG9uZW50IH0gZnJvbSAnLi4vY2hpcHMvY2hpcHMuY29tcG9uZW50JztcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IElDZWxsUmVuZGVyZXJBbmd1bGFyQ29tcCwgSUhlYWRlckFuZ3VsYXJDb21wIH0gZnJvbSAnYWctZ3JpZC1hbmd1bGFyJztcbmltcG9ydCB7IEdyaWRJbnRlcmZhY2UgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2dyaWQtaW50ZXJmYWNlJztcbmltcG9ydCB7IEF2YXRhckNvbXBvbmVudCB9IGZyb20gJy4uL2F2YXRhci9hdmF0YXIuY29tcG9uZW50JztcbmltcG9ydCB7IFRvb2xUaXBDb21wb25lbnQgfSBmcm9tICcuLi90b29sLXRpcC90b29sLXRpcC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2hpcEludGVyZmFjZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvY2hpcC1pbnRlcmZhY2UnO1xuaW1wb3J0IHsgT3ZlcmxheSwgT3ZlcmxheVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSwgTmdGb3IsIE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUZW1wbGF0ZVJlZiwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVGVtcGxhdGVQb3J0YWwgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7IElDZWxsUmVuZGVyZXJQYXJhbXMgfSBmcm9tICdhZy1ncmlkLWNvbW11bml0eSc7XG5pbXBvcnQgeyBJY29uQ29tcG9uZW50IH0gZnJvbSAnLi4vaWNvbi9pY29uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XG5pbXBvcnQgeyBcbiAgaXNTdHJpbmcgYXMgX2lzU3RyaW5nLCBcbiAgc3BsaXQgYXMgX3NwbGl0LCBcbiAgam9pbiBhcyBfam9pbiwgXG4gIHNpemUgYXMgX3NpemUsIFxuICBmaXJzdCBhcyBfZmlyc3QsIFxuICB0YWtlUmlnaHQgYXMgX3Rha2VSaWdodCwgXG4gIHJlcGVhdCBhcyBfcmVwZWF0IFxufSBmcm9tICdsb2Rhc2gnO1xuXG5pbnRlcmZhY2UgQ2VsbFBhcmFtcyBleHRlbmRzIElDZWxsUmVuZGVyZXJQYXJhbXMge1xuICByb3dJbmRleDogbnVtYmVyO1xuICB2YWx1ZTogYW55O1xuICBkYXRhOiB7IHlvdT86IGJvb2xlYW4gfTtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2EtZ3JpZC1jZWxsJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIEF2YXRhckNvbXBvbmVudCxcbiAgICBDaGlwc0NvbXBvbmVudCxcbiAgICBCdXR0b25Db21wb25lbnQsXG4gICAgTmdGb3IsXG4gICAgTmdJZixcbiAgICBUb29sVGlwQ29tcG9uZW50LFxuICAgIENvbW1vbk1vZHVsZSxcbiAgICBJY29uQ29tcG9uZW50LFxuICAgIE1hdFRvb2x0aXBNb2R1bGVcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2dyaWQtY2VsbC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9ncmlkLWNlbGwuY29tcG9uZW50LmNzcydcbn0pXG5leHBvcnQgY2xhc3MgR3JpZENlbGxDb21wb25lbnQgaW1wbGVtZW50cyBJQ2VsbFJlbmRlcmVyQW5ndWxhckNvbXAsIE9uRGVzdHJveSB7XG4gIEBWaWV3Q2hpbGQoJ2Ryb3Bkb3duVGVtcGxhdGUnKSBkcm9wZG93blRlbXBsYXRlITogVGVtcGxhdGVSZWY8YW55PjtcbiAgb3ZlcmxheVJlZiE6IE92ZXJsYXlSZWY7XG4gIEBWaWV3Q2hpbGQoJ2FjdGlvbnNDb250YWluZXInKSBhY3Rpb25zQ29udGFpbmVyITogRWxlbWVudFJlZjtcbiAgc2hvd0Ryb3Bkb3duID0gZmFsc2U7XG4gIHJlYWRvbmx5IE1BWF9WSVNJQkxFX0NISVBTID0gMTsgXG4gIGRpc3BsYXllZENoaXBzOiBDaGlwSW50ZXJmYWNlW10gPSBbXTtcbiAgcmVtYWluaW5nQ2hpcHNDb3VudCA9IDA7XG4gIHBhcmFtcyE6IEdyaWRJbnRlcmZhY2U7XG4gIHJvd051bSA9IDA7XG5cbiAgQE91dHB1dCgpIG9uQ2xpY2tCdXR0b25FdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8eyByb3dJZDogbnVtYmVyIH0+KCk7XG4gIEBPdXRwdXQoKSBvbkNsaWNrQ2hpcEV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjx7IHJvd0lkOiBudW1iZXIgfT4oKTtcbiAgQE91dHB1dCgpIG9uQ2xpY2tMaW5rRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBvbkNsaWNrQXZhdGFyRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPHsgcm93SWQ6IG51bWJlciB9PigpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZiwgcHJpdmF0ZSBvdmVybGF5OiBPdmVybGF5LCBwcml2YXRlIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYpIHt9XG5cbiAgaG92ZXJlZENoaXA6IGFueSA9IG51bGw7XG4gIHByaXZhdGUgdG9vbHRpcENvbXBvbmVudFJlZjogQ29tcG9uZW50UmVmPFRvb2xUaXBDb21wb25lbnQ+IHwgbnVsbCA9IG51bGw7XG5cbiAgYWdJbml0KHBhcmFtczogQ2VsbFBhcmFtcyk6IHZvaWQge1xuICAgIHRoaXMucm93TnVtID0gcGFyYW1zLnJvd0luZGV4O1xuICAgIFxuICAgIC8vIENoZWNrIGZvciBkaXJlY3QgZmllbGQgdmFsdWUgZmlyc3QsIHRoZW4gZmFsbGJhY2sgdG8gX2NlbGxQYXJhbXNcbiAgICBsZXQgY2VsbERhdGEgPSBwYXJhbXMudmFsdWU7XG4gICAgaWYgKCFjZWxsRGF0YSAmJiBwYXJhbXMuZGF0YSAmJiBwYXJhbXMuY29sRGVmPy5maWVsZCkge1xuICAgICAgY29uc3QgY2VsbFBhcmFtc0tleSA9IGAke3BhcmFtcy5jb2xEZWYuZmllbGR9X2NlbGxQYXJhbXNgO1xuICAgICAgY2VsbERhdGEgPSBwYXJhbXMuZGF0YVtjZWxsUGFyYW1zS2V5XTtcbiAgICB9XG4gICAgXG4gICAgdGhpcy5wYXJhbXMgPSB7XG4gICAgICAuLi5wYXJhbXMsXG4gICAgICAuLi4oY2VsbERhdGEgPz8ge30pXG4gICAgfTtcbiAgICBcbiAgICBpZiAodGhpcy5wYXJhbXMuY2hpcENvbmZpZyAmJiBBcnJheS5pc0FycmF5KHRoaXMucGFyYW1zLmNoaXBDb25maWcpKSB7XG4gICAgICB0aGlzLmRpc3BsYXllZENoaXBzID0gdGhpcy5wYXJhbXMuY2hpcENvbmZpZy5zbGljZSgwLCB0aGlzLk1BWF9WSVNJQkxFX0NISVBTKTtcbiAgICAgIHRoaXMucmVtYWluaW5nQ2hpcHNDb3VudCA9IE1hdGgubWF4KDAsIHRoaXMucGFyYW1zLmNoaXBDb25maWcubGVuZ3RoIC0gdGhpcy5NQVhfVklTSUJMRV9DSElQUyk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgIHRoaXMuZGlzcGxheWVkQ2hpcHMgPSB0aGlzLnBhcmFtcy5jaGlwQ29uZmlnO1xuICAgICAgIHRoaXMucmVtYWluaW5nQ2hpcHNDb3VudCA9IDA7XG4gICAgfVxuICB9XG5cbiAgcmVmcmVzaChwYXJhbXM6IENlbGxQYXJhbXMpOiBib29sZWFuIHtcbiAgICB0aGlzLmFnSW5pdChwYXJhbXMpO1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgdHlwZU9mKHZhbHVlOiB1bmtub3duKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdHlwZW9mIHZhbHVlO1xuICB9XG4gIFxuICBidXR0b25DbGlja2VkKGV2ZW50OiBhbnkpIHtcbiAgICBpZiAodGhpcy5wYXJhbXMuYnV0dG9uQ29uZmlnPy5vbkNsaWNrKSB7XG4gICAgICB0aGlzLnBhcmFtcy5idXR0b25Db25maWcub25DbGljayhldmVudCk7XG4gICAgfVxuICAgIHRoaXMucGFyYW1zLmJ1dHRvbkNsaWNrZWQgJiYgdGhpcy5wYXJhbXMuYnV0dG9uQ2xpY2tlZCh7ICAgICAgICAgICAgXG4gICAgICAuLi5ldmVudCxcbiAgICAgIHJvd0lkOiB0aGlzLnJvd051bVxuICAgIH0pO1xuICAgIHRoaXMub25DbGlja0J1dHRvbkV2ZW50LmVtaXQoeyAuLi5ldmVudCwgcm93SWQ6IHRoaXMucm93TnVtIH0pOyAgICAgIFxuICB9XG5cbiAgdG9nZ2xlRHJvcGRvd24oZWxlbWVudDogSFRNTEVsZW1lbnQpIHtcbiAgICBpZiAodGhpcy5vdmVybGF5UmVmKSB7XG4gICAgICB0aGlzLm92ZXJsYXlSZWYuZGlzcG9zZSgpO1xuICAgICAgdGhpcy5vdmVybGF5UmVmID0gbnVsbCBhcyBhbnk7XG4gICAgfVxuXG4gICAgY29uc3QgcG9zaXRpb25TdHJhdGVneSA9IHRoaXMub3ZlcmxheS5wb3NpdGlvbigpXG4gICAgICAuZmxleGlibGVDb25uZWN0ZWRUbyhlbGVtZW50KVxuICAgICAgLndpdGhQdXNoKHRydWUpIFxuICAgICAgLndpdGhGbGV4aWJsZURpbWVuc2lvbnModHJ1ZSkgXG4gICAgICAud2l0aFZpZXdwb3J0TWFyZ2luKDgpIFxuICAgICAgLndpdGhQb3NpdGlvbnMoW1xuICAgICAgICB7XG4gICAgICAgICAgb3JpZ2luWDogJ2VuZCcsXG4gICAgICAgICAgb3JpZ2luWTogJ2JvdHRvbScsXG4gICAgICAgICAgb3ZlcmxheVg6ICdlbmQnLFxuICAgICAgICAgIG92ZXJsYXlZOiAndG9wJyxcbiAgICAgICAgICBvZmZzZXRZOiA0LFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgb3JpZ2luWDogJ3N0YXJ0JyxcbiAgICAgICAgICBvcmlnaW5ZOiAnYm90dG9tJyxcbiAgICAgICAgICBvdmVybGF5WDogJ3N0YXJ0JyxcbiAgICAgICAgICBvdmVybGF5WTogJ3RvcCcsXG4gICAgICAgICAgb2Zmc2V0WTogNCxcbiAgICAgICAgfVxuICAgICAgXSk7XG5cbiAgICB0aGlzLm92ZXJsYXlSZWYgPSB0aGlzLm92ZXJsYXkuY3JlYXRlKHtcbiAgICAgIHBvc2l0aW9uU3RyYXRlZ3ksXG4gICAgICBoYXNCYWNrZHJvcDogdHJ1ZSxcbiAgICAgIGJhY2tkcm9wQ2xhc3M6ICdjZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcCcsXG4gICAgICBwYW5lbENsYXNzOiAnYWN0aW9ucy1kcm9wZG93bi1wYW5lbCcsXG4gICAgICBzY3JvbGxTdHJhdGVneTogdGhpcy5vdmVybGF5LnNjcm9sbFN0cmF0ZWdpZXMucmVwb3NpdGlvbigpIFxuICAgIH0pO1xuXG4gICAgY29uc3QgcG9ydGFsID0gbmV3IFRlbXBsYXRlUG9ydGFsKHRoaXMuZHJvcGRvd25UZW1wbGF0ZSwgdGhpcy52aWV3Q29udGFpbmVyUmVmKTtcbiAgICB0aGlzLm92ZXJsYXlSZWYuYXR0YWNoKHBvcnRhbCk7XG5cbiAgICB0aGlzLm92ZXJsYXlSZWYuYmFja2Ryb3BDbGljaygpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5vdmVybGF5UmVmKSB7XG4gICAgICAgIHRoaXMub3ZlcmxheVJlZi5kaXNwb3NlKCk7XG4gICAgICAgIHRoaXMub3ZlcmxheVJlZiA9IG51bGwgYXMgYW55O1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgaGFuZGxlQWN0aW9uQ2xpY2soYWN0aW9uOiBhbnksIGV2ZW50OiBFdmVudCkge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMuc2hvd0Ryb3Bkb3duID0gZmFsc2U7XG4gICAgaWYgKGFjdGlvbi5vbkNsaWNrKSB7XG4gICAgICBhY3Rpb24ub25DbGljaygpO1xuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmNsaWNrJywgWyckZXZlbnQnXSlcbiAgb25Eb2N1bWVudENsaWNrKGV2ZW50OiBFdmVudCkge1xuICAgIGlmICh0aGlzLmFjdGlvbnNDb250YWluZXIgJiYgIXRoaXMuYWN0aW9uc0NvbnRhaW5lci5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCkpIHtcbiAgICAgIHRoaXMuc2hvd0Ryb3Bkb3duID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgY2hpcENsaWNrZWQoZXZ0OiBFdmVudCkge1xuICAgIHRoaXMucGFyYW1zLmNoaXBDbGlja2VkICYmIHRoaXMucGFyYW1zLmNoaXBDbGlja2VkKHtcbiAgICAgIC4uLmV2dCxcbiAgICAgIHJvd0lkOiB0aGlzLnJvd051bVxuICAgIH0pO1xuICAgIHRoaXMub25DbGlja0NoaXBFdmVudC5lbWl0KHsgLi4uZXZ0LCByb3dJZDogdGhpcy5yb3dOdW0gfSk7XG4gIH1cblxuICBsaW5rQ2xpY2tlZCgpIHtcbiAgICBpZiAodGhpcy5wYXJhbXMuY2VsbFR5cGUgIT0gXCJpbnRlcmFjdGl2ZVwiKSByZXR1cm47XG5cbiAgICB0aGlzLnBhcmFtcy5saW5rQ2xpY2tlZCAmJiB0aGlzLnBhcmFtcy5saW5rQ2xpY2tlZCh7ICAgICAgICAgXG4gICAgICByb3dJZDogdGhpcy5yb3dOdW1cbiAgICB9KTtcblxuICAgIGlmICh0aGlzLnBhcmFtcy5pbnRlcmFjdGl2ZUxpbmsgIT0gXCJcIikge1xuICAgICAgaWYgKHRoaXMucGFyYW1zLmludGVyYWN0aXZlTGlua1RhcmdldCA9PSBcImJsYW5rXCIpIHtcbiAgICAgICAgd2luZG93Lm9wZW4odGhpcy5wYXJhbXMuaW50ZXJhY3RpdmVMaW5rKSE7XG4gICAgICB9XG4gICAgICBlbHNlIGlmICh0aGlzLnBhcmFtcy5pbnRlcmFjdGl2ZUxpbmtUYXJnZXQgPT0gXCJzZWxmXCIpIHtcbiAgICAgICAgbG9jYXRpb24uaHJlZiA9IHRoaXMucGFyYW1zLmludGVyYWN0aXZlTGluayE7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMub25DbGlja0xpbmtFdmVudC5lbWl0KHsgcm93SWQ6IHRoaXMucm93TnVtIH0pO1xuICB9XG5cbiAgYXZhdGFyQ2xpY2tlZChldnQ6IEV2ZW50KSB7XG4gICAgdGhpcy5wYXJhbXMuYXZhdGFyQ2xpY2tlZCAmJiB0aGlzLnBhcmFtcy5hdmF0YXJDbGlja2VkKHtcbiAgICAgIC4uLmV2dCxcbiAgICAgIHJvd0lkOiB0aGlzLnJvd051bVxuICAgIH0pO1xuICAgIHRoaXMub25DbGlja0F2YXRhckV2ZW50LmVtaXQoeyAuLi5ldnQsIHJvd0lkOiB0aGlzLnJvd051bSB9KTtcbiAgfVxuXG4gIHNob3dUb29sdGlwKGNvbmZpZzogYW55LCBldmVudD86IE1vdXNlRXZlbnQpIHtcbiAgICB0aGlzLmhvdmVyZWRDaGlwID0gY29uZmlnOyBcbiAgICBpZiAoZXZlbnQgJiYgZXZlbnQuY3VycmVudFRhcmdldCkge1xuICAgICAgY29uc3QgY2hpcENvbnRhaW5lciA9IGV2ZW50LmN1cnJlbnRUYXJnZXQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICBjb25zdCBjaGlwRWxlbWVudCA9IGNoaXBDb250YWluZXIucXVlcnlTZWxlY3Rvcignc2EtY2hpcCcpIGFzIEhUTUxFbGVtZW50O1xuICAgICAgaWYgKGNoaXBFbGVtZW50KSB7XG4gICAgICAgIGNvbnN0IHJlY3QgPSBjaGlwRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgY29uc3QgdG9wUG9zaXRpb24gPSByZWN0LmJvdHRvbSArIDg7XG4gICAgICAgIGNvbnN0IGxlZnRQb3NpdGlvbiA9IHJlY3QubGVmdCArIHJlY3Qud2lkdGggLyAyO1xuICAgICAgICB0aGlzLmNyZWF0ZVRvb2x0aXBDb21wb25lbnQodG9wUG9zaXRpb24sIGxlZnRQb3NpdGlvbik7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaGlkZVRvb2x0aXAoKSB7XG4gICAgdGhpcy5ob3ZlcmVkQ2hpcCA9IG51bGw7XG4gICAgdGhpcy5kZXN0cm95VG9vbHRpcENvbXBvbmVudCgpO1xuICB9XG5cbiAgY3JlYXRlVG9vbHRpcENvbXBvbmVudCh0b3A6IG51bWJlciwgbGVmdDogbnVtYmVyKSB7XG4gICAgdGhpcy5kZXN0cm95VG9vbHRpcENvbXBvbmVudCgpO1xuICAgIHRoaXMudG9vbHRpcENvbXBvbmVudFJlZiA9IHRoaXMudmlld0NvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQoVG9vbFRpcENvbXBvbmVudCk7ICAgIFxuICAgIHRoaXMudG9vbHRpcENvbXBvbmVudFJlZi5pbnN0YW5jZS5tZXNzYWdlcyA9IHRoaXMuZ2V0VG9vbHRpcFRleHQoKTsgXG4gICAgdGhpcy50b29sdGlwQ29tcG9uZW50UmVmLmluc3RhbmNlLnNpbXBsZU1vZGUgPSB0cnVlO1xuICAgIHRoaXMudG9vbHRpcENvbXBvbmVudFJlZi5pbnN0YW5jZS5wb2ludGVyUG9zaXRpb24gPSAndG9wJztcbiAgICBcbiAgICBjb25zdCB0b29sdGlwRWxlbWVudCA9IHRoaXMudG9vbHRpcENvbXBvbmVudFJlZi5sb2NhdGlvbi5uYXRpdmVFbGVtZW50O1xuICAgIHRvb2x0aXBFbGVtZW50LnN0eWxlLmNzc1RleHQgPSBgXG4gICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICB0b3A6ICR7dG9wfXB4O1xuICAgICAgbGVmdDogJHtsZWZ0fXB4O1xuICAgICAgei1pbmRleDogOTk5OTk7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICBgO1xuICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodG9vbHRpcEVsZW1lbnQpO1xuICAgIHRoaXMudG9vbHRpcENvbXBvbmVudFJlZi5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBkZXN0cm95VG9vbHRpcENvbXBvbmVudCgpIHtcbiAgICBpZiAodGhpcy50b29sdGlwQ29tcG9uZW50UmVmKSB7XG4gICAgICBjb25zdCB0b29sdGlwRWxlbWVudCA9IHRoaXMudG9vbHRpcENvbXBvbmVudFJlZi5sb2NhdGlvbi5uYXRpdmVFbGVtZW50O1xuICAgICAgaWYgKHRvb2x0aXBFbGVtZW50LnBhcmVudE5vZGUpIHtcbiAgICAgICAgdG9vbHRpcEVsZW1lbnQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0b29sdGlwRWxlbWVudCk7XG4gICAgICB9XG4gICAgICB0aGlzLnRvb2x0aXBDb21wb25lbnRSZWYuZGVzdHJveSgpO1xuICAgICAgdGhpcy50b29sdGlwQ29tcG9uZW50UmVmID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICBnZXRUb29sdGlwVGV4dCgpOiBzdHJpbmdbXSB7XG4gICAgaWYgKCF0aGlzLnBhcmFtcz8uY2hpcENvbmZpZykgcmV0dXJuIFtdO1xuICAgIHJldHVybiB0aGlzLnBhcmFtcy5jaGlwQ29uZmlnLm1hcChjaGlwID0+IGNoaXAudGV4dCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmhpZGVUb29sdGlwKCk7XG4gICAgaWYgKHRoaXMub3ZlcmxheVJlZikge1xuICAgICAgdGhpcy5vdmVybGF5UmVmLmRpc3Bvc2UoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogTWFza3MgYW4gZW1haWwgYWRkcmVzcyBmb3IgcHJpdmFjeVxuICAgKiBTaG93cyBmaXJzdCBjaGFyYWN0ZXIsIG1hc2tzIG1pZGRsZSBjaGFyYWN0ZXJzLCBzaG93cyBsYXN0IDIgY2hhcmFjdGVycyBiZWZvcmUgQFxuICAgKiBAcGFyYW0gZW1haWwgLSBUaGUgZW1haWwgYWRkcmVzcyB0byBtYXNrXG4gICAqIEByZXR1cm5zIE1hc2tlZCBlbWFpbCBzdHJpbmcgKGUuZy4sIG1hcmtAb3V0bG9vay5jb20gLT4gbeKAouKAouKAouKAouKAouKAonJrQG91dGxvb2suY29tKVxuICAgKiBAZXhhbXBsZVxuICAgKiBtYXNrRW1haWwoJ21hcmtAb3V0bG9vay5jb20nKSAvLyBSZXR1cm5zOiAnbeKAouKAouKAouKAouKAouKAonJrQG91dGxvb2suY29tJ1xuICAgKiBtYXNrRW1haWwoJ2FiQHRlc3QuY29tJykgLy8gUmV0dXJuczogJ2HigKJAdGVzdC5jb20nXG4gICAqL1xuICBtYXNrRW1haWwoZW1haWw6IHN0cmluZyB8IG51bWJlcik6IHN0cmluZyB7XG4gICAgaWYgKCFlbWFpbCkgcmV0dXJuICctJztcbiAgICBcbiAgICAvLyBDb252ZXJ0IHRvIHN0cmluZyBpZiBpdCdzIGEgbnVtYmVyXG4gICAgY29uc3QgZW1haWxTdHIgPSBTdHJpbmcoZW1haWwpO1xuICAgIFxuICAgIGlmICghX2lzU3RyaW5nKGVtYWlsU3RyKSkgcmV0dXJuICctJztcbiAgICBcbiAgICBjb25zdCBhdEluZGV4ID0gZW1haWxTdHIuaW5kZXhPZignQCcpO1xuICAgIGlmIChhdEluZGV4IDw9IDApIHJldHVybiBlbWFpbFN0cjsgLy8gSW52YWxpZCBlbWFpbCBmb3JtYXRcbiAgICBcbiAgICBjb25zdCBbbG9jYWxQYXJ0LCAuLi5kb21haW5QYXJ0c10gPSBfc3BsaXQoZW1haWxTdHIsICdAJyk7XG4gICAgY29uc3QgZG9tYWluID0gJ0AnICsgX2pvaW4oZG9tYWluUGFydHMsICdAJyk7XG4gICAgXG4gICAgY29uc3QgbG9jYWxMZW5ndGggPSBfc2l6ZShsb2NhbFBhcnQpO1xuICAgIFxuICAgIGlmIChsb2NhbExlbmd0aCA8PSAyKSB7XG4gICAgICAvLyBGb3IgdmVyeSBzaG9ydCBsb2NhbCBwYXJ0cywganVzdCBtYXNrIHRoZSBtaWRkbGVcbiAgICAgIHJldHVybiBfZmlyc3QobG9jYWxQYXJ0KSArIF9yZXBlYXQoJ+KAoicsIGxvY2FsTGVuZ3RoIC0gMSkgKyBkb21haW47XG4gICAgfVxuICAgIFxuICAgIC8vIFNob3cgZmlyc3QgY2hhcmFjdGVyLCBtYXNrIG1pZGRsZSwgc2hvdyBsYXN0IDIgY2hhcmFjdGVycyBiZWZvcmUgQFxuICAgIGNvbnN0IGZpcnN0Q2hhciA9IF9maXJzdChsb2NhbFBhcnQpO1xuICAgIGNvbnN0IGxhc3RUd29DaGFycyA9IF90YWtlUmlnaHQobG9jYWxQYXJ0LCAyKS5qb2luKCcnKTtcbiAgICBjb25zdCBtYXNrZWRMZW5ndGggPSBsb2NhbExlbmd0aCAtIDM7IC8vIFRvdGFsIGxlbmd0aCBtaW51cyBmaXJzdCBhbmQgbGFzdCAyXG4gICAgXG4gICAgcmV0dXJuIGZpcnN0Q2hhciArIF9yZXBlYXQoJ+KAoicsIG1hc2tlZExlbmd0aCkgKyBsYXN0VHdvQ2hhcnMgKyBkb21haW47XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJncmlkLWNlbGwge3twYXJhbXMuY2VsbFR5cGV9fVwiPlxuXG4gIDxpbWcgY2xhc3M9XCJpY29uc1wiIHNyYz17e3BhcmFtcy5pY29uUGF0aH19IFtzdHlsZS5kaXNwbGF5XT1cIihwYXJhbXMudmlld0xlYWRpbmdJY29uKSA/ICdibG9jaycgOiAnbm9uZSdcIiBhbHQ9XCJcIj5cblxuICA8c2EtYXZhdGFyIFtpZF09XCJwYXJhbXMuYXZhdGFyQ29uZmlnPy5pZFwiIFthbHRUZXh0XT1cInBhcmFtcy5hdmF0YXJDb25maWc/LmFsdFRleHRcIlxuICAgIFtpbWFnZVBhdGhdPVwicGFyYW1zLmF2YXRhckNvbmZpZz8uaW1hZ2VQYXRoXCIgW3NpemVdPVwicGFyYW1zLmF2YXRhckNvbmZpZz8uc2l6ZVwiXG4gICAgW3N0eWxlLmRpc3BsYXldPVwiKHBhcmFtcy52aWV3QXZhdGFyKSA/ICdibG9jaycgOiAnbm9uZSdcIiAob25DbGlja0V2ZW50KT1cImF2YXRhckNsaWNrZWQoJGV2ZW50KVwiPlxuICA8L3NhLWF2YXRhcj5cblxuICA8ZGl2IGNsYXNzPVwiZ3JpZC10ZXh0XCIgW3N0eWxlLmRpc3BsYXldPVwiKHBhcmFtcy52aWV3VGV4dCkgPyAnYmxvY2snIDogJ25vbmUnXCI+XG4gICAgPGRpdiBbc3R5bGUuZGlzcGxheV09XCIocGFyYW1zLnRleHQpID8gJ2Jsb2NrJyA6ICdub25lJ1wiIChjbGljayk9XCJsaW5rQ2xpY2tlZCgpXCIgY2xhc3M9XCJtYWluLXRleHRcIj5cbiAgICAgIEBpZihwYXJhbXMuY2VsbFR5cGUgPT09ICdtYXNrZWQnKSB7XG4gICAgICAgIHt7bWFza0VtYWlsKHBhcmFtcy50ZXh0KX19XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAge3twYXJhbXMudGV4dH19XG4gICAgICB9XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IFtzdHlsZS5kaXNwbGF5XT1cIihwYXJhbXMuc3ViVGV4dCkgPyAnYmxvY2snIDogJ25vbmUnXCIgY2xhc3M9XCJzdWItdGV4dFwiPnt7cGFyYW1zLnN1YlRleHR9fTwvZGl2PlxuICA8L2Rpdj5cblxuICA8aW1nIGNsYXNzPVwiaWNvbnNcIiBzcmM9e3twYXJhbXMuaWNvblBhdGh9fSBbc3R5bGUuZGlzcGxheV09XCIocGFyYW1zLnZpZXdUcmFpbGluZ0ljb24pID8gJ2Jsb2NrJyA6ICdub25lJ1wiIGFsdD1cIlwiPlxuICBAaWYocGFyYW1zPy50b29sdGlwKXtcbiAgICA8c3BhbiBjbGFzcz1cInRvb2x0aXAtY29udGFpbmVyXCI+XG4gICAgICAgIDxzYS1pY29uIFtpY29uXT1cInBhcmFtcz8udG9vbHRpcEljb24gfHwgJ2luZm9DaXJjbGVPdXRsaW5lZCdcIlxuICAgICAgICAgICAgY3VzdG9tQ2xhc3M9XCJpbmZvLWljb25cIiBbbWF0VG9vbHRpcF09XCJwYXJhbXM/LnRvb2x0aXBcIlxuICAgICAgICAgICAgbWF0VG9vbHRpcENsYXNzPVwiY3VzdG9tLXRvb2x0aXBcIiBjbGFzcz1cInRvb2x0aXAtaWNvblwiPjwvc2EtaWNvbj5cbiAgICA8L3NwYW4+XG4gICAgfVxuICA8ZGl2IGNsYXNzPVwiY2hpcHMtY29udGFpbmVyXCIgW3N0eWxlLmRpc3BsYXldPVwiKHBhcmFtcy52aWV3Q2hpcCkgPyAnZmxleCcgOiAnbm9uZSdcIj5cblxuICA8ZGl2ICpuZ0Zvcj1cImxldCBjb25maWcgb2YgZGlzcGxheWVkQ2hpcHNcIj5cbiAgICA8c2EtY2hpcCBbaWRdPVwiY29uZmlnLmlkXCIgW2ZpbGxpbmddPVwiY29uZmlnLmZpbGxpbmdcIiBpZD1cImNoaXBfe3tyb3dOdW19fV97e2NvbmZpZy5pZH19XCIgW2ljb25QYXRoXT1cImNvbmZpZy5pY29uUGF0aFwiXG4gICAgICBbaWNvblBvc2l0aW9uXT1cImNvbmZpZy5pY29uUG9zaXRpb25cIiBbbGFyZ2VTdGF0ZUljb25dPVwiY29uZmlnLmxhcmdlU3RhdGVJY29uXCIgW3N0YXRlXT1cImNvbmZpZy5zdGF0ZVwiXG4gICAgICBbdHlwZV09XCJjb25maWcudHlwZVwiIFt0ZXh0XT1cImNvbmZpZy50ZXh0XCIgW2NsYXNzLnNtYWxsXT1cImNvbmZpZy50eXBlID09PSAnc21hbGwnXCJcbiAgICAgIFtjbGFzcy5uZXV0cmFsXT1cImNvbmZpZy5zdGF0ZSA9PT0gJ25ldXRyYWwnXCIgKG9uQ2xpY2tFdmVudCk9XCJjaGlwQ2xpY2tlZCgkZXZlbnQpXCI+PC9zYS1jaGlwPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImNoaXAtdG9vbHRpcC1jb250YWluZXJcIiAqbmdJZj1cInJlbWFpbmluZ0NoaXBzQ291bnQgPiAwXCIgc3R5bGU9XCJwb3NpdGlvbjogcmVsYXRpdmU7XCJcbiAgICAobW91c2VlbnRlcik9XCJzaG93VG9vbHRpcChyZW1haW5pbmdDaGlwc0NvdW50LCAkZXZlbnQpXCIgKG1vdXNlbGVhdmUpPVwiaGlkZVRvb2x0aXAoKVwiPlxuICAgIDxzYS1jaGlwIFtpZF09XCInY2hpcF8nICsgcm93TnVtICsgJ19tb3JlJ1wiIFt0ZXh0XT1cIicrJyArIHJlbWFpbmluZ0NoaXBzQ291bnRcIiBbZmlsbGluZ109XCJkaXNwbGF5ZWRDaGlwc1swXT8uZmlsbGluZ1wiXG4gICAgICBbdHlwZV09XCJkaXNwbGF5ZWRDaGlwc1swXT8udHlwZVwiIFtzdGF0ZV09XCJkaXNwbGF5ZWRDaGlwc1swXT8uc3RhdGVcIiAob25DbGlja0V2ZW50KT1cImNoaXBDbGlja2VkKCRldmVudClcIj48L3NhLWNoaXA+XG48L2Rpdj5cblxuICA8c2EtYnV0dG9uIFtpY29uUG9zaXRpb25dPVwicGFyYW1zLmJ1dHRvbkNvbmZpZz8uaWNvblBvc2l0aW9uXCIgW0ltYWdlUGF0aF09XCJwYXJhbXMuYnV0dG9uQ29uZmlnPy5pbWFnZVBhdGhcIlxuICAgIFtpZF09XCJwYXJhbXMuYnV0dG9uQ29uZmlnPy5pZFwiIFtzaXplXT1cInBhcmFtcy5idXR0b25Db25maWc/LnNpemVcIiBbc3RhdGVdPVwicGFyYW1zLmJ1dHRvbkNvbmZpZz8uc3RhdGVcIlxuICAgIFt0eXBlXT1cInBhcmFtcy5idXR0b25Db25maWc/LnR5cGVcIiBbdGV4dF09XCJwYXJhbXMuYnV0dG9uQ29uZmlnPy50ZXh0XCIgW2hyZWZdPVwicGFyYW1zLmJ1dHRvbkNvbmZpZz8uaHJlZlwiXG4gICAgW2hyZWZUYXJnZXRdPVwicGFyYW1zLmJ1dHRvbkNvbmZpZz8uaHJlZlRhcmdldFwiIFtzdHlsZS5kaXNwbGF5XT1cIihwYXJhbXMudmlld0J1dHRvbikgPyAnYmxvY2snIDogJ25vbmUnXCJcbiAgICAob25DbGlja0V2ZW50KT1cImJ1dHRvbkNsaWNrZWQoJGV2ZW50KVwiPjwvc2EtYnV0dG9uPlxuXG48L2Rpdj5cblxuICA8ZGl2ICpuZ0lmPVwicGFyYW1zLmNlbGxUeXBlID09PSAnYWN0aW9ucydcIiBjbGFzcz1cImFjdGlvbnMtY29udGFpbmVyXCI+XG4gICAgQGlmKHBhcmFtcz8uZG93bmxvYWRBY3Rpb24pe1xuICAgICAgPHNhLWljb24gW2ljb25dPVwicGFyYW1zPy5kb3dubG9hZEFjdGlvbj8uaWNvblwiIFtzaXplXT1cInBhcmFtcz8uZG93bmxvYWRBY3Rpb24/Lmljb25TaXplXCIgIChjbGljayk9XCJoYW5kbGVBY3Rpb25DbGljayhwYXJhbXM/LmRvd25sb2FkQWN0aW9uLCAkZXZlbnQpXCIgLz5cbiAgICB9XG4gICAgPGltZyBbc3JjXT1cInBhcmFtcy5idXR0b25Db25maWc/LmltYWdlUGF0aFwiIGFsdD1cImFjdGlvbnNcIiBjbGFzcz1cImFjdGlvbnMtaWNvblwiIChjbGljayk9XCJ0b2dnbGVEcm9wZG93bihhY3Rpb25zQnV0dG9uKVwiXG4gICAgICAjYWN0aW9uc0J1dHRvbiAvPlxuICAgIDxuZy10ZW1wbGF0ZSAjZHJvcGRvd25UZW1wbGF0ZT5cbiAgICAgIDxkaXYgY2xhc3M9XCJhY3Rpb25zLWRyb3Bkb3duXCI+XG4gICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGFjdGlvbiBvZiBwYXJhbXMuYWN0aW9uc1wiIGNsYXNzPVwiYWN0aW9uLWl0ZW1cIiAoY2xpY2spPVwiaGFuZGxlQWN0aW9uQ2xpY2soYWN0aW9uLCAkZXZlbnQpXCI+XG4gICAgICAgICAgPGltZyAqbmdJZj1cImFjdGlvbi5pY29uXCIgW3NyY109XCJhY3Rpb24uaWNvblwiIGNsYXNzPVwiYWN0aW9uLWljb25cIiAvPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYWN0aW9uLWxhYmVsXCI+e3thY3Rpb24ubGFiZWx9fTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -0,0 +1,57 @@
1
+ import { Component } from '@angular/core';
2
+ import { IconComponent } from '../icon/icon.component';
3
+ import { MatTooltipModule } from '@angular/material/tooltip';
4
+ import { CommonModule } from '@angular/common';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/material/tooltip";
7
+ export class GridHeaderComponent {
8
+ constructor() {
9
+ this.displayName = '';
10
+ // Leading icon properties
11
+ this.leadingIcon = '';
12
+ this.leadingIconSize = '20';
13
+ this.showLeadingIcon = false;
14
+ // Trailing icon properties
15
+ this.trailingIcon = '';
16
+ this.trailingIconSize = '20';
17
+ this.showTrailingIcon = false;
18
+ // Tooltip properties
19
+ this.tooltip = '';
20
+ this.tooltipIcon = 'infoCircleOutlined';
21
+ this.showInfoIcon = false;
22
+ this.tooltipIconSize = '20';
23
+ }
24
+ agInit(params) {
25
+ this.params = params;
26
+ this.displayName = params.displayName || '';
27
+ // Leading icon configuration
28
+ this.leadingIcon = params.leadingIcon || '';
29
+ this.leadingIconSize = params.leadingIconSize || '20';
30
+ this.showLeadingIcon = params.showLeadingIcon !== undefined ? params.showLeadingIcon : false;
31
+ // Trailing icon configuration
32
+ this.trailingIcon = params.trailingIcon || '';
33
+ this.trailingIconSize = params.trailingIconSize || '20';
34
+ this.showTrailingIcon = params.showTrailingIcon !== undefined ? params.showTrailingIcon : false;
35
+ // Tooltip configuration
36
+ this.tooltip = params.tooltip || '';
37
+ this.tooltipIcon = params.tooltipIcon || 'infoCircleOutlined';
38
+ this.showInfoIcon = params.showInfoIcon !== undefined ? params.showInfoIcon : false;
39
+ this.tooltipIconSize = params.tooltipIconSize || '20';
40
+ }
41
+ refresh(params) {
42
+ this.agInit(params);
43
+ return true;
44
+ }
45
+ onSortRequested(event) {
46
+ if (this.params.enableSorting) {
47
+ this.params.progressSort(event.shiftKey);
48
+ }
49
+ }
50
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: GridHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
51
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.4", type: GridHeaderComponent, isStandalone: true, selector: "sa-grid-header", ngImport: i0, template: "<div class=\"grid-header-container\" (click)=\"onSortRequested($event)\">\n <!-- Leading Icon -->\n @if(showLeadingIcon && leadingIcon) {\n <span class=\"leading-icon-container\">\n <sa-icon \n [icon]=\"leadingIcon\" \n [size]=\"leadingIconSize\"\n class=\"leading-icon\">\n </sa-icon>\n </span>\n }\n \n <!-- Header Text -->\n <span class=\"header-text\">{{ displayName }}</span>\n \n <!-- Trailing Icon (without tooltip) -->\n @if(showTrailingIcon && trailingIcon && !showInfoIcon) {\n <span class=\"trailing-icon-container\">\n <sa-icon \n [icon]=\"trailingIcon\" \n [size]=\"trailingIconSize\"\n class=\"trailing-icon\">\n </sa-icon>\n </span>\n }\n \n <!-- Info Icon with Tooltip -->\n @if(showInfoIcon && tooltip) {\n <span class=\"info-icon-container\">\n <sa-icon \n [icon]=\"tooltipIcon\" \n [size]=\"tooltipIconSize\"\n [matTooltip]=\"tooltip\"\n matTooltipClass=\"custom-tooltip\"\n class=\"info-icon\">\n </sa-icon>\n </span>\n }\n</div>\n", styles: [".grid-header-container{display:flex;align-items:center;gap:.5rem;cursor:pointer;padding:.5rem 0;-webkit-user-select:none;user-select:none}.header-text{color:var(--text-high-emphasis, #1C1B20);font-family:var(--font-family, Roboto);font-size:var(--small-14px, 14px);font-style:normal;font-weight:500;line-height:var(--medium-20px, 20px);letter-spacing:.1px}.leading-icon-container{display:flex;align-items:center;justify-content:center}.leading-icon{color:var(--text-medium-emphasis, #6D6979);transition:color .2s ease}.grid-header-container:hover .leading-icon{color:var(--primary-500, #7C3AED)}.trailing-icon-container{display:flex;align-items:center;justify-content:center}.trailing-icon{color:var(--text-medium-emphasis, #6D6979);transition:color .2s ease}.grid-header-container:hover .trailing-icon{color:var(--primary-500, #7C3AED)}.info-icon-container{display:flex;align-items:center;justify-content:center}.info-icon{color:var(--text-medium-emphasis, #6D6979);cursor:help;transition:color .2s ease}.info-icon:hover{color:var(--primary-500, #7C3AED)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: IconComponent, selector: "sa-icon", inputs: ["img", "imgWidth", "imgHeight", "icon", "size", "color", "iconPath", "iconUrl", "customClass", "href", "hrefTarget", "iconPosition"], outputs: ["onClickEvent"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i1.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }] }); }
52
+ }
53
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: GridHeaderComponent, decorators: [{
54
+ type: Component,
55
+ args: [{ selector: 'sa-grid-header', standalone: true, imports: [CommonModule, IconComponent, MatTooltipModule], template: "<div class=\"grid-header-container\" (click)=\"onSortRequested($event)\">\n <!-- Leading Icon -->\n @if(showLeadingIcon && leadingIcon) {\n <span class=\"leading-icon-container\">\n <sa-icon \n [icon]=\"leadingIcon\" \n [size]=\"leadingIconSize\"\n class=\"leading-icon\">\n </sa-icon>\n </span>\n }\n \n <!-- Header Text -->\n <span class=\"header-text\">{{ displayName }}</span>\n \n <!-- Trailing Icon (without tooltip) -->\n @if(showTrailingIcon && trailingIcon && !showInfoIcon) {\n <span class=\"trailing-icon-container\">\n <sa-icon \n [icon]=\"trailingIcon\" \n [size]=\"trailingIconSize\"\n class=\"trailing-icon\">\n </sa-icon>\n </span>\n }\n \n <!-- Info Icon with Tooltip -->\n @if(showInfoIcon && tooltip) {\n <span class=\"info-icon-container\">\n <sa-icon \n [icon]=\"tooltipIcon\" \n [size]=\"tooltipIconSize\"\n [matTooltip]=\"tooltip\"\n matTooltipClass=\"custom-tooltip\"\n class=\"info-icon\">\n </sa-icon>\n </span>\n }\n</div>\n", styles: [".grid-header-container{display:flex;align-items:center;gap:.5rem;cursor:pointer;padding:.5rem 0;-webkit-user-select:none;user-select:none}.header-text{color:var(--text-high-emphasis, #1C1B20);font-family:var(--font-family, Roboto);font-size:var(--small-14px, 14px);font-style:normal;font-weight:500;line-height:var(--medium-20px, 20px);letter-spacing:.1px}.leading-icon-container{display:flex;align-items:center;justify-content:center}.leading-icon{color:var(--text-medium-emphasis, #6D6979);transition:color .2s ease}.grid-header-container:hover .leading-icon{color:var(--primary-500, #7C3AED)}.trailing-icon-container{display:flex;align-items:center;justify-content:center}.trailing-icon{color:var(--text-medium-emphasis, #6D6979);transition:color .2s ease}.grid-header-container:hover .trailing-icon{color:var(--primary-500, #7C3AED)}.info-icon-container{display:flex;align-items:center;justify-content:center}.info-icon{color:var(--text-medium-emphasis, #6D6979);cursor:help;transition:color .2s ease}.info-icon:hover{color:var(--primary-500, #7C3AED)}\n"] }]
56
+ }] });
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1oZWFkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50LWxpYnJhcnkvc3JjL2xpYi9ncmlkLWhlYWRlci9ncmlkLWhlYWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnQtbGlicmFyeS9zcmMvbGliL2dyaWQtaGVhZGVyL2dyaWQtaGVhZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHMUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBMkIvQyxNQUFNLE9BQU8sbUJBQW1CO0lBUGhDO1FBU0UsZ0JBQVcsR0FBVyxFQUFFLENBQUM7UUFFekIsMEJBQTBCO1FBQzFCLGdCQUFXLEdBQVcsRUFBRSxDQUFDO1FBQ3pCLG9CQUFlLEdBQVcsSUFBSSxDQUFDO1FBQy9CLG9CQUFlLEdBQVksS0FBSyxDQUFDO1FBRWpDLDJCQUEyQjtRQUMzQixpQkFBWSxHQUFXLEVBQUUsQ0FBQztRQUMxQixxQkFBZ0IsR0FBVyxJQUFJLENBQUM7UUFDaEMscUJBQWdCLEdBQVksS0FBSyxDQUFDO1FBRWxDLHFCQUFxQjtRQUNyQixZQUFPLEdBQVcsRUFBRSxDQUFDO1FBQ3JCLGdCQUFXLEdBQVcsb0JBQW9CLENBQUM7UUFDM0MsaUJBQVksR0FBWSxLQUFLLENBQUM7UUFDOUIsb0JBQWUsR0FBVyxJQUFJLENBQUM7S0FpQ2hDO0lBL0JDLE1BQU0sQ0FBQyxNQUEwQjtRQUMvQixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQyxXQUFXLElBQUksRUFBRSxDQUFDO1FBRTVDLDZCQUE2QjtRQUM3QixJQUFJLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQyxXQUFXLElBQUksRUFBRSxDQUFDO1FBQzVDLElBQUksQ0FBQyxlQUFlLEdBQUcsTUFBTSxDQUFDLGVBQWUsSUFBSSxJQUFJLENBQUM7UUFDdEQsSUFBSSxDQUFDLGVBQWUsR0FBRyxNQUFNLENBQUMsZUFBZSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBRTdGLDhCQUE4QjtRQUM5QixJQUFJLENBQUMsWUFBWSxHQUFHLE1BQU0sQ0FBQyxZQUFZLElBQUksRUFBRSxDQUFDO1FBQzlDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLElBQUksSUFBSSxDQUFDO1FBQ3hELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUVoRyx3QkFBd0I7UUFDeEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQztRQUNwQyxJQUFJLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQyxXQUFXLElBQUksb0JBQW9CLENBQUM7UUFDOUQsSUFBSSxDQUFDLFlBQVksR0FBRyxNQUFNLENBQUMsWUFBWSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQ3BGLElBQUksQ0FBQyxlQUFlLEdBQUcsTUFBTSxDQUFDLGVBQWUsSUFBSSxJQUFJLENBQUM7SUFDeEQsQ0FBQztJQUVELE9BQU8sQ0FBQyxNQUEwQjtRQUNoQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3BCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELGVBQWUsQ0FBQyxLQUFVO1FBQ3hCLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUM5QixJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDM0MsQ0FBQztJQUNILENBQUM7OEdBbERVLG1CQUFtQjtrR0FBbkIsbUJBQW1CLDBFQ2hDaEMsb2tDQXVDQSwybENEWFksWUFBWSwrQkFBRSxhQUFhLDZOQUFFLGdCQUFnQjs7MkZBSTVDLG1CQUFtQjtrQkFQL0IsU0FBUzsrQkFDRSxnQkFBZ0IsY0FDZCxJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJSGVhZGVyQW5ndWxhckNvbXAgfSBmcm9tICdhZy1ncmlkLWFuZ3VsYXInO1xuaW1wb3J0IHsgSUhlYWRlclBhcmFtcyB9IGZyb20gJ2FnLWdyaWQtY29tbXVuaXR5JztcbmltcG9ydCB7IEljb25Db21wb25lbnQgfSBmcm9tICcuLi9pY29uL2ljb24uY29tcG9uZW50JztcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3VzdG9tSGVhZGVyUGFyYW1zIGV4dGVuZHMgSUhlYWRlclBhcmFtcyB7XG4gIC8vIExlYWRpbmcgaWNvbiBjb25maWd1cmF0aW9uXG4gIGxlYWRpbmdJY29uPzogc3RyaW5nO1xuICBsZWFkaW5nSWNvblNpemU/OiBzdHJpbmc7XG4gIHNob3dMZWFkaW5nSWNvbj86IGJvb2xlYW47XG4gIFxuICAvLyBUcmFpbGluZyBpY29uL2luZm8gaWNvbiBjb25maWd1cmF0aW9uXG4gIHRyYWlsaW5nSWNvbj86IHN0cmluZztcbiAgdHJhaWxpbmdJY29uU2l6ZT86IHN0cmluZztcbiAgc2hvd1RyYWlsaW5nSWNvbj86IGJvb2xlYW47XG4gIFxuICAvLyBUb29sdGlwIGNvbmZpZ3VyYXRpb25cbiAgdG9vbHRpcD86IHN0cmluZztcbiAgdG9vbHRpcEljb24/OiBzdHJpbmc7XG4gIHNob3dJbmZvSWNvbj86IGJvb2xlYW47XG4gIHRvb2x0aXBJY29uU2l6ZT86IHN0cmluZztcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2EtZ3JpZC1oZWFkZXInLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBJY29uQ29tcG9uZW50LCBNYXRUb29sdGlwTW9kdWxlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2dyaWQtaGVhZGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2dyaWQtaGVhZGVyLmNvbXBvbmVudC5jc3MnXG59KVxuZXhwb3J0IGNsYXNzIEdyaWRIZWFkZXJDb21wb25lbnQgaW1wbGVtZW50cyBJSGVhZGVyQW5ndWxhckNvbXAge1xuICBwYXJhbXMhOiBDdXN0b21IZWFkZXJQYXJhbXM7XG4gIGRpc3BsYXlOYW1lOiBzdHJpbmcgPSAnJztcbiAgXG4gIC8vIExlYWRpbmcgaWNvbiBwcm9wZXJ0aWVzXG4gIGxlYWRpbmdJY29uOiBzdHJpbmcgPSAnJztcbiAgbGVhZGluZ0ljb25TaXplOiBzdHJpbmcgPSAnMjAnO1xuICBzaG93TGVhZGluZ0ljb246IGJvb2xlYW4gPSBmYWxzZTtcbiAgXG4gIC8vIFRyYWlsaW5nIGljb24gcHJvcGVydGllc1xuICB0cmFpbGluZ0ljb246IHN0cmluZyA9ICcnO1xuICB0cmFpbGluZ0ljb25TaXplOiBzdHJpbmcgPSAnMjAnO1xuICBzaG93VHJhaWxpbmdJY29uOiBib29sZWFuID0gZmFsc2U7XG4gIFxuICAvLyBUb29sdGlwIHByb3BlcnRpZXNcbiAgdG9vbHRpcDogc3RyaW5nID0gJyc7XG4gIHRvb2x0aXBJY29uOiBzdHJpbmcgPSAnaW5mb0NpcmNsZU91dGxpbmVkJztcbiAgc2hvd0luZm9JY29uOiBib29sZWFuID0gZmFsc2U7XG4gIHRvb2x0aXBJY29uU2l6ZTogc3RyaW5nID0gJzIwJztcblxuICBhZ0luaXQocGFyYW1zOiBDdXN0b21IZWFkZXJQYXJhbXMpOiB2b2lkIHtcbiAgICB0aGlzLnBhcmFtcyA9IHBhcmFtcztcbiAgICB0aGlzLmRpc3BsYXlOYW1lID0gcGFyYW1zLmRpc3BsYXlOYW1lIHx8ICcnO1xuICAgIFxuICAgIC8vIExlYWRpbmcgaWNvbiBjb25maWd1cmF0aW9uXG4gICAgdGhpcy5sZWFkaW5nSWNvbiA9IHBhcmFtcy5sZWFkaW5nSWNvbiB8fCAnJztcbiAgICB0aGlzLmxlYWRpbmdJY29uU2l6ZSA9IHBhcmFtcy5sZWFkaW5nSWNvblNpemUgfHwgJzIwJztcbiAgICB0aGlzLnNob3dMZWFkaW5nSWNvbiA9IHBhcmFtcy5zaG93TGVhZGluZ0ljb24gIT09IHVuZGVmaW5lZCA/IHBhcmFtcy5zaG93TGVhZGluZ0ljb24gOiBmYWxzZTtcbiAgICBcbiAgICAvLyBUcmFpbGluZyBpY29uIGNvbmZpZ3VyYXRpb25cbiAgICB0aGlzLnRyYWlsaW5nSWNvbiA9IHBhcmFtcy50cmFpbGluZ0ljb24gfHwgJyc7XG4gICAgdGhpcy50cmFpbGluZ0ljb25TaXplID0gcGFyYW1zLnRyYWlsaW5nSWNvblNpemUgfHwgJzIwJztcbiAgICB0aGlzLnNob3dUcmFpbGluZ0ljb24gPSBwYXJhbXMuc2hvd1RyYWlsaW5nSWNvbiAhPT0gdW5kZWZpbmVkID8gcGFyYW1zLnNob3dUcmFpbGluZ0ljb24gOiBmYWxzZTtcbiAgICBcbiAgICAvLyBUb29sdGlwIGNvbmZpZ3VyYXRpb25cbiAgICB0aGlzLnRvb2x0aXAgPSBwYXJhbXMudG9vbHRpcCB8fCAnJztcbiAgICB0aGlzLnRvb2x0aXBJY29uID0gcGFyYW1zLnRvb2x0aXBJY29uIHx8ICdpbmZvQ2lyY2xlT3V0bGluZWQnO1xuICAgIHRoaXMuc2hvd0luZm9JY29uID0gcGFyYW1zLnNob3dJbmZvSWNvbiAhPT0gdW5kZWZpbmVkID8gcGFyYW1zLnNob3dJbmZvSWNvbiA6IGZhbHNlO1xuICAgIHRoaXMudG9vbHRpcEljb25TaXplID0gcGFyYW1zLnRvb2x0aXBJY29uU2l6ZSB8fCAnMjAnO1xuICB9XG5cbiAgcmVmcmVzaChwYXJhbXM6IEN1c3RvbUhlYWRlclBhcmFtcyk6IGJvb2xlYW4ge1xuICAgIHRoaXMuYWdJbml0KHBhcmFtcyk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBvblNvcnRSZXF1ZXN0ZWQoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIGlmICh0aGlzLnBhcmFtcy5lbmFibGVTb3J0aW5nKSB7XG4gICAgICB0aGlzLnBhcmFtcy5wcm9ncmVzc1NvcnQoZXZlbnQuc2hpZnRLZXkpO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImdyaWQtaGVhZGVyLWNvbnRhaW5lclwiIChjbGljayk9XCJvblNvcnRSZXF1ZXN0ZWQoJGV2ZW50KVwiPlxuICA8IS0tIExlYWRpbmcgSWNvbiAtLT5cbiAgQGlmKHNob3dMZWFkaW5nSWNvbiAmJiBsZWFkaW5nSWNvbikge1xuICAgIDxzcGFuIGNsYXNzPVwibGVhZGluZy1pY29uLWNvbnRhaW5lclwiPlxuICAgICAgPHNhLWljb24gXG4gICAgICAgIFtpY29uXT1cImxlYWRpbmdJY29uXCIgXG4gICAgICAgIFtzaXplXT1cImxlYWRpbmdJY29uU2l6ZVwiXG4gICAgICAgIGNsYXNzPVwibGVhZGluZy1pY29uXCI+XG4gICAgICA8L3NhLWljb24+XG4gICAgPC9zcGFuPlxuICB9XG4gIFxuICA8IS0tIEhlYWRlciBUZXh0IC0tPlxuICA8c3BhbiBjbGFzcz1cImhlYWRlci10ZXh0XCI+e3sgZGlzcGxheU5hbWUgfX08L3NwYW4+XG4gIFxuICA8IS0tIFRyYWlsaW5nIEljb24gKHdpdGhvdXQgdG9vbHRpcCkgLS0+XG4gIEBpZihzaG93VHJhaWxpbmdJY29uICYmIHRyYWlsaW5nSWNvbiAmJiAhc2hvd0luZm9JY29uKSB7XG4gICAgPHNwYW4gY2xhc3M9XCJ0cmFpbGluZy1pY29uLWNvbnRhaW5lclwiPlxuICAgICAgPHNhLWljb24gXG4gICAgICAgIFtpY29uXT1cInRyYWlsaW5nSWNvblwiIFxuICAgICAgICBbc2l6ZV09XCJ0cmFpbGluZ0ljb25TaXplXCJcbiAgICAgICAgY2xhc3M9XCJ0cmFpbGluZy1pY29uXCI+XG4gICAgICA8L3NhLWljb24+XG4gICAgPC9zcGFuPlxuICB9XG4gIFxuICA8IS0tIEluZm8gSWNvbiB3aXRoIFRvb2x0aXAgLS0+XG4gIEBpZihzaG93SW5mb0ljb24gJiYgdG9vbHRpcCkge1xuICAgIDxzcGFuIGNsYXNzPVwiaW5mby1pY29uLWNvbnRhaW5lclwiPlxuICAgICAgPHNhLWljb24gXG4gICAgICAgIFtpY29uXT1cInRvb2x0aXBJY29uXCIgXG4gICAgICAgIFtzaXplXT1cInRvb2x0aXBJY29uU2l6ZVwiXG4gICAgICAgIFttYXRUb29sdGlwXT1cInRvb2x0aXBcIlxuICAgICAgICBtYXRUb29sdGlwQ2xhc3M9XCJjdXN0b20tdG9vbHRpcFwiXG4gICAgICAgIGNsYXNzPVwiaW5mby1pY29uXCI+XG4gICAgICA8L3NhLWljb24+XG4gICAgPC9zcGFuPlxuICB9XG48L2Rpdj5cbiJdfQ==
@@ -33,6 +33,7 @@ export * from './lib/filter/filter.component';
33
33
  export * from './lib/form-input/form-input.component';
34
34
  export * from './lib/form-select/form-select.component';
35
35
  export * from './lib/grid-cell/grid-cell.component';
36
+ export * from './lib/grid-header/grid-header.component';
36
37
  export * from './lib/header/header.component';
37
38
  export * from './lib/icon/icon.component';
38
39
  export * from './lib/layout-section/layout-section.component';
@@ -88,4 +89,4 @@ export * from './interfaces/status-dot.interface';
88
89
  export * from './interfaces/tab-interface';
89
90
  export * from './interfaces/toast-interface';
90
91
  export * from './interfaces/typography-animation-interface';
91
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudC1saWJyYXJ5L3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsd0JBQXdCO0FBR3hCLGFBQWE7QUFDYixjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLGlEQUFpRCxDQUFDO0FBQ2hFLGNBQWMsMENBQTBDLENBQUM7QUFDekQsY0FBYyw0REFBNEQsQ0FBQztBQUMzRSxjQUFjLDhEQUE4RCxDQUFDO0FBQzdFLGNBQWMsMENBQTBDLENBQUM7QUFDekQsY0FBYyw0REFBNEQsQ0FBQztBQUMzRSxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsa0RBQWtELENBQUM7QUFDakUsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMsb0RBQW9ELENBQUM7QUFDbkUsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLCtDQUErQyxDQUFDO0FBQzlELGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsbURBQW1ELENBQUM7QUFDbEUsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyw4REFBOEQsQ0FBQztBQUM3RSxjQUFjLDhDQUE4QyxDQUFDO0FBQzdELGNBQWMsNkNBQTZDLENBQUM7QUFDNUQsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYywrQ0FBK0MsQ0FBQztBQUM5RCxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsK0NBQStDLENBQUM7QUFDOUQsY0FBYyxxREFBcUQsQ0FBQztBQUNwRSxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLGtEQUFrRCxDQUFDO0FBQ2pFLGNBQWMsNkNBQTZDLENBQUM7QUFDNUQsY0FBYywyREFBMkQsQ0FBQztBQUMxRSxjQUFjLG9FQUFvRSxDQUFDO0FBQ25GLGNBQWMsK0RBQStELENBQUM7QUFDOUUsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLGlEQUFpRCxDQUFDO0FBQ2hFLGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMsMENBQTBDLENBQUM7QUFDekQsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYywyREFBMkQsQ0FBQztBQUUxRSxXQUFXO0FBQ1gsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsMkNBQTJDLENBQUM7QUFFMUQsYUFBYTtBQUNiLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyw2Q0FBNkMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgY29tcG9uZW50LWxpYnJhcnlcbiAqL1xuXG4vLyAuLi4gZXhpc3RpbmcgY29kZSAuLi5cblxuXG4vLyBDb21wb25lbnRzXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hY2NvcmRpb24vYWNjb3JkaW9uLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hdmF0YXIvYXZhdGFyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9idXR0b24vYnV0dG9uLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jYWxlbmRhci1oZWFkZXIvY2FsZW5kYXItaGVhZGVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jYXJkL2NhcmQtYm9keS9jYXJkLWJvZHkuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NhcmQvY2FyZC1jdXN0b20taGVhZGVyL2NhcmQtY3VzdG9tLWhlYWRlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY2FyZC9jYXJkLWZvb3Rlci1hY3Rpb25zL2NhcmQtZm9vdGVyLWFjdGlvbnMuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NhcmQvY2FyZC1pY29uL2NhcmQtaWNvbi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY2FyZC9jYXJkLXRpdGxlLWFjdGlvbnMvY2FyZC10aXRsZS1hY3Rpb25zLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jYXJkL2NhcmQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NhcmQvY2hlY2tib3gtY2FyZC9jaGVja2JveC1jYXJkLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jYXJkL2d1aWRlLWNhcmQvZ3VpZGUtY2FyZC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY2FyZC9tZW51LWNhcmQvbWVudS1jYXJkLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jYXJkL3RodW1ibmFpbC1jYXJkL3RodW1ibmFpbC1jYXJkLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jYXJkLWNhcm91c2VsL2NhcmQtY2Fyb3VzZWwuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NhdGVnb3JpZXMtbmF2L2NhdGVnb3JpZXMtbmF2LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jaGVja2JveC9jaGVja2JveC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY2hpcHMvY2hpcHMuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudC1saWJyYXJ5LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kYXNoYm9hcmQtbG9hZGVyL2Rhc2hib2FyZC1sb2FkZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RhdGEtZ3JpZC9kYXRhLWdyaWQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RhdGVwaWNrZXIvZGF0ZXBpY2tlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGlhbG9nL2RpYWxvZy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZHJvcGRvd24vY2F0ZWdvcnktZHJvcGRvd24vY2F0ZWdvcnktZHJvcGRvd24uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Ryb3Bkb3duL25nLXNlbGVjdC9uZy1zZWxlY3QuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Ryb3Bkb3duLW1lbnUvZHJvcGRvd24tbWVudS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZmlsdGVyL2ZpbHRlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZm9ybS1pbnB1dC9mb3JtLWlucHV0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9mb3JtLXNlbGVjdC9mb3JtLXNlbGVjdC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZ3JpZC1jZWxsL2dyaWQtY2VsbC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvaGVhZGVyL2hlYWRlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvaWNvbi9pY29uLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9sYXlvdXQtc2VjdGlvbi9sYXlvdXQtc2VjdGlvbi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbGVmdC1uYXYvbGVmdC1uYXYuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2xpc3QvbGlzdC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbWVudS9tZW51LWxpc3QvbWVudS1pdGVtLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tZW51L21lbnUuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21lc3NhZ2UtYmFubmVyL21lc3NhZ2UtYmFubmVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tZXNzYWdlLWJhbm5lci12Mi9tZXNzYWdlLWJhbm5lci12Mi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbWluaS1jYXJkL21pbmktY2FyZC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcGFnZS1sYXlvdXQvcGFnZS1sYXlvdXQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3Byb2dyZXNzLWJhci9wcm9ncmVzcy1iYXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3F1ZXJ5LWJ1aWxkZXIvcXVlcnktYnVpbGRlci1kZW1vLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9xdWVyeS1idWlsZGVyL3F1ZXJ5LWJ1aWxkZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3F1ZXJ5LWJ1aWxkZXItZm9ybWx5L3F1ZXJ5LWJ1aWxkZXItZm9ybWx5LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9xdWVyeS1idWlsZGVyLXRleHRhcmVhL3F1ZXJ5LWJ1aWxkZXItdGV4dGFyZWEtZGVtby5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcXVlcnktYnVpbGRlci10ZXh0YXJlYS9xdWVyeS1idWlsZGVyLXRleHRhcmVhLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9yYWRpby1idXR0b24vcmFkaW8tYnV0dG9uLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zY3JvbGxpbmctY2FyZHMvc2Nyb2xsaW5nLWNhcmRzLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9za2VsZXRvbi9za2VsZXRvbi1iYXNlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9za2VsZXRvbi9za2VsZXRvbi1jb250YWluZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NrZWxldG9uL3NrZWxldG9uLWxvYWRlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2tlbGV0b24vc2tlbGV0b24tc2hhcGVzLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zcGlubmVyL3NwaW5uZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3N0YXR1cy1kb3Qvc3RhdHVzLWRvdC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc3RlcHBlci9zdGVwcGVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWJzL3RhYnMuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RvYXN0L3RvYXN0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi90b29sLXRpcC90b29sLXRpcC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdHlwb2dyYXBoeS1hbmltYXRpb24vdHlwb2dyYXBoeS1hbmltYXRpb24uY29tcG9uZW50JztcblxuLy8gU2VydmljZXNcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudC1saWJyYXJ5LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvaWNvbi9pY29uLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcXVlcnktYnVpbGRlci9xdWVyeS1idWlsZGVyLnNlcnZpY2UnO1xuXG4vLyBJbnRlcmZhY2VzXG5leHBvcnQgKiBmcm9tICcuL2ludGVyZmFjZXMvYXZhdGFyLWludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2ludGVyZmFjZXMvYnV0dG9uLWludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2ludGVyZmFjZXMvY2FyZC1jYXJvdXNlbC1pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9pbnRlcmZhY2VzL2NoaXAtaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vaW50ZXJmYWNlcy9mb3JtLWxheW91dC5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9pbnRlcmZhY2VzL2dyaWQtaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vaW50ZXJmYWNlcy9ndWlkZS1jYXJkLWludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2ludGVyZmFjZXMvaGVhZGVyLWludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2ludGVyZmFjZXMvaWNvbi1pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9pbnRlcmZhY2VzL2xheW91dC1zZWN0aW9uLWludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2ludGVyZmFjZXMvbGVmdC1uYXYtaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vaW50ZXJmYWNlcy9tZW51LmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2ludGVyZmFjZXMvbWVzc2FnZS1iYW5uZXInO1xuZXhwb3J0ICogZnJvbSAnLi9pbnRlcmZhY2VzL29wdGlvbi1pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9pbnRlcmZhY2VzL3Njcm9sbGluZy1jYXJkLWludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2ludGVyZmFjZXMvc2VsZWN0LWludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2ludGVyZmFjZXMvc3RhdHVzLWRvdC5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9pbnRlcmZhY2VzL3RhYi1pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9pbnRlcmZhY2VzL3RvYXN0LWludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2ludGVyZmFjZXMvdHlwb2dyYXBoeS1hbmltYXRpb24taW50ZXJmYWNlJztcbiJdfQ==
92
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudC1saWJyYXJ5L3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsd0JBQXdCO0FBR3hCLGFBQWE7QUFDYixjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLGlEQUFpRCxDQUFDO0FBQ2hFLGNBQWMsMENBQTBDLENBQUM7QUFDekQsY0FBYyw0REFBNEQsQ0FBQztBQUMzRSxjQUFjLDhEQUE4RCxDQUFDO0FBQzdFLGNBQWMsMENBQTBDLENBQUM7QUFDekQsY0FBYyw0REFBNEQsQ0FBQztBQUMzRSxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsa0RBQWtELENBQUM7QUFDakUsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMsb0RBQW9ELENBQUM7QUFDbkUsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLCtDQUErQyxDQUFDO0FBQzlELGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsbURBQW1ELENBQUM7QUFDbEUsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyw4REFBOEQsQ0FBQztBQUM3RSxjQUFjLDhDQUE4QyxDQUFDO0FBQzdELGNBQWMsNkNBQTZDLENBQUM7QUFDNUQsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLCtDQUErQyxDQUFDO0FBQzlELGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYywrQ0FBK0MsQ0FBQztBQUM5RCxjQUFjLHFEQUFxRCxDQUFDO0FBQ3BFLGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLDJDQUEyQyxDQUFDO0FBQzFELGNBQWMsa0RBQWtELENBQUM7QUFDakUsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLDJEQUEyRCxDQUFDO0FBQzFFLGNBQWMsb0VBQW9FLENBQUM7QUFDbkYsY0FBYywrREFBK0QsQ0FBQztBQUM5RSxjQUFjLDJDQUEyQyxDQUFDO0FBQzFELGNBQWMsaURBQWlELENBQUM7QUFDaEUsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLDZDQUE2QyxDQUFDO0FBQzVELGNBQWMsMENBQTBDLENBQUM7QUFDekQsY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLDJEQUEyRCxDQUFDO0FBRTFFLFdBQVc7QUFDWCxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYywyQ0FBMkMsQ0FBQztBQUUxRCxhQUFhO0FBQ2IsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLDZDQUE2QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBjb21wb25lbnQtbGlicmFyeVxuICovXG5cbi8vIC4uLiBleGlzdGluZyBjb2RlIC4uLlxuXG5cbi8vIENvbXBvbmVudHNcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FjY29yZGlvbi9hY2NvcmRpb24uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2F2YXRhci9hdmF0YXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NhbGVuZGFyLWhlYWRlci9jYWxlbmRhci1oZWFkZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NhcmQvY2FyZC1ib2R5L2NhcmQtYm9keS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY2FyZC9jYXJkLWN1c3RvbS1oZWFkZXIvY2FyZC1jdXN0b20taGVhZGVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jYXJkL2NhcmQtZm9vdGVyLWFjdGlvbnMvY2FyZC1mb290ZXItYWN0aW9ucy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY2FyZC9jYXJkLWljb24vY2FyZC1pY29uLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jYXJkL2NhcmQtdGl0bGUtYWN0aW9ucy9jYXJkLXRpdGxlLWFjdGlvbnMuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NhcmQvY2FyZC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY2FyZC9jaGVja2JveC1jYXJkL2NoZWNrYm94LWNhcmQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NhcmQvZ3VpZGUtY2FyZC9ndWlkZS1jYXJkLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jYXJkL21lbnUtY2FyZC9tZW51LWNhcmQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NhcmQvdGh1bWJuYWlsLWNhcmQvdGh1bWJuYWlsLWNhcmQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NhcmQtY2Fyb3VzZWwvY2FyZC1jYXJvdXNlbC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY2F0ZWdvcmllcy1uYXYvY2F0ZWdvcmllcy1uYXYuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NoZWNrYm94L2NoZWNrYm94LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jaGlwcy9jaGlwcy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50LWxpYnJhcnkuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Rhc2hib2FyZC1sb2FkZXIvZGFzaGJvYXJkLWxvYWRlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGF0YS1ncmlkL2RhdGEtZ3JpZC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGF0ZXBpY2tlci9kYXRlcGlja2VyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kaWFsb2cvZGlhbG9nLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kcm9wZG93bi9jYXRlZ29yeS1kcm9wZG93bi9jYXRlZ29yeS1kcm9wZG93bi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZHJvcGRvd24vbmctc2VsZWN0L25nLXNlbGVjdC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZHJvcGRvd24tbWVudS9kcm9wZG93bi1tZW51LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9maWx0ZXIvZmlsdGVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9mb3JtLWlucHV0L2Zvcm0taW5wdXQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Zvcm0tc2VsZWN0L2Zvcm0tc2VsZWN0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9ncmlkLWNlbGwvZ3JpZC1jZWxsLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9ncmlkLWhlYWRlci9ncmlkLWhlYWRlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvaGVhZGVyL2hlYWRlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvaWNvbi9pY29uLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9sYXlvdXQtc2VjdGlvbi9sYXlvdXQtc2VjdGlvbi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbGVmdC1uYXYvbGVmdC1uYXYuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2xpc3QvbGlzdC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbWVudS9tZW51LWxpc3QvbWVudS1pdGVtLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tZW51L21lbnUuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21lc3NhZ2UtYmFubmVyL21lc3NhZ2UtYmFubmVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tZXNzYWdlLWJhbm5lci12Mi9tZXNzYWdlLWJhbm5lci12Mi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbWluaS1jYXJkL21pbmktY2FyZC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcGFnZS1sYXlvdXQvcGFnZS1sYXlvdXQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3Byb2dyZXNzLWJhci9wcm9ncmVzcy1iYXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3F1ZXJ5LWJ1aWxkZXIvcXVlcnktYnVpbGRlci1kZW1vLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9xdWVyeS1idWlsZGVyL3F1ZXJ5LWJ1aWxkZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3F1ZXJ5LWJ1aWxkZXItZm9ybWx5L3F1ZXJ5LWJ1aWxkZXItZm9ybWx5LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9xdWVyeS1idWlsZGVyLXRleHRhcmVhL3F1ZXJ5LWJ1aWxkZXItdGV4dGFyZWEtZGVtby5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcXVlcnktYnVpbGRlci10ZXh0YXJlYS9xdWVyeS1idWlsZGVyLXRleHRhcmVhLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9yYWRpby1idXR0b24vcmFkaW8tYnV0dG9uLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zY3JvbGxpbmctY2FyZHMvc2Nyb2xsaW5nLWNhcmRzLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9za2VsZXRvbi9za2VsZXRvbi1iYXNlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9za2VsZXRvbi9za2VsZXRvbi1jb250YWluZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NrZWxldG9uL3NrZWxldG9uLWxvYWRlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2tlbGV0b24vc2tlbGV0b24tc2hhcGVzLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zcGlubmVyL3NwaW5uZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3N0YXR1cy1kb3Qvc3RhdHVzLWRvdC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc3RlcHBlci9zdGVwcGVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWJzL3RhYnMuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RvYXN0L3RvYXN0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi90b29sLXRpcC90b29sLXRpcC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdHlwb2dyYXBoeS1hbmltYXRpb24vdHlwb2dyYXBoeS1hbmltYXRpb24uY29tcG9uZW50JztcblxuLy8gU2VydmljZXNcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudC1saWJyYXJ5LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvaWNvbi9pY29uLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcXVlcnktYnVpbGRlci9xdWVyeS1idWlsZGVyLnNlcnZpY2UnO1xuXG4vLyBJbnRlcmZhY2VzXG5leHBvcnQgKiBmcm9tICcuL2ludGVyZmFjZXMvYXZhdGFyLWludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2ludGVyZmFjZXMvYnV0dG9uLWludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2ludGVyZmFjZXMvY2FyZC1jYXJvdXNlbC1pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9pbnRlcmZhY2VzL2NoaXAtaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vaW50ZXJmYWNlcy9mb3JtLWxheW91dC5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9pbnRlcmZhY2VzL2dyaWQtaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vaW50ZXJmYWNlcy9ndWlkZS1jYXJkLWludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2ludGVyZmFjZXMvaGVhZGVyLWludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2ludGVyZmFjZXMvaWNvbi1pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9pbnRlcmZhY2VzL2xheW91dC1zZWN0aW9uLWludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2ludGVyZmFjZXMvbGVmdC1uYXYtaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vaW50ZXJmYWNlcy9tZW51LmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2ludGVyZmFjZXMvbWVzc2FnZS1iYW5uZXInO1xuZXhwb3J0ICogZnJvbSAnLi9pbnRlcmZhY2VzL29wdGlvbi1pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9pbnRlcmZhY2VzL3Njcm9sbGluZy1jYXJkLWludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2ludGVyZmFjZXMvc2VsZWN0LWludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2ludGVyZmFjZXMvc3RhdHVzLWRvdC5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9pbnRlcmZhY2VzL3RhYi1pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9pbnRlcmZhY2VzL3RvYXN0LWludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2ludGVyZmFjZXMvdHlwb2dyYXBoeS1hbmltYXRpb24taW50ZXJmYWNlJztcbiJdfQ==