@meshmakers/octo-meshboard 3.3.690 → 3.3.710

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.
@@ -14,7 +14,7 @@ import { CkTypeSelectorInputComponent, FieldFilterItem, FilterVariable, Property
14
14
  import * as _meshmakers_octo_meshboard from '@meshmakers/octo-meshboard';
15
15
  import * as _progress_kendo_svg_icons from '@progress/kendo-svg-icons';
16
16
  import { SVGIcon } from '@progress/kendo-svg-icons';
17
- import { TileLayoutResizeEvent } from '@progress/kendo-angular-layout';
17
+ import { TileLayoutReorderEvent, TileLayoutResizeEvent } from '@progress/kendo-angular-layout';
18
18
 
19
19
  /**
20
20
  * Mapping from diagram exposed property to runtime data source
@@ -284,7 +284,13 @@ type DataSource = RuntimeEntityDataSource | StaticDataSource | PersistentQueryDa
284
284
  /**
285
285
  * Supported widget types
286
286
  */
287
- type WidgetType = 'entityCard' | 'entityWithAssociations' | 'kpi' | 'table' | 'gauge' | 'pieChart' | 'barChart' | 'lineChart' | 'heatmap' | 'statsGrid' | 'statusIndicator' | 'serviceHealth' | 'process' | 'widgetGroup' | 'markdown';
287
+ type WidgetType = 'entityCard' | 'entityWithAssociations' | 'kpi' | 'table' | 'gauge' | 'pieChart' | 'barChart' | 'lineChart' | 'heatmap' | 'statsGrid' | 'statusIndicator' | 'serviceHealth' | 'process' | 'widgetGroup' | 'markdown' | 'statusList' | 'summaryCard' | 'alertBanner' | 'alertList' | 'aiInsights';
288
+ /**
289
+ * Widget placement zone.
290
+ * - 'grid': Rendered inside the Kendo TileLayout grid (default)
291
+ * - 'banner': Rendered in the banner stack above the grid (full-width, no grid positioning)
292
+ */
293
+ type WidgetZone = 'grid' | 'banner';
288
294
  /**
289
295
  * Base widget configuration
290
296
  */
@@ -302,6 +308,10 @@ interface WidgetConfig {
302
308
  rowSpan: number;
303
309
  /** Whether the widget supports data source configuration dialog */
304
310
  configurable?: boolean;
311
+ /** Hide widget chrome (title bar, border) in view mode */
312
+ chromeless?: boolean;
313
+ /** Which zone this widget is placed in (default: 'grid') */
314
+ zone?: WidgetZone;
305
315
  }
306
316
  /**
307
317
  * Entity Card Widget - displays a single entity like a UML class diagram
@@ -362,6 +372,8 @@ interface KpiWidgetConfig extends WidgetConfig {
362
372
  filters?: WidgetFilterConfig[];
363
373
  /** Static value or variable expression (e.g., '${variableName}') for static data source */
364
374
  staticValue?: string;
375
+ /** Comparison text displayed below the value in trend color (e.g., '+3,1% vs. Vorwoche'). Supports ${variables}. */
376
+ comparisonText?: string;
365
377
  }
366
378
  /**
367
379
  * Sorting configuration for table widget (JSON-compatible)
@@ -395,10 +407,17 @@ interface TableWidgetConfig extends WidgetConfig {
395
407
  pageSize?: number;
396
408
  sortable?: boolean;
397
409
  }
410
+ interface TableColumnStatusIconMapping {
411
+ icon: string;
412
+ tooltip: string;
413
+ color?: string;
414
+ }
398
415
  interface TableColumn {
399
416
  field: string;
400
417
  title: string;
401
418
  width?: number;
419
+ dataType?: string;
420
+ statusMapping?: Record<string, TableColumnStatusIconMapping>;
402
421
  }
403
422
  /**
404
423
  * Gauge types available
@@ -533,6 +552,20 @@ interface BarChartWidgetConfig extends WidgetConfig {
533
552
  showDataLabels?: boolean;
534
553
  /** Field filters for data source */
535
554
  filters?: WidgetFilterConfig[];
555
+ /** Suffix appended to data labels (e.g. ' kW') */
556
+ dataLabelSuffix?: string;
557
+ /** Threshold-based per-bar coloring. Thresholds sorted ascending by value. */
558
+ colorThresholds?: BarChartColorThreshold[];
559
+ /** Default bar color when value exceeds all thresholds */
560
+ defaultBarColor?: string;
561
+ }
562
+ /**
563
+ * Color threshold for conditional bar coloring.
564
+ * Values less than or equal to this threshold get the specified color.
565
+ */
566
+ interface BarChartColorThreshold {
567
+ value: number;
568
+ color: string;
536
569
  }
537
570
  /**
538
571
  * Line chart sub-types
@@ -567,6 +600,23 @@ interface LineChartWidgetConfig extends WidgetConfig {
567
600
  showMarkers?: boolean;
568
601
  /** Field filters for data source */
569
602
  filters?: WidgetFilterConfig[];
603
+ /** Title for the value axis (e.g. 'kW') */
604
+ valueAxisTitle?: string;
605
+ /** Horizontal reference/threshold lines displayed on the value axis */
606
+ referenceLines?: ChartReferenceLine[];
607
+ }
608
+ /**
609
+ * Configuration for a horizontal reference/threshold line on the chart value axis
610
+ */
611
+ interface ChartReferenceLine {
612
+ /** Y-axis value where the line is drawn */
613
+ value: number;
614
+ /** Optional label displayed next to the line */
615
+ label?: string;
616
+ /** CSS color for the line (default: '#ef4444') */
617
+ color?: string;
618
+ /** Opacity 0-1 (default: 0.8) */
619
+ opacity?: number;
570
620
  }
571
621
  /**
572
622
  * Color scheme options for heatmap
@@ -754,8 +804,95 @@ interface MarkdownWidgetConfig extends WidgetConfig {
754
804
  /** Text alignment (default: left) */
755
805
  textAlign?: MarkdownTextAlign;
756
806
  }
