@adaptabletools/adaptable-cjs 22.0.0-canary.1 → 22.0.0-canary.10

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 (395) hide show
  1. package/agGrid.d.ts +9 -9
  2. package/agGrid.js +1 -0
  3. package/index.css +1280 -1400
  4. package/index.css.map +1 -1
  5. package/index.d.ts +66 -0
  6. package/index.js +85 -0
  7. package/package.json +3 -3
  8. package/src/AdaptableInterfaces/IAdaptable.d.ts +6 -6
  9. package/src/AdaptableOptions/ActionColumnOptions.d.ts +2 -2
  10. package/src/AdaptableOptions/AdaptablePlugin.js +6 -1
  11. package/src/AdaptableOptions/ColumnOptions.d.ts +2 -2
  12. package/src/AdaptableOptions/ContainerOptions.d.ts +55 -15
  13. package/src/AdaptableOptions/CustomSortOptions.d.ts +4 -0
  14. package/src/AdaptableOptions/DashboardOptions.d.ts +1 -2
  15. package/src/AdaptableOptions/ExportOptions.d.ts +1 -2
  16. package/src/AdaptableOptions/FilterOptions.d.ts +3 -0
  17. package/src/AdaptableOptions/ToolPanelOptions.d.ts +1 -2
  18. package/src/AdaptableState/AdaptableState.d.ts +2 -0
  19. package/src/AdaptableState/AlertState.d.ts +5 -2
  20. package/src/AdaptableState/ChartingState.d.ts +2 -2
  21. package/src/AdaptableState/Common/AdaptableAlert.d.ts +2 -2
  22. package/src/AdaptableState/Common/AdaptableButton.d.ts +2 -2
  23. package/src/AdaptableState/Common/AdaptableColumn.d.ts +16 -10
  24. package/src/AdaptableState/Common/AdaptableColumnContext.d.ts +9 -0
  25. package/src/AdaptableState/Common/AdaptableFlashingCell.d.ts +2 -2
  26. package/src/AdaptableState/Common/AdaptableObject.d.ts +20 -2
  27. package/src/AdaptableState/Common/AdaptableRowContext.d.ts +11 -0
  28. package/src/AdaptableState/Common/AdaptableStyle.d.ts +8 -0
  29. package/src/AdaptableState/Common/BaseContext.d.ts +2 -0
  30. package/src/AdaptableState/Common/ColumnHighlightInfo.d.ts +18 -0
  31. package/src/AdaptableState/Common/ColumnHighlightInfo.js +2 -0
  32. package/src/AdaptableState/Common/DataUpdateConfig.d.ts +17 -0
  33. package/src/AdaptableState/Common/NamedObject.d.ts +10 -0
  34. package/src/AdaptableState/Common/NamedObject.js +2 -0
  35. package/src/AdaptableState/Common/RowDataChangedInfo.d.ts +3 -0
  36. package/src/AdaptableState/Common/RowSummary.d.ts +1 -1
  37. package/src/AdaptableState/Common/Schedule.d.ts +8 -5
  38. package/src/AdaptableState/Common/SystemStatusMessageInfo.d.ts +2 -2
  39. package/src/AdaptableState/Common/TransposeConfig.d.ts +12 -10
  40. package/src/AdaptableState/CustomSortState.d.ts +5 -1
  41. package/src/AdaptableState/DashboardState.d.ts +1 -1
  42. package/src/AdaptableState/ExportState.d.ts +1 -1
  43. package/src/AdaptableState/FlashingCellState.d.ts +6 -2
  44. package/src/AdaptableState/FormatColumnState.d.ts +5 -9
  45. package/src/AdaptableState/InitialState.d.ts +10 -1
  46. package/src/AdaptableState/InternalState.d.ts +2 -0
  47. package/src/AdaptableState/LayoutState.d.ts +7 -3
  48. package/src/AdaptableState/NamedQueryState.d.ts +1 -1
  49. package/src/AdaptableState/PlusMinusState.d.ts +5 -1
  50. package/src/AdaptableState/Selection/GridCell.d.ts +9 -0
  51. package/src/AdaptableState/ShortcutState.d.ts +5 -1
  52. package/src/AdaptableState/StyledColumnState.d.ts +1 -1
  53. package/src/AdaptableState/ThemeState.d.ts +1 -1
  54. package/src/AdaptableState/UserInterfaceState.d.ts +14 -0
  55. package/src/AdaptableState/UserInterfaceState.js +2 -0
  56. package/src/Api/AlertApi.d.ts +6 -0
  57. package/src/Api/CustomSortApi.d.ts +12 -3
  58. package/src/Api/DataSetApi.d.ts +1 -1
  59. package/src/Api/FlashingCellApi.d.ts +6 -0
  60. package/src/Api/FormatColumnApi.d.ts +10 -4
  61. package/src/Api/GridApi.d.ts +23 -12
  62. package/src/Api/Implementation/ActionColumnApiImpl.js +1 -0
  63. package/src/Api/Implementation/AdaptableApiImpl.js +52 -0
  64. package/src/Api/Implementation/AlertApiImpl.d.ts +1 -0
  65. package/src/Api/Implementation/AlertApiImpl.js +6 -6
  66. package/src/Api/Implementation/ApiBase.d.ts +1 -1
  67. package/src/Api/Implementation/ApiBase.js +2 -1
  68. package/src/Api/Implementation/CalculatedColumnApiImpl.js +1 -0
  69. package/src/Api/Implementation/ChartingApiImpl.js +6 -2
  70. package/src/Api/Implementation/ColumnApiImpl.d.ts +1 -1
  71. package/src/Api/Implementation/ColumnApiImpl.js +1 -0
  72. package/src/Api/Implementation/ColumnFilterApiImpl.js +1 -0
  73. package/src/Api/Implementation/CommentsApiImpl.js +1 -0
  74. package/src/Api/Implementation/CustomSortApiImpl.d.ts +6 -1
  75. package/src/Api/Implementation/CustomSortApiImpl.js +6 -2
  76. package/src/Api/Implementation/DashboardApiImpl.js +1 -0
  77. package/src/Api/Implementation/DataChangeHistoryApiImpl.js +12 -15
  78. package/src/Api/Implementation/DataImportApiImpl.js +1 -0
  79. package/src/Api/Implementation/DataSetApiImpl.js +1 -0
  80. package/src/Api/Implementation/EntitlementApiImpl.js +1 -0
  81. package/src/Api/Implementation/EventApiImpl.js +16 -14
  82. package/src/Api/Implementation/ExportApiImpl.js +1 -0
  83. package/src/Api/Implementation/ExpressionApiImpl.js +1 -0
  84. package/src/Api/Implementation/Fdc3ApiImpl.js +1 -0
  85. package/src/Api/Implementation/FilterApiImpl.js +3 -0
  86. package/src/Api/Implementation/FlashingCellApiImpl.d.ts +1 -0
  87. package/src/Api/Implementation/FlashingCellApiImpl.js +4 -0
  88. package/src/Api/Implementation/FormatColumnApiImpl.d.ts +6 -5
  89. package/src/Api/Implementation/FormatColumnApiImpl.js +7 -5
  90. package/src/Api/Implementation/FreeTextColumnApiImpl.js +1 -0
  91. package/src/Api/Implementation/GridApiImpl.d.ts +10 -10
  92. package/src/Api/Implementation/GridApiImpl.js +35 -20
  93. package/src/Api/Implementation/GridFilterApiImpl.js +1 -0
  94. package/src/Api/Implementation/LayoutApiImpl.d.ts +1 -0
  95. package/src/Api/Implementation/LayoutApiImpl.js +5 -1
  96. package/src/Api/Implementation/LayoutHelpers.js +7 -0
  97. package/src/Api/Implementation/NamedQueryApiImpl.js +3 -2
  98. package/src/Api/Implementation/NoteApiImpl.js +1 -0
  99. package/src/Api/Implementation/PlusMinusApiImpl.d.ts +1 -0
  100. package/src/Api/Implementation/PlusMinusApiImpl.js +3 -0
  101. package/src/Api/Implementation/PredicateApiImpl.js +1 -0
  102. package/src/Api/Implementation/RowFormApiImpl.js +1 -0
  103. package/src/Api/Implementation/ScheduleApiImpl.d.ts +1 -0
  104. package/src/Api/Implementation/ScheduleApiImpl.js +4 -0
  105. package/src/Api/Implementation/ShortcutApiImpl.d.ts +1 -0
  106. package/src/Api/Implementation/ShortcutApiImpl.js +3 -0
  107. package/src/Api/Implementation/StyledColumnApiImpl.js +1 -0
  108. package/src/Api/Implementation/SystemStatusApiImpl.js +8 -9
  109. package/src/Api/Implementation/TeamSharingApiImpl.js +1 -0
  110. package/src/Api/Implementation/ThemeApiImpl.js +1 -0
  111. package/src/Api/Implementation/UserInterfaceApiImpl.d.ts +5 -0
  112. package/src/Api/Implementation/UserInterfaceApiImpl.js +15 -1
  113. package/src/Api/Internal/CalculatedColumnInternalApi.js +2 -2
  114. package/src/Api/Internal/ColumnInternalApi.js +1 -1
  115. package/src/Api/Internal/FormatColumnInternalApi.d.ts +0 -10
  116. package/src/Api/Internal/FormatColumnInternalApi.js +1 -19
  117. package/src/Api/Internal/FreeTextColumnInternalApi.js +2 -2
  118. package/src/Api/Internal/LayoutInternalApi.js +1 -1
  119. package/src/Api/Internal/NamedQueryInternalApi.js +4 -4
  120. package/src/Api/LayoutApi.d.ts +6 -0
  121. package/src/Api/PlusMinusApi.d.ts +6 -0
  122. package/src/Api/ScheduleApi.d.ts +6 -0
  123. package/src/Api/ShortcutApi.d.ts +6 -0
  124. package/src/Api/UserInterfaceApi.d.ts +17 -0
  125. package/src/Redux/ActionsReducers/FormatColumnRedux.d.ts +8 -0
  126. package/src/Redux/ActionsReducers/FormatColumnRedux.js +17 -1
  127. package/src/Redux/ActionsReducers/InternalRedux.d.ts +15 -0
  128. package/src/Redux/ActionsReducers/InternalRedux.js +42 -3
  129. package/src/Redux/ActionsReducers/LayoutRedux.d.ts +1 -1
  130. package/src/Redux/ActionsReducers/NoteRedux.js +1 -1
  131. package/src/Redux/ActionsReducers/UserInterfaceRedux.d.ts +11 -0
  132. package/src/Redux/ActionsReducers/UserInterfaceRedux.js +26 -0
  133. package/src/Redux/Store/AdaptableReduxLocalStorageEngine.js +6 -0
  134. package/src/Redux/Store/AdaptableStore.js +113 -57
  135. package/src/Strategy/AdaptableModuleBase.js +4 -0
  136. package/src/Strategy/AlertModule.js +5 -0
  137. package/src/Strategy/BulkUpdateModule.js +8 -8
  138. package/src/Strategy/CalculatedColumnModule.js +1 -0
  139. package/src/Strategy/CellSummaryModule.js +1 -1
  140. package/src/Strategy/CustomSortModule.js +4 -0
  141. package/src/Strategy/DataChangeHistoryModule.js +1 -0
  142. package/src/Strategy/FlashingCellModule.js +6 -0
  143. package/src/Strategy/FormatColumnModule.js +4 -0
  144. package/src/Strategy/FreeTextColumnModule.js +1 -0
  145. package/src/Strategy/LayoutModule.js +6 -5
  146. package/src/Strategy/PlusMinusModule.js +7 -1
  147. package/src/Strategy/QuickSearchModule.js +1 -1
  148. package/src/Strategy/ScheduleModule.js +5 -0
  149. package/src/Strategy/SettingsPanelModule.js +11 -7
  150. package/src/Strategy/ShortcutModule.js +6 -0
  151. package/src/Strategy/SmartEditModule.js +10 -10
  152. package/src/Strategy/TeamSharingModule.js +10 -10
  153. package/src/Strategy/Utilities/FormatColumn/getFormatColumnSettingsViewItems.js +0 -3
  154. package/src/Utilities/Constants/DocumentationLinkConstants.d.ts +3 -3
  155. package/src/Utilities/Constants/DocumentationLinkConstants.js +3 -3
  156. package/src/Utilities/ExpressionFunctions/deepMap.js +31 -31
  157. package/src/Utilities/ExpressionFunctions/scalarExpressionFunctions.js +3 -3
  158. package/src/Utilities/Extensions/StringExtensions.d.ts +2 -0
  159. package/src/Utilities/Extensions/StringExtensions.js +17 -0
  160. package/src/Utilities/Helpers/FormatHelper.js +9 -2
  161. package/src/Utilities/Helpers/StyleHelper.js +14 -0
  162. package/src/Utilities/MenuItem.js +18 -0
  163. package/src/Utilities/ObjectFactory.js +16 -3
  164. package/src/Utilities/Services/AggregatedScalarLiveValue.js +8 -0
  165. package/src/Utilities/Services/AlertService.js +6 -4
  166. package/src/Utilities/Services/AnnotationsService.js +4 -1
  167. package/src/Utilities/Services/CalculatedColumnExpressionService.js +2 -1
  168. package/src/Utilities/Services/ChartingService.js +1 -0
  169. package/src/Utilities/Services/DataService.js +11 -3
  170. package/src/Utilities/Services/Fdc3Service.js +9 -7
  171. package/src/Utilities/Services/FlashingCellService.js +5 -0
  172. package/src/Utilities/Services/LicenseService/index.js +1 -1
  173. package/src/Utilities/Services/MetamodelService.js +2 -2
  174. package/src/Utilities/Services/ModuleService.js +5 -6
  175. package/src/Utilities/Services/QueryLanguageService.js +6 -5
  176. package/src/Utilities/Services/RowFormService.js +1 -0
  177. package/src/Utilities/Services/RowSummaryService.js +10 -7
  178. package/src/Utilities/Services/TeamSharingService.js +3 -1
  179. package/src/Utilities/Services/ThemeService.js +13 -15
  180. package/src/Utilities/Services/ValidationService.js +2 -1
  181. package/src/Utilities/createAgStatusPanelComponent.js +3 -0
  182. package/src/Utilities/logDeprecation.js +3 -4
  183. package/src/Utilities/resolveContainerElement.d.ts +23 -0
  184. package/src/Utilities/resolveContainerElement.js +47 -0
  185. package/src/View/AdaptablePopover/index.d.ts +1 -0
  186. package/src/View/AdaptablePopover/index.js +1 -1
  187. package/src/View/Alert/ActiveAlertsPanel.js +8 -0
  188. package/src/View/Alert/AlertViewPanel.js +13 -9
  189. package/src/View/Alert/Utilities/getAlertButtonStyle.d.ts +1 -0
  190. package/src/View/Alert/Utilities/getAlertButtonStyle.js +8 -0
  191. package/src/View/Alert/Utilities/getDefaultAlertDefinition.d.ts +1 -0
  192. package/src/View/Alert/Wizard/AlertTypeWizardSection.d.ts +5 -2
  193. package/src/View/Alert/Wizard/AlertTypeWizardSection.js +48 -12
  194. package/src/View/Alert/Wizard/AlertWizard.js +12 -8
  195. package/src/View/Alert/Wizard/isValidAlertRules.js +1 -1
  196. package/src/View/BulkUpdate/BulkUpdateViewPanel.js +24 -11
  197. package/src/View/CalculatedColumn/Wizard/CalculatedColumnDefinitionWizardSection.js +2 -2
  198. package/src/View/CalculatedColumn/Wizard/CalculatedColumnExpressionWizardSection.js +2 -2
  199. package/src/View/CalculatedColumn/Wizard/CalculatedColumnSettingsWizardSection.js +1 -1
  200. package/src/View/CellSummary/CellSummaryViewPanel.js +16 -17
  201. package/src/View/Charting/ChartingWizard/AgChargingWizard/SettingsSection.js +2 -2
  202. package/src/View/Charting/ChartingWizard/ExternalChartingWizard/SettingsSection.js +2 -2
  203. package/src/View/Components/AdaptableDateInput/index.js +1 -1
  204. package/src/View/Components/Buttons/ButtonApply.js +1 -1
  205. package/src/View/Components/Buttons/ButtonBase/index.js +9 -9
  206. package/src/View/Components/Buttons/ButtonClear.d.ts +1 -0
  207. package/src/View/Components/Buttons/EntityListActionButtons.d.ts +1 -2
  208. package/src/View/Components/Buttons/EntityListActionButtons.js +18 -18
  209. package/src/View/Components/Buttons/SuspendToggleButton/SuspendToggleButton.d.ts +1 -2
  210. package/src/View/Components/CellPopup/index.js +1 -1
  211. package/src/View/Components/ColumnFilter/FloatingFilter.js +41 -3
  212. package/src/View/Components/ColumnFilter/components/ColumnFilterInput.js +1 -1
  213. package/src/View/Components/ColumnFilter/components/ColumnFilterMenu.js +54 -2
  214. package/src/View/Components/ColumnFilter/components/FloatingFilterValues.js +1 -1
  215. package/src/View/Components/EntityRulesEditor/Utilities.js +5 -5
  216. package/src/View/Components/NewScopeComponent.js +3 -3
  217. package/src/View/Components/Panels/PanelDashboard/index.js +8 -8
  218. package/src/View/Components/Panels/PanelToolPanel/index.js +7 -7
  219. package/src/View/Components/Popups/AdaptablePopup/AdaptablePopup.js +2 -1
  220. package/src/View/Components/Popups/AdaptablePopup/AdaptablePopupBody.js +1 -1
  221. package/src/View/Components/Popups/AdaptablePopup/AdaptablePopupDialog.d.ts +1 -1
  222. package/src/View/Components/Popups/AdaptablePopup/AdaptablePopupDialog.js +1 -8
  223. package/src/View/Components/Popups/AdaptablePopupConfirmation.js +1 -1
  224. package/src/View/Components/Popups/WindowPopups/WindowPopups.js +35 -0
  225. package/src/View/Components/Selectors/BulkUpdateValueSelector.js +18 -17
  226. package/src/View/Components/StyleComponent.d.ts +1 -0
  227. package/src/View/Components/StyleComponent.js +94 -24
  228. package/src/View/Components/ToolPanel/AdaptableToolPanel.js +2 -0
  229. package/src/View/Components/WizardSummaryPage.js +1 -1
  230. package/src/View/CustomSort/Wizard/CustomSortColumnWizardSection.d.ts +2 -1
  231. package/src/View/CustomSort/Wizard/CustomSortColumnWizardSection.js +40 -14
  232. package/src/View/CustomSort/Wizard/CustomSortValuesWizardSection.js +1 -1
  233. package/src/View/CustomSort/Wizard/CustomSortWizard.js +4 -4
  234. package/src/View/Dashboard/CustomToolbar.js +1 -1
  235. package/src/View/Dashboard/DashboardPopup.js +4 -5
  236. package/src/View/DataChangeHistory/DataChangeHistoryGrid.js +1 -0
  237. package/src/View/DataChangeHistory/DataChangeHistoryViewPanel.js +1 -1
  238. package/src/View/Export/ExportDestinationPicker.js +1 -1
  239. package/src/View/Export/ExportStatusBar.js +4 -2
  240. package/src/View/Export/ExportViewPanel.js +25 -18
  241. package/src/View/FlashingCell/Wizard/FlashingCellSettingsWizardSection.d.ts +2 -1
  242. package/src/View/FlashingCell/Wizard/FlashingCellSettingsWizardSection.js +36 -15
  243. package/src/View/FlashingCell/Wizard/FlashingCellWizard.js +13 -9
  244. package/src/View/FlashingCell/Wizard/isValidFlashingCellRules.js +1 -1
  245. package/src/View/FormatColumn/Wizard/FormatColumnSettingsWizardSection.js +46 -51
  246. package/src/View/FormatColumn/Wizard/FormatColumnStyleWizardSection.js +2 -2
  247. package/src/View/FormatColumn/Wizard/FormatColumnWizard.js +22 -11
  248. package/src/View/FreeTextColumn/Wizard/FreeTextColumnSettingsWizardSection.d.ts +1 -1
  249. package/src/View/FreeTextColumn/Wizard/FreeTextColumnSettingsWizardSection.js +3 -3
  250. package/src/View/GridFilter/GridFilterExpressionEditor.js +6 -1
  251. package/src/View/GridFilter/GridFilterViewPanel.js +33 -70
  252. package/src/View/GridInfo/GridInfoPopup/GridInfoPopup.js +57 -65
  253. package/src/View/Layout/LayoutViewPanel.js +1 -1
  254. package/src/View/Layout/TransposedPopup.js +144 -138
  255. package/src/View/Layout/Wizard/sections/AggregationsSection.js +1 -1
  256. package/src/View/Layout/Wizard/sections/FilterSection.js +1 -1
  257. package/src/View/Layout/Wizard/sections/GridFilterSection.js +1 -1
  258. package/src/View/Layout/Wizard/sections/PivotAggregationsSection.js +3 -3
  259. package/src/View/Layout/Wizard/sections/PivotColumnsSection.js +8 -0
  260. package/src/View/Layout/Wizard/sections/RowSummarySection.js +1 -1
  261. package/src/View/NamedQuery/Wizard/NamedQueryExpressionWizardSection.js +2 -2
  262. package/src/View/PlusMinus/Wizard/PlusMinusSettingsWizardSection.js +35 -12
  263. package/src/View/PlusMinus/Wizard/PlusMinusWizard.js +20 -15
  264. package/src/View/QuickSearch/QuickSearchPopup.js +4 -1
  265. package/src/View/Schedule/Wizard/ScheduleSettingsWizard/ScheduleSettingsIPushPull.js +12 -1
  266. package/src/View/Schedule/Wizard/ScheduleSettingsWizard/ScheduleSettingsOpenFin.js +12 -1
  267. package/src/View/Schedule/Wizard/ScheduleSettingsWizard/ScheduleSettingsReminder.js +14 -4
  268. package/src/View/Schedule/Wizard/ScheduleSettingsWizard/ScheduleSettingsReport.js +12 -1
  269. package/src/View/Schedule/Wizard/ScheduleSettingsWizard/isSettingsValid.d.ts +2 -1
  270. package/src/View/Schedule/Wizard/ScheduleSettingsWizard/isSettingsValid.js +19 -10
  271. package/src/View/Shortcut/Wizard/ShortcutSettingsWizard.d.ts +2 -1
  272. package/src/View/Shortcut/Wizard/ShortcutSettingsWizard.js +25 -4
  273. package/src/View/Shortcut/Wizard/ShortcutWizard.js +18 -14
  274. package/src/View/SmartEdit/SmartEditViewPanel.js +1 -0
  275. package/src/View/StateManagement/handleExportState.js +1 -1
  276. package/src/View/StyledColumn/Wizard/StyledColumnWizardColumnSection.js +1 -1
  277. package/src/View/Theme/ThemePopup.js +13 -16
  278. package/src/View/UIHelper.d.ts +4 -1
  279. package/src/View/UIHelper.js +24 -14
  280. package/src/agGrid/Adaptable.js +15 -11
  281. package/src/agGrid/AdaptableAgGrid.d.ts +12 -8
  282. package/src/agGrid/AdaptableAgGrid.js +257 -111
  283. package/src/agGrid/AdaptableFilterHandler.js +4 -0
  284. package/src/agGrid/AdaptableLogger.d.ts +3 -0
  285. package/src/agGrid/AdaptableLogger.js +10 -0
  286. package/src/agGrid/AgGridAdapter.js +19 -9
  287. package/src/agGrid/AgGridColumnAdapter.d.ts +1 -0
  288. package/src/agGrid/AgGridColumnAdapter.js +20 -22
  289. package/src/agGrid/AgGridExportAdapter.js +15 -14
  290. package/src/agGrid/AgGridFilterAdapter.js +4 -0
  291. package/src/agGrid/AgGridFloatingFilterAdapter.js +4 -1
  292. package/src/agGrid/AgGridMenuAdapter.js +10 -1
  293. package/src/agGrid/AgGridModulesAdapter.js +2 -1
  294. package/src/agGrid/AgGridOptionsService.js +3 -0
  295. package/src/agGrid/AgGridThemeAdapter.js +4 -2
  296. package/src/agGrid/cellRenderers/ActionColumnRenderer.js +5 -0
  297. package/src/agGrid/cellRenderers/BadgeRenderer.js +2 -0
  298. package/src/agGrid/cellRenderers/PercentBarRenderer.js +1 -0
  299. package/src/agGrid/editors/AdaptableDateEditor/index.js +6 -3
  300. package/src/agGrid/editors/AdaptableNumberEditor/index.js +16 -12
  301. package/src/agGrid/editors/AdaptablePercentageEditor/index.js +17 -13
  302. package/src/agGrid/index.d.ts +6 -0
  303. package/src/agGrid/index.js +6 -0
  304. package/src/components/CheckBox/index.js +1 -1
  305. package/src/components/ColorPicker/ColorPicker.js +5 -4
  306. package/src/components/Dashboard/DashboardToolbar.js +1 -1
  307. package/src/components/Datepicker/index.js +1 -1
  308. package/src/components/Dropdown/Arrows.js +1 -1
  309. package/src/components/ExpressionEditor/DataTableEditor.js +3 -3
  310. package/src/components/ExpressionEditor/EditorInput.js +19 -3
  311. package/src/components/ExpressionEditor/ExpressionFunctionDocumentation.js +1 -1
  312. package/src/components/FormLayout/index.js +1 -1
  313. package/src/components/OverlayTrigger/index.js +1 -1
  314. package/src/components/Select/Select.js +78 -15
  315. package/src/components/Tree/TreeDropdown/index.js +2 -2
  316. package/src/components/overlayBaseZIndex.js +1 -1
  317. package/src/components/utils/useContainerScrollObserver/index.js +17 -14
  318. package/src/devTools/index.js +54 -53
  319. package/src/env.js +2 -2
  320. package/src/layout-manager/src/LMEmitter.js +11 -11
  321. package/src/layout-manager/src/LMLogger.js +7 -0
  322. package/src/layout-manager/src/LayoutManagerModel.d.ts +1 -0
  323. package/src/layout-manager/src/index.js +81 -58
  324. package/src/layout-manager/src/normalizeLayoutModel.js +3 -0
  325. package/src/metamodel/adaptable.metamodel.d.ts +177 -8
  326. package/src/metamodel/adaptable.metamodel.js +1 -1
  327. package/src/migration/AdaptableUpgradeHelper.js +8 -3
  328. package/src/migration/VersionUpgrade.js +1 -0
  329. package/src/migration/VersionUpgrade17.js +5 -6
  330. package/src/migration/VersionUpgrade20.js +4 -4
  331. package/src/migration/VersionUpgrade22.d.ts +21 -0
  332. package/src/migration/VersionUpgrade22.js +191 -0
  333. package/src/parser/src/ExpressionEvaluationError.js +1 -0
  334. package/src/types.d.ts +9 -7
  335. package/themes/dark.css +30 -30
  336. package/themes/light.css +4 -2
  337. package/tsconfig.cjs.tsbuildinfo +1 -1
  338. package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/FinanceForm/FinanceForm.d.ts +0 -1
  339. package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/FinanceForm/FinanceForm.js +0 -633
  340. package/src/View/Alert/AlertEntityRow.d.ts +0 -11
  341. package/src/View/Alert/AlertEntityRow.js +0 -33
  342. package/src/View/CalculatedColumn/CalculatedColumnSummary.d.ts +0 -21
  343. package/src/View/CalculatedColumn/CalculatedColumnSummary.js +0 -63
  344. package/src/View/Components/Buttons/ButtonFunction.d.ts +0 -7
  345. package/src/View/Components/Buttons/ButtonFunction.js +0 -13
  346. package/src/View/Components/Buttons/ButtonGeneral.d.ts +0 -5
  347. package/src/View/Components/Buttons/ButtonGeneral.js +0 -12
  348. package/src/View/Components/Buttons/ButtonPreviewDelete.d.ts +0 -4
  349. package/src/View/Components/Buttons/ButtonPreviewDelete.js +0 -8
  350. package/src/View/Components/Buttons/ButtonShow.d.ts +0 -5
  351. package/src/View/Components/Buttons/ButtonShow.js +0 -12
  352. package/src/View/Components/Buttons/ButtonShowChart.d.ts +0 -5
  353. package/src/View/Components/Buttons/ButtonShowChart.js +0 -12
  354. package/src/View/Components/Buttons/ButtonUndo.d.ts +0 -5
  355. package/src/View/Components/Buttons/ButtonUndo.js +0 -12
  356. package/src/View/Components/ExpressionWizard.d.ts +0 -24
  357. package/src/View/Components/ExpressionWizard.js +0 -82
  358. package/src/View/Components/FilterForm/Waiting.d.ts +0 -10
  359. package/src/View/Components/FilterForm/Waiting.js +0 -19
  360. package/src/View/Components/Panels/PanelFooter.d.ts +0 -10
  361. package/src/View/Components/Panels/PanelFooter.js +0 -14
  362. package/src/View/Components/Panels/PanelWithTwoButtons.d.ts +0 -12
  363. package/src/View/Components/Panels/PanelWithTwoButtons.js +0 -20
  364. package/src/View/Components/Panels/ToolPanelSettingsPanel.d.ts +0 -8
  365. package/src/View/Components/Panels/ToolPanelSettingsPanel.js +0 -31
  366. package/src/View/Components/Selectors/ColumnSelectorOld.d.ts +0 -18
  367. package/src/View/Components/Selectors/ColumnSelectorOld.js +0 -50
  368. package/src/View/Components/SharedProps/WizardScopeState.d.ts +0 -4
  369. package/src/View/Components/WizardSummaryRow.d.ts +0 -9
  370. package/src/View/Components/WizardSummaryRow.js +0 -16
  371. package/src/View/CustomSort/CustomSortSummary.d.ts +0 -23
  372. package/src/View/CustomSort/CustomSortSummary.js +0 -110
  373. package/src/View/DataImport/DataImportWizard/sections/ImportSection.d.ts +0 -9
  374. package/src/View/DataImport/DataImportWizard/sections/ImportSection.js +0 -24
  375. package/src/View/Export/Wizard/ReportColumnTypeWizard.d.ts +0 -19
  376. package/src/View/Export/Wizard/ReportColumnTypeWizard.js +0 -73
  377. package/src/View/Export/Wizard/ReportRowTypeWizard.d.ts +0 -19
  378. package/src/View/Export/Wizard/ReportRowTypeWizard.js +0 -73
  379. package/src/View/Export/Wizard/ReportSettingsWizard.d.ts +0 -21
  380. package/src/View/Export/Wizard/ReportSettingsWizard.js +0 -61
  381. package/src/View/Export/Wizard/ReportSummaryWizard.d.ts +0 -15
  382. package/src/View/Export/Wizard/ReportSummaryWizard.js +0 -40
  383. package/src/View/Filter/FilterSummary.d.ts +0 -18
  384. package/src/View/Filter/FilterSummary.js +0 -53
  385. package/src/View/FormatColumn/FormatColumnSummary.d.ts +0 -22
  386. package/src/View/FormatColumn/FormatColumnSummary.js +0 -95
  387. package/src/View/FreeTextColumn/FreeTextColumnSummary.d.ts +0 -22
  388. package/src/View/FreeTextColumn/FreeTextColumnSummary.js +0 -93
  389. package/src/View/GridInfo/GridInfoPopup/AdaptableOptionsComponent.d.ts +0 -7
  390. package/src/View/GridInfo/GridInfoPopup/AdaptableOptionsComponent.js +0 -99
  391. package/src/View/PlusMinus/PlusMinusSummary.d.ts +0 -22
  392. package/src/View/PlusMinus/PlusMinusSummary.js +0 -100
  393. package/src/View/Wizard/WizardLegend.d.ts +0 -12
  394. package/src/View/Wizard/WizardLegend.js +0 -28
  395. /package/src/{View/Components/SharedProps/WizardScopeState.js → AdaptableState/Common/AdaptableRowContext.js} +0 -0
