{"version":3,"file":"c8y-ngx-components-widgets-definitions-datapoints-graph.mjs","sources":["../../widgets/definitions/datapoints-graph/datapoint-graph-widget-controls-definition.ts","../../widgets/definitions/datapoints-graph/datapoint-graph-widget-factory.ts","../../widgets/definitions/datapoints-graph/datapoint-graph.constants.ts","../../widgets/definitions/datapoints-graph/index.ts","../../widgets/definitions/datapoints-graph/c8y-ngx-components-widgets-definitions-datapoints-graph.ts"],"sourcesContent":["import {\n  defineWidgetControls,\n  createAutoRefreshHandlers\n} from '@c8y/ngx-components/global-context';\n\nconst autoRefreshHandlers = createAutoRefreshHandlers();\n\nexport const datapointsGraphWidgetControls = defineWidgetControls({\n  name: 'datapoints-graph-widget',\n  supports: [\n    'timeRange',\n    'liveRefresh',\n    'displayMode',\n    'refreshInterval',\n    'refreshOption',\n    'dataAggregation',\n    'source',\n    'eventSourceId'\n  ],\n  handlers: {\n    disableAutoRefresh: {\n      handler: state => {\n        const result = autoRefreshHandlers.disableAutoRefresh(state);\n        return {\n          inlineControlSettings: result?.inlineControlSettings ?? {},\n          dashboardControlSettings: result?.dashboardControlSettings ?? {},\n          links: result?.links ?? {},\n          options: result?.options\n        };\n      }\n    }\n  },\n  settings: {\n    dashboard: {\n      live: {\n        inline: {\n          showAutoRefresh: true,\n          showTimeContext: true\n        }\n      },\n      history: {\n        inline: {\n          showTimeContext: true,\n          showAggregation: true\n        }\n      }\n    },\n    config: {\n      live: {\n        inline: {\n          showAutoRefresh: true,\n          showRefreshInterval: true\n        },\n        configuration: {\n          showAutoRefresh: true,\n          showRefreshInterval: true,\n          showTimeContext: true\n        }\n      },\n      history: {\n        inline: {},\n        configuration: {\n          showTimeContext: true,\n          showAggregation: true\n        }\n      }\n    },\n    viewAndConfig: {\n      live: {\n        inline: {\n          showAutoRefresh: true,\n          showTimeContext: true,\n          showRefreshInterval: true\n        },\n        configuration: {\n          showAutoRefresh: true,\n          showRefreshInterval: true,\n          showTimeContext: true\n        }\n      },\n      history: {\n        inline: {\n          showTimeContext: true,\n          showAggregation: true\n        },\n        configuration: {\n          showTimeContext: true,\n          showAggregation: true\n        }\n      }\n    },\n    defaultLinks: {\n      dashboard: {\n        live: {\n          dateTimeContext: true,\n          isAutoRefreshEnabled: true\n        },\n        history: {\n          dateTimeContext: true,\n          aggregation: true\n        }\n      },\n      config: {},\n      viewAndConfig: {}\n    }\n  }\n});\n","import { inject, Injectable } from '@angular/core';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport {\n  DynamicDatapointsResolver,\n  PreviewService,\n  DynamicWidgetDefinition\n} from '@c8y/ngx-components';\nimport { map, Observable } from 'rxjs';\nimport { defaultWidgetIds } from '@c8y/ngx-components/widgets/definitions';\nimport cloneDeep from 'lodash/cloneDeep';\nimport {\n  exportConfigWithTargets,\n  importConfigWithTargets\n} from '@c8y/ngx-components/widgets/import-export-config';\nimport { datapointsGraphWidgetControls } from './datapoint-graph-widget-controls-definition';\n\n@Injectable()\nexport class DatapointGraphFactory {\n  private readonly previewFeatureService = inject(PreviewService);\n\n  private readonly baseWidgetDefinition: DynamicWidgetDefinition = {\n    id: defaultWidgetIds.DATAPOINTS_GRAPH,\n    label: gettext('Data graph'),\n    description: gettext('Displays a graph of selected data points'),\n    loadComponent: () =>\n      import('@c8y/ngx-components/widgets/implementations/datapoints-graph').then(\n        m => m.DatapointsGraphWidgetViewComponent\n      ),\n    loadConfigComponent: () =>\n      import('@c8y/ngx-components/widgets/implementations/datapoints-graph').then(\n        m => m.DatapointsGraphWidgetConfigComponent\n      ),\n    previewImage: 'c8y-style-assets/datapoints-graph-widget.png',\n    resolve: {\n      datapoints: DynamicDatapointsResolver\n    },\n    data: {\n      schema: () =>\n        import(\n          'c8y-schema-loader?interfaceName=DatapointsGraphWidgetConfig!@c8y/ngx-components/echart'\n        ),\n      export: exportConfigWithTargets,\n      import: importConfigWithTargets,\n      widgetControls: datapointsGraphWidgetControls,\n      settings: {\n        noNewWidgets: false,\n        widgetDefaults: {\n          _width: 8,\n          _height: 4\n        },\n        noDeviceTarget: true,\n        groupsSelectable: false\n      },\n      displaySettings: {\n        globalTimeContext: true,\n        globalAggregationContext: true,\n        globalRealtimeContext: true\n      }\n    }\n  };\n\n  get(): Observable<DynamicWidgetDefinition[]> {\n    return this.previewFeatureService.getState$('ui.datapoint-graph.v2').pipe(\n      map(state => {\n        if (state) {\n          const newWidgetDefinition = cloneDeep(this.baseWidgetDefinition);\n          newWidgetDefinition.id = defaultWidgetIds.DATAPOINTS_GRAPH_NEW;\n          newWidgetDefinition.data.settings.noNewWidgets = true;\n\n          return [this.baseWidgetDefinition, newWidgetDefinition];\n        }\n        return [];\n      })\n    );\n  }\n}\n","import { DatapointAttributesFormConfig } from '@c8y/ngx-components/datapoint-selector';\n\nexport const DATAPOINT_SELECT_DEFAULT_OPTIONS: Partial<DatapointAttributesFormConfig> = {\n  showRange: true,\n  showChart: true\n};\n\nexport const MIN_ACTIVE_COUNT = 1;\n","import { hookPreview, hookWidget } from '@c8y/ngx-components';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport { DatapointGraphFactory } from './datapoint-graph-widget-factory';\nimport {\n  hookWidgetConfig,\n  GlobalContextSectionComponent\n} from '@c8y/ngx-components/context-dashboard';\nimport { defaultWidgetIds } from '@c8y/ngx-components/widgets/definitions';\nimport { datapointsGraphWidgetControls } from './datapoint-graph-widget-controls-definition';\nimport { DATAPOINT_SELECT_DEFAULT_OPTIONS, MIN_ACTIVE_COUNT } from './datapoint-graph.constants';\n\nexport const datapointGraphWidgetproviders = [\n  hookWidget(DatapointGraphFactory),\n  hookPreview({\n    key: 'ui.datapoint-graph.v2',\n    label: 'Data graph',\n    description: () =>\n      import('@c8y/style/markdown-files/datapoint-graph-preview.md').then(m => m.default),\n    settings: {\n      reload: true\n    }\n  }),\n  /* We need to register the widget config for both the new and old widget IDs. This ensures compatibility for widgets\n   created with the new data graph id (e.g. if a data point graph widget was created via community plugins)\n    and widgets using the default one (toggled via preview feature)\n  */\n  hookWidgetConfig<GlobalContextSectionComponent>({\n    widgetId: defaultWidgetIds.DATAPOINTS_GRAPH_NEW,\n    priority: 10,\n    label: gettext('Time context'),\n    initialState: {\n      widgetControls: datapointsGraphWidgetControls\n    },\n    loadComponent: () =>\n      import('@c8y/ngx-components/context-dashboard').then(m => m.GlobalContextSectionComponent)\n  }),\n  hookWidgetConfig<GlobalContextSectionComponent>({\n    widgetId: defaultWidgetIds.DATAPOINTS_GRAPH,\n    priority: 10,\n    label: gettext('Time context'),\n    initialState: {\n      widgetControls: datapointsGraphWidgetControls\n    },\n    loadComponent: () =>\n      import('@c8y/ngx-components/context-dashboard').then(m => m.GlobalContextSectionComponent)\n  }),\n  hookWidgetConfig({\n    widgetId: defaultWidgetIds.DATAPOINTS_GRAPH,\n    label: gettext('Alarm selection'),\n    loadComponent: () =>\n      import('@c8y/ngx-components/alarm-event-selector').then(m => m.WidgetAlarmSelectorComponent),\n    initialState: {\n      configStoreMode: 'MIXED'\n    },\n    priority: 100\n  }),\n  hookWidgetConfig({\n    widgetId: defaultWidgetIds.DATAPOINTS_GRAPH,\n    label: gettext('Event selection'),\n    loadComponent: () =>\n      import('@c8y/ngx-components/alarm-event-selector').then(m => m.WidgetEventSelectorComponent),\n    initialState: {\n      configStoreMode: 'MIXED'\n    },\n    priority: 110\n  }),\n  hookWidgetConfig({\n    widgetId: defaultWidgetIds.DATAPOINTS_GRAPH,\n    label: gettext('Data point selection'),\n    loadComponent: () =>\n      import('@c8y/ngx-components/datapoint-selector').then(\n        m => m.WidgetDatapointsSelectorComponent\n      ),\n    initialState: {\n      minActiveCount: MIN_ACTIVE_COUNT,\n      defaultFormOptions: DATAPOINT_SELECT_DEFAULT_OPTIONS,\n      useAdvancedChartOptions: true\n    },\n    expanded: true,\n    priority: 120\n  })\n];\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}