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 3.52 kB
"use strict"; // © 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. Object.defineProperty(exports, "__esModule", { value: true }); exports.TimeseriesDataSourceAdapter = void 0; const tslib_1 = require("tslib"); const core_1 = require("@angular/core"); const clone_1 = tslib_1.__importDefault(require("lodash/clone")); const bits_1 = require("@nova-ui/bits"); const data_source_adapter_1 = require("./data-source-adapter"); const pizzagna_service_1 = require("../../pizzagna/services/pizzagna.service"); const types_1 = require("../../types"); let TimeseriesDataSourceAdapter = class TimeseriesDataSourceAdapter extends data_source_adapter_1.DataSourceAdapter { constructor(eventBus, dataSource, pizzagnaService) { super(eventBus, dataSource, pizzagnaService); this.seriesIndex = []; } updateConfiguration(properties) { this.seriesIndex = (0, clone_1.default)(properties.series); super.updateConfiguration(properties); } processOutput(value) { if (!value) { return value; } return { ...value, series: this.buildSeriesSet(value?.series), }; } /** * Builds the series set by mapping the series selected in the configurator to the data received from the data source. * @param data */ buildSeriesSet(data) { if (!data) { return []; } // displaying only series which are in widget config return data .filter((series) => this.seriesIndex.find((s) => s.selectedSeriesId === series.id)) .map((series) => ({ id: series.id, data: series.data, link: series.link, secondaryLink: series.secondaryLink, legendDescriptionPrimary: this.seriesIndex.find((s) => s.selectedSeriesId === series.id)?.label, legendDescriptionSecondary: series.description, })); } }; exports.TimeseriesDataSourceAdapter = TimeseriesDataSourceAdapter; exports.TimeseriesDataSourceAdapter = TimeseriesDataSourceAdapter = tslib_1.__decorate([ tslib_1.__param(0, (0, core_1.Inject)(types_1.PIZZAGNA_EVENT_BUS)), tslib_1.__param(1, (0, core_1.Inject)(types_1.DATA_SOURCE)), tslib_1.__metadata("design:paramtypes", [bits_1.EventBus, Object, pizzagna_service_1.PizzagnaService]) ], TimeseriesDataSourceAdapter); //# sourceMappingURL=timeseries-data-source-adapter.js.map