@meshmakers/octo-meshboard 3.4.160 → 3.4.170
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.
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { ProcessWidgetSpecificConfig } from '@meshmakers/octo-process-diagrams';
|
|
2
2
|
import * as _angular_core from '@angular/core';
|
|
3
|
-
import { Signal, AfterViewInit,
|
|
3
|
+
import { Signal, AfterViewInit, OnChanges, EventEmitter, SimpleChanges, Type, OnInit, OnDestroy, EnvironmentProviders, InjectionToken } from '@angular/core';
|
|
4
4
|
import { ControlValueAccessor } from '@angular/forms';
|
|
5
5
|
import * as i1 from '@meshmakers/shared-ui';
|
|
6
|
-
import { EntitySelectDialogDataSource, ColumnDefinition, DialogFetchOptions, DialogFetchResult, EntitySelectInputComponent, FetchDataOptions, FetchResultTyped, TableColumn as TableColumn$1, HasUnsavedChanges, TimeRangePickerLabels, TimeRangeSelection as TimeRangeSelection$1
|
|
6
|
+
import { EntitySelectDialogDataSource, ColumnDefinition, DialogFetchOptions, DialogFetchResult, EntitySelectInputComponent, TimeRange, FetchDataOptions, FetchResultTyped, TableColumn as TableColumn$1, HasUnsavedChanges, TimeRangePickerLabels, TimeRangeSelection as TimeRangeSelection$1 } from '@meshmakers/shared-ui';
|
|
7
7
|
import { Observable, Subject } from 'rxjs';
|
|
8
8
|
import { EntitySelectDataSource, EntitySelectResult } from '@meshmakers/shared-services';
|
|
9
9
|
import * as _meshmakers_octo_services from '@meshmakers/octo-services';
|
|
10
|
-
import { Exact, InputMaybe, Scalars, SearchFilterDto, FieldFilterDto, SortDto, CkTypeSelectorItem, RuntimeEntityItem as RuntimeEntityItem$1, RuntimeEntitySelectDataSource as RuntimeEntitySelectDataSource$1, RuntimeEntityDialogDataSource as RuntimeEntityDialogDataSource$1, AttributeItem, TenantIdProvider } from '@meshmakers/octo-services';
|
|
10
|
+
import { Exact, InputMaybe, Scalars, SearchFilterDto, FieldFilterDto, SortDto, CkTypeSelectorItem, RuntimeEntityItem as RuntimeEntityItem$1, RuntimeEntitySelectDataSource as RuntimeEntitySelectDataSource$1, RuntimeEntityDialogDataSource as RuntimeEntityDialogDataSource$1, QueryModeDto, AttributeItem, TenantIdProvider } from '@meshmakers/octo-services';
|
|
11
11
|
export { RuntimeEntityDialogDataSource, RuntimeEntityItem, RuntimeEntitySelectDataSource, TENANT_ID_PROVIDER, TenantIdProvider } from '@meshmakers/octo-services';
|
|
12
12
|
import * as Apollo from 'apollo-angular';
|
|
13
13
|
import { CkTypeSelectorInputComponent, AttributeValueTypeDto, FieldFilterItem, FilterVariable, PropertyGridItem, PropertyGridConfig, OctoGraphQlDataSource, FieldFilterEditorComponent } from '@meshmakers/octo-ui';
|
|
@@ -16,6 +16,34 @@ import * as _progress_kendo_svg_icons from '@progress/kendo-svg-icons';
|
|
|
16
16
|
import { SVGIcon } from '@progress/kendo-svg-icons';
|
|
17
17
|
import { TileLayoutReorderEvent, TileLayoutResizeEvent } from '@progress/kendo-angular-layout';
|
|
18
18
|
|
|
19
|
+
/**
|
|
20
|
+
* Persistent-query family classification.
|
|
21
|
+
*
|
|
22
|
+
* The query builder persists both runtime-data and stream-data queries as
|
|
23
|
+
* `systemPersistentQuery` entities. They are distinguished by the
|
|
24
|
+
* `queryCkTypeId` field, which carries a substring matching one of the
|
|
25
|
+
* known kinds below.
|
|
26
|
+
*
|
|
27
|
+
* Ordering matters: `GroupingAggregationSdQuery` contains `AggregationSdQuery`
|
|
28
|
+
* as a substring, so the grouping variant must be tested first.
|
|
29
|
+
*/
|
|
30
|
+
type QueryFamily = 'runtime' | 'streamData';
|
|
31
|
+
type QueryKind = 'simple' | 'aggregation' | 'groupingAggregation' | 'downsampling';
|
|
32
|
+
interface QueryClassification {
|
|
33
|
+
family: QueryFamily;
|
|
34
|
+
kind: QueryKind;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Classify a persistent query by its `queryCkTypeId`.
|
|
38
|
+
* Returns `null` for unknown / legacy values; callers decide how to handle them.
|
|
39
|
+
*/
|
|
40
|
+
declare function classifyQuery(queryCkTypeId: string | null | undefined): QueryClassification | null;
|
|
41
|
+
/**
|
|
42
|
+
* Convenience accessor — returns just the family ('runtime' | 'streamData')
|
|
43
|
+
* or null when the query type is unrecognised.
|
|
44
|
+
*/
|
|
45
|
+
declare function queryFamily(queryCkTypeId: string | null | undefined): QueryFamily | null;
|
|
46
|
+
|
|
19
47
|
/**
|
|
20
48
|
* Mapping from diagram exposed property to runtime data source
|
|
21
49
|
*
|
|
@@ -158,6 +186,7 @@ interface ProcessWidgetConfig extends WidgetConfig, ProcessWidgetSpecificConfig
|
|
|
158
186
|
* MeshBoard Widget Models
|
|
159
187
|
* Defines the interfaces for MeshBoard widgets and their data sources
|
|
160
188
|
*/
|
|
189
|
+
|
|
161
190
|
/**
|
|
162
191
|
* All supported data source types
|
|
163
192
|
*/
|
|
@@ -186,7 +215,13 @@ interface StaticDataSource extends WidgetDataSource {
|
|
|
186
215
|
data?: unknown;
|
|
187
216
|
}
|
|
188
217
|
/**
|
|
189
|
-
* Data source that executes a persistent query by its rtId
|
|
218
|
+
* Data source that executes a persistent query by its rtId.
|
|
219
|
+
*
|
|
220
|
+
* Both runtime-data and stream-data persistent queries are referenced through
|
|
221
|
+
* this single data-source type — switching between them is a configuration
|
|
222
|
+
* change, not a different widget. The `queryFamily` discriminator lets the
|
|
223
|
+
* widget pick the correct executor without an extra GraphQL round-trip; when
|
|
224
|
+
* absent it is derived from the query's `queryCkTypeId` at load time.
|
|
190
225
|
*/
|
|
191
226
|
interface PersistentQueryDataSource extends WidgetDataSource {
|
|
192
227
|
type: 'persistentQuery';
|
|
@@ -194,6 +229,8 @@ interface PersistentQueryDataSource extends WidgetDataSource {
|
|
|
194
229
|
queryRtId: string;
|
|
195
230
|
/** Display name of the query (for UI) */
|
|
196
231
|
queryName?: string;
|
|
232
|
+
/** Query family: 'runtime' or 'streamData'. Derived from queryCkTypeId when absent. */
|
|
233
|
+
queryFamily?: QueryFamily;
|
|
197
234
|
}
|
|
198
235
|
/**
|
|
199
236
|
* Aggregation types supported
|
|
@@ -273,6 +310,8 @@ interface RepeaterQueryDataSource extends WidgetDataSource {
|
|
|
273
310
|
queryRtId?: string;
|
|
274
311
|
/** Display name of the query (for UI) */
|
|
275
312
|
queryName?: string;
|
|
313
|
+
/** Query family for the repeater query: 'runtime' or 'streamData'. Derived from queryCkTypeId when absent. */
|
|
314
|
+
queryFamily?: QueryFamily;
|
|
276
315
|
/** Load entities by CK type (Entity Mode) */
|
|
277
316
|
ckTypeId?: string;
|
|
278
317
|
/** Filters for Entity Mode */
|
|
@@ -1044,6 +1083,12 @@ interface MeshBoardConfig {
|
|
|
1044
1083
|
timeFilter?: MeshBoardTimeFilterConfig;
|
|
1045
1084
|
/** Entity selector configurations for the toolbar */
|
|
1046
1085
|
entitySelectors?: EntitySelectorConfig[];
|
|
1086
|
+
/**
|
|
1087
|
+
* Auto-refresh interval in seconds. `undefined` or `0` disables auto-refresh.
|
|
1088
|
+
* When set, the view polls all widgets at this interval and pauses while the
|
|
1089
|
+
* tab is hidden. Stream-data and runtime widgets refresh identically.
|
|
1090
|
+
*/
|
|
1091
|
+
autoRefreshSeconds?: number;
|
|
1047
1092
|
widgets: AnyWidgetConfig[];
|
|
1048
1093
|
}
|
|
1049
1094
|
/** @deprecated Use MeshBoardConfig instead */
|
|
@@ -1105,12 +1150,22 @@ type EntityWidget = DashboardWidget<AnyWidgetConfig, RuntimeEntityData>;
|
|
|
1105
1150
|
type EntityListWidget = DashboardWidget<AnyWidgetConfig, RuntimeEntityData[]>;
|
|
1106
1151
|
|
|
1107
1152
|
/**
|
|
1108
|
-
* Persistent query item for selection in config dialogs
|
|
1153
|
+
* Persistent query item for selection in config dialogs.
|
|
1154
|
+
*
|
|
1155
|
+
* Two CK-type fields are exposed because they mean different things:
|
|
1156
|
+
* - `ckTypeId` — the persistent-query entity's own CK type (e.g.
|
|
1157
|
+
* `RtSimpleSdQuery`, `RtSimpleRtQuery`). This carries
|
|
1158
|
+
* the family marker used for runtime/stream-data
|
|
1159
|
+
* classification.
|
|
1160
|
+
* - `queryCkTypeId` — the CK type the query queries against (e.g.
|
|
1161
|
+
* `Basic.Energy/EnergyMeasurement`). Useful as a label
|
|
1162
|
+
* in pickers; NEVER use for family classification.
|
|
1109
1163
|
*/
|
|
1110
1164
|
interface PersistentQueryItem {
|
|
1111
1165
|
rtId: string;
|
|
1112
1166
|
name: string;
|
|
1113
1167
|
description?: string | null;
|
|
1168
|
+
ckTypeId?: string | null;
|
|
1114
1169
|
queryCkTypeId?: string | null;
|
|
1115
1170
|
}
|
|
1116
1171
|
/**
|
|
@@ -1170,22 +1225,24 @@ declare class GetSystemPersistentQueriesDtoGQL extends Apollo.Query<GetSystemPer
|
|
|
1170
1225
|
|
|
1171
1226
|
/**
|
|
1172
1227
|
* Autocomplete data source for persistent query selection.
|
|
1173
|
-
* Filters queries by search text using GraphQL.
|
|
1228
|
+
* Filters queries by search text using GraphQL, then narrows by family on the client.
|
|
1174
1229
|
*/
|
|
1175
1230
|
declare class PersistentQueryAutocompleteDataSource implements EntitySelectDataSource<PersistentQueryItem> {
|
|
1176
1231
|
private gql;
|
|
1177
|
-
|
|
1232
|
+
private acceptFamilies;
|
|
1233
|
+
constructor(gql: GetSystemPersistentQueriesDtoGQL, acceptFamilies?: readonly QueryFamily[]);
|
|
1178
1234
|
onFilter(filter: string, take?: number): Promise<EntitySelectResult<PersistentQueryItem>>;
|
|
1179
1235
|
onDisplayEntity(entity: PersistentQueryItem): string;
|
|
1180
1236
|
getIdEntity(entity: PersistentQueryItem): string;
|
|
1181
1237
|
}
|
|
1182
1238
|
/**
|
|
1183
1239
|
* Dialog data source for persistent query selection grid.
|
|
1184
|
-
* Provides columns and paginated data for the entity select dialog.
|
|
1240
|
+
* Provides columns and paginated data for the entity select dialog, narrowed by family on the client.
|
|
1185
1241
|
*/
|
|
1186
1242
|
declare class PersistentQueryDialogDataSource implements EntitySelectDialogDataSource<PersistentQueryItem> {
|
|
1187
1243
|
private gql;
|
|
1188
|
-
|
|
1244
|
+
private acceptFamilies;
|
|
1245
|
+
constructor(gql: GetSystemPersistentQueriesDtoGQL, acceptFamilies?: readonly QueryFamily[]);
|
|
1189
1246
|
getColumns(): ColumnDefinition[];
|
|
1190
1247
|
fetchData(options: DialogFetchOptions): Observable<DialogFetchResult<PersistentQueryItem>>;
|
|
1191
1248
|
onDisplayEntity(entity: PersistentQueryItem): string;
|
|
@@ -1206,7 +1263,7 @@ declare class PersistentQueryDialogDataSource implements EntitySelectDialogDataS
|
|
|
1206
1263
|
* </mm-query-selector>
|
|
1207
1264
|
* ```
|
|
1208
1265
|
*/
|
|
1209
|
-
declare class QuerySelectorComponent implements ControlValueAccessor, AfterViewInit {
|
|
1266
|
+
declare class QuerySelectorComponent implements ControlValueAccessor, AfterViewInit, OnChanges {
|
|
1210
1267
|
private readonly getSystemPersistentQueriesGQL;
|
|
1211
1268
|
entitySelect: EntitySelectInputComponent;
|
|
1212
1269
|
/** Placeholder text for the input */
|
|
@@ -1215,16 +1272,29 @@ declare class QuerySelectorComponent implements ControlValueAccessor, AfterViewI
|
|
|
1215
1272
|
hint?: string;
|
|
1216
1273
|
/** Whether the component is disabled */
|
|
1217
1274
|
disabled: boolean;
|
|
1275
|
+
/**
|
|
1276
|
+
* Which query families to show in the picker.
|
|
1277
|
+
* Default: both runtime and stream-data.
|
|
1278
|
+
* Set to `['runtime']` for legacy widgets that cannot consume stream-data,
|
|
1279
|
+
* or `['streamData']` for stream-data-only pickers.
|
|
1280
|
+
*
|
|
1281
|
+
* Filtering happens client-side after a server-side fetch — small per-tenant
|
|
1282
|
+
* query counts make this acceptable; a server-side filter would require a
|
|
1283
|
+
* backend change.
|
|
1284
|
+
*/
|
|
1285
|
+
acceptFamilies: readonly QueryFamily[];
|
|
1218
1286
|
/** Emitted when a query is selected */
|
|
1219
1287
|
querySelected: EventEmitter<PersistentQueryItem | null>;
|
|
1220
1288
|
/** Emitted when queries are loaded (emits the selected query in a single-item array for compatibility) */
|
|
1221
1289
|
queriesLoaded: EventEmitter<PersistentQueryItem[]>;
|
|
1222
|
-
|
|
1223
|
-
|
|
1290
|
+
queryDataSource: PersistentQueryAutocompleteDataSource;
|
|
1291
|
+
queryDialogDataSource: PersistentQueryDialogDataSource;
|
|
1224
1292
|
private selectedQuery;
|
|
1225
1293
|
private onChange;
|
|
1226
1294
|
private onTouched;
|
|
1227
1295
|
constructor();
|
|
1296
|
+
ngOnChanges(changes: SimpleChanges): void;
|
|
1297
|
+
private rebuildDataSources;
|
|
1228
1298
|
ngAfterViewInit(): void;
|
|
1229
1299
|
/**
|
|
1230
1300
|
* Called when an entity is selected from the autocomplete or dialog
|
|
@@ -1244,7 +1314,7 @@ declare class QuerySelectorComponent implements ControlValueAccessor, AfterViewI
|
|
|
1244
1314
|
registerOnTouched(fn: () => void): void;
|
|
1245
1315
|
setDisabledState(isDisabled: boolean): void;
|
|
1246
1316
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<QuerySelectorComponent, never>;
|
|
1247
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<QuerySelectorComponent, "mm-query-selector", never, { "placeholder": { "alias": "placeholder"; "required": false; }; "hint": { "alias": "hint"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; }, { "querySelected": "querySelected"; "queriesLoaded": "queriesLoaded"; }, never, never, true, never>;
|
|
1317
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<QuerySelectorComponent, "mm-query-selector", never, { "placeholder": { "alias": "placeholder"; "required": false; }; "hint": { "alias": "hint"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "acceptFamilies": { "alias": "acceptFamilies"; "required": false; }; }, { "querySelected": "querySelected"; "queriesLoaded": "queriesLoaded"; }, never, never, true, never>;
|
|
1248
1318
|
}
|
|
1249
1319
|
|
|
1250
1320
|
/**
|
|
@@ -1593,6 +1663,7 @@ declare class MeshBoardStateService {
|
|
|
1593
1663
|
variables?: MeshBoardVariable[];
|
|
1594
1664
|
timeFilter?: MeshBoardTimeFilterConfig;
|
|
1595
1665
|
entitySelectors?: EntitySelectorConfig[];
|
|
1666
|
+
autoRefreshSeconds?: number;
|
|
1596
1667
|
}): void;
|
|
1597
1668
|
/**
|
|
1598
1669
|
* Gets current settings for the settings dialog.
|
|
@@ -1607,6 +1678,7 @@ declare class MeshBoardStateService {
|
|
|
1607
1678
|
variables: MeshBoardVariable[];
|
|
1608
1679
|
timeFilter?: MeshBoardTimeFilterConfig;
|
|
1609
1680
|
entitySelectors?: EntitySelectorConfig[];
|
|
1681
|
+
autoRefreshSeconds?: number;
|
|
1610
1682
|
};
|
|
1611
1683
|
/**
|
|
1612
1684
|
* Triggers a refresh of all widgets by creating new config references.
|
|
@@ -1675,6 +1747,18 @@ declare class MeshBoardStateService {
|
|
|
1675
1747
|
* Gets the time filter configuration.
|
|
1676
1748
|
*/
|
|
1677
1749
|
getTimeFilterConfig(): MeshBoardTimeFilterConfig | undefined;
|
|
1750
|
+
/**
|
|
1751
|
+
* Resolves the current time-filter selection to a concrete UTC `{from, to}`
|
|
1752
|
+
* range. Returns `null` when the filter is disabled, no selection exists,
|
|
1753
|
+
* or the selection is incomplete.
|
|
1754
|
+
*
|
|
1755
|
+
* Stream-data persistent queries consume this to bound their result set;
|
|
1756
|
+
* runtime queries ignore it.
|
|
1757
|
+
*
|
|
1758
|
+
* IANA-timezone-aware bucket boundaries are tracked separately (AB#4190);
|
|
1759
|
+
* this helper currently returns UTC boundaries derived from the picker.
|
|
1760
|
+
*/
|
|
1761
|
+
resolveCurrentTimeRange(): TimeRange | null;
|
|
1678
1762
|
/**
|
|
1679
1763
|
* Updates the time filter configuration.
|
|
1680
1764
|
*/
|
|
@@ -1773,7 +1857,7 @@ declare class MeshBoardDataService {
|
|
|
1773
1857
|
private readonly getDashboardEntityGQL;
|
|
1774
1858
|
private readonly getCkModelsWithStateGQL;
|
|
1775
1859
|
private readonly getEntitiesByCkTypeGQL;
|
|
1776
|
-
private readonly
|
|
1860
|
+
private readonly queryExecutor;
|
|
1777
1861
|
private readonly getAssociationTargetsGQL;
|
|
1778
1862
|
private readonly getCkTypeAttributesGQL;
|
|
1779
1863
|
private readonly apollo;
|
|
@@ -1835,10 +1919,12 @@ declare class MeshBoardDataService {
|
|
|
1835
1919
|
*/
|
|
1836
1920
|
fetchRepeaterData(dataSource: RepeaterQueryDataSource): Promise<RepeaterDataItem[]>;
|
|
1837
1921
|
/**
|
|
1838
|
-
* Fetches repeater data from a persistent query.
|
|
1839
|
-
*
|
|
1922
|
+
* Fetches repeater data from a persistent query (runtime or stream-data).
|
|
1923
|
+
* Always sends `streamDataArgs` when a time filter is active — the runtime
|
|
1924
|
+
* path ignores the field, so this is safe regardless of the resolved family.
|
|
1840
1925
|
*/
|
|
1841
1926
|
private fetchRepeaterFromQuery;
|
|
1927
|
+
private buildRepeaterStreamDataArgs;
|
|
1842
1928
|
/**
|
|
1843
1929
|
* Fetches repeater data from entities by CK type.
|
|
1844
1930
|
* Maps entities to RepeaterDataItem objects.
|
|
@@ -2269,6 +2355,109 @@ declare class MeshBoardGridService {
|
|
|
2269
2355
|
/** @deprecated Use MeshBoardGridService instead */
|
|
2270
2356
|
declare const DashboardGridService: typeof MeshBoardGridService;
|
|
2271
2357
|
|
|
2358
|
+
/**
|
|
2359
|
+
* Time-range and downsampling arguments for stream-data persistent queries.
|
|
2360
|
+
* Mirrors the GraphQL input `StreamDataArguments` so widgets can build it
|
|
2361
|
+
* without importing generated DTO types directly. `queryMode` defaults to
|
|
2362
|
+
* `DEFAULT` when not supplied — the backend resolver requires the field but
|
|
2363
|
+
* the persistent query carries its own intrinsic mode that `arg` overrides.
|
|
2364
|
+
*/
|
|
2365
|
+
interface StreamDataExecutionArgs {
|
|
2366
|
+
from?: Date | null;
|
|
2367
|
+
to?: Date | null;
|
|
2368
|
+
interval?: number | null;
|
|
2369
|
+
limit?: number | null;
|
|
2370
|
+
queryMode?: QueryModeDto;
|
|
2371
|
+
}
|
|
2372
|
+
interface QueryExecutionOptions {
|
|
2373
|
+
/** Page size — passed to the GraphQL `first` variable. */
|
|
2374
|
+
first?: number | null;
|
|
2375
|
+
/** Cursor — passed to the GraphQL `after` variable. */
|
|
2376
|
+
after?: string | null;
|
|
2377
|
+
/** Optional column / row sort definitions. */
|
|
2378
|
+
sortOrder?: SortDto[] | null;
|
|
2379
|
+
/** Field filters applied to the query rows. */
|
|
2380
|
+
fieldFilter?: FieldFilterDto[] | null;
|
|
2381
|
+
/** Stream-data-only: time-range, interval, limit, queryMode. Ignored for runtime queries. */
|
|
2382
|
+
streamDataArgs?: StreamDataExecutionArgs | null;
|
|
2383
|
+
/** Force a network round-trip instead of using the Apollo cache. */
|
|
2384
|
+
forceRefresh?: boolean;
|
|
2385
|
+
}
|
|
2386
|
+
interface QueryColumnInfo {
|
|
2387
|
+
attributePath: string;
|
|
2388
|
+
attributeValueType?: string | null;
|
|
2389
|
+
aggregationType?: string | null;
|
|
2390
|
+
}
|
|
2391
|
+
interface QueryCell {
|
|
2392
|
+
attributePath: string;
|
|
2393
|
+
value: unknown;
|
|
2394
|
+
}
|
|
2395
|
+
/**
|
|
2396
|
+
* Unified result-row shape across runtime and stream-data queries.
|
|
2397
|
+
* `__typename` lets callers distinguish row kinds when needed
|
|
2398
|
+
* (`RtSimpleQueryRow`, `RtAggregationQueryRow`, `RtGroupingAggregationQueryRow`,
|
|
2399
|
+
* `StreamDataQueryRow`).
|
|
2400
|
+
*
|
|
2401
|
+
* Stream-data rows surface `timestamp`, `rtWellKnownName`,
|
|
2402
|
+
* `rtCreationDateTime`, and `rtChangedDateTime` directly on the row — useful
|
|
2403
|
+
* for time-series x-axes. Runtime rows leave those fields undefined.
|
|
2404
|
+
*/
|
|
2405
|
+
interface QueryResultRow {
|
|
2406
|
+
__typename?: string;
|
|
2407
|
+
rtId?: string | null;
|
|
2408
|
+
ckTypeId?: string | null;
|
|
2409
|
+
timestamp?: Date | null;
|
|
2410
|
+
rtWellKnownName?: string | null;
|
|
2411
|
+
rtCreationDateTime?: Date | null;
|
|
2412
|
+
rtChangedDateTime?: Date | null;
|
|
2413
|
+
cells: QueryCell[];
|
|
2414
|
+
}
|
|
2415
|
+
interface QueryExecutionResult {
|
|
2416
|
+
family: QueryFamily;
|
|
2417
|
+
queryRtId?: string | null;
|
|
2418
|
+
associatedCkTypeId?: string | null;
|
|
2419
|
+
columns: QueryColumnInfo[];
|
|
2420
|
+
rows: QueryResultRow[];
|
|
2421
|
+
totalCount: number;
|
|
2422
|
+
hasNextPage: boolean;
|
|
2423
|
+
endCursor?: string | null;
|
|
2424
|
+
}
|
|
2425
|
+
/**
|
|
2426
|
+
* Executes persistent queries by rtId and returns a unified result shape
|
|
2427
|
+
* regardless of whether the underlying query is runtime-data or stream-data.
|
|
2428
|
+
*
|
|
2429
|
+
* Widgets consume `QueryExecutionResult` and stay agnostic about which family
|
|
2430
|
+
* the saved query belongs to — switching a widget's data source between
|
|
2431
|
+
* runtime and stream-data is purely a configuration change.
|
|
2432
|
+
*/
|
|
2433
|
+
declare class QueryExecutorService {
|
|
2434
|
+
private readonly runtimeGql;
|
|
2435
|
+
private readonly streamDataGql;
|
|
2436
|
+
private readonly persistentQueriesGql;
|
|
2437
|
+
/**
|
|
2438
|
+
* Cache of resolved query families, keyed by query rtId. Filled lazily for
|
|
2439
|
+
* legacy widget configs that pre-date the `queryFamily` field — saves a
|
|
2440
|
+
* round-trip on every refresh.
|
|
2441
|
+
*/
|
|
2442
|
+
private readonly familyCache;
|
|
2443
|
+
execute(family: QueryFamily | undefined, queryRtId: string, options?: QueryExecutionOptions): Observable<QueryExecutionResult>;
|
|
2444
|
+
/**
|
|
2445
|
+
* Resolves the family of a persistent query by rtId. Falls back to
|
|
2446
|
+
* `'runtime'` when the query type cannot be classified — this matches the
|
|
2447
|
+
* pre-Phase-1 behavior.
|
|
2448
|
+
*/
|
|
2449
|
+
resolveFamily(queryRtId: string): Promise<QueryFamily>;
|
|
2450
|
+
executeRuntime(queryRtId: string, options?: QueryExecutionOptions): Observable<QueryExecutionResult>;
|
|
2451
|
+
executeStreamData(queryRtId: string, options?: QueryExecutionOptions): Observable<QueryExecutionResult>;
|
|
2452
|
+
private buildStreamDataArg;
|
|
2453
|
+
private mapColumns;
|
|
2454
|
+
private mapRuntimeRows;
|
|
2455
|
+
private mapStreamDataRows;
|
|
2456
|
+
private mapCells;
|
|
2457
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<QueryExecutorService, never>;
|
|
2458
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<QueryExecutorService>;
|
|
2459
|
+
}
|
|
2460
|
+
|
|
2272
2461
|
declare class EntityCardWidgetComponent implements DashboardWidget<EntityCardWidgetConfig, RuntimeEntityData>, OnInit, OnChanges {
|
|
2273
2462
|
private readonly dataService;
|
|
2274
2463
|
config: EntityCardWidgetConfig;
|
|
@@ -2345,9 +2534,15 @@ declare class EntityCardConfigDialogComponent implements OnInit {
|
|
|
2345
2534
|
|
|
2346
2535
|
declare class KpiWidgetComponent implements DashboardWidget<KpiWidgetConfig, RuntimeEntityData>, OnInit, OnChanges {
|
|
2347
2536
|
private readonly dataService;
|
|
2348
|
-
private readonly
|
|
2537
|
+
private readonly queryExecutor;
|
|
2349
2538
|
private readonly stateService;
|
|
2350
2539
|
private readonly variableService;
|
|
2540
|
+
/**
|
|
2541
|
+
* Row __typenames KPI extraction recognises.
|
|
2542
|
+
* Runtime queries discriminate; stream-data queries collapse all kinds
|
|
2543
|
+
* (simple / aggregation / grouped / downsampling) into `StreamDataQueryRow`.
|
|
2544
|
+
*/
|
|
2545
|
+
private static readonly SUPPORTED_ROW_TYPES;
|
|
2351
2546
|
config: KpiWidgetConfig;
|
|
2352
2547
|
protected readonly arrowUpIcon: _progress_kendo_svg_icons.SVGIcon;
|
|
2353
2548
|
protected readonly arrowDownIcon: _progress_kendo_svg_icons.SVGIcon;
|
|
@@ -2385,6 +2580,7 @@ declare class KpiWidgetComponent implements DashboardWidget<KpiWidgetConfig, Run
|
|
|
2385
2580
|
private loadData;
|
|
2386
2581
|
private loadCountData;
|
|
2387
2582
|
private loadPersistentQueryData;
|
|
2583
|
+
private buildStreamDataArgs;
|
|
2388
2584
|
private extractAggregationValue;
|
|
2389
2585
|
private extractGroupedAggregationValue;
|
|
2390
2586
|
/**
|
|
@@ -2416,6 +2612,7 @@ interface KpiConfigResult extends WidgetConfigResult {
|
|
|
2416
2612
|
labelAttribute?: string;
|
|
2417
2613
|
queryRtId?: string;
|
|
2418
2614
|
queryName?: string;
|
|
2615
|
+
queryFamily?: QueryFamily;
|
|
2419
2616
|
queryMode?: KpiQueryMode;
|
|
2420
2617
|
queryValueField?: string;
|
|
2421
2618
|
queryCategoryField?: string;
|
|
@@ -2439,8 +2636,13 @@ declare class KpiConfigDialogComponent implements OnInit {
|
|
|
2439
2636
|
private readonly getEntitiesByCkTypeGQL;
|
|
2440
2637
|
private readonly ckTypeSelectorService;
|
|
2441
2638
|
private readonly attributeSelectorService;
|
|
2442
|
-
private readonly executeRuntimeQueryGQL;
|
|
2443
2639
|
private readonly getRuntimeQueryColumnsGQL;
|
|
2640
|
+
private readonly queryExecutor;
|
|
2641
|
+
/**
|
|
2642
|
+
* Row __typenames the dialog recognises when collecting distinct category
|
|
2643
|
+
* values from a query result for the grouped-aggregation category picker.
|
|
2644
|
+
*/
|
|
2645
|
+
private static readonly INTROSPECTION_ROW_TYPES;
|
|
2444
2646
|
private readonly meshBoardStateService;
|
|
2445
2647
|
private readonly windowRef;
|
|
2446
2648
|
ckTypeSelectorInput?: CkTypeSelectorInputComponent;
|
|
@@ -2457,6 +2659,7 @@ declare class KpiConfigDialogComponent implements OnInit {
|
|
|
2457
2659
|
initialDataSourceType?: KpiDataSourceType;
|
|
2458
2660
|
initialQueryRtId?: string;
|
|
2459
2661
|
initialQueryName?: string;
|
|
2662
|
+
initialQueryFamily?: QueryFamily;
|
|
2460
2663
|
initialQueryMode?: KpiQueryMode;
|
|
2461
2664
|
initialQueryValueField?: string;
|
|
2462
2665
|
initialQueryCategoryField?: string;
|
|
@@ -2518,11 +2721,18 @@ declare class KpiConfigDialogComponent implements OnInit {
|
|
|
2518
2721
|
onQuerySelected(query: PersistentQueryItem | null): Promise<void>;
|
|
2519
2722
|
onQueryModeChange(mode: KpiQueryMode): Promise<void>;
|
|
2520
2723
|
private loadQueryColumnsAndValues;
|
|
2724
|
+
/**
|
|
2725
|
+
* Loads column metadata for the picker. Runtime queries use the
|
|
2726
|
+
* metadata-only resolver (no aggregation executed); stream-data queries
|
|
2727
|
+
* fall back to executing the query with `first: 1`. When `family` is
|
|
2728
|
+
* unknown (legacy configs), the executor resolves it once by rtId lookup.
|
|
2729
|
+
*/
|
|
2730
|
+
private fetchColumnsForFamily;
|
|
2521
2731
|
onCategoryFieldChange(categoryField: string): Promise<void>;
|
|
2522
2732
|
private loadCategoryValuesForField;
|
|
2523
2733
|
onFiltersChange(updatedFilters: FieldFilterItem[]): void;
|
|
2524
2734
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KpiConfigDialogComponent, never>;
|
|
2525
|
-
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>;
|
|
2735
|
+
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; }; "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>;
|
|
2526
2736
|
}
|
|
2527
2737
|
|
|
2528
2738
|
interface GroupedAssociation {
|
|
@@ -2795,7 +3005,7 @@ interface QueryColumn {
|
|
|
2795
3005
|
*/
|
|
2796
3006
|
declare class TableWidgetDataSourceDirective extends OctoGraphQlDataSource<Record<string, unknown>> {
|
|
2797
3007
|
private readonly getEntitiesByCkTypeGQL;
|
|
2798
|
-
private readonly
|
|
3008
|
+
private readonly queryExecutor;
|
|
2799
3009
|
private readonly stateService;
|
|
2800
3010
|
private readonly variableService;
|
|
2801
3011
|
private _config;
|
|
@@ -2817,10 +3027,27 @@ declare class TableWidgetDataSourceDirective extends OctoGraphQlDataSource<Recor
|
|
|
2817
3027
|
*/
|
|
2818
3028
|
private flattenAttributes;
|
|
2819
3029
|
/**
|
|
2820
|
-
*
|
|
2821
|
-
*
|
|
3030
|
+
* Row __typenames the table widget knows how to flatten. Runtime queries
|
|
3031
|
+
* use three discriminated variants; stream-data queries collapse all
|
|
3032
|
+
* kinds (simple / aggregation / grouped / downsampling) into a single
|
|
3033
|
+
* `StreamDataQueryRow` type.
|
|
3034
|
+
*/
|
|
3035
|
+
private static readonly SUPPORTED_ROW_TYPES;
|
|
3036
|
+
/**
|
|
3037
|
+
* Fetches data from a persistent query (runtime or stream-data).
|
|
3038
|
+
* Family is determined from the cached `queryFamily` on the data source
|
|
3039
|
+
* (set by the config dialog when the user picks a query) and defaults to
|
|
3040
|
+
* `'runtime'` for legacy configs that predate stream-data support.
|
|
2822
3041
|
*/
|
|
2823
3042
|
private fetchPersistentQueryData;
|
|
3043
|
+
/**
|
|
3044
|
+
* Flattens a unified `QueryResultRow` into a Kendo-grid-friendly record.
|
|
3045
|
+
* Cells are stored under their matching column's `attributePath` rather than
|
|
3046
|
+
* the cell's own — the engine emits cell paths in wire-form with a function
|
|
3047
|
+
* suffix (e.g. cell path `meterreading_count` for column path `meterReading`).
|
|
3048
|
+
* `matchesAttributePath` reconciles both forms.
|
|
3049
|
+
*/
|
|
3050
|
+
private queryRowToRecord;
|
|
2824
3051
|
/**
|
|
2825
3052
|
* Converts query columns to TableColumn format for display.
|
|
2826
3053
|
*/
|
|
@@ -2841,6 +3068,12 @@ declare class TableWidgetDataSourceDirective extends OctoGraphQlDataSource<Recor
|
|
|
2841
3068
|
* Resolves MeshBoard variables in filter values before conversion.
|
|
2842
3069
|
*/
|
|
2843
3070
|
private convertFiltersToDto;
|
|
3071
|
+
/**
|
|
3072
|
+
* Builds `StreamDataExecutionArgs` from the MeshBoard's current time filter.
|
|
3073
|
+
* Returns `undefined` when no filter is active so the persistent query's
|
|
3074
|
+
* own bounds apply.
|
|
3075
|
+
*/
|
|
3076
|
+
private buildStreamDataArgs;
|
|
2844
3077
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TableWidgetDataSourceDirective, never>;
|
|
2845
3078
|
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<TableWidgetDataSourceDirective, "[mmTableWidgetDataSource]", ["mmTableWidgetDataSource"], { "config": { "alias": "config"; "required": false; }; }, { "queryColumnsLoaded": "queryColumnsLoaded"; }, never, never, true, never>;
|
|
2846
3079
|
}
|
|
@@ -2899,6 +3132,8 @@ interface TableConfigResult {
|
|
|
2899
3132
|
filters: FieldFilterDto[];
|
|
2900
3133
|
queryRtId?: string;
|
|
2901
3134
|
queryName?: string;
|
|
3135
|
+
/** Family of the selected persistent query — 'runtime' or 'streamData'. */
|
|
3136
|
+
queryFamily?: QueryFamily;
|
|
2902
3137
|
pageSize: number;
|
|
2903
3138
|
sortable: boolean;
|
|
2904
3139
|
}
|
|
@@ -2933,6 +3168,7 @@ declare class TableConfigDialogComponent implements OnInit {
|
|
|
2933
3168
|
initialSortable?: boolean;
|
|
2934
3169
|
initialQueryRtId?: string;
|
|
2935
3170
|
initialQueryName?: string;
|
|
3171
|
+
initialQueryFamily?: QueryFamily;
|
|
2936
3172
|
protected readonly columnsIcon: _progress_kendo_svg_icons.SVGIcon;
|
|
2937
3173
|
protected readonly sortIcon: _progress_kendo_svg_icons.SVGIcon;
|
|
2938
3174
|
protected readonly filterIcon: _progress_kendo_svg_icons.SVGIcon;
|
|
@@ -2967,7 +3203,7 @@ declare class TableConfigDialogComponent implements OnInit {
|
|
|
2967
3203
|
private formatColumnTitle;
|
|
2968
3204
|
onCancel(): void;
|
|
2969
3205
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TableConfigDialogComponent, never>;
|
|
2970
|
-
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; }; }, {}, never, never, true, never>;
|
|
3206
|
+
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; }; }, {}, never, never, true, never>;
|
|
2971
3207
|
}
|
|
2972
3208
|
|
|
2973
3209
|
declare class GaugeWidgetComponent implements DashboardWidget<GaugeWidgetConfig, RuntimeEntityData>, OnInit, OnChanges {
|
|
@@ -2976,7 +3212,8 @@ declare class GaugeWidgetComponent implements DashboardWidget<GaugeWidgetConfig,
|
|
|
2976
3212
|
color: string;
|
|
2977
3213
|
}[];
|
|
2978
3214
|
private readonly dataService;
|
|
2979
|
-
private readonly
|
|
3215
|
+
private readonly queryExecutor;
|
|
3216
|
+
private static readonly SUPPORTED_ROW_TYPES;
|
|
2980
3217
|
private readonly stateService;
|
|
2981
3218
|
private readonly variableService;
|
|
2982
3219
|
config: GaugeWidgetConfig;
|
|
@@ -2999,6 +3236,7 @@ declare class GaugeWidgetComponent implements DashboardWidget<GaugeWidgetConfig,
|
|
|
2999
3236
|
refresh(): void;
|
|
3000
3237
|
private loadData;
|
|
3001
3238
|
private loadPersistentQueryData;
|
|
3239
|
+
private buildStreamDataArgs;
|
|
3002
3240
|
private extractAggregationValue;
|
|
3003
3241
|
private extractGroupedAggregationValue;
|
|
3004
3242
|
private parseNumericValue;
|
|
@@ -3026,6 +3264,7 @@ interface GaugeConfigResult extends WidgetConfigResult {
|
|
|
3026
3264
|
labelAttribute?: string;
|
|
3027
3265
|
queryRtId?: string;
|
|
3028
3266
|
queryName?: string;
|
|
3267
|
+
queryFamily?: QueryFamily;
|
|
3029
3268
|
queryMode?: KpiQueryMode;
|
|
3030
3269
|
queryValueField?: string;
|
|
3031
3270
|
queryCategoryField?: string;
|
|
@@ -3053,8 +3292,13 @@ declare class GaugeConfigDialogComponent implements OnInit {
|
|
|
3053
3292
|
private readonly getEntitiesByCkTypeGQL;
|
|
3054
3293
|
private readonly ckTypeSelectorService;
|
|
3055
3294
|
private readonly attributeSelectorService;
|
|
3056
|
-
private readonly executeRuntimeQueryGQL;
|
|
3057
3295
|
private readonly getRuntimeQueryColumnsGQL;
|
|
3296
|
+
private readonly queryExecutor;
|
|
3297
|
+
/**
|
|
3298
|
+
* Row __typenames the dialog recognises when collecting distinct category
|
|
3299
|
+
* values from a query result for the grouped-aggregation category picker.
|
|
3300
|
+
*/
|
|
3301
|
+
private static readonly INTROSPECTION_ROW_TYPES;
|
|
3058
3302
|
private readonly meshBoardStateService;
|
|
3059
3303
|
private readonly windowRef;
|
|
3060
3304
|
ckTypeSelectorInput?: CkTypeSelectorInputComponent;
|
|
@@ -3075,6 +3319,7 @@ declare class GaugeConfigDialogComponent implements OnInit {
|
|
|
3075
3319
|
initialDataSourceType?: GaugeDataSourceType;
|
|
3076
3320
|
initialQueryRtId?: string;
|
|
3077
3321
|
initialQueryName?: string;
|
|
3322
|
+
initialQueryFamily?: QueryFamily;
|
|
3078
3323
|
initialQueryMode?: KpiQueryMode;
|
|
3079
3324
|
initialQueryValueField?: string;
|
|
3080
3325
|
initialQueryCategoryField?: string;
|
|
@@ -3137,11 +3382,18 @@ declare class GaugeConfigDialogComponent implements OnInit {
|
|
|
3137
3382
|
onQuerySelected(query: PersistentQueryItem | null): Promise<void>;
|
|
3138
3383
|
onQueryModeChange(mode: KpiQueryMode): Promise<void>;
|
|
3139
3384
|
private loadQueryColumnsAndValues;
|
|
3385
|
+
/**
|
|
3386
|
+
* Runtime queries use the metadata-only resolver (no aggregation executed);
|
|
3387
|
+
* stream-data queries fall back to executing the query with `first: 1`.
|
|
3388
|
+
* When `family` is unknown (legacy configs), the executor resolves it once
|
|
3389
|
+
* by rtId lookup.
|
|
3390
|
+
*/
|
|
3391
|
+
private fetchColumnsForFamily;
|
|
3140
3392
|
onCategoryFieldChange(categoryField: string): Promise<void>;
|
|
3141
3393
|
private loadCategoryValuesForField;
|
|
3142
3394
|
onFiltersChange(updatedFilters: FieldFilterItem[]): void;
|
|
3143
3395
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<GaugeConfigDialogComponent, never>;
|
|
3144
|
-
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; }; "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>;
|
|
3396
|
+
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; }; "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>;
|
|
3145
3397
|
}
|
|
3146
3398
|
|
|
3147
3399
|
/**
|
|
@@ -3152,7 +3404,8 @@ interface ChartDataItem {
|
|
|
3152
3404
|
value: number;
|
|
3153
3405
|
}
|
|
3154
3406
|
declare class PieChartWidgetComponent implements DashboardWidget<PieChartWidgetConfig, ChartDataItem[]>, OnInit, OnChanges {
|
|
3155
|
-
private readonly
|
|
3407
|
+
private readonly queryExecutor;
|
|
3408
|
+
private static readonly SUPPORTED_ROW_TYPES;
|
|
3156
3409
|
private readonly dataService;
|
|
3157
3410
|
private readonly stateService;
|
|
3158
3411
|
private readonly variableService;
|
|
@@ -3200,6 +3453,7 @@ declare class PieChartWidgetComponent implements DashboardWidget<PieChartWidgetC
|
|
|
3200
3453
|
* Note: isNotConfigured() check in loadData() ensures queryRtId is set.
|
|
3201
3454
|
*/
|
|
3202
3455
|
private loadPersistentQueryData;
|
|
3456
|
+
private buildStreamDataArgs;
|
|
3203
3457
|
/**
|
|
3204
3458
|
* Converts widget filter configuration to GraphQL FieldFilterDto format.
|
|
3205
3459
|
* Resolves MeshBoard variables in filter values before conversion.
|
|
@@ -3216,6 +3470,7 @@ interface PieChartConfigResult extends WidgetConfigResult {
|
|
|
3216
3470
|
dataSourceType: DataSourceType;
|
|
3217
3471
|
queryRtId?: string;
|
|
3218
3472
|
queryName?: string;
|
|
3473
|
+
queryFamily?: QueryFamily;
|
|
3219
3474
|
categoryField: string;
|
|
3220
3475
|
valueField: string;
|
|
3221
3476
|
ckQueryTarget?: CkQueryTarget;
|
|
@@ -3231,12 +3486,14 @@ interface PieChartConfigResult extends WidgetConfigResult {
|
|
|
3231
3486
|
*/
|
|
3232
3487
|
declare class PieChartConfigDialogComponent implements OnInit, AfterViewInit {
|
|
3233
3488
|
private readonly getRuntimeQueryColumnsGQL;
|
|
3489
|
+
private readonly queryExecutor;
|
|
3234
3490
|
private readonly stateService;
|
|
3235
3491
|
private readonly windowRef;
|
|
3236
3492
|
querySelector?: QuerySelectorComponent;
|
|
3237
3493
|
initialDataSourceType?: DataSourceType;
|
|
3238
3494
|
initialQueryRtId?: string;
|
|
3239
3495
|
initialQueryName?: string;
|
|
3496
|
+
initialQueryFamily?: QueryFamily;
|
|
3240
3497
|
initialChartType?: PieChartType;
|
|
3241
3498
|
initialCategoryField?: string;
|
|
3242
3499
|
initialValueField?: string;
|
|
@@ -3288,11 +3545,17 @@ declare class PieChartConfigDialogComponent implements OnInit, AfterViewInit {
|
|
|
3288
3545
|
private updateCkGroupByOptions;
|
|
3289
3546
|
onQuerySelected(query: PersistentQueryItem | null): Promise<void>;
|
|
3290
3547
|
private loadQueryColumns;
|
|
3548
|
+
/**
|
|
3549
|
+
* Runtime queries use the metadata-only resolver (no aggregation executed);
|
|
3550
|
+
* stream-data queries fall back to executing the query with `first: 1`
|
|
3551
|
+
* because the SD path has no dedicated column-introspection endpoint today.
|
|
3552
|
+
*/
|
|
3553
|
+
private fetchColumnsForFamily;
|
|
3291
3554
|
onFiltersChange(updatedFilters: FieldFilterItem[]): void;
|
|
3292
3555
|
onSave(): void;
|
|
3293
3556
|
onCancel(): void;
|
|
3294
3557
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<PieChartConfigDialogComponent, never>;
|
|
3295
|
-
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; }; "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>;
|
|
3558
|
+
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; }; "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>;
|
|
3296
3559
|
}
|
|
3297
3560
|
|
|
3298
3561
|
/**
|
|
@@ -3304,7 +3567,8 @@ interface SeriesData {
|
|
|
3304
3567
|
color?: string;
|
|
3305
3568
|
}
|
|
3306
3569
|
declare class BarChartWidgetComponent implements DashboardWidget<BarChartWidgetConfig, SeriesData[]>, OnInit, OnChanges {
|
|
3307
|
-
private readonly
|
|
3570
|
+
private readonly queryExecutor;
|
|
3571
|
+
private static readonly SUPPORTED_ROW_TYPES;
|
|
3308
3572
|
private readonly stateService;
|
|
3309
3573
|
private readonly variableService;
|
|
3310
3574
|
config: BarChartWidgetConfig;
|
|
@@ -3346,6 +3610,7 @@ declare class BarChartWidgetComponent implements DashboardWidget<BarChartWidgetC
|
|
|
3346
3610
|
private isDynamicSeriesMode;
|
|
3347
3611
|
formatValue(value: number): string;
|
|
3348
3612
|
private loadData;
|
|
3613
|
+
private buildStreamDataArgs;
|
|
3349
3614
|
/**
|
|
3350
3615
|
* Processes data in Static Series Mode.
|
|
3351
3616
|
* Each series in config.series corresponds to a separate numeric field.
|
|
@@ -3395,6 +3660,7 @@ type SeriesMode = 'static' | 'dynamic';
|
|
|
3395
3660
|
interface BarChartConfigResult extends WidgetConfigResult {
|
|
3396
3661
|
queryRtId: string;
|
|
3397
3662
|
queryName?: string;
|
|
3663
|
+
queryFamily?: QueryFamily;
|
|
3398
3664
|
chartType: BarChartType;
|
|
3399
3665
|
categoryField: string;
|
|
3400
3666
|
series: BarChartSeries[];
|
|
@@ -3415,11 +3681,13 @@ interface BarChartConfigResult extends WidgetConfigResult {
|
|
|
3415
3681
|
*/
|
|
3416
3682
|
declare class BarChartConfigDialogComponent implements OnInit {
|
|
3417
3683
|
private readonly getRuntimeQueryColumnsGQL;
|
|
3684
|
+
private readonly queryExecutor;
|
|
3418
3685
|
private readonly stateService;
|
|
3419
3686
|
private readonly windowRef;
|
|
3420
3687
|
querySelector?: QuerySelectorComponent;
|
|
3421
3688
|
initialQueryRtId?: string;
|
|
3422
3689
|
initialQueryName?: string;
|
|
3690
|
+
initialQueryFamily?: QueryFamily;
|
|
3423
3691
|
initialChartType?: BarChartType;
|
|
3424
3692
|
initialCategoryField?: string;
|
|
3425
3693
|
initialSeries?: BarChartSeries[];
|
|
@@ -3464,6 +3732,12 @@ declare class BarChartConfigDialogComponent implements OnInit {
|
|
|
3464
3732
|
ngOnInit(): Promise<void>;
|
|
3465
3733
|
onQuerySelected(query: PersistentQueryItem | null): Promise<void>;
|
|
3466
3734
|
private loadQueryColumns;
|
|
3735
|
+
/**
|
|
3736
|
+
* Runtime queries use the metadata-only resolver (no aggregation executed);
|
|
3737
|
+
* stream-data queries fall back to executing the query with `first: 1`
|
|
3738
|
+
* because the SD path has no dedicated column-introspection endpoint today.
|
|
3739
|
+
*/
|
|
3740
|
+
private fetchColumnsForFamily;
|
|
3467
3741
|
onSeriesFieldsChange(fields: string[]): void;
|
|
3468
3742
|
onFiltersChange(updatedFilters: FieldFilterItem[]): void;
|
|
3469
3743
|
onSave(): void;
|
|
@@ -3471,7 +3745,7 @@ declare class BarChartConfigDialogComponent implements OnInit {
|
|
|
3471
3745
|
removeColorThreshold(index: number): void;
|
|
3472
3746
|
onCancel(): void;
|
|
3473
3747
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<BarChartConfigDialogComponent, never>;
|
|
3474
|
-
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>;
|
|
3748
|
+
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; }; "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>;
|
|
3475
3749
|
}
|
|
3476
3750
|
|
|
3477
3751
|
/**
|
|
@@ -3492,7 +3766,8 @@ interface ValueAxisConfig {
|
|
|
3492
3766
|
position: 'left' | 'right';
|
|
3493
3767
|
}
|
|
3494
3768
|
declare class LineChartWidgetComponent implements DashboardWidget<LineChartWidgetConfig, LineSeriesData[]>, OnInit, OnChanges {
|
|
3495
|
-
private readonly
|
|
3769
|
+
private readonly queryExecutor;
|
|
3770
|
+
private static readonly SUPPORTED_ROW_TYPES;
|
|
3496
3771
|
private readonly stateService;
|
|
3497
3772
|
private readonly variableService;
|
|
3498
3773
|
config: LineChartWidgetConfig;
|
|
@@ -3545,6 +3820,7 @@ declare class LineChartWidgetComponent implements DashboardWidget<LineChartWidge
|
|
|
3545
3820
|
formatValue(value: number): string;
|
|
3546
3821
|
getUnitForSeries(seriesName: string): string;
|
|
3547
3822
|
private loadData;
|
|
3823
|
+
private buildStreamDataArgs;
|
|
3548
3824
|
/**
|
|
3549
3825
|
* Processes query rows into line chart data.
|
|
3550
3826
|
* Groups by seriesGroupField, orders by categoryField (date), supports multi-axis by unitField.
|
|
@@ -3570,6 +3846,7 @@ declare class LineChartWidgetComponent implements DashboardWidget<LineChartWidge
|
|
|
3570
3846
|
interface LineChartConfigResult extends WidgetConfigResult {
|
|
3571
3847
|
queryRtId: string;
|
|
3572
3848
|
queryName?: string;
|
|
3849
|
+
queryFamily?: QueryFamily;
|
|
3573
3850
|
chartType: LineChartType;
|
|
3574
3851
|
categoryField: string;
|
|
3575
3852
|
seriesGroupField: string;
|
|
@@ -3587,11 +3864,13 @@ interface LineChartConfigResult extends WidgetConfigResult {
|
|
|
3587
3864
|
*/
|
|
3588
3865
|
declare class LineChartConfigDialogComponent implements OnInit {
|
|
3589
3866
|
private readonly getRuntimeQueryColumnsGQL;
|
|
3867
|
+
private readonly queryExecutor;
|
|
3590
3868
|
private readonly stateService;
|
|
3591
3869
|
private readonly windowRef;
|
|
3592
3870
|
querySelector?: QuerySelectorComponent;
|
|
3593
3871
|
initialQueryRtId?: string;
|
|
3594
3872
|
initialQueryName?: string;
|
|
3873
|
+
initialQueryFamily?: QueryFamily;
|
|
3595
3874
|
initialChartType?: LineChartType;
|
|
3596
3875
|
initialCategoryField?: string;
|
|
3597
3876
|
initialSeriesGroupField?: string;
|
|
@@ -3629,13 +3908,19 @@ declare class LineChartConfigDialogComponent implements OnInit {
|
|
|
3629
3908
|
ngOnInit(): Promise<void>;
|
|
3630
3909
|
onQuerySelected(query: PersistentQueryItem | null): Promise<void>;
|
|
3631
3910
|
private loadQueryColumns;
|
|
3911
|
+
/**
|
|
3912
|
+
* Runtime queries use the metadata-only resolver (no aggregation executed);
|
|
3913
|
+
* stream-data queries fall back to executing the query with `first: 1`
|
|
3914
|
+
* because the SD path has no dedicated column-introspection endpoint today.
|
|
3915
|
+
*/
|
|
3916
|
+
private fetchColumnsForFamily;
|
|
3632
3917
|
onFiltersChange(updatedFilters: FieldFilterItem[]): void;
|
|
3633
3918
|
onSave(): void;
|
|
3634
3919
|
addReferenceLine(): void;
|
|
3635
3920
|
removeReferenceLine(index: number): void;
|
|
3636
3921
|
onCancel(): void;
|
|
3637
3922
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<LineChartConfigDialogComponent, never>;
|
|
3638
|
-
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>;
|
|
3923
|
+
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; }; "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>;
|
|
3639
3924
|
}
|
|
3640
3925
|
|
|
3641
3926
|
/**
|
|
@@ -3652,7 +3937,8 @@ interface HeatmapDataItem {
|
|
|
3652
3937
|
color: string;
|
|
3653
3938
|
}
|
|
3654
3939
|
declare class HeatmapWidgetComponent implements DashboardWidget<HeatmapWidgetConfig, HeatmapDataItem[]>, OnInit, OnChanges {
|
|
3655
|
-
private readonly
|
|
3940
|
+
private readonly queryExecutor;
|
|
3941
|
+
private static readonly SUPPORTED_ROW_TYPES;
|
|
3656
3942
|
private readonly stateService;
|
|
3657
3943
|
private readonly variableService;
|
|
3658
3944
|
config: HeatmapWidgetConfig;
|
|
@@ -3690,6 +3976,7 @@ declare class HeatmapWidgetComponent implements DashboardWidget<HeatmapWidgetCon
|
|
|
3690
3976
|
value: string;
|
|
3691
3977
|
}) => string;
|
|
3692
3978
|
private loadData;
|
|
3979
|
+
private buildStreamDataArgs;
|
|
3693
3980
|
/**
|
|
3694
3981
|
* Processes query rows into heatmap data.
|
|
3695
3982
|
* When dateEndField is configured, auto-detects the interval width and shows sub-hour columns.
|
|
@@ -3728,6 +4015,7 @@ declare class HeatmapWidgetComponent implements DashboardWidget<HeatmapWidgetCon
|
|
|
3728
4015
|
interface HeatmapConfigResult extends WidgetConfigResult {
|
|
3729
4016
|
queryRtId: string;
|
|
3730
4017
|
queryName?: string;
|
|
4018
|
+
queryFamily?: QueryFamily;
|
|
3731
4019
|
dateField: string;
|
|
3732
4020
|
dateEndField?: string;
|
|
3733
4021
|
valueField?: string;
|
|
@@ -3742,11 +4030,13 @@ interface HeatmapConfigResult extends WidgetConfigResult {
|
|
|
3742
4030
|
}
|
|
3743
4031
|
declare class HeatmapConfigDialogComponent implements OnInit {
|
|
3744
4032
|
private readonly getRuntimeQueryColumnsGQL;
|
|
4033
|
+
private readonly queryExecutor;
|
|
3745
4034
|
private readonly stateService;
|
|
3746
4035
|
private readonly windowRef;
|
|
3747
4036
|
querySelector?: QuerySelectorComponent;
|
|
3748
4037
|
initialQueryRtId?: string;
|
|
3749
4038
|
initialQueryName?: string;
|
|
4039
|
+
initialQueryFamily?: QueryFamily;
|
|
3750
4040
|
initialDateField?: string;
|
|
3751
4041
|
initialDateEndField?: string;
|
|
3752
4042
|
initialValueField?: string;
|
|
@@ -3799,11 +4089,17 @@ declare class HeatmapConfigDialogComponent implements OnInit {
|
|
|
3799
4089
|
ngOnInit(): Promise<void>;
|
|
3800
4090
|
onQuerySelected(query: PersistentQueryItem | null): Promise<void>;
|
|
3801
4091
|
private loadQueryColumns;
|
|
4092
|
+
/**
|
|
4093
|
+
* Runtime queries use the metadata-only resolver (no aggregation executed);
|
|
4094
|
+
* stream-data queries fall back to executing the query with `first: 1`
|
|
4095
|
+
* because the SD path has no dedicated column-introspection endpoint today.
|
|
4096
|
+
*/
|
|
4097
|
+
private fetchColumnsForFamily;
|
|
3802
4098
|
onFiltersChange(updatedFilters: FieldFilterItem[]): void;
|
|
3803
4099
|
onSave(): void;
|
|
3804
4100
|
onCancel(): void;
|
|
3805
4101
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<HeatmapConfigDialogComponent, never>;
|
|
3806
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<HeatmapConfigDialogComponent, "mm-heatmap-config-dialog", never, { "initialQueryRtId": { "alias": "initialQueryRtId"; "required": false; }; "initialQueryName": { "alias": "initialQueryName"; "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>;
|
|
4102
|
+
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; }; "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>;
|
|
3807
4103
|
}
|
|
3808
4104
|
|
|
3809
4105
|
interface StatValue {
|
|
@@ -4119,6 +4415,7 @@ interface WidgetGroupConfigResult extends WidgetConfigResult {
|
|
|
4119
4415
|
dataSourceMode: WidgetGroupDataSourceMode;
|
|
4120
4416
|
queryRtId?: string;
|
|
4121
4417
|
queryName?: string;
|
|
4418
|
+
queryFamily?: QueryFamily;
|
|
4122
4419
|
filters?: FieldFilterDto[];
|
|
4123
4420
|
maxItems?: number;
|
|
4124
4421
|
childTemplate: WidgetGroupChildTemplate;
|
|
@@ -4136,6 +4433,7 @@ declare class WidgetGroupConfigDialogComponent implements OnInit {
|
|
|
4136
4433
|
private readonly ckTypeSelectorService;
|
|
4137
4434
|
private readonly attributeSelectorService;
|
|
4138
4435
|
private readonly getRuntimeQueryColumnsGQL;
|
|
4436
|
+
private readonly queryExecutor;
|
|
4139
4437
|
private readonly getCkTypeAvailableQueryColumnsGQL;
|
|
4140
4438
|
private readonly meshBoardStateService;
|
|
4141
4439
|
private readonly windowRef;
|
|
@@ -4143,6 +4441,7 @@ declare class WidgetGroupConfigDialogComponent implements OnInit {
|
|
|
4143
4441
|
initialDataSourceMode?: WidgetGroupDataSourceMode;
|
|
4144
4442
|
initialQueryRtId?: string;
|
|
4145
4443
|
initialQueryName?: string;
|
|
4444
|
+
initialQueryFamily?: QueryFamily;
|
|
4146
4445
|
initialCkTypeId?: string;
|
|
4147
4446
|
initialFilters?: WidgetFilterConfig[];
|
|
4148
4447
|
initialMaxItems?: number;
|
|
@@ -4194,6 +4493,12 @@ declare class WidgetGroupConfigDialogComponent implements OnInit {
|
|
|
4194
4493
|
onDataSourceModeChange(mode: WidgetGroupDataSourceMode): void;
|
|
4195
4494
|
onQuerySelected(query: PersistentQueryItem | null): Promise<void>;
|
|
4196
4495
|
private loadQueryColumns;
|
|
4496
|
+
/**
|
|
4497
|
+
* Runtime queries use the metadata-only resolver (no aggregation executed);
|
|
4498
|
+
* stream-data queries fall back to executing the query with `first: 1`
|
|
4499
|
+
* because the SD path has no dedicated column-introspection endpoint today.
|
|
4500
|
+
*/
|
|
4501
|
+
private fetchColumnsForFamily;
|
|
4197
4502
|
private loadInitialCkTypeValues;
|
|
4198
4503
|
onCkTypeSelected(ckType: CkTypeSelectorItem): void;
|
|
4199
4504
|
onCkTypeCleared(): void;
|
|
@@ -4204,7 +4509,7 @@ declare class WidgetGroupConfigDialogComponent implements OnInit {
|
|
|
4204
4509
|
private buildStaticConfig;
|
|
4205
4510
|
onCancel(): void;
|
|
4206
4511
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<WidgetGroupConfigDialogComponent, never>;
|
|
4207
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<WidgetGroupConfigDialogComponent, "mm-widget-group-config-dialog", never, { "initialDataSourceMode": { "alias": "initialDataSourceMode"; "required": false; }; "initialQueryRtId": { "alias": "initialQueryRtId"; "required": false; }; "initialQueryName": { "alias": "initialQueryName"; "required": false; }; "initialCkTypeId": { "alias": "initialCkTypeId"; "required": false; }; "initialFilters": { "alias": "initialFilters"; "required": false; }; "initialMaxItems": { "alias": "initialMaxItems"; "required": false; }; "initialChildTemplate": { "alias": "initialChildTemplate"; "required": false; }; "initialLayout": { "alias": "initialLayout"; "required": false; }; "initialGridColumns": { "alias": "initialGridColumns"; "required": false; }; "initialMinChildWidth": { "alias": "initialMinChildWidth"; "required": false; }; "initialGap": { "alias": "initialGap"; "required": false; }; "initialEmptyMessage": { "alias": "initialEmptyMessage"; "required": false; }; }, {}, never, never, true, never>;
|
|
4512
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<WidgetGroupConfigDialogComponent, "mm-widget-group-config-dialog", never, { "initialDataSourceMode": { "alias": "initialDataSourceMode"; "required": false; }; "initialQueryRtId": { "alias": "initialQueryRtId"; "required": false; }; "initialQueryName": { "alias": "initialQueryName"; "required": false; }; "initialQueryFamily": { "alias": "initialQueryFamily"; "required": false; }; "initialCkTypeId": { "alias": "initialCkTypeId"; "required": false; }; "initialFilters": { "alias": "initialFilters"; "required": false; }; "initialMaxItems": { "alias": "initialMaxItems"; "required": false; }; "initialChildTemplate": { "alias": "initialChildTemplate"; "required": false; }; "initialLayout": { "alias": "initialLayout"; "required": false; }; "initialGridColumns": { "alias": "initialGridColumns"; "required": false; }; "initialMinChildWidth": { "alias": "initialMinChildWidth"; "required": false; }; "initialGap": { "alias": "initialGap"; "required": false; }; "initialEmptyMessage": { "alias": "initialEmptyMessage"; "required": false; }; }, {}, never, never, true, never>;
|
|
4208
4513
|
}
|
|
4209
4514
|
|
|
4210
4515
|
declare class MarkdownWidgetComponent implements DashboardWidget<MarkdownWidgetConfig, string>, OnInit, OnChanges {
|
|
@@ -4953,6 +5258,9 @@ declare class MeshBoardViewComponent implements OnInit, OnDestroy, HasUnsavedCha
|
|
|
4953
5258
|
protected editingWidget: AnyWidgetConfig | null;
|
|
4954
5259
|
private configDialogSubscription;
|
|
4955
5260
|
private navigationSubscription;
|
|
5261
|
+
private autoRefreshTimerId;
|
|
5262
|
+
private autoRefreshActiveSeconds;
|
|
5263
|
+
private readonly visibilityListener;
|
|
4956
5264
|
protected readonly config: _angular_core.Signal<MeshBoardConfig>;
|
|
4957
5265
|
protected readonly isEditMode: _angular_core.Signal<boolean>;
|
|
4958
5266
|
protected readonly isSaving: _angular_core.Signal<boolean>;
|
|
@@ -5001,6 +5309,16 @@ declare class MeshBoardViewComponent implements OnInit, OnDestroy, HasUnsavedCha
|
|
|
5001
5309
|
*/
|
|
5002
5310
|
private loadMeshBoardById;
|
|
5003
5311
|
ngOnDestroy(): void;
|
|
5312
|
+
/**
|
|
5313
|
+
* Starts, restarts, or stops the auto-refresh timer based on the MeshBoard
|
|
5314
|
+
* config and document visibility. Called on init, whenever config changes,
|
|
5315
|
+
* and whenever the tab visibility changes.
|
|
5316
|
+
*
|
|
5317
|
+
* Pause-on-hidden saves bandwidth and avoids Apollo cache thrashing when
|
|
5318
|
+
* the user has the tab in the background.
|
|
5319
|
+
*/
|
|
5320
|
+
private evaluateAutoRefresh;
|
|
5321
|
+
private stopAutoRefresh;
|
|
5004
5322
|
/**
|
|
5005
5323
|
* Preloads data for all widgets to improve initial rendering performance.
|
|
5006
5324
|
*/
|
|
@@ -5231,7 +5549,8 @@ declare class MeshBoardSettingsResult {
|
|
|
5231
5549
|
timeFilter?: MeshBoardTimeFilterConfig | undefined;
|
|
5232
5550
|
rtWellKnownName?: string | undefined;
|
|
5233
5551
|
entitySelectors?: EntitySelectorConfig[] | undefined;
|
|
5234
|
-
|
|
5552
|
+
autoRefreshSeconds?: number | undefined;
|
|
5553
|
+
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);
|
|
5235
5554
|
}
|
|
5236
5555
|
/**
|
|
5237
5556
|
* Dialog for editing MeshBoard settings.
|
|
@@ -5245,6 +5564,12 @@ declare class MeshBoardSettingsDialogComponent {
|
|
|
5245
5564
|
columns: number;
|
|
5246
5565
|
rowHeight: number;
|
|
5247
5566
|
gap: number;
|
|
5567
|
+
/**
|
|
5568
|
+
* Auto-refresh interval in seconds. `0` disables auto-refresh and is the default.
|
|
5569
|
+
* When > 0 the MeshBoard view re-polls all widgets at this interval while the
|
|
5570
|
+
* tab is visible.
|
|
5571
|
+
*/
|
|
5572
|
+
autoRefreshSeconds: number;
|
|
5248
5573
|
variables: MeshBoardVariable[];
|
|
5249
5574
|
entitySelectors: EntitySelectorConfig[];
|
|
5250
5575
|
entitySelectorEditing: boolean;
|
|
@@ -5267,6 +5592,7 @@ declare class MeshBoardSettingsDialogComponent {
|
|
|
5267
5592
|
variables?: MeshBoardVariable[];
|
|
5268
5593
|
timeFilter?: MeshBoardTimeFilterConfig;
|
|
5269
5594
|
entitySelectors?: EntitySelectorConfig[];
|
|
5595
|
+
autoRefreshSeconds?: number;
|
|
5270
5596
|
}): void;
|
|
5271
5597
|
/**
|
|
5272
5598
|
* Handles default selection change from the time range picker.
|
|
@@ -5463,5 +5789,5 @@ declare class MeshBoardManagerDialogComponent implements OnInit {
|
|
|
5463
5789
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<MeshBoardManagerDialogComponent, "mm-meshboard-manager-dialog", never, {}, {}, never, never, true, never>;
|
|
5464
5790
|
}
|
|
5465
5791
|
|
|
5466
|
-
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 };
|
|
5467
|
-
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 };
|
|
5792
|
+
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, 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 };
|
|
5793
|
+
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 };
|