807
+ /**
808
+ * Widget that displays a list of items with colored status badges.
809
+ * Typically used for compliance/regulatory status overviews.
810
+ */
811
+ interface StatusListWidgetConfig extends WidgetConfig {
812
+ type: 'statusList';
813
+ /** CK type to query entities from */
814
+ ckTypeId: string;
815
+ /** Attribute path for the item label (e.g. 'name') */
816
+ labelField: string;
817
+ /** Attribute path for the status value (e.g. 'complianceStatus') */
818
+ statusField: string;
819
+ /** Map of status enum values to badge colors and labels */
820
+ statusColors?: Record<string, {
821
+ color: string;
822
+ label?: string;
823
+ }>;
824
+ }
825
+ /**
826
+ * Widget that displays multiple data tiles from different entities/aggregations
827
+ * in a compact card layout. Each tile independently fetches its value.
828
+ */
829
+ interface SummaryCardWidgetConfig extends WidgetConfig {
830
+ type: 'summaryCard';
831
+ /** Layout columns for the tiles grid (default: 2) */
832
+ columns?: number;
833
+ /** Individual data tiles */
834
+ tiles: SummaryCardTile[];
835
+ }
836
+ interface SummaryCardTile {
837
+ id: string;
838
+ label: string;
839
+ prefix?: string;
840
+ suffix?: string;
841
+ color?: 'default' | 'primary' | 'success' | 'warning' | 'error';
842
+ size?: 'normal' | 'full';
843
+ /** Fetch a single attribute from a runtime entity */
844
+ entitySource?: {
845
+ rtId: string;
846
+ ckTypeId: string;
847
+ attributePath: string;
848
+ };
849
+ /** Fetch an aggregated value (count/sum/avg) */
850
+ aggregationSource?: {
851
+ ckTypeId: string;
852
+ aggregation: 'count' | 'sum' | 'avg' | 'min' | 'max';
853
+ attribute?: string;
854
+ filters?: WidgetFilterConfig[];
855
+ };
856
+ }
857
+ interface AlertBannerWidgetConfig extends WidgetConfig {
858
+ type: 'alertBanner';
859
+ /** CK type to query (default: System.Notification/StatefulEvent) */
860
+ ckTypeId?: string;
861
+ /** Rotation interval in ms (default: 5000) */
862
+ rotationInterval?: number;
863
+ /** Show severity icon (default: true) */
864
+ showIcon?: boolean;
865
+ /** Max alerts to fetch (default: 20) */
866
+ maxAlerts?: number;
867
+ }
868
+ interface AlertListWidgetConfig extends WidgetConfig {
869
+ type: 'alertList';
870
+ /** CK type to query (default: System.Notification/StatefulEvent) */
871
+ ckTypeId?: string;
872
+ /** Show timestamp column (default: true) */
873
+ showTimestamp?: boolean;
874
+ /** Sort by severity descending (default: true) */
875
+ sortBySeverity?: boolean;
876
+ /** Max alerts to fetch (default: 50) */
877
+ maxAlerts?: number;
878
+ }
879
+ interface AiInsightsWidgetConfig extends WidgetConfig {
880
+ type: 'aiInsights';
881
+ /** Anthropic API key (demo only - use backend proxy in production) */
882
+ apiKey?: string;
883
+ /** Claude model (default: claude-sonnet-4-20250514) */
884
+ model?: string;
885
+ /** Custom system prompt override */
886
+ systemPrompt?: string;
887
+ /** Auto-refresh interval in seconds (0 = disabled, default: 0) */
888
+ refreshInterval?: number;
889
+ /** Max insights to generate (default: 4) */
890
+ maxInsights?: number;
891
+ /** Domain context hint (default: energy management) */
892
+ domainContext?: string;
893
+ }
757
894
 
758
- type AnyWidgetConfig = EntityCardWidgetConfig | EntityWithAssociationsWidgetConfig | KpiWidgetConfig | TableWidgetConfig | GaugeWidgetConfig | PieChartWidgetConfig | BarChartWidgetConfig | LineChartWidgetConfig | HeatmapWidgetConfig | StatsGridWidgetConfig | StatusIndicatorWidgetConfig | ServiceHealthWidgetConfig | ProcessWidgetConfig | WidgetGroupConfig | MarkdownWidgetConfig;
895
+ type AnyWidgetConfig = EntityCardWidgetConfig | EntityWithAssociationsWidgetConfig | KpiWidgetConfig | TableWidgetConfig | GaugeWidgetConfig | PieChartWidgetConfig | BarChartWidgetConfig | LineChartWidgetConfig | HeatmapWidgetConfig | StatsGridWidgetConfig | StatusIndicatorWidgetConfig | ServiceHealthWidgetConfig | ProcessWidgetConfig | WidgetGroupConfig | MarkdownWidgetConfig | StatusListWidgetConfig | SummaryCardWidgetConfig | AlertBannerWidgetConfig | AlertListWidgetConfig | AiInsightsWidgetConfig;
759
896
  /**
760
897
  * Supported variable types
761
898
  */
@@ -1741,6 +1878,8 @@ interface BaseWidgetConfig {
1741
1878
  colSpan: number;
1742
1879
  rowSpan: number;
1743
1880
  configurable?: boolean;
1881
+ chromeless?: boolean;
1882
+ zone?: WidgetZone;
1744
1883
  }
1745
1884
  /**
1746
1885
  * Persisted widget data from the backend.
@@ -2220,6 +2359,7 @@ declare class KpiWidgetComponent implements DashboardWidget<KpiWidgetConfig, Run
2220
2359
  readonly label: _angular_core.Signal<string>;
2221
2360
  readonly trendIcon: _angular_core.Signal<_progress_kendo_svg_icons.SVGIcon>;
2222
2361
  readonly trendClass: _angular_core.Signal<"trend-up" | "trend-down" | "trend-neutral">;
2362
+ readonly comparisonText: _angular_core.Signal<string | null>;
2223
2363
  ngOnInit(): void;
2224
2364
  ngOnChanges(changes: SimpleChanges): void;
2225
2365
  refresh(): void;
@@ -2267,6 +2407,7 @@ interface KpiConfigResult extends WidgetConfigResult {
2267
2407
  prefix?: string;
2268
2408
  suffix?: string;
2269
2409
  trend?: 'up' | 'down' | 'neutral';
2410
+ comparisonText?: string;
2270
2411
  filters?: FieldFilterDto[];
2271
2412
  }
2272
2413
  interface TrendOption {
@@ -2294,6 +2435,7 @@ declare class KpiConfigDialogComponent implements OnInit {
2294
2435
  initialPrefix?: string;
2295
2436
  initialSuffix?: string;
2296
2437
  initialTrend?: 'up' | 'down' | 'neutral';
2438
+ initialComparisonText?: string;
2297
2439
  initialDataSourceType?: KpiDataSourceType;
2298
2440
  initialQueryRtId?: string;
2299
2441
  initialQueryName?: string;
@@ -2328,6 +2470,7 @@ declare class KpiConfigDialogComponent implements OnInit {
2328
2470
  prefix: string;
2329
2471
  suffix: string;
2330
2472
  trend: "up" | "down" | "neutral" | undefined;
2473
+ comparisonText: string;
2331
2474
  queryValueField: string;
2332
2475
  queryCategoryField: string;
2333
2476
  queryCategoryValue: string;
@@ -2363,7 +2506,7 @@ declare class KpiConfigDialogComponent implements OnInit {
2363
2506
  private sanitizeFieldName;
2364
2507
  onFiltersChange(updatedFilters: FieldFilterItem[]): void;
2365
2508
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<KpiConfigDialogComponent, never>;
2366
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<KpiConfigDialogComponent, "mm-kpi-config-dialog", never, { "initialCkTypeId": { "alias": "initialCkTypeId"; "required": false; }; "initialRtId": { "alias": "initialRtId"; "required": false; }; "initialValueAttribute": { "alias": "initialValueAttribute"; "required": false; }; "initialLabelAttribute": { "alias": "initialLabelAttribute"; "required": false; }; "initialPrefix": { "alias": "initialPrefix"; "required": false; }; "initialSuffix": { "alias": "initialSuffix"; "required": false; }; "initialTrend": { "alias": "initialTrend"; "required": false; }; "initialDataSourceType": { "alias": "initialDataSourceType"; "required": false; }; "initialQueryRtId": { "alias": "initialQueryRtId"; "required": false; }; "initialQueryName": { "alias": "initialQueryName"; "required": false; }; "initialQueryMode": { "alias": "initialQueryMode"; "required": false; }; "initialQueryValueField": { "alias": "initialQueryValueField"; "required": false; }; "initialQueryCategoryField": { "alias": "initialQueryCategoryField"; "required": false; }; "initialQueryCategoryValue": { "alias": "initialQueryCategoryValue"; "required": false; }; "initialStaticValue": { "alias": "initialStaticValue"; "required": false; }; "initialFilters": { "alias": "initialFilters"; "required": false; }; }, {}, never, never, true, never>;
2509
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<KpiConfigDialogComponent, "mm-kpi-config-dialog", never, { "initialCkTypeId": { "alias": "initialCkTypeId"; "required": false; }; "initialRtId": { "alias": "initialRtId"; "required": false; }; "initialValueAttribute": { "alias": "initialValueAttribute"; "required": false; }; "initialLabelAttribute": { "alias": "initialLabelAttribute"; "required": false; }; "initialPrefix": { "alias": "initialPrefix"; "required": false; }; "initialSuffix": { "alias": "initialSuffix"; "required": false; }; "initialTrend": { "alias": "initialTrend"; "required": false; }; "initialComparisonText": { "alias": "initialComparisonText"; "required": false; }; "initialDataSourceType": { "alias": "initialDataSourceType"; "required": false; }; "initialQueryRtId": { "alias": "initialQueryRtId"; "required": false; }; "initialQueryName": { "alias": "initialQueryName"; "required": false; }; "initialQueryMode": { "alias": "initialQueryMode"; "required": false; }; "initialQueryValueField": { "alias": "initialQueryValueField"; "required": false; }; "initialQueryCategoryField": { "alias": "initialQueryCategoryField"; "required": false; }; "initialQueryCategoryValue": { "alias": "initialQueryCategoryValue"; "required": false; }; "initialStaticValue": { "alias": "initialStaticValue"; "required": false; }; "initialFilters": { "alias": "initialFilters"; "required": false; }; }, {}, never, never, true, never>;
2367
2510
  }
2368
2511
 
2369
2512
  interface GroupedAssociation {
@@ -3149,7 +3292,7 @@ declare class PieChartConfigDialogComponent implements OnInit, AfterViewInit {
3149
3292
  */
