@adaptabletools/adaptable-cjs 19.0.1 → 19.0.3

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 (38) hide show
  1. package/package.json +1 -1
  2. package/src/AdaptableInterfaces/IAdaptable.d.ts +1 -1
  3. package/src/AdaptableOptions/ActionRowOptions.d.ts +2 -2
  4. package/src/AdaptableOptions/DataChangeHistoryOptions.d.ts +2 -2
  5. package/src/AdaptableOptions/UserInterfaceOptions.d.ts +6 -2
  6. package/src/Api/ColumnApi.d.ts +14 -15
  7. package/src/Api/DataChangeHistoryApi.d.ts +5 -0
  8. package/src/Api/Events/GridSorted.d.ts +3 -3
  9. package/src/Api/GridApi.d.ts +63 -2
  10. package/src/Api/Implementation/ColumnApiImpl.d.ts +2 -2
  11. package/src/Api/Implementation/ColumnApiImpl.js +13 -30
  12. package/src/Api/Implementation/DataChangeHistoryApiImpl.d.ts +2 -0
  13. package/src/Api/Implementation/DataChangeHistoryApiImpl.js +5 -0
  14. package/src/Api/Implementation/GridApiImpl.d.ts +13 -2
  15. package/src/Api/Implementation/GridApiImpl.js +114 -1
  16. package/src/Api/Implementation/UserInterfaceApiImpl.d.ts +1 -0
  17. package/src/Api/Implementation/UserInterfaceApiImpl.js +3 -0
  18. package/src/Api/Internal/ActionRowInternalApi.d.ts +1 -1
  19. package/src/Api/Internal/ActionRowInternalApi.js +10 -8
  20. package/src/Api/Internal/GridFilterInternalApi.js +4 -1
  21. package/src/Api/UserInterfaceApi.d.ts +6 -2
  22. package/src/Utilities/license/hashing.js +1 -1
  23. package/src/View/GridInfo/GridInfoPopup/GridInfoPopup.js +1 -0
  24. package/src/agGrid/ActionColumnRenderer.d.ts +2 -0
  25. package/src/agGrid/ActionColumnRenderer.js +29 -3
  26. package/src/agGrid/AdaptableAgGrid.d.ts +3 -1
  27. package/src/agGrid/AdaptableAgGrid.js +24 -7
  28. package/src/agGrid/AgGridAdapter.d.ts +1 -0
  29. package/src/agGrid/AgGridAdapter.js +12 -0
  30. package/src/agGrid/AgGridColumnAdapter.d.ts +2 -0
  31. package/src/agGrid/AgGridColumnAdapter.js +24 -12
  32. package/src/agGrid/defaultAdaptableOptions.js +1 -0
  33. package/src/env.js +2 -2
  34. package/src/metamodel/adaptable.metamodel.js +1 -1
  35. package/src/types.d.ts +2 -2
  36. package/tsconfig.cjs.tsbuildinfo +1 -1
  37. package/src/agGrid/CheckboxRenderer.d.ts +0 -16
  38. package/src/agGrid/CheckboxRenderer.js +0 -94
