@adaptabletools/adaptable 10.0.0 → 10.0.4-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 (169) hide show
  1. package/base.css +77 -29
  2. package/index.css +89 -31
  3. package/package.json +1 -5
  4. package/publishTimestamp.d.ts +1 -1
  5. package/publishTimestamp.js +1 -1
  6. package/src/AdaptableInterfaces/IAdaptable.d.ts +12 -2
  7. package/src/AdaptableOptions/FilterOptions.d.ts +14 -7
  8. package/src/AdaptableOptions/LayoutOptions.d.ts +1 -1
  9. package/src/AdaptableOptions/UserInterfaceOptions.d.ts +88 -4
  10. package/src/Api/AlertApi.d.ts +1 -1
  11. package/src/Api/CalculatedColumnApi.d.ts +15 -0
  12. package/src/Api/ColumnApi.d.ts +39 -0
  13. package/src/Api/ConfigApi.d.ts +8 -0
  14. package/src/Api/GridApi.d.ts +34 -8
  15. package/src/Api/Implementation/AlertApiImpl.d.ts +1 -1
  16. package/src/Api/Implementation/AlertApiImpl.js +16 -9
  17. package/src/Api/Implementation/CalculatedColumnApiImpl.d.ts +3 -0
  18. package/src/Api/Implementation/CalculatedColumnApiImpl.js +23 -0
  19. package/src/Api/Implementation/ColumnApiImpl.d.ts +8 -0
  20. package/src/Api/Implementation/ColumnApiImpl.js +69 -36
  21. package/src/Api/Implementation/ConfigApiImpl.d.ts +1 -1
  22. package/src/Api/Implementation/ConfigApiImpl.js +28 -17
  23. package/src/Api/Implementation/ExportApiImpl.js +4 -4
  24. package/src/Api/Implementation/FormatColumnApiImpl.js +1 -1
  25. package/src/Api/Implementation/FreeTextColumnApiImpl.js +9 -3
  26. package/src/Api/Implementation/GridApiImpl.d.ts +9 -0
  27. package/src/Api/Implementation/GridApiImpl.js +25 -10
  28. package/src/Api/Implementation/InternalApiImpl.d.ts +3 -1
  29. package/src/Api/Implementation/InternalApiImpl.js +20 -4
  30. package/src/Api/Implementation/LayoutApiImpl.js +3 -3
  31. package/src/Api/Implementation/QueryLanguageApiImpl.d.ts +2 -0
  32. package/src/Api/Implementation/QueryLanguageApiImpl.js +3 -0
  33. package/src/Api/Implementation/ScopeApiImpl.js +11 -11
  34. package/src/Api/Implementation/UserInterfaceApiImpl.d.ts +12 -8
  35. package/src/Api/Implementation/UserInterfaceApiImpl.js +59 -86
  36. package/src/Api/InternalApi.d.ts +3 -1
  37. package/src/Api/QueryLanguageApi.d.ts +5 -0
  38. package/src/Api/UserInterfaceApi.d.ts +16 -6
  39. package/src/PredefinedConfig/AlertState.d.ts +10 -0
  40. package/src/PredefinedConfig/CalculatedColumnState.d.ts +4 -37
  41. package/src/PredefinedConfig/Common/AdaptableColumn.d.ts +33 -33
  42. package/src/PredefinedConfig/Common/AdaptableColumn.js +5 -5
  43. package/src/PredefinedConfig/Common/AdaptablePredicate.js +19 -18
  44. package/src/PredefinedConfig/Common/DataChangedInfo.d.ts +3 -2
  45. package/src/PredefinedConfig/Common/DataUpdateConfig.d.ts +5 -1
  46. package/src/PredefinedConfig/Common/SpecialColumnSettings.d.ts +49 -0
  47. package/src/{Utilities/Interface/ProgressIndicator.js → PredefinedConfig/Common/SpecialColumnSettings.js} +0 -0
  48. package/src/PredefinedConfig/FilterState.d.ts +1 -1
  49. package/src/PredefinedConfig/FreeTextColumnState.d.ts +10 -0
  50. package/src/PredefinedConfig/Selection/GridCell.d.ts +2 -1
  51. package/src/PredefinedConfig/Selection/GridRow.d.ts +12 -4
  52. package/src/PredefinedConfig/SystemState.d.ts +4 -1
  53. package/src/Redux/ActionsReducers/SystemRedux.js +1 -1
  54. package/src/Redux/Store/AdaptableReduxMerger.js +7 -1
  55. package/src/Redux/Store/AdaptableStore.js +7 -3
  56. package/src/Strategy/AdaptableModuleBase.js +8 -8
  57. package/src/Strategy/AlertModule.js +12 -11
  58. package/src/Strategy/BulkUpdateModule.js +5 -5
  59. package/src/Strategy/CalculatedColumnModule.js +1 -1
  60. package/src/Strategy/CellSummaryModule.js +3 -3
  61. package/src/Strategy/ConditionalStyleModule.js +3 -3
  62. package/src/Strategy/CustomSortModule.js +2 -2
  63. package/src/Strategy/ExportModule.d.ts +0 -2
  64. package/src/Strategy/ExportModule.js +59 -62
  65. package/src/Strategy/FilterModule.js +4 -4
  66. package/src/Strategy/FormatColumnModule.js +5 -5
  67. package/src/Strategy/FreeTextColumnModule.js +1 -1
  68. package/src/Strategy/LayoutModule.js +3 -3
  69. package/src/Strategy/PlusMinusModule.js +8 -9
  70. package/src/Strategy/SmartEditModule.js +6 -6
  71. package/src/Utilities/Defaults/DefaultAdaptableOptions.js +1 -0
  72. package/src/Utilities/ExpressionFunctions/booleanExpressionFunctions.js +1 -1
  73. package/src/Utilities/ExpressionFunctions/expressionFunctionUtils.js +2 -2
  74. package/src/Utilities/ExpressionFunctions/observableExpressionFunctions.js +3 -2
  75. package/src/Utilities/ExpressionFunctions/scalarExpressionFunctions.js +1 -1
  76. package/src/Utilities/Helpers/DateHelper.d.ts +8 -2
  77. package/src/Utilities/Helpers/DateHelper.js +42 -20
  78. package/src/Utilities/Helpers/PreviewHelper.js +2 -2
  79. package/src/Utilities/ObjectFactory.d.ts +1 -1
  80. package/src/Utilities/ObjectFactory.js +14 -2
  81. package/src/Utilities/Services/DataService.js +5 -5
  82. package/src/Utilities/Services/MetamodelService.js +1 -0
  83. package/src/Utilities/Services/ModuleService.js +31 -24
  84. package/src/Utilities/Services/ReportService.js +12 -12
  85. package/src/Utilities/Services/ValidationService.js +4 -5
  86. package/src/Utilities/runIfNotResolvedIn.d.ts +8 -0
  87. package/src/Utilities/runIfNotResolvedIn.js +23 -0
  88. package/src/View/AdaptableView.js +1 -1
  89. package/src/View/Alert/AlertPopup.js +1 -1
  90. package/src/View/Alert/Wizard/AlertDisplayWizardSection.js +19 -5
  91. package/src/View/Alert/Wizard/BaseAlertScopeWizardSection.js +1 -1
  92. package/src/View/BulkUpdate/BulkUpdatePopup.d.ts +2 -0
  93. package/src/View/BulkUpdate/BulkUpdatePopup.js +6 -4
  94. package/src/View/BulkUpdate/BulkUpdateViewPanel.d.ts +2 -0
  95. package/src/View/BulkUpdate/BulkUpdateViewPanel.js +3 -1
  96. package/src/View/CalculatedColumn/CalculatedColumnPopup.js +1 -1
  97. package/src/View/CalculatedColumn/CalculatedColumnSummary.js +1 -1
  98. package/src/View/CalculatedColumn/Wizard/CalculatedColumnSettingsWizardSection.js +1 -1
  99. package/src/View/Components/ColumnSelector/index.js +2 -2
  100. package/src/View/Components/FilterForm/FilterForm.d.ts +3 -51
  101. package/src/View/Components/FilterForm/FilterForm.js +53 -32
  102. package/src/View/Components/FilterForm/ListBoxFilterForm.d.ts +3 -0
  103. package/src/View/Components/FilterForm/ListBoxFilterForm.js +14 -5
  104. package/src/View/Components/FilterForm/QuickFilterForm.d.ts +3 -43
  105. package/src/View/Components/FilterForm/QuickFilterForm.js +72 -31
  106. package/src/View/Components/FilterForm/getDefaultColumnFilterPredicate.d.ts +3 -0
  107. package/src/View/Components/FilterForm/getDefaultColumnFilterPredicate.js +8 -0
  108. package/src/View/Components/NewScopeComponent.js +1 -1
  109. package/src/View/Components/Popups/AdaptablePopup.d.ts +1 -1
  110. package/src/View/Components/PreviewResultsPanel.js +1 -1
  111. package/src/View/Components/RangesComponent.js +2 -2
  112. package/src/View/Components/Selectors/ColumnSelector.js +5 -5
  113. package/src/View/Components/Selectors/ColumnValueSelector.d.ts +10 -2
  114. package/src/View/Components/Selectors/ColumnValueSelector.js +47 -15
  115. package/src/View/Components/ToolPanel/AdaptableToolPanel.js +6 -6
  116. package/src/View/ConditionalStyle/ConditionalStylePopup.js +1 -1
  117. package/src/View/ConditionalStyle/ConditionalStyleSummary.js +1 -1
  118. package/src/View/CustomSort/CustomSortEntityRow.js +2 -2
  119. package/src/View/CustomSort/CustomSortPopup.js +1 -1
  120. package/src/View/CustomSort/CustomSortSummary.js +3 -3
  121. package/src/View/CustomSort/Wizard/CustomSortColumnWizardSection.js +3 -3
  122. package/src/View/CustomSort/Wizard/CustomSortValuesWizardSection.js +24 -6
  123. package/src/View/DataChangeHistory/DataChangeHistoryGrid.js +3 -3
  124. package/src/View/DataChangeHistory/DataChangeHistoryPopup.js +4 -1
  125. package/src/View/Filter/FilterSummary.js +2 -2
  126. package/src/View/FormatColumn/FormatColumnPopup.js +1 -1
  127. package/src/View/FormatColumn/FormatColumnSummary.js +1 -1
  128. package/src/View/FormatColumn/Wizard/FormatColumnFormatWizardSection.js +1 -1
  129. package/src/View/FreeTextColumn/FreeTextColumnPopup.js +4 -2
  130. package/src/View/FreeTextColumn/FreeTextColumnSummary.js +5 -3
  131. package/src/View/FreeTextColumn/Wizard/FreeTextColumnSettingsWizardSection.js +1 -1
  132. package/src/View/GridInfo/ColumnInfoComponent.js +16 -16
  133. package/src/View/GridInfo/GridInfoPopup.js +4 -1
  134. package/src/View/Layout/Wizard/LayoutEditor/ColumnList.js +6 -6
  135. package/src/View/Layout/Wizard/LayoutEditor/ColumnSortList.js +1 -1
  136. package/src/View/Layout/Wizard/LayoutEditor/PivotList.js +1 -1
  137. package/src/View/Layout/Wizard/LayoutEditor/RowGroupsList.js +1 -1
  138. package/src/View/Layout/Wizard/LayoutEditor/getItemStyle.js +2 -2
  139. package/src/View/Layout/Wizard/LayoutEditor/index.js +41 -41
  140. package/src/View/PlusMinus/PlusMinusPopup.js +1 -1
  141. package/src/View/PlusMinus/PlusMinusSummary.js +1 -1
  142. package/src/View/Query/QueryViewPanel.js +3 -3
  143. package/src/View/Schedule/Wizard/ScheduleScheduleWizard.d.ts +1 -1
  144. package/src/View/Schedule/Wizard/ScheduleScheduleWizard.js +6 -8
  145. package/src/View/UIHelper.d.ts +2 -0
  146. package/src/View/UIHelper.js +10 -1
  147. package/src/agGrid/ActionColumnRenderer.d.ts +2 -1
  148. package/src/agGrid/ActionColumnRenderer.js +20 -3
  149. package/src/agGrid/Adaptable.d.ts +20 -4
  150. package/src/agGrid/Adaptable.js +234 -102
  151. package/src/agGrid/agGridHelper.js +32 -32
  152. package/src/agGrid/agGridMenuHelper.js +2 -2
  153. package/src/components/Dashboard/Dashboard.js +1 -1
  154. package/src/components/DropdownButton/index.js +1 -1
  155. package/src/components/ExpressionEditor/index.js +8 -7
  156. package/src/components/Loader/Loader.d.ts +7 -0
  157. package/src/components/Loader/Loader.js +13 -0
  158. package/src/components/Loader/index.d.ts +2 -0
  159. package/src/components/Loader/index.js +7 -0
  160. package/src/components/ProgressIndicator/ProgressIndicator.d.ts +2 -0
  161. package/src/components/ProgressIndicator/ProgressIndicator.js +54 -0
  162. package/src/metamodel/adaptable.metamodel.d.ts +125 -7
  163. package/src/metamodel/adaptable.metamodel.js +416 -101
  164. package/src/types.d.ts +4 -3
  165. package/version.d.ts +1 -1
  166. package/version.js +1 -1
  167. package/src/Utilities/Interface/ProgressIndicator.d.ts +0 -4
  168. package/src/View/Export/ProgressIndicator.d.ts +0 -6
  169. package/src/View/Export/ProgressIndicator.js +0 -25
