@sarasanalytics-com/design-system 0.0.176 → 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.
- package/esm2022/lib/data-grid/data-grid.component.mjs +15 -1
- package/esm2022/lib/dropdown/ng-select/ng-select.component.mjs +3 -3
- package/esm2022/lib/grid-cell/grid-cell.component.mjs +36 -3
- package/esm2022/lib/grid-header/grid-header.component.mjs +57 -0
- package/esm2022/public-api.mjs +2 -1
- package/fesm2022/sarasanalytics-com-design-system.mjs +103 -6
- package/fesm2022/sarasanalytics-com-design-system.mjs.map +1 -1
- package/lib/data-grid/data-grid.component.d.ts +1 -0
- package/lib/grid-cell/grid-cell.component.d.ts +10 -0
- package/lib/grid-header/grid-header.component.d.ts +34 -0
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
|
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1ncmlkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudC1saWJyYXJ5L3NyYy9saWIvZGF0YS1ncmlkL2RhdGEtZ3JpZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnQtbGlicmFyeS9zcmMvbGliL2RhdGEtZ3JpZC9kYXRhLWdyaWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOzs7QUFZckUsTUFBTSxPQUFPLGlCQUFpQjtJQVA5QjtRQVNXLGVBQVUsR0FBYSxFQUFFLENBQUM7UUFDMUIsWUFBTyxHQUFVLEVBQUUsQ0FBQztRQUNwQixrQkFBYSxHQUFXO1lBQy9CLFFBQVEsRUFBRSxJQUFJO1lBQ2QsTUFBTSxFQUFFLElBQUk7WUFDWixTQUFTLEVBQUUsSUFBSTtTQUNoQixDQUFDO1FBRUYsK0JBQStCO1FBQ3RCLGVBQVUsR0FBWSxLQUFLLENBQUM7UUFDNUIsdUJBQWtCLEdBQVcsRUFBRSxDQUFDO1FBQ2hDLCtCQUEwQixHQUFhLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDekQsZUFBVSxHQUFXLEdBQUcsQ0FBQztRQUV6QixlQUFVLEdBQVEsRUFBRSxDQUFDO1FBQ3BCLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBdUIsQ0FBQztLQXFLL0Q7SUFqS0MsNENBQTRDO0lBQzVDLG1CQUFtQjtRQUNqQix1REFBdUQ7UUFDdkQsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDcEQsQ0FBQztJQUVELFdBQVcsQ0FBQyxNQUEyQjtRQUNyQyxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUM7UUFDMUIsaUJBQWlCLENBQUMsZUFBZSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUM7UUFDL0MsSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBRWhDLHlDQUF5QztRQUN2QyxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNwQixJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWE7Z0JBQzFCLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQztnQkFDM0QsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNoRCxDQUFDO1FBQ0gsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVELE1BQU0sQ0FBQyxpQkFBaUIsQ0FDdEIsT0FBZ0IsRUFDaEIsUUFBZ0IsRUFDaEIsS0FBYSxFQUNiLFNBQWlDO1FBRWpDLE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxzQkFBc0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUV6RCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDYixPQUFPLENBQUMsS0FBSyxDQUFDLGdCQUFnQixRQUFRLGFBQWEsQ0FBQyxDQUFDO1lBQ3JELE9BQU87UUFDVCxDQUFDO1FBRUQsTUFBTSxRQUFRLEdBQUcsR0FBRyxLQUFLLGFBQWEsQ0FBQztRQUV2QyxNQUFNLGNBQWMsR0FDbEIsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFL0IsTUFBTSxhQUFhLEdBQTJCO1lBQzVDLEdBQUcsY0FBYztZQUNqQixHQUFHLFNBQVM7U0FDYixDQUFDO1FBRUYsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxhQUFhLENBQUM7UUFFdkMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNyRCxPQUFPLENBQUMsWUFBWSxDQUFDLEVBQUUsUUFBUSxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDL0UsQ0FBQztJQUVELDRDQUE0QztJQUM1QyxNQUFNLENBQUMsZUFBZSxDQUFDLEtBQVksRUFBRSxTQUFpQyxFQUFFO1FBQ3RFLE9BQU87WUFDTCxRQUFRLEVBQUUsT0FBTztZQUNqQixRQUFRLEVBQUUsSUFBSTtZQUNkLFFBQVEsRUFBRSxLQUFLO1lBQ2YsZUFBZSxFQUFFLEtBQUs7WUFDdEIsZ0JBQWdCLEVBQUUsS0FBSztZQUN2QixVQUFVLEVBQUUsS0FBSztZQUNqQixVQUFVLEVBQUUsS0FBSztZQUNqQixVQUFVLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQzdCLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUU7Z0JBQ2pCLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxJQUFJLEVBQUU7Z0JBQ3JCLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxJQUFJLFNBQVM7Z0JBQzVCLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxJQUFJLFNBQVM7Z0JBQzlCLEdBQUcsSUFBSTthQUNSLENBQUMsQ0FBQztZQUNILEdBQUcsTUFBTTtTQUNWLENBQUM7SUFDSixDQUFDO0lBRUQsc0NBQXNDO0lBQ3RDLE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBWSxFQUFFLFNBQWlDLEVBQUU7UUFDckUsT0FBTztZQUNMLFFBQVEsRUFBRSxNQUFNO1lBQ2hCLFFBQVEsRUFBRSxJQUFJO1lBQ2QsUUFBUSxFQUFFLEtBQUs7WUFDZixlQUFlLEVBQUUsS0FBSztZQUN0QixnQkFBZ0IsRUFBRSxLQUFLO1lBQ3ZCLFVBQVUsRUFBRSxLQUFLO1lBQ2pCLFVBQVUsRUFBRSxLQUFLO1lBQ2pCLElBQUk7WUFDSixHQUFHLE1BQU07U0FDVixDQUFDO0lBQ0osQ0FBQztJQUVELHlDQUF5QztJQUN6QyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsTUFRdkI7UUFDQyxPQUFPO1lBQ0wsUUFBUSxFQUFFLFFBQVE7WUFDbEIsUUFBUSxFQUFFLElBQUk7WUFDZCxRQUFRLEVBQUUsS0FBSztZQUNmLGVBQWUsRUFBRSxLQUFLO1lBQ3RCLGdCQUFnQixFQUFFLEtBQUs7WUFDdkIsVUFBVSxFQUFFLEtBQUs7WUFDakIsVUFBVSxFQUFFLElBQUk7WUFDaEIsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJO1lBQ2pCLE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTztZQUN2QixZQUFZLEVBQUU7Z0JBQ1osRUFBRSxFQUFFLE1BQU0sQ0FBQyxJQUFJO2dCQUNmLElBQUksRUFBRSxNQUFNLENBQUMsWUFBWSxDQUFDLElBQUk7Z0JBQzlCLFNBQVMsRUFBRSxNQUFNLENBQUMsWUFBWSxDQUFDLFNBQVM7Z0JBQ3hDLE9BQU8sRUFBRSxNQUFNLENBQUMsWUFBWSxDQUFDLE9BQU87YUFDckM7U0FDRixDQUFDO0lBQ0osQ0FBQztJQUVELDBDQUEwQztJQUMxQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsTUFBMEw7UUFDak4sT0FBTztZQUNMLFFBQVEsRUFBRSxTQUFTO1lBQ25CLFFBQVEsRUFBRSxLQUFLO1lBQ2YsUUFBUSxFQUFFLEtBQUs7WUFDZixlQUFlLEVBQUUsS0FBSztZQUN0QixnQkFBZ0IsRUFBRSxLQUFLO1lBQ3ZCLFVBQVUsRUFBRSxJQUFJO1lBQ2hCLFVBQVUsRUFBRSxLQUFLO1lBQ2pCLE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTztZQUN2QixjQUFjLEVBQUUsTUFBTSxDQUFDLGNBQWM7WUFDckMsWUFBWSxFQUFFO2dCQUNaLEVBQUUsRUFBRSxnQkFBZ0I7Z0JBQ3BCLElBQUksRUFBRSxFQUFFO2dCQUNSLElBQUksRUFBRSxhQUFhO2dCQUNuQixLQUFLLEVBQUUsU0FBUztnQkFDaEIsSUFBSSxFQUFFLE9BQU87Z0JBQ2IsU0FBUyxFQUFFLHVCQUF1QjtnQkFDbEMsWUFBWSxFQUFFLE1BQU07Z0JBQ3BCLE9BQU8sRUFBRSxDQUFDLEtBQVUsRUFBRSxFQUFFO29CQUN0QixJQUFJLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQzt3QkFDbkIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7d0JBQ2xELE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFOzRCQUM5QixPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsTUFBTSxDQUFDLEtBQUssWUFBWSxDQUFDLENBQUM7d0JBQ2xELENBQUMsQ0FBQyxDQUFDO29CQUNMLENBQUM7Z0JBQ0gsQ0FBQzthQUNGO1NBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRCw4Q0FBOEM7SUFDOUMsTUFBTSxDQUFDLHFCQUFxQixDQUFDLEtBQWEsRUFBRSxTQUFpQyxFQUFFO1FBQzdFLE9BQU87WUFDTCxRQUFRLEVBQUUsUUFBUTtZQUNsQixRQUFRLEVBQUUsSUFBSTtZQUNkLFFBQVEsRUFBRSxLQUFLO1lBQ2YsZUFBZSxFQUFFLEtBQUs7WUFDdEIsZ0JBQWdCLEVBQUUsS0FBSztZQUN2QixVQUFVLEVBQUUsS0FBSztZQUNqQixVQUFVLEVBQUUsS0FBSztZQUNqQixJQUFJLEVBQUUsS0FBSztZQUNYLEdBQUcsTUFBTTtTQUNWLENBQUM7SUFDSixDQUFDOzhHQXBMVSxpQkFBaUI7a0dBQWpCLGlCQUFpQixtWkNmOUIsbWpCQWNBLG14RURIWSxZQUFZLDhCQUFFLFlBQVk7OzJGQUl6QixpQkFBaUI7a0JBUDdCLFNBQVM7K0JBQ0UsY0FBYyxjQUNaLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxZQUFZLEVBQUUsaUJBQWlCLENBQUM7OEJBTS9DLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBT0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csMEJBQTBCO3NCQUFsQyxLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNJLFNBQVM7c0JBQWxCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEFnR3JpZE1vZHVsZSB9IGZyb20gJ2FnLWdyaWQtYW5ndWxhcic7XG5pbXBvcnQgeyBHcmlkQ2VsbENvbXBvbmVudCB9IGZyb20gJy4uL2dyaWQtY2VsbC9ncmlkLWNlbGwuY29tcG9uZW50JztcbmltcG9ydCB7IENvbERlZiwgR3JpZEFwaSwgR3JpZFJlYWR5RXZlbnQgfSBmcm9tICdhZy1ncmlkLWNvbW11bml0eSc7XG5pbXBvcnQgeyBHcmlkSW50ZXJmYWNlIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9ncmlkLWludGVyZmFjZSc7XG5pbXBvcnQgeyBCdXR0b25JbnRlcmZhY2UgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2J1dHRvbi1pbnRlcmZhY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzYS1kYXRhLWdyaWQnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBBZ0dyaWRNb2R1bGUsIEdyaWRDZWxsQ29tcG9uZW50XSxcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGEtZ3JpZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9kYXRhLWdyaWQuY29tcG9uZW50LmNzcydcbn0pXG5leHBvcnQgY2xhc3MgRGF0YUdyaWRDb21wb25lbnQge1xuICBwdWJsaWMgc3RhdGljIGdyaWRBcGlJbnN0YW5jZTogR3JpZEFwaTtcbiAgQElucHV0KCkgY29sdW1uRGVmczogQ29sRGVmW10gPSBbXTtcbiAgQElucHV0KCkgcm93RGF0YTogYW55W10gPSBbXTtcbiAgQElucHV0KCkgZGVmYXVsdENvbERlZjogQ29sRGVmID0ge1xuICAgIHNvcnRhYmxlOiB0cnVlLFxuICAgIGZpbHRlcjogdHJ1ZSxcbiAgICByZXNpemFibGU6IHRydWVcbiAgfTtcblxuICAvLyBQYWdpbmF0aW9uIGlucHV0cyAob3B0aW9uYWwpXG4gIEBJbnB1dCgpIHBhZ2luYXRpb246IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgcGFnaW5hdGlvblBhZ2VTaXplOiBudW1iZXIgPSAxMDtcbiAgQElucHV0KCkgcGFnaW5hdGlvblBhZ2VTaXplU2VsZWN0b3I6IG51bWJlcltdID0gWzEwLCAyNSwgNTAsIDEwMF07XG4gIEBJbnB1dCgpIGdyaWRIZWlnaHQ6IG51bWJlciA9IDQyMDtcbiAgQElucHV0KCkgZGF0YXNvdXJjZTogYW55O1xuICBASW5wdXQoKSBsb2NhbGVUZXh0OiBhbnkgPSB7fTtcbiAgQE91dHB1dCgpIGdyaWRSZWFkeSA9IG5ldyBFdmVudEVtaXR0ZXI8R3JpZFJlYWR5RXZlbnQ8YW55Pj4oKTtcblxuICBwcml2YXRlIGdyaWRBcGkhOiBHcmlkQXBpO1xuXG4gIC8vIE1ldGhvZCB0byBkZXRlcm1pbmUgd2hpY2ggcm93IGRhdGEgdG8gdXNlXG4gIGdldEVmZmVjdGl2ZVJvd0RhdGEoKTogYW55W10gfCB1bmRlZmluZWQge1xuICAgIC8vIElmIGRhdGFzb3VyY2UgaXMgcHJvdmlkZWQsIHJvd0RhdGEgbXVzdCBiZSB1bmRlZmluZWRcbiAgICByZXR1cm4gdGhpcy5kYXRhc291cmNlID8gdW5kZWZpbmVkIDogdGhpcy5yb3dEYXRhO1xuICB9XG5cbiAgb25HcmlkUmVhZHkocGFyYW1zOiBHcmlkUmVhZHlFdmVudDxhbnk+KSB7XG4gICAgdGhpcy5ncmlkQXBpID0gcGFyYW1zLmFwaTtcbiAgICBEYXRhR3JpZENvbXBvbmVudC5ncmlkQXBpSW5zdGFuY2UgPSBwYXJhbXMuYXBpO1xuICAgIHRoaXMuZ3JpZEFwaS5zaXplQ29sdW1uc1RvRml0KCk7XG5cbiAgICAvLyBTZXR1cCBzZXJ2ZXItc2lkZSByb3cgbW9kZWwgaWYgZW5hYmxlZFxuICAgICAgaWYgKHRoaXMuZGF0YXNvdXJjZSkge1xuICAgICAgICB0aGlzLmdyaWRBcGkuc2V0R3JpZE9wdGlvblxuICAgICAgICA/IHRoaXMuZ3JpZEFwaS5zZXRHcmlkT3B0aW9uKCdkYXRhc291cmNlJywgdGhpcy5kYXRhc291cmNlKVxuICAgICAgICA6IHRoaXMuZ3JpZEFwaS5zZXREYXRhc291cmNlKHRoaXMuZGF0YXNvdXJjZSk7XG4gICAgICB9ICBcbiAgICB0aGlzLmdyaWRSZWFkeS5lbWl0KHBhcmFtcyk7XG4gIH1cblxuICBzdGF0aWMgdXBkYXRlQ2VsbENvbnRlbnQoXG4gICAgZ3JpZEFwaTogR3JpZEFwaSxcbiAgICByb3dJbmRleDogbnVtYmVyLFxuICAgIGZpZWxkOiBzdHJpbmcsXG4gICAgbmV3UGFyYW1zOiBQYXJ0aWFsPEdyaWRJbnRlcmZhY2U+XG4gICkge1xuICAgIGNvbnN0IHJvd05vZGUgPSBncmlkQXBpLmdldERpc3BsYXllZFJvd0F0SW5kZXgocm93SW5kZXgpO1xuICBcbiAgICBpZiAoIXJvd05vZGUpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYFJvdyBhdCBpbmRleCAke3Jvd0luZGV4fSBub3QgZm91bmQuYCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICBcbiAgICBjb25zdCBwYXJhbUtleSA9IGAke2ZpZWxkfV9jZWxsUGFyYW1zYDtcbiAgXG4gICAgY29uc3QgZXhpc3RpbmdQYXJhbXM6IFBhcnRpYWw8R3JpZEludGVyZmFjZT4gPVxuICAgICAgcm93Tm9kZS5kYXRhW3BhcmFtS2V5XSB8fCB7fTtcbiAgXG4gICAgY29uc3QgdXBkYXRlZFBhcmFtczogUGFydGlhbDxHcmlkSW50ZXJmYWNlPiA9IHtcbiAgICAgIC4uLmV4aXN0aW5nUGFyYW1zLFxuICAgICAgLi4ubmV3UGFyYW1zLFxuICAgIH07XG4gIFxuICAgIHJvd05vZGUuZGF0YVtwYXJhbUtleV0gPSB1cGRhdGVkUGFyYW1zO1xuICBcbiAgICBncmlkQXBpLmFwcGx5VHJhbnNhY3Rpb24oeyB1cGRhdGU6IFtyb3dOb2RlLmRhdGFdIH0pO1xuICAgIGdyaWRBcGkucmVmcmVzaENlbGxzKHsgcm93Tm9kZXM6IFtyb3dOb2RlXSwgY29sdW1uczogW2ZpZWxkXSwgZm9yY2U6IHRydWUgfSk7XG4gIH1cblxuICAvLyBIZWxwZXIgbWV0aG9kIHRvIGNyZWF0ZSBhIGNlbGwgd2l0aCBjaGlwc1xuICBzdGF0aWMgY3JlYXRlQ2hpcHNDZWxsKGNoaXBzOiBhbnlbXSwgY29uZmlnOiBQYXJ0aWFsPEdyaWRJbnRlcmZhY2U+ID0ge30pOiBHcmlkSW50ZXJmYWNlIHtcbiAgICByZXR1cm4ge1xuICAgICAgY2VsbFR5cGU6ICdjaGlwcycsXG4gICAgICB2aWV3Q2hpcDogdHJ1ZSxcbiAgICAgIHZpZXdUZXh0OiBmYWxzZSxcbiAgICAgIHZpZXdMZWFkaW5nSWNvbjogZmFsc2UsXG4gICAgICB2aWV3VHJhaWxpbmdJY29uOiBmYWxzZSxcbiAgICAgIHZpZXdCdXR0b246IGZhbHNlLFxuICAgICAgdmlld0F2YXRhcjogZmFsc2UsXG4gICAgICBjaGlwQ29uZmlnOiBjaGlwcy5tYXAoY2hpcCA9PiAoe1xuICAgICAgICBpZDogY2hpcC5pZCB8fCAnJyxcbiAgICAgICAgdGV4dDogY2hpcC50ZXh0IHx8ICcnLFxuICAgICAgICB0eXBlOiBjaGlwLnR5cGUgfHwgJ2RlZmF1bHQnLFxuICAgICAgICBzdGF0ZTogY2hpcC5zdGF0ZSB8fCAnZGVmYXVsdCcsXG4gICAgICAgIC4uLmNoaXBcbiAgICAgIH0pKSxcbiAgICAgIC4uLmNvbmZpZ1xuICAgIH07XG4gIH1cblxuICAvLyBIZWxwZXIgbWV0aG9kIHRvIGNyZWF0ZSBhIHRleHQgY2VsbFxuICBzdGF0aWMgY3JlYXRlVGV4dENlbGwodGV4dDogc3RyaW5nLCBjb25maWc6IFBhcnRpYWw8R3JpZEludGVyZmFjZT4gPSB7fSk6IEdyaWRJbnRlcmZhY2Uge1xuICAgIHJldHVybiB7XG4gICAgICBjZWxsVHlwZTogJ3RleHQnLFxuICAgICAgdmlld1RleHQ6IHRydWUsXG4gICAgICB2aWV3Q2hpcDogZmFsc2UsXG4gICAgICB2aWV3TGVhZGluZ0ljb246IGZhbHNlLFxuICAgICAgdmlld1RyYWlsaW5nSWNvbjogZmFsc2UsXG4gICAgICB2aWV3QnV0dG9uOiBmYWxzZSxcbiAgICAgIHZpZXdBdmF0YXI6IGZhbHNlLFxuICAgICAgdGV4dCxcbiAgICAgIC4uLmNvbmZpZ1xuICAgIH07XG4gIH1cblxuICAvLyBIZWxwZXIgbWV0aG9kIHRvIGNyZWF0ZSBhbiBhdmF0YXIgY2VsbFxuICBzdGF0aWMgY3JlYXRlQXZhdGFyQ2VsbChjb25maWc6IHtcbiAgICB0ZXh0OiBzdHJpbmc7XG4gICAgc3ViVGV4dD86IHN0cmluZztcbiAgICBhdmF0YXJDb25maWc6IHtcbiAgICAgIHNpemU6ICdzbWFsbCcgfCAnbWVkaXVtJyB8ICdsYXJnZSc7XG4gICAgICBpbWFnZVBhdGg6IHN0cmluZztcbiAgICAgIGFsdFRleHQ6IHN0cmluZztcbiAgICB9O1xuICB9KTogR3JpZEludGVyZmFjZSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGNlbGxUeXBlOiAnYXZhdGFyJyxcbiAgICAgIHZpZXdUZXh0OiB0cnVlLFxuICAgICAgdmlld0NoaXA6IGZhbHNlLFxuICAgICAgdmlld0xlYWRpbmdJY29uOiBmYWxzZSxcbiAgICAgIHZpZXdUcmFpbGluZ0ljb246IGZhbHNlLFxuICAgICAgdmlld0J1dHRvbjogZmFsc2UsXG4gICAgICB2aWV3QXZhdGFyOiB0cnVlLFxuICAgICAgdGV4dDogY29uZmlnLnRleHQsXG4gICAgICBzdWJUZXh0OiBjb25maWcuc3ViVGV4dCxcbiAgICAgIGF2YXRhckNvbmZpZzoge1xuICAgICAgICBpZDogY29uZmlnLnRleHQsXG4gICAgICAgIHNpemU6IGNvbmZpZy5hdmF0YXJDb25maWcuc2l6ZSxcbiAgICAgICAgaW1hZ2VQYXRoOiBjb25maWcuYXZhdGFyQ29uZmlnLmltYWdlUGF0aCxcbiAgICAgICAgYWx0VGV4dDogY29uZmlnLmF2YXRhckNvbmZpZy5hbHRUZXh0XG4gICAgICB9XG4gICAgfTtcbiAgfVxuXG4gIC8vIEhlbHBlciBtZXRob2QgdG8gY3JlYXRlIGFuIGFjdGlvbnMgY2VsbFxuICBzdGF0aWMgY3JlYXRlQWN0aW9uc0NlbGwoY29uZmlnOiB7IGFjdGlvbnM6IEFycmF5PHsgbGFiZWw6IHN0cmluZywgb25DbGljazogKCkgPT4gdm9pZCwgaWNvbjogc3RyaW5nLCBjbGFzcz86IHN0cmluZyB9PiwgZG93bmxvYWRBY3Rpb24/OiB7IGxhYmVsOiBzdHJpbmcsIG9uQ2xpY2s6ICgpID0+IHZvaWQsIGljb246IHN0cmluZywgaWNvblNpemU/OiBzdHJpbmcgfSB9KTogR3JpZEludGVyZmFjZSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGNlbGxUeXBlOiAnYWN0aW9ucycsXG4gICAgICB2aWV3VGV4dDogZmFsc2UsXG4gICAgICB2aWV3Q2hpcDogZmFsc2UsXG4gICAgICB2aWV3TGVhZGluZ0ljb246IGZhbHNlLFxuICAgICAgdmlld1RyYWlsaW5nSWNvbjogZmFsc2UsXG4gICAgICB2aWV3QnV0dG9uOiB0cnVlLFxuICAgICAgdmlld0F2YXRhcjogZmFsc2UsXG4gICAgICBhY3Rpb25zOiBjb25maWcuYWN0aW9ucyxcbiAgICAgIGRvd25sb2FkQWN0aW9uOiBjb25maWcuZG93bmxvYWRBY3Rpb24sXG4gICAgICBidXR0b25Db25maWc6IHtcbiAgICAgICAgaWQ6ICdhY3Rpb25zLWJ1dHRvbicsXG4gICAgICAgIHRleHQ6ICcnLFxuICAgICAgICB0eXBlOiAndHJhbnNwYXJlbnQnLFxuICAgICAgICBzdGF0ZTogJ2RlZmF1bHQnLFxuICAgICAgICBzaXplOiAnc21hbGwnLFxuICAgICAgICBpbWFnZVBhdGg6ICcvYXNzZXRzL2ZyYW1lSWNvbi5zdmcnLFxuICAgICAgICBpY29uUG9zaXRpb246ICdib3RoJyxcbiAgICAgICAgb25DbGljazogKGV2ZW50OiBhbnkpID0+IHtcbiAgICAgICAgICBpZiAoY29uZmlnLmFjdGlvbnMpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdBY3Rpb25zIGF2YWlsYWJsZTonLCBjb25maWcuYWN0aW9ucyk7XG4gICAgICAgICAgICBjb25maWcuYWN0aW9ucy5mb3JFYWNoKGFjdGlvbiA9PiB7XG4gICAgICAgICAgICAgIGNvbnNvbGUubG9nKGBBY3Rpb24gJHthY3Rpb24ubGFiZWx9IGF2YWlsYWJsZWApO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcbiAgfVxuXG4gIC8vIEhlbHBlciBtZXRob2QgdG8gY3JlYXRlIGEgbWFza2VkIGVtYWlsIGNlbGxcbiAgc3RhdGljIGNyZWF0ZU1hc2tlZEVtYWlsQ2VsbChlbWFpbDogc3RyaW5nLCBjb25maWc6IFBhcnRpYWw8R3JpZEludGVyZmFjZT4gPSB7fSk6IEdyaWRJbnRlcmZhY2Uge1xuICAgIHJldHVybiB7XG4gICAgICBjZWxsVHlwZTogJ21hc2tlZCcsXG4gICAgICB2aWV3VGV4dDogdHJ1ZSxcbiAgICAgIHZpZXdDaGlwOiBmYWxzZSxcbiAgICAgIHZpZXdMZWFkaW5nSWNvbjogZmFsc2UsXG4gICAgICB2aWV3VHJhaWxpbmdJY29uOiBmYWxzZSxcbiAgICAgIHZpZXdCdXR0b246IGZhbHNlLFxuICAgICAgdmlld0F2YXRhcjogZmFsc2UsXG4gICAgICB0ZXh0OiBlbWFpbCxcbiAgICAgIC4uLmNvbmZpZ1xuICAgIH07XG4gIH1cbiAgXG59XG4iLCI8YWctZ3JpZC1hbmd1bGFyXG4gIGNsYXNzPVwiYWctdGhlbWUtYWxwaW5lIHNhLWdyaWQtdGhlbWVcIlxuICBbY29sdW1uRGVmc109XCJjb2x1bW5EZWZzXCJcbiAgW3Jvd0RhdGFdPVwiZ2V0RWZmZWN0aXZlUm93RGF0YSgpXCJcbiAgW2RlZmF1bHRDb2xEZWZdPVwiZGVmYXVsdENvbERlZlwiXG4gIChncmlkUmVhZHkpPVwib25HcmlkUmVhZHkoJGV2ZW50KVwiXG4gIFtkb21MYXlvdXRdPVwiZ3JpZEhlaWdodCA/ICdub3JtYWwnIDogJ2F1dG9IZWlnaHQnXCJcbiAgW3N0eWxlLmhlaWdodC5weF09XCJncmlkSGVpZ2h0IHx8IG51bGxcIlxuICBbcGFnaW5hdGlvbl09XCJwYWdpbmF0aW9uXCJcbiAgW3BhZ2luYXRpb25QYWdlU2l6ZV09XCJwYWdpbmF0aW9uUGFnZVNpemVcIlxuICBbcGFnaW5hdGlvblBhZ2VTaXplU2VsZWN0b3JdPVwicGFnaW5hdGlvblBhZ2VTaXplU2VsZWN0b3JcIlxuICBbbG9jYWxlVGV4dF09XCJsb2NhbGVUZXh0XCJcbiAgW3Jvd01vZGVsVHlwZV09XCJkYXRhc291cmNlID8gJ2luZmluaXRlJyA6ICdjbGllbnRTaWRlJ1wiXG4+PC9hZy1ncmlkLWFuZ3VsYXI+XG4iXX0=
|
|
@@ -87,7 +87,7 @@ export class NgSelectComponent extends FieldType {
|
|
|
87
87
|
this.filteredOptions = [...this.field.props?.options];
|
|
88
88
|
}
|
|
89
89
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: NgSelectComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
90
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.4", type: NgSelectComponent, isStandalone: true, selector: "sa-ng-select", providers: [IconService], usesInheritance: true, ngImport: i0, template: "<ng-select [items]=\"filteredOptions\" [multiple]=\"props?.multiple || false\" [bindLabel]=\"props?.bindLabel || 'label'\"\n [closeOnSelect]=\"props?.closeOnSelect ?? true\" [bindValue]=\"props?.bindValue || 'value'\"\n [placeholder]=\"props?.placeholder || 'Select'\" [searchable]=\"false\" [formControl]=\"formControl\"\n [clearable]=\"props?.isClearable\" [appearance]=\"props['appearance'] || 'outline'\" [loading]=\"props?.loading || false\" class=\"ng-select-custom\">\n\n @if(!!props?.showSearchBar){\n <ng-template ng-header-tmp>\n <div class=\"search-input-container mat-form-field-density-5\">\n <mat-form-field [appearance]=\"props['appearance'] || 'outline'\" class=\"w-100\">\n <sa-icon icon=\"searchIcon\" class=\"searchIcons\" size=\"20\" matPrefix></sa-icon>\n <input matInput type=\"text\" name=\"menu-search-bar\" class=\"search-input searchIcons\"\n (keyup)=\"onSearch($event)\" (keydown)=\"stopBackspacePropagation($event)\"\n [placeholder]=\"props?.searchPlaceholder || 'Search'\" [(ngModel)]=\"searchValue\" />\n <sa-icon icon=\"closeOutlined\" class=\"pointer searchIcons\" size=\"15\" matSuffix\n (click)=\"clearSearch($event)\"></sa-icon>\n </mat-form-field>\n </div>\n </ng-template>\n }\n <!-- Option template with a checkbox in front of each row -->\n <ng-template ng-option-tmp let-item=\"item\" let-item$=\"item$\">\n <div class=\"option-row\">\n @if(props?.multiple){\n <input type=\"checkbox\" [checked]=\"item$.selected\" tabindex=\"-1\" />\n }\n <span class=\"option-label\">{{ item[props.bindLabel || 'label'] }}</span>\n\n </div>\n </ng-template>\n\n <!-- Selected items chip template (optional) -->\n <ng-template ng-multi-label-tmp let-items=\"items\" let-clear=\"clear\">\n <div class=\"chips ng-values-list\">\n\n <!-- If collapsed: show only first 2 + summary -->\n <ng-container *ngIf=\"!expandedSummary\">\n @for (s of items.slice(0, 2); track s[props.bindValue || 'value']) {\n <div class=\"ng-value\">\n <span class=\"ng-value-label\">{{ s[props.bindLabel || 'label'] }}</span>\n <span class=\"ng-value-icon right\" (click)=\"clear(s)\"><sa-icon icon=\"closeOutlined\"\n size=\"11\"></sa-icon></span>\n </div>\n }\n\n @if (items.length > 2) {\n <div class=\"ng-value summary-chip pointer\" (click)=\"toggleSummary()\">\n <span class=\"ng-value-label\">+{{ items.length - 2 }}</span>\n <span class=\"ng-value-icon right\" (click)=\"clearRemaining(items, clear)\"><sa-icon\n icon=\"closeOutlined\" size=\"11\"></sa-icon></span>\n </div>\n }\n </ng-container>\n\n <!-- If expanded: show all items -->\n <ng-container *ngIf=\"expandedSummary\">\n @for (s of items; track s[props.bindValue || 'value']) {\n <div class=\"ng-value\">\n <span class=\"ng-value-label\">{{ s[props.bindLabel || 'label'] }}</span>\n <span class=\"ng-value-icon right\" (click)=\"clear(s)\"><sa-icon icon=\"closeOutlined\"\n size=\"11\"></sa-icon></span>\n </div>\n }\n <!-- Collapse button -->\n <div class=\"ng-value summary-chip pointer\" (click)=\"toggleSummary()\">\n <sa-icon class=\"ng-value-label\" size=\"18\" icon=\"leftChevronCircle\"></sa-icon>\n </div>\n </ng-container>\n\n </div>\n </ng-template>\n\n @if(props?.footer){\n <ng-template ng-footer-tmp>\n <div class=\"dropdown-footer\">{{props?.footer?.description}}</div>\n </ng-template>\n }\n\n <ng-template ng-notfound-tmp>\n <div class=\"no-results\">\n @if (searchValue?.length > 0) {\n {{ props?.searchNotFoundText || '\u274C No items match \"' + searchValue + '\"' }}\n } @else {\n {{ props?.notFoundText || '\u26A0\uFE0F No options available' }}\n }\n </div>\n </ng-template>\n\n <ng-template ng-loadingtext-tmp>\n <div class=\"loading\">\n <sa-icon icon=\"arrowClockwiseOutlined\" size=\"16\" class=\"loading-spinner\"></sa-icon>\n <span>Loading options...</span>\n </div>\n </ng-template>\n</ng-select>", styles: ["::ng-deep .ng-select-custom .search-input-container .mat-mdc-form-field-has-icon-prefix .mat-mdc-text-field-wrapper{padding:var(--small-2px, 2px) var(--small-12px, 12px)}.ng-select-custom .ng-values-list{display:flex;flex-wrap:wrap;gap:var(--small-8px, 8px)}::ng-deep .ng-select-custom.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon.right{border-left:none;display:flex;align-items:center;font-size:var(--small-6px, 6px)}::ng-deep .ng-select-custom.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value{border-radius:var(--small-4px, 4px);background:var(--grey-50, #F2F4F7);display:flex;padding:.188rem var(--small-8px, 8px) var(--small-2px, 2px) var(--small-8px, 8px);justify-content:center;align-items:center;gap:var(--small-4px, 4px)}.ng-select-custom .option-row{display:flex;width:18.75rem;height:2.5rem;padding:var(--small-12px, 12px);align-items:center;gap:var(--small-8px, 8px);flex-shrink:0}::ng-deep .ng-select-custom .mdc-form-field.mat-internal-form-field{display:flex;gap:var(--small-8px, 8px);align-items:center}::ng-deep .ng-select-custom .mdc-checkbox__ripple{display:none}::ng-deep .ng-select-custom .checkbox-style{display:flex;align-items:center}.ng-select-custom .ng-option input[type=checkbox],.ng-select input[type=checkbox]{accent-color:var(--primary-500);vertical-align:middle;width:var(--small-14px, 14px);height:var(--small-14px, 14px)}::ng-deep .ng-select-custom.ng-select .ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected{background-color:var(--primary-50)}.option-label{color:var(--text-high-emphasis, #1C1B20);font-family:var(--font-family, Roboto);font-size:var(--small-14px, 14px);font-style:normal;font-weight:400;line-height:var(--medium-20px, 20px);letter-spacing:.25px}::ng-deep .ng-select-custom.ng-select .search-input-container .mat-mdc-form-field{width:-webkit-fill-available}::ng-deep .ng-select-custom .ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-marked{background-color:var(--primary-50)}::ng-deep .ng-select-custom.ng-select .ng-arrow-wrapper .ng-arrow{display:none}::ng-deep .ng-select .ng-arrow-wrapper{width:var(--small-12px, 12px);height:var(--small-12px, 12px);display:flex;align-items:center;justify-content:center}::ng-deep .ng-select .ng-arrow-wrapper:after{content:\"\";display:inline-block;width:var(--small-8px, 8px);height:var(--small-12px, 12px);background:url(/assets/upDownChevronOutlined.svg) no-repeat center;background-size:contain}::ng-deep .ng-select-custom.ng-select.ng-select-focused:not(.ng-select-opened)>.ng-select-container{border-color:var(--primary-500);box-shadow:none}::ng-deep .ng-select-custom.ng-select .no-results{padding:.8rem}::ng-deep .ng-select-custom.ng-select .ng-select-container{padding:.23rem var(--small-12px) .2rem var(--small-12px);height:1.875rem;min-height:2.438rem;border:1px solid var(--grey-100, #EAECF0);align-items:center}::ng-deep .ng-select-custom.ng-select .option-label{color:var(--text-highemphasis, #1C1B20);font-family:var(--font-family, Roboto);font-size:var(--small-14px, 14px);font-style:normal;font-weight:400;line-height:var(--medium-20px, 20px);letter-spacing:.25px}::ng-deep .ng-select-custom.ng-select .ng-value-label{color:var(--text-mediumemphasis, #6D6979);font-family:var(--font-family-roboto);font-size:.688rem;font-style:normal;font-weight:500;line-height:var(--small-16px, 16px);letter-spacing:.5px}::ng-deep .ng-select-custom.ng-select .mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__leading,.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__notch,.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__trailing{border-color:var(--primary-500)}::ng-deep .ng-select-custom.ng-select .mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__trailing{border-top-left-radius:0;border-top-right-radius:var(--small-4px, 4px);border-bottom-right-radius:var(--small-4px, 4px);border-bottom-left-radius:0}::ng-deep .ng-select-custom.ng-select.ng-select-single .ng-value-label{color:var(--text-highemphasis);font-family:var(--font-family-roboto);font-size:var(--small-14px);font-style:normal;font-weight:400;line-height:var(--medium-20px);letter-spacing:.25px}::ng-deep .ng-select-custom.ng-select .ng-select-container .ng-value-container .ng-placeholder{color:var(--text-low-emphasis, #9B98A3);font-family:var(--font-family, Roboto);font-size:var(--small-14px, 14px);font-style:normal;font-weight:400;line-height:var(--medium-20px, 20px);letter-spacing:.25px}::ng-deep .ng-select-custom .search-input-container .mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-notched-outline .mdc-notched-outline__leading,::ng-deep .ng-select-custom .search-input-container .mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-notched-outline .mdc-notched-outline__notch,::ng-deep .ng-select-custom .search-input-container .mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-notched-outline .mdc-notched-outline__trailing{border-color:var(--grey-100)}.ng-select-custom .searchIcons{color:var(--color-text-neutral-300, #757575)}::ng-deep .ng-select-custom.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon:hover{background-color:var(--primary-50)}::ng-deep .ng-select-custom.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-label{display:flex}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}::ng-deep .ng-select-custom .loading{color:var(--text-medium-emphasis, #6D6979);font-family:var(--font-family, Roboto);font-size:var(--small-14px, 14px);display:flex;align-items:center;justify-content:center;padding:12px;gap:8px}::ng-deep .ng-select-custom .loading-spinner{animation:spin 1s linear infinite}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: FormlyModule }, { kind: "ngmodule", type: NgSelectModule }, { kind: "component", type: i3.NgSelectComponent, selector: "ng-select", inputs: ["bindLabel", "bindValue", "markFirst", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd", "deselectOnClick"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { kind: "directive", type: i3.NgOptionTemplateDirective, selector: "[ng-option-tmp]" }, { kind: "directive", type: i3.NgMultiLabelTemplateDirective, selector: "[ng-multi-label-tmp]" }, { kind: "directive", type: i3.NgHeaderTemplateDirective, selector: "[ng-header-tmp]" }, { kind: "directive", type: i3.NgFooterTemplateDirective, selector: "[ng-footer-tmp]" }, { kind: "directive", type: i3.NgNotFoundTemplateDirective, selector: "[ng-notfound-tmp]" }, { kind: "directive", type: i3.NgLoadingTextTemplateDirective, selector: "[ng-loadingtext-tmp]" }, { 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: MatFormFieldModule }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: i4.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i5.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "ngmodule", type: MatButtonModule }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "ngmodule", type: MatButtonToggleModule }, { kind: "ngmodule", type: MatDatepickerModule }, { kind: "ngmodule", type: MatNativeDateModule }, { kind: "ngmodule", type: MatCheckboxModule }] }); }
|
|
90
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.4", type: NgSelectComponent, isStandalone: true, selector: "sa-ng-select", providers: [IconService], usesInheritance: true, ngImport: i0, template: "<ng-select [items]=\"filteredOptions\" [multiple]=\"props?.multiple || false\" [bindLabel]=\"props?.bindLabel || 'label'\"\n [closeOnSelect]=\"props?.closeOnSelect ?? true\" [bindValue]=\"props?.bindValue || 'value'\"\n [placeholder]=\"props?.placeholder || 'Select'\" [searchable]=\"false\" [formControl]=\"formControl\"\n [clearable]=\"props?.isClearable\" [appearance]=\"props['appearance'] || 'outline'\" [loading]=\"props?.loading || false\" class=\"ng-select-custom\">\n\n @if(!!props?.showSearchBar){\n <ng-template ng-header-tmp>\n <div class=\"search-input-container mat-form-field-density-5\">\n <mat-form-field [appearance]=\"props['appearance'] || 'outline'\" class=\"w-100\">\n <sa-icon icon=\"searchIcon\" class=\"searchIcons\" size=\"20\" matPrefix></sa-icon>\n <input matInput type=\"text\" name=\"menu-search-bar\" class=\"search-input searchIcons\"\n (keyup)=\"onSearch($event)\" (keydown)=\"stopBackspacePropagation($event)\"\n [placeholder]=\"props?.searchPlaceholder || 'Search'\" [(ngModel)]=\"searchValue\" />\n <sa-icon icon=\"closeOutlined\" class=\"pointer searchIcons\" size=\"15\" matSuffix\n (click)=\"clearSearch($event)\"></sa-icon>\n </mat-form-field>\n </div>\n </ng-template>\n }\n <!-- Option template with a checkbox in front of each row -->\n <ng-template ng-option-tmp let-item=\"item\" let-item$=\"item$\">\n <div class=\"option-row\">\n @if(props?.multiple){\n <input type=\"checkbox\" [checked]=\"item$.selected\" tabindex=\"-1\" />\n }\n <span class=\"option-label\">{{ item[props.bindLabel || 'label'] }}</span>\n\n </div>\n </ng-template>\n\n <!-- Selected items chip template (optional) -->\n <ng-template ng-multi-label-tmp let-items=\"items\" let-clear=\"clear\">\n <div class=\"chips ng-values-list\">\n\n <!-- If collapsed: show only first 2 + summary -->\n <ng-container *ngIf=\"!expandedSummary\">\n @for (s of items.slice(0, 2); track s[props.bindValue || 'value']) {\n <div class=\"ng-value\">\n <span class=\"ng-value-label\">{{ s[props.bindLabel || 'label'] }}</span>\n <span class=\"ng-value-icon right\" (click)=\"clear(s)\"><sa-icon icon=\"closeOutlined\"\n size=\"11\"></sa-icon></span>\n </div>\n }\n\n @if (items.length > 2) {\n <div class=\"ng-value summary-chip pointer\" (click)=\"toggleSummary()\">\n <span class=\"ng-value-label\">+{{ items.length - 2 }}</span>\n <span class=\"ng-value-icon right\" (click)=\"clearRemaining(items, clear)\"><sa-icon\n icon=\"closeOutlined\" size=\"11\"></sa-icon></span>\n </div>\n }\n </ng-container>\n\n <!-- If expanded: show all items -->\n <ng-container *ngIf=\"expandedSummary\">\n @for (s of items; track s[props.bindValue || 'value']) {\n <div class=\"ng-value\">\n <span class=\"ng-value-label\">{{ s[props.bindLabel || 'label'] }}</span>\n <span class=\"ng-value-icon right\" (click)=\"clear(s)\"><sa-icon icon=\"closeOutlined\"\n size=\"11\"></sa-icon></span>\n </div>\n }\n <!-- Collapse button -->\n <div class=\"ng-value summary-chip pointer\" (click)=\"toggleSummary()\">\n <sa-icon class=\"ng-value-label\" size=\"18\" icon=\"leftChevronCircle\"></sa-icon>\n </div>\n </ng-container>\n\n </div>\n </ng-template>\n\n @if(props?.footer){\n <ng-template ng-footer-tmp>\n <div class=\"dropdown-footer\">{{props?.footer?.description}}</div>\n </ng-template>\n }\n\n <ng-template ng-notfound-tmp>\n <div class=\"no-results\">\n @if (searchValue?.length > 0) {\n {{ props?.searchNotFoundText || '\u274C No items match \"' + searchValue + '\"' }}\n } @else {\n {{ props?.notFoundText || '\u26A0\uFE0F No options available' }}\n }\n </div>\n </ng-template>\n\n <ng-template ng-loadingtext-tmp>\n <div class=\"loading\">\n <sa-icon icon=\"loader\" size=\"16\" class=\"loading-spinner\"></sa-icon>\n <span>Loading options...</span>\n </div>\n </ng-template>\n</ng-select>", styles: ["::ng-deep .ng-select-custom .search-input-container .mat-mdc-form-field-has-icon-prefix .mat-mdc-text-field-wrapper{padding:var(--small-2px, 2px) var(--small-12px, 12px)}.ng-select-custom .ng-values-list{display:flex;flex-wrap:wrap;gap:var(--small-8px, 8px)}::ng-deep .ng-select-custom.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon.right{border-left:none;display:flex;align-items:center;font-size:var(--small-6px, 6px)}::ng-deep .ng-select-custom.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value{border-radius:var(--small-4px, 4px);background:var(--grey-50, #F2F4F7);display:flex;padding:.188rem var(--small-8px, 8px) var(--small-2px, 2px) var(--small-8px, 8px);justify-content:center;align-items:center;gap:var(--small-4px, 4px)}.ng-select-custom .option-row{display:flex;width:18.75rem;height:2.5rem;padding:var(--small-12px, 12px);align-items:center;gap:var(--small-8px, 8px);flex-shrink:0}::ng-deep .ng-select-custom .mdc-form-field.mat-internal-form-field{display:flex;gap:var(--small-8px, 8px);align-items:center}::ng-deep .ng-select-custom .mdc-checkbox__ripple{display:none}::ng-deep .ng-select-custom .checkbox-style{display:flex;align-items:center}.ng-select-custom .ng-option input[type=checkbox],.ng-select input[type=checkbox]{accent-color:var(--primary-500);vertical-align:middle;width:var(--small-14px, 14px);height:var(--small-14px, 14px)}::ng-deep .ng-select-custom.ng-select .ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected{background-color:var(--primary-50)}.option-label{color:var(--text-high-emphasis, #1C1B20);font-family:var(--font-family, Roboto);font-size:var(--small-14px, 14px);font-style:normal;font-weight:400;line-height:var(--medium-20px, 20px);letter-spacing:.25px}::ng-deep .ng-select-custom.ng-select .search-input-container .mat-mdc-form-field{width:-webkit-fill-available}::ng-deep .ng-select-custom .ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-marked{background-color:var(--primary-50)}::ng-deep .ng-select-custom.ng-select .ng-arrow-wrapper .ng-arrow{display:none}::ng-deep .ng-select .ng-arrow-wrapper{width:var(--small-12px, 12px);height:var(--small-12px, 12px);display:flex;align-items:center;justify-content:center}::ng-deep .ng-select .ng-arrow-wrapper:after{content:\"\";display:inline-block;width:var(--small-8px, 8px);height:var(--small-12px, 12px);background:url(/assets/upDownChevronOutlined.svg) no-repeat center;background-size:contain}::ng-deep .ng-select-custom.ng-select.ng-select-focused:not(.ng-select-opened)>.ng-select-container{border-color:var(--primary-500);box-shadow:none}::ng-deep .ng-select-custom.ng-select .no-results{padding:.8rem}::ng-deep .ng-select-custom.ng-select .ng-select-container{padding:.23rem var(--small-12px) .2rem var(--small-12px);height:1.875rem;min-height:2.438rem;border:1px solid var(--grey-100, #EAECF0);align-items:center}::ng-deep .ng-select-custom.ng-select .option-label{color:var(--text-highemphasis, #1C1B20);font-family:var(--font-family, Roboto);font-size:var(--small-14px, 14px);font-style:normal;font-weight:400;line-height:var(--medium-20px, 20px);letter-spacing:.25px}::ng-deep .ng-select-custom.ng-select .ng-value-label{color:var(--text-mediumemphasis, #6D6979);font-family:var(--font-family-roboto);font-size:.688rem;font-style:normal;font-weight:500;line-height:var(--small-16px, 16px);letter-spacing:.5px}::ng-deep .ng-select-custom.ng-select .mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__leading,.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__notch,.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__trailing{border-color:var(--primary-500)}::ng-deep .ng-select-custom.ng-select .mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__trailing{border-top-left-radius:0;border-top-right-radius:var(--small-4px, 4px);border-bottom-right-radius:var(--small-4px, 4px);border-bottom-left-radius:0}::ng-deep .ng-select-custom.ng-select.ng-select-single .ng-value-label{color:var(--text-highemphasis);font-family:var(--font-family-roboto);font-size:var(--small-14px);font-style:normal;font-weight:400;line-height:var(--medium-20px);letter-spacing:.25px}::ng-deep .ng-select-custom.ng-select .ng-select-container .ng-value-container .ng-placeholder{color:var(--text-low-emphasis, #9B98A3);font-family:var(--font-family, Roboto);font-size:var(--small-14px, 14px);font-style:normal;font-weight:400;line-height:var(--medium-20px, 20px);letter-spacing:.25px}::ng-deep .ng-select-custom .search-input-container .mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-notched-outline .mdc-notched-outline__leading,::ng-deep .ng-select-custom .search-input-container .mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-notched-outline .mdc-notched-outline__notch,::ng-deep .ng-select-custom .search-input-container .mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-notched-outline .mdc-notched-outline__trailing{border-color:var(--grey-100)}.ng-select-custom .searchIcons{color:var(--color-text-neutral-300, #757575)}::ng-deep .ng-select-custom.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon:hover{background-color:var(--primary-50)}::ng-deep .ng-select-custom.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-label{display:flex}::ng-deep .ng-select-custom .loading{color:var(--text-medium-emphasis, #6D6979);font-family:var(--font-family, Roboto);font-size:var(--small-14px, 14px);display:flex;align-items:center;justify-content:center;padding:12px;gap:8px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: FormlyModule }, { kind: "ngmodule", type: NgSelectModule }, { kind: "component", type: i3.NgSelectComponent, selector: "ng-select", inputs: ["bindLabel", "bindValue", "markFirst", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd", "deselectOnClick"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { kind: "directive", type: i3.NgOptionTemplateDirective, selector: "[ng-option-tmp]" }, { kind: "directive", type: i3.NgMultiLabelTemplateDirective, selector: "[ng-multi-label-tmp]" }, { kind: "directive", type: i3.NgHeaderTemplateDirective, selector: "[ng-header-tmp]" }, { kind: "directive", type: i3.NgFooterTemplateDirective, selector: "[ng-footer-tmp]" }, { kind: "directive", type: i3.NgNotFoundTemplateDirective, selector: "[ng-notfound-tmp]" }, { kind: "directive", type: i3.NgLoadingTextTemplateDirective, selector: "[ng-loadingtext-tmp]" }, { 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: MatFormFieldModule }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: i4.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i5.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "ngmodule", type: MatButtonModule }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "ngmodule", type: MatButtonToggleModule }, { kind: "ngmodule", type: MatDatepickerModule }, { kind: "ngmodule", type: MatNativeDateModule }, { kind: "ngmodule", type: MatCheckboxModule }] }); }
|
|
91
91
|
}
|
|
92
92
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: NgSelectComponent, decorators: [{
|
|
93
93
|
type: Component,
|
|
@@ -107,6 +107,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
|
|
|
107
107
|
MatDatepickerModule,
|
|
108
108
|
MatNativeDateModule,
|
|
109
109
|
MatCheckboxModule,
|
|
110
|
-
], providers: [IconService], template: "<ng-select [items]=\"filteredOptions\" [multiple]=\"props?.multiple || false\" [bindLabel]=\"props?.bindLabel || 'label'\"\n [closeOnSelect]=\"props?.closeOnSelect ?? true\" [bindValue]=\"props?.bindValue || 'value'\"\n [placeholder]=\"props?.placeholder || 'Select'\" [searchable]=\"false\" [formControl]=\"formControl\"\n [clearable]=\"props?.isClearable\" [appearance]=\"props['appearance'] || 'outline'\" [loading]=\"props?.loading || false\" class=\"ng-select-custom\">\n\n @if(!!props?.showSearchBar){\n <ng-template ng-header-tmp>\n <div class=\"search-input-container mat-form-field-density-5\">\n <mat-form-field [appearance]=\"props['appearance'] || 'outline'\" class=\"w-100\">\n <sa-icon icon=\"searchIcon\" class=\"searchIcons\" size=\"20\" matPrefix></sa-icon>\n <input matInput type=\"text\" name=\"menu-search-bar\" class=\"search-input searchIcons\"\n (keyup)=\"onSearch($event)\" (keydown)=\"stopBackspacePropagation($event)\"\n [placeholder]=\"props?.searchPlaceholder || 'Search'\" [(ngModel)]=\"searchValue\" />\n <sa-icon icon=\"closeOutlined\" class=\"pointer searchIcons\" size=\"15\" matSuffix\n (click)=\"clearSearch($event)\"></sa-icon>\n </mat-form-field>\n </div>\n </ng-template>\n }\n <!-- Option template with a checkbox in front of each row -->\n <ng-template ng-option-tmp let-item=\"item\" let-item$=\"item$\">\n <div class=\"option-row\">\n @if(props?.multiple){\n <input type=\"checkbox\" [checked]=\"item$.selected\" tabindex=\"-1\" />\n }\n <span class=\"option-label\">{{ item[props.bindLabel || 'label'] }}</span>\n\n </div>\n </ng-template>\n\n <!-- Selected items chip template (optional) -->\n <ng-template ng-multi-label-tmp let-items=\"items\" let-clear=\"clear\">\n <div class=\"chips ng-values-list\">\n\n <!-- If collapsed: show only first 2 + summary -->\n <ng-container *ngIf=\"!expandedSummary\">\n @for (s of items.slice(0, 2); track s[props.bindValue || 'value']) {\n <div class=\"ng-value\">\n <span class=\"ng-value-label\">{{ s[props.bindLabel || 'label'] }}</span>\n <span class=\"ng-value-icon right\" (click)=\"clear(s)\"><sa-icon icon=\"closeOutlined\"\n size=\"11\"></sa-icon></span>\n </div>\n }\n\n @if (items.length > 2) {\n <div class=\"ng-value summary-chip pointer\" (click)=\"toggleSummary()\">\n <span class=\"ng-value-label\">+{{ items.length - 2 }}</span>\n <span class=\"ng-value-icon right\" (click)=\"clearRemaining(items, clear)\"><sa-icon\n icon=\"closeOutlined\" size=\"11\"></sa-icon></span>\n </div>\n }\n </ng-container>\n\n <!-- If expanded: show all items -->\n <ng-container *ngIf=\"expandedSummary\">\n @for (s of items; track s[props.bindValue || 'value']) {\n <div class=\"ng-value\">\n <span class=\"ng-value-label\">{{ s[props.bindLabel || 'label'] }}</span>\n <span class=\"ng-value-icon right\" (click)=\"clear(s)\"><sa-icon icon=\"closeOutlined\"\n size=\"11\"></sa-icon></span>\n </div>\n }\n <!-- Collapse button -->\n <div class=\"ng-value summary-chip pointer\" (click)=\"toggleSummary()\">\n <sa-icon class=\"ng-value-label\" size=\"18\" icon=\"leftChevronCircle\"></sa-icon>\n </div>\n </ng-container>\n\n </div>\n </ng-template>\n\n @if(props?.footer){\n <ng-template ng-footer-tmp>\n <div class=\"dropdown-footer\">{{props?.footer?.description}}</div>\n </ng-template>\n }\n\n <ng-template ng-notfound-tmp>\n <div class=\"no-results\">\n @if (searchValue?.length > 0) {\n {{ props?.searchNotFoundText || '\u274C No items match \"' + searchValue + '\"' }}\n } @else {\n {{ props?.notFoundText || '\u26A0\uFE0F No options available' }}\n }\n </div>\n </ng-template>\n\n <ng-template ng-loadingtext-tmp>\n <div class=\"loading\">\n <sa-icon icon=\"arrowClockwiseOutlined\" size=\"16\" class=\"loading-spinner\"></sa-icon>\n <span>Loading options...</span>\n </div>\n </ng-template>\n</ng-select>", styles: ["::ng-deep .ng-select-custom .search-input-container .mat-mdc-form-field-has-icon-prefix .mat-mdc-text-field-wrapper{padding:var(--small-2px, 2px) var(--small-12px, 12px)}.ng-select-custom .ng-values-list{display:flex;flex-wrap:wrap;gap:var(--small-8px, 8px)}::ng-deep .ng-select-custom.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon.right{border-left:none;display:flex;align-items:center;font-size:var(--small-6px, 6px)}::ng-deep .ng-select-custom.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value{border-radius:var(--small-4px, 4px);background:var(--grey-50, #F2F4F7);display:flex;padding:.188rem var(--small-8px, 8px) var(--small-2px, 2px) var(--small-8px, 8px);justify-content:center;align-items:center;gap:var(--small-4px, 4px)}.ng-select-custom .option-row{display:flex;width:18.75rem;height:2.5rem;padding:var(--small-12px, 12px);align-items:center;gap:var(--small-8px, 8px);flex-shrink:0}::ng-deep .ng-select-custom .mdc-form-field.mat-internal-form-field{display:flex;gap:var(--small-8px, 8px);align-items:center}::ng-deep .ng-select-custom .mdc-checkbox__ripple{display:none}::ng-deep .ng-select-custom .checkbox-style{display:flex;align-items:center}.ng-select-custom .ng-option input[type=checkbox],.ng-select input[type=checkbox]{accent-color:var(--primary-500);vertical-align:middle;width:var(--small-14px, 14px);height:var(--small-14px, 14px)}::ng-deep .ng-select-custom.ng-select .ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected{background-color:var(--primary-50)}.option-label{color:var(--text-high-emphasis, #1C1B20);font-family:var(--font-family, Roboto);font-size:var(--small-14px, 14px);font-style:normal;font-weight:400;line-height:var(--medium-20px, 20px);letter-spacing:.25px}::ng-deep .ng-select-custom.ng-select .search-input-container .mat-mdc-form-field{width:-webkit-fill-available}::ng-deep .ng-select-custom .ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-marked{background-color:var(--primary-50)}::ng-deep .ng-select-custom.ng-select .ng-arrow-wrapper .ng-arrow{display:none}::ng-deep .ng-select .ng-arrow-wrapper{width:var(--small-12px, 12px);height:var(--small-12px, 12px);display:flex;align-items:center;justify-content:center}::ng-deep .ng-select .ng-arrow-wrapper:after{content:\"\";display:inline-block;width:var(--small-8px, 8px);height:var(--small-12px, 12px);background:url(/assets/upDownChevronOutlined.svg) no-repeat center;background-size:contain}::ng-deep .ng-select-custom.ng-select.ng-select-focused:not(.ng-select-opened)>.ng-select-container{border-color:var(--primary-500);box-shadow:none}::ng-deep .ng-select-custom.ng-select .no-results{padding:.8rem}::ng-deep .ng-select-custom.ng-select .ng-select-container{padding:.23rem var(--small-12px) .2rem var(--small-12px);height:1.875rem;min-height:2.438rem;border:1px solid var(--grey-100, #EAECF0);align-items:center}::ng-deep .ng-select-custom.ng-select .option-label{color:var(--text-highemphasis, #1C1B20);font-family:var(--font-family, Roboto);font-size:var(--small-14px, 14px);font-style:normal;font-weight:400;line-height:var(--medium-20px, 20px);letter-spacing:.25px}::ng-deep .ng-select-custom.ng-select .ng-value-label{color:var(--text-mediumemphasis, #6D6979);font-family:var(--font-family-roboto);font-size:.688rem;font-style:normal;font-weight:500;line-height:var(--small-16px, 16px);letter-spacing:.5px}::ng-deep .ng-select-custom.ng-select .mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__leading,.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__notch,.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__trailing{border-color:var(--primary-500)}::ng-deep .ng-select-custom.ng-select .mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__trailing{border-top-left-radius:0;border-top-right-radius:var(--small-4px, 4px);border-bottom-right-radius:var(--small-4px, 4px);border-bottom-left-radius:0}::ng-deep .ng-select-custom.ng-select.ng-select-single .ng-value-label{color:var(--text-highemphasis);font-family:var(--font-family-roboto);font-size:var(--small-14px);font-style:normal;font-weight:400;line-height:var(--medium-20px);letter-spacing:.25px}::ng-deep .ng-select-custom.ng-select .ng-select-container .ng-value-container .ng-placeholder{color:var(--text-low-emphasis, #9B98A3);font-family:var(--font-family, Roboto);font-size:var(--small-14px, 14px);font-style:normal;font-weight:400;line-height:var(--medium-20px, 20px);letter-spacing:.25px}::ng-deep .ng-select-custom .search-input-container .mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-notched-outline .mdc-notched-outline__leading,::ng-deep .ng-select-custom .search-input-container .mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-notched-outline .mdc-notched-outline__notch,::ng-deep .ng-select-custom .search-input-container .mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-notched-outline .mdc-notched-outline__trailing{border-color:var(--grey-100)}.ng-select-custom .searchIcons{color:var(--color-text-neutral-300, #757575)}::ng-deep .ng-select-custom.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon:hover{background-color:var(--primary-50)}::ng-deep .ng-select-custom.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-label{display:flex}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}::ng-deep .ng-select-custom .loading{color:var(--text-medium-emphasis, #6D6979);font-family:var(--font-family, Roboto);font-size:var(--small-14px, 14px);display:flex;align-items:center;justify-content:center;padding:12px;gap:8px}::ng-deep .ng-select-custom .loading-spinner{animation:spin 1s linear infinite}\n"] }]
|
|
110
|
+
], providers: [IconService], template: "<ng-select [items]=\"filteredOptions\" [multiple]=\"props?.multiple || false\" [bindLabel]=\"props?.bindLabel || 'label'\"\n [closeOnSelect]=\"props?.closeOnSelect ?? true\" [bindValue]=\"props?.bindValue || 'value'\"\n [placeholder]=\"props?.placeholder || 'Select'\" [searchable]=\"false\" [formControl]=\"formControl\"\n [clearable]=\"props?.isClearable\" [appearance]=\"props['appearance'] || 'outline'\" [loading]=\"props?.loading || false\" class=\"ng-select-custom\">\n\n @if(!!props?.showSearchBar){\n <ng-template ng-header-tmp>\n <div class=\"search-input-container mat-form-field-density-5\">\n <mat-form-field [appearance]=\"props['appearance'] || 'outline'\" class=\"w-100\">\n <sa-icon icon=\"searchIcon\" class=\"searchIcons\" size=\"20\" matPrefix></sa-icon>\n <input matInput type=\"text\" name=\"menu-search-bar\" class=\"search-input searchIcons\"\n (keyup)=\"onSearch($event)\" (keydown)=\"stopBackspacePropagation($event)\"\n [placeholder]=\"props?.searchPlaceholder || 'Search'\" [(ngModel)]=\"searchValue\" />\n <sa-icon icon=\"closeOutlined\" class=\"pointer searchIcons\" size=\"15\" matSuffix\n (click)=\"clearSearch($event)\"></sa-icon>\n </mat-form-field>\n </div>\n </ng-template>\n }\n <!-- Option template with a checkbox in front of each row -->\n <ng-template ng-option-tmp let-item=\"item\" let-item$=\"item$\">\n <div class=\"option-row\">\n @if(props?.multiple){\n <input type=\"checkbox\" [checked]=\"item$.selected\" tabindex=\"-1\" />\n }\n <span class=\"option-label\">{{ item[props.bindLabel || 'label'] }}</span>\n\n </div>\n </ng-template>\n\n <!-- Selected items chip template (optional) -->\n <ng-template ng-multi-label-tmp let-items=\"items\" let-clear=\"clear\">\n <div class=\"chips ng-values-list\">\n\n <!-- If collapsed: show only first 2 + summary -->\n <ng-container *ngIf=\"!expandedSummary\">\n @for (s of items.slice(0, 2); track s[props.bindValue || 'value']) {\n <div class=\"ng-value\">\n <span class=\"ng-value-label\">{{ s[props.bindLabel || 'label'] }}</span>\n <span class=\"ng-value-icon right\" (click)=\"clear(s)\"><sa-icon icon=\"closeOutlined\"\n size=\"11\"></sa-icon></span>\n </div>\n }\n\n @if (items.length > 2) {\n <div class=\"ng-value summary-chip pointer\" (click)=\"toggleSummary()\">\n <span class=\"ng-value-label\">+{{ items.length - 2 }}</span>\n <span class=\"ng-value-icon right\" (click)=\"clearRemaining(items, clear)\"><sa-icon\n icon=\"closeOutlined\" size=\"11\"></sa-icon></span>\n </div>\n }\n </ng-container>\n\n <!-- If expanded: show all items -->\n <ng-container *ngIf=\"expandedSummary\">\n @for (s of items; track s[props.bindValue || 'value']) {\n <div class=\"ng-value\">\n <span class=\"ng-value-label\">{{ s[props.bindLabel || 'label'] }}</span>\n <span class=\"ng-value-icon right\" (click)=\"clear(s)\"><sa-icon icon=\"closeOutlined\"\n size=\"11\"></sa-icon></span>\n </div>\n }\n <!-- Collapse button -->\n <div class=\"ng-value summary-chip pointer\" (click)=\"toggleSummary()\">\n <sa-icon class=\"ng-value-label\" size=\"18\" icon=\"leftChevronCircle\"></sa-icon>\n </div>\n </ng-container>\n\n </div>\n </ng-template>\n\n @if(props?.footer){\n <ng-template ng-footer-tmp>\n <div class=\"dropdown-footer\">{{props?.footer?.description}}</div>\n </ng-template>\n }\n\n <ng-template ng-notfound-tmp>\n <div class=\"no-results\">\n @if (searchValue?.length > 0) {\n {{ props?.searchNotFoundText || '\u274C No items match \"' + searchValue + '\"' }}\n } @else {\n {{ props?.notFoundText || '\u26A0\uFE0F No options available' }}\n }\n </div>\n </ng-template>\n\n <ng-template ng-loadingtext-tmp>\n <div class=\"loading\">\n <sa-icon icon=\"loader\" size=\"16\" class=\"loading-spinner\"></sa-icon>\n <span>Loading options...</span>\n </div>\n </ng-template>\n</ng-select>", styles: ["::ng-deep .ng-select-custom .search-input-container .mat-mdc-form-field-has-icon-prefix .mat-mdc-text-field-wrapper{padding:var(--small-2px, 2px) var(--small-12px, 12px)}.ng-select-custom .ng-values-list{display:flex;flex-wrap:wrap;gap:var(--small-8px, 8px)}::ng-deep .ng-select-custom.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon.right{border-left:none;display:flex;align-items:center;font-size:var(--small-6px, 6px)}::ng-deep .ng-select-custom.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value{border-radius:var(--small-4px, 4px);background:var(--grey-50, #F2F4F7);display:flex;padding:.188rem var(--small-8px, 8px) var(--small-2px, 2px) var(--small-8px, 8px);justify-content:center;align-items:center;gap:var(--small-4px, 4px)}.ng-select-custom .option-row{display:flex;width:18.75rem;height:2.5rem;padding:var(--small-12px, 12px);align-items:center;gap:var(--small-8px, 8px);flex-shrink:0}::ng-deep .ng-select-custom .mdc-form-field.mat-internal-form-field{display:flex;gap:var(--small-8px, 8px);align-items:center}::ng-deep .ng-select-custom .mdc-checkbox__ripple{display:none}::ng-deep .ng-select-custom .checkbox-style{display:flex;align-items:center}.ng-select-custom .ng-option input[type=checkbox],.ng-select input[type=checkbox]{accent-color:var(--primary-500);vertical-align:middle;width:var(--small-14px, 14px);height:var(--small-14px, 14px)}::ng-deep .ng-select-custom.ng-select .ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected{background-color:var(--primary-50)}.option-label{color:var(--text-high-emphasis, #1C1B20);font-family:var(--font-family, Roboto);font-size:var(--small-14px, 14px);font-style:normal;font-weight:400;line-height:var(--medium-20px, 20px);letter-spacing:.25px}::ng-deep .ng-select-custom.ng-select .search-input-container .mat-mdc-form-field{width:-webkit-fill-available}::ng-deep .ng-select-custom .ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-marked{background-color:var(--primary-50)}::ng-deep .ng-select-custom.ng-select .ng-arrow-wrapper .ng-arrow{display:none}::ng-deep .ng-select .ng-arrow-wrapper{width:var(--small-12px, 12px);height:var(--small-12px, 12px);display:flex;align-items:center;justify-content:center}::ng-deep .ng-select .ng-arrow-wrapper:after{content:\"\";display:inline-block;width:var(--small-8px, 8px);height:var(--small-12px, 12px);background:url(/assets/upDownChevronOutlined.svg) no-repeat center;background-size:contain}::ng-deep .ng-select-custom.ng-select.ng-select-focused:not(.ng-select-opened)>.ng-select-container{border-color:var(--primary-500);box-shadow:none}::ng-deep .ng-select-custom.ng-select .no-results{padding:.8rem}::ng-deep .ng-select-custom.ng-select .ng-select-container{padding:.23rem var(--small-12px) .2rem var(--small-12px);height:1.875rem;min-height:2.438rem;border:1px solid var(--grey-100, #EAECF0);align-items:center}::ng-deep .ng-select-custom.ng-select .option-label{color:var(--text-highemphasis, #1C1B20);font-family:var(--font-family, Roboto);font-size:var(--small-14px, 14px);font-style:normal;font-weight:400;line-height:var(--medium-20px, 20px);letter-spacing:.25px}::ng-deep .ng-select-custom.ng-select .ng-value-label{color:var(--text-mediumemphasis, #6D6979);font-family:var(--font-family-roboto);font-size:.688rem;font-style:normal;font-weight:500;line-height:var(--small-16px, 16px);letter-spacing:.5px}::ng-deep .ng-select-custom.ng-select .mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__leading,.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__notch,.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__trailing{border-color:var(--primary-500)}::ng-deep .ng-select-custom.ng-select .mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__trailing{border-top-left-radius:0;border-top-right-radius:var(--small-4px, 4px);border-bottom-right-radius:var(--small-4px, 4px);border-bottom-left-radius:0}::ng-deep .ng-select-custom.ng-select.ng-select-single .ng-value-label{color:var(--text-highemphasis);font-family:var(--font-family-roboto);font-size:var(--small-14px);font-style:normal;font-weight:400;line-height:var(--medium-20px);letter-spacing:.25px}::ng-deep .ng-select-custom.ng-select .ng-select-container .ng-value-container .ng-placeholder{color:var(--text-low-emphasis, #9B98A3);font-family:var(--font-family, Roboto);font-size:var(--small-14px, 14px);font-style:normal;font-weight:400;line-height:var(--medium-20px, 20px);letter-spacing:.25px}::ng-deep .ng-select-custom .search-input-container .mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-notched-outline .mdc-notched-outline__leading,::ng-deep .ng-select-custom .search-input-container .mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-notched-outline .mdc-notched-outline__notch,::ng-deep .ng-select-custom .search-input-container .mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-notched-outline .mdc-notched-outline__trailing{border-color:var(--grey-100)}.ng-select-custom .searchIcons{color:var(--color-text-neutral-300, #757575)}::ng-deep .ng-select-custom.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon:hover{background-color:var(--primary-50)}::ng-deep .ng-select-custom.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-label{display:flex}::ng-deep .ng-select-custom .loading{color:var(--text-medium-emphasis, #6D6979);font-family:var(--font-family, Roboto);font-size:var(--small-14px, 14px);display:flex;align-items:center;justify-content:center;padding:12px;gap:8px}\n"] }]
|
|
111
111
|
}] });
|
|
112
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudC1saWJyYXJ5L3NyYy9saWIvZHJvcGRvd24vbmctc2VsZWN0L25nLXNlbGVjdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnQtbGlicmFyeS9zcmMvbGliL2Ryb3Bkb3duL25nLXNlbGVjdC9uZy1zZWxlY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVyxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsU0FBUyxFQUFtQixNQUFNLGtCQUFrQixDQUFDO0FBQzlELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzdELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7Ozs7O0FBMEIvRCxNQUFNLE9BQU8saUJBQWtCLFNBQVEsU0FBK0I7SUF4QnRFOztRQTBCRSxnQkFBVyxHQUFXLEVBQUUsQ0FBQztRQXlEekIsb0JBQWUsR0FBRyxLQUFLLENBQUM7S0FrQnpCO0lBeEVDLFFBQVEsQ0FBQyxLQUFZO1FBQ25CLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDMUQsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLElBQUksT0FBTyxDQUFDO1FBRWxELElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNqQixJQUFJLENBQUMsZUFBZSxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLE9BQU8sSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQzlELE9BQU87UUFDVCxDQUFDO1FBRUQsSUFBSSxDQUFDLGVBQWUsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLE9BQU8sSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDcEUsTUFBTSxLQUFLLEdBQUcsR0FBRyxFQUFFLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3JDLE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMzRCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQztRQUNuQyxJQUFJLENBQUMsZUFBZSxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFFdkQsd0ZBQXdGO1FBQ3hGLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsWUFBWSxDQUFDO1FBQzVDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssS0FBSyxJQUFJLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEtBQUssU0FBUyxDQUFDLElBQUksVUFBVSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQzFHLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3hDLENBQUM7SUFDSCxDQUFDO0lBRUQsU0FBUztRQUNQLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEtBQUssSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3pDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUM7WUFDbkMsSUFBSSxDQUFDLGVBQWUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDbEQsSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUMsQ0FBQyx5Q0FBeUM7UUFDbEUsQ0FBQztJQUNILENBQUM7SUFJRCx5Q0FBeUM7SUFDekMsV0FBVztRQUNULE9BQU8sSUFBSSxDQUFDLEtBQUssRUFBRSxjQUFjLENBQUMsTUFBTSxLQUFLLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUM7SUFDaEYsQ0FBQztJQUVELGVBQWU7UUFDYixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsSUFBSSxPQUFPLENBQUM7UUFDbEQsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsR0FBRyxFQUFFLENBQUM7UUFDakMsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLE9BQU8sSUFBSSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUN2RixDQUFDO0lBQ0gsQ0FBQztJQUVELGNBQWMsQ0FBQyxLQUFZLEVBQUUsS0FBMEI7UUFDckQsNENBQTRDO1FBQzVDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUdELGFBQWE7UUFDWCxJQUFJLENBQUMsZUFBZSxHQUFHLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUMvQyxDQUFDO0lBRUQsbURBQW1EO0lBQ25ELHdCQUF3QixDQUFDLEtBQW9CO1FBQzNDLElBQUksS0FBSyxDQUFDLEdBQUcsS0FBSyxXQUFXLElBQUksS0FBSyxDQUFDLE9BQU8sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNyRCxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDMUIsQ0FBQztJQUNILENBQUM7SUFFRCxXQUFXLENBQUMsS0FBWTtRQUN0QixJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztRQUN0QixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLGVBQWUsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDeEQsQ0FBQzs4R0E1RVUsaUJBQWlCO2tHQUFqQixpQkFBaUIsMkRBSmpCLENBQUMsV0FBVyxDQUFDLGlEQ3RDMUIsNGtKQTZGWSx1MUxEdkVSLFlBQVksa0lBQ1osbUJBQW1CLHlrQkFDbkIsV0FBVyxzUEFDWCxZQUFZLDhCQUNaLGNBQWMsNDdDQUNkLGFBQWEsNk5BQ2Isa0JBQWtCLDJlQUNsQixjQUFjLDBXQUNkLGFBQWEsOEJBQ2IsZUFBZSw4QkFDZixnQkFBZ0IsOEJBQ2hCLHFCQUFxQiw4QkFDckIsbUJBQW1CLDhCQUNuQixtQkFBbUIsOEJBQ25CLGlCQUFpQjs7MkZBTVIsaUJBQWlCO2tCQXhCN0IsU0FBUzsrQkFDRSxjQUFjLGNBQ1osSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osbUJBQW1CO3dCQUNuQixXQUFXO3dCQUNYLFlBQVk7d0JBQ1osY0FBYzt3QkFDZCxhQUFhO3dCQUNiLGtCQUFrQjt3QkFDbEIsY0FBYzt3QkFDZCxhQUFhO3dCQUNiLGVBQWU7d0JBQ2YsZ0JBQWdCO3dCQUNoQixxQkFBcUI7d0JBQ3JCLG1CQUFtQjt3QkFDbkIsbUJBQW1CO3dCQUNuQixpQkFBaUI7cUJBQ2xCLGFBQ1UsQ0FBQyxXQUFXLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIERvQ2hlY2sgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEZvcm1seU1vZHVsZSB9IGZyb20gJ0BuZ3gtZm9ybWx5L2NvcmUnO1xuaW1wb3J0IHsgRmllbGRUeXBlLCBGaWVsZFR5cGVDb25maWcgfSBmcm9tICdAbmd4LWZvcm1seS9jb3JlJztcbmltcG9ydCB7IE5nU2VsZWN0TW9kdWxlIH0gZnJvbSAnQG5nLXNlbGVjdC9uZy1zZWxlY3QnO1xuaW1wb3J0IHsgSWNvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2ljb24vaWNvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgSWNvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9pY29uL2ljb24uc2VydmljZSc7XG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcbmltcG9ydCB7IE1hdEJ1dHRvblRvZ2dsZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbi10b2dnbGUnO1xuaW1wb3J0IHsgTWF0RGF0ZXBpY2tlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RhdGVwaWNrZXInO1xuaW1wb3J0IHsgTWF0TmF0aXZlRGF0ZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHsgTWF0Q2hlY2tib3hNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGVja2JveCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NhLW5nLXNlbGVjdCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBGb3JtbHlNb2R1bGUsXG4gICAgTmdTZWxlY3RNb2R1bGUsXG4gICAgSWNvbkNvbXBvbmVudCxcbiAgICBNYXRGb3JtRmllbGRNb2R1bGUsXG4gICAgTWF0SW5wdXRNb2R1bGUsXG4gICAgTWF0SWNvbk1vZHVsZSxcbiAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgTWF0VG9vbHRpcE1vZHVsZSxcbiAgICBNYXRCdXR0b25Ub2dnbGVNb2R1bGUsXG4gICAgTWF0RGF0ZXBpY2tlck1vZHVsZSxcbiAgICBNYXROYXRpdmVEYXRlTW9kdWxlLFxuICAgIE1hdENoZWNrYm94TW9kdWxlLFxuICBdLFxuICBwcm92aWRlcnM6IFtJY29uU2VydmljZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9uZy1zZWxlY3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vbmctc2VsZWN0LmNvbXBvbmVudC5jc3MnXG59KVxuZXhwb3J0IGNsYXNzIE5nU2VsZWN0Q29tcG9uZW50IGV4dGVuZHMgRmllbGRUeXBlPEZpZWxkVHlwZUNvbmZpZzxhbnk+PiBpbXBsZW1lbnRzIERvQ2hlY2sge1xuICBmaWx0ZXJlZE9wdGlvbnM6IGFueVtdO1xuICBzZWFyY2hWYWx1ZTogc3RyaW5nID0gJyc7XG4gIHByaXZhdGUgX29wdGlvbnM6IGFueVtdO1xuXG4gIG9uU2VhcmNoKGV2ZW50OiBFdmVudCkge1xuICAgIGNvbnN0IHNlYXJjaFZhbHVlID0gdGhpcy5zZWFyY2hWYWx1ZS50cmltKCkudG9Mb3dlckNhc2UoKTtcbiAgICBjb25zdCBiaW5kTGFiZWwgPSB0aGlzLnByb3BzLmJpbmRMYWJlbCB8fCAnbGFiZWwnO1xuXG4gICAgaWYgKCFzZWFyY2hWYWx1ZSkge1xuICAgICAgdGhpcy5maWx0ZXJlZE9wdGlvbnMgPSBbLi4uKHRoaXMuZmllbGQucHJvcHM/Lm9wdGlvbnMgfHwgW10pXTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmZpbHRlcmVkT3B0aW9ucyA9ICh0aGlzLmZpZWxkLnByb3BzPy5vcHRpb25zIHx8IFtdKS5maWx0ZXIob3B0ID0+IHtcbiAgICAgIGNvbnN0IGxhYmVsID0gb3B0Py5bYmluZExhYmVsXSA/PyAnJztcbiAgICAgIHJldHVybiBTdHJpbmcobGFiZWwpLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoVmFsdWUpO1xuICAgIH0pO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5fb3B0aW9ucyA9IHRoaXMucHJvcHMub3B0aW9ucztcbiAgICB0aGlzLmZpbHRlcmVkT3B0aW9ucyA9IFsuLi4odGhpcy5wcm9wcy5vcHRpb25zIHx8IFtdKV07XG5cbiAgICAvLyBJZiBhIGRlZmF1bHQgdmFsdWUgaXMgcHJvdmlkZWQgaW4gcHJvcHMgYW5kIHRoZSBmb3JtIGNvbnRyb2wgaGFzIG5vIHZhbHVlIHlldCwgc2V0IGl0XG4gICAgY29uc3QgZGVmYXVsdFZhbCA9IHRoaXMucHJvcHM/LmRlZmF1bHRWYWx1ZTtcbiAgICBpZiAoKHRoaXMuZm9ybUNvbnRyb2wudmFsdWUgPT09IG51bGwgfHwgdGhpcy5mb3JtQ29udHJvbC52YWx1ZSA9PT0gdW5kZWZpbmVkKSAmJiBkZWZhdWx0VmFsICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsdWUoZGVmYXVsdFZhbCk7XG4gICAgfVxuICB9XG5cbiAgbmdEb0NoZWNrKCkge1xuICAgIGlmICh0aGlzLnByb3BzLm9wdGlvbnMgIT09IHRoaXMuX29wdGlvbnMpIHtcbiAgICAgIHRoaXMuX29wdGlvbnMgPSB0aGlzLnByb3BzLm9wdGlvbnM7XG4gICAgICB0aGlzLmZpbHRlcmVkT3B0aW9ucyA9IFsuLi4odGhpcy5fb3B0aW9ucyB8fCBbXSldO1xuICAgICAgdGhpcy5zZWFyY2hWYWx1ZSA9ICcnOyAvLyBDbGVhciBzZWFyY2ggdmFsdWUgd2hlbiBvcHRpb25zIGNoYW5nZVxuICAgIH1cbiAgfVxuXG5cblxuICAvLyAoT3B0aW9uYWwpIFNlbGVjdC9EZXNlbGVjdCBhbGwgaGVscGVyc1xuICBhbGxTZWxlY3RlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5wcm9wcz8uc2VsZWN0ZWRWYWx1ZXMubGVuZ3RoID09PSB0aGlzLmZpZWxkLnByb3BzPy5vcHRpb25zLmxlbmd0aDtcbiAgfVxuXG4gIHRvZ2dsZVNlbGVjdEFsbCgpIHtcbiAgICBjb25zdCBiaW5kVmFsdWUgPSB0aGlzLnByb3BzLmJpbmRWYWx1ZSB8fCAndmFsdWUnO1xuICAgIGlmICh0aGlzLmFsbFNlbGVjdGVkKCkpIHtcbiAgICAgIHRoaXMucHJvcHMuc2VsZWN0ZWRWYWx1ZXMgPSBbXTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5wcm9wcy5zZWxlY3RlZFZhbHVlcyA9ICh0aGlzLmZpZWxkLnByb3BzPy5vcHRpb25zIHx8IFtdKS5tYXAobyA9PiBvW2JpbmRWYWx1ZV0pO1xuICAgIH1cbiAgfVxuXG4gIGNsZWFyUmVtYWluaW5nKGl0ZW1zOiBhbnlbXSwgY2xlYXI6IChpdGVtOiBhbnkpID0+IHZvaWQpOiB2b2lkIHtcbiAgICAvLyByZW1vdmUgb25seSB0aGUgaXRlbXMgYWZ0ZXIgdGhlIGZpcnN0IHR3b1xuICAgIGl0ZW1zLnNsaWNlKDIpLmZvckVhY2goaXRlbSA9PiBjbGVhcihpdGVtKSk7XG4gIH1cbiAgZXhwYW5kZWRTdW1tYXJ5ID0gZmFsc2U7XG5cbiAgdG9nZ2xlU3VtbWFyeSgpOiB2b2lkIHtcbiAgICB0aGlzLmV4cGFuZGVkU3VtbWFyeSA9ICF0aGlzLmV4cGFuZGVkU3VtbWFyeTtcbiAgfVxuXG4gIC8vIFRoaXMgbWV0aG9kIHdpbGwgc3RvcCB0aGUgZXZlbnQgZnJvbSBidWJibGluZyB1cFxuICBzdG9wQmFja3NwYWNlUHJvcGFnYXRpb24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBpZiAoZXZlbnQua2V5ID09PSAnQmFja3NwYWNlJyB8fCBldmVudC5rZXlDb2RlID09PSA4KSB7XG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9XG4gIH1cblxuICBjbGVhclNlYXJjaChldmVudDogRXZlbnQpIHtcbiAgICB0aGlzLnNlYXJjaFZhbHVlID0gJyc7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5maWx0ZXJlZE9wdGlvbnMgPSBbLi4udGhpcy5maWVsZC5wcm9wcz8ub3B0aW9uc107XG4gIH1cbn1cbiIsIjxuZy1zZWxlY3QgW2l0ZW1zXT1cImZpbHRlcmVkT3B0aW9uc1wiIFttdWx0aXBsZV09XCJwcm9wcz8ubXVsdGlwbGUgfHwgZmFsc2VcIiBbYmluZExhYmVsXT1cInByb3BzPy5iaW5kTGFiZWwgfHwgJ2xhYmVsJ1wiXG4gICAgW2Nsb3NlT25TZWxlY3RdPVwicHJvcHM/LmNsb3NlT25TZWxlY3QgPz8gdHJ1ZVwiIFtiaW5kVmFsdWVdPVwicHJvcHM/LmJpbmRWYWx1ZSB8fCAndmFsdWUnXCJcbiAgICBbcGxhY2Vob2xkZXJdPVwicHJvcHM/LnBsYWNlaG9sZGVyIHx8ICdTZWxlY3QnXCIgW3NlYXJjaGFibGVdPVwiZmFsc2VcIiBbZm9ybUNvbnRyb2xdPVwiZm9ybUNvbnRyb2xcIlxuICAgIFtjbGVhcmFibGVdPVwicHJvcHM/LmlzQ2xlYXJhYmxlXCIgW2FwcGVhcmFuY2VdPVwicHJvcHNbJ2FwcGVhcmFuY2UnXSB8fCAnb3V0bGluZSdcIiBbbG9hZGluZ109XCJwcm9wcz8ubG9hZGluZyB8fCBmYWxzZVwiIGNsYXNzPVwibmctc2VsZWN0LWN1c3RvbVwiPlxuXG4gICAgQGlmKCEhcHJvcHM/LnNob3dTZWFyY2hCYXIpe1xuICAgIDxuZy10ZW1wbGF0ZSBuZy1oZWFkZXItdG1wPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic2VhcmNoLWlucHV0LWNvbnRhaW5lciBtYXQtZm9ybS1maWVsZC1kZW5zaXR5LTVcIj5cbiAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBbYXBwZWFyYW5jZV09XCJwcm9wc1snYXBwZWFyYW5jZSddIHx8ICdvdXRsaW5lJ1wiIGNsYXNzPVwidy0xMDBcIj5cbiAgICAgICAgICAgICAgICA8c2EtaWNvbiBpY29uPVwic2VhcmNoSWNvblwiIGNsYXNzPVwic2VhcmNoSWNvbnNcIiBzaXplPVwiMjBcIiBtYXRQcmVmaXg+PC9zYS1pY29uPlxuICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCB0eXBlPVwidGV4dFwiIG5hbWU9XCJtZW51LXNlYXJjaC1iYXJcIiBjbGFzcz1cInNlYXJjaC1pbnB1dCBzZWFyY2hJY29uc1wiXG4gICAgICAgICAgICAgICAgICAgIChrZXl1cCk9XCJvblNlYXJjaCgkZXZlbnQpXCIgKGtleWRvd24pPVwic3RvcEJhY2tzcGFjZVByb3BhZ2F0aW9uKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwicHJvcHM/LnNlYXJjaFBsYWNlaG9sZGVyIHx8ICdTZWFyY2gnXCIgWyhuZ01vZGVsKV09XCJzZWFyY2hWYWx1ZVwiIC8+XG4gICAgICAgICAgICAgICAgPHNhLWljb24gaWNvbj1cImNsb3NlT3V0bGluZWRcIiBjbGFzcz1cInBvaW50ZXIgc2VhcmNoSWNvbnNcIiBzaXplPVwiMTVcIiBtYXRTdWZmaXhcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNsZWFyU2VhcmNoKCRldmVudClcIj48L3NhLWljb24+XG4gICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIH1cbiAgICA8IS0tIE9wdGlvbiB0ZW1wbGF0ZSB3aXRoIGEgY2hlY2tib3ggaW4gZnJvbnQgb2YgZWFjaCByb3cgLS0+XG4gICAgPG5nLXRlbXBsYXRlIG5nLW9wdGlvbi10bXAgbGV0LWl0ZW09XCJpdGVtXCIgbGV0LWl0ZW0kPVwiaXRlbSRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm9wdGlvbi1yb3dcIj5cbiAgICAgICAgICAgIEBpZihwcm9wcz8ubXVsdGlwbGUpe1xuICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIFtjaGVja2VkXT1cIml0ZW0kLnNlbGVjdGVkXCIgdGFiaW5kZXg9XCItMVwiIC8+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm9wdGlvbi1sYWJlbFwiPnt7IGl0ZW1bcHJvcHMuYmluZExhYmVsIHx8ICdsYWJlbCddIH19PC9zcGFuPlxuXG4gICAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICA8IS0tIFNlbGVjdGVkIGl0ZW1zIGNoaXAgdGVtcGxhdGUgKG9wdGlvbmFsKSAtLT5cbiAgICA8bmctdGVtcGxhdGUgbmctbXVsdGktbGFiZWwtdG1wIGxldC1pdGVtcz1cIml0ZW1zXCIgbGV0LWNsZWFyPVwiY2xlYXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNoaXBzIG5nLXZhbHVlcy1saXN0XCI+XG5cbiAgICAgICAgICAgIDwhLS0gSWYgY29sbGFwc2VkOiBzaG93IG9ubHkgZmlyc3QgMiArIHN1bW1hcnkgLS0+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWV4cGFuZGVkU3VtbWFyeVwiPlxuICAgICAgICAgICAgICAgIEBmb3IgKHMgb2YgaXRlbXMuc2xpY2UoMCwgMik7IHRyYWNrIHNbcHJvcHMuYmluZFZhbHVlIHx8ICd2YWx1ZSddKSB7XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5nLXZhbHVlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibmctdmFsdWUtbGFiZWxcIj57eyBzW3Byb3BzLmJpbmRMYWJlbCB8fCAnbGFiZWwnXSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJuZy12YWx1ZS1pY29uIHJpZ2h0XCIgKGNsaWNrKT1cImNsZWFyKHMpXCI+PHNhLWljb24gaWNvbj1cImNsb3NlT3V0bGluZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCIxMVwiPjwvc2EtaWNvbj48L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgQGlmIChpdGVtcy5sZW5ndGggPiAyKSB7XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5nLXZhbHVlIHN1bW1hcnktY2hpcCBwb2ludGVyXCIgKGNsaWNrKT1cInRvZ2dsZVN1bW1hcnkoKVwiPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm5nLXZhbHVlLWxhYmVsXCI+K3t7IGl0ZW1zLmxlbmd0aCAtIDIgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibmctdmFsdWUtaWNvbiByaWdodFwiIChjbGljayk9XCJjbGVhclJlbWFpbmluZyhpdGVtcywgY2xlYXIpXCI+PHNhLWljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uPVwiY2xvc2VPdXRsaW5lZFwiIHNpemU9XCIxMVwiPjwvc2EtaWNvbj48L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgIDwhLS0gSWYgZXhwYW5kZWQ6IHNob3cgYWxsIGl0ZW1zIC0tPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImV4cGFuZGVkU3VtbWFyeVwiPlxuICAgICAgICAgICAgICAgIEBmb3IgKHMgb2YgaXRlbXM7IHRyYWNrIHNbcHJvcHMuYmluZFZhbHVlIHx8ICd2YWx1ZSddKSB7XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5nLXZhbHVlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibmctdmFsdWUtbGFiZWxcIj57eyBzW3Byb3BzLmJpbmRMYWJlbCB8fCAnbGFiZWwnXSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJuZy12YWx1ZS1pY29uIHJpZ2h0XCIgKGNsaWNrKT1cImNsZWFyKHMpXCI+PHNhLWljb24gaWNvbj1cImNsb3NlT3V0bGluZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCIxMVwiPjwvc2EtaWNvbj48L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwhLS0gQ29sbGFwc2UgYnV0dG9uIC0tPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJuZy12YWx1ZSBzdW1tYXJ5LWNoaXAgcG9pbnRlclwiIChjbGljayk9XCJ0b2dnbGVTdW1tYXJ5KClcIj5cbiAgICAgICAgICAgICAgICAgICAgPHNhLWljb24gY2xhc3M9XCJuZy12YWx1ZS1sYWJlbFwiIHNpemU9XCIxOFwiIGljb249XCJsZWZ0Q2hldnJvbkNpcmNsZVwiPjwvc2EtaWNvbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICBAaWYocHJvcHM/LmZvb3Rlcil7XG4gICAgPG5nLXRlbXBsYXRlIG5nLWZvb3Rlci10bXA+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkcm9wZG93bi1mb290ZXJcIj57e3Byb3BzPy5mb290ZXI/LmRlc2NyaXB0aW9ufX08L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIH1cblxuICAgIDxuZy10ZW1wbGF0ZSBuZy1ub3Rmb3VuZC10bXA+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJuby1yZXN1bHRzXCI+XG4gICAgICAgICAgICBAaWYgKHNlYXJjaFZhbHVlPy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICB7eyBwcm9wcz8uc2VhcmNoTm90Rm91bmRUZXh0IHx8ICfinYwgTm8gaXRlbXMgbWF0Y2ggXCInICsgc2VhcmNoVmFsdWUgKyAnXCInIH19XG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIHt7IHByb3BzPy5ub3RGb3VuZFRleHQgfHwgJ+KaoO+4jyBObyBvcHRpb25zIGF2YWlsYWJsZScgfX1cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgIDxuZy10ZW1wbGF0ZSBuZy1sb2FkaW5ndGV4dC10bXA+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJsb2FkaW5nXCI+XG4gICAgICAgICAgICA8c2EtaWNvbiBpY29uPVwiYXJyb3dDbG9ja3dpc2VPdXRsaW5lZFwiIHNpemU9XCIxNlwiIGNsYXNzPVwibG9hZGluZy1zcGlubmVyXCI+PC9zYS1pY29uPlxuICAgICAgICAgICAgPHNwYW4+TG9hZGluZyBvcHRpb25zLi4uPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuPC9uZy1zZWxlY3Q+Il19
|
|
112
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudC1saWJyYXJ5L3NyYy9saWIvZHJvcGRvd24vbmctc2VsZWN0L25nLXNlbGVjdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnQtbGlicmFyeS9zcmMvbGliL2Ryb3Bkb3duL25nLXNlbGVjdC9uZy1zZWxlY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVyxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsU0FBUyxFQUFtQixNQUFNLGtCQUFrQixDQUFDO0FBQzlELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGlD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VyxzUEFDWCxZQUFZLDhCQUNaLGNBQWMsNDdDQUNkLGFBQWEsNk5BQ2Isa0JBQWtCLDJlQUNsQixjQUFjLDBXQUNkLGFBQWEsOEJBQ2IsZUFBZSw4QkFDZixnQkFBZ0IsOEJBQ2hCLHFCQUFxQiw4QkFDckIsbUJBQW1CLDhCQUNuQixtQkFBbUIsOEJBQ25CLGlCQUFpQjs7MkZBTVIsaUJBQWlCO2tCQXhCN0IsU0FBUzsrQkFDRSxjQUFjLGNBQ1osSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osbUJBQW1CO3dCQUNuQixXQUFXO3dCQUNYLFlBQVk7d0JBQ1osY0FBYzt3QkFDZCxhQUFhO3dCQUNiLGtCQUFrQjt3QkFDbEIsY0FBYzt3QkFDZCxhQUFhO3dCQUNiLGVBQWU7d0JBQ2YsZ0JBQWdCO3dCQUNoQixxQkFBcUI7d0JBQ3JCLG1CQUFtQjt3QkFDbkIsbUJBQW1CO3dCQUNuQixpQkFBaUI7cUJBQ2xCLGFBQ1UsQ0FBQyxXQUFXLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIERvQ2hlY2sgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEZvcm1seU1vZHVsZSB9IGZyb20gJ0BuZ3gtZm9ybWx5L2NvcmUnO1xuaW1wb3J0IHsgRmllbGRUeXBlLCBGaWVsZFR5cGVDb25maWcgfSBmcm9tICdAbmd4LWZvcm1seS9jb3JlJztcbmltcG9ydCB7IE5nU2VsZWN0TW9kdWxlIH0gZnJvbSAnQG5nLXNlbGVjdC9uZy1zZWxlY3QnO1xuaW1wb3J0IHsgSWNvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2ljb24vaWNvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgSWNvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9pY29uL2ljb24uc2VydmljZSc7XG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcbmltcG9ydCB7IE1hdEJ1dHRvblRvZ2dsZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbi10b2dnbGUnO1xuaW1wb3J0IHsgTWF0RGF0ZXBpY2tlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RhdGVwaWNrZXInO1xuaW1wb3J0IHsgTWF0TmF0aXZlRGF0ZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHsgTWF0Q2hlY2tib3hNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGVja2JveCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NhLW5nLXNlbGVjdCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBGb3JtbHlNb2R1bGUsXG4gICAgTmdTZWxlY3RNb2R1bGUsXG4gICAgSWNvbkNvbXBvbmVudCxcbiAgICBNYXRGb3JtRmllbGRNb2R1bGUsXG4gICAgTWF0SW5wdXRNb2R1bGUsXG4gICAgTWF0SWNvbk1vZHVsZSxcbiAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgTWF0VG9vbHRpcE1vZHVsZSxcbiAgICBNYXRCdXR0b25Ub2dnbGVNb2R1bGUsXG4gICAgTWF0RGF0ZXBpY2tlck1vZHVsZSxcbiAgICBNYXROYXRpdmVEYXRlTW9kdWxlLFxuICAgIE1hdENoZWNrYm94TW9kdWxlLFxuICBdLFxuICBwcm92aWRlcnM6IFtJY29uU2VydmljZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9uZy1zZWxlY3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vbmctc2VsZWN0LmNvbXBvbmVudC5jc3MnXG59KVxuZXhwb3J0IGNsYXNzIE5nU2VsZWN0Q29tcG9uZW50IGV4dGVuZHMgRmllbGRUeXBlPEZpZWxkVHlwZUNvbmZpZzxhbnk+PiBpbXBsZW1lbnRzIERvQ2hlY2sge1xuICBmaWx0ZXJlZE9wdGlvbnM6IGFueVtdO1xuICBzZWFyY2hWYWx1ZTogc3RyaW5nID0gJyc7XG4gIHByaXZhdGUgX29wdGlvbnM6IGFueVtdO1xuXG4gIG9uU2VhcmNoKGV2ZW50OiBFdmVudCkge1xuICAgIGNvbnN0IHNlYXJjaFZhbHVlID0gdGhpcy5zZWFyY2hWYWx1ZS50cmltKCkudG9Mb3dlckNhc2UoKTtcbiAgICBjb25zdCBiaW5kTGFiZWwgPSB0aGlzLnByb3BzLmJpbmRMYWJlbCB8fCAnbGFiZWwnO1xuXG4gICAgaWYgKCFzZWFyY2hWYWx1ZSkge1xuICAgICAgdGhpcy5maWx0ZXJlZE9wdGlvbnMgPSBbLi4uKHRoaXMuZmllbGQucHJvcHM/Lm9wdGlvbnMgfHwgW10pXTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmZpbHRlcmVkT3B0aW9ucyA9ICh0aGlzLmZpZWxkLnByb3BzPy5vcHRpb25zIHx8IFtdKS5maWx0ZXIob3B0ID0+IHtcbiAgICAgIGNvbnN0IGxhYmVsID0gb3B0Py5bYmluZExhYmVsXSA/PyAnJztcbiAgICAgIHJldHVybiBTdHJpbmcobGFiZWwpLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoVmFsdWUpO1xuICAgIH0pO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5fb3B0aW9ucyA9IHRoaXMucHJvcHMub3B0aW9ucztcbiAgICB0aGlzLmZpbHRlcmVkT3B0aW9ucyA9IFsuLi4odGhpcy5wcm9wcy5vcHRpb25zIHx8IFtdKV07XG5cbiAgICAvLyBJZiBhIGRlZmF1bHQgdmFsdWUgaXMgcHJvdmlkZWQgaW4gcHJvcHMgYW5kIHRoZSBmb3JtIGNvbnRyb2wgaGFzIG5vIHZhbHVlIHlldCwgc2V0IGl0XG4gICAgY29uc3QgZGVmYXVsdFZhbCA9IHRoaXMucHJvcHM/LmRlZmF1bHRWYWx1ZTtcbiAgICBpZiAoKHRoaXMuZm9ybUNvbnRyb2wudmFsdWUgPT09IG51bGwgfHwgdGhpcy5mb3JtQ29udHJvbC52YWx1ZSA9PT0gdW5kZWZpbmVkKSAmJiBkZWZhdWx0VmFsICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsdWUoZGVmYXVsdFZhbCk7XG4gICAgfVxuICB9XG5cbiAgbmdEb0NoZWNrKCkge1xuICAgIGlmICh0aGlzLnByb3BzLm9wdGlvbnMgIT09IHRoaXMuX29wdGlvbnMpIHtcbiAgICAgIHRoaXMuX29wdGlvbnMgPSB0aGlzLnByb3BzLm9wdGlvbnM7XG4gICAgICB0aGlzLmZpbHRlcmVkT3B0aW9ucyA9IFsuLi4odGhpcy5fb3B0aW9ucyB8fCBbXSldO1xuICAgICAgdGhpcy5zZWFyY2hWYWx1ZSA9ICcnOyAvLyBDbGVhciBzZWFyY2ggdmFsdWUgd2hlbiBvcHRpb25zIGNoYW5nZVxuICAgIH1cbiAgfVxuXG5cblxuICAvLyAoT3B0aW9uYWwpIFNlbGVjdC9EZXNlbGVjdCBhbGwgaGVscGVyc1xuICBhbGxTZWxlY3RlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5wcm9wcz8uc2VsZWN0ZWRWYWx1ZXMubGVuZ3RoID09PSB0aGlzLmZpZWxkLnByb3BzPy5vcHRpb25zLmxlbmd0aDtcbiAgfVxuXG4gIHRvZ2dsZVNlbGVjdEFsbCgpIHtcbiAgICBjb25zdCBiaW5kVmFsdWUgPSB0aGlzLnByb3BzLmJpbmRWYWx1ZSB8fCAndmFsdWUnO1xuICAgIGlmICh0aGlzLmFsbFNlbGVjdGVkKCkpIHtcbiAgICAgIHRoaXMucHJvcHMuc2VsZWN0ZWRWYWx1ZXMgPSBbXTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5wcm9wcy5zZWxlY3RlZFZhbHVlcyA9ICh0aGlzLmZpZWxkLnByb3BzPy5vcHRpb25zIHx8IFtdKS5tYXAobyA9PiBvW2JpbmRWYWx1ZV0pO1xuICAgIH1cbiAgfVxuXG4gIGNsZWFyUmVtYWluaW5nKGl0ZW1zOiBhbnlbXSwgY2xlYXI6IChpdGVtOiBhbnkpID0+IHZvaWQpOiB2b2lkIHtcbiAgICAvLyByZW1vdmUgb25seSB0aGUgaXRlbXMgYWZ0ZXIgdGhlIGZpcnN0IHR3b1xuICAgIGl0ZW1zLnNsaWNlKDIpLmZvckVhY2goaXRlbSA9PiBjbGVhcihpdGVtKSk7XG4gIH1cbiAgZXhwYW5kZWRTdW1tYXJ5ID0gZmFsc2U7XG5cbiAgdG9nZ2xlU3VtbWFyeSgpOiB2b2lkIHtcbiAgICB0aGlzLmV4cGFuZGVkU3VtbWFyeSA9ICF0aGlzLmV4cGFuZGVkU3VtbWFyeTtcbiAgfVxuXG4gIC8vIFRoaXMgbWV0aG9kIHdpbGwgc3RvcCB0aGUgZXZlbnQgZnJvbSBidWJibGluZyB1cFxuICBzdG9wQmFja3NwYWNlUHJvcGFnYXRpb24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBpZiAoZXZlbnQua2V5ID09PSAnQmFja3NwYWNlJyB8fCBldmVudC5rZXlDb2RlID09PSA4KSB7XG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9XG4gIH1cblxuICBjbGVhclNlYXJjaChldmVudDogRXZlbnQpIHtcbiAgICB0aGlzLnNlYXJjaFZhbHVlID0gJyc7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5maWx0ZXJlZE9wdGlvbnMgPSBbLi4udGhpcy5maWVsZC5wcm9wcz8ub3B0aW9uc107XG4gIH1cbn1cbiIsIjxuZy1zZWxlY3QgW2l0ZW1zXT1cImZpbHRlcmVkT3B0aW9uc1wiIFttdWx0aXBsZV09XCJwcm9wcz8ubXVsdGlwbGUgfHwgZmFsc2VcIiBbYmluZExhYmVsXT1cInByb3BzPy5iaW5kTGFiZWwgfHwgJ2xhYmVsJ1wiXG4gICAgW2Nsb3NlT25TZWxlY3RdPVwicHJvcHM/LmNsb3NlT25TZWxlY3QgPz8gdHJ1ZVwiIFtiaW5kVmFsdWVdPVwicHJvcHM/LmJpbmRWYWx1ZSB8fCAndmFsdWUnXCJcbiAgICBbcGxhY2Vob2xkZXJdPVwicHJvcHM/LnBsYWNlaG9sZGVyIHx8ICdTZWxlY3QnXCIgW3NlYXJjaGFibGVdPVwiZmFsc2VcIiBbZm9ybUNvbnRyb2xdPVwiZm9ybUNvbnRyb2xcIlxuICAgIFtjbGVhcmFibGVdPVwicHJvcHM/LmlzQ2xlYXJhYmxlXCIgW2FwcGVhcmFuY2VdPVwicHJvcHNbJ2FwcGVhcmFuY2UnXSB8fCAnb3V0bGluZSdcIiBbbG9hZGluZ109XCJwcm9wcz8ubG9hZGluZyB8fCBmYWxzZVwiIGNsYXNzPVwibmctc2VsZWN0LWN1c3RvbVwiPlxuXG4gICAgQGlmKCEhcHJvcHM/LnNob3dTZWFyY2hCYXIpe1xuICAgIDxuZy10ZW1wbGF0ZSBuZy1oZWFkZXItdG1wPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic2VhcmNoLWlucHV0LWNvbnRhaW5lciBtYXQtZm9ybS1maWVsZC1kZW5zaXR5LTVcIj5cbiAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBbYXBwZWFyYW5jZV09XCJwcm9wc1snYXBwZWFyYW5jZSddIHx8ICdvdXRsaW5lJ1wiIGNsYXNzPVwidy0xMDBcIj5cbiAgICAgICAgICAgICAgICA8c2EtaWNvbiBpY29uPVwic2VhcmNoSWNvblwiIGNsYXNzPVwic2VhcmNoSWNvbnNcIiBzaXplPVwiMjBcIiBtYXRQcmVmaXg+PC9zYS1pY29uPlxuICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCB0eXBlPVwidGV4dFwiIG5hbWU9XCJtZW51LXNlYXJjaC1iYXJcIiBjbGFzcz1cInNlYXJjaC1pbnB1dCBzZWFyY2hJY29uc1wiXG4gICAgICAgICAgICAgICAgICAgIChrZXl1cCk9XCJvblNlYXJjaCgkZXZlbnQpXCIgKGtleWRvd24pPVwic3RvcEJhY2tzcGFjZVByb3BhZ2F0aW9uKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwicHJvcHM/LnNlYXJjaFBsYWNlaG9sZGVyIHx8ICdTZWFyY2gnXCIgWyhuZ01vZGVsKV09XCJzZWFyY2hWYWx1ZVwiIC8+XG4gICAgICAgICAgICAgICAgPHNhLWljb24gaWNvbj1cImNsb3NlT3V0bGluZWRcIiBjbGFzcz1cInBvaW50ZXIgc2VhcmNoSWNvbnNcIiBzaXplPVwiMTVcIiBtYXRTdWZmaXhcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNsZWFyU2VhcmNoKCRldmVudClcIj48L3NhLWljb24+XG4gICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIH1cbiAgICA8IS0tIE9wdGlvbiB0ZW1wbGF0ZSB3aXRoIGEgY2hlY2tib3ggaW4gZnJvbnQgb2YgZWFjaCByb3cgLS0+XG4gICAgPG5nLXRlbXBsYXRlIG5nLW9wdGlvbi10bXAgbGV0LWl0ZW09XCJpdGVtXCIgbGV0LWl0ZW0kPVwiaXRlbSRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm9wdGlvbi1yb3dcIj5cbiAgICAgICAgICAgIEBpZihwcm9wcz8ubXVsdGlwbGUpe1xuICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIFtjaGVja2VkXT1cIml0ZW0kLnNlbGVjdGVkXCIgdGFiaW5kZXg9XCItMVwiIC8+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm9wdGlvbi1sYWJlbFwiPnt7IGl0ZW1bcHJvcHMuYmluZExhYmVsIHx8ICdsYWJlbCddIH19PC9zcGFuPlxuXG4gICAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICA8IS0tIFNlbGVjdGVkIGl0ZW1zIGNoaXAgdGVtcGxhdGUgKG9wdGlvbmFsKSAtLT5cbiAgICA8bmctdGVtcGxhdGUgbmctbXVsdGktbGFiZWwtdG1wIGxldC1pdGVtcz1cIml0ZW1zXCIgbGV0LWNsZWFyPVwiY2xlYXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNoaXBzIG5nLXZhbHVlcy1saXN0XCI+XG5cbiAgICAgICAgICAgIDwhLS0gSWYgY29sbGFwc2VkOiBzaG93IG9ubHkgZmlyc3QgMiArIHN1bW1hcnkgLS0+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWV4cGFuZGVkU3VtbWFyeVwiPlxuICAgICAgICAgICAgICAgIEBmb3IgKHMgb2YgaXRlbXMuc2xpY2UoMCwgMik7IHRyYWNrIHNbcHJvcHMuYmluZFZhbHVlIHx8ICd2YWx1ZSddKSB7XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5nLXZhbHVlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibmctdmFsdWUtbGFiZWxcIj57eyBzW3Byb3BzLmJpbmRMYWJlbCB8fCAnbGFiZWwnXSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJuZy12YWx1ZS1pY29uIHJpZ2h0XCIgKGNsaWNrKT1cImNsZWFyKHMpXCI+PHNhLWljb24gaWNvbj1cImNsb3NlT3V0bGluZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCIxMVwiPjwvc2EtaWNvbj48L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgQGlmIChpdGVtcy5sZW5ndGggPiAyKSB7XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5nLXZhbHVlIHN1bW1hcnktY2hpcCBwb2ludGVyXCIgKGNsaWNrKT1cInRvZ2dsZVN1bW1hcnkoKVwiPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm5nLXZhbHVlLWxhYmVsXCI+K3t7IGl0ZW1zLmxlbmd0aCAtIDIgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibmctdmFsdWUtaWNvbiByaWdodFwiIChjbGljayk9XCJjbGVhclJlbWFpbmluZyhpdGVtcywgY2xlYXIpXCI+PHNhLWljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uPVwiY2xvc2VPdXRsaW5lZFwiIHNpemU9XCIxMVwiPjwvc2EtaWNvbj48L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgIDwhLS0gSWYgZXhwYW5kZWQ6IHNob3cgYWxsIGl0ZW1zIC0tPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImV4cGFuZGVkU3VtbWFyeVwiPlxuICAgICAgICAgICAgICAgIEBmb3IgKHMgb2YgaXRlbXM7IHRyYWNrIHNbcHJvcHMuYmluZFZhbHVlIHx8ICd2YWx1ZSddKSB7XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5nLXZhbHVlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibmctdmFsdWUtbGFiZWxcIj57eyBzW3Byb3BzLmJpbmRMYWJlbCB8fCAnbGFiZWwnXSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJuZy12YWx1ZS1pY29uIHJpZ2h0XCIgKGNsaWNrKT1cImNsZWFyKHMpXCI+PHNhLWljb24gaWNvbj1cImNsb3NlT3V0bGluZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCIxMVwiPjwvc2EtaWNvbj48L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwhLS0gQ29sbGFwc2UgYnV0dG9uIC0tPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJuZy12YWx1ZSBzdW1tYXJ5LWNoaXAgcG9pbnRlclwiIChjbGljayk9XCJ0b2dnbGVTdW1tYXJ5KClcIj5cbiAgICAgICAgICAgICAgICAgICAgPHNhLWljb24gY2xhc3M9XCJuZy12YWx1ZS1sYWJlbFwiIHNpemU9XCIxOFwiIGljb249XCJsZWZ0Q2hldnJvbkNpcmNsZVwiPjwvc2EtaWNvbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICBAaWYocHJvcHM/LmZvb3Rlcil7XG4gICAgPG5nLXRlbXBsYXRlIG5nLWZvb3Rlci10bXA+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkcm9wZG93bi1mb290ZXJcIj57e3Byb3BzPy5mb290ZXI/LmRlc2NyaXB0aW9ufX08L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIH1cblxuICAgIDxuZy10ZW1wbGF0ZSBuZy1ub3Rmb3VuZC10bXA+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJuby1yZXN1bHRzXCI+XG4gICAgICAgICAgICBAaWYgKHNlYXJjaFZhbHVlPy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICB7eyBwcm9wcz8uc2VhcmNoTm90Rm91bmRUZXh0IHx8ICfinYwgTm8gaXRlbXMgbWF0Y2ggXCInICsgc2VhcmNoVmFsdWUgKyAnXCInIH19XG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIHt7IHByb3BzPy5ub3RGb3VuZFRleHQgfHwgJ+KaoO+4jyBObyBvcHRpb25zIGF2YWlsYWJsZScgfX1cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgIDxuZy10ZW1wbGF0ZSBuZy1sb2FkaW5ndGV4dC10bXA+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJsb2FkaW5nXCI+XG4gICAgICAgICAgICA8c2EtaWNvbiBpY29uPVwibG9hZGVyXCIgc2l6ZT1cIjE2XCIgY2xhc3M9XCJsb2FkaW5nLXNwaW5uZXJcIj48L3NhLWljb24+XG4gICAgICAgICAgICA8c3Bhbj5Mb2FkaW5nIG9wdGlvbnMuLi48L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG48L25nLXNlbGVjdD4iXX0=
|