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

105 lines 14.7 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 { KpiComponent } from "../../components/kpi-widget/kpi.component"; import { StackComponent } from "../../components/layouts/stack/stack.component"; import { TilesComponent } from "../../components/layouts/tiles/tiles.component"; import { DEFAULT_PIZZAGNA_ROOT, NOVA_KPI_COLOR_PRIORITIZER, NOVA_KPI_DATASOURCE_ADAPTER, NOVA_KPI_STATUS_CONTENT_FALLBACK_ADAPTER, } from "../../services/types"; import { PizzagnaLayer, WellKnownProviders, } from "../../types"; import { widgetBodyContentNodes, WIDGET_BODY, WIDGET_HEADER, WIDGET_LOADING, } from "../common/widget/components"; import { EVENT_PROXY, refresher } from "../common/widget/providers"; export const kpiWidget = { [PizzagnaLayer.Structure]: { [DEFAULT_PIZZAGNA_ROOT]: { id: DEFAULT_PIZZAGNA_ROOT, // base layout of the widget - all components referenced herein will be stacked in a column componentType: StackComponent.lateLoadKey, providers: { // When enabled, this provider emits the REFRESH event on the pizzagna event bus every X seconds [WellKnownProviders.Refresher]: refresher(), // event proxy manages the transmission of events between widget and dashboard [WellKnownProviders.EventProxy]: EVENT_PROXY, }, properties: { nodes: ["header", "loading", "body"], }, }, // widget header header: WIDGET_HEADER, // this is the loading bar below the header loading: WIDGET_LOADING, // widget body body: { ...WIDGET_BODY, properties: { ...WIDGET_BODY.properties, elementClass: "overflow-hidden", }, }, /** * Retrieving definitions for the body content nodes * --- * The first argument corresponds to the main content node key. * The second argument is the id of the adapter responsible for activating fallback content in case of an error. */ ...widgetBodyContentNodes("tiles", NOVA_KPI_STATUS_CONTENT_FALLBACK_ADAPTER), // the main content node specifying a component that manages layout of the KPI tiles in a CSS grid tiles: { id: "tiles", componentType: TilesComponent.lateLoadKey, properties: { elementClass: "flex-grow-1 pt-2 px-3 pb-3 w-100", template: { componentType: KpiComponent.lateLoadKey, providers: { [WellKnownProviders.KpiColorPrioritizer]: { providerId: NOVA_KPI_COLOR_PRIORITIZER, properties: {}, }, [WellKnownProviders.Adapter]: { providerId: NOVA_KPI_DATASOURCE_ADAPTER, properties: { propertyPath: "widgetData", }, }, }, properties: { elementClass: "flex-grow-1", }, }, }, }, }, [PizzagnaLayer.Configuration]: { [DEFAULT_PIZZAGNA_ROOT]: { id: DEFAULT_PIZZAGNA_ROOT, providers: { // default refresher configuration [WellKnownProviders.Refresher]: refresher(false, 60), }, }, // default header configuration header: { properties: { title: $localize `Empty KPI Widget`, }, }, }, }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3BpLXdpZGdldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvd2lkZ2V0LXR5cGVzL2twaS9rcGktd2lkZ2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHlEQUF5RDtBQUN6RCxFQUFFO0FBQ0YsK0VBQStFO0FBQy9FLDRFQUE0RTtBQUM1RSw4RUFBOEU7QUFDOUUsK0VBQStFO0FBQy9FLDhFQUE4RTtBQUM5RSw0REFBNEQ7QUFDNUQsRUFBRTtBQUNGLDZFQUE2RTtBQUM3RSx1REFBdUQ7QUFDdkQsRUFBRTtBQUNGLDZFQUE2RTtBQUM3RSw0RUFBNEU7QUFDNUUsK0VBQStFO0FBQy9FLDBFQUEwRTtBQUMxRSxpRkFBaUY7QUFDakYsNkVBQTZFO0FBQzdFLGlCQUFpQjtBQUVqQixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDekUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUNoRixPQUFPLEVBQ0gscUJBQXFCLEVBQ3JCLDBCQUEwQixFQUMxQiwyQkFBMkIsRUFDM0Isd0NBQXdDLEdBQzNDLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUVILGFBQWEsRUFDYixrQkFBa0IsR0FDckIsTUFBTSxhQUFhLENBQUM7QUFDckIsT0FBTyxFQUNILHNCQUFzQixFQUN0QixXQUFXLEVBQ1gsYUFBYSxFQUNiLGNBQWMsR0FDakIsTUFBTSw2QkFBNkIsQ0FBQztBQUNyQyxPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRXBFLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRztJQUNyQixDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsRUFBRTtRQUN2QixDQUFDLHFCQUFxQixDQUFDLEVBQUU7WUFDckIsRUFBRSxFQUFFLHFCQUFxQjtZQUN6QiwyRkFBMkY7WUFDM0YsYUFBYSxFQUFFLGNBQWMsQ0FBQyxXQUFXO1lBQ3pDLFNBQVMsRUFBRTtnQkFDUCxnR0FBZ0c7Z0JBQ2hHLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLEVBQUUsU0FBUyxFQUFFO2dCQUMzQyw4RUFBOEU7Z0JBQzlFLENBQUMsa0JBQWtCLENBQUMsVUFBVSxDQUFDLEVBQUUsV0FBVzthQUMvQztZQUNELFVBQVUsRUFBRTtnQkFDUixLQUFLLEVBQUUsQ0FBQyxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sQ0FBQzthQUN2QztTQUNKO1FBQ0QsZ0JBQWdCO1FBQ2hCLE1BQU0sRUFBRSxhQUFhO1FBQ3JCLDJDQUEyQztRQUMzQyxPQUFPLEVBQUUsY0FBYztRQUN2QixjQUFjO1FBQ2QsSUFBSSxFQUFFO1lBQ0YsR0FBRyxXQUFXO1lBQ2QsVUFBVSxFQUFFO2dCQUNSLEdBQUcsV0FBVyxDQUFDLFVBQVU7Z0JBQ3pCLFlBQVksRUFBRSxpQkFBaUI7YUFDbEM7U0FDSjtRQUVEOzs7OztXQUtHO1FBQ0gsR0FBRyxzQkFBc0IsQ0FDckIsT0FBTyxFQUNQLHdDQUF3QyxDQUMzQztRQUVELGtHQUFrRztRQUNsRyxLQUFLLEVBQUU7WUFDSCxFQUFFLEVBQUUsT0FBTztZQUNYLGFBQWEsRUFBRSxjQUFjLENBQUMsV0FBVztZQUN6QyxVQUFVLEVBQUU7Z0JBQ1IsWUFBWSxFQUFFLGtDQUFrQztnQkFDaEQsUUFBUSxFQUFFO29CQUNOLGFBQWEsRUFBRSxZQUFZLENBQUMsV0FBVztvQkFDdkMsU0FBUyxFQUFFO3dCQUNQLENBQUMsa0JBQWtCLENBQUMsbUJBQW1CLENBQUMsRUFBRTs0QkFDdEMsVUFBVSxFQUFFLDBCQUEwQjs0QkFDdEMsVUFBVSxFQUFFLEVBQUU7eUJBQ1M7d0JBQzNCLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLEVBQUU7NEJBQzFCLFVBQVUsRUFBRSwyQkFBMkI7NEJBQ3ZDLFVBQVUsRUFBRTtnQ0FDUixZQUFZLEVBQUUsWUFBWTs2QkFDN0I7eUJBQ3NCO3FCQUM5QjtvQkFDRCxVQUFVLEVBQUU7d0JBQ1IsWUFBWSxFQUFFLGFBQWE7cUJBQzlCO2lCQUNKO2FBQ0o7U0FDSjtLQUNKO0lBQ0QsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLEVBQUU7UUFDM0IsQ0FBQyxxQkFBcUIsQ0FBQyxFQUFFO1lBQ3JCLEVBQUUsRUFBRSxxQkFBcUI7WUFDekIsU0FBUyxFQUFFO2dCQUNQLGtDQUFrQztnQkFDbEMsQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsRUFBRSxTQUFTLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQzthQUN2RDtTQUNKO1FBQ0QsK0JBQStCO1FBQy9CLE1BQU0sRUFBRTtZQUNKLFVBQVUsRUFBRTtnQkFDUixLQUFLLEVBQUUsU0FBUyxDQUFBLGtCQUFrQjthQUNyQztTQUNKO0tBQ0o7Q0FDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gwqkgMjAyMiBTb2xhcldpbmRzIFdvcmxkd2lkZSwgTExDLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vICBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0b1xuLy8gIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlXG4vLyAgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yXG4vLyAgc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vICBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyAgYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vICBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vICBUSEUgU09GVFdBUkUuXG5cbmltcG9ydCB7IEtwaUNvbXBvbmVudCB9IGZyb20gXCIuLi8uLi9jb21wb25lbnRzL2twaS13aWRnZXQva3BpLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgU3RhY2tDb21wb25lbnQgfSBmcm9tIFwiLi4vLi4vY29tcG9uZW50cy9sYXlvdXRzL3N0YWNrL3N0YWNrLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgVGlsZXNDb21wb25lbnQgfSBmcm9tIFwiLi4vLi4vY29tcG9uZW50cy9sYXlvdXRzL3RpbGVzL3RpbGVzLmNvbXBvbmVudFwiO1xuaW1wb3J0IHtcbiAgICBERUZBVUxUX1BJWlpBR05BX1JPT1QsXG4gICAgTk9WQV9LUElfQ09MT1JfUFJJT1JJVElaRVIsXG4gICAgTk9WQV9LUElfREFUQVNPVVJDRV9BREFQVEVSLFxuICAgIE5PVkFfS1BJX1NUQVRVU19DT05URU5UX0ZBTExCQUNLX0FEQVBURVIsXG59IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy90eXBlc1wiO1xuaW1wb3J0IHtcbiAgICBJUHJvdmlkZXJDb25maWd1cmF0aW9uLFxuICAgIFBpenphZ25hTGF5ZXIsXG4gICAgV2VsbEtub3duUHJvdmlkZXJzLFxufSBmcm9tIFwiLi4vLi4vdHlwZXNcIjtcbmltcG9ydCB7XG4gICAgd2lkZ2V0Qm9keUNvbnRlbnROb2RlcyxcbiAgICBXSURHRVRfQk9EWSxcbiAgICBXSURHRVRfSEVBREVSLFxuICAgIFdJREdFVF9MT0FESU5HLFxufSBmcm9tIFwiLi4vY29tbW9uL3dpZGdldC9jb21wb25lbnRzXCI7XG5pbXBvcnQgeyBFVkVOVF9QUk9YWSwgcmVmcmVzaGVyIH0gZnJvbSBcIi4uL2NvbW1vbi93aWRnZXQvcHJvdmlkZXJzXCI7XG5cbmV4cG9ydCBjb25zdCBrcGlXaWRnZXQgPSB7XG4gICAgW1BpenphZ25hTGF5ZXIuU3RydWN0dXJlXToge1xuICAgICAgICBbREVGQVVMVF9QSVpaQUdOQV9ST09UXToge1xuICAgICAgICAgICAgaWQ6IERFRkFVTFRfUElaWkFHTkFfUk9PVCxcbiAgICAgICAgICAgIC8vIGJhc2UgbGF5b3V0IG9mIHRoZSB3aWRnZXQgLSBhbGwgY29tcG9uZW50cyByZWZlcmVuY2VkIGhlcmVpbiB3aWxsIGJlIHN0YWNrZWQgaW4gYSBjb2x1bW5cbiAgICAgICAgICAgIGNvbXBvbmVudFR5cGU6IFN0YWNrQ29tcG9uZW50LmxhdGVMb2FkS2V5LFxuICAgICAgICAgICAgcHJvdmlkZXJzOiB7XG4gICAgICAgICAgICAgICAgLy8gV2hlbiBlbmFibGVkLCB0aGlzIHByb3ZpZGVyIGVtaXRzIHRoZSBSRUZSRVNIIGV2ZW50IG9uIHRoZSBwaXp6YWduYSBldmVudCBidXMgZXZlcnkgWCBzZWNvbmRzXG4gICAgICAgICAgICAgICAgW1dlbGxLbm93blByb3ZpZGVycy5SZWZyZXNoZXJdOiByZWZyZXNoZXIoKSxcbiAgICAgICAgICAgICAgICAvLyBldmVudCBwcm94eSBtYW5hZ2VzIHRoZSB0cmFuc21pc3Npb24gb2YgZXZlbnRzIGJldHdlZW4gd2lkZ2V0IGFuZCBkYXNoYm9hcmRcbiAgICAgICAgICAgICAgICBbV2VsbEtub3duUHJvdmlkZXJzLkV2ZW50UHJveHldOiBFVkVOVF9QUk9YWSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICAgICAgbm9kZXM6IFtcImhlYWRlclwiLCBcImxvYWRpbmdcIiwgXCJib2R5XCJdLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgLy8gd2lkZ2V0IGhlYWRlclxuICAgICAgICBoZWFkZXI6IFdJREdFVF9IRUFERVIsXG4gICAgICAgIC8vIHRoaXMgaXMgdGhlIGxvYWRpbmcgYmFyIGJlbG93IHRoZSBoZWFkZXJcbiAgICAgICAgbG9hZGluZzogV0lER0VUX0xPQURJTkcsXG4gICAgICAgIC8vIHdpZGdldCBib2R5XG4gICAgICAgIGJvZHk6IHtcbiAgICAgICAgICAgIC4uLldJREdFVF9CT0RZLFxuICAgICAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgICAgICAgIC4uLldJREdFVF9CT0RZLnByb3BlcnRpZXMsXG4gICAgICAgICAgICAgICAgZWxlbWVudENsYXNzOiBcIm92ZXJmbG93LWhpZGRlblwiLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSxcblxuICAgICAgICAvKipcbiAgICAgICAgICogUmV0cmlldmluZyBkZWZpbml0aW9ucyBmb3IgdGhlIGJvZHkgY29udGVudCBub2Rlc1xuICAgICAgICAgKiAtLS1cbiAgICAgICAgICogVGhlIGZpcnN0IGFyZ3VtZW50IGNvcnJlc3BvbmRzIHRvIHRoZSBtYWluIGNvbnRlbnQgbm9kZSBrZXkuXG4gICAgICAgICAqIFRoZSBzZWNvbmQgYXJndW1lbnQgaXMgdGhlIGlkIG9mIHRoZSBhZGFwdGVyIHJlc3BvbnNpYmxlIGZvciBhY3RpdmF0aW5nIGZhbGxiYWNrIGNvbnRlbnQgaW4gY2FzZSBvZiBhbiBlcnJvci5cbiAgICAgICAgICovXG4gICAgICAgIC4uLndpZGdldEJvZHlDb250ZW50Tm9kZXMoXG4gICAgICAgICAgICBcInRpbGVzXCIsXG4gICAgICAgICAgICBOT1ZBX0tQSV9TVEFUVVNfQ09OVEVOVF9GQUxMQkFDS19BREFQVEVSXG4gICAgICAgICksXG5cbiAgICAgICAgLy8gdGhlIG1haW4gY29udGVudCBub2RlIHNwZWNpZnlpbmcgYSBjb21wb25lbnQgdGhhdCBtYW5hZ2VzIGxheW91dCBvZiB0aGUgS1BJIHRpbGVzIGluIGEgQ1NTIGdyaWRcbiAgICAgICAgdGlsZXM6IHtcbiAgICAgICAgICAgIGlkOiBcInRpbGVzXCIsXG4gICAgICAgICAgICBjb21wb25lbnRUeXBlOiBUaWxlc0NvbXBvbmVudC5sYXRlTG9hZEtleSxcbiAgICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgICAgICBlbGVtZW50Q2xhc3M6IFwiZmxleC1ncm93LTEgcHQtMiBweC0zIHBiLTMgdy0xMDBcIixcbiAgICAgICAgICAgICAgICB0ZW1wbGF0ZToge1xuICAgICAgICAgICAgICAgICAgICBjb21wb25lbnRUeXBlOiBLcGlDb21wb25lbnQubGF0ZUxvYWRLZXksXG4gICAgICAgICAgICAgICAgICAgIHByb3ZpZGVyczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgW1dlbGxLbm93blByb3ZpZGVycy5LcGlDb2xvclByaW9yaXRpemVyXToge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3ZpZGVySWQ6IE5PVkFfS1BJX0NPTE9SX1BSSU9SSVRJWkVSLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnRpZXM6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgICAgfSBhcyBJUHJvdmlkZXJDb25maWd1cmF0aW9uLFxuICAgICAgICAgICAgICAgICAgICAgICAgW1dlbGxLbm93blByb3ZpZGVycy5BZGFwdGVyXToge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3ZpZGVySWQ6IE5PVkFfS1BJX0RBVEFTT1VSQ0VfQURBUFRFUixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5UGF0aDogXCJ3aWRnZXREYXRhXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gYXMgSVByb3ZpZGVyQ29uZmlndXJhdGlvbixcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudENsYXNzOiBcImZsZXgtZ3Jvdy0xXCIsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgfSxcbiAgICBbUGl6emFnbmFMYXllci5Db25maWd1cmF0aW9uXToge1xuICAgICAgICBbREVGQVVMVF9QSVpaQUdOQV9ST09UXToge1xuICAgICAgICAgICAgaWQ6IERFRkFVTFRfUElaWkFHTkFfUk9PVCxcbiAgICAgICAgICAgIHByb3ZpZGVyczoge1xuICAgICAgICAgICAgICAgIC8vIGRlZmF1bHQgcmVmcmVzaGVyIGNvbmZpZ3VyYXRpb25cbiAgICAgICAgICAgICAgICBbV2VsbEtub3duUHJvdmlkZXJzLlJlZnJlc2hlcl06IHJlZnJlc2hlcihmYWxzZSwgNjApLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgLy8gZGVmYXVsdCBoZWFkZXIgY29uZmlndXJhdGlvblxuICAgICAgICBoZWFkZXI6IHtcbiAgICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgICAgICB0aXRsZTogJGxvY2FsaXplYEVtcHR5IEtQSSBXaWRnZXRgLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICB9LFxufTtcbiJdfQ==