@adaptabletools/adaptable 14.1.0 → 15.0.0-canary.1

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 (115) hide show
  1. package/bundle.cjs.js +200 -215
  2. package/package.json +2 -2
  3. package/publishTimestamp.d.ts +1 -1
  4. package/publishTimestamp.js +1 -1
  5. package/src/AdaptableInterfaces/IAdaptable.d.ts +42 -42
  6. package/src/AdaptableOptions/ActionOptions.d.ts +5 -5
  7. package/src/AdaptableOptions/ChartingOptions.d.ts +6 -0
  8. package/src/AdaptableOptions/UserInterfaceOptions.d.ts +2 -2
  9. package/src/Api/ChartingApi.d.ts +12 -8
  10. package/src/Api/ColumnApi.d.ts +3 -3
  11. package/src/Api/DashboardApi.d.ts +4 -6
  12. package/src/Api/Events/ActionRowSubmitted.d.ts +4 -4
  13. package/src/Api/Events/ChartChanged.d.ts +30 -1
  14. package/src/Api/Events/DashboardChanged.d.ts +8 -0
  15. package/src/Api/Events/GridDataChanged.d.ts +2 -2
  16. package/src/Api/FilterApi.d.ts +2 -2
  17. package/src/Api/FinanceApi.d.ts +9 -9
  18. package/src/Api/FormatColumnApi.d.ts +6 -6
  19. package/src/Api/FreeTextColumnApi.d.ts +3 -3
  20. package/src/Api/GridApi.d.ts +28 -28
  21. package/src/Api/Implementation/ChartingApiImpl.d.ts +2 -0
  22. package/src/Api/Implementation/ChartingApiImpl.js +6 -0
  23. package/src/Api/Implementation/ColumnApiImpl.d.ts +3 -3
  24. package/src/Api/Implementation/DashboardApiImpl.d.ts +0 -1
  25. package/src/Api/Implementation/DashboardApiImpl.js +3 -18
  26. package/src/Api/Implementation/FilterApiImpl.d.ts +2 -2
  27. package/src/Api/Implementation/FormatColumnApiImpl.d.ts +6 -6
  28. package/src/Api/Implementation/FreeTextColumnApiImpl.d.ts +3 -3
  29. package/src/Api/Implementation/GridApiImpl.d.ts +29 -29
  30. package/src/Api/Implementation/StyledColumnApiImpl.d.ts +2 -0
  31. package/src/Api/Implementation/StyledColumnApiImpl.js +6 -0
  32. package/src/Api/Implementation/ThemeApiImpl.js +4 -1
  33. package/src/Api/Internal/ActionInternalApi.d.ts +3 -3
  34. package/src/Api/Internal/AdaptableInternalApi.d.ts +3 -3
  35. package/src/Api/Internal/AlertInternalApi.d.ts +3 -3
  36. package/src/Api/Internal/DashboardInternalApi.d.ts +1 -0
  37. package/src/Api/Internal/DashboardInternalApi.js +28 -3
  38. package/src/Api/Internal/ExportInternalApi.d.ts +1 -0
  39. package/src/Api/Internal/ExportInternalApi.js +6 -0
  40. package/src/Api/Internal/FilterInternalApi.d.ts +2 -2
  41. package/src/Api/Internal/FormatColumnInternalApi.d.ts +7 -7
  42. package/src/Api/Internal/GridInternalApi.d.ts +4 -4
  43. package/src/Api/Internal/LayoutInternalApi.d.ts +1 -0
  44. package/src/Api/Internal/LayoutInternalApi.js +7 -0
  45. package/src/Api/Internal/StyledColumnInternalApi.d.ts +3 -3
  46. package/src/Api/StyledColumnApi.d.ts +10 -0
  47. package/src/PredefinedConfig/Common/AdaptableComparerFunction.d.ts +3 -4
  48. package/src/PredefinedConfig/Common/AdaptablePredicate.d.ts +2 -2
  49. package/src/PredefinedConfig/Common/CellDataChangedInfo.d.ts +2 -2
  50. package/src/PredefinedConfig/Common/Menu.d.ts +2 -2
  51. package/src/PredefinedConfig/Selection/GridCell.d.ts +2 -2
  52. package/src/PredefinedConfig/Selection/GridRow.d.ts +2 -2
  53. package/src/Redux/ActionsReducers/AlertRedux.d.ts +14 -0
  54. package/src/Redux/ActionsReducers/AlertRedux.js +23 -1
  55. package/src/Redux/ActionsReducers/CustomSortRedux.d.ts +14 -0
  56. package/src/Redux/ActionsReducers/CustomSortRedux.js +23 -1
  57. package/src/Redux/ActionsReducers/FlashingCellRedux.d.ts +15 -1
  58. package/src/Redux/ActionsReducers/FlashingCellRedux.js +23 -1
  59. package/src/Redux/ActionsReducers/FormatColumnRedux.d.ts +14 -0
  60. package/src/Redux/ActionsReducers/FormatColumnRedux.js +26 -1
  61. package/src/Redux/ActionsReducers/GridRedux.d.ts +3 -3
  62. package/src/Redux/ActionsReducers/PlusMinusRedux.d.ts +14 -0
  63. package/src/Redux/ActionsReducers/PlusMinusRedux.js +23 -1
  64. package/src/Redux/ActionsReducers/ScheduleRedux.d.ts +70 -0
  65. package/src/Redux/ActionsReducers/ScheduleRedux.js +112 -2
  66. package/src/Redux/ActionsReducers/ShortcutRedux.d.ts +14 -0
  67. package/src/Redux/ActionsReducers/ShortcutRedux.js +23 -1
  68. package/src/Redux/ActionsReducers/StyledColumnRedux.d.ts +14 -0
  69. package/src/Redux/ActionsReducers/StyledColumnRedux.js +23 -1
  70. package/src/Redux/ActionsReducers/utils.d.ts +2 -0
  71. package/src/Redux/ActionsReducers/utils.js +20 -2
  72. package/src/Redux/Store/AdaptableStore.js +45 -4
  73. package/src/Strategy/AlertModule.js +2 -0
  74. package/src/Strategy/CustomSortModule.d.ts +2 -0
  75. package/src/Strategy/CustomSortModule.js +2 -0
  76. package/src/Strategy/FlashingCellModule.js +2 -0
  77. package/src/Strategy/FormatColumnModule.js +2 -0
  78. package/src/Strategy/PlusMinusModule.js +2 -0
  79. package/src/Strategy/ShortcutModule.js +2 -0
  80. package/src/Strategy/StyledColumnModule.js +2 -0
  81. package/src/Utilities/Defaults/DefaultAdaptableOptions.js +1 -0
  82. package/src/Utilities/ExpressionFunctions/aggregatedScalarExpressionFunctions.d.ts +3 -3
  83. package/src/Utilities/Interface/Preview.d.ts +2 -2
  84. package/src/Utilities/ObjectFactory.d.ts +2 -2
  85. package/src/Utilities/Services/AggregatedScalarLiveValue.d.ts +2 -2
  86. package/src/Utilities/Services/AlertService.d.ts +2 -0
  87. package/src/Utilities/Services/AlertService.js +6 -0
  88. package/src/Utilities/Services/CalculatedColumnExpressionService.d.ts +2 -2
  89. package/src/Utilities/Services/Interface/IAlertService.d.ts +2 -0
  90. package/src/Utilities/Services/Interface/ICalculatedColumnExpressionService.d.ts +2 -2
  91. package/src/Utilities/Services/Interface/IQueryLanguageService.d.ts +3 -3
  92. package/src/Utilities/Services/Interface/IReportService.d.ts +3 -3
  93. package/src/Utilities/Services/QueryLanguageService.d.ts +2 -2
  94. package/src/Utilities/Services/ReportService.d.ts +4 -4
  95. package/src/Utilities/license/hashing.js +1 -1
  96. package/src/Utilities/logDeprecation.d.ts +1 -1
  97. package/src/View/Alert/Wizard/AlertMessageWizardSection.js +2 -2
  98. package/src/View/Charting/ShowChartButton.js +3 -2
  99. package/src/View/Charting/useChartingElements.js +6 -5
  100. package/src/View/Components/Popups/AdaptablePopup/AdaptablePopupModuleView.js +22 -1
  101. package/src/View/DataChangeHistory/buildActionColumnButton.d.ts +2 -2
  102. package/src/View/Export/ExportSelector.js +1 -0
  103. package/src/View/Export/ExportViewPanel.js +1 -0
  104. package/src/View/Export/ReportExportDropdown.js +1 -0
  105. package/src/View/Theme/ThemePopup.d.ts +0 -3
  106. package/src/View/Theme/ThemePopup.js +1 -9
  107. package/src/View/Theme/ThemeViewPanel.js +4 -3
  108. package/src/agGrid/ActionColumnRenderer.js +1 -0
  109. package/src/agGrid/Adaptable.d.ts +41 -41
  110. package/src/agGrid/Adaptable.js +13 -11
  111. package/src/metamodel/adaptable.metamodel.d.ts +36 -0
  112. package/src/metamodel/adaptable.metamodel.js +1 -1
  113. package/src/types.d.ts +2 -2
  114. package/version.d.ts +1 -1
  115. package/version.js +1 -1
