@c8y/ngx-components 1023.85.1 → 1023.88.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (84) hide show
  1. package/ai/agent-chat/index.d.ts.map +1 -1
  2. package/alarm-event-selector/index.d.ts +6 -0
  3. package/alarm-event-selector/index.d.ts.map +1 -1
  4. package/context-dashboard/index.d.ts +11 -1
  5. package/context-dashboard/index.d.ts.map +1 -1
  6. package/data-preparation/index.d.ts +10 -0
  7. package/data-preparation/index.d.ts.map +1 -0
  8. package/datapoint-selector/index.d.ts +2 -1
  9. package/datapoint-selector/index.d.ts.map +1 -1
  10. package/echart/index.d.ts +1 -0
  11. package/echart/index.d.ts.map +1 -1
  12. package/echart/models/index.d.ts +1 -0
  13. package/echart/models/index.d.ts.map +1 -1
  14. package/fesm2022/c8y-ngx-components-ai-agent-chat.mjs +12 -2
  15. package/fesm2022/c8y-ngx-components-ai-agent-chat.mjs.map +1 -1
  16. package/fesm2022/c8y-ngx-components-alarm-event-selector.mjs +90 -21
  17. package/fesm2022/c8y-ngx-components-alarm-event-selector.mjs.map +1 -1
  18. package/fesm2022/c8y-ngx-components-context-dashboard.mjs +10 -10
  19. package/fesm2022/c8y-ngx-components-context-dashboard.mjs.map +1 -1
  20. package/fesm2022/c8y-ngx-components-data-preparation.mjs +63 -0
  21. package/fesm2022/c8y-ngx-components-data-preparation.mjs.map +1 -0
  22. package/fesm2022/c8y-ngx-components-datapoint-selector.mjs +14 -12
  23. package/fesm2022/c8y-ngx-components-datapoint-selector.mjs.map +1 -1
  24. package/fesm2022/c8y-ngx-components-echart-models.mjs.map +1 -1
  25. package/fesm2022/c8y-ngx-components-echart.mjs +102 -44
  26. package/fesm2022/c8y-ngx-components-echart.mjs.map +1 -1
  27. package/fesm2022/c8y-ngx-components-global-context.mjs +2 -2
  28. package/fesm2022/c8y-ngx-components-global-context.mjs.map +1 -1
  29. package/fesm2022/c8y-ngx-components-icon-selector.mjs +2 -2
  30. package/fesm2022/c8y-ngx-components-icon-selector.mjs.map +1 -1
  31. package/fesm2022/c8y-ngx-components-widgets-definitions-alarms-alarm-list.mjs +1 -1
  32. package/fesm2022/c8y-ngx-components-widgets-definitions-alarms-alarm-list.mjs.map +1 -1
  33. package/fesm2022/c8y-ngx-components-widgets-definitions-datapoints-graph.mjs +6 -6
  34. package/fesm2022/c8y-ngx-components-widgets-definitions-datapoints-graph.mjs.map +1 -1
  35. package/fesm2022/c8y-ngx-components-widgets-definitions-datapoints-list.mjs +3 -3
  36. package/fesm2022/c8y-ngx-components-widgets-definitions-datapoints-list.mjs.map +1 -1
  37. package/fesm2022/c8y-ngx-components-widgets-definitions-datapoints-table.mjs +1 -1
  38. package/fesm2022/c8y-ngx-components-widgets-definitions-datapoints-table.mjs.map +1 -1
  39. package/fesm2022/c8y-ngx-components-widgets-definitions-event-list.mjs +2 -2
  40. package/fesm2022/c8y-ngx-components-widgets-definitions-event-list.mjs.map +1 -1
  41. package/fesm2022/c8y-ngx-components-widgets-definitions-html-widget.mjs +1 -1
  42. package/fesm2022/c8y-ngx-components-widgets-definitions-html-widget.mjs.map +1 -1
  43. package/fesm2022/c8y-ngx-components-widgets-definitions-info-gauge.mjs +30 -6
  44. package/fesm2022/c8y-ngx-components-widgets-definitions-info-gauge.mjs.map +1 -1
  45. package/fesm2022/c8y-ngx-components-widgets-definitions-kpi.mjs +4 -4
  46. package/fesm2022/c8y-ngx-components-widgets-definitions-kpi.mjs.map +1 -1
  47. package/fesm2022/c8y-ngx-components-widgets-definitions-linear-gauge.mjs +3 -3
  48. package/fesm2022/c8y-ngx-components-widgets-definitions-linear-gauge.mjs.map +1 -1
  49. package/fesm2022/c8y-ngx-components-widgets-definitions-map.mjs +2 -2
  50. package/fesm2022/c8y-ngx-components-widgets-definitions-map.mjs.map +1 -1
  51. package/fesm2022/c8y-ngx-components-widgets-definitions-markdown.mjs +1 -1
  52. package/fesm2022/c8y-ngx-components-widgets-definitions-markdown.mjs.map +1 -1
  53. package/fesm2022/c8y-ngx-components-widgets-definitions-pie-chart.mjs +3 -3
  54. package/fesm2022/c8y-ngx-components-widgets-definitions-pie-chart.mjs.map +1 -1
  55. package/fesm2022/c8y-ngx-components-widgets-definitions-radial-gauge.mjs +3 -3
  56. package/fesm2022/c8y-ngx-components-widgets-definitions-radial-gauge.mjs.map +1 -1
  57. package/fesm2022/c8y-ngx-components-widgets-definitions-silo.mjs +3 -3
  58. package/fesm2022/c8y-ngx-components-widgets-definitions-silo.mjs.map +1 -1
  59. package/fesm2022/c8y-ngx-components-widgets-implementations-alarms.mjs +2 -2
  60. package/fesm2022/c8y-ngx-components-widgets-implementations-alarms.mjs.map +1 -1
  61. package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-graph.mjs +2 -2
  62. package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-graph.mjs.map +1 -1
  63. package/fesm2022/c8y-ngx-components-widgets-implementations-events.mjs +2 -2
  64. package/fesm2022/c8y-ngx-components-widgets-implementations-events.mjs.map +1 -1
  65. package/fesm2022/c8y-ngx-components-widgets-implementations-info-gauge.mjs +3 -3
  66. package/fesm2022/c8y-ngx-components-widgets-implementations-info-gauge.mjs.map +1 -1
  67. package/fesm2022/c8y-ngx-components-widgets-implementations-kpi.mjs +2 -2
  68. package/fesm2022/c8y-ngx-components-widgets-implementations-kpi.mjs.map +1 -1
  69. package/fesm2022/c8y-ngx-components-widgets-implementations-linear-gauge.mjs +2 -2
  70. package/fesm2022/c8y-ngx-components-widgets-implementations-linear-gauge.mjs.map +1 -1
  71. package/fesm2022/c8y-ngx-components-widgets-implementations-markdown.mjs +2 -2
  72. package/fesm2022/c8y-ngx-components-widgets-implementations-markdown.mjs.map +1 -1
  73. package/fesm2022/c8y-ngx-components-widgets-implementations-pie-chart.mjs +10 -9
  74. package/fesm2022/c8y-ngx-components-widgets-implementations-pie-chart.mjs.map +1 -1
  75. package/fesm2022/c8y-ngx-components-widgets-implementations-three-d-rotation.mjs +2 -2
  76. package/fesm2022/c8y-ngx-components-widgets-implementations-three-d-rotation.mjs.map +1 -1
  77. package/fesm2022/c8y-ngx-components.mjs +32 -10
  78. package/fesm2022/c8y-ngx-components.mjs.map +1 -1
  79. package/index.d.ts +1 -0
  80. package/index.d.ts.map +1 -1
  81. package/locales/locales.pot +39 -0
  82. package/package.json +1 -1
  83. package/widgets/definitions/info-gauge/index.d.ts.map +1 -1
  84. package/widgets/implementations/pie-chart/index.d.ts.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"c8y-ngx-components-widgets-implementations-events.mjs","sources":["../../widgets/implementations/events/event-list-widget-config/event-list-widget-config.component.ts","../../widgets/implementations/events/event-list-widget-config/event-list-widget-config.component.html","../../widgets/implementations/events/event-list-widget-view/event-list-widget.component.ts","../../widgets/implementations/events/event-list-widget-view/event-list-widget.component.html","../../widgets/implementations/events/c8y-ngx-components-widgets-implementations-events.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n effect,\n inject,\n input,\n OnInit,\n signal,\n TemplateRef,\n viewChild\n} from '@angular/core';\nimport { takeUntilDestroyed, toSignal } from '@angular/core/rxjs-interop';\nimport {\n ControlContainer,\n FormBuilder,\n FormsModule,\n NgForm,\n ReactiveFormsModule\n} from '@angular/forms';\nimport { IEvent, IResultList } from '@c8y/client';\nimport {\n AlertService,\n C8yTranslatePipe,\n FormGroupComponent,\n IconDirective\n} from '@c8y/ngx-components';\nimport { WidgetConfigService } from '@c8y/ngx-components/context-dashboard';\nimport { EventsListComponent, EventsViewService } from '@c8y/ngx-components/events';\nimport {\n LocalControlsComponent,\n PRESET_NAME,\n PresetName\n} from '@c8y/ngx-components/global-context';\nimport { from } from 'rxjs';\nimport { debounceTime, shareReplay, switchMap } from 'rxjs/operators';\nimport { EventListWidgetConfig } from '../event-list-widget.model';\n\n@Component({\n selector: 'c8y-event-list-widget-config',\n templateUrl: './event-list-widget-config.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n viewProviders: [{ provide: ControlContainer, useExisting: NgForm }],\n imports: [\n C8yTranslatePipe,\n EventsListComponent,\n FormGroupComponent,\n FormsModule,\n IconDirective,\n LocalControlsComponent,\n ReactiveFormsModule\n ]\n})\nexport class EventListWidgetConfigComponent implements OnInit {\n config = input<EventListWidgetConfig>();\n eventListPreview = viewChild<TemplateRef<unknown>>('eventListPreview');\n\n private alertService = inject(AlertService);\n private destroyRef = inject(DestroyRef);\n private eventsViewService = inject(EventsViewService);\n private form = inject(NgForm);\n private formBuilder = inject(FormBuilder);\n private widgetConfigService = inject(WidgetConfigService);\n\n events = signal<IResultList<IEvent> | undefined>(undefined);\n isLoading = signal(false);\n controls: PresetName = PRESET_NAME.ALARM_LIST;\n\n readonly navigationOptions = {\n allowNavigationToEventsView: false,\n alwaysNavigateToAllEvents: false,\n queryParamsHandling: 'merge' as const\n };\n\n formGroup = this.formBuilder.group({\n type: [''],\n showEventsForChildren: [true]\n });\n typeValue = toSignal(this.formGroup.controls.type.valueChanges, {\n initialValue: this.formGroup.controls.type.value\n });\n\n private config$ = this.widgetConfigService.currentConfig$.pipe(\n takeUntilDestroyed(this.destroyRef),\n shareReplay(1)\n );\n configState = toSignal(this.config$);\n\n constructor() {\n effect(() => {\n const template = this.eventListPreview();\n this.widgetConfigService.setPreview(template ?? null);\n });\n }\n\n ngOnInit(): void {\n const cfg = this.config();\n this.formGroup.patchValue({\n type: cfg?.type ?? '',\n showEventsForChildren: cfg?.showEventsForChildren ?? true\n });\n this.form.form.addControl('config', this.formGroup);\n\n this.formGroup.valueChanges\n .pipe(debounceTime(300), takeUntilDestroyed(this.destroyRef))\n .subscribe(value => {\n Object.assign(cfg, value);\n this.fetchEvents({ ...cfg, ...value } as EventListWidgetConfig);\n });\n\n this.widgetConfigService.addOnBeforeSave(config => {\n Object.assign(config, this.formGroup.value);\n return true;\n });\n\n this.config$\n .pipe(\n takeUntilDestroyed(this.destroyRef),\n switchMap(config =>\n from(this.fetchEvents({ ...config, ...this.formGroup.value } as EventListWidgetConfig))\n )\n )\n .subscribe();\n }\n\n clearType(): void {\n this.formGroup.controls.type.setValue('');\n }\n\n private async fetchEvents(config: EventListWidgetConfig): Promise<void> {\n try {\n this.isLoading.set(true);\n const filter = this.eventsViewService.buildEventsFilter({\n source: config.device?.id ?? null,\n withSourceChildren: config.showEventsForChildren ?? true,\n type: config.type ?? null,\n dateTimeContext: config.dateTimeContext\n });\n const result = await this.eventsViewService.retrieveEvents({ ...filter, pageSize: 10 });\n this.events.set(result);\n } catch (error: unknown) {\n this.alertService.addServerFailure(error);\n } finally {\n this.isLoading.set(false);\n }\n }\n}\n","<div [formGroup]=\"formGroup\">\n <fieldset class=\"c8y-fieldset\">\n <legend translate>Type</legend>\n <c8y-form-group>\n <div style=\"position: relative\">\n <input\n class=\"form-control\"\n [style.padding-right]=\"typeValue() ? '32px' : null\"\n formControlName=\"type\"\n [placeholder]=\"'e.g. {{ example }}' | translate: { example: 'c8y_LocationUpdate' }\"\n />\n @if (typeValue()) {\n <button\n class=\"btn btn-clean\"\n style=\"position: absolute; right: 8px; top: 50%; transform: translateY(-50%)\"\n [title]=\"'Clear' | translate\"\n type=\"button\"\n (click)=\"clearType()\"\n >\n <i c8yIcon=\"times\"></i>\n </button>\n }\n </div>\n </c8y-form-group>\n </fieldset>\n <fieldset\n class=\"c8y-fieldset\"\n data-cy=\"c8y-event-list-widget-config--child-devices-section\"\n >\n <legend>{{ 'Child devices' | translate }}</legend>\n <c8y-form-group class=\"m-b-8\">\n <label\n class=\"c8y-switch\"\n [title]=\"'Show events from child devices' | translate\"\n data-cy=\"c8y-event-list-widget-config--child-devices-label\"\n >\n <input\n type=\"checkbox\"\n formControlName=\"showEventsForChildren\"\n data-cy=\"c8y-event-list-widget-config--showEventsForChildren-checkbox\"\n />\n <span></span>\n <span>{{ 'Show events' | translate }}</span>\n <span class=\"sr-only\">{{ 'Show events' | translate }}</span>\n </label>\n </c8y-form-group>\n </fieldset>\n</div>\n\n<ng-template #eventListPreview>\n @let previewDisplayMode = configState()?.displayMode;\n @if (previewDisplayMode && previewDisplayMode !== 'dashboard') {\n <c8y-local-controls\n [controls]=\"controls\"\n [displayMode]=\"previewDisplayMode\"\n [config]=\"{\n dateTimeContext: configState()?.dateTimeContext,\n aggregation: configState()?.aggregation,\n isAutoRefreshEnabled: configState()?.isAutoRefreshEnabled,\n refreshInterval: configState()?.refreshInterval,\n refreshOption: configState()?.refreshOption\n }\"\n [disabled]=\"true\"\n ></c8y-local-controls>\n }\n <c8y-events-list\n [events]=\"events()\"\n [isLoading]=\"isLoading()\"\n [navigationOptions]=\"navigationOptions\"\n ></c8y-events-list>\n</ng-template>\n","import {\n ChangeDetectionStrategy,\n Component,\n OnInit,\n computed,\n inject,\n input,\n signal\n} from '@angular/core';\nimport { IEvent, IResultList } from '@c8y/client';\nimport {\n AlertService,\n DashboardChildComponent,\n DismissAlertStrategy,\n DynamicComponentAlert,\n DynamicComponentAlertAggregator\n} from '@c8y/ngx-components';\nimport { EventsListComponent, EventsViewService } from '@c8y/ngx-components/events';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport {\n DisplayMode,\n GLOBAL_CONTEXT_DISPLAY_MODE,\n GlobalContextConnectorComponent,\n GlobalContextState,\n LocalControlsComponent,\n PRESET_NAME,\n PresetName,\n REFRESH_OPTION\n} from '@c8y/ngx-components/global-context';\nimport { EventListWidgetConfig } from '../event-list-widget.model';\n\n@Component({\n selector: 'c8y-event-list-widget',\n templateUrl: './event-list-widget.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [EventsListComponent, LocalControlsComponent, GlobalContextConnectorComponent]\n})\nexport class EventListWidgetComponent implements OnInit {\n config = input<EventListWidgetConfig>();\n\n private alertService = inject(AlertService);\n protected dashboardChild = inject(DashboardChildComponent);\n private eventsViewService = inject(EventsViewService);\n\n private isListScrolled = signal(false);\n\n displayMode = signal<DisplayMode>(GLOBAL_CONTEXT_DISPLAY_MODE.DASHBOARD);\n contextConfig = signal<GlobalContextState>({});\n isLinkedToGlobal = signal<boolean | undefined>(undefined);\n events = signal<IResultList<IEvent> | undefined>(undefined);\n isLoading = signal(true);\n alerts: DynamicComponentAlertAggregator;\n widgetControls = signal<PresetName>(PRESET_NAME.ALARM_LIST);\n private sourceId = '';\n\n readonly GLOBAL_CONTEXT_DISPLAY_MODE = GLOBAL_CONTEXT_DISPLAY_MODE;\n readonly REFRESH_OPTION = REFRESH_OPTION;\n\n navigationOptions = computed(() => ({\n alwaysNavigateToAllEvents: !this.config()?.device,\n allowNavigationToEventsView: true,\n queryParamsHandling: '' as const\n }));\n\n private TIMEOUT_ERROR_TEXT = gettext(\n 'The request is taking longer than usual. We apologize for the inconvenience.'\n );\n private SERVER_ERROR_TEXT = gettext('Server error occurred.');\n\n async ngOnInit(): Promise<void> {\n this.alerts.setAlertGroupDismissStrategy(\n 'warning',\n DismissAlertStrategy.TEMPORARY_OR_PERMANENT\n );\n\n const cfg = this.config();\n this.migrateLegacyConfig(cfg);\n this.sourceId =\n cfg?.device?.id ??\n this.dashboardChild['data']?.device?.id ??\n this.dashboardChild['data']?.context?.id ??\n '';\n\n const displayMode = cfg?.displayMode || GLOBAL_CONTEXT_DISPLAY_MODE.DASHBOARD;\n this.displayMode.set(displayMode as DisplayMode);\n\n const initialContextConfig: GlobalContextState = {\n dateTimeContext: cfg?.dateTimeContext,\n aggregation: cfg?.aggregation,\n isAutoRefreshEnabled: cfg?.isAutoRefreshEnabled,\n refreshInterval: cfg?.refreshInterval,\n refreshOption: cfg?.refreshOption\n };\n this.contextConfig.set(initialContextConfig);\n\n if (displayMode !== GLOBAL_CONTEXT_DISPLAY_MODE.DASHBOARD) {\n await this.fetchEvents();\n }\n }\n\n onContextChange(event: { context: GlobalContextState; diff: GlobalContextState }): void {\n const { diff, context } = event;\n if (\n diff.isAutoRefreshEnabled === false &&\n Object.keys(diff).length === 1 &&\n context.refreshOption === REFRESH_OPTION.LIVE\n ) {\n return;\n }\n\n this.contextConfig.set(context);\n void this.fetchEvents();\n }\n\n onRefresh(): void {\n void this.fetchEvents();\n }\n\n onScrollingStateChange(isScrolling: boolean): void {\n this.isListScrolled.set(isScrolling);\n const current = this.contextConfig();\n\n if (current.refreshOption === REFRESH_OPTION.HISTORY) {\n return;\n }\n this.contextConfig.set({ ...current, isAutoRefreshEnabled: !isScrolling });\n this.isLinkedToGlobal.set(!isScrolling);\n }\n\n onPreviewStateChange(isOpen: boolean): void {\n const current = this.contextConfig();\n\n if (current.refreshOption === REFRESH_OPTION.HISTORY) {\n return;\n }\n if (isOpen || !this.isListScrolled()) {\n this.contextConfig.set({ ...current, isAutoRefreshEnabled: !isOpen });\n this.isLinkedToGlobal.set(!isOpen);\n }\n }\n\n private migrateLegacyConfig(cfg: EventListWidgetConfig | undefined): void {\n if (!cfg || cfg.type) {\n return;\n }\n const legacyType = (cfg as Record<string, unknown>)['options'];\n if (legacyType && typeof legacyType === 'object' && 'type' in legacyType) {\n cfg.type = (legacyType as { type: string }).type;\n }\n }\n\n private async fetchEvents(): Promise<void> {\n try {\n this.isLoading.set(true);\n const effectiveConfig = {\n ...this.config(),\n ...this.contextConfig()\n };\n\n const filter = this.eventsViewService.buildEventsFilter({\n source: this.sourceId || null,\n withSourceChildren: this.config()?.showEventsForChildren ?? true,\n type: effectiveConfig.type ?? null,\n dateTimeContext: effectiveConfig.dateTimeContext\n });\n const result = await this.eventsViewService.retrieveEvents({ ...filter, pageSize: 10 });\n this.events.set(result);\n } catch (error: unknown) {\n const err = error as { name?: string; message?: string };\n this.alerts.addAlerts(\n new DynamicComponentAlert({\n type: 'warning',\n text:\n err.name === 'TimeoutError'\n ? this.TIMEOUT_ERROR_TEXT\n : (err.message ?? this.SERVER_ERROR_TEXT)\n })\n );\n this.alertService.addServerFailure(error);\n } finally {\n this.isLoading.set(false);\n }\n }\n}\n","@if (displayMode() === GLOBAL_CONTEXT_DISPLAY_MODE.DASHBOARD) {\n <c8y-global-context-connector\n [controls]=\"widgetControls()\"\n [config]=\"contextConfig()\"\n [isLoading]=\"isLoading()\"\n [dashboardChild]=\"dashboardChild\"\n [linked]=\"isLinkedToGlobal()\"\n (configChange)=\"onContextChange($event)\"\n (refresh)=\"onRefresh()\"\n ></c8y-global-context-connector>\n} @else {\n <c8y-local-controls\n [controls]=\"widgetControls()\"\n [displayMode]=\"displayMode()\"\n [config]=\"contextConfig()\"\n [isLoading]=\"isLoading()\"\n (configChange)=\"onContextChange($event)\"\n (refresh)=\"onRefresh()\"\n ></c8y-local-controls>\n}\n\n<c8y-events-list\n [events]=\"events()\"\n [isLoading]=\"isLoading()\"\n [showPreview]=\"true\"\n [navigationOptions]=\"navigationOptions()\"\n (onScrollingStateChange)=\"onScrollingStateChange($event)\"\n (onPreviewStateChange)=\"onPreviewStateChange($event)\"\n></c8y-events-list>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"c8y-ngx-components-widgets-implementations-events.mjs","sources":["../../widgets/implementations/events/event-list-widget-config/event-list-widget-config.component.ts","../../widgets/implementations/events/event-list-widget-config/event-list-widget-config.component.html","../../widgets/implementations/events/event-list-widget-view/event-list-widget.component.ts","../../widgets/implementations/events/event-list-widget-view/event-list-widget.component.html","../../widgets/implementations/events/c8y-ngx-components-widgets-implementations-events.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n effect,\n inject,\n input,\n OnInit,\n signal,\n TemplateRef,\n viewChild\n} from '@angular/core';\nimport { takeUntilDestroyed, toSignal } from '@angular/core/rxjs-interop';\nimport {\n ControlContainer,\n FormBuilder,\n FormsModule,\n NgForm,\n ReactiveFormsModule\n} from '@angular/forms';\nimport { IEvent, IResultList } from '@c8y/client';\nimport {\n AlertService,\n C8yTranslatePipe,\n FormGroupComponent,\n IconDirective\n} from '@c8y/ngx-components';\nimport { WidgetConfigService } from '@c8y/ngx-components/context-dashboard';\nimport { EventsListComponent, EventsViewService } from '@c8y/ngx-components/events';\nimport {\n LocalControlsComponent,\n PRESET_NAME,\n PresetName\n} from '@c8y/ngx-components/global-context';\nimport { from } from 'rxjs';\nimport { debounceTime, shareReplay, switchMap } from 'rxjs/operators';\nimport { EventListWidgetConfig } from '../event-list-widget.model';\n\n@Component({\n selector: 'c8y-event-list-widget-config',\n templateUrl: './event-list-widget-config.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n viewProviders: [{ provide: ControlContainer, useExisting: NgForm }],\n imports: [\n C8yTranslatePipe,\n EventsListComponent,\n FormGroupComponent,\n FormsModule,\n IconDirective,\n LocalControlsComponent,\n ReactiveFormsModule\n ]\n})\nexport class EventListWidgetConfigComponent implements OnInit {\n config = input<EventListWidgetConfig>();\n eventListPreview = viewChild<TemplateRef<unknown>>('eventListPreview');\n\n private alertService = inject(AlertService);\n private destroyRef = inject(DestroyRef);\n private eventsViewService = inject(EventsViewService);\n private form = inject(NgForm);\n private formBuilder = inject(FormBuilder);\n private widgetConfigService = inject(WidgetConfigService);\n\n events = signal<IResultList<IEvent> | undefined>(undefined);\n isLoading = signal(false);\n controls: PresetName = PRESET_NAME.ALARM_LIST;\n\n readonly navigationOptions = {\n allowNavigationToEventsView: false,\n alwaysNavigateToAllEvents: false,\n queryParamsHandling: 'merge' as const\n };\n\n formGroup = this.formBuilder.group({\n type: [''],\n showEventsForChildren: [true]\n });\n typeValue = toSignal(this.formGroup.controls.type.valueChanges, {\n initialValue: this.formGroup.controls.type.value\n });\n\n private config$ = this.widgetConfigService.currentConfig$.pipe(\n takeUntilDestroyed(this.destroyRef),\n shareReplay(1)\n );\n configState = toSignal(this.config$);\n\n constructor() {\n effect(() => {\n const template = this.eventListPreview();\n this.widgetConfigService.setPreview(template ?? null);\n });\n }\n\n ngOnInit(): void {\n const cfg = this.config();\n this.formGroup.patchValue({\n type: cfg?.type ?? '',\n showEventsForChildren: cfg?.showEventsForChildren ?? true\n });\n this.form.form.addControl('config', this.formGroup);\n\n this.formGroup.valueChanges\n .pipe(debounceTime(300), takeUntilDestroyed(this.destroyRef))\n .subscribe(value => {\n Object.assign(cfg, value);\n this.fetchEvents({ ...cfg, ...value } as EventListWidgetConfig);\n });\n\n this.widgetConfigService.addOnBeforeSave(config => {\n Object.assign(config, this.formGroup.value);\n return true;\n });\n\n this.config$\n .pipe(\n takeUntilDestroyed(this.destroyRef),\n switchMap(config =>\n from(this.fetchEvents({ ...config, ...this.formGroup.value } as EventListWidgetConfig))\n )\n )\n .subscribe();\n }\n\n clearType(): void {\n this.formGroup.controls.type.setValue('');\n }\n\n private async fetchEvents(config: EventListWidgetConfig): Promise<void> {\n try {\n this.isLoading.set(true);\n const filter = this.eventsViewService.buildEventsFilter({\n source: config.device?.id ?? null,\n withSourceChildren: config.showEventsForChildren ?? true,\n type: config.type ?? null,\n dateTimeContext: config.dateTimeContext\n });\n const result = await this.eventsViewService.retrieveEvents({ ...filter, pageSize: 10 });\n this.events.set(result);\n } catch (error: unknown) {\n this.alertService.addServerFailure(error);\n } finally {\n this.isLoading.set(false);\n }\n }\n}\n","<div [formGroup]=\"formGroup\">\n <fieldset class=\"c8y-fieldset\">\n <legend>{{ 'Type' | translate }}</legend>\n <c8y-form-group class=\"p-t-4 form-group-sm\">\n <div style=\"position: relative\">\n <input\n class=\"form-control\"\n [style.padding-right]=\"typeValue() ? '32px' : null\"\n formControlName=\"type\"\n [placeholder]=\"'e.g. {{ example }}' | translate: { example: 'c8y_LocationUpdate' }\"\n />\n @if (typeValue()) {\n <button\n class=\"btn btn-clean\"\n style=\"position: absolute; right: 8px; top: 50%; transform: translateY(-50%)\"\n [title]=\"'Clear' | translate\"\n type=\"button\"\n (click)=\"clearType()\"\n >\n <i c8yIcon=\"times\"></i>\n </button>\n }\n </div>\n </c8y-form-group>\n </fieldset>\n <fieldset\n class=\"c8y-fieldset\"\n data-cy=\"c8y-event-list-widget-config--child-devices-section\"\n >\n <legend>{{ 'Child devices' | translate }}</legend>\n <c8y-form-group class=\"m-b-8\">\n <label\n class=\"c8y-switch\"\n [title]=\"'Show events from child devices' | translate\"\n data-cy=\"c8y-event-list-widget-config--child-devices-label\"\n >\n <input\n type=\"checkbox\"\n formControlName=\"showEventsForChildren\"\n data-cy=\"c8y-event-list-widget-config--showEventsForChildren-checkbox\"\n />\n <span></span>\n <span>{{ 'Show events' | translate }}</span>\n <span class=\"sr-only\">{{ 'Show events' | translate }}</span>\n </label>\n </c8y-form-group>\n </fieldset>\n</div>\n\n<ng-template #eventListPreview>\n @let previewDisplayMode = configState()?.displayMode;\n @if (previewDisplayMode && previewDisplayMode !== 'dashboard') {\n <c8y-local-controls\n [controls]=\"controls\"\n [displayMode]=\"previewDisplayMode\"\n [config]=\"{\n dateTimeContext: configState()?.dateTimeContext,\n aggregation: configState()?.aggregation,\n isAutoRefreshEnabled: configState()?.isAutoRefreshEnabled,\n refreshInterval: configState()?.refreshInterval,\n refreshOption: configState()?.refreshOption\n }\"\n [disabled]=\"true\"\n ></c8y-local-controls>\n }\n <c8y-events-list\n [events]=\"events()\"\n [isLoading]=\"isLoading()\"\n [navigationOptions]=\"navigationOptions\"\n ></c8y-events-list>\n</ng-template>\n","import {\n ChangeDetectionStrategy,\n Component,\n OnInit,\n computed,\n inject,\n input,\n signal\n} from '@angular/core';\nimport { IEvent, IResultList } from '@c8y/client';\nimport {\n AlertService,\n DashboardChildComponent,\n DismissAlertStrategy,\n DynamicComponentAlert,\n DynamicComponentAlertAggregator\n} from '@c8y/ngx-components';\nimport { EventsListComponent, EventsViewService } from '@c8y/ngx-components/events';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport {\n DisplayMode,\n GLOBAL_CONTEXT_DISPLAY_MODE,\n GlobalContextConnectorComponent,\n GlobalContextState,\n LocalControlsComponent,\n PRESET_NAME,\n PresetName,\n REFRESH_OPTION\n} from '@c8y/ngx-components/global-context';\nimport { EventListWidgetConfig } from '../event-list-widget.model';\n\n@Component({\n selector: 'c8y-event-list-widget',\n templateUrl: './event-list-widget.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [EventsListComponent, LocalControlsComponent, GlobalContextConnectorComponent]\n})\nexport class EventListWidgetComponent implements OnInit {\n config = input<EventListWidgetConfig>();\n\n private alertService = inject(AlertService);\n protected dashboardChild = inject(DashboardChildComponent);\n private eventsViewService = inject(EventsViewService);\n\n private isListScrolled = signal(false);\n\n displayMode = signal<DisplayMode>(GLOBAL_CONTEXT_DISPLAY_MODE.DASHBOARD);\n contextConfig = signal<GlobalContextState>({});\n isLinkedToGlobal = signal<boolean | undefined>(undefined);\n events = signal<IResultList<IEvent> | undefined>(undefined);\n isLoading = signal(true);\n alerts: DynamicComponentAlertAggregator;\n widgetControls = signal<PresetName>(PRESET_NAME.ALARM_LIST);\n private sourceId = '';\n\n readonly GLOBAL_CONTEXT_DISPLAY_MODE = GLOBAL_CONTEXT_DISPLAY_MODE;\n readonly REFRESH_OPTION = REFRESH_OPTION;\n\n navigationOptions = computed(() => ({\n alwaysNavigateToAllEvents: !this.config()?.device,\n allowNavigationToEventsView: true,\n queryParamsHandling: '' as const\n }));\n\n private TIMEOUT_ERROR_TEXT = gettext(\n 'The request is taking longer than usual. We apologize for the inconvenience.'\n );\n private SERVER_ERROR_TEXT = gettext('Server error occurred.');\n\n async ngOnInit(): Promise<void> {\n this.alerts.setAlertGroupDismissStrategy(\n 'warning',\n DismissAlertStrategy.TEMPORARY_OR_PERMANENT\n );\n\n const cfg = this.config();\n this.migrateLegacyConfig(cfg);\n this.sourceId =\n cfg?.device?.id ??\n this.dashboardChild['data']?.device?.id ??\n this.dashboardChild['data']?.context?.id ??\n '';\n\n const displayMode = cfg?.displayMode || GLOBAL_CONTEXT_DISPLAY_MODE.DASHBOARD;\n this.displayMode.set(displayMode as DisplayMode);\n\n const initialContextConfig: GlobalContextState = {\n dateTimeContext: cfg?.dateTimeContext,\n aggregation: cfg?.aggregation,\n isAutoRefreshEnabled: cfg?.isAutoRefreshEnabled,\n refreshInterval: cfg?.refreshInterval,\n refreshOption: cfg?.refreshOption\n };\n this.contextConfig.set(initialContextConfig);\n\n if (displayMode !== GLOBAL_CONTEXT_DISPLAY_MODE.DASHBOARD) {\n await this.fetchEvents();\n }\n }\n\n onContextChange(event: { context: GlobalContextState; diff: GlobalContextState }): void {\n const { diff, context } = event;\n if (\n diff.isAutoRefreshEnabled === false &&\n Object.keys(diff).length === 1 &&\n context.refreshOption === REFRESH_OPTION.LIVE\n ) {\n return;\n }\n\n this.contextConfig.set(context);\n void this.fetchEvents();\n }\n\n onRefresh(): void {\n void this.fetchEvents();\n }\n\n onScrollingStateChange(isScrolling: boolean): void {\n this.isListScrolled.set(isScrolling);\n const current = this.contextConfig();\n\n if (current.refreshOption === REFRESH_OPTION.HISTORY) {\n return;\n }\n this.contextConfig.set({ ...current, isAutoRefreshEnabled: !isScrolling });\n this.isLinkedToGlobal.set(!isScrolling);\n }\n\n onPreviewStateChange(isOpen: boolean): void {\n const current = this.contextConfig();\n\n if (current.refreshOption === REFRESH_OPTION.HISTORY) {\n return;\n }\n if (isOpen || !this.isListScrolled()) {\n this.contextConfig.set({ ...current, isAutoRefreshEnabled: !isOpen });\n this.isLinkedToGlobal.set(!isOpen);\n }\n }\n\n private migrateLegacyConfig(cfg: EventListWidgetConfig | undefined): void {\n if (!cfg || cfg.type) {\n return;\n }\n const legacyType = (cfg as Record<string, unknown>)['options'];\n if (legacyType && typeof legacyType === 'object' && 'type' in legacyType) {\n cfg.type = (legacyType as { type: string }).type;\n }\n }\n\n private async fetchEvents(): Promise<void> {\n try {\n this.isLoading.set(true);\n const effectiveConfig = {\n ...this.config(),\n ...this.contextConfig()\n };\n\n const filter = this.eventsViewService.buildEventsFilter({\n source: this.sourceId || null,\n withSourceChildren: this.config()?.showEventsForChildren ?? true,\n type: effectiveConfig.type ?? null,\n dateTimeContext: effectiveConfig.dateTimeContext\n });\n const result = await this.eventsViewService.retrieveEvents({ ...filter, pageSize: 10 });\n this.events.set(result);\n } catch (error: unknown) {\n const err = error as { name?: string; message?: string };\n this.alerts.addAlerts(\n new DynamicComponentAlert({\n type: 'warning',\n text:\n err.name === 'TimeoutError'\n ? this.TIMEOUT_ERROR_TEXT\n : (err.message ?? this.SERVER_ERROR_TEXT)\n })\n );\n this.alertService.addServerFailure(error);\n } finally {\n this.isLoading.set(false);\n }\n }\n}\n","@if (displayMode() === GLOBAL_CONTEXT_DISPLAY_MODE.DASHBOARD) {\n <c8y-global-context-connector\n [controls]=\"widgetControls()\"\n [config]=\"contextConfig()\"\n [isLoading]=\"isLoading()\"\n [dashboardChild]=\"dashboardChild\"\n [linked]=\"isLinkedToGlobal()\"\n (configChange)=\"onContextChange($event)\"\n (refresh)=\"onRefresh()\"\n ></c8y-global-context-connector>\n} @else {\n <c8y-local-controls\n [controls]=\"widgetControls()\"\n [displayMode]=\"displayMode()\"\n [config]=\"contextConfig()\"\n [isLoading]=\"isLoading()\"\n (configChange)=\"onContextChange($event)\"\n (refresh)=\"onRefresh()\"\n ></c8y-local-controls>\n}\n\n<c8y-events-list\n [events]=\"events()\"\n [isLoading]=\"isLoading()\"\n [showPreview]=\"true\"\n [navigationOptions]=\"navigationOptions()\"\n (onScrollingStateChange)=\"onScrollingStateChange($event)\"\n (onPreviewStateChange)=\"onPreviewStateChange($event)\"\n></c8y-events-list>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { Pipe, Injectable, inject, ViewChild, Input, Component, Optional, EventEmitter, forwardRef, Output } from '@angular/core';
3
3
  import * as i1 from '@c8y/ngx-components';
4
- import { ThemeSwitcherService, MeasurementRealtimeService, DatePipe, CommonModule, FormGroupComponent, MessagesComponent, FormsModule, GuideDocsComponent } from '@c8y/ngx-components';
4
+ import { ThemeSwitcherService, MeasurementRealtimeService, DatePipe, CommonModule, FormGroupComponent, FormsModule, GuideDocsComponent, MessagesComponent } from '@c8y/ngx-components';
5
5
  import * as i1$2 from '@angular/common';
6
6
  import { AsyncPipe, NgStyle, DecimalPipe } from '@angular/common';
7
7
  import { of, BehaviorSubject, switchMap, tap, Subject, takeUntil, debounceTime } from 'rxjs';
@@ -1171,7 +1171,7 @@ class InfoGaugeWidgetConfigComponent {
1171
1171
  });
