@adaptabletools/adaptable-cjs 22.0.0-canary.5 → 22.0.0-canary.7
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/index.css +0 -3
- package/index.css.map +1 -1
- package/package.json +1 -1
- package/src/AdaptableOptions/CustomSortOptions.d.ts +1 -2
- package/src/AdaptableState/AlertState.d.ts +6 -3
- package/src/AdaptableState/ChartingState.d.ts +5 -5
- package/src/AdaptableState/Common/AdaptableObject.d.ts +4 -9
- package/src/AdaptableState/Common/BaseContext.d.ts +2 -0
- package/src/AdaptableState/Common/ColumnHighlightInfo.d.ts +18 -0
- package/src/AdaptableState/Common/ColumnHighlightInfo.js +2 -0
- package/src/AdaptableState/Common/NamedObject.d.ts +10 -0
- package/src/AdaptableState/Common/NamedObject.js +2 -0
- package/src/AdaptableState/Common/RowSummary.d.ts +1 -1
- package/src/AdaptableState/Common/Schedule.d.ts +7 -3
- package/src/AdaptableState/Common/SuspendableObject.d.ts +10 -0
- package/src/AdaptableState/Common/SuspendableObject.js +2 -0
- package/src/AdaptableState/CustomSortState.d.ts +6 -2
- package/src/AdaptableState/DashboardState.d.ts +3 -3
- package/src/AdaptableState/ExportState.d.ts +3 -3
- package/src/AdaptableState/FlashingCellState.d.ts +6 -2
- package/src/AdaptableState/FormatColumnState.d.ts +6 -2
- package/src/AdaptableState/InternalState.d.ts +2 -0
- package/src/AdaptableState/LayoutState.d.ts +3 -3
- package/src/AdaptableState/NamedQueryState.d.ts +3 -3
- package/src/AdaptableState/PlusMinusState.d.ts +6 -2
- package/src/AdaptableState/ShortcutState.d.ts +6 -2
- package/src/AdaptableState/StyledColumnState.d.ts +1 -1
- package/src/AdaptableState/ThemeState.d.ts +3 -3
- package/src/Api/AlertApi.d.ts +6 -0
- package/src/Api/CustomSortApi.d.ts +6 -0
- package/src/Api/FlashingCellApi.d.ts +6 -0
- package/src/Api/FormatColumnApi.d.ts +10 -4
- package/src/Api/GridApi.d.ts +18 -3
- package/src/Api/Implementation/AlertApiImpl.d.ts +1 -0
- package/src/Api/Implementation/AlertApiImpl.js +3 -0
- package/src/Api/Implementation/ChartingApiImpl.js +2 -2
- package/src/Api/Implementation/CustomSortApiImpl.d.ts +1 -0
- package/src/Api/Implementation/CustomSortApiImpl.js +3 -0
- package/src/Api/Implementation/FlashingCellApiImpl.d.ts +1 -0
- package/src/Api/Implementation/FlashingCellApiImpl.js +3 -0
- package/src/Api/Implementation/FormatColumnApiImpl.d.ts +6 -5
- package/src/Api/Implementation/FormatColumnApiImpl.js +6 -5
- package/src/Api/Implementation/GridApiImpl.d.ts +4 -0
- package/src/Api/Implementation/GridApiImpl.js +14 -0
- package/src/Api/Implementation/LayoutApiImpl.js +1 -1
- package/src/Api/Implementation/NamedQueryApiImpl.js +2 -2
- package/src/Api/Implementation/PlusMinusApiImpl.d.ts +1 -0
- package/src/Api/Implementation/PlusMinusApiImpl.js +3 -0
- package/src/Api/Implementation/ScheduleApiImpl.d.ts +1 -0
- package/src/Api/Implementation/ScheduleApiImpl.js +3 -0
- package/src/Api/Implementation/ShortcutApiImpl.d.ts +1 -0
- package/src/Api/Implementation/ShortcutApiImpl.js +3 -0
- package/src/Api/Implementation/SystemStatusApiImpl.js +4 -4
- package/src/Api/Internal/CalculatedColumnInternalApi.js +2 -2
- package/src/Api/Internal/FreeTextColumnInternalApi.js +2 -2
- package/src/Api/Internal/LayoutInternalApi.js +1 -1
- package/src/Api/Internal/NamedQueryInternalApi.js +4 -4
- package/src/Api/PlusMinusApi.d.ts +6 -0
- package/src/Api/ScheduleApi.d.ts +6 -0
- package/src/Api/ShortcutApi.d.ts +6 -0
- package/src/Redux/ActionsReducers/FormatColumnRedux.d.ts +8 -0
- package/src/Redux/ActionsReducers/FormatColumnRedux.js +17 -1
- package/src/Redux/ActionsReducers/InternalRedux.d.ts +15 -0
- package/src/Redux/ActionsReducers/InternalRedux.js +42 -3
- package/src/Redux/Store/AdaptableStore.js +39 -16
- package/src/Strategy/BulkUpdateModule.js +8 -8
- package/src/Strategy/PlusMinusModule.js +1 -1
- package/src/Strategy/QuickSearchModule.js +1 -1
- package/src/Strategy/SettingsPanelModule.js +11 -7
- package/src/Strategy/SmartEditModule.js +10 -10
- package/src/Utilities/Services/DataService.js +1 -1
- package/src/Utilities/Services/Fdc3Service.js +4 -4
- package/src/Utilities/Services/ModuleService.js +1 -3
- package/src/Utilities/Services/ThemeService.js +2 -6
- package/src/Utilities/Services/ValidationService.js +1 -1
- package/src/Utilities/logDeprecation.js +3 -4
- package/src/View/Alert/Utilities/getDefaultAlertDefinition.d.ts +2 -2
- package/src/View/Alert/Wizard/isValidAlertRules.js +1 -1
- package/src/View/CalculatedColumn/Wizard/CalculatedColumnDefinitionWizardSection.js +2 -2
- package/src/View/CalculatedColumn/Wizard/CalculatedColumnExpressionWizardSection.js +2 -2
- package/src/View/CalculatedColumn/Wizard/CalculatedColumnSettingsWizardSection.js +1 -1
- package/src/View/Charting/ChartingWizard/AgChargingWizard/SettingsSection.js +2 -2
- package/src/View/Charting/ChartingWizard/ExternalChartingWizard/SettingsSection.js +2 -2
- package/src/View/Components/CellPopup/index.js +1 -1
- package/src/View/Components/ColumnFilter/FloatingFilter.js +41 -3
- package/src/View/Components/ColumnFilter/components/ColumnFilterMenu.js +54 -2
- package/src/View/Components/EntityRulesEditor/Utilities.js +5 -5
- package/src/View/Components/NewScopeComponent.js +3 -3
- package/src/View/Components/Popups/AdaptablePopupConfirmation.js +1 -1
- package/src/View/CustomSort/Wizard/CustomSortColumnWizardSection.js +3 -3
- package/src/View/CustomSort/Wizard/CustomSortValuesWizardSection.js +1 -1
- package/src/View/FlashingCell/Wizard/isValidFlashingCellRules.js +1 -1
- package/src/View/FreeTextColumn/Wizard/FreeTextColumnSettingsWizardSection.d.ts +1 -1
- package/src/View/FreeTextColumn/Wizard/FreeTextColumnSettingsWizardSection.js +3 -3
- package/src/View/Layout/LayoutViewPanel.js +1 -1
- package/src/View/Layout/Wizard/sections/AggregationsSection.js +1 -1
- package/src/View/Layout/Wizard/sections/FilterSection.js +1 -1
- package/src/View/Layout/Wizard/sections/GridFilterSection.js +1 -1
- package/src/View/Layout/Wizard/sections/PivotAggregationsSection.js +3 -3
- package/src/View/Layout/Wizard/sections/RowSummarySection.js +1 -1
- package/src/View/NamedQuery/Wizard/NamedQueryExpressionWizardSection.js +2 -2
- package/src/View/PlusMinus/Wizard/PlusMinusSettingsWizardSection.js +5 -5
- package/src/View/Schedule/Wizard/ScheduleSettingsWizard/isSettingsValid.d.ts +1 -1
- package/src/View/Schedule/Wizard/ScheduleSettingsWizard/isSettingsValid.js +11 -11
- package/src/View/StateManagement/handleExportState.js +1 -1
- package/src/View/StyledColumn/Wizard/StyledColumnWizardColumnSection.js +1 -1
- package/src/agGrid/AdaptableAgGrid.js +47 -51
- package/src/agGrid/AgGridAdapter.js +8 -8
- package/src/agGrid/AgGridColumnAdapter.d.ts +1 -0
- package/src/agGrid/AgGridColumnAdapter.js +15 -4
- package/src/agGrid/AgGridExportAdapter.js +5 -5
- package/src/agGrid/AgGridThemeAdapter.js +2 -2
- package/src/components/OverlayTrigger/index.js +1 -1
- package/src/components/Select/Select.js +77 -14
- package/src/env.js +2 -2
- package/src/metamodel/adaptable.metamodel.d.ts +25 -18
- package/src/metamodel/adaptable.metamodel.js +1 -1
- package/src/migration/AdaptableUpgradeHelper.js +2 -2
- package/src/migration/VersionUpgrade17.js +4 -4
- package/src/migration/VersionUpgrade20.js +4 -4
- package/src/types.d.ts +2 -2
- package/tsconfig.cjs.tsbuildinfo +1 -1
|
@@ -7,50 +7,50 @@ const StringExtensions_1 = tslib_1.__importDefault(require("../../../../Utilitie
|
|
|
7
7
|
const isSettingsValid = (schedule, api) => {
|
|
8
8
|
// Validate Name - mandatory and unique
|
|
9
9
|
if (!schedule.Name?.trim()) {
|
|
10
|
-
return '
|
|
10
|
+
return 'A name is required.';
|
|
11
11
|
}
|
|
12
12
|
const allSchedules = api.scheduleApi.getSchedules();
|
|
13
13
|
const isDuplicateName = allSchedules.some((s) => s.Name === schedule.Name && s.Uuid !== schedule.Uuid);
|
|
14
14
|
if (isDuplicateName) {
|
|
15
|
-
return 'A Schedule with this name already exists';
|
|
15
|
+
return 'A Schedule with this name already exists.';
|
|
16
16
|
}
|
|
17
17
|
if (schedule.ScheduleType === Enums_1.ScheduleType.Reminder) {
|
|
18
18
|
const reminder = schedule;
|
|
19
19
|
if (!reminder.MessageType) {
|
|
20
|
-
return '
|
|
20
|
+
return 'Please select a message type.';
|
|
21
21
|
}
|
|
22
22
|
if (StringExtensions_1.default.IsNullOrEmpty(reminder?.Header)) {
|
|
23
|
-
return '
|
|
23
|
+
return 'A reminder header is required.';
|
|
24
24
|
}
|
|
25
25
|
if (StringExtensions_1.default.IsNullOrEmpty(reminder?.Message)) {
|
|
26
|
-
return '
|
|
26
|
+
return 'A reminder message is required.';
|
|
27
27
|
}
|
|
28
28
|
}
|
|
29
29
|
if (schedule.ScheduleType === Enums_1.ScheduleType.Report) {
|
|
30
30
|
const report = schedule;
|
|
31
31
|
if (StringExtensions_1.default.IsNullOrEmpty(report?.ReportName)) {
|
|
32
|
-
return '
|
|
32
|
+
return 'Please select a report.';
|
|
33
33
|
}
|
|
34
34
|
if (StringExtensions_1.default.IsNullOrEmpty(report?.ReportFormat)) {
|
|
35
|
-
return '
|
|
35
|
+
return 'Please select a report format.';
|
|
36
36
|
}
|
|
37
37
|
}
|
|
38
38
|
if (schedule.ScheduleType === Enums_1.ScheduleType.ipushpull) {
|
|
39
39
|
const ipushpull = schedule;
|
|
40
40
|
if (StringExtensions_1.default.IsNullOrEmpty(ipushpull?.IPushPullReport?.ReportName)) {
|
|
41
|
-
return '
|
|
41
|
+
return 'Please select a report.';
|
|
42
42
|
}
|
|
43
43
|
if (StringExtensions_1.default.IsNullOrEmpty(ipushpull?.IPushPullReport?.Folder)) {
|
|
44
|
-
return '
|
|
44
|
+
return 'Please select a report folder.';
|
|
45
45
|
}
|
|
46
46
|
if (StringExtensions_1.default.IsNullOrEmpty(ipushpull?.IPushPullReport?.Page)) {
|
|
47
|
-
return '
|
|
47
|
+
return 'Please select a report page.';
|
|
48
48
|
}
|
|
49
49
|
}
|
|
50
50
|
if (schedule.ScheduleType === Enums_1.ScheduleType.OpenFin) {
|
|
51
51
|
const openfin = schedule;
|
|
52
52
|
if (StringExtensions_1.default.IsNullOrEmpty(openfin?.OpenFinReport?.ReportName)) {
|
|
53
|
-
return '
|
|
53
|
+
return 'Please select a report.';
|
|
54
54
|
}
|
|
55
55
|
}
|
|
56
56
|
return true;
|
|
@@ -10,7 +10,7 @@ const handleExportState = (type, name, state, api) => {
|
|
|
10
10
|
Helper_1.default.copyToClipboard(stringifiedState);
|
|
11
11
|
break;
|
|
12
12
|
case 'Console':
|
|
13
|
-
api.consoleLog('Adaptable
|
|
13
|
+
api.consoleLog('Adaptable state:', state);
|
|
14
14
|
break;
|
|
15
15
|
case 'JSON':
|
|
16
16
|
const jsonFileName = name + '.json';
|
|
@@ -20,7 +20,7 @@ const renderStyledColumnColumnSummary = (data) => {
|
|
|
20
20
|
exports.renderStyledColumnColumnSummary = renderStyledColumnColumnSummary;
|
|
21
21
|
const isValidStyledColumnColumn = (data) => {
|
|
22
22
|
if (!data.ColumnId) {
|
|
23
|
-
return '
|
|
23
|
+
return 'Please select a column for the Styled Column.';
|
|
24
24
|
}
|
|
25
25
|
return true;
|
|
26
26
|
};
|
|
@@ -363,7 +363,7 @@ class AdaptableAgGrid {
|
|
|
363
363
|
this.adaptableOptions = this.normalizeAdaptableOptions(this.adaptableOptions);
|
|
364
364
|
const { showLoadingScreen, loadingScreenDelay, loadingScreenText, loadingScreenTitle } = this.adaptableOptions.userInterfaceOptions.loadingScreenOptions;
|
|
365
365
|
if (showLoadingScreen) {
|
|
366
|
-
this.logger.info(
|
|
366
|
+
this.logger.info('Showing loading screen');
|
|
367
367
|
// it's important to use ensureLoadingScreenPortalElement
|
|
368
368
|
// and not ensurePortalElement, because multiple adaptable instances share the same portal element
|
|
369
369
|
// so when displaying the second one, the react root associated to the portal element
|
|
@@ -379,7 +379,7 @@ class AdaptableAgGrid {
|
|
|
379
379
|
}), portalElement);
|
|
380
380
|
}
|
|
381
381
|
else {
|
|
382
|
-
this.logger.consoleError(
|
|
382
|
+
this.logger.consoleError('Failed to create loading screen portal element.');
|
|
383
383
|
}
|
|
384
384
|
}
|
|
385
385
|
this.forPlugins((plugin) => plugin.afterInitOptions(this, this.adaptableOptions));
|
|
@@ -438,7 +438,7 @@ class AdaptableAgGrid {
|
|
|
438
438
|
// see #map_dateString_to_date
|
|
439
439
|
this.agGridAdapter.patchColDefs(columnDefs, (colDef) => {
|
|
440
440
|
if (colDef.cellDataType === 'dateString') {
|
|
441
|
-
this.logger.consoleError(`
|
|
441
|
+
this.logger.consoleError(`Column "${colDef.colId}" uses cellDataType="dateString" which is no longer supported. It has been replaced with cellDataType="date". Please update your column definition.`);
|
|
442
442
|
colDef.cellDataType = 'date';
|
|
443
443
|
}
|
|
444
444
|
});
|
|
@@ -469,8 +469,8 @@ class AdaptableAgGrid {
|
|
|
469
469
|
const agGridApi = await this.initializeAgGrid(gridOptions, config.modules, config.renderAgGridFrameworkComponent);
|
|
470
470
|
if (agGridApi === false) {
|
|
471
471
|
this.midwayDestroy();
|
|
472
|
-
this.logger.consoleError(
|
|
473
|
-
return Promise.reject('
|
|
472
|
+
this.logger.consoleError('Failed to initialize AG Grid.');
|
|
473
|
+
return Promise.reject('Failed to initialize AG Grid.');
|
|
474
474
|
}
|
|
475
475
|
this.layoutManager = new src_1.LayoutManager({
|
|
476
476
|
gridApi: agGridApi,
|
|
@@ -495,7 +495,7 @@ class AdaptableAgGrid {
|
|
|
495
495
|
this.layoutManager.onColumnDefsChanged(() => {
|
|
496
496
|
this.updateColumnModelAndRefreshGrid();
|
|
497
497
|
});
|
|
498
|
-
this.logger.info(
|
|
498
|
+
this.logger.info('Hiding loading screen');
|
|
499
499
|
this.unmountLoadingScreen?.();
|
|
500
500
|
perfInitAgGrid.end();
|
|
501
501
|
initAgGridMarker.end();
|
|
@@ -506,7 +506,7 @@ class AdaptableAgGrid {
|
|
|
506
506
|
this.lifecycleState = 'agGridReady';
|
|
507
507
|
this.api.entitlementApi.internalApi.setModulesAgGridDepsInfos();
|
|
508
508
|
this.ModuleService.logMissingAgGridDepsInfos();
|
|
509
|
-
this.logger.info(
|
|
509
|
+
this.logger.info('Registered AG Grid modules (including dependents):', this.agGridModulesAdapter.getAgGridRegisteredModuleNames().sort());
|
|
510
510
|
/**
|
|
511
511
|
* At this point AG Grid is initialized!
|
|
512
512
|
*/
|
|
@@ -596,10 +596,7 @@ class AdaptableAgGrid {
|
|
|
596
596
|
const layoutState = state.Layout;
|
|
597
597
|
// ensure that at least one Layout has been provided
|
|
598
598
|
if (!layoutState || !layoutState.Layouts?.length) {
|
|
599
|
-
this.logger
|
|
600
|
-
.consoleError(`You have not defined any Layout in your InitialState.Layout.Layouts[] state!
|
|
601
|
-
|
|
602
|
-
You need to define at least one Layout!`);
|
|
599
|
+
this.logger.consoleError('No Layouts defined in InitialState.Layout.Layouts[]. At least one Layout is required.');
|
|
603
600
|
}
|
|
604
601
|
// ensure CurrentLayout is valid
|
|
605
602
|
if (!layoutState.CurrentLayout ||
|
|
@@ -764,19 +761,12 @@ You need to define at least one Layout!`);
|
|
|
764
761
|
}
|
|
765
762
|
normalizeAdaptableOptions(adaptableOptions) {
|
|
766
763
|
if (this.hasAutogeneratedPrimaryKey) {
|
|
767
|
-
this.logger
|
|
768
|
-
.warn(`Autogenerated primary key (adaptableOptions.autogeneratedPrimaryKey = TRUE) should be used only as a last resort,
|
|
769
|
-
when no unique column is available, as it limits some Adaptable functionalities!
|
|
770
|
-
|
|
771
|
-
For more details see: ${DocumentationLinkConstants_1.PrimaryKeyDocsLink}`);
|
|
764
|
+
this.logger.warn(`Autogenerated primary key is enabled (adaptableOptions.autogeneratedPrimaryKey = true). This should be a last resort as it limits some Adaptable features. See: ${DocumentationLinkConstants_1.PrimaryKeyDocsLink}`);
|
|
772
765
|
this.adaptableOptions.primaryKey = GeneralConstants_1.AUTOGENERATED_PK_COLUMN;
|
|
773
766
|
return this.adaptableOptions;
|
|
774
767
|
}
|
|
775
768
|
if (StringExtensions_1.default.IsNullOrEmpty(adaptableOptions.primaryKey)) {
|
|
776
|
-
this.logger.consoleError(`
|
|
777
|
-
As a fallback, you can set adaptableOptions.autogeneratedPrimaryKey = TRUE
|
|
778
|
-
|
|
779
|
-
For more details see: ${DocumentationLinkConstants_1.PrimaryKeyDocsLink}`);
|
|
769
|
+
this.logger.consoleError(`adaptableOptions.primaryKey is required and must not be empty. As a fallback, set adaptableOptions.autogeneratedPrimaryKey = true. See: ${DocumentationLinkConstants_1.PrimaryKeyDocsLink}`);
|
|
780
770
|
}
|
|
781
771
|
return adaptableOptions;
|
|
782
772
|
}
|
|
@@ -808,7 +798,7 @@ You need to define at least one Layout!`);
|
|
|
808
798
|
*/
|
|
809
799
|
this.agGridOptionsService.setGridOptionsProperty(gridOptions, 'defaultColDef', (original_defaultColDef) => {
|
|
810
800
|
if (original_defaultColDef?.headerValueGetter) {
|
|
811
|
-
this.logger.warn(
|
|
801
|
+
this.logger.warn('defaultColDef.headerValueGetter overrides the Adaptable header mechanism. Consider using ColumnOptions.columnHeader instead.');
|
|
812
802
|
return original_defaultColDef;
|
|
813
803
|
}
|
|
814
804
|
// #customize_header
|
|
@@ -825,7 +815,7 @@ You need to define at least one Layout!`);
|
|
|
825
815
|
*/
|
|
826
816
|
this.agGridOptionsService.setGridOptionsProperty(gridOptions, 'defaultColGroupDef', (original_defaultColGroupDef) => {
|
|
827
817
|
if (original_defaultColGroupDef?.headerValueGetter) {
|
|
828
|
-
this.logger.warn(
|
|
818
|
+
this.logger.warn('defaultColGroupDef.headerValueGetter overrides the Adaptable header mechanism. Consider using ColumnOptions.tableColumnHeader instead.');
|
|
829
819
|
return original_defaultColGroupDef;
|
|
830
820
|
}
|
|
831
821
|
const defaultColGroupDef = { ...original_defaultColGroupDef };
|
|
@@ -845,12 +835,11 @@ You need to define at least one Layout!`);
|
|
|
845
835
|
}
|
|
846
836
|
if (original_autoGroupColumnDef?.filter === false) {
|
|
847
837
|
// if user disables filter on autoGroupColumnDef, we respect that
|
|
848
|
-
this.logger.info(
|
|
838
|
+
this.logger.info('autoGroupColumnDef.filter is disabled via user configuration.');
|
|
849
839
|
return original_autoGroupColumnDef;
|
|
850
840
|
}
|
|
851
841
|
if (typeof original_autoGroupColumnDef?.filter === 'object') {
|
|
852
|
-
this.logger.consoleWarn(
|
|
853
|
-
Please contact the Adaptable Support Team for further assistance and investigation.`);
|
|
842
|
+
this.logger.consoleWarn('autoGroupColumnDef.filter overrides the Adaptable filtering mechanism for the Group Column. Adaptable-managed filters will not apply to this column. Contact support for alternatives.');
|
|
854
843
|
return original_autoGroupColumnDef;
|
|
855
844
|
}
|
|
856
845
|
const autoGroupColumnDef = { ...original_autoGroupColumnDef };
|
|
@@ -858,8 +847,7 @@ You need to define at least one Layout!`);
|
|
|
858
847
|
// !! DO NOT REMOVE THIS !!
|
|
859
848
|
// see https://github.com/ag-grid/ag-grid/blob/6f43ff257c2e285068eb425b655e58d6eeb89816/packages/ag-grid-enterprise/src/rowHierarchy/autoColService.ts#L225
|
|
860
849
|
autoGroupColumnDef.filterValueGetter = (params) => {
|
|
861
|
-
this.logger.consoleWarn(
|
|
862
|
-
Please contact the Adaptable Support Team for further assistance and investigation.`, params);
|
|
850
|
+
this.logger.consoleWarn('Unexpected invocation of autoGroupColumnDef.filterValueGetter. This is not expected under normal operation. Please contact support.', params);
|
|
863
851
|
return '';
|
|
864
852
|
};
|
|
865
853
|
// !! it is important that we always return the same component / handler instances
|
|
@@ -1429,15 +1417,14 @@ You need to define at least one Layout!`);
|
|
|
1429
1417
|
const rowData = agGridApi.getGridOption('rowData');
|
|
1430
1418
|
this.initWithLazyData = rowData == undefined || rowData.length === 0;
|
|
1431
1419
|
if (this.initWithLazyData) {
|
|
1432
|
-
this.logger.info('
|
|
1420
|
+
this.logger.info('Initializing with lazy data (no initial rowData).');
|
|
1433
1421
|
}
|
|
1434
1422
|
if (!this.getAgGridContainerElement()) {
|
|
1435
1423
|
// initialize the agGridContainerElement from the AgGrid instance
|
|
1436
1424
|
const gridRoot = this.agGridAdapter.getAgGridRootElement();
|
|
1437
1425
|
const gridContainer = gridRoot?.closest('[class*="ag-theme"]');
|
|
1438
1426
|
if (!gridContainer) {
|
|
1439
|
-
this.logger.consoleError(
|
|
1440
|
-
Please contact AdapTable Support and in the meantime provide a valid container element in 'ContainerOptions.agGridContainer'!`);
|
|
1427
|
+
this.logger.consoleError('Failed to derive AG Grid container from the framework wrapper. Please provide a valid container element via ContainerOptions.agGridContainer.');
|
|
1441
1428
|
}
|
|
1442
1429
|
this.DANGER_USE_GETTER_agGridContainerElement = gridContainer;
|
|
1443
1430
|
}
|
|
@@ -1445,7 +1432,7 @@ You need to define at least one Layout!`);
|
|
|
1445
1432
|
}
|
|
1446
1433
|
const agGridContainer = this.getAgGridContainerElement();
|
|
1447
1434
|
if (!agGridContainer) {
|
|
1448
|
-
this.logger.consoleError('
|
|
1435
|
+
this.logger.consoleError('AG Grid container element not found in the DOM. Please provide a valid element via ContainerOptions.agGridContainer.');
|
|
1449
1436
|
return Promise.resolve(false);
|
|
1450
1437
|
}
|
|
1451
1438
|
let gridParams;
|
|
@@ -1860,7 +1847,7 @@ You need to define at least one Layout!`);
|
|
|
1860
1847
|
// if no primary key column then lets check the first row to see if its a data item
|
|
1861
1848
|
const primaryKeyDataItem = this.getFirstRowNode()?.data[primaryKey];
|
|
1862
1849
|
if (!primaryKeyDataItem) {
|
|
1863
|
-
errorMessage = `
|
|
1850
|
+
errorMessage = `Primary key column "${this.adaptableOptions.primaryKey}" not found. This will affect many Adaptable features.`;
|
|
1864
1851
|
if (this.adaptableOptions.alertOptions.showMissingPrimaryKeyAlert) {
|
|
1865
1852
|
// show an alert if that is the option
|
|
1866
1853
|
this.api.alertApi.showAlertError('No Primary Key', errorMessage);
|
|
@@ -1917,12 +1904,12 @@ You need to define at least one Layout!`);
|
|
|
1917
1904
|
checkShouldClearExistingFiltersOrSearches() {
|
|
1918
1905
|
// if they have selected to clear Filters on startup then do it
|
|
1919
1906
|
if (this.adaptableOptions.filterOptions.clearFiltersOnStartUp) {
|
|
1920
|
-
this.logger.warn('Clearing
|
|
1907
|
+
this.logger.warn('Clearing saved filters (clearFiltersOnStartUp is enabled).');
|
|
1921
1908
|
this.api.filterApi.clearAllFilters();
|
|
1922
1909
|
}
|
|
1923
1910
|
// if they have selected to clear searches on startup then do it
|
|
1924
1911
|
if (this.adaptableOptions.quickSearchOptions.clearQuickSearchOnStartUp) {
|
|
1925
|
-
this.logger.warn('Clearing
|
|
1912
|
+
this.logger.warn('Clearing saved Quick Search (clearQuickSearchOnStartUp is enabled).');
|
|
1926
1913
|
this.api.quickSearchApi.clearQuickSearch();
|
|
1927
1914
|
}
|
|
1928
1915
|
}
|
|
@@ -2151,7 +2138,7 @@ You need to define at least one Layout!`);
|
|
|
2151
2138
|
}
|
|
2152
2139
|
}
|
|
2153
2140
|
_updateColumnModelAndRefreshGridNow() {
|
|
2154
|
-
this.logger.info(
|
|
2141
|
+
this.logger.info('Updating column model and refreshing grid.');
|
|
2155
2142
|
this.deriveAdaptableColumnStateFromAgGrid();
|
|
2156
2143
|
this.agGridColumnAdapter.setupColumns();
|
|
2157
2144
|
this.redrawBody();
|
|
@@ -2177,7 +2164,7 @@ You need to define at least one Layout!`);
|
|
|
2177
2164
|
this.agGridAdapter.getAgGridApi().redrawRows(redrawRowsParams);
|
|
2178
2165
|
}
|
|
2179
2166
|
catch (ex) {
|
|
2180
|
-
this.logger.consoleError('AG Grid redrawRows
|
|
2167
|
+
this.logger.consoleError('AG Grid redrawRows failed to locate some row nodes.', rowNodes, ex);
|
|
2181
2168
|
}
|
|
2182
2169
|
}
|
|
2183
2170
|
redrawRow(rowNode) {
|
|
@@ -2587,14 +2574,14 @@ You need to define at least one Layout!`);
|
|
|
2587
2574
|
}
|
|
2588
2575
|
autoSizeColumns(columnIds) {
|
|
2589
2576
|
if (!this.agGridModulesAdapter.isAgGridModuleRegistered('ColumnAutoSizeModule')) {
|
|
2590
|
-
this.logger.consoleError(`
|
|
2577
|
+
this.logger.consoleError(`Auto-sizing columns [${columnIds}] requires the AG Grid "ColumnAutoSizeModule". Please register this module.`);
|
|
2591
2578
|
return;
|
|
2592
2579
|
}
|
|
2593
2580
|
this.layoutManager.autoSizeColumns(columnIds);
|
|
2594
2581
|
}
|
|
2595
2582
|
autoSizeAllColumns() {
|
|
2596
2583
|
if (!this.agGridModulesAdapter.isAgGridModuleRegistered('ColumnAutoSizeModule')) {
|
|
2597
|
-
this.logger.consoleError(
|
|
2584
|
+
this.logger.consoleError('Auto-sizing all columns requires the AG Grid "ColumnAutoSizeModule". Please register this module.');
|
|
2598
2585
|
return;
|
|
2599
2586
|
}
|
|
2600
2587
|
const agGridApi = this.agGridAdapter.getAgGridApi();
|
|
@@ -2752,7 +2739,7 @@ You need to define at least one Layout!`);
|
|
|
2752
2739
|
customInFilterValuesResult = await customInFilterValues(customInFilterValuesContext);
|
|
2753
2740
|
}
|
|
2754
2741
|
catch (error) {
|
|
2755
|
-
this.logger.consoleError(
|
|
2742
|
+
this.logger.consoleError('Failed to retrieve custom filter values.', column, error);
|
|
2756
2743
|
}
|
|
2757
2744
|
return customInFilterValuesResult;
|
|
2758
2745
|
}
|
|
@@ -2792,7 +2779,7 @@ You need to define at least one Layout!`);
|
|
|
2792
2779
|
customDistinctValues = await customEditColumnValues(customEditValuesContext);
|
|
2793
2780
|
}
|
|
2794
2781
|
catch (error) {
|
|
2795
|
-
this.logger.consoleError(
|
|
2782
|
+
this.logger.consoleError('Failed to retrieve custom edit values.', column, error);
|
|
2796
2783
|
}
|
|
2797
2784
|
return customDistinctValues ?? [];
|
|
2798
2785
|
}
|
|
@@ -3247,7 +3234,7 @@ You need to define at least one Layout!`);
|
|
|
3247
3234
|
if (this.getAgGridRowModelType() !== 'clientSide') {
|
|
3248
3235
|
// only in client-side row model can we loop through filtered&sorted rows
|
|
3249
3236
|
// see https://www.ag-grid.com/javascript-data-grid/accessing-data/#iterating-rows
|
|
3250
|
-
this.logger.warn('
|
|
3237
|
+
this.logger.warn('forAllVisibleRowNodesDo() is only supported with client-side row model. Falling back to forAllRowNodesDo().');
|
|
3251
3238
|
return this.forAllRowNodesDo(func, config);
|
|
3252
3239
|
}
|
|
3253
3240
|
this.agGridAdapter.getAgGridApi().forEachNodeAfterFilterAndSort((rowNode, rowIndex) => {
|
|
@@ -3299,14 +3286,14 @@ You need to define at least one Layout!`);
|
|
|
3299
3286
|
}
|
|
3300
3287
|
selectNode(rowNode, clearSelection) {
|
|
3301
3288
|
if (!rowNode) {
|
|
3302
|
-
this.logger.error('
|
|
3289
|
+
this.logger.error('Cannot select: row node is null.');
|
|
3303
3290
|
return;
|
|
3304
3291
|
}
|
|
3305
3292
|
rowNode.setSelected(true, clearSelection);
|
|
3306
3293
|
}
|
|
3307
3294
|
deSelectNode(rowNode, clearSelection) {
|
|
3308
3295
|
if (!rowNode) {
|
|
3309
|
-
this.logger.error('
|
|
3296
|
+
this.logger.error('Cannot deselect: row node is null.');
|
|
3310
3297
|
return;
|
|
3311
3298
|
}
|
|
3312
3299
|
rowNode.setSelected(false, clearSelection);
|
|
@@ -3394,7 +3381,7 @@ You need to define at least one Layout!`);
|
|
|
3394
3381
|
}
|
|
3395
3382
|
showChart(chartDefinition, container) {
|
|
3396
3383
|
if (!this.isReady) {
|
|
3397
|
-
this.logger.consoleError('
|
|
3384
|
+
this.logger.consoleError('Cannot call showChart before Adaptable is fully initialized.');
|
|
3398
3385
|
return null;
|
|
3399
3386
|
}
|
|
3400
3387
|
/**
|
|
@@ -3415,7 +3402,7 @@ You need to define at least one Layout!`);
|
|
|
3415
3402
|
}
|
|
3416
3403
|
updateChart(chart) {
|
|
3417
3404
|
if (!chart.Model) {
|
|
3418
|
-
this.logger.consoleError(`
|
|
3405
|
+
this.logger.consoleError(`Cannot update chart "${chart.Name}": the chart definition is missing the required Model property.`);
|
|
3419
3406
|
return;
|
|
3420
3407
|
}
|
|
3421
3408
|
const upgradableProperties = {
|
|
@@ -3427,12 +3414,21 @@ You need to define at least one Layout!`);
|
|
|
3427
3414
|
suppressChartRanges: Boolean(chart.Model.suppressChartRanges),
|
|
3428
3415
|
aggFunc: chart.Model.aggFunc,
|
|
3429
3416
|
};
|
|
3417
|
+
// Skip the AG Grid API call if the upgradable properties haven't changed
|
|
3418
|
+
// to avoid unnecessary chartOptionsChanged events (see #ag_grid_update_chart_loop)
|
|
3419
|
+
const currentModel = this.getChartModels().find((model) => model.chartId === chart.Model.chartId);
|
|
3420
|
+
if (currentModel &&
|
|
3421
|
+
Boolean(currentModel.unlinkChart) === upgradableProperties.unlinkChart &&
|
|
3422
|
+
Boolean(currentModel.suppressChartRanges) === upgradableProperties.suppressChartRanges &&
|
|
3423
|
+
currentModel.aggFunc === upgradableProperties.aggFunc) {
|
|
3424
|
+
return;
|
|
3425
|
+
}
|
|
3430
3426
|
// see also #ag_grid_update_chart_loop
|
|
3431
3427
|
this.agGridAdapter.getAgGridApi().updateChart(upgradableProperties);
|
|
3432
3428
|
}
|
|
3433
3429
|
getChartModels() {
|
|
3434
3430
|
if (!this.isReady) {
|
|
3435
|
-
this.logger.consoleError('
|
|
3431
|
+
this.logger.consoleError('Cannot call getChartModels before Adaptable is fully initialized.');
|
|
3436
3432
|
return [];
|
|
3437
3433
|
}
|
|
3438
3434
|
return this.agGridAdapter.getAgGridApi().getChartModels();
|
|
@@ -3466,7 +3462,7 @@ You need to define at least one Layout!`);
|
|
|
3466
3462
|
}
|
|
3467
3463
|
setAgGridQuickSearch(searchText) {
|
|
3468
3464
|
if (!this.agGridModulesAdapter.isAgGridModuleRegistered('QuickFilterModule')) {
|
|
3469
|
-
this.logger.consoleError(
|
|
3465
|
+
this.logger.consoleError('Quick Search requires the AG Grid "QuickFilterModule". Please register this module to enable Quick Search.');
|
|
3470
3466
|
return;
|
|
3471
3467
|
}
|
|
3472
3468
|
this.agGridAdapter.setGridOption('quickFilterText', searchText);
|
|
@@ -3476,7 +3472,7 @@ You need to define at least one Layout!`);
|
|
|
3476
3472
|
}
|
|
3477
3473
|
setAgGridFindSearchValue(searchText) {
|
|
3478
3474
|
if (!this.agGridModulesAdapter.isAgGridModuleRegistered('FindModule')) {
|
|
3479
|
-
this.logger.consoleError(
|
|
3475
|
+
this.logger.consoleError('Find Search requires the AG Grid "FindModule". Please register this module to enable Find Search.');
|
|
3480
3476
|
return;
|
|
3481
3477
|
}
|
|
3482
3478
|
this.agGridAdapter.setGridOption('findSearchValue', searchText);
|
|
@@ -4005,7 +4001,7 @@ You need to define at least one Layout!`);
|
|
|
4005
4001
|
cellDataChangedInfos.forEach((cellDataChangedInfo) => {
|
|
4006
4002
|
// if a Cell Data Change is undone, log to the Console
|
|
4007
4003
|
if (cellDataChangedInfo.trigger === 'undo') {
|
|
4008
|
-
this.logger.info(`
|
|
4004
|
+
this.logger.info(`Data change reverted: column="${cellDataChangedInfo.column}", primaryKey="${cellDataChangedInfo.primaryKeyValue}", from=${cellDataChangedInfo.newValue} to=${cellDataChangedInfo.oldValue}`);
|
|
4009
4005
|
}
|
|
4010
4006
|
// For Changes except Aggregations, reset cell selection if required
|
|
4011
4007
|
if (cellDataChangedInfo.trigger === 'edit' ||
|
|
@@ -4210,7 +4206,7 @@ You need to define at least one Layout!`);
|
|
|
4210
4206
|
this.api.layoutApi.createOrUpdateLayout(layout);
|
|
4211
4207
|
}
|
|
4212
4208
|
refreshAdaptableAfterLayoutChange(layout) {
|
|
4213
|
-
this.logger.info('
|
|
4209
|
+
this.logger.info('Refreshing Adaptable after layout change.');
|
|
4214
4210
|
const prevLayoutForRefresh = this.__prevLayoutForRefresh || this.api.layoutApi.getCurrentLayout();
|
|
4215
4211
|
// see #on-regroup-expect-group-column-to-be-recomputed-and-setup-properly
|
|
4216
4212
|
const rowGroupsChanged = this.isRowGroupDifferentInLayout(prevLayoutForRefresh, layout);
|
|
@@ -4256,7 +4252,7 @@ You need to define at least one Layout!`);
|
|
|
4256
4252
|
.forEach((colType) => {
|
|
4257
4253
|
const newValidCellDataType = (0, VersionUpgrade20_1.mapOldTypeToDataType)(colType);
|
|
4258
4254
|
if (newValidCellDataType) {
|
|
4259
|
-
this.logger.consoleWarn(`Column ${columnDefinition.colId ?? columnDefinition.field}
|
|
4255
|
+
this.logger.consoleWarn(`Column "${columnDefinition.colId ?? columnDefinition.field}" uses deprecated type "${colType}"${newValidCellDataType !== 'unknown' ? `. Use colDef.cellDataType="${newValidCellDataType}" instead.` : '. This type is no longer supported.'}`);
|
|
4260
4256
|
}
|
|
4261
4257
|
});
|
|
4262
4258
|
});
|
|
@@ -149,7 +149,7 @@ class AgGridAdapter {
|
|
|
149
149
|
}
|
|
150
150
|
}
|
|
151
151
|
options['columnDefs'] = colDefsWithSpecialColumns;
|
|
152
|
-
self.logger.info(`Added
|
|
152
|
+
self.logger.info(`Added special columns on GridOptions.columnDefs update (source="${source}").`);
|
|
153
153
|
}
|
|
154
154
|
// `context`
|
|
155
155
|
const passedContext = options.context;
|
|
@@ -169,7 +169,7 @@ class AgGridAdapter {
|
|
|
169
169
|
}
|
|
170
170
|
const agGridColumnFilterService = this.DANGER_getPrivateAgGridBeans()?.colFilter;
|
|
171
171
|
if (!agGridColumnFilterService) {
|
|
172
|
-
this.logger.consoleError('
|
|
172
|
+
this.logger.consoleError('Failed to initialize ColumnFilterService. Filtering and related features will not function correctly.');
|
|
173
173
|
return;
|
|
174
174
|
}
|
|
175
175
|
const self = this;
|
|
@@ -215,7 +215,7 @@ class AgGridAdapter {
|
|
|
215
215
|
DANGER_getPrivateAgGridBeans() {
|
|
216
216
|
const beans = DANGER_AG_GRID_BEANS_MAP[this._agGridId];
|
|
217
217
|
if (!beans) {
|
|
218
|
-
this.logger.consoleError('
|
|
218
|
+
this.logger.consoleError('Failed to access AG Grid internal beans. Adaptable will not function correctly.');
|
|
219
219
|
}
|
|
220
220
|
return beans;
|
|
221
221
|
}
|
|
@@ -359,7 +359,7 @@ class AgGridAdapter {
|
|
|
359
359
|
if (isEndRowPin) {
|
|
360
360
|
shouldIncludeRange = false;
|
|
361
361
|
}
|
|
362
|
-
this.logger.consoleWarn('
|
|
362
|
+
this.logger.consoleWarn('Pinned rows cannot be selected in AG Grid.');
|
|
363
363
|
}
|
|
364
364
|
if (shouldIncludeRange) {
|
|
365
365
|
const y1 = Math.min(rangeSelection.startRow.rowIndex, rangeSelection.endRow.rowIndex);
|
|
@@ -529,7 +529,7 @@ class AgGridAdapter {
|
|
|
529
529
|
deriveAdaptableColumnDataType(agColumn, logWarning = true) {
|
|
530
530
|
// Some columns can have no ID or Title. we return string as a consequence but it needs testing
|
|
531
531
|
if (!agColumn) {
|
|
532
|
-
this.logger.warn(
|
|
532
|
+
this.logger.warn('Column is undefined. Defaulting data type to "text".');
|
|
533
533
|
return 'text';
|
|
534
534
|
}
|
|
535
535
|
if (this.adaptableApi.columnApi.isAutoRowGroupColumnForSingle(agColumn.getId())) {
|
|
@@ -572,7 +572,7 @@ class AgGridAdapter {
|
|
|
572
572
|
let row = this.getAgGridApi().getDisplayedRowAtIndex(0);
|
|
573
573
|
if (row == null) {
|
|
574
574
|
// possible that there will be no data.
|
|
575
|
-
this.logger.consoleError(`No data in grid
|
|
575
|
+
this.logger.consoleError(`No data in grid. Returning type "unknown" for column "${agColumn.getColId()}". This will affect features such as Filters and Column Formats.`);
|
|
576
576
|
return 'unknown';
|
|
577
577
|
}
|
|
578
578
|
// // if it's a group we need the content of the group
|
|
@@ -614,7 +614,7 @@ class AgGridAdapter {
|
|
|
614
614
|
dataType = arrayDataType;
|
|
615
615
|
}
|
|
616
616
|
}
|
|
617
|
-
this.logger.consoleWarn(`No
|
|
617
|
+
this.logger.consoleWarn(`No explicit type for column "${agColumn.getColId()}". Inferred type from first row value: "${dataType}".`);
|
|
618
618
|
return dataType;
|
|
619
619
|
}
|
|
620
620
|
isColumnReadonly(colDef) {
|
|
@@ -800,7 +800,7 @@ class AgGridAdapter {
|
|
|
800
800
|
colDef.colId = colDef.field;
|
|
801
801
|
}
|
|
802
802
|
if (!colDef.colId) {
|
|
803
|
-
this.logger.warn('
|
|
803
|
+
this.logger.warn('Column definition is missing colId. Provide either a "field" or "colId" property.', colDef);
|
|
804
804
|
}
|
|
805
805
|
};
|
|
806
806
|
this.patchColDefs(colDefs, assignColId);
|
|
@@ -71,6 +71,7 @@ export declare class AgGridColumnAdapter {
|
|
|
71
71
|
private getAlertCellStyle;
|
|
72
72
|
private getFlashingCellStyle;
|
|
73
73
|
private getCellHighlightStyle;
|
|
74
|
+
private getColumnHighlightStyle;
|
|
74
75
|
isColGroupDef(columnDefinition: ColDef | ColGroupDef): columnDefinition is ColGroupDef;
|
|
75
76
|
private getRelevantFormatColumnHeaderStyles;
|
|
76
77
|
}
|
|
@@ -403,6 +403,7 @@ class AgGridColumnAdapter {
|
|
|
403
403
|
...this.getAlertCellStyle(gridCell, params),
|
|
404
404
|
...this.getFlashingCellStyle(gridCell, params),
|
|
405
405
|
...this.getCellHighlightStyle(gridCell, params),
|
|
406
|
+
...this.getColumnHighlightStyle(gridCell, params),
|
|
406
407
|
};
|
|
407
408
|
return (0, StyleHelper_1.normalizeStyleForAgGrid)(result);
|
|
408
409
|
};
|
|
@@ -660,7 +661,7 @@ class AgGridColumnAdapter {
|
|
|
660
661
|
if (typeof original_filter !== 'boolean' &&
|
|
661
662
|
typeof original_filter?.handler !== 'function' &&
|
|
662
663
|
!pivotMode) {
|
|
663
|
-
this.adaptableApi.consoleError(`Column
|
|
664
|
+
this.adaptableApi.consoleError(`Column "${colId}" has a custom filter in colDef.filter, but Adaptable filtering only accepts boolean (true/false) values for this property.`);
|
|
664
665
|
return false;
|
|
665
666
|
}
|
|
666
667
|
return {
|
|
@@ -1294,14 +1295,24 @@ class AgGridColumnAdapter {
|
|
|
1294
1295
|
: flashingCell.flashingCellDefinition.NeutralChangeStyle) ?? {});
|
|
1295
1296
|
}
|
|
1296
1297
|
getCellHighlightStyle(gridCell, params) {
|
|
1297
|
-
const
|
|
1298
|
+
const cellHighlight = this.adaptableApi.internalApi
|
|
1298
1299
|
.getInternalState()
|
|
1299
1300
|
.CellHighlightInfo.find((cellHighlightInfo) => {
|
|
1300
1301
|
return (gridCell.column.columnId === cellHighlightInfo.columnId &&
|
|
1301
1302
|
cellHighlightInfo.primaryKeyValue === gridCell.primaryKeyValue);
|
|
1302
1303
|
});
|
|
1303
|
-
if (
|
|
1304
|
-
return (0, StyleHelper_1.convertAdaptableStyleToCSS)(
|
|
1304
|
+
if (cellHighlight) {
|
|
1305
|
+
return (0, StyleHelper_1.convertAdaptableStyleToCSS)(cellHighlight.highlightStyle);
|
|
1306
|
+
}
|
|
1307
|
+
}
|
|
1308
|
+
getColumnHighlightStyle(gridCell, params) {
|
|
1309
|
+
const columnHighlight = this.adaptableApi.internalApi
|
|
1310
|
+
.getInternalState()
|
|
1311
|
+
.ColumnHighlightInfo.find((columnHighlightInfo) => {
|
|
1312
|
+
return (gridCell.column.columnId === columnHighlightInfo.columnId);
|
|
1313
|
+
});
|
|
1314
|
+
if (columnHighlight) {
|
|
1315
|
+
return (0, StyleHelper_1.convertAdaptableStyleToCSS)(columnHighlight.highlightStyle);
|
|
1305
1316
|
}
|
|
1306
1317
|
}
|
|
1307
1318
|
isColGroupDef(columnDefinition) {
|
|
@@ -70,7 +70,7 @@ class AgGridExportAdapter {
|
|
|
70
70
|
try {
|
|
71
71
|
if (showProgressIndicator) {
|
|
72
72
|
this.adaptableApi.userInterfaceApi.showProgressIndicator({
|
|
73
|
-
text:
|
|
73
|
+
text: `Exporting ${report.Name}...`,
|
|
74
74
|
});
|
|
75
75
|
// waitForTimeout required to give the ProgressIndicator rendering a head-start (see rAF in ProgressIndicator implementation)
|
|
76
76
|
// see #raf_progress_indicator
|
|
@@ -124,7 +124,7 @@ class AgGridExportAdapter {
|
|
|
124
124
|
};
|
|
125
125
|
}
|
|
126
126
|
catch (error) {
|
|
127
|
-
this.logger.consoleError(`
|
|
127
|
+
this.logger.consoleError(`Export failed: report="${report.Name}", format="${format}", destination="${config.destination}".`, error.stack);
|
|
128
128
|
}
|
|
129
129
|
finally {
|
|
130
130
|
/**
|
|
@@ -146,7 +146,7 @@ class AgGridExportAdapter {
|
|
|
146
146
|
const exportContext = this.buildExportProcessContext(config);
|
|
147
147
|
let exportParams = this.buildExportParams(exportContext);
|
|
148
148
|
if (typeof config?.customExportParams === 'function') {
|
|
149
|
-
this.logger.info(`
|
|
149
|
+
this.logger.info(`Applying custom export params: report="${config.report.Name}", format="${config.format}".`);
|
|
150
150
|
exportParams = config.customExportParams(exportParams);
|
|
151
151
|
}
|
|
152
152
|
exportContext.exportedColumnIds = exportParams.columnKeys;
|
|
@@ -512,7 +512,7 @@ class AgGridExportAdapter {
|
|
|
512
512
|
const columnId = column.getId();
|
|
513
513
|
const adaptableColumn = getAdaptableColumnWithColumnId(columnId);
|
|
514
514
|
if (!adaptableColumn) {
|
|
515
|
-
this.logger.warn(`Export
|
|
515
|
+
this.logger.warn(`Export styling: column "${columnId}" not found in Adaptable.`);
|
|
516
516
|
return;
|
|
517
517
|
}
|
|
518
518
|
let headerClassParams = {
|
|
@@ -575,7 +575,7 @@ class AgGridExportAdapter {
|
|
|
575
575
|
const columnId = column.getId();
|
|
576
576
|
const adaptableColumn = getAdaptableColumnWithColumnId(columnId);
|
|
577
577
|
if (!adaptableColumn) {
|
|
578
|
-
this.logger.warn(`Export
|
|
578
|
+
this.logger.warn(`Export styling: column "${columnId}" not found in Adaptable.`);
|
|
579
579
|
return;
|
|
580
580
|
}
|
|
581
581
|
const isDateCellExportedAsFormattedValue = this.isDateCellExportedAsFormattedValue(adaptableColumn, exportContext);
|
|
@@ -104,9 +104,9 @@ class AgGridThemeAdapter {
|
|
|
104
104
|
}
|
|
105
105
|
}
|
|
106
106
|
else {
|
|
107
|
-
this.logger.warn('
|
|
107
|
+
this.logger.warn('AG Grid container not found. Defaulting to ag-theme-balham for the light theme.');
|
|
108
108
|
}
|
|
109
|
-
this.logger.warn('No ag-theme
|
|
109
|
+
this.logger.warn('No ag-theme-* class found on the grid container. Defaulting to ag-theme-balham.');
|
|
110
110
|
// fallback to the default light theme
|
|
111
111
|
return 'ag-theme-balham';
|
|
112
112
|
}
|
|
@@ -159,7 +159,7 @@ const OverlayTrigger = React.forwardRef((givenProps, ref) => {
|
|
|
159
159
|
target = targetProp(target);
|
|
160
160
|
}
|
|
161
161
|
if (!target) {
|
|
162
|
-
adaptable.logger.warn('
|
|
162
|
+
adaptable.logger.warn('OverlayTrigger target not found. Ensure a child element is rendered inside the OverlayTrigger component.');
|
|
163
163
|
return;
|
|
164
164
|
}
|
|
165
165
|
targetRef.current = target;
|