@adaptabletools/adaptable 18.0.0-canary.24 → 18.0.0-canary.26

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 (78) hide show
  1. package/package.json +1 -1
  2. package/src/AdaptableInterfaces/IAdaptable.d.ts +1 -1
  3. package/src/AdaptableOptions/CommentOptions.d.ts +2 -2
  4. package/src/AdaptableOptions/MenuOptions.d.ts +4 -4
  5. package/src/Api/GridApi.d.ts +2 -1
  6. package/src/Api/Implementation/ActionRowApiImpl.js +3 -7
  7. package/src/Api/Implementation/AlertApiImpl.js +5 -10
  8. package/src/Api/Implementation/CalendarApiImpl.js +1 -6
  9. package/src/Api/Implementation/ChartingApiImpl.js +3 -3
  10. package/src/Api/Implementation/ColumnApiImpl.js +6 -6
  11. package/src/Api/Implementation/ColumnFilterApiImpl.js +7 -7
  12. package/src/Api/Implementation/CommentsApiImpl.js +1 -1
  13. package/src/Api/Implementation/ConfigApiImpl.js +11 -17
  14. package/src/Api/Implementation/DashboardApiImpl.js +1 -6
  15. package/src/Api/Implementation/ExportApiImpl.js +5 -10
  16. package/src/Api/Implementation/ExpressionApiImpl.js +8 -13
  17. package/src/Api/Implementation/Fdc3ApiImpl.js +1 -1
  18. package/src/Api/Implementation/FlashingCellApiImpl.js +3 -8
  19. package/src/Api/Implementation/FormatColumnApiImpl.js +4 -4
  20. package/src/Api/Implementation/FreeTextColumnApiImpl.js +1 -1
  21. package/src/Api/Implementation/GridApiImpl.d.ts +2 -1
  22. package/src/Api/Implementation/GridApiImpl.js +11 -8
  23. package/src/Api/Implementation/LayoutApiImpl.d.ts +2 -0
  24. package/src/Api/Implementation/LayoutApiImpl.js +2 -13
  25. package/src/Api/Implementation/PredicateApiImpl.js +2 -2
  26. package/src/Api/Implementation/ScheduleApiImpl.js +6 -6
  27. package/src/Api/Implementation/ScopeApiImpl.js +10 -10
  28. package/src/Api/Implementation/TeamSharingApiImpl.js +3 -15
  29. package/src/Api/Implementation/ThemeApiImpl.js +2 -7
  30. package/src/Api/Implementation/UserInterfaceApiImpl.js +4 -13
  31. package/src/Api/Internal/ActionRowInternalApi.js +7 -45
  32. package/src/Api/Internal/AdaptableInternalApi.js +2 -12
  33. package/src/Api/Internal/AlertInternalApi.js +4 -17
  34. package/src/Api/Internal/CalculatedColumnInternalApi.js +7 -14
  35. package/src/Api/Internal/ChartingInternalApi.js +13 -13
  36. package/src/Api/Internal/ColumnFilterInternalApi.js +18 -36
  37. package/src/Api/Internal/CustomSortInternalApi.js +1 -1
  38. package/src/Api/Internal/DashboardInternalApi.js +4 -10
  39. package/src/Api/Internal/DataImportInternalApi.js +3 -9
  40. package/src/Api/Internal/DataSetInternalApi.js +2 -7
  41. package/src/Api/Internal/ExportInternalApi.js +4 -4
  42. package/src/Api/Internal/ExpressionInternalApi.js +2 -12
  43. package/src/Api/Internal/Fdc3InternalApi.js +1 -10
  44. package/src/Api/Internal/FormatColumnInternalApi.js +11 -20
  45. package/src/Api/Internal/FreeTextColumnInternalApi.js +1 -1
  46. package/src/Api/Internal/GridFilterInternalApi.js +2 -8
  47. package/src/Api/Internal/GridInternalApi.js +13 -40
  48. package/src/Api/Internal/LayoutInternalApi.d.ts +1 -0
  49. package/src/Api/Internal/LayoutInternalApi.js +10 -19
  50. package/src/Api/Internal/PredicateInternalApi.js +5 -40
  51. package/src/Api/Internal/ScheduleInternalApi.js +1 -6
  52. package/src/Api/Internal/StyledColumnInternalApi.js +5 -5
  53. package/src/Api/Internal/SystemStatusInternalApi.js +1 -7
  54. package/src/Api/Internal/TeamSharingInternalApi.js +2 -7
  55. package/src/Api/Internal/ThemeInternalApi.js +1 -1
  56. package/src/Api/Internal/UserInterfaceInternalApi.js +1 -1
  57. package/src/Api/LayoutApi.d.ts +1 -0
  58. package/src/PredefinedConfig/Common/CellSummary.d.ts +5 -14
  59. package/src/PredefinedConfig/Common/Enums.d.ts +2 -0
  60. package/src/PredefinedConfig/Common/Enums.js +2 -0
  61. package/src/PredefinedConfig/Common/RowSummary.d.ts +1 -1
  62. package/src/PredefinedConfig/Common/RowSummary.js +4 -4
  63. package/src/Strategy/CellSummaryModule.js +54 -94
  64. package/src/Strategy/LayoutModule.js +5 -1
  65. package/src/Utilities/ExpressionFunctions/aggregatedScalarExpressionFunctions.d.ts +1 -1
  66. package/src/Utilities/ExpressionFunctions/aggregatedScalarExpressionFunctions.js +19 -19
  67. package/src/Utilities/Helpers/AdaptableHelper.js +3 -2
  68. package/src/Utilities/ObjectFactory.js +2 -0
  69. package/src/View/Layout/Wizard/LayoutWizard.js +2 -0
  70. package/src/View/Layout/Wizard/sections/RowGroupingSection.js +17 -1
  71. package/src/View/Layout/Wizard/sections/RowSummarySection.js +5 -5
  72. package/src/agGrid/AdaptableAgGrid.d.ts +1 -1
  73. package/src/agGrid/AdaptableAgGrid.js +19 -7
  74. package/src/agGrid/AgGridAdapter.d.ts +1 -2
  75. package/src/env.js +2 -2
  76. package/src/metamodel/adaptable.metamodel.d.ts +8 -2
  77. package/src/metamodel/adaptable.metamodel.js +1 -1
  78. package/tsconfig.esm.tsbuildinfo +1 -1