1172
1172
  }
1173
1173
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: InfoGaugeWidgetConfigComponent, deps: [{ token: i1$3.FormBuilder }, { token: i1$3.NgForm }, { token: i2.WidgetConfigComponent }, { token: i2.WidgetConfigService }, { token: i1.DynamicComponentComponent, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
1174
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.19", type: InfoGaugeWidgetConfigComponent, isStandalone: true, selector: "c8y-info-gauge-widget-config", inputs: { config: "config" }, providers: [MeasurementRealtimeService], viewQueries: [{ propertyName: "editorComponent", first: true, predicate: EditorComponent, descendants: true }, { propertyName: "previewMapSet", first: true, predicate: ["gaugePreview"], descendants: true }], ngImport: i0, template: "<form\n class=\"fit-h\"\n [formGroup]=\"formGroup\"\n>\n @if (isInfoGauge) {\n <div class=\"m-l-16 m-r-16\">\n <c8y-form-group class=\"p-t-8\">\n <label translate>Decimal places</label>\n <input\n class=\"form-control\"\n name=\"fractionSize\"\n type=\"number\"\n formControlName=\"fractionSize\"\n step=\"1\"\n />\n <c8y-messages [show]=\"formGroup.controls.fractionSize.errors\"></c8y-messages>\n </c8y-form-group>\n @if (formGroup.errors?.noActiveDatapoint) {\n <div\n class=\"alert alert-info\"\n role=\"alert\"\n translate\n >\n At least one data point for the labels or the gauge needs to be selected.\n </div>\n }\n </div>\n } @else {\n <c8y-form-group class=\"p-t-8 p-r-16 p-l-16\">\n <label translate>Decimal places</label>\n <input\n class=\"form-control\"\n name=\"fractionSize\"\n type=\"number\"\n formControlName=\"fractionSize\"\n step=\"1\"\n />\n <c8y-messages [show]=\"formGroup.controls.fractionSize.errors\"></c8y-messages>\n </c8y-form-group>\n\n <div class=\"form-group p-r-16 p-l-16 m-b-0\">\n <legend>\n {{ 'Presets' | translate }}\n </legend>\n <c8y-preset-preview\n formControlName=\"gaugePresetId\"\n [ALL_GAUGE_PRESETS]=\"ALL_GAUGE_PRESETS\"\n (onPresetChange)=\"onRadioPresetChange($event)\"\n ></c8y-preset-preview>\n </div>\n\n <div class=\"p-16\">\n <button\n class=\"btn btn-default\"\n aria-controls=\"advancedCollapse\"\n [attr.aria-expanded]=\"showAdvancedOptions\"\n type=\"button\"\n (click)=\"showAdvancedOptions = !showAdvancedOptions\"\n >\n {{ showAdvancedOptions ? hideAdvancedOptionsLabel : showAdvancedOptionsLabel }}\n </button>\n </div>\n\n <div\n class=\"collapse\"\n id=\"advancedCollapse\"\n [collapse]=\"!showAdvancedOptions\"\n [isAnimated]=\"true\"\n >\n <div\n class=\"fit-h\"\n style=\"min-height: 400px\"\n >\n <c8y-editor\n [ngModel]=\"gaugeOptionsString\"\n (ngModelChange)=\"gaugeJSONChange($event)\"\n (editorInit)=\"assignSchema()\"\n [ngModelOptions]=\"{ standalone: true }\"\n monacoEditorMarkerValidator\n ></c8y-editor>\n </div>\n </div>\n }\n</form>\n\n<ng-template #gaugePreview>\n @if (\n (datapointsGauge?.length > 0 && activeDatapointGauge) ||\n (datapointsLabels?.length > 0 && activeDatapointLabel)\n ) {\n <div>\n <c8y-info-gauge-widget-view [config]=\"previewConfig\"></c8y-info-gauge-widget-view>\n </div>\n } @else {\n <div class=\"d-col a-i-start j-c-center\">\n <c8y-ui-empty-state\n [icon]=\"'c8y-data-points'\"\n [title]=\"'No data points selected' | translate\"\n [subtitle]=\"'Select data point to render content' | translate\"\n [horizontal]=\"false\"\n data-cy=\"info-gauge--empty-state-no-data-point-selected\"\n >\n <p c8y-guide-docs>\n <small\n translate\n ngNonBindable\n >\n Find out more in the\n <a c8y-guide-href=\"/docs/cockpit/widgets-collection/#info-gauge\">user documentation</a>.\n </small>\n </p>\n </c8y-ui-empty-state>\n </div>\n }\n</ng-template>\n", dependencies: [{ kind: "component", type: FormGroupComponent, selector: "c8y-form-group", inputs: ["hasError", "hasWarning", "hasSuccess", "novalidation", "status"] }, { kind: "component", type: MessagesComponent, selector: "c8y-messages", inputs: ["show", "defaults", "helpMessage", "additionalMessages"] }, { kind: "ngmodule", type: CommonModule }, { kind: "component", type: i1.EmptyStateComponent, selector: "c8y-ui-empty-state", inputs: ["icon", "title", "subtitle", "horizontal"] }, { kind: "directive", type: i1.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$3.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1.RequiredInputPlaceholderDirective, selector: "input[required], input[formControlName]" }, { kind: "ngmodule", type: CollapseModule }, { kind: "directive", type: i4.CollapseDirective, selector: "[collapse]", inputs: ["display", "isAnimated", "collapse"], outputs: ["collapsed", "collapses", "expanded", "expands"], exportAs: ["bs-collapse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: EditorComponent, selector: "c8y-editor", inputs: ["editorOptions", "theme"], outputs: ["editorInit"] }, { kind: "directive", type: MonacoEditorMarkerValidatorDirective, selector: "c8y-editor [monacoEditorMarkerValidator]" }, { kind: "ngmodule", type: DatapointSelectorModule }, { kind: "component", type: PresetPreviewComponent, selector: "c8y-preset-preview", inputs: ["ALL_GAUGE_PRESETS"], outputs: ["onPresetChange"] }, { kind: "component", type: InfoGaugeWidgetViewComponent, selector: "c8y-info-gauge-widget-view", inputs: ["config"] }, { kind: "component", type: GuideDocsComponent, selector: "[c8y-guide-docs]" }, { kind: "pipe", type: i1.C8yTranslatePipe, name: "translate" }], viewProviders: [{ provide: ControlContainer, useExisting: NgForm }] }); }
1174
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.19", type: InfoGaugeWidgetConfigComponent, isStandalone: true, selector: "c8y-info-gauge-widget-config", inputs: { config: "config" }, providers: [MeasurementRealtimeService], viewQueries: [{ propertyName: "editorComponent", first: true, predicate: EditorComponent, descendants: true }, { propertyName: "previewMapSet", first: true, predicate: ["gaugePreview"], descendants: true }], ngImport: i0, template: "<form [formGroup]=\"formGroup\">\n @if (isInfoGauge) {\n <fieldset class=\"c8y-fieldset\">\n <legend>{{ 'Decimal places' | translate }}</legend>\n <c8y-form-group>\n <input\n class=\"form-control\"\n name=\"fractionSize\"\n type=\"number\"\n formControlName=\"fractionSize\"\n step=\"1\"\n />\n </c8y-form-group>\n </fieldset>\n @if (formGroup.errors?.noActiveDatapoint) {\n <div\n class=\"alert alert-info\"\n role=\"alert\"\n translate\n >\n At least one data point for the labels or the gauge needs to be selected.\n </div>\n }\n } @else {\n <fieldset class=\"c8y-fieldset\">\n <legend>{{ 'Decimal places' | translate }}</legend>\n <c8y-form-group>\n <input\n class=\"form-control\"\n name=\"fractionSize\"\n type=\"number\"\n formControlName=\"fractionSize\"\n step=\"1\"\n />\n </c8y-form-group>\n </fieldset>\n\n <fieldset class=\"c8y-fieldset\">\n <legend>{{ 'Presets' | translate }}</legend>\n <c8y-preset-preview\n formControlName=\"gaugePresetId\"\n [ALL_GAUGE_PRESETS]=\"ALL_GAUGE_PRESETS\"\n (onPresetChange)=\"onRadioPresetChange($event)\"\n ></c8y-preset-preview>\n </fieldset>\n\n <div class=\"p-16\">\n <button\n class=\"btn btn-default\"\n aria-controls=\"advancedCollapse\"\n [attr.aria-expanded]=\"showAdvancedOptions\"\n type=\"button\"\n (click)=\"showAdvancedOptions = !showAdvancedOptions\"\n >\n {{ showAdvancedOptions ? hideAdvancedOptionsLabel : showAdvancedOptionsLabel }}\n </button>\n </div>\n\n <div\n class=\"collapse\"\n id=\"advancedCollapse\"\n [collapse]=\"!showAdvancedOptions\"\n [isAnimated]=\"true\"\n >\n <div\n class=\"fit-h\"\n style=\"min-height: 400px\"\n >\n <c8y-editor\n [ngModel]=\"gaugeOptionsString\"\n (ngModelChange)=\"gaugeJSONChange($event)\"\n (editorInit)=\"assignSchema()\"\n [ngModelOptions]=\"{ standalone: true }\"\n monacoEditorMarkerValidator\n ></c8y-editor>\n </div>\n </div>\n }\n</form>\n\n<ng-template #gaugePreview>\n @if (\n (datapointsGauge?.length > 0 && activeDatapointGauge) ||\n (datapointsLabels?.length > 0 && activeDatapointLabel)\n ) {\n <div>\n <c8y-info-gauge-widget-view [config]=\"previewConfig\"></c8y-info-gauge-widget-view>\n </div>\n } @else {\n <div class=\"d-col a-i-start j-c-center\">\n <c8y-ui-empty-state\n [icon]=\"'c8y-data-points'\"\n [title]=\"'No data points selected' | translate\"\n [subtitle]=\"'Select data point to render content' | translate\"\n [horizontal]=\"false\"\n data-cy=\"info-gauge--empty-state-no-data-point-selected\"\n >\n <p c8y-guide-docs>\n <small\n translate\n ngNonBindable\n >\n Find out more in the\n <a c8y-guide-href=\"/docs/cockpit/widgets-collection/#info-gauge\">user documentation</a>.\n </small>\n </p>\n </c8y-ui-empty-state>\n </div>\n }\n</ng-template>\n", dependencies: [{ kind: "component", type: FormGroupComponent, selector: "c8y-form-group", inputs: ["hasError", "hasWarning", "hasSuccess", "novalidation", "status"] }, { kind: "ngmodule", type: CommonModule }, { kind: "component", type: i1.EmptyStateComponent, selector: "c8y-ui-empty-state", inputs: ["icon", "title", "subtitle", "horizontal"] }, { kind: "directive", type: i1.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$3.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1.RequiredInputPlaceholderDirective, selector: "input[required], input[formControlName]" }, { kind: "ngmodule", type: CollapseModule }, { kind: "directive", type: i4.CollapseDirective, selector: "[collapse]", inputs: ["display", "isAnimated", "collapse"], outputs: ["collapsed", "collapses", "expanded", "expands"], exportAs: ["bs-collapse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: EditorComponent, selector: "c8y-editor", inputs: ["editorOptions", "theme"], outputs: ["editorInit"] }, { kind: "directive", type: MonacoEditorMarkerValidatorDirective, selector: "c8y-editor [monacoEditorMarkerValidator]" }, { kind: "ngmodule", type: DatapointSelectorModule }, { kind: "component", type: PresetPreviewComponent, selector: "c8y-preset-preview", inputs: ["ALL_GAUGE_PRESETS"], outputs: ["onPresetChange"] }, { kind: "component", type: InfoGaugeWidgetViewComponent, selector: "c8y-info-gauge-widget-view", inputs: ["config"] }, { kind: "component", type: GuideDocsComponent, selector: "[c8y-guide-docs]" }, { kind: "pipe", type: i1.C8yTranslatePipe, name: "translate" }], viewProviders: [{ provide: ControlContainer, useExisting: NgForm }] }); }
1175
1175
  }
1176
1176
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: InfoGaugeWidgetConfigComponent, decorators: [{
1177
1177
  type: Component,
@@ -1188,7 +1188,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImpo
1188
1188
  PresetPreviewComponent,
1189
1189
  InfoGaugeWidgetViewComponent,
1190
1190
  GuideDocsComponent
1191
- ], template: "<form\n class=\"fit-h\"\n [formGroup]=\"formGroup\"\n>\n @if (isInfoGauge) {\n <div class=\"m-l-16 m-r-16\">\n <c8y-form-group class=\"p-t-8\">\n <label translate>Decimal places</label>\n <input\n class=\"form-control\"\n name=\"fractionSize\"\n type=\"number\"\n formControlName=\"fractionSize\"\n step=\"1\"\n />\n <c8y-messages [show]=\"formGroup.controls.fractionSize.errors\"></c8y-messages>\n </c8y-form-group>\n @if (formGroup.errors?.noActiveDatapoint) {\n <div\n class=\"alert alert-info\"\n role=\"alert\"\n translate\n >\n At least one data point for the labels or the gauge needs to be selected.\n </div>\n }\n </div>\n } @else {\n <c8y-form-group class=\"p-t-8 p-r-16 p-l-16\">\n <label translate>Decimal places</label>\n <input\n class=\"form-control\"\n name=\"fractionSize\"\n type=\"number\"\n formControlName=\"fractionSize\"\n step=\"1\"\n />\n <c8y-messages [show]=\"formGroup.controls.fractionSize.errors\"></c8y-messages>\n </c8y-form-group>\n\n <div class=\"form-group p-r-16 p-l-16 m-b-0\">\n <legend>\n {{ 'Presets' | translate }}\n </legend>\n <c8y-preset-preview\n formControlName=\"gaugePresetId\"\n [ALL_GAUGE_PRESETS]=\"ALL_GAUGE_PRESETS\"\n (onPresetChange)=\"onRadioPresetChange($event)\"\n ></c8y-preset-preview>\n </div>\n\n <div class=\"p-16\">\n <button\n class=\"btn btn-default\"\n aria-controls=\"advancedCollapse\"\n [attr.aria-expanded]=\"showAdvancedOptions\"\n type=\"button\"\n (click)=\"showAdvancedOptions = !showAdvancedOptions\"\n >\n {{ showAdvancedOptions ? hideAdvancedOptionsLabel : showAdvancedOptionsLabel }}\n </button>\n </div>\n\n <div\n class=\"collapse\"\n id=\"advancedCollapse\"\n [collapse]=\"!showAdvancedOptions\"\n [isAnimated]=\"true\"\n >\n <div\n class=\"fit-h\"\n style=\"min-height: 400px\"\n >\n <c8y-editor\n [ngModel]=\"gaugeOptionsString\"\n (ngModelChange)=\"gaugeJSONChange($event)\"\n (editorInit)=\"assignSchema()\"\n [ngModelOptions]=\"{ standalone: true }\"\n monacoEditorMarkerValidator\n ></c8y-editor>\n </div>\n </div>\n }\n</form>\n\n<ng-template #gaugePreview>\n @if (\n (datapointsGauge?.length > 0 && activeDatapointGauge) ||\n (datapointsLabels?.length > 0 && activeDatapointLabel)\n ) {\n <div>\n <c8y-info-gauge-widget-view [config]=\"previewConfig\"></c8y-info-gauge-widget-view>\n </div>\n } @else {\n <div class=\"d-col a-i-start j-c-center\">\n <c8y-ui-empty-state\n [icon]=\"'c8y-data-points'\"\n [title]=\"'No data points selected' | translate\"\n [subtitle]=\"'Select data point to render content' | translate\"\n [horizontal]=\"false\"\n data-cy=\"info-gauge--empty-state-no-data-point-selected\"\n >\n <p c8y-guide-docs>\n <small\n translate\n ngNonBindable\n >\n Find out more in the\n <a c8y-guide-href=\"/docs/cockpit/widgets-collection/#info-gauge\">user documentation</a>.\n </small>\n </p>\n </c8y-ui-empty-state>\n </div>\n }\n</ng-template>\n" }]
1191
+ ], template: "<form [formGroup]=\"formGroup\">\n @if (isInfoGauge) {\n <fieldset class=\"c8y-fieldset\">\n <legend>{{ 'Decimal places' | translate }}</legend>\n <c8y-form-group>\n <input\n class=\"form-control\"\n name=\"fractionSize\"\n type=\"number\"\n formControlName=\"fractionSize\"\n step=\"1\"\n />\n </c8y-form-group>\n </fieldset>\n @if (formGroup.errors?.noActiveDatapoint) {\n <div\n class=\"alert alert-info\"\n role=\"alert\"\n translate\n >\n At least one data point for the labels or the gauge needs to be selected.\n </div>\n }\n } @else {\n <fieldset class=\"c8y-fieldset\">\n <legend>{{ 'Decimal places' | translate }}</legend>\n <c8y-form-group>\n <input\n class=\"form-control\"\n name=\"fractionSize\"\n type=\"number\"\n formControlName=\"fractionSize\"\n step=\"1\"\n />\n </c8y-form-group>\n </fieldset>\n\n <fieldset class=\"c8y-fieldset\">\n <legend>{{ 'Presets' | translate }}</legend>\n <c8y-preset-preview\n formControlName=\"gaugePresetId\"\n [ALL_GAUGE_PRESETS]=\"ALL_GAUGE_PRESETS\"\n (onPresetChange)=\"onRadioPresetChange($event)\"\n ></c8y-preset-preview>\n </fieldset>\n\n <div class=\"p-16\">\n <button\n class=\"btn btn-default\"\n aria-controls=\"advancedCollapse\"\n [attr.aria-expanded]=\"showAdvancedOptions\"\n type=\"button\"\n (click)=\"showAdvancedOptions = !showAdvancedOptions\"\n >\n {{ showAdvancedOptions ? hideAdvancedOptionsLabel : showAdvancedOptionsLabel }}\n </button>\n </div>\n\n <div\n class=\"collapse\"\n id=\"advancedCollapse\"\n [collapse]=\"!showAdvancedOptions\"\n [isAnimated]=\"true\"\n >\n <div\n class=\"fit-h\"\n style=\"min-height: 400px\"\n >\n <c8y-editor\n [ngModel]=\"gaugeOptionsString\"\n (ngModelChange)=\"gaugeJSONChange($event)\"\n (editorInit)=\"assignSchema()\"\n [ngModelOptions]=\"{ standalone: true }\"\n monacoEditorMarkerValidator\n ></c8y-editor>\n </div>\n </div>\n }\n</form>\n\n<ng-template #gaugePreview>\n @if (\n (datapointsGauge?.length > 0 && activeDatapointGauge) ||\n (datapointsLabels?.length > 0 && activeDatapointLabel)\n ) {\n <div>\n <c8y-info-gauge-widget-view [config]=\"previewConfig\"></c8y-info-gauge-widget-view>\n </div>\n } @else {\n <div class=\"d-col a-i-start j-c-center\">\n <c8y-ui-empty-state\n [icon]=\"'c8y-data-points'\"\n [title]=\"'No data points selected' | translate\"\n [subtitle]=\"'Select data point to render content' | translate\"\n [horizontal]=\"false\"\n data-cy=\"info-gauge--empty-state-no-data-point-selected\"\n >\n <p c8y-guide-docs>\n <small\n translate\n ngNonBindable\n >\n Find out more in the\n <a c8y-guide-href=\"/docs/cockpit/widgets-collection/#info-gauge\">user documentation</a>.\n </small>\n </p>\n </c8y-ui-empty-state>\n </div>\n }\n</ng-template>\n" }]
1192
1192
  }], ctorParameters: () => [{ type: i1$3.FormBuilder }, { type: i1$3.NgForm }, { type: i2.WidgetConfigComponent }, { type: i2.WidgetConfigService }, { type: i1.DynamicComponentComponent, decorators: [{
1193
1193
  type: Optional
1194
1194
  }] }], propDecorators: { config: [{