@adaptabletools/adaptable-cjs 22.0.0-canary.6 → 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.
Files changed (99) hide show
  1. package/index.css +0 -3
  2. package/index.css.map +1 -1
  3. package/package.json +1 -1
  4. package/src/AdaptableState/AlertState.d.ts +1 -2
  5. package/src/AdaptableState/Common/AdaptableObject.d.ts +4 -0
  6. package/src/AdaptableState/Common/BaseContext.d.ts +2 -0
  7. package/src/AdaptableState/Common/NamedObject.d.ts +10 -0
  8. package/src/AdaptableState/Common/NamedObject.js +2 -0
  9. package/src/AdaptableState/Common/RowSummary.d.ts +1 -1
  10. package/src/AdaptableState/Common/Schedule.d.ts +2 -2
  11. package/src/AdaptableState/Common/SuspendableObject.d.ts +10 -0
  12. package/src/AdaptableState/Common/SuspendableObject.js +2 -0
  13. package/src/AdaptableState/CustomSortState.d.ts +1 -1
  14. package/src/AdaptableState/FormatColumnState.d.ts +1 -1
  15. package/src/AdaptableState/LayoutState.d.ts +1 -1
  16. package/src/AdaptableState/PlusMinusState.d.ts +1 -1
  17. package/src/AdaptableState/ShortcutState.d.ts +1 -1
  18. package/src/AdaptableState/StyledColumnState.d.ts +1 -1
  19. package/src/Api/AlertApi.d.ts +6 -0
  20. package/src/Api/CustomSortApi.d.ts +6 -0
  21. package/src/Api/FlashingCellApi.d.ts +6 -0
  22. package/src/Api/FormatColumnApi.d.ts +10 -4
  23. package/src/Api/Implementation/AlertApiImpl.d.ts +1 -0
  24. package/src/Api/Implementation/AlertApiImpl.js +3 -0
  25. package/src/Api/Implementation/ChartingApiImpl.js +2 -2
  26. package/src/Api/Implementation/CustomSortApiImpl.d.ts +1 -0
  27. package/src/Api/Implementation/CustomSortApiImpl.js +3 -0
  28. package/src/Api/Implementation/FlashingCellApiImpl.d.ts +1 -0
  29. package/src/Api/Implementation/FlashingCellApiImpl.js +3 -0
  30. package/src/Api/Implementation/FormatColumnApiImpl.d.ts +6 -5
  31. package/src/Api/Implementation/FormatColumnApiImpl.js +6 -5
  32. package/src/Api/Implementation/LayoutApiImpl.js +1 -1
  33. package/src/Api/Implementation/NamedQueryApiImpl.js +2 -2
  34. package/src/Api/Implementation/PlusMinusApiImpl.d.ts +1 -0
  35. package/src/Api/Implementation/PlusMinusApiImpl.js +3 -0
  36. package/src/Api/Implementation/ScheduleApiImpl.d.ts +1 -0
  37. package/src/Api/Implementation/ScheduleApiImpl.js +3 -0
  38. package/src/Api/Implementation/ShortcutApiImpl.d.ts +1 -0
  39. package/src/Api/Implementation/ShortcutApiImpl.js +3 -0
  40. package/src/Api/Implementation/SystemStatusApiImpl.js +4 -4
  41. package/src/Api/Internal/CalculatedColumnInternalApi.js +2 -2
  42. package/src/Api/Internal/FreeTextColumnInternalApi.js +2 -2
  43. package/src/Api/Internal/LayoutInternalApi.js +1 -1
  44. package/src/Api/Internal/NamedQueryInternalApi.js +4 -4
  45. package/src/Api/PlusMinusApi.d.ts +6 -0
  46. package/src/Api/ScheduleApi.d.ts +6 -0
  47. package/src/Api/ShortcutApi.d.ts +6 -0
  48. package/src/Redux/ActionsReducers/FormatColumnRedux.d.ts +8 -0
  49. package/src/Redux/ActionsReducers/FormatColumnRedux.js +17 -1
  50. package/src/Redux/Store/AdaptableStore.js +18 -16
  51. package/src/Strategy/BulkUpdateModule.js +8 -8
  52. package/src/Strategy/PlusMinusModule.js +1 -1
  53. package/src/Strategy/QuickSearchModule.js +1 -1
  54. package/src/Strategy/SettingsPanelModule.js +11 -7
  55. package/src/Strategy/SmartEditModule.js +10 -10
  56. package/src/Utilities/Services/DataService.js +1 -1
  57. package/src/Utilities/Services/Fdc3Service.js +4 -4
  58. package/src/Utilities/Services/ModuleService.js +1 -3
  59. package/src/Utilities/Services/ThemeService.js +2 -6
  60. package/src/Utilities/Services/ValidationService.js +1 -1
  61. package/src/Utilities/logDeprecation.js +3 -4
  62. package/src/View/Alert/Wizard/isValidAlertRules.js +1 -1
  63. package/src/View/CalculatedColumn/Wizard/CalculatedColumnDefinitionWizardSection.js +2 -2
  64. package/src/View/CalculatedColumn/Wizard/CalculatedColumnExpressionWizardSection.js +2 -2
  65. package/src/View/CalculatedColumn/Wizard/CalculatedColumnSettingsWizardSection.js +1 -1
  66. package/src/View/Charting/ChartingWizard/AgChargingWizard/SettingsSection.js +2 -2
  67. package/src/View/Charting/ChartingWizard/ExternalChartingWizard/SettingsSection.js +2 -2
  68. package/src/View/Components/CellPopup/index.js +1 -1
  69. package/src/View/Components/EntityRulesEditor/Utilities.js +5 -5
  70. package/src/View/Components/NewScopeComponent.js +3 -3
  71. package/src/View/Components/Popups/AdaptablePopupConfirmation.js +1 -1
  72. package/src/View/CustomSort/Wizard/CustomSortColumnWizardSection.js +3 -3
  73. package/src/View/CustomSort/Wizard/CustomSortValuesWizardSection.js +1 -1
  74. package/src/View/FlashingCell/Wizard/isValidFlashingCellRules.js +1 -1
  75. package/src/View/FreeTextColumn/Wizard/FreeTextColumnSettingsWizardSection.d.ts +1 -1
  76. package/src/View/FreeTextColumn/Wizard/FreeTextColumnSettingsWizardSection.js +3 -3
  77. package/src/View/Layout/LayoutViewPanel.js +1 -1
  78. package/src/View/Layout/Wizard/sections/AggregationsSection.js +1 -1
  79. package/src/View/Layout/Wizard/sections/FilterSection.js +1 -1
  80. package/src/View/Layout/Wizard/sections/GridFilterSection.js +1 -1
  81. package/src/View/Layout/Wizard/sections/PivotAggregationsSection.js +3 -3
  82. package/src/View/Layout/Wizard/sections/RowSummarySection.js +1 -1
  83. package/src/View/NamedQuery/Wizard/NamedQueryExpressionWizardSection.js +2 -2
  84. package/src/View/PlusMinus/Wizard/PlusMinusSettingsWizardSection.js +5 -5
  85. package/src/View/Schedule/Wizard/ScheduleSettingsWizard/isSettingsValid.d.ts +1 -1
  86. package/src/View/Schedule/Wizard/ScheduleSettingsWizard/isSettingsValid.js +11 -11
  87. package/src/View/StateManagement/handleExportState.js +1 -1
  88. package/src/View/StyledColumn/Wizard/StyledColumnWizardColumnSection.js +1 -1
  89. package/src/agGrid/AdaptableAgGrid.js +38 -51
  90. package/src/agGrid/AgGridAdapter.js +8 -8
  91. package/src/agGrid/AgGridColumnAdapter.js +1 -1
  92. package/src/agGrid/AgGridExportAdapter.js +5 -5
  93. package/src/agGrid/AgGridThemeAdapter.js +2 -2
  94. package/src/components/OverlayTrigger/index.js +1 -1
  95. package/src/env.js +2 -2
  96. package/src/migration/AdaptableUpgradeHelper.js +2 -2
  97. package/src/migration/VersionUpgrade17.js +4 -4
  98. package/src/migration/VersionUpgrade20.js +4 -4
  99. package/tsconfig.cjs.tsbuildinfo +1 -1
