UNPKG

@c8y/ngx-components

Version:

Angular modules for Cumulocity IoT applications

1 lines 10.1 kB
{"version":3,"file":"c8y-ngx-components-widgets-widget-providers.mjs","sources":["../../widgets/widget-providers/index.ts","../../widgets/widget-providers/c8y-ngx-components-widgets-widget-providers.ts"],"sourcesContent":["import { Provider } from '@angular/core';\nimport { defaultWidgetIds, DefaultWidgetIdValues } from '@c8y/ngx-components/widgets/definitions';\nimport { alarmListWidgetProviders } from '@c8y/ngx-components/widgets/definitions/alarms/alarm-list';\nimport { criticalAlarmsWidgetProviders } from '@c8y/ngx-components/widgets/definitions/alarms/all-critical-alarms';\nimport { recentAlarmsWidgetProviders } from '@c8y/ngx-components/widgets/definitions/alarms/recent-alarms';\nimport { dataPointsTableWidgetProviders } from '@c8y/ngx-components/widgets/definitions/datapoints-table';\nimport { datapointGraphWidgetproviders } from '@c8y/ngx-components/widgets/definitions/datapoints-graph';\nimport { infoGaugeWidgetProviders } from '@c8y/ngx-components/widgets/definitions/info-gauge';\nimport { kpiWidgetProviders } from '@c8y/ngx-components/widgets/definitions/kpi';\nimport { linearGaugeWidgetProviders } from '@c8y/ngx-components/widgets/definitions/linear-gauge';\nimport { mapWidgetProviders } from '@c8y/ngx-components/widgets/definitions/map';\nimport { radialGaugeWidgetProviders } from '@c8y/ngx-components/widgets/definitions/radial-gauge';\nimport { deviceControlMessageWidgetProviders } from '@c8y/ngx-components/widgets/definitions/device-control-message';\nimport { imageWidgetProviders } from '@c8y/ngx-components/widgets/definitions/image';\nimport { markdownWidgetProviders } from '@c8y/ngx-components/widgets/definitions/markdown';\nimport { htmlWidgetProviders } from '@c8y/ngx-components/widgets/definitions/html-widget';\nimport { helpAndServiceWidgetProviders } from '@c8y/ngx-components/widgets/definitions/help-and-service';\nimport { threeDRotationWidgetProviders } from '@c8y/ngx-components/widgets/definitions/three-d-rotation';\nimport { siloWidgetProviders } from '@c8y/ngx-components/widgets/definitions/silo';\nimport { applicationsWidgetProviders } from '@c8y/ngx-components/widgets/definitions/applications';\nimport { quickLinksWidgetProviders } from '@c8y/ngx-components/widgets/definitions/quick-links';\nimport { cockpitWelcomeWidgetProviders } from '@c8y/ngx-components/widgets/definitions/cockpit-welcome';\nimport { legacyCockpitWelcomeWidgetProviders } from '@c8y/ngx-components/widgets/definitions/cockpit-legacy-welcome';\nimport { deviceManagementWelcomeWidgetProviders } from '@c8y/ngx-components/widgets/definitions/device-management-welcome';\nimport { assetNotesWidgetProviders } from '@c8y/ngx-components/widgets/definitions/asset-notes';\nimport { eventListWidgetProviders } from '@c8y/ngx-components/widgets/definitions/event-list';\n\n/**\n * Type representing all available widget IDs that can be configured\n * This ensures type safety when specifying widget IDs\n */\nexport type WidgetId = DefaultWidgetIdValues;\n\n/**\n * Configuration interface for widget providers\n */\nexport interface WidgetProvidersConfig {\n /**\n * List of widget IDs to exclude from the providers\n * Use defaultWidgetIds constants for type safety and autocomplete\n * @example { exclude: [defaultWidgetIds.HTML, defaultWidgetIds.MARKDOWN] }\n */\n exclude?: WidgetId[];\n}\n\n/**\n * Map of widget IDs to their respective providers\n * This includes both widget definitions and configuration hooks\n */\nconst WIDGET_PROVIDERS_MAP: Partial<Record<WidgetId, Provider[]>> = {\n [defaultWidgetIds.ALARM_LIST]: alarmListWidgetProviders,\n [defaultWidgetIds.ALL_CRITICAL_ALARMS]: criticalAlarmsWidgetProviders,\n [defaultWidgetIds.RECENT_ALARMS]: recentAlarmsWidgetProviders,\n [defaultWidgetIds.DATA_POINTS_TABLE]: dataPointsTableWidgetProviders,\n [defaultWidgetIds.DATAPOINTS_GRAPH]: datapointGraphWidgetproviders,\n [defaultWidgetIds.DATAPOINTS_GRAPH_NEW]: datapointGraphWidgetproviders,\n [defaultWidgetIds.KPI]: kpiWidgetProviders,\n [defaultWidgetIds.INFO_GAUGE]: infoGaugeWidgetProviders,\n [defaultWidgetIds.LINEAR_GAUGE]: linearGaugeWidgetProviders,\n [defaultWidgetIds.RADIAL_GAUGE]: radialGaugeWidgetProviders,\n [defaultWidgetIds.MAP]: mapWidgetProviders,\n [defaultWidgetIds.DEVICE_CONTROL_MESSAGE_WIDGET]: deviceControlMessageWidgetProviders,\n [defaultWidgetIds.THREE_D_ROTATION]: threeDRotationWidgetProviders,\n [defaultWidgetIds.SILO]: siloWidgetProviders,\n [defaultWidgetIds.APPLICATIONS]: applicationsWidgetProviders,\n [defaultWidgetIds.QUICK_LINKS]: quickLinksWidgetProviders,\n [defaultWidgetIds.HELP_AND_SERVICE]: helpAndServiceWidgetProviders,\n [defaultWidgetIds.IMAGE]: imageWidgetProviders,\n [defaultWidgetIds.MARKDOWN]: markdownWidgetProviders,\n [defaultWidgetIds.HTML]: htmlWidgetProviders,\n [defaultWidgetIds.COCKPIT_WELCOME]: cockpitWelcomeWidgetProviders,\n [defaultWidgetIds.LEGACY_COCKPIT_WELCOME]: legacyCockpitWelcomeWidgetProviders,\n [defaultWidgetIds.DEVICE_MANAGEMENT_WELCOME]: deviceManagementWelcomeWidgetProviders,\n [defaultWidgetIds.ASSET_NOTES]: assetNotesWidgetProviders,\n [defaultWidgetIds.EVENT_LIST]: eventListWidgetProviders\n};\n\n/**\n * Default widgets that are typically useful\n * These are the widgets that will be loaded unless explicitly excluded\n */\nexport const DEFAULT_WIDGETS: WidgetId[] = [\n defaultWidgetIds.ALARM_LIST,\n defaultWidgetIds.ALL_CRITICAL_ALARMS,\n defaultWidgetIds.RECENT_ALARMS,\n defaultWidgetIds.DATA_POINTS_TABLE,\n defaultWidgetIds.DATAPOINTS_GRAPH,\n defaultWidgetIds.DATAPOINTS_GRAPH_NEW,\n defaultWidgetIds.KPI,\n defaultWidgetIds.INFO_GAUGE,\n defaultWidgetIds.LINEAR_GAUGE,\n defaultWidgetIds.RADIAL_GAUGE,\n defaultWidgetIds.MAP,\n defaultWidgetIds.DEVICE_CONTROL_MESSAGE_WIDGET,\n defaultWidgetIds.THREE_D_ROTATION,\n defaultWidgetIds.SILO,\n defaultWidgetIds.APPLICATIONS,\n defaultWidgetIds.QUICK_LINKS,\n defaultWidgetIds.HELP_AND_SERVICE,\n defaultWidgetIds.IMAGE,\n defaultWidgetIds.MARKDOWN,\n defaultWidgetIds.HTML,\n defaultWidgetIds.COCKPIT_WELCOME,\n defaultWidgetIds.LEGACY_COCKPIT_WELCOME,\n defaultWidgetIds.DEVICE_MANAGEMENT_WELCOME,\n defaultWidgetIds.ASSET_NOTES,\n defaultWidgetIds.EVENT_LIST\n];\n\n/**\n * Configures and returns widget providers.\n *\n * This function allows selective loading of widget providers with their configuration hooks.\n * Unlike `cockpitWidgets()` which only provides widget definitions, this includes\n * the full providers with `hookWidgetConfig` registrations for features like widget preview.\n *\n * @param config Configuration options for widget providers\n * @returns Array of providers to be included in app.module.ts\n *\n * @example\n * ```typescript\n * // In app.module.ts\n * providers: [\n * ...configureWidgetProviders({\n * exclude: [defaultWidgetIds.HTML, defaultWidgetIds.MARKDOWN]\n * }),\n * // other providers\n * ]\n * ```\n *\n * @example\n * ```typescript\n * // Load all default widgets\n * providers: [\n * ...configureWidgetProviders(),\n * // other providers\n * ]\n * ```\n */\nexport function configureWidgetProviders(config: WidgetProvidersConfig = {}): Provider[] {\n const { exclude = [] } = config;\n const excludeSet = new Set(exclude);\n\n return DEFAULT_WIDGETS.filter(widgetId => !excludeSet.has(widgetId)).flatMap(widgetId => {\n const providers = WIDGET_PROVIDERS_MAP[widgetId];\n if (!providers) {\n console.warn(`Widget providers not found for widget ID: ${widgetId}`);\n return [];\n }\n return providers;\n });\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}