@@ -43,7 +43,7 @@ export class ColumnFilterInternalApi extends ApiBase {
43
43
  const filter = {
44
44
  ColumnId: column.columnId,
45
45
  Predicate: {
46
- PredicateId: this.adaptable.api.predicateApi.internalApi.getEqualityPredicateForDataType(column.dataType),
46
+ PredicateId: this.getAdaptableApi().predicateApi.internalApi.getEqualityPredicateForDataType(column.dataType),
47
47
  Inputs: [...new Set([gridCell.rawValue])],
48
48
  },
49
49
  };
@@ -55,11 +55,11 @@ export class ColumnFilterInternalApi extends ApiBase {
55
55
  * @param columnFilter Column Filter to use
56
56
  */
57
57
  columnFilterToString(columnFilter) {
58
- const friendlyName = this.adaptable.api.columnApi.getFriendlyNameForColumnId(columnFilter.ColumnId);
58
+ const friendlyName = this.getAdaptableApi().columnApi.getFriendlyNameForColumnId(columnFilter.ColumnId);
59
59
  return ('[' +
60
60
  friendlyName +
61
61
  '] ' +
62
- this.adaptable.api.predicateApi.predicateToString(columnFilter.Predicate));
62
+ this.getAdaptableApi().predicateApi.predicateToString(columnFilter.Predicate));
63
63
  }
64
64
  /**
65
65
  * Retrieves descriptions of given Column Filters
@@ -99,17 +99,9 @@ export class ColumnFilterInternalApi extends ApiBase {
99
99
  return true;
100
100
  }
101
101
  let value = gridCell.normalisedValue;
102
- const predicateDefHandlerContext = {
103
- value: value,
104
- oldValue: null,
105
- displayValue: gridCell.displayValue,
106
- node,
107
- column,
108
- adaptableApi: this.getAdaptableApi(),
109
- userName: this.getAdaptableApi().optionsApi.getUserName(),
110
- adaptableId: this.getAdaptableApi().optionsApi.getAdaptableId(),
111
- };
112
- return this.adaptable.api.predicateApi.handlePredicate(columnFilter.Predicate, predicateDefHandlerContext, true);
102
+ const predicateDefHandlerContext = Object.assign({ value: value, oldValue: null, displayValue: gridCell.displayValue, node,
103
+ column }, this.getAdaptableApi().internalApi.buildBaseContext());
104
+ return this.getAdaptableApi().predicateApi.handlePredicate(columnFilter.Predicate, predicateDefHandlerContext, true);
113
105
  }
114
106
  /**
115
107
  * Checks if the filter action should trigger Column Filtering
@@ -128,32 +120,32 @@ export class ColumnFilterInternalApi extends ApiBase {
128
120
  // filter -> suspend changes
129
121
  var _a, _b;
130
122
  const isNewAndActive = action.type === LayoutRedux.LAYOUT_COLUMN_FILTER_ADD &&
131
- this.adaptable.api.columnFilterApi.isColumnFilterActive(action.columnFilter);
123
+ this.getAdaptableApi().columnFilterApi.isColumnFilterActive(action.columnFilter);
132
124
  const isClearAndPreviousWasActive = action.type === LayoutRedux.LAYOUT_COLUMN_FILTER_CLEAR &&
133
- this.adaptable.api.columnFilterApi.isColumnFilterActive(action.columnFilter);
125
+ this.getAdaptableApi().columnFilterApi.isColumnFilterActive(action.columnFilter);
134
126
  const isClearAllAtLeastOneActiveFilter = action.type === LayoutRedux.LAYOUT_COLUMN_FILTER_CLEAR_ALL &&
135
- this.adaptable.api.columnFilterApi
127
+ this.getAdaptableApi().columnFilterApi
136
128
  .getColumnFilters()
137
- .some((columnFilter) => this.adaptable.api.columnFilterApi.isColumnFilterActive(columnFilter));
129
+ .some((columnFilter) => this.getAdaptableApi().columnFilterApi.isColumnFilterActive(columnFilter));
138
130
  let isEditTrigger = false;
139
131
  if (action.type === LayoutRedux.LAYOUT_COLUMN_FILTER_EDIT) {
140
132
  const newFilter = action.columnFilter;
141
- const previous = this.adaptable.api.columnFilterApi.getColumnFilterForColumn(newFilter.ColumnId);
133
+ const previous = this.getAdaptableApi().columnFilterApi.getColumnFilterForColumn(newFilter.ColumnId);
142
134
  // same filter edit, so always trigger
143
135
  if (((_a = previous === null || previous === void 0 ? void 0 : previous.Predicate) === null || _a === void 0 ? void 0 : _a.PredicateId) === ((_b = newFilter === null || newFilter === void 0 ? void 0 : newFilter.Predicate) === null || _b === void 0 ? void 0 : _b.PredicateId)) {
144
136
  isEditTrigger = true;
145
137
  // new filter is active
146
138
  }
147
- else if (this.adaptable.api.columnFilterApi.isColumnFilterActive(newFilter)) {
139
+ else if (this.getAdaptableApi().columnFilterApi.isColumnFilterActive(newFilter)) {
148
140
  isEditTrigger = true;
149
141
  }
150
- else if (this.adaptable.api.columnFilterApi.isColumnFilterActive(previous)) {
142
+ else if (this.getAdaptableApi().columnFilterApi.isColumnFilterActive(previous)) {
151
143
  // previous filter was active
152
144
  isEditTrigger = true;
153
145
  }
154
146
  }
155
147
  const isSetAndActive = action.type === LayoutRedux.LAYOUT_COLUMN_FILTER_SET &&
156
- this.adaptable.api.columnFilterApi.isColumnFilterActive(action.columnFilter);
148
+ this.getAdaptableApi().columnFilterApi.isColumnFilterActive(action.columnFilter);
157
149
  const isSuspendChanged = [
158
150
  LayoutRedux.LAYOUT_COLUMN_FILTER_SUSPEND,
159
151
  LayoutRedux.LAYOUT_COLUMN_FILTER_SUSPEND_ALL,
@@ -173,25 +165,15 @@ export class ColumnFilterInternalApi extends ApiBase {
173
165
  fireColumnFilterAppliedEvent() {
174
166
  if (this.adaptable.isReady) {
175
167
  const adaptableApi = this.getAdaptableApi();
176
- const columnFilterAppliedInfo = {
177
- columnFilters: this.getColumnFilterApi().getColumnFilters(),
178
- adaptableApi: adaptableApi,
179
- userName: adaptableApi.optionsApi.getUserName(),
180
- adaptableId: adaptableApi.optionsApi.getAdaptableId(),
181
- };
182
- this.adaptable.api.eventApi.emit('ColumnFilterApplied', columnFilterAppliedInfo);
168
+ const columnFilterAppliedInfo = Object.assign({ columnFilters: this.getColumnFilterApi().getColumnFilters() }, this.getAdaptableApi().internalApi.buildBaseContext());
169
+ this.getAdaptableApi().eventApi.emit('ColumnFilterApplied', columnFilterAppliedInfo);
183
170
  }
184
171
  }
185
172
  fireGridFilterAppliedEvent() {
186
173
  if (this.adaptable.isReady) {
187
174
  const adaptableApi = this.getAdaptableApi();
188
- const gridFilterAppliedInfo = {
189
- columnFilters: this.getColumnFilterApi().getColumnFilters(),
190
- adaptableApi: adaptableApi,
191
- userName: adaptableApi.optionsApi.getUserName(),
192
- adaptableId: adaptableApi.optionsApi.getAdaptableId(),
193
- };
194
- this.adaptable.api.eventApi.emit('GridFilterApplied', gridFilterAppliedInfo);
175
+ const gridFilterAppliedInfo = Object.assign({ columnFilters: this.getColumnFilterApi().getColumnFilters() }, this.getAdaptableApi().internalApi.buildBaseContext());
176
+ this.getAdaptableApi().eventApi.emit('GridFilterApplied', gridFilterAppliedInfo);
195
177
  }
196
178
  }
197
179
  /**
@@ -3,7 +3,7 @@ export class CustomSortInternalApi extends ApiBase {
3
3
  getCustomSortComparer(columnId) {
4
4
  var _a;
5
5
  const column = this.getColumnApi().getColumnWithColumnId(columnId);
6
- return (_a = this.getCustomSortOptions().customSortComparers) === null || _a === void 0 ? void 0 : _a.find((csc) => this.adaptable.api.scopeApi.isColumnInScope(column, csc.scope));
6
+ return (_a = this.getCustomSortOptions().customSortComparers) === null || _a === void 0 ? void 0 : _a.find((csc) => this.getAdaptableApi().scopeApi.isColumnInScope(column, csc.scope));
7
7
  }
8
8
  getDefaultCustomSortComparer(columnId, columnValues) {
9
9
  // have to return a function that may not have access to this
@@ -26,18 +26,12 @@ export class DashboardInternalApi extends ApiBase {
26
26
  }
27
27
  return visibleInOldState && !visibleInNewState;
28
28
  };
29
- const dashboardChangedInfo = {
30
- adaptableApi: this.adaptable.api,
31
- actionName: trigger,
32
- oldDashboardState,
29
+ const dashboardChangedInfo = Object.assign(Object.assign({}, this.getAdaptableApi().internalApi.buildBaseContext()), { actionName: trigger, oldDashboardState,
33
30
  newDashboardState,
34
31
  isToolbarStateChangedToVisible,
35
- isToolbarStateChangedToHidden,
36
- userName: this.adaptable.api.optionsApi.getUserName(),
37
- adaptableId: this.adaptable.api.optionsApi.getAdaptableId(),
38
- };
32
+ isToolbarStateChangedToHidden });
39
33
  if (!isEqual(oldDashboardState, newDashboardState)) {
40
- setTimeout(() => this.adaptable.api.eventApi.emit('DashboardChanged', dashboardChangedInfo));
34
+ setTimeout(() => this.getAdaptableApi().eventApi.emit('DashboardChanged', dashboardChangedInfo));
41
35
  }
42
36
  }
43
37
  isToolbarInActiveTab(toolbarName, dashboardState) {
@@ -57,7 +51,7 @@ export class DashboardInternalApi extends ApiBase {
57
51
  return false;
58
52
  }
59
53
  isToolbarCustom(toolbarName) {
60
- return this.adaptable.api.dashboardApi
54
+ return this.getAdaptableApi().dashboardApi
61
55
  .getCustomToolbars()
62
56
  .some((tb) => tb.name === toolbarName);
63
57
  }
@@ -52,16 +52,10 @@ export class DataImportInternalApi extends ApiBase {
52
52
  * @param gridDataRows Rows that were imported
53
53
  */
54
54
  publishDataImportedEvent(importData, addedRows, updatedRows) {
55
- const adaptableApi = this.getAdaptableApi();
56
- const dataImportedInfo = {
57
- adaptableApi: adaptableApi,
58
- importData,
55
+ const dataImportedInfo = Object.assign({ importData,
59
56
  addedRows,
60
- updatedRows,
61
- userName: adaptableApi.optionsApi.getUserName(),
62
- adaptableId: adaptableApi.optionsApi.getAdaptableId(),
63
- };
64
- this.adaptable.api.internalApi.dispatchReduxAction(SystemRedux.DataImportCompleted(dataImportedInfo));
57
+ updatedRows }, this.getAdaptableApi().internalApi.buildBaseContext());
58
+ this.getAdaptableApi().internalApi.dispatchReduxAction(SystemRedux.DataImportCompleted(dataImportedInfo));
65
59
  this.getEventApi().emit('DataImported', dataImportedInfo);
66
60
  }
67
61
  }
