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

295 lines 17.8 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.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