@adaptabletools/adaptable 18.1.6 → 18.1.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/package.json +1 -1
  2. package/src/AdaptableInterfaces/IAdaptable.d.ts +2 -2
  3. package/src/AdaptableOptions/AdaptableFrameworkComponent.d.ts +3 -4
  4. package/src/AdaptableOptions/ColumnFilterOptions.d.ts +3 -0
  5. package/src/AdaptableOptions/ExpressionOptions.d.ts +3 -0
  6. package/src/AdaptableOptions/GridFilterOptions.d.ts +4 -1
  7. package/src/AdaptableOptions/StateOptions.d.ts +1 -1
  8. package/src/Api/AdaptableApi.d.ts +1 -4
  9. package/src/Api/ColumnScopeApi.d.ts +1 -1
  10. package/src/Api/Events/SystemStatusMessageDisplayed.d.ts +1 -1
  11. package/src/Api/Implementation/GridApiImpl.js +1 -1
  12. package/src/Api/Internal/AlertInternalApi.d.ts +0 -3
  13. package/src/Api/Internal/AlertInternalApi.js +12 -39
  14. package/src/Api/Internal/CommentsInternalApi.js +0 -4
  15. package/src/Api/Internal/FormatColumnInternalApi.d.ts +2 -2
  16. package/src/Api/Internal/FormatColumnInternalApi.js +6 -6
  17. package/src/Api/Internal/GridInternalApi.js +2 -2
  18. package/src/Api/Internal/NoteInternalApi.js +0 -4
  19. package/src/Api/StatusBarApi.d.ts +5 -5
  20. package/src/PredefinedConfig/Common/AdaptableIcon.d.ts +1 -1
  21. package/src/PredefinedConfig/Common/Menu.d.ts +6 -0
  22. package/src/Strategy/CalculatedColumnModule.js +1 -1
  23. package/src/Strategy/ColumnFilterModule.js +13 -11
  24. package/src/Strategy/CommentModule.js +3 -0
  25. package/src/Strategy/NoteModule.js +3 -0
  26. package/src/Utilities/Helpers/FormatHelper.d.ts +23 -4
  27. package/src/Utilities/Helpers/FormatHelper.js +73 -14
  28. package/src/Utilities/Helpers/Helper.d.ts +6 -0
  29. package/src/Utilities/Helpers/Helper.js +31 -0
  30. package/src/View/FormatColumn/Wizard/FormatColumnFormatWizardSection.js +5 -1
  31. package/src/agGrid/AdaptableAgGrid.d.ts +2 -2
  32. package/src/agGrid/AdaptableAgGrid.js +17 -24
  33. package/src/agGrid/editors/AdaptableDateEditor/index.d.ts +3 -0
  34. package/src/components/Select/Select.d.ts +1 -0
  35. package/src/components/Select/Select.js +8 -2
  36. package/src/components/icons/index.js +1 -1
  37. package/src/env.js +2 -2
  38. package/src/metamodel/adaptable.metamodel.d.ts +149 -0
  39. package/src/metamodel/adaptable.metamodel.js +1 -1
  40. package/src/parser/src/types.d.ts +25 -4
  41. package/src/types.d.ts +1 -1
  42. package/tsconfig.esm.tsbuildinfo +1 -1
@@ -227,6 +227,34 @@ export function clamp(value, boundOne, boundTwo) {
227
227
  }
228
228
  return value;
229
229
  }
