@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
295 lines • 17.8 kB
JavaScript
"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.ProviderRegistryService = void 0;
const tslib_1 = require("tslib");
const common_1 = require("@angular/common");
const core_1 = require("@angular/core");
const bits_1 = require("@nova-ui/bits");
const data_source_adapter_1 = require("../components/providers/data-source-adapter");
const drilldown_data_source_adapter_1 = require("../components/providers/drilldown-data-source-adapter");
const event_bus_debugger_1 = require("../components/providers/event-bus-debugger");
const url_interaction_handler_1 = require("../components/providers/interaction/url-interaction-handler");
const kpi_color_prioritizer_1 = require("../components/providers/kpi-color-prioritizer");
const kpi_data_source_adapter_1 = require("../components/providers/kpi-data-source-adapter");
const kpi_scale_sync_broker_1 = require("../components/providers/kpi-scale-sync-broker");
const kpi_status_content_fallback_adapter_1 = require("../components/providers/kpi-status-content-fallback-adapter");
const loading_adapter_1 = require("../components/providers/loading-adapter");
const pizzagna_broadcaster_service_1 = require("../components/providers/pizzagna-broadcaster.service");
const refresher_1 = require("../components/providers/refresher");
const refresher_settings_service_1 = require("../components/providers/refresher-settings.service");
const status_content_fallback_adapter_1 = require("../components/providers/status-content-fallback-adapter");
const table_data_source_adapter_1 = require("../components/providers/table-data-source-adapter");
const timeseries_data_source_adapter_1 = require("../components/providers/timeseries-data-source-adapter");
const dashwiz_service_1 = require("../configurator/components/wizard/dashwiz/dashwiz.service");
const configurator_data_source_manager_service_1 = require("../configurator/services/configurator-data-source-manager.service");
const kpi_section_converter_service_1 = require("../configurator/services/converters/kpi/kpi-section-converter/kpi-section-converter.service");
const kpi_tiles_converter_service_1 = require("../configurator/services/converters/kpi/kpi-tiles-converter.service");
// eslint-disable-next-line max-len
const proportional_widget_chart_options_converter_service_1 = require("../configurator/services/converters/proportional/proportional-widget-chart-options-converter.service");
const generic_array_converter_service_1 = require("../configurator/services/converters/shared/generic-array-converter/generic-array-converter.service");
const generic_converter_service_1 = require("../configurator/services/converters/shared/generic-converter/generic-converter.service");
// eslint-disable-next-line max-len
const title_and_description_converter_service_1 = require("../configurator/services/converters/shared/title-and-description-converter/title-and-description-converter.service");
const table_columns_converter_service_1 = require("../configurator/services/converters/table/table-columns-converter.service");
const table_filters_converter_service_1 = require("../configurator/services/converters/table/table-filters-converter.service");
const table_scroll_type_converter_service_1 = require("../configurator/services/converters/table/table-scroll-type-converter.service");
const timeseries_metadata_converter_service_1 = require("../configurator/services/converters/timeseries/timeseries-metadata-converter.service");
const timeseries_series_converter_service_1 = require("../configurator/services/converters/timeseries/timeseries-series-converter.service");
const timeseries_tile_indicator_data_converter_service_1 = require("../configurator/services/converters/timeseries/timeseries-tile-indicator-data-converter.service");
const types_1 = require("../configurator/services/converters/types");
const preview_service_1 = require("../configurator/services/preview.service");
const pizzagna_service_1 = require("../pizzagna/services/pizzagna.service");
const types_2 = require("../types");
const event_registry_service_1 = require("./event-registry.service");
const kpi_color_comparators_registry_service_1 = require("./kpi-color-comparators-registry.service");
const table_formatter_registry_service_1 = require("./table-formatter-registry.service");
const types_3 = require("./types");
const url_interaction_service_1 = require("./url-interaction.service");
const widget_configuration_service_1 = require("./widget-configuration.service");
const widget_to_dashboard_event_proxy_service_1 = require("./widget-to-dashboard-event-proxy.service");
let ProviderRegistryService = class ProviderRegistryService {
constructor(logger) {
this.logger = logger;
this.staticProviders = {};
this.setProviders({
[types_3.NOVA_DATASOURCE_INTERVAL_REFRESHER]: {
provide: refresher_1.Refresher,
deps: [types_2.PIZZAGNA_EVENT_BUS, core_1.NgZone, refresher_settings_service_1.RefresherSettingsService],
},
[types_3.NOVA_DASHBOARD_EVENT_PROXY]: {
provide: widget_to_dashboard_event_proxy_service_1.WidgetToDashboardEventProxyService,
deps: [
types_2.PIZZAGNA_EVENT_BUS,
[new core_1.Optional(), types_2.DASHBOARD_EVENT_BUS],
[new core_1.Optional(), widget_configuration_service_1.WidgetConfigurationService],
event_registry_service_1.EventRegistryService,
pizzagna_service_1.PizzagnaService,
],
},
[types_3.NOVA_DATASOURCE_ADAPTER]: {
provide: data_source_adapter_1.DataSourceAdapter,
deps: [
types_2.PIZZAGNA_EVENT_BUS,
[new core_1.Optional(), types_2.DATA_SOURCE],
pizzagna_service_1.PizzagnaService,
],
},
[types_3.NOVA_TABLE_DATASOURCE_ADAPTER]: {
provide: table_data_source_adapter_1.TableDataSourceAdapter,
deps: [
types_2.PIZZAGNA_EVENT_BUS,
[new core_1.Optional(), types_2.DATA_SOURCE],
pizzagna_service_1.PizzagnaService,
bits_1.VirtualViewportManager,
],
},
[types_3.NOVA_TIMESERIES_DATASOURCE_ADAPTER]: {
provide: timeseries_data_source_adapter_1.TimeseriesDataSourceAdapter,
deps: [
types_2.PIZZAGNA_EVENT_BUS,
[new core_1.Optional(), types_2.DATA_SOURCE],
pizzagna_service_1.PizzagnaService,
],
},
[types_3.NOVA_KPI_DATASOURCE_ADAPTER]: {
provide: kpi_data_source_adapter_1.KpiDataSourceAdapter,
deps: [
types_2.PIZZAGNA_EVENT_BUS,
[new core_1.Optional(), types_2.DATA_SOURCE],
pizzagna_service_1.PizzagnaService,
common_1.DecimalPipe,
],
},
[types_3.NOVA_DRILLDOWN_DATASOURCE_ADAPTER]: {
provide: drilldown_data_source_adapter_1.DrilldownDataSourceAdapter,
deps: [
types_2.PIZZAGNA_EVENT_BUS,
[new core_1.Optional(), types_2.DATA_SOURCE],
pizzagna_service_1.PizzagnaService,
],
},
[types_3.NOVA_KPI_COLOR_PRIORITIZER]: {
provide: kpi_color_prioritizer_1.KpiColorPrioritizer,
deps: [
[new core_1.Optional(), types_2.DATA_SOURCE],
pizzagna_service_1.PizzagnaService,
kpi_color_comparators_registry_service_1.KpiColorComparatorsRegistryService,
],
},
[types_3.NOVA_TITLE_AND_DESCRIPTION_CONVERTER]: {
provide: types_1.CONFIGURATOR_CONVERTER,
useClass: title_and_description_converter_service_1.TitleAndDescriptionConverterService,
deps: [types_2.PIZZAGNA_EVENT_BUS, preview_service_1.PreviewService, pizzagna_service_1.PizzagnaService],
},
[types_3.NOVA_PROPORTIONAL_WIDGET_CHART_OPTIONS_CONVERTER]: {
provide: types_1.CONFIGURATOR_CONVERTER,
useClass: proportional_widget_chart_options_converter_service_1.ProportionalWidgetChartOptionsConverterService,
deps: [types_2.PIZZAGNA_EVENT_BUS, preview_service_1.PreviewService, pizzagna_service_1.PizzagnaService],
},
[types_3.NOVA_KPI_TILES_CONVERTER]: {
provide: types_1.CONFIGURATOR_CONVERTER,
useClass: kpi_tiles_converter_service_1.KpiTilesConverterService,
deps: [types_2.PIZZAGNA_EVENT_BUS, preview_service_1.PreviewService, pizzagna_service_1.PizzagnaService],
},
[types_3.NOVA_KPI_SECTION_CONVERTER]: {
provide: types_1.CONFIGURATOR_CONVERTER,
useClass: kpi_section_converter_service_1.KpiSectionConverterService,
deps: [types_2.PIZZAGNA_EVENT_BUS, preview_service_1.PreviewService, pizzagna_service_1.PizzagnaService],
},
[types_3.NOVA_GENERIC_CONVERTER]: {
provide: types_1.CONFIGURATOR_CONVERTER,
useClass: generic_converter_service_1.GenericConverterService,
deps: [types_2.PIZZAGNA_EVENT_BUS, preview_service_1.PreviewService, pizzagna_service_1.PizzagnaService],
},
[types_3.NOVA_GENERIC_ARRAY_CONVERTER]: {
provide: types_1.CONFIGURATOR_CONVERTER,
useClass: generic_array_converter_service_1.GenericArrayConverterService,
deps: [types_2.PIZZAGNA_EVENT_BUS, preview_service_1.PreviewService, pizzagna_service_1.PizzagnaService],
},
[types_3.NOVA_TIMESERIES_TILE_INDICATOR_DATA_CONVERTER]: {
provide: types_1.CONFIGURATOR_CONVERTER,
useClass: timeseries_tile_indicator_data_converter_service_1.TimeseriesTileIndicatorDataConverterService,
deps: [
types_2.PIZZAGNA_EVENT_BUS,
preview_service_1.PreviewService,
pizzagna_service_1.PizzagnaService,
bits_1.TimeframeService,
],
},
[types_3.NOVA_TIMESERIES_METADATA_CONVERTER]: {
provide: types_1.CONFIGURATOR_CONVERTER,
useClass: timeseries_metadata_converter_service_1.TimeseriesMetadataConverterService,
deps: [
types_2.PIZZAGNA_EVENT_BUS,
preview_service_1.PreviewService,
pizzagna_service_1.PizzagnaService,
bits_1.TimeframeService,
],
},
[types_3.NOVA_TIMESERIES_SERIES_CONVERTER]: {
provide: types_1.CONFIGURATOR_CONVERTER,
useClass: timeseries_series_converter_service_1.TimeseriesSeriesConverterService,
deps: [types_2.PIZZAGNA_EVENT_BUS, preview_service_1.PreviewService, pizzagna_service_1.PizzagnaService],
},
[types_3.NOVA_TABLE_COLUMNS_CONVERTER]: {
provide: types_1.CONFIGURATOR_CONVERTER,
useClass: table_columns_converter_service_1.TableColumnsConverterService,
deps: [types_2.PIZZAGNA_EVENT_BUS, preview_service_1.PreviewService, pizzagna_service_1.PizzagnaService],
},
[types_3.NOVA_TABLE_FILTERS_CONVERTER]: {
provide: types_1.CONFIGURATOR_CONVERTER,
useClass: table_filters_converter_service_1.TableFiltersConverterService,
deps: [types_2.PIZZAGNA_EVENT_BUS, preview_service_1.PreviewService, pizzagna_service_1.PizzagnaService],
},
[types_3.NOVA_TABLE_SCROLL_TYPE_CONVERTER]: {
provide: types_1.CONFIGURATOR_CONVERTER,
useClass: table_scroll_type_converter_service_1.TableScrollTypeConverterService,
deps: [types_2.PIZZAGNA_EVENT_BUS, preview_service_1.PreviewService, pizzagna_service_1.PizzagnaService],
},
[types_3.NOVA_LOADING_ADAPTER]: {
provide: loading_adapter_1.LoadingAdapter,
deps: [types_2.PIZZAGNA_EVENT_BUS, pizzagna_service_1.PizzagnaService],
},
[types_3.NOVA_STATUS_CONTENT_FALLBACK_ADAPTER]: {
provide: status_content_fallback_adapter_1.StatusContentFallbackAdapter,
deps: [types_2.PIZZAGNA_EVENT_BUS, pizzagna_service_1.PizzagnaService],
},
[types_3.NOVA_KPI_STATUS_CONTENT_FALLBACK_ADAPTER]: {
provide: kpi_status_content_fallback_adapter_1.KpiStatusContentFallbackAdapter,
deps: [types_2.PIZZAGNA_EVENT_BUS, pizzagna_service_1.PizzagnaService],
},
[types_3.NOVA_KPI_SCALE_SYNC_BROKER]: {
provide: kpi_scale_sync_broker_1.KpiScaleSyncBroker,
deps: [types_2.PIZZAGNA_EVENT_BUS, pizzagna_service_1.PizzagnaService],
},
[types_3.NOVA_URL_INTERACTION_HANDLER]: {
provide: url_interaction_handler_1.UrlInteractionHandler,
deps: [
types_2.PIZZAGNA_EVENT_BUS,
"windowObject",
bits_1.LoggerService,
url_interaction_service_1.UrlInteractionService,
],
},
[types_3.NOVA_EVENT_BUS_DEBUGGER]: {
provide: event_bus_debugger_1.EventBusDebugger,
deps: [types_2.PIZZAGNA_EVENT_BUS],
},
[types_3.NOVA_VIRTUAL_VIEWPORT_MANAGER]: {
provide: bits_1.VirtualViewportManager,
deps: [],
},
[types_3.NOVA_PIZZAGNA_BROADCASTER]: {
provide: pizzagna_broadcaster_service_1.PizzagnaBroadcasterService,
deps: [pizzagna_service_1.PizzagnaService],
},
[types_3.NOVA_TABLE_FORMATTERS_REGISTRY]: {
provide: types_2.FORMATTERS_REGISTRY,
useExisting: table_formatter_registry_service_1.TableFormatterRegistryService,
deps: [pizzagna_service_1.PizzagnaService],
},
[types_3.NOVA_KPI_FORMATTERS_REGISTRY]: {
provide: types_2.FORMATTERS_REGISTRY,
useExisting: table_formatter_registry_service_1.KpiFormattersRegistryService,
deps: [pizzagna_service_1.PizzagnaService],
},
[types_3.NOVA_RISK_SCORE_FORMATTERS_REGISTRY]: {
provide: types_2.FORMATTERS_REGISTRY,
useExisting: table_formatter_registry_service_1.RiskScoreFormattersRegistryService,
deps: [pizzagna_service_1.PizzagnaService],
},
[types_3.NOVA_PROPORTIONAL_CONTENT_FORMATTERS_REGISTRY]: {
provide: types_2.FORMATTERS_REGISTRY,
useExisting: table_formatter_registry_service_1.ProportionalDonutContentFormattersRegistryService,
deps: [pizzagna_service_1.PizzagnaService],
},
[types_3.NOVA_CONFIGURATOR_DATA_SOURCE_MANAGER]: {
provide: configurator_data_source_manager_service_1.ConfiguratorDataSourceManagerService,
deps: [types_2.PIZZAGNA_EVENT_BUS, [new core_1.Optional(), dashwiz_service_1.DashwizService]],
},
});
}
setProviders(providers) {
this.staticProviders = Object.assign({}, this.staticProviders, providers);
}
getProvider(providerId) {
const provider = this.staticProviders[providerId];
if (!provider) {
this.logger.warn("No provider registered for id", providerId);
this.logger.warn("Known providers:", Object.keys(this.staticProviders).join(", "));
}
return provider;
}
getProviderInstance(provider, parentInjector) {
const injector = core_1.Injector.create({
providers: [provider],
parent: parentInjector,
});
return injector.get(types_2.DATA_SOURCE);
}
};
exports.ProviderRegistryService = ProviderRegistryService;
exports.ProviderRegistryService = ProviderRegistryService = tslib_1.__decorate([
(0, core_1.Injectable)({ providedIn: "root" }),
tslib_1.__metadata("design:paramtypes", [bits_1.LoggerService])
], ProviderRegistryService);
//# sourceMappingURL=provider-registry.service.js.map