@adaptabletools/adaptable 18.0.0-canary.4 → 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 (169) hide show
  1. package/agGrid.d.ts +4 -21
  2. package/agGrid.js +9 -26
  3. package/base.css +1 -1
  4. package/base.css.map +1 -1
  5. package/index.css +74 -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 +6 -0
  10. package/src/AdaptableOptions/UserInterfaceOptions.d.ts +17 -0
  11. package/src/Api/AdaptableApi.d.ts +5 -0
  12. package/src/Api/ColumnFilterApi.d.ts +0 -5
  13. package/src/Api/Events/AdaptableReady.d.ts +3 -3
  14. package/src/Api/Events/GridDataChanged.d.ts +4 -4
  15. package/src/Api/GridApi.d.ts +14 -13
  16. package/src/Api/Implementation/ActionColumnApiImpl.d.ts +2 -0
  17. package/src/Api/Implementation/ActionColumnApiImpl.js +33 -0
  18. package/src/Api/Implementation/AdaptableApiImpl.d.ts +1 -0
  19. package/src/Api/Implementation/AdaptableApiImpl.js +3 -0
  20. package/src/Api/Implementation/ApiBase.d.ts +2 -1
  21. package/src/Api/Implementation/ApiBase.js +3 -0
  22. package/src/Api/Implementation/ColumnFilterApiImpl.d.ts +0 -1
  23. package/src/Api/Implementation/ColumnFilterApiImpl.js +0 -10
  24. package/src/Api/Implementation/CommentsApiImpl.js +2 -1
  25. package/src/Api/Implementation/ConfigApiImpl.js +8 -3
  26. package/src/Api/Implementation/GridApiImpl.d.ts +3 -3
  27. package/src/Api/Implementation/GridApiImpl.js +20 -14
  28. package/src/Api/Implementation/StatusBarApiImpl.d.ts +0 -1
  29. package/src/Api/Implementation/StatusBarApiImpl.js +0 -3
  30. package/src/Api/Implementation/ToolPanelApiImpl.js +6 -6
  31. package/src/Api/Internal/ActionRowInternalApi.d.ts +5 -1
  32. package/src/Api/Internal/ActionRowInternalApi.js +106 -0
  33. package/src/Api/Internal/AdaptableInternalApi.d.ts +3 -4
  34. package/src/Api/Internal/AdaptableInternalApi.js +10 -8
  35. package/src/Api/Internal/CalculatedColumnInternalApi.d.ts +2 -0
  36. package/src/Api/Internal/CalculatedColumnInternalApi.js +70 -0
  37. package/src/Api/Internal/ColumnFilterInternalApi.d.ts +1 -0
  38. package/src/Api/Internal/ColumnFilterInternalApi.js +11 -1
  39. package/src/Api/Internal/ColumnInternalApi.d.ts +4 -1
  40. package/src/Api/Internal/ColumnInternalApi.js +12 -0
  41. package/src/Api/Internal/CustomSortInternalApi.d.ts +3 -2
  42. package/src/Api/Internal/CustomSortInternalApi.js +32 -1
  43. package/src/Api/Internal/DataSetInternalApi.js +1 -1
  44. package/src/Api/Internal/FreeTextColumnInternalApi.d.ts +2 -0
  45. package/src/Api/Internal/FreeTextColumnInternalApi.js +59 -0
  46. package/src/Api/Internal/GridFilterInternalApi.js +1 -1
  47. package/src/Api/Internal/GridInternalApi.d.ts +21 -3
  48. package/src/Api/Internal/GridInternalApi.js +126 -7
  49. package/src/Api/Internal/TeamSharingInternalApi.js +1 -1
  50. package/src/EnvVars.d.ts +3 -0
  51. package/src/EnvVars.js +4 -0
  52. package/src/PredefinedConfig/Common/AggregationColumns.d.ts +1 -0
  53. package/src/PredefinedConfig/Common/AggregationColumns.js +3 -0
  54. package/src/Redux/Store/AdaptableStore.d.ts +4 -6
  55. package/src/Redux/Store/AdaptableStore.js +22 -50
  56. package/src/Redux/Store/Interface/IAdaptableStore.d.ts +7 -1
  57. package/src/Strategy/AdaptableModuleBase.d.ts +2 -3
  58. package/src/Strategy/AdaptableModuleBase.js +4 -7
  59. package/src/Strategy/AlertModule.d.ts +1 -2
  60. package/src/Strategy/AlertModule.js +2 -55
  61. package/src/Strategy/CalculatedColumnModule.d.ts +2 -3
  62. package/src/Strategy/CalculatedColumnModule.js +5 -25
  63. package/src/Strategy/ChartingModule.d.ts +0 -1
  64. package/src/Strategy/ChartingModule.js +0 -21
  65. package/src/Strategy/ColumnFilterModule.d.ts +1 -2
  66. package/src/Strategy/ColumnFilterModule.js +1 -64
  67. package/src/Strategy/CommentsModule.d.ts +1 -0
  68. package/src/Strategy/CommentsModule.js +2 -1
  69. package/src/Strategy/CustomSortModule.js +1 -1
  70. package/src/Strategy/DashboardModule.d.ts +1 -2
  71. package/src/Strategy/DashboardModule.js +1 -8
  72. package/src/Strategy/DataChangeHistoryModule.d.ts +1 -0
  73. package/src/Strategy/DataChangeHistoryModule.js +3 -1
  74. package/src/Strategy/DataSetModule.d.ts +1 -1
  75. package/src/Strategy/DataSetModule.js +1 -1
  76. package/src/Strategy/FlashingCellModule.d.ts +1 -2
  77. package/src/Strategy/FlashingCellModule.js +2 -15
  78. package/src/Strategy/FormatColumnModule.d.ts +0 -2
  79. package/src/Strategy/FormatColumnModule.js +0 -47
  80. package/src/Strategy/FreeTextColumnModule.d.ts +0 -1
  81. package/src/Strategy/FreeTextColumnModule.js +0 -30
  82. package/src/Strategy/GridFilterModule.d.ts +0 -1
  83. package/src/Strategy/GridFilterModule.js +0 -37
  84. package/src/Strategy/Interface/IModule.d.ts +0 -1
  85. package/src/Strategy/LayoutModule.d.ts +1 -3
  86. package/src/Strategy/LayoutModule.js +6 -50
  87. package/src/Strategy/NamedQueryModule.d.ts +0 -1
  88. package/src/Strategy/NamedQueryModule.js +0 -19
  89. package/src/Strategy/PlusMinusModule.d.ts +1 -1
  90. package/src/Strategy/PlusMinusModule.js +1 -1
  91. package/src/Strategy/ScheduleModule.d.ts +1 -1
  92. package/src/Strategy/ScheduleModule.js +1 -1
  93. package/src/Strategy/ShortcutModule.d.ts +1 -1
  94. package/src/Strategy/ShortcutModule.js +1 -1
  95. package/src/Strategy/StyledColumnModule.d.ts +0 -1
  96. package/src/Strategy/StyledColumnModule.js +0 -21
  97. package/src/Strategy/TeamSharingModule.d.ts +1 -0
  98. package/src/Strategy/TeamSharingModule.js +5 -5
  99. package/src/Strategy/ToolPanelModule.d.ts +0 -1
  100. package/src/Strategy/ToolPanelModule.js +0 -23
  101. package/src/Utilities/Constants/GeneralConstants.d.ts +1 -0
  102. package/src/Utilities/Constants/GeneralConstants.js +1 -0
  103. package/src/Utilities/Helpers/AdaptableHelper.d.ts +0 -3
  104. package/src/Utilities/Helpers/AdaptableHelper.js +0 -58
  105. package/src/Utilities/Services/CellPopupService.js +0 -1
  106. package/src/Utilities/Services/LicenseService/index.d.ts +3 -0
  107. package/src/Utilities/Services/LicenseService/index.js +10 -3
  108. package/src/Utilities/Services/MetamodelService.d.ts +1 -1
  109. package/src/Utilities/Services/MetamodelService.js +6 -3
  110. package/src/Utilities/Services/RowEditService.d.ts +3 -2
  111. package/src/Utilities/Services/RowEditService.js +3 -1
  112. package/src/View/AdaptableView.js +0 -2
  113. package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/ConfigurationWizard.js +2 -2
  114. package/src/View/CalculatedColumn/utils.d.ts +1 -1
  115. package/src/View/CellSummary/CellSummaryPopup.js +1 -1
  116. package/src/View/Components/Popups/AdaptableLoadingScreen.d.ts +6 -5
  117. package/src/View/Components/Popups/AdaptableLoadingScreen.js +19 -9
  118. package/src/View/CustomSort/CustomSortSummary.js +1 -1
  119. package/src/View/DataChangeHistory/DataChangeHistoryGrid.js +1 -1
  120. package/src/View/GridFilter/GridFilterViewPanel.js +6 -2
  121. package/src/View/GridInfo/GridInfoPopup/GridInfoPopup.js +2 -3
  122. package/src/View/Layout/Wizard/LayoutWizard.js +1 -1
  123. package/src/agGrid/ActionColumnRenderer.js +4 -4
  124. package/src/agGrid/Adaptable.d.ts +3 -455
  125. package/src/agGrid/Adaptable.js +8 -5292
  126. package/src/agGrid/AdaptableAgGrid.d.ts +336 -0
  127. package/src/agGrid/AdaptableAgGrid.js +3780 -0
  128. package/src/agGrid/AdaptableLogger.js +77 -11
  129. package/src/agGrid/AgGridAdapter.d.ts +54 -0
  130. package/src/agGrid/AgGridAdapter.js +549 -0
  131. package/src/agGrid/AgGridColumnAdapter.d.ts +56 -0
  132. package/src/agGrid/AgGridColumnAdapter.js +813 -0
  133. package/src/agGrid/AgGridMenuAdapter.d.ts +28 -0
  134. package/src/agGrid/AgGridMenuAdapter.js +271 -0
  135. package/src/agGrid/AgGridOptionsService.d.ts +11 -0
  136. package/src/agGrid/AgGridOptionsService.js +50 -0
  137. package/src/agGrid/BadgeRenderer.js +1 -1
  138. package/src/agGrid/CheckboxRenderer.js +1 -1
  139. package/src/agGrid/FilterWrapper.d.ts +2 -2
  140. package/src/agGrid/FilterWrapper.js +1 -1
  141. package/src/agGrid/attachAddaptableColumnTypes.d.ts +12 -12
  142. package/src/agGrid/defaultAdaptableOptions.d.ts +3 -0
  143. package/src/{Utilities/Defaults/DefaultAdaptableOptions.js → agGrid/defaultAdaptableOptions.js} +69 -8
  144. package/src/agGrid/editors/AdaptableDateEditor/index.js +2 -2
  145. package/src/agGrid/editors/AdaptableNumberEditor/index.js +2 -2
  146. package/src/components/Datepicker/index.d.ts +1 -1
  147. package/src/components/InfiniteTable/index.js +2 -2
  148. package/src/components/Modal/index.d.ts +1 -0
  149. package/src/components/Modal/index.js +4 -3
  150. package/src/env.js +2 -2
  151. package/src/metamodel/adaptable.metamodel.d.ts +9 -9
  152. package/src/metamodel/adaptable.metamodel.js +7 -0
  153. package/src/migration/AdaptableUpgradeHelper.d.ts +38 -0
  154. package/src/migration/AdaptableUpgradeHelper.js +48 -0
  155. package/src/migration/VersionUpgrade.d.ts +8 -0
  156. package/src/migration/VersionUpgrade.js +11 -0
  157. package/src/migration/VersionUpgrade17.d.ts +18 -0
  158. package/src/migration/VersionUpgrade17.js +342 -0
  159. package/src/migration/VersionUpgrade18.d.ts +5 -0
  160. package/src/migration/VersionUpgrade18.js +6 -0
  161. package/src/types.d.ts +5 -4
  162. package/tsconfig.esm.tsbuildinfo +1 -1
  163. package/src/Utilities/Defaults/DefaultAdaptableOptions.d.ts +0 -2
  164. package/src/Utilities/Services/Interface/IRowEditService.d.ts +0 -3
  165. package/src/Utilities/Services/Interface/IRowEditService.js +0 -1
  166. package/src/agGrid/agGridHelper.d.ts +0 -57
  167. package/src/agGrid/agGridHelper.js +0 -686
  168. package/src/agGrid/agGridMenuHelper.d.ts +0 -46
  169. package/src/agGrid/agGridMenuHelper.js +0 -668