@@ -55,11 +55,15 @@ export interface UserInterfaceApi {
55
55
  */
56
56
  getEditLookUpValuesForEditLookUpItem(editLookUpItem: EditLookUpPermittedValues, gridCell: GridCell): any[] | undefined;
57
57
  /**
58
- * Returns Style set for Editable cells
58
+ * Returns Style set for Editable Cells
59
59
  */
60
60
  getEditableCellStyle(): AdaptableStyle | undefined;
61
61
  /**
62
- * Returns Style set for ReadOnly cells
62
+ * Returns Style for Cells that have been edited
63
+ */
64
+ getEditedCellStyle(): AdaptableStyle | undefined;
65
+ /**
66
+ * Returns Style set for ReadOnly Cells
63
67
  */
64
68
  getReadOnlyCellStyle(): AdaptableStyle | undefined;
65
69
  /**
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.compute_string=void 0;const r=3988292384;function t(t=r){var e,n,o,u=new Array;for(e=0;e<256;e++){for(o=e,n=8;n>0;n--)1&~o?o>>>=1:o=o>>>1^t;u[e]=o}return u}function e(){return 4294967295}function n(r,t,e){return t=t>>>8^r[e^255&t]}function o(r){return r=(r=~r)<0?4294967295+r+1:r}function u(u,c=r){var i,f=t(c),s=0;for(s=e(),i=0;i<u.length;i++)s=n(f,s,u.charCodeAt(i));return`${s=o(s)}`}exports.compute_string=u;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.compute_string=void 0;const r=3988292384;function t(r=3988292384){var t,e,n,o=new Array;for(t=0;t<256;t++){for(n=t,e=8;e>0;e--)1&~n?n>>>=1:n=n>>>1^r;o[t]=n}return o}function e(){return 4294967295}function n(r,t,e){return t=t>>>8^r[e^255&t]}function o(r){return r=(r=~r)<0?4294967295+r+1:r}function u(r,u=3988292384){var c,i=t(u),f=0;for(f=e(),c=0;c<r.length;c++)f=n(i,f,r.charCodeAt(c));return`${f=o(f)}`}exports.compute_string=u;
@@ -43,6 +43,7 @@ const GridInfoPopup = (props) => {
43
43
  returnRows.push(createReadOnlyColItem(colItems, 'Column Filters', columnFilterDescription));
44
44
  returnRows.push(createReadOnlyColItem(colItems, 'Grid Filter', gridFilterExpression));
45
45
  returnRows.push(createReadOnlyColItem(colItems, 'All Rows', props.api.gridApi.getRowCount()));
46
+ returnRows.push(createReadOnlyColItem(colItems, 'Visible Rows', props.api.gridApi.getVisibleRowCount()));
46
47
  returnRows.push(createReadOnlyColItem(colItems, 'Selected Rows', selectedRowInfo === null || selectedRowInfo === void 0 ? void 0 : selectedRowInfo.gridRows.length));
47
48
  returnRows.push(createReadOnlyColItem(colItems, 'Visible Selected Rows', selectedRowInfo === null || selectedRowInfo === void 0 ? void 0 : selectedRowInfo.gridRows.filter((gr) => { var _a; return ((_a = gr.rowNode) === null || _a === void 0 ? void 0 : _a.displayed) == true; }).length));
48
49
  returnRows.push(createReadOnlyColItem(colItems, 'All Columns', props.api.gridApi.getColumnCount()));
@@ -7,6 +7,8 @@ export declare class ActionColumnRenderer implements ICellRendererComp {
7
7
  private eGui;
8
8
  private eventListener;
9
9
  private unmountReactRoot?;
10
+ private layoutSwitchUnsubscribe?;
11
+ private actionButtons;
10
12
  init(params: ActionColumnCellRendererParams): void;
11
13
  render(): void;
12
14
  getGui(): HTMLElement;
@@ -6,6 +6,7 @@ const SimpleButton_1 = tslib_1.__importDefault(require("../components/SimpleButt
6
6
  const React = tslib_1.__importStar(require("react"));
7
7
  const useRerender_1 = require("../components/utils/useRerender");
8
8
  const renderWithAdaptableContext_1 = require("../View/renderWithAdaptableContext");
9
+ const LayoutRedux_1 = require("../Redux/ActionsReducers/LayoutRedux");
9
10
  const ActionButtons = (props) => {
10
11
  const { buttons, adaptableApi, context, rerender } = props;
11
12
  return (React.createElement(React.Fragment, null, buttons.map((button, index) => {
@@ -69,6 +70,20 @@ const ReactActionColumnRenderer = (props) => {
69
70
  if (!shouldRender) {
70
71
  return null;
71
72
  }
73
+ // subscribe to the LayoutChange event and rerender on change
74
+ const unsubscribe = adaptable.api.eventApi.on('AdaptableStateChanged', (eventInfo) => {
75
+ if (eventInfo.actionName === LayoutRedux_1.LAYOUT_SELECT) {
76
+ if (eventInfo.oldState.Layout.CurrentLayout !== eventInfo.newState.Layout.CurrentLayout) {
77
+ rerender();
78
+ }
79
+ }
80
+ });
81
+ // unsubscribe on unmount
82
+ React.useEffect(() => {
83
+ return () => {
84
+ unsubscribe();
85
+ };
86
+ }, []);
72
87
  const pkValue = adaptable.getPrimaryKeyValueFromRowNode(props.node, props.api);
73
88
  const buttonContext = Object.assign(Object.assign({ actionColumn, primaryKeyValue: pkValue, rowNode: props.node }, adaptable.api.internalApi.buildBaseContext()), { data: props.data });
74
89
  return (React.createElement("div", { className: "ab-ActionColumn" },
@@ -88,6 +103,7 @@ class ActionColumnRenderer {
88
103
  if (!actionColumn || !actionButtons.length) {
89
104
  return;
90
105
  }
106
+ this.actionButtons = actionButtons;
91
107
  // create the cell
92
108
  this.eGui = document.createElement('div');
93
109
  this.eGui.className = 'ab-ActionColumn';
@@ -119,13 +135,22 @@ class ActionColumnRenderer {
119
135
  const eGui = this.eGui;
120
136
  const doRender = () => {
121
137
  this.unmountReactRoot = adaptable.renderReactRoot((0, renderWithAdaptableContext_1.renderWithAdaptableContext)(ActionButtons({
122
- buttons: actionButtons,
138
+ buttons: this.actionButtons,
123
139
  context: buttonContext,
124
140
  rerender: doRender,
125
141
  adaptableApi: adaptable.api,
126
142
  }), adaptable), eGui);
127
143
  };
128
144
  this.render = doRender;
145
+ this.layoutSwitchUnsubscribe = adaptable.api.eventApi.on('AdaptableStateChanged', (eventInfo) => {
146
+ if (eventInfo.actionName === LayoutRedux_1.LAYOUT_SELECT) {
147
+ if (eventInfo.oldState.Layout.CurrentLayout !== eventInfo.newState.Layout.CurrentLayout) {
148
+ const { actionButtons: freshActionButtons } = adaptable.api.internalApi.getActionButtonsAndActionColumn(params.colDef);
149
+ this.actionButtons = freshActionButtons;
150
+ doRender();
151
+ }
152
+ }
153
+ });
129
154
  doRender();
130
155
  }
131
156
  // defined on init
@@ -143,8 +168,9 @@ class ActionColumnRenderer {
143
168
  }
144
169
  // gets called when the cell is removed from the grid
145
170
  destroy() {
146
- var _a;
147
- (_a = this.unmountReactRoot) === null || _a === void 0 ? void 0 : _a.call(this);
171
+ var _a, _b;
172
+ (_a = this.layoutSwitchUnsubscribe) === null || _a === void 0 ? void 0 : _a.call(this);
173
+ (_b = this.unmountReactRoot) === null || _b === void 0 ? void 0 : _b.call(this);
148
174
  // do cleanup, remove event listener from button
149
175
  if (this.eGui) {
150
176
  this.eGui.removeEventListener('click', this.eventListener);
@@ -34,6 +34,7 @@ interface AdaptableInitInternalConfig<TData = any> {
34
34
  gridOptions: GridOptions<TData>;
35
35
  modules?: Module[];
36
36
  isDetailGrid?: boolean;
37
+ isDetailGridForRowIndex?: number;
37
38
  /**
38
39
  * Adaptable init hook for rendering the React/Angular AG Grid component
39
40
  */
@@ -61,6 +62,7 @@ export declare class AdaptableAgGrid implements IAdaptable {
61
62
  _rawAdaptableOptions: AdaptableOptions;
62
63
  adaptableOptions: AdaptableOptions;
63
64
  _isDetailGrid: boolean;
65
+ _isDetailGridForIndex?: number;
64
66
  agGridOptionsService: AgGridOptionsService;
65
67
  agGridAdapter: AgGridAdapter;
66
68
  agGridColumnAdapter: AgGridColumnAdapter;
@@ -249,7 +251,6 @@ export declare class AdaptableAgGrid implements IAdaptable {
249
251
  getRowNodeByIndex(index: number): IRowNode;
250
252
  getAgGridStatusPanels(): import("@ag-grid-community/core").StatusPanelDef[];
251
253
  setDataValue(value: any, column: AdaptableColumn, primaryKeyValue: any, rowNode?: IRowNode): void;
252
- isCellEditable(rowNode: IRowNode, column: Column): boolean;
253
254
  forAllRowNodesDo(func: (rowNode: IRowNode, rowIndex: number) => void, config?: {
254
255
  includeGroupRows?: boolean;
255
256
  filterFn?: (rowNode: IRowNode) => boolean;
@@ -285,6 +286,7 @@ export declare class AdaptableAgGrid implements IAdaptable {
285
286
  updateChart(chart: ChartDefinition): void;
286
287
  getChartModels(): import("@ag-grid-community/core").ChartModel[];
287
288
  getRowCount(): number;
289
+ getVisibleRowCount(): number;
288
290
  getColumnCount(): number;
289
291
  getVisibleColumnCount(): number;
290
292
  isGridGroupable(): boolean;
@@ -273,6 +273,7 @@ class AdaptableAgGrid {
273
273
  var _a, _b;
274
274
  // Phase 1: Preprocess Adaptable Options
275
275
  this._isDetailGrid = config.isDetailGrid === true;
276
+ this._isDetailGridForIndex = config.isDetailGridForRowIndex;
276
277
  this.lifecycleState = 'preprocessOptions';
277
278
  this._rawAdaptableOptions = config.adaptableOptions;
278
279
  if (StringExtensions_1.default.IsNullOrEmptyOrWhiteSpace(this._rawAdaptableOptions.adaptableId)) {
@@ -588,7 +589,10 @@ class AdaptableAgGrid {
588
589
  * `gridId`
589
590
  */
590
591
  this.agGridOptionsService.setGridOptionsProperty(gridOptions, 'gridId', (original_gridId) => {
591
- const agGridId = original_gridId || this.adaptableOptions.adaptableId;
592
+ let agGridId = original_gridId || this.adaptableOptions.adaptableId;
593
+ if (this._isDetailGridForIndex != null) {
594
+ agGridId = `${agGridId}_detail-${this._isDetailGridForIndex}`;
595
+ }
592
596
  this._agGridId = agGridId;
593
597
  return agGridId;
594
598
  });
@@ -982,6 +986,14 @@ class AdaptableAgGrid {
982
986
  original_processPivotResultColDef === null || original_processPivotResultColDef === void 0 ? void 0 : original_processPivotResultColDef(colDef);
983
987
  };
984
988
  });
989
+ /**
990
+ * `maintainColumnOrder`
991
+ */
992
+ this.agGridOptionsService.setGridOptionsProperty(gridOptions, 'maintainColumnOrder', () => {
993
+ // see https://www.ag-grid.com/javascript-data-grid/column-updating-definitions/#maintain-column-order
994
+ // we want to always maintain the column order (provided by Adaptable Layouts), even when column definitions change
995
+ return true;
996
+ });
985
997
  /**
986
998
  * `columnTypes`
987
999
  */
@@ -1933,6 +1945,7 @@ class AdaptableAgGrid {
1933
1945
  return rawValue;
1934
1946
  }
1935
1947
  updateColumnModelAndRefreshGrid(config) {
1948
+ this.logger.info(`Updating Column Model and Refreshing Grid ${config ? `with config ${JSON.stringify(config)}` : ''}`);
1936
1949
  if (config === null || config === void 0 ? void 0 : config.preemptiveColumnStateRefresh) {
1937
1950
  this.deriveAdaptableColumnStateFromAgGrid();
1938
1951
  }
@@ -2466,7 +2479,7 @@ class AdaptableAgGrid {
2466
2479
  let dataType = column.dataType;
2467
2480
  newValue = dataType == 'Number' ? Number(value) : value;
2468
2481
  if (dataType == undefined) {
2469
- return; // no point continuing as probably a wrong column
2482
+ return; // no point continuing as probably a wrong column
2470
2483
  }
2471
2484
  if (rowNode) {
2472
2485
  rowNode.setDataValue(column.columnId, newValue);
@@ -2492,10 +2505,6 @@ class AdaptableAgGrid {
2492
2505
  }
2493
2506
  }
2494
2507
  }
2495
- isCellEditable(rowNode, column) {
2496
- // it's safe to rely on the AG Grid implementation because we override the colDef.editable property, which is in this case the single source of truth
2497
- return column === null || column === void 0 ? void 0 : column.isCellEditable(rowNode);
2498
- }
2499
2508
  forAllRowNodesDo(func, config) {
2500
2509
  this.agGridAdapter.getAgGridApi().forEachNode((rowNode, rowIndex) => {
2501
2510
  const includeGroupRows = (config === null || config === void 0 ? void 0 : config.includeGroupRows) || !this.isGroupRowNode(rowNode);
@@ -2696,6 +2705,10 @@ class AdaptableAgGrid {
2696
2705
  return this.agGridAdapter.getAgGridApi().getChartModels();
2697
2706
  }
2698
2707
  getRowCount() {
2708
+ const allNodes = this.getAllRowNodes({ includeGroupRows: false });
2709
+ return allNodes.length;
2710
+ }
2711
+ getVisibleRowCount() {
2699
2712
  return this.agGridAdapter.getAgGridApi().getDisplayedRowCount();
2700
2713
  }
2701
2714
  getColumnCount() {
@@ -3438,7 +3451,11 @@ class AdaptableAgGrid {
3438
3451
  });
3439
3452
  perfApplyColumnState.end();
3440
3453
  this.api.gridApi.setColumnSorts(layout.ColumnSorts);
3441
- this.agGridAdapter.getAgGridApi().setPivotColumns(layout.PivotColumns || []);
3454
+ if (shouldUpdatePivoted) {
3455
+ // simply setting PivotColumns fires an AG Grid 'modelChanged' event which cascades to a full row reload in SSRM
3456
+ // this includes the case when we simply set an empty array of pivot columns
3457
+ this.agGridAdapter.getAgGridApi().setPivotColumns(layout.PivotColumns || []);
3458
+ }
3442
3459
  // aggrid 25.1.0 introduced a bug such that a layout that has a grouped column, if the column has enableRowGroup: true but not rowGroup: true
3443
3460
  // the group column is not possitioned correctly at the start of the layout
3444
3461
  // see the test in layout/layout-switch/"should be able to switch from grouped to non-grouped and back"
@@ -60,6 +60,7 @@ export declare class AgGridAdapter {
60
60
  */
61
61
  assignColumnIdsToColDefs(colDefs?: (ColDef | ColGroupDef)[]): void;
62
62
  patchColDefs(colDefs: (ColDef | ColGroupDef)[], patchFn: (colDef: ColDef) => void): void;
63
+ traverseColDefs(colDefs: (ColDef | ColGroupDef)[], modifyFn: (colDef: ColDef) => ColDef | null): (ColDef | ColGroupDef)[];
63
64
  getDefaultColumnDefinition(): GridOptions['defaultColDef'];
64
65
  _agGridApi_getValue(colKey: string | Column, rowNode: IRowNode, gridApi?: GridApi): any;
65
66
  }
@@ -591,6 +591,18 @@ class AgGridAdapter {
591
591
  };
592
592
  colDefs.forEach((colDef) => applyPatch(colDef));
593
593
  }
594
+ traverseColDefs(colDefs, modifyFn) {
595
+ const applyModification = (colDef) => {
596
+ if ('children' in colDef) {
597
+ const updatedChildren = colDef.children.map(applyModification).filter(Boolean);
598
+ return Object.assign(Object.assign({}, colDef), { children: updatedChildren });
599
+ }
600
+ else {
601
+ return modifyFn(colDef);
602
+ }
603
+ };
604
+ return colDefs.map(applyModification).filter(Boolean);
605
+ }
594
606
  getDefaultColumnDefinition() {
595
607
  var _a, _b;
596
608
  // for early init phase, gridApi might not be ready yet
@@ -36,6 +36,7 @@ export declare class AgGridColumnAdapter {
36
36
  private isQuickSearchActive;
37
37
  private getEditableCellClass;
38
38
  private getReadonlyCellClass;
39
+ private getEditedCellClass;
39
40
  private getAlertCellClass;
40
41
  private getFlashingCellClass;
41
42
  private getNoteCellClassName;
@@ -44,6 +45,7 @@ export declare class AgGridColumnAdapter {
44
45
  private getQuickSearchCellStyle;
45
46
  private getReadOnlyCellStyle;
46
47
  private getEditableCellStyle;
48
+ private getEditedCellStyle;
47
49
  /**
48
50
  * The combination of styled column and format cells
49
51
  * This functiond decides when the two can be merged.
@@ -143,6 +143,7 @@ class AgGridColumnAdapter {
143
143
  const isQuickSearchActive = hasQuickSearchStyleClassName && this.isQuickSearchActive(gridCell, params);
144
144
  const editableClassName = this.getEditableCellClass(gridCell, params);
145
145
  const readonlyClassName = this.getReadonlyCellClass(gridCell, params);
146
+ const editedClassName = this.getEditedCellClass(gridCell, params);
146
147
  const highlightAlertClassName = this.getAlertCellClass(gridCell, params);
147
148
  const flashingClassName = this.getFlashingCellClass(gridCell, params);
148
149
  const styledColumn = this.adaptableApi.styledColumnApi.getStyledColumnForColumnId(colId);
@@ -157,6 +158,7 @@ class AgGridColumnAdapter {
157
158
  isQuickSearchActive ? quickSearchStyleClassName : null,
158
159
  editableClassName,
159
160
  readonlyClassName,
161
+ editedClassName,
160
162
  highlightAlertClassName,
161
163
  flashingClassName,
162
164
  noteClassName,
@@ -179,7 +181,7 @@ class AgGridColumnAdapter {
179
181
  const gridCell = this.adaptableInstance.getGridCellFromRowNode(params.node, abColumn.columnId);
180
182
  const isQuickSearchActive = hasQuickSearchStyle && this.isQuickSearchActive(gridCell, params);
181
183
  const userDefined = typeof userCellStyle === 'function' ? userCellStyle(params) : userCellStyle;
182
- const result = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, userDefined), this.getReadOnlyCellStyle(gridCell, params)), this.getEditableCellStyle(gridCell, params)), this.getFormatColumnAndStyledColumnCellStyle(gridCell, params)), (isQuickSearchActive ? quickSearchStyle : {})), this.getAlertCellStyle(gridCell, params)), this.getFlashingCellStyle(gridCell, params)), this.getCellHighlightStyle(gridCell, params));
184
+ const result = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, userDefined), this.getReadOnlyCellStyle(gridCell, params)), this.getEditableCellStyle(gridCell, params)), this.getEditedCellStyle(gridCell, params)), this.getFormatColumnAndStyledColumnCellStyle(gridCell, params)), (isQuickSearchActive ? quickSearchStyle : {})), this.getAlertCellStyle(gridCell, params)), this.getFlashingCellStyle(gridCell, params)), this.getCellHighlightStyle(gridCell, params));
183
185
  return (0, StyleHelper_1.normalizeStyleForAgGrid)(result);
184
186
  };
185
187
  return cellStyle;
@@ -429,19 +431,9 @@ class AgGridColumnAdapter {
429
431
  if (typeof userValue === 'boolean' && userValue === false) {
430
432
  return userValue;
431
433
  }
432
- const cellEditableFn = this.adaptableOptions.editOptions.isCellEditable;
433
434
  const editableCallback = (params) => {
434
- // Adaptable Row Summarie rows are not editable
435
- // if (params.node.data[ROW_SUMMARY_ROW_ID]) {
436
- if (this.adaptableApi.gridApi.isSummaryNode(params.node)) {
437
- return false;
438
- }
439
- if (!cellEditableFn) {
440
- return typeof userValue === 'function' ? userValue(params) : userValue;
441
- }
442
435
  const gridCell = this.adaptableInstance.getGridCellFromRowNode(params.node, params.column.getColId());
443
- const cellEditableContext = Object.assign({ gridCell }, this.adaptableApi.internalApi.buildBaseContext());
444
- return cellEditableFn(cellEditableContext);
436
+ return this.adaptableApi.gridApi.isCellEditable(gridCell);
445
437
  };
446
438
  return editableCallback;
447
439
  });
@@ -591,6 +583,14 @@ class AgGridColumnAdapter {
591
583
  const isCellReadonly = !this.adaptableApi.gridApi.isCellEditable(gridCell);
592
584
  return isCellReadonly ? readonlyCellStyle.ClassName : null;
593
585
  }
586
+ getEditedCellClass(gridCell, params) {
587
+ const editedCellStyle = this.adaptableApi.userInterfaceApi.getEditedCellStyle();
588
+ if (!(editedCellStyle === null || editedCellStyle === void 0 ? void 0 : editedCellStyle.ClassName)) {
589
+ return null;
590
+ }
591
+ const isCellEdited = this.adaptableApi.gridApi.isCellEdited(gridCell);
592
+ return isCellEdited ? editedCellStyle.ClassName : null;
593
+ }
594
594
  getAlertCellClass(gridCell, params) {
595
595
  var _a, _b;
596
596
  const alert = this.adaptableApi.alertApi.internalApi.getAdaptableAlertWithHighlightCell(gridCell.column.columnId, params.node);
@@ -691,6 +691,18 @@ class AgGridColumnAdapter {
691
691
  }
692
692
  return undefined;
693
693
  }
694
+ getEditedCellStyle(gridCell, params) {
695
+ const editedCellStyle = this.adaptableApi.userInterfaceApi.getEditedCellStyle();
696
+ if (!editedCellStyle) {
697
+ return undefined;
698
+ }
699
+ if (gridCell) {
700
+ if (this.adaptableApi.gridApi.isCellEdited(gridCell)) {
701
+ return (0, StyleHelper_1.convertAdaptableStyleToCSS)(editedCellStyle);
702
+ }
703
+ }
704
+ return undefined;
705
+ }
694
706
  /**
695
707
  * The combination of styled column and format cells
696
708
  * This functiond decides when the two can be merged.
@@ -288,6 +288,7 @@ const DefaultAdaptableOptions = {
288
288
  colorPalette: UIHelper_1.default.getDefaultColors(),
289
289
  editableCellStyle: undefined,
290
290
  readOnlyCellStyle: undefined,
291
+ editedCellStyle: undefined,
291
292
  styleClassNames: GeneralConstants_1.EMPTY_ARRAY,
292
293
  permittedValues: undefined,
293
294
  editLookUpItems: undefined,
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: 1726230101609 || Date.now(),
6
- VERSION: "19.0.1" || '--current-version--',
5
+ PUBLISH_TIMESTAMP: 1728393044652 || Date.now(),
6
+ VERSION: "19.0.3" || '--current-version--',
7
7
  };