@@ -103,7 +103,6 @@ class ExportApiImpl extends ApiBase_1.ApiBase {
103
103
  if (report.ReportRowScope == 'CustomRows' || report.ReportColumnScope == 'CustomColumns') {
104
104
  return false;
105
105
  }
106
- let abColumn = this.adaptable.api.columnApi.getColumnFromId(dataChangedInfo.columnId);
107
106
  // Start with the DataChanged Column and go through all possibilities
108
107
  switch (report.ReportColumnScope) {
109
108
  case 'AllColumns':
@@ -111,21 +110,22 @@ class ExportApiImpl extends ApiBase_1.ApiBase {
111
110
  break;
112
111
  case 'ScopeColumns':
113
112
  // use the Scope object which will tell us if the Column is relevant
114
- if (!this.adaptable.api.scopeApi.isColumnInScopeColumns(abColumn, report.Scope)) {
113
+ if (!this.adaptable.api.scopeApi.isColumnInScopeColumns(dataChangedInfo.column, report.Scope)) {
115
114
  return false;
116
115
  }
117
116
  break;
118
117
  case 'SelectedColumns':
119
118
  let selectedCellInfo = this.adaptable.api.gridApi.getSelectedCellInfo();
120
119
  if (selectedCellInfo) {
121
- if (selectedCellInfo.columns.find((c) => c.ColumnId == dataChangedInfo.columnId) == null) {
120
+ if (selectedCellInfo.columns.find((c) => c.columnId == dataChangedInfo.column.columnId) ==
121
+ null) {
122
122
  return false;
123
123
  }
124
124
  }
125
125
  break;
126
126
  case 'VisibleColumns':
127
127
  // hope that visibile column property is updated whenever the layout changes... (need to check!)
128
- if (!abColumn.Visible) {
128
+ if (!dataChangedInfo.column.visible) {
129
129
  return false;
130
130
  }
131
131
  break;
@@ -243,7 +243,7 @@ class FormatColumnApiImpl extends ApiBase_1.ApiBase {
243
243
  }
244
244
  getCheckBoxStyleFormatColumn(column) {
245
245
  var _a;
246
- if (column.DataType != 'Boolean') {
246
+ if (column.dataType != 'Boolean') {
247
247
  return undefined;
248
248
  }
249
249
  const checkBoxFormatColumns = (_a = this.getFormatColumnState().FormatColumns) === null || _a === void 0 ? void 0 : _a.filter((fc) => { var _a; return (_a = fc.ColumnStyle) === null || _a === void 0 ? void 0 : _a.CheckBoxStyle; });
@@ -68,7 +68,8 @@ class FreeTextColumnApiImpl extends ApiBase_1.ApiBase {
68
68
  }
69
69
  }
70
70
  createFreeTextColumn({ columnName, columnId, defaultValue = null, }) {
71
- let freeTextColumn = ObjectFactory_1.ObjectFactory.CreateEmptyFreeTextColumn();
71
+ let freeTextColumn = ObjectFactory_1.ObjectFactory.CreateEmptyFreeTextColumn(this.adaptable.api.internalApi.getAdaptableOptions().filterOptions
72
+ .enableFilterOnSpecialColumns);
72
73
  freeTextColumn.ColumnId = columnId;
73
74
  freeTextColumn.FriendlyName = columnName || columnId;
74
75
  freeTextColumn.DefaultValue = defaultValue;
@@ -103,14 +104,19 @@ class FreeTextColumnApiImpl extends ApiBase_1.ApiBase {
103
104
  }
104
105
  }
105
106
  checkFreeTextColumnForDataChange(dataChangedInfo) {
106
- let freeTextColumn = this.getAllFreeTextColumn().find((fc) => fc.ColumnId == dataChangedInfo.columnId);
107
+ let freeTextColumn = this.getAllFreeTextColumn().find((fc) => fc.ColumnId == dataChangedInfo.column.columnId);
107
108
  if (freeTextColumn) {
108
109
  let freeTextStoredValue = {
109
110
  PrimaryKey: dataChangedInfo.primaryKeyValue,
110
111
  FreeText: dataChangedInfo.newValue,
111
112
  };
112
113
  this.addEditFreeTextColumnStoredValue(freeTextColumn, freeTextStoredValue);
113
- this.adaptable.refreshCells([dataChangedInfo.rowNode], [dataChangedInfo.columnId], false);
114
+ var colsToRefresh = [dataChangedInfo.column.columnId];
115
+ const refencedCalcColumns = this.adaptable.api.calculatedColumnApi.getCalculatedColumnsReferencingColumnId(dataChangedInfo.column.columnId);
116
+ refencedCalcColumns.forEach((calculatedColumn) => {
117
+ colsToRefresh.push(calculatedColumn.ColumnId);
118
+ });
119
+ this.adaptable.refreshCells([dataChangedInfo.rowNode], colsToRefresh, false);
114
120
  }
115
121
  }
116
122
  getFreeTextColumnModuleReferences(freeTextColumn) {
@@ -13,12 +13,19 @@ import { GridCellRange } from '../../PredefinedConfig/Selection/GridCellRange';
13
13
  export declare class GridApiImpl extends ApiBase implements GridApi {
14
14
  getGridState(): GridState;
15
15
  setGridData(dataSource: any): void;
16
+ getGridData(): any[];
17
+ getFilteredData(): any[];
16
18
  loadGridData(dataSource: any): void;
17
19
  updateGridData(dataRows: any[], dataUpdateConfig?: DataUpdateConfig): void;
18
20
  addGridData(dataRows: any[], dataUpdateConfig?: DataUpdateConfig): void;
19
21
  undoCellEdit(dataChangedInfo: DataChangedInfo): boolean;
20
22
  deleteGridData(dataRows: any[], dataUpdateConfig?: DataUpdateConfig): void;
21
23
  setCellValue(columnId: string, newValue: any, primaryKeyValue: any): void;
24
+ setCellsValue(gridCells: {
25
+ columnId: any;
26
+ newValue: any;
27
+ primaryKeyValue: any;
28
+ }[]): void;
22
29
  getSelectedCellInfo(): SelectedCellInfo;
23
30
  getSelectedRowInfo(): SelectedRowInfo;
24
31
  getCellDisplayValue(primaryKeyValue: any, columnId: string): any | undefined;
@@ -76,6 +83,7 @@ export declare class GridApiImpl extends ApiBase implements GridApi {
76
83
  unhighlightCell(cellHighlightInfo: CellHighlightInfo): void;
77
84
  unhighlightAllCells(): void;
78
85
  refreshCells(rowNodes: RowNode[], columnIds: string[]): void;
86
+ refreshRow(primaryKey: string): void;
79
87
  areCellsEditable(gridCells: GridCell[]): boolean;
80
88
  getRowCount(): number;
81
89
  getVisibleRowCount(): number;
@@ -85,4 +93,5 @@ export declare class GridApiImpl extends ApiBase implements GridApi {
85
93
  selectAll(): void;
86
94
  deselectAll(): void;
87
95
  destroy(): void;
96
+ getGridContainerElement(): HTMLElement | null;
88
97
  }
@@ -12,6 +12,12 @@ class GridApiImpl extends ApiBase_1.ApiBase {
12
12
  setGridData(dataSource) {
13
13
  this.adaptable.setDataSource(dataSource);
14
14
  }
15
+ getGridData() {
16
+ return this.adaptable.getGridData();
17
+ }
18
+ getFilteredData() {
19
+ return this.adaptable.getFilteredData();
20
+ }
15
21
  loadGridData(dataSource) {
16
22
  this.adaptable.loadDataSource(dataSource);
17
23
  }
@@ -26,7 +32,7 @@ class GridApiImpl extends ApiBase_1.ApiBase {
26
32
  undoCellEdit(dataChangedInfo) {
27
33
  // for the reason of this hacky solution see the comments in DataService
28
34
  this.adaptable.api.internalApi.getDataService().logUndoChange(dataChangedInfo);
29
- this.setCellValue(dataChangedInfo.columnId, dataChangedInfo.oldValue, dataChangedInfo.primaryKeyValue);
35
+ this.setCellValue(dataChangedInfo.column.columnId, dataChangedInfo.oldValue, dataChangedInfo.primaryKeyValue);
30
36
  return true;
31
37
  }
32
38
  deleteGridData(dataRows, dataUpdateConfig) {
@@ -36,20 +42,23 @@ class GridApiImpl extends ApiBase_1.ApiBase {
36
42
  }
37
43
  }
38
44
  setCellValue(columnId, newValue, primaryKeyValue) {
39
- let gridCell = {
45
+ const abColumn = this.adaptable.api.columnApi.getColumnFromId(columnId);
46
+ if (!abColumn || abColumn.readOnly) {
47
+ return;
48
+ }
49
+ const gridCell = {
40
50
  primaryKeyValue: primaryKeyValue,
41
- columnId: columnId,
42
51
  rawValue: newValue,
43
52
  displayValue: newValue,
44
53
  normalisedValue: newValue,
45
54
  rowNode: this.getRowNodeForPrimaryKey(primaryKeyValue),
55
+ column: abColumn,
46
56
  };
47
- const abColumn = this.adaptable.api.columnApi.getColumnFromId(columnId);
48
- if (!abColumn || abColumn.ReadOnly) {
49
- return;
50
- }
51
57
  this.adaptable.api.internalApi.setGridCell(gridCell);
52
58
  }
59
+ setCellsValue(gridCells) {
60
+ gridCells === null || gridCells === void 0 ? void 0 : gridCells.forEach((gridCell) => this.setCellValue(gridCell.columnId, gridCell.newValue, gridCell.primaryKeyValue));
61
+ }
53
62
  getSelectedCellInfo() {
54
63
  return this.getGridState().SelectedCellInfo;
55
64
  }
@@ -161,7 +170,7 @@ class GridApiImpl extends ApiBase_1.ApiBase {
161
170
  return gridCell ? gridCell.displayValue : undefined;
162
171
  }
163
172
  getFormattedValueFromRawValue(columnId, rawValue) {
164
- return this.adaptable.getDisplayValueFromRawValue(columnId, rawValue, true);
173
+ return this.adaptable.getDisplayValueFromRawValue(columnId, rawValue);
165
174
  }
166
175
  getNormalisedValueFromRowNode(rowNode, columnId) {
167
176
  const gridCell = this.getGridCellFromRowNode(rowNode, columnId);
@@ -273,12 +282,15 @@ class GridApiImpl extends ApiBase_1.ApiBase {
273
282
  refreshCells(rowNodes, columnIds) {
274
283
  this.adaptable.refreshCells(rowNodes, columnIds, true);
275
284
  }
285
+ refreshRow(primaryKey) {
286
+ const rowNode = this.getRowNodeForPrimaryKey(primaryKey);
287
+ this.adaptable.redrawRow(rowNode);
288
+ }
276
289
  areCellsEditable(gridCells) {
277
290
  let returnValue = true;
278
291
  gridCells.forEach((gridCell) => {
279
292
  if (returnValue) {
280
- let abColumn = this.adaptable.api.columnApi.getColumnFromId(gridCell.columnId);
281
- if (abColumn.ReadOnly) {
293
+ if (gridCell.column.readOnly) {
282
294
  returnValue = false;
283
295
  return;
284
296
  }
@@ -318,5 +330,8 @@ class GridApiImpl extends ApiBase_1.ApiBase {
318
330
  destroy() {
319
331
  this.adaptable.destroy();
320
332
  }
333
+ getGridContainerElement() {
334
+ return this.adaptable.getGridContainerElement();
335
+ }
321
336
  }
322
337
  exports.GridApiImpl = GridApiImpl;
@@ -73,7 +73,7 @@ export declare class InternalApiImpl extends ApiBase implements InternalApi {
73
73
  setGridCells(gridCells: GridCell[]): void;
74
74
  setToolbarTitle(): string;
75
75
  setGridCell(gridCell: GridCell): void;
76
- buildDataChangedInfo(config: Pick<DataChangedInfo, 'newValue' | 'oldValue' | 'columnId' | 'primaryKeyValue' | 'rowNode' | 'trigger'>): DataChangedInfo;
76
+ buildDataChangedInfo(config: Pick<DataChangedInfo, 'newValue' | 'oldValue' | 'column' | 'primaryKeyValue' | 'rowNode' | 'trigger'>): DataChangedInfo;
77
77
  private createDataChangedInfoFromGridCell;
78
78
  setLastAppliedShortCut(gridCell: GridCell | undefined): void;
79
79
  updateCurrentDraftLayout(layout: Layout): void;
@@ -113,5 +113,7 @@ export declare class InternalApiImpl extends ApiBase implements InternalApi {
113
113
  destroyFrameworkComponent(containerDomNode: HTMLElement, frameworkComponent: AdaptableFrameworkComponent, componentType: 'toolPanel' | 'toolbar'): void;
114
114
  initializeDataChangeHistory(): void;
115
115
  isTextComparisonCaseSensitive(): boolean;
116
+ executeWithProgressIndicator(label: string, executeFn: () => void): void;
117
+ hideProgressIndicator(): void;
116
118
  dispatchReduxAction(action: Action): void;
117
119
  }
@@ -144,7 +144,7 @@ class InternalApiImpl extends ApiBase_1.ApiBase {
144
144
  this.dispatchAction(GridRedux.GridAddColumns(AdaptableColumns));
145
145
  }
146
146
  removeAdaptableColumn(colId) {
147
- const col = this.getAdaptableState().Grid.Columns.find((c) => c.ColumnId === colId);
147
+ const col = this.getAdaptableState().Grid.Columns.find((c) => c.columnId === colId);
148
148
  if (col) {
149
149
  this.dispatchAction(GridRedux.GridRemoveColumn(col));
150
150
  }
@@ -175,12 +175,12 @@ class InternalApiImpl extends ApiBase_1.ApiBase {
175
175
  return Object.assign(Object.assign({}, config), { rowData: (_a = config.rowNode) === null || _a === void 0 ? void 0 : _a.data, changedAt: Date.now() });
176
176
  }
177
177
  createDataChangedInfoFromGridCell(gridCell) {
178
- let currentValue = this.adaptable.getDisplayValue(gridCell.primaryKeyValue, gridCell.columnId);
178
+ let currentValue = this.adaptable.getDisplayValue(gridCell.primaryKeyValue, gridCell.column.columnId);
179
179
  const currentRowNode = this.adaptable.getRowNodeForPrimaryKey(gridCell.primaryKeyValue);
180
180
  const dataChangedInfo = this.buildDataChangedInfo({
181
181
  oldValue: currentValue,
182
182
  newValue: gridCell.rawValue,
183
- columnId: gridCell.columnId,
183
+ column: gridCell.column,
184
184
  primaryKeyValue: gridCell.primaryKeyValue,
185
185
  rowNode: currentRowNode,
186
186
  });
@@ -272,7 +272,7 @@ class InternalApiImpl extends ApiBase_1.ApiBase {
272
272
  }
273
273
  getCustomSortComparer(column) {
274
274
  var _a;
275
- return (_a = this.getGeneralOptions().customSortComparers) === null || _a === void 0 ? void 0 : _a.find((csc) => csc.columnId == column.ColumnId);
275
+ return (_a = this.getGeneralOptions().customSortComparers) === null || _a === void 0 ? void 0 : _a.find((csc) => csc.columnId == column.columnId);
276
276
  }
277
277
  getLabelForButton(button, context) {
278
278
  if (!button.label) {
@@ -394,6 +394,22 @@ class InternalApiImpl extends ApiBase_1.ApiBase {
394
394
  isTextComparisonCaseSensitive() {
395
395
  return this.adaptable.adaptableOptions.generalOptions.caseSensitiveTextComparisons;
396
396
  }
397
+ executeWithProgressIndicator(label, executeFn) {
398
+ this.dispatchReduxAction(SystemRedux_1.SystemProgressIndicatorShow(label));
399
+ // setTimeout required to give the ProgressIndicator rendering a head-start (see RAF in ProgressIndicator implementation)
400
+ setTimeout(() => {
401
+ try {
402
+ executeFn();
403
+ }
404
+ catch (error) {
405
+ this.hideProgressIndicator();
406
+ LoggingHelper_1.LogAdaptableError('Unexpected error while executing a function with a progress indicator', error);
407
+ }
408
+ }, 16);
409
+ }
410
+ hideProgressIndicator() {
411
+ this.dispatchReduxAction(SystemRedux_1.SystemProgressIndicatorHide());
412
+ }
397
413
  // General way to get to store from inside Adaptable...
398
414
  dispatchReduxAction(action) {
399
415
  this.dispatchAction(action);
@@ -188,9 +188,9 @@ class LayoutApiImpl extends ApiBase_1.ApiBase {
188
188
  let gridState = this.getAdaptableApi().gridApi.getGridState();
189
189
  let layoutState = this.getLayoutState();
190
190
  const isLayoutDefined = (layoutName) => !!layoutState.Layouts.filter((layout) => layout.Name === layoutName)[0];
191
- let defaultLayoutColumns = gridState.Columns.filter((column) => column.Visible);
191
+ let defaultLayoutColumns = gridState.Columns.filter((column) => column.visible);
192
192
  const columnsMap = gridState.Columns.reduce((acc, col) => {
193
- acc[col.ColumnId] = col;
193
+ acc[col.columnId] = col;
194
194
  return acc;
195
195
  }, {});
196
196
  let shouldCreateDefaultLayout = this.getLayoutOptions().createDefaultLayout;
@@ -201,7 +201,7 @@ class LayoutApiImpl extends ApiBase_1.ApiBase {
201
201
  if (!layoutState.Layouts || !isLayoutDefined(GeneralConstants_1.DEFAULT_LAYOUT)) {
202
202
  let defaultLayout = ObjectFactory_1.default.CreateEmptyLayout({
203
203
  Name: GeneralConstants_1.DEFAULT_LAYOUT,
204
- Columns: defaultLayoutColumns.map((c) => c.ColumnId),
204
+ Columns: defaultLayoutColumns.map((c) => c.columnId),
205
205
  }, gridState.Columns);
206
206
  this.saveLayout(defaultLayout);
207
207
  return defaultLayout;
@@ -1,6 +1,7 @@
1
1
  import { ApiBase } from './ApiBase';
2
2
  import { AdaptableModule } from '../../PredefinedConfig/Common/Types';
3
3
  import { QueryLanguageApi } from '../QueryLanguageApi';
4
+ import { ExpressionFunctionMap } from '../../types';
4
5
  export declare class QueryLanguageApiImpl extends ApiBase implements QueryLanguageApi {
5
6
  isValidBooleanExpression(query: string, module: AdaptableModule, validationErrorMessage?: string): boolean;
6
7
  isValidObservableExpression(expression: string, module: AdaptableModule, validationErrorMessage?: string): boolean;
@@ -8,4 +9,5 @@ export declare class QueryLanguageApiImpl extends ApiBase implements QueryLangua
8
9
  getASTForExpression(query: string): any;
9
10
  getColumnsFromExpression(expression: string): string[];
10
11
  getQueryableColumnIds(): string[] | undefined;
12
+ getModuleExpressionFunctionMap(): ExpressionFunctionMap;
11
13
  }
@@ -67,5 +67,8 @@ class QueryLanguageApiImpl extends ApiBase_1.ApiBase {
67
67
  }
68
68
  }
69
69
  }
70
+ getModuleExpressionFunctionMap() {
71
+ return this.getQueryLanguageOptions().moduleExpressionFunctions;
72
+ }
70
73
  }
71
74
  exports.QueryLanguageApiImpl = QueryLanguageApiImpl;
@@ -14,10 +14,10 @@ class ScopeApiImpl extends ApiBase_1.ApiBase {
14
14
  // do we need a true check here?
15
15
  return true;
16
16
  }
17
- if ('DataTypes' in scope && scope.DataTypes.includes(column.DataType)) {
17
+ if ('DataTypes' in scope && scope.DataTypes.includes(column.dataType)) {
18
18
  return true;
19
19
  }
20
- if ('ColumnIds' in scope && scope.ColumnIds.includes(column.ColumnId)) {
20
+ if ('ColumnIds' in scope && scope.ColumnIds.includes(column.columnId)) {
21
21
  return true;
22
22
  }
23
23
  return false;
@@ -31,10 +31,10 @@ class ScopeApiImpl extends ApiBase_1.ApiBase {
31
31
  return columns;
32
32
  }
33
33
  return columns.filter((c) => {
34
- if ('DataTypes' in scope && scope.DataTypes.includes(c.DataType)) {
34
+ if ('DataTypes' in scope && scope.DataTypes.includes(c.dataType)) {
35
35
  return true;
36
36
  }
37
- if ('ColumnIds' in scope && scope.ColumnIds.includes(c.ColumnId)) {
37
+ if ('ColumnIds' in scope && scope.ColumnIds.includes(c.columnId)) {
38
38
  return true;
39
39
  }
40
40
  return false;
@@ -140,7 +140,7 @@ class ScopeApiImpl extends ApiBase_1.ApiBase {
140
140
  }
141
141
  isColumnInNumericScope(column, scope) {
142
142
  // if column is not even numeric then return false
143
- if (column == null || column == undefined || column.DataType !== 'Number') {
143
+ if (column == null || column == undefined || column.dataType !== 'Number') {
144
144
  return false;
145
145
  }
146
146
  // if no scope then return false
@@ -148,7 +148,7 @@ class ScopeApiImpl extends ApiBase_1.ApiBase {
148
148
  return false;
149
149
  }
150
150
  // check if the scope has ColumnIds and whether this column is contained
151
- if ('ColumnIds' in scope && scope.ColumnIds.includes(column.ColumnId)) {
151
+ if ('ColumnIds' in scope && scope.ColumnIds.includes(column.columnId)) {
152
152
  return true;
153
153
  }
154
154
  // check if the scope has ColumnIds and whether this column is contained
@@ -159,7 +159,7 @@ class ScopeApiImpl extends ApiBase_1.ApiBase {
159
159
  }
160
160
  isColumnInStringsScope(column, scope) {
161
161
  // if column is not even string then return false
162
- if (column == null || column == undefined || column.DataType !== 'String') {
162
+ if (column == null || column == undefined || column.dataType !== 'String') {
163
163
  return false;
164
164
  }
165
165
  // if no scope then return false
@@ -167,7 +167,7 @@ class ScopeApiImpl extends ApiBase_1.ApiBase {
167
167
  return false;
168
168
  }
169
169
  // check if the scope has ColumnIds and whether this column is contained
170
- if ('ColumnIds' in scope && scope.ColumnIds.includes(column.ColumnId)) {
170
+ if ('ColumnIds' in scope && scope.ColumnIds.includes(column.columnId)) {
171
171
  return true;
172
172
  }
173
173
  // check if the scope has ColumnIds and whether this column is contained
@@ -178,7 +178,7 @@ class ScopeApiImpl extends ApiBase_1.ApiBase {
178
178
  }
179
179
  isColumnInDateScope(column, scope) {
180
180
  // if column is not even numeric then return false
181
- if (column == null || column == undefined || column.DataType !== 'Date') {
181
+ if (column == null || column == undefined || column.dataType !== 'Date') {
182
182
  return false;
183
183
  }
184
184
  // if no scope then return false
@@ -186,7 +186,7 @@ class ScopeApiImpl extends ApiBase_1.ApiBase {
186
186
  return false;
187
187
  }
188
188
  // check if the scope has ColumnIds and whether this column is contained
189
- if ('ColumnIds' in scope && scope.ColumnIds.includes(column.ColumnId)) {
189
+ if ('ColumnIds' in scope && scope.ColumnIds.includes(column.columnId)) {
190
190
  return true;
191
191
  }
192
192
  // check if the scope has ColumnIds and whether this column is contained
@@ -213,7 +213,7 @@ class ScopeApiImpl extends ApiBase_1.ApiBase {
213
213
  'DataTypes' in b &&
214
214
  a.ColumnIds.every((columnId) => {
215
215
  var _a;
216
- return b.DataTypes.includes((_a = this.adaptable.api.columnApi.getColumnFromId(columnId)) === null || _a === void 0 ? void 0 : _a.DataType);
216
+ return b.DataTypes.includes((_a = this.adaptable.api.columnApi.getColumnFromId(columnId)) === null || _a === void 0 ? void 0 : _a.dataType);
217
217
  })) {
218
218
  return true;
219
219
  }
@@ -3,19 +3,23 @@ import { UserInterfaceApi } from '../UserInterfaceApi';
3
3
  import { AdaptableColumn } from '../../PredefinedConfig/Common/AdaptableColumn';
4
4
  import { AdaptableStyle } from '../../PredefinedConfig/Common/AdaptableStyle';
5
5
  import { UserMenuItem } from '../../PredefinedConfig/Common/Menu';
6
- import { ActionColumn, CellValuesList } from '../../AdaptableOptions/UserInterfaceOptions';
6
+ import { ActionColumn, BulkUpdatePermittedValues, CustomSortPermittedValues, EditLookUpPermittedValues, FilterPermittedValues, PermittedValues } from '../../AdaptableOptions/UserInterfaceOptions';
7
+ import { GridCell } from '../../types';
7
8
  export declare class UserInterfaceApiImpl extends ApiBase implements UserInterfaceApi {
8
9
  getColorPalette(): string[];
9
10
  getStyleClassNames(): string[] | undefined;
10
- getAllPermittedValuesItems(): CellValuesList[];
11
- private getPermittedValuesItemsWithColumnScope;
12
- private getPermittedValuesItemsWithDataTypeScope;
13
- private getPermittedValuesItemsWithAllScope;
11
+ getAllPermittedValuesItems(): PermittedValues[];
14
12
  private getPermittedValuesForScope;
15
13
  getPermittedValuesForColumn(column: AdaptableColumn): any[] | undefined;
16
- getAllEditLookUpItems(): CellValuesList[];
17
- getEditLookUpItemForColumn(columnId: string): CellValuesList | undefined;
18
- getEditLookUpValuesForEditLookUpItem(editLookUpItem: CellValuesList, columnId: string): any[] | undefined;
14
+ getAllFilterPermittedValuesItems(): FilterPermittedValues[];
15
+ getFilterPermittedValuesForColumn(column: AdaptableColumn): FilterPermittedValues | undefined;
16
+ getAllCustomSortPermittedValuesItems(): CustomSortPermittedValues[];
17
+ getCustomSortPermittedValuesForColumn(column: AdaptableColumn): CustomSortPermittedValues | undefined;
18
+ getAllBulkUpdatePermittedValuesItems(): BulkUpdatePermittedValues[];
19
+ getBulkUpdatePermittedValuesForColumn(column: AdaptableColumn): BulkUpdatePermittedValues | undefined;
20
+ getAllEditLookUpItems(): EditLookUpPermittedValues[];
21
+ getEditLookUpItemForColumn(column: AdaptableColumn): EditLookUpPermittedValues | undefined;
22
+ getEditLookUpValuesForEditLookUpItem(editLookUpItem: EditLookUpPermittedValues, gridCell: GridCell): any[] | undefined;
19
23
  addColumnMenuItem(columnMenuItem: UserMenuItem): void;
20
24
  addContextMenuItem(contextMenuItem: UserMenuItem): void;
21
25
  getEditableCellStyle(): AdaptableStyle | undefined;
@@ -22,51 +22,32 @@ class UserInterfaceApiImpl extends ApiBase_1.ApiBase {
22
22
  return this.getUserInterfaceOptions().styleClassNames;
23
23
  }
24
24
  getAllPermittedValuesItems() {
25
- return this.getUserInterfaceOptions().permittedValues;
25
+ var _a, _b;
26
+ return (_b = (_a = this.getUserInterfaceOptions()) === null || _a === void 0 ? void 0 : _a.permittedValues) !== null && _b !== void 0 ? _b : [];
26
27
  }
27
- getPermittedValuesItemsWithColumnScope() {
28
- return this.getAllPermittedValuesItems().filter((pv) => {
29
- return 'ColumnIds' in pv.scope == true;
30
- });
31
- }
32
- getPermittedValuesItemsWithDataTypeScope() {
33
- return this.getAllPermittedValuesItems().filter((pv) => {
34
- return 'DataTypes' in pv.scope == true;
35
- });
36
- }
37
- getPermittedValuesItemsWithAllScope() {
38
- return this.getAllPermittedValuesItems().filter((pv) => {
39
- return 'All' in pv.scope == true;
40
- });
41
- }
42
- getPermittedValuesForScope(column) {
28
+ getPermittedValuesForScope(column, permittedValues) {
43
29
  let permittedValuesItem;
44
- this.getPermittedValuesItemsWithColumnScope().forEach((pv) => {
45
- if (!permittedValuesItem) {
46
- if (this.adaptable.api.scopeApi.isColumnInScope(column, pv.scope)) {
47
- permittedValuesItem = pv;
48
- }
49
- }
30
+ /**
31
+ * The previous implementation prioritized column-id, data-types and all
32
+ */
33
+ // columns id
34
+ permittedValuesItem = permittedValues.find((permittedValue) => {
35
+ return ('ColumnIds' in permittedValue.scope &&
36
+ this.adaptable.api.scopeApi.isColumnInScope(column, permittedValue.scope));
50
37
  });
51
38
  if (permittedValuesItem) {
52
39
  return permittedValuesItem;
53
40
  }
54
- this.getPermittedValuesItemsWithDataTypeScope().forEach((pv) => {
55
- if (!permittedValuesItem) {
56
- if (this.adaptable.api.scopeApi.isColumnInScope(column, pv.scope)) {
57
- permittedValuesItem = pv;
58
- }
59
- }
41
+ permittedValuesItem = permittedValues.find((permittedValue) => {
42
+ return ('DataTypes' in permittedValue.scope &&
43
+ this.adaptable.api.scopeApi.isColumnInScope(column, permittedValue.scope));
60
44
  });
61
45
  if (permittedValuesItem) {
62
46
  return permittedValuesItem;
63
47
  }
64
- this.getPermittedValuesItemsWithAllScope().forEach((pv) => {
65
- if (!permittedValuesItem) {
66
- if (this.adaptable.api.scopeApi.isColumnInScope(column, pv.scope)) {
67
- permittedValuesItem = pv;
68
- }
69
- }
48
+ permittedValuesItem = permittedValues.find((permittedValue) => {
49
+ return ('All' in permittedValue.scope &&
50
+ this.adaptable.api.scopeApi.isColumnInScope(column, permittedValue.scope));
70
51
  });
71
52
  if (permittedValuesItem) {
72
53
  return permittedValuesItem;
@@ -77,7 +58,8 @@ class UserInterfaceApiImpl extends ApiBase_1.ApiBase {
77
58
  if (ArrayExtensions_1.ArrayExtensions.IsNullOrEmpty(this.getAllPermittedValuesItems())) {
78
59
  return undefined;
79
60
  }
80
- let permittedValuesColumn = this.getPermittedValuesForScope(column);
61
+ const allPermittedValues = this.getAllPermittedValuesItems();
62
+ let permittedValuesColumn = this.getPermittedValuesForScope(column, allPermittedValues);
81
63
  if (!permittedValuesColumn) {
82
64
  return undefined;
83
65
  }
@@ -96,69 +78,60 @@ class UserInterfaceApiImpl extends ApiBase_1.ApiBase {
96
78
  }
97
79
  return undefined;
98
80
  }
99
- getAllEditLookUpItems() {
100
- return this.getUserInterfaceOptions().editLookUpItems;
81
+ getAllFilterPermittedValuesItems() {
82
+ var _a, _b;
83
+ return (_b = (_a = this.getUserInterfaceOptions()) === null || _a === void 0 ? void 0 : _a.filterPermittedValues) !== null && _b !== void 0 ? _b : [];
101
84
  }
102
- getEditLookUpItemForColumn(columnId) {
103
- const abColumn = this.adaptable.api.columnApi.getColumnFromId(columnId);
104
- if (!abColumn) {
85
+ getFilterPermittedValuesForColumn(column) {
86
+ const allFilterPermittedValuesItems = this.getAllFilterPermittedValuesItems();
87
+ if (ArrayExtensions_1.ArrayExtensions.IsNullOrEmpty(allFilterPermittedValuesItems)) {
105
88
  return undefined;
106
89
  }
107
- let editLookUpItem;
108
- let editLookUpItems = this.getAllEditLookUpItems();
109
- if (!editLookUpItems) {
90
+ return this.getPermittedValuesForScope(column, allFilterPermittedValuesItems);
91
+ }
92
+ getAllCustomSortPermittedValuesItems() {
93
+ var _a, _b;
94
+ return (_b = (_a = this.getUserInterfaceOptions()) === null || _a === void 0 ? void 0 : _a.customSortPermittedValues) !== null && _b !== void 0 ? _b : [];
95
+ }
96
+ getCustomSortPermittedValuesForColumn(column) {
97
+ const allFilterPermittedValuesItems = this.getAllCustomSortPermittedValuesItems();
98
+ if (ArrayExtensions_1.ArrayExtensions.IsNullOrEmpty(allFilterPermittedValuesItems)) {
110
99
  return undefined;
111
100
  }
112
- // first we get any for the column as that is lower level
113
- const columnEditLookItems = editLookUpItems.filter((pv) => {
114
- return 'ColumnIds' in pv.scope == true;
115
- });
116
- columnEditLookItems.forEach((eli) => {
117
- if (this.adaptable.api.scopeApi.isColumnInScopeColumns(abColumn, eli.scope)) {
118
- editLookUpItem = eli;
119
- }
120
- });
121
- if (editLookUpItem) {
122
- return editLookUpItem;
123
- }
124
- // then we get any for the DataType
125
- const dateEditLookItems = editLookUpItems.filter((pv) => {
126
- return 'DataTypes' in pv.scope == true;
127
- });
128
- dateEditLookItems.forEach((eli) => {
129
- if (this.adaptable.api.scopeApi.isColumnInDateScope(abColumn, eli.scope)) {
130
- editLookUpItem = eli;
131
- }
132
- });
133
- if (editLookUpItem) {
134
- return editLookUpItem;
135
- }
136
- // then we get any for All
137
- const allTypeEditLookItems = editLookUpItems.filter((pv) => {
138
- return 'All' in pv.scope == true;
139
- });
140
- allTypeEditLookItems.forEach((eli) => {
141
- if (this.adaptable.api.scopeApi.isColumnInScope(abColumn, eli.scope)) {
142
- editLookUpItem = eli;
143
- }
144
- });
145
- if (editLookUpItem) {
146
- return editLookUpItem;
147
- }
148
- return undefined;
101
+ return this.getPermittedValuesForScope(column, allFilterPermittedValuesItems);
149
102
  }
150
- getEditLookUpValuesForEditLookUpItem(editLookUpItem, columnId) {
151
- if (!editLookUpItem) {
103
+ getAllBulkUpdatePermittedValuesItems() {
104
+ var _a, _b;
105
+ return (_b = (_a = this.getUserInterfaceOptions()) === null || _a === void 0 ? void 0 : _a.bulkUpdatePermittedValues) !== null && _b !== void 0 ? _b : [];
106
+ }
107
+ getBulkUpdatePermittedValuesForColumn(column) {
108
+ const allFilterPermittedValuesItems = this.getAllBulkUpdatePermittedValuesItems();
109
+ if (ArrayExtensions_1.ArrayExtensions.IsNullOrEmpty(allFilterPermittedValuesItems)) {
152
110
  return undefined;
153
111
  }
154
- const column = this.adaptable.api.columnApi.getColumnFromId(columnId);
112
+ return this.getPermittedValuesForScope(column, allFilterPermittedValuesItems);
113
+ }
114
+ getAllEditLookUpItems() {
115
+ return this.getUserInterfaceOptions().editLookUpItems || [];
116
+ }
117
+ getEditLookUpItemForColumn(column) {
155
118
  if (!column) {
156
119
  return undefined;
157
120
  }
121
+ let editLookUpItems = this.getAllEditLookUpItems();
122
+ if (!editLookUpItems) {
123
+ return undefined;
124
+ }
125
+ return this.getPermittedValuesForScope(column, editLookUpItems);
126
+ }
127
+ getEditLookUpValuesForEditLookUpItem(editLookUpItem, gridCell) {
128
+ if (!editLookUpItem || !gridCell || !gridCell.column) {
129
+ return undefined;
130
+ }
158
131
  let editLookUpValues = editLookUpItem.values;
159
132
  // first do the function then get hardcoded items
160
133
  if (editLookUpValues != null && typeof editLookUpValues === 'function') {
161
- return editLookUpValues(column);
134
+ return editLookUpValues(gridCell.column, gridCell);
162
135
  }
163
136
  else {
164
137
  let arr = editLookUpValues;
@@ -168,7 +141,7 @@ class UserInterfaceApiImpl extends ApiBase_1.ApiBase {
168
141
  }
169
142
  // if no hard-coded values or function provided then just get the distinct values for the column
170
143
  // this will use the columnapi method that first looks for permitted values and then distinct values
171
- return this.adaptable.api.columnApi.getDistinctDisplayValuesForColumn(columnId);
144
+ return this.adaptable.api.columnApi.getDistinctDisplayValuesForColumn(gridCell.column.columnId);
172
145
  }
173
146
  addColumnMenuItem(columnMenuItem) {
174
147
  var _a;
@@ -78,7 +78,7 @@ export interface InternalApi {
78
78
  setGridCell(gridCell: GridCell): void;
79
79
  setToolbarTitle(): string;
80
80
  getQueryPreviewData(): any;
81
- buildDataChangedInfo(config: Pick<DataChangedInfo, 'newValue' | 'oldValue' | 'columnId' | 'primaryKeyValue' | 'rowNode' | 'trigger'>): DataChangedInfo;
81
+ buildDataChangedInfo(config: Pick<DataChangedInfo, 'newValue' | 'oldValue' | 'column' | 'primaryKeyValue' | 'rowNode' | 'trigger'>): DataChangedInfo;
82
82
  setLastAppliedShortCut(gridCell: GridCell | undefined): void;
83
83
  setDefaultDashboardTab(): void;
84
84
  updateCurrentDraftLayout(layout: Layout): void;
@@ -116,4 +116,6 @@ export interface InternalApi {
116
116
  destroyFrameworkComponent(containerDomNode: HTMLElement, frameworkComponent: AdaptableFrameworkComponent, componentType: 'toolPanel' | 'toolbar'): void;
117
117
  initializeDataChangeHistory(): void;
118
118
  isTextComparisonCaseSensitive(): boolean;
119
+ executeWithProgressIndicator(label: string, executeFn: () => unknown): void;
120
+ hideProgressIndicator(): void;
119
121
  }