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

111 lines 15.8 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 { StackComponent } from "../../components/layouts/stack/stack.component"; import { TableWidgetComponent } from "../../components/table-widget/table-widget.component"; import { DEFAULT_PIZZAGNA_ROOT, NOVA_DASHBOARD_EVENT_PROXY, NOVA_TABLE_DATASOURCE_ADAPTER, NOVA_VIRTUAL_VIEWPORT_MANAGER, WIDGET_RESIZE, } from "../../services/types"; import { PizzagnaLayer, WellKnownProviders } from "../../types"; import { widgetBodyContentNodes, WIDGET_BODY, WIDGET_HEADER, WIDGET_LOADING, } from "../common/widget/components"; import { refresher } from "../common/widget/providers"; export const tableWidget = { [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(), [WellKnownProviders.EventProxy]: { // event proxy manages the transmission of events between widget and dashboard providerId: NOVA_DASHBOARD_EVENT_PROXY, properties: { // WIDGET_RESIZE event is used to adjust the virtual scroll viewport size downstreams: [WIDGET_RESIZE.id], }, }, }, 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-auto", }, }, // retrieving the definitions for the body content nodes. the argument corresponds to the main content node key ...widgetBodyContentNodes("table"), // this is the main component showing a table with data table: { id: "table", componentType: TableWidgetComponent.lateLoadKey, providers: { // adapter invokes the data source and assigns the output to this component [WellKnownProviders.Adapter]: { providerId: NOVA_TABLE_DATASOURCE_ADAPTER, properties: { componentId: "table", dataPath: "widgetData", // data-fields are necessary to map incoming data to configured columns dataFieldsPath: "dataFields", totalItemsPath: "totalItems", }, }, virtualViewportManager: { providerId: NOVA_VIRTUAL_VIEWPORT_MANAGER, }, }, properties: { elementClass: "flex-grow-1 mx-3 mb-3 mt-2", delayedMousePresenceDetectionEnabled: true, configuration: { columns: [], // The delay in milliseconds after table mouseenter before scrolling is activated scrollActivationDelayMs: 500, // Whether to display or not table header tooltips headerTooltipsEnabled: true, // default }, }, }, }, [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 Table Widget`, }, }, }, }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtd2lkZ2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi93aWRnZXQtdHlwZXMvdGFibGUvdGFibGUtd2lkZ2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHlEQUF5RDtBQUN6RCxFQUFFO0FBQ0YsK0VBQStFO0FBQy9FLDRFQUE0RTtBQUM1RSw4RUFBOEU7QUFDOUUsK0VBQStFO0FBQy9FLDhFQUE4RTtBQUM5RSw0REFBNEQ7QUFDNUQsRUFBRTtBQUNGLDZFQUE2RTtBQUM3RSx1REFBdUQ7QUFDdkQsRUFBRTtBQUNGLDZFQUE2RTtBQUM3RSw0RUFBNEU7QUFDNUUsK0VBQStFO0FBQy9FLDBFQUEwRTtBQUMxRSxpRkFBaUY7QUFDakYsNkVBQTZFO0FBQzdFLGlCQUFpQjtBQUVqQixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDaEYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFFNUYsT0FBTyxFQUNILHFCQUFxQixFQUNyQiwwQkFBMEIsRUFDMUIsNkJBQTZCLEVBQzdCLDZCQUE2QixFQUM3QixhQUFhLEdBQ2hCLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUFhLGFBQWEsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMzRSxPQUFPLEVBQ0gsc0JBQXNCLEVBQ3RCLFdBQVcsRUFDWCxhQUFhLEVBQ2IsY0FBYyxHQUNqQixNQUFNLDZCQUE2QixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUV2RCxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQWM7SUFDbEMsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLEVBQUU7UUFDdkIsQ0FBQyxxQkFBcUIsQ0FBQyxFQUFFO1lBQ3JCLEVBQUUsRUFBRSxxQkFBcUI7WUFDekIsMkZBQTJGO1lBQzNGLGFBQWEsRUFBRSxjQUFjLENBQUMsV0FBVztZQUN6QyxTQUFTLEVBQUU7Z0JBQ1AsZ0dBQWdHO2dCQUNoRyxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxFQUFFLFNBQVMsRUFBRTtnQkFDM0MsQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsRUFBRTtvQkFDN0IsOEVBQThFO29CQUM5RSxVQUFVLEVBQUUsMEJBQTBCO29CQUN0QyxVQUFVLEVBQUU7d0JBQ1IseUVBQXlFO3dCQUN6RSxXQUFXLEVBQUUsQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDO3FCQUNsQztpQkFDSjthQUNKO1lBQ0QsVUFBVSxFQUFFO2dCQUNSLEtBQUssRUFBRSxDQUFDLFFBQVEsRUFBRSxTQUFTLEVBQUUsTUFBTSxDQUFDO2FBQ3ZDO1NBQ0o7UUFDRCxnQkFBZ0I7UUFDaEIsTUFBTSxFQUFFLGFBQWE7UUFDckIsMkNBQTJDO1FBQzNDLE9BQU8sRUFBRSxjQUFjO1FBQ3ZCLGNBQWM7UUFDZCxJQUFJLEVBQUU7WUFDRixHQUFHLFdBQVc7WUFDZCxVQUFVLEVBQUU7Z0JBQ1IsR0FBRyxXQUFXLENBQUMsVUFBVTtnQkFDekIsWUFBWSxFQUFFLGVBQWU7YUFDaEM7U0FDSjtRQUVELCtHQUErRztRQUMvRyxHQUFHLHNCQUFzQixDQUFDLE9BQU8sQ0FBQztRQUVsQyx1REFBdUQ7UUFDdkQsS0FBSyxFQUFFO1lBQ0gsRUFBRSxFQUFFLE9BQU87WUFDWCxhQUFhLEVBQUUsb0JBQW9CLENBQUMsV0FBVztZQUMvQyxTQUFTLEVBQUU7Z0JBQ1AsMkVBQTJFO2dCQUMzRSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxFQUFFO29CQUMxQixVQUFVLEVBQUUsNkJBQTZCO29CQUN6QyxVQUFVLEVBQUU7d0JBQ1IsV0FBVyxFQUFFLE9BQU87d0JBQ3BCLFFBQVEsRUFBRSxZQUFZO3dCQUN0Qix1RUFBdUU7d0JBQ3ZFLGNBQWMsRUFBRSxZQUFZO3dCQUM1QixjQUFjLEVBQUUsWUFBWTtxQkFDL0I7aUJBQ0o7Z0JBQ0Qsc0JBQXNCLEVBQUU7b0JBQ3BCLFVBQVUsRUFBRSw2QkFBNkI7aUJBQzVDO2FBQ0o7WUFDRCxVQUFVLEVBQUU7Z0JBQ1IsWUFBWSxFQUFFLDRCQUE0QjtnQkFDMUMsb0NBQW9DLEVBQUUsSUFBSTtnQkFDMUMsYUFBYSxFQUFFO29CQUNYLE9BQU8sRUFBRSxFQUFFO29CQUNYLGlGQUFpRjtvQkFDakYsdUJBQXVCLEVBQUUsR0FBRztvQkFDNUIsa0RBQWtEO29CQUNsRCxxQkFBcUIsRUFBRSxJQUFJLEVBQUUsVUFBVTtpQkFDVDthQUNyQztTQUNKO0tBQ0o7SUFDRCxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsRUFBRTtRQUMzQixDQUFDLHFCQUFxQixDQUFDLEVBQUU7WUFDckIsRUFBRSxFQUFFLHFCQUFxQjtZQUN6QixTQUFTLEVBQUU7Z0JBQ1Asa0NBQWtDO2dCQUNsQyxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDO2FBQ3ZEO1NBQ0o7UUFDRCwrQkFBK0I7UUFDL0IsTUFBTSxFQUFFO1lBQ0osVUFBVSxFQUFFO2dCQUNSLEtBQUssRUFBRSxTQUFTLENBQUEsb0JBQW9CO2FBQ3ZDO1NBQ0o7S0FDSjtDQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyDCqSAyMDIyIFNvbGFyV2luZHMgV29ybGR3aWRlLCBMTEMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvXG4vLyAgZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGVcbi8vICByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Jcbi8vICBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vICBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyAgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyAgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyAgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyAgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gIFRIRSBTT0ZUV0FSRS5cblxuaW1wb3J0IHsgU3RhY2tDb21wb25lbnQgfSBmcm9tIFwiLi4vLi4vY29tcG9uZW50cy9sYXlvdXRzL3N0YWNrL3N0YWNrLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgVGFibGVXaWRnZXRDb21wb25lbnQgfSBmcm9tIFwiLi4vLi4vY29tcG9uZW50cy90YWJsZS13aWRnZXQvdGFibGUtd2lkZ2V0LmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgSVRhYmxlV2lkZ2V0Q29uZmlnIH0gZnJvbSBcIi4uLy4uL2NvbXBvbmVudHMvdGFibGUtd2lkZ2V0L3R5cGVzXCI7XG5pbXBvcnQge1xuICAgIERFRkFVTFRfUElaWkFHTkFfUk9PVCxcbiAgICBOT1ZBX0RBU0hCT0FSRF9FVkVOVF9QUk9YWSxcbiAgICBOT1ZBX1RBQkxFX0RBVEFTT1VSQ0VfQURBUFRFUixcbiAgICBOT1ZBX1ZJUlRVQUxfVklFV1BPUlRfTUFOQUdFUixcbiAgICBXSURHRVRfUkVTSVpFLFxufSBmcm9tIFwiLi4vLi4vc2VydmljZXMvdHlwZXNcIjtcbmltcG9ydCB7IElQaXp6YWduYSwgUGl6emFnbmFMYXllciwgV2VsbEtub3duUHJvdmlkZXJzIH0gZnJvbSBcIi4uLy4uL3R5cGVzXCI7XG5pbXBvcnQge1xuICAgIHdpZGdldEJvZHlDb250ZW50Tm9kZXMsXG4gICAgV0lER0VUX0JPRFksXG4gICAgV0lER0VUX0hFQURFUixcbiAgICBXSURHRVRfTE9BRElORyxcbn0gZnJvbSBcIi4uL2NvbW1vbi93aWRnZXQvY29tcG9uZW50c1wiO1xuaW1wb3J0IHsgcmVmcmVzaGVyIH0gZnJvbSBcIi4uL2NvbW1vbi93aWRnZXQvcHJvdmlkZXJzXCI7XG5cbmV4cG9ydCBjb25zdCB0YWJsZVdpZGdldDogSVBpenphZ25hID0ge1xuICAgIFtQaXp6YWduYUxheWVyLlN0cnVjdHVyZV06IHtcbiAgICAgICAgW0RFRkFVTFRfUElaWkFHTkFfUk9PVF06IHtcbiAgICAgICAgICAgIGlkOiBERUZBVUxUX1BJWlpBR05BX1JPT1QsXG4gICAgICAgICAgICAvLyBiYXNlIGxheW91dCBvZiB0aGUgd2lkZ2V0IC0gYWxsIGNvbXBvbmVudHMgcmVmZXJlbmNlZCBoZXJlaW4gd2lsbCBiZSBzdGFja2VkIGluIGEgY29sdW1uXG4gICAgICAgICAgICBjb21wb25lbnRUeXBlOiBTdGFja0NvbXBvbmVudC5sYXRlTG9hZEtleSxcbiAgICAgICAgICAgIHByb3ZpZGVyczoge1xuICAgICAgICAgICAgICAgIC8vIFdoZW4gZW5hYmxlZCwgdGhpcyBwcm92aWRlciBlbWl0cyB0aGUgUkVGUkVTSCBldmVudCBvbiB0aGUgcGl6emFnbmEgZXZlbnQgYnVzIGV2ZXJ5IFggc2Vjb25kc1xuICAgICAgICAgICAgICAgIFtXZWxsS25vd25Qcm92aWRlcnMuUmVmcmVzaGVyXTogcmVmcmVzaGVyKCksXG4gICAgICAgICAgICAgICAgW1dlbGxLbm93blByb3ZpZGVycy5FdmVudFByb3h5XToge1xuICAgICAgICAgICAgICAgICAgICAvLyBldmVudCBwcm94eSBtYW5hZ2VzIHRoZSB0cmFuc21pc3Npb24gb2YgZXZlbnRzIGJldHdlZW4gd2lkZ2V0IGFuZCBkYXNoYm9hcmRcbiAgICAgICAgICAgICAgICAgICAgcHJvdmlkZXJJZDogTk9WQV9EQVNIQk9BUkRfRVZFTlRfUFJPWFksXG4gICAgICAgICAgICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFdJREdFVF9SRVNJWkUgZXZlbnQgaXMgdXNlZCB0byBhZGp1c3QgdGhlIHZpcnR1YWwgc2Nyb2xsIHZpZXdwb3J0IHNpemVcbiAgICAgICAgICAgICAgICAgICAgICAgIGRvd25zdHJlYW1zOiBbV0lER0VUX1JFU0laRS5pZF0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICAgICAgbm9kZXM6IFtcImhlYWRlclwiLCBcImxvYWRpbmdcIiwgXCJib2R5XCJdLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgLy8gd2lkZ2V0IGhlYWRlclxuICAgICAgICBoZWFkZXI6IFdJREdFVF9IRUFERVIsXG4gICAgICAgIC8vIHRoaXMgaXMgdGhlIGxvYWRpbmcgYmFyIGJlbG93IHRoZSBoZWFkZXJcbiAgICAgICAgbG9hZGluZzogV0lER0VUX0xPQURJTkcsXG4gICAgICAgIC8vIHdpZGdldCBib2R5XG4gICAgICAgIGJvZHk6IHtcbiAgICAgICAgICAgIC4uLldJREdFVF9CT0RZLFxuICAgICAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgICAgICAgIC4uLldJREdFVF9CT0RZLnByb3BlcnRpZXMsXG4gICAgICAgICAgICAgICAgZWxlbWVudENsYXNzOiBcIm92ZXJmbG93LWF1dG9cIixcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0sXG5cbiAgICAgICAgLy8gcmV0cmlldmluZyB0aGUgZGVmaW5pdGlvbnMgZm9yIHRoZSBib2R5IGNvbnRlbnQgbm9kZXMuIHRoZSBhcmd1bWVudCBjb3JyZXNwb25kcyB0byB0aGUgbWFpbiBjb250ZW50IG5vZGUga2V5XG4gICAgICAgIC4uLndpZGdldEJvZHlDb250ZW50Tm9kZXMoXCJ0YWJsZVwiKSxcblxuICAgICAgICAvLyB0aGlzIGlzIHRoZSBtYWluIGNvbXBvbmVudCBzaG93aW5nIGEgdGFibGUgd2l0aCBkYXRhXG4gICAgICAgIHRhYmxlOiB7XG4gICAgICAgICAgICBpZDogXCJ0YWJsZVwiLFxuICAgICAgICAgICAgY29tcG9uZW50VHlwZTogVGFibGVXaWRnZXRDb21wb25lbnQubGF0ZUxvYWRLZXksXG4gICAgICAgICAgICBwcm92aWRlcnM6IHtcbiAgICAgICAgICAgICAgICAvLyBhZGFwdGVyIGludm9rZXMgdGhlIGRhdGEgc291cmNlIGFuZCBhc3NpZ25zIHRoZSBvdXRwdXQgdG8gdGhpcyBjb21wb25lbnRcbiAgICAgICAgICAgICAgICBbV2VsbEtub3duUHJvdmlkZXJzLkFkYXB0ZXJdOiB7XG4gICAgICAgICAgICAgICAgICAgIHByb3ZpZGVySWQ6IE5PVkFfVEFCTEVfREFUQVNPVVJDRV9BREFQVEVSLFxuICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb21wb25lbnRJZDogXCJ0YWJsZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YVBhdGg6IFwid2lkZ2V0RGF0YVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gZGF0YS1maWVsZHMgYXJlIG5lY2Vzc2FyeSB0byBtYXAgaW5jb21pbmcgZGF0YSB0byBjb25maWd1cmVkIGNvbHVtbnNcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFGaWVsZHNQYXRoOiBcImRhdGFGaWVsZHNcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsSXRlbXNQYXRoOiBcInRvdGFsSXRlbXNcIixcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHZpcnR1YWxWaWV3cG9ydE1hbmFnZXI6IHtcbiAgICAgICAgICAgICAgICAgICAgcHJvdmlkZXJJZDogTk9WQV9WSVJUVUFMX1ZJRVdQT1JUX01BTkFHRVIsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICAgICAgZWxlbWVudENsYXNzOiBcImZsZXgtZ3Jvdy0xIG14LTMgbWItMyBtdC0yXCIsXG4gICAgICAgICAgICAgICAgZGVsYXllZE1vdXNlUHJlc2VuY2VEZXRlY3Rpb25FbmFibGVkOiB0cnVlLFxuICAgICAgICAgICAgICAgIGNvbmZpZ3VyYXRpb246IHtcbiAgICAgICAgICAgICAgICAgICAgY29sdW1uczogW10sXG4gICAgICAgICAgICAgICAgICAgIC8vIFRoZSBkZWxheSBpbiBtaWxsaXNlY29uZHMgYWZ0ZXIgdGFibGUgbW91c2VlbnRlciBiZWZvcmUgc2Nyb2xsaW5nIGlzIGFjdGl2YXRlZFxuICAgICAgICAgICAgICAgICAgICBzY3JvbGxBY3RpdmF0aW9uRGVsYXlNczogNTAwLFxuICAgICAgICAgICAgICAgICAgICAvLyBXaGV0aGVyIHRvIGRpc3BsYXkgb3Igbm90IHRhYmxlIGhlYWRlciB0b29sdGlwc1xuICAgICAgICAgICAgICAgICAgICBoZWFkZXJUb29sdGlwc0VuYWJsZWQ6IHRydWUsIC8vIGRlZmF1bHRcbiAgICAgICAgICAgICAgICB9IGFzIHVua25vd24gYXMgSVRhYmxlV2lkZ2V0Q29uZmlnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICB9LFxuICAgIFtQaXp6YWduYUxheWVyLkNvbmZpZ3VyYXRpb25dOiB7XG4gICAgICAgIFtERUZBVUxUX1BJWlpBR05BX1JPT1RdOiB7XG4gICAgICAgICAgICBpZDogREVGQVVMVF9QSVpaQUdOQV9ST09ULFxuICAgICAgICAgICAgcHJvdmlkZXJzOiB7XG4gICAgICAgICAgICAgICAgLy8gZGVmYXVsdCByZWZyZXNoZXIgY29uZmlndXJhdGlvblxuICAgICAgICAgICAgICAgIFtXZWxsS25vd25Qcm92aWRlcnMuUmVmcmVzaGVyXTogcmVmcmVzaGVyKGZhbHNlLCA2MCksXG4gICAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICAvLyBkZWZhdWx0IGhlYWRlciBjb25maWd1cmF0aW9uXG4gICAgICAgIGhlYWRlcjoge1xuICAgICAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgICAgICAgIHRpdGxlOiAkbG9jYWxpemVgRW1wdHkgVGFibGUgV2lkZ2V0YCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgfSxcbn07XG4iXX0=