230
+ export function extractColsFromText(text) {
231
+ // rowData.columnName => columnName
232
+ const regex = /\[rowData\.(.*?)\]/g;
233
+ let m;
234
+ const cols = [];
235
+ while ((m = regex.exec(text)) !== null) {
236
+ cols.push(m[1]);
237
+ }
238
+ return cols;
239
+ }
240
+ export function replaceAll(text, toReplace, replaceWith) {
241
+ if (!text) {
242
+ return text;
243
+ }
244
+ // fails for []
245
+ toReplace = toReplace.replace('[', '\\[').replace(']', '\\]');
246
+ return text.replace(new RegExp(toReplace, 'g'), replaceWith);
247
+ }
248
+ export function extractContextKeysFromText(text) {
249
+ // context.columnName => columnName
250
+ const regex = /\[context\.(.*?)\]/g;
251
+ let m;
252
+ const contextKeys = [];
253
+ while ((m = regex.exec(text)) !== null) {
254
+ contextKeys.push(m[1]);
255
+ }
256
+ return contextKeys;
257
+ }
230
258
  export const Helper = {
231
259
  objectExists,
232
260
  objectNotExists,
@@ -247,5 +275,8 @@ export const Helper = {
247
275
  medianNumberArray,
248
276
  modeNumberArray,
249
277
  clamp,
278
+ extractColsFromText,
279
+ replaceAll,
280
+ extractContextKeysFromText,
250
281
  };
251
282
  export default Helper;
@@ -17,6 +17,7 @@ import { useAdaptable } from '../../AdaptableContext';
17
17
  import FormatHelper from '../../../Utilities/Helpers/FormatHelper';
18
18
  import { Toggle, ToggleGroup } from '../../../components/Toggle';
19
19
  import { DEFAULT_DOUBLE_DISPLAY_VALUE, DEFAULT_STRING_DISPLAY_VALUE, } from '../../../Utilities/Constants/GeneralConstants';
20
+ import Textarea from '../../../components/Textarea';
20
21
  const DOLLAR_OPTIONS = {
21
22
  FractionDigits: 2,
22
23
  FractionSeparator: '.',
@@ -369,7 +370,10 @@ const renderStringFormat = (data, _onChange, setFormatOption, scopedCustomFormat
369
370
  React.createElement(FormRow, { label: "Suffix" },
370
371
  React.createElement(Input, { "data-name": "suffix", value: (_b = data.DisplayFormat.Options.Suffix) !== null && _b !== void 0 ? _b : '', onChange: (e) => setFormatOption('Suffix', e.currentTarget.value) })),
371
372
  React.createElement(FormRow, { label: "Content" },
372
- React.createElement(Input, { "data-name": "content", value: (_c = data.DisplayFormat.Options.Content) !== null && _c !== void 0 ? _c : '', onChange: (e) => setFormatOption('Content', e.currentTarget.value) })),
373
+ React.createElement(Textarea, { minWidth: 300, rows: 3, placeholder: "use defaults", marginTop: 2, type: 'text', autoFocus: false, value: (_c = data.DisplayFormat.Options.Content) !== null && _c !== void 0 ? _c : '',
374
+ // placeholder="defaults to column name"
375
+ // onChange={(e: any) => onMessageHeaderChange(e)}
376
+ onChange: (e) => setFormatOption('Content', e.currentTarget.value) })),
373
377
  React.createElement(FormRow, { label: "Empty" },
374
378
  React.createElement(CheckBox, { "data-name": "empty-checkbox", checked: data.DisplayFormat.Options.Empty, onChange: (checked) => setFormatOption('Empty', checked) })))))),
