@adaptabletools/adaptable 18.0.0-canary.1 → 18.0.0-canary.10

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 (259) hide show
  1. package/agGrid.d.ts +4 -21
  2. package/agGrid.js +9 -26
  3. package/base.css +11 -3
  4. package/base.css.map +1 -1
  5. package/index.css +88 -70
  6. package/index.css.map +1 -1
  7. package/package.json +4 -5
  8. package/src/AdaptableInterfaces/IAdaptable.d.ts +61 -108
  9. package/src/AdaptableOptions/AdaptableOptions.d.ts +12 -6
  10. package/src/AdaptableOptions/ColumnFilterOptions.d.ts +4 -4
  11. package/src/AdaptableOptions/ColumnOptions.d.ts +4 -2
  12. package/src/AdaptableOptions/{CommentsOptions.d.ts → CommentOptions.d.ts} +5 -5
  13. package/src/AdaptableOptions/MenuOptions.d.ts +1 -1
  14. package/src/AdaptableOptions/MenuOptions.js +1 -5
  15. package/src/AdaptableOptions/{NotesOptions.d.ts → NoteOptions.d.ts} +1 -1
  16. package/src/AdaptableOptions/UserInterfaceOptions.d.ts +17 -0
  17. package/src/Api/AdaptableApi.d.ts +5 -0
  18. package/src/Api/BulkUpdateApi.d.ts +0 -5
  19. package/src/Api/ConfigApi.d.ts +1 -1
  20. package/src/Api/Events/AdaptableReady.d.ts +3 -3
  21. package/src/Api/Events/GridDataChanged.d.ts +4 -4
  22. package/src/Api/GridApi.d.ts +18 -13
  23. package/src/Api/Implementation/ActionColumnApiImpl.d.ts +2 -0
  24. package/src/Api/Implementation/ActionColumnApiImpl.js +33 -0
  25. package/src/Api/Implementation/AdaptableApiImpl.d.ts +1 -0
  26. package/src/Api/Implementation/AdaptableApiImpl.js +3 -0
  27. package/src/Api/Implementation/ApiBase.d.ts +2 -1
  28. package/src/Api/Implementation/ApiBase.js +4 -1
  29. package/src/Api/Implementation/BulkUpdateApiImpl.d.ts +0 -1
  30. package/src/Api/Implementation/BulkUpdateApiImpl.js +0 -4
  31. package/src/Api/Implementation/CommentsApiImpl.d.ts +4 -0
  32. package/src/Api/Implementation/CommentsApiImpl.js +7 -1
  33. package/src/Api/Implementation/ConfigApiImpl.js +13 -5
  34. package/src/Api/Implementation/GridApiImpl.d.ts +4 -3
  35. package/src/Api/Implementation/GridApiImpl.js +33 -14
  36. package/src/Api/Implementation/LayoutApiImpl.d.ts +2 -0
  37. package/src/Api/Implementation/LayoutApiImpl.js +15 -0
  38. package/src/Api/Implementation/NotesApiImpl.d.ts +6 -4
  39. package/src/Api/Implementation/NotesApiImpl.js +9 -8
  40. package/src/Api/Implementation/OptionsApiImpl.d.ts +2 -1
  41. package/src/Api/Implementation/OptionsApiImpl.js +12 -2
  42. package/src/Api/Implementation/ScopeApiImpl.d.ts +2 -0
  43. package/src/Api/Implementation/ScopeApiImpl.js +20 -7
  44. package/src/Api/Implementation/StatusBarApiImpl.d.ts +0 -1
  45. package/src/Api/Implementation/StatusBarApiImpl.js +0 -3
  46. package/src/Api/Implementation/ToolPanelApiImpl.js +6 -6
  47. package/src/Api/Internal/ActionRowInternalApi.d.ts +5 -1
  48. package/src/Api/Internal/ActionRowInternalApi.js +106 -0
  49. package/src/Api/Internal/AdaptableInternalApi.d.ts +3 -4
  50. package/src/Api/Internal/AdaptableInternalApi.js +10 -8
  51. package/src/Api/Internal/CalculatedColumnInternalApi.d.ts +2 -0
  52. package/src/Api/Internal/CalculatedColumnInternalApi.js +70 -0
  53. package/src/Api/Internal/ColumnFilterInternalApi.d.ts +1 -0
  54. package/src/Api/Internal/ColumnFilterInternalApi.js +11 -1
  55. package/src/Api/Internal/ColumnInternalApi.d.ts +4 -1
  56. package/src/Api/Internal/ColumnInternalApi.js +12 -0
  57. package/src/Api/Internal/CommentsInternalApi.d.ts +4 -0
  58. package/src/Api/Internal/CommentsInternalApi.js +14 -0
  59. package/src/Api/Internal/CustomSortInternalApi.d.ts +3 -2
  60. package/src/Api/Internal/CustomSortInternalApi.js +32 -1
  61. package/src/Api/Internal/DataSetInternalApi.js +1 -1
  62. package/src/Api/Internal/FormatColumnInternalApi.js +3 -2
  63. package/src/Api/Internal/FreeTextColumnInternalApi.d.ts +2 -0
  64. package/src/Api/Internal/FreeTextColumnInternalApi.js +59 -0
  65. package/src/Api/Internal/GridFilterInternalApi.js +1 -1
  66. package/src/Api/Internal/GridInternalApi.d.ts +21 -3
  67. package/src/Api/Internal/GridInternalApi.js +126 -7
  68. package/src/Api/Internal/NotesInternalApi.d.ts +4 -0
  69. package/src/Api/Internal/NotesInternalApi.js +14 -0
  70. package/src/Api/Internal/TeamSharingInternalApi.js +1 -1
  71. package/src/Api/InteropioPluginApi.d.ts +2 -2
  72. package/src/Api/LayoutApi.d.ts +11 -0
  73. package/src/Api/OptionsApi.d.ts +5 -1
  74. package/src/Api/ScopeApi.d.ts +10 -0
  75. package/src/EnvVars.d.ts +3 -0
  76. package/src/EnvVars.js +4 -0
  77. package/src/PredefinedConfig/Common/AdaptableColumn.d.ts +4 -0
  78. package/src/PredefinedConfig/Common/AdaptableIcon.d.ts +1 -1
  79. package/src/PredefinedConfig/Common/AdaptableScope.d.ts +4 -1
  80. package/src/PredefinedConfig/Common/AggregationColumns.d.ts +1 -0
  81. package/src/PredefinedConfig/Common/AggregationColumns.js +3 -0
  82. package/src/PredefinedConfig/Common/DataUpdateConfig.d.ts +8 -0
  83. package/src/PredefinedConfig/Common/RowSummary.d.ts +7 -0
  84. package/src/PredefinedConfig/Common/RowSummary.js +1 -0
  85. package/src/PredefinedConfig/LayoutState.d.ts +5 -0
  86. package/src/PredefinedConfig/NotesState.d.ts +10 -20
  87. package/src/PredefinedConfig/PredefinedConfig.d.ts +1 -1
  88. package/src/PredefinedConfig/SystemState.d.ts +7 -0
  89. package/src/Redux/ActionsReducers/LayoutRedux.d.ts +9 -0
  90. package/src/Redux/ActionsReducers/LayoutRedux.js +20 -0
  91. package/src/Redux/ActionsReducers/NotesRedux.d.ts +3 -4
  92. package/src/Redux/ActionsReducers/NotesRedux.js +8 -7
  93. package/src/Redux/ActionsReducers/SystemRedux.d.ts +5 -0
  94. package/src/Redux/ActionsReducers/SystemRedux.js +13 -1
  95. package/src/Redux/Store/AdaptableStore.d.ts +4 -6
  96. package/src/Redux/Store/AdaptableStore.js +33 -50
  97. package/src/Redux/Store/Interface/IAdaptableStore.d.ts +8 -2
  98. package/src/Strategy/AdaptableModuleBase.d.ts +2 -3
  99. package/src/Strategy/AdaptableModuleBase.js +4 -7
  100. package/src/Strategy/AlertModule.d.ts +1 -2
  101. package/src/Strategy/AlertModule.js +2 -55
  102. package/src/Strategy/CalculatedColumnModule.d.ts +2 -3
  103. package/src/Strategy/CalculatedColumnModule.js +5 -25
  104. package/src/Strategy/CellSummaryModule.d.ts +1 -0
  105. package/src/Strategy/CellSummaryModule.js +50 -21
  106. package/src/Strategy/ChartingModule.d.ts +0 -1
  107. package/src/Strategy/ChartingModule.js +2 -22
  108. package/src/Strategy/ColumnFilterModule.d.ts +1 -2
  109. package/src/Strategy/ColumnFilterModule.js +1 -64
  110. package/src/Strategy/CommentsModule.d.ts +1 -0
  111. package/src/Strategy/CommentsModule.js +5 -1
  112. package/src/Strategy/CustomSortModule.js +1 -1
  113. package/src/Strategy/DashboardModule.d.ts +1 -2
  114. package/src/Strategy/DashboardModule.js +1 -8
  115. package/src/Strategy/DataChangeHistoryModule.d.ts +1 -0
  116. package/src/Strategy/DataChangeHistoryModule.js +3 -1
  117. package/src/Strategy/DataSetModule.d.ts +1 -1
  118. package/src/Strategy/DataSetModule.js +1 -1
  119. package/src/Strategy/FlashingCellModule.d.ts +1 -2
  120. package/src/Strategy/FlashingCellModule.js +2 -15
  121. package/src/Strategy/FormatColumnModule.d.ts +0 -2
  122. package/src/Strategy/FormatColumnModule.js +0 -47
  123. package/src/Strategy/FreeTextColumnModule.d.ts +0 -1
  124. package/src/Strategy/FreeTextColumnModule.js +0 -30
  125. package/src/Strategy/GridFilterModule.d.ts +0 -1
  126. package/src/Strategy/GridFilterModule.js +0 -37
  127. package/src/Strategy/Interface/IModule.d.ts +0 -1
  128. package/src/Strategy/LayoutModule.d.ts +8 -3
  129. package/src/Strategy/LayoutModule.js +108 -53
  130. package/src/Strategy/NamedQueryModule.d.ts +0 -1
  131. package/src/Strategy/NamedQueryModule.js +0 -19
  132. package/src/Strategy/NotesModule.js +3 -4
  133. package/src/Strategy/PlusMinusModule.d.ts +1 -1
  134. package/src/Strategy/PlusMinusModule.js +1 -1
  135. package/src/Strategy/ScheduleModule.d.ts +1 -1
  136. package/src/Strategy/ScheduleModule.js +1 -1
  137. package/src/Strategy/ShortcutModule.d.ts +1 -1
  138. package/src/Strategy/ShortcutModule.js +1 -1
  139. package/src/Strategy/StyledColumnModule.d.ts +0 -1
  140. package/src/Strategy/StyledColumnModule.js +0 -21
  141. package/src/Strategy/TeamSharingModule.d.ts +1 -0
  142. package/src/Strategy/TeamSharingModule.js +5 -5
  143. package/src/Strategy/ToolPanelModule.d.ts +0 -1
  144. package/src/Strategy/ToolPanelModule.js +0 -23
  145. package/src/Utilities/Constants/DocumentationLinkConstants.js +1 -1
  146. package/src/Utilities/Constants/GeneralConstants.d.ts +1 -0
  147. package/src/Utilities/Constants/GeneralConstants.js +1 -0
  148. package/src/Utilities/Defaults/DefaultSettingsPanel.js +5 -4
  149. package/src/Utilities/ExpressionFunctions/aggregatedScalarExpressionFunctions.d.ts +2 -1
  150. package/src/Utilities/ExpressionFunctions/aggregatedScalarExpressionFunctions.js +294 -0
  151. package/src/Utilities/ExpressionFunctions/scalarAggregationHelper.js +1 -1
  152. package/src/Utilities/Extensions/ArrayExtensions.d.ts +2 -0
  153. package/src/Utilities/Extensions/ArrayExtensions.js +4 -0
  154. package/src/Utilities/Helpers/AdaptableHelper.d.ts +3 -4
  155. package/src/Utilities/Helpers/AdaptableHelper.js +18 -58
  156. package/src/Utilities/Helpers/Helper.d.ts +2 -0
  157. package/src/Utilities/Helpers/Helper.js +4 -0
  158. package/src/Utilities/ObjectFactory.js +6 -6
  159. package/src/Utilities/Services/AggregatedScalarLiveValue.d.ts +3 -2
  160. package/src/Utilities/Services/AggregatedScalarLiveValue.js +14 -9
  161. package/src/Utilities/Services/CellPopupService.js +0 -1
  162. package/src/Utilities/Services/Interface/IQueryLanguageService.d.ts +1 -1
  163. package/src/Utilities/Services/LicenseService/index.d.ts +3 -0
  164. package/src/Utilities/Services/LicenseService/index.js +19 -7
  165. package/src/Utilities/Services/MetamodelService.d.ts +1 -1
  166. package/src/Utilities/Services/MetamodelService.js +6 -3
  167. package/src/Utilities/Services/QueryLanguageService.d.ts +1 -1
  168. package/src/Utilities/Services/QueryLanguageService.js +2 -1
  169. package/src/Utilities/Services/RowEditService.d.ts +3 -2
  170. package/src/Utilities/Services/RowEditService.js +3 -1
  171. package/src/Utilities/Services/SummaryService.d.ts +19 -0
  172. package/src/Utilities/Services/SummaryService.js +29 -0
  173. package/src/View/AdaptableView.js +1 -3
  174. package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/ConfigurationWizard.js +2 -2
  175. package/src/View/BulkUpdate/BulkUpdatePopup.js +1 -1
  176. package/src/View/CalculatedColumn/utils.d.ts +1 -1
  177. package/src/View/CellSummary/CellSummaryPopup.js +1 -1
  178. package/src/View/Comments/CommentsPopup.js +12 -8
  179. package/src/View/Components/AdaptableDateInput/index.d.ts +1 -1
  180. package/src/View/Components/NewScopeComponent.js +34 -1
  181. package/src/View/Components/Popups/AdaptableLoadingScreen.d.ts +6 -5
  182. package/src/View/Components/Popups/AdaptableLoadingScreen.js +19 -9
  183. package/src/View/Components/Popups/AdaptableToaster.js +1 -1
  184. package/src/View/Components/Popups/GridCellPopup/GridCellPopup.js +1 -1
  185. package/src/View/Components/Popups/WindowPopups/windowFactory.d.ts +1 -0
  186. package/src/View/Components/Popups/WindowPopups/windowFactory.js +3 -0
  187. package/src/View/Components/Selectors/PermittedValuesSelector.js +1 -1
  188. package/src/View/CustomSort/CustomSortSummary.js +1 -1
  189. package/src/View/DataChangeHistory/DataChangeHistoryGrid.js +8 -8
  190. package/src/View/GridFilter/GridFilterViewPanel.js +6 -2
  191. package/src/View/GridInfo/GridInfoPopup/GridInfoPopup.js +2 -3
  192. package/src/View/Layout/TransposedPopup.d.ts +3 -0
  193. package/src/View/Layout/TransposedPopup.js +194 -0
  194. package/src/View/Layout/Wizard/LayoutWizard.js +1 -1
  195. package/src/View/Notes/NotesPopup.js +9 -11
  196. package/src/View/SpecialColumnSettingsWizardStep.js +4 -4
  197. package/src/View/Theme/ThemeSelector.js +3 -3
  198. package/src/agGrid/ActionColumnRenderer.js +7 -6
  199. package/src/agGrid/Adaptable.d.ts +3 -455
  200. package/src/agGrid/Adaptable.js +8 -5292
  201. package/src/agGrid/AdaptableAgGrid.d.ts +351 -0
  202. package/src/agGrid/AdaptableAgGrid.js +3936 -0
  203. package/src/agGrid/AdaptableLogger.js +77 -11
  204. package/src/agGrid/AgGridAdapter.d.ts +62 -0
  205. package/src/agGrid/AgGridAdapter.js +577 -0
  206. package/src/agGrid/AgGridColumnAdapter.d.ts +56 -0
  207. package/src/agGrid/AgGridColumnAdapter.js +824 -0
  208. package/src/agGrid/AgGridMenuAdapter.d.ts +28 -0
  209. package/src/agGrid/AgGridMenuAdapter.js +271 -0
  210. package/src/agGrid/AgGridOptionsService.d.ts +12 -0
  211. package/src/agGrid/AgGridOptionsService.js +54 -0
  212. package/src/agGrid/BadgeRenderer.js +1 -1
  213. package/src/agGrid/CheckboxRenderer.js +1 -1
  214. package/src/agGrid/FilterWrapper.d.ts +2 -2
  215. package/src/agGrid/FilterWrapper.js +1 -1
  216. package/src/agGrid/attachAddaptableColumnTypes.d.ts +12 -12
  217. package/src/agGrid/defaultAdaptableOptions.d.ts +3 -0
  218. package/src/{Utilities/Defaults/DefaultAdaptableOptions.js → agGrid/defaultAdaptableOptions.js} +70 -9
  219. package/src/agGrid/editors/AdaptableDateEditor/index.js +2 -2
  220. package/src/agGrid/editors/AdaptableNumberEditor/index.js +2 -2
  221. package/src/components/ColorPicker/ColorPicker.d.ts +1 -1
  222. package/src/components/Datepicker/index.d.ts +1 -1
  223. package/src/components/InfiniteTable/index.js +2 -2
  224. package/src/components/Input/index.d.ts +1 -1
  225. package/src/components/List/ListGroupItem/index.d.ts +1 -1
  226. package/src/components/Modal/index.d.ts +1 -0
  227. package/src/components/Modal/index.js +4 -3
  228. package/src/components/Select/Select.d.ts +2 -0
  229. package/src/components/Select/Select.js +2 -2
  230. package/src/components/icons/index.js +2 -0
  231. package/src/components/icons/rows.d.ts +3 -0
  232. package/src/components/icons/rows.js +4 -0
  233. package/src/env.js +2 -2
  234. package/src/metamodel/adaptable.metamodel.d.ts +74 -11
  235. package/src/metamodel/adaptable.metamodel.js +147 -34
  236. package/src/migration/AdaptableUpgradeHelper.d.ts +38 -0
  237. package/src/migration/AdaptableUpgradeHelper.js +48 -0
  238. package/src/migration/VersionUpgrade.d.ts +8 -0
  239. package/src/migration/VersionUpgrade.js +11 -0
  240. package/src/migration/VersionUpgrade17.d.ts +18 -0
  241. package/src/migration/VersionUpgrade17.js +342 -0
  242. package/src/migration/VersionUpgrade18.d.ts +5 -0
  243. package/src/migration/VersionUpgrade18.js +6 -0
  244. package/src/parser/src/types.d.ts +5 -0
  245. package/src/types.d.ts +7 -3
  246. package/tsconfig.esm.tsbuildinfo +1 -1
  247. package/src/Utilities/Defaults/DefaultAdaptableOptions.d.ts +0 -2
  248. package/src/Utilities/Services/Interface/IRowEditService.d.ts +0 -3
  249. package/src/Utilities/Services/Interface/IRowEditService.js +0 -1
  250. package/src/View/Components/ScopeComponent.d.ts +0 -24
  251. package/src/View/Components/ScopeComponent.js +0 -133
  252. package/src/View/Export/Wizard/ReportScopeWizard.d.ts +0 -17
  253. package/src/View/Export/Wizard/ReportScopeWizard.js +0 -47
  254. package/src/agGrid/agGridHelper.d.ts +0 -57
  255. package/src/agGrid/agGridHelper.js +0 -686
  256. package/src/agGrid/agGridMenuHelper.d.ts +0 -46
  257. package/src/agGrid/agGridMenuHelper.js +0 -668
  258. /package/src/AdaptableOptions/{CommentsOptions.js → CommentOptions.js} +0 -0
  259. /package/src/AdaptableOptions/{NotesOptions.js → NoteOptions.js} +0 -0
