@adaptabletools/adaptable 18.0.0-canary.3 → 18.0.0-canary.5

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 (206) hide show
  1. package/agGrid.d.ts +4 -21
  2. package/agGrid.js +9 -26
  3. package/base.css +4 -1
  4. package/base.css.map +1 -1
  5. package/index.css +79 -68
  6. package/index.css.map +1 -1
  7. package/package.json +3 -4
  8. package/src/AdaptableInterfaces/IAdaptable.d.ts +55 -109
  9. package/src/AdaptableOptions/AdaptableOptions.d.ts +11 -5
  10. package/src/AdaptableOptions/ColumnFilterOptions.d.ts +4 -4
  11. package/src/AdaptableOptions/{CommentsOptions.d.ts → CommentOptions.d.ts} +5 -5
  12. package/src/AdaptableOptions/MenuOptions.d.ts +1 -1
  13. package/src/AdaptableOptions/MenuOptions.js +1 -5
  14. package/src/AdaptableOptions/{NotesOptions.d.ts → NoteOptions.d.ts} +1 -1
  15. package/src/AdaptableOptions/UserInterfaceOptions.d.ts +17 -0
  16. package/src/Api/AdaptableApi.d.ts +5 -0
  17. package/src/Api/BulkUpdateApi.d.ts +0 -5
  18. package/src/Api/Events/AdaptableReady.d.ts +3 -3
  19. package/src/Api/Events/GridDataChanged.d.ts +4 -4
  20. package/src/Api/GridApi.d.ts +14 -13
  21. package/src/Api/Implementation/ActionColumnApiImpl.d.ts +2 -0
  22. package/src/Api/Implementation/ActionColumnApiImpl.js +33 -0
  23. package/src/Api/Implementation/AdaptableApiImpl.d.ts +1 -0
  24. package/src/Api/Implementation/AdaptableApiImpl.js +3 -0
  25. package/src/Api/Implementation/ApiBase.d.ts +2 -1
  26. package/src/Api/Implementation/ApiBase.js +4 -1
  27. package/src/Api/Implementation/BulkUpdateApiImpl.d.ts +0 -1
  28. package/src/Api/Implementation/BulkUpdateApiImpl.js +0 -4
  29. package/src/Api/Implementation/CommentsApiImpl.js +2 -1
  30. package/src/Api/Implementation/ConfigApiImpl.js +8 -3
  31. package/src/Api/Implementation/GridApiImpl.d.ts +3 -3
  32. package/src/Api/Implementation/GridApiImpl.js +20 -14
  33. package/src/Api/Implementation/LayoutApiImpl.d.ts +4 -0
  34. package/src/Api/Implementation/LayoutApiImpl.js +14 -0
  35. package/src/Api/Implementation/NotesApiImpl.d.ts +2 -4
  36. package/src/Api/Implementation/NotesApiImpl.js +4 -8
  37. package/src/Api/Implementation/OptionsApiImpl.d.ts +1 -1
  38. package/src/Api/Implementation/OptionsApiImpl.js +2 -2
  39. package/src/Api/Implementation/StatusBarApiImpl.d.ts +0 -1
  40. package/src/Api/Implementation/StatusBarApiImpl.js +0 -3
  41. package/src/Api/Implementation/ToolPanelApiImpl.js +6 -6
  42. package/src/Api/Internal/ActionRowInternalApi.d.ts +5 -1
  43. package/src/Api/Internal/ActionRowInternalApi.js +106 -0
  44. package/src/Api/Internal/AdaptableInternalApi.d.ts +3 -4
  45. package/src/Api/Internal/AdaptableInternalApi.js +10 -8
  46. package/src/Api/Internal/CalculatedColumnInternalApi.d.ts +2 -0
  47. package/src/Api/Internal/CalculatedColumnInternalApi.js +70 -0
  48. package/src/Api/Internal/ColumnFilterInternalApi.d.ts +1 -0
  49. package/src/Api/Internal/ColumnFilterInternalApi.js +11 -1
  50. package/src/Api/Internal/ColumnInternalApi.d.ts +4 -1
  51. package/src/Api/Internal/ColumnInternalApi.js +12 -0
  52. package/src/Api/Internal/CustomSortInternalApi.d.ts +3 -2
  53. package/src/Api/Internal/CustomSortInternalApi.js +32 -1
  54. package/src/Api/Internal/DataSetInternalApi.js +1 -1
  55. package/src/Api/Internal/FreeTextColumnInternalApi.d.ts +2 -0
  56. package/src/Api/Internal/FreeTextColumnInternalApi.js +59 -0
  57. package/src/Api/Internal/GridFilterInternalApi.js +1 -1
  58. package/src/Api/Internal/GridInternalApi.d.ts +21 -3
  59. package/src/Api/Internal/GridInternalApi.js +126 -7
  60. package/src/Api/Internal/TeamSharingInternalApi.js +1 -1
  61. package/src/Api/InteropioPluginApi.d.ts +2 -2
  62. package/src/Api/LayoutApi.d.ts +8 -0
  63. package/src/Api/OptionsApi.d.ts +1 -1
  64. package/src/EnvVars.d.ts +3 -0
  65. package/src/EnvVars.js +4 -0
  66. package/src/PredefinedConfig/Common/AggregationColumns.d.ts +1 -0
  67. package/src/PredefinedConfig/Common/AggregationColumns.js +3 -0
  68. package/src/PredefinedConfig/NotesState.d.ts +10 -20
  69. package/src/PredefinedConfig/PredefinedConfig.d.ts +1 -1
  70. package/src/Redux/ActionsReducers/NotesRedux.d.ts +3 -4
  71. package/src/Redux/ActionsReducers/NotesRedux.js +8 -7
  72. package/src/Redux/Store/AdaptableStore.d.ts +4 -6
  73. package/src/Redux/Store/AdaptableStore.js +22 -50
  74. package/src/Redux/Store/Interface/IAdaptableStore.d.ts +7 -1
  75. package/src/Strategy/AdaptableModuleBase.d.ts +2 -3
  76. package/src/Strategy/AdaptableModuleBase.js +4 -7
  77. package/src/Strategy/AlertModule.d.ts +1 -2
  78. package/src/Strategy/AlertModule.js +2 -55
  79. package/src/Strategy/CalculatedColumnModule.d.ts +2 -3
  80. package/src/Strategy/CalculatedColumnModule.js +5 -25
  81. package/src/Strategy/ChartingModule.d.ts +0 -1
  82. package/src/Strategy/ChartingModule.js +2 -22
  83. package/src/Strategy/ColumnFilterModule.d.ts +1 -2
  84. package/src/Strategy/ColumnFilterModule.js +1 -64
  85. package/src/Strategy/CommentsModule.d.ts +1 -0
  86. package/src/Strategy/CommentsModule.js +2 -1
  87. package/src/Strategy/CustomSortModule.js +1 -1
  88. package/src/Strategy/DashboardModule.d.ts +1 -2
  89. package/src/Strategy/DashboardModule.js +1 -8
  90. package/src/Strategy/DataChangeHistoryModule.d.ts +1 -0
  91. package/src/Strategy/DataChangeHistoryModule.js +3 -1
  92. package/src/Strategy/DataSetModule.d.ts +1 -1
  93. package/src/Strategy/DataSetModule.js +1 -1
  94. package/src/Strategy/FlashingCellModule.d.ts +1 -2
  95. package/src/Strategy/FlashingCellModule.js +2 -15
  96. package/src/Strategy/FormatColumnModule.d.ts +0 -2
  97. package/src/Strategy/FormatColumnModule.js +0 -47
  98. package/src/Strategy/FreeTextColumnModule.d.ts +0 -1
  99. package/src/Strategy/FreeTextColumnModule.js +0 -30
  100. package/src/Strategy/GridFilterModule.d.ts +0 -1
  101. package/src/Strategy/GridFilterModule.js +0 -37
  102. package/src/Strategy/Interface/IModule.d.ts +0 -1
  103. package/src/Strategy/LayoutModule.d.ts +1 -3
  104. package/src/Strategy/LayoutModule.js +6 -50
  105. package/src/Strategy/NamedQueryModule.d.ts +0 -1
  106. package/src/Strategy/NamedQueryModule.js +0 -19
  107. package/src/Strategy/PlusMinusModule.d.ts +1 -1
  108. package/src/Strategy/PlusMinusModule.js +1 -1
  109. package/src/Strategy/ScheduleModule.d.ts +1 -1
  110. package/src/Strategy/ScheduleModule.js +1 -1
  111. package/src/Strategy/ShortcutModule.d.ts +1 -1
  112. package/src/Strategy/ShortcutModule.js +1 -1
  113. package/src/Strategy/StyledColumnModule.d.ts +0 -1
  114. package/src/Strategy/StyledColumnModule.js +0 -21
  115. package/src/Strategy/TeamSharingModule.d.ts +1 -0
  116. package/src/Strategy/TeamSharingModule.js +5 -5
  117. package/src/Strategy/ToolPanelModule.d.ts +0 -1
  118. package/src/Strategy/ToolPanelModule.js +0 -23
  119. package/src/Utilities/Constants/DocumentationLinkConstants.js +1 -1
  120. package/src/Utilities/Constants/GeneralConstants.d.ts +1 -0
  121. package/src/Utilities/Constants/GeneralConstants.js +1 -0
  122. package/src/Utilities/Defaults/DefaultSettingsPanel.js +5 -4
  123. package/src/Utilities/Helpers/AdaptableHelper.d.ts +0 -3
  124. package/src/Utilities/Helpers/AdaptableHelper.js +0 -58
  125. package/src/Utilities/Helpers/Helper.d.ts +2 -0
  126. package/src/Utilities/Helpers/Helper.js +4 -0
  127. package/src/Utilities/Services/AggregatedScalarLiveValue.js +3 -1
  128. package/src/Utilities/Services/CellPopupService.js +0 -1
  129. package/src/Utilities/Services/LicenseService/index.d.ts +3 -0
  130. package/src/Utilities/Services/LicenseService/index.js +10 -3
  131. package/src/Utilities/Services/MetamodelService.d.ts +1 -1
  132. package/src/Utilities/Services/MetamodelService.js +6 -3
  133. package/src/Utilities/Services/RowEditService.d.ts +3 -2
  134. package/src/Utilities/Services/RowEditService.js +3 -1
  135. package/src/View/AdaptableView.js +0 -2
  136. package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/ConfigurationWizard.js +2 -2
  137. package/src/View/BulkUpdate/BulkUpdatePopup.js +1 -1
  138. package/src/View/CalculatedColumn/utils.d.ts +1 -1
  139. package/src/View/CellSummary/CellSummaryPopup.js +1 -1
  140. package/src/View/Comments/CommentsPopup.js +12 -8
  141. package/src/View/Components/Popups/AdaptableLoadingScreen.d.ts +6 -5
  142. package/src/View/Components/Popups/AdaptableLoadingScreen.js +19 -9
  143. package/src/View/Components/Popups/GridCellPopup/GridCellPopup.js +1 -1
  144. package/src/View/Components/Popups/WindowPopups/windowFactory.d.ts +1 -0
  145. package/src/View/Components/Popups/WindowPopups/windowFactory.js +3 -0
  146. package/src/View/Components/Selectors/PermittedValuesSelector.js +1 -1
  147. package/src/View/CustomSort/CustomSortSummary.js +1 -1
  148. package/src/View/DataChangeHistory/DataChangeHistoryGrid.js +1 -1
  149. package/src/View/GridFilter/GridFilterViewPanel.js +6 -2
  150. package/src/View/GridInfo/GridInfoPopup/GridInfoPopup.js +2 -3
  151. package/src/View/Layout/TransposedPopup.d.ts +3 -0
  152. package/src/View/Layout/TransposedPopup.js +193 -0
  153. package/src/View/Layout/Wizard/LayoutWizard.js +1 -1
  154. package/src/View/Notes/NotesPopup.js +9 -11
  155. package/src/View/Theme/ThemeSelector.js +3 -3
  156. package/src/agGrid/ActionColumnRenderer.js +4 -4
  157. package/src/agGrid/Adaptable.d.ts +3 -455
  158. package/src/agGrid/Adaptable.js +8 -5292
  159. package/src/agGrid/AdaptableAgGrid.d.ts +336 -0
  160. package/src/agGrid/AdaptableAgGrid.js +3780 -0
  161. package/src/agGrid/AdaptableLogger.js +77 -11
  162. package/src/agGrid/AgGridAdapter.d.ts +54 -0
  163. package/src/agGrid/AgGridAdapter.js +549 -0
  164. package/src/agGrid/AgGridColumnAdapter.d.ts +56 -0
  165. package/src/agGrid/AgGridColumnAdapter.js +813 -0
  166. package/src/agGrid/AgGridMenuAdapter.d.ts +28 -0
  167. package/src/agGrid/AgGridMenuAdapter.js +271 -0
  168. package/src/agGrid/AgGridOptionsService.d.ts +11 -0
  169. package/src/agGrid/AgGridOptionsService.js +50 -0
  170. package/src/agGrid/BadgeRenderer.js +1 -1
  171. package/src/agGrid/CheckboxRenderer.js +1 -1
  172. package/src/agGrid/FilterWrapper.d.ts +2 -2
  173. package/src/agGrid/FilterWrapper.js +1 -1
  174. package/src/agGrid/attachAddaptableColumnTypes.d.ts +12 -12
  175. package/src/agGrid/defaultAdaptableOptions.d.ts +3 -0
  176. package/src/{Utilities/Defaults/DefaultAdaptableOptions.js → agGrid/defaultAdaptableOptions.js} +70 -9
  177. package/src/agGrid/editors/AdaptableDateEditor/index.js +2 -2
  178. package/src/agGrid/editors/AdaptableNumberEditor/index.js +2 -2
  179. package/src/components/Datepicker/index.d.ts +1 -1
  180. package/src/components/InfiniteTable/index.js +2 -2
  181. package/src/components/Modal/index.d.ts +1 -0
  182. package/src/components/Modal/index.js +4 -3
  183. package/src/components/Select/Select.d.ts +2 -0
  184. package/src/components/Select/Select.js +2 -2
  185. package/src/env.js +2 -2
  186. package/src/metamodel/adaptable.metamodel.d.ts +39 -11
  187. package/src/metamodel/adaptable.metamodel.js +73 -32
  188. package/src/migration/AdaptableUpgradeHelper.d.ts +38 -0
  189. package/src/migration/AdaptableUpgradeHelper.js +48 -0
  190. package/src/migration/VersionUpgrade.d.ts +8 -0
  191. package/src/migration/VersionUpgrade.js +11 -0
  192. package/src/migration/VersionUpgrade17.d.ts +18 -0
  193. package/src/migration/VersionUpgrade17.js +342 -0
  194. package/src/migration/VersionUpgrade18.d.ts +5 -0
  195. package/src/migration/VersionUpgrade18.js +6 -0
  196. package/src/types.d.ts +7 -3
  197. package/tsconfig.esm.tsbuildinfo +1 -1
  198. package/src/Utilities/Defaults/DefaultAdaptableOptions.d.ts +0 -2
  199. package/src/Utilities/Services/Interface/IRowEditService.d.ts +0 -3
  200. package/src/Utilities/Services/Interface/IRowEditService.js +0 -1
  201. package/src/agGrid/agGridHelper.d.ts +0 -57
  202. package/src/agGrid/agGridHelper.js +0 -686
  203. package/src/agGrid/agGridMenuHelper.d.ts +0 -46
  204. package/src/agGrid/agGridMenuHelper.js +0 -668
  205. /package/src/AdaptableOptions/{CommentsOptions.js → CommentOptions.js} +0 -0
  206. /package/src/AdaptableOptions/{NotesOptions.js → NoteOptions.js} +0 -0