3150
3293
  interface SeriesData {
3151
3294
  name: string;
3152
- data: number[];
3295
+ data: unknown[];
3153
3296
  color?: string;
3154
3297
  }
3155
3298
  declare class BarChartWidgetComponent implements DashboardWidget<BarChartWidgetConfig, SeriesData[]>, OnInit, OnChanges {
@@ -3220,6 +3363,11 @@ declare class BarChartWidgetComponent implements DashboardWidget<BarChartWidgetC
3220
3363
  * Sanitizes field names for comparison.
3221
3364
  * Replaces dots with underscores (same as table widget).
3222
3365
  */
3366
+ readonly dataLabelFormat: _angular_core.Signal<string>;
3367
+ hasColorThresholds(): boolean;
3368
+ private applyColorThresholds;
3369
+ private getColorForValue;
3370
+ private formatCategoryValue;
3223
3371
  private sanitizeFieldName;
3224
3372
  /**
3225
3373
  * Converts widget filter configuration to GraphQL FieldFilterDto format.
@@ -3251,6 +3399,8 @@ interface BarChartConfigResult extends WidgetConfigResult {
3251
3399
  legendPosition: 'top' | 'bottom' | 'left' | 'right';
3252
3400
  showDataLabels: boolean;
3253
3401
  filters?: FieldFilterDto[];
3402
+ colorThresholds?: BarChartColorThreshold[];
3403
+ defaultBarColor?: string;
3254
3404
  }
3255
3405
  /**
3256
3406
  * Configuration dialog for Bar Chart widgets.
@@ -3271,6 +3421,8 @@ declare class BarChartConfigDialogComponent implements OnInit {
3271
3421
  initialShowLegend?: boolean;
3272
3422
  initialLegendPosition?: 'top' | 'bottom' | 'left' | 'right';
3273
3423
  initialShowDataLabels?: boolean;
3424
+ initialColorThresholds?: BarChartColorThreshold[];
3425
+ initialDefaultBarColor?: string;
3274
3426
  initialFilters?: WidgetFilterConfig[];
3275
3427
  isLoadingInitial: boolean;
3276
3428
  isLoadingColumns: boolean;
@@ -3298,6 +3450,8 @@ declare class BarChartConfigDialogComponent implements OnInit {
3298
3450
  showLegend: boolean;
3299
3451
  legendPosition: "top" | "bottom" | "left" | "right";
3300
3452
  showDataLabels: boolean;
3453
+ colorThresholds: BarChartColorThreshold[];
3454
+ defaultBarColor: string;
3301
3455
  };
3302
3456
  get isValid(): boolean;
3303
3457
  ngOnInit(): Promise<void>;
@@ -3307,9 +3461,11 @@ declare class BarChartConfigDialogComponent implements OnInit {
3307
3461
  onSeriesFieldsChange(fields: string[]): void;
3308
3462
  onFiltersChange(updatedFilters: FieldFilterItem[]): void;
3309
3463
  onSave(): void;
3464
+ addColorThreshold(): void;
3465
+ removeColorThreshold(index: number): void;
3310
3466
  onCancel(): void;
3311
3467
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<BarChartConfigDialogComponent, never>;
3312
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<BarChartConfigDialogComponent, "mm-bar-chart-config-dialog", never, { "initialQueryRtId": { "alias": "initialQueryRtId"; "required": false; }; "initialQueryName": { "alias": "initialQueryName"; "required": false; }; "initialChartType": { "alias": "initialChartType"; "required": false; }; "initialCategoryField": { "alias": "initialCategoryField"; "required": false; }; "initialSeries": { "alias": "initialSeries"; "required": false; }; "initialSeriesGroupField": { "alias": "initialSeriesGroupField"; "required": false; }; "initialValueField": { "alias": "initialValueField"; "required": false; }; "initialShowLegend": { "alias": "initialShowLegend"; "required": false; }; "initialLegendPosition": { "alias": "initialLegendPosition"; "required": false; }; "initialShowDataLabels": { "alias": "initialShowDataLabels"; "required": false; }; "initialFilters": { "alias": "initialFilters"; "required": false; }; }, {}, never, never, true, never>;
3468
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<BarChartConfigDialogComponent, "mm-bar-chart-config-dialog", never, { "initialQueryRtId": { "alias": "initialQueryRtId"; "required": false; }; "initialQueryName": { "alias": "initialQueryName"; "required": false; }; "initialChartType": { "alias": "initialChartType"; "required": false; }; "initialCategoryField": { "alias": "initialCategoryField"; "required": false; }; "initialSeries": { "alias": "initialSeries"; "required": false; }; "initialSeriesGroupField": { "alias": "initialSeriesGroupField"; "required": false; }; "initialValueField": { "alias": "initialValueField"; "required": false; }; "initialShowLegend": { "alias": "initialShowLegend"; "required": false; }; "initialLegendPosition": { "alias": "initialLegendPosition"; "required": false; }; "initialShowDataLabels": { "alias": "initialShowDataLabels"; "required": false; }; "initialColorThresholds": { "alias": "initialColorThresholds"; "required": false; }; "initialDefaultBarColor": { "alias": "initialDefaultBarColor"; "required": false; }; "initialFilters": { "alias": "initialFilters"; "required": false; }; }, {}, never, never, true, never>;
3313
3469
  }
3314
3470
 
3315
3471
  /**
@@ -3346,6 +3502,25 @@ declare class LineChartWidgetComponent implements DashboardWidget<LineChartWidge
3346
3502
  readonly valueAxes: _angular_core.Signal<ValueAxisConfig[]>;
3347
3503
  readonly error: _angular_core.Signal<string | null>;
3348
3504
  readonly data: _angular_core.Signal<LineSeriesData[]>;
3505
+ readonly plotBands: _angular_core.Signal<{
3506
+ from: number;
3507
+ to: number;
3508
+ color: string;
3509
+ opacity: number;
3510
+ label: {
3511
+ text: string;
3512
+ position: "top";
3513
+ align: "right";
3514
+ color: string;
3515
+ font: string;
3516
+ padding: {
3517
+ top: number;
3518
+ right: number;
3519
+ bottom: number;
3520
+ left: number;
3521
+ };
3522
+ } | undefined;
3523
+ }[]>;
3349
3524
  readonly chartType: _angular_core.Signal<"line" | "area">;
3350
3525
  readonly labelRotation: _angular_core.Signal<0 | -45>;
3351
3526
  /**
@@ -3399,6 +3574,7 @@ interface LineChartConfigResult extends WidgetConfigResult {
3399
3574
  legendPosition: 'top' | 'bottom' | 'left' | 'right';
3400
3575
  showMarkers: boolean;
3401
3576
  filters?: FieldFilterDto[];
3577
+ referenceLines?: ChartReferenceLine[];
3402
3578
  }
3403
3579
  /**
3404
3580
  * Configuration dialog for Line Chart widgets.
@@ -3419,6 +3595,7 @@ declare class LineChartConfigDialogComponent implements OnInit {
3419
3595
  initialShowLegend?: boolean;
3420
3596
  initialLegendPosition?: 'top' | 'bottom' | 'left' | 'right';
3421
3597
  initialShowMarkers?: boolean;
3598
+ initialReferenceLines?: ChartReferenceLine[];
3422
3599
  initialFilters?: WidgetFilterConfig[];
3423
3600
  isLoadingInitial: boolean;
3424
3601
  isLoadingColumns: boolean;
@@ -3441,6 +3618,7 @@ declare class LineChartConfigDialogComponent implements OnInit {
3441
3618
  showLegend: boolean;
3442
3619
  legendPosition: "top" | "bottom" | "left" | "right";
3443
3620
  showMarkers: boolean;
3621
+ referenceLines: ChartReferenceLine[];
3444
3622
  };
3445
3623
  get isValid(): boolean;
3446
3624
  ngOnInit(): Promise<void>;
@@ -3449,9 +3627,11 @@ declare class LineChartConfigDialogComponent implements OnInit {
3449
3627
  private sanitizeFieldName;
3450
3628
  onFiltersChange(updatedFilters: FieldFilterItem[]): void;
3451
3629
  onSave(): void;
3630
+ addReferenceLine(): void;
3631
+ removeReferenceLine(index: number): void;
3452
3632
  onCancel(): void;
3453
3633
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<LineChartConfigDialogComponent, never>;
3454
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<LineChartConfigDialogComponent, "mm-line-chart-config-dialog", never, { "initialQueryRtId": { "alias": "initialQueryRtId"; "required": false; }; "initialQueryName": { "alias": "initialQueryName"; "required": false; }; "initialChartType": { "alias": "initialChartType"; "required": false; }; "initialCategoryField": { "alias": "initialCategoryField"; "required": false; }; "initialSeriesGroupField": { "alias": "initialSeriesGroupField"; "required": false; }; "initialValueField": { "alias": "initialValueField"; "required": false; }; "initialUnitField": { "alias": "initialUnitField"; "required": false; }; "initialShowLegend": { "alias": "initialShowLegend"; "required": false; }; "initialLegendPosition": { "alias": "initialLegendPosition"; "required": false; }; "initialShowMarkers": { "alias": "initialShowMarkers"; "required": false; }; "initialFilters": { "alias": "initialFilters"; "required": false; }; }, {}, never, never, true, never>;
3634
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<LineChartConfigDialogComponent, "mm-line-chart-config-dialog", never, { "initialQueryRtId": { "alias": "initialQueryRtId"; "required": false; }; "initialQueryName": { "alias": "initialQueryName"; "required": false; }; "initialChartType": { "alias": "initialChartType"; "required": false; }; "initialCategoryField": { "alias": "initialCategoryField"; "required": false; }; "initialSeriesGroupField": { "alias": "initialSeriesGroupField"; "required": false; }; "initialValueField": { "alias": "initialValueField"; "required": false; }; "initialUnitField": { "alias": "initialUnitField"; "required": false; }; "initialShowLegend": { "alias": "initialShowLegend"; "required": false; }; "initialLegendPosition": { "alias": "initialLegendPosition"; "required": false; }; "initialShowMarkers": { "alias": "initialShowMarkers"; "required": false; }; "initialReferenceLines": { "alias": "initialReferenceLines"; "required": false; }; "initialFilters": { "alias": "initialFilters"; "required": false; }; }, {}, never, never, true, never>;
3455
3635
  }
3456
3636
 
3457
3637
  /**
@@ -4085,6 +4265,325 @@ declare class MarkdownConfigDialogComponent implements OnInit {
4085
4265
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<MarkdownConfigDialogComponent, "mm-markdown-config-dialog", never, { "initialContent": { "alias": "initialContent"; "required": false; }; "initialResolveVariables": { "alias": "initialResolveVariables"; "required": false; }; "initialPadding": { "alias": "initialPadding"; "required": false; }; "initialTextAlign": { "alias": "initialTextAlign"; "required": false; }; }, {}, never, never, true, never>;
4086
4266
  }
4087
4267
 
4268
+ interface StatusListItem {
4269
+ label: string;
4270
+ status: string;
4271
+ color: string;
4272
+ displayLabel: string;
4273
+ }
4274
+ declare class StatusListWidgetComponent implements DashboardWidget<StatusListWidgetConfig, StatusListItem[]>, OnInit, OnChanges {
4275
+ private readonly getEntitiesByCkTypeGQL;
4276
+ config: StatusListWidgetConfig;
4277
+ private readonly _isLoading;
4278
+ private readonly _error;
4279
+ private readonly _items;
4280
+ readonly isLoading: _angular_core.Signal<boolean>;
4281
+ readonly error: _angular_core.Signal<string | null>;
4282
+ readonly data: _angular_core.Signal<StatusListItem[]>;
4283
+ readonly items: _angular_core.Signal<StatusListItem[]>;
4284
+ isNotConfigured(): boolean;
4285
+ ngOnInit(): void;
4286
+ ngOnChanges(changes: SimpleChanges): void;
4287
+ refresh(): void;
4288
+ private loadData;
4289
+ private getAttributeValue;
4290
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<StatusListWidgetComponent, never>;
4291
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<StatusListWidgetComponent, "mm-status-list-widget", never, { "config": { "alias": "config"; "required": false; }; }, {}, never, never, true, never>;
4292
+ }
4293
+
4294
+ interface StatusListConfigResult extends WidgetConfigResult {
4295
+ ckTypeId: string;
4296
+ labelField: string;
4297
+ statusField: string;
4298
+ statusColors?: Record<string, {
4299
+ color: string;
4300
+ label?: string;
4301
+ }>;
4302
+ }
4303
+ declare class StatusListConfigDialogComponent implements OnInit {
4304
+ private readonly windowRef;
4305
+ initialCkTypeId?: string;
4306
+ initialLabelField?: string;
4307
+ initialStatusField?: string;
4308
+ initialStatusColors?: Record<string, {
4309
+ color: string;
4310
+ label?: string;
4311
+ }>;
4312
+ form: {
4313
+ ckTypeId: string;
4314
+ labelField: string;
4315
+ statusField: string;
4316
+ };
4317
+ statusColorEntries: {
4318
+ key: string;
4319
+ color: string;
4320
+ label: string;
4321
+ }[];
4322
+ get isValid(): boolean;
4323
+ ngOnInit(): void;
4324
+ addStatusColor(): void;
4325
+ removeStatusColor(index: number): void;
4326
+ onSave(): void;
4327
+ onCancel(): void;
4328
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<StatusListConfigDialogComponent, never>;
4329
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<StatusListConfigDialogComponent, "mm-status-list-config-dialog", never, { "initialCkTypeId": { "alias": "initialCkTypeId"; "required": false; }; "initialLabelField": { "alias": "initialLabelField"; "required": false; }; "initialStatusField": { "alias": "initialStatusField"; "required": false; }; "initialStatusColors": { "alias": "initialStatusColors"; "required": false; }; }, {}, never, never, true, never>;
4330
+ }
4331
+
4332
+ interface TileValue {
4333
+ id: string;
4334
+ label: string;
4335
+ value: string;
4336
+ prefix: string;
4337
+ suffix: string;
4338
+ color: string;
4339
+ fullWidth: boolean;
4340
+ }
4341
+ declare class SummaryCardWidgetComponent implements DashboardWidget<SummaryCardWidgetConfig, TileValue[]>, OnInit, OnChanges {
4342
+ private readonly entityGQL;
4343
+ private readonly dataService;
4344
+ config: SummaryCardWidgetConfig;
4345
+ private readonly _isLoading;
4346
+ private readonly _error;
4347
+ private readonly _tileValues;
4348
+ readonly isLoading: _angular_core.Signal<boolean>;
4349
+ readonly error: _angular_core.Signal<string | null>;
4350
+ readonly data: _angular_core.Signal<TileValue[]>;
4351
+ readonly tileValues: _angular_core.Signal<TileValue[]>;
4352
+ isNotConfigured(): boolean;
4353
+ ngOnInit(): void;
4354
+ ngOnChanges(changes: SimpleChanges): void;
4355
+ refresh(): void;
4356
+ private loadData;
4357
+ private fetchTileValue;
4358
+ private fetchEntityAttributes;
4359
+ private formatValue;
4360
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SummaryCardWidgetComponent, never>;
4361
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SummaryCardWidgetComponent, "mm-summary-card-widget", never, { "config": { "alias": "config"; "required": false; }; }, {}, never, never, true, never>;
4362
+ }
4363
+
4364
+ interface SummaryCardConfigResult extends WidgetConfigResult {
4365
+ columns: number;
4366
+ tiles: SummaryCardTile[];
4367
+ }
4368
+ interface EditableTile {
4369
+ id: string;
4370
+ label: string;
4371
+ prefix: string;
4372
+ suffix: string;
4373
+ color: string;
4374
+ size: string;
4375
+ sourceType: 'entity' | 'aggregation';
4376
+ rtId: string;
4377
+ ckTypeId: string;
4378
+ attributePath: string;
4379
+ aggregation: string;
4380
+ aggAttribute: string;
4381
+ }
4382
+ declare class SummaryCardConfigDialogComponent implements OnInit {
4383
+ private readonly windowRef;
4384
+ initialColumns?: number;
4385
+ initialTiles?: SummaryCardTile[];
4386
+ form: {
4387
+ columns: number;
4388
+ tiles: EditableTile[];
4389
+ };
4390
+ colorOptions: string[];
4391
+ sizeOptions: string[];
4392
+ sourceTypeOptions: string[];
4393
+ aggregationOptions: string[];
4394
+ get isValid(): boolean;
4395
+ ngOnInit(): void;
4396
+ addTile(): void;
4397
+ removeTile(index: number): void;
4398
+ onSave(): void;
4399
+ onCancel(): void;
4400
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SummaryCardConfigDialogComponent, never>;
4401
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SummaryCardConfigDialogComponent, "mm-summary-card-config-dialog", never, { "initialColumns": { "alias": "initialColumns"; "required": false; }; "initialTiles": { "alias": "initialTiles"; "required": false; }; }, {}, never, never, true, never>;
4402
+ }
4403
+
4404
+ interface AlertItem {
4405
+ rtId: string;
4406
+ message: string;
4407
+ level: string;
4408
+ state: string;
4409
+ source: string;
4410
+ timestamp?: string;
4411
+ }
4412
+
4413
+ declare class AlertBannerWidgetComponent implements DashboardWidget<AlertBannerWidgetConfig, AlertItem[]>, OnInit, OnChanges, OnDestroy {
4414
+ private readonly getEntitiesByCkTypeGQL;
4415
+ private rotationTimer;
4416
+ config: AlertBannerWidgetConfig;
4417
+ private readonly _isLoading;
4418
+ private readonly _error;
4419
+ private readonly _items;
4420
+ private readonly _currentIndex;
4421
+ readonly isLoading: _angular_core.Signal<boolean>;
4422
+ readonly error: _angular_core.Signal<string | null>;
4423
+ readonly data: _angular_core.Signal<AlertItem[]>;
4424
+ readonly items: _angular_core.Signal<AlertItem[]>;
4425
+ readonly currentIndex: _angular_core.Signal<number>;
4426
+ readonly currentAlert: _angular_core.Signal<AlertItem | null>;
4427
+ readonly currentColor: _angular_core.Signal<string>;
4428
+ readonly currentIcon: _angular_core.Signal<_progress_kendo_svg_icons.SVGIcon>;
4429
+ isNotConfigured(): boolean;
4430
+ ngOnInit(): void;
4431
+ ngOnChanges(changes: SimpleChanges): void;
4432
+ ngOnDestroy(): void;
4433
+ refresh(): void;
4434
+ private startRotation;
4435
+ private stopRotation;
4436
+ private loadData;
4437
+ private getAttr;
4438
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AlertBannerWidgetComponent, never>;
4439
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AlertBannerWidgetComponent, "mm-alert-banner-widget", never, { "config": { "alias": "config"; "required": false; }; }, {}, never, never, true, never>;
4440
+ }
4441
+
4442
+ interface AlertBannerConfigResult {
4443
+ ckTypeId: string;
4444
+ rotationInterval: number;
4445
+ showIcon: boolean;
4446
+ maxAlerts: number;
4447
+ }
4448
+ declare class AlertBannerConfigDialogComponent {
4449
+ private readonly windowRef;
4450
+ ckTypeId: string;
4451
+ rotationInterval: number;
4452
+ showIcon: boolean;
4453
+ maxAlerts: number;
4454
+ onSave(): void;
4455
+ onCancel(): void;
4456
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AlertBannerConfigDialogComponent, never>;
4457
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AlertBannerConfigDialogComponent, "mm-alert-banner-config-dialog", never, {}, {}, never, never, true, never>;
4458
+ }
4459
+
4460
+ declare class AlertListWidgetComponent implements DashboardWidget<AlertListWidgetConfig, AlertItem[]>, OnInit, OnChanges {
4461
+ private readonly getEntitiesByCkTypeGQL;
4462
+ config: AlertListWidgetConfig;
4463
+ private readonly _isLoading;
4464
+ private readonly _error;
4465
+ private readonly _items;
4466
+ readonly isLoading: _angular_core.Signal<boolean>;
4467
+ readonly error: _angular_core.Signal<string | null>;
4468
+ readonly data: _angular_core.Signal<AlertItem[]>;
4469
+ readonly items: _angular_core.Signal<AlertItem[]>;
4470
+ isNotConfigured(): boolean;
4471
+ ngOnInit(): void;
4472
+ ngOnChanges(changes: SimpleChanges): void;
4473
+ refresh(): void;
4474
+ protected getColor(level: string): string;
4475
+ protected getIcon(level: string): _progress_kendo_svg_icons.SVGIcon;
4476
+ protected formatTime(timestamp: string): string;
4477
+ private loadData;
4478
+ private getAttr;
4479
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AlertListWidgetComponent, never>;
4480
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AlertListWidgetComponent, "mm-alert-list-widget", never, { "config": { "alias": "config"; "required": false; }; }, {}, never, never, true, never>;
4481
+ }
4482
+
4483
+ interface AlertListConfigResult {
4484
+ ckTypeId: string;
4485
+ showTimestamp: boolean;
4486
+ sortBySeverity: boolean;
4487
+ maxAlerts: number;
4488
+ }
4489
+ declare class AlertListConfigDialogComponent {
4490
+ private readonly windowRef;
4491
+ ckTypeId: string;
4492
+ showTimestamp: boolean;
4493
+ sortBySeverity: boolean;
4494
+ maxAlerts: number;
4495
+ onSave(): void;
4496
+ onCancel(): void;
4497
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AlertListConfigDialogComponent, never>;
4498
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AlertListConfigDialogComponent, "mm-alert-list-config-dialog", never, {}, {}, never, never, true, never>;
4499
+ }
4500
+
4501
+ interface AiInsight {
4502
+ title: string;
4503
+ description: string;
4504
+ severity: 'info' | 'warning' | 'success' | 'critical';
4505
+ }
4506
+ interface AiInsightContext {
4507
+ apiKey?: string;
4508
+ model?: string;
4509
+ systemPrompt?: string;
4510
+ maxInsights?: number;
4511
+ domainContext?: string;
4512
+ widgetSummaries: WidgetContextSummary[];
4513
+ }
4514
+ interface WidgetContextSummary {
4515
+ title: string;
4516
+ type: string;
4517
+ dataPoints: {
4518
+ label: string;
4519
+ value: string;
4520
+ }[];
4521
+ }
4522
+ declare class AiInsightsService {
4523
+ generateInsights(context: AiInsightContext): Promise<AiInsight[]>;
4524
+ gatherWidgetContext(widgets: AnyWidgetConfig[]): WidgetContextSummary[];
4525
+ private extractWidgetSummary;
4526
+ private callClaudeApi;
4527
+ private buildDefaultSystemPrompt;
4528
+ private buildUserMessage;
4529
+ private parseInsightsFromResponse;
4530
+ private getSimulatedInsights;
4531
+ private fallbackInsights;
4532
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AiInsightsService, never>;
4533
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<AiInsightsService>;
4534
+ }
4535
+
4536
+ declare class AiInsightsWidgetComponent implements DashboardWidget<AiInsightsWidgetConfig, AiInsight[]>, OnInit, OnChanges, OnDestroy {
4537
+ private readonly aiService;
4538
+ private readonly stateService;
4539
+ private refreshTimer;
4540
+ protected readonly infoIcon: _progress_kendo_svg_icons.SVGIcon;
4541
+ protected readonly warningIcon: _progress_kendo_svg_icons.SVGIcon;
4542
+ protected readonly successIcon: _progress_kendo_svg_icons.SVGIcon;
4543
+ protected readonly criticalIcon: _progress_kendo_svg_icons.SVGIcon;
4544
+ config: AiInsightsWidgetConfig;
4545
+ private readonly _isLoading;
4546
+ private readonly _error;
4547
+ private readonly _insights;
4548
+ readonly isLoading: _angular_core.Signal<boolean>;
4549
+ readonly error: _angular_core.Signal<string | null>;
4550
+ readonly data: _angular_core.Signal<AiInsight[] | null>;
4551
+ readonly insights: _angular_core.Signal<AiInsight[] | null>;
4552
+ isNotConfigured(): boolean;
4553
+ ngOnInit(): void;
4554
+ ngOnChanges(changes: SimpleChanges): void;
4555
+ ngOnDestroy(): void;
4556
+ refresh(): void;
4557
+ protected getIcon(severity: string): _progress_kendo_svg_icons.SVGIcon;
4558
+ private loadInsights;
4559
+ private startAutoRefresh;
4560
+ private stopAutoRefresh;
4561
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AiInsightsWidgetComponent, never>;
4562
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AiInsightsWidgetComponent, "mm-ai-insights-widget", never, { "config": { "alias": "config"; "required": false; }; }, {}, never, never, true, never>;
4563
+ }
4564
+
4565
+ interface AiInsightsConfigResult {
4566
+ ckTypeId: string;
4567
+ apiKey?: string;
4568
+ model?: string;
4569
+ systemPrompt?: string;
4570
+ refreshInterval?: number;
4571
+ maxInsights?: number;
4572
+ domainContext?: string;
4573
+ }
4574
+ declare class AiInsightsConfigDialogComponent {
4575
+ private readonly windowRef;
4576
+ apiKey: string;
4577
+ model: string;
4578
+ domainContext: string;
4579
+ refreshInterval: number;
4580
+ maxInsights: number;
4581
+ onSave(): void;
4582
+ onCancel(): void;
4583
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AiInsightsConfigDialogComponent, never>;
4584
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AiInsightsConfigDialogComponent, "mm-ai-insights-config-dialog", never, {}, {}, never, never, true, never>;
4585
+ }
4586
+
4088
4587
  /**
4089
4588
  * Process Widget Registration
4090
4589
  *
@@ -4386,6 +4885,12 @@ interface WidgetPositionUpdate {
4386
4885
  row: number;
4387
4886
  colSpan: number;
4388
4887
  rowSpan: number;
4888
+ chromeless?: boolean;
4889
+ zone?: WidgetZone;
4890
+ }
4891
+ interface ZoneOption {
4892
+ text: string;
4893
+ value: WidgetZone;
4389
4894
  }
4390
4895
  declare class EditWidgetDialogComponent implements OnInit {
4391
4896
  widget: AnyWidgetConfig;
@@ -4394,9 +4899,12 @@ declare class EditWidgetDialogComponent implements OnInit {
4394
4899
  gridService: MeshBoardGridService;
4395
4900
  save: EventEmitter<WidgetPositionUpdate>;
4396
4901
  cancelled: EventEmitter<void>;
4902
+ readonly zoneOptions: ZoneOption[];
4903
+ selectedZoneOption: ZoneOption;
4397
4904
  form: WidgetPositionUpdate;
4398
4905
  error: string;
4399
4906
  ngOnInit(): void;
4907
+ onZoneChange(option: ZoneOption): void;
4400
4908
  onSave(): void;
4401
4909
  onCancel(): void;
4402
4910
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<EditWidgetDialogComponent, never>;
@@ -4436,6 +4944,9 @@ declare class MeshBoardViewComponent implements OnInit, OnDestroy, HasUnsavedCha
4436
4944
  protected readonly undoIcon: _progress_kendo_svg_icons.SVGIcon;
4437
4945
  protected readonly copyIcon: _progress_kendo_svg_icons.SVGIcon;
4438
4946
  protected readonly infoCircleIcon: _progress_kendo_svg_icons.SVGIcon;
4947
+ protected readonly arrowUpIcon: _progress_kendo_svg_icons.SVGIcon;
4948
+ protected readonly arrowDownIcon: _progress_kendo_svg_icons.SVGIcon;
4949
+ private tileLayout?;
4439
4950
  protected showEditWidgetDialog: boolean;
4440
4951
  protected editingWidget: AnyWidgetConfig | null;
4441
4952
  private configDialogSubscription;
@@ -4456,6 +4967,9 @@ declare class MeshBoardViewComponent implements OnInit, OnDestroy, HasUnsavedCha
4456
4967
  protected readonly timeRangeLabels: _angular_core.WritableSignal<TimeRangePickerLabels>;
4457
4968
  protected readonly meshBoardPageLink: _angular_core.Signal<string>;
4458
4969
  protected readonly hasWidgets: _angular_core.Signal<boolean>;
4970
+ protected readonly bannerWidgets: _angular_core.Signal<AnyWidgetConfig[]>;
4971
+ protected readonly gridWidgets: _angular_core.Signal<AnyWidgetConfig[]>;
4972
+ protected readonly hasGridWidgets: _angular_core.Signal<boolean>;
4459
4973
  protected readonly canSave: _angular_core.Signal<boolean>;
4460
4974
  protected readonly isTimeFilterEnabled: _angular_core.Signal<boolean>;
4461
4975
  protected readonly timeFilterConfig: _angular_core.Signal<_meshmakers_octo_meshboard.MeshBoardTimeFilterConfig | undefined>;
@@ -4592,6 +5106,14 @@ declare class MeshBoardViewComponent implements OnInit, OnDestroy, HasUnsavedCha
4592
5106
  * Removes a widget from the MeshBoard.
4593
5107
  */
4594
5108
  removeWidget(widgetId: string): void;
5109
+ /**
5110
+ * Moves a banner widget up (earlier) in the widgets array.
5111
+ */
5112
+ moveBannerUp(widgetId: string): void;
5113
+ /**
5114
+ * Moves a banner widget down (later) in the widgets array.
5115
+ */
5116
+ moveBannerDown(widgetId: string): void;
4595
5117
  /**
4596
5118
  * Opens the configuration dialog for a widget.
4597
5119
  * Uses the WidgetRegistryService to open a resizable Kendo Window.
@@ -4604,14 +5126,30 @@ declare class MeshBoardViewComponent implements OnInit, OnDestroy, HasUnsavedCha
4604
5126
  /**
4605
5127
  * Handles TileLayout reorder events.
4606
5128
  */
4607
- onReorder(event: {
4608
- newIndex: number;
4609
- oldIndex: number;
4610
- }): void;
5129
+ onReorder(event: TileLayoutReorderEvent): void;
4611
5130
  /**
4612
5131
  * Handles TileLayout resize events.
4613
5132
  */
4614
5133
  onResize(event: TileLayoutResizeEvent): void;
5134
+ /**
5135
+ * Syncs widget positions from a TileLayout reorder or resize event.
5136
+ *
5137
+ * At event time, the @Input() properties on TileLayoutItemComponent still
5138
+ * hold their old Angular binding values. The only reliable source for the
5139
+ * changed item's new position are the explicit event properties
5140
+ * (newCol/newRow for reorder, newColSpan/newRowSpan for resize).
5141
+ *
5142
+ * After updating the changed item, we schedule a deferred read of all
5143
+ * item positions from the TileLayout ViewChild (after Angular has processed
5144
+ * the change) to pick up any reflow of other widgets.
5145
+ */
5146
+ private syncWidgetPositionsFromEvent;
5147
+ /**
5148
+ * Reads the current col/row/colSpan/rowSpan from all TileLayout items
5149
+ * and updates the widget state accordingly.
5150
+ * Called after Angular change detection so @Input() values are current.
5151
+ */
5152
+ private syncAllWidgetPositionsFromTileLayout;
4615
5153
  /**
4616
5154
  * Track by function for widget rendering.
4617
5155
  */
@@ -4923,5 +5461,5 @@ declare class MeshBoardManagerDialogComponent implements OnInit {
4923
5461
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<MeshBoardManagerDialogComponent, "mm-meshboard-manager-dialog", never, {}, {}, never, never, true, never>;
4924
5462
  }
4925
5463
 
4926
- export { AddWidgetDialogComponent, AssociationsConfigDialogComponent, BarChartConfigDialogComponent, BarChartWidgetComponent, DashboardDataService, DashboardGridService, EditModeStateService, EditWidgetDialogComponent, EntityAssociationsWidgetComponent, EntityCardConfigDialogComponent, EntityCardWidgetComponent, EntityDetailDialogComponent, EntitySelectorEditorComponent, EntitySelectorToolbarComponent, GaugeConfigDialogComponent, GaugeWidgetComponent, HeatmapConfigDialogComponent, HeatmapWidgetComponent, KpiConfigDialogComponent, KpiWidgetComponent, LineChartConfigDialogComponent, LineChartWidgetComponent, MESHBOARD_OPTIONS, MESHBOARD_TENANT_ID_PROVIDER, MarkdownConfigDialogComponent, MarkdownWidgetComponent, MeshBoardDataService, MeshBoardGridService, MeshBoardManagerDialogComponent, MeshBoardPersistenceService, MeshBoardSettingsDialogComponent, MeshBoardSettingsResult, MeshBoardStateService, MeshBoardViewComponent, PieChartConfigDialogComponent, PieChartWidgetComponent, QuerySelectorComponent, RuntimeEntitySelectorComponent, ServiceHealthConfigDialogComponent, ServiceHealthWidgetComponent, StatsGridConfigDialogComponent, StatsGridWidgetComponent, StatusIndicatorConfigDialogComponent, StatusIndicatorWidgetComponent, TableConfigDialogComponent, TableWidgetComponent, TableWidgetDataSourceDirective, WidgetFactoryService, WidgetGroupComponent, WidgetGroupConfigDialogComponent, WidgetNotConfiguredComponent, WidgetRegistryService, provideDefaultWidgets, provideMeshBoard, provideProcessWidget, provideWidgetRegistrations, registerDefaultWidgets, registerProcessWidget };
4927
- export type { AggregationDataSource, AggregationQuery, AggregationType, AnyWidgetConfig, AssociationsConfigResult, BarChartConfigResult, BarChartSeries, BarChartType, BarChartWidgetConfig, BaseWidgetConfig, CategoryValueItem, CkQueryResult, CkQueryTarget, CkTypeAttributeInfo, ConfigDialogResult, ConfigResultApplier, ConstructionKitQueryDataSource, DashboardConfig, DashboardWidget, DataSource, DataSourceType, DiagramPropertyMapping, EntityAssociation, EntityAttribute, EntityCardConfigResult, EntityCardWidgetConfig, EntityListWidget, EntitySelectorAttributeMapping, EntitySelectorClearEvent, EntitySelectorConfig, EntitySelectorEvent, EntityWidget, EntityWithAssociationsWidgetConfig, GaugeConfigResult, GaugeRange, GaugeType, GaugeWidgetConfig, GridCell, GridPosition, GroupChildWidgetType, GroupedDataItem, HeatmapAggregation, HeatmapColorScheme, HeatmapConfigResult, HeatmapWidgetConfig, KpiConfigResult, KpiDataSourceType, KpiQueryMode, KpiWidgetConfig, LineChartConfigResult, LineChartType, LineChartWidgetConfig, MarkdownConfigResult, MarkdownTextAlign, MarkdownWidgetConfig, MeshBoardConfig, MeshBoardOptions, MeshBoardTimeFilterConfig, MeshBoardVariable, MeshBoardVariableSource, MeshBoardVariableType, ParentAssociationMode, PersistedDashboard, PersistedMeshBoard, PersistedWidget, PersistedWidgetData, PersistentQueryDataSource, PersistentQueryItem, PieChartConfigResult, PieChartType, PieChartWidgetConfig, ProcessWidgetConfig, Quarter, QueryColumn, QueryColumnItem, RelativeTimeUnit, RepeaterDataItem, RepeaterQueryDataSource, RuntimeEntityData, RuntimeEntityDataSource, RuntimeEntitySelectorValue, ServiceCallDataSource, ServiceCallType, ServiceHealthConfigResult, ServiceHealthWidgetConfig, StatColor, StatItem, StaticDataSource, StatsGridConfigResult, StatsGridWidgetConfig, StatusIndicatorConfigResult, StatusIndicatorWidgetConfig, TableColumn, TableConfigResult, TableFilterConfig, TableSortConfig, TableWidgetConfig, TargetEntityWithAttributes, TimeRangePickerConfig, TimeRangeSelection, TimeRangeType, UpdateDashboardResult, VariableResolutionError, WidgetConfig, WidgetConfigDialog, WidgetConfigDialogSize, WidgetConfigResult, WidgetCreationOptions, WidgetDataSource, WidgetFilterConfig, WidgetGroupAttributeMappings, WidgetGroupChildTemplate, WidgetGroupConfig, WidgetGroupConfigResult, WidgetGroupLayout, WidgetPersistenceData, WidgetPositionUpdate, WidgetRegistration, WidgetType };
5464
+ export { AddWidgetDialogComponent, AiInsightsConfigDialogComponent, AiInsightsService, AiInsightsWidgetComponent, AlertBannerConfigDialogComponent, AlertBannerWidgetComponent, AlertListConfigDialogComponent, AlertListWidgetComponent, AssociationsConfigDialogComponent, BarChartConfigDialogComponent, BarChartWidgetComponent, DashboardDataService, DashboardGridService, EditModeStateService, EditWidgetDialogComponent, EntityAssociationsWidgetComponent, EntityCardConfigDialogComponent, EntityCardWidgetComponent, EntityDetailDialogComponent, EntitySelectorEditorComponent, EntitySelectorToolbarComponent, GaugeConfigDialogComponent, GaugeWidgetComponent, HeatmapConfigDialogComponent, HeatmapWidgetComponent, KpiConfigDialogComponent, KpiWidgetComponent, LineChartConfigDialogComponent, LineChartWidgetComponent, MESHBOARD_OPTIONS, MESHBOARD_TENANT_ID_PROVIDER, MarkdownConfigDialogComponent, MarkdownWidgetComponent, MeshBoardDataService, MeshBoardGridService, MeshBoardManagerDialogComponent, MeshBoardPersistenceService, MeshBoardSettingsDialogComponent, MeshBoardSettingsResult, MeshBoardStateService, MeshBoardViewComponent, PieChartConfigDialogComponent, PieChartWidgetComponent, QuerySelectorComponent, RuntimeEntitySelectorComponent, ServiceHealthConfigDialogComponent, ServiceHealthWidgetComponent, StatsGridConfigDialogComponent, StatsGridWidgetComponent, StatusIndicatorConfigDialogComponent, StatusIndicatorWidgetComponent, StatusListConfigDialogComponent, StatusListWidgetComponent, SummaryCardConfigDialogComponent, SummaryCardWidgetComponent, TableConfigDialogComponent, TableWidgetComponent, TableWidgetDataSourceDirective, WidgetFactoryService, WidgetGroupComponent, WidgetGroupConfigDialogComponent, WidgetNotConfiguredComponent, WidgetRegistryService, provideDefaultWidgets, provideMeshBoard, provideProcessWidget, provideWidgetRegistrations, registerDefaultWidgets, registerProcessWidget };
5465
+ export type { AggregationDataSource, AggregationQuery, AggregationType, AiInsightsConfigResult, AiInsightsWidgetConfig, AlertBannerConfigResult, AlertBannerWidgetConfig, AlertListConfigResult, AlertListWidgetConfig, AnyWidgetConfig, AssociationsConfigResult, BarChartColorThreshold, BarChartConfigResult, BarChartSeries, BarChartType, BarChartWidgetConfig, BaseWidgetConfig, CategoryValueItem, ChartReferenceLine, CkQueryResult, CkQueryTarget, CkTypeAttributeInfo, ConfigDialogResult, ConfigResultApplier, ConstructionKitQueryDataSource, DashboardConfig, DashboardWidget, DataSource, DataSourceType, DiagramPropertyMapping, EntityAssociation, EntityAttribute, EntityCardConfigResult, EntityCardWidgetConfig, EntityListWidget, EntitySelectorAttributeMapping, EntitySelectorClearEvent, EntitySelectorConfig, EntitySelectorEvent, EntityWidget, EntityWithAssociationsWidgetConfig, GaugeConfigResult, GaugeRange, GaugeType, GaugeWidgetConfig, GridCell, GridPosition, GroupChildWidgetType, GroupedDataItem, HeatmapAggregation, HeatmapColorScheme, HeatmapConfigResult, HeatmapWidgetConfig, KpiConfigResult, KpiDataSourceType, KpiQueryMode, KpiWidgetConfig, LineChartConfigResult, LineChartType, LineChartWidgetConfig, MarkdownConfigResult, MarkdownTextAlign, MarkdownWidgetConfig, MeshBoardConfig, MeshBoardOptions, MeshBoardTimeFilterConfig, MeshBoardVariable, MeshBoardVariableSource, MeshBoardVariableType, ParentAssociationMode, PersistedDashboard, PersistedMeshBoard, PersistedWidget, PersistedWidgetData, PersistentQueryDataSource, PersistentQueryItem, PieChartConfigResult, PieChartType, PieChartWidgetConfig, ProcessWidgetConfig, Quarter, QueryColumn, QueryColumnItem, RelativeTimeUnit, RepeaterDataItem, RepeaterQueryDataSource, RuntimeEntityData, RuntimeEntityDataSource, RuntimeEntitySelectorValue, ServiceCallDataSource, ServiceCallType, ServiceHealthConfigResult, ServiceHealthWidgetConfig, StatColor, StatItem, StaticDataSource, StatsGridConfigResult, StatsGridWidgetConfig, StatusIndicatorConfigResult, StatusIndicatorWidgetConfig, StatusListConfigResult, StatusListWidgetConfig, SummaryCardConfigResult, SummaryCardTile, SummaryCardWidgetConfig, TableColumn, TableColumnStatusIconMapping, TableConfigResult, TableFilterConfig, TableSortConfig, TableWidgetConfig, TargetEntityWithAttributes, TimeRangePickerConfig, TimeRangeSelection, TimeRangeType, UpdateDashboardResult, VariableResolutionError, WidgetConfig, WidgetConfigDialog, WidgetConfigDialogSize, WidgetConfigResult, WidgetCreationOptions, WidgetDataSource, WidgetFilterConfig, WidgetGroupAttributeMappings, WidgetGroupChildTemplate, WidgetGroupConfig, WidgetGroupConfigResult, WidgetGroupLayout, WidgetPersistenceData, WidgetPositionUpdate, WidgetRegistration, WidgetType, WidgetZone };