@adaptabletools/adaptable-cjs 19.0.5 → 19.1.0-canary.0

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 (33) hide show
  1. package/package.json +2 -2
  2. package/src/AdaptableInterfaces/IAdaptable.d.ts +3 -0
  3. package/src/Api/ColumnApi.d.ts +9 -0
  4. package/src/Api/Implementation/ColumnApiImpl.d.ts +2 -0
  5. package/src/Api/Implementation/ColumnApiImpl.js +11 -3
  6. package/src/Api/Implementation/ConfigApiImpl.js +1 -0
  7. package/src/Api/Implementation/FlashingCellApiImpl.js +8 -6
  8. package/src/Api/Internal/ActionRowInternalApi.js +1 -1
  9. package/src/Api/Internal/AdaptableInternalApi.d.ts +2 -0
  10. package/src/Api/Internal/AdaptableInternalApi.js +4 -1
  11. package/src/Api/Internal/ColumnInternalApi.d.ts +0 -1
  12. package/src/Api/Internal/ColumnInternalApi.js +0 -3
  13. package/src/Api/Internal/FlashingCellInternalApi.js +5 -3
  14. package/src/PredefinedConfig/SystemState.d.ts +0 -6
  15. package/src/Redux/ActionsReducers/SystemRedux.d.ts +1 -17
  16. package/src/Redux/ActionsReducers/SystemRedux.js +3 -65
  17. package/src/Redux/Store/AdaptableStore.js +1 -19
  18. package/src/Strategy/FlashingCellModule.d.ts +2 -3
  19. package/src/Strategy/FlashingCellModule.js +6 -3
  20. package/src/Utilities/Services/FlashingCellService.d.ts +21 -0
  21. package/src/Utilities/Services/FlashingCellService.js +69 -0
  22. package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/GridOptionsForm.js +3 -3
  23. package/src/View/AdaptableWizardView/helper.js +1 -1
  24. package/src/View/Components/NewScopeComponent.js +1 -1
  25. package/src/View/Components/Popups/AdaptablePopup/CustomSettingsPanelView.js +1 -1
  26. package/src/View/DataChangeHistory/DataChangeHistoryGrid.js +1 -1
  27. package/src/View/FlashingCell/Wizard/FlashingCellScopeWizardSection.js +2 -1
  28. package/src/agGrid/ActionColumnRenderer.js +2 -2
  29. package/src/agGrid/AdaptableAgGrid.d.ts +5 -2
  30. package/src/agGrid/AdaptableAgGrid.js +37 -25
  31. package/src/agGrid/AgGridAdapter.js +1 -1
  32. package/src/env.js +2 -2
  33. package/tsconfig.cjs.tsbuildinfo +1 -1
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FlashingCellService = exports.FLASHING_CELL_ROW_KEY = void 0;
4
+ exports.FLASHING_CELL_ROW_KEY = '__ROW';
5
+ /**
6
+ * This service controls the interaction between notes and comments
7
+ */
8
+ class FlashingCellService {
9
+ constructor(api) {
10
+ this.api = api;
11
+ this.adaptable = api.internalApi.getAdaptableInstance();
12
+ this.gridCellsCurrentlyFlashing = {};
13
+ this.flashingCellsMapping = {};
14
+ }
15
+ destroy() {
16
+ this.gridCellsCurrentlyFlashing = {};
17
+ this.flashingCellsMapping = {};
18
+ }
19
+ addGridCellFlash(flashingCell) {
20
+ const { rowPrimaryKey } = flashingCell;
21
+ this.gridCellsCurrentlyFlashing[rowPrimaryKey] =
22
+ this.gridCellsCurrentlyFlashing[rowPrimaryKey] || {};
23
+ const columnIds = Object.keys(flashingCell.flashColumnIds);
24
+ if (flashingCell.flashTarget === 'row' || flashingCell.flashTarget.includes('row')) {
25
+ columnIds.push(exports.FLASHING_CELL_ROW_KEY);
26
+ }
27
+ columnIds.forEach((colId) => {
28
+ this.gridCellsCurrentlyFlashing[rowPrimaryKey][colId] = flashingCell.Uuid;
29
+ });
30
+ this.flashingCellsMapping[flashingCell.Uuid] = flashingCell;
31
+ this.refreshGridCells(flashingCell);
32
+ }
33
+ clearGridCellFlash(flashingCell) {
34
+ const { rowPrimaryKey } = flashingCell;
35
+ const columnIds = Object.keys(flashingCell.flashColumnIds);
36
+ if (flashingCell.flashTarget === 'row' || flashingCell.flashTarget.includes('row')) {
37
+ columnIds.push(exports.FLASHING_CELL_ROW_KEY);
38
+ }
39
+ // for high frequency rates, we might have multiple flashes for the same cell
40
+ if (this.gridCellsCurrentlyFlashing[rowPrimaryKey]) {
41
+ columnIds.forEach((colId) => {
42
+ if (this.gridCellsCurrentlyFlashing[rowPrimaryKey][colId] === flashingCell.Uuid) {
43
+ delete this.gridCellsCurrentlyFlashing[rowPrimaryKey][colId];
44
+ }
45
+ });
46
+ if (!Object.keys(this.gridCellsCurrentlyFlashing[rowPrimaryKey]).length) {
47
+ delete this.gridCellsCurrentlyFlashing[rowPrimaryKey];
48
+ }
49
+ }
50
+ delete this.flashingCellsMapping[flashingCell.Uuid];
51
+ this.refreshGridCells(flashingCell);
52
+ }
53
+ clearAllGridCellFlashes() {
54
+ this.gridCellsCurrentlyFlashing = {};
55
+ this.flashingCellsMapping = {};
56
+ this.adaptable.refreshAllCells(true);
57
+ }
58
+ isAnyFlashingCellActive() {
59
+ return Object.keys(this.gridCellsCurrentlyFlashing).length > 0;
60
+ }
61
+ refreshGridCells(flashingCell) {
62
+ const { cellDataChangedInfo } = flashingCell;
63
+ if (!cellDataChangedInfo) {
64
+ return;
65
+ }
66
+ this.adaptable.refreshCells([cellDataChangedInfo.rowNode], Object.keys(flashingCell.flashColumnIds), true);
67
+ }
68
+ }
69
+ exports.FlashingCellService = FlashingCellService;
@@ -12,9 +12,9 @@ const GridOptionsForm = (props) => {
12
12
  return (React.createElement(rebass_1.Box, { p: 2 },
13
13
  React.createElement(HelpBlock_1.default, null, "Grid Options"),
14
14
  React.createElement(FormLayout_1.default, { margin: 2, columns: [{ name: 'children' }, { name: 'label', style: { textAlign: 'start' } }] },
15
- React.createElement(FormLayout_1.FormRow, { label: "Enable Range Selection" },
16
- React.createElement(CheckBox_1.CheckBox, { checked: gridOptions.enableRangeSelection, onChange: (enableRangeSelection) => {
17
- gridOptions = Object.assign(Object.assign({}, gridOptions), { enableRangeSelection: enableRangeSelection });
15
+ React.createElement(FormLayout_1.FormRow, { label: "Enable Cell Selection" },
16
+ React.createElement(CheckBox_1.CheckBox, { checked: !!gridOptions.cellSelection, onChange: (enableCellSelection) => {
17
+ gridOptions = Object.assign(Object.assign({}, gridOptions), { cellSelection: enableCellSelection });
18
18
  props.onChangedGridOptions(gridOptions);
19
19
  } })),
20
20
  React.createElement(FormLayout_1.FormRow, { label: "Show Filter Bar" },
@@ -83,7 +83,7 @@ const prepareGridOptions = (dataSourceInfo, defaultGridOptions) => {
83
83
  });
84
84
  const gridOptions = Object.assign(Object.assign({}, defaultGridOptions), { defaultColDef: {
85
85
  floatingFilter: true,
86
- }, rowData: dataSourceInfo.data, columnDefs, enableRangeSelection: true, rowSelection: 'multiple', rowHeight: 30 });
86
+ }, rowData: dataSourceInfo.data, columnDefs, cellSelection: true, rowSelection: 'multiple', rowHeight: 30 });
87
87
  return gridOptions;
88
88
  };
89
89
  exports.prepareGridOptions = prepareGridOptions;
@@ -67,7 +67,7 @@ const NewScopeComponent = (props) => {
67
67
  const { columnScopeApi: scopeApi, columnApi } = api;
68
68
  const [columnsSearchText, setColumnsSearchText] = (0, react_1.useState)('');
69
69
  const scopeColumns = React.useMemo(() => {
70
- const allColumns = props.scopeColumns || columnApi.getColumns();
70
+ const allColumns = props.scopeColumns || columnApi.getStandardColumns();
71
71
  if (typeof props.isColumnAvailable === 'function') {
72
72
  return allColumns.filter((c) => props.isColumnAvailable(c));
73
73
  }
@@ -5,6 +5,6 @@ const tslib_1 = require("tslib");
5
5
  const React = tslib_1.__importStar(require("react"));
6
6
  const ExternalRenderer_1 = require("../../ExternalRenderer");
7
7
  const CustomSettingsPanelView = (props) => {
8
- return (React.createElement(ExternalRenderer_1.ExternalRenderer, { render: props.settingsPanel.render, componentName: props.settingsPanel.name, frameworkComponent: props.settingsPanel.frameworkComponent }));
8
+ return (React.createElement(ExternalRenderer_1.ExternalRenderer, { key: props.settingsPanel.name, render: props.settingsPanel.render, componentName: props.settingsPanel.name, frameworkComponent: props.settingsPanel.frameworkComponent }));
9
9
  };
10
10
  exports.CustomSettingsPanelView = CustomSettingsPanelView;
@@ -273,7 +273,7 @@ const buildGridOptions = (mainAdaptableInstance, changeHistoryLog) => {
273
273
  },
274
274
  ],
275
275
  rowData: mapChangeHistoryRowData(changeHistoryLog, mainAdaptableInstance),
276
- enableRangeSelection: true,
276
+ cellSelection: true,
277
277
  suppressColumnVirtualisation: false,
278
278
  sideBar: false,
279
279
  rowSelection: 'multiple',
@@ -8,11 +8,12 @@ const NewScopeComponent_1 = require("../../Components/NewScopeComponent");
8
8
  const OnePageAdaptableWizard_1 = require("../../Wizard/OnePageAdaptableWizard");
9
9
  const FlashingAlertScopeWizardSection = (props) => {
10
10
  const { data, api } = (0, OnePageAdaptableWizard_1.useOnePageAdaptableWizardContext)();
11
+ const availableColumns = React.useMemo(() => api.columnApi.getNonSpecialColumns(), []);
11
12
  return (React.createElement(rebass_1.Flex, { flexDirection: "column", style: { height: '100%' }, padding: 2 },
12
13
  React.createElement(NewScopeComponent_1.NewScopeComponent, { descriptions: {
13
14
  rowScope: 'Changes anywhere in the row will trigger an Flashing Cell',
14
15
  columnScope: 'Changes in selected columns will trigger an Flashing Cell',
15
- }, scope: data.Scope, updateScope: (Scope) => {
16
+ }, scopeColumns: availableColumns, scope: data.Scope, updateScope: (Scope) => {
16
17
  const newData = Object.assign(Object.assign({}, data), { Scope });
17
18
  if (newData.Rule.Predicates) {
18
19
  // when scope is changed, reset the rule to predicate of AnyChange
@@ -51,7 +51,7 @@ const ReactActionColumnRenderer = (props) => {
51
51
  const isGroupedRow = adaptable.api.gridApi.isGroupRowNode(props.node);
52
52
  const isSummaryRow = adaptable.api.gridApi.isSummaryNode(props.node);
53
53
  let shouldRender = true;
54
- const isActionRowColumn = adaptable.api.columnApi.internalApi.isActionRowButtonColumn(props.colDef.colId);
54
+ const isActionRowColumn = adaptable.api.columnApi.isActionRowButtonColumn(props.colDef.colId);
55
55
  if (isGroupedRow) {
56
56
  if (isActionRowColumn || ((_a = actionColumn.rowScope) === null || _a === void 0 ? void 0 : _a.ExcludeGroupRows)) {
57
57
  shouldRender = false;
@@ -110,7 +110,7 @@ class ActionColumnRenderer {
110
110
  const isGroupedRow = adaptable.api.gridApi.isGroupRowNode(params.node);
111
111
  const isSummaryRow = adaptable.api.gridApi.isSummaryNode(params.node);
112
112
  let shouldRender = true;
113
- const isActionRowColumn = adaptable.api.columnApi.internalApi.isActionRowButtonColumn(params.colDef.colId);
113
+ const isActionRowColumn = adaptable.api.columnApi.isActionRowButtonColumn(params.colDef.colId);
114
114
  if (isGroupedRow) {
115
115
  if (isActionRowColumn || ((_a = actionColumn.rowScope) === null || _a === void 0 ? void 0 : _a.ExcludeGroupRows)) {
116
116
  shouldRender = false;
@@ -26,6 +26,7 @@ import { RenderReactRootFn } from '../renderReactRoot';
26
26
  import { AgGridOptionsService } from './AgGridOptionsService';
27
27
  import { AgGridColumnAdapter } from './AgGridColumnAdapter';
28
28
  import { RowEditService } from '../Utilities/Services/RowEditService';
29
+ import { FlashingCellService } from '../Utilities/Services/FlashingCellService';
29
30
  export type AdaptableLifecycleState = 'initial' | 'preprocessOptions' | 'initAdaptableState' | 'setupAgGrid' | 'initAgGrid' | 'agGridReady' | 'available' | 'ready' | 'preDestroyed';
30
31
  type RenderAgGridFrameworkComponentResult = false | GridApi;
31
32
  interface AdaptableInitInternalConfig<TData = any> {
@@ -83,6 +84,7 @@ export declare class AdaptableAgGrid implements IAdaptable {
83
84
  RowEditService: RowEditService;
84
85
  Fdc3Service: Fdc3Service;
85
86
  CellPopupService: CellPopupService;
87
+ FlashingCellService: FlashingCellService;
86
88
  private LicenseService;
87
89
  private ChartingService;
88
90
  private ThemeService;
@@ -106,7 +108,7 @@ export declare class AdaptableAgGrid implements IAdaptable {
106
108
  private listenerPivotChanged;
107
109
  private listenerColumnRowGroupChanged;
108
110
  private listenerColumnResized;
109
- private listenerRangeSelectionChanged;
111
+ private listenerCellSelectionChanged;
110
112
  private listenerSortChanged;
111
113
  private listenerModelUpdated;
112
114
  private columnMinMaxValuesCache;
@@ -162,7 +164,7 @@ export declare class AdaptableAgGrid implements IAdaptable {
162
164
  private enhanceColDefsWithSpecialColumns;
163
165
  useRowNodeLookUp(): boolean;
164
166
  getAgGridContainerElement(): HTMLElement | null;
165
- getAdaptableContainerElement(): HTMLElement | null;
167
+ getAdaptableContainerElement(): HTMLElement;
166
168
  refreshSelectedCellsState(): SelectedCellInfo | undefined;
167
169
  refreshSelectedRowsState(): SelectedRowInfo | undefined;
168
170
  isGridRowSelectable(): boolean;
@@ -204,6 +206,7 @@ export declare class AdaptableAgGrid implements IAdaptable {
204
206
  redrawRows(rowNodes?: IRowNode[]): void;
205
207
  redrawRow(rowNode: IRowNode): void;
206
208
  refreshCells(rowNodes: IRowNode[], columns: (string | Column)[], forceUpdate: boolean, suppressFlash?: boolean): void;
209
+ refreshAllCells(forceUpdate?: boolean): void;
207
210
  refreshColumns(columns: (string | Column)[], forceUpdate: boolean, suppressFlash?: boolean): void;
208
211
  jumpToRow(rowNode: IRowNode): void;
209
212
  jumpToColumn(columnId: string): void;
@@ -97,6 +97,7 @@ const react_1 = require("react");
97
97
  const AdaptableHelper_1 = require("../Utilities/Helpers/AdaptableHelper");
98
98
  const buildSortedColumnStateForLayout_1 = require("./buildSortedColumnStateForLayout");
99
99
  const RowSummary_1 = require("../PredefinedConfig/Common/RowSummary");
100
+ const FlashingCellService_1 = require("../Utilities/Services/FlashingCellService");
100
101
  const LocalEventService_Prototype = core_1.LocalEventService.prototype;
101
102
  const LocalEventService_dispatchEvent = LocalEventService_Prototype.dispatchEvent;
102
103
  const GridOptionsService_updateGridOptions = core_1.GridOptionsService.prototype.updateGridOptions;
@@ -1197,20 +1198,22 @@ class AdaptableAgGrid {
1197
1198
  return this.agGridAdapter.getAgGridApi().getGridOption('getRowId') != undefined;
1198
1199
  }
1199
1200
  getAgGridContainerElement() {
1201
+ var _a, _b, _c, _d, _e, _f;
1200
1202
  if (!this.DANGER_USE_GETTER_agGridContainerElement) {
1201
1203
  this.DANGER_USE_GETTER_agGridContainerElement =
1202
- typeof this.adaptableOptions.containerOptions.agGridContainer === 'string'
1203
- ? document.getElementById(this.adaptableOptions.containerOptions.agGridContainer)
1204
- : this.adaptableOptions.containerOptions.agGridContainer;
1204
+ typeof ((_b = (_a = this.adaptableOptions) === null || _a === void 0 ? void 0 : _a.containerOptions) === null || _b === void 0 ? void 0 : _b.agGridContainer) === 'string'
1205
+ ? document.getElementById((_d = (_c = this.adaptableOptions) === null || _c === void 0 ? void 0 : _c.containerOptions) === null || _d === void 0 ? void 0 : _d.agGridContainer)
1206
+ : (_f = (_e = this.adaptableOptions) === null || _e === void 0 ? void 0 : _e.containerOptions) === null || _f === void 0 ? void 0 : _f.agGridContainer;
1205
1207
  }
1206
1208
  return this.DANGER_USE_GETTER_agGridContainerElement;
1207
1209
  }
1208
1210
  getAdaptableContainerElement() {
1211
+ var _a, _b, _c, _d, _e, _f;
1209
1212
  if (!this.DANGER_USE_GETTER_adaptableContainerElement) {
1210
1213
  this.DANGER_USE_GETTER_adaptableContainerElement =
1211
- typeof this.adaptableOptions.containerOptions.adaptableContainer === 'string'
1212
- ? document.getElementById(this.adaptableOptions.containerOptions.adaptableContainer)
1213
- : this.adaptableOptions.containerOptions.adaptableContainer;
1214
+ typeof ((_b = (_a = this.adaptableOptions) === null || _a === void 0 ? void 0 : _a.containerOptions) === null || _b === void 0 ? void 0 : _b.adaptableContainer) === 'string'
1215
+ ? document.getElementById((_d = (_c = this.adaptableOptions) === null || _c === void 0 ? void 0 : _c.containerOptions) === null || _d === void 0 ? void 0 : _d.adaptableContainer)
1216
+ : (_f = (_e = this.adaptableOptions) === null || _e === void 0 ? void 0 : _e.containerOptions) === null || _f === void 0 ? void 0 : _f.adaptableContainer;
1214
1217
  }
1215
1218
  return this.DANGER_USE_GETTER_adaptableContainerElement;
1216
1219
  }
@@ -1239,11 +1242,21 @@ class AdaptableAgGrid {
1239
1242
  }
1240
1243
  isGridRowSelectable() {
1241
1244
  const rowSelection = this.agGridAdapter.getAgGridApi().getGridOption('rowSelection');
1242
- return rowSelection === 'single' || rowSelection === 'multiple';
1245
+ if (rowSelection == undefined) {
1246
+ return false;
1247
+ }
1248
+ if (rowSelection === 'single' || rowSelection === 'multiple') {
1249
+ return true;
1250
+ }
1251
+ if (rowSelection.mode === 'singleRow' || rowSelection.mode === 'multiRow') {
1252
+ return true;
1253
+ }
1254
+ return false;
1243
1255
  }
1244
1256
  isGridRangeSelectable() {
1245
1257
  return (this.agGridAdapter.isModulePresent(core_1.ModuleNames.RangeSelectionModule) &&
1246
- this.agGridAdapter.getGridOption('enableRangeSelection'));
1258
+ (this.agGridAdapter.getGridOption('enableRangeSelection') ||
1259
+ !!this.agGridAdapter.getGridOption('cellSelection')));
1247
1260
  }
1248
1261
  initAdaptableStore() {
1249
1262
  const perfNewAdaptableStore = this.logger.beginPerf(`initAdaptableStore()`);
@@ -1392,7 +1405,6 @@ class AdaptableAgGrid {
1392
1405
  const columnEventsThatTriggersStateChange = [
1393
1406
  'columnMoved',
1394
1407
  'gridColumnsChanged',
1395
- 'columnEverythingChanged',
1396
1408
  'displayedColumnsChanged',
1397
1409
  'columnVisible',
1398
1410
  'newColumnsLoaded',
@@ -1551,7 +1563,7 @@ class AdaptableAgGrid {
1551
1563
  }
1552
1564
  this.refreshSelectedCellsState();
1553
1565
  }, 250);
1554
- this.agGridAdapter.getAgGridApi().addEventListener('rangeSelectionChanged', (this.listenerRangeSelectionChanged = (params) => {
1566
+ this.agGridAdapter.getAgGridApi().addEventListener('cellSelectionChanged', (this.listenerCellSelectionChanged = (params) => {
1555
1567
  if (params.finished == true) {
1556
1568
  this.debouncedSetSelectedCells();
1557
1569
  }
@@ -1669,6 +1681,7 @@ class AdaptableAgGrid {
1669
1681
  this.TeamSharingService = new TeamSharingService_1.TeamSharingService(this.api);
1670
1682
  this.Fdc3Service = new Fdc3Service_1.Fdc3Service(this.api);
1671
1683
  this.CellPopupService = new CellPopupService_1.CellPopupService(this.api);
1684
+ this.FlashingCellService = new FlashingCellService_1.FlashingCellService(this.api);
1672
1685
  this.RowEditService = new RowEditService_1.RowEditService(this.api);
1673
1686
  this.MetamodelService = new MetamodelService_1.MetamodelService(() => this.api.optionsApi.getAdaptableOptions(), true);
1674
1687
  }
@@ -1992,6 +2005,9 @@ class AdaptableAgGrid {
1992
2005
  };
1993
2006
  this.agGridAdapter.getAgGridApi().refreshCells(refreshCellParams);
1994
2007
  }
2008
+ refreshAllCells(forceUpdate) {
2009
+ this.agGridAdapter.getAgGridApi().refreshCells({ force: forceUpdate });
2010
+ }
1995
2011
  refreshColumns(columns, forceUpdate, suppressFlash) {
1996
2012
  this.refreshCells(null, columns, forceUpdate, suppressFlash);
1997
2013
  }
@@ -2007,7 +2023,7 @@ class AdaptableAgGrid {
2007
2023
  }
2008
2024
  selectColumn(columnId, config) {
2009
2025
  if (!(config === null || config === void 0 ? void 0 : config.keepExistingSelection)) {
2010
- this.agGridAdapter.getAgGridApi().clearRangeSelection();
2026
+ this.agGridAdapter.getAgGridApi().clearCellSelection();
2011
2027
  }
2012
2028
  const cellRangeParams = {
2013
2029
  rowStartIndex: 0,
@@ -2019,7 +2035,7 @@ class AdaptableAgGrid {
2019
2035
  }
2020
2036
  selectColumns(columnIds, config) {
2021
2037
  if (!(config === null || config === void 0 ? void 0 : config.keepExistingSelection)) {
2022
- this.agGridAdapter.getAgGridApi().clearRangeSelection();
2038
+ this.agGridAdapter.getAgGridApi().clearCellSelection();
2023
2039
  }
2024
2040
  const rowCount = this.agGridAdapter.getAgGridApi().getDisplayedRowCount();
2025
2041
  columnIds.forEach((colId) => {
@@ -2038,7 +2054,7 @@ class AdaptableAgGrid {
2038
2054
  deselectAll() {
2039
2055
  // need to do both as first just clears selected rows and second clears ranges
2040
2056
  this.agGridAdapter.getAgGridApi().deselectAll();
2041
- this.agGridAdapter.getAgGridApi().clearRangeSelection();
2057
+ this.agGridAdapter.getAgGridApi().clearCellSelection();
2042
2058
  }
2043
2059
  setGridData(dataSource) {
2044
2060
  if (!this.isReady) {
@@ -2107,13 +2123,7 @@ class AdaptableAgGrid {
2107
2123
  if (!rowNode) {
2108
2124
  return false;
2109
2125
  }
2110
- if (rowNode.isEmptyRowGroupNode()) {
2111
- return true;
2112
- }
2113
- if (rowNode.group && rowNode.group === true) {
2114
- return true;
2115
- }
2116
- if (rowNode.leafGroup && rowNode.leafGroup === true) {
2126
+ if (rowNode.group === true || rowNode.leafGroup === true) {
2117
2127
  return true;
2118
2128
  }
2119
2129
  return false;
@@ -2585,7 +2595,7 @@ class AdaptableAgGrid {
2585
2595
  }
2586
2596
  selectCells(columnIds, startNode, endNode, clearSelection) {
2587
2597
  if (clearSelection) {
2588
- this.agGridAdapter.getAgGridApi().clearRangeSelection();
2598
+ this.agGridAdapter.getAgGridApi().clearCellSelection();
2589
2599
  }
2590
2600
  const cellRangeParams = {
2591
2601
  rowStartIndex: startNode.rowIndex,
@@ -2968,7 +2978,7 @@ class AdaptableAgGrid {
2968
2978
  return this.agGridAdapter.getRegisteredModules();
2969
2979
  }
2970
2980
  destroy(config) {
2971
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6;
2981
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8;
2972
2982
  if (((_a = this.agGridAdapter) === null || _a === void 0 ? void 0 : _a.getAgGridApi()) && !this.agGridAdapter.getAgGridApi().isDestroyed()) {
2973
2983
  this.agGridAdapter
2974
2984
  .getAgGridApi()
@@ -2987,7 +2997,7 @@ class AdaptableAgGrid {
2987
2997
  .removeEventListener('columnRowGroupChanged', this.listenerColumnRowGroupChanged);
2988
2998
  this.agGridAdapter
2989
2999
  .getAgGridApi()
2990
- .removeEventListener('rangeSelectionChanged', this.listenerRangeSelectionChanged);
3000
+ .removeEventListener('cellSelectionChanged', this.listenerCellSelectionChanged);
2991
3001
  this.agGridAdapter
2992
3002
  .getAgGridApi()
2993
3003
  .removeEventListener('columnResized', this.listenerColumnResized);
@@ -3012,7 +3022,7 @@ class AdaptableAgGrid {
3012
3022
  this.listenerPivotChanged = null;
3013
3023
  this.listenerCellEditingStarted = null;
3014
3024
  this.listenerColumnRowGroupChanged = null;
3015
- this.listenerRangeSelectionChanged = null;
3025
+ this.listenerCellSelectionChanged = null;
3016
3026
  this.listenerColumnResized = null;
3017
3027
  this.listenerGlobalSetRowSelection = null;
3018
3028
  this.listenerSortChanged = null;
@@ -3082,10 +3092,10 @@ class AdaptableAgGrid {
3082
3092
  AdaptableAgGrid.dismissInstance(this);
3083
3093
  (_g = this.unmountLoadingScreen) === null || _g === void 0 ? void 0 : _g.call(this);
3084
3094
  this.unmountLoadingScreen = null;
3085
- const abContainerElement = this.getAdaptableContainerElement();
3086
3095
  if (config && !config.unmount) {
3087
3096
  return;
3088
3097
  }
3098
+ const abContainerElement = this.getAdaptableContainerElement();
3089
3099
  if (abContainerElement != null) {
3090
3100
  (_h = this.unmountReactRoot) === null || _h === void 0 ? void 0 : _h.call(this);
3091
3101
  }
@@ -3118,6 +3128,8 @@ class AdaptableAgGrid {
3118
3128
  this.MetamodelService = null;
3119
3129
  (_6 = (_5 = this.LicenseService) === null || _5 === void 0 ? void 0 : _5.destroy) === null || _6 === void 0 ? void 0 : _6.call(_5);
3120
3130
  this.LicenseService = null;
3131
+ (_8 = (_7 = this.FlashingCellService) === null || _7 === void 0 ? void 0 : _7.destroy) === null || _8 === void 0 ? void 0 : _8.call(_7);
3132
+ this.FlashingCellService = null;
3121
3133
  }
3122
3134
  canExportToExcel() {
3123
3135
  return this.agGridAdapter.isModulePresent(core_1.ModuleNames.ExcelExportModule);
@@ -222,7 +222,7 @@ class AgGridAdapter {
222
222
  const isRealColumnGroup = ColumnGroup
223
223
  ? ColumnGroup.columnGroupId !== ColumnGroup.friendlyName
224
224
  : false;
225
- const isActionRowButtonColumn = this.adaptableInstance.api.columnApi.internalApi.isActionRowButtonColumn(colId);
225
+ const isActionRowButtonColumn = this.adaptableInstance.api.columnApi.isActionRowButtonColumn(colId);
226
226
  const isFdc3MainActionColumn = this.adaptableInstance.api.fdc3Api.internalApi.isFdc3MainActionColumn(colId);
227
227
  let friendlyName;
228
228
  const colExists = this.adaptableInstance.api.columnApi.doesColumnExist(ColumnId);
package/src/env.js CHANGED
@@ -2,6 +2,6 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.default = {
4
4
  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" || '',
5
- PUBLISH_TIMESTAMP: 1728922251697 || Date.now(),
6
- VERSION: "19.0.5" || '--current-version--',
5
+ PUBLISH_TIMESTAMP: 1730460314968 || Date.now(),
6
+ VERSION: "19.1.0-canary.0" || '--current-version--',
7
7
  };