@@ -1,5 +1,14 @@
1
1
  import { AdaptableObject } from '../types';
2
2
  import { ConfigState } from './ConfigState';
3
+ /**
4
+ * Predefined Configuration for Notes Module
5
+ */
6
+ export interface NotesState extends ConfigState {
7
+ /**
8
+ * Collection of AdapTable Notes
9
+ */
10
+ Notes?: AdaptableNotes;
11
+ }
3
12
  /**
4
13
  * Note that can be applied to a Cell in AdapTable
5
14
  */
@@ -11,13 +20,7 @@ export interface AdaptableNote extends AdaptableObject {
11
20
  /**
12
21
  * Value of the Note
13
22
  */
14
- Value: string;
15
- /**
16
- * Author of the Note
17
- */
18
- Author: {
19
- UserName: string;
20
- };
23
+ Text: string;
21
24
  /**
22
25
  * Value in Grid's Primary Key Column
23
26
  */
@@ -26,21 +29,8 @@ export interface AdaptableNote extends AdaptableObject {
26
29
  * Id of Column containing the Note
27
30
  */
28
31
  ColumnId: string;
29
- /**
30
- * Id of this AdapTable instance
31
- */
32
- AdaptableId: string;
33
32
  }
34
33
  /**
35
34
  * Collection of Cell Notes
36
35
  */
37
36
  export type AdaptableNotes = AdaptableNote[];
38
- /**
39
- * Predefined Configuration for Notes Module
40
- */
41
- export interface NotesState extends ConfigState {
42
- /**
43
- * Collection of AdapTable Notes
44
- */
45
- Notes?: AdaptableNotes;
46
- }
@@ -44,7 +44,7 @@ export interface PredefinedConfig {
44
44
  */
45
45
  CustomSort?: CustomSortState;
46
46
  /**
47
- * Collection of notes that can be edited on cell level
47
+ * Collection of personal Notes that are edited at Cell level
48
48
  */
49
49
  Notes?: NotesState;
50
50
  /**
@@ -1,5 +1,6 @@
1
1
  import { AdaptableNote, NotesState } from '../../PredefinedConfig/NotesState';
2
2
  import * as Redux from 'redux';
3
+ import { CellAddress } from '../../types';
3
4
  /**
4
5
  * @ReduxAction A Notes has been added
5
6
  */
@@ -32,8 +33,6 @@ export declare const NotesAdd: (note: AdaptableNote) => AdaptableNotesAddAction;
32
33
  export declare const NotesEdit: (note: AdaptableNote) => AdaptableNotesEditAction;
33
34
  export declare const NotesDelete: (note: AdaptableNote) => AdaptableNotesDeleteAction;
34
35
  export declare const NotesReady: (note: NotesState) => NoteReadyAction;
35
- export declare const GetNotesSelector: (state: NotesState, config?: {
36
- PrimaryKeyValue: string | number;
37
- ColumnId: string;
38
- }) => AdaptableNote[];
36
+ export declare const GetAllNotesSelector: (state: NotesState) => AdaptableNote[];
37
+ export declare const GetNotesSelector: (state: NotesState, address: CellAddress) => AdaptableNote[];
39
38
  export declare const NotesReducer: Redux.Reducer<NotesState>;
@@ -32,21 +32,22 @@ export const NotesReady = (note) => ({
32
32
  type: NOTES_READY,
33
33
  notesState: note,
34
34
  });
35
- export const GetNotesSelector = (state, config) => {
35
+ export const GetAllNotesSelector = (state) => state.Notes;
36
+ export const GetNotesSelector = (state, address) => {
36
37
  var _a;
37
- if (!config) {
38
+ if (!address) {
38
39
  return [];
39
40
  }
40
41
  return ((_a = state === null || state === void 0 ? void 0 : state.Notes) !== null && _a !== void 0 ? _a : []).filter((note) => {
41
- if (note.PrimaryKeyValue === config.PrimaryKeyValue && note.ColumnId === config.ColumnId) {
42
+ if (note.PrimaryKeyValue === address.PrimaryKeyValue && note.ColumnId === address.ColumnId) {
42
43
  // happy check
43
44
  return true;
44
45
  }
45
46
  // Primary keys retreived from the grid dom are always strings, so we must also consider them strings
46
- if ((typeof config.PrimaryKeyValue === 'number' && typeof note.PrimaryKeyValue === 'string') ||
47
- (typeof config.PrimaryKeyValue === 'string' && typeof note.PrimaryKeyValue === 'number')) {
48
- return (note.PrimaryKeyValue.toString() === config.PrimaryKeyValue.toString() &&
49
- note.ColumnId === config.ColumnId);
47
+ if ((typeof address.PrimaryKeyValue === 'number' && typeof note.PrimaryKeyValue === 'string') ||
48
+ (typeof address.PrimaryKeyValue === 'string' && typeof note.PrimaryKeyValue === 'number')) {
49
+ return (note.PrimaryKeyValue.toString() === address.PrimaryKeyValue.toString() &&
50
+ note.ColumnId === address.ColumnId);
50
51
  }
51
52
  return false;
52
53
  });
@@ -2,8 +2,7 @@ import * as Redux from 'redux';
2
2
  import { IAdaptable } from '../../AdaptableInterfaces/IAdaptable';
3
3
  import { AdaptableState } from '../../PredefinedConfig/AdaptableState';
4
4
  import { ConfigState } from '../../PredefinedConfig/ConfigState';
5
- import { PredefinedConfig } from '../../PredefinedConfig/PredefinedConfig';
6
- import { IAdaptableStore } from './Interface/IAdaptableStore';
5
+ import { IAdaptableStore, LoadStoreConfig } from './Interface/IAdaptableStore';
7
6
  type EmitterCallback = (data?: any) => any;
8
7
  type EmitterAnyCallback = (eventName: string, data?: any) => any;
9
8
  export declare const INIT_STATE = "INIT_STATE";
@@ -22,7 +21,6 @@ export declare const LoadState: (State: {
22
21
  [s: string]: ConfigState;
23
22
  }) => LoadStateAction;
24
23
  export declare class AdaptableStore implements IAdaptableStore {
25
- private isAgGridReady;
26
24
  TheStore: Redux.Store<AdaptableState>;
27
25
  Load: Promise<any>;
28
26
  private emitter;
@@ -36,12 +34,12 @@ export declare class AdaptableStore implements IAdaptableStore {
36
34
  /**
37
35
  *
38
36
  * @param adaptable The Adaptable instance
39
- * @param isAgGridReady A promise which is resolved when AG Grid is ready for binding
37
+ * @param postLoadHook A function that hydrates the state after it has been loaded from storage
40
38
  */
41
- constructor(adaptable: IAdaptable, isAgGridReady: Promise<any>);
39
+ constructor(adaptable: IAdaptable);
42
40
  destroy(): void;
43
41
  getCurrentStorageState(): AdaptableState;
44
42
  saveStateNow(adaptable: IAdaptable): Promise<any>;
45
- loadStore: (adaptable: IAdaptable, adaptableStateKey: string, predefinedConfig?: PredefinedConfig) => Promise<any>;
43
+ loadStore: (config: LoadStoreConfig) => Promise<any>;
46
44
  }
47
45
  export {};
@@ -47,9 +47,9 @@ import { isAdaptableSharedEntity, isCustomSharedEntity, } from '../../Predefined
47
47
  export const INIT_STATE = 'INIT_STATE';
48
48
  export const LOAD_STATE = 'LOAD_STATE';
49
49
  const NON_PERSIST_ACTIONS = {
50
- [LOAD_STATE]: true,
51
50
  '@@INIT': true,
52
51
  '@@redux/init': true,
52
+ [LOAD_STATE]: true,
53
53
  [INIT_STATE]: true,
54
54
  // progress indicators should NOT interfere with state management as it may lead to race conditions due to load/persist state being async
55
55
  [SYSTEM_PROGRESS_INDICATOR_SHOW]: true,
@@ -66,13 +66,12 @@ export class AdaptableStore {
66
66
  /**
67
67
  *
68
68
  * @param adaptable The Adaptable instance
69
- * @param isAgGridReady A promise which is resolved when AG Grid is ready for binding
69
+ * @param postLoadHook A function that hydrates the state after it has been loaded from storage
70
70
  */
71
- constructor(adaptable, isAgGridReady) {
71
+ constructor(adaptable) {
72
72
  /*
73
73
  This is the main store for Adaptable State
74
74
  */
75
- this.isAgGridReady = isAgGridReady;
76
75
  this.loadStorageInProgress = false;
77
76
  this.loadStateOnStartup = true; // set to false if you want no state
78
77
  this.on = (eventName, callback) => {
@@ -84,7 +83,9 @@ export class AdaptableStore {
84
83
  this.emit = (eventName, data) => {
85
84
  return this.emitter.emit(eventName, data);
86
85
  };
87
- this.loadStore = (adaptable, adaptableStateKey, predefinedConfig) => {
86
+ this.loadStore = (config) => {
87
+ const { adaptable, adaptableStateKey, predefinedConfig, postLoadHook } = config;
88
+ const postProcessState = postLoadHook !== null && postLoadHook !== void 0 ? postLoadHook : ((state) => state);
88
89
  this.storageEngine.setStateKey(adaptableStateKey);
89
90
  // START STATE LOAD
90
91
  this.loadStorageInProgress = true;
@@ -92,17 +93,15 @@ export class AdaptableStore {
92
93
  .load(predefinedConfig)
93
94
  .then((storedState) => {
94
95
  if (storedState && this.loadStateOnStartup) {
95
- this.TheStore.dispatch(LoadState(adaptable.adaptableOptions.stateOptions.applyState(storedState)));
96
+ this.TheStore.dispatch(LoadState(postProcessState(adaptable.adaptableOptions.stateOptions.applyState(storedState))));
96
97
  }
97
98
  })
98
- // we need AG Grid to be ready because several states(ex. Layout) depend on its API
99
- .then(() => this.isAgGridReady)
100
99
  .then(() => {
101
100
  this.TheStore.dispatch(InitState());
102
101
  // END STATE LOAD
103
102
  this.loadStorageInProgress = false;
104
103
  }, (e) => {
105
- adaptable.logger.error('Failed to load previous Adaptable State : ', e);
104
+ adaptable.logger.consoleError('Failed to load previous Adaptable State : ', e);
106
105
  //for now i'm still initializing Adaptable even if loading state has failed....
107
106
  //we may revisit that later
108
107
  this.TheStore.dispatch(InitState());
@@ -160,17 +159,6 @@ export class AdaptableStore {
160
159
  case LOAD_STATE:
161
160
  const { State } = action;
162
161
  Object.keys(State).forEach((key) => {
163
- // this check should be removed in version 12 !!!
164
- if (key === 'Chart') {
165
- adaptable.logger.consoleWarn(`DEPRECATED: AdapTable Charts Plugin is deprecated! AG Grid built-in charts are fully supported & integrated in AdapTable.
166
-
167
- Please contact 'support@adaptabletools.com' if you require any charting features that are not currently available.`);
168
- }
169
- if (key === 'SparklineColumn') {
170
- adaptable.logger.consoleWarn(`DEPRECATED: AdapTable SparklineColumn is deprecated! AG Grid built-in Sparklines are fully supported & integrated in AdapTable.
171
-
172
- Please contact 'support@adaptabletools.com' if you require any sparklines features that are not currently available.`);
173
- }
174
162
  state[key] = State[key];
175
163
  });
176
164
  break;
@@ -251,7 +239,6 @@ export class AdaptableStore {
251
239
  ...pluginsMiddleware // the plugins middleware
252
240
  )));
253
241
  this.storageEngine = storageEngine;
254
- this.loadStore(adaptable, adaptable.adaptableOptions.adaptableStateKey);
255
242
  }
256
243
  destroy() {
257
244
  var _a;
@@ -338,7 +325,7 @@ const adaptableMiddleware = (adaptable) => (function(middlewareAPI) {
338
325
  }
339
326
  case SystemRedux.SYSTEM_FLASHING_CELL_DELETE_ALL: {
340
327
  let ret = next(action);
341
- adaptable.redrawRenderedRows();
328
+ adaptable.redrawBody();
342
329
  return ret;
343
330
  }
344
331
  /*******************
@@ -394,7 +381,7 @@ const adaptableMiddleware = (adaptable) => (function(middlewareAPI) {
394
381
  });
395
382
  }
396
383
  // called also for rendered column actions, see RENDERED COLUMN ACTIONS block
397
- adaptable.setupColumns();
384
+ adaptable.updateColumnModelAndRefreshGrid();
398
385
  return returnAction;
399
386
  }
400
387
  /*******************
@@ -409,7 +396,7 @@ const adaptableMiddleware = (adaptable) => (function(middlewareAPI) {
409
396
  case FlashingCellRedux.FLASHING_CELL_DEFINITION_SUSPEND_ALL: {
410
397
  const returnAction = next(action);
411
398
  // called also for rendered column actions, see RENDERED COLUMN ACTIONS block
412
- adaptable.setupColumns();
399
+ adaptable.updateColumnModelAndRefreshGrid();
413
400
  return returnAction;
414
401
  }
415
402
  /**
@@ -574,11 +561,6 @@ const adaptableMiddleware = (adaptable) => (function(middlewareAPI) {
574
561
  /*******************
575
562
  * SPECIAL COLUMN ACTIONS
576
563
  *******************/
577
- case CalculatedColumnRedux.CALCULATED_COLUMN_READY: {
578
- // create aggregated scalar columns at grid startup
579
- adaptable.api.calculatedColumnApi.refreshAggregatedCalculatedColumns();
580
- return;
581
- }
582
564
  /**
583
565
  * Use Case: We have added / edited / deleted a Special Column (i.e. one not in initial ColumnDefs)
584
566
  * Action: We update the Special ColumnDefs
@@ -596,7 +578,7 @@ const adaptableMiddleware = (adaptable) => (function(middlewareAPI) {
596
578
  .createAggregatedScalarLiveValue(returnAction.calculatedColumn);
597
579
  adaptable.api.calculatedColumnApi.internalApi.fireCalculatedColumnChangedEvent(action.type, actionTyped.calculatedColumn);
598
580
  }
599
- adaptable.updateColDefsForSpecialColumns();
581
+ adaptable.updateColumnModelAndRefreshGrid();
600
582
  return returnAction;
601
583
  }
602
584
  /**
@@ -621,7 +603,7 @@ const adaptableMiddleware = (adaptable) => (function(middlewareAPI) {
621
603
  .getCalculatedColumnExpressionService()
622
604
  .destroyAggregatedScalarLiveValue(returnAction.calculatedColumn);
623
605
  adaptable.api.calculatedColumnApi.internalApi.fireCalculatedColumnChangedEvent(action.type, actionTyped.calculatedColumn);
624
- adaptable.updateColDefsForSpecialColumns();
606
+ adaptable.updateColumnModelAndRefreshGrid();
625
607
  return returnAction;
626
608
  }
627
609
  /**
@@ -642,7 +624,7 @@ const adaptableMiddleware = (adaptable) => (function(middlewareAPI) {
642
624
  return;
643
625
  }
644
626
  const returnAction = next(action);
645
- adaptable.updateColDefsForSpecialColumns();
627
+ adaptable.updateColumnModelAndRefreshGrid();
646
628
  return returnAction;
647
629
  }
648
630
  /*******************
@@ -679,7 +661,7 @@ const adaptableMiddleware = (adaptable) => (function(middlewareAPI) {
679
661
  case CustomSortRedux.CUSTOM_SORT_UNSUSPEND_ALL: {
680
662
  const returnAction = next(action);
681
663
  // called also for alert actions, see ALERT ACTIONS block
682
- adaptable.setupColumns();
664
+ adaptable.updateColumnModelAndRefreshGrid();
683
665
  return returnAction;
684
666
  }
685
667
  /*******************
@@ -1656,24 +1638,14 @@ const adaptableMiddleware = (adaptable) => (function(middlewareAPI) {
1656
1638
  *******************/
1657
1639
  case INIT_STATE: {
1658
1640
  let returnAction = next(action);
1659
- if (adaptable.isDestroyed) {
1660
- return returnAction;
1661
- }
1662
- // make sure we have the grid columns in state, before we do any layout work
1663
- adaptable.updateColumnsIntoStore();
1664
- const layoutState = middlewareAPI.getState().Layout;
1665
- const defaultLayout = adaptable.api.layoutApi.internalApi.createDefaultLayoutIfNeeded();
1666
- let currentLayout = (layoutState === null || layoutState === void 0 ? void 0 : layoutState.CurrentLayout) || (defaultLayout === null || defaultLayout === void 0 ? void 0 : defaultLayout.Name);
1667
- if (!adaptable.api.layoutApi.getLayoutByName(currentLayout)) {
1668
- currentLayout = defaultLayout ? defaultLayout.Name : layoutState.Layouts[0].Name;
1641
+ if (adaptable.isReady) {
1642
+ // TODO see #create-create-module-menu
1643
+ // create the module menu (for use in the dashboard and the toolpanel)
1644
+ // we need this here for when the state key is changed
1645
+ // since we need the transient state to be restored in the same
1646
+ // way as when Adaptable is initialised.
1647
+ adaptable.ModuleService.createModuleMenus();
1669
1648
  }
1670
- middlewareAPI.dispatch(LayoutRedux.LayoutSelect(currentLayout));
1671
- // do this now so it sets module entitlements
1672
- adaptable.EntitlementService.setModulesEntitlements();
1673
- // create the module menu (for use in the dashboard and the toolpanel)
1674
- adaptable.ModuleService.createModuleMenus();
1675
- // update initial mode of DataChangeHistory
1676
- adaptable.api.internalApi.initializeDataChangeHistory();
1677
1649
  return returnAction;
1678
1650
  }
1679
1651
  default: {
@@ -2,10 +2,16 @@ import * as Redux from 'redux';
2
2
  import { AdaptableState } from '../../../PredefinedConfig/AdaptableState';
3
3
  import { PredefinedConfig } from '../../../types';
4
4
  import { IAdaptable } from '../../../AdaptableInterfaces/IAdaptable';
5
+ export interface LoadStoreConfig {
6
+ adaptable: IAdaptable;
7
+ adaptableStateKey: string;
8
+ predefinedConfig?: PredefinedConfig;
9
+ postLoadHook?: (state: AdaptableState) => AdaptableState;
10
+ }
5
11
  export interface IAdaptableStore {
6
12
  TheStore: Redux.Store<AdaptableState>;
7
13
  Load: PromiseLike<any>;
8
- loadStore: (adaptable: IAdaptable, adaptableStateKey: string, predefinedConfig?: PredefinedConfig) => PromiseLike<any>;
14
+ loadStore: (config: LoadStoreConfig) => PromiseLike<any>;
9
15
  getCurrentStorageState: () => AdaptableState | void;
10
16
  saveStateNow: (adaptable: IAdaptable) => Promise<any>;
11
17
  on: (eventName: string, callback: (data?: any) => any) => () => void;
@@ -29,13 +29,12 @@ export declare abstract class AdaptableModuleBase implements IModule {
29
29
  */
30
30
  isModuleObjectsShareable(): boolean;
31
31
  isModuleEditable(): boolean;
32
- updateOldConfig(): void;
33
32
  getModuleAdaptableObjects(): AdaptableObject[];
34
33
  getExplicitlyReferencedColumnIds(adaptableObject: AdaptableObject): string[];
35
34
  getReferencedNamedQueryNames(adaptableObject: AdaptableObject): string[];
36
35
  hasNamedQueryReferences(): boolean;
37
- handleAdaptableReady(): void;
38
- handleConfigReloaded(adaptableStateReloadedInfo: AdaptableStateReloadedInfo): void;
36
+ onAdaptableReady(): void;
37
+ onAdaptableStateReloaded(adaptableStateReloadedInfo: AdaptableStateReloadedInfo): void;
39
38
  setModuleEntitlement(): void;
40
39
  addModuleMenuItem(source: 'ModuleMenu' | 'ModuleButton'): AdaptableMenuItem | undefined;
41
40
  addModuleButtonMenuItem(): AdaptableMenuItem | undefined;
@@ -16,11 +16,11 @@ export class AdaptableModuleBase {
16
16
  };
17
17
  this.api = api;
18
18
  this.api.eventApi.on('AdaptableReady', () => {
19
- this.handleAdaptableReady();
19
+ this.onAdaptableReady();
20
20
  this.api.configApi.dispatchStateReadyAction(this.moduleInfo.ModuleName);
21
21
  });
22
22
  this.api.eventApi.on('AdaptableStateReloaded', (adaptableStateReloadedInfo) => {
23
- this.handleConfigReloaded(adaptableStateReloadedInfo);
23
+ this.onAdaptableStateReloaded(adaptableStateReloadedInfo);
24
24
  });
25
25
  }
26
26
  getViewAccessLevel() {
@@ -43,9 +43,6 @@ export class AdaptableModuleBase {
43
43
  isModuleEditable() {
44
44
  return this.hasRequiredAccessLevel(this.getEditAccessLevel());
45
45
  }
46
- updateOldConfig() {
47
- // override where deprecated configs have to be migrated
48
- }
49
46
  getModuleAdaptableObjects() {
50
47
  // override where necessary in base classes
51
48
  return [];
@@ -63,10 +60,10 @@ export class AdaptableModuleBase {
63
60
  // this will skip the unnecessary evaluation of modules which do not have Named Query references
64
61
  return true;
65
62
  }
66
- handleAdaptableReady() {
63
+ onAdaptableReady() {
67
64
  // override where necessary in base classes
68
65
  }
69
- handleConfigReloaded(adaptableStateReloadedInfo) {
66
+ onAdaptableStateReloaded(adaptableStateReloadedInfo) {
70
67
  // override where necessary in base classes
71
68
  }
72
69
  setModuleEntitlement() {
@@ -8,13 +8,12 @@ import { AdaptableModuleView, AdaptableObjectCompactView, AdaptableObjectView, I
8
8
  import { AdaptableObject } from '../PredefinedConfig/Common/AdaptableObject';
9
9
  export declare class AlertModule extends AdaptableModuleBase implements IModule {
10
10
  constructor(api: AdaptableApi);
11
+ onAdaptableReady(): void;
11
12
  getModuleAdaptableObjects(config?: {
12
13
  includeLayoutNotAssociatedObjects?: boolean;
13
14
  }): AdaptableObject[];
14
15
  getExplicitlyReferencedColumnIds(alertDefinition: AlertDefinition): string[];
15
16
  getReferencedNamedQueryNames(alertDefinition: AlertDefinition): string[];
16
- updateOldConfig(): void;
17
- private updateAlertSingleToMultiplePredicates;
18
17
  addContextMenuItems(menuContext: ContextMenuContext): AdaptableMenuItem[] | undefined;
19
18
  private handleCellDataChanged;
20
19
  private handleGridDataChanged;
@@ -13,12 +13,12 @@ import { AlertEmptyView } from '../View/Alert/AlertEmptyView';
13
13
  import { AlertStatusPanel } from '../View/Alert/AlertStatusSubPanel';
14
14
  import { ActiveAlertsPanelItemLabel } from '../View/Alert/ActiveAlertsPanelItemLabel';
15
15
  import { getObjectTagsViewItems } from './Utilities/getObjectTagsViewItems';
16
- import { updateSingleToMultiplePredicates } from './Utilities/updateSingleToMultiplePredicates';
17
- import { cloneObject } from '../Utilities/Helpers/Helper';
18
16
  import { getAlertType } from '../View/Alert/Utilities/getAlertType';
19
17
  export class AlertModule extends AdaptableModuleBase {
20
18
  constructor(api) {
21
19
  super(ModuleConstants.AlertModuleId, ModuleConstants.AlertModuleFriendlyName, 'alert', 'AlertPopup', 'Get notified when things happen in Adaptable that you need to know about', api);
20
+ }
21
+ onAdaptableReady() {
22
22
  this.api.internalApi
23
23
  .getDataService()
24
24
  .on('CellDataChanged', (cellDataChangedInfo) => {
@@ -71,59 +71,6 @@ export class AlertModule extends AdaptableModuleBase {
71
71
  }
72
72
  return this.api.namedQueryApi.internalApi.getReferencedNamedQueryNames(queryExpression);
73
73
  }
74
- updateOldConfig() {
75
- var _a;
76
- this.updateAlertSingleToMultiplePredicates();
77
- // 1. Make all (new) Flashing Cells have a Predicate if none exists
78
- const alertState = this.api.alertApi.getAlertState();
79
- const flashingAlertDefinitions = alertState.FlashingAlertDefinitions;
80
- const flashingCellDefinitions = this.api.flashingCellApi.getFlashingCellDefinitions();
81
- if (ArrayExtensions.IsEmpty(flashingCellDefinitions) &&
82
- ArrayExtensions.IsNotNullOrEmpty(flashingAlertDefinitions)) {
83
- this.api.flashingCellApi.setFlashingCellDefinitions(flashingAlertDefinitions);
84
- // TODO: state does not clear
85
- this.api.flashingCellApi.internalApi.clearFlashingCellState();
86
- }
87
- (_a = alertState.AlertDefinitions) === null || _a === void 0 ? void 0 : _a.forEach((alertDefinition) => {
88
- // if ShowPopup then change to DisplayNotificate
89
- if (alertDefinition.AlertProperties &&
90
- alertDefinition.AlertProperties.ShowPopup &&
91
- alertDefinition.AlertProperties.ShowPopup == true &&
92
- !alertDefinition.AlertProperties.DisplayNotification) {
93
- alertDefinition.AlertProperties.DisplayNotification = true;
94
- alertDefinition.AlertProperties.ShowPopup = undefined;
95
- }
96
- // if no rule but a predicate then use that
97
- if (!alertDefinition.Rule) {
98
- if (alertDefinition.Predicate && alertDefinition.Predicate != undefined) {
99
- const predicate = alertDefinition.Predicate;
100
- alertDefinition.Rule = {
101
- Predicate: predicate,
102
- };
103
- alertDefinition.Predicate = undefined;
104
- }
105
- }
106
- else {
107
- //migrate alert definitions with `AggregationExpression` (now `AggregatedBooleanExpression`)
108
- const obsoleteAggregationExpression = alertDefinition.Rule['AggregationExpression'];
109
- if (obsoleteAggregationExpression) {
110
- alertDefinition.Rule.AggregatedBooleanExpression = obsoleteAggregationExpression;
111
- }
112
- }
113
- });
114
- }
115
- updateAlertSingleToMultiplePredicates() {
116
- const alertDefinitions = this.api.alertApi.getAlertDefinitions({
117
- includeLayoutNotAssociatedObjects: true,
118
- });
119
- alertDefinitions.forEach((alertDefinition) => {
120
- if (alertDefinition.Rule && 'Predicate' in alertDefinition.Rule) {
121
- const preparedAlertDefinition = cloneObject(alertDefinition);
122
- updateSingleToMultiplePredicates(preparedAlertDefinition.Rule);
123
- this.api.alertApi.editAlertDefinition(preparedAlertDefinition);
124
- }
125
- });
126
- }
127
74
  addContextMenuItems(menuContext) {
128
75
  const items = [];
129
76
  if (!menuContext.isRowGroupColumn && this.isModuleAvailable()) {
@@ -8,12 +8,11 @@ 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';
12
11
  export declare class CalculatedColumnModule extends AdaptableModuleBase implements IModule {
13
12
  constructor(api: AdaptableApi);
14
- handleConfigReloaded(adaptableStateReloadedInfo: AdaptableStateReloadedInfo): void;
13
+ onAdaptableReady(): void;
14
+ onAdaptableStateReloaded(): void;
15
15
  getModuleAdaptableObjects(): AdaptableObject[];
16
- updateOldConfig(): void;
17
16
  getExplicitlyReferencedColumnIds(calculatedColumn: CalculatedColumn): string[];
18
17
  getReferencedNamedQueryNames(calculatedColumn: CalculatedColumn): string[];
19
18
  private isCalculatedColumn;
@@ -11,35 +11,15 @@ export class CalculatedColumnModule extends AdaptableModuleBase {
11
11
  constructor(api) {
12
12
  super(ModuleConstants.CalculatedColumnModuleId, ModuleConstants.CalculatedColumnFriendlyName, 'chart-and-grid', 'CalculatedColumnPopup', 'Create bespoke columns whose cell value is derived dynamically from an Expression', api);
13
13
  }
14
- handleConfigReloaded(adaptableStateReloadedInfo) {
15
- // re-dispatch the CalculatedColumnReady action to recreate all the aggregated scalar columns
16
- this.api.internalApi.dispatchReduxAction(CalculatedColumnRedux.CalculatedColumnReady(this.api.calculatedColumnApi.getCalculatedColumnState()));
14
+ onAdaptableReady() {
15
+ this.api.calculatedColumnApi.refreshAggregatedCalculatedColumns();
16
+ }
17
+ onAdaptableStateReloaded() {
18
+ this.api.calculatedColumnApi.refreshAggregatedCalculatedColumns();
17
19
  }
18
20
  getModuleAdaptableObjects() {
19
21
  return this.api.calculatedColumnApi.getCalculatedColumns();
20
22
  }
21
- updateOldConfig() {
22
- const calcColumns = this.api.calculatedColumnApi.getCalculatedColumns();
23
- let oldCalculatedColumns = [];
24
- calcColumns.forEach((cc) => {
25
- if (cc.ColumnExpression && !cc.Query) {
26
- cc.Query = {
27
- ScalarExpression: cc.ColumnExpression,
28
- };
29
- cc.ColumnExpression = undefined;
30
- oldCalculatedColumns.push(cc);
31
- this.api.logWarn(`Updating incorrect Predefined Config for Calculated Column: ${cc.ColumnId}`);
32
- }
33
- if (!cc.CalculatedColumnSettings) {
34
- cc.CalculatedColumnSettings = {
35
- DataType: 'Number',
36
- };
37
- oldCalculatedColumns.push(cc);
38
- this.api.logWarn(`Updating incorrect Predefined Config for Calculated Column: ${cc.ColumnId}`);
39
- }
40
- });
41
- oldCalculatedColumns.forEach((oldCalcCol) => this.api.calculatedColumnApi.editCalculatedColumn(oldCalcCol));
42
- }
43
23
  getExplicitlyReferencedColumnIds(calculatedColumn) {
44
24
  var _a;
45
25
  return ((_a = this.api.expressionApi.getColumnsFromExpression(this.api.expressionApi.getAdaptableQueryExpression(calculatedColumn.Query))) !== null && _a !== void 0 ? _a : []);
@@ -5,7 +5,6 @@ import { ChartDefinition } from '../types';
5
5
  import { ExternalChartDefinition } from '../PredefinedConfig/ChartingState';
6
6
  export declare class ChartingModule extends AdaptableModuleBase implements IModule {
7
7
  constructor(api: AdaptableApi);
8
- updateOldConfig(): void;
9
8
  isModuleAvailable(): boolean;
10
9
  getModuleAdaptableObjects(): (ChartDefinition | ExternalChartDefinition)[];
11
10
  toViewAll(): AdaptableObjectView[];
@@ -6,34 +6,14 @@ import * as ChartingRedux from '../Redux/ActionsReducers/ChartingRedux';
6
6
  import { ChartingStatusBarPopover } from '../View/Charting/ChartingStatusBarPopover';
7
7
  import { getObjectTagsViewItems } from './Utilities/getObjectTagsViewItems';
8
8
  import { isAgChartDefinition, isExternalChartDefinition, } from '../PredefinedConfig/ChartingState';
9
+ import Helper from '../Utilities/Helpers/Helper';
9
10
  export class ChartingModule extends AdaptableModuleBase {
10
11
  constructor(api) {
11
12
  super(ModuleConstants.ChartingModuleId, ModuleConstants.ChartingFriendlyName, 'chart', 'ChartPopup', 'Create AG Grid Charts in order to see Adaptable Data visually', api);
12
13
  }
13
- updateOldConfig() {
14
- const allChartDefinitions = this.api.chartingApi.getChartDefinitions();
15
- const chartDefinitionsToUpdate = allChartDefinitions
16
- .filter((chartDefinition) => 'model' in chartDefinition || !('Name' in chartDefinition))
17
- .map((charDefinition) => {
18
- const newChartDefinition = Object.assign({}, charDefinition);
19
- if ('model' in newChartDefinition) {
20
- newChartDefinition.Model = charDefinition.model;
21
- delete newChartDefinition.model;
22
- }
23
- if (!('Name' in newChartDefinition)) {
24
- // default to chartId
25
- // @ts-ignore possible because First iteration had no 'Name' and model was under 'model' key (lowercase)
26
- newChartDefinition.Name = newChartDefinition.Model.chartId;
27
- }
28
- return newChartDefinition;
29
- });
30
- if (chartDefinitionsToUpdate.length > 0) {
31
- chartDefinitionsToUpdate.forEach((chartDefinition) => this.api.chartingApi.editChartDefinition(chartDefinition));
32
- }
33
- }
34
14
  isModuleAvailable() {
35
15
  const agChartsAvailable = this.api.chartingApi.isChartingEnabled() && super.isModuleAvailable();
36
- const externalChartsAvailable = this.api.optionsApi.getChartingOptions().externalChartingOptions;
16
+ const externalChartsAvailable = Helper.objectHasKeys(this.api.optionsApi.getChartingOptions().externalChartingOptions);
37
17
  return Boolean(agChartsAvailable || externalChartsAvailable);
38
18
  }
39
19
  getModuleAdaptableObjects() {
@@ -12,8 +12,7 @@ export declare class ColumnFilterModule extends AdaptableModuleBase implements I
12
12
  getModuleAdaptableObjects(): AdaptableObject[];
13
13
  getExplicitlyReferencedColumnIds(columnFilter: ColumnFilter): string[];
14
14
  hasNamedQueryReferences(): boolean;
15
- updateOldConfig(): void;
16
- handleAdaptableReady(): void;
15
+ onAdaptableReady(): void;
17
16
  addContextMenuItems(menuContext: ContextMenuContext): AdaptableMenuItem[] | undefined;
18
17
  addColumnMenuItems(column: AdaptableColumn): AdaptableMenuItem[] | undefined;
19
18
  private getExistingColumnFilter;