@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:
|
|
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 };
|