@adaptabletools/adaptable 18.0.0-canary.4 → 18.0.0-canary.6
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.
- package/agGrid.d.ts +4 -21
- package/agGrid.js +9 -26
- package/base.css +1 -1
- package/base.css.map +1 -1
- package/index.css +74 -68
- package/index.css.map +1 -1
- package/package.json +3 -4
- package/src/AdaptableInterfaces/IAdaptable.d.ts +55 -109
- package/src/AdaptableOptions/AdaptableOptions.d.ts +6 -0
- package/src/AdaptableOptions/UserInterfaceOptions.d.ts +17 -0
- package/src/Api/AdaptableApi.d.ts +5 -0
- package/src/Api/ColumnFilterApi.d.ts +0 -5
- package/src/Api/Events/AdaptableReady.d.ts +3 -3
- package/src/Api/Events/GridDataChanged.d.ts +4 -4
- package/src/Api/GridApi.d.ts +14 -13
- package/src/Api/Implementation/ActionColumnApiImpl.d.ts +2 -0
- package/src/Api/Implementation/ActionColumnApiImpl.js +33 -0
- package/src/Api/Implementation/AdaptableApiImpl.d.ts +1 -0
- package/src/Api/Implementation/AdaptableApiImpl.js +3 -0
- package/src/Api/Implementation/ApiBase.d.ts +2 -1
- package/src/Api/Implementation/ApiBase.js +3 -0
- package/src/Api/Implementation/ColumnFilterApiImpl.d.ts +0 -1
- package/src/Api/Implementation/ColumnFilterApiImpl.js +0 -10
- package/src/Api/Implementation/CommentsApiImpl.js +2 -1
- package/src/Api/Implementation/ConfigApiImpl.js +8 -3
- package/src/Api/Implementation/GridApiImpl.d.ts +3 -3
- package/src/Api/Implementation/GridApiImpl.js +20 -14
- package/src/Api/Implementation/StatusBarApiImpl.d.ts +0 -1
- package/src/Api/Implementation/StatusBarApiImpl.js +0 -3
- package/src/Api/Implementation/ToolPanelApiImpl.js +6 -6
- package/src/Api/Internal/ActionRowInternalApi.d.ts +5 -1
- package/src/Api/Internal/ActionRowInternalApi.js +106 -0
- package/src/Api/Internal/AdaptableInternalApi.d.ts +3 -4
- package/src/Api/Internal/AdaptableInternalApi.js +10 -8
- package/src/Api/Internal/CalculatedColumnInternalApi.d.ts +2 -0
- package/src/Api/Internal/CalculatedColumnInternalApi.js +70 -0
- package/src/Api/Internal/ColumnFilterInternalApi.d.ts +1 -0
- package/src/Api/Internal/ColumnFilterInternalApi.js +11 -1
- package/src/Api/Internal/ColumnInternalApi.d.ts +4 -1
- package/src/Api/Internal/ColumnInternalApi.js +12 -0
- package/src/Api/Internal/CustomSortInternalApi.d.ts +3 -2
- package/src/Api/Internal/CustomSortInternalApi.js +32 -1
- package/src/Api/Internal/DataSetInternalApi.js +1 -1
- package/src/Api/Internal/FreeTextColumnInternalApi.d.ts +2 -0
- package/src/Api/Internal/FreeTextColumnInternalApi.js +59 -0
- package/src/Api/Internal/GridFilterInternalApi.js +1 -1
- package/src/Api/Internal/GridInternalApi.d.ts +21 -3
- package/src/Api/Internal/GridInternalApi.js +126 -7
- package/src/Api/Internal/TeamSharingInternalApi.js +1 -1
- package/src/EnvVars.d.ts +3 -0
- package/src/EnvVars.js +4 -0
- package/src/PredefinedConfig/Common/AggregationColumns.d.ts +1 -0
- package/src/PredefinedConfig/Common/AggregationColumns.js +3 -0
- package/src/PredefinedConfig/Common/DataUpdateConfig.d.ts +8 -0
- package/src/Redux/Store/AdaptableStore.d.ts +4 -6
- package/src/Redux/Store/AdaptableStore.js +22 -50
- package/src/Redux/Store/Interface/IAdaptableStore.d.ts +7 -1
- package/src/Strategy/AdaptableModuleBase.d.ts +2 -3
- package/src/Strategy/AdaptableModuleBase.js +4 -7
- package/src/Strategy/AlertModule.d.ts +1 -2
- package/src/Strategy/AlertModule.js +2 -55
- package/src/Strategy/CalculatedColumnModule.d.ts +2 -3
- package/src/Strategy/CalculatedColumnModule.js +5 -25
- package/src/Strategy/ChartingModule.d.ts +0 -1
- package/src/Strategy/ChartingModule.js +0 -21
- package/src/Strategy/ColumnFilterModule.d.ts +1 -2
- package/src/Strategy/ColumnFilterModule.js +1 -64
- package/src/Strategy/CommentsModule.d.ts +1 -0
- package/src/Strategy/CommentsModule.js +2 -1
- package/src/Strategy/CustomSortModule.js +1 -1
- package/src/Strategy/DashboardModule.d.ts +1 -2
- package/src/Strategy/DashboardModule.js +1 -8
- package/src/Strategy/DataChangeHistoryModule.d.ts +1 -0
- package/src/Strategy/DataChangeHistoryModule.js +3 -1
- package/src/Strategy/DataSetModule.d.ts +1 -1
- package/src/Strategy/DataSetModule.js +1 -1
- package/src/Strategy/FlashingCellModule.d.ts +1 -2
- package/src/Strategy/FlashingCellModule.js +2 -15
- package/src/Strategy/FormatColumnModule.d.ts +0 -2
- package/src/Strategy/FormatColumnModule.js +0 -47
- package/src/Strategy/FreeTextColumnModule.d.ts +0 -1
- package/src/Strategy/FreeTextColumnModule.js +0 -30
- package/src/Strategy/GridFilterModule.d.ts +0 -1
- package/src/Strategy/GridFilterModule.js +0 -37
- package/src/Strategy/Interface/IModule.d.ts +0 -1
- package/src/Strategy/LayoutModule.d.ts +1 -3
- package/src/Strategy/LayoutModule.js +6 -50
- package/src/Strategy/NamedQueryModule.d.ts +0 -1
- package/src/Strategy/NamedQueryModule.js +0 -19
- package/src/Strategy/PlusMinusModule.d.ts +1 -1
- package/src/Strategy/PlusMinusModule.js +1 -1
- package/src/Strategy/ScheduleModule.d.ts +1 -1
- package/src/Strategy/ScheduleModule.js +1 -1
- package/src/Strategy/ShortcutModule.d.ts +1 -1
- package/src/Strategy/ShortcutModule.js +1 -1
- package/src/Strategy/StyledColumnModule.d.ts +0 -1
- package/src/Strategy/StyledColumnModule.js +0 -21
- package/src/Strategy/TeamSharingModule.d.ts +1 -0
- package/src/Strategy/TeamSharingModule.js +5 -5
- package/src/Strategy/ToolPanelModule.d.ts +0 -1
- package/src/Strategy/ToolPanelModule.js +0 -23
- package/src/Utilities/Constants/GeneralConstants.d.ts +1 -0
- package/src/Utilities/Constants/GeneralConstants.js +1 -0
- package/src/Utilities/Helpers/AdaptableHelper.d.ts +0 -3
- package/src/Utilities/Helpers/AdaptableHelper.js +0 -58
- package/src/Utilities/Services/CellPopupService.js +0 -1
- package/src/Utilities/Services/LicenseService/index.d.ts +3 -0
- package/src/Utilities/Services/LicenseService/index.js +10 -3
- package/src/Utilities/Services/MetamodelService.d.ts +1 -1
- package/src/Utilities/Services/MetamodelService.js +6 -3
- package/src/Utilities/Services/RowEditService.d.ts +3 -2
- package/src/Utilities/Services/RowEditService.js +3 -1
- package/src/View/AdaptableView.js +0 -2
- package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/ConfigurationWizard.js +2 -2
- package/src/View/CalculatedColumn/utils.d.ts +1 -1
- package/src/View/CellSummary/CellSummaryPopup.js +1 -1
- package/src/View/Components/Popups/AdaptableLoadingScreen.d.ts +6 -5
- package/src/View/Components/Popups/AdaptableLoadingScreen.js +19 -9
- package/src/View/CustomSort/CustomSortSummary.js +1 -1
- package/src/View/DataChangeHistory/DataChangeHistoryGrid.js +1 -1
- package/src/View/GridFilter/GridFilterViewPanel.js +6 -2
- package/src/View/GridInfo/GridInfoPopup/GridInfoPopup.js +2 -3
- package/src/View/Layout/Wizard/LayoutWizard.js +1 -1
- package/src/agGrid/ActionColumnRenderer.js +4 -4
- package/src/agGrid/Adaptable.d.ts +3 -455
- package/src/agGrid/Adaptable.js +8 -5292
- package/src/agGrid/AdaptableAgGrid.d.ts +336 -0
- package/src/agGrid/AdaptableAgGrid.js +3810 -0
- package/src/agGrid/AdaptableLogger.js +77 -11
- package/src/agGrid/AgGridAdapter.d.ts +54 -0
- package/src/agGrid/AgGridAdapter.js +549 -0
- package/src/agGrid/AgGridColumnAdapter.d.ts +56 -0
- package/src/agGrid/AgGridColumnAdapter.js +813 -0
- package/src/agGrid/AgGridMenuAdapter.d.ts +28 -0
- package/src/agGrid/AgGridMenuAdapter.js +271 -0
- package/src/agGrid/AgGridOptionsService.d.ts +11 -0
- package/src/agGrid/AgGridOptionsService.js +50 -0
- package/src/agGrid/BadgeRenderer.js +1 -1
- package/src/agGrid/CheckboxRenderer.js +1 -1
- package/src/agGrid/FilterWrapper.d.ts +2 -2
- package/src/agGrid/FilterWrapper.js +1 -1
- package/src/agGrid/attachAddaptableColumnTypes.d.ts +12 -12
- package/src/agGrid/defaultAdaptableOptions.d.ts +3 -0
- package/src/{Utilities/Defaults/DefaultAdaptableOptions.js → agGrid/defaultAdaptableOptions.js} +69 -8
- package/src/agGrid/editors/AdaptableDateEditor/index.js +2 -2
- package/src/agGrid/editors/AdaptableNumberEditor/index.js +2 -2
- package/src/components/Datepicker/index.d.ts +1 -1
- package/src/components/InfiniteTable/index.js +2 -2
- package/src/components/Modal/index.d.ts +1 -0
- package/src/components/Modal/index.js +4 -3
- package/src/env.js +2 -2
- package/src/metamodel/adaptable.metamodel.d.ts +9 -9
- package/src/metamodel/adaptable.metamodel.js +7 -0
- package/src/migration/AdaptableUpgradeHelper.d.ts +38 -0
- package/src/migration/AdaptableUpgradeHelper.js +48 -0
- package/src/migration/VersionUpgrade.d.ts +8 -0
- package/src/migration/VersionUpgrade.js +11 -0
- package/src/migration/VersionUpgrade17.d.ts +18 -0
- package/src/migration/VersionUpgrade17.js +342 -0
- package/src/migration/VersionUpgrade18.d.ts +5 -0
- package/src/migration/VersionUpgrade18.js +6 -0
- package/src/types.d.ts +5 -4
- package/tsconfig.esm.tsbuildinfo +1 -1
- package/src/Utilities/Defaults/DefaultAdaptableOptions.d.ts +0 -2
- package/src/Utilities/Services/Interface/IRowEditService.d.ts +0 -3
- package/src/Utilities/Services/Interface/IRowEditService.js +0 -1
- package/src/agGrid/agGridHelper.d.ts +0 -57
- package/src/agGrid/agGridHelper.js +0 -686
- package/src/agGrid/agGridMenuHelper.d.ts +0 -46
- package/src/agGrid/agGridMenuHelper.js +0 -668
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ApiBase } from '../Implementation/ApiBase';
|
|
2
2
|
export class GridFilterInternalApi extends ApiBase {
|
|
3
3
|
fireGridFilterAppliedEvent() {
|
|
4
|
-
if (this.adaptable.
|
|
4
|
+
if (this.adaptable.isReady) {
|
|
5
5
|
const currentGridFilter = this.getGridFilterApi().getCurrentGridFilter();
|
|
6
6
|
const adaptableApi = this.getAdaptableApi();
|
|
7
7
|
const gridFilterAppliedInfo = {
|
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
import { ApiBase } from '../Implementation/ApiBase';
|
|
2
2
|
import { CellDataChangedInfo } from '../../PredefinedConfig/Common/CellDataChangedInfo';
|
|
3
|
-
import { IRowNode } from '@ag-grid-community/core';
|
|
3
|
+
import { IRowNode, RowClassParams } from '@ag-grid-community/core';
|
|
4
|
+
import { GridDataChangeTrigger } from '../Events/GridDataChanged';
|
|
4
5
|
import { GridCell } from '../../PredefinedConfig/Selection/GridCell';
|
|
5
|
-
import { AdaptableColumn } from '../../PredefinedConfig/Common/AdaptableColumn';
|
|
6
|
+
import { AdaptableColumn, AdaptableColumnDataType } from '../../PredefinedConfig/Common/AdaptableColumn';
|
|
6
7
|
import { SelectedCellInfo } from '../../PredefinedConfig/Selection/SelectedCellInfo';
|
|
7
8
|
import { SelectedRowInfo } from '../../PredefinedConfig/Selection/SelectedRowInfo';
|
|
8
9
|
import { AdaptableMenuItem } from '../../PredefinedConfig/Common/Menu';
|
|
9
10
|
import { EditLookUpPermittedValues } from '../../AdaptableOptions/UserInterfaceOptions';
|
|
11
|
+
import { DistinctValuesParams } from '../../AdaptableInterfaces/IAdaptable';
|
|
12
|
+
import { AdaptableColumnType } from '../../PredefinedConfig/Common/Types';
|
|
10
13
|
export declare class GridInternalApi extends ApiBase {
|
|
11
14
|
/**
|
|
12
15
|
* Fires Grid Sorted Event
|
|
@@ -19,7 +22,7 @@ export declare class GridInternalApi extends ApiBase {
|
|
|
19
22
|
/**
|
|
20
23
|
* Fires Grid Data Changed Event - when a row has changed in AG Grid
|
|
21
24
|
*/
|
|
22
|
-
fireGridDataChangedEvent(dataRows: any[], rowNodes: IRowNode[], rowTrigger:
|
|
25
|
+
fireGridDataChangedEvent(dataRows: any[], rowNodes: IRowNode[], rowTrigger: GridDataChangeTrigger): void;
|
|
23
26
|
/**
|
|
24
27
|
* Gets all distinct display values in the Column with the given ColumnId
|
|
25
28
|
* @param columnId Column to check
|
|
@@ -39,17 +42,23 @@ export declare class GridInternalApi extends ApiBase {
|
|
|
39
42
|
}[];
|
|
40
43
|
suppressClientSideFilter: boolean;
|
|
41
44
|
}>;
|
|
45
|
+
getDistinctFilterListValuesForColumn(column: AdaptableColumn, filter: string, distinctValuesParams: DistinctValuesParams): Promise<{
|
|
46
|
+
suppressClientSideFilter?: boolean;
|
|
47
|
+
gridCells: GridCell[];
|
|
48
|
+
}>;
|
|
42
49
|
/**
|
|
43
50
|
* Gets all distinct Custom Sort values for the Column with the given ColumnId
|
|
44
51
|
* @param columnId Column to check
|
|
45
52
|
*/
|
|
46
53
|
getDistinctCustomSortDisplayValuesForColumn(columnId: string): Promise<any[]>;
|
|
54
|
+
getDistinctCustomSortValuesForColumn(column: AdaptableColumn, distinctValuesParams: DistinctValuesParams): Promise<GridCell<any>[]>;
|
|
47
55
|
/**
|
|
48
56
|
* Gets all distinct Bulk Update values for the Column with the given ColumnId
|
|
49
57
|
* @param columnId Column to check
|
|
50
58
|
* @param selectedGridCells Selected grid cells
|
|
51
59
|
*/
|
|
52
60
|
getDistinctBulkUpdateDisplayValuesForColumn(columnId: string, selectedGridCells: GridCell[]): Promise<any[]>;
|
|
61
|
+
getDistinctBulkUpdateValuesForColumn(column: AdaptableColumn, selectedGridCells: GridCell[], distinctValuesParams: DistinctValuesParams): Promise<GridCell<any>[]>;
|
|
53
62
|
/**
|
|
54
63
|
* Gets all distinct visible (after current filters are applied) display values in the Column with the given ColumnId
|
|
55
64
|
* @param columnId Column to check
|
|
@@ -78,4 +87,13 @@ export declare class GridInternalApi extends ApiBase {
|
|
|
78
87
|
setSelectedRows(selectedRowInfo: SelectedRowInfo): void;
|
|
79
88
|
buildStandaloneColumnHeader(column: AdaptableColumn): AdaptableMenuItem[];
|
|
80
89
|
getEditLookUpValuesForColumn(editLookUpItem: EditLookUpPermittedValues, column: AdaptableColumn, gridCell?: GridCell): any[] | undefined;
|
|
90
|
+
getAgGridDataType(dataType: AdaptableColumnDataType): AdaptableColumnType;
|
|
91
|
+
getRowHighlightStyle(params: RowClassParams): {
|
|
92
|
+
[cssProperty: string]: string;
|
|
93
|
+
};
|
|
94
|
+
getAlertRowStyle(params: RowClassParams): {
|
|
95
|
+
[cssProperty: string]: string;
|
|
96
|
+
};
|
|
97
|
+
getAlertRowClass(params: RowClassParams): string | null;
|
|
98
|
+
getRowHighlightClass(params: RowClassParams): string | null;
|
|
81
99
|
}
|
|
@@ -3,12 +3,15 @@ import { SortOrder } from '../../PredefinedConfig/Common/Enums';
|
|
|
3
3
|
import ArrayExtensions from '../../Utilities/Extensions/ArrayExtensions';
|
|
4
4
|
import * as GridRedux from '../../Redux/ActionsReducers/GridRedux';
|
|
5
5
|
import NumberExtensions from '../../Utilities/Extensions/NumberExtensions';
|
|
6
|
+
import { convertAdaptableStyleToCSS } from '../../Utilities/Helpers/StyleHelper';
|
|
7
|
+
import UIHelper from '../../View/UIHelper';
|
|
8
|
+
import { createBaseContext } from '../../Utilities/ObjectFactory';
|
|
6
9
|
export class GridInternalApi extends ApiBase {
|
|
7
10
|
/**
|
|
8
11
|
* Fires Grid Sorted Event
|
|
9
12
|
*/
|
|
10
13
|
fireGridSortedEvent() {
|
|
11
|
-
if (this.adaptable.
|
|
14
|
+
if (this.adaptable.isReady) {
|
|
12
15
|
const adaptableSortState = this.adaptable.api.configApi.getAdaptableSortState();
|
|
13
16
|
const adaptableApi = this.getAdaptableApi();
|
|
14
17
|
const gridSortedInfo = {
|
|
@@ -24,7 +27,7 @@ export class GridInternalApi extends ApiBase {
|
|
|
24
27
|
* Fires Cell Changed Changed Event - when any data in AG Grid's dataset has changed
|
|
25
28
|
*/
|
|
26
29
|
fireCellChangedEvent(cellDataChangedInfo) {
|
|
27
|
-
if (this.adaptable.
|
|
30
|
+
if (this.adaptable.isReady) {
|
|
28
31
|
const cellChangedInfo = {
|
|
29
32
|
adaptableApi: this.adaptable.api,
|
|
30
33
|
cellChange: cellDataChangedInfo,
|
|
@@ -38,7 +41,7 @@ export class GridInternalApi extends ApiBase {
|
|
|
38
41
|
* Fires Grid Data Changed Event - when a row has changed in AG Grid
|
|
39
42
|
*/
|
|
40
43
|
fireGridDataChangedEvent(dataRows, rowNodes, rowTrigger) {
|
|
41
|
-
if (this.adaptable.
|
|
44
|
+
if (this.adaptable.isReady) {
|
|
42
45
|
const gridDataChangedInfo = {
|
|
43
46
|
changedAt: Date.now(),
|
|
44
47
|
adaptableApi: this.adaptable.api,
|
|
@@ -88,7 +91,7 @@ export class GridInternalApi extends ApiBase {
|
|
|
88
91
|
const distinctValuesParams = {
|
|
89
92
|
visibleRowsOnly: showFilteredRowsOnly,
|
|
90
93
|
};
|
|
91
|
-
const { gridCells, suppressClientSideFilter } = await this.
|
|
94
|
+
const { gridCells, suppressClientSideFilter } = await this.getDistinctFilterListValuesForColumn(abColumn, filter, distinctValuesParams);
|
|
92
95
|
const sortedDistinctValues = this.sortDistinctValues(gridCells, abColumn);
|
|
93
96
|
let shouldShowValuesCount = false;
|
|
94
97
|
const showValuesCountFunction = this.getColumnFilterOptions().valuesFilterOptions.showValuesCount;
|
|
@@ -128,6 +131,26 @@ export class GridInternalApi extends ApiBase {
|
|
|
128
131
|
suppressClientSideFilter,
|
|
129
132
|
};
|
|
130
133
|
}
|
|
134
|
+
async getDistinctFilterListValuesForColumn(column, filter, distinctValuesParams) {
|
|
135
|
+
var _a;
|
|
136
|
+
const filterPermittedValues = (_a = this.getUserInterfaceApi().getFilterPermittedValuesForColumn(column)) !== null && _a !== void 0 ? _a : {
|
|
137
|
+
suppressFilterSearchBar: false,
|
|
138
|
+
values: () => undefined,
|
|
139
|
+
};
|
|
140
|
+
let preparedPermittedValues = undefined;
|
|
141
|
+
try {
|
|
142
|
+
const filterPermittedValuesParams = Object.assign(Object.assign({}, createBaseContext(this.adaptable.api)), { column: column, searchFilter: filter });
|
|
143
|
+
preparedPermittedValues = await (filterPermittedValues === null || filterPermittedValues === void 0 ? void 0 : filterPermittedValues.values(filterPermittedValuesParams));
|
|
144
|
+
}
|
|
145
|
+
catch (error) {
|
|
146
|
+
this.adaptable.logger.consoleError(`Failed to load filter permitted values`, column, filter, error);
|
|
147
|
+
}
|
|
148
|
+
distinctValuesParams.permittedValues = preparedPermittedValues;
|
|
149
|
+
return {
|
|
150
|
+
suppressClientSideFilter: filterPermittedValues.suppressFilterSearchBar,
|
|
151
|
+
gridCells: this.adaptable.getDistinctValuesForColumn(column, distinctValuesParams),
|
|
152
|
+
};
|
|
153
|
+
}
|
|
131
154
|
/**
|
|
132
155
|
* Gets all distinct Custom Sort values for the Column with the given ColumnId
|
|
133
156
|
* @param columnId Column to check
|
|
@@ -140,11 +163,24 @@ export class GridInternalApi extends ApiBase {
|
|
|
140
163
|
const distinctValuesParams = {
|
|
141
164
|
visibleRowsOnly: false,
|
|
142
165
|
};
|
|
143
|
-
const gridCells = await this.
|
|
166
|
+
const gridCells = await this.getDistinctCustomSortValuesForColumn(abColumn, distinctValuesParams);
|
|
144
167
|
return this.sortDistinctValues(gridCells, abColumn).map((cv) => {
|
|
145
168
|
return cv.normalisedValue;
|
|
146
169
|
});
|
|
147
170
|
}
|
|
171
|
+
async getDistinctCustomSortValuesForColumn(column, distinctValuesParams) {
|
|
172
|
+
const customSortPermittedValues = await this.getUserInterfaceApi().getCustomSortPermittedValuesForColumn(column);
|
|
173
|
+
let preparedPermittedValues = undefined;
|
|
174
|
+
try {
|
|
175
|
+
const permittedValuesParams = Object.assign(Object.assign({}, createBaseContext(this.adaptable.api)), { column: column });
|
|
176
|
+
preparedPermittedValues = await (customSortPermittedValues === null || customSortPermittedValues === void 0 ? void 0 : customSortPermittedValues.values(permittedValuesParams));
|
|
177
|
+
}
|
|
178
|
+
catch (error) {
|
|
179
|
+
this.adaptable.logger.consoleError(`Failed to load custom sort permitted values`, column, error);
|
|
180
|
+
}
|
|
181
|
+
distinctValuesParams.permittedValues = preparedPermittedValues;
|
|
182
|
+
return this.adaptable.getDistinctValuesForColumn(column, distinctValuesParams);
|
|
183
|
+
}
|
|
148
184
|
/**
|
|
149
185
|
* Gets all distinct Bulk Update values for the Column with the given ColumnId
|
|
150
186
|
* @param columnId Column to check
|
|
@@ -158,11 +194,24 @@ export class GridInternalApi extends ApiBase {
|
|
|
158
194
|
const distinctValuesParams = {
|
|
159
195
|
visibleRowsOnly: false,
|
|
160
196
|
};
|
|
161
|
-
const gridCells = await this.
|
|
197
|
+
const gridCells = await this.getDistinctBulkUpdateValuesForColumn(abColumn, selectedGridCells, distinctValuesParams);
|
|
162
198
|
return this.sortDistinctValues(gridCells, abColumn).map((cv) => {
|
|
163
199
|
return cv.normalisedValue;
|
|
164
200
|
});
|
|
165
201
|
}
|
|
202
|
+
async getDistinctBulkUpdateValuesForColumn(column, selectedGridCells, distinctValuesParams) {
|
|
203
|
+
const bulkUpdatePermittedValues = await this.getUserInterfaceApi().getBulkUpdatePermittedValuesForColumn(column);
|
|
204
|
+
let preparedPermittedValues = undefined;
|
|
205
|
+
try {
|
|
206
|
+
const bulkUpdatePermittedValuesParams = Object.assign(Object.assign({}, createBaseContext(this.adaptable.api)), { column: column, gridCells: selectedGridCells });
|
|
207
|
+
preparedPermittedValues = await (bulkUpdatePermittedValues === null || bulkUpdatePermittedValues === void 0 ? void 0 : bulkUpdatePermittedValues.values(bulkUpdatePermittedValuesParams));
|
|
208
|
+
}
|
|
209
|
+
catch (error) {
|
|
210
|
+
this.adaptable.logger.consoleError(`Failed to load bulk permitted values`, error, column, selectedGridCells);
|
|
211
|
+
}
|
|
212
|
+
distinctValuesParams.permittedValues = preparedPermittedValues;
|
|
213
|
+
return this.adaptable.getDistinctValuesForColumn(column, distinctValuesParams);
|
|
214
|
+
}
|
|
166
215
|
/**
|
|
167
216
|
* Gets all distinct visible (after current filters are applied) display values in the Column with the given ColumnId
|
|
168
217
|
* @param columnId Column to check
|
|
@@ -257,7 +306,7 @@ export class GridInternalApi extends ApiBase {
|
|
|
257
306
|
this.dispatchAction(GridRedux.GridSetSelectedRows(selectedRowInfo));
|
|
258
307
|
}
|
|
259
308
|
buildStandaloneColumnHeader(column) {
|
|
260
|
-
return this.adaptable.buildStandaloneColumnHeader(column);
|
|
309
|
+
return this.adaptable.agGridMenuAdapter.buildStandaloneColumnHeader(column);
|
|
261
310
|
}
|
|
262
311
|
getEditLookUpValuesForColumn(editLookUpItem, column, gridCell) {
|
|
263
312
|
if (!editLookUpItem || !column) {
|
|
@@ -285,4 +334,74 @@ export class GridInternalApi extends ApiBase {
|
|
|
285
334
|
// this will use the columnApi method that first looks for permitted values and then distinct values
|
|
286
335
|
return this.getDistinctDisplayValuesForColumn(column.columnId);
|
|
287
336
|
}
|
|
337
|
+
getAgGridDataType(dataType) {
|
|
338
|
+
if (!dataType) {
|
|
339
|
+
return 'abColDefString';
|
|
340
|
+
}
|
|
341
|
+
switch (dataType) {
|
|
342
|
+
case 'Boolean':
|
|
343
|
+
return 'abColDefBoolean';
|
|
344
|
+
case 'Date':
|
|
345
|
+
return 'abColDefDate';
|
|
346
|
+
case 'Number':
|
|
347
|
+
return 'abColDefNumber';
|
|
348
|
+
case 'Object':
|
|
349
|
+
return 'abColDefObject';
|
|
350
|
+
case 'String':
|
|
351
|
+
return 'abColDefString';
|
|
352
|
+
case 'NumberArray':
|
|
353
|
+
return 'abColDefNumberArray';
|
|
354
|
+
case 'TupleNumberArray':
|
|
355
|
+
return 'abColDefTupleNumberArray';
|
|
356
|
+
case 'ObjectNumberArray':
|
|
357
|
+
return 'abColDefObjectNumberArray';
|
|
358
|
+
default:
|
|
359
|
+
return 'abColDefCustom';
|
|
360
|
+
}
|
|
361
|
+
}
|
|
362
|
+
getRowHighlightStyle(params) {
|
|
363
|
+
var _a;
|
|
364
|
+
const primaryKeyValue = this.adaptable.getPrimaryKeyValueFromRowNode(params.node, params.api);
|
|
365
|
+
const highlightRow = (_a = this.getAdaptableApi()
|
|
366
|
+
.internalApi.getSystemState()
|
|
367
|
+
.HighlightedRows) === null || _a === void 0 ? void 0 : _a.find((highlightRow) => {
|
|
368
|
+
return highlightRow.primaryKeyValue === primaryKeyValue;
|
|
369
|
+
});
|
|
370
|
+
if (highlightRow) {
|
|
371
|
+
return convertAdaptableStyleToCSS(highlightRow.highlightStyle);
|
|
372
|
+
}
|
|
373
|
+
}
|
|
374
|
+
getAlertRowStyle(params) {
|
|
375
|
+
var _a, _b;
|
|
376
|
+
const alert = this.getAlertApi().internalApi.getAdaptableAlertWithHighlightRow(params.node);
|
|
377
|
+
const highlightRow = (_b = (_a = alert === null || alert === void 0 ? void 0 : alert.alertDefinition) === null || _a === void 0 ? void 0 : _a.AlertProperties) === null || _b === void 0 ? void 0 : _b.HighlightRow;
|
|
378
|
+
if (highlightRow) {
|
|
379
|
+
return typeof highlightRow === 'object'
|
|
380
|
+
? convertAdaptableStyleToCSS(highlightRow)
|
|
381
|
+
: {
|
|
382
|
+
backgroundColor: UIHelper.getColorByMessageType(alert.alertDefinition.MessageType),
|
|
383
|
+
};
|
|
384
|
+
}
|
|
385
|
+
return null;
|
|
386
|
+
}
|
|
387
|
+
getAlertRowClass(params) {
|
|
388
|
+
var _a, _b;
|
|
389
|
+
const alert = this.getAlertApi().internalApi.getAdaptableAlertWithHighlightRow(params.node);
|
|
390
|
+
const highlightRow = (_b = (_a = alert === null || alert === void 0 ? void 0 : alert.alertDefinition) === null || _a === void 0 ? void 0 : _a.AlertProperties) === null || _b === void 0 ? void 0 : _b.HighlightRow;
|
|
391
|
+
return typeof highlightRow === 'object' && (highlightRow === null || highlightRow === void 0 ? void 0 : highlightRow.ClassName)
|
|
392
|
+
? highlightRow === null || highlightRow === void 0 ? void 0 : highlightRow.ClassName
|
|
393
|
+
: null;
|
|
394
|
+
}
|
|
395
|
+
getRowHighlightClass(params) {
|
|
396
|
+
var _a;
|
|
397
|
+
const primaryKeyValue = this.adaptable.getPrimaryKeyValueFromRowNode(params.node, params.api);
|
|
398
|
+
const highlightRow = (_a = this.getAdaptableApi()
|
|
399
|
+
.internalApi.getSystemState()
|
|
400
|
+
.HighlightedRows) === null || _a === void 0 ? void 0 : _a.find((highlightRow) => {
|
|
401
|
+
return highlightRow.primaryKeyValue === primaryKeyValue;
|
|
402
|
+
});
|
|
403
|
+
return typeof (highlightRow === null || highlightRow === void 0 ? void 0 : highlightRow.highlightStyle) === 'object'
|
|
404
|
+
? highlightRow.highlightStyle.ClassName
|
|
405
|
+
: null;
|
|
406
|
+
}
|
|
288
407
|
}
|
|
@@ -5,7 +5,7 @@ export class TeamSharingInternalApi extends ApiBase {
|
|
|
5
5
|
* @param sharedEntity Entity that has been changed
|
|
6
6
|
*/
|
|
7
7
|
fireTeamSharingEntityChangedEvent(sharedEntity) {
|
|
8
|
-
if (this.adaptable.
|
|
8
|
+
if (this.adaptable.isReady) {
|
|
9
9
|
const teamSharingEntityChangedInfo = {
|
|
10
10
|
adaptableApi: this.adaptable.api,
|
|
11
11
|
sharedEntity: sharedEntity,
|
package/src/EnvVars.d.ts
ADDED
package/src/EnvVars.js
ADDED
|
@@ -16,3 +16,4 @@ export interface WeightedAverageAggregation {
|
|
|
16
16
|
* Defines which Columns in a Layout display Aggregated values when Row-Grouped
|
|
17
17
|
*/
|
|
18
18
|
export type AggregationColumns = Record<string, string | true | WeightedAverageAggregation>;
|
|
19
|
+
export declare const isWeightedAverageAggregation: (aggFunc: AggregationColumns[keyof AggregationColumns]) => aggFunc is WeightedAverageAggregation;
|
|
@@ -6,6 +6,14 @@ export interface DataUpdateConfig {
|
|
|
6
6
|
* Whether data should be updated asynchronously
|
|
7
7
|
*/
|
|
8
8
|
runAsync?: boolean;
|
|
9
|
+
/**
|
|
10
|
+
* Whether to flush async updates.
|
|
11
|
+
*
|
|
12
|
+
* If `true`, any async transactions will be flushed.
|
|
13
|
+
* This flag can be true even if you runAsync is `false`.
|
|
14
|
+
* So even if the currenct transaction/operation is synchronous, this will flush existing async transactions.
|
|
15
|
+
*/
|
|
16
|
+
flushAsync?: boolean;
|
|
9
17
|
/**
|
|
10
18
|
* Callback function invoked when a batch successfully updates
|
|
11
19
|
*/
|
|
@@ -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 {
|
|
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
|
|
37
|
+
* @param postLoadHook A function that hydrates the state after it has been loaded from storage
|
|
40
38
|
*/
|
|
41
|
-
constructor(adaptable: IAdaptable
|
|
39
|
+
constructor(adaptable: IAdaptable);
|
|
42
40
|
destroy(): void;
|
|
43
41
|
getCurrentStorageState(): AdaptableState;
|
|
44
42
|
saveStateNow(adaptable: IAdaptable): Promise<any>;
|
|
45
|
-
loadStore: (
|
|
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
|
|
69
|
+
* @param postLoadHook A function that hydrates the state after it has been loaded from storage
|
|
70
70
|
*/
|
|
71
|
-
constructor(adaptable
|
|
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 = (
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
1660
|
-
|
|
1661
|
-
|
|
1662
|
-
|
|
1663
|
-
|
|
1664
|
-
|
|
1665
|
-
|
|
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: (
|
|
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
|
-
|
|
38
|
-
|
|
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.
|
|
19
|
+
this.onAdaptableReady();
|
|
20
20
|
this.api.configApi.dispatchStateReadyAction(this.moduleInfo.ModuleName);
|
|
21
21
|
});
|
|
22
22
|
this.api.eventApi.on('AdaptableStateReloaded', (adaptableStateReloadedInfo) => {
|
|
23
|
-
this.
|
|
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
|
-
|
|
63
|
+
onAdaptableReady() {
|
|
67
64
|
// override where necessary in base classes
|
|
68
65
|
}
|
|
69
|
-
|
|
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;
|