375
379
  scopedCustomFormatters.length > 0 && (React.createElement(Tabs, { marginTop: 2, keyboardNavigation: false },
@@ -243,7 +243,7 @@ export declare class AdaptableAgGrid implements IAdaptable {
243
243
  private getDistinctGridCellsForColumn;
244
244
  private addDistinctColumnValue;
245
245
  private getUniqueGridCells;
246
- getGridCellsForColumn(columnId: string, includeBlanks?: boolean, onlyVisibleRows?: boolean): GridCell[] | undefined;
246
+ getGridCellsForColumn(columnId: string, onlyVisibleRows?: boolean): GridCell[] | undefined;
247
247
  getRowNodesForPrimaryKeys(primaryKeyValues: any[]): any[];
248
248
  getRowNodeByIndex(index: number): IRowNode;
249
249
  getAgGridStatusPanels(): import("@ag-grid-community/core").StatusPanelDef[];
@@ -296,7 +296,7 @@ export declare class AdaptableAgGrid implements IAdaptable {
296
296
  getAllGridColumns(): Column<any>[];
297
297
  clearRowGroupColumns(): void;
298
298
  expandAllRowGroups(): void;
299
- closeAllRowGroups(): void;
299
+ collapseAllRowGroups(): void;
300
300
  expandRowGroupsForValues(columnValues: any[]): void;
301
301
  getExpandRowGroupsKeys(): any[];
302
302
  getAgGridColumnForColumnId(columnId: string): Column;
@@ -276,6 +276,7 @@ export class AdaptableAgGrid {
276
276
  this.adaptableOptions = this.normalizeAdaptableOptions(this.adaptableOptions);
277
277
  const { showLoadingScreen, loadingScreenDelay, loadingScreenText, loadingScreenTitle } = this.adaptableOptions.userInterfaceOptions;
278
278
  if (showLoadingScreen) {
279
+ this.logger.info(`Show Loading Screen`);
279
280
  const portalElement = ensurePortalElement();
280
281
  if (portalElement) {
281
282
  this.unmountLoadingScreen = this.renderReactRoot(createElement(AdaptableLoadingScreen, {
@@ -285,6 +286,9 @@ export class AdaptableAgGrid {
285
286
  loadingScreenTitle,
286
287
  }), portalElement);
287
288
  }
289
+ else {
290
+ this.logger.consoleError(`Adaptable failed to show the loading screen!`);
291
+ }
288
292
  }
289
293
  this.forPlugins((plugin) => plugin.afterInitOptions(this, this.adaptableOptions));
290
294
  this.api = new AdaptableApiImpl(this);
@@ -350,6 +354,7 @@ export class AdaptableAgGrid {
350
354
  this.logger.consoleError(`Adaptable failed to initialize AG Grid!`);
351
355
  return Promise.reject('Adaptable failed to initialize AG Grid!');
352
356
  }
357
+ this.logger.info(`Hide Loading Screen`);
353
358
  (_b = this.unmountLoadingScreen) === null || _b === void 0 ? void 0 : _b.call(this);
354
359
  perfInitAgGrid.end();
355
360
  // we need to intercept several AG Grid Api methods and trigger Adaptale state changes
@@ -2037,8 +2042,10 @@ export class AdaptableAgGrid {
2037
2042
  let firstRowNode = this.getFirstDisplayedRowNode();
2038
2043
  if (firstRowNode === null || firstRowNode === void 0 ? void 0 : firstRowNode.group) {
2039
2044
  // all groups may be closed so it is safer to get first leaf node
2040
- // all groups must have at least one leafe node
2041
- firstRowNode = firstRowNode.allLeafChildren[0];
2045
+ // all groups should have at least one leafe node (though not necessarily if using SSRM)
2046
+ if (ArrayExtensions.IsNotNullOrEmpty(firstRowNode.allLeafChildren)) {
2047
+ firstRowNode = firstRowNode.allLeafChildren[0];
2048
+ }
2042
2049
  }
2043
2050
  return firstRowNode;
2044
2051
  }
@@ -2354,17 +2361,12 @@ export class AdaptableAgGrid {
2354
2361
  }
2355
2362
  return uniqueVals.slice(0, this.api.columnFilterApi.internalApi.getFilterValuesMaxNumberOfItems(column));
2356
2363
  }
2357
- getGridCellsForColumn(columnId, includeBlanks = false, onlyVisibleRows = false) {
2364
+ getGridCellsForColumn(columnId, onlyVisibleRows = false) {
2358
2365
  let returnValues = [];
2359
2366
  const handler = (rowNode) => {
2360
- const gridCell = this.getGridCellFromRowNode(rowNode, columnId);
2361
- if (gridCell) {
2362
- if (gridCell.rawValue == undefined || gridCell.rawValue == null) {
2363
- if (includeBlanks) {
2364
- returnValues.push(gridCell);
2365
- }
2366
- }
2367
- else {
2367
+ if (!this.isGroupRowNode(rowNode)) {
2368
+ const gridCell = this.getGridCellFromRowNode(rowNode, columnId);
2369
+ if (gridCell && gridCell.rawValue !== undefined && gridCell.rawValue !== null) {
2368
2370
  returnValues.push(gridCell);
2369
2371
  }
2370
2372
  }
@@ -2828,20 +2830,10 @@ export class AdaptableAgGrid {
2828
2830
  .removeRowGroupColumns(this.agGridAdapter.getAgGridApi().getRowGroupColumns());
2829
2831
  }
2830
2832
  expandAllRowGroups() {
2831
- this.agGridAdapter.getAgGridApi().forEachNode((node) => {
2832
- if (node.group) {
2833
- node.expanded = true;
2834
- }
2835
- });
2836
- this.agGridAdapter.getAgGridApi().onGroupExpandedOrCollapsed();
2833
+ this.agGridAdapter.getAgGridApi().expandAll();
2837
2834
  }
2838
- closeAllRowGroups() {
2839
- this.agGridAdapter.getAgGridApi().forEachNode((node) => {
2840
- if (node.group) {
2841
- node.expanded = false;
2842
- }
2843
- });
2844
- this.agGridAdapter.getAgGridApi().onGroupExpandedOrCollapsed();
2835
+ collapseAllRowGroups() {
2836
+ this.agGridAdapter.getAgGridApi().collapseAll();
2845
2837
  }
2846
2838
  expandRowGroupsForValues(columnValues) {
2847
2839
  if (ArrayExtensions.IsNotNullOrEmpty(columnValues)) {
@@ -3759,6 +3751,7 @@ export class AdaptableAgGrid {
3759
3751
  // same grid column state as a previous,
3760
3752
  // so no need to update, as the layout has already been updated
3761
3753
  // for this grid column state
3754
+ console.log('same state as before');
3762
3755
  return;
3763
3756
  }
3764
3757
  this.previousAgGridLayoutState = stringifiedLayoutState;
@@ -1,6 +1,9 @@
1
1
  import * as React from 'react';
2
2
  import { ICellEditorComp, ICellEditorParams } from '@ag-grid-community/core';
3
3
  import { IAdaptable } from '../../../AdaptableInterfaces/IAdaptable';
4
+ /**
5
+ * Params used by the AdapTable Date Editor
6
+ */
4
7
  export interface AdaptableDateEditorParams extends ICellEditorParams {
5
8
  onValueChange?: (value: any) => void;
6
9
  }
@@ -28,5 +28,6 @@ export type SelectProps<SelectValue extends unknown, IsMulti extends boolean = f
28
28
  onInputChange?: (value: string) => void;
29
29
  size?: 'small' | 'normal';
30
30
  isCreatable?: boolean;
31
+ menuPortalTarget?: HTMLElement;
31
32
  };
32
33
  export declare const Select: <SelectValue extends unknown, IsMulti extends boolean = false>(props: SelectProps<SelectValue, IsMulti>) => JSX.Element;
@@ -69,6 +69,11 @@ export const Select = function (props) {
69
69
  return (React.createElement(components.ValueContainer, Object.assign({}, inputProps, { innerProps: Object.assign({ 'data-name': 'value-container' }, inputProps.innerProps) })));
70
70
  };
71
71
  }, []);
72
+ const MenuComponent = React.useMemo(() => {
73
+ return (inputProps) => {
74
+ return (React.createElement(components.Menu, Object.assign({}, inputProps, { innerProps: Object.assign({ 'data-name': 'menu-container' }, inputProps.innerProps) })));
75
+ };
76
+ }, []);
72
77
  const SelectComponent = props.isCreatable ? CreatableSelect : ReactSelect;
73
78
  const ClearIndicator = React.useMemo(() => {
74
79
  return (clearIndicatorProps) => {
@@ -84,16 +89,17 @@ export const Select = function (props) {
84
89
  }, []);
85
90
  return (React.createElement(SelectComponent, { onInputChange: props.onInputChange, onFocus: props.onFocus, isLoading: props.isLoading, options: props.options, className: props.className, isDisabled: disabled, menuPlacement: (_g = props.menuPlacement) !== null && _g !== void 0 ? _g : 'auto', isSearchable: props.searchable, isMulti: props.isMulti, value: selectedOption, menuPosition: (_h = props.menuPosition) !== null && _h !== void 0 ? _h : 'absolute',
86
91
  // This needed so the menu is not clipped by overflow: hidden
87
- menuPortalTarget: document.body, isClearable: props.isClearable, onChange: (option) => {
92
+ menuPortalTarget: props.menuPortalTarget === undefined ? document.body : null, isClearable: props.isClearable, onChange: (option) => {
88
93
  if (props.isMulti) {
89
94
  props.onChange(option.map((x) => x === null || x === void 0 ? void 0 : x.value));
90
95
  }
91
96
  else {
92
97
  props.onChange(option === null || option === void 0 ? void 0 : option.value);
93
98
  }
94
- }, placeholder: props.placeholder, components: {
99
+ }, placeholder: props.placeholder, createOptionPosition: 'first', components: {
95
100
  SelectContainer,
96
101
  ValueContainer,
102
+ Menu: MenuComponent,
97
103
  SingleValue: (singleValueProps) => {
98
104
  return (React.createElement(components.SingleValue, Object.assign({}, singleValueProps), props.renderSingleValue
99
105
  ? props.renderSingleValue(selectedOption)
@@ -177,7 +177,7 @@ export const allIcons = {
177
177
  cells: CellSummary,
178
178
  columns: ColumnChooser,
179
179
  copy: Copy,
180
- 'chart-and-grid': CalculatedColumn,
180
+ 'calculated-column': CalculatedColumn,
181
181
  laptop: Application,
182
182
  alert: Alert,
183
183
  building: Analysis,
package/src/env.js CHANGED
@@ -1,5 +1,5 @@
1
1
  export default {
2
2
  INFINITE_TABLE_LICENSE_KEY: "StartDate=2021-06-29|EndDate=2030-01-01|Owner=Adaptable|Type=distribution|TS=1624971462479|C=137829811,1004007071,2756196225,1839832928,3994409405,636616862" || '',
3
- PUBLISH_TIMESTAMP: 1719402008840 || Date.now(),
4
- VERSION: "18.1.6" || '--current-version--',
3
+ PUBLISH_TIMESTAMP: 1720529546809 || Date.now(),
4
+ VERSION: "18.1.8" || '--current-version--',
5
5
  };
@@ -362,6 +362,11 @@ export declare const ADAPTABLE_METAMODEL: {
362
362
  kind: string;
363
363
  desc: string;
364
364
  };
365
+ AdaptableColumnMenuItemName: {
366
+ name: string;
367
+ kind: string;
368
+ desc: string;
369
+ };
365
370
  AdaptableColumnPredicate: {
366
371
  name: string;
367
372
  kind: string;
@@ -423,6 +428,11 @@ export declare const ADAPTABLE_METAMODEL: {
423
428
  kind: string;
424
429
  desc: string;
425
430
  };
431
+ AdaptableContextMenuItemName: {
432
+ name: string;
433
+ kind: string;
434
+ desc: string;
435
+ };
426
436
  AdaptableCoordinate: {
427
437
  name: string;
428
438
  kind: string;
@@ -453,6 +463,11 @@ export declare const ADAPTABLE_METAMODEL: {
453
463
  kind: string;
454
464
  desc: string;
455
465
  };
466
+ AdaptableDateEditorParams: {
467
+ name: string;
468
+ kind: string;
469
+ desc: string;
470
+ };
456
471
  AdaptableElementIcon: {
457
472
  name: string;
458
473
  kind: string;
@@ -487,6 +502,11 @@ export declare const ADAPTABLE_METAMODEL: {
487
502
  isOpt?: undefined;
488
503
  })[];
489
504
  };
505
+ AdaptableFieldContext: {
506
+ name: string;
507
+ kind: string;
508
+ desc: string;
509
+ };
490
510
  AdaptableFlashingCell: {
491
511
  name: string;
492
512
  kind: string;
@@ -1100,6 +1120,110 @@ export declare const ADAPTABLE_METAMODEL: {
1100
1120
  defVal: string;
1101
1121
  })[];
1102
1122
  };
1123
+ AggregatedExpressionFilterRowContext: {
1124
+ name: string;
1125
+ kind: string;
1126
+ desc: string;
1127
+ props: ({
1128
+ name: string;
1129
+ kind: string;
1130
+ desc: string;
1131
+ isOpt?: undefined;
1132
+ ref?: undefined;
1133
+ } | {
1134
+ name: string;
1135
+ kind: string;
1136
+ desc: string;
1137
+ isOpt: boolean;
1138
+ ref?: undefined;
1139
+ } | {
1140
+ name: string;
1141
+ kind: string;
1142
+ desc: string;
1143
+ ref: string;
1144
+ isOpt?: undefined;
1145
+ })[];
1146
+ };
1147
+ AggregatedExpressionFunction: {
1148
+ name: string;
1149
+ kind: string;
1150
+ desc: string;
1151
+ props: ({
1152
+ name: string;
1153
+ kind: string;
1154
+ desc: string;
1155
+ isOpt: boolean;
1156
+ } | {
1157
+ name: string;
1158
+ kind: string;
1159
+ desc: string;
1160
+ isOpt?: undefined;
1161
+ })[];
1162
+ };
1163
+ AggregatedExpressionPrepareRowValueContext: {
1164
+ name: string;
1165
+ kind: string;
1166
+ desc: string;
1167
+ props: ({
1168
+ name: string;
1169
+ kind: string;
1170
+ desc: string;
1171
+ isOpt?: undefined;
1172
+ ref?: undefined;
1173
+ } | {
1174
+ name: string;
1175
+ kind: string;
1176
+ desc: string;
1177
+ isOpt: boolean;
1178
+ ref?: undefined;
1179
+ } | {
1180
+ name: string;
1181
+ kind: string;
1182
+ desc: string;
1183
+ ref: string;
1184
+ isOpt?: undefined;
1185
+ })[];
1186
+ };
1187
+ AggregatedExpressionProcessAggValueContext: {
1188
+ name: string;
1189
+ kind: string;
1190
+ desc: string;
1191
+ props: ({
1192
+ name: string;
1193
+ kind: string;
1194
+ desc: string;
1195
+ isOpt?: undefined;
1196
+ } | {
1197
+ name: string;
1198
+ kind: string;
1199
+ desc: string;
1200
+ isOpt: boolean;
1201
+ })[];
1202
+ };
1203
+ AggregatedExpressionReducerContext: {
1204
+ name: string;
1205
+ kind: string;
1206
+ desc: string;
1207
+ props: ({
1208
+ name: string;
1209
+ kind: string;
1210
+ desc: string;
1211
+ isOpt?: undefined;
1212
+ ref?: undefined;
1213
+ } | {
1214
+ name: string;
1215
+ kind: string;
1216
+ desc: string;
1217
+ isOpt: boolean;
1218
+ ref?: undefined;
1219
+ } | {
1220
+ name: string;
1221
+ kind: string;
1222
+ desc: string;
1223
+ ref: string;
1224
+ isOpt?: undefined;
1225
+ })[];
1226
+ };
1103
1227
  AggregationColumns: {
1104
1228
  name: string;
1105
1229
  kind: string;
@@ -1369,6 +1493,11 @@ export declare const ADAPTABLE_METAMODEL: {
1369
1493
  kind: string;
1370
1494
  desc: string;
1371
1495
  };
1496
+ AST: {
1497
+ name: string;
1498
+ kind: string;
1499
+ desc: string;
1500
+ };
1372
1501
  AutoGenerateTagsForLayoutsContext: {
1373
1502
  name: string;
1374
1503
  kind: string;
@@ -2017,6 +2146,11 @@ export declare const ADAPTABLE_METAMODEL: {
2017
2146
  ref: string;
2018
2147
  })[];
2019
2148
  };
2149
+ ColumnValuesFilterPredicate: {
2150
+ name: string;
2151
+ kind: string;
2152
+ desc: string;
2153
+ };
2020
2154
  CommentableCellContext: {
2021
2155
  name: string;
2022
2156
  kind: string;
@@ -3590,6 +3724,11 @@ export declare const ADAPTABLE_METAMODEL: {
3590
3724
  kind: string;
3591
3725
  desc: string;
3592
3726
  };
3727
+ GridFilterEditors: {
3728
+ name: string;
3729
+ kind: string;
3730
+ desc: string;
3731
+ };
3593
3732
  GridFilterOptions: {
3594
3733
  name: string;
3595
3734
  kind: string;
@@ -5271,6 +5410,11 @@ export declare const ADAPTABLE_METAMODEL: {
5271
5410
  kind: string;
5272
5411
  desc: string;
5273
5412
  };
5413
+ Token: {
5414
+ name: string;
5415
+ kind: string;
5416
+ desc: string;
5417
+ };
5274
5418
  ToolPanelButtonContext: {
5275
5419
  name: string;
5276
5420
  kind: string;
@@ -5589,6 +5733,11 @@ export declare const ADAPTABLE_METAMODEL: {
5589
5733
  defVal: string;
5590
5734
  })[];
5591
5735
  };
5736
+ VueFrameworkComponent: {
5737
+ name: string;
5738
+ kind: string;
5739
+ desc: string;
5740
+ };
5592
5741
  WeightedAverageAggregation: {
5593
5742
  name: string;
5594
5743
  kind: string;