@@ -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[];
@@ -11,27 +11,6 @@ export class ChartingModule extends AdaptableModuleBase {
11
11
  constructor(api) {
12
12
  super(ModuleConstants.ChartingModuleId, ModuleConstants.ChartingFriendlyName, 'chart', 'ChartPopup', 'Create AG Grid Charts in order to see Adaptable Data visually', api);
13
13
  }
14
- updateOldConfig() {
15
- const allChartDefinitions = this.api.chartingApi.getChartDefinitions();
16
- const chartDefinitionsToUpdate = allChartDefinitions
17
- .filter((chartDefinition) => 'model' in chartDefinition || !('Name' in chartDefinition))
18
- .map((charDefinition) => {
19
- const newChartDefinition = Object.assign({}, charDefinition);
20
- if ('model' in newChartDefinition) {
21
- newChartDefinition.Model = charDefinition.model;
22
- delete newChartDefinition.model;
23
- }
24
- if (!('Name' in newChartDefinition)) {
25
- // default to chartId
26
- // @ts-ignore possible because First iteration had no 'Name' and model was under 'model' key (lowercase)
27
- newChartDefinition.Name = newChartDefinition.Model.chartId;
28
- }
29
- return newChartDefinition;
30
- });
31
- if (chartDefinitionsToUpdate.length > 0) {
32
- chartDefinitionsToUpdate.forEach((chartDefinition) => this.api.chartingApi.editChartDefinition(chartDefinition));
33
- }
34
- }
35
14
  isModuleAvailable() {
36
15
  const agChartsAvailable = this.api.chartingApi.isChartingEnabled() && super.isModuleAvailable();
37
16
  const externalChartsAvailable = Helper.objectHasKeys(this.api.optionsApi.getChartingOptions().externalChartingOptions);
@@ -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;
@@ -28,70 +28,7 @@ export class ColumnFilterModule extends AdaptableModuleBase {
28
28
  hasNamedQueryReferences() {
29
29
  return false;
30
30
  }
31
- updateOldConfig() {
32
- // Note: have updated Dashboard and Status bar but NOT Tool Panels
33
- // Update Module Buttons
34
- let updateModuleButtons = false;
35
- let moduleButtons = this.api.dashboardApi.getModuleButtons();
36
- if (!moduleButtons.includes('ColumnFilter')) {
37
- moduleButtons = moduleButtons.map((moduleButton) => {
38
- if (moduleButton == 'Filter') {
39
- updateModuleButtons = true;
40
- return 'ColumnFilter';
41
- }
42
- return moduleButton;
43
- });
44
- }
45
- if (updateModuleButtons) {
46
- this.api.dashboardApi.setModuleButtons(moduleButtons);
47
- }
48
- // Update Toolbars
49
- let updateTabs = false;
50
- const tabs = this.api.dashboardApi.getTabs().map((tab) => {
51
- if (tab.Toolbars.includes('Filter') && !tab.Toolbars.includes('ColumnFilter')) {
52
- updateTabs = true;
53
- return Object.assign(Object.assign({}, tab), {
54
- // replace with 'GridFilter'
55
- Toolbars: tab.Toolbars.map((t) => (t == 'Filter' ? 'ColumnFilter' : t)) });
56
- }
57
- return tab;
58
- });
59
- if (updateTabs) {
60
- this.api.dashboardApi.setTabs(tabs);
61
- }
62
- // - move pinned toolbars
63
- let updatePinnedToolbars = false;
64
- let pinnedToolbars = this.api.dashboardApi.getPinnedToolbars();
65
- if (pinnedToolbars && !(pinnedToolbars === null || pinnedToolbars === void 0 ? void 0 : pinnedToolbars.includes('ColumnFilter'))) {
66
- pinnedToolbars = pinnedToolbars.map((pinnedToolbar) => {
67
- if (pinnedToolbar == 'Filter') {
68
- updatePinnedToolbars = true;
69
- return 'ColumnFilter';
70
- }
71
- return pinnedToolbar;
72
- });
73
- }
74
- if (updatePinnedToolbars) {
75
- this.api.dashboardApi.setPinnedToolbars(pinnedToolbars);
76
- }
77
- // Update Status Bar
78
- let updateStatusBars = false;
79
- const statusBars = this.api.statusBarApi
80
- .getAdaptableStatusBars()
81
- .map((panel) => {
82
- return Object.assign(Object.assign({}, panel), { StatusBarPanels: panel.StatusBarPanels.map((panel) => {
83
- if (panel === 'Filter') {
84
- updateStatusBars = true;
85
- return 'ColumnFilter';
86
- }
87
- return panel;
88
- }) });
89
- });
90
- if (updateStatusBars) {
91
- this.api.statusBarApi.setStatusBarPanels(statusBars);
92
- }
93
- }
94
- handleAdaptableReady() {
31
+ onAdaptableReady() {
95
32
  if (this.api.optionsApi.getColumnFilterOptions().quickFilterOptions.showQuickFilter == false) {
96
33
  this.api.columnFilterApi.hideQuickFilterBar();
97
34
  }
@@ -9,6 +9,7 @@ import { IModule } from './Interface/IModule';
9
9
  export declare class CommentsModule extends AdaptableModuleBase implements IModule {
10
10
  private adaptable;
11
11
  constructor(api: AdaptableApi);
12
+ onAdaptableReady(): void;
12
13
  isModuleAvailable(): boolean;
13
14
  private loadComments;
14
15
  addContextMenuItems(menuContext: ContextMenuContext): AdaptableMenuItem[] | undefined;
@@ -9,7 +9,8 @@ export class CommentsModule extends AdaptableModuleBase {
9
9
  constructor(api) {
10
10
  super(ModuleConstants.CommentsModuleId, ModuleConstants.CommentsFriendlyName, 'comments', 'CommentsPopup', 'comments', api);
11
11
  this.adaptable = api.internalApi.getAdaptableInstance();
12
- this.adaptable.api.eventApi.on('AdaptableReady', () => this.handleAdaptableReady());
12
+ }
13
+ onAdaptableReady() {
13
14
  this.loadComments();
14
15
  }
15
16
  isModuleAvailable() {
@@ -25,7 +25,7 @@ export class CustomSortModule extends AdaptableModuleBase {
25
25
  .find((x) => x.ColumnId == column.columnId);
26
26
  let label = customSort ? 'Edit ' : 'Create ';
27
27
  // dont show a menu item if there is a custom sort that uses a comparer function
28
- const columnSortComparer = this.api.customSortApi.internalApi.getCustomSortComparer(column);
28
+ const columnSortComparer = this.api.customSortApi.internalApi.getCustomSortComparer(column.columnId);
29
29
  if (columnSortComparer) {
30
30
  return undefined;
31
31
  }
@@ -4,8 +4,7 @@ import { IModule } from './Interface/IModule';
4
4
  import { AdaptableApi } from '../Api/AdaptableApi';
5
5
  export declare class DashboardModule extends AdaptableModuleBase implements IModule {
6
6
  constructor(api: AdaptableApi);
7
- updateOldConfig(): void;
8
- handleAdaptableReady(): void;
7
+ onAdaptableReady(): void;
9
8
  addColumnMenuItems(): AdaptableMenuItem[] | undefined;
10
9
  addContextMenuItems(menuContext: ContextMenuContext): AdaptableMenuItem[] | undefined;
11
10
  private buildMenuItems;
@@ -5,14 +5,7 @@ export class DashboardModule extends AdaptableModuleBase {
5
5
  constructor(api) {
6
6
  super(ModuleConstants.DashboardModuleId, ModuleConstants.DashboardFriendlyName, 'dashboard', 'DashboardPopup', 'The Dashboard - usually placed above the Grid - is designed to provide quick access to commonly required AdapTable functionalty', api);
7
7
  }
8
- updateOldConfig() {
9
- let dashboardState = this.api.dashboardApi.getDashboardState();
10
- if (dashboardState.VisibleButtons) {
11
- this.api.logWarn(`Updating Obsolete VisibleButtons Config for DashboardState: [${dashboardState.VisibleButtons}]`);
12
- this.api.dashboardApi.setModuleButtons(dashboardState.VisibleButtons);
13
- }
14
- }
15
- handleAdaptableReady() {
8
+ onAdaptableReady() {
16
9
  // we used to create a default tab here but we no longer do // this.api.internalApi.setDefaultDashboardTab();
17
10
  // this handler reacts to the 'AdaptableReady' event,
18
11
  // but so do all the other possible handlers of the 'DashboardChanged' event
@@ -3,6 +3,7 @@ import { AdaptableModuleView, IModule } from './Interface/IModule';
3
3
  import { AdaptableApi } from '../Api/AdaptableApi';
4
4
  export declare class DataChangeHistoryModule extends AdaptableModuleBase implements IModule {
5
5
  constructor(api: AdaptableApi);
6
+ onAdaptableReady(): void;
6
7
  isModuleAvailable(): boolean;
7
8
  getPopupMaxWidth(): number;
8
9
  hasNamedQueryReferences(): boolean;
@@ -6,6 +6,8 @@ import { ModuleNames } from '@ag-grid-community/core';
6
6
  export class DataChangeHistoryModule extends AdaptableModuleBase {
7
7
  constructor(api) {
8
8
  super(ModuleConstants.DataChangeHistoryModuleId, ModuleConstants.DataChangeHistoryFriendlyName, 'target', 'DataChangeHistoryPopup', 'Provides an overview of all previous changes, giving the possibility to undo specific changes', api);
9
+ }
10
+ onAdaptableReady() {
9
11
  this.api.internalApi
10
12
  .getDataService()
11
13
  .on('CellDataChanged', (cellDataChangedInfo) => {
@@ -20,7 +22,7 @@ export class DataChangeHistoryModule extends AdaptableModuleBase {
20
22
  const isAdaptableModuleAvailable = super.isModuleAvailable();
21
23
  const isAgGridModuleAvailable = this.api.internalApi
22
24
  .getAdaptableInstance()
23
- .isAgGridModulePresent(ModuleNames.ClientSideRowModelModule);
25
+ .agGridAdapter.isModulePresent(ModuleNames.ClientSideRowModelModule);
24
26
  if (isAdaptableModuleAvailable && !isAgGridModuleAvailable) {
25
27
  this.api.logWarn(`Data Change History is NOT available due to missing required AG Grid module: ${ModuleNames.ClientSideRowModelModule}`);
26
28
  }
@@ -5,7 +5,7 @@ import { AdaptableObject } from '../PredefinedConfig/Common/AdaptableObject';
5
5
  import { DataSet } from '../AdaptableOptions/DataSetOptions';
6
6
  export declare class DataSetModule extends AdaptableModuleBase implements IModule {
7
7
  constructor(api: AdaptableApi);
8
- handleAdaptableReady(): void;
8
+ onAdaptableReady(): void;
9
9
  getModuleAdaptableObjects(): AdaptableObject[];
10
10
  hasNamedQueryReferences(): boolean;
11
11
  toView(dataSet: DataSet): AdaptableObjectView;
@@ -8,7 +8,7 @@ export class DataSetModule extends AdaptableModuleBase {
8
8
  constructor(api) {
9
9
  super(ModuleConstants.DataSetModuleId, ModuleConstants.DataSetFriendlyName, 'data-set', 'DataSetPopup', 'Update the entire data source in AdapTable using pre-populated data sets', api);
10
10
  }
11
- handleAdaptableReady() {
11
+ onAdaptableReady() {
12
12
  this.api.dataSetApi.getDataSets().forEach((ds) => {
13
13
  if (!ds.Uuid) {
14
14
  ds.Uuid = createUuid();
@@ -9,8 +9,7 @@ import { AdaptableObject } from '../PredefinedConfig/Common/AdaptableObject';
9
9
  import { FlashingCellDefinition } from '../PredefinedConfig/FlashingCellState';
10
10
  export declare class FlashingCellModule extends AdaptableModuleBase implements IModule {
11
11
  constructor(api: AdaptableApi);
12
- updateOldConfig(): void;
13
- private updateFlashingCellSingleToMultiplePredicates;
12
+ onAdaptableReady(): void;
14
13
  getModuleAdaptableObjects(config?: {
15
14
  includeLayoutNotAssociatedObjects?: boolean;
16
15
  }): AdaptableObject[];
@@ -11,11 +11,11 @@ import { FlashingCellWizard } from '../View/FlashingCell/Wizard/FlashingCellWiza
11
11
  import { getObjectTagsViewItems } from './Utilities/getObjectTagsViewItems';
12
12
  import { getFlashingTargetViewItems } from './Utilities/FlashingCell/getFlashingTargetViewItems';
13
13
  import { getFlashingCellStyleViewItems } from './Utilities/FlashingCell/getFlashingCellStyleViewItems';
14
- import { cloneObject } from '../Utilities/Helpers/Helper';
15
- import { updateSingleToMultiplePredicates } from './Utilities/updateSingleToMultiplePredicates';
16
14
  export class FlashingCellModule extends AdaptableModuleBase {
17
15
  constructor(api) {
18
16
  super(ModuleConstants.FlashingCellModuleId, ModuleConstants.FlashingCellFriendlyName, 'lightning', 'FlashingAlert', 'Flash cells when they change', api);
17
+ }
18
+ onAdaptableReady() {
19
19
  this.api.internalApi
20
20
  .getDataService()
21
21
  .on('CellDataChanged', (cellDataChangedInfo) => {
@@ -38,19 +38,6 @@ export class FlashingCellModule extends AdaptableModuleBase {
38
38
  this.handleCellDataChanged(cellDataChangedInfo);
39
39
  });
40
40
  }
41
- updateOldConfig() {
42
- this.updateFlashingCellSingleToMultiplePredicates();
43
- }
44
- updateFlashingCellSingleToMultiplePredicates() {
45
- const flashingCells = this.api.flashingCellApi.getFlashingCellDefinitions();
46
- flashingCells.forEach((flashingCell) => {
47
- if (flashingCell.Rule && 'Predicate' in flashingCell.Rule) {
48
- const preparedFlashingCell = cloneObject(flashingCell);
49
- updateSingleToMultiplePredicates(preparedFlashingCell.Rule);
50
- this.api.flashingCellApi.editFlashingCellDefinition(preparedFlashingCell);
51
- }
52
- });
53
- }
54
41
  getModuleAdaptableObjects(config) {
55
42
  return this.api.flashingCellApi.getFlashingCellDefinitions(config);
56
43
  }
@@ -13,8 +13,6 @@ export declare class FormatColumnModule extends AdaptableModuleBase implements I
13
13
  }): AdaptableObject[];
14
14
  getExplicitlyReferencedColumnIds(formatColumn: FormatColumn): string[];
15
15
  getReferencedNamedQueryNames(formatColumn: FormatColumn): string[];
16
- updateOldConfig(): void;
17
- private updateFormatColumnSingleToMultiplePredicates;
18
16
  addColumnMenuItems(column: AdaptableColumn): AdaptableMenuItem[] | undefined;
19
17
  getTeamSharingAction(): TeamSharingImportInfo<FormatColumn>;
20
18
  toView(formatColumn: FormatColumn): AdaptableObjectView;
@@ -10,8 +10,6 @@ import { getFormatColumnStyleViewItems } from './Utilities/FormatColumn/getForma
10
10
  import { getObjectTagsViewItems } from './Utilities/getObjectTagsViewItems';
11
11
  import { getRuleViewItems } from './Utilities/getRuleViewItems';
12
12
  import { MoveFormatColumn } from '../View/FormatColumn/MoveFormatColumn';
13
- import { cloneObject } from '../Utilities/Helpers/Helper';
14
- import { updateSingleToMultiplePredicates } from './Utilities/updateSingleToMultiplePredicates';
15
13
  import ArrayExtensions from '../Utilities/Extensions/ArrayExtensions';
16
14
  export class FormatColumnModule extends AdaptableModuleBase {
17
15
  constructor(api) {
@@ -39,51 +37,6 @@ export class FormatColumnModule extends AdaptableModuleBase {
39
37
  }
40
38
  return this.api.namedQueryApi.internalApi.getReferencedNamedQueryNames(queryExpression);
41
39
  }
42
- updateOldConfig() {
43
- this.updateFormatColumnSingleToMultiplePredicates();
44
- // update ConditionalStyle StatusBarPanel
45
- const oldStatusBars = this.api.internalApi.getState().StatusBar.StatusBars;
46
- let replaceConditionalStyleStatusBar = false;
47
- const newStatusBars = oldStatusBars.map((statusBar) => (Object.assign(Object.assign({}, statusBar), { StatusBarPanels: [
48
- ...new Set(statusBar.StatusBarPanels.map((statusBarPanel) => {
49
- if (statusBarPanel === 'ConditionalStyle') {
50
- replaceConditionalStyleStatusBar = true;
51
- return 'FormatColumn';
52
- }
53
- return statusBarPanel;
54
- })),
55
- ] })));
56
- if (replaceConditionalStyleStatusBar) {
57
- this.api.statusBarApi.setStatusBarPanels(newStatusBars);
58
- }
59
- // update ConditionalStyle dashboard buttons
60
- const dashboardModuleButtons = this.api.internalApi.getState().Dashboard.ModuleButtons;
61
- if (dashboardModuleButtons.includes('ConditionalStyle')) {
62
- dashboardModuleButtons[dashboardModuleButtons.indexOf('ConditionalStyle')] = 'FormatColumn';
63
- const test2 = dashboardModuleButtons;
64
- this.api.dashboardApi.setModuleButtons([
65
- ...new Set(dashboardModuleButtons),
66
- ]);
67
- }
68
- // update ConditionalStyle toolPanel buttons
69
- const toolPanelModuleButtons = this.api.internalApi.getState().ToolPanel.ModuleButtons;
70
- if (toolPanelModuleButtons.includes('ConditionalStyle')) {
71
- toolPanelModuleButtons[toolPanelModuleButtons.indexOf('ConditionalStyle')] = 'FormatColumn';
72
- this.api.toolPanelApi.setModuleButtons([
73
- ...new Set(dashboardModuleButtons),
74
- ]);
75
- }
76
- }
77
- updateFormatColumnSingleToMultiplePredicates() {
78
- const formatColumns = this.api.formatColumnApi.getFormatColumns();
79
- formatColumns.forEach((formatColumn) => {
80
- if (formatColumn.Rule && 'Predicate' in formatColumn.Rule) {
81
- const preparedFormatColumn = cloneObject(formatColumn);
82
- updateSingleToMultiplePredicates(preparedFormatColumn.Rule);
83
- this.api.formatColumnApi.editFormatColumn(preparedFormatColumn);
84
- }
85
- });
86
- }
87
40
  addColumnMenuItems(column) {
88
41
  let returnColumnMenuItems = [];
89
42
  if (column && this.isModuleEditable() && !column.isSparkline) {
@@ -12,7 +12,6 @@ export declare class FreeTextColumnModule extends AdaptableModuleBase implements
12
12
  isModuleAvailable(): boolean;
13
13
  getModuleAdaptableObjects(): FreeTextColumn[];
14
14
  hasNamedQueryReferences(): boolean;
15
- updateOldConfig(): void;
16
15
  addColumnMenuItems(column: AdaptableColumn): AdaptableMenuItem[] | undefined;
17
16
  getTeamSharingAction(): TeamSharingImportInfo<FreeTextColumn>;
18
17
  toView(freeTextColumn: FreeTextColumn): AdaptableObjectView;
@@ -17,36 +17,6 @@ export class FreeTextColumnModule extends AdaptableModuleBase {
17
17
  hasNamedQueryReferences() {
18
18
  return false;
19
19
  }
20
- updateOldConfig() {
21
- // make sure all default to type string
22
- const allFreeTextColumns = this.getModuleAdaptableObjects();
23
- for (const freeTextColumn of allFreeTextColumns) {
24
- const unTypedCol = freeTextColumn;
25
- if (unTypedCol.DataType) {
26
- const dataType = unTypedCol.DataType;
27
- delete unTypedCol['DataType'];
28
- if (!freeTextColumn.FreeTextColumnSettings) {
29
- freeTextColumn.FreeTextColumnSettings = {
30
- DataType: dataType,
31
- };
32
- }
33
- else {
34
- freeTextColumn.FreeTextColumnSettings.DataType = dataType;
35
- }
36
- this.api.freeTextColumnApi.editFreeTextColumn(freeTextColumn);
37
- }
38
- if (!freeTextColumn.FreeTextColumnSettings) {
39
- freeTextColumn.FreeTextColumnSettings = {
40
- DataType: 'String',
41
- };
42
- this.api.freeTextColumnApi.editFreeTextColumn(freeTextColumn);
43
- }
44
- if (!freeTextColumn.FreeTextColumnSettings.DataType) {
45
- freeTextColumn.FreeTextColumnSettings.DataType = 'String';
46
- this.api.freeTextColumnApi.editFreeTextColumn(freeTextColumn);
47
- }
48
- }
49
- }
50
20
  addColumnMenuItems(column) {
51
21
  if (column && this.isModuleEditable()) {
52
22
  if (this.api.freeTextColumnApi
@@ -3,6 +3,5 @@ import { AdaptableModuleView, IModule } from './Interface/IModule';
3
3
  import { AdaptableModuleBase } from './AdaptableModuleBase';
4
4
  export declare class GridFilterModule extends AdaptableModuleBase implements IModule {
5
5
  constructor(api: AdaptableApi);
6
- updateOldConfig(): void;
7
6
  getViewProperties(): AdaptableModuleView;
8
7
  }
@@ -2,47 +2,10 @@ import { AdaptableModuleBase } from './AdaptableModuleBase';
2
2
  import * as ModuleConstants from '../Utilities/Constants/ModuleConstants';
3
3
  import { EditGridFilterButton } from '../View/NamedQuery/EditCurrentQueryButton';
4
4
  import { GridFilterStatusbar } from '../View/GridFilter/GridFilterStatusbar';
5
- import StringExtensions from '../Utilities/Extensions/StringExtensions';
6
5
  export class GridFilterModule extends AdaptableModuleBase {
7
6
  constructor(api) {
8
7
  super(ModuleConstants.GridFilterModuleId, ModuleConstants.GridFilterFriendlyName, 'filter-list', 'GridFilterPopup', 'Controls the Grid Filter funtionality', api);
9
8
  }
10
- updateOldConfig() {
11
- var _a, _b;
12
- const oldQueryState = this.api.internalApi.getAdaptableState().Query;
13
- // - move query to current layout
14
- const expression = oldQueryState.CurrentQuery;
15
- if (expression &&
16
- StringExtensions.IsNullOrEmpty(this.api.gridFilterApi.getCurrentGridFilterExpression())) {
17
- this.api.gridFilterApi.setGridFilterExpression(expression);
18
- }
19
- // - move dashboard/toolbar
20
- let updateTabs = false;
21
- const tabs = this.api.dashboardApi.getTabs().map((tab) => {
22
- if (tab.Toolbars.includes('Query')) {
23
- updateTabs = true;
24
- return Object.assign(Object.assign({}, tab), {
25
- // replace with 'GridFilter'
26
- Toolbars: tab.Toolbars.map((t) => (t == 'Query' ? 'GridFilter' : t)) });
27
- }
28
- return tab;
29
- });
30
- if (updateTabs) {
31
- this.api.dashboardApi.setTabs(tabs);
32
- }
33
- // - move pinned toolbars
34
- let updatePinnedToolbars = false;
35
- const pinnedToolbars = (_b = (_a = this.api.dashboardApi.getPinnedToolbars()) === null || _a === void 0 ? void 0 : _a.map) === null || _b === void 0 ? void 0 : _b.call(_a, (pinnedToolbar) => {
36
- if (pinnedToolbar == 'Query') {
37
- updatePinnedToolbars = true;
38
- return 'GridFilter';
39
- }
40
- return pinnedToolbar;
41
- });
42
- if (updatePinnedToolbars) {
43
- this.api.dashboardApi.setPinnedToolbars(pinnedToolbars);
44
- }
45
- }
46
9
  getViewProperties() {
47
10
  return {
48
11
  getStatusBarPanelProps: () => {
@@ -156,7 +156,6 @@ export interface IModule {
156
156
  getModuleFreeTextColumnReferences(): FreeTextColumn[];
157
157
  getPopupMaxWidth(): number | undefined;
158
158
  canBeAssociatedWithLayouts(): boolean;
159
- updateOldConfig(): void;
160
159
  /**
161
160
  * The following view options are used to render adaptable objects and
162
161
  * module general views.
@@ -10,13 +10,11 @@ import { AdaptableObject } from '../PredefinedConfig/Common/AdaptableObject';
10
10
  export declare class LayoutModule extends AdaptableModuleBase implements IModule {
11
11
  protected LayoutState: LayoutState;
12
12
  constructor(api: AdaptableApi);
13
- updateOldConfig(): void;
14
- private clearUnsuportedFeaturesFromLayout;
13
+ onAdaptableReady(): void;
15
14
  getModuleAdaptableObjects(): AdaptableObject[];
16
15
  getExplicitlyReferencedColumnIds(layout: Layout): string[];
17
16
  getTeamSharingReferences(adaptableObject: AdaptableObject): TeamSharingReferences;
18
17
  hasNamedQueryReferences(): boolean;
19
- handleAdaptableReady(): void;
20
18
  addColumnMenuItems(column: AdaptableColumn): AdaptableMenuItem[] | undefined;
21
19
  addContextMenuItems(menuContext: ContextMenuContext): AdaptableMenuItem[] | undefined;
22
20
  private createViewPivotItemsMenuItem;