@adaptabletools/adaptable 12.0.7 → 12.1.0-canary.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (133) hide show
  1. package/base.css +231 -120
  2. package/bundle.cjs.js +142 -114
  3. package/index.css +268 -130
  4. package/package.json +3 -3
  5. package/publishTimestamp.d.ts +1 -1
  6. package/publishTimestamp.js +1 -1
  7. package/src/AdaptableInterfaces/IAdaptable.d.ts +1 -0
  8. package/src/AdaptableOptions/SettingsPanelOptions.d.ts +1 -2
  9. package/src/Api/ColumnApi.d.ts +5 -0
  10. package/src/Api/EventApi.d.ts +13 -1
  11. package/src/Api/Events/AdaptableStateReloaded.d.ts +23 -0
  12. package/src/Api/Events/AdaptableStateReloaded.js +2 -0
  13. package/src/Api/FilterApi.d.ts +15 -1
  14. package/src/Api/Implementation/CalculatedColumnApiImpl.js +2 -3
  15. package/src/Api/Implementation/ColumnApiImpl.d.ts +2 -0
  16. package/src/Api/Implementation/ColumnApiImpl.js +10 -0
  17. package/src/Api/Implementation/ConfigApiImpl.js +11 -0
  18. package/src/Api/Implementation/FilterApiImpl.d.ts +6 -1
  19. package/src/Api/Implementation/FilterApiImpl.js +58 -0
  20. package/src/Api/Implementation/LayoutApiImpl.d.ts +2 -1
  21. package/src/Api/Implementation/LayoutApiImpl.js +8 -16
  22. package/src/Api/Implementation/ScheduleApiImpl.js +4 -1
  23. package/src/PredefinedConfig/Common/AdaptableIcon.d.ts +1 -1
  24. package/src/PredefinedConfig/Common/AdaptablePredicate.d.ts +7 -2
  25. package/src/PredefinedConfig/Common/CellSummary.d.ts +2 -6
  26. package/src/PredefinedConfig/LayoutState.d.ts +2 -0
  27. package/src/PredefinedConfig/ScheduleState.d.ts +4 -0
  28. package/src/Redux/Store/AdaptableStore.js +12 -6
  29. package/src/Strategy/AdaptableModuleBase.d.ts +2 -0
  30. package/src/Strategy/AdaptableModuleBase.js +6 -0
  31. package/src/Strategy/AlertModule.js +2 -2
  32. package/src/Strategy/CalculatedColumnModule.d.ts +2 -0
  33. package/src/Strategy/CalculatedColumnModule.js +4 -0
  34. package/src/Strategy/CellSummaryModule.js +4 -3
  35. package/src/Strategy/CustomSortModule.js +2 -2
  36. package/src/Strategy/ExportModule.js +2 -2
  37. package/src/Strategy/FlashingCellModule.js +3 -3
  38. package/src/Strategy/FormatColumnModule.js +2 -2
  39. package/src/Strategy/LayoutModule.js +10 -17
  40. package/src/Strategy/ShortcutModule.js +1 -1
  41. package/src/Strategy/TeamSharingModule.js +4 -2
  42. package/src/Strategy/Utilities/{getAlertBehaviourViewItems.d.ts → Alert/getAlertBehaviourViewItems.d.ts} +0 -0
  43. package/src/Strategy/Utilities/{getAlertBehaviourViewItems.js → Alert/getAlertBehaviourViewItems.js} +2 -2
  44. package/src/Strategy/Utilities/{getAlertPreviewViewItems.d.ts → Alert/getAlertPreviewViewItems.d.ts} +2 -2
  45. package/src/Strategy/Utilities/{getAlertPreviewViewItems.js → Alert/getAlertPreviewViewItems.js} +2 -2
  46. package/src/Strategy/Utilities/{getCustomSortColumnViewItems.d.ts → CustomSort/getCustomSortColumnViewItems.d.ts} +1 -1
  47. package/src/Strategy/Utilities/{getCustomSortColumnViewItems.js → CustomSort/getCustomSortColumnViewItems.js} +0 -0
  48. package/src/Strategy/Utilities/{getCustomSortSortOrderViewItems.d.ts → CustomSort/getCustomSortSortOrderViewItems.d.ts} +1 -1
  49. package/src/Strategy/Utilities/{getCustomSortSortOrderViewItems.js → CustomSort/getCustomSortSortOrderViewItems.js} +0 -0
  50. package/src/Strategy/Utilities/Export/getExportColumnsViewItems.d.ts +3 -0
  51. package/src/Strategy/Utilities/{getExportColumnsViewItems.js → Export/getExportColumnsViewItems.js} +0 -0
  52. package/src/Strategy/Utilities/{getExportRowsViewItems.d.ts → Export/getExportRowsViewItems.d.ts} +0 -0
  53. package/src/Strategy/Utilities/{getExportRowsViewItems.js → Export/getExportRowsViewItems.js} +0 -0
  54. package/src/Strategy/Utilities/{getFlashingCellDurationViewItems.d.ts → FlashingCell/getFlashingCellDurationViewItems.d.ts} +1 -1
  55. package/src/Strategy/Utilities/{getFlashingCellDurationViewItems.js → FlashingCell/getFlashingCellDurationViewItems.js} +0 -0
  56. package/src/Strategy/Utilities/{getFlashingCellStyleViewItems.d.ts → FlashingCell/getFlashingCellStyleViewItems.d.ts} +1 -1
  57. package/src/Strategy/Utilities/{getFlashingCellStyleViewItems.js → FlashingCell/getFlashingCellStyleViewItems.js} +1 -1
  58. package/src/Strategy/Utilities/{getFlashingTargetViewItems.d.ts → FlashingCell/getFlashingTargetViewItems.d.ts} +1 -1
  59. package/src/Strategy/Utilities/{getFlashingTargetViewItems.js → FlashingCell/getFlashingTargetViewItems.js} +0 -0
  60. package/src/Strategy/Utilities/{getFormatColumnSettingsViewItems.d.ts → FormatColumn/getFormatColumnSettingsViewItems.d.ts} +1 -1
  61. package/src/Strategy/Utilities/{getFormatColumnSettingsViewItems.js → FormatColumn/getFormatColumnSettingsViewItems.js} +0 -0
  62. package/src/Strategy/Utilities/{getFormatColumnStyleViewItems.d.ts → FormatColumn/getFormatColumnStyleViewItems.d.ts} +0 -0
  63. package/src/Strategy/Utilities/{getFormatColumnStyleViewItems.js → FormatColumn/getFormatColumnStyleViewItems.js} +1 -1
  64. package/src/Strategy/Utilities/Layout/getLayoutFilterViewItems.d.ts +5 -0
  65. package/src/Strategy/Utilities/Layout/getLayoutFilterViewItems.js +24 -0
  66. package/src/Strategy/Utilities/Layout/getLayoutSortViewItems.d.ts +5 -0
  67. package/src/Strategy/Utilities/Layout/getLayoutSortViewItems.js +14 -0
  68. package/src/Strategy/Utilities/{getShortcutSettingsViewItems.d.ts → Shortcut/getShortcutSettingsViewItems.d.ts} +1 -1
  69. package/src/Strategy/Utilities/{getShortcutSettingsViewItems.js → Shortcut/getShortcutSettingsViewItems.js} +0 -0
  70. package/src/Utilities/ExpressionFunctions/aggregatedScalarExpressionFunctions.d.ts +4 -2
  71. package/src/Utilities/ExpressionFunctions/aggregatedScalarExpressionFunctions.js +144 -0
  72. package/src/Utilities/ExpressionFunctions/scalarAggregationHelper.d.ts +1 -1
  73. package/src/Utilities/ExpressionFunctions/scalarAggregationHelper.js +6 -6
  74. package/src/Utilities/ObjectFactory.d.ts +1 -1
  75. package/src/Utilities/ObjectFactory.js +12 -11
  76. package/src/Utilities/Services/CalculatedColumnExpressionService.js +50 -11
  77. package/src/View/AdaptableView.js +3 -2
  78. package/src/View/Components/AdaptableObjectList/AdaptableObjectList.d.ts +27 -1
  79. package/src/View/Components/AdaptableObjectList/AdaptableObjectList.js +46 -36
  80. package/src/View/Components/FilterForm/ListBoxFilterForm.js +5 -4
  81. package/src/View/Components/Popups/AdaptablePopup/AdaptablePopupModuleView.js +4 -2
  82. package/src/View/Components/Popups/AdaptableToaster.js +16 -33
  83. package/src/View/Components/ValueSelector/index.d.ts +10 -1
  84. package/src/View/Components/ValueSelector/index.js +16 -8
  85. package/src/View/FormatColumn/FormatColumnSummary.js +2 -1
  86. package/src/View/Layout/Wizard/LayoutEditor/index.js +1 -1
  87. package/src/View/Layout/Wizard/LayoutWizard.d.ts +4 -7
  88. package/src/View/Layout/Wizard/LayoutWizard.js +127 -13
  89. package/src/View/Layout/Wizard/sections/AggregationsSection.d.ts +8 -0
  90. package/src/View/Layout/Wizard/sections/AggregationsSection.js +102 -0
  91. package/src/View/Layout/Wizard/sections/ColumnsSection.d.ts +8 -0
  92. package/src/View/Layout/Wizard/sections/ColumnsSection.js +226 -0
  93. package/src/View/Layout/Wizard/sections/FilterSection.d.ts +8 -0
  94. package/src/View/Layout/Wizard/sections/FilterSection.js +35 -0
  95. package/src/View/Layout/Wizard/sections/PivotColumnsSection.d.ts +8 -0
  96. package/src/View/Layout/Wizard/sections/PivotColumnsSection.js +39 -0
  97. package/src/View/Layout/Wizard/sections/RowGroupingSection.d.ts +8 -0
  98. package/src/View/Layout/Wizard/sections/RowGroupingSection.js +46 -0
  99. package/src/View/Layout/Wizard/sections/SettingsSection.d.ts +8 -0
  100. package/src/View/Layout/Wizard/sections/SettingsSection.js +51 -0
  101. package/src/View/Layout/Wizard/sections/SortSection.d.ts +8 -0
  102. package/src/View/Layout/Wizard/sections/SortSection.js +69 -0
  103. package/src/View/Layout/Wizard/sections/Utilities.d.ts +2 -0
  104. package/src/View/Layout/Wizard/sections/Utilities.js +5 -0
  105. package/src/View/Schedule/Wizard/ScheduleSettingsWizard/ScheduleSettingsReminder.js +7 -2
  106. package/src/View/Schedule/Wizard/ScheduleSettingsWizard/ScheduleSettingsReport.js +2 -2
  107. package/src/View/Schedule/Wizard/ScheduleSettingsWizard/ScheduleSettingsSummary.js +4 -0
  108. package/src/View/StatusBar/StatusBarPanel.js +1 -1
  109. package/src/View/Wizard/OnePageAdaptableWizard.d.ts +1 -0
  110. package/src/View/Wizard/OnePageAdaptableWizard.js +3 -3
  111. package/src/View/Wizard/OnePageWizards.d.ts +1 -0
  112. package/src/View/Wizard/OnePageWizards.js +1 -1
  113. package/src/agGrid/Adaptable.d.ts +3 -0
  114. package/src/agGrid/Adaptable.js +47 -10
  115. package/src/agGrid/agGridHelper.js +11 -1
  116. package/src/components/ExpressionEditor/editorButtonsAggregatedScalar.js +5 -0
  117. package/src/components/ExpressionEditor/index.js +1 -1
  118. package/src/components/Tabs/index.js +4 -2
  119. package/src/components/icons/arrow-down-long.d.ts +3 -0
  120. package/src/components/icons/arrow-down-long.js +7 -0
  121. package/src/components/icons/arrow-up-long.d.ts +3 -0
  122. package/src/components/icons/arrow-up-long.js +7 -0
  123. package/src/components/icons/index.js +4 -0
  124. package/src/metamodel/adaptable.metamodel.d.ts +9 -0
  125. package/src/metamodel/adaptable.metamodel.js +1 -1
  126. package/src/types.d.ts +1 -1
  127. package/version.d.ts +1 -1
  128. package/version.js +1 -1
  129. package/src/Strategy/Utilities/getExportColumnsViewItems.d.ts +0 -3
  130. package/src/View/Layout/LayoutEntityRow.d.ts +0 -13
  131. package/src/View/Layout/LayoutEntityRow.js +0 -23
  132. package/src/View/Layout/LayoutPopup.d.ts +0 -32
  133. package/src/View/Layout/LayoutPopup.js +0 -153
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adaptabletools/adaptable",
3
- "version": "12.0.7",
3
+ "version": "12.1.0-canary.0",
4
4
  "description": "Powerful data-agnostic HTML5 datagrid add-on that sits on top of an underlying grid component and provides all the rich functionality that advanced users expect from their DataGrids and Data Tables",
