@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
JavaScript
// © 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==