@@ -15,42 +15,15 @@ import { SHOW_PIVOT_COLUMN_DETAILS } from '../View/Components/Popups/WindowPopup
15
15
  import flattenDeep from 'lodash/flattenDeep';
16
16
  import StringExtensions from '../Utilities/Extensions/StringExtensions';
17
17
  import { getGridFilterViewItems } from '../View/Layout/Wizard/getGridFilterPreview';
18
+ import { SystemRowSummartSet } from '../Redux/ActionsReducers/SystemRedux';
19
+ import { ROW_SUMMARY_ROW_ID } from '../PredefinedConfig/Common/RowSummary';
20
+ import Helper from '../Utilities/Helpers/Helper';
18
21
  export class LayoutModule extends AdaptableModuleBase {
19
22
  constructor(api) {
20
23
  super(ModuleConstants.LayoutModuleId, ModuleConstants.LayoutFriendlyName, 'grid', 'LayoutPopup', 'Named sets of column visibility, order, groupings, aggregation, pivots etc.', api);
21
- this.clearUnsuportedFeaturesFromLayout = (layout) => {
22
- const layoutSupportedFeatures = this.api.layoutApi.internalApi.getLayoutSupportedFeatures();
23
- let needsUpdate = false;
24
- const layoutToSave = Object.assign({}, layout);
25
- if (!layoutSupportedFeatures.RowGroupedColumns && layout.RowGroupedColumns) {
26
- delete layoutToSave.RowGroupedColumns;
27
- needsUpdate = true;
28
- }
29
- if (!layoutSupportedFeatures.AggregationColumns && layout.AggregationColumns) {
30
- delete layoutToSave.AggregationColumns;
31
- needsUpdate = true;
32
- }
33
- if (!layoutSupportedFeatures.PivotColumns && layout.PivotColumns) {
34
- delete layoutToSave.PivotColumns;
35
- delete layoutToSave.EnablePivot;
36
- needsUpdate = true;
37
- }
38
- if (!layoutSupportedFeatures.ColumnFilters && layout.ColumnFilters) {
39
- delete layoutToSave.ColumnFilters;
40
- needsUpdate = true;
41
- }
42
- if (!layoutSupportedFeatures.GridFilter && layout.GridFilter) {
43
- delete layoutToSave.GridFilter;
44
- needsUpdate = true;
45
- }
46
- if (!layoutSupportedFeatures.ColumnSorts && layout.ColumnSorts) {
47
- delete layoutToSave.ColumnSorts;
48
- needsUpdate = true;
49
- }
50
- if (needsUpdate) {
51
- this.api.layoutApi.createOrUpdateLayout(layoutToSave);
52
- }
53
- };
24
+ this.cachedCellSummary = new Map();
25
+ }
26
+ onAdaptableReady() {
54
27
  this.api.eventApi.on('LayoutChanged', (layoutChangedInfo) => {
55
28
  var _a;
56
29
  if (layoutChangedInfo.newLayoutState.CurrentLayout !==
@@ -59,17 +32,29 @@ export class LayoutModule extends AdaptableModuleBase {
59
32
  this.handleLayoutChange();
60
33
  }
61
34
  });
62
- }
63
- updateOldConfig() {
64
- /**
65
- * Viewport mode does not support a few
66
- * features instead of complicating the
67
- * logic where layout is applied, it is easier and
68
- * less error prone to just remove it.
69
- */
70
- if (this.api.gridApi.getAgGridRowModelType() === 'viewport') {
71
- this.api.layoutApi.getLayouts().forEach(this.clearUnsuportedFeaturesFromLayout);
72
- }
35
+ requestAnimationFrame(() => {
36
+ this.api.layoutApi.internalApi.fireLayoutChangedEvent('ADAPTABLE_READY', null, this.api.layoutApi.getLayoutState());
37
+ });
38
+ this.evaluateRowSummary();
39
+ this.api.eventApi.on('AdaptableStateReloaded', () => {
40
+ this.evaluateRowSummary();
41
+ });
42
+ this.api.eventApi.on('GridDataChanged', (event) => {
43
+ this.evaluateRowSummary();
44
+ });
45
+ this.api.eventApi.on('CellChanged', (event) => {
46
+ const columnId = event.cellChange.column.columnId;
47
+ this.evaluateRowSummary({
48
+ columnId,
49
+ });
50
+ });
51
+ this.api.eventApi.on('LayoutChanged', (event) => {
52
+ this.evaluateRowSummary();
53
+ });
54
+ const adaptable = this.api.internalApi.getAdaptableInstance();
55
+ adaptable._on('FirstDataRendered', () => {
56
+ this.evaluateRowSummary();
57
+ });
73
58
  }
74
59
  getModuleAdaptableObjects() {
75
60
  return this.api.layoutApi.getLayouts();
@@ -137,11 +122,6 @@ export class LayoutModule extends AdaptableModuleBase {
137
122
  hasNamedQueryReferences() {
138
123
  return true;
139
124
  }
140
- handleAdaptableReady() {
141
- requestAnimationFrame(() => {
142
- this.api.layoutApi.internalApi.fireLayoutChangedEvent('ADAPTABLE_READY', null, this.api.layoutApi.getLayoutState());
143
- });
144
- }
145
125
  addColumnMenuItems(column) {
146
126
  var _a, _b;
147
127
  let returnColumnMenuItems = [];
@@ -239,7 +219,7 @@ export class LayoutModule extends AdaptableModuleBase {
239
219
  }
240
220
  createViewPivotItemsMenuItem(menuContext) {
241
221
  // current group => menuContext.rowNode.field;
242
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
222
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
243
223
  const selectedCellInfo = (_a = menuContext.selectedCellInfo) !== null && _a !== void 0 ? _a : this.api.gridApi.getSelectedCellInfo();
244
224
  if (((_b = selectedCellInfo === null || selectedCellInfo === void 0 ? void 0 : selectedCellInfo.gridCells) === null || _b === void 0 ? void 0 : _b.length) !== 1) {
245
225
  return;
@@ -280,7 +260,9 @@ export class LayoutModule extends AdaptableModuleBase {
280
260
  }
281
261
  const data = flattenDeep(getData(menuContext.rowNode.childrenAfterFilter));
282
262
  const rowGroups = currentLayout.RowGroupedColumns;
283
- const cellValue = isPivotColumn ? menuContext.rowNode.aggData[columnId] : gridCell.displayValue;
263
+ const cellValue = isPivotColumn
264
+ ? (_o = (_m = menuContext.rowNode) === null || _m === void 0 ? void 0 : _m.aggData) === null || _o === void 0 ? void 0 : _o[columnId]
265
+ : gridCell.displayValue;
284
266
  const popupProps = {
285
267
  hasPivotValue: isPivotColumn,
286
268
  columnId,
@@ -321,7 +303,7 @@ export class LayoutModule extends AdaptableModuleBase {
321
303
  return this.getModuleAdaptableObjects().map((layout) => this.toView(layout));
322
304
  }
323
305
  toView(layout) {
324
- var _a, _b, _c, _d, _e, _f;
306
+ var _a, _b, _c, _d, _e, _f, _g;
325
307
  const maxColumnsToDisplay = (_b = (_a = this.api.optionsApi.getLayoutOptions().layoutViewOptions) === null || _a === void 0 ? void 0 : _a.maxColumnsToDisplay) !== null && _b !== void 0 ? _b : 10;
326
308
  const columnIdToFriendlyName = (columnId) => {
327
309
  return this.api.columnApi.getFriendlyNameForColumnId(columnId);
@@ -390,6 +372,22 @@ export class LayoutModule extends AdaptableModuleBase {
390
372
  (layout === null || layout === void 0 ? void 0 : layout.GridFilter) &&
391
373
  StringExtensions.IsNotNullOrEmpty(layout.GridFilter.Expression) &&
392
374
  getGridFilterViewItems(layout),
375
+ ((_g = layout === null || layout === void 0 ? void 0 : layout.RowSummaries) === null || _g === void 0 ? void 0 : _g.length) && {
376
+ name: 'Row Summaries',
377
+ values: layout === null || layout === void 0 ? void 0 : layout.RowSummaries.map((rowSummary) => {
378
+ var _a;
379
+ const columns = Object.entries((_a = rowSummary.ColumnsMap) !== null && _a !== void 0 ? _a : {})
380
+ .map(([columnId, expression]) => {
381
+ if (columnId === 'Source' || columnId === 'Uuid') {
382
+ return '';
383
+ }
384
+ return `${expression}(${columnIdToFriendlyName(columnId)})`;
385
+ })
386
+ .filter(Boolean)
387
+ .join(', ');
388
+ return `${rowSummary.Position}: ${columns}`;
389
+ }),
390
+ },
393
391
  ].filter(Boolean),
394
392
  abObject: layout,
395
393
  };
@@ -435,7 +433,7 @@ export class LayoutModule extends AdaptableModuleBase {
435
433
  .setUpScheduleJobs();
436
434
  // CustomSort, FlashingCell, FormatColumn
437
435
  // we need to refresh the column defs, as some configs may have changed
438
- this.api.internalApi.getAdaptableInstance().setupColumns();
436
+ this.api.internalApi.getAdaptableInstance().updateColumnModelAndRefreshGrid();
439
437
  }
440
438
  getReferencedNamedQueryNames(layout) {
441
439
  var _a;
@@ -444,4 +442,61 @@ export class LayoutModule extends AdaptableModuleBase {
444
442
  }
445
443
  return this.api.namedQueryApi.internalApi.getReferencedNamedQueryNames(layout.GridFilter.Expression);
446
444
  }
445
+ /**
446
+ *
447
+ * @param colId optional to evaluate only one column
448
+ */
449
+ evaluateRowSummary(reason) {
450
+ var _a;
451
+ const rowSummaries = (_a = this.api.layoutApi.getCurrentLayout().RowSummaries) !== null && _a !== void 0 ? _a : [];
452
+ const rowSummariesResults = rowSummaries.map(({ ColumnsMap, Position }) => {
453
+ return {
454
+ Position,
455
+ RowData: Object.entries(ColumnsMap !== null && ColumnsMap !== void 0 ? ColumnsMap : {}).reduce((acc, [columnId, expression]) => {
456
+ const key = `${columnId}-${expression}`;
457
+ let expressionLiveValue = this.cachedCellSummary.get(key);
458
+ if (expressionLiveValue) {
459
+ if (!reason) {
460
+ // refresh all of them
461
+ expressionLiveValue.refresh();
462
+ }
463
+ else if ('columnId' in reason && reason.columnId === columnId) {
464
+ expressionLiveValue.refresh();
465
+ }
466
+ }
467
+ if (!expressionLiveValue) {
468
+ try {
469
+ expressionLiveValue = this.api.internalApi
470
+ .getAdaptableInstance()
471
+ .SummaryService.evaluateScalarLiveValue({
472
+ expression: {
473
+ function: expression,
474
+ },
475
+ columnId: columnId,
476
+ getRowNodes: () => {
477
+ return this.api.gridApi.getVisibleRowNodes();
478
+ },
479
+ }, ModuleConstants.LayoutModuleId);
480
+ }
481
+ catch (e) {
482
+ this.api.logError('Error evaluating row summary', e);
483
+ }
484
+ this.cachedCellSummary.set(key, expressionLiveValue);
485
+ }
486
+ let value = null;
487
+ if (expressionLiveValue) {
488
+ value = expressionLiveValue.getGlobalAggregatedValue();
489
+ if (typeof value === 'number' && !isNaN(value)) {
490
+ value = Helper.roundNumber(value, 2);
491
+ }
492
+ }
493
+ acc[columnId] = value;
494
+ return acc;
495
+ }, {
496
+ [ROW_SUMMARY_ROW_ID]: true,
497
+ }),
498
+ };
499
+ });
500
+ this.api.internalApi.dispatchReduxAction(SystemRowSummartSet(rowSummariesResults));
501
+ }
447
502
  }
@@ -8,7 +8,6 @@ import { IModule } from './Interface/IModule';
8
8
  export declare class NamedQueryModule extends AdaptableModuleBase implements IModule {
9
9
  constructor(api: AdaptableApi);
10
10
  getModuleAdaptableObjects(): AdaptableObject[];
11
- updateOldConfig(): void;
12
11
  getTeamSharingAction(): TeamSharingImportInfo<NamedQuery>;
13
12
  getExplicitlyReferencedColumnIds(namedQuery: NamedQuery): string[];
14
13
  getReferencedNamedQueryNames(namedQuery: NamedQuery): string[];
@@ -1,6 +1,5 @@
1
1
  import * as NamedQueryRedux from '../Redux/ActionsReducers/NamedQueryRedux';
2
2
  import * as ModuleConstants from '../Utilities/Constants/ModuleConstants';
3
- import ArrayExtensions from '../Utilities/Extensions/ArrayExtensions';
4
3
  import { EditGridFilterButton } from '../View/NamedQuery/EditCurrentQueryButton';
5
4
  import { NamedQueryWizard } from '../View/NamedQuery/Wizard/NamedQueryWizard';
6
5
  import { AdaptableModuleBase } from './AdaptableModuleBase';
@@ -12,24 +11,6 @@ export class NamedQueryModule extends AdaptableModuleBase {
12
11
  getModuleAdaptableObjects() {
13
12
  return this.api.namedQueryApi.getNamedQueries();
14
13
  }
15
- updateOldConfig() {
16
- // - move named queries from old Query State to this Module
17
- // Note: GridFilter Module moves the "old" CurrentQuery into Layout
18
- const oldQueryState = this.api.internalApi.getAdaptableState().Query;
19
- const oldNamedQueries = oldQueryState.NamedQueries;
20
- if (ArrayExtensions.IsNotNullOrEmpty(oldNamedQueries)) {
21
- const currentNamedQueries = this.api.namedQueryApi.getNamedQueries();
22
- oldNamedQueries.forEach((oldNamedQuery) => {
23
- const currentQuery = currentNamedQueries.find((q) => q.Name === oldNamedQuery.Name);
24
- if (!currentQuery) {
25
- this.api.namedQueryApi.addNamedQuery(oldNamedQuery);
26
- }
27
- });
28
- }
29
- if (oldQueryState) {
30
- this.api.namedQueryApi.internalApi.cleanupQueryRedux();
31
- }
32
- }
33
14
  getTeamSharingAction() {
34
15
  return {
35
16
  ModuleEntities: this.api.namedQueryApi.getNamedQueries(),
@@ -5,10 +5,6 @@ export class NotesModule extends AdaptableModuleBase {
5
5
  super(ModuleConstants.NotesModuleId, ModuleConstants.NotesFriendlyName, 'note', 'NotesPopup', 'Notes', api);
6
6
  this.adaptable = api.internalApi.getAdaptableInstance();
7
7
  }
8
- // isModuleAvailable(): boolean {
9
- // // FIXME remove this once Notes feature is public
10
- // return true;
11
- // }
12
8
  addContextMenuItems(menuContext) {
13
9
  var _a, _b;
14
10
  if (!this.isModuleAvailable()) {
@@ -32,6 +28,9 @@ export class NotesModule extends AdaptableModuleBase {
32
28
  getAddRemoveNoteMenuItems(menuContext) {
33
29
  var _a;
34
30
  const items = [];
31
+ if (!this.api.notesApi.internalApi.areNotesAvailable()) {
32
+ return items;
33
+ }
35
34
  // does not have note
36
35
  const [note] = (_a = this.adaptable.api.notesApi.getCellNotes({
37
36
  PrimaryKeyValue: menuContext.primaryKeyValue,
@@ -17,7 +17,7 @@ export declare class PlusMinusModule extends AdaptableModuleBase implements IPlu
17
17
  }): AdaptableObject[];
18
18
  getExplicitlyReferencedColumnIds(plusMinusNudge: PlusMinusNudge): string[];
19
19
  getReferencedNamedQueryNames(plusMinusNudge: PlusMinusNudge): string[];
20
- handleAdaptableReady(): void;
20
+ onAdaptableReady(): void;
21
21
  checkListenToKeyDown(): void;
22
22
  addColumnMenuItems(column: AdaptableColumn): AdaptableMenuItem[] | undefined;
23
23
  private handleKeyDown;
@@ -33,7 +33,7 @@ export class PlusMinusModule extends AdaptableModuleBase {
33
33
  }
34
34
  return this.api.namedQueryApi.internalApi.getReferencedNamedQueryNames((_b = plusMinusNudge.Rule) === null || _b === void 0 ? void 0 : _b.BooleanExpression);
35
35
  }
36
- handleAdaptableReady() {
36
+ onAdaptableReady() {
37
37
  let plusMinusNudges = this.api.plusMinusApi.getAllPlusMinus();
38
38
  this.shouldHandleKeyDown = ArrayExtensions.IsNotNullOrEmpty(plusMinusNudges);
39
39
  if (this.shouldHandleKeyDown) {
@@ -6,7 +6,7 @@ import { IScheduleModule } from './Interface/IScheduleModule';
6
6
  export declare class ScheduleModule extends AdaptableModuleBase implements IScheduleModule {
7
7
  private scheduleJobs;
8
8
  constructor(api: AdaptableApi);
9
- handleAdaptableReady(): void;
9
+ onAdaptableReady(): void;
10
10
  setUpScheduleJobs(): void;
11
11
  private addSchedule;
12
12
  private addMidnightRefreshSchedule;
@@ -36,7 +36,7 @@ export class ScheduleModule extends AdaptableModuleBase {
36
36
  this.scheduleJobs = [];
37
37
  this.addMidnightRefreshSchedule();
38
38
  }
39
- handleAdaptableReady() {
39
+ onAdaptableReady() {
40
40
  this.setUpScheduleJobs();
41
41
  }
42
42
  setUpScheduleJobs() {
@@ -14,7 +14,7 @@ export declare class ShortcutModule extends AdaptableModuleBase implements IShor
14
14
  }): AdaptableObject[];
15
15
  hasNamedQueryReferences(): boolean;
16
16
  getTeamSharingAction(): TeamSharingImportInfo<Shortcut>;
17
- handleAdaptableReady(): void;
17
+ onAdaptableReady(): void;
18
18
  checkListenToKeyDown(): void;
19
19
  private handleKeyDown;
20
20
  private calculateShortcut;
@@ -27,7 +27,7 @@ export class ShortcutModule extends AdaptableModuleBase {
27
27
  EditAction: ShortcutRedux.ShortcutEdit,
28
28
  };
29
29
  }
30
- handleAdaptableReady() {
30
+ onAdaptableReady() {
31
31
  this.checkListenToKeyDown();
32
32
  this.adaptable._on('CellEditorKeyDown', (cellEditorKeyDownEvent) => {
33
33
  this.handleKeyDown(cellEditorKeyDownEvent);
@@ -9,7 +9,6 @@ import { AdaptableObject } from '../PredefinedConfig/Common/AdaptableObject';
9
9
  import { StyledColumn } from '../PredefinedConfig/StyledColumnState';
10
10
  export declare class StyledColumnModule extends AdaptableModuleBase implements IModule {
11
11
  constructor(api: AdaptableApi);
12
- updateOldConfig(): void;
13
12
  getModuleAdaptableObjects(config?: {
14
13
  includeLayoutNotAssociatedObjects?: boolean;
15
14
  }): AdaptableObject[];
@@ -11,27 +11,6 @@ export class StyledColumnModule extends AdaptableModuleBase {
11
11
  super(ModuleConstants.StyledColumnModuleId, ModuleConstants.StyledColumnFriendlyName, 'brush', 'StyledColumnPopup', // to change
12
12
  'Create a Special Column Style e.g Gradient or Percent Bar', api);
13
13
  }
14
- updateOldConfig() {
15
- const formatColumnsWithColumnStyles = this.api.formatColumnApi
16
- .getFormatColumns()
17
- .filter((formatColumn) => formatColumn.ColumnStyle);
18
- if (!formatColumnsWithColumnStyles.length) {
19
- return;
20
- }
21
- this.api.logInfo(`Converting ${formatColumnsWithColumnStyles.length} FormatColumns Styles to Styled Columns`, formatColumnsWithColumnStyles);
22
- formatColumnsWithColumnStyles.forEach((formatColumn) => {
23
- this.api.formatColumnApi.deleteFormatColumn(formatColumn);
24
- });
25
- const styledColumns = formatColumnsWithColumnStyles
26
- .map((formatColumn) => {
27
- if (!('ColumnIds' in formatColumn.Scope)) {
28
- return null;
29
- }
30
- return Object.assign(Object.assign(Object.assign({}, ObjectFactory.CreateEmptyStyledColumn()), { ColumnId: formatColumn.Scope.ColumnIds[0] }), formatColumn.ColumnStyle);
31
- })
32
- .filter(Boolean);
33
- styledColumns.forEach((styledColumn) => this.api.styledColumnApi.addStyledColumn(styledColumn));
34
- }
35
14
  getModuleAdaptableObjects(config) {
36
15
  return this.api.styledColumnApi.getStyledColumns(config);
37
16
  }
@@ -5,6 +5,7 @@ import { AdaptableSharedEntity } from '../PredefinedConfig/TeamSharingState';
5
5
  export declare class TeamSharingModule extends AdaptableModuleBase implements IModule {
6
6
  private SKIP_TEAMSHARING_UPDATE_ACTIONS;
7
7
  constructor(api: AdaptableApi);
8
+ onAdaptableReady(): void;
8
9
  isModuleAvailable(): boolean;
9
10
  isModuleObjectsShareable(): boolean;
10
11
  getPopupMaxWidth(): number | undefined;
@@ -23,14 +23,14 @@ export class TeamSharingModule extends AdaptableModuleBase {
23
23
  TEAMSHARING_LINK_ITEM,
24
24
  TEAMSHARING_UPDATE_ITEM,
25
25
  ];
26
- this.api.eventApi.on('AdaptableStateChanged', (adaptableStateChangedInfo) => this.handleStateChanged(adaptableStateChangedInfo));
27
- this.api.eventApi.on('AdaptableReady', () => {
28
- // make sure there is no zombie import process remaining (in case a previous import crashed)
29
- this.api.internalApi.dispatchReduxAction(TeamSharingRedux.TeamSharingCommitImport());
30
- });
26
+ }
27
+ onAdaptableReady() {
28
+ // make sure there is no zombie import process remaining (in case a previous import crashed)
29
+ this.api.internalApi.dispatchReduxAction(TeamSharingRedux.TeamSharingCommitImport());
31
30
  if (this.api.teamSharingApi.isTeamSharingAvailable()) {
32
31
  this.api.teamSharingApi.refreshTeamSharing();
33
32
  }
33
+ this.api.eventApi.on('AdaptableStateChanged', (adaptableStateChangedInfo) => this.handleStateChanged(adaptableStateChangedInfo));
34
34
  }
35
35
  isModuleAvailable() {
36
36
  return super.isModuleAvailable() && this.api.teamSharingApi.isTeamSharingAvailable();
@@ -4,5 +4,4 @@ import { AdaptableApi } from '../Api/AdaptableApi';
4
4
  export declare class ToolPanelModule extends AdaptableModuleBase implements IModule {
5
5
  constructor(api: AdaptableApi);
6
6
  isModuleAvailable(): boolean;
7
- updateOldConfig(): void;
8
7
  }
@@ -1,7 +1,5 @@
1
1
  import { AdaptableModuleBase } from './AdaptableModuleBase';
2
2
  import * as ModuleConstants from '../Utilities/Constants/ModuleConstants';
3
- import { ALL_TOOL_PANELS } from '../PredefinedConfig/Common/Types';
4
- import { ToolPanelSetToolPanels } from '../Redux/ActionsReducers/ToolPanelRedux';
5
3
  export class ToolPanelModule extends AdaptableModuleBase {
6
4
  constructor(api) {
7
5
  super(ModuleConstants.ToolPanelModuleId, ModuleConstants.ToolPanelFriendlyName, 'clipboard', 'ToolPanelPopup', 'An alternative to using the Dashboard is the AdapTable Tool Panel, the Tool Panel is the collapsible area to the right of the Grid.', api);
@@ -12,25 +10,4 @@ export class ToolPanelModule extends AdaptableModuleBase {
12
10
  }
13
11
  return this.api.internalApi.getAdaptableInstance().hasAdaptableToolPanel;
14
12
  }
15
- updateOldConfig() {
16
- const deprecatedToolPanelConfigs = this.api.toolPanelApi.getToolPanelState().VisibleToolPanels;
17
- if (deprecatedToolPanelConfigs === null || deprecatedToolPanelConfigs === void 0 ? void 0 : deprecatedToolPanelConfigs.length) {
18
- this.api.logWarn(`Updating Obsolete VisibleToolPanels Config for ToolPanelState: [${deprecatedToolPanelConfigs}]`);
19
- const migratedToolPanelConfigs = deprecatedToolPanelConfigs.map((toolPanel) => ({
20
- Name: toolPanel,
21
- State: 'collapsed',
22
- }));
23
- this.api.internalApi.dispatchReduxAction(ToolPanelSetToolPanels(migratedToolPanelConfigs));
24
- }
25
- else if (!this.api.toolPanelApi.getToolPanelState().ToolPanels) {
26
- // no predefined config provided, we will display all the panels collapsed (custom & module)
27
- this.api.logInfo(`No predefined ToolPanels provided, displaying all available ones (custom&system)`);
28
- const defaultConfig = [];
29
- this.api.toolPanelApi
30
- .getCustomToolPanels()
31
- .forEach((customToolPanel) => defaultConfig.push({ Name: customToolPanel.name }));
32
- ALL_TOOL_PANELS.forEach((moduleToolPanel) => defaultConfig.push({ Name: moduleToolPanel }));
33
- this.api.internalApi.dispatchReduxAction(ToolPanelSetToolPanels(defaultConfig));
34
- }
35
- }
36
13
  }
@@ -12,4 +12,4 @@ export const PredicateDocsLink = `${HOST_URL_DOCS}/guide/adaptable-predicate`;
12
12
  export const PrimaryKeyDocsLink = `${HOST_URL_DOCS}/guide/getting-started-primary-key`;
13
13
  export const LicenseDocsLink = `${HOST_URL_DOCS}/guide/licensing`;
14
14
  export const AdaptableOptionsDocsLink = `${HOST_URL_DOCS}/guide/reference-options-overview`;
15
- export const AgGridModulesDocsLink = `${HOST_URL_DOCS}/TODO_TODO_TODO`;
15
+ export const AgGridModulesDocsLink = `${HOST_URL_DOCS}/guide/dev-guide-aggrid-modules-overview`;
@@ -27,6 +27,7 @@ export declare const AB_SPECIAL_COLUMN: AdaptableColumnType;
27
27
  export declare const AB_ROW_ACTIONS_COLUMN: AdaptableColumnType;
28
28
  export declare const AB_FDC3_COLUMN: AdaptableColumnType;
29
29
  export declare const HALF_SECOND: number;
30
+ export declare const GROUP_PATH_SEPARATOR: string;
30
31
  export declare const AG_GRID_GROUPED_COLUMN: string;
31
32
  export declare const AG_GRID_PIVOT_COLUMN: string;
32
33
  export declare const AG_GRID_CHART_WINDOW = "AG Grid Window";
@@ -26,6 +26,7 @@ export const AB_SPECIAL_COLUMN = 'abSpecialColumn';
26
26
  export const AB_ROW_ACTIONS_COLUMN = 'abRowActionsColumn';
27
27
  export const AB_FDC3_COLUMN = 'abFdc3Column';
28
28
  export const HALF_SECOND = 500;
29
+ export const GROUP_PATH_SEPARATOR = '/';
29
30
  export const AG_GRID_GROUPED_COLUMN = 'ag-Grid-AutoColumn';
30
31
  export const AG_GRID_PIVOT_COLUMN = 'pivot_';
31
32
  export const AG_GRID_CHART_WINDOW = 'AG Grid Window';
@@ -14,13 +14,15 @@ export const DEFAULT_SETTINGS_PANEL_NAVIGATION_ITEMS = [
14
14
  'StatusBar',
15
15
  '-',
16
16
  'Layout',
17
- 'Export',
18
17
  'CalculatedColumn',
19
18
  'FreeTextColumn',
20
19
  'CustomSort',
21
20
  'Alert',
22
21
  'SystemStatus',
23
22
  '-',
23
+ 'Export',
24
+ 'DataImport',
25
+ '-',
24
26
  'FormatColumn',
25
27
  'StyledColumn',
26
28
  'FlashingCell',
@@ -30,17 +32,16 @@ export const DEFAULT_SETTINGS_PANEL_NAVIGATION_ITEMS = [
30
32
  'GridFilter',
31
33
  'ColumnFilter',
32
34
  'DataSet',
35
+ 'NamedQuery',
33
36
  '-',
34
37
  'PlusMinus',
35
38
  'Shortcut',
36
39
  'DataChangeHistory',
37
40
  '-',
38
41
  'Charting',
39
- 'DataImport',
40
42
  'Schedule',
41
- 'NamedQuery',
42
- 'StateManagement',
43
43
  'TeamSharing',
44
44
  'Notes',
45
45
  'Comments',
46
+ 'StateManagement',
46
47
  ];
@@ -6,7 +6,7 @@ import { AggregateParams } from './scalarAggregationHelper';
6
6
  * List of all the AggregatedScalar Functions available in AdaptableQL
7
7
  */
8
8
  export type AggregatedScalarFunctionName = ScalarAggregationFunction | OperandFunction;
9
- export type ScalarAggregationFunction = 'SUM' | 'PERCENTAGE' | 'QUANT' | 'QUARTILE' | 'PERCENTILE' | 'AVG' | 'MIN' | 'MAX' | 'COUNT' | 'CUMUL';
9
+ export type ScalarAggregationFunction = 'SUM' | 'PERCENTAGE' | 'QUANT' | 'QUARTILE' | 'PERCENTILE' | 'AVG' | 'MIN' | 'MAX' | 'COUNT' | 'CUMUL' | 'MEDIAN' | 'MODE' | 'DISTINCT' | 'ONLY' | 'STD_DEVIATION';
10
10
  type OperandFunction = 'COL' | 'OVER' | 'GROUP_BY' | 'WEIGHT';
11
11
  export interface ScalarAggregationParameter extends BaseParameter<'aggregationScalar', ScalarAggregationFunction> {
12
12
  value: AggregatedScalarExpressionEvaluation;
@@ -28,6 +28,7 @@ export interface AggregatedScalarExpressionEvaluation {
28
28
  };
29
29
  sortByColumn?: string;
30
30
  rowFilterFn?: (rowNode: IRowNode) => boolean;
31
+ getRowNodes?: () => IRowNode[];
31
32
  }
32
33
  export interface CumulatedAggregationValue {
33
34
  currentValue: number;