@meshmakers/octo-meshboard 3.4.200 → 3.4.220
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.
|
@@ -161,6 +161,28 @@ interface ProcessWidgetConfig extends WidgetConfig, ProcessWidgetSpecificConfig
|
|
|
161
161
|
* Display name of the persistent query (for UI)
|
|
162
162
|
*/
|
|
163
163
|
bindingQueryName?: string;
|
|
164
|
+
/**
|
|
165
|
+
* Query family of the bound persistent query: `'runtime'` or `'streamData'`.
|
|
166
|
+
* Derived from the query's `queryCkTypeId` when absent (one-time lookup by the
|
|
167
|
+
* executor). Persisted so a stream-data binding picks the correct executor
|
|
168
|
+
* without an extra round-trip — switching runtime ↔ stream-data is a config
|
|
169
|
+
* change, not a different widget.
|
|
170
|
+
*/
|
|
171
|
+
bindingQueryFamily?: QueryFamily;
|
|
172
|
+
/**
|
|
173
|
+
* Stream-data opt-out: when `true`, the MeshBoard time filter is NOT bound to
|
|
174
|
+
* the bound query's `streamDataArgs.from/.to`, so the query's intrinsic time
|
|
175
|
+
* bounds win. Default (absent/`false`) auto-binds the active time filter.
|
|
176
|
+
* Ignored for runtime queries (they don't consume `streamDataArgs`).
|
|
177
|
+
*/
|
|
178
|
+
bindingIgnoreTimeFilter?: boolean;
|
|
179
|
+
/**
|
|
180
|
+
* Asset-scope binding: the `id` of an entity selector whose selection scopes
|
|
181
|
+
* the bound stream-data query. The selector's resolved source rtIds are passed
|
|
182
|
+
* as `streamDataArgs.rtIds`, replacing the persisted scope at execution time.
|
|
183
|
+
* Ignored for runtime queries.
|
|
184
|
+
*/
|
|
185
|
+
bindingEntitySelectorId?: string;
|
|
164
186
|
/**
|
|
165
187
|
* Field filters applied to the data binding query
|
|
166
188
|
* Works with both runtimeEntity and persistentQuery modes
|
|
@@ -202,10 +224,27 @@ interface WidgetDataSource {
|
|
|
202
224
|
*/
|
|
203
225
|
interface RuntimeEntityDataSource extends WidgetDataSource {
|
|
204
226
|
type: 'runtimeEntity';
|
|
227
|
+
/**
|
|
228
|
+
* CK type of the entity. May contain a MeshBoard variable (e.g.
|
|
229
|
+
* `$mp_rtCkTypeId`) which is resolved against the active variables before the
|
|
230
|
+
* entity is fetched.
|
|
231
|
+
*/
|
|
205
232
|
ckTypeId?: string;
|
|
233
|
+
/**
|
|
234
|
+
* Runtime id of the entity. May contain a MeshBoard variable (e.g. `$mp_rtId`)
|
|
235
|
+
* which is resolved against the active variables before the entity is fetched.
|
|
236
|
+
*/
|
|
206
237
|
rtId?: string;
|
|
207
238
|
attributePaths?: string[];
|
|
208
239
|
includeAssociations?: boolean;
|
|
240
|
+
/**
|
|
241
|
+
* Entity-selector binding: the `id` of a MeshBoard entity selector whose
|
|
242
|
+
* current selection supplies this widget's entity. When set, the selector's
|
|
243
|
+
* `selectedRtId` and the picked entity's CK type (`$<id>_rtCkTypeId`) override
|
|
244
|
+
* `rtId`/`ckTypeId`, so the widget follows the asset picked at board level.
|
|
245
|
+
* Absent ⇒ the literal (optionally variable-bearing) `rtId`/`ckTypeId` win.
|
|
246
|
+
*/
|
|
247
|
+
entitySelectorId?: string;
|
|
209
248
|
}
|
|
210
249
|
/**
|
|
211
250
|
* Static data source for demo/testing or variable-based display
|
|
@@ -238,6 +277,16 @@ interface PersistentQueryDataSource extends WidgetDataSource {
|
|
|
238
277
|
* Ignored for runtime queries (they don't consume `streamDataArgs`).
|
|
239
278
|
*/
|
|
240
279
|
ignoreTimeFilter?: boolean;
|
|
280
|
+
/**
|
|
281
|
+
* Asset-scope binding: the `id` of an entity selector whose selection scopes
|
|
282
|
+
* this widget's stream-data query. The selector resolves its picked entity to
|
|
283
|
+
* a set of source rtIds (via its `childScope` one-hop, or the picked entity
|
|
284
|
+
* itself when no childScope is configured); those rtIds are passed as the
|
|
285
|
+
* query's `streamDataArgs.rtIds`, replacing the persisted RtIds at execution
|
|
286
|
+
* time. Absent ⇒ the query runs with its persisted scope. Ignored for runtime
|
|
287
|
+
* queries (the archive `rtIds` override is a stream-data concept).
|
|
288
|
+
*/
|
|
289
|
+
entitySelectorId?: string;
|
|
241
290
|
}
|
|
242
291
|
/**
|
|
243
292
|
* Aggregation types supported
|
|
@@ -709,6 +758,48 @@ interface HeatmapWidgetConfig extends WidgetConfig {
|
|
|
709
758
|
/** Field filters for data source */
|
|
710
759
|
filters?: WidgetFilterConfig[];
|
|
711
760
|
}
|
|
761
|
+
/**
|
|
762
|
+
* Query mode for a persistent-query cell source — how the single displayed value
|
|
763
|
+
* is derived from the query result. Mirrors the KPI/gauge widget query modes.
|
|
764
|
+
*/
|
|
765
|
+
type PersistentQueryCellMode = 'simpleCount' | 'aggregation' | 'groupedAggregation';
|
|
766
|
+
/**
|
|
767
|
+
* A single-value data source backed by a persistent query (runtime OR stream-data).
|
|
768
|
+
*
|
|
769
|
+
* Used per-cell by aggregation-style widgets (stats-grid stat, summary-card tile)
|
|
770
|
+
* as an alternative to their built-in runtime aggregation source. Switching a cell
|
|
771
|
+
* between runtime and stream-data is a configuration change (the `queryFamily`
|
|
772
|
+
* discriminator picks the executor), not a different widget — mirroring how the
|
|
773
|
+
* KPI/gauge widgets consume {@link PersistentQueryDataSource}.
|
|
774
|
+
*/
|
|
775
|
+
interface PersistentQueryCellSource {
|
|
776
|
+
/** The rtId of the persistent query to execute. */
|
|
777
|
+
queryRtId: string;
|
|
778
|
+
/** Display name of the query (for UI). */
|
|
779
|
+
queryName?: string;
|
|
780
|
+
/** Query family: 'runtime' or 'streamData'. Derived from the query's CK type when absent. */
|
|
781
|
+
queryFamily?: QueryFamily;
|
|
782
|
+
/**
|
|
783
|
+
* Stream-data opt-out: when `true`, the MeshBoard time filter is NOT bound to
|
|
784
|
+
* the query's `streamDataArgs.from/.to`. Ignored for runtime queries.
|
|
785
|
+
*/
|
|
786
|
+
ignoreTimeFilter?: boolean;
|
|
787
|
+
/**
|
|
788
|
+
* Asset-scope binding: the `id` of an entity selector whose selection scopes the
|
|
789
|
+
* stream-data query via `streamDataArgs.rtIds`. Ignored for runtime queries.
|
|
790
|
+
*/
|
|
791
|
+
entitySelectorId?: string;
|
|
792
|
+
/** How to reduce the query result to one value. */
|
|
793
|
+
queryMode: PersistentQueryCellMode;
|
|
794
|
+
/** Value column for `aggregation` / `groupedAggregation` modes. */
|
|
795
|
+
queryValueField?: string;
|
|
796
|
+
/** Category column for `groupedAggregation` mode. */
|
|
797
|
+
queryCategoryField?: string;
|
|
798
|
+
/** Category value to match for `groupedAggregation` mode. */
|
|
799
|
+
queryCategoryValue?: string;
|
|
800
|
+
/** Field filters applied to the query rows. */
|
|
801
|
+
filters?: WidgetFilterConfig[];
|
|
802
|
+
}
|
|
712
803
|
/**
|
|
713
804
|
* Color options for stat items
|
|
714
805
|
*/
|
|
@@ -719,8 +810,16 @@ type StatColor = 'mint' | 'cyan' | 'violet' | 'toffee' | 'lilac' | 'bubblegum' |
|
|
|
719
810
|
interface StatItem {
|
|
720
811
|
/** Display label */
|
|
721
812
|
label: string;
|
|
722
|
-
/**
|
|
813
|
+
/**
|
|
814
|
+
* Reference to the aggregation query ID in the widget's `AggregationDataSource`.
|
|
815
|
+
* Used when `persistentQuerySource` is absent (the default runtime aggregation).
|
|
816
|
+
*/
|
|
723
817
|
queryId: string;
|
|
818
|
+
/**
|
|
819
|
+
* Optional per-stat persistent-query source (runtime or stream-data). When set,
|
|
820
|
+
* it supersedes `queryId` / the aggregation source for this stat.
|
|
821
|
+
*/
|
|
822
|
+
persistentQuerySource?: PersistentQueryCellSource;
|
|
724
823
|
/** Color variant */
|
|
725
824
|
color?: StatColor;
|
|
726
825
|
/** Number format */
|
|
@@ -901,6 +1000,11 @@ interface SummaryCardTile {
|
|
|
901
1000
|
attribute?: string;
|
|
902
1001
|
filters?: WidgetFilterConfig[];
|
|
903
1002
|
};
|
|
1003
|
+
/**
|
|
1004
|
+
* Fetch a single value from a persistent query (runtime or stream-data). When
|
|
1005
|
+
* set, it supersedes `entitySource` / `aggregationSource` for this tile.
|
|
1006
|
+
*/
|
|
1007
|
+
persistentQuerySource?: PersistentQueryCellSource;
|
|
904
1008
|
}
|
|
905
1009
|
interface AlertBannerWidgetConfig extends WidgetConfig {
|
|
906
1010
|
type: 'alertBanner';
|
|
@@ -986,6 +1090,22 @@ type TimeRangeType = 'year' | 'quarter' | 'month' | 'day' | 'relative' | 'custom
|
|
|
986
1090
|
* Time units for relative time ranges
|
|
987
1091
|
*/
|
|
988
1092
|
type RelativeTimeUnit = 'hours' | 'days' | 'weeks' | 'months';
|
|
1093
|
+
/**
|
|
1094
|
+
* Timezone basis the MeshBoard uses for BOTH the time-filter boundary
|
|
1095
|
+
* computation and the display of every datetime value across all widgets.
|
|
1096
|
+
*
|
|
1097
|
+
* - `'local'` (default): the browser's local timezone. "Year 2026" spans the
|
|
1098
|
+
* local calendar year and datetime cells render in local wall-clock time.
|
|
1099
|
+
* - `'utc'`: UTC. "Year 2026" spans the UTC calendar year and datetime cells
|
|
1100
|
+
* render in UTC.
|
|
1101
|
+
*
|
|
1102
|
+
* Keeping filter and display on the same basis avoids the boundary artifact
|
|
1103
|
+
* where a local-year filter selects rows whose UTC timestamps fall in the
|
|
1104
|
+
* neighbouring calendar year. Mirrors shared-ui's `TimeRangeZone`.
|
|
1105
|
+
*/
|
|
1106
|
+
type MeshBoardTimeZoneMode = 'local' | 'utc';
|
|
1107
|
+
/** The board-level default timezone mode applied when none is persisted. */
|
|
1108
|
+
declare const DEFAULT_TIME_ZONE_MODE: MeshBoardTimeZoneMode;
|
|
989
1109
|
/**
|
|
990
1110
|
* Quarter number (1-4)
|
|
991
1111
|
*/
|
|
@@ -1050,6 +1170,30 @@ interface EntitySelectorAttributeMapping {
|
|
|
1050
1170
|
/** Attribute value type for variable type mapping */
|
|
1051
1171
|
attributeValueType?: string;
|
|
1052
1172
|
}
|
|
1173
|
+
/**
|
|
1174
|
+
* One-hop association traversal that turns a selected entity into the set of
|
|
1175
|
+
* source rtIds a stream-data widget should be scoped to.
|
|
1176
|
+
*
|
|
1177
|
+
* Use case: the user picks a `MeteringPoint`, but the stream-data archive is
|
|
1178
|
+
* keyed by its child `EnergyMeasurement` rtIds. The childScope describes that
|
|
1179
|
+
* single hop (target type + association role + direction); the selected
|
|
1180
|
+
* entity's children of `targetCkTypeId` reached via `roleId` become the scope
|
|
1181
|
+
* rtIds. When a selector has no childScope, the picked entity's own rtId is the
|
|
1182
|
+
* scope (direct keying).
|
|
1183
|
+
*/
|
|
1184
|
+
interface EntitySelectorChildScope {
|
|
1185
|
+
/** CK type of the child entities that key the stream-data archive (e.g. EnergyMeasurement). */
|
|
1186
|
+
targetCkTypeId: string;
|
|
1187
|
+
/** Association role linking the selected entity to the children (e.g. "System/ParentChild"). */
|
|
1188
|
+
roleId: string;
|
|
1189
|
+
/**
|
|
1190
|
+
* Traversal direction from the selected (parent) entity to its children.
|
|
1191
|
+
* For `System/ParentChild` the child owns the association to its parent, so
|
|
1192
|
+
* the children are reached **inbound** — hence `'in'` is the default. Use
|
|
1193
|
+
* `'out'` only for custom roles modelled parent → child.
|
|
1194
|
+
*/
|
|
1195
|
+
direction?: 'in' | 'out';
|
|
1196
|
+
}
|
|
1053
1197
|
/**
|
|
1054
1198
|
* Configuration for a single entity selector in the MeshBoard toolbar.
|
|
1055
1199
|
* Each selector is bound to a CK type and populates variables from the selected entity.
|
|
@@ -1067,6 +1211,12 @@ interface EntitySelectorConfig {
|
|
|
1067
1211
|
showInToolbar?: boolean;
|
|
1068
1212
|
/** Optional pre-selected entity rtId */
|
|
1069
1213
|
defaultRtId?: string;
|
|
1214
|
+
/**
|
|
1215
|
+
* Optional one-hop traversal that resolves the picked entity to the child
|
|
1216
|
+
* source rtIds a stream-data widget scopes by. Absent ⇒ the picked entity's
|
|
1217
|
+
* own rtId is the scope. See {@link EntitySelectorChildScope}.
|
|
1218
|
+
*/
|
|
1219
|
+
childScope?: EntitySelectorChildScope;
|
|
1070
1220
|
/** Current selection (transient, not persisted) */
|
|
1071
1221
|
selectedRtId?: string;
|
|
1072
1222
|
/** Display name of the currently selected entity */
|
|
@@ -1088,6 +1238,11 @@ interface MeshBoardConfig {
|
|
|
1088
1238
|
variables?: MeshBoardVariable[];
|
|
1089
1239
|
/** Optional time filter configuration */
|
|
1090
1240
|
timeFilter?: MeshBoardTimeFilterConfig;
|
|
1241
|
+
/**
|
|
1242
|
+
* Timezone basis for time-filter boundaries and datetime display across all
|
|
1243
|
+
* widgets. `undefined` ⇒ {@link DEFAULT_TIME_ZONE_MODE} (`'local'`).
|
|
1244
|
+
*/
|
|
1245
|
+
timeZoneMode?: MeshBoardTimeZoneMode;
|
|
1091
1246
|
/** Entity selector configurations for the toolbar */
|
|
1092
1247
|
entitySelectors?: EntitySelectorConfig[];
|
|
1093
1248
|
/**
|
|
@@ -1583,6 +1738,13 @@ declare class MeshBoardStateService {
|
|
|
1583
1738
|
private readonly _isLoading;
|
|
1584
1739
|
private readonly _isModelAvailable;
|
|
1585
1740
|
private readonly _variableResolutionErrors;
|
|
1741
|
+
/**
|
|
1742
|
+
* Transient cache of the source rtIds resolved from each entity selector's
|
|
1743
|
+
* current selection (keyed by selector id). Populated by the view component
|
|
1744
|
+
* when a selection resolves (one-hop childScope traversal, or the picked
|
|
1745
|
+
* entity's own rtId). Not persisted — derived fresh from each selection.
|
|
1746
|
+
*/
|
|
1747
|
+
private readonly _entitySelectorRtIds;
|
|
1586
1748
|
readonly meshBoardConfig: _angular_core.Signal<MeshBoardConfig>;
|
|
1587
1749
|
readonly persistedMeshBoardId: _angular_core.Signal<string | null>;
|
|
1588
1750
|
/** @deprecated Use existingWidgetRtIds instead */
|
|
@@ -1593,6 +1755,12 @@ declare class MeshBoardStateService {
|
|
|
1593
1755
|
readonly widgets: _angular_core.Signal<AnyWidgetConfig[]>;
|
|
1594
1756
|
readonly isModelAvailable: _angular_core.Signal<boolean | null>;
|
|
1595
1757
|
readonly variableResolutionErrors: _angular_core.Signal<VariableResolutionError[]>;
|
|
1758
|
+
/**
|
|
1759
|
+
* The board's effective timezone mode (defaults to `'local'`). Drives both the
|
|
1760
|
+
* time-filter boundary computation and datetime display across all widgets.
|
|
1761
|
+
* Widgets read this to format timestamps consistently with the active filter.
|
|
1762
|
+
*/
|
|
1763
|
+
readonly timeZoneMode: _angular_core.Signal<MeshBoardTimeZoneMode>;
|
|
1596
1764
|
/** @deprecated Use meshBoardConfig instead */
|
|
1597
1765
|
readonly dashboardConfig: _angular_core.Signal<MeshBoardConfig>;
|
|
1598
1766
|
/** @deprecated Use persistedMeshBoardId instead */
|
|
@@ -1669,6 +1837,7 @@ declare class MeshBoardStateService {
|
|
|
1669
1837
|
gap: number;
|
|
1670
1838
|
variables?: MeshBoardVariable[];
|
|
1671
1839
|
timeFilter?: MeshBoardTimeFilterConfig;
|
|
1840
|
+
timeZoneMode?: MeshBoardTimeZoneMode;
|
|
1672
1841
|
entitySelectors?: EntitySelectorConfig[];
|
|
1673
1842
|
autoRefreshSeconds?: number;
|
|
1674
1843
|
}): void;
|
|
@@ -1684,6 +1853,7 @@ declare class MeshBoardStateService {
|
|
|
1684
1853
|
gap: number;
|
|
1685
1854
|
variables: MeshBoardVariable[];
|
|
1686
1855
|
timeFilter?: MeshBoardTimeFilterConfig;
|
|
1856
|
+
timeZoneMode?: MeshBoardTimeZoneMode;
|
|
1687
1857
|
entitySelectors?: EntitySelectorConfig[];
|
|
1688
1858
|
autoRefreshSeconds?: number;
|
|
1689
1859
|
};
|
|
@@ -1762,8 +1932,9 @@ declare class MeshBoardStateService {
|
|
|
1762
1932
|
* Stream-data persistent queries consume this to bound their result set;
|
|
1763
1933
|
* runtime queries ignore it.
|
|
1764
1934
|
*
|
|
1765
|
-
*
|
|
1766
|
-
*
|
|
1935
|
+
* Boundaries are resolved on the board's {@link timeZoneMode} basis (local by
|
|
1936
|
+
* default, or UTC), the same basis widgets format their datetime display on —
|
|
1937
|
+
* so the selected range and the displayed timestamps stay consistent.
|
|
1767
1938
|
*/
|
|
1768
1939
|
resolveCurrentTimeRange(): TimeRange | null;
|
|
1769
1940
|
/**
|
|
@@ -1779,6 +1950,25 @@ declare class MeshBoardStateService {
|
|
|
1779
1950
|
from: Date;
|
|
1780
1951
|
to: Date;
|
|
1781
1952
|
} | undefined;
|
|
1953
|
+
/**
|
|
1954
|
+
* Stores the source rtIds resolved from an entity selector's current
|
|
1955
|
+
* selection. Called by the view component after a selection resolves (the
|
|
1956
|
+
* one-hop childScope traversal, or the picked entity's own rtId when the
|
|
1957
|
+
* selector has no childScope). Transient — not persisted.
|
|
1958
|
+
*/
|
|
1959
|
+
setEntitySelectorRtIds(selectorId: string, rtIds: string[]): void;
|
|
1960
|
+
/**
|
|
1961
|
+
* Clears the cached source rtIds for an entity selector (e.g. when its
|
|
1962
|
+
* selection is cleared).
|
|
1963
|
+
*/
|
|
1964
|
+
clearEntitySelectorRtIds(selectorId: string): void;
|
|
1965
|
+
/**
|
|
1966
|
+
* Resolves the stream-data `rtIds` scope for a persistent-query widget bound
|
|
1967
|
+
* to an entity selector. Returns the source rtIds cached from the selector's
|
|
1968
|
+
* current selection, or `undefined` when the selector id is absent, unknown,
|
|
1969
|
+
* or has no active selection (so the query keeps its persisted scope).
|
|
1970
|
+
*/
|
|
1971
|
+
resolveStreamDataRtIds(entitySelectorId?: string): string[] | undefined;
|
|
1782
1972
|
/**
|
|
1783
1973
|
* Updates the time filter configuration.
|
|
1784
1974
|
*/
|
|
@@ -2381,19 +2571,17 @@ declare const DashboardGridService: typeof MeshBoardGridService;
|
|
|
2381
2571
|
* without importing generated DTO types directly.
|
|
2382
2572
|
*
|
|
2383
2573
|
* Backend semantics (verified against StreamDataQueryDtoType.cs and
|
|
2384
|
-
* StreamDataVariantExecutor.cs
|
|
2574
|
+
* StreamDataVariantExecutor.cs; `queryMode` override added in AB#4233):
|
|
2385
2575
|
* - `from` / `to` / `limit` override the persisted query's intrinsic values
|
|
2386
2576
|
* when set (`execOverride?.From ?? simple.From` pattern in the resolver).
|
|
2387
2577
|
* - `interval` is currently ignored by every variant; the downsampling path
|
|
2388
2578
|
* derives `(to - from) / limit` itself.
|
|
2389
|
-
* - `queryMode`
|
|
2390
|
-
*
|
|
2391
|
-
*
|
|
2392
|
-
*
|
|
2393
|
-
*
|
|
2394
|
-
*
|
|
2395
|
-
* Don't pretend to override the mode from here — even if `queryMode: DOWNSAMPLING`
|
|
2396
|
-
* is set on a `SimpleSdQuery`, the backend still runs the simple variant.
|
|
2579
|
+
* - `queryMode: DOWNSAMPLING` on a `SimpleSdQuery` (persisted) or the transient
|
|
2580
|
+
* `simple` sub-connection now drives the downsampling execution path: with a
|
|
2581
|
+
* full from/to/limit contract the backend reduces to `limit` buckets per series
|
|
2582
|
+
* (per-type reducers + group-by source rtId). Without all three it falls back
|
|
2583
|
+
* to raw rows. For the other variants the execution shape still comes from the
|
|
2584
|
+
* CK subtype / sub-connection; `queryMode` is a no-op there.
|
|
2397
2585
|
*/
|
|
2398
2586
|
interface StreamDataExecutionArgs {
|
|
2399
2587
|
from?: Date | null;
|
|
@@ -2401,10 +2589,18 @@ interface StreamDataExecutionArgs {
|
|
|
2401
2589
|
interval?: number | null;
|
|
2402
2590
|
limit?: number | null;
|
|
2403
2591
|
/**
|
|
2404
|
-
*
|
|
2405
|
-
*
|
|
2592
|
+
* `DOWNSAMPLING` switches a SimpleSdQuery / transient `simple` query to the
|
|
2593
|
+
* downsampling path (with from/to/limit); a no-op for the other variants.
|
|
2594
|
+
* Defaults to `Default` (raw rows).
|
|
2406
2595
|
*/
|
|
2407
2596
|
queryMode?: QueryModeDto;
|
|
2597
|
+
/**
|
|
2598
|
+
* Source runtime ids to scope the query to. When set, replaces the persisted
|
|
2599
|
+
* RtIds on the query at execution time — used to scope a stream-data widget to
|
|
2600
|
+
* the entities resolved from a selected asset (e.g. the EnergyMeasurement rtIds
|
|
2601
|
+
* under a picked MeteringPoint). An empty array is treated as "no scope".
|
|
2602
|
+
*/
|
|
2603
|
+
rtIds?: string[] | null;
|
|
2408
2604
|
}
|
|
2409
2605
|
interface QueryExecutionOptions {
|
|
2410
2606
|
/** Page size — passed to the GraphQL `first` variable. */
|
|
@@ -2537,6 +2733,8 @@ declare class AutoRefreshTimerService implements OnDestroy {
|
|
|
2537
2733
|
|
|
2538
2734
|
declare class EntityCardWidgetComponent implements DashboardWidget<EntityCardWidgetConfig, RuntimeEntityData>, OnInit, OnChanges {
|
|
2539
2735
|
private readonly dataService;
|
|
2736
|
+
private readonly stateService;
|
|
2737
|
+
private readonly variableService;
|
|
2540
2738
|
config: EntityCardWidgetConfig;
|
|
2541
2739
|
private readonly _isLoading;
|
|
2542
2740
|
private readonly _data;
|
|
@@ -2562,18 +2760,47 @@ declare class EntityCardWidgetComponent implements DashboardWidget<EntityCardWid
|
|
|
2562
2760
|
ngOnChanges(changes: SimpleChanges): void;
|
|
2563
2761
|
refresh(): void;
|
|
2564
2762
|
private loadData;
|
|
2763
|
+
/**
|
|
2764
|
+
* Message for the neutral empty state — shown when the widget IS configured
|
|
2765
|
+
* but no entity is currently resolved (e.g. a bound selector hasn't been
|
|
2766
|
+
* picked yet, or a variable is still unresolved). This is deliberately not the
|
|
2767
|
+
* red "not configured" placeholder, which would wrongly imply the widget needs
|
|
2768
|
+
* setup.
|
|
2769
|
+
*/
|
|
2770
|
+
emptyMessage(): string;
|
|
2771
|
+
/**
|
|
2772
|
+
* Resolves the effective `{ rtId, ckTypeId }` to fetch from a runtime-entity
|
|
2773
|
+
* data source.
|
|
2774
|
+
*
|
|
2775
|
+
* - When `entitySelectorId` is set, the bound MeshBoard entity selector's
|
|
2776
|
+
* current `selectedRtId` and the picked entity's type
|
|
2777
|
+
* (`$<selectorId>_rtCkTypeId`, falling back to the selector's configured
|
|
2778
|
+
* `ckTypeId`) win — so the card follows the asset picked at board level.
|
|
2779
|
+
* - Otherwise the configured `rtId`/`ckTypeId` are resolved against the active
|
|
2780
|
+
* MeshBoard variables, allowing values like `$mp_rtId` / `$mp_rtCkTypeId`.
|
|
2781
|
+
*/
|
|
2782
|
+
private resolveEntityRef;
|
|
2565
2783
|
inferAttributeType(value: unknown): AttributeValueTypeDto;
|
|
2566
2784
|
formatAttributeName(name: string): string;
|
|
2567
2785
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<EntityCardWidgetComponent, never>;
|
|
2568
2786
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<EntityCardWidgetComponent, "mm-entity-card-widget", never, { "config": { "alias": "config"; "required": false; }; }, {}, never, never, true, never>;
|
|
2569
2787
|
}
|
|
2570
2788
|
|
|
2789
|
+
/** How the entity card resolves which entity to display. */
|
|
2790
|
+
type EntityCardBindingMode = 'fixed' | 'selector' | 'variable';
|
|
2571
2791
|
/**
|
|
2572
|
-
* Configuration result from the dialog
|
|
2792
|
+
* Configuration result from the dialog.
|
|
2793
|
+
*
|
|
2794
|
+
* - `fixed` mode → `ckTypeId`/`rtId` hold a concrete type + entity.
|
|
2795
|
+
* - `selector` mode → `entitySelectorId` names a board-level entity selector;
|
|
2796
|
+
* `ckTypeId`/`rtId` are empty (resolved live from the selection).
|
|
2797
|
+
* - `variable` mode → `ckTypeId`/`rtId` hold MeshBoard variables (e.g.
|
|
2798
|
+
* `$mp_rtCkTypeId` / `$mp_rtId`) resolved at render time.
|
|
2573
2799
|
*/
|
|
2574
2800
|
interface EntityCardConfigResult {
|
|
2575
2801
|
ckTypeId: string;
|
|
2576
2802
|
rtId: string;
|
|
2803
|
+
entitySelectorId?: string;
|
|
2577
2804
|
hideEmptyAttributes: boolean;
|
|
2578
2805
|
}
|
|
2579
2806
|
/**
|
|
@@ -2583,20 +2810,28 @@ interface EntityCardConfigResult {
|
|
|
2583
2810
|
declare class EntityCardConfigDialogComponent implements OnInit {
|
|
2584
2811
|
private readonly getEntitiesByCkTypeGQL;
|
|
2585
2812
|
private readonly ckTypeSelectorService;
|
|
2813
|
+
private readonly stateService;
|
|
2586
2814
|
private readonly windowRef;
|
|
2587
2815
|
ckTypeSelectorInput?: CkTypeSelectorInputComponent;
|
|
2588
2816
|
entitySelectorInput?: EntitySelectInputComponent;
|
|
2589
2817
|
initialCkTypeId?: string;
|
|
2590
2818
|
initialRtId?: string;
|
|
2819
|
+
initialEntitySelectorId?: string;
|
|
2591
2820
|
initialHideEmptyAttributes: boolean;
|
|
2821
|
+
bindingMode: EntityCardBindingMode;
|
|
2592
2822
|
selectedCkType: CkTypeSelectorItem | null;
|
|
2593
2823
|
selectedEntity: RuntimeEntityItem$1 | null;
|
|
2594
2824
|
entityDataSource?: RuntimeEntitySelectDataSource$1;
|
|
2595
2825
|
entityDialogDataSource?: RuntimeEntityDialogDataSource$1;
|
|
2596
2826
|
isLoadingInitial: boolean;
|
|
2597
2827
|
hideEmptyAttributes: boolean;
|
|
2828
|
+
entitySelectorId: string;
|
|
2829
|
+
variableCkTypeId: string;
|
|
2830
|
+
variableRtId: string;
|
|
2831
|
+
get availableSelectors(): EntitySelectorConfig[];
|
|
2598
2832
|
get isValid(): boolean;
|
|
2599
2833
|
ngOnInit(): Promise<void>;
|
|
2834
|
+
private containsVariable;
|
|
2600
2835
|
private loadInitialValues;
|
|
2601
2836
|
private loadInitialEntity;
|
|
2602
2837
|
onCkTypeSelected(ckType: CkTypeSelectorItem): void;
|
|
@@ -2606,7 +2841,7 @@ declare class EntityCardConfigDialogComponent implements OnInit {
|
|
|
2606
2841
|
onSave(): void;
|
|
2607
2842
|
onCancel(): void;
|
|
2608
2843
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<EntityCardConfigDialogComponent, never>;
|
|
2609
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<EntityCardConfigDialogComponent, "mm-entity-card-config-dialog", never, { "initialCkTypeId": { "alias": "initialCkTypeId"; "required": false; }; "initialRtId": { "alias": "initialRtId"; "required": false; }; "initialHideEmptyAttributes": { "alias": "initialHideEmptyAttributes"; "required": false; }; }, {}, never, never, true, never>;
|
|
2844
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<EntityCardConfigDialogComponent, "mm-entity-card-config-dialog", never, { "initialCkTypeId": { "alias": "initialCkTypeId"; "required": false; }; "initialRtId": { "alias": "initialRtId"; "required": false; }; "initialEntitySelectorId": { "alias": "initialEntitySelectorId"; "required": false; }; "initialHideEmptyAttributes": { "alias": "initialHideEmptyAttributes"; "required": false; }; }, {}, never, never, true, never>;
|
|
2610
2845
|
}
|
|
2611
2846
|
|
|
2612
2847
|
declare class KpiWidgetComponent implements DashboardWidget<KpiWidgetConfig, RuntimeEntityData>, OnInit, OnChanges {
|
|
@@ -2691,6 +2926,8 @@ interface KpiConfigResult extends WidgetConfigResult {
|
|
|
2691
2926
|
queryName?: string;
|
|
2692
2927
|
queryFamily?: QueryFamily;
|
|
2693
2928
|
ignoreTimeFilter?: boolean;
|
|
2929
|
+
/** Asset-scope binding: id of the entity selector whose selection scopes the stream-data query. */
|
|
2930
|
+
entitySelectorId?: string;
|
|
2694
2931
|
queryMode?: KpiQueryMode;
|
|
2695
2932
|
queryValueField?: string;
|
|
2696
2933
|
queryCategoryField?: string;
|
|
@@ -2739,6 +2976,7 @@ declare class KpiConfigDialogComponent implements OnInit {
|
|
|
2739
2976
|
initialQueryName?: string;
|
|
2740
2977
|
initialQueryFamily?: QueryFamily;
|
|
2741
2978
|
initialIgnoreTimeFilter?: boolean;
|
|
2979
|
+
initialEntitySelectorId?: string;
|
|
2742
2980
|
initialQueryMode?: KpiQueryMode;
|
|
2743
2981
|
initialQueryValueField?: string;
|
|
2744
2982
|
initialQueryCategoryField?: string;
|
|
@@ -2755,11 +2993,14 @@ declare class KpiConfigDialogComponent implements OnInit {
|
|
|
2755
2993
|
selectedPersistentQuery: PersistentQueryItem | null;
|
|
2756
2994
|
/** Stream-data opt-out: when true the MeshBoard time filter is not bound to the query. */
|
|
2757
2995
|
ignoreTimeFilter: boolean;
|
|
2996
|
+
entitySelectorId?: string;
|
|
2758
2997
|
queryColumns: QueryColumnItem[];
|
|
2759
2998
|
categoryValues: CategoryValueItem[];
|
|
2760
2999
|
queryMode: KpiQueryMode;
|
|
2761
3000
|
/** Family of the currently selected query; drives the time-filter toggle's visibility. */
|
|
2762
3001
|
get selectedQueryFamily(): QueryFamily | null;
|
|
3002
|
+
/** Entity selectors available on the current MeshBoard (for the scope picker). */
|
|
3003
|
+
get availableEntitySelectors(): EntitySelectorConfig[];
|
|
2763
3004
|
isLoadingQueryColumns: boolean;
|
|
2764
3005
|
isLoadingCategoryValues: boolean;
|
|
2765
3006
|
readonly isLoadingAttributes: _angular_core.WritableSignal<boolean>;
|
|
@@ -2815,7 +3056,7 @@ declare class KpiConfigDialogComponent implements OnInit {
|
|
|
2815
3056
|
private loadCategoryValuesForField;
|
|
2816
3057
|
onFiltersChange(updatedFilters: FieldFilterItem[]): void;
|
|
2817
3058
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KpiConfigDialogComponent, never>;
|
|
2818
|
-
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; }; "initialQueryFamily": { "alias": "initialQueryFamily"; "required": false; }; "initialIgnoreTimeFilter": { "alias": "initialIgnoreTimeFilter"; "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>;
|
|
3059
|
+
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; }; "initialQueryFamily": { "alias": "initialQueryFamily"; "required": false; }; "initialIgnoreTimeFilter": { "alias": "initialIgnoreTimeFilter"; "required": false; }; "initialEntitySelectorId": { "alias": "initialEntitySelectorId"; "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>;
|
|
2819
3060
|
}
|
|
2820
3061
|
|
|
2821
3062
|
interface GroupedAssociation {
|
|
@@ -2835,6 +3076,7 @@ interface TargetEntity {
|
|
|
2835
3076
|
}
|
|
2836
3077
|
declare class EntityAssociationsWidgetComponent implements DashboardWidget<EntityWithAssociationsWidgetConfig, RuntimeEntityData>, OnInit, OnChanges {
|
|
2837
3078
|
private readonly dataService;
|
|
3079
|
+
private readonly stateService;
|
|
2838
3080
|
config: EntityWithAssociationsWidgetConfig;
|
|
2839
3081
|
protected readonly arrowRightIcon: _progress_kendo_svg_icons.SVGIcon;
|
|
2840
3082
|
protected readonly arrowLeftIcon: _progress_kendo_svg_icons.SVGIcon;
|
|
@@ -3164,6 +3406,7 @@ declare class TableWidgetDataSourceDirective extends OctoGraphQlDataSource<Recor
|
|
|
3164
3406
|
declare class TableWidgetComponent implements DashboardWidget<TableWidgetConfig, Record<string, unknown>[]>, OnChanges {
|
|
3165
3407
|
config: TableWidgetConfig;
|
|
3166
3408
|
dataSource?: TableWidgetDataSourceDirective;
|
|
3409
|
+
private readonly stateService;
|
|
3167
3410
|
private readonly _isLoading;
|
|
3168
3411
|
private readonly _data;
|
|
3169
3412
|
private readonly _error;
|
|
@@ -3219,6 +3462,8 @@ interface TableConfigResult {
|
|
|
3219
3462
|
queryFamily?: QueryFamily;
|
|
3220
3463
|
/** Stream-data opt-out: keep the query's own time bounds, ignore the MeshBoard time filter. */
|
|
3221
3464
|
ignoreTimeFilter?: boolean;
|
|
3465
|
+
/** Asset-scope binding: id of the entity selector whose selection scopes the stream-data query. */
|
|
3466
|
+
entitySelectorId?: string;
|
|
3222
3467
|
pageSize: number;
|
|
3223
3468
|
sortable: boolean;
|
|
3224
3469
|
}
|
|
@@ -3255,6 +3500,7 @@ declare class TableConfigDialogComponent implements OnInit {
|
|
|
3255
3500
|
initialQueryName?: string;
|
|
3256
3501
|
initialQueryFamily?: QueryFamily;
|
|
3257
3502
|
initialIgnoreTimeFilter?: boolean;
|
|
3503
|
+
initialEntitySelectorId?: string;
|
|
3258
3504
|
protected readonly columnsIcon: _progress_kendo_svg_icons.SVGIcon;
|
|
3259
3505
|
protected readonly sortIcon: _progress_kendo_svg_icons.SVGIcon;
|
|
3260
3506
|
protected readonly filterIcon: _progress_kendo_svg_icons.SVGIcon;
|
|
@@ -3268,7 +3514,10 @@ declare class TableConfigDialogComponent implements OnInit {
|
|
|
3268
3514
|
availableAttributes: AttributeItem[];
|
|
3269
3515
|
selectedPersistentQuery: PersistentQueryItem | null;
|
|
3270
3516
|
ignoreTimeFilter: boolean;
|
|
3517
|
+
entitySelectorId?: string;
|
|
3271
3518
|
filterVariables: FilterVariable[];
|
|
3519
|
+
/** Entity selectors available on the current MeshBoard (for the scope picker). */
|
|
3520
|
+
get availableEntitySelectors(): EntitySelectorConfig[];
|
|
3272
3521
|
form: {
|
|
3273
3522
|
pageSize: number;
|
|
3274
3523
|
sortable: boolean;
|
|
@@ -3291,7 +3540,7 @@ declare class TableConfigDialogComponent implements OnInit {
|
|
|
3291
3540
|
private formatColumnTitle;
|
|
3292
3541
|
onCancel(): void;
|
|
3293
3542
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TableConfigDialogComponent, never>;
|
|
3294
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<TableConfigDialogComponent, "mm-table-config-dialog", never, { "initialDataSourceType": { "alias": "initialDataSourceType"; "required": false; }; "initialCkTypeId": { "alias": "initialCkTypeId"; "required": false; }; "initialColumns": { "alias": "initialColumns"; "required": false; }; "initialSorting": { "alias": "initialSorting"; "required": false; }; "initialFilters": { "alias": "initialFilters"; "required": false; }; "initialPageSize": { "alias": "initialPageSize"; "required": false; }; "initialSortable": { "alias": "initialSortable"; "required": false; }; "initialQueryRtId": { "alias": "initialQueryRtId"; "required": false; }; "initialQueryName": { "alias": "initialQueryName"; "required": false; }; "initialQueryFamily": { "alias": "initialQueryFamily"; "required": false; }; "initialIgnoreTimeFilter": { "alias": "initialIgnoreTimeFilter"; "required": false; }; }, {}, never, never, true, never>;
|
|
3543
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<TableConfigDialogComponent, "mm-table-config-dialog", never, { "initialDataSourceType": { "alias": "initialDataSourceType"; "required": false; }; "initialCkTypeId": { "alias": "initialCkTypeId"; "required": false; }; "initialColumns": { "alias": "initialColumns"; "required": false; }; "initialSorting": { "alias": "initialSorting"; "required": false; }; "initialFilters": { "alias": "initialFilters"; "required": false; }; "initialPageSize": { "alias": "initialPageSize"; "required": false; }; "initialSortable": { "alias": "initialSortable"; "required": false; }; "initialQueryRtId": { "alias": "initialQueryRtId"; "required": false; }; "initialQueryName": { "alias": "initialQueryName"; "required": false; }; "initialQueryFamily": { "alias": "initialQueryFamily"; "required": false; }; "initialIgnoreTimeFilter": { "alias": "initialIgnoreTimeFilter"; "required": false; }; "initialEntitySelectorId": { "alias": "initialEntitySelectorId"; "required": false; }; }, {}, never, never, true, never>;
|
|
3295
3544
|
}
|
|
3296
3545
|
|
|
3297
3546
|
declare class GaugeWidgetComponent implements DashboardWidget<GaugeWidgetConfig, RuntimeEntityData>, OnInit, OnChanges {
|
|
@@ -3354,6 +3603,8 @@ interface GaugeConfigResult extends WidgetConfigResult {
|
|
|
3354
3603
|
queryName?: string;
|
|
3355
3604
|
queryFamily?: QueryFamily;
|
|
3356
3605
|
ignoreTimeFilter?: boolean;
|
|
3606
|
+
/** Asset-scope binding: id of the entity selector whose selection scopes the stream-data query. */
|
|
3607
|
+
entitySelectorId?: string;
|
|
3357
3608
|
queryMode?: KpiQueryMode;
|
|
3358
3609
|
queryValueField?: string;
|
|
3359
3610
|
queryCategoryField?: string;
|
|
@@ -3410,6 +3661,7 @@ declare class GaugeConfigDialogComponent implements OnInit {
|
|
|
3410
3661
|
initialQueryName?: string;
|
|
3411
3662
|
initialQueryFamily?: QueryFamily;
|
|
3412
3663
|
initialIgnoreTimeFilter?: boolean;
|
|
3664
|
+
initialEntitySelectorId?: string;
|
|
3413
3665
|
initialQueryMode?: KpiQueryMode;
|
|
3414
3666
|
initialQueryValueField?: string;
|
|
3415
3667
|
initialQueryCategoryField?: string;
|
|
@@ -3424,11 +3676,14 @@ declare class GaugeConfigDialogComponent implements OnInit {
|
|
|
3424
3676
|
selectedPersistentQuery: PersistentQueryItem | null;
|
|
3425
3677
|
/** Stream-data opt-out: when true the MeshBoard time filter is not bound to the query. */
|
|
3426
3678
|
ignoreTimeFilter: boolean;
|
|
3679
|
+
entitySelectorId?: string;
|
|
3427
3680
|
queryColumns: QueryColumnItem[];
|
|
3428
3681
|
categoryValues: CategoryValueItem[];
|
|
3429
3682
|
queryMode: KpiQueryMode;
|
|
3430
3683
|
/** Family of the currently selected query; drives the time-filter toggle's visibility. */
|
|
3431
3684
|
get selectedQueryFamily(): QueryFamily | null;
|
|
3685
|
+
/** Entity selectors available on the current MeshBoard (for the scope picker). */
|
|
3686
|
+
get availableEntitySelectors(): EntitySelectorConfig[];
|
|
3432
3687
|
isLoadingQueryColumns: boolean;
|
|
3433
3688
|
isLoadingCategoryValues: boolean;
|
|
3434
3689
|
readonly isLoadingAttributes: _angular_core.WritableSignal<boolean>;
|
|
@@ -3487,7 +3742,7 @@ declare class GaugeConfigDialogComponent implements OnInit {
|
|
|
3487
3742
|
private loadCategoryValuesForField;
|
|
3488
3743
|
onFiltersChange(updatedFilters: FieldFilterItem[]): void;
|
|
3489
3744
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<GaugeConfigDialogComponent, never>;
|
|
3490
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<GaugeConfigDialogComponent, "mm-gauge-config-dialog", never, { "initialCkTypeId": { "alias": "initialCkTypeId"; "required": false; }; "initialRtId": { "alias": "initialRtId"; "required": false; }; "initialGaugeType": { "alias": "initialGaugeType"; "required": false; }; "initialValueAttribute": { "alias": "initialValueAttribute"; "required": false; }; "initialLabelAttribute": { "alias": "initialLabelAttribute"; "required": false; }; "initialMin": { "alias": "initialMin"; "required": false; }; "initialMax": { "alias": "initialMax"; "required": false; }; "initialRanges": { "alias": "initialRanges"; "required": false; }; "initialShowLabel": { "alias": "initialShowLabel"; "required": false; }; "initialPrefix": { "alias": "initialPrefix"; "required": false; }; "initialSuffix": { "alias": "initialSuffix"; "required": false; }; "initialReverse": { "alias": "initialReverse"; "required": false; }; "initialDataSourceType": { "alias": "initialDataSourceType"; "required": false; }; "initialQueryRtId": { "alias": "initialQueryRtId"; "required": false; }; "initialQueryName": { "alias": "initialQueryName"; "required": false; }; "initialQueryFamily": { "alias": "initialQueryFamily"; "required": false; }; "initialIgnoreTimeFilter": { "alias": "initialIgnoreTimeFilter"; "required": false; }; "initialQueryMode": { "alias": "initialQueryMode"; "required": false; }; "initialQueryValueField": { "alias": "initialQueryValueField"; "required": false; }; "initialQueryCategoryField": { "alias": "initialQueryCategoryField"; "required": false; }; "initialQueryCategoryValue": { "alias": "initialQueryCategoryValue"; "required": false; }; "initialFilters": { "alias": "initialFilters"; "required": false; }; }, {}, never, never, true, never>;
|
|
3745
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<GaugeConfigDialogComponent, "mm-gauge-config-dialog", never, { "initialCkTypeId": { "alias": "initialCkTypeId"; "required": false; }; "initialRtId": { "alias": "initialRtId"; "required": false; }; "initialGaugeType": { "alias": "initialGaugeType"; "required": false; }; "initialValueAttribute": { "alias": "initialValueAttribute"; "required": false; }; "initialLabelAttribute": { "alias": "initialLabelAttribute"; "required": false; }; "initialMin": { "alias": "initialMin"; "required": false; }; "initialMax": { "alias": "initialMax"; "required": false; }; "initialRanges": { "alias": "initialRanges"; "required": false; }; "initialShowLabel": { "alias": "initialShowLabel"; "required": false; }; "initialPrefix": { "alias": "initialPrefix"; "required": false; }; "initialSuffix": { "alias": "initialSuffix"; "required": false; }; "initialReverse": { "alias": "initialReverse"; "required": false; }; "initialDataSourceType": { "alias": "initialDataSourceType"; "required": false; }; "initialQueryRtId": { "alias": "initialQueryRtId"; "required": false; }; "initialQueryName": { "alias": "initialQueryName"; "required": false; }; "initialQueryFamily": { "alias": "initialQueryFamily"; "required": false; }; "initialIgnoreTimeFilter": { "alias": "initialIgnoreTimeFilter"; "required": false; }; "initialEntitySelectorId": { "alias": "initialEntitySelectorId"; "required": false; }; "initialQueryMode": { "alias": "initialQueryMode"; "required": false; }; "initialQueryValueField": { "alias": "initialQueryValueField"; "required": false; }; "initialQueryCategoryField": { "alias": "initialQueryCategoryField"; "required": false; }; "initialQueryCategoryValue": { "alias": "initialQueryCategoryValue"; "required": false; }; "initialFilters": { "alias": "initialFilters"; "required": false; }; }, {}, never, never, true, never>;
|
|
3491
3746
|
}
|
|
3492
3747
|
|
|
3493
3748
|
/**
|
|
@@ -3566,6 +3821,8 @@ interface PieChartConfigResult extends WidgetConfigResult {
|
|
|
3566
3821
|
queryName?: string;
|
|
3567
3822
|
queryFamily?: QueryFamily;
|
|
3568
3823
|
ignoreTimeFilter?: boolean;
|
|
3824
|
+
/** Asset-scope binding: id of the entity selector whose selection scopes the stream-data query. */
|
|
3825
|
+
entitySelectorId?: string;
|
|
3569
3826
|
categoryField: string;
|
|
3570
3827
|
valueField: string;
|
|
3571
3828
|
ckQueryTarget?: CkQueryTarget;
|
|
@@ -3590,6 +3847,7 @@ declare class PieChartConfigDialogComponent implements OnInit, AfterViewInit {
|
|
|
3590
3847
|
initialQueryName?: string;
|
|
3591
3848
|
initialQueryFamily?: QueryFamily;
|
|
3592
3849
|
initialIgnoreTimeFilter?: boolean;
|
|
3850
|
+
initialEntitySelectorId?: string;
|
|
3593
3851
|
initialChartType?: PieChartType;
|
|
3594
3852
|
initialCategoryField?: string;
|
|
3595
3853
|
initialValueField?: string;
|
|
@@ -3618,6 +3876,7 @@ declare class PieChartConfigDialogComponent implements OnInit, AfterViewInit {
|
|
|
3618
3876
|
selectedPersistentQuery: PersistentQueryItem | null;
|
|
3619
3877
|
/** Stream-data opt-out: when true the MeshBoard time filter is not bound to the query. */
|
|
3620
3878
|
ignoreTimeFilter: boolean;
|
|
3879
|
+
entitySelectorId?: string;
|
|
3621
3880
|
queryColumns: QueryColumnItem[];
|
|
3622
3881
|
filters: FieldFilterItem[];
|
|
3623
3882
|
filterVariables: FilterVariable[];
|
|
@@ -3638,6 +3897,8 @@ declare class PieChartConfigDialogComponent implements OnInit, AfterViewInit {
|
|
|
3638
3897
|
get isValid(): boolean;
|
|
3639
3898
|
/** Family of the currently selected query; drives the time-filter toggle's visibility. */
|
|
3640
3899
|
get selectedQueryFamily(): QueryFamily | null;
|
|
3900
|
+
/** Entity selectors available on the current MeshBoard (for the scope picker). */
|
|
3901
|
+
get availableEntitySelectors(): EntitySelectorConfig[];
|
|
3641
3902
|
ngOnInit(): Promise<void>;
|
|
3642
3903
|
ngAfterViewInit(): Promise<void>;
|
|
3643
3904
|
onDataSourceTypeChange(dataSourceType: DataSourceType): void;
|
|
@@ -3655,7 +3916,7 @@ declare class PieChartConfigDialogComponent implements OnInit, AfterViewInit {
|
|
|
3655
3916
|
onSave(): void;
|
|
3656
3917
|
onCancel(): void;
|
|
3657
3918
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<PieChartConfigDialogComponent, never>;
|
|
3658
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<PieChartConfigDialogComponent, "mm-pie-chart-config-dialog", never, { "initialDataSourceType": { "alias": "initialDataSourceType"; "required": false; }; "initialQueryRtId": { "alias": "initialQueryRtId"; "required": false; }; "initialQueryName": { "alias": "initialQueryName"; "required": false; }; "initialQueryFamily": { "alias": "initialQueryFamily"; "required": false; }; "initialIgnoreTimeFilter": { "alias": "initialIgnoreTimeFilter"; "required": false; }; "initialChartType": { "alias": "initialChartType"; "required": false; }; "initialCategoryField": { "alias": "initialCategoryField"; "required": false; }; "initialValueField": { "alias": "initialValueField"; "required": false; }; "initialShowLabels": { "alias": "initialShowLabels"; "required": false; }; "initialShowLegend": { "alias": "initialShowLegend"; "required": false; }; "initialLegendPosition": { "alias": "initialLegendPosition"; "required": false; }; "initialCkQueryTarget": { "alias": "initialCkQueryTarget"; "required": false; }; "initialCkGroupBy": { "alias": "initialCkGroupBy"; "required": false; }; "initialFilters": { "alias": "initialFilters"; "required": false; }; }, {}, never, never, true, never>;
|
|
3919
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<PieChartConfigDialogComponent, "mm-pie-chart-config-dialog", never, { "initialDataSourceType": { "alias": "initialDataSourceType"; "required": false; }; "initialQueryRtId": { "alias": "initialQueryRtId"; "required": false; }; "initialQueryName": { "alias": "initialQueryName"; "required": false; }; "initialQueryFamily": { "alias": "initialQueryFamily"; "required": false; }; "initialIgnoreTimeFilter": { "alias": "initialIgnoreTimeFilter"; "required": false; }; "initialEntitySelectorId": { "alias": "initialEntitySelectorId"; "required": false; }; "initialChartType": { "alias": "initialChartType"; "required": false; }; "initialCategoryField": { "alias": "initialCategoryField"; "required": false; }; "initialValueField": { "alias": "initialValueField"; "required": false; }; "initialShowLabels": { "alias": "initialShowLabels"; "required": false; }; "initialShowLegend": { "alias": "initialShowLegend"; "required": false; }; "initialLegendPosition": { "alias": "initialLegendPosition"; "required": false; }; "initialCkQueryTarget": { "alias": "initialCkQueryTarget"; "required": false; }; "initialCkGroupBy": { "alias": "initialCkGroupBy"; "required": false; }; "initialFilters": { "alias": "initialFilters"; "required": false; }; }, {}, never, never, true, never>;
|
|
3659
3920
|
}
|
|
3660
3921
|
|
|
3661
3922
|
/**
|
|
@@ -3762,6 +4023,8 @@ interface BarChartConfigResult extends WidgetConfigResult {
|
|
|
3762
4023
|
queryName?: string;
|
|
3763
4024
|
queryFamily?: QueryFamily;
|
|
3764
4025
|
ignoreTimeFilter?: boolean;
|
|
4026
|
+
/** Asset-scope binding: id of the entity selector whose selection scopes the stream-data query. */
|
|
4027
|
+
entitySelectorId?: string;
|
|
3765
4028
|
chartType: BarChartType;
|
|
3766
4029
|
categoryField: string;
|
|
3767
4030
|
series: BarChartSeries[];
|
|
@@ -3790,6 +4053,7 @@ declare class BarChartConfigDialogComponent implements OnInit {
|
|
|
3790
4053
|
initialQueryName?: string;
|
|
3791
4054
|
initialQueryFamily?: QueryFamily;
|
|
3792
4055
|
initialIgnoreTimeFilter?: boolean;
|
|
4056
|
+
initialEntitySelectorId?: string;
|
|
3793
4057
|
initialChartType?: BarChartType;
|
|
3794
4058
|
initialCategoryField?: string;
|
|
3795
4059
|
initialSeries?: BarChartSeries[];
|
|
@@ -3808,6 +4072,10 @@ declare class BarChartConfigDialogComponent implements OnInit {
|
|
|
3808
4072
|
numericColumns: QueryColumnItem[];
|
|
3809
4073
|
/** Per-widget opt-out of the MeshBoard time-filter → stream-data binding. */
|
|
3810
4074
|
ignoreTimeFilter: boolean;
|
|
4075
|
+
/** Asset-scope binding: id of the entity selector whose selection scopes the stream-data query. */
|
|
4076
|
+
entitySelectorId?: string;
|
|
4077
|
+
/** Entity selectors available on the current MeshBoard (for the scope picker). */
|
|
4078
|
+
get availableEntitySelectors(): EntitySelectorConfig[];
|
|
3811
4079
|
/** Family of the currently selected query — gates the time-filter opt-out toggle. */
|
|
3812
4080
|
get selectedQueryFamily(): QueryFamily | null;
|
|
3813
4081
|
filters: FieldFilterItem[];
|
|
@@ -3851,7 +4119,7 @@ declare class BarChartConfigDialogComponent implements OnInit {
|
|
|
3851
4119
|
removeColorThreshold(index: number): void;
|
|
3852
4120
|
onCancel(): void;
|
|
3853
4121
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<BarChartConfigDialogComponent, never>;
|
|
3854
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<BarChartConfigDialogComponent, "mm-bar-chart-config-dialog", never, { "initialQueryRtId": { "alias": "initialQueryRtId"; "required": false; }; "initialQueryName": { "alias": "initialQueryName"; "required": false; }; "initialQueryFamily": { "alias": "initialQueryFamily"; "required": false; }; "initialIgnoreTimeFilter": { "alias": "initialIgnoreTimeFilter"; "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>;
|
|
4122
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<BarChartConfigDialogComponent, "mm-bar-chart-config-dialog", never, { "initialQueryRtId": { "alias": "initialQueryRtId"; "required": false; }; "initialQueryName": { "alias": "initialQueryName"; "required": false; }; "initialQueryFamily": { "alias": "initialQueryFamily"; "required": false; }; "initialIgnoreTimeFilter": { "alias": "initialIgnoreTimeFilter"; "required": false; }; "initialEntitySelectorId": { "alias": "initialEntitySelectorId"; "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>;
|
|
3855
4123
|
}
|
|
3856
4124
|
|
|
3857
4125
|
/**
|
|
@@ -3860,8 +4128,14 @@ declare class BarChartConfigDialogComponent implements OnInit {
|
|
|
3860
4128
|
interface LineSeriesData {
|
|
3861
4129
|
name: string;
|
|
3862
4130
|
data: (number | null)[];
|
|
4131
|
+
/** min/max envelope per category (downsampling only); rendered as a rangeArea band. */
|
|
4132
|
+
band?: ({
|
|
4133
|
+
from: number;
|
|
4134
|
+
to: number;
|
|
4135
|
+
} | null)[];
|
|
3863
4136
|
unit?: string;
|
|
3864
4137
|
axisName?: string;
|
|
4138
|
+
color?: string;
|
|
3865
4139
|
}
|
|
3866
4140
|
/**
|
|
3867
4141
|
* Value axis configuration
|
|
@@ -3871,8 +4145,14 @@ interface ValueAxisConfig {
|
|
|
3871
4145
|
unit: string;
|
|
3872
4146
|
position: 'left' | 'right';
|
|
3873
4147
|
}
|
|
3874
|
-
declare class LineChartWidgetComponent implements DashboardWidget<LineChartWidgetConfig, LineSeriesData[]>,
|
|
4148
|
+
declare class LineChartWidgetComponent implements DashboardWidget<LineChartWidgetConfig, LineSeriesData[]>, AfterViewInit, OnChanges, OnDestroy {
|
|
3875
4149
|
private readonly queryExecutor;
|
|
4150
|
+
private readonly elementRef;
|
|
4151
|
+
private readonly ngZone;
|
|
4152
|
+
private resizeObserver?;
|
|
4153
|
+
private resizeTimer?;
|
|
4154
|
+
/** The downsampling `limit` used by the last load; 0 when the last load wasn't downsampled. */
|
|
4155
|
+
private lastLimit;
|
|
3876
4156
|
private static readonly SUPPORTED_ROW_TYPES;
|
|
3877
4157
|
private readonly stateService;
|
|
3878
4158
|
private readonly variableService;
|
|
@@ -3883,11 +4163,17 @@ declare class LineChartWidgetComponent implements DashboardWidget<LineChartWidge
|
|
|
3883
4163
|
private readonly _valueAxes;
|
|
3884
4164
|
private readonly _error;
|
|
3885
4165
|
private readonly _seriesUnitMap;
|
|
4166
|
+
private readonly _dataInfo;
|
|
3886
4167
|
readonly isLoading: _angular_core.Signal<boolean>;
|
|
3887
4168
|
readonly categories: _angular_core.Signal<string[]>;
|
|
3888
4169
|
readonly seriesData: _angular_core.Signal<LineSeriesData[]>;
|
|
3889
4170
|
readonly valueAxes: _angular_core.Signal<ValueAxisConfig[]>;
|
|
3890
4171
|
readonly error: _angular_core.Signal<string | null>;
|
|
4172
|
+
readonly dataInfo: _angular_core.Signal<{
|
|
4173
|
+
rows: number;
|
|
4174
|
+
points: number;
|
|
4175
|
+
total: number;
|
|
4176
|
+
} | null>;
|
|
3891
4177
|
readonly data: _angular_core.Signal<LineSeriesData[]>;
|
|
3892
4178
|
readonly plotBands: _angular_core.Signal<{
|
|
3893
4179
|
from: number;
|
|
@@ -3919,7 +4205,15 @@ declare class LineChartWidgetComponent implements DashboardWidget<LineChartWidge
|
|
|
3919
4205
|
categoryLabelContent: (e: {
|
|
3920
4206
|
value: string;
|
|
3921
4207
|
}) => string;
|
|
3922
|
-
|
|
4208
|
+
ngAfterViewInit(): void;
|
|
4209
|
+
ngOnDestroy(): void;
|
|
4210
|
+
/**
|
|
4211
|
+
* FE-2: when the chart is resized so the pixel-derived bucket count would change materially
|
|
4212
|
+
* (>15%), re-query at the new resolution after a 300 ms debounce. Only relevant while
|
|
4213
|
+
* downsampling is active (lastLimit > 0); raw charts don't depend on width.
|
|
4214
|
+
*/
|
|
4215
|
+
private setupResizeObserver;
|
|
4216
|
+
private onResize;
|
|
3923
4217
|
ngOnChanges(changes: SimpleChanges): void;
|
|
3924
4218
|
refresh(): void;
|
|
3925
4219
|
hasValidConfig(): boolean;
|
|
@@ -3927,6 +4221,11 @@ declare class LineChartWidgetComponent implements DashboardWidget<LineChartWidge
|
|
|
3927
4221
|
getUnitForSeries(seriesName: string): string;
|
|
3928
4222
|
private loadData;
|
|
3929
4223
|
private buildStreamDataArgs;
|
|
4224
|
+
/**
|
|
4225
|
+
* Bucket count for backend downsampling, sized to the rendered width (~1 bucket / 2 px),
|
|
4226
|
+
* clamped to [50, 4000]. Falls back to 1500 before the host has a measured width.
|
|
4227
|
+
*/
|
|
4228
|
+
private computeDownsampleLimit;
|
|
3930
4229
|
/**
|
|
3931
4230
|
* Processes query rows into line chart data.
|
|
3932
4231
|
* Groups by seriesGroupField, orders by categoryField (date), supports multi-axis by unitField.
|
|
@@ -3938,9 +4237,13 @@ declare class LineChartWidgetComponent implements DashboardWidget<LineChartWidge
|
|
|
3938
4237
|
private formatDate;
|
|
3939
4238
|
/**
|
|
3940
4239
|
* Formats a date with time for display on the category axis.
|
|
4240
|
+
* Date and time parts are formatted separately (joined with a space) to keep
|
|
4241
|
+
* the compact axis label; both honor the board's timezone mode.
|
|
3941
4242
|
*/
|
|
3942
4243
|
private formatDateTime;
|
|
3943
4244
|
private sanitizeAxisName;
|
|
4245
|
+
/** Parses a cell value to a number, or null when missing / non-numeric (renders as a gap). */
|
|
4246
|
+
private toNumber;
|
|
3944
4247
|
private convertFiltersToDto;
|
|
3945
4248
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<LineChartWidgetComponent, never>;
|
|
3946
4249
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<LineChartWidgetComponent, "mm-line-chart-widget", never, { "config": { "alias": "config"; "required": false; }; }, {}, never, never, true, never>;
|
|
@@ -3954,6 +4257,8 @@ interface LineChartConfigResult extends WidgetConfigResult {
|
|
|
3954
4257
|
queryName?: string;
|
|
3955
4258
|
queryFamily?: QueryFamily;
|
|
3956
4259
|
ignoreTimeFilter?: boolean;
|
|
4260
|
+
/** Asset-scope binding: id of the entity selector whose selection scopes the stream-data query. */
|
|
4261
|
+
entitySelectorId?: string;
|
|
3957
4262
|
chartType: LineChartType;
|
|
3958
4263
|
categoryField: string;
|
|
3959
4264
|
seriesGroupField: string;
|
|
@@ -3979,6 +4284,7 @@ declare class LineChartConfigDialogComponent implements OnInit {
|
|
|
3979
4284
|
initialQueryName?: string;
|
|
3980
4285
|
initialQueryFamily?: QueryFamily;
|
|
3981
4286
|
initialIgnoreTimeFilter?: boolean;
|
|
4287
|
+
initialEntitySelectorId?: string;
|
|
3982
4288
|
initialChartType?: LineChartType;
|
|
3983
4289
|
initialCategoryField?: string;
|
|
3984
4290
|
initialSeriesGroupField?: string;
|
|
@@ -3997,6 +4303,10 @@ declare class LineChartConfigDialogComponent implements OnInit {
|
|
|
3997
4303
|
nonNumericColumns: QueryColumnItem[];
|
|
3998
4304
|
/** Per-widget opt-out of the MeshBoard time-filter → stream-data binding. */
|
|
3999
4305
|
ignoreTimeFilter: boolean;
|
|
4306
|
+
/** Asset-scope binding: id of the entity selector whose selection scopes the stream-data query. */
|
|
4307
|
+
entitySelectorId?: string;
|
|
4308
|
+
/** Entity selectors available on the current MeshBoard (for the scope picker). */
|
|
4309
|
+
get availableEntitySelectors(): EntitySelectorConfig[];
|
|
4000
4310
|
/** Family of the currently selected query — gates the time-filter opt-out toggle. */
|
|
4001
4311
|
get selectedQueryFamily(): QueryFamily | null;
|
|
4002
4312
|
filters: FieldFilterItem[];
|
|
@@ -4032,7 +4342,7 @@ declare class LineChartConfigDialogComponent implements OnInit {
|
|
|
4032
4342
|
removeReferenceLine(index: number): void;
|
|
4033
4343
|
onCancel(): void;
|
|
4034
4344
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<LineChartConfigDialogComponent, never>;
|
|
4035
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<LineChartConfigDialogComponent, "mm-line-chart-config-dialog", never, { "initialQueryRtId": { "alias": "initialQueryRtId"; "required": false; }; "initialQueryName": { "alias": "initialQueryName"; "required": false; }; "initialQueryFamily": { "alias": "initialQueryFamily"; "required": false; }; "initialIgnoreTimeFilter": { "alias": "initialIgnoreTimeFilter"; "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>;
|
|
4345
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<LineChartConfigDialogComponent, "mm-line-chart-config-dialog", never, { "initialQueryRtId": { "alias": "initialQueryRtId"; "required": false; }; "initialQueryName": { "alias": "initialQueryName"; "required": false; }; "initialQueryFamily": { "alias": "initialQueryFamily"; "required": false; }; "initialIgnoreTimeFilter": { "alias": "initialIgnoreTimeFilter"; "required": false; }; "initialEntitySelectorId": { "alias": "initialEntitySelectorId"; "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>;
|
|
4036
4346
|
}
|
|
4037
4347
|
|
|
4038
4348
|
/**
|
|
@@ -4115,7 +4425,6 @@ declare class HeatmapWidgetComponent implements DashboardWidget<HeatmapWidgetCon
|
|
|
4115
4425
|
private assignColors;
|
|
4116
4426
|
private aggregate;
|
|
4117
4427
|
private parseDate;
|
|
4118
|
-
private formatDateKey;
|
|
4119
4428
|
private convertFiltersToDto;
|
|
4120
4429
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<HeatmapWidgetComponent, never>;
|
|
4121
4430
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<HeatmapWidgetComponent, "mm-heatmap-widget", never, { "config": { "alias": "config"; "required": false; }; }, {}, never, never, true, never>;
|
|
@@ -4129,6 +4438,8 @@ interface HeatmapConfigResult extends WidgetConfigResult {
|
|
|
4129
4438
|
queryName?: string;
|
|
4130
4439
|
queryFamily?: QueryFamily;
|
|
4131
4440
|
ignoreTimeFilter?: boolean;
|
|
4441
|
+
/** Asset-scope binding: id of the entity selector whose selection scopes the stream-data query. */
|
|
4442
|
+
entitySelectorId?: string;
|
|
4132
4443
|
dateField: string;
|
|
4133
4444
|
dateEndField?: string;
|
|
4134
4445
|
valueField?: string;
|
|
@@ -4151,6 +4462,7 @@ declare class HeatmapConfigDialogComponent implements OnInit {
|
|
|
4151
4462
|
initialQueryName?: string;
|
|
4152
4463
|
initialQueryFamily?: QueryFamily;
|
|
4153
4464
|
initialIgnoreTimeFilter?: boolean;
|
|
4465
|
+
initialEntitySelectorId?: string;
|
|
4154
4466
|
initialDateField?: string;
|
|
4155
4467
|
initialDateEndField?: string;
|
|
4156
4468
|
initialValueField?: string;
|
|
@@ -4166,6 +4478,7 @@ declare class HeatmapConfigDialogComponent implements OnInit {
|
|
|
4166
4478
|
isLoadingColumns: boolean;
|
|
4167
4479
|
selectedPersistentQuery: PersistentQueryItem | null;
|
|
4168
4480
|
ignoreTimeFilter: boolean;
|
|
4481
|
+
entitySelectorId?: string;
|
|
4169
4482
|
queryColumns: QueryColumnItem[];
|
|
4170
4483
|
numericColumns: QueryColumnItem[];
|
|
4171
4484
|
dateTimeColumns: QueryColumnItem[];
|
|
@@ -4201,6 +4514,8 @@ declare class HeatmapConfigDialogComponent implements OnInit {
|
|
|
4201
4514
|
valueMultiplier: number;
|
|
4202
4515
|
};
|
|
4203
4516
|
get isValid(): boolean;
|
|
4517
|
+
/** Entity selectors available on the current MeshBoard (for the scope picker). */
|
|
4518
|
+
get availableEntitySelectors(): EntitySelectorConfig[];
|
|
4204
4519
|
get selectedQueryFamily(): QueryFamily | null;
|
|
4205
4520
|
ngOnInit(): Promise<void>;
|
|
4206
4521
|
onQuerySelected(query: PersistentQueryItem | null): Promise<void>;
|
|
@@ -4215,7 +4530,7 @@ declare class HeatmapConfigDialogComponent implements OnInit {
|
|
|
4215
4530
|
onSave(): void;
|
|
4216
4531
|
onCancel(): void;
|
|
4217
4532
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<HeatmapConfigDialogComponent, never>;
|
|
4218
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<HeatmapConfigDialogComponent, "mm-heatmap-config-dialog", never, { "initialQueryRtId": { "alias": "initialQueryRtId"; "required": false; }; "initialQueryName": { "alias": "initialQueryName"; "required": false; }; "initialQueryFamily": { "alias": "initialQueryFamily"; "required": false; }; "initialIgnoreTimeFilter": { "alias": "initialIgnoreTimeFilter"; "required": false; }; "initialDateField": { "alias": "initialDateField"; "required": false; }; "initialDateEndField": { "alias": "initialDateEndField"; "required": false; }; "initialValueField": { "alias": "initialValueField"; "required": false; }; "initialAggregation": { "alias": "initialAggregation"; "required": false; }; "initialColorScheme": { "alias": "initialColorScheme"; "required": false; }; "initialShowLegend": { "alias": "initialShowLegend"; "required": false; }; "initialLegendPosition": { "alias": "initialLegendPosition"; "required": false; }; "initialDecimalPlaces": { "alias": "initialDecimalPlaces"; "required": false; }; "initialCompactNumbers": { "alias": "initialCompactNumbers"; "required": false; }; "initialValueMultiplier": { "alias": "initialValueMultiplier"; "required": false; }; "initialFilters": { "alias": "initialFilters"; "required": false; }; }, {}, never, never, true, never>;
|
|
4533
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<HeatmapConfigDialogComponent, "mm-heatmap-config-dialog", never, { "initialQueryRtId": { "alias": "initialQueryRtId"; "required": false; }; "initialQueryName": { "alias": "initialQueryName"; "required": false; }; "initialQueryFamily": { "alias": "initialQueryFamily"; "required": false; }; "initialIgnoreTimeFilter": { "alias": "initialIgnoreTimeFilter"; "required": false; }; "initialEntitySelectorId": { "alias": "initialEntitySelectorId"; "required": false; }; "initialDateField": { "alias": "initialDateField"; "required": false; }; "initialDateEndField": { "alias": "initialDateEndField"; "required": false; }; "initialValueField": { "alias": "initialValueField"; "required": false; }; "initialAggregation": { "alias": "initialAggregation"; "required": false; }; "initialColorScheme": { "alias": "initialColorScheme"; "required": false; }; "initialShowLegend": { "alias": "initialShowLegend"; "required": false; }; "initialLegendPosition": { "alias": "initialLegendPosition"; "required": false; }; "initialDecimalPlaces": { "alias": "initialDecimalPlaces"; "required": false; }; "initialCompactNumbers": { "alias": "initialCompactNumbers"; "required": false; }; "initialValueMultiplier": { "alias": "initialValueMultiplier"; "required": false; }; "initialFilters": { "alias": "initialFilters"; "required": false; }; }, {}, never, never, true, never>;
|
|
4219
4534
|
}
|
|
4220
4535
|
|
|
4221
4536
|
interface StatValue {
|
|
@@ -4228,6 +4543,9 @@ interface StatValue {
|
|
|
4228
4543
|
}
|
|
4229
4544
|
declare class StatsGridWidgetComponent implements OnInit, OnChanges {
|
|
4230
4545
|
private readonly dataService;
|
|
4546
|
+
private readonly queryExecutor;
|
|
4547
|
+
private readonly stateService;
|
|
4548
|
+
private readonly variableService;
|
|
4231
4549
|
config: StatsGridWidgetConfig;
|
|
4232
4550
|
private readonly _isLoading;
|
|
4233
4551
|
private readonly _error;
|
|
@@ -4244,6 +4562,14 @@ declare class StatsGridWidgetComponent implements OnInit, OnChanges {
|
|
|
4244
4562
|
ngOnChanges(changes: SimpleChanges): void;
|
|
4245
4563
|
refresh(): void;
|
|
4246
4564
|
private loadData;
|
|
4565
|
+
/**
|
|
4566
|
+
* Resolves a single stat's value: a per-stat persistent query (runtime or
|
|
4567
|
+
* stream-data) when configured, otherwise the runtime aggregation result.
|
|
4568
|
+
*/
|
|
4569
|
+
private resolveStatValue;
|
|
4570
|
+
private loadPersistentQueryValue;
|
|
4571
|
+
private buildStreamDataArgs;
|
|
4572
|
+
private convertFiltersToDto;
|
|
4247
4573
|
private getColorClass;
|
|
4248
4574
|
formatValue(stat: StatValue): string;
|
|
4249
4575
|
get gridColumns(): number;
|
|
@@ -4257,6 +4583,7 @@ interface StatsGridConfigResult extends WidgetConfigResult {
|
|
|
4257
4583
|
queries: AggregationQuery[];
|
|
4258
4584
|
columns: number;
|
|
4259
4585
|
}
|
|
4586
|
+
type StatSourceType = 'aggregation' | 'persistentQuery';
|
|
4260
4587
|
interface ColorOption {
|
|
4261
4588
|
value: StatColor;
|
|
4262
4589
|
label: string;
|
|
@@ -4269,17 +4596,25 @@ interface CkTypeOption {
|
|
|
4269
4596
|
interface EditableStat {
|
|
4270
4597
|
id: string;
|
|
4271
4598
|
label: string;
|
|
4599
|
+
sourceType: StatSourceType;
|
|
4272
4600
|
ckTypeId: string;
|
|
4273
4601
|
aggregation: AggregationType;
|
|
4602
|
+
persistentQuerySource?: PersistentQueryCellSource;
|
|
4274
4603
|
color: StatColor;
|
|
4275
4604
|
prefix?: string;
|
|
4276
4605
|
suffix?: string;
|
|
4277
4606
|
}
|
|
4278
4607
|
declare class StatsGridConfigDialogComponent implements OnInit {
|
|
4279
4608
|
private readonly windowRef;
|
|
4609
|
+
private readonly stateService;
|
|
4280
4610
|
initialStats?: StatItem[];
|
|
4281
4611
|
initialQueries?: AggregationQuery[];
|
|
4282
4612
|
initialColumns?: number;
|
|
4613
|
+
entitySelectors: EntitySelectorConfig[];
|
|
4614
|
+
sourceTypeOptions: {
|
|
4615
|
+
value: StatSourceType;
|
|
4616
|
+
label: string;
|
|
4617
|
+
}[];
|
|
4283
4618
|
colorOptions: ColorOption[];
|
|
4284
4619
|
ckTypeOptions: CkTypeOption[];
|
|
4285
4620
|
filteredCkTypeOptions: CkTypeOption[];
|
|
@@ -4764,6 +5099,9 @@ interface TileValue {
|
|
|
4764
5099
|
declare class SummaryCardWidgetComponent implements DashboardWidget<SummaryCardWidgetConfig, TileValue[]>, OnInit, OnChanges {
|
|
4765
5100
|
private readonly entityGQL;
|
|
4766
5101
|
private readonly dataService;
|
|
5102
|
+
private readonly queryExecutor;
|
|
5103
|
+
private readonly stateService;
|
|
5104
|
+
private readonly variableService;
|
|
4767
5105
|
config: SummaryCardWidgetConfig;
|
|
4768
5106
|
private readonly _isLoading;
|
|
4769
5107
|
private readonly _error;
|
|
@@ -4778,6 +5116,9 @@ declare class SummaryCardWidgetComponent implements DashboardWidget<SummaryCardW
|
|
|
4778
5116
|
refresh(): void;
|
|
4779
5117
|
private loadData;
|
|
4780
5118
|
private fetchTileValue;
|
|
5119
|
+
private fetchPersistentQueryValue;
|
|
5120
|
+
private buildStreamDataArgs;
|
|
5121
|
+
private convertFiltersToDto;
|
|
4781
5122
|
private fetchEntityAttributes;
|
|
4782
5123
|
private formatValue;
|
|
4783
5124
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SummaryCardWidgetComponent, never>;
|
|
@@ -4788,6 +5129,7 @@ interface SummaryCardConfigResult extends WidgetConfigResult {
|
|
|
4788
5129
|
columns: number;
|
|
4789
5130
|
tiles: SummaryCardTile[];
|
|
4790
5131
|
}
|
|
5132
|
+
type TileSourceType = 'entity' | 'aggregation' | 'persistentQuery';
|
|
4791
5133
|
interface EditableTile {
|
|
4792
5134
|
id: string;
|
|
4793
5135
|
label: string;
|
|
@@ -4795,24 +5137,27 @@ interface EditableTile {
|
|
|
4795
5137
|
suffix: string;
|
|
4796
5138
|
color: string;
|
|
4797
5139
|
size: string;
|
|
4798
|
-
sourceType:
|
|
5140
|
+
sourceType: TileSourceType;
|
|
4799
5141
|
rtId: string;
|
|
4800
5142
|
ckTypeId: string;
|
|
4801
5143
|
attributePath: string;
|
|
4802
5144
|
aggregation: string;
|
|
4803
5145
|
aggAttribute: string;
|
|
5146
|
+
persistentQuerySource?: PersistentQueryCellSource;
|
|
4804
5147
|
}
|
|
4805
5148
|
declare class SummaryCardConfigDialogComponent implements OnInit {
|
|
4806
5149
|
private readonly windowRef;
|
|
5150
|
+
private readonly stateService;
|
|
4807
5151
|
initialColumns?: number;
|
|
4808
5152
|
initialTiles?: SummaryCardTile[];
|
|
5153
|
+
entitySelectors: EntitySelectorConfig[];
|
|
4809
5154
|
form: {
|
|
4810
5155
|
columns: number;
|
|
4811
5156
|
tiles: EditableTile[];
|
|
4812
5157
|
};
|
|
4813
5158
|
colorOptions: string[];
|
|
4814
5159
|
sizeOptions: string[];
|
|
4815
|
-
sourceTypeOptions:
|
|
5160
|
+
sourceTypeOptions: TileSourceType[];
|
|
4816
5161
|
aggregationOptions: string[];
|
|
4817
5162
|
get isValid(): boolean;
|
|
4818
5163
|
ngOnInit(): void;
|
|
@@ -4882,6 +5227,7 @@ declare class AlertBannerConfigDialogComponent {
|
|
|
4882
5227
|
|
|
4883
5228
|
declare class AlertListWidgetComponent implements DashboardWidget<AlertListWidgetConfig, AlertItem[]>, OnInit, OnChanges {
|
|
4884
5229
|
private readonly getEntitiesByCkTypeGQL;
|
|
5230
|
+
private readonly stateService;
|
|
4885
5231
|
config: AlertListWidgetConfig;
|
|
4886
5232
|
private readonly _isLoading;
|
|
4887
5233
|
private readonly _error;
|
|
@@ -5172,6 +5518,10 @@ declare class EntitySelectorEditorComponent {
|
|
|
5172
5518
|
protected editMappings: EntitySelectorAttributeMapping[];
|
|
5173
5519
|
protected editShowInToolbar: boolean;
|
|
5174
5520
|
protected editDefaultRtId: string;
|
|
5521
|
+
protected editChildScopeTargetCkTypeId: string;
|
|
5522
|
+
protected editChildScopeTargetCkTypeItem: CkTypeSelectorItem | null;
|
|
5523
|
+
protected editChildScopeRoleId: string;
|
|
5524
|
+
protected editChildScopeDirection: 'in' | 'out';
|
|
5175
5525
|
protected defaultEntityDataSource: RuntimeEntitySelectDataSource$1 | null;
|
|
5176
5526
|
protected defaultEntityDialogDataSource: RuntimeEntityDialogDataSource$1 | null;
|
|
5177
5527
|
/**
|
|
@@ -5198,6 +5548,14 @@ declare class EntitySelectorEditorComponent {
|
|
|
5198
5548
|
* Opens the attribute selector dialog to pick attributes for variable mappings.
|
|
5199
5549
|
*/
|
|
5200
5550
|
selectAttributes(): Promise<void>;
|
|
5551
|
+
/**
|
|
5552
|
+
* Handles child-scope target CK type selection.
|
|
5553
|
+
*/
|
|
5554
|
+
onChildScopeCkTypeSelected(ckType: CkTypeSelectorItem): void;
|
|
5555
|
+
/**
|
|
5556
|
+
* Handles child-scope target CK type cleared.
|
|
5557
|
+
*/
|
|
5558
|
+
onChildScopeCkTypeCleared(): void;
|
|
5201
5559
|
/**
|
|
5202
5560
|
* Handles default entity selection from the entity picker.
|
|
5203
5561
|
*/
|
|
@@ -5442,6 +5800,13 @@ declare class MeshBoardViewComponent implements OnInit, OnDestroy, HasUnsavedCha
|
|
|
5442
5800
|
* URL params take precedence over stored selection to support page reload.
|
|
5443
5801
|
*/
|
|
5444
5802
|
private initializeTimeFilterVariables;
|
|
5803
|
+
/**
|
|
5804
|
+
* Recomputes the active time-filter range from the current selection on the
|
|
5805
|
+
* board's (possibly just-changed) timezone mode and republishes the
|
|
5806
|
+
* `$timeRangeFrom`/`$timeRangeTo` variables. No-op when the filter is
|
|
5807
|
+
* disabled or no selection is active.
|
|
5808
|
+
*/
|
|
5809
|
+
private reapplyTimeFilterRange;
|
|
5445
5810
|
/**
|
|
5446
5811
|
* Converts a TimeRangeSelection to a SharedTimeRangeSelection.
|
|
5447
5812
|
*/
|
|
@@ -5626,6 +5991,16 @@ declare class MeshBoardViewComponent implements OnInit, OnDestroy, HasUnsavedCha
|
|
|
5626
5991
|
* Resolves variables for an entity selector by fetching entity attributes.
|
|
5627
5992
|
*/
|
|
5628
5993
|
private resolveEntitySelectorVariables;
|
|
5994
|
+
/**
|
|
5995
|
+
* Resolves the set of source rtIds that a stream-data widget bound to this
|
|
5996
|
+
* selector should be scoped to, and caches them on the state service.
|
|
5997
|
+
*
|
|
5998
|
+
* When the selector defines a {@link EntitySelectorChildScope}, the picked
|
|
5999
|
+
* entity's children of `targetCkTypeId` reached via `roleId`/`direction`
|
|
6000
|
+
* become the scope (e.g. MeteringPoint → its EnergyMeasurement rtIds). With
|
|
6001
|
+
* no childScope, the picked entity's own rtId is the scope (direct keying).
|
|
6002
|
+
*/
|
|
6003
|
+
private resolveEntitySelectorScopeRtIds;
|
|
5629
6004
|
/**
|
|
5630
6005
|
* Writes entity selector selections to URL query parameters.
|
|
5631
6006
|
* Format: es_<selectorId>=<rtId>
|
|
@@ -5664,7 +6039,8 @@ declare class MeshBoardSettingsResult {
|
|
|
5664
6039
|
rtWellKnownName?: string | undefined;
|
|
5665
6040
|
entitySelectors?: EntitySelectorConfig[] | undefined;
|
|
5666
6041
|
autoRefreshSeconds?: number | undefined;
|
|
5667
|
-
|
|
6042
|
+
timeZoneMode?: MeshBoardTimeZoneMode | undefined;
|
|
6043
|
+
constructor(name: string, description: string, columns: number, rowHeight: number, gap: number, variables: MeshBoardVariable[], timeFilter?: MeshBoardTimeFilterConfig | undefined, rtWellKnownName?: string | undefined, entitySelectors?: EntitySelectorConfig[] | undefined, autoRefreshSeconds?: number | undefined, timeZoneMode?: MeshBoardTimeZoneMode | undefined);
|
|
5668
6044
|
}
|
|
5669
6045
|
/**
|
|
5670
6046
|
* Dialog for editing MeshBoard settings.
|
|
@@ -5690,6 +6066,11 @@ declare class MeshBoardSettingsDialogComponent {
|
|
|
5690
6066
|
timeFilterEnabled: boolean;
|
|
5691
6067
|
defaultSelection?: TimeRangeSelection;
|
|
5692
6068
|
initialDefaultSelection?: TimeRangeSelection$1;
|
|
6069
|
+
/**
|
|
6070
|
+
* Timezone basis for time-filter boundaries and datetime display across all
|
|
6071
|
+
* widgets. Defaults to `'local'` (browser timezone).
|
|
6072
|
+
*/
|
|
6073
|
+
timeZoneMode: MeshBoardTimeZoneMode;
|
|
5693
6074
|
/** Static and time filter variable names for duplicate detection in entity selector editor */
|
|
5694
6075
|
get staticVariableNames(): string[];
|
|
5695
6076
|
get isValid(): boolean;
|
|
@@ -5705,6 +6086,7 @@ declare class MeshBoardSettingsDialogComponent {
|
|
|
5705
6086
|
gap: number;
|
|
5706
6087
|
variables?: MeshBoardVariable[];
|
|
5707
6088
|
timeFilter?: MeshBoardTimeFilterConfig;
|
|
6089
|
+
timeZoneMode?: MeshBoardTimeZoneMode;
|
|
5708
6090
|
entitySelectors?: EntitySelectorConfig[];
|
|
5709
6091
|
autoRefreshSeconds?: number;
|
|
5710
6092
|
}): void;
|
|
@@ -5903,5 +6285,5 @@ declare class MeshBoardManagerDialogComponent implements OnInit {
|
|
|
5903
6285
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<MeshBoardManagerDialogComponent, "mm-meshboard-manager-dialog", never, {}, {}, never, never, true, never>;
|
|
5904
6286
|
}
|
|
5905
6287
|
|
|
5906
|
-
export { AddWidgetDialogComponent, AiInsightsConfigDialogComponent, AiInsightsService, AiInsightsWidgetComponent, AlertBannerConfigDialogComponent, AlertBannerWidgetComponent, AlertListConfigDialogComponent, AlertListWidgetComponent, AssociationsConfigDialogComponent, AutoRefreshTimerService, 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, QueryExecutorService, QuerySelectorComponent, RuntimeEntitySelectorComponent, ServiceHealthConfigDialogComponent, ServiceHealthWidgetComponent, StatsGridConfigDialogComponent, StatsGridWidgetComponent, StatusIndicatorConfigDialogComponent, StatusIndicatorWidgetComponent, StatusListConfigDialogComponent, StatusListWidgetComponent, SummaryCardConfigDialogComponent, SummaryCardWidgetComponent, TableConfigDialogComponent, TableWidgetComponent, TableWidgetDataSourceDirective, WidgetFactoryService, WidgetGroupComponent, WidgetGroupConfigDialogComponent, WidgetNotConfiguredComponent, WidgetRegistryService, classifyQuery, provideDefaultWidgets, provideMeshBoard, provideProcessWidget, provideWidgetRegistrations, queryFamily, registerDefaultWidgets, registerProcessWidget };
|
|
5907
|
-
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, QueryCell, QueryClassification, QueryColumn, QueryColumnInfo, QueryColumnItem, QueryExecutionOptions, QueryExecutionResult, QueryFamily, QueryKind, QueryResultRow, RelativeTimeUnit, RepeaterDataItem, RepeaterQueryDataSource, RuntimeEntityData, RuntimeEntityDataSource, RuntimeEntitySelectorValue, ServiceCallDataSource, ServiceCallType, ServiceHealthConfigResult, ServiceHealthWidgetConfig, StatColor, StatItem, StaticDataSource, StatsGridConfigResult, StatsGridWidgetConfig, StatusIndicatorConfigResult, StatusIndicatorWidgetConfig, StatusListConfigResult, StatusListWidgetConfig, StreamDataExecutionArgs, 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 };
|
|
6288
|
+
export { AddWidgetDialogComponent, AiInsightsConfigDialogComponent, AiInsightsService, AiInsightsWidgetComponent, AlertBannerConfigDialogComponent, AlertBannerWidgetComponent, AlertListConfigDialogComponent, AlertListWidgetComponent, AssociationsConfigDialogComponent, AutoRefreshTimerService, BarChartConfigDialogComponent, BarChartWidgetComponent, DEFAULT_TIME_ZONE_MODE, 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, QueryExecutorService, QuerySelectorComponent, RuntimeEntitySelectorComponent, ServiceHealthConfigDialogComponent, ServiceHealthWidgetComponent, StatsGridConfigDialogComponent, StatsGridWidgetComponent, StatusIndicatorConfigDialogComponent, StatusIndicatorWidgetComponent, StatusListConfigDialogComponent, StatusListWidgetComponent, SummaryCardConfigDialogComponent, SummaryCardWidgetComponent, TableConfigDialogComponent, TableWidgetComponent, TableWidgetDataSourceDirective, WidgetFactoryService, WidgetGroupComponent, WidgetGroupConfigDialogComponent, WidgetNotConfiguredComponent, WidgetRegistryService, classifyQuery, provideDefaultWidgets, provideMeshBoard, provideProcessWidget, provideWidgetRegistrations, queryFamily, registerDefaultWidgets, registerProcessWidget };
|
|
6289
|
+
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, EntitySelectorChildScope, 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, MeshBoardTimeZoneMode, MeshBoardVariable, MeshBoardVariableSource, MeshBoardVariableType, ParentAssociationMode, PersistedDashboard, PersistedMeshBoard, PersistedWidget, PersistedWidgetData, PersistentQueryCellMode, PersistentQueryCellSource, PersistentQueryDataSource, PersistentQueryItem, PieChartConfigResult, PieChartType, PieChartWidgetConfig, ProcessWidgetConfig, Quarter, QueryCell, QueryClassification, QueryColumn, QueryColumnInfo, QueryColumnItem, QueryExecutionOptions, QueryExecutionResult, QueryFamily, QueryKind, QueryResultRow, RelativeTimeUnit, RepeaterDataItem, RepeaterQueryDataSource, RuntimeEntityData, RuntimeEntityDataSource, RuntimeEntitySelectorValue, ServiceCallDataSource, ServiceCallType, ServiceHealthConfigResult, ServiceHealthWidgetConfig, StatColor, StatItem, StaticDataSource, StatsGridConfigResult, StatsGridWidgetConfig, StatusIndicatorConfigResult, StatusIndicatorWidgetConfig, StatusListConfigResult, StatusListWidgetConfig, StreamDataExecutionArgs, 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 };
|