@@ -10,6 +10,7 @@ const DocumentationLinkConstants_1 = require("../Utilities/Constants/Documentati
10
10
  const StringExtensions_1 = tslib_1.__importDefault(require("../Utilities/Extensions/StringExtensions"));
11
11
  const Emitter_1 = tslib_1.__importDefault(require("../Utilities/Emitter"));
12
12
  const DefaultAdaptableOptions_1 = require("../AdaptableOptions/DefaultAdaptableOptions");
13
+ const resolveContainerElement_1 = require("../Utilities/resolveContainerElement");
13
14
  const AgGridAdapter_1 = require("./AgGridAdapter");
14
15
  const GeneralConstants = tslib_1.__importStar(require("../Utilities/Constants/GeneralConstants"));
15
16
  const GeneralConstants_1 = require("../Utilities/Constants/GeneralConstants");
@@ -159,38 +160,79 @@ LocalEventService_Prototype.dispatchEvent = function (event) {
159
160
  const adaptableInstances = {};
160
161
  const publishTimestamp = Number(EnvVars_1.ADAPTABLE_PUBLISH_TIMESTAMP);
161
162
  class AdaptableAgGrid {
163
+ logger;
164
+ _id;
165
+ lifecycleState;
166
+ variant;
167
+ emitter;
168
+ /**
169
+ * Runtime flags
170
+ */
171
+ hasAutogeneratedPrimaryKey;
172
+ hasAdaptableToolPanel;
173
+ initWithLazyData;
174
+ _rawAdaptableOptions;
175
+ adaptableOptions;
176
+ _isDetailGrid;
177
+ _isDetailGridForIndex;
178
+ agGridOptionsService;
179
+ agGridAdapter;
180
+ agGridColumnAdapter;
181
+ agGridMenuAdapter;
182
+ agGridExportAdapter;
183
+ agGridThemeAdapter;
184
+ agGridModulesAdapter;
185
+ DANGER_USE_GETTER_adaptableContainerElement;
186
+ DANGER_USE_GETTER_agGridContainerElement;
187
+ api;
188
+ adaptableStore;
189
+ adaptableModules;
190
+ DataService;
191
+ CalculatedColumnExpressionService;
192
+ ModuleService;
193
+ ValidationService;
194
+ QueryLanguageService;
195
+ AlertService;
196
+ TeamSharingService;
197
+ MetamodelService;
198
+ RowFormService;
199
+ Fdc3Service;
200
+ AnnotationsService;
201
+ FlashingCellService;
202
+ LicenseService;
203
+ ChartingService;
204
+ ThemeService;
205
+ rowListeners;
206
+ throttleFilterOnDataChange;
207
+ debouncedSetSelectedRows;
208
+ debouncedSetSelectedCells;
209
+ agGridListenerKeydown;
210
+ agGridListenerMouseEnter;
211
+ agGridListenerMouseLeave;
212
+ listenerGlobalSetRowSelection;
213
+ listenerGlobalChartingChanges;
214
+ listenerCellEditingStarted;
215
+ listenerFirstDataRendered;
216
+ listenerPivotChanged;
217
+ listenerCellSelectionChanged;
218
+ listenerSortChanged;
219
+ listenerColumnGroupOpened;
220
+ layoutManager;
221
+ columnMinMaxValuesCache = {};
222
+ renderReactRoot = (node, container) => (0, renderReactRoot_1.renderReactRoot)(node, container);
223
+ unmountReactRoot;
224
+ unmountLoadingScreen;
225
+ /**
226
+ * Temporary, these are MIGRATION technical debts, and should be removed as soon as possible
227
+ */
228
+ adaptableStatusPanelKeys = [];
229
+ adaptableStatusPanelDefs = [];
230
+ hasAdaptableStatusBar;
231
+ // see #no_additional_react_root
232
+ _PRIVATE_adaptableJSXElement;
233
+ _prevLayout;
234
+ __prevLayoutForRefresh;
162
235
  constructor(config) {
163
- this.columnMinMaxValuesCache = {};
164
- this.renderReactRoot = (node, container) => (0, renderReactRoot_1.renderReactRoot)(node, container);
165
- /**
166
- * Temporary, these are MIGRATION technical debts, and should be removed as soon as possible
167
- */
168
- this.adaptableStatusPanelKeys = [];
169
- // only for our private / internal events used within Adaptable
170
- // public events are emitted through the EventApi
171
- this._emit = (eventName, data) => {
172
- if (this.emitter) {
173
- return this.emitter.emit(eventName, data);
174
- }
175
- };
176
- this._emitSync = (eventName, data) => {
177
- if (this.emitter) {
178
- return this.emitter.emitSync(eventName, data);
179
- }
180
- };
181
- this._on = (eventName, callback) => {
182
- if (!this.emitter) {
183
- return () => { };
184
- }
185
- return this.emitter.on(eventName, callback);
186
- };
187
- this._onIncludeFired = (eventName, callback) => {
188
- if (!this.emitter) {
189
- return () => { };
190
- }
191
- return this.emitter.onIncludeFired(eventName, callback);
192
- };
193
- this.__updateColumnModelAndRefreshGrid_already_called = false;
194
236
  this.lifecycleState = 'initial';
195
237
  this.emitter = new Emitter_1.default();
196
238
  this.agGridOptionsService = new AgGridOptionsService_1.AgGridOptionsService(this);
@@ -226,6 +268,30 @@ class AdaptableAgGrid {
226
268
  get isDestroyed() {
227
269
  return this.lifecycleState === 'preDestroyed';
228
270
  }
271
+ // only for our private / internal events used within Adaptable
272
+ // public events are emitted through the EventApi
273
+ _emit = (eventName, data) => {
274
+ if (this.emitter) {
275
+ return this.emitter.emit(eventName, data);
276
+ }
277
+ };
278
+ _emitSync = (eventName, data) => {
279
+ if (this.emitter) {
280
+ return this.emitter.emitSync(eventName, data);
281
+ }
282
+ };
283
+ _on = (eventName, callback) => {
284
+ if (!this.emitter) {
285
+ return () => { };
286
+ }
287
+ return this.emitter.on(eventName, callback);
288
+ };
289
+ _onIncludeFired = (eventName, callback) => {
290
+ if (!this.emitter) {
291
+ return () => { };
292
+ }
293
+ return this.emitter.onIncludeFired(eventName, callback);
294
+ };
229
295
  /**
230
296
  * Internal initializer for Adaptable, directly called by the React and Angular Adaptable wrappers
231
297
  * @private
@@ -300,7 +366,7 @@ class AdaptableAgGrid {
300
366
  this.adaptableOptions = this.normalizeAdaptableOptions(this.adaptableOptions);
301
367
  const { showLoadingScreen, loadingScreenDelay, loadingScreenText, loadingScreenTitle } = this.adaptableOptions.userInterfaceOptions.loadingScreenOptions;
302
368
  if (showLoadingScreen) {
303
- this.logger.info(`Show Loading Screen`);
369
+ this.logger.info('Showing loading screen');
304
370
  // it's important to use ensureLoadingScreenPortalElement
305
371
  // and not ensurePortalElement, because multiple adaptable instances share the same portal element
306
372
  // so when displaying the second one, the react root associated to the portal element
@@ -316,7 +382,7 @@ class AdaptableAgGrid {
316
382
  }), portalElement);
317
383
  }
318
384
  else {
319
- this.logger.consoleError(`Adaptable failed to show the loading screen!`);
385
+ this.logger.consoleError('Failed to create loading screen portal element.');
320
386
  }
321
387
  }
322
388
  this.forPlugins((plugin) => plugin.afterInitOptions(this, this.adaptableOptions));
@@ -375,7 +441,7 @@ class AdaptableAgGrid {
375
441
  // see #map_dateString_to_date
376
442
  this.agGridAdapter.patchColDefs(columnDefs, (colDef) => {
377
443
  if (colDef.cellDataType === 'dateString') {
378
- 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.`);
444
+ 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.`);
379
445
  colDef.cellDataType = 'date';
380
446
  }
381
447
  });
@@ -406,8 +472,8 @@ class AdaptableAgGrid {
406
472
  const agGridApi = await this.initializeAgGrid(gridOptions, config.modules, config.renderAgGridFrameworkComponent);
407
473
  if (agGridApi === false) {
408
474
  this.midwayDestroy();
409
- this.logger.consoleError(`Adaptable failed to initialize AG Grid!`);
410
- return Promise.reject('Adaptable failed to initialize AG Grid!');
475
+ this.logger.consoleError('Failed to initialize AG Grid.');
476
+ return Promise.reject('Failed to initialize AG Grid.');
411
477
  }
412
478
  this.layoutManager = new src_1.LayoutManager({
413
479
  gridApi: agGridApi,
@@ -432,7 +498,7 @@ class AdaptableAgGrid {
432
498
  this.layoutManager.onColumnDefsChanged(() => {
433
499
  this.updateColumnModelAndRefreshGrid();
434
500
  });
435
- this.logger.info(`Hide Loading Screen`);
501
+ this.logger.info('Hiding loading screen');
436
502
  this.unmountLoadingScreen?.();
437
503
  perfInitAgGrid.end();
438
504
  initAgGridMarker.end();
@@ -443,7 +509,7 @@ class AdaptableAgGrid {
443
509
  this.lifecycleState = 'agGridReady';
444
510
  this.api.entitlementApi.internalApi.setModulesAgGridDepsInfos();
445
511
  this.ModuleService.logMissingAgGridDepsInfos();
446
- this.logger.info(`Registered AG Grid modules (incl. dependent modules): `, this.agGridModulesAdapter.getAgGridRegisteredModuleNames().sort());
512
+ this.logger.info('Registered AG Grid modules (including dependents):', this.agGridModulesAdapter.getAgGridRegisteredModuleNames().sort());
447
513
  /**
448
514
  * At this point AG Grid is initialized!
449
515
  */
@@ -533,10 +599,7 @@ class AdaptableAgGrid {
533
599
  const layoutState = state.Layout;
534
600
  // ensure that at least one Layout has been provided
535
601
  if (!layoutState || !layoutState.Layouts?.length) {
536
- this.logger
537
- .consoleError(`You have not defined any Layout in your InitialState.Layout.Layouts[] state!
538
-
539
- You need to define at least one Layout!`);
602
+ this.logger.consoleError('No Layouts defined in InitialState.Layout.Layouts[]. At least one Layout is required.');
540
603
  }
541
604
  // ensure CurrentLayout is valid
542
605
  if (!layoutState.CurrentLayout ||
@@ -699,21 +762,90 @@ You need to define at least one Layout!`);
699
762
  hideQuickFilter() {
700
763
  this.agGridAdapter.getAgGridApi().setGridOption('floatingFiltersHeight', 0);
701
764
  }
765
+ showAdaptableToolPanel() {
766
+ if (!this.hasAdaptableToolPanel) {
767
+ // don't re-add the ToolPanel if it's hidden by entitlement
768
+ if (this.api.entitlementApi.isModuleHiddenEntitlement('ToolPanel')) {
769
+ return;
770
+ }
771
+ const currentSideBar = this.agGridAdapter.getGridOption('sideBar');
772
+ if (currentSideBar?.toolPanels) {
773
+ const updatedSideBar = {
774
+ ...currentSideBar,
775
+ toolPanels: [...currentSideBar.toolPanels, this.buildAdaptableToolPanelDef()],
776
+ };
777
+ this.agGridAdapter.setGridOption('sideBar', updatedSideBar);
778
+ this.hasAdaptableToolPanel = true;
779
+ }
780
+ }
781
+ }
782
+ hideAdaptableToolPanel() {
783
+ if (this.hasAdaptableToolPanel) {
784
+ // close the tool panel if it's currently open
785
+ this.api.toolPanelApi.closeAdapTableToolPanel();
786
+ const currentSideBar = this.agGridAdapter.getGridOption('sideBar');
787
+ if (currentSideBar?.toolPanels) {
788
+ const updatedSideBar = {
789
+ ...currentSideBar,
790
+ toolPanels: currentSideBar.toolPanels.filter((toolPanelDef) => {
791
+ if (typeof toolPanelDef === 'string') {
792
+ return toolPanelDef !== GeneralConstants.ADAPTABLE_TOOLPANEL_ID;
793
+ }
794
+ return toolPanelDef.id !== GeneralConstants.ADAPTABLE_TOOLPANEL_ID;
795
+ }),
796
+ };
797
+ this.agGridAdapter.setGridOption('sideBar', updatedSideBar);
798
+ }
799
+ this.hasAdaptableToolPanel = false;
800
+ }
801
+ }
802
+ buildAdaptableToolPanelDef() {
803
+ return {
804
+ id: GeneralConstants.ADAPTABLE_TOOLPANEL_ID,
805
+ toolPanel: GeneralConstants.ADAPTABLE_TOOLPANEL_COMPONENT,
806
+ labelDefault: GeneralConstants.ADAPTABLE,
807
+ labelKey: 'adaptable',
808
+ iconKey: 'menu',
809
+ width: UIHelper_1.default.getAdaptableToolPanelWidth(),
810
+ minWidth: UIHelper_1.default.getAdaptableToolPanelWidth(),
811
+ };
812
+ }
813
+ showAdaptableStatusBar() {
814
+ if (!this.hasAdaptableStatusBar && this.adaptableStatusPanelDefs.length > 0) {
815
+ const currentStatusBar = this.agGridAdapter.getGridOption('statusBar');
816
+ if (currentStatusBar) {
817
+ // filter out any Adaptable panels that may already exist to avoid duplicates
818
+ const existingNonAdaptablePanels = (currentStatusBar.statusPanels ?? []).filter((panel) => !this.adaptableStatusPanelKeys.includes(panel.key));
819
+ const updatedStatusBar = {
820
+ ...currentStatusBar,
821
+ statusPanels: [...existingNonAdaptablePanels, ...this.adaptableStatusPanelDefs],
822
+ };
823
+ this.agGridAdapter.setGridOption('statusBar', updatedStatusBar);
824
+ this.hasAdaptableStatusBar = true;
825
+ }
826
+ }
827
+ }
828
+ hideAdaptableStatusBar() {
829
+ if (this.hasAdaptableStatusBar) {
830
+ const currentStatusBar = this.agGridAdapter.getGridOption('statusBar');
831
+ if (currentStatusBar?.statusPanels) {
832
+ const updatedStatusBar = {
833
+ ...currentStatusBar,
834
+ statusPanels: currentStatusBar.statusPanels.filter((panel) => !this.adaptableStatusPanelKeys.includes(panel.key)),
835
+ };
836
+ this.agGridAdapter.setGridOption('statusBar', updatedStatusBar);
837
+ }
838
+ this.hasAdaptableStatusBar = false;
839
+ }
840
+ }
702
841
  normalizeAdaptableOptions(adaptableOptions) {
703
842
  if (this.hasAutogeneratedPrimaryKey) {
704
- this.logger
705
- .warn(`Autogenerated primary key (adaptableOptions.autogeneratedPrimaryKey = TRUE) should be used only as a last resort,
706
- when no unique column is available, as it limits some Adaptable functionalities!
707
-
708
- For more details see: ${DocumentationLinkConstants_1.PrimaryKeyDocsLink}`);
843
+ 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}`);
709
844
  this.adaptableOptions.primaryKey = GeneralConstants_1.AUTOGENERATED_PK_COLUMN;
710
845
  return this.adaptableOptions;
711
846
  }
712
847
  if (StringExtensions_1.default.IsNullOrEmpty(adaptableOptions.primaryKey)) {
713
- this.logger.consoleError(`AdaptableOptions.primaryKey is required and cannot be empty or null!
714
- As a fallback, you can set adaptableOptions.autogeneratedPrimaryKey = TRUE
715
-
716
- For more details see: ${DocumentationLinkConstants_1.PrimaryKeyDocsLink}`);
848
+ this.logger.consoleError(`adaptableOptions.primaryKey is required and must not be empty. As a fallback, set adaptableOptions.autogeneratedPrimaryKey = true. See: ${DocumentationLinkConstants_1.PrimaryKeyDocsLink}`);
717
849
  }
718
850
  return adaptableOptions;
719
851
  }
@@ -745,7 +877,7 @@ You need to define at least one Layout!`);
745
877
  */
746
878
  this.agGridOptionsService.setGridOptionsProperty(gridOptions, 'defaultColDef', (original_defaultColDef) => {
747
879
  if (original_defaultColDef?.headerValueGetter) {
748
- this.logger.warn(`defaultColDef.headerValueGetter and overrides the Adaptable custom header mechanism! We recommend using a ColumnOptions.columnHeader instead!`);
880
+ this.logger.warn('defaultColDef.headerValueGetter overrides the Adaptable header mechanism. Consider using ColumnOptions.columnHeader instead.');
749
881
  return original_defaultColDef;
750
882
  }
751
883
  // #customize_header
@@ -762,7 +894,7 @@ You need to define at least one Layout!`);
762
894
  */
763
895
  this.agGridOptionsService.setGridOptionsProperty(gridOptions, 'defaultColGroupDef', (original_defaultColGroupDef) => {
764
896
  if (original_defaultColGroupDef?.headerValueGetter) {
765
- this.logger.warn(`defaultColGroupDef.headerValueGetter and overrides the Adaptable custom header mechanism! We recommend using a ColumnOptions.tableColumnHeader instead!`);
897
+ this.logger.warn('defaultColGroupDef.headerValueGetter overrides the Adaptable header mechanism. Consider using ColumnOptions.tableColumnHeader instead.');
766
898
  return original_defaultColGroupDef;
767
899
  }
768
900
  const defaultColGroupDef = { ...original_defaultColGroupDef };
@@ -782,11 +914,11 @@ You need to define at least one Layout!`);
782
914
  }
783
915
  if (original_autoGroupColumnDef?.filter === false) {
784
916
  // if user disables filter on autoGroupColumnDef, we respect that
785
- this.logger.info(`autoGroupColumnDef.filter is disabled as per user configuration.`);
917
+ this.logger.info('autoGroupColumnDef.filter is disabled via user configuration.');
786
918
  return original_autoGroupColumnDef;
787
919
  }
788
920
  if (typeof original_autoGroupColumnDef?.filter === 'object') {
789
- this.logger.warn(`autoGroupColumnDef.filter is set and overrides the Adaptable custom filter mechanism! We recommend using a ColumnOptions.columnHeader instead!`);
921
+ 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.');
790
922
  return original_autoGroupColumnDef;
791
923
  }
792
924
  const autoGroupColumnDef = { ...original_autoGroupColumnDef };
@@ -794,7 +926,7 @@ You need to define at least one Layout!`);
794
926
  // !! DO NOT REMOVE THIS !!
795
927
  // see https://github.com/ag-grid/ag-grid/blob/6f43ff257c2e285068eb425b655e58d6eeb89816/packages/ag-grid-enterprise/src/rowHierarchy/autoColService.ts#L225
796
928
  autoGroupColumnDef.filterValueGetter = (params) => {
797
- this.logger.error('autoGroupColumnDef.filterValueGetter was called unexpectedly; this is not an expected execution path!', params);
929
+ this.logger.consoleWarn('Unexpected invocation of autoGroupColumnDef.filterValueGetter. This is not expected under normal operation. Please contact support.', params);
798
930
  return '';
799
931
  };
800
932
  // !! it is important that we always return the same component / handler instances
@@ -1108,16 +1240,7 @@ You need to define at least one Layout!`);
1108
1240
  return original_sideBar;
1109
1241
  }
1110
1242
  const isAdaptableToolPanelHidden = this.api.entitlementApi.isModuleHiddenEntitlement('ToolPanel');
1111
- const adaptableToolPanelDef = {
1112
- id: GeneralConstants.ADAPTABLE_TOOLPANEL_ID,
1113
- toolPanel: GeneralConstants.ADAPTABLE_TOOLPANEL_COMPONENT,
1114
- labelDefault: GeneralConstants.ADAPTABLE,
1115
- labelKey: 'adaptable',
1116
- iconKey: 'menu',
1117
- width: UIHelper_1.default.getAdaptableToolPanelWidth(),
1118
- minWidth: UIHelper_1.default.getAdaptableToolPanelWidth(),
1119
- // maxWidth = undefined,
1120
- };
1243
+ const adaptableToolPanelDef = this.buildAdaptableToolPanelDef();
1121
1244
  const mapToolPanelDefs = (toolPanelDefs = []) => {
1122
1245
  // if it's an alias for the adaptable tool panel, map it to a ToolPanelDef, otherwise return it as it is
1123
1246
  return toolPanelDefs.map((toolPanelDef) => toolPanelDef === GeneralConstants.ADAPTABLE_TOOLPANEL_ID
@@ -1192,19 +1315,29 @@ You need to define at least one Layout!`);
1192
1315
  this.agGridOptionsService.setGridOptionsProperty(gridOptions, 'statusBar', (original_statusBar) => {
1193
1316
  const statusPanels = (original_statusBar?.statusPanels ?? [])?.map((statusPanel) => {
1194
1317
  if (statusPanel.statusPanel === StatusBarState_1.ADAPTABLE_STATUS_PANEL) {
1318
+ if (!statusPanel.key) {
1319
+ this.logger.consoleWarn('AdaptableStatusPanel is missing a "key" property. This panel will not be managed by HideAdaptableUI. Please provide a unique key.');
1320
+ return statusPanel;
1321
+ }
1195
1322
  this.adaptableStatusPanelKeys.push(statusPanel.key);
1196
1323
  const context = {
1197
1324
  Key: statusPanel.key,
1198
1325
  };
1199
- return {
1326
+ const adaptablePanelDef = {
1200
1327
  ...statusPanel,
1201
1328
  statusPanel: (0, createAgStatusPanelComponent_1.createAgStatusPanelComponent)(AdaptableStatusBar_1.AdaptableStatusBar, this, context),
1202
1329
  };
1330
+ this.adaptableStatusPanelDefs.push(adaptablePanelDef);
1331
+ return adaptablePanelDef;
1203
1332
  }
1204
1333
  return statusPanel;
1205
1334
  });
1206
1335
  return { ...original_statusBar, statusPanels };
1207
1336
  });
1337
+ this.hasAdaptableStatusBar = this.adaptableStatusPanelKeys.length > 0;
1338
+ }
1339
+ else {
1340
+ this.hasAdaptableStatusBar = false;
1208
1341
  }
1209
1342
  /**
1210
1343
  * `getRowStyle`
@@ -1364,15 +1497,14 @@ You need to define at least one Layout!`);
1364
1497
  const rowData = agGridApi.getGridOption('rowData');
1365
1498
  this.initWithLazyData = rowData == undefined || rowData.length === 0;
1366
1499
  if (this.initWithLazyData) {
1367
- this.logger.info('initWithLazyData = TRUE');
1500
+ this.logger.info('Initializing with lazy data (no initial rowData).');
1368
1501
  }
1369
1502
  if (!this.getAgGridContainerElement()) {
1370
1503
  // initialize the agGridContainerElement from the AgGrid instance
1371
1504
  const gridRoot = this.agGridAdapter.getAgGridRootElement();
1372
1505
  const gridContainer = gridRoot?.closest('[class*="ag-theme"]');
1373
1506
  if (!gridContainer) {
1374
- this.logger.consoleError(`No AG Grid container could be derived from the Adaptable framework wrapper.
1375
- Please contact AdapTable Support and in the meantime provide a valid container element in 'ContainerOptions.agGridContainer'!`);
1507
+ this.logger.consoleError('Failed to derive AG Grid container from the framework wrapper. Please provide a valid container element via ContainerOptions.agGridContainer.');
1376
1508
  }
1377
1509
  this.DANGER_USE_GETTER_agGridContainerElement = gridContainer;
1378
1510
  }
@@ -1380,7 +1512,7 @@ You need to define at least one Layout!`);
1380
1512
  }
1381
1513
  const agGridContainer = this.getAgGridContainerElement();
1382
1514
  if (!agGridContainer) {
1383
- this.logger.consoleError('No AG Grid container element found in the DOM. Please provide a valid container element in `ContainerOptions.agGridContainer`');
1515
+ this.logger.consoleError('AG Grid container element not found in the DOM. Please provide a valid element via ContainerOptions.agGridContainer.');
1384
1516
  return Promise.resolve(false);
1385
1517
  }
1386
1518
  let gridParams;
@@ -1393,21 +1525,22 @@ You need to define at least one Layout!`);
1393
1525
  useRowNodeLookUp() {
1394
1526
  return this.agGridAdapter.getAgGridApi().getGridOption('getRowId') != undefined;
1395
1527
  }
1528
+ buildInitContainerContext() {
1529
+ return {
1530
+ adaptableId: this.adaptableOptions?.adaptableId ?? '',
1531
+ adaptableStateKey: this.adaptableOptions?.adaptableStateKey ?? '',
1532
+ adaptableContext: this.adaptableOptions?.adaptableContext,
1533
+ };
1534
+ }
1396
1535
  getAgGridContainerElement() {
1397
1536
  if (!this.DANGER_USE_GETTER_agGridContainerElement) {
1398
- this.DANGER_USE_GETTER_agGridContainerElement =
1399
- typeof this.adaptableOptions?.containerOptions?.agGridContainer === 'string'
1400
- ? document.getElementById(this.adaptableOptions?.containerOptions?.agGridContainer)
1401
- : this.adaptableOptions?.containerOptions?.agGridContainer;
1537
+ this.DANGER_USE_GETTER_agGridContainerElement = (0, resolveContainerElement_1.resolveContainerElement)(this.adaptableOptions?.containerOptions?.agGridContainer, this.buildInitContainerContext());
1402
1538
  }
1403
1539
  return this.DANGER_USE_GETTER_agGridContainerElement;
1404
1540
  }
1405
1541
  getAdaptableContainerElement() {
1406
1542
  if (!this.DANGER_USE_GETTER_adaptableContainerElement) {
1407
- this.DANGER_USE_GETTER_adaptableContainerElement =
1408
- typeof this.adaptableOptions?.containerOptions?.adaptableContainer === 'string'
1409
- ? document.getElementById(this.adaptableOptions?.containerOptions?.adaptableContainer)
1410
- : this.adaptableOptions?.containerOptions?.adaptableContainer;
1543
+ this.DANGER_USE_GETTER_adaptableContainerElement = (0, resolveContainerElement_1.resolveContainerElement)(this.adaptableOptions?.containerOptions?.adaptableContainer, this.buildInitContainerContext());
1411
1544
  }
1412
1545
  return this.DANGER_USE_GETTER_adaptableContainerElement;
1413
1546
  }
@@ -1795,7 +1928,7 @@ You need to define at least one Layout!`);
1795
1928
  // if no primary key column then lets check the first row to see if its a data item
1796
1929
  const primaryKeyDataItem = this.getFirstRowNode()?.data[primaryKey];
1797
1930
  if (!primaryKeyDataItem) {
1798
- errorMessage = `The Primary Key '${this.adaptableOptions.primaryKey}' does not exist. This will affect many functions in AdapTable.`;
1931
+ errorMessage = `Primary key column "${this.adaptableOptions.primaryKey}" not found. This will affect many Adaptable features.`;
1799
1932
  if (this.adaptableOptions.alertOptions.showMissingPrimaryKeyAlert) {
1800
1933
  // show an alert if that is the option
1801
1934
  this.api.alertApi.showAlertError('No Primary Key', errorMessage);
@@ -1852,12 +1985,12 @@ You need to define at least one Layout!`);
1852
1985
  checkShouldClearExistingFiltersOrSearches() {
1853
1986
  // if they have selected to clear Filters on startup then do it
1854
1987
  if (this.adaptableOptions.filterOptions.clearFiltersOnStartUp) {
1855
- this.logger.warn('Clearing any saved Filters as "clearFiltersOnStartUp" is true');
1988
+ this.logger.warn('Clearing saved filters (clearFiltersOnStartUp is enabled).');
1856
1989
  this.api.filterApi.clearAllFilters();
1857
1990
  }
1858
1991
  // if they have selected to clear searches on startup then do it
1859
1992
  if (this.adaptableOptions.quickSearchOptions.clearQuickSearchOnStartUp) {
1860
- this.logger.warn('Clearing any saved Searches as "clearQuickSearchOnStartUp" is true');
1993
+ this.logger.warn('Clearing saved Quick Search (clearQuickSearchOnStartUp is enabled).');
1861
1994
  this.api.quickSearchApi.clearQuickSearch();
1862
1995
  }
1863
1996
  }
@@ -2070,6 +2203,7 @@ You need to define at least one Layout!`);
2070
2203
  }
2071
2204
  return rawValue;
2072
2205
  }
2206
+ __updateColumnModelAndRefreshGrid_already_called = false;
2073
2207
  updateColumnModelAndRefreshGrid() {
2074
2208
  if (this.__updateColumnModelAndRefreshGrid_already_called) {
2075
2209
  return;
@@ -2085,7 +2219,7 @@ You need to define at least one Layout!`);
2085
2219
  }
2086
2220
  }
2087
2221
  _updateColumnModelAndRefreshGridNow() {
2088
- this.logger.info(`Updating Column Model and Refreshing Grid.`);
2222
+ this.logger.info('Updating column model and refreshing grid.');
2089
2223
  this.deriveAdaptableColumnStateFromAgGrid();
2090
2224
  this.agGridColumnAdapter.setupColumns();
2091
2225
  this.redrawBody();
@@ -2111,7 +2245,7 @@ You need to define at least one Layout!`);
2111
2245
  this.agGridAdapter.getAgGridApi().redrawRows(redrawRowsParams);
2112
2246
  }
2113
2247
  catch (ex) {
2114
- this.logger.consoleError('AG Grid redrawRows was unable to find some row nodes. Tried to redraw row nodes: ', rowNodes, ex);
2248
+ this.logger.consoleError('AG Grid redrawRows failed to locate some row nodes.', rowNodes, ex);
2115
2249
  }
2116
2250
  }
2117
2251
  redrawRow(rowNode) {
@@ -2405,31 +2539,34 @@ You need to define at least one Layout!`);
2405
2539
  });
2406
2540
  }
2407
2541
  }
2408
- async applyGridDataTransaction(dataTransaction, config = {}) {
2542
+ async manageGridRows(dataRowConfig, dataUpdateConfig = {}) {
2409
2543
  const result = {
2410
2544
  addedRows: [],
2411
2545
  updatedRows: [],
2412
2546
  removedRows: [],
2413
2547
  };
2414
- if (!dataTransaction) {
2548
+ if (!dataRowConfig) {
2549
+ return result;
2550
+ }
2551
+ if (!dataRowConfig.addRows || !dataRowConfig.updateRows || !dataRowConfig.deleteRows) {
2415
2552
  return result;
2416
2553
  }
2417
- const addDataRows = dataTransaction.add;
2418
- const updateDataRows = dataTransaction.update;
2419
- const removeDataRows = dataTransaction.remove;
2554
+ const addDataRows = dataRowConfig.addRows;
2555
+ const updateDataRows = dataRowConfig.updateRows;
2556
+ const removeDataRows = dataRowConfig.deleteRows;
2420
2557
  if (this.hasAutogeneratedPrimaryKey) {
2421
2558
  this.addSyntheticPrimaryKeyIfMissing(addDataRows);
2422
2559
  }
2423
- if (config.runAsync) {
2560
+ if (dataUpdateConfig.runAsync) {
2424
2561
  return new Promise((resolve) => {
2425
2562
  this.applyAgGridTransactionAsync({
2426
2563
  update: updateDataRows,
2427
2564
  add: addDataRows,
2428
2565
  remove: removeDataRows,
2429
- addIndex: config.addIndex,
2566
+ addIndex: dataUpdateConfig.addIndex,
2430
2567
  }, (transaction) => {
2431
- if (typeof config.callback === 'function') {
2432
- config.callback(transaction);
2568
+ if (typeof dataUpdateConfig.callback === 'function') {
2569
+ dataUpdateConfig.callback(transaction);
2433
2570
  }
2434
2571
  if (transaction?.add) {
2435
2572
  this.updateRowGroupsAndColumnGroupsExpandedState();
@@ -2440,7 +2577,7 @@ You need to define at least one Layout!`);
2440
2577
  removedRows: transaction?.remove,
2441
2578
  });
2442
2579
  });
2443
- if (config.flushAsync) {
2580
+ if (dataUpdateConfig.flushAsync) {
2444
2581
  this.agGridAdapter.getAgGridApi().flushAsyncTransactions();
2445
2582
  }
2446
2583
  });
@@ -2450,12 +2587,12 @@ You need to define at least one Layout!`);
2450
2587
  update: updateDataRows,
2451
2588
  add: addDataRows,
2452
2589
  remove: removeDataRows,
2453
- addIndex: config.addIndex,
2590
+ addIndex: dataUpdateConfig.addIndex,
2454
2591
  });
2455
2592
  if (transaction?.add) {
2456
2593
  this.updateRowGroupsAndColumnGroupsExpandedState();
2457
2594
  }
2458
- if (config.flushAsync) {
2595
+ if (dataUpdateConfig.flushAsync) {
2459
2596
  this.agGridAdapter.getAgGridApi().flushAsyncTransactions();
2460
2597
  }
2461
2598
  return Promise.resolve({
@@ -2521,14 +2658,14 @@ You need to define at least one Layout!`);
2521
2658
  }
2522
2659
  autoSizeColumns(columnIds) {
2523
2660
  if (!this.agGridModulesAdapter.isAgGridModuleRegistered('ColumnAutoSizeModule')) {
2524
- this.logger.consoleError(`Could not auto-size columns [${columnIds}] - missing required AG Grid module 'ColumnAutoSizeModule'`);
2661
+ this.logger.consoleError(`Auto-sizing columns [${columnIds}] requires the AG Grid "ColumnAutoSizeModule". Please register this module.`);
2525
2662
  return;
2526
2663
  }
2527
2664
  this.layoutManager.autoSizeColumns(columnIds);
2528
2665
  }
2529
2666
  autoSizeAllColumns() {
2530
2667
  if (!this.agGridModulesAdapter.isAgGridModuleRegistered('ColumnAutoSizeModule')) {
2531
- this.logger.consoleError(`Could not auto-size all columns - missing required AG Grid module 'ColumnAutoSizeModule'`);
2668
+ this.logger.consoleError('Auto-sizing all columns requires the AG Grid "ColumnAutoSizeModule". Please register this module.');
2532
2669
  return;
2533
2670
  }
2534
2671
  const agGridApi = this.agGridAdapter.getAgGridApi();
@@ -2686,7 +2823,7 @@ You need to define at least one Layout!`);
2686
2823
  customInFilterValuesResult = await customInFilterValues(customInFilterValuesContext);
2687
2824
  }
2688
2825
  catch (error) {
2689
- this.logger.consoleError(`Failed to fetch custom filter values`, column, error);
2826
+ this.logger.consoleError('Failed to retrieve custom filter values.', column, error);
2690
2827
  }
2691
2828
  return customInFilterValuesResult;
2692
2829
  }
@@ -2726,7 +2863,7 @@ You need to define at least one Layout!`);
2726
2863
  customDistinctValues = await customEditColumnValues(customEditValuesContext);
2727
2864
  }
2728
2865
  catch (error) {
2729
- this.logger.consoleError(`Failed to fetch custom edit values`, column, error);
2866
+ this.logger.consoleError('Failed to retrieve custom edit values.', column, error);
2730
2867
  }
2731
2868
  return customDistinctValues ?? [];
2732
2869
  }
@@ -3181,7 +3318,7 @@ You need to define at least one Layout!`);
3181
3318
  if (this.getAgGridRowModelType() !== 'clientSide') {
3182
3319
  // only in client-side row model can we loop through filtered&sorted rows
3183
3320
  // see https://www.ag-grid.com/javascript-data-grid/accessing-data/#iterating-rows
3184
- this.logger.warn('`forAllVisibleRowNodesDo()` is only supported in client-side row model. `forAllRowNodesDo` will be used instead.');
3321
+ this.logger.warn('forAllVisibleRowNodesDo() is only supported with client-side row model. Falling back to forAllRowNodesDo().');
3185
3322
  return this.forAllRowNodesDo(func, config);
3186
3323
  }
3187
3324
  this.agGridAdapter.getAgGridApi().forEachNodeAfterFilterAndSort((rowNode, rowIndex) => {
@@ -3233,14 +3370,14 @@ You need to define at least one Layout!`);
3233
3370
  }
3234
3371
  selectNode(rowNode, clearSelection) {
3235
3372
  if (!rowNode) {
3236
- this.logger.error('No node to select');
3373
+ this.logger.error('Cannot select: row node is null.');
3237
3374
  return;
3238
3375
  }
3239
3376
  rowNode.setSelected(true, clearSelection);
3240
3377
  }
3241
3378
  deSelectNode(rowNode, clearSelection) {
3242
3379
  if (!rowNode) {
3243
- this.logger.error('No node to deselect');
3380
+ this.logger.error('Cannot deselect: row node is null.');
3244
3381
  return;
3245
3382
  }
3246
3383
  rowNode.setSelected(false, clearSelection);
@@ -3328,7 +3465,7 @@ You need to define at least one Layout!`);
3328
3465
  }
3329
3466
  showChart(chartDefinition, container) {
3330
3467
  if (!this.isReady) {
3331
- this.logger.consoleError('Adaptable must be instantiated before calling showChart');
3468
+ this.logger.consoleError('Cannot call showChart before Adaptable is fully initialized.');
3332
3469
  return null;
3333
3470
  }
3334
3471
  /**
@@ -3349,7 +3486,7 @@ You need to define at least one Layout!`);
3349
3486
  }
3350
3487
  updateChart(chart) {
3351
3488
  if (!chart.Model) {
3352
- this.logger.consoleError(`Chart definition must have a Model property to be updated: ${chart.Name}`);
3489
+ this.logger.consoleError(`Cannot update chart "${chart.Name}": the chart definition is missing the required Model property.`);
3353
3490
  return;
3354
3491
  }
3355
3492
  const upgradableProperties = {
@@ -3361,12 +3498,21 @@ You need to define at least one Layout!`);
3361
3498
  suppressChartRanges: Boolean(chart.Model.suppressChartRanges),
3362
3499
  aggFunc: chart.Model.aggFunc,
3363
3500
  };
3501
+ // Skip the AG Grid API call if the upgradable properties haven't changed
3502
+ // to avoid unnecessary chartOptionsChanged events (see #ag_grid_update_chart_loop)
3503
+ const currentModel = this.getChartModels().find((model) => model.chartId === chart.Model.chartId);
3504
+ if (currentModel &&
3505
+ Boolean(currentModel.unlinkChart) === upgradableProperties.unlinkChart &&
3506
+ Boolean(currentModel.suppressChartRanges) === upgradableProperties.suppressChartRanges &&
3507
+ currentModel.aggFunc === upgradableProperties.aggFunc) {
3508
+ return;
3509
+ }
3364
3510
  // see also #ag_grid_update_chart_loop
3365
3511
  this.agGridAdapter.getAgGridApi().updateChart(upgradableProperties);
3366
3512
  }
3367
3513
  getChartModels() {
3368
3514
  if (!this.isReady) {
3369
- this.logger.consoleError('Adaptable must be instantiated before calling getChartModels');
3515
+ this.logger.consoleError('Cannot call getChartModels before Adaptable is fully initialized.');
3370
3516
  return [];
3371
3517
  }
3372
3518
  return this.agGridAdapter.getAgGridApi().getChartModels();
@@ -3400,7 +3546,7 @@ You need to define at least one Layout!`);
3400
3546
  }
3401
3547
  setAgGridQuickSearch(searchText) {
3402
3548
  if (!this.agGridModulesAdapter.isAgGridModuleRegistered('QuickFilterModule')) {
3403
- this.logger.consoleError(`Can NOT set Quick Search text - missing required AG Grid module 'QuickFilterModule'`);
3549
+ this.logger.consoleError('Quick Search requires the AG Grid "QuickFilterModule". Please register this module to enable Quick Search.');
3404
3550
  return;
3405
3551
  }
3406
3552
  this.agGridAdapter.setGridOption('quickFilterText', searchText);
@@ -3410,7 +3556,7 @@ You need to define at least one Layout!`);
3410
3556
  }
3411
3557
  setAgGridFindSearchValue(searchText) {
3412
3558
  if (!this.agGridModulesAdapter.isAgGridModuleRegistered('FindModule')) {
3413
- this.logger.consoleError(`Can NOT set Find Search text - missing required AG Grid module 'FindModule'`);
3559
+ this.logger.consoleError('Find Search requires the AG Grid "FindModule". Please register this module to enable Find Search.');
3414
3560
  return;
3415
3561
  }
3416
3562
  this.agGridAdapter.setGridOption('findSearchValue', searchText);
@@ -3939,7 +4085,7 @@ You need to define at least one Layout!`);
3939
4085
  cellDataChangedInfos.forEach((cellDataChangedInfo) => {
3940
4086
  // if a Cell Data Change is undone, log to the Console
3941
4087
  if (cellDataChangedInfo.trigger === 'undo') {
3942
- this.logger.info(`Undo data change: PK(${cellDataChangedInfo.primaryKeyValue}) Col(${cellDataChangedInfo.column}) RevertedValue(${cellDataChangedInfo.oldValue}) OriginalValue(${cellDataChangedInfo.newValue})`);
4088
+ this.logger.info(`Data change reverted: column="${cellDataChangedInfo.column}", primaryKey="${cellDataChangedInfo.primaryKeyValue}", from=${cellDataChangedInfo.newValue} to=${cellDataChangedInfo.oldValue}`);
3943
4089
  }
3944
4090
  // For Changes except Aggregations, reset cell selection if required
3945
4091
  if (cellDataChangedInfo.trigger === 'edit' ||
@@ -4144,7 +4290,7 @@ You need to define at least one Layout!`);
4144
4290
  this.api.layoutApi.createOrUpdateLayout(layout);
4145
4291
  }
4146
4292
  refreshAdaptableAfterLayoutChange(layout) {
4147
- this.logger.info('refreshAdaptableAfterLayoutChange()');
4293
+ this.logger.info('Refreshing Adaptable after layout change.');
4148
4294
  const prevLayoutForRefresh = this.__prevLayoutForRefresh || this.api.layoutApi.getCurrentLayout();
4149
4295
  // see #on-regroup-expect-group-column-to-be-recomputed-and-setup-properly
4150
4296
  const rowGroupsChanged = this.isRowGroupDifferentInLayout(prevLayoutForRefresh, layout);
@@ -4190,7 +4336,7 @@ You need to define at least one Layout!`);
4190
4336
  .forEach((colType) => {
4191
4337
  const newValidCellDataType = (0, VersionUpgrade20_1.mapOldTypeToDataType)(colType);
4192
4338
  if (newValidCellDataType) {
4193
- 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}` : ''}`);
4339
+ 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.'}`);
4194
4340
  }
4195
4341
  });
4196
4342
  });