UNPKG

@nova-ui/dashboards

Version:

Nova Dashboards is a framework designed to provide feature developers with a common solution for presenting data coming from various sources within a single view, as well as a set of predefined widget visualizations that are 100% configuration-driven and

75 lines 13.5 kB
// © 2022 SolarWinds Worldwide, LLC. All rights reserved. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to // deal in the Software without restriction, including without limitation the // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or // sell copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. import { Inject, Injectable } from "@angular/core"; import get from "lodash/get"; import { takeUntil } from "rxjs/operators"; import { EventBus, immutableSet } from "@nova-ui/bits"; import { PizzagnaService } from "../../../../pizzagna/services/pizzagna.service"; import { PizzagnaLayer, PIZZAGNA_EVENT_BUS, WellKnownProviders, } from "../../../../types"; import { PreviewService } from "../../preview.service"; import { BaseConverter } from "../base-converter"; import * as i0 from "@angular/core"; import * as i1 from "../../preview.service"; import * as i2 from "../../../../pizzagna/services/pizzagna.service"; import * as i3 from "@nova-ui/bits"; export class TimeseriesTileIndicatorDataConverterService extends BaseConverter { get previewComponentId() { return this.componentId.split("/")[0]; } constructor(eventBus, previewService, pizzagnaService) { super(eventBus, previewService, pizzagnaService); this.previewSeriesPath = `chart.providers.${WellKnownProviders.Adapter}.properties.series`; } buildForm() { const series = get(this.getPreview(), this.previewSeriesPath, []); const currentSeries = series.find((s) => s.id === this.previewComponentId); const selectedSeriesId = currentSeries && currentSeries.selectedSeriesId; const updatedPizzagna = immutableSet(this.pizzagnaService.pizzagna, `${PizzagnaLayer.Data}.${this.componentId}.properties`, { selectedSeriesId }); this.updateFormPizzagna(updatedPizzagna); } toPreview(form) { form.valueChanges .pipe(takeUntil(this.destroy$)) .subscribe((formData) => { const selectedSeriesId = formData.id; const preview = this.getPreview(); const seriesFromPreview = get(preview, this.previewSeriesPath, []); const currentSeriesIndex = seriesFromPreview.findIndex((s) => s.id === this.previewComponentId); if (currentSeriesIndex > -1) { const newSeries = [...seriesFromPreview]; newSeries[currentSeriesIndex] = { ...newSeries[currentSeriesIndex], selectedSeriesId, }; const updatedPreview = immutableSet(preview, `${this.previewSeriesPath}`, newSeries); this.updatePreview(updatedPreview); } }); } /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TimeseriesTileIndicatorDataConverterService, deps: [{ token: PIZZAGNA_EVENT_BUS }, { token: i1.PreviewService }, { token: i2.PizzagnaService }], target: i0.ɵɵFactoryTarget.Injectable }); } /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TimeseriesTileIndicatorDataConverterService }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TimeseriesTileIndicatorDataConverterService, decorators: [{ type: Injectable }], ctorParameters: () => [{ type: i3.EventBus, decorators: [{ type: Inject, args: [PIZZAGNA_EVENT_BUS] }] }, { type: i1.PreviewService }, { type: i2.PizzagnaService }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZXNlcmllcy10aWxlLWluZGljYXRvci1kYXRhLWNvbnZlcnRlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb25maWd1cmF0b3Ivc2VydmljZXMvY29udmVydGVycy90aW1lc2VyaWVzL3RpbWVzZXJpZXMtdGlsZS1pbmRpY2F0b3ItZGF0YS1jb252ZXJ0ZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx5REFBeUQ7QUFDekQsRUFBRTtBQUNGLCtFQUErRTtBQUMvRSw0RUFBNEU7QUFDNUUsOEVBQThFO0FBQzlFLCtFQUErRTtBQUMvRSw4RUFBOEU7QUFDOUUsNERBQTREO0FBQzVELEVBQUU7QUFDRiw2RUFBNkU7QUFDN0UsdURBQXVEO0FBQ3ZELEVBQUU7QUFDRiw2RUFBNkU7QUFDN0UsNEVBQTRFO0FBQzVFLCtFQUErRTtBQUMvRSwwRUFBMEU7QUFDMUUsaUZBQWlGO0FBQ2pGLDZFQUE2RTtBQUM3RSxpQkFBaUI7QUFFakIsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkQsT0FBTyxHQUFHLE1BQU0sWUFBWSxDQUFDO0FBQzdCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxPQUFPLEVBQUUsUUFBUSxFQUFVLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUcvRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDakYsT0FBTyxFQUNILGFBQWEsRUFDYixrQkFBa0IsRUFDbEIsa0JBQWtCLEdBQ3JCLE1BQU0sbUJBQW1CLENBQUM7QUFDM0IsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7Ozs7QUFHbEQsTUFBTSxPQUFPLDJDQUE0QyxTQUFRLGFBQWE7SUFHMUUsSUFBWSxrQkFBa0I7UUFDMUIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQsWUFDZ0MsUUFBMEIsRUFDdEQsY0FBOEIsRUFDOUIsZUFBZ0M7UUFFaEMsS0FBSyxDQUFDLFFBQVEsRUFBRSxjQUFjLEVBQUUsZUFBZSxDQUFDLENBQUM7UUFYN0Msc0JBQWlCLEdBQUcsbUJBQW1CLGtCQUFrQixDQUFDLE9BQU8sb0JBQW9CLENBQUM7SUFZOUYsQ0FBQztJQUVNLFNBQVM7UUFDWixNQUFNLE1BQU0sR0FBRyxHQUFHLENBQ2QsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUNqQixJQUFJLENBQUMsaUJBQWlCLEVBQ3RCLEVBQUUsQ0FDd0IsQ0FBQztRQUMvQixNQUFNLGFBQWEsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUM3QixDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxJQUFJLENBQUMsa0JBQWtCLENBQzFDLENBQUM7UUFDRixNQUFNLGdCQUFnQixHQUNsQixhQUFhLElBQUksYUFBYSxDQUFDLGdCQUFnQixDQUFDO1FBRXBELE1BQU0sZUFBZSxHQUFHLFlBQVksQ0FDaEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLEVBQzdCLEdBQUcsYUFBYSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsV0FBVyxhQUFhLEVBQ3RELEVBQUUsZ0JBQWdCLEVBQUUsQ0FDdkIsQ0FBQztRQUNGLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRU0sU0FBUyxDQUFDLElBQWU7UUFDNUIsSUFBSSxDQUFDLFlBQVk7YUFDWixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUM5QixTQUFTLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUNwQixNQUFNLGdCQUFnQixHQUFHLFFBQVEsQ0FBQyxFQUFFLENBQUM7WUFDckMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBRWxDLE1BQU0saUJBQWlCLEdBQUcsR0FBRyxDQUN6QixPQUFPLEVBQ1AsSUFBSSxDQUFDLGlCQUFpQixFQUN0QixFQUFFLENBQ3dCLENBQUM7WUFDL0IsTUFBTSxrQkFBa0IsR0FBRyxpQkFBaUIsQ0FBQyxTQUFTLENBQ2xELENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxrQkFBa0IsQ0FDMUMsQ0FBQztZQUVGLElBQUksa0JBQWtCLEdBQUcsQ0FBQyxDQUFDLEVBQUU7Z0JBQ3pCLE1BQU0sU0FBUyxHQUFHLENBQUMsR0FBRyxpQkFBaUIsQ0FBQyxDQUFDO2dCQUN6QyxTQUFTLENBQUMsa0JBQWtCLENBQUMsR0FBRztvQkFDNUIsR0FBRyxTQUFTLENBQUMsa0JBQWtCLENBQUM7b0JBQ2hDLGdCQUFnQjtpQkFDbkIsQ0FBQztnQkFFRixNQUFNLGNBQWMsR0FBRyxZQUFZLENBQy9CLE9BQU8sRUFDUCxHQUFHLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxFQUMzQixTQUFTLENBQ1osQ0FBQztnQkFDRixJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxDQUFDO2FBQ3RDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDWCxDQUFDO2tJQWxFUSwyQ0FBMkMsa0JBUXhDLGtCQUFrQjtzSUFSckIsMkNBQTJDOzs0RkFBM0MsMkNBQTJDO2tCQUR2RCxVQUFVOzswQkFTRixNQUFNOzJCQUFDLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbIi8vIMKpIDIwMjIgU29sYXJXaW5kcyBXb3JsZHdpZGUsIExMQy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyAgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG9cbi8vICBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZVxuLy8gIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vclxuLy8gIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyAgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vICBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vICBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vICBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyAgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vICBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyAgVEhFIFNPRlRXQVJFLlxuXG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5pbXBvcnQgZ2V0IGZyb20gXCJsb2Rhc2gvZ2V0XCI7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcblxuaW1wb3J0IHsgRXZlbnRCdXMsIElFdmVudCwgaW1tdXRhYmxlU2V0IH0gZnJvbSBcIkBub3ZhLXVpL2JpdHNcIjtcblxuaW1wb3J0IHsgSVRpbWVzZXJpZXNXaWRnZXRTZXJpZXMgfSBmcm9tIFwiLi4vLi4vLi4vLi4vY29tcG9uZW50cy90aW1lc2VyaWVzLXdpZGdldC90eXBlc1wiO1xuaW1wb3J0IHsgUGl6emFnbmFTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uLy4uLy4uL3BpenphZ25hL3NlcnZpY2VzL3BpenphZ25hLnNlcnZpY2VcIjtcbmltcG9ydCB7XG4gICAgUGl6emFnbmFMYXllcixcbiAgICBQSVpaQUdOQV9FVkVOVF9CVVMsXG4gICAgV2VsbEtub3duUHJvdmlkZXJzLFxufSBmcm9tIFwiLi4vLi4vLi4vLi4vdHlwZXNcIjtcbmltcG9ydCB7IFByZXZpZXdTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3ByZXZpZXcuc2VydmljZVwiO1xuaW1wb3J0IHsgQmFzZUNvbnZlcnRlciB9IGZyb20gXCIuLi9iYXNlLWNvbnZlcnRlclwiO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgVGltZXNlcmllc1RpbGVJbmRpY2F0b3JEYXRhQ29udmVydGVyU2VydmljZSBleHRlbmRzIEJhc2VDb252ZXJ0ZXIge1xuICAgIHByaXZhdGUgcHJldmlld1Nlcmllc1BhdGggPSBgY2hhcnQucHJvdmlkZXJzLiR7V2VsbEtub3duUHJvdmlkZXJzLkFkYXB0ZXJ9LnByb3BlcnRpZXMuc2VyaWVzYDtcblxuICAgIHByaXZhdGUgZ2V0IHByZXZpZXdDb21wb25lbnRJZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29tcG9uZW50SWQuc3BsaXQoXCIvXCIpWzBdO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBASW5qZWN0KFBJWlpBR05BX0VWRU5UX0JVUykgZXZlbnRCdXM6IEV2ZW50QnVzPElFdmVudD4sXG4gICAgICAgIHByZXZpZXdTZXJ2aWNlOiBQcmV2aWV3U2VydmljZSxcbiAgICAgICAgcGl6emFnbmFTZXJ2aWNlOiBQaXp6YWduYVNlcnZpY2VcbiAgICApIHtcbiAgICAgICAgc3VwZXIoZXZlbnRCdXMsIHByZXZpZXdTZXJ2aWNlLCBwaXp6YWduYVNlcnZpY2UpO1xuICAgIH1cblxuICAgIHB1YmxpYyBidWlsZEZvcm0oKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHNlcmllcyA9IGdldChcbiAgICAgICAgICAgIHRoaXMuZ2V0UHJldmlldygpLFxuICAgICAgICAgICAgdGhpcy5wcmV2aWV3U2VyaWVzUGF0aCxcbiAgICAgICAgICAgIFtdXG4gICAgICAgICkgYXMgSVRpbWVzZXJpZXNXaWRnZXRTZXJpZXNbXTtcbiAgICAgICAgY29uc3QgY3VycmVudFNlcmllcyA9IHNlcmllcy5maW5kKFxuICAgICAgICAgICAgKHMpID0+IHMuaWQgPT09IHRoaXMucHJldmlld0NvbXBvbmVudElkXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkU2VyaWVzSWQgPVxuICAgICAgICAgICAgY3VycmVudFNlcmllcyAmJiBjdXJyZW50U2VyaWVzLnNlbGVjdGVkU2VyaWVzSWQ7XG5cbiAgICAgICAgY29uc3QgdXBkYXRlZFBpenphZ25hID0gaW1tdXRhYmxlU2V0KFxuICAgICAgICAgICAgdGhpcy5waXp6YWduYVNlcnZpY2UucGl6emFnbmEsXG4gICAgICAgICAgICBgJHtQaXp6YWduYUxheWVyLkRhdGF9LiR7dGhpcy5jb21wb25lbnRJZH0ucHJvcGVydGllc2AsXG4gICAgICAgICAgICB7IHNlbGVjdGVkU2VyaWVzSWQgfVxuICAgICAgICApO1xuICAgICAgICB0aGlzLnVwZGF0ZUZvcm1QaXp6YWduYSh1cGRhdGVkUGl6emFnbmEpO1xuICAgIH1cblxuICAgIHB1YmxpYyB0b1ByZXZpZXcoZm9ybTogRm9ybUdyb3VwKTogdm9pZCB7XG4gICAgICAgIGZvcm0udmFsdWVDaGFuZ2VzXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChmb3JtRGF0YSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkU2VyaWVzSWQgPSBmb3JtRGF0YS5pZDtcbiAgICAgICAgICAgICAgICBjb25zdCBwcmV2aWV3ID0gdGhpcy5nZXRQcmV2aWV3KCk7XG5cbiAgICAgICAgICAgICAgICBjb25zdCBzZXJpZXNGcm9tUHJldmlldyA9IGdldChcbiAgICAgICAgICAgICAgICAgICAgcHJldmlldyxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wcmV2aWV3U2VyaWVzUGF0aCxcbiAgICAgICAgICAgICAgICAgICAgW11cbiAgICAgICAgICAgICAgICApIGFzIElUaW1lc2VyaWVzV2lkZ2V0U2VyaWVzW107XG4gICAgICAgICAgICAgICAgY29uc3QgY3VycmVudFNlcmllc0luZGV4ID0gc2VyaWVzRnJvbVByZXZpZXcuZmluZEluZGV4KFxuICAgICAgICAgICAgICAgICAgICAocykgPT4gcy5pZCA9PT0gdGhpcy5wcmV2aWV3Q29tcG9uZW50SWRcbiAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgaWYgKGN1cnJlbnRTZXJpZXNJbmRleCA+IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG5ld1NlcmllcyA9IFsuLi5zZXJpZXNGcm9tUHJldmlld107XG4gICAgICAgICAgICAgICAgICAgIG5ld1Nlcmllc1tjdXJyZW50U2VyaWVzSW5kZXhdID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgLi4ubmV3U2VyaWVzW2N1cnJlbnRTZXJpZXNJbmRleF0sXG4gICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZFNlcmllc0lkLFxuICAgICAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHVwZGF0ZWRQcmV2aWV3ID0gaW1tdXRhYmxlU2V0KFxuICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlldyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGAke3RoaXMucHJldmlld1Nlcmllc1BhdGh9YCxcbiAgICAgICAgICAgICAgICAgICAgICAgIG5ld1Nlcmllc1xuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVByZXZpZXcodXBkYXRlZFByZXZpZXcpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==