@@ -6,13 +6,8 @@ export class DataSetInternalApi extends ApiBase {
6
6
  */
7
7
  fireDataSetSelectedEvent(dataSet) {
8
8
  if (this.adaptable.isReady) {
9
- const dataSetSelectedInfo = {
10
- adaptableApi: this.adaptable.api,
11
- dataSet,
12
- userName: this.adaptable.api.optionsApi.getUserName(),
13
- adaptableId: this.adaptable.api.optionsApi.getAdaptableId(),
14
- };
15
- this.adaptable.api.eventApi.emit('DataSetSelected', dataSetSelectedInfo);
9
+ const dataSetSelectedInfo = Object.assign(Object.assign({}, this.getAdaptableApi().internalApi.buildBaseContext()), { dataSet });
10
+ this.getAdaptableApi().eventApi.emit('DataSetSelected', dataSetSelectedInfo);
16
11
  }
17
12
  }
18
13
  }
@@ -21,12 +21,12 @@ export class ExportInternalApi extends ApiBase {
21
21
  break;
22
22
  case 'ScopeColumns':
23
23
  // use the Scope object which will tell us if the Column is relevant
24
- if (!this.adaptable.api.scopeApi.isColumnInScopeColumns(cellDataChangedInfo.column, report.Scope)) {
24
+ if (!this.getAdaptableApi().scopeApi.isColumnInScopeColumns(cellDataChangedInfo.column, report.Scope)) {
25
25
  return false;
26
26
  }
27
27
  break;
28
28
  case 'SelectedColumns':
29
- let selectedCellInfo = this.adaptable.api.gridApi.getSelectedCellInfo();
29
+ let selectedCellInfo = this.getAdaptableApi().gridApi.getSelectedCellInfo();
30
30
  if (selectedCellInfo) {
31
31
  if (selectedCellInfo.columns.find((c) => c.columnId == cellDataChangedInfo.column.columnId) == null) {
32
32
  return false;
@@ -47,7 +47,7 @@ export class ExportInternalApi extends ApiBase {
47
47
  case 'ExpressionRows':
48
48
  return true; // TODO this is the only difficult one - do we check AdapTableQL? if we can then that is good as we can then do a delta after all...
49
49
  case 'SelectedCellRows':
50
- let selectedCellInfo = this.adaptable.api.gridApi.getSelectedCellInfo();
50
+ let selectedCellInfo = this.getAdaptableApi().gridApi.getSelectedCellInfo();
51
51
  if (selectedCellInfo && selectedCellInfo.gridCells) {
52
52
  if (selectedCellInfo.gridCells.find((gc) => gc.primaryKeyValue == cellDataChangedInfo.primaryKeyValue)) {
53
53
  return true;
@@ -55,7 +55,7 @@ export class ExportInternalApi extends ApiBase {
55
55
  }
56
56
  return false;
57
57
  case 'SelectedRows':
58
- let selectedRowInfo = this.adaptable.api.gridApi.getSelectedRowInfo();
58
+ let selectedRowInfo = this.getAdaptableApi().gridApi.getSelectedRowInfo();
59
59
  if (selectedRowInfo && selectedRowInfo.gridRows) {
60
60
  if (selectedRowInfo.gridRows.find((gr) => gr.primaryKeyValue == cellDataChangedInfo.primaryKeyValue)) {
61
61
  return true;
@@ -15,12 +15,7 @@ export class ExpressionInternalApi extends ApiBase {
15
15
  if (typeof evaluateExpressionExternallyFn !== 'function') {
16
16
  return true;
17
17
  }
18
- const context = {
19
- adaptableApi: this.getAdaptableApi(),
20
- userName: this.getOptions().userName,
21
- adaptableId: this.getOptions().adaptableId,
22
- module,
23
- };
18
+ const context = Object.assign(Object.assign({}, this.getAdaptableApi().internalApi.buildBaseContext()), { module });
24
19
  if (object) {
25
20
  context.object = object;
26
21
  }
@@ -38,12 +33,7 @@ export class ExpressionInternalApi extends ApiBase {
38
33
  if (typeof evaluateExpressionExternallyFn !== 'function') {
39
34
  return true;
40
35
  }
41
- const context = {
42
- adaptableApi: this.getAdaptableApi(),
43
- userName: this.getAdaptableApi().optionsApi.getUserName(),
44
- adaptableId: this.getAdaptableApi().optionsApi.getAdaptableId(),
45
- module,
46
- };
36
+ const context = Object.assign(Object.assign({}, this.getAdaptableApi().internalApi.buildBaseContext()), { module });
47
37
  if (object) {
48
38
  context.object = object;
49
39
  }
@@ -265,16 +265,7 @@ export class Fdc3InternalApi extends ApiBase {
265
265
  }
266
266
  mapFdc3ButtonConfigToAdaptableButton(fdc3AdaptableButton, fdcInfo) {
267
267
  const buildFdc3Context = (context) => {
268
- return {
269
- context: this.mapRowToContextData(fdcInfo.contextType, context.rowNode),
270
- intent: fdcInfo.action === 'raiseIntent' ? fdcInfo.intent : null,
271
- rowNode: context.rowNode,
272
- rowData: context.data,
273
- adaptableId: context.adaptableId,
274
- primaryKeyValue: context.primaryKeyValue,
275
- userName: context.userName,
276
- adaptableApi: context.adaptableApi,
277
- };
268
+ return Object.assign({ context: this.mapRowToContextData(fdcInfo.contextType, context.rowNode), intent: fdcInfo.action === 'raiseIntent' ? fdcInfo.intent : null, rowNode: context.rowNode, rowData: context.data, primaryKeyValue: context.primaryKeyValue }, this.getAdaptableApi().internalApi.buildBaseContext());
278
269
  };
279
270
  return {
280
271
  onClick: (_button, context) => {
@@ -59,7 +59,7 @@ export class FormatColumnInternalApi extends ApiBase {
59
59
  return this.getFormatColumnsWithStyleForColumn(column, config).filter((formatColumn) => { var _a; return StringExtensions.IsNotNullOrEmpty((_a = formatColumn === null || formatColumn === void 0 ? void 0 : formatColumn.Style) === null || _a === void 0 ? void 0 : _a.ClassName); });
60
60
  }
61
61
  getFormatColumnWithColumnInScope(formatColumns, column) {
62
- return this.getFormatColumnInColumnScope(formatColumns).filter((scopedFormatColumn) => this.adaptable.api.scopeApi.isColumnInScope(column, scopedFormatColumn.Scope));
62
+ return this.getFormatColumnInColumnScope(formatColumns).filter((scopedFormatColumn) => this.getAdaptableApi().scopeApi.isColumnInScope(column, scopedFormatColumn.Scope));
63
63
  }
64
64
  // TODO is this really needed, I don't think it achieves anything
65
65
  getFormatColumnInColumnScope(formatColumns) {
@@ -67,11 +67,11 @@ export class FormatColumnInternalApi extends ApiBase {
67
67
  return formatColumns.filter((fc) => {
68
68
  return (
69
69
  // this.getFormatColumnsWithColumnScope(formatColumns)
70
- (this.adaptable.api.scopeApi.scopeHasColumns(fc.Scope) ||
70
+ (this.getAdaptableApi().scopeApi.scopeHasColumns(fc.Scope) ||
71
71
  // this.getFormatColumnsWithDataTypeScope(formatColumns)
72
- this.adaptable.api.scopeApi.scopeHasDataType(fc.Scope) ||
72
+ this.getAdaptableApi().scopeApi.scopeHasDataType(fc.Scope) ||
73
73
  // this.getFormatColumnsWithAllScope(formatColumns)
74
- this.adaptable.api.scopeApi.scopeIsAll(fc.Scope) || this.adaptable.api.scopeApi.scopeHasColumnType(fc.Scope))
74
+ this.getAdaptableApi().scopeApi.scopeIsAll(fc.Scope) || this.getAdaptableApi().scopeApi.scopeHasColumnType(fc.Scope))
75
75
  );
76
76
  });
77
77
  }
@@ -144,7 +144,7 @@ export class FormatColumnInternalApi extends ApiBase {
144
144
  getFormatColumnDefsForScope(scope) {
145
145
  return this.getAdaptableApi()
146
146
  .predicateApi.internalApi.getFormatColumnPredicateDefs(scope)
147
- .filter((predicateDef) => this.adaptable.api.scopeApi.isScopeInScope(scope, predicateDef.columnScope));
147
+ .filter((predicateDef) => this.getAdaptableApi().scopeApi.isScopeInScope(scope, predicateDef.columnScope));
148
148
  }
149
149
  /**
150
150
  * Checks if format column is relevant for a given cell (intersection of given AdaptableColumn and RowNode)
@@ -160,7 +160,7 @@ export class FormatColumnInternalApi extends ApiBase {
160
160
  return false;
161
161
  }
162
162
  if (!formatColumn.IncludeGroupedRows &&
163
- this.adaptable.api.gridApi.isGroupRowNode(params.node)) {
163
+ this.getAdaptableApi().gridApi.isGroupRowNode(params.node)) {
164
164
  return false;
165
165
  }
166
166
  if (!formatColumn.Rule) {
@@ -168,16 +168,7 @@ export class FormatColumnInternalApi extends ApiBase {
168
168
  }
169
169
  // first run the predicate
170
170
  if (formatColumn.Rule.Predicates && ((_b = (_a = formatColumn.Rule) === null || _a === void 0 ? void 0 : _a.Predicates) === null || _b === void 0 ? void 0 : _b.length)) {
171
- const predicateDefHandlerContext = {
172
- value: params.value,
173
- oldValue: null,
174
- displayValue: params.value,
175
- node: params.node,
176
- column: column,
177
- adaptableApi: this.getAdaptableApi(),
178
- userName: this.getAdaptableApi().optionsApi.getUserName(),
179
- adaptableId: this.getAdaptableApi().optionsApi.getAdaptableId(),
180
- };
171
+ const predicateDefHandlerContext = Object.assign({ value: params.value, oldValue: null, displayValue: params.value, node: params.node, column: column }, this.getAdaptableApi().internalApi.buildBaseContext());
181
172
  return this.evaluatePredicate(formatColumn, predicateDefHandlerContext);
182
173
  }
183
174
  else if (formatColumn.Rule.BooleanExpression) {
@@ -188,12 +179,12 @@ export class FormatColumnInternalApi extends ApiBase {
188
179
  }
189
180
  evaluatePredicate(formatColumn, predicateDefHandlerContext) {
190
181
  var _a;
191
- return this.adaptable.api.predicateApi.handleColumnPredicates((_a = formatColumn.Rule) === null || _a === void 0 ? void 0 : _a.Predicates, predicateDefHandlerContext, false);
182
+ return this.getAdaptableApi().predicateApi.handleColumnPredicates((_a = formatColumn.Rule) === null || _a === void 0 ? void 0 : _a.Predicates, predicateDefHandlerContext, false);
192
183
  }
193
184
  evaluateExpression(formatColumn, node) {
194
- const isValidExpression = this.adaptable.api.expressionApi.isValidBooleanExpression(formatColumn.Rule.BooleanExpression, ModuleConstants.FormatColumnModuleId, `Invalid format column rule '${formatColumn.Rule.BooleanExpression}'`);
185
+ const isValidExpression = this.getAdaptableApi().expressionApi.isValidBooleanExpression(formatColumn.Rule.BooleanExpression, ModuleConstants.FormatColumnModuleId, `Invalid format column rule '${formatColumn.Rule.BooleanExpression}'`);
195
186
  return (isValidExpression &&
196
- this.adaptable.api.internalApi
187
+ this.getAdaptableApi().internalApi
197
188
  .getQueryLanguageService()
198
189
  .evaluateBooleanExpression(formatColumn.Rule.BooleanExpression, ModuleConstants.FormatColumnModuleId, node));
199
190
  }
@@ -244,7 +235,7 @@ export class FormatColumnInternalApi extends ApiBase {
244
235
  });
245
236
  const columnsThatNeedRefresh = new Set();
246
237
  this.getFormatColumnsDependentOnColumns(impactedColumnIds).forEach((formatColumn) => {
247
- this.adaptable.api.scopeApi.getColumnsForScope(formatColumn.Scope).forEach((col) => {
238
+ this.getAdaptableApi().scopeApi.getColumnsForScope(formatColumn.Scope).forEach((col) => {
248
239
  columnsThatNeedRefresh.add(col.columnId);
249
240
  });
250
241
  });
@@ -20,7 +20,7 @@ export class FreeTextColumnInternalApi extends ApiBase {
20
20
  };
21
21
  this.getFreeTextColumnApi().setStoredValue(freeTextColumn.ColumnId, freeTextStoredValue);
22
22
  var colsToRefresh = [cellDataChangedInfo.column.columnId];
23
- const refencedCalcColumns = this.adaptable.api.calculatedColumnApi.internalApi.getCalculatedColumnsReferencingColumnId(cellDataChangedInfo.column.columnId);
23
+ const refencedCalcColumns = this.getAdaptableApi().calculatedColumnApi.internalApi.getCalculatedColumnsReferencingColumnId(cellDataChangedInfo.column.columnId);
24
24
  refencedCalcColumns.forEach((calculatedColumn) => {
25
25
  colsToRefresh.push(calculatedColumn.ColumnId);
26
26
  });
@@ -4,15 +4,9 @@ export class GridFilterInternalApi extends ApiBase {
4
4
  if (this.adaptable.isReady) {
5
5
  const currentGridFilter = this.getGridFilterApi().getCurrentGridFilter();
6
6
  const adaptableApi = this.getAdaptableApi();
7
- const gridFilterAppliedInfo = {
8
- gridFilter: currentGridFilter,
9
- gridFilterExpressionAST: currentGridFilter
7
+ const gridFilterAppliedInfo = Object.assign({ gridFilter: currentGridFilter, gridFilterExpressionAST: currentGridFilter
10
8
  ? adaptableApi.expressionApi.getASTForExpression(currentGridFilter === null || currentGridFilter === void 0 ? void 0 : currentGridFilter.Expression)
11
- : null,
12
- adaptableApi: adaptableApi,
13
- userName: adaptableApi.optionsApi.getUserName(),
14
- adaptableId: adaptableApi.optionsApi.getAdaptableId(),
15
- };
9
+ : null }, this.getAdaptableApi().internalApi.buildBaseContext());
16
10
  adaptableApi.eventApi.emit('GridFilterApplied', gridFilterAppliedInfo);
17
11
  }
18
12
  }
@@ -12,14 +12,9 @@ export class GridInternalApi extends ApiBase {
12
12
  */
13
13
  fireGridSortedEvent() {
14
14
  if (this.adaptable.isReady) {
15
- const adaptableSortState = this.adaptable.api.configApi.getAdaptableSortState();
15
+ const adaptableSortState = this.getAdaptableApi().configApi.getAdaptableSortState();
16
16
  const adaptableApi = this.getAdaptableApi();
17
- const gridSortedInfo = {
18
- adaptableSortState: adaptableSortState,
19
- adaptableApi: adaptableApi,
20
- userName: adaptableApi.optionsApi.getUserName(),
21
- adaptableId: adaptableApi.optionsApi.getAdaptableId(),
22
- };
17
+ const gridSortedInfo = Object.assign({ adaptableSortState: adaptableSortState }, this.getAdaptableApi().internalApi.buildBaseContext());
23
18
  adaptableApi.eventApi.emit('GridSorted', gridSortedInfo);
24
19
  }
25
20
  }
@@ -28,13 +23,8 @@ export class GridInternalApi extends ApiBase {
28
23
  */
29
24
  fireCellChangedEvent(cellDataChangedInfo) {
30
25
  if (this.adaptable.isReady) {
31
- const cellChangedInfo = {
32
- adaptableApi: this.adaptable.api,
33
- cellChange: cellDataChangedInfo,
34
- userName: this.adaptable.api.optionsApi.getUserName(),
35
- adaptableId: this.adaptable.api.optionsApi.getAdaptableId(),
36
- };
37
- this.adaptable.api.eventApi.emit('CellChanged', cellChangedInfo);
26
+ const cellChangedInfo = Object.assign(Object.assign({}, this.getAdaptableApi().internalApi.buildBaseContext()), { cellChange: cellDataChangedInfo });
27
+ this.getAdaptableApi().eventApi.emit('CellChanged', cellChangedInfo);
38
28
  }
39
29
  }
40
30
  /**
@@ -42,16 +32,10 @@ export class GridInternalApi extends ApiBase {
42
32
  */
43
33
  fireGridDataChangedEvent(dataRows, rowNodes, rowTrigger) {
44
34
  if (this.adaptable.isReady) {
45
- const gridDataChangedInfo = {
46
- changedAt: Date.now(),
47
- adaptableApi: this.adaptable.api,
48
- rowTrigger,
35
+ const gridDataChangedInfo = Object.assign({ changedAt: Date.now(), rowTrigger,
49
36
  dataRows,
50
- rowNodes,
51
- userName: this.adaptable.api.optionsApi.getUserName(),
52
- adaptableId: this.adaptable.api.optionsApi.getAdaptableId(),
53
- };
54
- this.adaptable.api.eventApi.emit('GridDataChanged', gridDataChangedInfo);
37
+ rowNodes }, this.getAdaptableApi().internalApi.buildBaseContext());
38
+ this.getAdaptableApi().eventApi.emit('GridDataChanged', gridDataChangedInfo);
55
39
  this.adaptable.DataService.CreateGridChangedEvent(gridDataChangedInfo);
56
40
  }
57
41
  }
@@ -96,12 +80,7 @@ export class GridInternalApi extends ApiBase {
96
80
  let shouldShowValuesCount = false;
97
81
  const showValuesCountFunction = this.getColumnFilterOptions().valuesFilterOptions.showValuesCount;
98
82
  if (showValuesCountFunction) {
99
- const columnFilterContext = {
100
- column: abColumn,
101
- adaptableApi: this.adaptable.api,
102
- userName: this.adaptable.api.optionsApi.getUserName(),
103
- adaptableId: this.adaptable.api.optionsApi.getAdaptableId(),
104
- };
83
+ const columnFilterContext = Object.assign({ column: abColumn }, this.getAdaptableApi().internalApi.buildBaseContext());
105
84
  shouldShowValuesCount = showValuesCountFunction(columnFilterContext);
106
85
  }
107
86
  if (shouldShowValuesCount) {
@@ -139,7 +118,7 @@ export class GridInternalApi extends ApiBase {
139
118
  };
140
119
  let preparedPermittedValues = undefined;
141
120
  try {
142
- const filterPermittedValuesParams = Object.assign(Object.assign({}, createBaseContext(this.adaptable.api)), { column: column, searchFilter: filter });
121
+ const filterPermittedValuesParams = Object.assign(Object.assign({}, createBaseContext(this.getAdaptableApi())), { column: column, searchFilter: filter });
143
122
  preparedPermittedValues = await (filterPermittedValues === null || filterPermittedValues === void 0 ? void 0 : filterPermittedValues.values(filterPermittedValuesParams));
144
123
  }
145
124
  catch (error) {
@@ -172,7 +151,7 @@ export class GridInternalApi extends ApiBase {
172
151
  const customSortPermittedValues = await this.getUserInterfaceApi().getCustomSortPermittedValuesForColumn(column);
173
152
  let preparedPermittedValues = undefined;
174
153
  try {
175
- const permittedValuesParams = Object.assign(Object.assign({}, createBaseContext(this.adaptable.api)), { column: column });
154
+ const permittedValuesParams = Object.assign(Object.assign({}, createBaseContext(this.getAdaptableApi())), { column: column });
176
155
  preparedPermittedValues = await (customSortPermittedValues === null || customSortPermittedValues === void 0 ? void 0 : customSortPermittedValues.values(permittedValuesParams));
177
156
  }
178
157
  catch (error) {
@@ -203,7 +182,7 @@ export class GridInternalApi extends ApiBase {
203
182
  const bulkUpdatePermittedValues = await this.getUserInterfaceApi().getBulkUpdatePermittedValuesForColumn(column);
204
183
  let preparedPermittedValues = undefined;
205
184
  try {
206
- const bulkUpdatePermittedValuesParams = Object.assign(Object.assign({}, createBaseContext(this.adaptable.api)), { column: column, gridCells: selectedGridCells });
185
+ const bulkUpdatePermittedValuesParams = Object.assign(Object.assign({}, createBaseContext(this.getAdaptableApi())), { column: column, gridCells: selectedGridCells });
207
186
  preparedPermittedValues = await (bulkUpdatePermittedValues === null || bulkUpdatePermittedValues === void 0 ? void 0 : bulkUpdatePermittedValues.values(bulkUpdatePermittedValuesParams));
208
187
  }
209
188
  catch (error) {
@@ -280,7 +259,7 @@ export class GridInternalApi extends ApiBase {
280
259
  // this does NOT into account Custom Sort - far too hard for now...
281
260
  let sortOrder = SortOrder.Asc;
282
261
  if (this.getColumnFilterOptions().valuesFilterOptions.sortValuesFilter) {
283
- let columnSort = this.adaptable.api.gridApi.getColumnSortForColumn(column.columnId);
262
+ let columnSort = this.getAdaptableApi().gridApi.getColumnSortForColumn(column.columnId);
284
263
  if (columnSort && columnSort.SortOrder == 'Desc') {
285
264
  sortOrder = SortOrder.Desc;
286
265
  }
@@ -315,13 +294,7 @@ export class GridInternalApi extends ApiBase {
315
294
  let editLookUpValues = editLookUpItem.values;
316
295
  // first do the function then get hardcoded items
317
296
  if (editLookUpValues != null && typeof editLookUpValues === 'function') {
318
- const editLookUpContext = {
319
- adaptableApi: this.adaptable.api,
320
- userName: this.getOptions().userName,
321
- adaptableId: this.getOptions().adaptableId,
322
- column: column,
323
- gridCell,
324
- };
297
+ const editLookUpContext = Object.assign(Object.assign({}, this.getAdaptableApi().internalApi.buildBaseContext()), { column: column, gridCell });
325
298
  return editLookUpValues(editLookUpContext);
326
299
  }
327
300
  else {
@@ -41,6 +41,7 @@ export declare class LayoutInternalApi extends ApiBase {
41
41
  ColumnFilters: boolean;
42
42
  GridFilter: boolean;
43
43
  ColumnSorts: boolean;
44
+ RowSummaries: boolean;
44
45
  };
45
46
  updateCurrentDraftLayout(layout: Layout): void;
46
47
  hasLayoutSpecificObjects(): boolean;
@@ -13,19 +13,11 @@ export class LayoutInternalApi extends ApiBase {
13
13
  * @param newState Layout State after change
14
14
  */
15
15
  fireLayoutChangedEvent(trigger, oldSate, newState, skipEqualityCheck) {
16
- const adaptableApi = this.getAdaptableApi();
17
- const layoutChangedInfo = {
18
- adaptableApi: adaptableApi,
19
- actionName: trigger,
20
- oldLayoutState: oldSate,
21
- newLayoutState: newState,
22
- userName: adaptableApi.optionsApi.getUserName(),
23
- adaptableId: adaptableApi.optionsApi.getAdaptableId(),
24
- };
16
+ const layoutChangedInfo = Object.assign({ actionName: trigger, oldLayoutState: oldSate, newLayoutState: newState }, this.getAdaptableApi().internalApi.buildBaseContext());
25
17
  if (!skipEqualityCheck && isEqual(oldSate, newState)) {
26
18
  return;
27
19
  }
28
- this.adaptable.api.eventApi.emit('LayoutChanged', layoutChangedInfo);
20
+ this.getAdaptableApi().eventApi.emit('LayoutChanged', layoutChangedInfo);
29
21
  }
30
22
  /**
31
23
  * Compares 2 Layouts for equality
@@ -66,7 +58,7 @@ export class LayoutInternalApi extends ApiBase {
66
58
  if (!layoutState.Layouts || !isLayoutDefined(DEFAULT_LAYOUT)) {
67
59
  // augogroup columns are not in columns list
68
60
  // the code that adds column ok grid state explicitly ignores autoColumns
69
- const allGridColumns = this.adaptable.getAgGridAllGridColumns();
61
+ const allGridColumns = this.getAdaptableApi().gridApi.getAllGridColumns();
70
62
  let defaultLayout = ObjectFactory.CreateEmptyLayout({
71
63
  Name: DEFAULT_LAYOUT,
72
64
  Columns: defaultLayoutColumns.map((c) => c.columnId),
@@ -110,6 +102,7 @@ export class LayoutInternalApi extends ApiBase {
110
102
  * This takes into account the data-source.
111
103
  */
112
104
  getLayoutSupportedFeatures() {
105
+ var _a, _b;
113
106
  const layoutSupportedFeatures = {
114
107
  RowGroupedColumns: true,
115
108
  AggregationColumns: true,
@@ -117,6 +110,7 @@ export class LayoutInternalApi extends ApiBase {
117
110
  ColumnFilters: true,
118
111
  ColumnSorts: true,
119
112
  GridFilter: true,
113
+ RowSummaries: true,
120
114
  };
121
115
  if (this.getGridApi().getAgGridRowModelType() === 'viewport') {
122
116
  layoutSupportedFeatures.RowGroupedColumns = false;
@@ -130,6 +124,9 @@ export class LayoutInternalApi extends ApiBase {
130
124
  if (this.getEntitlementApi().getEntitlementAccessLevelForModule(GridFilterModuleId) == 'Hidden') {
131
125
  layoutSupportedFeatures.GridFilter = false;
132
126
  }
127
+ if (((_b = (_a = this.adaptable) === null || _a === void 0 ? void 0 : _a.getAgGridRowModelType) === null || _b === void 0 ? void 0 : _b.call(_a)) !== 'clientSide') {
128
+ layoutSupportedFeatures.RowSummaries = false;
129
+ }
133
130
  return layoutSupportedFeatures;
134
131
  }
135
132
  updateCurrentDraftLayout(layout) {
@@ -155,14 +152,8 @@ export class LayoutInternalApi extends ApiBase {
155
152
  if ((layoutTagOptions === null || layoutTagOptions === void 0 ? void 0 : layoutTagOptions.autoCheckTagsForLayouts) == true) {
156
153
  return ArrayExtensions.IsNullOrEmpty(object.Tags) ? true : (_a = object.Tags) === null || _a === void 0 ? void 0 : _a.includes(layout.Name);
157
154
  }
158
- const context = {
159
- adaptableObject: object,
160
- module,
161
- layout,
162
- adaptableApi: this.getAdaptableApi(),
163
- userName: this.getOptions().userName,
164
- adaptableId: this.getOptions().adaptableId,
165
- };
155
+ const context = Object.assign({ adaptableObject: object, module,
156
+ layout }, this.getAdaptableApi().internalApi.buildBaseContext());
166
157
  return layoutTagOptions === null || layoutTagOptions === void 0 ? void 0 : layoutTagOptions.isObjectAvailableInLayout(context);
167
158
  }
168
159
  showLayoutNotAssociatedObjects() {