@sarasanalytics-com/design-system 0.0.178 → 0.0.180
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/grid-cell/grid-cell.component.mjs +7 -7
- package/esm2022/lib/grid-header/grid-header.component.mjs +3 -3
- package/fesm2022/sarasanalytics-com-design-system.mjs +8 -8
- package/fesm2022/sarasanalytics-com-design-system.mjs.map +1 -1
- package/lib/grid-cell/grid-cell.component.d.ts +1 -1
- package/package.json +1 -1
|
@@ -200,12 +200,6 @@ export class GridCellComponent {
|
|
|
200
200
|
return [];
|
|
201
201
|
return this.params.chipConfig.map(chip => chip.text);
|
|
202
202
|
}
|
|
203
|
-
ngOnDestroy() {
|
|
204
|
-
this.hideTooltip();
|
|
205
|
-
if (this.overlayRef) {
|
|
206
|
-
this.overlayRef.dispose();
|
|
207
|
-
}
|
|
208
|
-
}
|
|
209
203
|
/**
|
|
210
204
|
* Masks an email address for privacy
|
|
211
205
|
* Shows first character, masks middle characters, shows last 2 characters before @
|
|
@@ -238,6 +232,12 @@ export class GridCellComponent {
|
|
|
238
232
|
const maskedLength = localLength - 3; // Total length minus first and last 2
|
|
239
233
|
return firstChar + _repeat('•', maskedLength) + lastTwoChars + domain;
|
|
240
234
|
}
|
|
235
|
+
ngOnDestroy() {
|
|
236
|
+
this.hideTooltip();
|
|
237
|
+
if (this.overlayRef) {
|
|
238
|
+
this.overlayRef.dispose();
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
241
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: GridCellComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.Overlay }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
242
242
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.4", type: GridCellComponent, isStandalone: true, selector: "sa-grid-cell", outputs: { onClickButtonEvent: "onClickButtonEvent", onClickChipEvent: "onClickChipEvent", onClickLinkEvent: "onClickLinkEvent", onClickAvatarEvent: "onClickAvatarEvent" }, host: { listeners: { "document:click": "onDocumentClick($event)" } }, viewQueries: [{ propertyName: "dropdownTemplate", first: true, predicate: ["dropdownTemplate"], descendants: true }, { propertyName: "actionsContainer", first: true, predicate: ["actionsContainer"], descendants: true }], ngImport: i0, template: "<div class=\"grid-cell {{params.cellType}}\">\n\n <img class=\"icons\" src={{params.iconPath}} [style.display]=\"(params.viewLeadingIcon) ? 'block' : 'none'\" alt=\"\">\n\n <sa-avatar [id]=\"params.avatarConfig?.id\" [altText]=\"params.avatarConfig?.altText\"\n [imagePath]=\"params.avatarConfig?.imagePath\" [size]=\"params.avatarConfig?.size\"\n [style.display]=\"(params.viewAvatar) ? 'block' : 'none'\" (onClickEvent)=\"avatarClicked($event)\">\n </sa-avatar>\n\n <div class=\"grid-text\" [style.display]=\"(params.viewText) ? 'block' : 'none'\">\n <div [style.display]=\"(params.text) ? 'block' : 'none'\" (click)=\"linkClicked()\" class=\"main-text\">\n @if(params.cellType === 'masked') {\n {{maskEmail(params.text)}}\n } @else {\n {{params.text}}\n }\n </div>\n\n <div [style.display]=\"(params.subText) ? 'block' : 'none'\" class=\"sub-text\">{{params.subText}}</div>\n </div>\n\n <img class=\"icons\" src={{params.iconPath}} [style.display]=\"(params.viewTrailingIcon) ? 'block' : 'none'\" alt=\"\">\n @if(params?.tooltip){\n <span class=\"tooltip-container\">\n <sa-icon [icon]=\"params?.tooltipIcon || 'infoCircleOutlined'\"\n customClass=\"info-icon\" [matTooltip]=\"params?.tooltip\"\n matTooltipClass=\"custom-tooltip\" class=\"tooltip-icon\"></sa-icon>\n </span>\n }\n <div class=\"chips-container\" [style.display]=\"(params.viewChip) ? 'flex' : 'none'\">\n\n <div *ngFor=\"let config of displayedChips\">\n <sa-chip [id]=\"config.id\" [filling]=\"config.filling\" id=\"chip_{{rowNum}}_{{config.id}}\" [iconPath]=\"config.iconPath\"\n [iconPosition]=\"config.iconPosition\" [largeStateIcon]=\"config.largeStateIcon\" [state]=\"config.state\"\n [type]=\"config.type\" [text]=\"config.text\" [class.small]=\"config.type === 'small'\"\n [class.neutral]=\"config.state === 'neutral'\" (onClickEvent)=\"chipClicked($event)\"></sa-chip>\n </div>\n <div class=\"chip-tooltip-container\" *ngIf=\"remainingChipsCount > 0\" style=\"position: relative;\"\n (mouseenter)=\"showTooltip(remainingChipsCount, $event)\" (mouseleave)=\"hideTooltip()\">\n <sa-chip [id]=\"'chip_' + rowNum + '_more'\" [text]=\"'+' + remainingChipsCount\" [filling]=\"displayedChips[0]?.filling\"\n [type]=\"displayedChips[0]?.type\" [state]=\"displayedChips[0]?.state\" (onClickEvent)=\"chipClicked($event)\"></sa-chip>\n</div>\n\n <sa-button [iconPosition]=\"params.buttonConfig?.iconPosition\" [ImagePath]=\"params.buttonConfig?.imagePath\"\n [id]=\"params.buttonConfig?.id\" [size]=\"params.buttonConfig?.size\" [state]=\"params.buttonConfig?.state\"\n [type]=\"params.buttonConfig?.type\" [text]=\"params.buttonConfig?.text\" [href]=\"params.buttonConfig?.href\"\n [hrefTarget]=\"params.buttonConfig?.hrefTarget\" [style.display]=\"(params.viewButton) ? 'block' : 'none'\"\n (onClickEvent)=\"buttonClicked($event)\"></sa-button>\n\n</div>\n\n <div *ngIf=\"params.cellType === 'actions'\" class=\"actions-container\">\n @if(params?.downloadAction){\n <sa-icon [icon]=\"params?.downloadAction?.icon\" [size]=\"params?.downloadAction?.iconSize\" (click)=\"handleActionClick(params?.downloadAction, $event)\" />\n }\n <img [src]=\"params.buttonConfig?.imagePath\" alt=\"actions\" class=\"actions-icon\" (click)=\"toggleDropdown(actionsButton)\"\n #actionsButton />\n <ng-template #dropdownTemplate>\n <div class=\"actions-dropdown\">\n <div *ngFor=\"let action of params.actions\" class=\"action-item\" (click)=\"handleActionClick(action, $event)\">\n <img *ngIf=\"action.icon\" [src]=\"action.icon\" class=\"action-icon\" />\n <span class=\"action-label\">{{action.label}}</span>\n </div>\n </div>\n </ng-template>\n </div>\n</div>\n", styles: [".header{--bg: var(--primary-50);--color: var(--text-highemphasis);--border: none;--flex-direction: left}.header:hover{cursor:pointer}.row{--color: var(--text-highemphasis);--cursor: default;--border: var(--grey-50);--flex-direction: left}.numeric{--color: var(--text-highemphasis);--cursor: default;--border: var(--grey-50);--flex-direction: right}.interactive{--color: var(--primary-500);--cursor: pointer;--border: var(--grey-50);--flex-direction: left}.grid-cell{display:flex;height:48px;padding:var(--small-12px);justify-content:var(--flex-direction);align-items:center;gap:var(--small-8px);flex-shrink:0;font-family:var(--font);box-sizing:border-box;border-bottom:1px solid var(--border);width:calc(100% - 20px);background-color:var(--bg)}.grid-text{display:flex;flex-direction:column}.main-text{color:var(--color);font-size:14px;font-weight:400;height:20px;line-height:20px}.main-text:hover{cursor:var(--cursor)}.sub-text{font-size:11px;font-weight:400;height:16px;line-height:16px;color:var(--text-mediumemphasis)}.icons{width:var(--medium-20px);height:var(--medium-20px)}.grid-chip{display:flex;height:24px;padding:var(--Small-4px, 4px) var(--Small-8px, 8px);justify-content:center;align-items:center;gap:var(--Small-4px, 4px);border-radius:4px;background:var(--Grey-100, #EAECF0);color:var(--Text-Medium-Emphasis, #6D6979);font-family:var(--font-family, Roboto);font-size:11px;font-style:normal;font-weight:500;line-height:16px;letter-spacing:.5px}.grid-cell,.chips-container{overflow:visible!important;position:relative}.chip-tooltip-container{position:relative;display:inline-flex;overflow:visible!important}.chip-tooltip-container sa-tool-tip{display:none}.chips-container{display:flex;gap:var(--Small-4px, 4px);align-items:center}.actions-container{position:relative;display:flex;width:32px;height:32px;justify-content:center;align-items:center;cursor:pointer}.actions-icon{width:20px;height:20px;cursor:pointer!important}.actions-dropdown{position:absolute;right:0;min-width:150px;z-index:1000;border-radius:4px;border:1px solid var(--Grey-100, #EAECF0);background:var(--Structural-White, #FFF);box-shadow:0 1px 2px #0000004d}.action-item{display:flex;height:40px;padding:12px;align-items:center;gap:8px;align-self:stretch;cursor:pointer;transition:background-color .2s}.action-item:hover{background-color:#f5f5f5}.action-label{color:var(--text-highemphasis, #1C1B20);font-family:var(--font-roboto, Roboto);font-size:14px;font-style:normal;font-weight:400;line-height:20px;letter-spacing:.25px}.actions-container.clicked{border-radius:64px;background:var(--Primary-50, #F4EBFF);padding:8px}.chips-container{overflow:visible!important;position:relative}.chip-tooltip-container{position:relative;display:inline-flex;overflow:visible}.tooltip-icon{display:flex;align-items:center}\n"], dependencies: [{ kind: "component", type: AvatarComponent, selector: "sa-avatar", inputs: ["id", "imagePath", "altText", "size"], outputs: ["onClickEvent", "onMouseInEvent", "onMouseOutEvent"] }, { kind: "component", type: ChipsComponent, selector: "sa-chip", inputs: ["id", "iconPath", "text", "type", "state", "filling", "iconPosition", "largeStateIcon", "largeStateText", "tooltip", "className"], outputs: ["onClickEvent"] }, { kind: "component", type: ButtonComponent, selector: "sa-button", inputs: ["id", "type", "state", "size", "text", "ImagePath", "icon", "iconPosition", "href", "hrefTarget", "width", "isSubmit", "buttonIconSize", "showSpinner"], outputs: ["onClickEvent", "onMouseInEvent", "onMouseOutEvent"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: CommonModule }, { kind: "component", type: IconComponent, selector: "sa-icon", inputs: ["img", "imgWidth", "imgHeight", "icon", "size", "color", "iconPath", "iconUrl", "customClass", "href", "hrefTarget", "iconPosition"], outputs: ["onClickEvent"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i2.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }] }); }
|
|
243
243
|
}
|
|
@@ -272,4 +272,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
|
|
|
272
272
|
type: HostListener,
|
|
273
273
|
args: ['document:click', ['$event']]
|
|
274
274
|
}] } });
|
|
275
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1jZWxsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudC1saWJyYXJ5L3NyYy9saWIvZ3JpZC1jZWxsL2dyaWQtY2VsbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnQtbGlicmFyeS9zcmMvbGliL2dyaWQtY2VsbC9ncmlkLWNlbGwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFpQyxTQUFTLEVBQUUsWUFBWSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ25JLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFHN0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzdELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBR2xFLE9BQU8sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRzVELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVyRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUNMLFFBQVEsSUFBSSxTQUFTLEVBQ3JCLEtBQUssSUFBSSxNQUFNLEVBQ2YsSUFBSSxJQUFJLEtBQUssRUFDYixJQUFJLElBQUksS0FBSyxFQUNiLEtBQUssSUFBSSxNQUFNLEVBQ2YsU0FBUyxJQUFJLFVBQVUsRUFDdkIsTUFBTSxJQUFJLE9BQU8sRUFDbEIsTUFBTSxRQUFRLENBQUM7Ozs7QUF5QmhC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QUFZLENBQUMsR0FBRyxZQUFZLEdBQUcsTUFBTSxDQUFDO0lBQ3hFLENBQUM7OEdBcFFVLGlCQUFpQjtrR0FBakIsaUJBQWlCLHdoQkNqRDlCLCt1SEFtRUEsbXlGRC9CSSxlQUFlLHNLQUNmLGNBQWMsMk5BQ2QsZUFBZSx3UkFDZixLQUFLLG1IQUNMLElBQUksNEZBRUosWUFBWSwrQkFDWixhQUFhLDZOQUNiLGdCQUFnQjs7MkZBS1AsaUJBQWlCO2tCQWpCN0IsU0FBUzsrQkFDRSxjQUFjLGNBQ1osSUFBSSxXQUNQO3dCQUNQLGVBQWU7d0JBQ2YsY0FBYzt3QkFDZCxlQUFlO3dCQUNmLEtBQUs7d0JBQ0wsSUFBSTt3QkFDSixnQkFBZ0I7d0JBQ2hCLFlBQVk7d0JBQ1osYUFBYTt3QkFDYixnQkFBZ0I7cUJBQ2pCOzJJQUs4QixnQkFBZ0I7c0JBQTlDLFNBQVM7dUJBQUMsa0JBQWtCO2dCQUVFLGdCQUFnQjtzQkFBOUMsU0FBUzt1QkFBQyxrQkFBa0I7Z0JBUW5CLGtCQUFrQjtzQkFBM0IsTUFBTTtnQkFDRyxnQkFBZ0I7c0JBQXpCLE1BQU07Z0JBQ0csZ0JBQWdCO3NCQUF6QixNQUFNO2dCQUNHLGtCQUFrQjtzQkFBM0IsTUFBTTtnQkE0R1AsZUFBZTtzQkFEZCxZQUFZO3VCQUFDLGdCQUFnQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgQ2hhbmdlRGV0ZWN0b3JSZWYsIEVsZW1lbnRSZWYsIFZpZXdDaGlsZCwgSG9zdExpc3RlbmVyLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENoaXBzQ29tcG9uZW50IH0gZnJvbSAnLi4vY2hpcHMvY2hpcHMuY29tcG9uZW50JztcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IElDZWxsUmVuZGVyZXJBbmd1bGFyQ29tcCwgSUhlYWRlckFuZ3VsYXJDb21wIH0gZnJvbSAnYWctZ3JpZC1hbmd1bGFyJztcbmltcG9ydCB7IEdyaWRJbnRlcmZhY2UgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2dyaWQtaW50ZXJmYWNlJztcbmltcG9ydCB7IEF2YXRhckNvbXBvbmVudCB9IGZyb20gJy4uL2F2YXRhci9hdmF0YXIuY29tcG9uZW50JztcbmltcG9ydCB7IFRvb2xUaXBDb21wb25lbnQgfSBmcm9tICcuLi90b29sLXRpcC90b29sLXRpcC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2hpcEludGVyZmFjZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvY2hpcC1pbnRlcmZhY2UnO1xuaW1wb3J0IHsgT3ZlcmxheSwgT3ZlcmxheVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSwgTmdGb3IsIE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUZW1wbGF0ZVJlZiwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVGVtcGxhdGVQb3J0YWwgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7IElDZWxsUmVuZGVyZXJQYXJhbXMgfSBmcm9tICdhZy1ncmlkLWNvbW11bml0eSc7XG5pbXBvcnQgeyBJY29uQ29tcG9uZW50IH0gZnJvbSAnLi4vaWNvbi9pY29uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XG5pbXBvcnQgeyBcbiAgaXNTdHJpbmcgYXMgX2lzU3RyaW5nLCBcbiAgc3BsaXQgYXMgX3NwbGl0LCBcbiAgam9pbiBhcyBfam9pbiwgXG4gIHNpemUgYXMgX3NpemUsIFxuICBmaXJzdCBhcyBfZmlyc3QsIFxuICB0YWtlUmlnaHQgYXMgX3Rha2VSaWdodCwgXG4gIHJlcGVhdCBhcyBfcmVwZWF0IFxufSBmcm9tICdsb2Rhc2gnO1xuXG5pbnRlcmZhY2UgQ2VsbFBhcmFtcyBleHRlbmRzIElDZWxsUmVuZGVyZXJQYXJhbXMge1xuICByb3dJbmRleDogbnVtYmVyO1xuICB2YWx1ZTogYW55O1xuICBkYXRhOiB7IHlvdT86IGJvb2xlYW4gfTtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2EtZ3JpZC1jZWxsJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIEF2YXRhckNvbXBvbmVudCxcbiAgICBDaGlwc0NvbXBvbmVudCxcbiAgICBCdXR0b25Db21wb25lbnQsXG4gICAgTmdGb3IsXG4gICAgTmdJZixcbiAgICBUb29sVGlwQ29tcG9uZW50LFxuICAgIENvbW1vbk1vZHVsZSxcbiAgICBJY29uQ29tcG9uZW50LFxuICAgIE1hdFRvb2x0aXBNb2R1bGVcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2dyaWQtY2VsbC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9ncmlkLWNlbGwuY29tcG9uZW50LmNzcydcbn0pXG5leHBvcnQgY2xhc3MgR3JpZENlbGxDb21wb25lbnQgaW1wbGVtZW50cyBJQ2VsbFJlbmRlcmVyQW5ndWxhckNvbXAsIE9uRGVzdHJveSB7XG4gIEBWaWV3Q2hpbGQoJ2Ryb3Bkb3duVGVtcGxhdGUnKSBkcm9wZG93blRlbXBsYXRlITogVGVtcGxhdGVSZWY8YW55PjtcbiAgb3ZlcmxheVJlZiE6IE92ZXJsYXlSZWY7XG4gIEBWaWV3Q2hpbGQoJ2FjdGlvbnNDb250YWluZXInKSBhY3Rpb25zQ29udGFpbmVyITogRWxlbWVudFJlZjtcbiAgc2hvd0Ryb3Bkb3duID0gZmFsc2U7XG4gIHJlYWRvbmx5IE1BWF9WSVNJQkxFX0NISVBTID0gMTsgXG4gIGRpc3BsYXllZENoaXBzOiBDaGlwSW50ZXJmYWNlW10gPSBbXTtcbiAgcmVtYWluaW5nQ2hpcHNDb3VudCA9IDA7XG4gIHBhcmFtcyE6IEdyaWRJbnRlcmZhY2U7XG4gIHJvd051bSA9IDA7XG5cbiAgQE91dHB1dCgpIG9uQ2xpY2tCdXR0b25FdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8eyByb3dJZDogbnVtYmVyIH0+KCk7XG4gIEBPdXRwdXQoKSBvbkNsaWNrQ2hpcEV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjx7IHJvd0lkOiBudW1iZXIgfT4oKTtcbiAgQE91dHB1dCgpIG9uQ2xpY2tMaW5rRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBvbkNsaWNrQXZhdGFyRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPHsgcm93SWQ6IG51bWJlciB9PigpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZiwgcHJpdmF0ZSBvdmVybGF5OiBPdmVybGF5LCBwcml2YXRlIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYpIHt9XG5cbiAgaG92ZXJlZENoaXA6IGFueSA9IG51bGw7XG4gIHByaXZhdGUgdG9vbHRpcENvbXBvbmVudFJlZjogQ29tcG9uZW50UmVmPFRvb2xUaXBDb21wb25lbnQ+IHwgbnVsbCA9IG51bGw7XG5cbiAgYWdJbml0KHBhcmFtczogQ2VsbFBhcmFtcyk6IHZvaWQge1xuICAgIHRoaXMucm93TnVtID0gcGFyYW1zLnJvd0luZGV4O1xuICAgIFxuICAgIC8vIENoZWNrIGZvciBkaXJlY3QgZmllbGQgdmFsdWUgZmlyc3QsIHRoZW4gZmFsbGJhY2sgdG8gX2NlbGxQYXJhbXNcbiAgICBsZXQgY2VsbERhdGEgPSBwYXJhbXMudmFsdWU7XG4gICAgaWYgKCFjZWxsRGF0YSAmJiBwYXJhbXMuZGF0YSAmJiBwYXJhbXMuY29sRGVmPy5maWVsZCkge1xuICAgICAgY29uc3QgY2VsbFBhcmFtc0tleSA9IGAke3BhcmFtcy5jb2xEZWYuZmllbGR9X2NlbGxQYXJhbXNgO1xuICAgICAgY2VsbERhdGEgPSBwYXJhbXMuZGF0YVtjZWxsUGFyYW1zS2V5XTtcbiAgICB9XG4gICAgXG4gICAgdGhpcy5wYXJhbXMgPSB7XG4gICAgICAuLi5wYXJhbXMsXG4gICAgICAuLi4oY2VsbERhdGEgPz8ge30pXG4gICAgfTtcbiAgICBcbiAgICBpZiAodGhpcy5wYXJhbXMuY2hpcENvbmZpZyAmJiBBcnJheS5pc0FycmF5KHRoaXMucGFyYW1zLmNoaXBDb25maWcpKSB7XG4gICAgICB0aGlzLmRpc3BsYXllZENoaXBzID0gdGhpcy5wYXJhbXMuY2hpcENvbmZpZy5zbGljZSgwLCB0aGlzLk1BWF9WSVNJQkxFX0NISVBTKTtcbiAgICAgIHRoaXMucmVtYWluaW5nQ2hpcHNDb3VudCA9IE1hdGgubWF4KDAsIHRoaXMucGFyYW1zLmNoaXBDb25maWcubGVuZ3RoIC0gdGhpcy5NQVhfVklTSUJMRV9DSElQUyk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgIHRoaXMuZGlzcGxheWVkQ2hpcHMgPSB0aGlzLnBhcmFtcy5jaGlwQ29uZmlnO1xuICAgICAgIHRoaXMucmVtYWluaW5nQ2hpcHNDb3VudCA9IDA7XG4gICAgfVxuICB9XG5cbiAgcmVmcmVzaChwYXJhbXM6IENlbGxQYXJhbXMpOiBib29sZWFuIHtcbiAgICB0aGlzLmFnSW5pdChwYXJhbXMpO1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgdHlwZU9mKHZhbHVlOiB1bmtub3duKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdHlwZW9mIHZhbHVlO1xuICB9XG4gIFxuICBidXR0b25DbGlja2VkKGV2ZW50OiBhbnkpIHtcbiAgICBpZiAodGhpcy5wYXJhbXMuYnV0dG9uQ29uZmlnPy5vbkNsaWNrKSB7XG4gICAgICB0aGlzLnBhcmFtcy5idXR0b25Db25maWcub25DbGljayhldmVudCk7XG4gICAgfVxuICAgIHRoaXMucGFyYW1zLmJ1dHRvbkNsaWNrZWQgJiYgdGhpcy5wYXJhbXMuYnV0dG9uQ2xpY2tlZCh7ICAgICAgICAgICAgXG4gICAgICAuLi5ldmVudCxcbiAgICAgIHJvd0lkOiB0aGlzLnJvd051bVxuICAgIH0pO1xuICAgIHRoaXMub25DbGlja0J1dHRvbkV2ZW50LmVtaXQoeyAuLi5ldmVudCwgcm93SWQ6IHRoaXMucm93TnVtIH0pOyAgICAgIFxuICB9XG5cbiAgdG9nZ2xlRHJvcGRvd24oZWxlbWVudDogSFRNTEVsZW1lbnQpIHtcbiAgICBpZiAodGhpcy5vdmVybGF5UmVmKSB7XG4gICAgICB0aGlzLm92ZXJsYXlSZWYuZGlzcG9zZSgpO1xuICAgICAgdGhpcy5vdmVybGF5UmVmID0gbnVsbCBhcyBhbnk7XG4gICAgfVxuXG4gICAgY29uc3QgcG9zaXRpb25TdHJhdGVneSA9IHRoaXMub3ZlcmxheS5wb3NpdGlvbigpXG4gICAgICAuZmxleGlibGVDb25uZWN0ZWRUbyhlbGVtZW50KVxuICAgICAgLndpdGhQdXNoKHRydWUpIFxuICAgICAgLndpdGhGbGV4aWJsZURpbWVuc2lvbnModHJ1ZSkgXG4gICAgICAud2l0aFZpZXdwb3J0TWFyZ2luKDgpIFxuICAgICAgLndpdGhQb3NpdGlvbnMoW1xuICAgICAgICB7XG4gICAgICAgICAgb3JpZ2luWDogJ2VuZCcsXG4gICAgICAgICAgb3JpZ2luWTogJ2JvdHRvbScsXG4gICAgICAgICAgb3ZlcmxheVg6ICdlbmQnLFxuICAgICAgICAgIG92ZXJsYXlZOiAndG9wJyxcbiAgICAgICAgICBvZmZzZXRZOiA0LFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgb3JpZ2luWDogJ3N0YXJ0JyxcbiAgICAgICAgICBvcmlnaW5ZOiAnYm90dG9tJyxcbiAgICAgICAgICBvdmVybGF5WDogJ3N0YXJ0JyxcbiAgICAgICAgICBvdmVybGF5WTogJ3RvcCcsXG4gICAgICAgICAgb2Zmc2V0WTogNCxcbiAgICAgICAgfVxuICAgICAgXSk7XG5cbiAgICB0aGlzLm92ZXJsYXlSZWYgPSB0aGlzLm92ZXJsYXkuY3JlYXRlKHtcbiAgICAgIHBvc2l0aW9uU3RyYXRlZ3ksXG4gICAgICBoYXNCYWNrZHJvcDogdHJ1ZSxcbiAgICAgIGJhY2tkcm9wQ2xhc3M6ICdjZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcCcsXG4gICAgICBwYW5lbENsYXNzOiAnYWN0aW9ucy1kcm9wZG93bi1wYW5lbCcsXG4gICAgICBzY3JvbGxTdHJhdGVneTogdGhpcy5vdmVybGF5LnNjcm9sbFN0cmF0ZWdpZXMucmVwb3NpdGlvbigpIFxuICAgIH0pO1xuXG4gICAgY29uc3QgcG9ydGFsID0gbmV3IFRlbXBsYXRlUG9ydGFsKHRoaXMuZHJvcGRvd25UZW1wbGF0ZSwgdGhpcy52aWV3Q29udGFpbmVyUmVmKTtcbiAgICB0aGlzLm92ZXJsYXlSZWYuYXR0YWNoKHBvcnRhbCk7XG5cbiAgICB0aGlzLm92ZXJsYXlSZWYuYmFja2Ryb3BDbGljaygpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5vdmVybGF5UmVmKSB7XG4gICAgICAgIHRoaXMub3ZlcmxheVJlZi5kaXNwb3NlKCk7XG4gICAgICAgIHRoaXMub3ZlcmxheVJlZiA9IG51bGwgYXMgYW55O1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgaGFuZGxlQWN0aW9uQ2xpY2soYWN0aW9uOiBhbnksIGV2ZW50OiBFdmVudCkge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMuc2hvd0Ryb3Bkb3duID0gZmFsc2U7XG4gICAgaWYgKGFjdGlvbi5vbkNsaWNrKSB7XG4gICAgICBhY3Rpb24ub25DbGljaygpO1xuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmNsaWNrJywgWyckZXZlbnQnXSlcbiAgb25Eb2N1bWVudENsaWNrKGV2ZW50OiBFdmVudCkge1xuICAgIGlmICh0aGlzLmFjdGlvbnNDb250YWluZXIgJiYgIXRoaXMuYWN0aW9uc0NvbnRhaW5lci5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCkpIHtcbiAgICAgIHRoaXMuc2hvd0Ryb3Bkb3duID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgY2hpcENsaWNrZWQoZXZ0OiBFdmVudCkge1xuICAgIHRoaXMucGFyYW1zLmNoaXBDbGlja2VkICYmIHRoaXMucGFyYW1zLmNoaXBDbGlja2VkKHtcbiAgICAgIC4uLmV2dCxcbiAgICAgIHJvd0lkOiB0aGlzLnJvd051bVxuICAgIH0pO1xuICAgIHRoaXMub25DbGlja0NoaXBFdmVudC5lbWl0KHsgLi4uZXZ0LCByb3dJZDogdGhpcy5yb3dOdW0gfSk7XG4gIH1cblxuICBsaW5rQ2xpY2tlZCgpIHtcbiAgICBpZiAodGhpcy5wYXJhbXMuY2VsbFR5cGUgIT0gXCJpbnRlcmFjdGl2ZVwiKSByZXR1cm47XG5cbiAgICB0aGlzLnBhcmFtcy5saW5rQ2xpY2tlZCAmJiB0aGlzLnBhcmFtcy5saW5rQ2xpY2tlZCh7ICAgICAgICAgXG4gICAgICByb3dJZDogdGhpcy5yb3dOdW1cbiAgICB9KTtcblxuICAgIGlmICh0aGlzLnBhcmFtcy5pbnRlcmFjdGl2ZUxpbmsgIT0gXCJcIikge1xuICAgICAgaWYgKHRoaXMucGFyYW1zLmludGVyYWN0aXZlTGlua1RhcmdldCA9PSBcImJsYW5rXCIpIHtcbiAgICAgICAgd2luZG93Lm9wZW4odGhpcy5wYXJhbXMuaW50ZXJhY3RpdmVMaW5rKSE7XG4gICAgICB9XG4gICAgICBlbHNlIGlmICh0aGlzLnBhcmFtcy5pbnRlcmFjdGl2ZUxpbmtUYXJnZXQgPT0gXCJzZWxmXCIpIHtcbiAgICAgICAgbG9jYXRpb24uaHJlZiA9IHRoaXMucGFyYW1zLmludGVyYWN0aXZlTGluayE7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMub25DbGlja0xpbmtFdmVudC5lbWl0KHsgcm93SWQ6IHRoaXMucm93TnVtIH0pO1xuICB9XG5cbiAgYXZhdGFyQ2xpY2tlZChldnQ6IEV2ZW50KSB7XG4gICAgdGhpcy5wYXJhbXMuYXZhdGFyQ2xpY2tlZCAmJiB0aGlzLnBhcmFtcy5hdmF0YXJDbGlja2VkKHtcbiAgICAgIC4uLmV2dCxcbiAgICAgIHJvd0lkOiB0aGlzLnJvd051bVxuICAgIH0pO1xuICAgIHRoaXMub25DbGlja0F2YXRhckV2ZW50LmVtaXQoeyAuLi5ldnQsIHJvd0lkOiB0aGlzLnJvd051bSB9KTtcbiAgfVxuXG4gIHNob3dUb29sdGlwKGNvbmZpZzogYW55LCBldmVudD86IE1vdXNlRXZlbnQpIHtcbiAgICB0aGlzLmhvdmVyZWRDaGlwID0gY29uZmlnOyBcbiAgICBpZiAoZXZlbnQgJiYgZXZlbnQuY3VycmVudFRhcmdldCkge1xuICAgICAgY29uc3QgY2hpcENvbnRhaW5lciA9IGV2ZW50LmN1cnJlbnRUYXJnZXQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICBjb25zdCBjaGlwRWxlbWVudCA9IGNoaXBDb250YWluZXIucXVlcnlTZWxlY3Rvcignc2EtY2hpcCcpIGFzIEhUTUxFbGVtZW50O1xuICAgICAgaWYgKGNoaXBFbGVtZW50KSB7XG4gICAgICAgIGNvbnN0IHJlY3QgPSBjaGlwRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgY29uc3QgdG9wUG9zaXRpb24gPSByZWN0LmJvdHRvbSArIDg7XG4gICAgICAgIGNvbnN0IGxlZnRQb3NpdGlvbiA9IHJlY3QubGVmdCArIHJlY3Qud2lkdGggLyAyO1xuICAgICAgICB0aGlzLmNyZWF0ZVRvb2x0aXBDb21wb25lbnQodG9wUG9zaXRpb24sIGxlZnRQb3NpdGlvbik7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaGlkZVRvb2x0aXAoKSB7XG4gICAgdGhpcy5ob3ZlcmVkQ2hpcCA9IG51bGw7XG4gICAgdGhpcy5kZXN0cm95VG9vbHRpcENvbXBvbmVudCgpO1xuICB9XG5cbiAgY3JlYXRlVG9vbHRpcENvbXBvbmVudCh0b3A6IG51bWJlciwgbGVmdDogbnVtYmVyKSB7XG4gICAgdGhpcy5kZXN0cm95VG9vbHRpcENvbXBvbmVudCgpO1xuICAgIHRoaXMudG9vbHRpcENvbXBvbmVudFJlZiA9IHRoaXMudmlld0NvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQoVG9vbFRpcENvbXBvbmVudCk7ICAgIFxuICAgIHRoaXMudG9vbHRpcENvbXBvbmVudFJlZi5pbnN0YW5jZS5tZXNzYWdlcyA9IHRoaXMuZ2V0VG9vbHRpcFRleHQoKTsgXG4gICAgdGhpcy50b29sdGlwQ29tcG9uZW50UmVmLmluc3RhbmNlLnNpbXBsZU1vZGUgPSB0cnVlO1xuICAgIHRoaXMudG9vbHRpcENvbXBvbmVudFJlZi5pbnN0YW5jZS5wb2ludGVyUG9zaXRpb24gPSAndG9wJztcbiAgICBcbiAgICBjb25zdCB0b29sdGlwRWxlbWVudCA9IHRoaXMudG9vbHRpcENvbXBvbmVudFJlZi5sb2NhdGlvbi5uYXRpdmVFbGVtZW50O1xuICAgIHRvb2x0aXBFbGVtZW50LnN0eWxlLmNzc1RleHQgPSBgXG4gICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICB0b3A6ICR7dG9wfXB4O1xuICAgICAgbGVmdDogJHtsZWZ0fXB4O1xuICAgICAgei1pbmRleDogOTk5OTk7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICBgO1xuICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodG9vbHRpcEVsZW1lbnQpO1xuICAgIHRoaXMudG9vbHRpcENvbXBvbmVudFJlZi5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBkZXN0cm95VG9vbHRpcENvbXBvbmVudCgpIHtcbiAgICBpZiAodGhpcy50b29sdGlwQ29tcG9uZW50UmVmKSB7XG4gICAgICBjb25zdCB0b29sdGlwRWxlbWVudCA9IHRoaXMudG9vbHRpcENvbXBvbmVudFJlZi5sb2NhdGlvbi5uYXRpdmVFbGVtZW50O1xuICAgICAgaWYgKHRvb2x0aXBFbGVtZW50LnBhcmVudE5vZGUpIHtcbiAgICAgICAgdG9vbHRpcEVsZW1lbnQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0b29sdGlwRWxlbWVudCk7XG4gICAgICB9XG4gICAgICB0aGlzLnRvb2x0aXBDb21wb25lbnRSZWYuZGVzdHJveSgpO1xuICAgICAgdGhpcy50b29sdGlwQ29tcG9uZW50UmVmID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICBnZXRUb29sdGlwVGV4dCgpOiBzdHJpbmdbXSB7XG4gICAgaWYgKCF0aGlzLnBhcmFtcz8uY2hpcENvbmZpZykgcmV0dXJuIFtdO1xuICAgIHJldHVybiB0aGlzLnBhcmFtcy5jaGlwQ29uZmlnLm1hcChjaGlwID0+IGNoaXAudGV4dCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmhpZGVUb29sdGlwKCk7XG4gICAgaWYgKHRoaXMub3ZlcmxheVJlZikge1xuICAgICAgdGhpcy5vdmVybGF5UmVmLmRpc3Bvc2UoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogTWFza3MgYW4gZW1haWwgYWRkcmVzcyBmb3IgcHJpdmFjeVxuICAgKiBTaG93cyBmaXJzdCBjaGFyYWN0ZXIsIG1hc2tzIG1pZGRsZSBjaGFyYWN0ZXJzLCBzaG93cyBsYXN0IDIgY2hhcmFjdGVycyBiZWZvcmUgQFxuICAgKiBAcGFyYW0gZW1haWwgLSBUaGUgZW1haWwgYWRkcmVzcyB0byBtYXNrXG4gICAqIEByZXR1cm5zIE1hc2tlZCBlbWFpbCBzdHJpbmcgKGUuZy4sIG1hcmtAb3V0bG9vay5jb20gLT4gbeKAouKAouKAouKAouKAouKAonJrQG91dGxvb2suY29tKVxuICAgKiBAZXhhbXBsZVxuICAgKiBtYXNrRW1haWwoJ21hcmtAb3V0bG9vay5jb20nKSAvLyBSZXR1cm5zOiAnbeKAouKAouKAouKAouKAouKAonJrQG91dGxvb2suY29tJ1xuICAgKiBtYXNrRW1haWwoJ2FiQHRlc3QuY29tJykgLy8gUmV0dXJuczogJ2HigKJAdGVzdC5jb20nXG4gICAqL1xuICBtYXNrRW1haWwoZW1haWw6IHN0cmluZyB8IG51bWJlcik6IHN0cmluZyB7XG4gICAgaWYgKCFlbWFpbCkgcmV0dXJuICctJztcbiAgICBcbiAgICAvLyBDb252ZXJ0IHRvIHN0cmluZyBpZiBpdCdzIGEgbnVtYmVyXG4gICAgY29uc3QgZW1haWxTdHIgPSBTdHJpbmcoZW1haWwpO1xuICAgIFxuICAgIGlmICghX2lzU3RyaW5nKGVtYWlsU3RyKSkgcmV0dXJuICctJztcbiAgICBcbiAgICBjb25zdCBhdEluZGV4ID0gZW1haWxTdHIuaW5kZXhPZignQCcpO1xuICAgIGlmIChhdEluZGV4IDw9IDApIHJldHVybiBlbWFpbFN0cjsgLy8gSW52YWxpZCBlbWFpbCBmb3JtYXRcbiAgICBcbiAgICBjb25zdCBbbG9jYWxQYXJ0LCAuLi5kb21haW5QYXJ0c10gPSBfc3BsaXQoZW1haWxTdHIsICdAJyk7XG4gICAgY29uc3QgZG9tYWluID0gJ0AnICsgX2pvaW4oZG9tYWluUGFydHMsICdAJyk7XG4gICAgXG4gICAgY29uc3QgbG9jYWxMZW5ndGggPSBfc2l6ZShsb2NhbFBhcnQpO1xuICAgIFxuICAgIGlmIChsb2NhbExlbmd0aCA8PSAyKSB7XG4gICAgICAvLyBGb3IgdmVyeSBzaG9ydCBsb2NhbCBwYXJ0cywganVzdCBtYXNrIHRoZSBtaWRkbGVcbiAgICAgIHJldHVybiBfZmlyc3QobG9jYWxQYXJ0KSArIF9yZXBlYXQoJ+KAoicsIGxvY2FsTGVuZ3RoIC0gMSkgKyBkb21haW47XG4gICAgfVxuICAgIFxuICAgIC8vIFNob3cgZmlyc3QgY2hhcmFjdGVyLCBtYXNrIG1pZGRsZSwgc2hvdyBsYXN0IDIgY2hhcmFjdGVycyBiZWZvcmUgQFxuICAgIGNvbnN0IGZpcnN0Q2hhciA9IF9maXJzdChsb2NhbFBhcnQpO1xuICAgIGNvbnN0IGxhc3RUd29DaGFycyA9IF90YWtlUmlnaHQobG9jYWxQYXJ0LCAyKS5qb2luKCcnKTtcbiAgICBjb25zdCBtYXNrZWRMZW5ndGggPSBsb2NhbExlbmd0aCAtIDM7IC8vIFRvdGFsIGxlbmd0aCBtaW51cyBmaXJzdCBhbmQgbGFzdCAyXG4gICAgXG4gICAgcmV0dXJuIGZpcnN0Q2hhciArIF9yZXBlYXQoJ+KAoicsIG1hc2tlZExlbmd0aCkgKyBsYXN0VHdvQ2hhcnMgKyBkb21haW47XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJncmlkLWNlbGwge3twYXJhbXMuY2VsbFR5cGV9fVwiPlxuXG4gIDxpbWcgY2xhc3M9XCJpY29uc1wiIHNyYz17e3BhcmFtcy5pY29uUGF0aH19IFtzdHlsZS5kaXNwbGF5XT1cIihwYXJhbXMudmlld0xlYWRpbmdJY29uKSA/ICdibG9jaycgOiAnbm9uZSdcIiBhbHQ9XCJcIj5cblxuICA8c2EtYXZhdGFyIFtpZF09XCJwYXJhbXMuYXZhdGFyQ29uZmlnPy5pZFwiIFthbHRUZXh0XT1cInBhcmFtcy5hdmF0YXJDb25maWc/LmFsdFRleHRcIlxuICAgIFtpbWFnZVBhdGhdPVwicGFyYW1zLmF2YXRhckNvbmZpZz8uaW1hZ2VQYXRoXCIgW3NpemVdPVwicGFyYW1zLmF2YXRhckNvbmZpZz8uc2l6ZVwiXG4gICAgW3N0eWxlLmRpc3BsYXldPVwiKHBhcmFtcy52aWV3QXZhdGFyKSA/ICdibG9jaycgOiAnbm9uZSdcIiAob25DbGlja0V2ZW50KT1cImF2YXRhckNsaWNrZWQoJGV2ZW50KVwiPlxuICA8L3NhLWF2YXRhcj5cblxuICA8ZGl2IGNsYXNzPVwiZ3JpZC10ZXh0XCIgW3N0eWxlLmRpc3BsYXldPVwiKHBhcmFtcy52aWV3VGV4dCkgPyAnYmxvY2snIDogJ25vbmUnXCI+XG4gICAgPGRpdiBbc3R5bGUuZGlzcGxheV09XCIocGFyYW1zLnRleHQpID8gJ2Jsb2NrJyA6ICdub25lJ1wiIChjbGljayk9XCJsaW5rQ2xpY2tlZCgpXCIgY2xhc3M9XCJtYWluLXRleHRcIj5cbiAgICAgIEBpZihwYXJhbXMuY2VsbFR5cGUgPT09ICdtYXNrZWQnKSB7XG4gICAgICAgIHt7bWFza0VtYWlsKHBhcmFtcy50ZXh0KX19XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAge3twYXJhbXMudGV4dH19XG4gICAgICB9XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IFtzdHlsZS5kaXNwbGF5XT1cIihwYXJhbXMuc3ViVGV4dCkgPyAnYmxvY2snIDogJ25vbmUnXCIgY2xhc3M9XCJzdWItdGV4dFwiPnt7cGFyYW1zLnN1YlRleHR9fTwvZGl2PlxuICA8L2Rpdj5cblxuICA8aW1nIGNsYXNzPVwiaWNvbnNcIiBzcmM9e3twYXJhbXMuaWNvblBhdGh9fSBbc3R5bGUuZGlzcGxheV09XCIocGFyYW1zLnZpZXdUcmFpbGluZ0ljb24pID8gJ2Jsb2NrJyA6ICdub25lJ1wiIGFsdD1cIlwiPlxuICBAaWYocGFyYW1zPy50b29sdGlwKXtcbiAgICA8c3BhbiBjbGFzcz1cInRvb2x0aXAtY29udGFpbmVyXCI+XG4gICAgICAgIDxzYS1pY29uIFtpY29uXT1cInBhcmFtcz8udG9vbHRpcEljb24gfHwgJ2luZm9DaXJjbGVPdXRsaW5lZCdcIlxuICAgICAgICAgICAgY3VzdG9tQ2xhc3M9XCJpbmZvLWljb25cIiBbbWF0VG9vbHRpcF09XCJwYXJhbXM/LnRvb2x0aXBcIlxuICAgICAgICAgICAgbWF0VG9vbHRpcENsYXNzPVwiY3VzdG9tLXRvb2x0aXBcIiBjbGFzcz1cInRvb2x0aXAtaWNvblwiPjwvc2EtaWNvbj5cbiAgICA8L3NwYW4+XG4gICAgfVxuICA8ZGl2IGNsYXNzPVwiY2hpcHMtY29udGFpbmVyXCIgW3N0eWxlLmRpc3BsYXldPVwiKHBhcmFtcy52aWV3Q2hpcCkgPyAnZmxleCcgOiAnbm9uZSdcIj5cblxuICA8ZGl2ICpuZ0Zvcj1cImxldCBjb25maWcgb2YgZGlzcGxheWVkQ2hpcHNcIj5cbiAgICA8c2EtY2hpcCBbaWRdPVwiY29uZmlnLmlkXCIgW2ZpbGxpbmddPVwiY29uZmlnLmZpbGxpbmdcIiBpZD1cImNoaXBfe3tyb3dOdW19fV97e2NvbmZpZy5pZH19XCIgW2ljb25QYXRoXT1cImNvbmZpZy5pY29uUGF0aFwiXG4gICAgICBbaWNvblBvc2l0aW9uXT1cImNvbmZpZy5pY29uUG9zaXRpb25cIiBbbGFyZ2VTdGF0ZUljb25dPVwiY29uZmlnLmxhcmdlU3RhdGVJY29uXCIgW3N0YXRlXT1cImNvbmZpZy5zdGF0ZVwiXG4gICAgICBbdHlwZV09XCJjb25maWcudHlwZVwiIFt0ZXh0XT1cImNvbmZpZy50ZXh0XCIgW2NsYXNzLnNtYWxsXT1cImNvbmZpZy50eXBlID09PSAnc21hbGwnXCJcbiAgICAgIFtjbGFzcy5uZXV0cmFsXT1cImNvbmZpZy5zdGF0ZSA9PT0gJ25ldXRyYWwnXCIgKG9uQ2xpY2tFdmVudCk9XCJjaGlwQ2xpY2tlZCgkZXZlbnQpXCI+PC9zYS1jaGlwPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImNoaXAtdG9vbHRpcC1jb250YWluZXJcIiAqbmdJZj1cInJlbWFpbmluZ0NoaXBzQ291bnQgPiAwXCIgc3R5bGU9XCJwb3NpdGlvbjogcmVsYXRpdmU7XCJcbiAgICAobW91c2VlbnRlcik9XCJzaG93VG9vbHRpcChyZW1haW5pbmdDaGlwc0NvdW50LCAkZXZlbnQpXCIgKG1vdXNlbGVhdmUpPVwiaGlkZVRvb2x0aXAoKVwiPlxuICAgIDxzYS1jaGlwIFtpZF09XCInY2hpcF8nICsgcm93TnVtICsgJ19tb3JlJ1wiIFt0ZXh0XT1cIicrJyArIHJlbWFpbmluZ0NoaXBzQ291bnRcIiBbZmlsbGluZ109XCJkaXNwbGF5ZWRDaGlwc1swXT8uZmlsbGluZ1wiXG4gICAgICBbdHlwZV09XCJkaXNwbGF5ZWRDaGlwc1swXT8udHlwZVwiIFtzdGF0ZV09XCJkaXNwbGF5ZWRDaGlwc1swXT8uc3RhdGVcIiAob25DbGlja0V2ZW50KT1cImNoaXBDbGlja2VkKCRldmVudClcIj48L3NhLWNoaXA+XG48L2Rpdj5cblxuICA8c2EtYnV0dG9uIFtpY29uUG9zaXRpb25dPVwicGFyYW1zLmJ1dHRvbkNvbmZpZz8uaWNvblBvc2l0aW9uXCIgW0ltYWdlUGF0aF09XCJwYXJhbXMuYnV0dG9uQ29uZmlnPy5pbWFnZVBhdGhcIlxuICAgIFtpZF09XCJwYXJhbXMuYnV0dG9uQ29uZmlnPy5pZFwiIFtzaXplXT1cInBhcmFtcy5idXR0b25Db25maWc/LnNpemVcIiBbc3RhdGVdPVwicGFyYW1zLmJ1dHRvbkNvbmZpZz8uc3RhdGVcIlxuICAgIFt0eXBlXT1cInBhcmFtcy5idXR0b25Db25maWc/LnR5cGVcIiBbdGV4dF09XCJwYXJhbXMuYnV0dG9uQ29uZmlnPy50ZXh0XCIgW2hyZWZdPVwicGFyYW1zLmJ1dHRvbkNvbmZpZz8uaHJlZlwiXG4gICAgW2hyZWZUYXJnZXRdPVwicGFyYW1zLmJ1dHRvbkNvbmZpZz8uaHJlZlRhcmdldFwiIFtzdHlsZS5kaXNwbGF5XT1cIihwYXJhbXMudmlld0J1dHRvbikgPyAnYmxvY2snIDogJ25vbmUnXCJcbiAgICAob25DbGlja0V2ZW50KT1cImJ1dHRvbkNsaWNrZWQoJGV2ZW50KVwiPjwvc2EtYnV0dG9uPlxuXG48L2Rpdj5cblxuICA8ZGl2ICpuZ0lmPVwicGFyYW1zLmNlbGxUeXBlID09PSAnYWN0aW9ucydcIiBjbGFzcz1cImFjdGlvbnMtY29udGFpbmVyXCI+XG4gICAgQGlmKHBhcmFtcz8uZG93bmxvYWRBY3Rpb24pe1xuICAgICAgPHNhLWljb24gW2ljb25dPVwicGFyYW1zPy5kb3dubG9hZEFjdGlvbj8uaWNvblwiIFtzaXplXT1cInBhcmFtcz8uZG93bmxvYWRBY3Rpb24/Lmljb25TaXplXCIgIChjbGljayk9XCJoYW5kbGVBY3Rpb25DbGljayhwYXJhbXM/LmRvd25sb2FkQWN0aW9uLCAkZXZlbnQpXCIgLz5cbiAgICB9XG4gICAgPGltZyBbc3JjXT1cInBhcmFtcy5idXR0b25Db25maWc/LmltYWdlUGF0aFwiIGFsdD1cImFjdGlvbnNcIiBjbGFzcz1cImFjdGlvbnMtaWNvblwiIChjbGljayk9XCJ0b2dnbGVEcm9wZG93bihhY3Rpb25zQnV0dG9uKVwiXG4gICAgICAjYWN0aW9uc0J1dHRvbiAvPlxuICAgIDxuZy10ZW1wbGF0ZSAjZHJvcGRvd25UZW1wbGF0ZT5cbiAgICAgIDxkaXYgY2xhc3M9XCJhY3Rpb25zLWRyb3Bkb3duXCI+XG4gICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGFjdGlvbiBvZiBwYXJhbXMuYWN0aW9uc1wiIGNsYXNzPVwiYWN0aW9uLWl0ZW1cIiAoY2xpY2spPVwiaGFuZGxlQWN0aW9uQ2xpY2soYWN0aW9uLCAkZXZlbnQpXCI+XG4gICAgICAgICAgPGltZyAqbmdJZj1cImFjdGlvbi5pY29uXCIgW3NyY109XCJhY3Rpb24uaWNvblwiIGNsYXNzPVwiYWN0aW9uLWljb25cIiAvPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYWN0aW9uLWxhYmVsXCI+e3thY3Rpb24ubGFiZWx9fTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
275
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1jZWxsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudC1saWJyYXJ5L3NyYy9saWIvZ3JpZC1jZWxsL2dyaWQtY2VsbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnQtbGlicmFyeS9zcmMvbGliL2dyaWQtY2VsbC9ncmlkLWNlbGwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFpQyxTQUFTLEVBQUUsWUFBWSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ25JLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFHN0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzdELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBR2xFLE9BQU8sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRzVELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVyRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLFFBQVEsSUFBSSxTQUFTLEVBQUUsS0FBSyxJQUFJLE1BQU0sRUFBRSxJQUFJLElBQUksS0FBSyxFQUFFLElBQUksSUFBSSxLQUFLLEVBQUUsS0FBSyxJQUFJLE1BQU0sRUFBRSxTQUFTLElBQUksVUFBVSxFQUFFLE1BQU0sSUFBSSxPQUFPLEVBQUUsTUFBTSxRQUFRLENBQUM7Ozs7QUF5QjNKLE1B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LENBQUMsT0FBTyxFQUFFLENBQUM7UUFDNUIsQ0FBQztJQUNILENBQUM7OEdBclFVLGlCQUFpQjtrR0FBakIsaUJBQWlCLHdoQkN6QzlCLCt1SEFtRUEsbXlGRHZDSSxlQUFlLHNLQUNmLGNBQWMsMk5BQ2QsZUFBZSx3UkFDZixLQUFLLG1IQUNMLElBQUksNEZBRUosWUFBWSwrQkFDWixhQUFhLDZOQUNiLGdCQUFnQjs7MkZBS1AsaUJBQWlCO2tCQWpCN0IsU0FBUzsrQkFDRSxjQUFjLGNBQ1osSUFBSSxXQUNQO3dCQUNQLGVBQWU7d0JBQ2YsY0FBYzt3QkFDZCxlQUFlO3dCQUNmLEtBQUs7d0JBQ0wsSUFBSTt3QkFDSixnQkFBZ0I7d0JBQ2hCLFlBQVk7d0JBQ1osYUFBYTt3QkFDYixnQkFBZ0I7cUJBQ2pCOzJJQUs4QixnQkFBZ0I7c0JBQTlDLFNBQVM7dUJBQUMsa0JBQWtCO2dCQUVFLGdCQUFnQjtzQkFBOUMsU0FBUzt1QkFBQyxrQkFBa0I7Z0JBUW5CLGtCQUFrQjtzQkFBM0IsTUFBTTtnQkFDRyxnQkFBZ0I7c0JBQXpCLE1BQU07Z0JBQ0csZ0JBQWdCO3NCQUF6QixNQUFNO2dCQUNHLGtCQUFrQjtzQkFBM0IsTUFBTTtnQkE0R1AsZUFBZTtzQkFEZCxZQUFZO3VCQUFDLGdCQUFnQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgQ2hhbmdlRGV0ZWN0b3JSZWYsIEVsZW1lbnRSZWYsIFZpZXdDaGlsZCwgSG9zdExpc3RlbmVyLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENoaXBzQ29tcG9uZW50IH0gZnJvbSAnLi4vY2hpcHMvY2hpcHMuY29tcG9uZW50JztcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IElDZWxsUmVuZGVyZXJBbmd1bGFyQ29tcCwgSUhlYWRlckFuZ3VsYXJDb21wIH0gZnJvbSAnYWctZ3JpZC1hbmd1bGFyJztcbmltcG9ydCB7IEdyaWRJbnRlcmZhY2UgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2dyaWQtaW50ZXJmYWNlJztcbmltcG9ydCB7IEF2YXRhckNvbXBvbmVudCB9IGZyb20gJy4uL2F2YXRhci9hdmF0YXIuY29tcG9uZW50JztcbmltcG9ydCB7IFRvb2xUaXBDb21wb25lbnQgfSBmcm9tICcuLi90b29sLXRpcC90b29sLXRpcC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2hpcEludGVyZmFjZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvY2hpcC1pbnRlcmZhY2UnO1xuaW1wb3J0IHsgT3ZlcmxheSwgT3ZlcmxheVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSwgTmdGb3IsIE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUZW1wbGF0ZVJlZiwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVGVtcGxhdGVQb3J0YWwgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7IElDZWxsUmVuZGVyZXJQYXJhbXMgfSBmcm9tICdhZy1ncmlkLWNvbW11bml0eSc7XG5pbXBvcnQgeyBJY29uQ29tcG9uZW50IH0gZnJvbSAnLi4vaWNvbi9pY29uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XG5pbXBvcnQgeyBpc1N0cmluZyBhcyBfaXNTdHJpbmcsIHNwbGl0IGFzIF9zcGxpdCwgam9pbiBhcyBfam9pbiwgc2l6ZSBhcyBfc2l6ZSwgZmlyc3QgYXMgX2ZpcnN0LCB0YWtlUmlnaHQgYXMgX3Rha2VSaWdodCwgcmVwZWF0IGFzIF9yZXBlYXQgfSBmcm9tICdsb2Rhc2gnO1xuXG5pbnRlcmZhY2UgQ2VsbFBhcmFtcyBleHRlbmRzIElDZWxsUmVuZGVyZXJQYXJhbXMge1xuICByb3dJbmRleDogbnVtYmVyO1xuICB2YWx1ZTogYW55O1xuICBkYXRhOiB7IHlvdT86IGJvb2xlYW4gfTtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2EtZ3JpZC1jZWxsJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIEF2YXRhckNvbXBvbmVudCxcbiAgICBDaGlwc0NvbXBvbmVudCxcbiAgICBCdXR0b25Db21wb25lbnQsXG4gICAgTmdGb3IsXG4gICAgTmdJZixcbiAgICBUb29sVGlwQ29tcG9uZW50LFxuICAgIENvbW1vbk1vZHVsZSxcbiAgICBJY29uQ29tcG9uZW50LFxuICAgIE1hdFRvb2x0aXBNb2R1bGVcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2dyaWQtY2VsbC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9ncmlkLWNlbGwuY29tcG9uZW50LmNzcydcbn0pXG5leHBvcnQgY2xhc3MgR3JpZENlbGxDb21wb25lbnQgaW1wbGVtZW50cyBJQ2VsbFJlbmRlcmVyQW5ndWxhckNvbXAsIE9uRGVzdHJveSB7XG4gIEBWaWV3Q2hpbGQoJ2Ryb3Bkb3duVGVtcGxhdGUnKSBkcm9wZG93blRlbXBsYXRlITogVGVtcGxhdGVSZWY8YW55PjtcbiAgb3ZlcmxheVJlZiE6IE92ZXJsYXlSZWY7XG4gIEBWaWV3Q2hpbGQoJ2FjdGlvbnNDb250YWluZXInKSBhY3Rpb25zQ29udGFpbmVyITogRWxlbWVudFJlZjtcbiAgc2hvd0Ryb3Bkb3duID0gZmFsc2U7XG4gIHJlYWRvbmx5IE1BWF9WSVNJQkxFX0NISVBTID0gMTsgXG4gIGRpc3BsYXllZENoaXBzOiBDaGlwSW50ZXJmYWNlW10gPSBbXTtcbiAgcmVtYWluaW5nQ2hpcHNDb3VudCA9IDA7XG4gIHBhcmFtcyE6IEdyaWRJbnRlcmZhY2U7XG4gIHJvd051bSA9IDA7XG5cbiAgQE91dHB1dCgpIG9uQ2xpY2tCdXR0b25FdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8eyByb3dJZDogbnVtYmVyIH0+KCk7XG4gIEBPdXRwdXQoKSBvbkNsaWNrQ2hpcEV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjx7IHJvd0lkOiBudW1iZXIgfT4oKTtcbiAgQE91dHB1dCgpIG9uQ2xpY2tMaW5rRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBvbkNsaWNrQXZhdGFyRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPHsgcm93SWQ6IG51bWJlciB9PigpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZiwgcHJpdmF0ZSBvdmVybGF5OiBPdmVybGF5LCBwcml2YXRlIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYpIHt9XG5cbiAgaG92ZXJlZENoaXA6IGFueSA9IG51bGw7XG4gIHByaXZhdGUgdG9vbHRpcENvbXBvbmVudFJlZjogQ29tcG9uZW50UmVmPFRvb2xUaXBDb21wb25lbnQ+IHwgbnVsbCA9IG51bGw7XG5cbiAgYWdJbml0KHBhcmFtczogQ2VsbFBhcmFtcyk6IHZvaWQge1xuICAgIHRoaXMucm93TnVtID0gcGFyYW1zLnJvd0luZGV4O1xuICAgIFxuICAgIC8vIENoZWNrIGZvciBkaXJlY3QgZmllbGQgdmFsdWUgZmlyc3QsIHRoZW4gZmFsbGJhY2sgdG8gX2NlbGxQYXJhbXNcbiAgICBsZXQgY2VsbERhdGEgPSBwYXJhbXMudmFsdWU7XG4gICAgaWYgKCFjZWxsRGF0YSAmJiBwYXJhbXMuZGF0YSAmJiBwYXJhbXMuY29sRGVmPy5maWVsZCkge1xuICAgICAgY29uc3QgY2VsbFBhcmFtc0tleSA9IGAke3BhcmFtcy5jb2xEZWYuZmllbGR9X2NlbGxQYXJhbXNgO1xuICAgICAgY2VsbERhdGEgPSBwYXJhbXMuZGF0YVtjZWxsUGFyYW1zS2V5XTtcbiAgICB9XG4gICAgXG4gICAgdGhpcy5wYXJhbXMgPSB7XG4gICAgICAuLi5wYXJhbXMsXG4gICAgICAuLi4oY2VsbERhdGEgPz8ge30pXG4gICAgfTtcbiAgICBcbiAgICBpZiAodGhpcy5wYXJhbXMuY2hpcENvbmZpZyAmJiBBcnJheS5pc0FycmF5KHRoaXMucGFyYW1zLmNoaXBDb25maWcpKSB7XG4gICAgICB0aGlzLmRpc3BsYXllZENoaXBzID0gdGhpcy5wYXJhbXMuY2hpcENvbmZpZy5zbGljZSgwLCB0aGlzLk1BWF9WSVNJQkxFX0NISVBTKTtcbiAgICAgIHRoaXMucmVtYWluaW5nQ2hpcHNDb3VudCA9IE1hdGgubWF4KDAsIHRoaXMucGFyYW1zLmNoaXBDb25maWcubGVuZ3RoIC0gdGhpcy5NQVhfVklTSUJMRV9DSElQUyk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgIHRoaXMuZGlzcGxheWVkQ2hpcHMgPSB0aGlzLnBhcmFtcy5jaGlwQ29uZmlnO1xuICAgICAgIHRoaXMucmVtYWluaW5nQ2hpcHNDb3VudCA9IDA7XG4gICAgfVxuICB9XG5cbiAgcmVmcmVzaChwYXJhbXM6IENlbGxQYXJhbXMpOiBib29sZWFuIHtcbiAgICB0aGlzLmFnSW5pdChwYXJhbXMpO1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgdHlwZU9mKHZhbHVlOiB1bmtub3duKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdHlwZW9mIHZhbHVlO1xuICB9XG4gIFxuICBidXR0b25DbGlja2VkKGV2ZW50OiBhbnkpIHtcbiAgICBpZiAodGhpcy5wYXJhbXMuYnV0dG9uQ29uZmlnPy5vbkNsaWNrKSB7XG4gICAgICB0aGlzLnBhcmFtcy5idXR0b25Db25maWcub25DbGljayhldmVudCk7XG4gICAgfVxuICAgIHRoaXMucGFyYW1zLmJ1dHRvbkNsaWNrZWQgJiYgdGhpcy5wYXJhbXMuYnV0dG9uQ2xpY2tlZCh7ICAgICAgICAgICAgXG4gICAgICAuLi5ldmVudCxcbiAgICAgIHJvd0lkOiB0aGlzLnJvd051bVxuICAgIH0pO1xuICAgIHRoaXMub25DbGlja0J1dHRvbkV2ZW50LmVtaXQoeyAuLi5ldmVudCwgcm93SWQ6IHRoaXMucm93TnVtIH0pOyAgICAgIFxuICB9XG5cbiAgdG9nZ2xlRHJvcGRvd24oZWxlbWVudDogSFRNTEVsZW1lbnQpIHtcbiAgICBpZiAodGhpcy5vdmVybGF5UmVmKSB7XG4gICAgICB0aGlzLm92ZXJsYXlSZWYuZGlzcG9zZSgpO1xuICAgICAgdGhpcy5vdmVybGF5UmVmID0gbnVsbCBhcyBhbnk7XG4gICAgfVxuXG4gICAgY29uc3QgcG9zaXRpb25TdHJhdGVneSA9IHRoaXMub3ZlcmxheS5wb3NpdGlvbigpXG4gICAgICAuZmxleGlibGVDb25uZWN0ZWRUbyhlbGVtZW50KVxuICAgICAgLndpdGhQdXNoKHRydWUpIFxuICAgICAgLndpdGhGbGV4aWJsZURpbWVuc2lvbnModHJ1ZSkgXG4gICAgICAud2l0aFZpZXdwb3J0TWFyZ2luKDgpIFxuICAgICAgLndpdGhQb3NpdGlvbnMoW1xuICAgICAgICB7XG4gICAgICAgICAgb3JpZ2luWDogJ2VuZCcsXG4gICAgICAgICAgb3JpZ2luWTogJ2JvdHRvbScsXG4gICAgICAgICAgb3ZlcmxheVg6ICdlbmQnLFxuICAgICAgICAgIG92ZXJsYXlZOiAndG9wJyxcbiAgICAgICAgICBvZmZzZXRZOiA0LFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgb3JpZ2luWDogJ3N0YXJ0JyxcbiAgICAgICAgICBvcmlnaW5ZOiAnYm90dG9tJyxcbiAgICAgICAgICBvdmVybGF5WDogJ3N0YXJ0JyxcbiAgICAgICAgICBvdmVybGF5WTogJ3RvcCcsXG4gICAgICAgICAgb2Zmc2V0WTogNCxcbiAgICAgICAgfVxuICAgICAgXSk7XG5cbiAgICB0aGlzLm92ZXJsYXlSZWYgPSB0aGlzLm92ZXJsYXkuY3JlYXRlKHtcbiAgICAgIHBvc2l0aW9uU3RyYXRlZ3ksXG4gICAgICBoYXNCYWNrZHJvcDogdHJ1ZSxcbiAgICAgIGJhY2tkcm9wQ2xhc3M6ICdjZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcCcsXG4gICAgICBwYW5lbENsYXNzOiAnYWN0aW9ucy1kcm9wZG93bi1wYW5lbCcsXG4gICAgICBzY3JvbGxTdHJhdGVneTogdGhpcy5vdmVybGF5LnNjcm9sbFN0cmF0ZWdpZXMucmVwb3NpdGlvbigpIFxuICAgIH0pO1xuXG4gICAgY29uc3QgcG9ydGFsID0gbmV3IFRlbXBsYXRlUG9ydGFsKHRoaXMuZHJvcGRvd25UZW1wbGF0ZSwgdGhpcy52aWV3Q29udGFpbmVyUmVmKTtcbiAgICB0aGlzLm92ZXJsYXlSZWYuYXR0YWNoKHBvcnRhbCk7XG5cbiAgICB0aGlzLm92ZXJsYXlSZWYuYmFja2Ryb3BDbGljaygpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5vdmVybGF5UmVmKSB7XG4gICAgICAgIHRoaXMub3ZlcmxheVJlZi5kaXNwb3NlKCk7XG4gICAgICAgIHRoaXMub3ZlcmxheVJlZiA9IG51bGwgYXMgYW55O1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgaGFuZGxlQWN0aW9uQ2xpY2soYWN0aW9uOiBhbnksIGV2ZW50OiBFdmVudCkge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMuc2hvd0Ryb3Bkb3duID0gZmFsc2U7XG4gICAgaWYgKGFjdGlvbi5vbkNsaWNrKSB7XG4gICAgICBhY3Rpb24ub25DbGljaygpO1xuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmNsaWNrJywgWyckZXZlbnQnXSlcbiAgb25Eb2N1bWVudENsaWNrKGV2ZW50OiBFdmVudCkge1xuICAgIGlmICh0aGlzLmFjdGlvbnNDb250YWluZXIgJiYgIXRoaXMuYWN0aW9uc0NvbnRhaW5lci5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCkpIHtcbiAgICAgIHRoaXMuc2hvd0Ryb3Bkb3duID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgY2hpcENsaWNrZWQoZXZ0OiBFdmVudCkge1xuICAgIHRoaXMucGFyYW1zLmNoaXBDbGlja2VkICYmIHRoaXMucGFyYW1zLmNoaXBDbGlja2VkKHtcbiAgICAgIC4uLmV2dCxcbiAgICAgIHJvd0lkOiB0aGlzLnJvd051bVxuICAgIH0pO1xuICAgIHRoaXMub25DbGlja0NoaXBFdmVudC5lbWl0KHsgLi4uZXZ0LCByb3dJZDogdGhpcy5yb3dOdW0gfSk7XG4gIH1cblxuICBsaW5rQ2xpY2tlZCgpIHtcbiAgICBpZiAodGhpcy5wYXJhbXMuY2VsbFR5cGUgIT0gXCJpbnRlcmFjdGl2ZVwiKSByZXR1cm47XG5cbiAgICB0aGlzLnBhcmFtcy5saW5rQ2xpY2tlZCAmJiB0aGlzLnBhcmFtcy5saW5rQ2xpY2tlZCh7ICAgICAgICAgXG4gICAgICByb3dJZDogdGhpcy5yb3dOdW1cbiAgICB9KTtcblxuICAgIGlmICh0aGlzLnBhcmFtcy5pbnRlcmFjdGl2ZUxpbmsgIT0gXCJcIikge1xuICAgICAgaWYgKHRoaXMucGFyYW1zLmludGVyYWN0aXZlTGlua1RhcmdldCA9PSBcImJsYW5rXCIpIHtcbiAgICAgICAgd2luZG93Lm9wZW4odGhpcy5wYXJhbXMuaW50ZXJhY3RpdmVMaW5rKSE7XG4gICAgICB9XG4gICAgICBlbHNlIGlmICh0aGlzLnBhcmFtcy5pbnRlcmFjdGl2ZUxpbmtUYXJnZXQgPT0gXCJzZWxmXCIpIHtcbiAgICAgICAgbG9jYXRpb24uaHJlZiA9IHRoaXMucGFyYW1zLmludGVyYWN0aXZlTGluayE7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMub25DbGlja0xpbmtFdmVudC5lbWl0KHsgcm93SWQ6IHRoaXMucm93TnVtIH0pO1xuICB9XG5cbiAgYXZhdGFyQ2xpY2tlZChldnQ6IEV2ZW50KSB7XG4gICAgdGhpcy5wYXJhbXMuYXZhdGFyQ2xpY2tlZCAmJiB0aGlzLnBhcmFtcy5hdmF0YXJDbGlja2VkKHtcbiAgICAgIC4uLmV2dCxcbiAgICAgIHJvd0lkOiB0aGlzLnJvd051bVxuICAgIH0pO1xuICAgIHRoaXMub25DbGlja0F2YXRhckV2ZW50LmVtaXQoeyAuLi5ldnQsIHJvd0lkOiB0aGlzLnJvd051bSB9KTtcbiAgfVxuXG4gIHNob3dUb29sdGlwKGNvbmZpZzogYW55LCBldmVudD86IE1vdXNlRXZlbnQpIHtcbiAgICB0aGlzLmhvdmVyZWRDaGlwID0gY29uZmlnOyBcbiAgICBpZiAoZXZlbnQgJiYgZXZlbnQuY3VycmVudFRhcmdldCkge1xuICAgICAgY29uc3QgY2hpcENvbnRhaW5lciA9IGV2ZW50LmN1cnJlbnRUYXJnZXQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICBjb25zdCBjaGlwRWxlbWVudCA9IGNoaXBDb250YWluZXIucXVlcnlTZWxlY3Rvcignc2EtY2hpcCcpIGFzIEhUTUxFbGVtZW50O1xuICAgICAgaWYgKGNoaXBFbGVtZW50KSB7XG4gICAgICAgIGNvbnN0IHJlY3QgPSBjaGlwRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgY29uc3QgdG9wUG9zaXRpb24gPSByZWN0LmJvdHRvbSArIDg7XG4gICAgICAgIGNvbnN0IGxlZnRQb3NpdGlvbiA9IHJlY3QubGVmdCArIHJlY3Qud2lkdGggLyAyO1xuICAgICAgICB0aGlzLmNyZWF0ZVRvb2x0aXBDb21wb25lbnQodG9wUG9zaXRpb24sIGxlZnRQb3NpdGlvbik7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaGlkZVRvb2x0aXAoKSB7XG4gICAgdGhpcy5ob3ZlcmVkQ2hpcCA9IG51bGw7XG4gICAgdGhpcy5kZXN0cm95VG9vbHRpcENvbXBvbmVudCgpO1xuICB9XG5cbiAgY3JlYXRlVG9vbHRpcENvbXBvbmVudCh0b3A6IG51bWJlciwgbGVmdDogbnVtYmVyKSB7XG4gICAgdGhpcy5kZXN0cm95VG9vbHRpcENvbXBvbmVudCgpO1xuICAgIHRoaXMudG9vbHRpcENvbXBvbmVudFJlZiA9IHRoaXMudmlld0NvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQoVG9vbFRpcENvbXBvbmVudCk7ICAgIFxuICAgIHRoaXMudG9vbHRpcENvbXBvbmVudFJlZi5pbnN0YW5jZS5tZXNzYWdlcyA9IHRoaXMuZ2V0VG9vbHRpcFRleHQoKTsgXG4gICAgdGhpcy50b29sdGlwQ29tcG9uZW50UmVmLmluc3RhbmNlLnNpbXBsZU1vZGUgPSB0cnVlO1xuICAgIHRoaXMudG9vbHRpcENvbXBvbmVudFJlZi5pbnN0YW5jZS5wb2ludGVyUG9zaXRpb24gPSAndG9wJztcbiAgICBcbiAgICBjb25zdCB0b29sdGlwRWxlbWVudCA9IHRoaXMudG9vbHRpcENvbXBvbmVudFJlZi5sb2NhdGlvbi5uYXRpdmVFbGVtZW50O1xuICAgIHRvb2x0aXBFbGVtZW50LnN0eWxlLmNzc1RleHQgPSBgXG4gICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICB0b3A6ICR7dG9wfXB4O1xuICAgICAgbGVmdDogJHtsZWZ0fXB4O1xuICAgICAgei1pbmRleDogOTk5OTk7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICBgO1xuICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodG9vbHRpcEVsZW1lbnQpO1xuICAgIHRoaXMudG9vbHRpcENvbXBvbmVudFJlZi5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBkZXN0cm95VG9vbHRpcENvbXBvbmVudCgpIHtcbiAgICBpZiAodGhpcy50b29sdGlwQ29tcG9uZW50UmVmKSB7XG4gICAgICBjb25zdCB0b29sdGlwRWxlbWVudCA9IHRoaXMudG9vbHRpcENvbXBvbmVudFJlZi5sb2NhdGlvbi5uYXRpdmVFbGVtZW50O1xuICAgICAgaWYgKHRvb2x0aXBFbGVtZW50LnBhcmVudE5vZGUpIHtcbiAgICAgICAgdG9vbHRpcEVsZW1lbnQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0b29sdGlwRWxlbWVudCk7XG4gICAgICB9XG4gICAgICB0aGlzLnRvb2x0aXBDb21wb25lbnRSZWYuZGVzdHJveSgpO1xuICAgICAgdGhpcy50b29sdGlwQ29tcG9uZW50UmVmID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICBnZXRUb29sdGlwVGV4dCgpOiBzdHJpbmdbXSB7XG4gICAgaWYgKCF0aGlzLnBhcmFtcz8uY2hpcENvbmZpZykgcmV0dXJuIFtdO1xuICAgIHJldHVybiB0aGlzLnBhcmFtcy5jaGlwQ29uZmlnLm1hcChjaGlwID0+IGNoaXAudGV4dCk7XG4gIH1cblxuXG4gIC8qKlxuICAgKiBNYXNrcyBhbiBlbWFpbCBhZGRyZXNzIGZvciBwcml2YWN5XG4gICAqIFNob3dzIGZpcnN0IGNoYXJhY3RlciwgbWFza3MgbWlkZGxlIGNoYXJhY3RlcnMsIHNob3dzIGxhc3QgMiBjaGFyYWN0ZXJzIGJlZm9yZSBAXG4gICAqIEBwYXJhbSBlbWFpbCAtIFRoZSBlbWFpbCBhZGRyZXNzIHRvIG1hc2tcbiAgICogQHJldHVybnMgTWFza2VkIGVtYWlsIHN0cmluZyAoZS5nLiwgbWFya0BvdXRsb29rLmNvbSAtPiBt4oCi4oCi4oCi4oCi4oCi4oCicmtAb3V0bG9vay5jb20pXG4gICAqIEBleGFtcGxlXG4gICAqIG1hc2tFbWFpbCgnbWFya0BvdXRsb29rLmNvbScpIC8vIFJldHVybnM6ICdt4oCi4oCi4oCi4oCi4oCi4oCicmtAb3V0bG9vay5jb20nXG4gICAqIG1hc2tFbWFpbCgnYWJAdGVzdC5jb20nKSAvLyBSZXR1cm5zOiAnYeKAokB0ZXN0LmNvbSdcbiAgICovXG4gIG1hc2tFbWFpbChlbWFpbDogc3RyaW5nIHwgbnVtYmVyKTogc3RyaW5nIHtcbiAgICBpZiAoIWVtYWlsKSByZXR1cm4gJy0nO1xuICAgIFxuICAgIC8vIENvbnZlcnQgdG8gc3RyaW5nIGlmIGl0J3MgYSBudW1iZXJcbiAgICBjb25zdCBlbWFpbFN0ciA9IFN0cmluZyhlbWFpbCk7XG4gICAgXG4gICAgaWYgKCFfaXNTdHJpbmcoZW1haWxTdHIpKSByZXR1cm4gJy0nO1xuICAgIFxuICAgIGNvbnN0IGF0SW5kZXggPSBlbWFpbFN0ci5pbmRleE9mKCdAJyk7XG4gICAgaWYgKGF0SW5kZXggPD0gMCkgcmV0dXJuIGVtYWlsU3RyOyAvLyBJbnZhbGlkIGVtYWlsIGZvcm1hdFxuICAgIFxuICAgIGNvbnN0IFtsb2NhbFBhcnQsIC4uLmRvbWFpblBhcnRzXSA9IF9zcGxpdChlbWFpbFN0ciwgJ0AnKTtcbiAgICBjb25zdCBkb21haW4gPSAnQCcgKyBfam9pbihkb21haW5QYXJ0cywgJ0AnKTtcbiAgICBcbiAgICBjb25zdCBsb2NhbExlbmd0aCA9IF9zaXplKGxvY2FsUGFydCk7XG4gICAgXG4gICAgaWYgKGxvY2FsTGVuZ3RoIDw9IDIpIHtcbiAgICAgIC8vIEZvciB2ZXJ5IHNob3J0IGxvY2FsIHBhcnRzLCBqdXN0IG1hc2sgdGhlIG1pZGRsZVxuICAgICAgcmV0dXJuIF9maXJzdChsb2NhbFBhcnQpICsgX3JlcGVhdCgn4oCiJywgbG9jYWxMZW5ndGggLSAxKSArIGRvbWFpbjtcbiAgICB9XG4gICAgXG4gICAgLy8gU2hvdyBmaXJzdCBjaGFyYWN0ZXIsIG1hc2sgbWlkZGxlLCBzaG93IGxhc3QgMiBjaGFyYWN0ZXJzIGJlZm9yZSBAXG4gICAgY29uc3QgZmlyc3RDaGFyID0gX2ZpcnN0KGxvY2FsUGFydCk7XG4gICAgY29uc3QgbGFzdFR3b0NoYXJzID0gX3Rha2VSaWdodChsb2NhbFBhcnQsIDIpLmpvaW4oJycpO1xuICAgIGNvbnN0IG1hc2tlZExlbmd0aCA9IGxvY2FsTGVuZ3RoIC0gMzsgLy8gVG90YWwgbGVuZ3RoIG1pbnVzIGZpcnN0IGFuZCBsYXN0IDJcbiAgICBcbiAgICByZXR1cm4gZmlyc3RDaGFyICsgX3JlcGVhdCgn4oCiJywgbWFza2VkTGVuZ3RoKSArIGxhc3RUd29DaGFycyArIGRvbWFpbjtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuaGlkZVRvb2x0aXAoKTtcbiAgICBpZiAodGhpcy5vdmVybGF5UmVmKSB7XG4gICAgICB0aGlzLm92ZXJsYXlSZWYuZGlzcG9zZSgpO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImdyaWQtY2VsbCB7e3BhcmFtcy5jZWxsVHlwZX19XCI+XG5cbiAgPGltZyBjbGFzcz1cImljb25zXCIgc3JjPXt7cGFyYW1zLmljb25QYXRofX0gW3N0eWxlLmRpc3BsYXldPVwiKHBhcmFtcy52aWV3TGVhZGluZ0ljb24pID8gJ2Jsb2NrJyA6ICdub25lJ1wiIGFsdD1cIlwiPlxuXG4gIDxzYS1hdmF0YXIgW2lkXT1cInBhcmFtcy5hdmF0YXJDb25maWc/LmlkXCIgW2FsdFRleHRdPVwicGFyYW1zLmF2YXRhckNvbmZpZz8uYWx0VGV4dFwiXG4gICAgW2ltYWdlUGF0aF09XCJwYXJhbXMuYXZhdGFyQ29uZmlnPy5pbWFnZVBhdGhcIiBbc2l6ZV09XCJwYXJhbXMuYXZhdGFyQ29uZmlnPy5zaXplXCJcbiAgICBbc3R5bGUuZGlzcGxheV09XCIocGFyYW1zLnZpZXdBdmF0YXIpID8gJ2Jsb2NrJyA6ICdub25lJ1wiIChvbkNsaWNrRXZlbnQpPVwiYXZhdGFyQ2xpY2tlZCgkZXZlbnQpXCI+XG4gIDwvc2EtYXZhdGFyPlxuXG4gIDxkaXYgY2xhc3M9XCJncmlkLXRleHRcIiBbc3R5bGUuZGlzcGxheV09XCIocGFyYW1zLnZpZXdUZXh0KSA/ICdibG9jaycgOiAnbm9uZSdcIj5cbiAgICA8ZGl2IFtzdHlsZS5kaXNwbGF5XT1cIihwYXJhbXMudGV4dCkgPyAnYmxvY2snIDogJ25vbmUnXCIgKGNsaWNrKT1cImxpbmtDbGlja2VkKClcIiBjbGFzcz1cIm1haW4tdGV4dFwiPlxuICAgICAgQGlmKHBhcmFtcy5jZWxsVHlwZSA9PT0gJ21hc2tlZCcpIHtcbiAgICAgICAge3ttYXNrRW1haWwocGFyYW1zLnRleHQpfX1cbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICB7e3BhcmFtcy50ZXh0fX1cbiAgICAgIH1cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgW3N0eWxlLmRpc3BsYXldPVwiKHBhcmFtcy5zdWJUZXh0KSA/ICdibG9jaycgOiAnbm9uZSdcIiBjbGFzcz1cInN1Yi10ZXh0XCI+e3twYXJhbXMuc3ViVGV4dH19PC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxpbWcgY2xhc3M9XCJpY29uc1wiIHNyYz17e3BhcmFtcy5pY29uUGF0aH19IFtzdHlsZS5kaXNwbGF5XT1cIihwYXJhbXMudmlld1RyYWlsaW5nSWNvbikgPyAnYmxvY2snIDogJ25vbmUnXCIgYWx0PVwiXCI+XG4gIEBpZihwYXJhbXM/LnRvb2x0aXApe1xuICAgIDxzcGFuIGNsYXNzPVwidG9vbHRpcC1jb250YWluZXJcIj5cbiAgICAgICAgPHNhLWljb24gW2ljb25dPVwicGFyYW1zPy50b29sdGlwSWNvbiB8fCAnaW5mb0NpcmNsZU91dGxpbmVkJ1wiXG4gICAgICAgICAgICBjdXN0b21DbGFzcz1cImluZm8taWNvblwiIFttYXRUb29sdGlwXT1cInBhcmFtcz8udG9vbHRpcFwiXG4gICAgICAgICAgICBtYXRUb29sdGlwQ2xhc3M9XCJjdXN0b20tdG9vbHRpcFwiIGNsYXNzPVwidG9vbHRpcC1pY29uXCI+PC9zYS1pY29uPlxuICAgIDwvc3Bhbj5cbiAgICB9XG4gIDxkaXYgY2xhc3M9XCJjaGlwcy1jb250YWluZXJcIiBbc3R5bGUuZGlzcGxheV09XCIocGFyYW1zLnZpZXdDaGlwKSA/ICdmbGV4JyA6ICdub25lJ1wiPlxuXG4gIDxkaXYgKm5nRm9yPVwibGV0IGNvbmZpZyBvZiBkaXNwbGF5ZWRDaGlwc1wiPlxuICAgIDxzYS1jaGlwIFtpZF09XCJjb25maWcuaWRcIiBbZmlsbGluZ109XCJjb25maWcuZmlsbGluZ1wiIGlkPVwiY2hpcF97e3Jvd051bX19X3t7Y29uZmlnLmlkfX1cIiBbaWNvblBhdGhdPVwiY29uZmlnLmljb25QYXRoXCJcbiAgICAgIFtpY29uUG9zaXRpb25dPVwiY29uZmlnLmljb25Qb3NpdGlvblwiIFtsYXJnZVN0YXRlSWNvbl09XCJjb25maWcubGFyZ2VTdGF0ZUljb25cIiBbc3RhdGVdPVwiY29uZmlnLnN0YXRlXCJcbiAgICAgIFt0eXBlXT1cImNvbmZpZy50eXBlXCIgW3RleHRdPVwiY29uZmlnLnRleHRcIiBbY2xhc3Muc21hbGxdPVwiY29uZmlnLnR5cGUgPT09ICdzbWFsbCdcIlxuICAgICAgW2NsYXNzLm5ldXRyYWxdPVwiY29uZmlnLnN0YXRlID09PSAnbmV1dHJhbCdcIiAob25DbGlja0V2ZW50KT1cImNoaXBDbGlja2VkKCRldmVudClcIj48L3NhLWNoaXA+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiY2hpcC10b29sdGlwLWNvbnRhaW5lclwiICpuZ0lmPVwicmVtYWluaW5nQ2hpcHNDb3VudCA+IDBcIiBzdHlsZT1cInBvc2l0aW9uOiByZWxhdGl2ZTtcIlxuICAgIChtb3VzZWVudGVyKT1cInNob3dUb29sdGlwKHJlbWFpbmluZ0NoaXBzQ291bnQsICRldmVudClcIiAobW91c2VsZWF2ZSk9XCJoaWRlVG9vbHRpcCgpXCI+XG4gICAgPHNhLWNoaXAgW2lkXT1cIidjaGlwXycgKyByb3dOdW0gKyAnX21vcmUnXCIgW3RleHRdPVwiJysnICsgcmVtYWluaW5nQ2hpcHNDb3VudFwiIFtmaWxsaW5nXT1cImRpc3BsYXllZENoaXBzWzBdPy5maWxsaW5nXCJcbiAgICAgIFt0eXBlXT1cImRpc3BsYXllZENoaXBzWzBdPy50eXBlXCIgW3N0YXRlXT1cImRpc3BsYXllZENoaXBzWzBdPy5zdGF0ZVwiIChvbkNsaWNrRXZlbnQpPVwiY2hpcENsaWNrZWQoJGV2ZW50KVwiPjwvc2EtY2hpcD5cbjwvZGl2PlxuXG4gIDxzYS1idXR0b24gW2ljb25Qb3NpdGlvbl09XCJwYXJhbXMuYnV0dG9uQ29uZmlnPy5pY29uUG9zaXRpb25cIiBbSW1hZ2VQYXRoXT1cInBhcmFtcy5idXR0b25Db25maWc/LmltYWdlUGF0aFwiXG4gICAgW2lkXT1cInBhcmFtcy5idXR0b25Db25maWc/LmlkXCIgW3NpemVdPVwicGFyYW1zLmJ1dHRvbkNvbmZpZz8uc2l6ZVwiIFtzdGF0ZV09XCJwYXJhbXMuYnV0dG9uQ29uZmlnPy5zdGF0ZVwiXG4gICAgW3R5cGVdPVwicGFyYW1zLmJ1dHRvbkNvbmZpZz8udHlwZVwiIFt0ZXh0XT1cInBhcmFtcy5idXR0b25Db25maWc/LnRleHRcIiBbaHJlZl09XCJwYXJhbXMuYnV0dG9uQ29uZmlnPy5ocmVmXCJcbiAgICBbaHJlZlRhcmdldF09XCJwYXJhbXMuYnV0dG9uQ29uZmlnPy5ocmVmVGFyZ2V0XCIgW3N0eWxlLmRpc3BsYXldPVwiKHBhcmFtcy52aWV3QnV0dG9uKSA/ICdibG9jaycgOiAnbm9uZSdcIlxuICAgIChvbkNsaWNrRXZlbnQpPVwiYnV0dG9uQ2xpY2tlZCgkZXZlbnQpXCI+PC9zYS1idXR0b24+XG5cbjwvZGl2PlxuXG4gIDxkaXYgKm5nSWY9XCJwYXJhbXMuY2VsbFR5cGUgPT09ICdhY3Rpb25zJ1wiIGNsYXNzPVwiYWN0aW9ucy1jb250YWluZXJcIj5cbiAgICBAaWYocGFyYW1zPy5kb3dubG9hZEFjdGlvbil7XG4gICAgICA8c2EtaWNvbiBbaWNvbl09XCJwYXJhbXM/LmRvd25sb2FkQWN0aW9uPy5pY29uXCIgW3NpemVdPVwicGFyYW1zPy5kb3dubG9hZEFjdGlvbj8uaWNvblNpemVcIiAgKGNsaWNrKT1cImhhbmRsZUFjdGlvbkNsaWNrKHBhcmFtcz8uZG93bmxvYWRBY3Rpb24sICRldmVudClcIiAvPlxuICAgIH1cbiAgICA8aW1nIFtzcmNdPVwicGFyYW1zLmJ1dHRvbkNvbmZpZz8uaW1hZ2VQYXRoXCIgYWx0PVwiYWN0aW9uc1wiIGNsYXNzPVwiYWN0aW9ucy1pY29uXCIgKGNsaWNrKT1cInRvZ2dsZURyb3Bkb3duKGFjdGlvbnNCdXR0b24pXCJcbiAgICAgICNhY3Rpb25zQnV0dG9uIC8+XG4gICAgPG5nLXRlbXBsYXRlICNkcm9wZG93blRlbXBsYXRlPlxuICAgICAgPGRpdiBjbGFzcz1cImFjdGlvbnMtZHJvcGRvd25cIj5cbiAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgYWN0aW9uIG9mIHBhcmFtcy5hY3Rpb25zXCIgY2xhc3M9XCJhY3Rpb24taXRlbVwiIChjbGljayk9XCJoYW5kbGVBY3Rpb25DbGljayhhY3Rpb24sICRldmVudClcIj5cbiAgICAgICAgICA8aW1nICpuZ0lmPVwiYWN0aW9uLmljb25cIiBbc3JjXT1cImFjdGlvbi5pY29uXCIgY2xhc3M9XCJhY3Rpb24taWNvblwiIC8+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJhY3Rpb24tbGFiZWxcIj57e2FjdGlvbi5sYWJlbH19PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
@@ -48,10 +48,10 @@ export class GridHeaderComponent {
|
|
|
48
48
|
}
|
|
49
49
|
}
|
|
50
50
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: GridHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
51
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.4", type: GridHeaderComponent, isStandalone: true, selector: "sa-grid-header", ngImport: i0, template: "<div class=\"grid-header-container\" (click)=\"onSortRequested($event)\">\n <!-- Leading Icon -->\n @if(showLeadingIcon && leadingIcon) {\n <span class=\"leading-icon-container\">\n <sa-icon \n [icon]=\"leadingIcon\" \n [size]=\"leadingIconSize\"\n class=\"leading-icon\">\n </sa-icon>\n </span>\n }\n \n <!-- Header Text -->\n <span class=\"header-text\">{{ displayName }}</span>\n \n <!-- Trailing Icon (without tooltip) -->\n @if(showTrailingIcon && trailingIcon && !showInfoIcon) {\n <span class=\"trailing-icon-container\">\n <sa-icon \n [icon]=\"trailingIcon\" \n [size]=\"trailingIconSize\"\n class=\"trailing-icon\">\n </sa-icon>\n </span>\n }\n \n <!-- Info Icon with Tooltip -->\n @if(showInfoIcon && tooltip) {\n <span class=\"info-icon-container\">\n <sa-icon \n [icon]=\"tooltipIcon\" \n [size]=\"tooltipIconSize\"\n [matTooltip]=\"tooltip\"\n matTooltipClass=\"custom-tooltip\"\n class=\"info-icon\">\n </sa-icon>\n </span>\n }\n</div>\n", styles: [".grid-header-container{display:flex;align-items:center;gap
|
|
51
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.4", type: GridHeaderComponent, isStandalone: true, selector: "sa-grid-header", ngImport: i0, template: "<div class=\"grid-header-container\" (click)=\"onSortRequested($event)\">\n <!-- Leading Icon -->\n @if(showLeadingIcon && leadingIcon) {\n <span class=\"leading-icon-container\">\n <sa-icon \n [icon]=\"leadingIcon\" \n [size]=\"leadingIconSize\"\n class=\"leading-icon\">\n </sa-icon>\n </span>\n }\n \n <!-- Header Text -->\n <span class=\"header-text\">{{ displayName }}</span>\n \n <!-- Trailing Icon (without tooltip) -->\n @if(showTrailingIcon && trailingIcon && !showInfoIcon) {\n <span class=\"trailing-icon-container\">\n <sa-icon \n [icon]=\"trailingIcon\" \n [size]=\"trailingIconSize\"\n class=\"trailing-icon\">\n </sa-icon>\n </span>\n }\n \n <!-- Info Icon with Tooltip -->\n @if(showInfoIcon && tooltip) {\n <span class=\"info-icon-container\">\n <sa-icon \n [icon]=\"tooltipIcon\" \n [size]=\"tooltipIconSize\"\n [matTooltip]=\"tooltip\"\n matTooltipClass=\"custom-tooltip\"\n class=\"info-icon\">\n </sa-icon>\n </span>\n }\n</div>\n", styles: [".grid-header-container{display:flex;align-items:center;gap:var(--small-8px);cursor:pointer;-webkit-user-select:none;user-select:none}.leading-icon-container,.trailing-icon-container,.info-icon-container{display:flex;align-items:center;justify-content:center}.grid-header-container sa-icon{display:flex;padding-bottom:.125rem}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: IconComponent, selector: "sa-icon", inputs: ["img", "imgWidth", "imgHeight", "icon", "size", "color", "iconPath", "iconUrl", "customClass", "href", "hrefTarget", "iconPosition"], outputs: ["onClickEvent"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i1.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }] }); }
|
|
52
52
|
}
|
|
53
53
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: GridHeaderComponent, decorators: [{
|
|
54
54
|
type: Component,
|
|
55
|
-
args: [{ selector: 'sa-grid-header', standalone: true, imports: [CommonModule, IconComponent, MatTooltipModule], template: "<div class=\"grid-header-container\" (click)=\"onSortRequested($event)\">\n <!-- Leading Icon -->\n @if(showLeadingIcon && leadingIcon) {\n <span class=\"leading-icon-container\">\n <sa-icon \n [icon]=\"leadingIcon\" \n [size]=\"leadingIconSize\"\n class=\"leading-icon\">\n </sa-icon>\n </span>\n }\n \n <!-- Header Text -->\n <span class=\"header-text\">{{ displayName }}</span>\n \n <!-- Trailing Icon (without tooltip) -->\n @if(showTrailingIcon && trailingIcon && !showInfoIcon) {\n <span class=\"trailing-icon-container\">\n <sa-icon \n [icon]=\"trailingIcon\" \n [size]=\"trailingIconSize\"\n class=\"trailing-icon\">\n </sa-icon>\n </span>\n }\n \n <!-- Info Icon with Tooltip -->\n @if(showInfoIcon && tooltip) {\n <span class=\"info-icon-container\">\n <sa-icon \n [icon]=\"tooltipIcon\" \n [size]=\"tooltipIconSize\"\n [matTooltip]=\"tooltip\"\n matTooltipClass=\"custom-tooltip\"\n class=\"info-icon\">\n </sa-icon>\n </span>\n }\n</div>\n", styles: [".grid-header-container{display:flex;align-items:center;gap
|
|
55
|
+
args: [{ selector: 'sa-grid-header', standalone: true, imports: [CommonModule, IconComponent, MatTooltipModule], template: "<div class=\"grid-header-container\" (click)=\"onSortRequested($event)\">\n <!-- Leading Icon -->\n @if(showLeadingIcon && leadingIcon) {\n <span class=\"leading-icon-container\">\n <sa-icon \n [icon]=\"leadingIcon\" \n [size]=\"leadingIconSize\"\n class=\"leading-icon\">\n </sa-icon>\n </span>\n }\n \n <!-- Header Text -->\n <span class=\"header-text\">{{ displayName }}</span>\n \n <!-- Trailing Icon (without tooltip) -->\n @if(showTrailingIcon && trailingIcon && !showInfoIcon) {\n <span class=\"trailing-icon-container\">\n <sa-icon \n [icon]=\"trailingIcon\" \n [size]=\"trailingIconSize\"\n class=\"trailing-icon\">\n </sa-icon>\n </span>\n }\n \n <!-- Info Icon with Tooltip -->\n @if(showInfoIcon && tooltip) {\n <span class=\"info-icon-container\">\n <sa-icon \n [icon]=\"tooltipIcon\" \n [size]=\"tooltipIconSize\"\n [matTooltip]=\"tooltip\"\n matTooltipClass=\"custom-tooltip\"\n class=\"info-icon\">\n </sa-icon>\n </span>\n }\n</div>\n", styles: [".grid-header-container{display:flex;align-items:center;gap:var(--small-8px);cursor:pointer;-webkit-user-select:none;user-select:none}.leading-icon-container,.trailing-icon-container,.info-icon-container{display:flex;align-items:center;justify-content:center}.grid-header-container sa-icon{display:flex;padding-bottom:.125rem}\n"] }]
|
|
56
56
|
}] });
|
|
57
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
57
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1oZWFkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50LWxpYnJhcnkvc3JjL2xpYi9ncmlkLWhlYWRlci9ncmlkLWhlYWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnQtbGlicmFyeS9zcmMvbGliL2dyaWQtaGVhZGVyL2dyaWQtaGVhZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHMUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBMkIvQyxNQUFNLE9BQU8sbUJBQW1CO0lBUGhDO1FBU0UsZ0JBQVcsR0FBVyxFQUFFLENBQUM7UUFFekIsMEJBQTBCO1FBQzFCLGdCQUFXLEdBQVcsRUFBRSxDQUFDO1FBQ3pCLG9CQUFlLEdBQVcsSUFBSSxDQUFDO1FBQy9CLG9CQUFlLEdBQVksS0FBSyxDQUFDO1FBRWpDLDJCQUEyQjtRQUMzQixpQkFBWSxHQUFXLEVBQUUsQ0FBQztRQUMxQixxQkFBZ0IsR0FBVyxJQUFJLENBQUM7UUFDaEMscUJBQWdCLEdBQVksS0FBSyxDQUFDO1FBRWxDLHFCQUFxQjtRQUNyQixZQUFPLEdBQVcsRUFBRSxDQUFDO1FBQ3JCLGdCQUFXLEdBQVcsb0JBQW9CLENBQUM7UUFDM0MsaUJBQVksR0FBWSxLQUFLLENBQUM7UUFDOUIsb0JBQWUsR0FBVyxJQUFJLENBQUM7S0FpQ2hDO0lBL0JDLE1BQU0sQ0FBQyxNQUEwQjtRQUMvQixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQyxXQUFXLElBQUksRUFBRSxDQUFDO1FBRTVDLDZCQUE2QjtRQUM3QixJQUFJLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQyxXQUFXLElBQUksRUFBRSxDQUFDO1FBQzVDLElBQUksQ0FBQyxlQUFlLEdBQUcsTUFBTSxDQUFDLGVBQWUsSUFBSSxJQUFJLENBQUM7UUFDdEQsSUFBSSxDQUFDLGVBQWUsR0FBRyxNQUFNLENBQUMsZUFBZSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBRTdGLDhCQUE4QjtRQUM5QixJQUFJLENBQUMsWUFBWSxHQUFHLE1BQU0sQ0FBQyxZQUFZLElBQUksRUFBRSxDQUFDO1FBQzlDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLElBQUksSUFBSSxDQUFDO1FBQ3hELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUVoRyx3QkFBd0I7UUFDeEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQztRQUNwQyxJQUFJLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQyxXQUFXLElBQUksb0JBQW9CLENBQUM7UUFDOUQsSUFBSSxDQUFDLFlBQVksR0FBRyxNQUFNLENBQUMsWUFBWSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQ3BGLElBQUksQ0FBQyxlQUFlLEdBQUcsTUFBTSxDQUFDLGVBQWUsSUFBSSxJQUFJLENBQUM7SUFDeEQsQ0FBQztJQUVELE9BQU8sQ0FBQyxNQUEwQjtRQUNoQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3BCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELGVBQWUsQ0FBQyxLQUFVO1FBQ3hCLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUM5QixJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDM0MsQ0FBQztJQUNILENBQUM7OEdBbERVLG1CQUFtQjtrR0FBbkIsbUJBQW1CLDBFQ2hDaEMsb2tDQXVDQSxnWURYWSxZQUFZLCtCQUFFLGFBQWEsNk5BQUUsZ0JBQWdCOzsyRkFJNUMsbUJBQW1CO2tCQVAvQixTQUFTOytCQUNFLGdCQUFnQixjQUNkLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxhQUFhLEVBQUUsZ0JBQWdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElIZWFkZXJBbmd1bGFyQ29tcCB9IGZyb20gJ2FnLWdyaWQtYW5ndWxhcic7XG5pbXBvcnQgeyBJSGVhZGVyUGFyYW1zIH0gZnJvbSAnYWctZ3JpZC1jb21tdW5pdHknO1xuaW1wb3J0IHsgSWNvbkNvbXBvbmVudCB9IGZyb20gJy4uL2ljb24vaWNvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuZXhwb3J0IGludGVyZmFjZSBDdXN0b21IZWFkZXJQYXJhbXMgZXh0ZW5kcyBJSGVhZGVyUGFyYW1zIHtcbiAgLy8gTGVhZGluZyBpY29uIGNvbmZpZ3VyYXRpb25cbiAgbGVhZGluZ0ljb24/OiBzdHJpbmc7XG4gIGxlYWRpbmdJY29uU2l6ZT86IHN0cmluZztcbiAgc2hvd0xlYWRpbmdJY29uPzogYm9vbGVhbjtcbiAgXG4gIC8vIFRyYWlsaW5nIGljb24vaW5mbyBpY29uIGNvbmZpZ3VyYXRpb25cbiAgdHJhaWxpbmdJY29uPzogc3RyaW5nO1xuICB0cmFpbGluZ0ljb25TaXplPzogc3RyaW5nO1xuICBzaG93VHJhaWxpbmdJY29uPzogYm9vbGVhbjtcbiAgXG4gIC8vIFRvb2x0aXAgY29uZmlndXJhdGlvblxuICB0b29sdGlwPzogc3RyaW5nO1xuICB0b29sdGlwSWNvbj86IHN0cmluZztcbiAgc2hvd0luZm9JY29uPzogYm9vbGVhbjtcbiAgdG9vbHRpcEljb25TaXplPzogc3RyaW5nO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzYS1ncmlkLWhlYWRlcicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEljb25Db21wb25lbnQsIE1hdFRvb2x0aXBNb2R1bGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vZ3JpZC1oZWFkZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vZ3JpZC1oZWFkZXIuY29tcG9uZW50LmNzcydcbn0pXG5leHBvcnQgY2xhc3MgR3JpZEhlYWRlckNvbXBvbmVudCBpbXBsZW1lbnRzIElIZWFkZXJBbmd1bGFyQ29tcCB7XG4gIHBhcmFtcyE6IEN1c3RvbUhlYWRlclBhcmFtcztcbiAgZGlzcGxheU5hbWU6IHN0cmluZyA9ICcnO1xuICBcbiAgLy8gTGVhZGluZyBpY29uIHByb3BlcnRpZXNcbiAgbGVhZGluZ0ljb246IHN0cmluZyA9ICcnO1xuICBsZWFkaW5nSWNvblNpemU6IHN0cmluZyA9ICcyMCc7XG4gIHNob3dMZWFkaW5nSWNvbjogYm9vbGVhbiA9IGZhbHNlO1xuICBcbiAgLy8gVHJhaWxpbmcgaWNvbiBwcm9wZXJ0aWVzXG4gIHRyYWlsaW5nSWNvbjogc3RyaW5nID0gJyc7XG4gIHRyYWlsaW5nSWNvblNpemU6IHN0cmluZyA9ICcyMCc7XG4gIHNob3dUcmFpbGluZ0ljb246IGJvb2xlYW4gPSBmYWxzZTtcbiAgXG4gIC8vIFRvb2x0aXAgcHJvcGVydGllc1xuICB0b29sdGlwOiBzdHJpbmcgPSAnJztcbiAgdG9vbHRpcEljb246IHN0cmluZyA9ICdpbmZvQ2lyY2xlT3V0bGluZWQnO1xuICBzaG93SW5mb0ljb246IGJvb2xlYW4gPSBmYWxzZTtcbiAgdG9vbHRpcEljb25TaXplOiBzdHJpbmcgPSAnMjAnO1xuXG4gIGFnSW5pdChwYXJhbXM6IEN1c3RvbUhlYWRlclBhcmFtcyk6IHZvaWQge1xuICAgIHRoaXMucGFyYW1zID0gcGFyYW1zO1xuICAgIHRoaXMuZGlzcGxheU5hbWUgPSBwYXJhbXMuZGlzcGxheU5hbWUgfHwgJyc7XG4gICAgXG4gICAgLy8gTGVhZGluZyBpY29uIGNvbmZpZ3VyYXRpb25cbiAgICB0aGlzLmxlYWRpbmdJY29uID0gcGFyYW1zLmxlYWRpbmdJY29uIHx8ICcnO1xuICAgIHRoaXMubGVhZGluZ0ljb25TaXplID0gcGFyYW1zLmxlYWRpbmdJY29uU2l6ZSB8fCAnMjAnO1xuICAgIHRoaXMuc2hvd0xlYWRpbmdJY29uID0gcGFyYW1zLnNob3dMZWFkaW5nSWNvbiAhPT0gdW5kZWZpbmVkID8gcGFyYW1zLnNob3dMZWFkaW5nSWNvbiA6IGZhbHNlO1xuICAgIFxuICAgIC8vIFRyYWlsaW5nIGljb24gY29uZmlndXJhdGlvblxuICAgIHRoaXMudHJhaWxpbmdJY29uID0gcGFyYW1zLnRyYWlsaW5nSWNvbiB8fCAnJztcbiAgICB0aGlzLnRyYWlsaW5nSWNvblNpemUgPSBwYXJhbXMudHJhaWxpbmdJY29uU2l6ZSB8fCAnMjAnO1xuICAgIHRoaXMuc2hvd1RyYWlsaW5nSWNvbiA9IHBhcmFtcy5zaG93VHJhaWxpbmdJY29uICE9PSB1bmRlZmluZWQgPyBwYXJhbXMuc2hvd1RyYWlsaW5nSWNvbiA6IGZhbHNlO1xuICAgIFxuICAgIC8vIFRvb2x0aXAgY29uZmlndXJhdGlvblxuICAgIHRoaXMudG9vbHRpcCA9IHBhcmFtcy50b29sdGlwIHx8ICcnO1xuICAgIHRoaXMudG9vbHRpcEljb24gPSBwYXJhbXMudG9vbHRpcEljb24gfHwgJ2luZm9DaXJjbGVPdXRsaW5lZCc7XG4gICAgdGhpcy5zaG93SW5mb0ljb24gPSBwYXJhbXMuc2hvd0luZm9JY29uICE9PSB1bmRlZmluZWQgPyBwYXJhbXMuc2hvd0luZm9JY29uIDogZmFsc2U7XG4gICAgdGhpcy50b29sdGlwSWNvblNpemUgPSBwYXJhbXMudG9vbHRpcEljb25TaXplIHx8ICcyMCc7XG4gIH1cblxuICByZWZyZXNoKHBhcmFtczogQ3VzdG9tSGVhZGVyUGFyYW1zKTogYm9vbGVhbiB7XG4gICAgdGhpcy5hZ0luaXQocGFyYW1zKTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIG9uU29ydFJlcXVlc3RlZChldmVudDogYW55KTogdm9pZCB7XG4gICAgaWYgKHRoaXMucGFyYW1zLmVuYWJsZVNvcnRpbmcpIHtcbiAgICAgIHRoaXMucGFyYW1zLnByb2dyZXNzU29ydChldmVudC5zaGlmdEtleSk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZ3JpZC1oZWFkZXItY29udGFpbmVyXCIgKGNsaWNrKT1cIm9uU29ydFJlcXVlc3RlZCgkZXZlbnQpXCI+XG4gIDwhLS0gTGVhZGluZyBJY29uIC0tPlxuICBAaWYoc2hvd0xlYWRpbmdJY29uICYmIGxlYWRpbmdJY29uKSB7XG4gICAgPHNwYW4gY2xhc3M9XCJsZWFkaW5nLWljb24tY29udGFpbmVyXCI+XG4gICAgICA8c2EtaWNvbiBcbiAgICAgICAgW2ljb25dPVwibGVhZGluZ0ljb25cIiBcbiAgICAgICAgW3NpemVdPVwibGVhZGluZ0ljb25TaXplXCJcbiAgICAgICAgY2xhc3M9XCJsZWFkaW5nLWljb25cIj5cbiAgICAgIDwvc2EtaWNvbj5cbiAgICA8L3NwYW4+XG4gIH1cbiAgXG4gIDwhLS0gSGVhZGVyIFRleHQgLS0+XG4gIDxzcGFuIGNsYXNzPVwiaGVhZGVyLXRleHRcIj57eyBkaXNwbGF5TmFtZSB9fTwvc3Bhbj5cbiAgXG4gIDwhLS0gVHJhaWxpbmcgSWNvbiAod2l0aG91dCB0b29sdGlwKSAtLT5cbiAgQGlmKHNob3dUcmFpbGluZ0ljb24gJiYgdHJhaWxpbmdJY29uICYmICFzaG93SW5mb0ljb24pIHtcbiAgICA8c3BhbiBjbGFzcz1cInRyYWlsaW5nLWljb24tY29udGFpbmVyXCI+XG4gICAgICA8c2EtaWNvbiBcbiAgICAgICAgW2ljb25dPVwidHJhaWxpbmdJY29uXCIgXG4gICAgICAgIFtzaXplXT1cInRyYWlsaW5nSWNvblNpemVcIlxuICAgICAgICBjbGFzcz1cInRyYWlsaW5nLWljb25cIj5cbiAgICAgIDwvc2EtaWNvbj5cbiAgICA8L3NwYW4+XG4gIH1cbiAgXG4gIDwhLS0gSW5mbyBJY29uIHdpdGggVG9vbHRpcCAtLT5cbiAgQGlmKHNob3dJbmZvSWNvbiAmJiB0b29sdGlwKSB7XG4gICAgPHNwYW4gY2xhc3M9XCJpbmZvLWljb24tY29udGFpbmVyXCI+XG4gICAgICA8c2EtaWNvbiBcbiAgICAgICAgW2ljb25dPVwidG9vbHRpcEljb25cIiBcbiAgICAgICAgW3NpemVdPVwidG9vbHRpcEljb25TaXplXCJcbiAgICAgICAgW21hdFRvb2x0aXBdPVwidG9vbHRpcFwiXG4gICAgICAgIG1hdFRvb2x0aXBDbGFzcz1cImN1c3RvbS10b29sdGlwXCJcbiAgICAgICAgY2xhc3M9XCJpbmZvLWljb25cIj5cbiAgICAgIDwvc2EtaWNvbj5cbiAgICA8L3NwYW4+XG4gIH1cbjwvZGl2PlxuIl19
|
|
@@ -1624,12 +1624,6 @@ class GridCellComponent {
|
|
|
1624
1624
|
return [];
|
|
1625
1625
|
return this.params.chipConfig.map(chip => chip.text);
|
|
1626
1626
|
}
|
|
1627
|
-
ngOnDestroy() {
|
|
1628
|
-
this.hideTooltip();
|
|
1629
|
-
if (this.overlayRef) {
|
|
1630
|
-
this.overlayRef.dispose();
|
|
1631
|
-
}
|
|
1632
|
-
}
|
|
1633
1627
|
/**
|
|
1634
1628
|
* Masks an email address for privacy
|
|
1635
1629
|
* Shows first character, masks middle characters, shows last 2 characters before @
|
|
@@ -1662,6 +1656,12 @@ class GridCellComponent {
|
|
|
1662
1656
|
const maskedLength = localLength - 3; // Total length minus first and last 2
|
|
1663
1657
|
return firstChar + repeat('•', maskedLength) + lastTwoChars + domain;
|
|
1664
1658
|
}
|
|
1659
|
+
ngOnDestroy() {
|
|
1660
|
+
this.hideTooltip();
|
|
1661
|
+
if (this.overlayRef) {
|
|
1662
|
+
this.overlayRef.dispose();
|
|
1663
|
+
}
|
|
1664
|
+
}
|
|
1665
1665
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: GridCellComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1$4.Overlay }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1666
1666
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.4", type: GridCellComponent, isStandalone: true, selector: "sa-grid-cell", outputs: { onClickButtonEvent: "onClickButtonEvent", onClickChipEvent: "onClickChipEvent", onClickLinkEvent: "onClickLinkEvent", onClickAvatarEvent: "onClickAvatarEvent" }, host: { listeners: { "document:click": "onDocumentClick($event)" } }, viewQueries: [{ propertyName: "dropdownTemplate", first: true, predicate: ["dropdownTemplate"], descendants: true }, { propertyName: "actionsContainer", first: true, predicate: ["actionsContainer"], descendants: true }], ngImport: i0, template: "<div class=\"grid-cell {{params.cellType}}\">\n\n <img class=\"icons\" src={{params.iconPath}} [style.display]=\"(params.viewLeadingIcon) ? 'block' : 'none'\" alt=\"\">\n\n <sa-avatar [id]=\"params.avatarConfig?.id\" [altText]=\"params.avatarConfig?.altText\"\n [imagePath]=\"params.avatarConfig?.imagePath\" [size]=\"params.avatarConfig?.size\"\n [style.display]=\"(params.viewAvatar) ? 'block' : 'none'\" (onClickEvent)=\"avatarClicked($event)\">\n </sa-avatar>\n\n <div class=\"grid-text\" [style.display]=\"(params.viewText) ? 'block' : 'none'\">\n <div [style.display]=\"(params.text) ? 'block' : 'none'\" (click)=\"linkClicked()\" class=\"main-text\">\n @if(params.cellType === 'masked') {\n {{maskEmail(params.text)}}\n } @else {\n {{params.text}}\n }\n </div>\n\n <div [style.display]=\"(params.subText) ? 'block' : 'none'\" class=\"sub-text\">{{params.subText}}</div>\n </div>\n\n <img class=\"icons\" src={{params.iconPath}} [style.display]=\"(params.viewTrailingIcon) ? 'block' : 'none'\" alt=\"\">\n @if(params?.tooltip){\n <span class=\"tooltip-container\">\n <sa-icon [icon]=\"params?.tooltipIcon || 'infoCircleOutlined'\"\n customClass=\"info-icon\" [matTooltip]=\"params?.tooltip\"\n matTooltipClass=\"custom-tooltip\" class=\"tooltip-icon\"></sa-icon>\n </span>\n }\n <div class=\"chips-container\" [style.display]=\"(params.viewChip) ? 'flex' : 'none'\">\n\n <div *ngFor=\"let config of displayedChips\">\n <sa-chip [id]=\"config.id\" [filling]=\"config.filling\" id=\"chip_{{rowNum}}_{{config.id}}\" [iconPath]=\"config.iconPath\"\n [iconPosition]=\"config.iconPosition\" [largeStateIcon]=\"config.largeStateIcon\" [state]=\"config.state\"\n [type]=\"config.type\" [text]=\"config.text\" [class.small]=\"config.type === 'small'\"\n [class.neutral]=\"config.state === 'neutral'\" (onClickEvent)=\"chipClicked($event)\"></sa-chip>\n </div>\n <div class=\"chip-tooltip-container\" *ngIf=\"remainingChipsCount > 0\" style=\"position: relative;\"\n (mouseenter)=\"showTooltip(remainingChipsCount, $event)\" (mouseleave)=\"hideTooltip()\">\n <sa-chip [id]=\"'chip_' + rowNum + '_more'\" [text]=\"'+' + remainingChipsCount\" [filling]=\"displayedChips[0]?.filling\"\n [type]=\"displayedChips[0]?.type\" [state]=\"displayedChips[0]?.state\" (onClickEvent)=\"chipClicked($event)\"></sa-chip>\n</div>\n\n <sa-button [iconPosition]=\"params.buttonConfig?.iconPosition\" [ImagePath]=\"params.buttonConfig?.imagePath\"\n [id]=\"params.buttonConfig?.id\" [size]=\"params.buttonConfig?.size\" [state]=\"params.buttonConfig?.state\"\n [type]=\"params.buttonConfig?.type\" [text]=\"params.buttonConfig?.text\" [href]=\"params.buttonConfig?.href\"\n [hrefTarget]=\"params.buttonConfig?.hrefTarget\" [style.display]=\"(params.viewButton) ? 'block' : 'none'\"\n (onClickEvent)=\"buttonClicked($event)\"></sa-button>\n\n</div>\n\n <div *ngIf=\"params.cellType === 'actions'\" class=\"actions-container\">\n @if(params?.downloadAction){\n <sa-icon [icon]=\"params?.downloadAction?.icon\" [size]=\"params?.downloadAction?.iconSize\" (click)=\"handleActionClick(params?.downloadAction, $event)\" />\n }\n <img [src]=\"params.buttonConfig?.imagePath\" alt=\"actions\" class=\"actions-icon\" (click)=\"toggleDropdown(actionsButton)\"\n #actionsButton />\n <ng-template #dropdownTemplate>\n <div class=\"actions-dropdown\">\n <div *ngFor=\"let action of params.actions\" class=\"action-item\" (click)=\"handleActionClick(action, $event)\">\n <img *ngIf=\"action.icon\" [src]=\"action.icon\" class=\"action-icon\" />\n <span class=\"action-label\">{{action.label}}</span>\n </div>\n </div>\n </ng-template>\n </div>\n</div>\n", styles: [".header{--bg: var(--primary-50);--color: var(--text-highemphasis);--border: none;--flex-direction: left}.header:hover{cursor:pointer}.row{--color: var(--text-highemphasis);--cursor: default;--border: var(--grey-50);--flex-direction: left}.numeric{--color: var(--text-highemphasis);--cursor: default;--border: var(--grey-50);--flex-direction: right}.interactive{--color: var(--primary-500);--cursor: pointer;--border: var(--grey-50);--flex-direction: left}.grid-cell{display:flex;height:48px;padding:var(--small-12px);justify-content:var(--flex-direction);align-items:center;gap:var(--small-8px);flex-shrink:0;font-family:var(--font);box-sizing:border-box;border-bottom:1px solid var(--border);width:calc(100% - 20px);background-color:var(--bg)}.grid-text{display:flex;flex-direction:column}.main-text{color:var(--color);font-size:14px;font-weight:400;height:20px;line-height:20px}.main-text:hover{cursor:var(--cursor)}.sub-text{font-size:11px;font-weight:400;height:16px;line-height:16px;color:var(--text-mediumemphasis)}.icons{width:var(--medium-20px);height:var(--medium-20px)}.grid-chip{display:flex;height:24px;padding:var(--Small-4px, 4px) var(--Small-8px, 8px);justify-content:center;align-items:center;gap:var(--Small-4px, 4px);border-radius:4px;background:var(--Grey-100, #EAECF0);color:var(--Text-Medium-Emphasis, #6D6979);font-family:var(--font-family, Roboto);font-size:11px;font-style:normal;font-weight:500;line-height:16px;letter-spacing:.5px}.grid-cell,.chips-container{overflow:visible!important;position:relative}.chip-tooltip-container{position:relative;display:inline-flex;overflow:visible!important}.chip-tooltip-container sa-tool-tip{display:none}.chips-container{display:flex;gap:var(--Small-4px, 4px);align-items:center}.actions-container{position:relative;display:flex;width:32px;height:32px;justify-content:center;align-items:center;cursor:pointer}.actions-icon{width:20px;height:20px;cursor:pointer!important}.actions-dropdown{position:absolute;right:0;min-width:150px;z-index:1000;border-radius:4px;border:1px solid var(--Grey-100, #EAECF0);background:var(--Structural-White, #FFF);box-shadow:0 1px 2px #0000004d}.action-item{display:flex;height:40px;padding:12px;align-items:center;gap:8px;align-self:stretch;cursor:pointer;transition:background-color .2s}.action-item:hover{background-color:#f5f5f5}.action-label{color:var(--text-highemphasis, #1C1B20);font-family:var(--font-roboto, Roboto);font-size:14px;font-style:normal;font-weight:400;line-height:20px;letter-spacing:.25px}.actions-container.clicked{border-radius:64px;background:var(--Primary-50, #F4EBFF);padding:8px}.chips-container{overflow:visible!important;position:relative}.chip-tooltip-container{position:relative;display:inline-flex;overflow:visible}.tooltip-icon{display:flex;align-items:center}\n"], dependencies: [{ kind: "component", type: AvatarComponent, selector: "sa-avatar", inputs: ["id", "imagePath", "altText", "size"], outputs: ["onClickEvent", "onMouseInEvent", "onMouseOutEvent"] }, { kind: "component", type: ChipsComponent, selector: "sa-chip", inputs: ["id", "iconPath", "text", "type", "state", "filling", "iconPosition", "largeStateIcon", "largeStateText", "tooltip", "className"], outputs: ["onClickEvent"] }, { kind: "component", type: ButtonComponent, selector: "sa-button", inputs: ["id", "type", "state", "size", "text", "ImagePath", "icon", "iconPosition", "href", "hrefTarget", "width", "isSubmit", "buttonIconSize", "showSpinner"], outputs: ["onClickEvent", "onMouseInEvent", "onMouseOutEvent"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: CommonModule }, { kind: "component", type: IconComponent, selector: "sa-icon", inputs: ["img", "imgWidth", "imgHeight", "icon", "size", "color", "iconPath", "iconUrl", "customClass", "href", "hrefTarget", "iconPosition"], outputs: ["onClickEvent"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i1.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }] }); }
|
|
1667
1667
|
}
|
|
@@ -4039,11 +4039,11 @@ class GridHeaderComponent {
|
|
|
4039
4039
|
}
|
|
4040
4040
|
}
|
|
4041
4041
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: GridHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
4042
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.4", type: GridHeaderComponent, isStandalone: true, selector: "sa-grid-header", ngImport: i0, template: "<div class=\"grid-header-container\" (click)=\"onSortRequested($event)\">\n <!-- Leading Icon -->\n @if(showLeadingIcon && leadingIcon) {\n <span class=\"leading-icon-container\">\n <sa-icon \n [icon]=\"leadingIcon\" \n [size]=\"leadingIconSize\"\n class=\"leading-icon\">\n </sa-icon>\n </span>\n }\n \n <!-- Header Text -->\n <span class=\"header-text\">{{ displayName }}</span>\n \n <!-- Trailing Icon (without tooltip) -->\n @if(showTrailingIcon && trailingIcon && !showInfoIcon) {\n <span class=\"trailing-icon-container\">\n <sa-icon \n [icon]=\"trailingIcon\" \n [size]=\"trailingIconSize\"\n class=\"trailing-icon\">\n </sa-icon>\n </span>\n }\n \n <!-- Info Icon with Tooltip -->\n @if(showInfoIcon && tooltip) {\n <span class=\"info-icon-container\">\n <sa-icon \n [icon]=\"tooltipIcon\" \n [size]=\"tooltipIconSize\"\n [matTooltip]=\"tooltip\"\n matTooltipClass=\"custom-tooltip\"\n class=\"info-icon\">\n </sa-icon>\n </span>\n }\n</div>\n", styles: [".grid-header-container{display:flex;align-items:center;gap
|
|
4042
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.4", type: GridHeaderComponent, isStandalone: true, selector: "sa-grid-header", ngImport: i0, template: "<div class=\"grid-header-container\" (click)=\"onSortRequested($event)\">\n <!-- Leading Icon -->\n @if(showLeadingIcon && leadingIcon) {\n <span class=\"leading-icon-container\">\n <sa-icon \n [icon]=\"leadingIcon\" \n [size]=\"leadingIconSize\"\n class=\"leading-icon\">\n </sa-icon>\n </span>\n }\n \n <!-- Header Text -->\n <span class=\"header-text\">{{ displayName }}</span>\n \n <!-- Trailing Icon (without tooltip) -->\n @if(showTrailingIcon && trailingIcon && !showInfoIcon) {\n <span class=\"trailing-icon-container\">\n <sa-icon \n [icon]=\"trailingIcon\" \n [size]=\"trailingIconSize\"\n class=\"trailing-icon\">\n </sa-icon>\n </span>\n }\n \n <!-- Info Icon with Tooltip -->\n @if(showInfoIcon && tooltip) {\n <span class=\"info-icon-container\">\n <sa-icon \n [icon]=\"tooltipIcon\" \n [size]=\"tooltipIconSize\"\n [matTooltip]=\"tooltip\"\n matTooltipClass=\"custom-tooltip\"\n class=\"info-icon\">\n </sa-icon>\n </span>\n }\n</div>\n", styles: [".grid-header-container{display:flex;align-items:center;gap:var(--small-8px);cursor:pointer;-webkit-user-select:none;user-select:none}.leading-icon-container,.trailing-icon-container,.info-icon-container{display:flex;align-items:center;justify-content:center}.grid-header-container sa-icon{display:flex;padding-bottom:.125rem}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: IconComponent, selector: "sa-icon", inputs: ["img", "imgWidth", "imgHeight", "icon", "size", "color", "iconPath", "iconUrl", "customClass", "href", "hrefTarget", "iconPosition"], outputs: ["onClickEvent"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i1.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }] }); }
|
|
4043
4043
|
}
|
|
4044
4044
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: GridHeaderComponent, decorators: [{
|
|
4045
4045
|
type: Component,
|
|
4046
|
-
args: [{ selector: 'sa-grid-header', standalone: true, imports: [CommonModule, IconComponent, MatTooltipModule], template: "<div class=\"grid-header-container\" (click)=\"onSortRequested($event)\">\n <!-- Leading Icon -->\n @if(showLeadingIcon && leadingIcon) {\n <span class=\"leading-icon-container\">\n <sa-icon \n [icon]=\"leadingIcon\" \n [size]=\"leadingIconSize\"\n class=\"leading-icon\">\n </sa-icon>\n </span>\n }\n \n <!-- Header Text -->\n <span class=\"header-text\">{{ displayName }}</span>\n \n <!-- Trailing Icon (without tooltip) -->\n @if(showTrailingIcon && trailingIcon && !showInfoIcon) {\n <span class=\"trailing-icon-container\">\n <sa-icon \n [icon]=\"trailingIcon\" \n [size]=\"trailingIconSize\"\n class=\"trailing-icon\">\n </sa-icon>\n </span>\n }\n \n <!-- Info Icon with Tooltip -->\n @if(showInfoIcon && tooltip) {\n <span class=\"info-icon-container\">\n <sa-icon \n [icon]=\"tooltipIcon\" \n [size]=\"tooltipIconSize\"\n [matTooltip]=\"tooltip\"\n matTooltipClass=\"custom-tooltip\"\n class=\"info-icon\">\n </sa-icon>\n </span>\n }\n</div>\n", styles: [".grid-header-container{display:flex;align-items:center;gap
|
|
4046
|
+
args: [{ selector: 'sa-grid-header', standalone: true, imports: [CommonModule, IconComponent, MatTooltipModule], template: "<div class=\"grid-header-container\" (click)=\"onSortRequested($event)\">\n <!-- Leading Icon -->\n @if(showLeadingIcon && leadingIcon) {\n <span class=\"leading-icon-container\">\n <sa-icon \n [icon]=\"leadingIcon\" \n [size]=\"leadingIconSize\"\n class=\"leading-icon\">\n </sa-icon>\n </span>\n }\n \n <!-- Header Text -->\n <span class=\"header-text\">{{ displayName }}</span>\n \n <!-- Trailing Icon (without tooltip) -->\n @if(showTrailingIcon && trailingIcon && !showInfoIcon) {\n <span class=\"trailing-icon-container\">\n <sa-icon \n [icon]=\"trailingIcon\" \n [size]=\"trailingIconSize\"\n class=\"trailing-icon\">\n </sa-icon>\n </span>\n }\n \n <!-- Info Icon with Tooltip -->\n @if(showInfoIcon && tooltip) {\n <span class=\"info-icon-container\">\n <sa-icon \n [icon]=\"tooltipIcon\" \n [size]=\"tooltipIconSize\"\n [matTooltip]=\"tooltip\"\n matTooltipClass=\"custom-tooltip\"\n class=\"info-icon\">\n </sa-icon>\n </span>\n }\n</div>\n", styles: [".grid-header-container{display:flex;align-items:center;gap:var(--small-8px);cursor:pointer;-webkit-user-select:none;user-select:none}.leading-icon-container,.trailing-icon-container,.info-icon-container{display:flex;align-items:center;justify-content:center}.grid-header-container sa-icon{display:flex;padding-bottom:.125rem}\n"] }]
|
|
4047
4047
|
}] });
|
|
4048
4048
|
|
|
4049
4049
|
class HeaderComponent {
|