@@ -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(`Show Loading Screen`);
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(`Adaptable failed to show the loading screen!`);
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(`AG Grid: Column '${colDef.colId}' specifies cellDataType='dateString' which is no longer supported. It has been automatically replaced with cellDataType='date'. Please update your column definition.`);
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(`Adaptable failed to initialize AG Grid!`);
473
- return Promise.reject('Adaptable failed to initialize AG Grid!');
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(`Hide Loading Screen`);
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(`Registered AG Grid modules (incl. dependent modules): `, this.agGridModulesAdapter.getAgGridRegisteredModuleNames().sort());
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(`AdaptableOptions.primaryKey is required and cannot be empty or null!
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(`defaultColDef.headerValueGetter and overrides the Adaptable custom header mechanism! We recommend using a ColumnOptions.columnHeader instead!`);
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(`defaultColGroupDef.headerValueGetter and overrides the Adaptable custom header mechanism! We recommend using a ColumnOptions.tableColumnHeader instead!`);
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(`autoGroupColumnDef.filter is disabled as per user configuration.`);
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(`autoGroupColumnDef.filter is set and overrides the Adaptable custom filter mechanism, so Adaptable will not be able to manage filtering for the Group Column!
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(`An unexpected invocation of autoGroupColumnDef.filterValueGetter was detected. This execution path is not expected under normal operation.
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('initWithLazyData = TRUE');
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(`No AG Grid container could be derived from the Adaptable framework wrapper.
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('No AG Grid container element found in the DOM. Please provide a valid container element in `ContainerOptions.agGridContainer`');
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 = `The Primary Key '${this.adaptableOptions.primaryKey}' does not exist. This will affect many functions in AdapTable.`;
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 any saved Filters as "clearFiltersOnStartUp" is true');
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 any saved Searches as "clearQuickSearchOnStartUp" is true');
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(`Updating Column Model and Refreshing Grid.`);
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 was unable to find some row nodes. Tried to redraw row nodes: ', rowNodes, ex);
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(`Could not auto-size columns [${columnIds}] - missing required AG Grid module 'ColumnAutoSizeModule'`);
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(`Could not auto-size all columns - missing required AG Grid module 'ColumnAutoSizeModule'`);
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(`Failed to fetch custom filter values`, column, error);
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(`Failed to fetch custom edit values`, column, error);
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('`forAllVisibleRowNodesDo()` is only supported in client-side row model. `forAllRowNodesDo` will be used instead.');
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('No node to select');
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('No node to deselect');
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('Adaptable must be instantiated before calling showChart');
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(`Chart definition must have a Model property to be updated: ${chart.Name}`);
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 = {
@@ -3441,7 +3428,7 @@ You need to define at least one Layout!`);
3441
3428
  }
3442
3429
  getChartModels() {
3443
3430
  if (!this.isReady) {
3444
- this.logger.consoleError('Adaptable must be instantiated before calling getChartModels');
3431
+ this.logger.consoleError('Cannot call getChartModels before Adaptable is fully initialized.');
3445
3432
  return [];
3446
3433
  }
3447
3434
  return this.agGridAdapter.getAgGridApi().getChartModels();
@@ -3475,7 +3462,7 @@ You need to define at least one Layout!`);
3475
3462
  }
3476
3463
  setAgGridQuickSearch(searchText) {
3477
3464
  if (!this.agGridModulesAdapter.isAgGridModuleRegistered('QuickFilterModule')) {
3478
- this.logger.consoleError(`Can NOT set Quick Search text - missing required AG Grid module 'QuickFilterModule'`);
3465
+ this.logger.consoleError('Quick Search requires the AG Grid "QuickFilterModule". Please register this module to enable Quick Search.');
3479
3466
  return;
3480
3467
  }
3481
3468
  this.agGridAdapter.setGridOption('quickFilterText', searchText);
@@ -3485,7 +3472,7 @@ You need to define at least one Layout!`);
3485
3472
  }
3486
3473
  setAgGridFindSearchValue(searchText) {
3487
3474
  if (!this.agGridModulesAdapter.isAgGridModuleRegistered('FindModule')) {
3488
- this.logger.consoleError(`Can NOT set Find Search text - missing required AG Grid module 'FindModule'`);
3475
+ this.logger.consoleError('Find Search requires the AG Grid "FindModule". Please register this module to enable Find Search.');
3489
3476
  return;
3490
3477
  }
3491
3478
  this.agGridAdapter.setGridOption('findSearchValue', searchText);
@@ -4014,7 +4001,7 @@ You need to define at least one Layout!`);
4014
4001
  cellDataChangedInfos.forEach((cellDataChangedInfo) => {
4015
4002
  // if a Cell Data Change is undone, log to the Console
4016
4003
  if (cellDataChangedInfo.trigger === 'undo') {
4017
- this.logger.info(`Undo data change: PK(${cellDataChangedInfo.primaryKeyValue}) Col(${cellDataChangedInfo.column}) RevertedValue(${cellDataChangedInfo.oldValue}) OriginalValue(${cellDataChangedInfo.newValue})`);
4004
+ this.logger.info(`Data change reverted: column="${cellDataChangedInfo.column}", primaryKey="${cellDataChangedInfo.primaryKeyValue}", from=${cellDataChangedInfo.newValue} to=${cellDataChangedInfo.oldValue}`);
4018
4005
  }
4019
4006
  // For Changes except Aggregations, reset cell selection if required
4020
4007
  if (cellDataChangedInfo.trigger === 'edit' ||
@@ -4219,7 +4206,7 @@ You need to define at least one Layout!`);
4219
4206
  this.api.layoutApi.createOrUpdateLayout(layout);
4220
4207
  }
4221
4208
  refreshAdaptableAfterLayoutChange(layout) {
4222
- this.logger.info('refreshAdaptableAfterLayoutChange()');
4209
+ this.logger.info('Refreshing Adaptable after layout change.');
4223
4210
  const prevLayoutForRefresh = this.__prevLayoutForRefresh || this.api.layoutApi.getCurrentLayout();
4224
4211
  // see #on-regroup-expect-group-column-to-be-recomputed-and-setup-properly
4225
4212
  const rowGroupsChanged = this.isRowGroupDifferentInLayout(prevLayoutForRefresh, layout);
@@ -4265,7 +4252,7 @@ You need to define at least one Layout!`);
4265
4252
  .forEach((colType) => {
4266
4253
  const newValidCellDataType = (0, VersionUpgrade20_1.mapOldTypeToDataType)(colType);
4267
4254
  if (newValidCellDataType) {
4268
- this.logger.consoleWarn(`Column ${columnDefinition.colId ?? columnDefinition.field} has a type of ${colType} which is no longer in use${newValidCellDataType !== 'unknown' ? `. Please use 'colDef.cellDataType' instead: ${newValidCellDataType}` : ''}`);
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.'}`);
4269
4256
  }
4270
4257
  });
4271
4258
  });
@@ -149,7 +149,7 @@ class AgGridAdapter {
149
149
  }
150
150
  }