@@ -13,6 +13,7 @@ const PopupPanel_1 = require("./PopupPanel");
13
13
  const rebass_1 = require("rebass");
14
14
  const CheckBox_1 = require("../../../../components/CheckBox");
15
15
  const SystemRedux_1 = require("../../../../Redux/ActionsReducers/SystemRedux");
16
+ const SimpleButton_1 = tslib_1.__importDefault(require("../../../../components/SimpleButton"));
16
17
  const AdaptablePopupModuleView = (props) => {
17
18
  var _a, _b, _c, _d, _e, _f, _g, _h;
18
19
  /**
@@ -81,6 +82,23 @@ const AdaptablePopupModuleView = (props) => {
81
82
  (EditWizard || moduleViewProperties.onOpenEditPopup)) {
82
83
  newButton = (React.createElement(ButtonNew_1.ButtonNew, { onClick: () => handleOpenEditPopup(), tooltip: toolTipText, accessLevel: props.accessLevel }));
83
84
  }
85
+ let suspendButton = null;
86
+ if (items.length &&
87
+ (moduleViewProperties === null || moduleViewProperties === void 0 ? void 0 : moduleViewProperties.getSuspendAllAction) &&
88
+ (moduleViewProperties === null || moduleViewProperties === void 0 ? void 0 : moduleViewProperties.getUnSuspendAllAction)) {
89
+ const isAtLeastOneAbObjectActive = items.some((item) => { var _a; return !((_a = item.abObject) === null || _a === void 0 ? void 0 : _a.IsSuspended); });
90
+ const handleSuspendUnsuspendAll = () => {
91
+ if (isAtLeastOneAbObjectActive) {
92
+ const suspendAllAction = moduleViewProperties.getSuspendAllAction();
93
+ dispatch(suspendAllAction);
94
+ }
95
+ else {
96
+ const unsuspendAllAction = moduleViewProperties.getUnSuspendAllAction();
97
+ dispatch(unsuspendAllAction);
98
+ }
99
+ };
100
+ suspendButton = (React.createElement(SimpleButton_1.default, { mr: 2, onMouseDown: () => handleSuspendUnsuspendAll(), tone: isAtLeastOneAbObjectActive ? 'neutral' : 'success', variant: "raised", icon: isAtLeastOneAbObjectActive ? 'pause' : 'play', accessLevel: props.accessLevel }, isAtLeastOneAbObjectActive ? 'Suspend All' : 'Unsuspend All'));
101
+ }
84
102
  const handleWizardClose = () => {
85
103
  var _a;
86
104
  setAbObjectType(null);
@@ -107,7 +125,10 @@ const AdaptablePopupModuleView = (props) => {
107
125
  moduleInfo.FriendlyName,
108
126
  "s not available in current Layout")));
109
127
  };
110
- return (React.createElement(PopupPanel_1.PopupPanel, { glyphicon: moduleInfo.Glyph, infoLink: moduleInfo.HelpPage, headerText: moduleInfo.FriendlyName, button: newButton, infoLinkDisabled: !props.api.internalApi.isDocumentationLinksDisplayed() },
128
+ return (React.createElement(PopupPanel_1.PopupPanel, { glyphicon: moduleInfo.Glyph, infoLink: moduleInfo.HelpPage, headerText: moduleInfo.FriendlyName, button: React.createElement(React.Fragment, null,
129
+ suspendButton,
130
+ " ",
131
+ newButton), infoLinkDisabled: !props.api.internalApi.isDocumentationLinksDisplayed() },
111
132
  moduleViewProperties.HeaderComponent && React.createElement(moduleViewProperties.HeaderComponent, null),
112
133
  toggleButtonShowLayoutAssociatedObjects(),
113
134
  (items === null || items === void 0 ? void 0 : items.length) ? (React.createElement(AdaptableObjectList_1.AdaptableObjectList, { module: props.module, items: items })) : (React.createElement(EmptyContent_1.default, null, emptyContent !== null && emptyContent !== void 0 ? emptyContent : `Click 'New' to create a new ${moduleInfo.FriendlyName}`)),
@@ -1,3 +1,3 @@
1
- import { RowNode } from '@ag-grid-community/core';
1
+ import { IRowNode } from '@ag-grid-community/core';
2
2
  import { ActionColumnContext, AdaptableButton, DataChangeHistoryOptions } from '../../types';
3
- export declare const buildActionColumnButton: (options: DataChangeHistoryOptions, undoRowNode: (rowNode: RowNode) => void) => AdaptableButton<ActionColumnContext>[];
3
+ export declare const buildActionColumnButton: (options: DataChangeHistoryOptions, undoRowNode: (rowNode: IRowNode) => void) => AdaptableButton<ActionColumnContext>[];
@@ -42,6 +42,7 @@ const ExportSelector = () => {
42
42
  ...adaptable.api.exportApi.getAvailableExportDestinations().map((destination) => ({
43
43
  label: destination,
44
44
  onClick: () => handleDestinationChange(destination),
45
+ disabled: !adaptable.api.exportApi.internalApi.isDestinationEnabled(destination),
45
46
  })),
46
47
  ...adaptable.api.exportApi.getCustomDestinations().map((destination) => ({
47
48
  label: destination.name,
@@ -50,6 +50,7 @@ class ExportViewPanelComponent extends React.Component {
50
50
  ...this.props.api.exportApi.getAvailableExportDestinations().map((destination) => ({
51
51
  label: destination,
52
52
  onClick: () => this.onSelectedDestinationChanged(destination),
53
+ disabled: !this.props.api.exportApi.internalApi.isDestinationEnabled(destination),
53
54
  })),
54
55
  ...this.props.api.exportApi.getCustomDestinations().map((destination) => ({
55
56
  label: destination.name,
@@ -21,6 +21,7 @@ const ReportExportDropdown = (props) => {
21
21
  ...adaptable.api.exportApi.getAvailableExportDestinations().map((destination) => ({
22
22
  label: destination,
23
23
  onClick: () => handleExport(destination),
24
+ disabled: !adaptable.api.exportApi.internalApi.isDestinationEnabled(destination),
24
25
  })),
25
26
  ...adaptable.api.exportApi.getCustomDestinations().map((destination) => ({
26
27
  label: destination.name,
@@ -1,10 +1,7 @@
1
1
  import * as React from 'react';
2
2
  import * as ThemeRedux from '../../Redux/ActionsReducers/ThemeRedux';
3
3
  import { ModuleViewPopupProps } from '../Components/SharedProps/ModuleViewPopupProps';
4
- import { AdaptableTheme } from '../../PredefinedConfig/ThemeState';
5
4
  interface ThemePopupProps extends ModuleViewPopupProps<ThemePopupComponent> {
6
- SystemThemes: (AdaptableTheme | string)[];
7
- UserThemes: Array<AdaptableTheme>;
8
5
  CurrentTheme: string;
9
6
  SelectTheme: (newTheme: string) => ThemeRedux.ThemeSelectAction;
10
7
  }
@@ -10,13 +10,7 @@ const FormLayout_1 = tslib_1.__importStar(require("../../components/FormLayout")
10
10
  const DropdownButton_1 = tslib_1.__importDefault(require("../../components/DropdownButton"));
11
11
  class ThemePopupComponent extends React.Component {
12
12
  render() {
13
- let availableThemes = [];
14
- this.props.SystemThemes.forEach((st) => {
15
- availableThemes.push(st);
16
- });
17
- this.props.UserThemes.forEach((ut) => {
18
- availableThemes.push(ut);
19
- });
13
+ const availableThemes = this.props.api.themeApi.getThemes();
20
14
  let currentThemeDescription = '';
21
15
  let optionThemes = availableThemes.map((theme) => {
22
16
  if (typeof theme === 'string') {
@@ -46,8 +40,6 @@ class ThemePopupComponent extends React.Component {
46
40
  }
47
41
  function mapStateToProps(state, ownProps) {
48
42
  return {
49
- SystemThemes: state.Theme.SystemThemes,
50
- UserThemes: state.Theme.UserThemes,
51
43
  CurrentTheme: state.Theme.CurrentTheme,
52
44
  };
53
45
  }
@@ -10,7 +10,8 @@ const DropdownButton_1 = tslib_1.__importDefault(require("../../components/Dropd
10
10
  const react_redux_1 = require("react-redux");
11
11
  class ThemeViewPanelComponent extends React.Component {
12
12
  render() {
13
- let allThemes = [...this.props.SystemThemes, ...this.props.UserThemes];
13
+ var _a, _b, _c, _d;
14
+ const allThemes = (_c = (_b = (_a = this.props.api) === null || _a === void 0 ? void 0 : _a.themeApi) === null || _b === void 0 ? void 0 : _b.getThemes) === null || _c === void 0 ? void 0 : _c.call(_b);
14
15
  let themes = allThemes.map((theme, index) => {
15
16
  if (typeof theme === 'string') {
16
17
  // protection against old state, which could be string
@@ -24,8 +25,8 @@ class ThemeViewPanelComponent extends React.Component {
24
25
  onClick: () => this.onSelectTheme(theme),
25
26
  };
26
27
  });
27
- let currentTheme = allThemes.filter((theme) => theme.Name === this.props.CurrentTheme)[0];
28
- let currentThemeDescription = currentTheme ? currentTheme.Description : this.props.CurrentTheme;
28
+ const currentThemeObj = allThemes.find((theme) => theme.Name === this.props.CurrentTheme);
29
+ const currentThemeDescription = (_d = currentThemeObj === null || currentThemeObj === void 0 ? void 0 : currentThemeObj.Description) !== null && _d !== void 0 ? _d : this.props.CurrentTheme;
29
30
  const elementType = this.props.viewType === 'Toolbar' ? 'DashboardToolbar' : 'ToolPanel';
30
31
  const dropDownStyle = this.props.viewType === 'Toolbar'
31
32
  ? {
@@ -61,6 +61,7 @@ const ReactActionColumnRenderer = (props) => {
61
61
  if (!actionColumn || !actionButtons.length) {
62
62
  return null;
63
63
  }
64
+ // TODO: see why types do not match
64
65
  if (adaptable.api.gridApi.isGroupRowNode(props.node) && !actionColumn.includeGroupedRows) {
65
66
  return null;
66
67
  }
@@ -1,4 +1,4 @@
1
- import { ChartRef, ColDef, ColGroupDef, Column, ColumnRowGroupChangedEvent, ExcelStyle, GridOptions, Module, ModuleNames, RowNode } from '@ag-grid-community/core';
1
+ import { ChartRef, ColDef, ColGroupDef, Column, ColumnRowGroupChangedEvent, ExcelStyle, GridOptions, Module, ModuleNames, IRowNode } from '@ag-grid-community/core';
2
2
  import { AdaptableNoCodeWizardOptions, IAdaptableNoCodeWizard } from '../AdaptableInterfaces/AdaptableNoCodeWizard';
3
3
  import { AdaptableVariant, IAdaptable } from '../AdaptableInterfaces/IAdaptable';
4
4
  import { AdaptableOptions } from '../AdaptableOptions/AdaptableOptions';
@@ -149,9 +149,9 @@ export declare class Adaptable implements IAdaptable {
149
149
  private filterOnEditDataChange;
150
150
  private filterOnTickingDataChange;
151
151
  applyGridFiltering(): void;
152
- isGroupRowNode(rowNode: RowNode): boolean;
153
- isVisibleNode(rowNode: RowNode): boolean;
154
- isPinnedRowNode(rowNode: RowNode): boolean;
152
+ isGroupRowNode(rowNode: IRowNode): boolean;
153
+ isVisibleNode(rowNode: IRowNode): boolean;
154
+ isPinnedRowNode(rowNode: IRowNode): boolean;
155
155
  clearGridFiltering(): void;
156
156
  clearColumnFiltering(columnIds: string[]): void;
157
157
  hideFilterFormPopup: Function;
@@ -180,7 +180,7 @@ export declare class Adaptable implements IAdaptable {
180
180
  private getEditableCellClass;
181
181
  private getReadonlyCellClass;
182
182
  private isQuickSearchActive;
183
- getPrimaryKeyValueFromRowNode(rowNode: RowNode): any;
183
+ getPrimaryKeyValueFromRowNode(rowNode: IRowNode): any;
184
184
  private getSortedColumnStateForVisibleColumns;
185
185
  setColumnOrder(VisibleColumnList: string[]): void;
186
186
  private persistLayout;
@@ -189,59 +189,59 @@ export declare class Adaptable implements IAdaptable {
189
189
  private updateLayoutFromGrid;
190
190
  setSelectedCells(): SelectedCellInfo | undefined;
191
191
  setSelectedRows(): SelectedRowInfo | undefined;
192
- setDataValue(value: any, column: AdaptableColumn, primaryKeyValue: any, rowNode?: RowNode): void;
192
+ setDataValue(value: any, column: AdaptableColumn, primaryKeyValue: any, rowNode?: IRowNode): void;
193
193
  setCellValue(cellDataChangedInfo: CellDataChangedInfo): void;
194
194
  cancelEdit(): void;
195
- isCellEditable(rowNode: RowNode, column: Column): boolean;
196
- getDistinctValuesForColumn(column: AdaptableColumn, visibleRowsOnly: boolean, skipRowNode?: RowNode, permittedValues?: any[]): GridCell[];
197
- getDistinctFilterValuesForColumn(column: AdaptableColumn, visibleRowsOnly: boolean, filter: string, skipRowNode?: RowNode): Promise<{
195
+ isCellEditable(rowNode: IRowNode, column: Column): boolean;
196
+ getDistinctValuesForColumn(column: AdaptableColumn, visibleRowsOnly: boolean, skipRowNode?: IRowNode, permittedValues?: any[]): GridCell[];
197
+ getDistinctFilterValuesForColumn(column: AdaptableColumn, visibleRowsOnly: boolean, filter: string, skipRowNode?: IRowNode): Promise<{
198
198
  suppressClientSideFilter?: boolean;
199
199
  gridCells: GridCell[];
200
200
  }>;
201
- getDistinctCustomSortValuesForColumn(column: AdaptableColumn, visibleRowsOnly: boolean, skipRowNode?: RowNode): Promise<GridCell[]>;
202
- getDistinctBulkUpdateValuesForColumn(column: AdaptableColumn, visibleRowsOnly: boolean, selectedGridCells: GridCell[], skipRowNode?: RowNode): Promise<GridCell[]>;
201
+ getDistinctCustomSortValuesForColumn(column: AdaptableColumn, visibleRowsOnly: boolean, skipRowNode?: IRowNode): Promise<GridCell[]>;
202
+ getDistinctBulkUpdateValuesForColumn(column: AdaptableColumn, visibleRowsOnly: boolean, selectedGridCells: GridCell[], skipRowNode?: IRowNode): Promise<GridCell[]>;
203
203
  getColumnValueDisplayValuePairList(columnId: string, visibleRowsOnly: boolean, onlyIncludeIds?: {
204
204
  [key: string]: boolean;
205
205
  }): GridCell[];
206
206
  private addDistinctColumnValue;
207
207
  getDisplayValue(primaryKey: any, columnId: string): string | undefined;
208
- getGridCellFromRowNode(rowNode: RowNode, columnId: string): GridCell | undefined;
209
- getDisplayValueFromRowNode(rowNode: RowNode, columnId: string): string | undefined;
210
- getDisplayValueFromRawValue(rowNode: RowNode, columnId: string, rawValue: any): string | undefined;
208
+ getGridCellFromRowNode(rowNode: IRowNode, columnId: string): GridCell | undefined;
209
+ getDisplayValueFromRowNode(rowNode: IRowNode, columnId: string): string | undefined;
210
+ getDisplayValueFromRawValue(rowNode: IRowNode, columnId: string, rawValue: any): string | undefined;
211
211
  private getFormattedValue;
212
212
  getNormalisedValueFromRawValue(rawValue: any, column: AdaptableColumn): string | number | boolean | Date | unknown;
213
- getRawValueFromRowNode(rowNode: RowNode, columnId: string): any;
214
- getDataRowFromRowNode(rowNode: RowNode): any;
213
+ getRawValueFromRowNode(rowNode: IRowNode, columnId: string): any;
214
+ getDataRowFromRowNode(rowNode: IRowNode): any;
215
215
  getRowNodeForPrimaryKey(primaryKeyValue: any): any;
216
- getRowNodeByIndex(index: number): RowNode;
216
+ getRowNodeByIndex(index: number): IRowNode;
217
217
  getRowNodesForPrimaryKeys(primaryKeyValues: any[]): any[];
218
- forAllRowNodesDo(func: (rowNode: RowNode) => void, config?: {
218
+ forAllRowNodesDo(func: (rowNode: IRowNode) => void, config?: {
219
219
  includeGroupRows?: boolean;
220
- filterFn?: (rowNode: RowNode) => boolean;
220
+ filterFn?: (rowNode: IRowNode) => boolean;
221
221
  }): void;
222
- forAllVisibleRowNodesDo(func: (rowNode: RowNode, rowIndex: number) => void): void;
223
- getVisibleRowNodes(): RowNode[];
222
+ forAllVisibleRowNodesDo(func: (rowNode: IRowNode, rowIndex: number) => void): void;
223
+ getVisibleRowNodes(): IRowNode[];
224
224
  getAllRowNodes(config?: {
225
225
  includeGroupRows?: boolean;
226
- filterFn?: (rowNode: RowNode) => boolean;
227
- }): RowNode[];
228
- getRowsInViewport(): RowNode[];
229
- selectNodes(rowNodes: RowNode[], clearSelection: boolean): void;
230
- deSelectNodes(rowNodes: RowNode[], clearSelection: boolean): void;
231
- selectNode(rowNode: RowNode, clearSelection: boolean): void;
232
- deSelectNode(rowNode: RowNode, clearSelection: boolean): void;
233
- selectCells(columnIds: string[], startNode: RowNode, endNode: RowNode, clearSelection?: boolean): void;
234
- isRowNodeVisible(rowNode: RowNode): boolean;
226
+ filterFn?: (rowNode: IRowNode) => boolean;
227
+ }): IRowNode[];
228
+ getRowsInViewport(): IRowNode[];
229
+ selectNodes(rowNodes: IRowNode[], clearSelection: boolean): void;
230
+ deSelectNodes(rowNodes: IRowNode[], clearSelection: boolean): void;
231
+ selectNode(rowNode: IRowNode, clearSelection: boolean): void;
232
+ deSelectNode(rowNode: IRowNode, clearSelection: boolean): void;
233
+ selectCells(columnIds: string[], startNode: IRowNode, endNode: IRowNode, clearSelection?: boolean): void;
234
+ isRowNodeVisible(rowNode: IRowNode): boolean;
235
235
  redrawBody(): void;
236
236
  redrawRenderedRows(): void;
237
237
  redrawHeader(): void;
238
- redrawRow(rowNode: RowNode): void;
239
- redrawRows(rowNodes: RowNode[]): void;
240
- refreshCells(rowNodes: RowNode[], columns: (string | Column)[], forceUpdate: boolean, suppressFlash?: boolean): void;
238
+ redrawRow(rowNode: IRowNode): void;
239
+ redrawRows(rowNodes: IRowNode[]): void;
240
+ refreshCells(rowNodes: IRowNode[], columns: (string | Column)[], forceUpdate: boolean, suppressFlash?: boolean): void;
241
241
  refreshColumns(columns: (string | Column)[], forceUpdate: boolean, suppressFlash?: boolean): void;
242
- jumpToRow(rowNode: RowNode): void;
242
+ jumpToRow(rowNode: IRowNode): void;
243
243
  jumpToColumn(columnId: string): void;
244
- jumpToCell(columnId: string, rowNode: RowNode): void;
244
+ jumpToCell(columnId: string, rowNode: IRowNode): void;
245
245
  /**
246
246
  * This creates a clone of the current column definitions. If config.removeEmpty is true, will also remove empty column groups
247
247
  *
@@ -260,8 +260,8 @@ export declare class Adaptable implements IAdaptable {
260
260
  getColDefs(): ColDef[];
261
261
  getGroupedColDefs(): ColDef[];
262
262
  getColumnDefsWithCorrectVisibility: () => ColDef[];
263
- getFirstRowNode(): RowNode;
264
- getFirstDisplayedRowNode(): RowNode;
263
+ getFirstRowNode(): IRowNode;
264
+ getFirstDisplayedRowNode(): IRowNode;
265
265
  destroy(config?: {
266
266
  unmount: boolean;
267
267
  destroyApi?: boolean;
@@ -345,9 +345,9 @@ export declare class Adaptable implements IAdaptable {
345
345
  getGridData(): any[];
346
346
  getFilteredData(): any[];
347
347
  loadDataSource(dataSource: any[]): void;
348
- updateRows(dataRows: any[], dataUpdateConfig?: DataUpdateConfig): Promise<RowNode[]>;
349
- addRows(dataRows: any[], dataUpdateConfig?: DataUpdateConfig): Promise<RowNode[]>;
350
- deleteRows(dataRows: any[], dataUpdateConfig?: DataUpdateConfig): Promise<RowNode[]>;
348
+ updateRows(dataRows: any[], dataUpdateConfig?: DataUpdateConfig): Promise<IRowNode[]>;
349
+ addRows(dataRows: any[], dataUpdateConfig?: DataUpdateConfig): Promise<IRowNode[]>;
350
+ deleteRows(dataRows: any[], dataUpdateConfig?: DataUpdateConfig): Promise<IRowNode[]>;
351
351
  getFirstGroupedColumn(): AdaptableColumn | undefined;
352
352
  private checkColumnsDataTypeSet;
353
353
  private updateColumnDataTypeIfRowDataIsEmpty;
@@ -362,7 +362,7 @@ export declare class Adaptable implements IAdaptable {
362
362
  showQuickFilter(): void;
363
363
  hideQuickFilter(): void;
364
364
  getAgGridColumnType(columnId: string): string | string[];
365
- getActiveColumnComparator(columnId: string, customSort?: CustomSort, customSortComparer?: ColumnValuesComparer): (valueA: any, valueB: any, nodeA?: RowNode, nodeB?: RowNode, isInverted?: boolean) => number | undefined;
365
+ getActiveColumnComparator(columnId: string, customSort?: CustomSort, customSortComparer?: ColumnValuesComparer): (valueA: any, valueB: any, nodeA?: IRowNode, nodeB?: IRowNode, isInverted?: boolean) => number | undefined;
366
366
  getAgGridLightThemeName(): string;
367
367
  getAgGridCurrentThemeName(): string;
368
368
  applyAdaptableTheme(theme: AdaptableTheme | string): void;
@@ -3197,14 +3197,6 @@ class Adaptable {
3197
3197
  }
3198
3198
  setupColumnCellStyle({ col, colId, abColumn }) {
3199
3199
  this.setColDefProperty(col, 'cellStyle', (userCellStyle) => {
3200
- const defaultCellStyle = {
3201
- backgroundColor: null,
3202
- color: null,
3203
- fontWeight: null,
3204
- fontStyle: null,
3205
- fontSize: null,
3206
- borderColor: null,
3207
- };
3208
3200
  const activeFormatColumnsWithStyle = this.api.formatColumnApi.internalApi.getFormatColumnsWithStyleForColumn(abColumn);
3209
3201
  let styledColumn = this.api.styledColumnApi.getStyledColumnForColumnId(colId);
3210
3202
  if (styledColumn === null || styledColumn === void 0 ? void 0 : styledColumn.IsSuspended) {
@@ -3214,9 +3206,15 @@ class Adaptable {
3214
3206
  const hasQuickSearchStyle = quickSearchStyle != undefined;
3215
3207
  const cellStyle = (params) => {
3216
3208
  const isQuickSearchActive = hasQuickSearchStyle && this.isQuickSearchActive(abColumn, params);
3217
- const result = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, defaultCellStyle), this.getReadOnlyCellStyle(abColumn, params)), this.getEditableCellStyle(abColumn, params)), (typeof userCellStyle === 'function' ? userCellStyle(params) : userCellStyle)), (!styledColumn
3209
+ const result = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, this.getReadOnlyCellStyle(abColumn, params)), this.getEditableCellStyle(abColumn, params)), (typeof userCellStyle === 'function' ? userCellStyle(params) : userCellStyle)), (!styledColumn
3218
3210
  ? this.getFormatColumnCellStyle(abColumn, activeFormatColumnsWithStyle, params)
3219
3211
  : {})), (styledColumn ? this.getStyledColumnStyle(styledColumn, abColumn, params) : {})), (isQuickSearchActive ? quickSearchStyle : {})), this.getAlertCellStyle(abColumn, params)), this.getFlashingCellStyle(abColumn, params)), this.getCellHighlightStyle(abColumn, params));
3212
+ // remove null values, ag-grid 29 fails, it asumes they are strings
3213
+ Object.keys(result).forEach((key) => {
3214
+ if (result[key] === null || result[key] === undefined) {
3215
+ delete result[key];
3216
+ }
3217
+ });
3220
3218
  return result;
3221
3219
  };
3222
3220
  return cellStyle;
@@ -3259,7 +3257,6 @@ class Adaptable {
3259
3257
  .flat()
3260
3258
  .filter((x) => !!x);
3261
3259
  const result = returnValue.length ? returnValue : undefined;
3262
- // console.log(result);
3263
3260
  return result;
3264
3261
  };
3265
3262
  return cellClass;
@@ -4663,6 +4660,7 @@ import "@adaptabletools/adaptable/themes/${themeName}.css"`);
4663
4660
  // recreating the standard AG Grid styling for row groups: 'Parent -> Child'
4664
4661
  // additionally the values are formatted
4665
4662
  let rowGroupNode = params.node;
4663
+ const isFooterRow = rowGroupNode.footer;
4666
4664
  const rowGroupSummary = [(_a = this.processRowGroupForExcelExport(rowGroupNode)) !== null && _a !== void 0 ? _a : ''];
4667
4665
  while (rowGroupNode.parent) {
4668
4666
  rowGroupNode = rowGroupNode.parent;
@@ -4671,7 +4669,11 @@ import "@adaptabletools/adaptable/themes/${themeName}.css"`);
4671
4669
  rowGroupSummary.push(formattedParentNode);
4672
4670
  }
4673
4671
  }
4674
- return rowGroupSummary.reverse().join(' -> ');
4672
+ let summary = rowGroupSummary.reverse().join(' -> ');
4673
+ if (isFooterRow) {
4674
+ summary = `Total: ${summary}`;
4675
+ }
4676
+ return summary;
4675
4677
  },
4676
4678
  });
4677
4679
  // keep only the user defined props
@@ -1652,6 +1652,13 @@ export declare const ADAPTABLE_METAMODEL: {
1652
1652
  name: string;
1653
1653
  kind: string;
1654
1654
  description: string;
1655
+ properties: {
1656
+ name: string;
1657
+ kind: string;
1658
+ description: string;
1659
+ uiLabel: string;
1660
+ reference: string;
1661
+ }[];
1655
1662
  };
1656
1663
  ChartContainer: {
1657
1664
  name: string;
@@ -1691,6 +1698,24 @@ export declare const ADAPTABLE_METAMODEL: {
1691
1698
  reference?: undefined;
1692
1699
  })[];
1693
1700
  };
1701
+ ChartDisplayedInfo: {
1702
+ name: string;
1703
+ kind: string;
1704
+ description: string;
1705
+ properties: ({
1706
+ name: string;
1707
+ kind: string;
1708
+ description: string;
1709
+ uiLabel: string;
1710
+ reference: string;
1711
+ } | {
1712
+ name: string;
1713
+ kind: string;
1714
+ description: string;
1715
+ uiLabel: string;
1716
+ reference?: undefined;
1717
+ })[];
1718
+ };
1694
1719
  ChartingAggFunc: {
1695
1720
  name: string;
1696
1721
  kind: string;
@@ -1707,6 +1732,17 @@ export declare const ADAPTABLE_METAMODEL: {
1707
1732
  uiLabel: string;
1708
1733
  }[];
1709
1734
  };
1735
+ ChartingOpenState: {
1736
+ name: string;
1737
+ kind: string;
1738
+ description: string;
1739
+ properties: {
1740
+ name: string;
1741
+ kind: string;
1742
+ description: string;
1743
+ uiLabel: string;
1744
+ }[];
1745
+ };
1710
1746
  ChartingOptions: {
1711
1747
  name: string;
1712
1748
  kind: string;