5
5
  "keywords": [
6
6
  "web-components",
@@ -31,7 +31,7 @@
31
31
  "main": "agGrid.js",
32
32
  "typings": "types.d.ts",
33
33
  "dependencies": {
34
- "@infinite-table/infinite-react": "0.3.12",
34
+ "@infinite-table/infinite-react": "0.3.21",
35
35
  "date-fns": "2.22.1",
36
36
  "debug": "^4.3.1",
37
37
  "isomorphic-fetch": "^2.2.1",
@@ -45,7 +45,7 @@
45
45
  "react-dom": "^16.8.0 || ^17.0.0",
46
46
  "react-redux": "7.2.4",
47
47
  "react-remove-scroll": "2.4.2",
48
- "react-toastify": "8.1.0",
48
+ "react-toastify": "9.0.7",
49
49
  "rebass": "^3.2.2",
50
50
  "redux": "4.0.5",
51
51
  "rxjs": "6.6.7",
@@ -1,2 +1,2 @@
1
- declare const _default: 1657722189050;
1
+ declare const _default: 1658482740823;
2
2
  export default _default;
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.default = 1657722189050;
3
+ exports.default = 1658482740823;
@@ -219,6 +219,7 @@ export interface IAdaptable {
219
219
  showQuickFilter(): void;
220
220
  hideQuickFilter(): void;
221
221
  isQuickFilterAvailable(): boolean;
222
+ setAgQuickSearch(query: string): void;
222
223
  getAgGridLightThemeName(): string;
223
224
  getAgGridCurrentThemeName(): string;
224
225
  applyAdaptableTheme(theme: AdaptableTheme | string): void;
@@ -10,8 +10,7 @@ export interface SettingsPanelOptions {
10
10
  */
11
11
  title?: string;
12
12
  /**
13
- * Icon for Settings Panel Can be `ConfigurationIcon`, `ApplicationIcon` or a custom Icon
14
- *
13
+ * Settings Panel Icon: `ConfigurationIcon`, `ApplicationIcon` or custom Icon
15
14
  * @defaultValue `ConfigurationIcon`
16
15
  */
17
16
  icon?: 'ConfigurationIcon' | 'ApplicationIcon' | AdaptableIcon;
@@ -38,6 +38,10 @@ export interface ColumnApi {
38
38
  * Returns all Sortable Columns
39
39
  */
40
40
  getSortableColumns(): AdaptableColumn[];
41
+ /**
42
+ * Returns all Sortable Columns
43
+ */
44
+ getFiltrableColumns(): AdaptableColumn[];
41
45
  /**
42
46
  * Returns all Groupable Columns
43
47
  */
@@ -299,4 +303,5 @@ export interface ColumnApi {
299
303
  * @param columnId Column to Check
300
304
  */
301
305
  isActionRowButtonColumn(columnId: string): boolean;
306
+ getDefaultAggFunc(columnId: string): string;
302
307
  }
@@ -16,6 +16,7 @@ import { GridDataChangedInfo } from './Events/GridDataChanged';
16
16
  import { TeamSharingEntityChangedInfo } from './Events/TeamSharingEntityChanged';
17
17
  import { ActionRowSubmittedInfo } from './Events/ActionRowSubmitted';
18
18
  import { DataSetSelectedInfo } from './Events/DataSetSelected';
19
+ import { AdaptableStateReloadedInfo } from './Events/AdaptableStateReloaded';
19
20
  /**
20
21
  * Responsible for publishing the many Events that AdapTable fires
21
22
  */
@@ -183,6 +184,17 @@ export interface EventApi {
183
184
  * Unsubscribe from AdaptableStateChanged
184
185
  */
185
186
  off(eventName: 'AdaptableStateChanged', callback: (adaptableStateChangedInfo: AdaptableStateChangedInfo) => void): void;
187
+ /**
188
+ * Event fired whenever **Adaptable State is reloaded**
189
+ * @param eventName AdaptableStateReloaded
190
+ * @param callback AdaptableStateReloadedInfo
191
+ * @returns the unsubscribe function
192
+ */
193
+ on(eventName: 'AdaptableStateReloaded', callback: (adaptableStateReloadedInfo: AdaptableStateReloadedInfo) => void): () => void;
194
+ /**
195
+ * Unsubscribe from AdaptableStateReloaded
196
+ */
197
+ off(eventName: 'AdaptableStateReloaded', callback: (adaptableStateReloadedInfo: AdaptableStateReloadedInfo) => void): void;
186
198
  /**
187
199
  * Event fired whenever **a change occurs relating to live reports / data**
188
200
  * Used in conjunction with AdapTable's partners OpenFin, ipushpull or Glue42
@@ -252,6 +264,6 @@ export interface EventApi {
252
264
  emitSync(eventName: 'DashboardChanged', data?: any): any[];
253
265
  emitSync(eventName: 'FlashingCellDisplayed', data?: any): any[];
254
266
  emitSync(eventName: 'AdaptableDestroy'): any[];
255
- emit(eventName: 'AdaptableReady' | 'AlertFired' | 'CheckboxColumnClicked' | 'CustomToolbarConfigured' | 'AdaptableStateChanged' | 'DashboardChanged' | 'CellChanged' | 'GridDataChanged' | 'LayoutChanged' | 'LiveDataChanged' | 'SearchChanged' | 'SelectionChanged' | 'SystemStatusMessageDisplayed' | 'TeamSharingEntityChanged' | 'ThemeChanged' | 'FDC3MessageSent' | 'ActionRowSubmitted' | 'DataSetSelected', data?: any): Promise<any>;
267
+ emit(eventName: 'AdaptableReady' | 'AlertFired' | 'CheckboxColumnClicked' | 'CustomToolbarConfigured' | 'AdaptableStateChanged' | 'AdaptableStateReloaded' | 'DashboardChanged' | 'CellChanged' | 'GridDataChanged' | 'LayoutChanged' | 'LiveDataChanged' | 'SearchChanged' | 'SelectionChanged' | 'SystemStatusMessageDisplayed' | 'TeamSharingEntityChanged' | 'ThemeChanged' | 'FDC3MessageSent' | 'ActionRowSubmitted' | 'DataSetSelected', data?: any): Promise<any>;
256
268
  destroy(): void;
257
269
  }
@@ -0,0 +1,23 @@
1
+ import { AdaptablePersistentState } from '../../PredefinedConfig/AdaptableState';
2
+ import { BaseEventInfo } from './BaseEventInfo';
3
+ /**
4
+ * Object returned by the `AdaptableStateReloaded` event
5
+ */
6
+ export interface AdaptableStateReloadedInfo extends BaseEventInfo {
7
+ /**
8
+ * Current AdapTableId
9
+ */
10
+ adaptableId: string;
11
+ /**
12
+ * Current Adaptable State Key
13
+ */
14
+ adaptableStateKey: string;
15
+ /**
16
+ * Adaptable State before the reload
17
+ */
18
+ oldState: AdaptablePersistentState;
19
+ /**
20
+ * Adaptable State after the reload
21
+ */
22
+ newState: AdaptablePersistentState;
23
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,6 +1,8 @@
1
1
  import { AdaptableColumn, ColumnFilter, GridCell, SystemFilterPredicateIds } from '../types';
2
- import { AdaptablePredicateDef } from '../PredefinedConfig/Common/AdaptablePredicate';
2
+ import * as Redux from 'redux';
3
+ import { ColumnFilterDef, AdaptablePredicateDef } from '../PredefinedConfig/Common/AdaptablePredicate';
3
4
  import { RowNode } from '@ag-grid-community/all-modules';
5
+ import { LayoutColumnFilterAction } from '../Redux/ActionsReducers/LayoutRedux';
4
6
  /**
5
7
  * Provides run-time access to Filter section of Adaptable State.
6
8
  */
@@ -46,6 +48,11 @@ export interface FilterApi {
46
48
  * @returns column filters
47
49
  */
48
50
  getColumnFilters(): ColumnFilter[];
51
+ /**
52
+ * Retrieves the Column Filter for the specified Column.
53
+ * @param columnId Column ID to lookup
54
+ */
55
+ getColumnFilter(columnId: string): ColumnFilter | undefined;
49
56
  /**
50
57
  * Retrieves all Column Filters in a given Layout
51
58
  * @param layoutName Layout to retrieve Column Filters for
@@ -120,4 +127,11 @@ export interface FilterApi {
120
127
  * - filter predicate has inputs with values
121
128
  */
122
129
  isFilterActive(columnFilter: ColumnFilter): boolean;
130
+ getColumnFilterDefs(): ColumnFilterDef[];
131
+ /**
132
+ * Checks if the filter action should trigger grid filtering.
133
+ *
134
+ * @param action Filtering Action
135
+ */
136
+ shouldNewColumnFilterTriggerGridFiltering(action: LayoutColumnFilterAction | Redux.Action): boolean;
123
137
  }
@@ -10,11 +10,10 @@ class CalculatedColumnApiImpl extends ApiBase_1.ApiBase {
10
10
  return this.getAdaptableState().CalculatedColumn;
11
11
  }
12
12
  getAllCalculatedColumn() {
13
- return this.getCalculatedColumnState().CalculatedColumns;
13
+ return this.getCalculatedColumnState().CalculatedColumns || [];
14
14
  }
15
15
  getCalculatedColumnById(id) {
16
- var _a;
17
- return (_a = this.getAllCalculatedColumn()) === null || _a === void 0 ? void 0 : _a.find((column) => (column === null || column === void 0 ? void 0 : column.Uuid) === id);
16
+ return this.getAllCalculatedColumn().find((column) => (column === null || column === void 0 ? void 0 : column.Uuid) === id);
18
17
  }
19
18
  addCalculatedColumn(calculatedColumn) {
20
19
  this.addUidToAdaptableObject(calculatedColumn);
@@ -46,6 +46,7 @@ export declare class ColumnApiImpl extends ApiBase implements ColumnApi {
46
46
  getDateColumns(): AdaptableColumn[];
47
47
  getBooleanColumns(): AdaptableColumn[];
48
48
  getSortableColumns(): AdaptableColumn[];
49
+ getFiltrableColumns(): AdaptableColumn[];
49
50
  getGroupableColumns(): AdaptableColumn[];
50
51
  getPivotableColumns(): AdaptableColumn[];
51
52
  getAggregetableColumns(): AdaptableColumn[];
@@ -68,4 +69,5 @@ export declare class ColumnApiImpl extends ApiBase implements ColumnApi {
68
69
  usesAdaptableQuickFilter(columnId: string): boolean;
69
70
  isColumnReferencedInExpression(columnId: string, expression: string): boolean;
70
71
  isActionRowButtonColumn(columnId: string): boolean;
72
+ getDefaultAggFunc(columnId: string): string;
71
73
  }
@@ -251,6 +251,9 @@ class ColumnApiImpl extends ApiBase_1.ApiBase {
251
251
  getSortableColumns() {
252
252
  return this.getColumns().filter((c) => c.sortable);
253
253
  }
254
+ getFiltrableColumns() {
255
+ return this.getColumns().filter((c) => c.filterable);
256
+ }
254
257
  getGroupableColumns() {
255
258
  return this.getColumns().filter((c) => c.groupable);
256
259
  }
@@ -410,5 +413,12 @@ class ColumnApiImpl extends ApiBase_1.ApiBase {
410
413
  isActionRowButtonColumn(columnId) {
411
414
  return columnId === GeneralConstants_1.ADAPTABLE_ROW_ACTION_BUTTONS;
412
415
  }
416
+ getDefaultAggFunc(columnId) {
417
+ var _a, _b, _c;
418
+ const abColumn = this.getColumnFromId(columnId);
419
+ const availableAggregationFunctions = abColumn.availableAggregationFunctions;
420
+ const agColumn = (_b = (_a = this.getAgGridColumnForAdaptableColumn(columnId)) === null || _a === void 0 ? void 0 : _a.getColDef) === null || _b === void 0 ? void 0 : _b.call(_a);
421
+ return (_c = agColumn === null || agColumn === void 0 ? void 0 : agColumn.defaultAggFunc) !== null && _c !== void 0 ? _c : availableAggregationFunctions[0];
422
+ }
413
423
  }
414
424
  exports.ColumnApiImpl = ColumnApiImpl;
@@ -48,6 +48,7 @@ class ConfigApiImpl extends ApiBase_1.ApiBase {
48
48
  reloadPredefinedConfig(newPredefinedConfig) {
49
49
  var _a;
50
50
  const adaptableOptions = this.adaptable.adaptableOptions;
51
+ const oldState = this.getPersistedState();
51
52
  const clearStateFn = ((_a = adaptableOptions.stateOptions) === null || _a === void 0 ? void 0 : _a.clearState) ||
52
53
  (() => {
53
54
  localStorage.removeItem(adaptableOptions.adaptableStateKey);
@@ -63,6 +64,16 @@ class ConfigApiImpl extends ApiBase_1.ApiBase {
63
64
  this.setAdaptableStateKey(adaptableOptions.adaptableStateKey, {
64
65
  predefinedConfig: newPredefinedConfig || adaptableOptions.predefinedConfig,
65
66
  flushCurrentState: false,
67
+ }).then(() => {
68
+ const newState = this.getPersistedState();
69
+ const stateReloadedInfo = {
70
+ oldState,
71
+ newState,
72
+ adaptableStateKey: adaptableOptions.adaptableStateKey,
73
+ adaptableId: adaptableOptions.adaptableId,
74
+ adaptableApi: this.adaptable.api,
75
+ };
76
+ this.adaptable.api.eventApi.emit('AdaptableStateReloaded', stateReloadedInfo);
66
77
  });
67
78
  });
68
79
  });
@@ -1,6 +1,8 @@
1
+ import * as Redux from 'redux';
2
+ import * as LayoutRedux from '../../Redux/ActionsReducers/LayoutRedux';
1
3
  import { ApiBase } from './ApiBase';
2
4
  import { FilterApi } from '../FilterApi';
3
- import { AdaptablePredicateDef } from '../../PredefinedConfig/Common/AdaptablePredicate';
5
+ import { AdaptablePredicateDef, ColumnFilterDef } from '../../PredefinedConfig/Common/AdaptablePredicate';
4
6
  import { AdaptableColumn } from '../../PredefinedConfig/Common/AdaptableColumn';
5
7
  import { ColumnFilter, GridCell, SystemFilterPredicateIds } from '../../types';
6
8
  import { RowNode } from '@ag-grid-community/all-modules';
@@ -15,6 +17,8 @@ export declare class FilterApiImpl extends ApiBase implements FilterApi {
15
17
  isQuickFilterAvailable(): boolean;
16
18
  isQuickFilterVisible(): boolean;
17
19
  getColumnFilters(): ColumnFilter[];
20
+ getColumnFilter(columnId: string): ColumnFilter | undefined;
21
+ getColumnFilterDefs(): ColumnFilterDef[];
18
22
  getColumnFiltersForLayout(layoutName: string): ColumnFilter[];
19
23
  setColumnFilter(columnFilters: ColumnFilter[]): ColumnFilter[] | null;
20
24
  clearColumnFilter(columnFilter: ColumnFilter): void;
@@ -37,4 +41,5 @@ export declare class FilterApiImpl extends ApiBase implements FilterApi {
37
41
  * @param filter
38
42
  */
39
43
  isFilterActive(filter: ColumnFilter): boolean;
44
+ shouldNewColumnFilterTriggerGridFiltering(action: LayoutRedux.LayoutColumnFilterAction | Redux.Action): boolean;
40
45
  }
@@ -47,6 +47,21 @@ class FilterApiImpl extends ApiBase_1.ApiBase {
47
47
  const currentLayout = this.adaptable.api.layoutApi.getCurrentLayout();
48
48
  return (_a = currentLayout.ColumnFilters) !== null && _a !== void 0 ? _a : [];
49
49
  }
50
+ getColumnFilter(columnId) {
51
+ return this.getColumnFilters().find((columnFilter) => columnFilter.ColumnId == columnId);
52
+ }
53
+ getColumnFilterDefs() {
54
+ const filters = this.getColumnFilters();
55
+ return filters.map((columnFilter) => {
56
+ const column = this.getAdaptableApi().columnApi.getColumnFromId(columnFilter.ColumnId);
57
+ const predicate = this.getAdaptableApi().predicateApi.getPredicateDefById(columnFilter.Predicate.PredicateId);
58
+ return {
59
+ predicate,
60
+ dataType: column === null || column === void 0 ? void 0 : column.dataType,
61
+ columnFilter: columnFilter,
62
+ };
63
+ });
64
+ }
50
65
  getColumnFiltersForLayout(layoutName) {
51
66
  var _a;
52
67
  const layout = this.adaptable.api.layoutApi.getLayoutByName(layoutName);
@@ -209,5 +224,48 @@ class FilterApiImpl extends ApiBase_1.ApiBase {
209
224
  });
210
225
  return allInputsHaveValues;
211
226
  }
227
+ shouldNewColumnFilterTriggerGridFiltering(action) {
228
+ var _a, _b;
229
+ // trigger filter change only:
230
+ // - new -> new filter is active
231
+ // - clear -> previous filters was active
232
+ // - clearAll -> a filter was active
233
+ // - edit -> same => input change
234
+ // - edit -> different & new is active
235
+ // - edit -> different & old was active
236
+ // - set -> new filter is active
237
+ const isNewAndActive = action.type === LayoutRedux.LAYOUT_COLUMN_FILTER_ADD &&
238
+ this.adaptable.api.filterApi.isFilterActive(action.columnFilter);
239
+ const isClearAndPreviousWasActive = action.type === LayoutRedux.LAYOUT_COLUMN_FILTER_CLEAR &&
240
+ this.adaptable.api.filterApi.isFilterActive(action.columnFilter);
241
+ const isClearAllAtLeastOneActiveFilter = action.type === LayoutRedux.LAYOUT_COLUMN_FILTER_CLEAR_ALL &&
242
+ this.adaptable.api.filterApi
243
+ .getColumnFilters()
244
+ .some((columnFilter) => this.adaptable.api.filterApi.isFilterActive(columnFilter));
245
+ let isEditTrigger = false;
246
+ if (action.type === LayoutRedux.LAYOUT_COLUMN_FILTER_EDIT) {
247
+ const newFilter = action.columnFilter;
248
+ const previous = this.adaptable.api.filterApi.getColumnFilter(newFilter.ColumnId);
249
+ // same filter edit, so always trigger
250
+ 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)) {
251
+ isEditTrigger = true;
252
+ // new filter is active
253
+ }
254
+ else if (this.adaptable.api.filterApi.isFilterActive(newFilter)) {
255
+ isEditTrigger = true;
256
+ }
257
+ else if (this.adaptable.api.filterApi.isFilterActive(previous)) {
258
+ // previous filter was active
259
+ isEditTrigger = true;
260
+ }
261
+ }
262
+ const isSetAndActive = action.type === LayoutRedux.LAYOUT_COLUMN_FILTER_SET &&
263
+ this.adaptable.api.filterApi.isFilterActive(action.columnFilter);
264
+ return (isNewAndActive ||
265
+ isClearAndPreviousWasActive ||
266
+ isClearAllAtLeastOneActiveFilter ||
267
+ isEditTrigger ||
268
+ isSetAndActive);
269
+ }
212
270
  }
213
271
  exports.FilterApiImpl = FilterApiImpl;
@@ -3,6 +3,7 @@ import { LayoutApi } from '../LayoutApi';
3
3
  import { LayoutState, Layout } from '../../PredefinedConfig/LayoutState';
4
4
  import { AdaptableColumn } from '../../PredefinedConfig/Common/AdaptableColumn';
5
5
  import { ColumnSort } from '../../PredefinedConfig/Common/ColumnSort';
6
+ import { ModuleParams } from '../../View/Components/SharedProps/ModuleViewPopupProps';
6
7
  export declare class LayoutApiImpl extends ApiBase implements LayoutApi {
7
8
  getLayoutState(): LayoutState;
8
9
  shouldAutoSaveLayout: (layout?: Layout) => boolean;
@@ -34,7 +35,7 @@ export declare class LayoutApiImpl extends ApiBase implements LayoutApi {
34
35
  createDefaultLayoutIfNeeded(): Layout | null;
35
36
  showChangeColumnCaption(column: AdaptableColumn): void;
36
37
  showLayoutPopup(): void;
37
- showLayoutEditor(layoutName?: string, action?: string): void;
38
+ showLayoutEditor(layoutName?: string, action?: ModuleParams['action']): void;
38
39
  isCurrentLayoutReadOnly(): boolean;
39
40
  deleteLayout(layout: Layout): void;
40
41
  deleteLayoutByName(layoutName: string): void;
@@ -5,7 +5,6 @@ const tslib_1 = require("tslib");
5
5
  const LayoutRedux = tslib_1.__importStar(require("../../Redux/ActionsReducers/LayoutRedux"));
6
6
  const ModuleConstants = tslib_1.__importStar(require("../../Utilities/Constants/ModuleConstants"));
7
7
  const ApiBase_1 = require("./ApiBase");
8
- const PopupRedux = tslib_1.__importStar(require("../../Redux/ActionsReducers/PopupRedux"));
9
8
  const StringExtensions_1 = tslib_1.__importDefault(require("../../Utilities/Extensions/StringExtensions"));
10
9
  const ObjectFactory_1 = tslib_1.__importDefault(require("../../Utilities/ObjectFactory"));
11
10
  const LoggingHelper_1 = require("../../Utilities/Helpers/LoggingHelper");
@@ -17,7 +16,6 @@ const Enums_1 = require("../../PredefinedConfig/Common/Enums");
17
16
  const ArrayExtensions_1 = require("../../Utilities/Extensions/ArrayExtensions");
18
17
  const PopupRedux_1 = require("../../Redux/ActionsReducers/PopupRedux");
19
18
  const LayoutRedux_1 = require("../../Redux/ActionsReducers/LayoutRedux");
20
- const windowFactory_1 = require("../../View/Components/Popups/WindowPopups/windowFactory");
21
19
  class LayoutApiImpl extends ApiBase_1.ApiBase {
22
20
  constructor() {
23
21
  super(...arguments);
@@ -263,26 +261,20 @@ class LayoutApiImpl extends ApiBase_1.ApiBase {
263
261
  this.showModulePopup(ModuleConstants.LayoutModuleId);
264
262
  }
265
263
  showLayoutEditor(layoutName, action = 'Edit') {
266
- const layout = layoutName ? this.getLayoutByName(layoutName) : this.getCurrentLayout();
267
- const moduleInfo = this.adaptable.ModuleService.getModuleInfoByModule(ModuleConstants.LayoutModuleId);
268
264
  let preparedAction = action;
269
265
  if (!['Edit', 'New', 'Clone'].includes(action)) {
270
266
  preparedAction = 'Edit';
271
267
  LoggingHelper_1.LogAdaptableError(`When opening the layout editor the action must be one of: New, Clone, Edit; given: ${action}`);
272
268
  }
273
- let title = 'Layout Editor';
274
- if (action === 'Edit') {
275
- title = `Edit Layout${(layout === null || layout === void 0 ? void 0 : layout.Name) ? `: ${layout.Name}` : ''}`;
269
+ let layout = layoutName ? this.getLayoutByName(layoutName) : this.getCurrentLayout();
270
+ if (preparedAction === 'New') {
271
+ layout = null;
276
272
  }
277
- this.dispatchAction(PopupRedux.PopupShowWindow({
278
- Id: windowFactory_1.WINDOW_LAYOUT_EDITOR,
279
- Title: title,
280
- Icon: moduleInfo.Glyph,
281
- PopupProps: {
282
- action: preparedAction,
283
- layout,
284
- },
285
- }));
273
+ this.showModulePopup(ModuleConstants.LayoutModuleId, {
274
+ source: 'Toolbar',
275
+ action: preparedAction,
276
+ value: layout,
277
+ });
286
278
  }
287
279
  isCurrentLayoutReadOnly() {
288
280
  const currentLayout = this.getCurrentLayout();
@@ -186,7 +186,10 @@ class ScheduleApiImpl extends ApiBase_1.ApiBase {
186
186
  Scope: undefined,
187
187
  },
188
188
  };
189
- this.adaptable.api.alertApi.displayAlert(alert);
189
+ this.getAdaptableApi().alertApi.displayAlert(alert);
190
+ if (reminderSchedule.DisplaySystemStatusMessage) {
191
+ this.getAdaptableApi().systemStatusApi.setSystemStatus(reminderSchedule.Header, reminderSchedule.MessageType, reminderSchedule.Message);
192
+ }
190
193
  }
191
194
  else if (scheduleType == 'Report') {
192
195
  const reportSchedule = schedule;
@@ -51,4 +51,4 @@ export interface AdaptableBaseIcon {
51
51
  /**
52
52
  * All AdapTable internal icon names
53
53
  */
54
- export declare type AdaptableInternalIconName = 'add' | 'add-row' | 'alert' | 'align-justify' | 'analysis' | 'application' | 'arrow-down' | 'arrow-left' | 'arrow-right' | 'arrow-up' | 'arrowexpand' | 'attach-file' | 'blanks' | 'boolean-list' | 'broadcast' | 'build' | 'bulk-update' | 'calculated-column' | 'calendar' | 'call' | 'campaign' | 'cell-summary' | 'cell-validation' | 'chart' | 'chat' | 'check' | 'check-circle' | 'checked' | 'clear' | 'clone' | 'close' | 'cloud-upload' | 'collapse' | 'column-add' | 'column-chooser' | 'column-filter' | 'comment' | 'conditional-style' | 'contains' | 'custom-sort' | 'dashboard' | 'data-set' | 'date-range' | 'delete' | 'division' | 'dock' | 'drag' | 'edit' | 'ends-with' | 'equal' | 'equation' | 'error' | 'expand' | 'exponent' | 'export' | 'export-data' | 'fast-backward' | 'fast-forward' | 'filter' | 'flashing-cell' | 'folder' | 'folder-open' | 'folder-shared' | 'format-column' | 'freetext-column' | 'function' | 'gradient-column' | 'greater-than' | 'greater-than-or-equal' | 'hide-column' | 'history' | 'home' | 'import-export' | 'info' | 'instrument' | 'invalid' | 'ipushpull' | 'justify' | 'layout' | 'less-than' | 'less-than-or-equal' | 'list' | 'login' | 'logout' | 'menu' | 'minus' | 'multiplication' | 'newpage' | 'news' | 'non-blanks' | 'not-contains' | 'not-equal' | 'ok' | 'pause' | 'percent' | 'percent-bar' | 'person' | 'pie-chart' | 'play' | 'plus' | 'plus-minus' | 'query' | 'quick-search' | 'quote' | 'refresh' | 'regex' | 'reminder' | 'save' | 'schedule' | 'settings' | 'shortcut' | 'show-column' | 'smart-edit' | 'sort-asc' | 'sort-desc' | 'spark-line' | 'starts-with' | 'state-management' | 'statusbar' | 'stop' | 'system-status' | 'tab-unselected' | 'team-share' | 'theme' | 'tool-panel' | 'track-changes' | 'trash' | 'triangle-down' | 'triangle-up' | 'unchecked' | 'undo' | 'updated-row' | 'upload' | 'warning';
54
+ export declare type AdaptableInternalIconName = 'add' | 'add-row' | 'alert' | 'align-justify' | 'analysis' | 'application' | 'arrow-down' | 'arrow-left' | 'arrow-right' | 'arrow-up' | 'arrow-up-long' | 'arrow-down-long' | 'arrowexpand' | 'attach-file' | 'blanks' | 'boolean-list' | 'broadcast' | 'build' | 'bulk-update' | 'calculated-column' | 'calendar' | 'call' | 'campaign' | 'cell-summary' | 'cell-validation' | 'chart' | 'chat' | 'check' | 'check-circle' | 'checked' | 'clear' | 'clone' | 'close' | 'cloud-upload' | 'collapse' | 'column-add' | 'column-chooser' | 'column-filter' | 'comment' | 'conditional-style' | 'contains' | 'custom-sort' | 'dashboard' | 'data-set' | 'date-range' | 'delete' | 'division' | 'dock' | 'drag' | 'edit' | 'ends-with' | 'equal' | 'equation' | 'error' | 'expand' | 'exponent' | 'export' | 'export-data' | 'fast-backward' | 'fast-forward' | 'filter' | 'flashing-cell' | 'folder' | 'folder-open' | 'folder-shared' | 'format-column' | 'freetext-column' | 'function' | 'gradient-column' | 'greater-than' | 'greater-than-or-equal' | 'hide-column' | 'history' | 'home' | 'import-export' | 'info' | 'instrument' | 'invalid' | 'ipushpull' | 'justify' | 'layout' | 'less-than' | 'less-than-or-equal' | 'list' | 'login' | 'logout' | 'menu' | 'minus' | 'multiplication' | 'newpage' | 'news' | 'non-blanks' | 'not-contains' | 'not-equal' | 'ok' | 'pause' | 'percent' | 'percent-bar' | 'person' | 'pie-chart' | 'play' | 'plus' | 'plus-minus' | 'query' | 'quick-search' | 'quote' | 'refresh' | 'regex' | 'reminder' | 'save' | 'schedule' | 'settings' | 'shortcut' | 'show-column' | 'smart-edit' | 'sort-asc' | 'sort-desc' | 'spark-line' | 'starts-with' | 'state-management' | 'statusbar' | 'stop' | 'system-status' | 'tab-unselected' | 'team-share' | 'theme' | 'tool-panel' | 'track-changes' | 'trash' | 'triangle-down' | 'triangle-up' | 'unchecked' | 'undo' | 'updated-row' | 'upload' | 'warning';
@@ -1,6 +1,6 @@
1
1
  import { AdaptableScope } from './AdaptableScope';
2
- import { AdaptableColumn } from './AdaptableColumn';
3
- import { AdaptableApi, AdaptableIcon } from '../../types';
2
+ import { AdaptableColumn, AdaptableColumnDataType } from './AdaptableColumn';
3
+ import { AdaptableApi, AdaptableIcon, ColumnFilter } from '../../types';
4
4
  import { RowNode } from '@ag-grid-community/all-modules';
5
5
  /**
6
6
  * Predicate object used by AdapTableQL - essentially a boolean function
@@ -109,3 +109,8 @@ export declare type ModuleScope = 'filter' | 'alert' | 'conditionalstyle' | 'fla
109
109
  */
110
110
  export declare const SystemPredicateDefs: AdaptablePredicateDef[];
111
111
  export declare const SystemFilterPredicateIds: string[];
112
+ export interface ColumnFilterDef {
113
+ dataType: AdaptableColumnDataType;
114
+ predicate: AdaptablePredicateDef;
115
+ columnFilter: ColumnFilter;
116
+ }
@@ -1,4 +1,4 @@
1
- import { AdaptableApi } from '../../Api/AdaptableApi';
1
+ import { BaseContext } from '../../../types';
2
2
  import { SelectedCellInfo } from '../Selection/SelectedCellInfo';
3
3
  /**
4
4
  * Defines the Summary operations provides for Selected Cells
@@ -30,7 +30,7 @@ export interface CellSummaryOperation {
30
30
  /**
31
31
  * Context provided to a custom Cell Summary Operation function
32
32
  */
33
- export interface CellSummaryOperationContext {
33
+ export interface CellSummaryOperationContext extends BaseContext {
34
34
  /**
35
35
  * Currently selected cells
36
36
  */
@@ -51,8 +51,4 @@ export interface CellSummaryOperationContext {
51
51
  * Count of currently selected cells
52
52
  */
53
53
  distinctCount: number;
54
- /**
55
- * Adaptable Api object
56
- */
57
- api: AdaptableApi;
58
54
  }
@@ -69,6 +69,8 @@ export interface Layout extends AdaptableObject {
69
69
  };
70
70
  /**
71
71
  * Whether Layout should automatically save or not - overrides `autoSaveLayouts` property in LayoutOptions
72
+ *
73
+ * @deprecated - use `autoSaveLayouts` property in LayoutOptions instead, will be removed in next major version
72
74
  */
73
75
  AutoSave?: boolean;
74
76
  /**
@@ -50,4 +50,8 @@ export interface ReminderSchedule extends BaseSchedule {
50
50
  * Displays Reminder as a Toast Notification
51
51
  */
52
52
  DisplayNotification: boolean;
53
+ /**
54
+ * Shows Reminder as System Status Message
55
+ */
56
+ DisplaySystemStatusMessage?: boolean;
53
57
  }
@@ -570,7 +570,7 @@ const adaptableMiddleware = (adaptable) => function (middlewareAPI) {
570
570
  .getCalculatedColumnExpressionService()
571
571
  .createAggregatedScalarCalculatedColumn(calculatedColumn);
572
572
  });
573
- // refresh calcualted columns
573
+ // refresh calculated columns
574
574
  const aggCalculatedColumnIds = aggregatedCalculatedColumns.map((calculatedColumn) => calculatedColumn.ColumnId);
575
575
  adaptable.refreshCells(null, aggCalculatedColumnIds, true);
576
576
  return;
@@ -685,15 +685,15 @@ const adaptableMiddleware = (adaptable) => function (middlewareAPI) {
685
685
  // const gridOptions = adaptable.api.gridApi.getAgGridInstance();
686
686
  if (StringExtensions_1.StringExtensions.IsNotNullOrEmpty(searchText)) {
687
687
  // Currently using this but any searchable would allow us to limit the cols checked
688
- const queryText = 'ANY_CONTAINS("' + searchText + '") ';
688
+ // const queryText = 'ANY_CONTAINS("' + searchText + '") ';
689
689
  // const queryText = 'ANY_SEARCHABLE_CONTAINS("' + searchText + '") ';
690
- adaptable.api.queryApi.setCurrentQuery(queryText);
690
+ // adaptable.api.queryApi.setCurrentQuery(queryText);
691
691
  // Better still would be to use ag grid if that is possible?
692
692
  // gridOptions.api.setQuickFilter(searchText);
693
+ adaptable.setAgQuickSearch(searchText);
693
694
  }
694
695
  else {
695
- adaptable.api.queryApi.clearCurrentQuery();
696
- // gridOptions.api.setQuickFilter('');
696
+ adaptable.setAgQuickSearch('');
697
697
  }
698
698
  }
699
699
  return returnAction;
@@ -723,6 +723,8 @@ const adaptableMiddleware = (adaptable) => function (middlewareAPI) {
723
723
  case LayoutRedux.LAYOUT_COLUMN_FILTER_CLEAR:
724
724
  case LayoutRedux.LAYOUT_COLUMN_FILTER_CLEAR_ALL: {
725
725
  let returnAction;
726
+ // needs to be called before 'next' so previous and next column filters are known
727
+ const shouldTriggerGridFiltering = adaptable.api.filterApi.shouldNewColumnFilterTriggerGridFiltering(action);
726
728
  if ((_g = adaptable.adaptableOptions.layoutOptions) === null || _g === void 0 ? void 0 : _g.autoSaveLayouts) {
727
729
  returnAction = next(action);
728
730
  }
@@ -752,7 +754,11 @@ const adaptableMiddleware = (adaptable) => function (middlewareAPI) {
752
754
  }
753
755
  returnAction = next(draftLayoutAction);
754
756
  }
755
- setTimeout(() => adaptable.applyGridFiltering(), 5);
757
+ setTimeout(() => {
758
+ if (shouldTriggerGridFiltering) {
759
+ adaptable.applyGridFiltering();
760
+ }
761
+ }, 5);
756
762
  adaptable.api.gridApi.fireSearchChangedEvent('Filter');
757
763
  return returnAction;
758
764
  }
@@ -12,6 +12,7 @@ import { AccessLevel } from '../PredefinedConfig/Common/Entitlement';
12
12
  import { CalculatedColumn } from '../PredefinedConfig/CalculatedColumnState';
13
13
  import { FreeTextColumn } from '../PredefinedConfig/FreeTextColumnState';
14
14
  import { AdaptableInternalIconName } from '../PredefinedConfig/Common/AdaptableIcon';
15
+ import { AdaptableStateReloadedInfo } from '../Api/Events/AdaptableStateReloaded';
15
16
  /**
16
17
  * Base class for all strategies and does most of the work of creating menus
17
18
  */
@@ -34,6 +35,7 @@ export declare abstract class AdaptableModuleBase implements IModule {
34
35
  getReferencedNamedQueryNames(adaptableObject: AdaptableObject): string[];
35
36
  hasNamedQueryReferences(): boolean;
36
37
  handleAdaptableReady(): void;
38
+ handleConfigReloaded(adaptableStateReloadedInfo: AdaptableStateReloadedInfo): void;
37
39
  setModuleEntitlement(): void;
38
40
  addModuleMenuItem(source: 'ModuleMenu' | 'ModuleButton'): AdaptableMenuItem | undefined;
39
41
  addModuleButtonMenuItem(): AdaptableMenuItem | undefined;
@@ -24,6 +24,9 @@ class AdaptableModuleBase {
24
24
  this.handleAdaptableReady();
25
25
  this.api.configApi.dispatchStateReadyAction(this.moduleInfo.ModuleName);
26
26
  });
27
+ this.api.eventApi.on('AdaptableStateReloaded', (adaptableStateReloadedInfo) => {
28
+ this.handleConfigReloaded(adaptableStateReloadedInfo);
29
+ });
27
30
  }
28
31
  getViewAccessLevel() {
29
32
  // override where necessary (ex. only 'Full' accessLevel should be displayed)
@@ -68,6 +71,9 @@ class AdaptableModuleBase {
68
71
  handleAdaptableReady() {
69
72
  // override where necessary in base classes
70
73
  }
74
+ handleConfigReloaded(adaptableStateReloadedInfo) {
75
+ // override where necessary in base classes
76
+ }
71
77
  setModuleEntitlement() {
72
78
  this.AccessLevel = this.api.internalApi
73
79
  .getEntitlementService()
@@ -12,8 +12,8 @@ const ObjectFactory_1 = tslib_1.__importDefault(require("../Utilities/ObjectFact
12
12
  const AlertWizard_1 = require("../View/Alert/Wizard/AlertWizard");
13
13
  const getScopeViewItems_1 = require("./Utilities/getScopeViewItems");
14
14
  const getRuleViewItems_1 = require("./Utilities/getRuleViewItems");
15
- const getAlertPreviewViewItems_1 = require("./Utilities/getAlertPreviewViewItems");
16
- const getAlertBehaviourViewItems_1 = require("./Utilities/getAlertBehaviourViewItems");
15
+ const getAlertPreviewViewItems_1 = require("./Utilities/Alert/getAlertPreviewViewItems");
16
+ const getAlertBehaviourViewItems_1 = require("./Utilities/Alert/getAlertBehaviourViewItems");
17
17
  const AlertEmptyView_1 = require("../View/Alert/AlertEmptyView");
18
18
  const AlertStatusSubPanel_1 = require("../View/Alert/AlertStatusSubPanel");
19
19
  const getObjectTagsViewItems_1 = require("./Utilities/getObjectTagsViewItems");
@@ -8,8 +8,10 @@ import { CalculatedColumn } from '../PredefinedConfig/CalculatedColumnState';
8
8
  import { AdaptableObjectItemView, IModule } from './Interface/IModule';
9
9
  import { AdaptableApi } from '../Api/AdaptableApi';
10
10
  import { AdaptableObject } from '../PredefinedConfig/Common/AdaptableObject';
11
+ import { AdaptableStateReloadedInfo } from '../Api/Events/AdaptableStateReloaded';
11
12
  export declare class CalculatedColumnModule extends AdaptableModuleBase implements IModule {
12
13
  constructor(api: AdaptableApi);
14
+ handleConfigReloaded(adaptableStateReloadedInfo: AdaptableStateReloadedInfo): void;
13
15
  getModuleAdaptableObjects(): AdaptableObject[];
14
16
  updateOldConfig(): void;
15
17
  getExplicitlyReferencedColumnIds(calculatedColumn: CalculatedColumn): string[];