151
151
  options['columnDefs'] = colDefsWithSpecialColumns;
152
- self.logger.info(`Added SpecialColumns on GridOptions.columnDefs update (source=${source})`);
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('Could not get hold of ColumnFilterService! This is a critical error and will prevent Adaptable from working correctly.');
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('Could not get hold of AgGridBeans! This is a critical error and will prevent Adaptable from working correctly.');
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('Cannot select pinned rows in AG Grid.');
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(`Column is undefined, returning 'text' for Type`);
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, returning type "unknown" for Column: "${agColumn.getColId()}". This will impact several Adaptable features, such as Filters and ColumnFormats.`);
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 defined type for column '${agColumn.getColId()}'. Defaulting to type of first row value: ${dataType}`);
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('A column is missing the colId - please check ', colDef, 'Either pass a "field" property or a "colId" property.');
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);
@@ -661,7 +661,7 @@ class AgGridColumnAdapter {
661
661
  if (typeof original_filter !== 'boolean' &&
662
662
  typeof original_filter?.handler !== 'function' &&
663
663
  !pivotMode) {
664
- this.adaptableApi.consoleError(`Column '${colId}' has a custom filter defined in colDef.filter, but Adaptable Filtering accepts only the TRUE/FALSE values!`);
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.`);
665
665
  return false;
666
666
  }
667
667
  return {
@@ -70,7 +70,7 @@ class AgGridExportAdapter {
70
70
  try {
71
71
  if (showProgressIndicator) {
72
72
  this.adaptableApi.userInterfaceApi.showProgressIndicator({
73
- text: `${report.Name} Export in progress...`,
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(`Error exporting ${report.Name} in ${format} format to ${config.destination}`, error.stack);
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(`Custom export params for ${config.report.Name} in ${config.format} format`);
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 Styling: Column with id ${columnId} not found in Adaptable`);
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 Styling: Column with id ${columnId} not found in Adaptable`);
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('No AgGrid container found, defaulting to ag-theme-balham for the light theme');
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- class found on the grid container, defaulting to ag-theme-balham');
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('No OverlayTrigger target - make sure you render a child inside the OverlayTrigger, which will be the overlay target');
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;
package/src/env.js CHANGED
@@ -2,6 +2,6 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.default = {
4
4
  NEXT_PUBLIC_INFINITE_TABLE_LICENSE_KEY: "StartDate=2021-06-29|EndDate=2030-01-01|Owner=Adaptable|Type=distribution|TS=1624971462479|C=137829811,1004007071,2756196225,1839832928,3994409405,636616862" || '',
5
- PUBLISH_TIMESTAMP: 1770400512741 || Date.now(),
6
- VERSION: "22.0.0-canary.6" || '--current-version--',
5
+ PUBLISH_TIMESTAMP: 1770740703905 || Date.now(),
6
+ VERSION: "22.0.0-canary.7" || '--current-version--',
7
7
  };
@@ -37,9 +37,9 @@ class AdaptableUpgradeHelper {
37
37
  let updatedState = structuredClone(state);
38
38
  for (const version of versionUpgrades) {
39
39
  if (version > fromVersion && version <= toVersion) {
40
- upgradeHelper.logger.info(`Migration to ${version} started...`);
40
+ upgradeHelper.logger.info(`Migration to version ${version} started.`);
41
41
  updatedState = upgradeHelper.versionUpgrades.get(version).migrateState(updatedState);
42
- upgradeHelper.logger.info(`Migration to ${version} finished!`);
42
+ upgradeHelper.logger.info(`Migration to version ${version} completed.`);
43
43
  }
44
44
  }
45
45
  return updatedState;
@@ -102,7 +102,7 @@ class VersionUpgrade17 extends VersionUpgrade_1.VersionUpgrade {
102
102
  // let dashboardState: any = this.api.dashboardApi.getDashboardState();
103
103
  let dashboardState = state.Dashboard;
104
104
  if (dashboardState?.VisibleButtons) {
105
- this.logger.warn(`Updating Obsolete VisibleButtons Config for DashboardState: [${dashboardState.VisibleButtons}]`);
105
+ this.logger.warn(`Migrating deprecated DashboardState.VisibleButtons: [${dashboardState.VisibleButtons}].`);
106
106
  state.Dashboard.ModuleButtons = [
107
107
  ...state.Dashboard.ModuleButtons,
108
108
  ...dashboardState.VisibleButtons,
@@ -249,7 +249,7 @@ class VersionUpgrade17 extends VersionUpgrade_1.VersionUpgrade {
249
249
  if (!formatColumnsWithColumnStyles.length) {
250
250
  return state;
251
251
  }
252
- this.logger.info(`Converting ${formatColumnsWithColumnStyles.length} FormatColumns Styles to Styled Columns`, formatColumnsWithColumnStyles);
252
+ this.logger.info(`Migrating ${formatColumnsWithColumnStyles.length} FormatColumn styles to StyledColumns.`, formatColumnsWithColumnStyles);
253
253
  // delete the format columns with column styles
254
254
  state.FormatColumn.FormatColumns = state.FormatColumn.FormatColumns?.filter((fc) => !fc.ColumnStyle);
255
255
  const styledColumns = formatColumnsWithColumnStyles
@@ -277,7 +277,7 @@ class VersionUpgrade17 extends VersionUpgrade_1.VersionUpgrade {
277
277
  const deprecatedToolPanelConfigs = state.ToolPanel
278
278
  ?.VisibleToolPanels;
279
279
  if (deprecatedToolPanelConfigs?.length) {
280
- this.logger.warn(`Updating Obsolete VisibleToolPanels Config for ToolPanelState: [${deprecatedToolPanelConfigs}]`);
280
+ this.logger.warn(`Migrating deprecated ToolPanelState.VisibleToolPanels: [${deprecatedToolPanelConfigs}].`);
281
281
  const migratedToolPanelConfigs = deprecatedToolPanelConfigs.map((toolPanel) => ({
282
282
  Name: toolPanel,
283
283
  State: 'collapsed',
@@ -340,7 +340,7 @@ class VersionUpgrade17 extends VersionUpgrade_1.VersionUpgrade {
340
340
  cc.CalculatedColumnSettings = {
341
341
  DataType: 'number',
342
342
  };
343
- this.logger.warn(`Updating incorrect Initial State for Calculated Column: ${cc.ColumnId}`);
343
+ this.logger.warn(`Migrating Calculated Column "${cc.ColumnId}": adding default CalculatedColumnSettings.`);
344
344
  }
345
345
  });
346
346
  return state;
@@ -153,7 +153,7 @@ class VersionUpgrade20 extends VersionUpgrade_1.VersionUpgrade {
153
153
  return state;
154
154
  }
155
155
  migrateColTypeToDataType(state) {
156
- this.logger.info(`Converting previous column types to new data types`);
156
+ this.logger.info('Migrating column types to data types.');
157
157
  // Calculated Column DataType
158
158
  const calculatedColumnState = state.CalculatedColumn;
159
159
  if (calculatedColumnState && calculatedColumnState.CalculatedColumns) {
@@ -164,7 +164,7 @@ class VersionUpgrade20 extends VersionUpgrade_1.VersionUpgrade {
164
164
  }
165
165
  const newDataType = mapOldTypeToDataType(cc.CalculatedColumnSettings.DataType);
166
166
  if (newDataType === 'unknown') {
167
- this.logger.warn(`Calculated Column ${cc.ColumnId} has an unknown DataType: ${cc.CalculatedColumnSettings.DataType}`);
167
+ this.logger.warn(`Calculated Column "${cc.ColumnId}" has unrecognized DataType: "${cc.CalculatedColumnSettings.DataType}".`);
168
168
  }
169
169
  else {
170
170
  cc.CalculatedColumnSettings.DataType = newDataType;
@@ -182,7 +182,7 @@ class VersionUpgrade20 extends VersionUpgrade_1.VersionUpgrade {
182
182
  }
183
183
  const newDataType = mapOldTypeToDataType(fc.FreeTextColumnSettings.DataType);
184
184
  if (newDataType === 'unknown') {
185
- this.logger.warn(`FreeText Column ${fc.ColumnId} has an unknown DataType: ${fc.FreeTextColumnSettings.DataType}`);
185
+ this.logger.warn(`FreeText Column "${fc.ColumnId}" has unrecognized DataType: "${fc.FreeTextColumnSettings.DataType}".`);
186
186
  }
187
187
  else {
188
188
  fc.FreeTextColumnSettings.DataType = newDataType;
@@ -192,7 +192,7 @@ class VersionUpgrade20 extends VersionUpgrade_1.VersionUpgrade {
192
192
  }
193
193
  }
194
194
  migrateSparklineState(state) {
195
- this.logger.info(`Migration of Sparkline State`);
195
+ this.logger.info('Migrating Sparkline state.');
196
196
  const sparklineState = state.StyledColumn;
197
197
  if (sparklineState && sparklineState.StyledColumns) {
198
198
  sparklineState.StyledColumns.forEach((styledColumn) => {