@adaptabletools/adaptable 11.0.9 → 11.1.1-canary.1
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/base.css +19 -11
- package/bundle.cjs.js +125 -125
- package/index.css +23 -11
- package/package.json +2 -2
- package/publishTimestamp.d.ts +1 -1
- package/publishTimestamp.js +1 -1
- package/src/AdaptableInterfaces/IAdaptable.d.ts +4 -2
- package/src/AdaptableOptions/AlertOptions.d.ts +2 -2
- package/src/AdaptableOptions/DataChangeHistoryOptions.d.ts +2 -2
- package/src/AdaptableOptions/EditOptions.d.ts +2 -2
- package/src/AdaptableOptions/LayoutOptions.d.ts +5 -1
- package/src/Api/AlertApi.d.ts +5 -6
- package/src/Api/BulkUpdateApi.d.ts +5 -0
- package/src/Api/ConfigApi.d.ts +1 -1
- package/src/Api/DataChangeHistoryApi.d.ts +3 -3
- package/src/Api/EventApi.d.ts +1 -1
- package/src/Api/Events/CellChanged.d.ts +2 -2
- package/src/Api/Events/GridDataChanged.d.ts +5 -1
- package/src/Api/ExportApi.d.ts +3 -3
- package/src/Api/FreeTextColumnApi.d.ts +3 -3
- package/src/Api/GridApi.d.ts +27 -6
- package/src/Api/Implementation/AlertApiImpl.d.ts +7 -4
- package/src/Api/Implementation/AlertApiImpl.js +86 -59
- package/src/Api/Implementation/BulkUpdateApiImpl.d.ts +1 -0
- package/src/Api/Implementation/BulkUpdateApiImpl.js +4 -0
- package/src/Api/Implementation/ConfigApiImpl.d.ts +1 -1
- package/src/Api/Implementation/ConfigApiImpl.js +7 -2
- package/src/Api/Implementation/DataChangeHistoryApiImpl.d.ts +3 -3
- package/src/Api/Implementation/EventApiImpl.js +1 -1
- package/src/Api/Implementation/ExportApiImpl.d.ts +2 -2
- package/src/Api/Implementation/ExportApiImpl.js +7 -8
- package/src/Api/Implementation/FreeTextColumnApiImpl.d.ts +2 -2
- package/src/Api/Implementation/FreeTextColumnApiImpl.js +7 -7
- package/src/Api/Implementation/GridApiImpl.d.ts +11 -3
- package/src/Api/Implementation/GridApiImpl.js +29 -8
- package/src/Api/Implementation/InternalApiImpl.d.ts +11 -4
- package/src/Api/Implementation/InternalApiImpl.js +41 -5
- package/src/Api/Implementation/LayoutApiImpl.d.ts +2 -1
- package/src/Api/Implementation/LayoutApiImpl.js +19 -4
- package/src/Api/Implementation/ScheduleApiImpl.js +1 -0
- package/src/Api/Implementation/SettingsPanelApiImpl.js +7 -1
- package/src/Api/InternalApi.d.ts +10 -3
- package/src/Api/LayoutApi.d.ts +14 -3
- package/src/PredefinedConfig/AlertState.d.ts +7 -3
- package/src/PredefinedConfig/Common/AdaptableAlert.d.ts +35 -6
- package/src/PredefinedConfig/Common/AdaptableAlert.js +7 -0
- package/src/PredefinedConfig/Common/AdaptableFlashingCell.d.ts +2 -2
- package/src/PredefinedConfig/Common/AdaptablePredicate.js +20 -0
- package/src/PredefinedConfig/Common/{DataChangedInfo.d.ts → CellDataChangedInfo.d.ts} +2 -6
- package/src/PredefinedConfig/Common/{DataChangedInfo.js → CellDataChangedInfo.js} +0 -0
- package/src/PredefinedConfig/Common/CellHighlightInfo.d.ts +1 -1
- package/src/PredefinedConfig/Common/DataChangedScope.d.ts +4 -0
- package/src/PredefinedConfig/Common/DataChangedScope.js +2 -0
- package/src/PredefinedConfig/Common/Entitlement.d.ts +2 -2
- package/src/PredefinedConfig/Common/Menu.d.ts +3 -0
- package/src/PredefinedConfig/Common/RowsHighlightInfo.d.ts +15 -0
- package/src/PredefinedConfig/Common/RowsHighlightInfo.js +2 -0
- package/src/PredefinedConfig/ConfigState.d.ts +4 -1
- package/src/PredefinedConfig/LayoutState.d.ts +1 -1
- package/src/PredefinedConfig/PopupState.d.ts +2 -1
- package/src/PredefinedConfig/SystemState.d.ts +2 -2
- package/src/Redux/ActionsReducers/FlashingCellRedux.js +4 -8
- package/src/Redux/ActionsReducers/GridRedux.d.ts +5 -5
- package/src/Redux/ActionsReducers/PopupRedux.d.ts +18 -0
- package/src/Redux/ActionsReducers/PopupRedux.js +36 -1
- package/src/Redux/ActionsReducers/SystemRedux.d.ts +16 -5
- package/src/Redux/ActionsReducers/SystemRedux.js +37 -6
- package/src/Redux/Store/AdaptableReduxMerger.d.ts +1 -0
- package/src/Redux/Store/AdaptableReduxMerger.js +40 -4
- package/src/Redux/Store/AdaptableStore.js +76 -34
- package/src/Strategy/AlertModule.d.ts +5 -3
- package/src/Strategy/AlertModule.js +68 -22
- package/src/Strategy/BulkUpdateModule.js +7 -2
- package/src/Strategy/DataChangeHistoryModule.js +8 -6
- package/src/Strategy/ExportModule.js +1 -0
- package/src/Strategy/FlashingCellModule.d.ts +2 -2
- package/src/Strategy/FlashingCellModule.js +21 -15
- package/src/Strategy/FormatColumnModule.js +4 -2
- package/src/Strategy/SmartEditModule.js +6 -0
- package/src/Utilities/Defaults/DefaultAdaptableOptions.js +1 -0
- package/src/Utilities/Defaults/DefaultSettingsPanel.d.ts +1 -1
- package/src/Utilities/Defaults/DefaultSettingsPanel.js +6 -2
- package/src/Utilities/Emitter.d.ts +1 -1
- package/src/Utilities/Emitter.js +6 -3
- package/src/Utilities/ExpressionFunctions/expressionFunctionUtils.d.ts +2 -2
- package/src/Utilities/ExpressionFunctions/expressionFunctionUtils.js +1 -1
- package/src/Utilities/Interface/MessagePopups.d.ts +13 -0
- package/src/Utilities/ObjectFactory.d.ts +9 -7
- package/src/Utilities/ObjectFactory.js +26 -12
- package/src/Utilities/Services/CalculatedColumnExpressionService.js +3 -3
- package/src/Utilities/Services/DataService.d.ts +5 -5
- package/src/Utilities/Services/DataService.js +12 -10
- package/src/Utilities/Services/Interface/IAlertService.d.ts +2 -2
- package/src/Utilities/Services/Interface/IDataService.d.ts +6 -6
- package/src/Utilities/Services/Interface/IQueryLanguageService.d.ts +3 -3
- package/src/Utilities/Services/Interface/IValidationService.d.ts +4 -4
- package/src/Utilities/Services/LicenseService.js +1 -1
- package/src/Utilities/Services/ModuleService.js +1 -1
- package/src/Utilities/Services/QueryLanguageService.d.ts +3 -3
- package/src/Utilities/Services/ValidationService.d.ts +4 -4
- package/src/Utilities/Services/ValidationService.js +18 -17
- package/src/View/AdaptableView.js +2 -0
- package/src/View/Alert/Wizard/AlertBehaviourWizardSection.js +16 -9
- package/src/View/Alert/Wizard/AlertButtonsEditor.js +13 -3
- package/src/View/Alert/Wizard/AlertDisplayWizardSection.js +2 -0
- package/src/View/Alert/Wizard/AlertWizard.js +83 -1
- package/src/View/CellSummary/CellSummaryViewPanel.js +1 -2
- package/src/View/Components/FilterForm/FilterForm.js +2 -2
- package/src/View/Components/Panels/PanelFooter.d.ts +10 -0
- package/src/View/Components/Panels/PanelFooter.js +14 -0
- package/src/View/Components/Popups/AdaptablePopup/AdaptablePopup.js +12 -7
- package/src/View/Components/Popups/AdaptablePopup/AdaptablePopupDialog.js +1 -1
- package/src/View/Components/Popups/AdaptablePopup/useMenuItems.js +3 -1
- package/src/View/Components/Popups/{AdaptablePopup/Utilities.d.ts → Utilities.d.ts} +4 -0
- package/src/View/Components/Popups/{AdaptablePopup/Utilities.js → Utilities.js} +5 -2
- package/src/View/Components/Popups/WindowPopups/WindowPopups.d.ts +6 -0
- package/src/View/Components/Popups/WindowPopups/WindowPopups.js +32 -0
- package/src/View/Components/Popups/WindowPopups/windowFactory.d.ts +4 -0
- package/src/View/Components/Popups/WindowPopups/windowFactory.js +8 -0
- package/src/View/DataChangeHistory/DataChangeHistoryGrid.d.ts +2 -2
- package/src/View/DataChangeHistory/DataChangeHistoryPopup.d.ts +2 -2
- package/src/View/Layout/LayoutEditorStandalonePopup.d.ts +3 -0
- package/src/View/Layout/LayoutEditorStandalonePopup.js +76 -0
- package/src/View/Layout/LayoutPopup.js +3 -24
- package/src/View/Layout/LayoutViewPanel.d.ts +1 -4
- package/src/View/Layout/LayoutViewPanel.js +5 -18
- package/src/View/Layout/Wizard/LayoutEditor/ColumnLabels.d.ts +9 -0
- package/src/View/Layout/Wizard/LayoutEditor/ColumnLabels.js +55 -0
- package/src/View/Layout/Wizard/LayoutEditor/index.js +3 -68
- package/src/View/Layout/Wizard/LayoutEditorWizard.d.ts +1 -0
- package/src/View/Layout/Wizard/LayoutEditorWizard.js +35 -7
- package/src/View/SystemStatus/SystemStatusEntityRow.js +1 -2
- package/src/agGrid/Adaptable.d.ts +6 -4
- package/src/agGrid/Adaptable.js +115 -117
- package/src/agGrid/agGridHelper.d.ts +1 -1
- package/src/agGrid/agGridHelper.js +23 -8
- package/src/agGrid/editors/AdaptableDateEditor/index.js +1 -1
- package/src/agGrid/editors/AdaptableNumberEditor/index.js +1 -1
- package/src/components/Dialog/index.js +1 -1
- package/src/components/Modal/index.js +1 -1
- package/src/components/WindowModal/WindowModal.d.ts +10 -8
- package/src/components/WindowModal/WindowModal.js +4 -2
- package/src/components/WindowModal/useStacking.d.ts +9 -0
- package/src/components/WindowModal/useStacking.js +45 -0
- package/src/env.js +3 -3
- package/src/metamodel/adaptable.metamodel.d.ts +85 -45
- package/src/metamodel/adaptable.metamodel.js +185 -84
- package/src/types.d.ts +5 -3
- package/version.d.ts +1 -1
- package/version.js +1 -1
|
@@ -9,6 +9,7 @@ const ApiBase_1 = require("./ApiBase");
|
|
|
9
9
|
const LoggingHelper_1 = require("../../Utilities/Helpers/LoggingHelper");
|
|
10
10
|
const ModuleConstants = tslib_1.__importStar(require("../../Utilities/Constants/ModuleConstants"));
|
|
11
11
|
const ObjectFactory_1 = tslib_1.__importDefault(require("../../Utilities/ObjectFactory"));
|
|
12
|
+
const AdaptableAlert_1 = require("../../PredefinedConfig/Common/AdaptableAlert");
|
|
12
13
|
const AdaptableQuery_1 = require("../../PredefinedConfig/Common/AdaptableQuery");
|
|
13
14
|
class AlertApiImpl extends ApiBase_1.ApiBase {
|
|
14
15
|
getAlertState() {
|
|
@@ -61,22 +62,24 @@ class AlertApiImpl extends ApiBase_1.ApiBase {
|
|
|
61
62
|
buttonOnClick === null || buttonOnClick === void 0 ? void 0 : buttonOnClick.handler(button, context);
|
|
62
63
|
this.adaptable.api.alertApi.executeAlertAction(action, {
|
|
63
64
|
alertDefinition: context.alert.alertDefinition,
|
|
64
|
-
|
|
65
|
+
cellDataChangedInfo: AdaptableAlert_1.isAdaptableCellChangedAlert(context.alert)
|
|
66
|
+
? context.alert.cellDataChangedInfo
|
|
67
|
+
: null,
|
|
68
|
+
gridDataChangedInfo: AdaptableAlert_1.isAdaptableRowChangedAlert(context.alert)
|
|
69
|
+
? context.alert.gridDataChangedInfo
|
|
70
|
+
: null,
|
|
65
71
|
formData: context.formData,
|
|
66
72
|
});
|
|
67
73
|
});
|
|
68
74
|
}
|
|
69
75
|
}
|
|
70
76
|
executeAlertAction(actionName, details) {
|
|
71
|
-
|
|
72
|
-
const
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
}
|
|
76
|
-
if (actionName === 'highlight-cell') {
|
|
77
|
-
const highhlightType = (_a = alertDefinition.MessageType) !== null && _a !== void 0 ? _a : 'Info';
|
|
77
|
+
const { alertDefinition, cellDataChangedInfo: cellDataChangedInfo, gridDataChangedInfo, } = details;
|
|
78
|
+
const getBackgroundColor = (alertDefinition) => {
|
|
79
|
+
var _a;
|
|
80
|
+
const highlightType = (_a = alertDefinition.MessageType) !== null && _a !== void 0 ? _a : 'Info';
|
|
78
81
|
let backgroundColor = '';
|
|
79
|
-
switch (
|
|
82
|
+
switch (highlightType) {
|
|
80
83
|
case 'Error':
|
|
81
84
|
backgroundColor = 'var(--ab-color-error)';
|
|
82
85
|
break;
|
|
@@ -89,48 +92,59 @@ class AlertApiImpl extends ApiBase_1.ApiBase {
|
|
|
89
92
|
case 'Warning':
|
|
90
93
|
backgroundColor = 'var(--ab-color-warn)';
|
|
91
94
|
}
|
|
95
|
+
return backgroundColor;
|
|
96
|
+
};
|
|
97
|
+
if (actionName === 'highlight-cell' && cellDataChangedInfo) {
|
|
98
|
+
const backgroundColor = getBackgroundColor(alertDefinition);
|
|
92
99
|
this.adaptable.api.gridApi.highlightCell({
|
|
93
|
-
columnId:
|
|
94
|
-
primaryKeyValue:
|
|
100
|
+
columnId: cellDataChangedInfo.column.columnId,
|
|
101
|
+
primaryKeyValue: cellDataChangedInfo.primaryKeyValue,
|
|
95
102
|
highlightStyle: {
|
|
96
103
|
BackColor: backgroundColor,
|
|
97
104
|
},
|
|
98
105
|
timeout: this.getAlertOptions().cellHighlightDuration,
|
|
99
106
|
});
|
|
100
|
-
return;
|
|
101
107
|
}
|
|
102
|
-
if (actionName === '
|
|
103
|
-
|
|
104
|
-
|
|
108
|
+
if (actionName === 'highlight-row' &&
|
|
109
|
+
gridDataChangedInfo &&
|
|
110
|
+
// no sense to highlight a deleted(non-existing) row
|
|
111
|
+
(gridDataChangedInfo === null || gridDataChangedInfo === void 0 ? void 0 : gridDataChangedInfo.rowTrigger) !== 'Delete') {
|
|
112
|
+
const backgroundColor = getBackgroundColor(alertDefinition);
|
|
113
|
+
const primaryKeyValues = this.adaptable.api.gridApi.getPrimaryKeyValuesForRowNodes(gridDataChangedInfo.rowNodes);
|
|
114
|
+
const rowsHighlightInfo = {
|
|
115
|
+
primaryKeyValues,
|
|
116
|
+
highlightStyle: {
|
|
117
|
+
BackColor: backgroundColor,
|
|
118
|
+
},
|
|
119
|
+
timeout: this.getAlertOptions().cellHighlightDuration,
|
|
120
|
+
};
|
|
121
|
+
this.adaptable.api.gridApi.highlightRows(rowsHighlightInfo);
|
|
122
|
+
}
|
|
123
|
+
if (actionName === 'jump-to-cell' && cellDataChangedInfo) {
|
|
124
|
+
this.adaptable.api.gridApi.jumpToCell(cellDataChangedInfo.primaryKeyValue, cellDataChangedInfo.column.columnId);
|
|
125
|
+
}
|
|
126
|
+
if (actionName === 'jump-to-row' &&
|
|
127
|
+
gridDataChangedInfo &&
|
|
128
|
+
// no sense to jump to a deleted(non-existing) row
|
|
129
|
+
(gridDataChangedInfo === null || gridDataChangedInfo === void 0 ? void 0 : gridDataChangedInfo.rowTrigger) !== 'Delete') {
|
|
130
|
+
const [firstRowNode] = gridDataChangedInfo.rowNodes;
|
|
131
|
+
const targetRowNodePrimaryKeyValue = this.adaptable.api.gridApi.getPrimaryKeyValueForRowNode(firstRowNode);
|
|
132
|
+
if (targetRowNodePrimaryKeyValue) {
|
|
133
|
+
this.adaptable.api.gridApi.jumpToRow(targetRowNodePrimaryKeyValue);
|
|
134
|
+
}
|
|
105
135
|
}
|
|
106
|
-
if (actionName === 'jump-to-column') {
|
|
107
|
-
this.adaptable.api.gridApi.jumpToColumn(
|
|
108
|
-
return;
|
|
136
|
+
if (actionName === 'jump-to-column' && cellDataChangedInfo) {
|
|
137
|
+
this.adaptable.api.gridApi.jumpToColumn(cellDataChangedInfo.column.columnId);
|
|
109
138
|
}
|
|
110
139
|
if (actionName === 'suspend') {
|
|
111
140
|
this.adaptable.api.alertApi.suspendAlertDefinition(alertDefinition);
|
|
112
|
-
return;
|
|
113
|
-
}
|
|
114
|
-
if (actionName === 'jump-to-row') {
|
|
115
|
-
this.adaptable.api.gridApi.jumpToRow(dataChangedInfo.primaryKeyValue);
|
|
116
|
-
return;
|
|
117
|
-
}
|
|
118
|
-
if (actionName === 'undo') {
|
|
119
|
-
this.adaptable.api.gridApi.undoCellEdit(dataChangedInfo);
|
|
120
141
|
}
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
if (actionName === 'overwrite' && formData && Object.keys(formData).length === 1) {
|
|
124
|
-
const value = formData[Object.keys(formData)[0]];
|
|
125
|
-
this.adaptable.api.gridApi.setCellValue(
|
|
126
|
-
dataChangedInfo.columnId,
|
|
127
|
-
value,
|
|
128
|
-
dataChangedInfo.primaryKeyValue
|
|
129
|
-
);
|
|
142
|
+
if (actionName === 'undo' && cellDataChangedInfo) {
|
|
143
|
+
this.adaptable.api.gridApi.undoCellEdit(cellDataChangedInfo);
|
|
130
144
|
}
|
|
131
|
-
*/
|
|
132
145
|
}
|
|
133
146
|
async displayAlert(alertToShow) {
|
|
147
|
+
var _a, _b;
|
|
134
148
|
// 3 things we always do with an alert are:
|
|
135
149
|
// 1. Dispatch the Alert (so it appears in the toolbar)
|
|
136
150
|
this.addUidToAdaptableObject(alertToShow);
|
|
@@ -147,12 +161,16 @@ class AlertApiImpl extends ApiBase_1.ApiBase {
|
|
|
147
161
|
if (alertToShow.alertDefinition && alertToShow.alertDefinition.AlertProperties != undefined) {
|
|
148
162
|
const alertDefinition = alertToShow.alertDefinition;
|
|
149
163
|
const alertProperties = alertDefinition.AlertProperties;
|
|
150
|
-
const dataChangedInfo = alertToShow.dataChangedInfo;
|
|
151
164
|
// There are 4 possible other actions that could happen
|
|
165
|
+
// alertProperties.PreventEdit is handled separately, in the Adaptable.setupColumnValueSetter() function
|
|
152
166
|
// 1. Show a Popup
|
|
153
167
|
if (alertProperties.DisplayNotification && showPopup) {
|
|
154
168
|
this.dispatchAction(PopupRedux.PopupShowAlert(alertToShow));
|
|
155
169
|
}
|
|
170
|
+
// 2. Log to console
|
|
171
|
+
if (alertProperties.LogToConsole) {
|
|
172
|
+
LoggingHelper_1.ConsoleLogByMessageType(alertToShow.header + ': ' + alertToShow.message, alertDefinition.MessageType);
|
|
173
|
+
}
|
|
156
174
|
// 3. Show it in a Div (if one has been set)
|
|
157
175
|
if (alertProperties.ShowInDiv) {
|
|
158
176
|
let alertDiv;
|
|
@@ -166,37 +184,46 @@ class AlertApiImpl extends ApiBase_1.ApiBase {
|
|
|
166
184
|
alertDiv.innerHTML = alertString;
|
|
167
185
|
}
|
|
168
186
|
}
|
|
187
|
+
// 4.JumpToCell and 5.JumpToRow are exclusive, based on alertType!
|
|
169
188
|
// 4: Jump to the Cell
|
|
170
|
-
if (alertProperties.JumpToCell &&
|
|
171
|
-
|
|
189
|
+
if (alertProperties.JumpToCell &&
|
|
190
|
+
AdaptableAlert_1.isAdaptableCellChangedAlert(alertToShow) &&
|
|
191
|
+
alertToShow.cellDataChangedInfo) {
|
|
192
|
+
this.adaptable.jumpToCell(alertToShow.cellDataChangedInfo.column.columnId, alertToShow.cellDataChangedInfo.rowNode);
|
|
172
193
|
}
|
|
173
|
-
// 5:
|
|
174
|
-
if (alertProperties.
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
this.adaptable.api.gridApi.refreshCells([alertNode], [dataChangedInfo.column.columnId]);
|
|
181
|
-
setTimeout(() => {
|
|
182
|
-
this.dispatchAction(SystemRedux.SystemAlertRemoveHighlight(alertToShow));
|
|
183
|
-
}, this.adaptable.adaptableOptions.alertOptions.cellHighlightDuration);
|
|
194
|
+
// 5: Jump to the Row
|
|
195
|
+
else if (alertProperties.JumpToRow &&
|
|
196
|
+
AdaptableAlert_1.isAdaptableRowChangedAlert(alertToShow) &&
|
|
197
|
+
((_a = alertToShow.gridDataChangedInfo) === null || _a === void 0 ? void 0 : _a.rowTrigger) === 'Add') {
|
|
198
|
+
const [firstRowNode] = alertToShow.gridDataChangedInfo.rowNodes;
|
|
199
|
+
if (firstRowNode) {
|
|
200
|
+
this.adaptable.jumpToRow(firstRowNode);
|
|
184
201
|
}
|
|
185
202
|
}
|
|
186
|
-
|
|
187
|
-
|
|
203
|
+
// 6.HighlightCell and 7.HighlightRow are exclusive, based on alertType!
|
|
204
|
+
// 6: Highlight the cell - we just refresh the cells to trigger a re-evaluation of the Adaptable.setupColumn[Style/Class]
|
|
205
|
+
if (alertProperties.HighlightCell &&
|
|
206
|
+
AdaptableAlert_1.isAdaptableCellChangedAlert(alertToShow) &&
|
|
207
|
+
alertToShow.cellDataChangedInfo) {
|
|
208
|
+
let alertNode = alertToShow.cellDataChangedInfo.rowNode;
|
|
188
209
|
if (!alertNode) {
|
|
189
|
-
alertNode = this.adaptable.getRowNodeForPrimaryKey(
|
|
210
|
+
alertNode = this.adaptable.getRowNodeForPrimaryKey(alertToShow.cellDataChangedInfo.primaryKeyValue);
|
|
190
211
|
}
|
|
191
212
|
if (alertNode) {
|
|
192
|
-
this.adaptable.api.gridApi.
|
|
213
|
+
this.adaptable.api.gridApi.refreshCells([alertNode], [alertToShow.cellDataChangedInfo.column.columnId]);
|
|
193
214
|
setTimeout(() => {
|
|
194
215
|
this.dispatchAction(SystemRedux.SystemAlertRemoveHighlight(alertToShow));
|
|
195
216
|
}, this.adaptable.adaptableOptions.alertOptions.cellHighlightDuration);
|
|
196
217
|
}
|
|
197
218
|
}
|
|
198
|
-
|
|
199
|
-
|
|
219
|
+
// 7. Highlight the row - we just refresh the rows to trigger a re-evaluation of the Adaptable.setupColumn[Style/Class]
|
|
220
|
+
else if (alertProperties.HighlightRow &&
|
|
221
|
+
AdaptableAlert_1.isAdaptableRowChangedAlert(alertToShow) &&
|
|
222
|
+
((_b = alertToShow.gridDataChangedInfo) === null || _b === void 0 ? void 0 : _b.rowTrigger) === 'Add') {
|
|
223
|
+
this.adaptable.api.gridApi.refreshRowNodes(alertToShow.gridDataChangedInfo.rowNodes);
|
|
224
|
+
setTimeout(() => {
|
|
225
|
+
this.dispatchAction(SystemRedux.SystemAlertRemoveHighlight(alertToShow));
|
|
226
|
+
}, this.adaptable.adaptableOptions.alertOptions.cellHighlightDuration);
|
|
200
227
|
}
|
|
201
228
|
}
|
|
202
229
|
}
|
|
@@ -212,7 +239,7 @@ class AlertApiImpl extends ApiBase_1.ApiBase {
|
|
|
212
239
|
}
|
|
213
240
|
showAlert(alertHeader, alertMessage, messageType, alertProperties) {
|
|
214
241
|
const alertDefinition = ObjectFactory_1.default.CreateInternalAlertDefinitionForMessages(messageType, alertProperties);
|
|
215
|
-
let alertToShow = ObjectFactory_1.default.
|
|
242
|
+
let alertToShow = ObjectFactory_1.default.CreateGenericAlert(alertHeader, alertMessage, alertDefinition);
|
|
216
243
|
this.displayAlert(alertToShow);
|
|
217
244
|
}
|
|
218
245
|
showAlertInfo(alertHeader, alertMessage, alertProperties) {
|
|
@@ -248,11 +275,11 @@ class AlertApiImpl extends ApiBase_1.ApiBase {
|
|
|
248
275
|
this.dispatchAction(AlertRedux.AlertDefinitionUnSuspend(alertDefinition));
|
|
249
276
|
return this.getAlertDefinitionById(alertDefinition.Uuid);
|
|
250
277
|
}
|
|
251
|
-
getAlertDescription(alertDefinition,
|
|
278
|
+
getAlertDescription(alertDefinition, cellDataChangedInfo) {
|
|
252
279
|
var _a;
|
|
253
280
|
const alertMessageFunction = (_a = this.adaptable.adaptableOptions.alertOptions) === null || _a === void 0 ? void 0 : _a.alertMessageText;
|
|
254
281
|
if (alertMessageFunction) {
|
|
255
|
-
const returnText = alertMessageFunction(alertDefinition,
|
|
282
|
+
const returnText = alertMessageFunction(alertDefinition, cellDataChangedInfo);
|
|
256
283
|
if (returnText) {
|
|
257
284
|
return returnText;
|
|
258
285
|
}
|
|
@@ -5,6 +5,7 @@ const tslib_1 = require("tslib");
|
|
|
5
5
|
const ApiBase_1 = require("./ApiBase");
|
|
6
6
|
const ModuleConstants = tslib_1.__importStar(require("../../Utilities/Constants/ModuleConstants"));
|
|
7
7
|
const BulkUpdateRedux = tslib_1.__importStar(require("../../Redux/ActionsReducers/BulkUpdateRedux"));
|
|
8
|
+
const SystemRedux = tslib_1.__importStar(require("../../Redux/ActionsReducers/SystemRedux"));
|
|
8
9
|
class BulkUpdateApiImpl extends ApiBase_1.ApiBase {
|
|
9
10
|
getBulkUpdateValue() {
|
|
10
11
|
return this.getAdaptableState().System.BulkUpdateValue;
|
|
@@ -15,5 +16,8 @@ class BulkUpdateApiImpl extends ApiBase_1.ApiBase {
|
|
|
15
16
|
applyBulkUpdate(gridCells) {
|
|
16
17
|
this.dispatchAction(BulkUpdateRedux.BulkUpdateApply(gridCells));
|
|
17
18
|
}
|
|
19
|
+
setBulkUpdateValue(bulkUpdateValue) {
|
|
20
|
+
this.dispatchAction(SystemRedux.BulkUpdateChangeValue(bulkUpdateValue));
|
|
21
|
+
}
|
|
18
22
|
}
|
|
19
23
|
exports.BulkUpdateApiImpl = BulkUpdateApiImpl;
|
|
@@ -45,7 +45,7 @@ export declare class ConfigApiImpl extends ApiBase implements ConfigApi {
|
|
|
45
45
|
getDescriptionForModule(module: AdaptableModule): string;
|
|
46
46
|
getHelpPageForModule(module: AdaptableModule): string;
|
|
47
47
|
getUserStateByStateKey(stateKey: AdaptableStateKey, returnJson?: boolean): ConfigState | string;
|
|
48
|
-
|
|
48
|
+
incrementUserStateRevision(stateKey: AdaptableStateKey): void;
|
|
49
49
|
getAlertState(returnJson?: boolean): AlertState;
|
|
50
50
|
getApplicationState(returnJson?: boolean): ApplicationState;
|
|
51
51
|
getCalculatedColumnState(returnJson?: boolean): CalculatedColumnState;
|
|
@@ -242,9 +242,14 @@ class ConfigApiImpl extends ApiBase_1.ApiBase {
|
|
|
242
242
|
: this.getAdaptableState().ToolPanel;
|
|
243
243
|
}
|
|
244
244
|
}
|
|
245
|
-
|
|
245
|
+
incrementUserStateRevision(stateKey) {
|
|
246
246
|
let state = this.getUserStateByStateKey(stateKey);
|
|
247
|
-
state.Revision
|
|
247
|
+
if (typeof state.Revision === 'number') {
|
|
248
|
+
state.Revision += 1;
|
|
249
|
+
}
|
|
250
|
+
else {
|
|
251
|
+
state.Revision.Key += 1;
|
|
252
|
+
}
|
|
248
253
|
// need to save it...
|
|
249
254
|
}
|
|
250
255
|
getAlertState(returnJson = false) {
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { DataChangeHistoryApi } from '../DataChangeHistoryApi';
|
|
2
2
|
import { ApiBase } from './ApiBase';
|
|
3
|
-
import {
|
|
3
|
+
import { CellDataChangedInfo } from '../../PredefinedConfig/Common/CellDataChangedInfo';
|
|
4
4
|
export declare class DataChangeHistoryApiImpl extends ApiBase implements DataChangeHistoryApi {
|
|
5
5
|
getDataChangeHistoryMode(): 'ACTIVE' | 'INACTIVE' | 'SUSPENDED';
|
|
6
6
|
activateDataChangeHistory(forceReset?: boolean): void;
|
|
7
7
|
deactivateDataChangeHistory(): void;
|
|
8
8
|
suspendDataChangeHistory(): void;
|
|
9
|
-
getDataChangeHistoryLog():
|
|
10
|
-
undoDataChangeHistoryEntry(dataChangeInfo:
|
|
9
|
+
getDataChangeHistoryLog(): CellDataChangedInfo[];
|
|
10
|
+
undoDataChangeHistoryEntry(dataChangeInfo: CellDataChangedInfo): void;
|
|
11
11
|
showDataChangeHistoryPopup(): void;
|
|
12
12
|
}
|
|
@@ -10,7 +10,7 @@ class EventApiImpl extends ApiBase_1.ApiBase {
|
|
|
10
10
|
this.on = (eventName, callback) => {
|
|
11
11
|
let result;
|
|
12
12
|
if (eventName === 'AdaptableReady') {
|
|
13
|
-
result = this.emitter.
|
|
13
|
+
result = this.emitter.onIncludeFiredOnce(eventName, callback);
|
|
14
14
|
}
|
|
15
15
|
else {
|
|
16
16
|
result = this.emitter.on(eventName, callback);
|
|
@@ -2,7 +2,7 @@ import { ExportApi } from '../ExportApi';
|
|
|
2
2
|
import { ExportState, Report, ReportData, ReportSchedule, SystemReportNames } from '../../PredefinedConfig/ExportState';
|
|
3
3
|
import { ApiBase } from './ApiBase';
|
|
4
4
|
import { AdaptableForm } from '../../PredefinedConfig/Common/AdaptableForm';
|
|
5
|
-
import {
|
|
5
|
+
import { CellDataChangedInfo } from '../../PredefinedConfig/Common/CellDataChangedInfo';
|
|
6
6
|
import { CustomDestination, ExportButtonContext } from '../../AdaptableOptions/ExportOptions';
|
|
7
7
|
import { ExportDestination } from '../../PredefinedConfig/Common/Enums';
|
|
8
8
|
export declare class ExportApiImpl extends ApiBase implements ExportApi {
|
|
@@ -25,7 +25,7 @@ export declare class ExportApiImpl extends ApiBase implements ExportApi {
|
|
|
25
25
|
showExportPopup(): void;
|
|
26
26
|
editReport(report: Report): Report;
|
|
27
27
|
editReports(reports: Report[]): Report[];
|
|
28
|
-
isDataChangeInReport(
|
|
28
|
+
isDataChangeInReport(cellDataChangedInfo: CellDataChangedInfo, report: Report): boolean;
|
|
29
29
|
exportVisualDataToExcel(): void;
|
|
30
30
|
runCustomReport(customReportName: string): ReportData | undefined;
|
|
31
31
|
getReportDataForReport(reportName: string): ReportData | undefined;
|
|
@@ -95,7 +95,7 @@ class ExportApiImpl extends ApiBase_1.ApiBase {
|
|
|
95
95
|
});
|
|
96
96
|
return reports === null || reports === void 0 ? void 0 : reports.map((report) => this.getReportById(report.Uuid));
|
|
97
97
|
}
|
|
98
|
-
isDataChangeInReport(
|
|
98
|
+
isDataChangeInReport(cellDataChangedInfo, report) {
|
|
99
99
|
// for All Data Report any data change is true so get out asap
|
|
100
100
|
if (report.Name == 'All Data') {
|
|
101
101
|
return true;
|
|
@@ -111,22 +111,21 @@ class ExportApiImpl extends ApiBase_1.ApiBase {
|
|
|
111
111
|
break;
|
|
112
112
|
case 'ScopeColumns':
|
|
113
113
|
// use the Scope object which will tell us if the Column is relevant
|
|
114
|
-
if (!this.adaptable.api.scopeApi.isColumnInScopeColumns(
|
|
114
|
+
if (!this.adaptable.api.scopeApi.isColumnInScopeColumns(cellDataChangedInfo.column, report.Scope)) {
|
|
115
115
|
return false;
|
|
116
116
|
}
|
|
117
117
|
break;
|
|
118
118
|
case 'SelectedColumns':
|
|
119
119
|
let selectedCellInfo = this.adaptable.api.gridApi.getSelectedCellInfo();
|
|
120
120
|
if (selectedCellInfo) {
|
|
121
|
-
if (selectedCellInfo.columns.find((c) => c.columnId ==
|
|
122
|
-
null) {
|
|
121
|
+
if (selectedCellInfo.columns.find((c) => c.columnId == cellDataChangedInfo.column.columnId) == null) {
|
|
123
122
|
return false;
|
|
124
123
|
}
|
|
125
124
|
}
|
|
126
125
|
break;
|
|
127
126
|
case 'VisibleColumns':
|
|
128
127
|
// hope that visibile column property is updated whenever the layout changes... (need to check!)
|
|
129
|
-
if (!
|
|
128
|
+
if (!cellDataChangedInfo.column.visible) {
|
|
130
129
|
return false;
|
|
131
130
|
}
|
|
132
131
|
break;
|
|
@@ -140,7 +139,7 @@ class ExportApiImpl extends ApiBase_1.ApiBase {
|
|
|
140
139
|
case 'SelectedCellRows':
|
|
141
140
|
let selectedCellInfo = this.adaptable.api.gridApi.getSelectedCellInfo();
|
|
142
141
|
if (selectedCellInfo && selectedCellInfo.gridCells) {
|
|
143
|
-
if (selectedCellInfo.gridCells.find((gc) => gc.primaryKeyValue ==
|
|
142
|
+
if (selectedCellInfo.gridCells.find((gc) => gc.primaryKeyValue == cellDataChangedInfo.primaryKeyValue)) {
|
|
144
143
|
return true;
|
|
145
144
|
}
|
|
146
145
|
}
|
|
@@ -148,13 +147,13 @@ class ExportApiImpl extends ApiBase_1.ApiBase {
|
|
|
148
147
|
case 'SelectedRows':
|
|
149
148
|
let selectedRowInfo = this.adaptable.api.gridApi.getSelectedRowInfo();
|
|
150
149
|
if (selectedRowInfo && selectedRowInfo.gridRows) {
|
|
151
|
-
if (selectedRowInfo.gridRows.find((gr) => gr.primaryKeyValue ==
|
|
150
|
+
if (selectedRowInfo.gridRows.find((gr) => gr.primaryKeyValue == cellDataChangedInfo.primaryKeyValue)) {
|
|
152
151
|
return true;
|
|
153
152
|
}
|
|
154
153
|
}
|
|
155
154
|
return false;
|
|
156
155
|
case 'VisibleRows':
|
|
157
|
-
return this.adaptable.isRowNodeVisible(
|
|
156
|
+
return this.adaptable.isRowNodeVisible(cellDataChangedInfo.rowNode);
|
|
158
157
|
}
|
|
159
158
|
}
|
|
160
159
|
exportVisualDataToExcel() {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ApiBase } from './ApiBase';
|
|
2
2
|
import { FreeTextColumnApi } from '../FreeTextColumnApi';
|
|
3
3
|
import { FreeTextColumnState, FreeTextColumn, FreeTextStoredValue } from '../../PredefinedConfig/FreeTextColumnState';
|
|
4
|
-
import {
|
|
4
|
+
import { CellDataChangedInfo } from '../../PredefinedConfig/Common/CellDataChangedInfo';
|
|
5
5
|
import { RowNode } from '@ag-grid-community/all-modules';
|
|
6
6
|
export declare class FreeTextColumnApiImpl extends ApiBase implements FreeTextColumnApi {
|
|
7
7
|
getFreeTextColumnState(): FreeTextColumnState;
|
|
@@ -16,6 +16,6 @@ export declare class FreeTextColumnApiImpl extends ApiBase implements FreeTextCo
|
|
|
16
16
|
deleteFreeTextColumn(columnId: string): void;
|
|
17
17
|
showFreeTextColumnPopup(): void;
|
|
18
18
|
getFreeTextColumnValueFromRowNode(freeTextColumn: FreeTextColumn, rowNode: RowNode): any;
|
|
19
|
-
checkFreeTextColumnForDataChange(
|
|
19
|
+
checkFreeTextColumnForDataChange(cellDataChangedInfo: CellDataChangedInfo): void;
|
|
20
20
|
getFreeTextColumnModuleReferences(freeTextColumn: FreeTextColumn): string[];
|
|
21
21
|
}
|
|
@@ -94,20 +94,20 @@ class FreeTextColumnApiImpl extends ApiBase_1.ApiBase {
|
|
|
94
94
|
return null;
|
|
95
95
|
}
|
|
96
96
|
}
|
|
97
|
-
checkFreeTextColumnForDataChange(
|
|
98
|
-
let freeTextColumn = this.getAllFreeTextColumn().find((fc) => fc.ColumnId ==
|
|
97
|
+
checkFreeTextColumnForDataChange(cellDataChangedInfo) {
|
|
98
|
+
let freeTextColumn = this.getAllFreeTextColumn().find((fc) => fc.ColumnId == cellDataChangedInfo.column.columnId);
|
|
99
99
|
if (freeTextColumn) {
|
|
100
100
|
let freeTextStoredValue = {
|
|
101
|
-
PrimaryKey:
|
|
102
|
-
FreeText:
|
|
101
|
+
PrimaryKey: cellDataChangedInfo.primaryKeyValue,
|
|
102
|
+
FreeText: cellDataChangedInfo.newValue,
|
|
103
103
|
};
|
|
104
104
|
this.addEditFreeTextColumnStoredValue(freeTextColumn, freeTextStoredValue);
|
|
105
|
-
var colsToRefresh = [
|
|
106
|
-
const refencedCalcColumns = this.adaptable.api.calculatedColumnApi.getCalculatedColumnsReferencingColumnId(
|
|
105
|
+
var colsToRefresh = [cellDataChangedInfo.column.columnId];
|
|
106
|
+
const refencedCalcColumns = this.adaptable.api.calculatedColumnApi.getCalculatedColumnsReferencingColumnId(cellDataChangedInfo.column.columnId);
|
|
107
107
|
refencedCalcColumns.forEach((calculatedColumn) => {
|
|
108
108
|
colsToRefresh.push(calculatedColumn.ColumnId);
|
|
109
109
|
});
|
|
110
|
-
this.adaptable.refreshCells([
|
|
110
|
+
this.adaptable.refreshCells([cellDataChangedInfo.rowNode], colsToRefresh, false);
|
|
111
111
|
}
|
|
112
112
|
}
|
|
113
113
|
getFreeTextColumnModuleReferences(freeTextColumn) {
|
|
@@ -6,11 +6,14 @@ import { SelectedRowInfo } from '../../PredefinedConfig/Selection/SelectedRowInf
|
|
|
6
6
|
import { GridCell } from '../../PredefinedConfig/Selection/GridCell';
|
|
7
7
|
import { ColumnSort } from '../../PredefinedConfig/Common/ColumnSort';
|
|
8
8
|
import { DataUpdateConfig } from '../../PredefinedConfig/Common/DataUpdateConfig';
|
|
9
|
-
import { DataChangedInfo, AccessLevel, AdaptableModule } from '../../types';
|
|
10
9
|
import { CellHighlightInfo } from '../../PredefinedConfig/Common/CellHighlightInfo';
|
|
11
10
|
import { RowHighlightInfo } from '../../PredefinedConfig/Common/RowHighlightInfo';
|
|
12
11
|
import { GridOptions, RowNode } from '@ag-grid-community/all-modules';
|
|
13
12
|
import { GridCellRange } from '../../PredefinedConfig/Selection/GridCellRange';
|
|
13
|
+
import { CellDataChangedInfo } from '../../PredefinedConfig/Common/CellDataChangedInfo';
|
|
14
|
+
import { AdaptableModule } from '../../PredefinedConfig/Common/Types';
|
|
15
|
+
import { RowsHighlightInfo } from '../../PredefinedConfig/Common/RowsHighlightInfo';
|
|
16
|
+
import { AccessLevel } from '../../PredefinedConfig/Common/Entitlement';
|
|
14
17
|
export declare class GridApiImpl extends ApiBase implements GridApi {
|
|
15
18
|
getGridState(): GridState;
|
|
16
19
|
setGridData(dataSource: any): void;
|
|
@@ -19,7 +22,7 @@ export declare class GridApiImpl extends ApiBase implements GridApi {
|
|
|
19
22
|
loadGridData(dataSource: any): void;
|
|
20
23
|
updateGridData(dataRows: any[], dataUpdateConfig?: DataUpdateConfig): Promise<RowNode[]>;
|
|
21
24
|
addGridData(dataRows: any[], dataUpdateConfig?: DataUpdateConfig): Promise<RowNode[]>;
|
|
22
|
-
undoCellEdit(
|
|
25
|
+
undoCellEdit(cellDataChangedInfo: CellDataChangedInfo): boolean;
|
|
23
26
|
deleteGridData(dataRows: any[], dataUpdateConfig?: DataUpdateConfig): Promise<RowNode[]>;
|
|
24
27
|
setCellValue(columnId: string, newValue: any, primaryKeyValue: any): void;
|
|
25
28
|
setCellsValue(gridCells: {
|
|
@@ -64,6 +67,7 @@ export declare class GridApiImpl extends ApiBase implements GridApi {
|
|
|
64
67
|
getRowNodesForPrimaryKeys(primaryKeyValues: any[]): RowNode[];
|
|
65
68
|
getRowNodeForPrimaryKey(primaryKeyValue: any): RowNode;
|
|
66
69
|
getPrimaryKeyValueForRowNode(rowNode: RowNode): any;
|
|
70
|
+
getPrimaryKeyValuesForRowNodes(rowNodes: RowNode[]): any[];
|
|
67
71
|
setRowGroupColumns(columnIds: string[]): void;
|
|
68
72
|
clearRowGroupColumns(): void;
|
|
69
73
|
expandAllRowGroups(): void;
|
|
@@ -78,7 +82,7 @@ export declare class GridApiImpl extends ApiBase implements GridApi {
|
|
|
78
82
|
isQuickFilterAvailable(): boolean;
|
|
79
83
|
redrawGrid(): void;
|
|
80
84
|
fireSearchChangedEvent(searchChangedTrigger: 'DataSource' | 'CurrentQuery' | 'Filter' | 'DataChange' | 'Sort'): void;
|
|
81
|
-
fireCellChangedEvent(
|
|
85
|
+
fireCellChangedEvent(cellDataChangedInfo: CellDataChangedInfo): void;
|
|
82
86
|
fireGridDataChangedEvent(dataRows: any[], rowNodes: RowNode[], rowTrigger: 'Add' | 'Edit' | 'Delete'): void;
|
|
83
87
|
jumpToRow(primaryKeyValue: any): void;
|
|
84
88
|
jumpToColumn(columnId: string): void;
|
|
@@ -87,14 +91,18 @@ export declare class GridApiImpl extends ApiBase implements GridApi {
|
|
|
87
91
|
unHighlightCell(primaryKeyValue: CellHighlightInfo['primaryKeyValue'], columnId: CellHighlightInfo['columnId']): void;
|
|
88
92
|
unHighlightAllCells(): void;
|
|
89
93
|
highlightRow(rowHighlightInfo: RowHighlightInfo): void;
|
|
94
|
+
highlightRows(rowHighlightInfos: RowsHighlightInfo): void;
|
|
90
95
|
unHighlightRow(primaryKeyValue: RowHighlightInfo['primaryKeyValue']): void;
|
|
96
|
+
unHighlightRows(primaryKeyValues: RowsHighlightInfo['primaryKeyValues']): void;
|
|
91
97
|
unHighlightAllRows(): void;
|
|
92
98
|
refreshCells(rowNodes: RowNode[], columnIds: string[]): void;
|
|
93
99
|
refreshRowByPrimaryKey(primaryKey: any): void;
|
|
94
100
|
refreshRowNode(rowNode: RowNode): void;
|
|
101
|
+
refreshRowNodes(rowNodes: RowNode[]): void;
|
|
95
102
|
areCellsEditable(gridCells: GridCell[]): boolean;
|
|
96
103
|
getRowCount(): number;
|
|
97
104
|
getVisibleRowCount(): number;
|
|
105
|
+
getRowsInViewport(): RowNode[];
|
|
98
106
|
getColumnCount(): number;
|
|
99
107
|
getVisibleColumnCount(): number;
|
|
100
108
|
getEntitlementAccessLevelForModule(adaptableModule: AdaptableModule): AccessLevel;
|
|
@@ -32,10 +32,10 @@ class GridApiImpl extends ApiBase_1.ApiBase {
|
|
|
32
32
|
this.fireGridDataChangedEvent(dataRows, rowNodes, 'Add');
|
|
33
33
|
return rowNodes;
|
|
34
34
|
}
|
|
35
|
-
undoCellEdit(
|
|
35
|
+
undoCellEdit(cellDataChangedInfo) {
|
|
36
36
|
// for the reason of this hacky solution see the comments in DataService
|
|
37
|
-
this.adaptable.api.internalApi.getDataService().logUndoChange(
|
|
38
|
-
this.setCellValue(
|
|
37
|
+
this.adaptable.api.internalApi.getDataService().logUndoChange(cellDataChangedInfo);
|
|
38
|
+
this.setCellValue(cellDataChangedInfo.column.columnId, cellDataChangedInfo.oldValue, cellDataChangedInfo.primaryKeyValue);
|
|
39
39
|
return true;
|
|
40
40
|
}
|
|
41
41
|
async deleteGridData(dataRows, dataUpdateConfig) {
|
|
@@ -220,6 +220,9 @@ class GridApiImpl extends ApiBase_1.ApiBase {
|
|
|
220
220
|
getPrimaryKeyValueForRowNode(rowNode) {
|
|
221
221
|
return this.adaptable.getPrimaryKeyValueFromRowNode(rowNode);
|
|
222
222
|
}
|
|
223
|
+
getPrimaryKeyValuesForRowNodes(rowNodes) {
|
|
224
|
+
return rowNodes.map((rowNode) => this.getPrimaryKeyValueForRowNode(rowNode));
|
|
225
|
+
}
|
|
223
226
|
setRowGroupColumns(columnIds) {
|
|
224
227
|
this.adaptable.setRowGroupColumns(columnIds);
|
|
225
228
|
}
|
|
@@ -273,21 +276,22 @@ class GridApiImpl extends ApiBase_1.ApiBase {
|
|
|
273
276
|
this.adaptable.api.eventApi.emit('SearchChanged', searchChangedInfo);
|
|
274
277
|
}
|
|
275
278
|
}
|
|
276
|
-
fireCellChangedEvent(
|
|
279
|
+
fireCellChangedEvent(cellDataChangedInfo) {
|
|
277
280
|
if (this.adaptable.isInitialised) {
|
|
278
281
|
const cellChangedInfo = {
|
|
279
282
|
adaptableApi: this.adaptable.api,
|
|
280
|
-
cellChange:
|
|
283
|
+
cellChange: cellDataChangedInfo,
|
|
281
284
|
};
|
|
282
285
|
this.adaptable.api.eventApi.emit('CellChanged', cellChangedInfo);
|
|
283
286
|
}
|
|
284
287
|
}
|
|
285
|
-
fireGridDataChangedEvent(dataRows, rowNodes, rowTrigger) {
|
|
288
|
+
fireGridDataChangedEvent(dataRows, rowNodes = [], rowTrigger) {
|
|
286
289
|
if (this.adaptable.isInitialised) {
|
|
287
290
|
const gridDataChangedInfo = {
|
|
291
|
+
changedAt: Date.now(),
|
|
288
292
|
adaptableApi: this.adaptable.api,
|
|
289
|
-
rowTrigger
|
|
290
|
-
dataRows
|
|
293
|
+
rowTrigger,
|
|
294
|
+
dataRows,
|
|
291
295
|
rowNodes,
|
|
292
296
|
};
|
|
293
297
|
this.adaptable.api.eventApi.emit('GridDataChanged', gridDataChangedInfo);
|
|
@@ -326,9 +330,20 @@ class GridApiImpl extends ApiBase_1.ApiBase {
|
|
|
326
330
|
}, rowHighlightInfo.timeout);
|
|
327
331
|
}
|
|
328
332
|
}
|
|
333
|
+
highlightRows(rowHighlightInfos) {
|
|
334
|
+
this.dispatchAction(SystemRedux_1.SystemHighlightRowsAdd(rowHighlightInfos));
|
|
335
|
+
if (rowHighlightInfos.timeout) {
|
|
336
|
+
setTimeout(() => {
|
|
337
|
+
this.unHighlightRows(rowHighlightInfos.primaryKeyValues);
|
|
338
|
+
}, rowHighlightInfos.timeout);
|
|
339
|
+
}
|
|
340
|
+
}
|
|
329
341
|
unHighlightRow(primaryKeyValue) {
|
|
330
342
|
this.dispatchAction(SystemRedux_1.SystemHighlightRowDelete(primaryKeyValue));
|
|
331
343
|
}
|
|
344
|
+
unHighlightRows(primaryKeyValues) {
|
|
345
|
+
this.dispatchAction(SystemRedux_1.SystemHighlightRowsDelete(primaryKeyValues));
|
|
346
|
+
}
|
|
332
347
|
unHighlightAllRows() {
|
|
333
348
|
this.dispatchAction(SystemRedux_1.SystemHighlightRowDeleteAll());
|
|
334
349
|
}
|
|
@@ -342,6 +357,9 @@ class GridApiImpl extends ApiBase_1.ApiBase {
|
|
|
342
357
|
refreshRowNode(rowNode) {
|
|
343
358
|
this.adaptable.redrawRow(rowNode);
|
|
344
359
|
}
|
|
360
|
+
refreshRowNodes(rowNodes) {
|
|
361
|
+
this.adaptable.redrawRows(rowNodes);
|
|
362
|
+
}
|
|
345
363
|
areCellsEditable(gridCells) {
|
|
346
364
|
for (let gridCell of gridCells) {
|
|
347
365
|
if (!gridCell.column) {
|
|
@@ -364,6 +382,9 @@ class GridApiImpl extends ApiBase_1.ApiBase {
|
|
|
364
382
|
getVisibleRowCount() {
|
|
365
383
|
return this.adaptable.getVisibleRowCount();
|
|
366
384
|
}
|
|
385
|
+
getRowsInViewport() {
|
|
386
|
+
return this.adaptable.getRowsInViewport();
|
|
387
|
+
}
|
|
367
388
|
getColumnCount() {
|
|
368
389
|
return this.adaptable.getColumnCount();
|
|
369
390
|
}
|