@adaptabletools/adaptable 14.0.0-canary.0 → 14.0.0-canary.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (704) hide show
  1. package/README.md +3 -3
  2. package/agGrid.d.ts +23 -1
  3. package/agGrid.js +23 -1
  4. package/base.css +1408 -2113
  5. package/base.css.map +1 -0
  6. package/bundle.cjs.js +259 -230
  7. package/index.css +1586 -1473
  8. package/index.css.map +1 -0
  9. package/package.json +10 -10
  10. package/publishTimestamp.d.ts +1 -1
  11. package/publishTimestamp.js +1 -1
  12. package/src/AdaptableInterfaces/IAdaptable.d.ts +20 -5
  13. package/src/AdaptableOptions/ActionOptions.d.ts +66 -32
  14. package/src/AdaptableOptions/AdaptableOptions.d.ts +6 -2
  15. package/src/AdaptableOptions/AdaptableQLOptions.d.ts +10 -104
  16. package/src/AdaptableOptions/AlertOptions.d.ts +10 -1
  17. package/src/AdaptableOptions/ChartingOptions.d.ts +27 -0
  18. package/src/{Api/ConditionalStyleApi.js → AdaptableOptions/ChartingOptions.js} +0 -0
  19. package/src/AdaptableOptions/DataChangeHistoryOptions.d.ts +1 -1
  20. package/src/AdaptableOptions/EntitlementOptions.d.ts +14 -1
  21. package/src/AdaptableOptions/ExportOptions.d.ts +3 -3
  22. package/src/AdaptableOptions/ExpressionOptions.d.ts +204 -0
  23. package/src/{Api/InternalApi.js → AdaptableOptions/ExpressionOptions.js} +0 -0
  24. package/src/AdaptableOptions/FilterOptions.d.ts +8 -1
  25. package/src/AdaptableOptions/FinancePluginOptions.d.ts +21 -6
  26. package/src/AdaptableOptions/FinsemblePluginOptions.d.ts +32 -0
  27. package/src/{Strategy/Interface/IConditionalStyleModule.js → AdaptableOptions/FinsemblePluginOptions.js} +0 -0
  28. package/src/AdaptableOptions/GeneralOptions.d.ts +46 -5
  29. package/src/AdaptableOptions/LayoutOptions.d.ts +20 -2
  30. package/src/AdaptableOptions/MasterDetailPluginOptions.d.ts +6 -4
  31. package/src/AdaptableOptions/NotificationsOptions.d.ts +2 -1
  32. package/src/AdaptableOptions/PredicateOptions.d.ts +32 -0
  33. package/src/AdaptableOptions/PredicateOptions.js +2 -0
  34. package/src/AdaptableOptions/UserInterfaceOptions.d.ts +4 -4
  35. package/src/Api/ActionApi.d.ts +14 -3
  36. package/src/Api/AdaptableApi.d.ts +12 -11
  37. package/src/Api/AlertApi.d.ts +139 -83
  38. package/src/Api/BulkUpdateApi.d.ts +9 -2
  39. package/src/Api/CalculatedColumnApi.d.ts +26 -21
  40. package/src/Api/CalendarApi.d.ts +29 -0
  41. package/src/Api/CalendarApi.js +2 -0
  42. package/src/Api/CellSummaryApi.d.ts +15 -8
  43. package/src/Api/ChartingApi.d.ts +45 -1
  44. package/src/Api/ColumnApi.d.ts +166 -110
  45. package/src/Api/ConfigApi.d.ts +18 -24
  46. package/src/Api/CustomSortApi.d.ts +36 -7
  47. package/src/Api/DashboardApi.d.ts +13 -6
  48. package/src/Api/DataChangeHistoryApi.d.ts +8 -1
  49. package/src/Api/DataSetApi.d.ts +13 -3
  50. package/src/Api/EntitlementApi.d.ts +31 -0
  51. package/src/Api/EntitlementApi.js +2 -0
  52. package/src/Api/EventApi.d.ts +15 -24
  53. package/src/Api/ExportApi.d.ts +35 -18
  54. package/src/Api/FilterApi.d.ts +75 -67
  55. package/src/Api/FinanceApi.d.ts +22 -9
  56. package/src/Api/FinsembleApi.d.ts +10 -0
  57. package/src/Api/FinsembleApi.js +2 -0
  58. package/src/Api/FlashingCellApi.d.ts +28 -12
  59. package/src/Api/FormatColumnApi.d.ts +96 -102
  60. package/src/Api/FreeTextColumnApi.d.ts +53 -21
  61. package/src/Api/GridApi.d.ts +59 -23
  62. package/src/Api/IPushPullApi.d.ts +1 -1
  63. package/src/Api/Implementation/ActionApiImpl.d.ts +9 -3
  64. package/src/Api/Implementation/ActionApiImpl.js +23 -11
  65. package/src/Api/Implementation/AdaptableApiImpl.d.ts +8 -4
  66. package/src/Api/Implementation/AdaptableApiImpl.js +9 -5
  67. package/src/Api/Implementation/AlertApiImpl.d.ts +59 -26
  68. package/src/Api/Implementation/AlertApiImpl.js +187 -171
  69. package/src/Api/Implementation/ApiBase.d.ts +45 -3
  70. package/src/Api/Implementation/ApiBase.js +129 -5
  71. package/src/Api/Implementation/ApplicationApiImpl.d.ts +1 -1
  72. package/src/Api/Implementation/BulkUpdateApiImpl.d.ts +1 -0
  73. package/src/Api/Implementation/BulkUpdateApiImpl.js +4 -1
  74. package/src/Api/Implementation/CalculatedColumnApiImpl.d.ts +7 -2
  75. package/src/Api/Implementation/CalculatedColumnApiImpl.js +28 -37
  76. package/src/Api/Implementation/CalendarApiImpl.d.ts +9 -0
  77. package/src/Api/Implementation/CalendarApiImpl.js +59 -0
  78. package/src/Api/Implementation/CellSummaryApiImpl.d.ts +1 -0
  79. package/src/Api/Implementation/CellSummaryApiImpl.js +6 -1
  80. package/src/Api/Implementation/ChartingApiImpl.d.ts +11 -3
  81. package/src/Api/Implementation/ChartingApiImpl.js +41 -6
  82. package/src/Api/Implementation/ColumnApiImpl.d.ts +28 -8
  83. package/src/Api/Implementation/ColumnApiImpl.js +204 -194
  84. package/src/Api/Implementation/ConfigApiImpl.d.ts +1 -3
  85. package/src/Api/Implementation/ConfigApiImpl.js +1 -12
  86. package/src/Api/Implementation/CustomSortApiImpl.d.ts +16 -1
  87. package/src/Api/Implementation/CustomSortApiImpl.js +33 -7
  88. package/src/Api/Implementation/DashboardApiImpl.d.ts +6 -1
  89. package/src/Api/Implementation/DashboardApiImpl.js +13 -15
  90. package/src/Api/Implementation/DataChangeHistoryApiImpl.d.ts +1 -0
  91. package/src/Api/Implementation/DataChangeHistoryApiImpl.js +5 -0
  92. package/src/Api/Implementation/DataSetApiImpl.d.ts +6 -0
  93. package/src/Api/Implementation/DataSetApiImpl.js +17 -8
  94. package/src/Api/Implementation/EntitlementApiImpl.d.ts +11 -0
  95. package/src/Api/Implementation/EntitlementApiImpl.js +25 -0
  96. package/src/Api/Implementation/ExportApiImpl.d.ts +12 -4
  97. package/src/Api/Implementation/ExportApiImpl.js +43 -77
  98. package/src/Api/Implementation/FilterApiImpl.d.ts +11 -4
  99. package/src/Api/Implementation/FilterApiImpl.js +62 -166
  100. package/src/Api/Implementation/FlashingCellApiImpl.d.ts +9 -1
  101. package/src/Api/Implementation/FlashingCellApiImpl.js +29 -26
  102. package/src/Api/Implementation/FormatColumnApiImpl.d.ts +49 -26
  103. package/src/Api/Implementation/FormatColumnApiImpl.js +84 -259
  104. package/src/Api/Implementation/FreeTextColumnApiImpl.d.ts +13 -5
  105. package/src/Api/Implementation/FreeTextColumnApiImpl.js +42 -27
  106. package/src/Api/Implementation/GridApiImpl.d.ts +17 -2
  107. package/src/Api/Implementation/GridApiImpl.js +122 -62
  108. package/src/Api/Implementation/LayoutApiImpl.d.ts +15 -7
  109. package/src/Api/Implementation/LayoutApiImpl.js +44 -112
  110. package/src/Api/Implementation/PluginsApiImpl.d.ts +3 -1
  111. package/src/Api/Implementation/PluginsApiImpl.js +6 -0
  112. package/src/Api/Implementation/PlusMinusApiImpl.d.ts +2 -1
  113. package/src/Api/Implementation/PlusMinusApiImpl.js +5 -0
  114. package/src/Api/Implementation/PredicateApiImpl.d.ts +13 -2
  115. package/src/Api/Implementation/PredicateApiImpl.js +41 -23
  116. package/src/Api/Implementation/QueryApiImpl.d.ts +7 -2
  117. package/src/Api/Implementation/QueryApiImpl.js +25 -52
  118. package/src/Api/Implementation/QueryLanguageApiImpl.d.ts +6 -3
  119. package/src/Api/Implementation/QueryLanguageApiImpl.js +14 -18
  120. package/src/Api/Implementation/QuickSearchApiImpl.d.ts +1 -0
  121. package/src/Api/Implementation/QuickSearchApiImpl.js +5 -0
  122. package/src/Api/Implementation/ScheduleApiImpl.d.ts +27 -0
  123. package/src/Api/Implementation/ScheduleApiImpl.js +86 -17
  124. package/src/Api/Implementation/ScopeApiImpl.d.ts +1 -1
  125. package/src/Api/Implementation/ScopeApiImpl.js +9 -7
  126. package/src/Api/Implementation/SettingsPanelApiImpl.d.ts +2 -0
  127. package/src/Api/Implementation/SettingsPanelApiImpl.js +9 -0
  128. package/src/Api/Implementation/ShortcutApiImpl.d.ts +8 -1
  129. package/src/Api/Implementation/ShortcutApiImpl.js +25 -4
  130. package/src/Api/Implementation/SmartEditApiImpl.d.ts +1 -0
  131. package/src/Api/Implementation/SmartEditApiImpl.js +5 -0
  132. package/src/Api/Implementation/StyledColumnApiImpl.d.ts +30 -0
  133. package/src/Api/Implementation/StyledColumnApiImpl.js +96 -0
  134. package/src/Api/Implementation/SystemStatusApiImpl.d.ts +6 -1
  135. package/src/Api/Implementation/SystemStatusApiImpl.js +20 -14
  136. package/src/Api/Implementation/TeamSharingApiImpl.d.ts +6 -5
  137. package/src/Api/Implementation/TeamSharingApiImpl.js +15 -25
  138. package/src/Api/Implementation/ThemeApiImpl.d.ts +5 -1
  139. package/src/Api/Implementation/ThemeApiImpl.js +23 -4
  140. package/src/Api/Implementation/ToolPanelApiImpl.d.ts +3 -1
  141. package/src/Api/Implementation/ToolPanelApiImpl.js +8 -0
  142. package/src/Api/Implementation/UserInterfaceApiImpl.d.ts +2 -0
  143. package/src/Api/Implementation/UserInterfaceApiImpl.js +13 -4
  144. package/src/Api/Internal/ActionInternalApi.d.ts +23 -0
  145. package/src/Api/Internal/ActionInternalApi.js +198 -0
  146. package/src/Api/{Implementation/InternalApiImpl.d.ts → Internal/AdaptableInternalApi.d.ts} +15 -57
  147. package/src/Api/Internal/AdaptableInternalApi.js +455 -0
  148. package/src/Api/Internal/AlertInternalApi.d.ts +148 -0
  149. package/src/Api/Internal/AlertInternalApi.js +484 -0
  150. package/src/Api/Internal/CalculatedColumnInternalApi.d.ts +24 -0
  151. package/src/Api/Internal/CalculatedColumnInternalApi.js +57 -0
  152. package/src/Api/Internal/ColumnInternalApi.d.ts +33 -0
  153. package/src/Api/Internal/ColumnInternalApi.js +67 -0
  154. package/src/Api/Internal/CustomSortInternalApi.d.ts +6 -0
  155. package/src/Api/Internal/CustomSortInternalApi.js +11 -0
  156. package/src/Api/Internal/DashboardInternalApi.d.ts +8 -0
  157. package/src/Api/Internal/DashboardInternalApi.js +26 -0
  158. package/src/Api/Internal/DataSetInternalApi.d.ts +9 -0
  159. package/src/Api/Internal/DataSetInternalApi.js +20 -0
  160. package/src/Api/Internal/ExportInternalApi.d.ts +11 -0
  161. package/src/Api/Internal/ExportInternalApi.js +73 -0
  162. package/src/Api/Internal/FilterInternalApi.d.ts +58 -0
  163. package/src/Api/Internal/FilterInternalApi.js +194 -0
  164. package/src/Api/Internal/FlashingCellInternalApi.d.ts +12 -0
  165. package/src/Api/Internal/FlashingCellInternalApi.js +56 -0
  166. package/src/Api/Internal/FormatColumnInternalApi.d.ts +109 -0
  167. package/src/Api/Internal/FormatColumnInternalApi.js +225 -0
  168. package/src/Api/Internal/FreeTextColumnInternalApi.d.ts +15 -0
  169. package/src/Api/Internal/FreeTextColumnInternalApi.js +44 -0
  170. package/src/Api/Internal/GridInternalApi.d.ts +82 -0
  171. package/src/Api/Internal/GridInternalApi.js +252 -0
  172. package/src/Api/Internal/LayoutInternalApi.d.ts +48 -0
  173. package/src/Api/Internal/LayoutInternalApi.js +163 -0
  174. package/src/Api/Internal/PredicateInternalApi.d.ts +37 -0
  175. package/src/Api/Internal/PredicateInternalApi.js +140 -0
  176. package/src/Api/Internal/QueryInternalApi.d.ts +17 -0
  177. package/src/Api/Internal/QueryInternalApi.js +57 -0
  178. package/src/Api/Internal/QueryLanguageInternalApi.d.ts +11 -0
  179. package/src/Api/Internal/QueryLanguageInternalApi.js +34 -0
  180. package/src/Api/Internal/StyledColumnInternalApi.d.ts +59 -0
  181. package/src/Api/Internal/StyledColumnInternalApi.js +249 -0
  182. package/src/Api/Internal/SystemStatusInternalApi.d.ts +11 -0
  183. package/src/Api/Internal/SystemStatusInternalApi.js +27 -0
  184. package/src/Api/Internal/TeamSharingInternalApi.d.ts +20 -0
  185. package/src/Api/Internal/TeamSharingInternalApi.js +66 -0
  186. package/src/Api/LayoutApi.d.ts +36 -41
  187. package/src/Api/PluginsApi.d.ts +5 -0
  188. package/src/Api/PlusMinusApi.d.ts +9 -2
  189. package/src/Api/PredicateApi.d.ts +41 -10
  190. package/src/Api/QueryApi.d.ts +23 -18
  191. package/src/Api/QueryLanguageApi.d.ts +3 -7
  192. package/src/Api/QuickSearchApi.d.ts +5 -1
  193. package/src/Api/ScheduleApi.d.ts +97 -16
  194. package/src/Api/ScopeApi.d.ts +1 -1
  195. package/src/Api/SettingsPanelApi.d.ts +12 -1
  196. package/src/Api/ShortcutApi.d.ts +28 -7
  197. package/src/Api/SmartEditApi.d.ts +8 -1
  198. package/src/Api/StyledColumnApi.d.ts +100 -0
  199. package/src/Api/StyledColumnApi.js +2 -0
  200. package/src/Api/SystemStatusApi.d.ts +12 -6
  201. package/src/Api/TeamSharingApi.d.ts +4 -17
  202. package/src/Api/ThemeApi.d.ts +25 -6
  203. package/src/Api/ToolPanelApi.d.ts +10 -1
  204. package/src/Api/UserInterfaceApi.d.ts +13 -2
  205. package/src/PredefinedConfig/AdaptableState.d.ts +2 -0
  206. package/src/PredefinedConfig/AlertState.d.ts +20 -5
  207. package/src/PredefinedConfig/ChartingState.d.ts +13 -4
  208. package/src/PredefinedConfig/Common/AdaptableColumn.d.ts +1 -1
  209. package/src/PredefinedConfig/Common/AdaptableColumn.js +4 -0
  210. package/src/PredefinedConfig/Common/AdaptableForm.d.ts +0 -5
  211. package/src/PredefinedConfig/Common/AdaptableFormat.d.ts +10 -0
  212. package/src/PredefinedConfig/Common/AdaptableIcon.d.ts +1 -1
  213. package/src/PredefinedConfig/Common/AdaptableObject.d.ts +22 -1
  214. package/src/PredefinedConfig/Common/AdaptablePredicate.d.ts +8 -2
  215. package/src/PredefinedConfig/Common/AdaptablePredicate.js +64 -45
  216. package/src/PredefinedConfig/Common/AdaptableStyle.d.ts +6 -6
  217. package/src/PredefinedConfig/Common/ColumnFilter.d.ts +2 -2
  218. package/src/PredefinedConfig/Common/FDC3Context.d.ts +3 -7
  219. package/src/PredefinedConfig/Common/Types.d.ts +7 -7
  220. package/src/PredefinedConfig/Common/Types.js +4 -0
  221. package/src/PredefinedConfig/ConditionalStyleState.d.ts +10 -19
  222. package/src/PredefinedConfig/FlashingCellState.d.ts +9 -2
  223. package/src/PredefinedConfig/FormatColumnState.d.ts +28 -92
  224. package/src/PredefinedConfig/GridState.d.ts +1 -1
  225. package/src/PredefinedConfig/LayoutState.d.ts +1 -1
  226. package/src/PredefinedConfig/PredefinedConfig.d.ts +7 -2
  227. package/src/PredefinedConfig/StyledColumnState.d.ts +139 -0
  228. package/src/PredefinedConfig/StyledColumnState.js +2 -0
  229. package/src/PredefinedConfig/SystemState.d.ts +21 -0
  230. package/src/Redux/ActionsReducers/ChartingRedux.d.ts +28 -5
  231. package/src/Redux/ActionsReducers/ChartingRedux.js +45 -5
  232. package/src/Redux/ActionsReducers/FormatColumnRedux.d.ts +14 -0
  233. package/src/Redux/ActionsReducers/FormatColumnRedux.js +43 -1
  234. package/src/Redux/ActionsReducers/FreeTextColumnRedux.d.ts +1 -1
  235. package/src/Redux/ActionsReducers/FreeTextColumnRedux.js +3 -3
  236. package/src/Redux/ActionsReducers/GridRedux.d.ts +18 -0
  237. package/src/Redux/ActionsReducers/GridRedux.js +65 -2
  238. package/src/Redux/ActionsReducers/PluginsRedux.d.ts +4 -4
  239. package/src/Redux/ActionsReducers/PluginsRedux.js +5 -5
  240. package/src/Redux/ActionsReducers/PopupRedux.js +10 -2
  241. package/src/Redux/ActionsReducers/QuickSearchRedux.d.ts +1 -1
  242. package/src/Redux/ActionsReducers/QuickSearchRedux.js +1 -1
  243. package/src/Redux/ActionsReducers/StyledColumnRedux.d.ts +49 -0
  244. package/src/Redux/ActionsReducers/StyledColumnRedux.js +92 -0
  245. package/src/Redux/ActionsReducers/SystemRedux.d.ts +20 -0
  246. package/src/Redux/ActionsReducers/SystemRedux.js +67 -5
  247. package/src/Redux/DeadRedux.d.ts +6 -0
  248. package/src/Redux/DeadRedux.js +19 -1
  249. package/src/Redux/Store/AdaptableStore.js +45 -34
  250. package/src/Strategy/AdaptableModuleBase.js +6 -6
  251. package/src/Strategy/AlertModule.d.ts +1 -6
  252. package/src/Strategy/AlertModule.js +38 -93
  253. package/src/Strategy/BulkUpdateModule.js +3 -3
  254. package/src/Strategy/CalculatedColumnModule.js +6 -6
  255. package/src/Strategy/ChartingModule.d.ts +7 -1
  256. package/src/Strategy/ChartingModule.js +97 -0
  257. package/src/Strategy/CustomSortModule.js +4 -4
  258. package/src/Strategy/DashboardModule.js +2 -2
  259. package/src/Strategy/DataChangeHistoryModule.d.ts +1 -0
  260. package/src/Strategy/DataChangeHistoryModule.js +12 -0
  261. package/src/Strategy/DataSetModule.js +1 -1
  262. package/src/Strategy/ExportModule.js +4 -4
  263. package/src/Strategy/FilterModule.js +10 -13
  264. package/src/Strategy/FlashingCellModule.d.ts +2 -0
  265. package/src/Strategy/FlashingCellModule.js +27 -7
  266. package/src/Strategy/FormatColumnModule.d.ts +4 -10
  267. package/src/Strategy/FormatColumnModule.js +70 -185
  268. package/src/Strategy/FreeTextColumnModule.js +3 -3
  269. package/src/Strategy/Interface/IModule.d.ts +12 -10
  270. package/src/Strategy/LayoutModule.d.ts +3 -0
  271. package/src/Strategy/LayoutModule.js +138 -25
  272. package/src/Strategy/PlusMinusModule.js +2 -2
  273. package/src/Strategy/QueryModule.js +3 -3
  274. package/src/Strategy/ScheduleModule.js +10 -12
  275. package/src/Strategy/ShortcutModule.js +5 -5
  276. package/src/Strategy/SmartEditModule.js +3 -3
  277. package/src/Strategy/StyledColumnModule.d.ts +24 -0
  278. package/src/Strategy/StyledColumnModule.js +179 -0
  279. package/src/Strategy/TeamSharingModule.js +3 -3
  280. package/src/Strategy/ThemeModule.js +1 -1
  281. package/src/Strategy/Utilities/Alert/getAlertBehaviourViewItems.d.ts +2 -2
  282. package/src/Strategy/Utilities/CustomSort/getCustomSortColumnViewItems.js +1 -1
  283. package/src/Strategy/Utilities/Export/getExportColumnsViewItems.d.ts +1 -1
  284. package/src/Strategy/Utilities/FormatColumn/getFormatColumnSettingsViewItems.d.ts +1 -1
  285. package/src/Strategy/Utilities/FormatColumn/getFormatColumnSettingsViewItems.js +3 -4
  286. package/src/Strategy/Utilities/FormatColumn/getFormatColumnStyleViewItems.js +1 -16
  287. package/src/Strategy/Utilities/Layout/getLayoutFilterViewItems.js +1 -1
  288. package/src/Strategy/Utilities/Layout/getLayoutSortViewItems.js +1 -1
  289. package/src/Strategy/Utilities/getRuleViewItems.d.ts +1 -1
  290. package/src/Strategy/Utilities/getRuleViewItems.js +4 -3
  291. package/src/Strategy/Utilities/getScopeViewItems.js +2 -2
  292. package/src/Strategy/Utilities/updateSingleToMultiplePredicates.d.ts +5 -0
  293. package/src/Strategy/Utilities/updateSingleToMultiplePredicates.js +12 -0
  294. package/src/Utilities/Constants/ModuleConstants.d.ts +3 -0
  295. package/src/Utilities/Constants/ModuleConstants.js +4 -1
  296. package/src/Utilities/Defaults/DefaultAdaptableOptions.js +32 -25
  297. package/src/Utilities/Defaults/DefaultSettingsPanel.js +19 -15
  298. package/src/Utilities/ExpressionFunctions/aggregatedBooleanExpressionFunctions.d.ts +3 -2
  299. package/src/Utilities/ExpressionFunctions/aggregatedBooleanExpressionFunctions.js +11 -1
  300. package/src/Utilities/ExpressionFunctions/aggregatedScalarExpressionFunctions.d.ts +1 -4
  301. package/src/Utilities/ExpressionFunctions/aggregatedScalarExpressionFunctions.js +22 -11
  302. package/src/Utilities/ExpressionFunctions/booleanExpressionFunctions.d.ts +1 -0
  303. package/src/Utilities/ExpressionFunctions/booleanExpressionFunctions.js +76 -79
  304. package/src/Utilities/ExpressionFunctions/expressionFunctionUtils.d.ts +3 -1
  305. package/src/Utilities/ExpressionFunctions/expressionFunctionUtils.js +9 -5
  306. package/src/Utilities/ExpressionFunctions/observableExpressionFunctions.d.ts +2 -4
  307. package/src/Utilities/ExpressionFunctions/observableExpressionFunctions.js +15 -4
  308. package/src/Utilities/ExpressionFunctions/scalarExpressionFunctions.d.ts +2 -1
  309. package/src/Utilities/ExpressionFunctions/scalarExpressionFunctions.js +136 -29
  310. package/src/Utilities/Extensions/ObjectExtensions.d.ts +10 -0
  311. package/src/Utilities/Extensions/ObjectExtensions.js +20 -0
  312. package/src/Utilities/Extensions/StringExtensions.d.ts +2 -0
  313. package/src/Utilities/Extensions/StringExtensions.js +21 -1
  314. package/src/Utilities/Extensions/TypeExtensions.d.ts +2 -0
  315. package/src/Utilities/Extensions/TypeExtensions.js +5 -0
  316. package/src/Utilities/Helpers/AdaptableHelper.js +6 -2
  317. package/src/Utilities/Helpers/FormatHelper.d.ts +1 -1
  318. package/src/Utilities/Helpers/FormatHelper.js +20 -11
  319. package/src/Utilities/ObjectFactory.d.ts +10 -6
  320. package/src/Utilities/ObjectFactory.js +30 -26
  321. package/src/Utilities/Services/CalculatedColumnExpressionService.js +2 -2
  322. package/src/Utilities/Services/ChartingService.d.ts +10 -0
  323. package/src/Utilities/Services/ChartingService.js +100 -0
  324. package/src/Utilities/Services/DataService.js +1 -1
  325. package/src/Utilities/Services/EntitlementService.js +4 -1
  326. package/src/Utilities/Services/Interface/IChartingService.d.ts +5 -0
  327. package/src/Utilities/Services/Interface/IChartingService.js +2 -0
  328. package/src/Utilities/Services/Interface/IEntitlementService.d.ts +2 -1
  329. package/src/Utilities/Services/Interface/IMetamodelService.d.ts +1 -0
  330. package/src/Utilities/Services/Interface/IQueryLanguageService.d.ts +14 -4
  331. package/src/Utilities/Services/Interface/IRowEditService.d.ts +0 -5
  332. package/src/Utilities/Services/{LicenseService.d.ts → LicenseService/index.d.ts} +3 -3
  333. package/src/Utilities/Services/LicenseService/index.js +1 -0
  334. package/src/Utilities/Services/LicenseService/shouldLogThankYouMessage.d.ts +1 -0
  335. package/src/Utilities/Services/LicenseService/shouldLogThankYouMessage.js +15 -0
  336. package/src/Utilities/Services/MetamodelService.js +6 -4
  337. package/src/Utilities/Services/ModuleService.js +4 -2
  338. package/src/Utilities/Services/QueryLanguageService.d.ts +3 -3
  339. package/src/Utilities/Services/QueryLanguageService.js +91 -42
  340. package/src/Utilities/Services/ReportService.js +9 -9
  341. package/src/Utilities/Services/RowEditService.d.ts +0 -19
  342. package/src/Utilities/Services/RowEditService.js +5 -162
  343. package/src/Utilities/Services/TeamSharingService.js +3 -3
  344. package/src/Utilities/Services/ValidationService.js +9 -7
  345. package/src/Utilities/license/LicenseDetails.d.ts +1 -1
  346. package/src/Utilities/license/decode.d.ts +1 -0
  347. package/src/Utilities/license/decode.js +1 -1
  348. package/src/Utilities/logDeprecation.d.ts +3 -0
  349. package/src/Utilities/logDeprecation.js +30 -0
  350. package/src/View/AdaptablePopover/index.d.ts +4 -2
  351. package/src/View/AdaptablePopover/index.js +6 -2
  352. package/src/View/AdaptableView.d.ts +3 -3
  353. package/src/View/AdaptableViewFactory.js +2 -0
  354. package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/AdaptableOptionsForm.d.ts +3 -5
  355. package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/AdaptableOptionsForm.js +103 -92
  356. package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/ColumnsList.d.ts +2 -1
  357. package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/ColumnsList.js +2 -2
  358. package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/Components/FormBox.d.ts +1 -1
  359. package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/ConfigurationWizard.js +4 -3
  360. package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/ConfigurationWizardColumnsStep.js +8 -3
  361. package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/EntitlementsForm.js +7 -34
  362. package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/FinanceForm/FinanceForm.d.ts +1 -1
  363. package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/FinanceForm/FinanceForm.js +7 -7
  364. package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/GridOptionsForm.js +2 -1
  365. package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/UIOptions/UIOptionsActionColumnsForm.js +4 -2
  366. package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/UIOptions/UiOptionsForm.js +2 -1
  367. package/src/View/AdaptableWizardView/index.d.ts +1 -1
  368. package/src/View/Alert/AlertEntityRow.js +1 -1
  369. package/src/View/Alert/AlertStatusSubPanel.js +1 -1
  370. package/src/View/Alert/Wizard/AlertBehaviourWizardSection.js +17 -16
  371. package/src/View/Alert/Wizard/AlertButtonsEditor.js +25 -2
  372. package/src/View/Alert/Wizard/AlertDisplayWizardSection.js +23 -14
  373. package/src/View/Alert/Wizard/AlertWizard.js +3 -3
  374. package/src/View/Alert/Wizard/BaseAlertRulesWizardSection.js +7 -5
  375. package/src/View/Alert/Wizard/BaseAlertScopeWizardSection.js +5 -5
  376. package/src/View/Alert/Wizard/isValidAlertRules.js +5 -4
  377. package/src/View/BulkUpdate/BulkUpdatePopup.js +1 -1
  378. package/src/View/CalculatedColumn/CalculatedColumnSummary.d.ts +1 -1
  379. package/src/View/CalculatedColumn/Wizard/CalculatedColumnExpressionWizardSection.js +3 -3
  380. package/src/View/Components/AdaptableDateInput/index.d.ts +1 -1
  381. package/src/View/Components/AdaptableObjectList/AdaptableObjectCompactList.js +4 -3
  382. package/src/View/Components/AdaptableObjectList/AdaptableObjectList.d.ts +1 -0
  383. package/src/View/Components/AdaptableObjectList/AdaptableObjectList.js +34 -12
  384. package/src/View/Components/AdaptableObjectRow/index.js +1 -6
  385. package/src/View/Components/Buttons/ButtonDelete.d.ts +1 -1
  386. package/src/View/Components/Buttons/ButtonEdit.d.ts +1 -1
  387. package/src/View/Components/Buttons/ButtonInfo.d.ts +1 -3
  388. package/src/View/Components/Buttons/ButtonInfo.js +3 -5
  389. package/src/View/Components/Charting/ChartingStatusBarPopover.d.ts +2 -0
  390. package/src/View/Components/Charting/ChartingStatusBarPopover.js +23 -0
  391. package/src/View/Components/Charting/ChartingViewPanel.d.ts +3 -0
  392. package/src/View/Components/Charting/ChartingViewPanel.js +95 -0
  393. package/src/View/Components/Charting/ChartingWizard/ChartingWizard.d.ts +6 -0
  394. package/src/View/Components/Charting/ChartingWizard/ChartingWizard.js +37 -0
  395. package/src/View/Components/Charting/ChartingWizard/PreviewChartSection.d.ts +6 -0
  396. package/src/View/Components/Charting/ChartingWizard/PreviewChartSection.js +34 -0
  397. package/src/View/Components/Charting/ChartingWizard/SettingsSection.d.ts +8 -0
  398. package/src/View/Components/Charting/ChartingWizard/SettingsSection.js +53 -0
  399. package/src/View/Components/Charting/DeleteChartButton.d.ts +7 -0
  400. package/src/View/Components/Charting/DeleteChartButton.js +12 -0
  401. package/src/View/Components/Charting/EditChartButton.d.ts +8 -0
  402. package/src/View/Components/Charting/EditChartButton.js +21 -0
  403. package/src/View/Components/Charting/ShowChartButton.d.ts +5 -0
  404. package/src/View/Components/Charting/ShowChartButton.js +38 -0
  405. package/src/View/Components/Charting/useChartState.d.ts +9 -0
  406. package/src/View/Components/Charting/useChartState.js +71 -0
  407. package/src/View/Components/EntityRulesEditor/PredicatesEditor.d.ts +16 -0
  408. package/src/View/Components/EntityRulesEditor/PredicatesEditor.js +86 -0
  409. package/src/View/Components/EntityRulesEditor/Utilities.d.ts +6 -0
  410. package/src/View/Components/EntityRulesEditor/Utilities.js +21 -0
  411. package/src/View/Components/EntityRulesEditor/index.d.ts +5 -9
  412. package/src/View/Components/EntityRulesEditor/index.js +44 -124
  413. package/src/View/Components/ExpressionWizard.js +2 -2
  414. package/src/View/Components/ExternalRenderer.js +3 -1
  415. package/src/View/Components/FilterForm/FilterForm.js +13 -18
  416. package/src/View/Components/FilterForm/ListBoxFilterForm.d.ts +2 -2
  417. package/src/View/Components/FilterForm/ListBoxFilterForm.js +2 -1
  418. package/src/View/Components/FilterForm/QuickFilterForm.js +15 -21
  419. package/src/View/Components/NewScopeComponent.js +3 -3
  420. package/src/View/Components/Panels/PanelWithButton.js +1 -5
  421. package/src/View/Components/Panels/PanelWithImage.js +1 -5
  422. package/src/View/Components/PermittedValuesSelector/PermitedValuesSelector.d.ts +1 -2
  423. package/src/View/Components/PermittedValuesSelector/PermitedValuesSelector.js +6 -7
  424. package/src/View/Components/Popups/AdaptablePopup/AdaptablePopup.js +2 -2
  425. package/src/View/Components/Popups/AdaptablePopup/AdaptablePopupBody.d.ts +1 -1
  426. package/src/View/Components/Popups/AdaptablePopup/AdaptablePopupBody.js +1 -1
  427. package/src/View/Components/Popups/AdaptablePopup/AdaptablePopupDialog.d.ts +3 -2
  428. package/src/View/Components/Popups/AdaptablePopup/AdaptablePopupDialog.js +3 -16
  429. package/src/View/Components/Popups/AdaptablePopup/AdaptablePopupModuleView.d.ts +1 -1
  430. package/src/View/Components/Popups/AdaptablePopup/AdaptablePopupModuleView.js +12 -14
  431. package/src/View/Components/Popups/AdaptablePopup/Navigation.d.ts +1 -1
  432. package/src/View/Components/Popups/AdaptablePopup/PopupPanel.d.ts +1 -1
  433. package/src/View/Components/Popups/AdaptablePopup/PopupPanel.js +1 -1
  434. package/src/View/Components/Popups/AdaptablePopup/TopBar.d.ts +1 -1
  435. package/src/View/Components/Popups/AdaptablePopupAlert.js +1 -1
  436. package/src/View/Components/Popups/AdaptablePopupConfirmation.d.ts +2 -12
  437. package/src/View/Components/Popups/AdaptablePopupConfirmation.js +46 -39
  438. package/src/View/Components/Popups/AdaptablePopupPrompt.d.ts +1 -1
  439. package/src/View/Components/Popups/AdaptablePopupTeamSharing.js +5 -5
  440. package/src/View/Components/Popups/AdaptableToaster.js +2 -0
  441. package/src/View/Components/Popups/WindowPopups/windowFactory.d.ts +1 -0
  442. package/src/View/Components/Popups/WindowPopups/windowFactory.js +4 -1
  443. package/src/View/Components/PredicateEditor/PredicateEditor.d.ts +10 -0
  444. package/src/View/Components/PredicateEditor/PredicateEditor.js +44 -0
  445. package/src/View/Components/RangesComponent.d.ts +11 -3
  446. package/src/View/Components/RangesComponent.js +121 -64
  447. package/src/View/Components/ScopeComponent.js +9 -9
  448. package/src/View/Components/Selectors/ColumnSelector.d.ts +1 -0
  449. package/src/View/Components/Selectors/ColumnSelector.js +2 -1
  450. package/src/View/Components/Selectors/ColumnValueSelector.js +3 -3
  451. package/src/View/Components/StyleComponent.d.ts +1 -0
  452. package/src/View/Components/StyleComponent.js +60 -37
  453. package/src/View/Components/ToolPanel/AdaptableToolPanel.d.ts +3 -9
  454. package/src/View/Components/ToolPanel/AdaptableToolPanel.js +26 -11
  455. package/src/View/Components/ToolPanel/CustomToolPanelContent.js +1 -1
  456. package/src/View/Components/ToolPanel/ToolPanelPopup.d.ts +1 -1
  457. package/src/View/Components/ToolPanel/ToolPanelPopup.js +0 -1
  458. package/src/View/CustomSort/CustomSortSummary.js +1 -1
  459. package/src/View/CustomSort/Wizard/CustomSortColumnWizardSection.js +2 -2
  460. package/src/View/CustomSort/Wizard/CustomSortSummaryWizard.js +1 -1
  461. package/src/View/CustomSort/Wizard/CustomSortValuesWizardSection.js +1 -1
  462. package/src/View/Dashboard/Dashboard.js +4 -3
  463. package/src/View/Dashboard/DashboardPopup.js +1 -1
  464. package/src/View/DataChangeHistory/DataChangeHistoryGrid.js +1 -1
  465. package/src/View/DataChangeHistory/DataChangeHistoryViewPanel.js +10 -1
  466. package/src/View/DataSet/DataSetSelector.js +2 -2
  467. package/src/View/DataSet/DataSetStatusPanelPopover.js +1 -1
  468. package/src/View/DataSet/DataSetViewPanel.d.ts +1 -1
  469. package/src/View/DataSet/DataSetViewPanel.js +1 -1
  470. package/src/View/Export/ExportSelector.js +2 -2
  471. package/src/View/Export/ExportViewPanel.d.ts +1 -1
  472. package/src/View/Export/ExportViewPanel.js +5 -5
  473. package/src/View/Export/ReportExportDropdown.js +2 -2
  474. package/src/View/Export/Wizard/ReportNameWizardSection.js +11 -12
  475. package/src/View/Export/Wizard/ReportRowsWizardSection.js +1 -1
  476. package/src/View/Filter/FilterSummary.d.ts +1 -1
  477. package/src/View/Filter/FilterSummary.js +1 -1
  478. package/src/View/Filter/FilterViewPanel.d.ts +1 -1
  479. package/src/View/Filter/FilterViewPanel.js +1 -1
  480. package/src/View/FlashingCell/FlashingCellStyle.js +3 -3
  481. package/src/View/FlashingCell/Wizard/FlashingCellRulesWizardSection.js +3 -3
  482. package/src/View/FlashingCell/Wizard/FlashingCellScopeWizardSection.js +2 -2
  483. package/src/View/FlashingCell/Wizard/FlashingCellSettingsWizardSection.js +6 -6
  484. package/src/View/FlashingCell/Wizard/FlashingCellWizard.js +8 -6
  485. package/src/View/FlashingCell/Wizard/isValidFlashingCellRules.js +4 -3
  486. package/src/View/FormatColumn/FormatColumnSummary.js +1 -1
  487. package/src/View/FormatColumn/MoveFormatColumn.d.ts +7 -0
  488. package/src/View/FormatColumn/MoveFormatColumn.js +27 -0
  489. package/src/View/FormatColumn/Wizard/FormatColumnFormatWizardSection.js +35 -29
  490. package/src/View/FormatColumn/Wizard/FormatColumnRuleWizardSection.d.ts +8 -0
  491. package/src/View/FormatColumn/Wizard/FormatColumnRuleWizardSection.js +28 -0
  492. package/src/View/FormatColumn/Wizard/FormatColumnScopeWizardSection.js +23 -3
  493. package/src/View/FormatColumn/Wizard/FormatColumnSettingsWizardSection.js +2 -28
  494. package/src/View/FormatColumn/Wizard/FormatColumnStyleWizardSection.d.ts +3 -3
  495. package/src/View/FormatColumn/Wizard/FormatColumnStyleWizardSection.js +7 -302
  496. package/src/View/FormatColumn/Wizard/FormatColumnWizard.js +18 -26
  497. package/src/View/FormatColumn/Wizard/constants.d.ts +1 -0
  498. package/src/View/FormatColumn/Wizard/constants.js +4 -0
  499. package/src/View/FreeTextColumn/Wizard/FreeTextColumnSettingsWizardSection.js +7 -7
  500. package/src/View/GridInfo/ColumnInfoComponent.js +27 -19
  501. package/src/View/GridInfo/GridInfoPopup.js +16 -15
  502. package/src/View/Layout/LayoutRadioSelector.js +2 -2
  503. package/src/View/Layout/LayoutStatusBarSubPanelPopover.js +1 -1
  504. package/src/View/Layout/LayoutViewPanel.d.ts +1 -1
  505. package/src/View/Layout/LayoutViewPanel.js +1 -1
  506. package/src/View/Layout/PivotDetailsPopoup.d.ts +3 -0
  507. package/src/View/Layout/PivotDetailsPopoup.js +65 -0
  508. package/src/View/Layout/SaveLayoutButton.js +1 -1
  509. package/src/View/Layout/Wizard/Components/ColumnLabels.js +1 -1
  510. package/src/View/Layout/Wizard/LayoutWizard.js +9 -4
  511. package/src/View/Layout/Wizard/sections/AggregationsSection.js +5 -5
  512. package/src/View/Layout/Wizard/sections/ColumnsSection.js +12 -11
  513. package/src/View/Layout/Wizard/sections/FilterSection.d.ts +1 -0
  514. package/src/View/Layout/Wizard/sections/FilterSection.js +52 -3
  515. package/src/View/Layout/Wizard/sections/PivotColumnsSection.js +2 -2
  516. package/src/View/Layout/Wizard/sections/RowGroupingSection.js +2 -2
  517. package/src/View/Layout/Wizard/sections/SettingsSection.d.ts +2 -2
  518. package/src/View/Layout/Wizard/sections/SettingsSection.js +2 -2
  519. package/src/View/Layout/Wizard/sections/SortSection.js +2 -5
  520. package/src/View/License/LicenseWatermark.d.ts +1 -1
  521. package/src/View/PlusMinus/Wizard/PlusMinusRuleWizardSection.js +1 -1
  522. package/src/View/PlusMinus/Wizard/PlusMinusSettingsWizardSection.d.ts +1 -1
  523. package/src/View/PlusMinus/Wizard/PlusMinusSettingsWizardSection.js +5 -5
  524. package/src/View/Query/ExpandedQueryPopup.js +1 -1
  525. package/src/View/Query/QueryViewPanel.d.ts +1 -1
  526. package/src/View/Query/Wizard/NamedQueryExpressionWizardSection.js +1 -1
  527. package/src/View/Query/Wizard/NamedQuerySettingsWizardSection.js +1 -1
  528. package/src/View/QuickSearch/QuickSearchPopup.js +2 -2
  529. package/src/View/QuickSearch/QuickSearchViewPanel.d.ts +1 -1
  530. package/src/View/Schedule/Wizard/ScheduleScheduleWizard.js +5 -5
  531. package/src/View/Schedule/Wizard/ScheduleSettingsWizard/ScheduleSettingsGlue42.js +1 -1
  532. package/src/View/Schedule/Wizard/ScheduleSettingsWizard/ScheduleSettingsIPushPull.js +5 -5
  533. package/src/View/Schedule/Wizard/ScheduleSettingsWizard/ScheduleSettingsOpenFin.js +1 -1
  534. package/src/View/Schedule/Wizard/ScheduleSettingsWizard/ScheduleSettingsReminder.js +5 -5
  535. package/src/View/Schedule/Wizard/ScheduleSettingsWizard/ScheduleSettingsReport.js +2 -2
  536. package/src/View/Schedule/Wizard/ScheduleSettingsWizard/ScheduleSettingsWizard.js +2 -2
  537. package/src/View/Shortcut/Wizard/ShortcutSettingsWizard.js +3 -3
  538. package/src/View/Shortcut/Wizard/ShortcutWizard.js +1 -1
  539. package/src/View/SmartEdit/SmartEditPopup.js +3 -3
  540. package/src/View/SmartEdit/SmartEditViewPanel.js +1 -1
  541. package/src/View/SpecialColumnSettingsWizardStep.js +10 -10
  542. package/src/View/StateManagement/StateManagementPopup.js +4 -4
  543. package/src/View/StateManagement/components/ClearButton.d.ts +1 -1
  544. package/src/View/StateManagement/components/LoadButton.d.ts +1 -1
  545. package/src/View/StatusBar/StatusBarPanel.d.ts +4 -4
  546. package/src/View/StatusBar/StatusBarPanel.js +1 -1
  547. package/src/View/StatusBar/StatusBarPopup.js +1 -1
  548. package/src/View/StyledColumn/Wizard/StyledColumnSparklineSettingsSection.d.ts +6 -0
  549. package/src/View/StyledColumn/Wizard/StyledColumnSparklineSettingsSection.js +285 -0
  550. package/src/View/StyledColumn/Wizard/StyledColumnWizard.d.ts +7 -0
  551. package/src/View/StyledColumn/Wizard/StyledColumnWizard.js +106 -0
  552. package/src/View/StyledColumn/Wizard/StyledColumnWizardColumnSection.d.ts +9 -0
  553. package/src/View/StyledColumn/Wizard/StyledColumnWizardColumnSection.js +75 -0
  554. package/src/View/StyledColumn/Wizard/StyledColumnWizardSettingsSection.d.ts +8 -0
  555. package/src/View/StyledColumn/Wizard/StyledColumnWizardSettingsSection.js +38 -0
  556. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/PercentBarColumnComparisonPreview.d.ts +5 -0
  557. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/PercentBarColumnComparisonPreview.js +26 -0
  558. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/PercentBarRangesPreview.d.ts +5 -0
  559. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/PercentBarRangesPreview.js +23 -0
  560. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/PercentBarStylePreview.d.ts +8 -0
  561. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/PercentBarStylePreview.js +25 -0
  562. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/StyledColumnWizardStyleSection.d.ts +9 -0
  563. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/StyledColumnWizardStyleSection.js +263 -0
  564. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/index.d.ts +1 -0
  565. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/index.js +4 -0
  566. package/src/View/StyledColumn/Wizard/StyledColumnWizardTypeSection.d.ts +7 -0
  567. package/src/View/StyledColumn/Wizard/StyledColumnWizardTypeSection.js +68 -0
  568. package/src/View/SystemStatus/SystemStatusEntityRow.js +4 -6
  569. package/src/View/SystemStatus/SystemStatusViewPanel.d.ts +1 -1
  570. package/src/View/TeamSharing/SharedEntityDependencies.js +1 -1
  571. package/src/View/TeamSharing/SharedEntityObjectView.js +1 -1
  572. package/src/View/TeamSharing/TeamSharingApplyButton.js +1 -1
  573. package/src/View/Theme/ThemePopup.js +1 -1
  574. package/src/View/Theme/ThemeStatusPanelPopover.js +1 -1
  575. package/src/View/Wizard/OnePageAdaptableWizard.d.ts +4 -4
  576. package/src/View/Wizard/OnePageAdaptableWizard.js +3 -4
  577. package/src/View/Wizard/OnePageWizards.d.ts +3 -3
  578. package/src/View/Wizard/OnePageWizards.js +2 -2
  579. package/src/agGrid/ActionColumnRenderer.d.ts +3 -0
  580. package/src/agGrid/ActionColumnRenderer.js +98 -64
  581. package/src/agGrid/Adaptable.d.ts +43 -14
  582. package/src/agGrid/Adaptable.js +555 -409
  583. package/src/agGrid/CheckboxRenderer.js +1 -1
  584. package/src/agGrid/FilterWrapper.js +62 -19
  585. package/src/agGrid/FloatingFilterWrapper.d.ts +2 -2
  586. package/src/agGrid/FloatingFilterWrapper.js +70 -32
  587. package/src/agGrid/PercentBarRenderer.d.ts +2 -2
  588. package/src/agGrid/PercentBarRenderer.js +16 -15
  589. package/src/agGrid/agGridHelper.d.ts +2 -2
  590. package/src/agGrid/agGridHelper.js +31 -20
  591. package/src/agGrid/agGridMenuHelper.js +3 -3
  592. package/src/agGrid/createAgStatusPanelComponent.d.ts +2 -1
  593. package/src/agGrid/createAgStatusPanelComponent.js +20 -3
  594. package/src/agGrid/editors/AdaptableDateEditor/index.d.ts +5 -1
  595. package/src/agGrid/editors/AdaptableDateEditor/index.js +87 -20
  596. package/src/agGrid/editors/AdaptableNumberEditor/InternalAdaptableNumberEditor.js +1 -1
  597. package/src/agGrid/editors/AdaptableNumberEditor/index.d.ts +3 -3
  598. package/src/agGrid/editors/AdaptableNumberEditor/index.js +81 -30
  599. package/src/agGrid/weightedAverage.js +19 -11
  600. package/src/bundle-dependencies/bundles/react-toastify/index.js +1 -1
  601. package/src/components/CheckBox/index.d.ts +1 -1
  602. package/src/components/CheckBox/index.js +7 -2
  603. package/src/components/ColorPicker/ColorPicker.d.ts +11 -0
  604. package/src/{View → components/ColorPicker}/ColorPicker.js +19 -6
  605. package/src/components/ColorPicker/index.d.ts +1 -0
  606. package/src/components/ColorPicker/index.js +4 -0
  607. package/src/components/Datepicker/index.d.ts +1 -1
  608. package/src/components/Datepicker/index.js +1 -1
  609. package/src/components/Dialog/index.d.ts +4 -2
  610. package/src/components/Dialog/index.js +2 -2
  611. package/src/components/DragAndDropContext/TabList.js +1 -1
  612. package/src/components/DragAndDropContext/UnusedPanel.js +3 -2
  613. package/src/components/DropdownButton/index.d.ts +21 -4
  614. package/src/components/DropdownButton/index.js +7 -8
  615. package/src/components/EllipsisContainer/index.js +1 -1
  616. package/src/components/ExpressionEditor/BaseEditorInput.d.ts +1 -1
  617. package/src/components/ExpressionEditor/BaseEditorInput.js +102 -36
  618. package/src/components/ExpressionEditor/EditorInput.js +1 -1
  619. package/src/components/ExpressionEditor/EditorInputWithWhereClause.js +1 -1
  620. package/src/components/ExpressionEditor/ExpressionFunctionDocumentation.js +5 -1
  621. package/src/components/ExpressionEditor/index.js +12 -58
  622. package/src/components/FormLayout/index.js +1 -1
  623. package/src/components/Input/index.d.ts +1 -1
  624. package/src/components/List/ListGroupItem/index.d.ts +4 -2
  625. package/src/components/Loader/Loader.d.ts +2 -2
  626. package/src/components/Logo/index.d.ts +1 -1
  627. package/src/components/Modal/index.d.ts +1 -1
  628. package/src/components/Modal/index.js +0 -2
  629. package/src/components/OverlayTrigger/Overlay.d.ts +1 -4
  630. package/src/components/OverlayTrigger/Overlay.js +3 -40
  631. package/src/components/OverlayTrigger/index.d.ts +4 -4
  632. package/src/components/OverlayTrigger/index.js +75 -50
  633. package/src/components/OverlayTrigger/utils.d.ts +1 -1
  634. package/src/components/OverlayTrigger/utils.js +4 -4
  635. package/src/components/PopupWithFooter.d.ts +2 -2
  636. package/src/components/ProgressIndicator/ProgressIndicator.d.ts +1 -1
  637. package/src/components/SelectList.d.ts +1 -1
  638. package/src/components/SimpleButton/index.d.ts +4 -7
  639. package/src/components/SimpleButton/index.js +5 -4
  640. package/src/components/SizedContainer/index.d.ts +1 -1
  641. package/src/components/StylePreview.d.ts +1 -1
  642. package/src/components/StylePreview.js +2 -1
  643. package/src/components/Tag/Tag.d.ts +1 -1
  644. package/src/components/Textarea/index.d.ts +6 -4
  645. package/src/components/ToggleButton/index.d.ts +1 -1
  646. package/src/components/Tooltip/index.d.ts +1 -3
  647. package/src/components/Tooltip/index.js +2 -2
  648. package/src/components/WindowModal/WindowModal.d.ts +1 -1
  649. package/src/components/icons/{conditional-style.d.ts → brush.d.ts} +0 -0
  650. package/src/components/icons/brush.js +7 -0
  651. package/src/components/icons/index.d.ts +3 -2
  652. package/src/components/icons/index.js +4 -2
  653. package/src/components/icons/layout.d.ts +2 -1
  654. package/src/components/icons/open-in-new.d.ts +3 -0
  655. package/src/components/icons/{conditional-style.js → open-in-new.js} +1 -1
  656. package/src/components/utils/useContainerScrollObserver/index.d.ts +1 -1
  657. package/src/env.js +1 -3
  658. package/src/metamodel/adaptable.metamodel.d.ts +561 -160
  659. package/src/metamodel/adaptable.metamodel.js +1 -1
  660. package/src/parser/src/parser.js +644 -382
  661. package/src/parser/src/types.d.ts +15 -3
  662. package/src/renderReactRoot.d.ts +5 -0
  663. package/src/renderReactRoot.js +56 -0
  664. package/src/types.d.ts +25 -17
  665. package/themes/dark.css +8 -4
  666. package/themes/dark.css.map +1 -0
  667. package/themes/light.css +4 -1
  668. package/themes/light.css.map +1 -0
  669. package/version.d.ts +1 -1
  670. package/version.js +1 -1
  671. package/src/AdaptableComponents.d.ts +0 -1
  672. package/src/AdaptableComponents.js +0 -5
  673. package/src/Api/ConditionalStyleApi.d.ts +0 -108
  674. package/src/Api/Implementation/ConditionalStyleApiImpl.d.ts +0 -29
  675. package/src/Api/Implementation/ConditionalStyleApiImpl.js +0 -98
  676. package/src/Api/Implementation/InternalApiImpl.js +0 -654
  677. package/src/Api/InternalApi.d.ts +0 -147
  678. package/src/Redux/ActionsReducers/ConditionalStyleRedux.d.ts +0 -49
  679. package/src/Redux/ActionsReducers/ConditionalStyleRedux.js +0 -95
  680. package/src/Strategy/ConditionalStyleModule.d.ts +0 -29
  681. package/src/Strategy/ConditionalStyleModule.js +0 -225
  682. package/src/Strategy/Interface/IConditionalStyleModule.d.ts +0 -6
  683. package/src/Strategy/Utilities/getStyleViewItems.d.ts +0 -2
  684. package/src/Strategy/Utilities/getStyleViewItems.js +0 -16
  685. package/src/Utilities/Helpers/CalendarHelper.d.ts +0 -25
  686. package/src/Utilities/Helpers/CalendarHelper.js +0 -342
  687. package/src/Utilities/Services/LicenseService.js +0 -1
  688. package/src/View/ColorPicker.d.ts +0 -14
  689. package/src/View/ConditionalStyle/ConditionalStyleSummary.d.ts +0 -25
  690. package/src/View/ConditionalStyle/ConditionalStyleSummary.js +0 -108
  691. package/src/View/ConditionalStyle/Wizard/ConditionalStyleRuleWizardSection.d.ts +0 -9
  692. package/src/View/ConditionalStyle/Wizard/ConditionalStyleRuleWizardSection.js +0 -42
  693. package/src/View/ConditionalStyle/Wizard/ConditionalStyleScopeWizardSection.d.ts +0 -8
  694. package/src/View/ConditionalStyle/Wizard/ConditionalStyleScopeWizardSection.js +0 -43
  695. package/src/View/ConditionalStyle/Wizard/ConditionalStyleSettingsWizardSettings.d.ts +0 -8
  696. package/src/View/ConditionalStyle/Wizard/ConditionalStyleSettingsWizardSettings.js +0 -29
  697. package/src/View/ConditionalStyle/Wizard/ConditionalStyleStyleWizardSection.d.ts +0 -8
  698. package/src/View/ConditionalStyle/Wizard/ConditionalStyleStyleWizardSection.js +0 -23
  699. package/src/View/ConditionalStyle/Wizard/ConditionalStyleWizard.d.ts +0 -6
  700. package/src/View/ConditionalStyle/Wizard/ConditionalStyleWizard.js +0 -114
  701. package/src/View/ConditionalStyle/Wizard/DEFAULT_PREDICATE_ID_FOR_CONDITIONAL_STYLE.d.ts +0 -1
  702. package/src/View/ConditionalStyle/Wizard/DEFAULT_PREDICATE_ID_FOR_CONDITIONAL_STYLE.js +0 -4
  703. package/src/components/OverlayTrigger/getOverlayStyle.d.ts +0 -13
  704. package/src/components/OverlayTrigger/getOverlayStyle.js +0 -56
@@ -3,12 +3,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.AdaptableNoCodeWizard = exports.Adaptable = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const core_1 = require("@ag-grid-community/core");
6
+ const merge_1 = tslib_1.__importDefault(require("lodash/merge"));
6
7
  const debounce_1 = tslib_1.__importDefault(require("lodash/debounce"));
7
8
  const isEqual_1 = tslib_1.__importDefault(require("lodash/isEqual"));
8
9
  const throttle_1 = tslib_1.__importDefault(require("lodash/throttle"));
9
10
  const uniqBy_1 = tslib_1.__importDefault(require("lodash/uniqBy"));
10
11
  const React = tslib_1.__importStar(require("react"));
11
- const ReactDOM = tslib_1.__importStar(require("react-dom"));
12
12
  const clamp_1 = tslib_1.__importDefault(require("lodash/clamp"));
13
13
  const AdaptableApiImpl_1 = require("../Api/Implementation/AdaptableApiImpl");
14
14
  const Enums_1 = require("../PredefinedConfig/Common/Enums");
@@ -24,7 +24,6 @@ const ArrayExtensions_1 = require("../Utilities/Extensions/ArrayExtensions");
24
24
  const StringExtensions_1 = require("../Utilities/Extensions/StringExtensions");
25
25
  const getScrollbarSize_1 = tslib_1.__importDefault(require("../Utilities/getScrollbarSize"));
26
26
  const AdaptableHelper_1 = tslib_1.__importDefault(require("../Utilities/Helpers/AdaptableHelper"));
27
- const FormatHelper_1 = tslib_1.__importDefault(require("../Utilities/Helpers/FormatHelper"));
28
27
  const Helper_1 = require("../Utilities/Helpers/Helper");
29
28
  const LoggingHelper_1 = require("../Utilities/Helpers/LoggingHelper");
30
29
  const ObjectFactory_1 = require("../Utilities/ObjectFactory");
@@ -64,6 +63,8 @@ const AdaptableStatusBar_1 = require("../View/StatusBar/AdaptableStatusBar");
64
63
  const RowEditService_1 = require("../Utilities/Services/RowEditService");
65
64
  const weightedAverage_1 = require("./weightedAverage");
66
65
  const AggregationColumns_1 = require("../PredefinedConfig/Common/AggregationColumns");
66
+ const renderReactRoot_1 = require("../renderReactRoot");
67
+ const ChartingService_1 = require("../Utilities/Services/ChartingService");
67
68
  const tinycolor = require('tinycolor2');
68
69
  const GROUP_PATH_SEPARATOR = '/';
69
70
  // IMPORTANT - we need colId to be set in order for safeSetColDefs to work correctly
@@ -86,6 +87,14 @@ const assignColId = (colDef) => {
86
87
  const RowNodeProto = core_1.RowNode.prototype;
87
88
  const RowNode_dispatchLocalEvent = RowNodeProto.dispatchLocalEvent;
88
89
  const GridApi_setColumnDefs = core_1.GridApi.prototype.setColumnDefs;
90
+ ['addCssClass', 'removeCssClass', 'containsCssClass', 'addOrRemoveCssClass'].forEach((methodName) => {
91
+ // @ts-ignore
92
+ const CssClassManager_originalMethod = core_1.CssClassManager.prototype[methodName];
93
+ // @ts-ignore
94
+ core_1.CssClassManager.prototype[methodName] = function () {
95
+ return this.getGui() ? CssClassManager_originalMethod.apply(this, arguments) : undefined;
96
+ };
97
+ });
89
98
  /**
90
99
  * AgGrid does not expose Events.EVENT_ROW_DATA_CHANGED
91
100
  * so we have to override `dispatchLocalEvent`
@@ -140,8 +149,10 @@ const forEachColumn = (cols, fn, parentColGroup) => {
140
149
  const adaptableInstances = {};
141
150
  class Adaptable {
142
151
  constructor() {
152
+ this.variant = 'vanilla';
143
153
  this.colDefPropertyCache = new Map();
144
154
  this.gridOptionsPropertyCache = new Map();
155
+ this.columnMinMaxValuesCache = {};
145
156
  this.isCheckedColumnDataType = false;
146
157
  // only for our private / internal events used within Adaptable
147
158
  // public events are emitted through the EventApi
@@ -169,6 +180,8 @@ class Adaptable {
169
180
  };
170
181
  this._adaptableReady = false;
171
182
  this.isDestroyed = false;
183
+ this.supressReact18RenderWarning = false;
184
+ this.renderReactRoot = (node, container) => (0, renderReactRoot_1.renderReactRoot)(node, container, this.supressReact18RenderWarning);
172
185
  this.isPluginLoaded = (pluginId) => {
173
186
  const plugins = this.adaptableOptions.plugins || [];
174
187
  for (let i = 0, len = plugins.length; i < len; i++) {
@@ -274,7 +287,9 @@ class Adaptable {
274
287
  else {
275
288
  core_1.ModuleRegistry.registerModules(runtimeConfig.agGridModules);
276
289
  }
277
- return Adaptable.initInternal(adaptableOptions);
290
+ return Adaptable.initInternal(adaptableOptions, {
291
+ supressReact18RenderWarning: true,
292
+ });
278
293
  }
279
294
  /**
280
295
  * Lazy static constructor for Adaptable
@@ -336,7 +351,28 @@ class Adaptable {
336
351
  // the 'old' constructor which takes an Adaptable adaptable object
337
352
  // this is still used internally but should not be used externally as a preference
338
353
  async init(adaptableOptions, runtimeConfig, _staticInit) {
339
- var _a, _b, _c, _d, _e, _f;
354
+ var _a, _b, _c, _d, _e, _f, _g;
355
+ if (runtimeConfig) {
356
+ this.supressReact18RenderWarning = !!runtimeConfig.supressReact18RenderWarning;
357
+ if (runtimeConfig.renderReactRoot) {
358
+ this.renderReactRoot = (el, container) => {
359
+ const unmount = runtimeConfig.renderReactRoot(el, container);
360
+ return () => {
361
+ // we used to capture here because of FloatingFilters/Filters - see FloatingFilterWrapper and FilterWrapper
362
+ // as we didn't have a native React implementation for our React wrapper
363
+ // but we might need to do this again in the future for some other components that are not native React
364
+ // captureReactWarnings();
365
+ if (typeof unmount === 'function') {
366
+ unmount();
367
+ }
368
+ // releaseReactWarnings();
369
+ };
370
+ };
371
+ }
372
+ if (runtimeConfig.variant) {
373
+ this.variant = runtimeConfig.variant;
374
+ }
375
+ }
340
376
  if (!_staticInit) {
341
377
  (0, LoggingHelper_1.ConsoleLogWarning)(`
342
378
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
@@ -389,6 +425,7 @@ class Adaptable {
389
425
  this.initStore();
390
426
  // create the services
391
427
  this.LicenseService = this.initLicenseService();
428
+ this.ChartingService = new ChartingService_1.ChartingService(this.api);
392
429
  this.ValidationService = new ValidationService_1.ValidationService(this.api);
393
430
  this.ReportService = new ReportService_1.ReportService(this.api);
394
431
  this.ModuleService = new ModuleService_1.ModuleService(this.api);
@@ -397,6 +434,7 @@ class Adaptable {
397
434
  this.QueryLanguageService = new QueryLanguageService_1.QueryLanguageService(this.api);
398
435
  this.AlertService = new AlertService_1.AlertService(this.api);
399
436
  this.TeamSharingService = new TeamSharingService_1.TeamSharingService(this.api);
437
+ // @ts-ignore
400
438
  this.RowEditService = new RowEditService_1.RowEditService(this.api);
401
439
  this.MetamodelService = new MetamodelService_1.MetamodelService(() => this.api.internalApi.getAdaptableOptions());
402
440
  this.forPlugins((plugin) => plugin.afterInitServices(this));
@@ -417,12 +455,15 @@ class Adaptable {
417
455
  abColDefDate: (_d = this.gridOptions.columnTypes.abColDefDate) !== null && _d !== void 0 ? _d : {},
418
456
  abColDefObject: (_e = this.gridOptions.columnTypes.abColDefObject) !== null && _e !== void 0 ? _e : {},
419
457
  abColDefCustom: (_f = this.gridOptions.columnTypes.abColDefCustom) !== null && _f !== void 0 ? _f : {},
458
+ abColDefNumberArray: (_g = this.gridOptions.columnTypes.abColDefNumberArray) !== null && _g !== void 0 ? _g : {},
420
459
  });
421
460
  if (this.gridOptions.columnTypes.abColDefNumber.cellEditor === undefined) {
422
- this.gridOptions.columnTypes.abColDefNumber.cellEditor = AdaptableNumberEditor_1.AdaptableNumberEditor;
461
+ this.gridOptions.columnTypes.abColDefNumber.cellEditor =
462
+ this.variant === 'react' ? AdaptableNumberEditor_1.ReactAdaptableNumberEditor : AdaptableNumberEditor_1.AdaptableNumberEditor;
423
463
  }
424
464
  if (this.gridOptions.columnTypes.abColDefDate.cellEditor === undefined) {
425
- this.gridOptions.columnTypes.abColDefDate.cellEditor = AdaptableDateEditor_1.AdaptableDateEditor;
465
+ this.gridOptions.columnTypes.abColDefDate.cellEditor =
466
+ this.variant === 'react' ? AdaptableDateEditor_1.ReactAdaptableDateEditor : AdaptableDateEditor_1.AdaptableDateEditor;
426
467
  }
427
468
  // validate the provided AdaptableOptions
428
469
  this.MetamodelService.validateAdaptableOptionsValues();
@@ -456,26 +497,20 @@ class Adaptable {
456
497
  AdaptableHelper_1.default.checkValidPrimaryKey(this);
457
498
  }, (e) => {
458
499
  (0, LoggingHelper_1.ConsoleLogError)('Failed to Init Modules : ', e);
459
- // for now we initiliaze the grid even if initialising Modules has failed (perhaps revisit this?)
500
+ // for now we initialize the grid even if initialising Modules has failed (perhaps revisit this?)
460
501
  this.initInternalGridLogic();
461
502
  this.api.internalApi.hideLoadingScreen(); // doesnt really help but at least clears the screen
462
503
  }).then(async () => {
463
504
  this.api.internalApi.hideLoadingScreen();
464
505
  this.isInitialised = true;
465
506
  this._adaptableReady = true;
466
- // setTimeout(() => {
467
- // this.api.eventApi.emit('AdaptableReady', {
468
- // adaptableApi: this.api,
469
- // gridOptions: this.adaptableOptions.gridOptions,
470
- // });
471
- // }, 0);
472
507
  });
473
508
  if (this.abContainerElement == null) {
474
509
  this.abContainerElement = this.getAdaptableContainerElement();
475
510
  }
476
511
  if (this.abContainerElement != null) {
477
512
  this.abContainerElement.innerHTML = '';
478
- ReactDOM.render((0, AdaptableView_1.AdaptableApp)({ Adaptable: this }), this.abContainerElement);
513
+ this.unmountReactRoot = this.renderReactRoot((0, AdaptableView_1.AdaptableApp)({ Adaptable: this }), this.abContainerElement);
479
514
  }
480
515
  // create debounce methods that take a time based on user settings
481
516
  this.throttleFilterOnEditDataChange = (0, throttle_1.default)(
@@ -866,7 +901,7 @@ class Adaptable {
866
901
  allColumns.push(this.createAdaptableColumn(agGridColumn, colsToGroups));
867
902
  }
868
903
  });
869
- this.api.internalApi.setColumns(allColumns);
904
+ this.api.gridApi.internalApi.setColumns(allColumns);
870
905
  }
871
906
  createAdaptableColumn(agGridColumn, colsToGroups) {
872
907
  const abColumn = this.agGridHelper.createAdaptableColumnFromAgGridColumn(agGridColumn, colsToGroups);
@@ -888,72 +923,108 @@ class Adaptable {
888
923
  this.gridOptions.api.setColumnDefs(colDefs);
889
924
  this.updateColumnsIntoStore(); // todo remove this from here!!!
890
925
  }
891
- getFormatColumnCellStyle(abColumn, formatColumn, params) {
892
- if (!formatColumn.IncludeGroupedRows && this.isGroupRowNode(params.node)) {
926
+ getStyledColumnStyle(styledColumn, abColumn, params) {
927
+ let style = {};
928
+ const gradientStyle = styledColumn === null || styledColumn === void 0 ? void 0 : styledColumn.GradientStyle;
929
+ if (params.value === undefined) {
893
930
  return;
894
931
  }
895
- if (formatColumn === null || formatColumn === void 0 ? void 0 : formatColumn.IsSuspended) {
896
- return;
932
+ let colValue = params.value;
933
+ if (this.api.gridApi.isGroupRowNode(params.node)) {
934
+ if (styledColumn.IncludeGroupedRows) {
935
+ const minColumnValue = this.api.styledColumnApi.internalApi.getMinValueForNumericColumn(abColumn);
936
+ const maxColumnValue = this.api.styledColumnApi.internalApi.getMaxValueForNumericColumn(abColumn);
937
+ /**
938
+ * Color should always be in bounds, it should not overflow.
939
+ * If the value is out of range, it shoul set the maximum/minimum color.
940
+ */
941
+ colValue = (0, clamp_1.default)(params.value, minColumnValue, maxColumnValue);
942
+ }
943
+ else {
944
+ return style;
945
+ }
897
946
  }
898
- let style = {};
899
- // percent bar && do we show text
900
- const columnStyle = formatColumn.ColumnStyle;
901
- if (columnStyle) {
902
- const gradientStyle = columnStyle === null || columnStyle === void 0 ? void 0 : columnStyle.GradientStyle;
903
- if (gradientStyle) {
904
- const min = this.api.formatColumnApi.getNumericStyleMinValue(columnStyle, abColumn, params.node, params.value);
905
- const max = this.api.formatColumnApi.getNumericStyleMaxValue(columnStyle, abColumn, params.node, params.value);
906
- const clampedValue = (0, clamp_1.default)(params.value, min, max);
907
- let cellBackColor;
908
- let reverseGradient = false;
909
- if (gradientStyle.ColumnComparison) {
910
- cellBackColor = gradientStyle.ColumnComparison.Color;
911
- }
912
- else {
913
- const matchingRange = gradientStyle.CellRanges.find((r) => (r.Min == 'Col-Min' || r.Min <= clampedValue) &&
914
- (r.Max == 'Col-Max' || r.Max >= clampedValue));
915
- if (matchingRange) {
916
- cellBackColor = matchingRange.Color;
917
- reverseGradient = matchingRange.ReverseGradient;
918
- }
919
- }
920
- const increase = Math.abs(max - min);
921
- const percentage = ((params.value - min) / increase) * 100;
922
- let alpha = Number((percentage / 100).toPrecision(2));
923
- if (reverseGradient) {
924
- alpha = 1 - alpha;
947
+ if (gradientStyle) {
948
+ const min = this.api.styledColumnApi.internalApi.getNumericStyleMinValue(styledColumn, abColumn, params.node, colValue);
949
+ const max = this.api.styledColumnApi.internalApi.getNumericStyleMaxValue(styledColumn, abColumn, params.node, colValue);
950
+ let cellBackColor;
951
+ let reverseGradient = false;
952
+ if (gradientStyle.ColumnComparison) {
953
+ cellBackColor = gradientStyle.ColumnComparison.Color;
954
+ }
955
+ else {
956
+ const matchingRange = this.api.styledColumnApi.internalApi.findRangeForColumn(gradientStyle.CellRanges, abColumn, gradientStyle.RangeValueType, colValue);
957
+ if (matchingRange) {
958
+ cellBackColor = matchingRange.Color;
959
+ reverseGradient = matchingRange.ReverseGradient;
925
960
  }
926
- const preparedColor = (0, StyleHelper_1.getVariableColor)(cellBackColor);
927
- style.backgroundColor = tinycolor(preparedColor).setAlpha(alpha).toRgbString();
928
961
  }
929
- if (columnStyle.PercentBarStyle && columnStyle.PercentBarStyle.CellText) {
930
- style.paddingTop = 0;
931
- style.paddingBottom = 0;
962
+ const increase = Math.abs(max - min);
963
+ const percentage = ((colValue - min) / increase) * 100;
964
+ let alpha = Number((percentage / 100).toPrecision(2));
965
+ if (reverseGradient) {
966
+ alpha = 1 - alpha;
967
+ }
968
+ const preparedColor = (0, StyleHelper_1.getVariableColor)(cellBackColor);
969
+ // if no range match, do not apply color (black in this case)
970
+ if (cellBackColor) {
971
+ style.backgroundColor = tinycolor(preparedColor).setAlpha(alpha).toRgbString();
932
972
  }
933
973
  }
934
- else if (formatColumn.Style) {
935
- style = this.convertAdaptableStyleToCSS(formatColumn.Style);
974
+ if (styledColumn.PercentBarStyle && styledColumn.PercentBarStyle.CellText) {
975
+ style.paddingTop = 0;
976
+ style.paddingBottom = 0;
936
977
  }
937
- if (formatColumn.CellAlignment) {
938
- switch (formatColumn.CellAlignment) {
939
- case 'Left':
940
- style.textAlign = 'left';
941
- break;
942
- case 'Right':
943
- style.textAlign = 'right';
944
- break;
945
- case 'Center':
946
- style.textAlign = 'center';
947
- break;
978
+ return style;
979
+ }
980
+ getFormatColumnAdaptableStyle(formatColumns) {
981
+ // first has more precedence, then they need to be applied in reverse order
982
+ return formatColumns.reduceRight((style, formatColumn) => {
983
+ const formatColumnStyle = formatColumn.Style
984
+ ? this.convertAdaptableStyleToCSS(formatColumn.Style)
985
+ : {};
986
+ if (formatColumn.CellAlignment) {
987
+ switch (formatColumn.CellAlignment) {
988
+ case 'Left':
989
+ style.textAlign = 'left';
990
+ break;
991
+ case 'Right':
992
+ style.textAlign = 'right';
993
+ break;
994
+ case 'Center':
995
+ style.textAlign = 'center';
996
+ break;
997
+ }
948
998
  }
999
+ return Object.assign(Object.assign({}, style), formatColumnStyle);
1000
+ }, {});
1001
+ }
1002
+ getFormatColumnCellStyle(abColumn, activeFormatColumnsWithStyle, params) {
1003
+ if (!activeFormatColumnsWithStyle.length) {
1004
+ return {};
949
1005
  }
950
- return style;
1006
+ const relevantFormatColumnsWithStyle = activeFormatColumnsWithStyle.filter((formatColumn) => {
1007
+ return this.api.formatColumnApi.internalApi.isFormatColumnRelevantForColumn(formatColumn, abColumn, params);
1008
+ });
1009
+ return this.getFormatColumnAdaptableStyle(relevantFormatColumnsWithStyle);
1010
+ }
1011
+ getFormatColumnCellClass(formatColumns, abColumn, params) {
1012
+ const classNames = formatColumns
1013
+ .map((formatColumn) => {
1014
+ var _a, _b;
1015
+ if (((_a = formatColumn.Style) === null || _a === void 0 ? void 0 : _a.ClassName) &&
1016
+ this.api.formatColumnApi.internalApi.isFormatColumnRelevantForColumn(formatColumn, abColumn, params)) {
1017
+ return (_b = formatColumn.Style) === null || _b === void 0 ? void 0 : _b.ClassName;
1018
+ }
1019
+ })
1020
+ .filter((x) => !!x);
1021
+ return classNames;
951
1022
  }
952
1023
  getActiveAlertWithHighlightCell(col, params) {
953
- return this.api.internalApi.getAdaptableAlertWithHighlightCell(col.columnId, params.node);
1024
+ return this.api.alertApi.internalApi.getAdaptableAlertWithHighlightCell(col.columnId, params.node);
954
1025
  }
955
1026
  getActiveAlertWithHighlightRow(params) {
956
- return this.api.internalApi.getAdaptableAlertWithHighlightRow(params.node);
1027
+ return this.api.alertApi.internalApi.getAdaptableAlertWithHighlightRow(params.node);
957
1028
  }
958
1029
  getAlertCellStyle(col, params) {
959
1030
  const alert = this.getActiveAlertWithHighlightCell(col, params);
@@ -1001,7 +1072,7 @@ class Adaptable {
1001
1072
  const primaryKey = params.node.aggData
1002
1073
  ? params.node.id
1003
1074
  : this.getPrimaryKeyValueFromRowNode(params.node);
1004
- const flashingCell = this.api.internalApi.getAdaptableFlashingCellFor(primaryKey, col.columnId);
1075
+ const flashingCell = this.api.flashingCellApi.internalApi.getAdaptableFlashingCellFor(primaryKey, col.columnId);
1005
1076
  if (!flashingCell) {
1006
1077
  return {};
1007
1078
  }
@@ -1016,7 +1087,7 @@ class Adaptable {
1016
1087
  const primaryKey = params.node.aggData
1017
1088
  ? params.node.id
1018
1089
  : this.getPrimaryKeyValueFromRowNode(params.node);
1019
- const flashingCell = this.api.internalApi.getAdaptableFlashingCellFor(primaryKey, col.columnId);
1090
+ const flashingCell = this.api.flashingCellApi.internalApi.getAdaptableFlashingCellFor(primaryKey, col.columnId);
1020
1091
  if (!flashingCell) {
1021
1092
  return;
1022
1093
  }
@@ -1078,7 +1149,7 @@ class Adaptable {
1078
1149
  }
1079
1150
  const gridCell = this.getGridCellFromRowNode(params.node, abColumn.columnId);
1080
1151
  if (gridCell) {
1081
- if (this.api.gridApi.areCellsEditable([gridCell])) {
1152
+ if (this.api.gridApi.isCellEditable(gridCell)) {
1082
1153
  return this.convertAdaptableStyleToCSS(editableCellStyle);
1083
1154
  }
1084
1155
  }
@@ -1091,45 +1162,18 @@ class Adaptable {
1091
1162
  }
1092
1163
  const gridCell = this.getGridCellFromRowNode(params.node, abColumn.columnId);
1093
1164
  if (gridCell) {
1094
- if (!this.api.gridApi.areCellsEditable([gridCell])) {
1165
+ if (!this.api.gridApi.isCellEditable(gridCell)) {
1095
1166
  return this.convertAdaptableStyleToCSS(editableCellStyle);
1096
1167
  }
1097
1168
  }
1098
1169
  return undefined;
1099
1170
  }
1100
- getConditionalStyleCellStyle(conditionalStyles = [], abColumn, params) {
1101
- const module = this.ModuleService.getModuleById(ModuleConstants.ConditionalStyleModuleId);
1102
- const result = conditionalStyles.reduce((result, conditionalStyle) => {
1103
- if (module.isConditionalStyleActiveForColumn(conditionalStyle, abColumn, params)) {
1104
- return Object.assign(Object.assign({}, result), conditionalStyle.Style);
1105
- }
1106
- else {
1107
- return result;
1108
- }
1109
- }, {});
1110
- return this.convertAdaptableStyleToCSS(result);
1111
- }
1112
- getConditionalStyleCellClass(conditionalStyles = [], abColumn, params) {
1113
- const module = this.ModuleService.getModuleById(ModuleConstants.ConditionalStyleModuleId);
1114
- let classNames = conditionalStyles
1115
- .map((conditionalStyle) => {
1116
- var _a, _b;
1117
- if (((_a = conditionalStyle.Style) === null || _a === void 0 ? void 0 : _a.ClassName) &&
1118
- module.isConditionalStyleActiveForColumn(conditionalStyle, abColumn, params)) {
1119
- return (_b = conditionalStyle.Style) === null || _b === void 0 ? void 0 : _b.ClassName;
1120
- }
1121
- })
1122
- .filter((x) => !!x);
1123
- return classNames;
1124
- }
1125
1171
  getEditableCellClass(abColumn, params) {
1126
1172
  const editableCellStyle = this.api.userInterfaceApi.getEditableCellStyle();
1127
1173
  if (!(editableCellStyle === null || editableCellStyle === void 0 ? void 0 : editableCellStyle.ClassName)) {
1128
1174
  return null;
1129
1175
  }
1130
- const isCellEditable = this.api.gridApi.areCellsEditable([
1131
- this.getGridCellFromRowNode(params.node, abColumn.columnId),
1132
- ]);
1176
+ const isCellEditable = this.api.gridApi.isCellEditable(this.getGridCellFromRowNode(params.node, abColumn.columnId));
1133
1177
  return isCellEditable ? editableCellStyle.ClassName : null;
1134
1178
  }
1135
1179
  getReadonlyCellClass(abColumn, params) {
@@ -1137,9 +1181,7 @@ class Adaptable {
1137
1181
  if (!(readonlyCellStyle === null || readonlyCellStyle === void 0 ? void 0 : readonlyCellStyle.ClassName)) {
1138
1182
  return null;
1139
1183
  }
1140
- const isCellReadonly = !this.api.gridApi.areCellsEditable([
1141
- this.getGridCellFromRowNode(params.node, abColumn.columnId),
1142
- ]);
1184
+ const isCellReadonly = !this.api.gridApi.isCellEditable(this.getGridCellFromRowNode(params.node, abColumn.columnId));
1143
1185
  return isCellReadonly ? readonlyCellStyle.ClassName : null;
1144
1186
  }
1145
1187
  isQuickSearchActive(abColumn, params) {
@@ -1233,7 +1275,7 @@ class Adaptable {
1233
1275
  this.api.layoutApi.createOrUpdateLayout(layout);
1234
1276
  }
1235
1277
  else {
1236
- this.api.internalApi.updateCurrentDraftLayout(layout);
1278
+ this.api.layoutApi.internalApi.updateCurrentDraftLayout(layout);
1237
1279
  }
1238
1280
  }
1239
1281
  setLayout(layout) {
@@ -1262,12 +1304,6 @@ class Adaptable {
1262
1304
  let sortIndex = 0;
1263
1305
  const sortModelMap = ((_a = layout.ColumnSorts) !== null && _a !== void 0 ? _a : []).reduce((acc, customSort) => {
1264
1306
  const colId = customSort.ColumnId;
1265
- if (!layoutColumnsMap[colId]) {
1266
- // pivot layouts may have no pivot columns, only aggregation columns
1267
- if (layout.AggregationColumns[colId] == undefined) {
1268
- return acc;
1269
- }
1270
- }
1271
1307
  acc[colId] = {
1272
1308
  colId,
1273
1309
  sort: customSort.SortOrder === 'Asc' ? 'asc' : 'desc',
@@ -1288,8 +1324,8 @@ class Adaptable {
1288
1324
  [];
1289
1325
  let isChanged = false;
1290
1326
  const colsToAutoSize = {};
1291
- let newColState = this.getSortedColumnStateForVisibleColumns(columnsToShow, columnsState);
1292
- newColState = newColState
1327
+ let newColumnsState = this.getSortedColumnStateForVisibleColumns(columnsToShow, columnsState);
1328
+ newColumnsState = newColumnsState
1293
1329
  .map((colState) => {
1294
1330
  var _a, _b, _c, _d, _e;
1295
1331
  const { colId } = colState;
@@ -1301,7 +1337,8 @@ class Adaptable {
1301
1337
  if (layout.ColumnWidthMap && layout.ColumnWidthMap[colId] != null) {
1302
1338
  newColState.width = layout.ColumnWidthMap[colId];
1303
1339
  }
1304
- else {
1340
+ else if (!hide) {
1341
+ // autosize only the columns which are part of the selected layout
1305
1342
  colsToAutoSize[colId] = true;
1306
1343
  }
1307
1344
  newColState.rowGroupIndex =
@@ -1365,7 +1402,7 @@ class Adaptable {
1365
1402
  // order changed
1366
1403
  const toString = (c) => `${c.colId}-${c.rowGroupIndex}-${c.pivotIndex}-${c.aggFunc}-${c.pinned}-${c.width}-${c.hide}`;
1367
1404
  const oldColStateString = columnsState.map(toString).join(',');
1368
- const newColStateString = newColState.map(toString).join(',');
1405
+ const newColStateString = newColumnsState.map(toString).join(',');
1369
1406
  isChanged = newColStateString != oldColStateString;
1370
1407
  }
1371
1408
  const pivoted = !!layout.EnablePivot;
@@ -1396,7 +1433,7 @@ class Adaptable {
1396
1433
  this.gridOptions.columnApi.getColumns().forEach((col) => {
1397
1434
  const colDef = col.getColDef();
1398
1435
  const colId = col.getColId();
1399
- const abColumn = this.api.columnApi.getColumnFromId(colId);
1436
+ const abColumn = this.api.columnApi.getColumnWithColumnId(colId);
1400
1437
  const colSetupInfo = {
1401
1438
  col,
1402
1439
  colDef,
@@ -1418,7 +1455,7 @@ class Adaptable {
1418
1455
  this.gridOptions.columnApi.setPivotMode(pivoted);
1419
1456
  }
1420
1457
  this.gridOptions.columnApi.applyColumnState({
1421
- state: newColState,
1458
+ state: newColumnsState,
1422
1459
  applyOrder: true,
1423
1460
  });
1424
1461
  this.api.gridApi.setColumnSorts(layout.ColumnSorts);
@@ -1431,14 +1468,7 @@ class Adaptable {
1431
1468
  GridApi_setColumnDefs.call(this.gridOptions.api, this.gridOptions.api.getColumnDefs());
1432
1469
  // these updates need to be at the end, the methods are based on the grid state/col defs
1433
1470
  // the layout needs to be applied for them to work
1434
- if (this.api.layoutApi.areExpandedRowGroupsSavedInLayouts() &&
1435
- ArrayExtensions_1.ArrayExtensions.IsNotNullOrEmpty(layout.ExpandedRowGroupValues)) {
1436
- this.expandRowGroupsForValues(layout.ExpandedRowGroupValues);
1437
- }
1438
- if (this.adaptableOptions.layoutOptions.displayRowGroups === 'expanded') {
1439
- this.expandAllRowGroups();
1440
- }
1441
- // this.updateColumnsIntoStore();// no longer needed
1471
+ this.updateRowGroupsExpandedState(layout);
1442
1472
  }
1443
1473
  const colsToAutoSizeArray = Object.keys(colsToAutoSize);
1444
1474
  if (pivoted && ((_d = (_c = this.adaptableOptions) === null || _c === void 0 ? void 0 : _c.layoutOptions) === null || _d === void 0 ? void 0 : _d.autoSizeColumnsInPivotLayout)) {
@@ -1456,9 +1486,8 @@ class Adaptable {
1456
1486
  (_a = this.gridOptions.columnApi) === null || _a === void 0 ? void 0 : _a.autoSizeAllColumns();
1457
1487
  }, 200);
1458
1488
  }, 100);
1459
- return;
1460
1489
  }
1461
- if (((_f = (_e = this.adaptableOptions) === null || _e === void 0 ? void 0 : _e.layoutOptions) === null || _f === void 0 ? void 0 : _f.autoSizeColumnsInLayout) &&
1490
+ else if (((_f = (_e = this.adaptableOptions) === null || _e === void 0 ? void 0 : _e.layoutOptions) === null || _f === void 0 ? void 0 : _f.autoSizeColumnsInLayout) &&
1462
1491
  colsToAutoSizeArray.length) {
1463
1492
  (_g = this.gridOptions.columnApi) === null || _g === void 0 ? void 0 : _g.autoSizeColumns(colsToAutoSizeArray);
1464
1493
  }
@@ -1468,13 +1497,26 @@ class Adaptable {
1468
1497
  }
1469
1498
  });
1470
1499
  }
1500
+ updateRowGroupsExpandedState(layout) {
1501
+ if (!layout) {
1502
+ layout = this.api.layoutApi.getCurrentLayout();
1503
+ }
1504
+ if (this.api.layoutApi.internalApi.areExpandedRowGroupsSavedInLayouts() &&
1505
+ ArrayExtensions_1.ArrayExtensions.IsNotNullOrEmpty(layout.ExpandedRowGroupValues)) {
1506
+ this.expandRowGroupsForValues(layout.ExpandedRowGroupValues);
1507
+ }
1508
+ if (this.adaptableOptions.layoutOptions.displayRowGroups === 'expanded') {
1509
+ this.expandAllRowGroups();
1510
+ }
1511
+ }
1471
1512
  /*
1472
1513
  * This is the opposite of setLayout
1473
1514
  */
1474
1515
  updateLayoutFromGrid() {
1516
+ var _a, _b;
1475
1517
  const currentLayout = this.api.layoutApi.getCurrentLayout();
1476
1518
  const layout = Object.assign({}, currentLayout);
1477
- const columnOrder = [];
1519
+ let columnOrder = [];
1478
1520
  const columnFlexes = {};
1479
1521
  const pinnedColumns = {};
1480
1522
  const columnSorts = [];
@@ -1524,6 +1566,12 @@ class Adaptable {
1524
1566
  });
1525
1567
  groupedColumns = groupedColumns.filter((x) => !!x);
1526
1568
  pivotedColumns = pivotedColumns.filter((x) => !!x);
1569
+ if ((_b = (_a = this.adaptableOptions) === null || _a === void 0 ? void 0 : _a.generalOptions) === null || _b === void 0 ? void 0 : _b.restoreUngroupedColumns) {
1570
+ columnOrder = this.restoreUnGroupColumnOrder({
1571
+ columnOrder,
1572
+ newGroupColumns: groupedColumns,
1573
+ });
1574
+ }
1527
1575
  layout.ColumnWidthMap = columnWidths;
1528
1576
  // layout.ColumnFlexMap = columnFlexes;
1529
1577
  layout.PinnedColumnsMap = pinnedColumns;
@@ -1532,11 +1580,14 @@ class Adaptable {
1532
1580
  layout.RowGroupedColumns = groupedColumns;
1533
1581
  if (Object.keys(aggregatedColumns).length) {
1534
1582
  // ag-grid aggregations are not 1-1 with adaptable column-aggregations
1535
- layout.AggregationColumns = this.handleUpdateWeightedAvgFromGrid(aggregatedColumns);
1583
+ layout.AggregationColumns = this.mapAggregationColumnsFromGrid(aggregatedColumns, currentLayout);
1584
+ }
1585
+ else {
1586
+ layout.AggregationColumns = {};
1536
1587
  }
1537
1588
  layout.EnablePivot = this.gridOptions.columnApi.isPivotMode();
1538
1589
  layout.PivotColumns = pivotColumns;
1539
- if (this.api.layoutApi.areExpandedRowGroupsSavedInLayouts()) {
1590
+ if (this.api.layoutApi.internalApi.areExpandedRowGroupsSavedInLayouts()) {
1540
1591
  layout.ExpandedRowGroupValues = this.getExpandRowGroupsKeys();
1541
1592
  }
1542
1593
  this.persistLayout(layout);
@@ -1574,7 +1625,7 @@ class Adaptable {
1574
1625
  for (const column of rangeSelection.columns) {
1575
1626
  if (column != null) {
1576
1627
  const colId = column.getColId();
1577
- const selectedColumn = this.api.columnApi.getColumnFromId(colId);
1628
+ const selectedColumn = this.api.columnApi.getColumnWithColumnId(colId);
1578
1629
  if (selectedColumn &&
1579
1630
  columns.find((c) => c.columnId == selectedColumn.columnId) == null) {
1580
1631
  columns.push(selectedColumn);
@@ -1598,7 +1649,7 @@ class Adaptable {
1598
1649
  columns: columns,
1599
1650
  gridCells: selectedCells,
1600
1651
  };
1601
- this.api.internalApi.setSelectedCells(selectedCellInfo);
1652
+ this.api.gridApi.internalApi.setSelectedCells(selectedCellInfo);
1602
1653
  this._emit('CellsSelected');
1603
1654
  this.agGridHelper.fireSelectionChangedEvent();
1604
1655
  return selectedCellInfo;
@@ -1633,7 +1684,7 @@ class Adaptable {
1633
1684
  });
1634
1685
  }
1635
1686
  const selectedRowInfo = { gridRows: selectedRows };
1636
- this.api.internalApi.setSelectedRows(selectedRowInfo);
1687
+ this.api.gridApi.internalApi.setSelectedRows(selectedRowInfo);
1637
1688
  this.agGridHelper.fireSelectionChangedEvent();
1638
1689
  return selectedRowInfo;
1639
1690
  }
@@ -1778,7 +1829,7 @@ class Adaptable {
1778
1829
  let permittedMap = new Map();
1779
1830
  // check if there are permitted column values for that column
1780
1831
  // NB. this currently contains a small bug as we dont check for visibility so if using permitted values then ALL are returned :(
1781
- const abColumn = this.api.columnApi.getColumnFromId(columnId);
1832
+ const abColumn = this.api.columnApi.getColumnWithColumnId(columnId);
1782
1833
  const permittedValuesForColumn = this.api.userInterfaceApi.getPermittedValuesForColumn(abColumn);
1783
1834
  if (ArrayExtensions_1.ArrayExtensions.IsNotNullOrEmpty(permittedValuesForColumn)) {
1784
1835
  permittedValuesForColumn.forEach((pv) => {
@@ -1832,23 +1883,6 @@ class Adaptable {
1832
1883
  return undefined;
1833
1884
  }
1834
1885
  }
1835
- isCustomRenderedColumn(column) {
1836
- if (!column || column.isGrouped) {
1837
- return false;
1838
- }
1839
- // we need to return false if the column has a cell renderer i think...
1840
- const colDef = this.gridOptions.api.getColumnDef(column.columnId);
1841
- if (colDef && colDef.cellRenderer != null) {
1842
- return true;
1843
- }
1844
- if (this.api.columnApi.isFormatNumericStyleColumn(column)) {
1845
- return true;
1846
- }
1847
- if (this.api.columnApi.isBooleanColumn(column)) {
1848
- return true;
1849
- }
1850
- return false;
1851
- }
1852
1886
  getDisplayValue(primaryKey, columnId) {
1853
1887
  let returnValue;
1854
1888
  if (this.useRowNodeLookUp) {
@@ -1873,15 +1907,15 @@ class Adaptable {
1873
1907
  if (rowNode == null) {
1874
1908
  return undefined;
1875
1909
  }
1876
- const abColumn = this.api.columnApi.getColumnFromId(columnId);
1910
+ const abColumn = this.api.columnApi.getColumnWithColumnId(columnId);
1877
1911
  const pkValue = this.getPrimaryKeyValueFromRowNode(rowNode);
1878
1912
  const rawValue = this.getRawValueFromRowNode(rowNode, columnId);
1879
1913
  const displayValue = this.getDisplayValueFromRawValue(rowNode, columnId, rawValue);
1880
- const normalisedvalue = this.getNormalisedValueFromRowValue(rawValue, abColumn);
1914
+ const normalisedValue = this.getNormalisedValueFromRawValue(rawValue, abColumn);
1881
1915
  return {
1882
1916
  rawValue: rawValue,
1883
1917
  displayValue: displayValue,
1884
- normalisedValue: normalisedvalue,
1918
+ normalisedValue: normalisedValue,
1885
1919
  column: abColumn,
1886
1920
  primaryKeyValue: pkValue,
1887
1921
  rowNode: rowNode,
@@ -1895,15 +1929,16 @@ class Adaptable {
1895
1929
  return this.getDisplayValueFromRawValue(rowNode, columnId, rawValue);
1896
1930
  }
1897
1931
  getDisplayValueFromRawValue(rowNode, columnId, rawValue) {
1898
- const abColumn = this.api.columnApi.getColumnFromId(columnId);
1899
- const isRenderedColumn = this.api.columnApi.isFormatNumericStyleColumn(abColumn);
1900
- if (isRenderedColumn) {
1901
- const colDef = this.gridOptions.api.getColumnDef(columnId);
1902
- if (typeof colDef.valueFormatter == 'function') {
1903
- return this.getFormattedValue(rowNode, rawValue, columnId, colDef, colDef.valueFormatter);
1904
- }
1905
- return this.agGridHelper.getCleanValue(rawValue);
1906
- }
1932
+ // no need for this case, it's handled below after the ActionColumn logic
1933
+ // const abColumn: AdaptableColumn = this.api.columnApi.getColumnWithColumnId(columnId);
1934
+ // const isCustomRenderedColumn = this.api.styledColumnApi.hasPercentBarStyle(columnId);
1935
+ // if (isCustomRenderedColumn) {
1936
+ // const colDef = this.gridOptions.api!.getColumnDef(columnId);
1937
+ // if (typeof colDef.valueFormatter == 'function') {
1938
+ // return this.getFormattedValue(rowNode, rawValue, columnId, colDef, colDef.valueFormatter);
1939
+ // }
1940
+ // return this.agGridHelper.getCleanValue(rawValue);
1941
+ // }
1907
1942
  const isActionColumn = this.api.columnApi.isActionColumn(columnId);
1908
1943
  if (isActionColumn) {
1909
1944
  return this.agGridHelper.getCleanValue(rawValue);
@@ -1942,7 +1977,7 @@ class Adaptable {
1942
1977
  };
1943
1978
  return formatterFn(params);
1944
1979
  }
1945
- getNormalisedValueFromRowValue(rawValue, column) {
1980
+ getNormalisedValueFromRawValue(rawValue, column) {
1946
1981
  if (!column) {
1947
1982
  return rawValue;
1948
1983
  }
@@ -2015,9 +2050,13 @@ class Adaptable {
2015
2050
  }
2016
2051
  return rowNodes;
2017
2052
  }
2018
- forAllRowNodesDo(func) {
2053
+ forAllRowNodesDo(func, config) {
2019
2054
  this.gridOptions.api.forEachNode((rowNode) => {
2020
- func(rowNode);
2055
+ const includeGroupRows = (config === null || config === void 0 ? void 0 : config.includeGroupRows) || !this.isGroupRowNode(rowNode);
2056
+ const filterFnFulfilled = !(config === null || config === void 0 ? void 0 : config.filterFn) || (config === null || config === void 0 ? void 0 : config.filterFn(rowNode));
2057
+ if (includeGroupRows && filterFnFulfilled) {
2058
+ func(rowNode);
2059
+ }
2021
2060
  });
2022
2061
  }
2023
2062
  forAllVisibleRowNodesDo(func) {
@@ -2034,13 +2073,7 @@ class Adaptable {
2034
2073
  }
2035
2074
  getAllRowNodes(config) {
2036
2075
  let rowNodes = [];
2037
- this.gridOptions.api.forEachNode((rowNode, rowIndex) => {
2038
- const includeGroupRows = (config === null || config === void 0 ? void 0 : config.includeGroupRows) || !this.isGroupRowNode(rowNode);
2039
- const filterFnFulfilled = !(config === null || config === void 0 ? void 0 : config.filterFn) || (config === null || config === void 0 ? void 0 : config.filterFn(rowNode));
2040
- if (includeGroupRows && filterFnFulfilled) {
2041
- rowNodes.push(rowNode);
2042
- }
2043
- });
2076
+ this.forAllRowNodesDo((rowNode) => rowNodes.push(rowNode), config);
2044
2077
  return rowNodes;
2045
2078
  }
2046
2079
  getRowsInViewport() {
@@ -2129,6 +2162,9 @@ class Adaptable {
2129
2162
  };
2130
2163
  api.refreshCells(refreshCellParams);
2131
2164
  }
2165
+ refreshColumns(columns, forceUpdate, suppressFlash) {
2166
+ this.refreshCells(null, columns, forceUpdate, suppressFlash);
2167
+ }
2132
2168
  jumpToRow(rowNode) {
2133
2169
  this.gridOptions.api.ensureNodeVisible(rowNode, 'middle');
2134
2170
  }
@@ -2149,7 +2185,7 @@ class Adaptable {
2149
2185
  }
2150
2186
  getColDefsForFreeTextColumns() {
2151
2187
  const defaultFreeTextColumnSettings = (0, ObjectFactory_1.CreateEmptyFreeTextColumn)().FreeTextColumnSettings;
2152
- return this.api.freeTextColumnApi.getAllFreeTextColumn().map((freeTextColumn) => {
2188
+ return this.api.freeTextColumnApi.getFreeTextColumns().map((freeTextColumn) => {
2153
2189
  var _a;
2154
2190
  const freeTextColumnSettings = Object.assign(Object.assign({}, defaultFreeTextColumnSettings), freeTextColumn.FreeTextColumnSettings);
2155
2191
  const dataTypeEditor = freeTextColumn.DataType === 'Number'
@@ -2189,7 +2225,7 @@ class Adaptable {
2189
2225
  cellRenderer: freeTextColumn.DataType && freeTextColumn.DataType == 'Boolean'
2190
2226
  ? this.agGridHelper.createCheckboxRendererComp(freeTextColumn.ColumnId, false)
2191
2227
  : undefined,
2192
- valueGetter: (params) => this.api.freeTextColumnApi.getFreeTextColumnValueFromRowNode(freeTextColumn, params.node),
2228
+ valueGetter: (params) => this.api.freeTextColumnApi.getFreeTextColumnValueForRowNode(freeTextColumn, params.node),
2193
2229
  };
2194
2230
  if (freeTextColumnSettings.HeaderToolTip) {
2195
2231
  newColDef.headerTooltip = freeTextColumnSettings.HeaderToolTip;
@@ -2215,61 +2251,68 @@ class Adaptable {
2215
2251
  }
2216
2252
  }
2217
2253
  getColDefsForRowEditColumns() {
2218
- const actionRowButtons = this.adaptableOptions.actionOptions.actionRowButtons;
2254
+ const actionRowButtons = this.api.actionApi.getActionRowButtons();
2219
2255
  if (!(actionRowButtons === null || actionRowButtons === void 0 ? void 0 : actionRowButtons.length)) {
2220
2256
  return [];
2221
2257
  }
2258
+ const defaultEditButtonConfiguration = {
2259
+ create: {
2260
+ icon: {
2261
+ name: 'add-row',
2262
+ },
2263
+ tooltip: 'Create',
2264
+ onClick: () => {
2265
+ this.api.actionApi.displayCreateActionRow();
2266
+ },
2267
+ },
2268
+ edit: {
2269
+ icon: {
2270
+ name: 'edit',
2271
+ },
2272
+ tooltip: 'Edit',
2273
+ onClick: (button, context) => {
2274
+ this.api.actionApi.displayEditActionRow(context.primaryKeyValue);
2275
+ },
2276
+ },
2277
+ clone: {
2278
+ icon: {
2279
+ name: 'clone',
2280
+ },
2281
+ tooltip: 'Clone',
2282
+ onClick: (button, context) => {
2283
+ this.api.actionApi.displayCloneActionRow(context.primaryKeyValue);
2284
+ },
2285
+ },
2286
+ delete: {
2287
+ icon: {
2288
+ name: 'delete',
2289
+ },
2290
+ tooltip: 'Delete',
2291
+ onClick: (button, context) => {
2292
+ var _a, _b;
2293
+ const eventInfo = {
2294
+ type: 'rowDeleted',
2295
+ rowNode: context.rowNode,
2296
+ adaptableApi: context.adaptableApi,
2297
+ };
2298
+ this.api.eventApi.emit('ActionRowSubmitted', eventInfo);
2299
+ (_b = (_a = this.adaptableOptions.actionOptions.actionRowButtonOptions.actionRowFormOptions).onFormSubmit) === null || _b === void 0 ? void 0 : _b.call(_a, eventInfo);
2300
+ },
2301
+ },
2302
+ };
2222
2303
  const editButtons = actionRowButtons
2223
- .map((buttonName) => {
2224
- const button = buttonName === 'create'
2225
- ? {
2226
- icon: {
2227
- name: 'add-row',
2228
- },
2229
- tooltip: 'Create',
2230
- onClick: () => {
2231
- this.api.actionApi.displayCreateActionRow();
2232
- },
2233
- }
2234
- : buttonName === 'edit'
2235
- ? {
2236
- icon: {
2237
- name: 'edit',
2238
- },
2239
- tooltip: 'Edit',
2240
- onClick: (button, context) => {
2241
- this.api.actionApi.displayEditActionRow(context.primaryKeyValue);
2242
- },
2243
- }
2244
- : buttonName === 'clone'
2245
- ? {
2246
- icon: {
2247
- name: 'clone',
2248
- },
2249
- tooltip: 'Clone',
2250
- onClick: (button, context) => {
2251
- this.api.actionApi.displayCloneActionRow(context.primaryKeyValue);
2252
- },
2253
- }
2254
- : buttonName === 'delete'
2255
- ? {
2256
- icon: {
2257
- name: 'delete',
2258
- },
2259
- tooltip: 'Delete',
2260
- onClick: (button, context) => {
2261
- var _a, _b;
2262
- const eventInfo = {
2263
- type: 'rowDeleted',
2264
- rowNode: context.rowNode,
2265
- adaptableApi: context.adaptableApi,
2266
- };
2267
- this.api.eventApi.emit('ActionRowSubmitted', eventInfo);
2268
- (_b = (_a = this.adaptableOptions.actionOptions.actionRowFormOptions).onFormSubmit) === null || _b === void 0 ? void 0 : _b.call(_a, eventInfo);
2269
- },
2270
- }
2271
- : undefined;
2272
- return button;
2304
+ .map((actionRowButtonType) => {
2305
+ var _a, _b;
2306
+ const defaultButtonConfig = defaultEditButtonConfiguration[actionRowButtonType];
2307
+ if (!defaultButtonConfig) {
2308
+ // should NOT happen unless the user sent some invalid button type in the predefined config
2309
+ return;
2310
+ }
2311
+ const customButtonConfig = (_b = (_a = this.adaptableOptions.actionOptions.actionRowButtonOptions).customConfiguration) === null || _b === void 0 ? void 0 : _b.call(_a, {
2312
+ adaptableApi: this.api,
2313
+ actionRowButtonType,
2314
+ });
2315
+ return Object.assign(Object.assign({}, defaultButtonConfig), customButtonConfig);
2273
2316
  })
2274
2317
  .filter(Boolean);
2275
2318
  if (!editButtons.length) {
@@ -2285,8 +2328,8 @@ class Adaptable {
2285
2328
  colId: GeneralConstants_1.ADAPTABLE_ROW_ACTION_BUTTONS,
2286
2329
  hide: false,
2287
2330
  editable: false,
2288
- // 17px is the icon widht + left&right padding
2289
- width: editButtons.length * (UIHelper_1.default.getSimpleButtonPaddingWidth() * 2 + 17) + 3,
2331
+ // 15px is the icon width + left&right padding + left&right border
2332
+ width: editButtons.length * (UIHelper_1.default.getSimpleButtonPaddingWidth() * 2 + 15) + 2,
2290
2333
  resizable: false,
2291
2334
  lockVisible: true,
2292
2335
  suppressColumnsToolPanel: true,
@@ -2296,10 +2339,10 @@ class Adaptable {
2296
2339
  filter: false,
2297
2340
  sortable: false,
2298
2341
  enableRowGroup: false,
2299
- pinned: this.adaptableOptions.actionOptions.actionRowButtonsPosition === 'pinnedRight'
2342
+ pinned: this.adaptableOptions.actionOptions.actionRowButtonOptions.position === 'pinnedRight'
2300
2343
  ? 'right'
2301
2344
  : 'left',
2302
- cellRenderer: ActionColumnRenderer_1.ActionColumnRenderer,
2345
+ cellRenderer: this.variant === 'react' ? ActionColumnRenderer_1.ReactActionColumnRenderer : ActionColumnRenderer_1.ActionColumnRenderer,
2303
2346
  cellRendererParams: {
2304
2347
  actionColumn: rowEditActionColumn,
2305
2348
  },
@@ -2314,7 +2357,7 @@ class Adaptable {
2314
2357
  suppressMenu: false,
2315
2358
  suppressMovable: false,
2316
2359
  };
2317
- return this.api.actionApi.getAllActionColumn().map((actionColumn) => {
2360
+ return this.api.actionApi.getActionColumns().map((actionColumn) => {
2318
2361
  const actionColumnSettings = Object.assign(Object.assign({}, defaultActionColumnSettings), actionColumn.actionColumnSettings);
2319
2362
  const newColDef = {
2320
2363
  headerName: actionColumn.friendlyName ? actionColumn.friendlyName : actionColumn.columnId,
@@ -2328,7 +2371,7 @@ class Adaptable {
2328
2371
  filter: false,
2329
2372
  sortable: false,
2330
2373
  enableRowGroup: false,
2331
- cellRenderer: ActionColumnRenderer_1.ActionColumnRenderer,
2374
+ cellRenderer: this.variant === 'react' ? ActionColumnRenderer_1.ReactActionColumnRenderer : ActionColumnRenderer_1.ActionColumnRenderer,
2332
2375
  type: [GeneralConstants_1.AB_SPECIAL_COLUMN, 'abColDefObject'],
2333
2376
  };
2334
2377
  (0, LoggingHelper_1.LogAdaptableInfo)('Setting up Action Column: ' + actionColumn.columnId);
@@ -2391,7 +2434,7 @@ class Adaptable {
2391
2434
  }
2392
2435
  getColDefsForCalculatedColumns() {
2393
2436
  const defaultCalculatedColumnSettings = (0, ObjectFactory_1.CreateEmptyCalculatedColumn)().CalculatedColumnSettings;
2394
- return this.api.calculatedColumnApi.getAllCalculatedColumn().map((calculatedColumn) => {
2437
+ return this.api.calculatedColumnApi.getCalculatedColumns().map((calculatedColumn) => {
2395
2438
  const calculatedColumnSettings = Object.assign(Object.assign({}, defaultCalculatedColumnSettings), calculatedColumn.CalculatedColumnSettings);
2396
2439
  if (!calculatedColumnSettings.DataType) {
2397
2440
  calculatedColumnSettings.DataType =
@@ -2404,7 +2447,7 @@ class Adaptable {
2404
2447
  if (ArrayExtensions_1.ArrayExtensions.IsNotNullOrEmpty(calculatedColumnSettings.ColumnTypes)) {
2405
2448
  columnTypes.push(...calculatedColumnSettings.ColumnTypes);
2406
2449
  }
2407
- const isExternalEvaluation = !this.api.internalApi.evaluateExpressionInAdaptableQL('CalculatedColumn', this.api.queryLanguageApi.getAdaptableQueryExpression(calculatedColumn.Query));
2450
+ const isExternalEvaluation = !this.api.queryLanguageApi.internalApi.evaluateExpressionInAdaptableQL('CalculatedColumn', this.api.queryLanguageApi.getAdaptableQueryExpression(calculatedColumn.Query));
2408
2451
  const newColDef = {
2409
2452
  headerName: calculatedColumn.FriendlyName
2410
2453
  ? calculatedColumn.FriendlyName
@@ -2489,7 +2532,7 @@ class Adaptable {
2489
2532
  return this.gridOptions.api.getDisplayedRowAtIndex(firstDisplayedRowIndex);
2490
2533
  }
2491
2534
  destroy(config) {
2492
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0;
2535
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1;
2493
2536
  if (this.gridOptions && this.gridOptions.api) {
2494
2537
  this.gridOptions.api.removeEventListener(core_1.Events.EVENT_FIRST_DATA_RENDERED, this.listenerFirstDataRendered);
2495
2538
  this.gridOptions.api.removeEventListener(core_1.Events.EVENT_COLUMN_PIVOT_MODE_CHANGED, this.listenerPivotModeChanged);
@@ -2563,37 +2606,37 @@ class Adaptable {
2563
2606
  return;
2564
2607
  }
2565
2608
  if (abContainerElement != null) {
2566
- ReactDOM.unmountComponentAtNode(abContainerElement);
2609
+ (_a = this.unmountReactRoot) === null || _a === void 0 ? void 0 : _a.call(this);
2567
2610
  }
2568
2611
  this.gridContainerElement = null;
2569
2612
  this.abContainerElement = null;
2570
- (_a = this.adaptableStore) === null || _a === void 0 ? void 0 : _a.destroy();
2613
+ (_b = this.adaptableStore) === null || _b === void 0 ? void 0 : _b.destroy();
2571
2614
  this.adaptableStore = null;
2572
2615
  this.gridOptions = null;
2573
2616
  this.adaptableOptions = null;
2574
- (_c = (_b = this.CalculatedColumnExpressionService) === null || _b === void 0 ? void 0 : _b.destroy) === null || _c === void 0 ? void 0 : _c.call(_b);
2617
+ (_d = (_c = this.CalculatedColumnExpressionService) === null || _c === void 0 ? void 0 : _c.destroy) === null || _d === void 0 ? void 0 : _d.call(_c);
2575
2618
  this.CalculatedColumnExpressionService = null;
2576
- (_e = (_d = this.DataService) === null || _d === void 0 ? void 0 : _d.destroy) === null || _e === void 0 ? void 0 : _e.call(_d);
2619
+ (_f = (_e = this.DataService) === null || _e === void 0 ? void 0 : _e.destroy) === null || _f === void 0 ? void 0 : _f.call(_e);
2577
2620
  this.DataService = null;
2578
- (_g = (_f = this.EntitlementService) === null || _f === void 0 ? void 0 : _f.destroy) === null || _g === void 0 ? void 0 : _g.call(_f);
2621
+ (_h = (_g = this.EntitlementService) === null || _g === void 0 ? void 0 : _g.destroy) === null || _h === void 0 ? void 0 : _h.call(_g);
2579
2622
  this.EntitlementService = null;
2580
- (_j = (_h = this.ReportService) === null || _h === void 0 ? void 0 : _h.destroy) === null || _j === void 0 ? void 0 : _j.call(_h);
2623
+ (_k = (_j = this.ReportService) === null || _j === void 0 ? void 0 : _j.destroy) === null || _k === void 0 ? void 0 : _k.call(_j);
2581
2624
  this.ReportService = null;
2582
- (_l = (_k = this.ModuleService) === null || _k === void 0 ? void 0 : _k.destroy) === null || _l === void 0 ? void 0 : _l.call(_k);
2625
+ (_m = (_l = this.ModuleService) === null || _l === void 0 ? void 0 : _l.destroy) === null || _m === void 0 ? void 0 : _m.call(_l);
2583
2626
  this.ModuleService = null;
2584
- (_o = (_m = this.ValidationService) === null || _m === void 0 ? void 0 : _m.destroy) === null || _o === void 0 ? void 0 : _o.call(_m);
2627
+ (_p = (_o = this.ValidationService) === null || _o === void 0 ? void 0 : _o.destroy) === null || _p === void 0 ? void 0 : _p.call(_o);
2585
2628
  this.ValidationService = null;
2586
- (_q = (_p = this.QueryLanguageService) === null || _p === void 0 ? void 0 : _p.destroy) === null || _q === void 0 ? void 0 : _q.call(_p);
2629
+ (_r = (_q = this.QueryLanguageService) === null || _q === void 0 ? void 0 : _q.destroy) === null || _r === void 0 ? void 0 : _r.call(_q);
2587
2630
  this.QueryLanguageService = null;
2588
- (_s = (_r = this.AlertService) === null || _r === void 0 ? void 0 : _r.destroy) === null || _s === void 0 ? void 0 : _s.call(_r);
2631
+ (_t = (_s = this.AlertService) === null || _s === void 0 ? void 0 : _s.destroy) === null || _t === void 0 ? void 0 : _t.call(_s);
2589
2632
  this.AlertService = null;
2590
- (_u = (_t = this.TeamSharingService) === null || _t === void 0 ? void 0 : _t.destroy) === null || _u === void 0 ? void 0 : _u.call(_t);
2633
+ (_v = (_u = this.TeamSharingService) === null || _u === void 0 ? void 0 : _u.destroy) === null || _v === void 0 ? void 0 : _v.call(_u);
2591
2634
  this.TeamSharingService = null;
2592
- (_w = (_v = this.RowEditService) === null || _v === void 0 ? void 0 : _v.destroy) === null || _w === void 0 ? void 0 : _w.call(_v);
2635
+ (_x = (_w = this.RowEditService) === null || _w === void 0 ? void 0 : _w.destroy) === null || _x === void 0 ? void 0 : _x.call(_w);
2593
2636
  this.RowEditService = null;
2594
- (_y = (_x = this.MetamodelService) === null || _x === void 0 ? void 0 : _x.destroy) === null || _y === void 0 ? void 0 : _y.call(_x);
2637
+ (_z = (_y = this.MetamodelService) === null || _y === void 0 ? void 0 : _y.destroy) === null || _z === void 0 ? void 0 : _z.call(_y);
2595
2638
  this.MetamodelService = null;
2596
- (_0 = (_z = this.LicenseService) === null || _z === void 0 ? void 0 : _z.destroy) === null || _0 === void 0 ? void 0 : _0.call(_z);
2639
+ (_1 = (_0 = this.LicenseService) === null || _0 === void 0 ? void 0 : _0.destroy) === null || _1 === void 0 ? void 0 : _1.call(_0);
2597
2640
  this.LicenseService = null;
2598
2641
  this.isDestroyed = true;
2599
2642
  }
@@ -2793,9 +2836,13 @@ class Adaptable {
2793
2836
  * Action: Make the column invisible
2794
2837
  */
2795
2838
  this.gridOptions.api.addEventListener(core_1.Events.EVENT_COLUMN_ROW_GROUP_CHANGED, (this.listenerColumnRowGroupChanged = (params) => {
2839
+ var _a, _b;
2796
2840
  if (this.api.internalApi.isGridInPivotMode()) {
2797
2841
  return;
2798
2842
  }
2843
+ if ((_b = (_a = this.adaptableOptions) === null || _a === void 0 ? void 0 : _a.generalOptions) === null || _b === void 0 ? void 0 : _b.restoreUngroupedColumns) {
2844
+ this.persistColumnIndexBeforeGrouping(params);
2845
+ }
2799
2846
  if (this.adaptableOptions.columnOptions.hideColumnWhenGrouped === true &&
2800
2847
  params.source !== 'api') {
2801
2848
  params.columns.forEach((col) => {
@@ -2867,6 +2914,23 @@ class Adaptable {
2867
2914
  }
2868
2915
  }
2869
2916
  }));
2917
+ const eventsThatTriggerChartingChanges = [
2918
+ core_1.Events.EVENT_CHART_CREATED,
2919
+ /** Chart Range selection has changed */
2920
+ core_1.Events.EVENT_CHART_RANGE_SELECTION_CHANGED,
2921
+ /** Chart Options have changed */
2922
+ core_1.Events.EVENT_CHART_OPTIONS_CHANGED,
2923
+ /** Chart was destroyed */
2924
+ core_1.Events.EVENT_CHART_DESTROYED,
2925
+ ];
2926
+ const chartingModule = this.ModuleService.getModuleById('Charting');
2927
+ if (chartingModule.isModuleAvailable()) {
2928
+ this.gridOptions.api.addGlobalListener((type, params) => {
2929
+ if (ArrayExtensions_1.ArrayExtensions.ContainsItem(eventsThatTriggerChartingChanges, type)) {
2930
+ this.ChartingService.onChartModelChange(this.getChartModels(), type, params);
2931
+ }
2932
+ });
2933
+ }
2870
2934
  /**
2871
2935
  * Row and Cell listeners created in 2020
2872
2936
  * These have supplanted many of the events we previously had and simplified things
@@ -2914,7 +2978,7 @@ class Adaptable {
2914
2978
  if (!this.isGroupRowNode(node)) {
2915
2979
  const currentQuery = this.api.queryApi.getCurrentQuery();
2916
2980
  if (currentQuery) {
2917
- const evaluateQueryOnClient = this.api.internalApi.evaluateExpressionInAdaptableQL('Query', currentQuery);
2981
+ const evaluateQueryOnClient = this.api.queryLanguageApi.internalApi.evaluateExpressionInAdaptableQL('Query', currentQuery);
2918
2982
  if (evaluateQueryOnClient) {
2919
2983
  const isCurrentQueryValid = this.api.queryLanguageApi.isValidBooleanExpression(currentQuery, ModuleConstants_1.QueryModuleId, `Invalid CurrentQuery '${currentQuery}'`);
2920
2984
  if (!isCurrentQueryValid ||
@@ -2926,14 +2990,14 @@ class Adaptable {
2926
2990
  }
2927
2991
  }
2928
2992
  }
2929
- const evaluateFilterOnClient = this.api.internalApi.evaluateExpressionInAdaptableQL('Filter');
2993
+ const evaluateFilterOnClient = this.api.queryLanguageApi.internalApi.evaluateExpressionInAdaptableQL('Filter');
2930
2994
  try {
2931
2995
  // we then assess filters (if running locally)
2932
2996
  if (evaluateFilterOnClient) {
2933
2997
  const columnFilters = this.api.filterApi.getActiveColumnFilters();
2934
2998
  if (columnFilters.length > 0) {
2935
2999
  for (const columnFilter of columnFilters) {
2936
- if (!this.api.filterApi.evaluateColumnFilter(columnFilter, node)) {
3000
+ if (!this.api.filterApi.internalApi.evaluateColumnFilter(columnFilter, node)) {
2937
3001
  return false;
2938
3002
  }
2939
3003
  }
@@ -3019,7 +3083,7 @@ class Adaptable {
3019
3083
  cols.forEach((col) => {
3020
3084
  const colDef = col.getColDef();
3021
3085
  const colId = col.getColId();
3022
- const abColumn = this.api.columnApi.getColumnFromId(colId);
3086
+ const abColumn = this.api.columnApi.getColumnWithColumnId(colId);
3023
3087
  const colSetupInfo = {
3024
3088
  col,
3025
3089
  colDef,
@@ -3139,16 +3203,18 @@ class Adaptable {
3139
3203
  fontSize: null,
3140
3204
  borderColor: null,
3141
3205
  };
3142
- const formatColumn = this.api.formatColumnApi.getActiveFormatColumnForColumn(abColumn);
3143
- const conditionalStyles = this.api.conditionalStyleApi.getConditionalStylesForColumn(abColumn);
3206
+ const activeFormatColumnsWithStyle = this.api.formatColumnApi.internalApi.getFormatColumnsWithStyleForColumn(abColumn);
3207
+ let styledColumn = this.api.styledColumnApi.getStyledColumnForColumnId(colId);
3208
+ if (styledColumn === null || styledColumn === void 0 ? void 0 : styledColumn.IsSuspended) {
3209
+ styledColumn = null;
3210
+ }
3144
3211
  const quickSearchStyle = this.getQuickSearchCellStyle();
3145
3212
  const hasQuickSearchStyle = quickSearchStyle != undefined;
3146
3213
  const cellStyle = (params) => {
3147
- const formatColumnCellStyle = formatColumn
3148
- ? this.getFormatColumnCellStyle(abColumn, formatColumn, params)
3149
- : undefined;
3150
3214
  const isQuickSearchActive = hasQuickSearchStyle && this.isQuickSearchActive(abColumn, params);
3151
- const result = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, defaultCellStyle), this.getReadOnlyCellStyle(abColumn, params)), this.getEditableCellStyle(abColumn, params)), (typeof userCellStyle === 'function' ? userCellStyle(params) : userCellStyle)), formatColumnCellStyle), this.getConditionalStyleCellStyle(conditionalStyles, abColumn, params)), (isQuickSearchActive ? quickSearchStyle : undefined)), this.getAlertCellStyle(abColumn, params)), this.getFlashingCellStyle(abColumn, params)), this.getCellHighlightStyle(abColumn, params));
3215
+ const result = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, defaultCellStyle), this.getReadOnlyCellStyle(abColumn, params)), this.getEditableCellStyle(abColumn, params)), (typeof userCellStyle === 'function' ? userCellStyle(params) : userCellStyle)), (!styledColumn
3216
+ ? this.getFormatColumnCellStyle(abColumn, activeFormatColumnsWithStyle, params)
3217
+ : {})), (styledColumn ? this.getStyledColumnStyle(styledColumn, abColumn, params) : {})), (isQuickSearchActive ? quickSearchStyle : {})), this.getAlertCellStyle(abColumn, params)), this.getFlashingCellStyle(abColumn, params)), this.getCellHighlightStyle(abColumn, params));
3152
3218
  return result;
3153
3219
  };
3154
3220
  return cellStyle;
@@ -3156,13 +3222,7 @@ class Adaptable {
3156
3222
  }
3157
3223
  setupColumnCellClass({ col, colId, abColumn }) {
3158
3224
  this.setColDefProperty(col, 'cellClass', (userCellClass) => {
3159
- var _a;
3160
- const formatColumn = this.api.formatColumnApi.getFormatColumnWithStyleClassNameForColumn(abColumn);
3161
- const formatColumnStyleClassName = formatColumn && !formatColumn.IsSuspended ? (_a = formatColumn.Style) === null || _a === void 0 ? void 0 : _a.ClassName : null;
3162
- const conditionalStyles = this.api.conditionalStyleApi
3163
- .getConditionalStylesForColumn(abColumn)
3164
- .filter((cs) => StringExtensions_1.StringExtensions.IsNotNullOrEmpty(cs.Style.ClassName));
3165
- const hasConditionalStylesWithClassNames = ArrayExtensions_1.ArrayExtensions.IsNotNullOrEmpty(conditionalStyles);
3225
+ const formatColumns = this.api.formatColumnApi.internalApi.getFormatColumnWithStyleClassNameForColumn(abColumn);
3166
3226
  const quickSearchStyleClassName = this.api.quickSearchApi.getQuickSearchStyle().ClassName;
3167
3227
  const hasQuickSearchStyleClassName = StringExtensions_1.StringExtensions.IsNotNullOrEmpty(quickSearchStyleClassName);
3168
3228
  const cellClass = (params) => {
@@ -3172,12 +3232,13 @@ class Adaptable {
3172
3232
  const readonlyClassName = this.getReadonlyCellClass(abColumn, params);
3173
3233
  const highlightAlertClassName = this.getAlertCellClass(abColumn, params);
3174
3234
  const flashingClassName = this.getFlashingCellClass(abColumn, params);
3235
+ const styledColumn = this.api.styledColumnApi.getStyledColumnForColumnId(colId);
3236
+ const hasStyledColumn = !!styledColumn && !styledColumn.IsSuspended;
3175
3237
  const returnValue = [
3176
3238
  this.getExcelClassNameForCell(colId, primaryKeyValue),
3177
3239
  typeof userCellClass === 'function' ? userCellClass(params) : userCellClass,
3178
- formatColumnStyleClassName,
3179
- hasConditionalStylesWithClassNames
3180
- ? this.getConditionalStyleCellClass(conditionalStyles, abColumn, params)
3240
+ !hasStyledColumn && formatColumns.length
3241
+ ? this.getFormatColumnCellClass(formatColumns, abColumn, params)
3181
3242
  : null,
3182
3243
  isQuickSearchActive ? quickSearchStyleClassName : null,
3183
3244
  editableClassName,
@@ -3185,10 +3246,12 @@ class Adaptable {
3185
3246
  highlightAlertClassName,
3186
3247
  flashingClassName,
3187
3248
  ]
3188
- // we flatten the array because some rules ('userCellClass',conditionalStyles etc) might return a string[]
3249
+ // we flatten the array because some rules ('userCellClass' etc) might return a string[]
3189
3250
  .flat()
3190
3251
  .filter((x) => !!x);
3191
- return returnValue.length ? returnValue : undefined;
3252
+ const result = returnValue.length ? returnValue : undefined;
3253
+ // console.log(result);
3254
+ return result;
3192
3255
  };
3193
3256
  return cellClass;
3194
3257
  });
@@ -3201,13 +3264,12 @@ class Adaptable {
3201
3264
  return excelClassName;
3202
3265
  }
3203
3266
  setupColumnCellEditor({ colId, col }) {
3204
- const adaptableColumn = this.api.columnApi.getColumnFromId(colId);
3267
+ const adaptableColumn = this.api.columnApi.getColumnWithColumnId(colId);
3205
3268
  const editLookUpItem = this.api.userInterfaceApi.getEditLookUpItemForColumn(adaptableColumn);
3206
3269
  const hasRichSelectCellEditor = this.isAgGridModulePresent(core_1.ModuleNames.RichSelectModule);
3207
3270
  this.setColDefProperty(col, 'cellEditor', () => {
3208
- var _a;
3209
- const formatColumn = this.api.formatColumnApi.getActiveFormatColumnForColumn(adaptableColumn);
3210
- if (formatColumn && !(formatColumn === null || formatColumn === void 0 ? void 0 : formatColumn.IsSuspended) && ((_a = formatColumn.ColumnStyle) === null || _a === void 0 ? void 0 : _a.CheckBoxStyle)) {
3271
+ const styledColumn = this.api.styledColumnApi.getActiveStyledColumnForColumn(adaptableColumn);
3272
+ if (styledColumn && !(styledColumn === null || styledColumn === void 0 ? void 0 : styledColumn.IsSuspended) && styledColumn.CheckBoxStyle) {
3211
3273
  return CheckboxRenderer_1.CheckboxEditor;
3212
3274
  }
3213
3275
  if (editLookUpItem) {
@@ -3234,43 +3296,44 @@ class Adaptable {
3234
3296
  }
3235
3297
  setupColumnCellRenderer({ col, colId, abColumn }) {
3236
3298
  this.setColDefProperty(col, 'cellRenderer', () => {
3237
- const formatColumn = this.api.formatColumnApi.getActiveFormatColumnForColumn(abColumn);
3238
- if (formatColumn && !(formatColumn === null || formatColumn === void 0 ? void 0 : formatColumn.IsSuspended) && formatColumn.ColumnStyle) {
3239
- if (formatColumn.ColumnStyle.PercentBarStyle) {
3240
- return this.agGridHelper.createPercentBarRendererComp(formatColumn, abColumn);
3299
+ const styledColumn = this.api.styledColumnApi.getStyledColumnForColumnId(abColumn.columnId);
3300
+ if (styledColumn && !styledColumn.IsSuspended) {
3301
+ if (styledColumn.PercentBarStyle) {
3302
+ return this.agGridHelper.createPercentBarRendererComp(styledColumn, abColumn);
3241
3303
  }
3242
- if (formatColumn.ColumnStyle.CheckBoxStyle) {
3304
+ if (styledColumn.CheckBoxStyle) {
3243
3305
  return this.agGridHelper.createCheckboxRendererComp(abColumn.columnId, abColumn.readOnly);
3244
3306
  }
3307
+ if (styledColumn.SparkLineStyle) {
3308
+ return 'agSparklineCellRenderer';
3309
+ }
3310
+ }
3311
+ });
3312
+ this.setColDefProperty(col, 'cellRendererParams', (userDefined) => {
3313
+ const styledColumn = this.api.styledColumnApi.getStyledColumnForColumnId(abColumn.columnId);
3314
+ if (styledColumn && !styledColumn.IsSuspended) {
3315
+ if (styledColumn.SparkLineStyle) {
3316
+ const sparklineOptions = (0, merge_1.default)({}, userDefined === null || userDefined === void 0 ? void 0 : userDefined.sparklineOptions, styledColumn.SparkLineStyle.options);
3317
+ return Object.assign(Object.assign({}, userDefined), { sparklineOptions });
3318
+ }
3245
3319
  }
3246
3320
  });
3247
3321
  }
3248
3322
  setupColumnTooltipValueGetter({ col, colId, abColumn }) {
3249
3323
  this.setColDefProperty(col, 'tooltipValueGetter', () => {
3250
- var _a;
3251
- const formatColumn = this.api.formatColumnApi.getFormatColumnForColumnId(colId);
3252
- if (formatColumn &&
3253
- !formatColumn.IsSuspended &&
3254
- formatColumn.ColumnStyle &&
3255
- formatColumn.ColumnStyle.PercentBarStyle &&
3256
- formatColumn.ColumnStyle.PercentBarStyle.ToolTipText) {
3257
- if ((_a = formatColumn === null || formatColumn === void 0 ? void 0 : formatColumn.ColumnStyle) === null || _a === void 0 ? void 0 : _a.PercentBarStyle) {
3324
+ const styledColumn = this.api.styledColumnApi.getStyledColumnForColumnId(colId);
3325
+ if (styledColumn &&
3326
+ !styledColumn.IsSuspended &&
3327
+ styledColumn.PercentBarStyle &&
3328
+ styledColumn.PercentBarStyle.ToolTipText) {
3329
+ if (styledColumn === null || styledColumn === void 0 ? void 0 : styledColumn.PercentBarStyle) {
3258
3330
  return (params) => {
3259
- const min = this.api.formatColumnApi.getNumericStyleMinValue(formatColumn === null || formatColumn === void 0 ? void 0 : formatColumn.ColumnStyle, abColumn, params.node, params.value);
3260
- const max = this.api.formatColumnApi.getNumericStyleMaxValue(formatColumn === null || formatColumn === void 0 ? void 0 : formatColumn.ColumnStyle, abColumn, params.node, params.value);
3261
- const textOptions = formatColumn.ColumnStyle.PercentBarStyle.ToolTipText;
3331
+ const min = this.api.styledColumnApi.internalApi.getNumericStyleMinValue(styledColumn, abColumn, params.node, params.value);
3332
+ const max = this.api.styledColumnApi.internalApi.getNumericStyleMaxValue(styledColumn, abColumn, params.node, params.value);
3333
+ const textOptions = styledColumn.PercentBarStyle.ToolTipText;
3262
3334
  let returnValue = '';
3263
3335
  if (textOptions.includes('CellValue')) {
3264
- if (formatColumn.DisplayFormat) {
3265
- const options = formatColumn.DisplayFormat
3266
- .Options;
3267
- returnValue = options
3268
- ? FormatHelper_1.default.NumberFormatter(params.value, options)
3269
- : params.value;
3270
- }
3271
- else {
3272
- returnValue = params.value;
3273
- }
3336
+ returnValue = params.value;
3274
3337
  }
3275
3338
  if (textOptions.includes('PercentageValue')) {
3276
3339
  const clampedValue = Helper_1.Helper.clamp(params.value, min, max);
@@ -3306,7 +3369,7 @@ class Adaptable {
3306
3369
  triggerSetupColumnKeyCreator(colId) {
3307
3370
  const col = this.gridOptions.columnApi.getColumn(colId);
3308
3371
  const colDef = col.getColDef();
3309
- const abColumn = this.api.columnApi.getColumnFromId(colId);
3372
+ const abColumn = this.api.columnApi.getColumnWithColumnId(colId);
3310
3373
  const colSetupInfo = {
3311
3374
  col,
3312
3375
  colDef,
@@ -3353,13 +3416,6 @@ class Adaptable {
3353
3416
  if (layoutCustomHeader) {
3354
3417
  resultHeaderName = layoutCustomHeader;
3355
3418
  }
3356
- // check if the deprecated formatColumn header is used
3357
- const formatColumn = this.api.formatColumnApi.getFormatColumnForColumnId(abColumn.columnId);
3358
- if (!layoutCustomHeader && (formatColumn === null || formatColumn === void 0 ? void 0 : formatColumn.HeaderName) && !formatColumn.IsSuspended) {
3359
- // fallback to the formatColumn property if no Layout custom header is provided
3360
- resultHeaderName = formatColumn.HeaderName;
3361
- (0, LoggingHelper_1.ConsoleLogWarning)(`DEPRECATED: 'FormatColumn.HeaderName' is deprecated: use 'Layout.ColumnHeadersMap' instead`);
3362
- }
3363
3419
  // required here for the initial layout rendering
3364
3420
  abColumn.friendlyName = resultHeaderName;
3365
3421
  return resultHeaderName;
@@ -3372,7 +3428,7 @@ class Adaptable {
3372
3428
  if (!colDef.filter) {
3373
3429
  return;
3374
3430
  }
3375
- if (!this.api.columnApi.usesAdaptableFilterForm(col.getColId())) {
3431
+ if (!this.api.columnApi.internalApi.usesAdaptableFilterForm(col.getColId())) {
3376
3432
  return;
3377
3433
  }
3378
3434
  this.gridOptions.api.destroyFilter(col);
@@ -3380,7 +3436,8 @@ class Adaptable {
3380
3436
  });
3381
3437
  }
3382
3438
  setupColumnFloatingFilter({ col, colDef }) {
3383
- const isFloatingFilterDisabled = !colDef.floatingFilter || !this.api.columnApi.usesAdaptableQuickFilter(col.getColId());
3439
+ const isFloatingFilterDisabled = !colDef.floatingFilter ||
3440
+ !this.api.columnApi.internalApi.usesAdaptableQuickFilter(col.getColId());
3384
3441
  this.setColDefProperty(col, 'floatingFilterComponent', () => {
3385
3442
  if (isFloatingFilterDisabled) {
3386
3443
  return;
@@ -3397,43 +3454,40 @@ class Adaptable {
3397
3454
  });
3398
3455
  }
3399
3456
  setupColumnValueFormatter({ col, abColumn }) {
3400
- this.setColDefProperty(col, 'valueFormatter', () => {
3401
- const formatColumn = this.api.formatColumnApi.getFormatColumnWithDisplayFormatForColumn(abColumn);
3402
- if (!formatColumn) {
3403
- return;
3404
- }
3405
- if (formatColumn === null || formatColumn === void 0 ? void 0 : formatColumn.IsSuspended) {
3457
+ this.setColDefProperty(col, 'valueFormatter', (params) => {
3458
+ const activeFormatColumnsWithDisplayFormat = this.api.formatColumnApi.internalApi.getFormatColumnsWithDisplayFormatForColumn(abColumn);
3459
+ if (!activeFormatColumnsWithDisplayFormat.length) {
3406
3460
  return;
3407
3461
  }
3408
- if (formatColumn.DisplayFormat) {
3409
- let valueFormatter;
3410
- const options = formatColumn.DisplayFormat.Options;
3411
- if (formatColumn.DisplayFormat.Formatter === 'NumberFormatter') {
3462
+ return (params) => {
3463
+ const { node, value } = params;
3464
+ const [mostRelevantFormatColumn] = this.api.formatColumnApi.internalApi.getFormatColumnsRelevantForColumn(activeFormatColumnsWithDisplayFormat, abColumn, { node, value });
3465
+ if (!mostRelevantFormatColumn) {
3466
+ // ALL FormatColumns are conditional and NONE of them are relevant for this row
3467
+ return value;
3468
+ }
3469
+ const options = mostRelevantFormatColumn.DisplayFormat.Options;
3470
+ if (mostRelevantFormatColumn.DisplayFormat.Formatter === 'NumberFormatter') {
3412
3471
  // change the Number format - if the scope allows it
3413
- if (this.api.scopeApi.isColumnInNumericScope(abColumn, formatColumn.Scope)) {
3414
- valueFormatter = (params) => {
3415
- return this.api.formatColumnApi.getNumberFormattedValue(params.value, params.node, abColumn, options);
3416
- };
3472
+ if (this.api.scopeApi.isColumnInNumericScope(abColumn, mostRelevantFormatColumn.Scope)) {
3473
+ return this.api.formatColumnApi.internalApi.getNumberFormattedValue(params.value, params.node, abColumn, options);
3417
3474
  }
3418
3475
  }
3419
- if (formatColumn.DisplayFormat.Formatter === 'DateFormatter') {
3476
+ if (mostRelevantFormatColumn.DisplayFormat.Formatter === 'DateFormatter') {
3420
3477
  // change the Date format - if the scope allows it
3421
- if (this.api.scopeApi.isColumnInDateScope(abColumn, formatColumn.Scope)) {
3422
- valueFormatter = (params) => {
3423
- return this.api.formatColumnApi.getDateFormattedValue(params.value, params.node, abColumn, options);
3424
- };
3478
+ if (this.api.scopeApi.isColumnInDateScope(abColumn, mostRelevantFormatColumn.Scope)) {
3479
+ return this.api.formatColumnApi.internalApi.getDateFormattedValue(params.value, params.node, abColumn, options);
3425
3480
  }
3426
3481
  }
3427
- if (formatColumn.DisplayFormat.Formatter === 'StringFormatter') {
3482
+ if (mostRelevantFormatColumn.DisplayFormat.Formatter === 'StringFormatter') {
3428
3483
  // change the String format - if the scope allows it
3429
- if (this.api.scopeApi.isColumnInStringsScope(abColumn, formatColumn.Scope)) {
3430
- valueFormatter = (params) => {
3431
- return this.api.formatColumnApi.getStringFormattedValue(params.value, params.node, abColumn, options);
3432
- };
3484
+ if (this.api.scopeApi.isColumnInStringsScope(abColumn, mostRelevantFormatColumn.Scope)) {
3485
+ return this.api.formatColumnApi.internalApi.getStringFormattedValue(params.value, params.node, abColumn, options);
3433
3486
  }
3434
3487
  }
3435
- return valueFormatter;
3436
- }
3488
+ // should NEVER arrive at this line, but just to be sure
3489
+ return value;
3490
+ };
3437
3491
  });
3438
3492
  }
3439
3493
  setupColumnEditable({ col }) {
@@ -3456,7 +3510,7 @@ class Adaptable {
3456
3510
  setupColumnValueSetter({ col, colId, abColumn }) {
3457
3511
  this.setColDefProperty(col, 'valueSetter', (userValueSetter) => {
3458
3512
  var _a;
3459
- const preventEditAlertsForColumn = this.api.alertApi
3513
+ const preventEditAlertsForColumn = this.api.alertApi.internalApi
3460
3514
  .getAlertDefinitionsWithPreventEdit()
3461
3515
  .filter((alertDefinition) => {
3462
3516
  return this.api.scopeApi.isColumnInScope(abColumn, alertDefinition.Scope);
@@ -3485,7 +3539,7 @@ class Adaptable {
3485
3539
  const cellDataChangedInfo = this.api.internalApi.buildDataChangedInfo({
3486
3540
  oldValue: params.oldValue,
3487
3541
  newValue: params.newValue,
3488
- column: this.api.columnApi.getColumnFromId(params.column.getColId()),
3542
+ column: this.api.columnApi.getColumnWithColumnId(params.column.getColId()),
3489
3543
  primaryKeyValue: this.getPrimaryKeyValueFromRowNode(params.node),
3490
3544
  rowNode: params.node,
3491
3545
  trigger: 'edit',
@@ -3525,8 +3579,8 @@ class Adaptable {
3525
3579
  });
3526
3580
  }
3527
3581
  setupColumnComparator({ col, colId, abColumn }) {
3528
- const customSort = this.api.customSortApi.getCustomSortByColumn(colId);
3529
- const columnSortComparer = this.api.internalApi.getCustomSortComparer(abColumn);
3582
+ const customSort = this.api.customSortApi.getCustomSortForColumn(colId);
3583
+ const columnSortComparer = this.api.customSortApi.internalApi.getCustomSortComparer(abColumn);
3530
3584
  const comparatorGetter = (propName) => {
3531
3585
  return () => {
3532
3586
  return this.getActiveColumnComparator(colId, customSort, columnSortComparer);
@@ -3568,14 +3622,14 @@ class Adaptable {
3568
3622
  // rowNode = this.getRowNodeForPrimaryKey(primaryKeyValue);
3569
3623
  let cellDataChangedInfos = [];
3570
3624
  Object.keys(oldData).forEach((key) => {
3571
- if (this.api.columnApi.doesColumnExist(key)) {
3625
+ if (this.api.columnApi.isColumnInGrid(key)) {
3572
3626
  const oldValue = oldData[key];
3573
3627
  const newValue = newData[key];
3574
3628
  if (oldValue != newValue) {
3575
3629
  const cellDataChangedInfo = this.api.internalApi.buildDataChangedInfo({
3576
3630
  oldValue: oldValue,
3577
3631
  newValue: newValue,
3578
- column: this.api.columnApi.getColumnFromId(key),
3632
+ column: this.api.columnApi.getColumnWithColumnId(key),
3579
3633
  primaryKeyValue: primaryKeyValue,
3580
3634
  rowNode: rowNode,
3581
3635
  trigger: 'tick',
@@ -3593,7 +3647,7 @@ class Adaptable {
3593
3647
  if (oldValue == newValue) {
3594
3648
  return;
3595
3649
  }
3596
- const abColumn = this.api.columnApi.getColumnFromId(colId);
3650
+ const abColumn = this.api.columnApi.getColumnWithColumnId(colId);
3597
3651
  if (!abColumn) {
3598
3652
  return;
3599
3653
  }
@@ -3649,12 +3703,13 @@ class Adaptable {
3649
3703
  }
3650
3704
  if (cellDataChangedInfo.trigger === 'edit' || cellDataChangedInfo.trigger === 'undo') {
3651
3705
  this.checkChangedCellCurrentlySelected(cellDataChangedInfo);
3652
- this.api.freeTextColumnApi.checkFreeTextColumnForDataChange(cellDataChangedInfo);
3706
+ this.api.freeTextColumnApi.internalApi.handleFreeTextColumnDataChange(cellDataChangedInfo);
3653
3707
  }
3654
3708
  this.DataService.CreateDataChangedEvent(cellDataChangedInfo);
3709
+ this.resetMinMaxCachedValueForColumn(cellDataChangedInfo.column);
3655
3710
  });
3656
3711
  // if node is visible then check if need to refresh other columns / whole row if the updating column is:
3657
- // 1. referenced in Conditional Styles that have Expressions (refreshing whole row if Scope is All)
3712
+ // 1. referenced in Format Column Styles that have Expressions (refreshing whole row if Scope is All)
3658
3713
  // 2. referenced in Format Column styles that use Column Comparisons (which might also be calculated columns)
3659
3714
  if (this.isVisibleNode(firstInfo.rowNode)) {
3660
3715
  let dataChangedScope = {
@@ -3666,32 +3721,34 @@ class Adaptable {
3666
3721
  this.redrawRow(firstInfo.rowNode);
3667
3722
  }
3668
3723
  else {
3669
- this.getFormatColumnComparisonChanges(dataChangedScope, cellDataChangedInfos);
3724
+ this.getStyledColumnComparisonChanges(dataChangedScope, cellDataChangedInfos);
3670
3725
  if (dataChangedScope.columnIds.size > 0) {
3671
3726
  this.refreshCells([firstInfo.rowNode], Array.from(dataChangedScope.columnIds.values()), true);
3672
3727
  }
3673
3728
  }
3674
3729
  }
3730
+ this.refreshColumnForRelativeRangeStyledColumns(cellDataChangedInfos);
3675
3731
  firstInfo.trigger == 'tick' ? this.filterOnTickingDataChange() : this.filterOnEditDataChange();
3676
3732
  }
3677
3733
  getExpressionStylesChanges(dataChangedScope, cellDataChangedInfos) {
3678
- const stylesWithExpression = this.api.conditionalStyleApi.getConditionalStylesWithExpression();
3679
- if (ArrayExtensions_1.ArrayExtensions.IsNullOrEmpty(stylesWithExpression)) {
3734
+ const formatColumnsWithExpression = [];
3735
+ formatColumnsWithExpression.push(...this.api.formatColumnApi.internalApi.getFormatColumnsWithExpression());
3736
+ if (ArrayExtensions_1.ArrayExtensions.IsNullOrEmpty(formatColumnsWithExpression)) {
3680
3737
  return;
3681
3738
  }
3682
3739
  cellDataChangedInfos.forEach((cellDataChangedInfo) => {
3683
3740
  if (!dataChangedScope.wholeRow) {
3684
- stylesWithExpression.forEach((conditionalStyle) => {
3741
+ formatColumnsWithExpression.forEach((styleModule) => {
3685
3742
  if (!dataChangedScope.wholeRow) {
3686
- const columnIds = this.api.queryLanguageApi.getColumnsFromExpression(conditionalStyle.Rule.BooleanExpression);
3743
+ const columnIds = this.api.queryLanguageApi.getColumnsFromExpression(styleModule.Rule.BooleanExpression);
3687
3744
  if (columnIds.includes(cellDataChangedInfo.column.columnId)) {
3688
- if (this.api.scopeApi.scopeIsAll(conditionalStyle.Scope)) {
3745
+ if (this.api.scopeApi.scopeIsAll(styleModule.Scope)) {
3689
3746
  dataChangedScope.wholeRow = true;
3690
3747
  return;
3691
3748
  }
3692
3749
  else {
3693
3750
  this.api.scopeApi
3694
- .getColumnsForScope(conditionalStyle.Scope)
3751
+ .getColumnsForScope(styleModule.Scope)
3695
3752
  .map((c) => c.columnId)
3696
3753
  .forEach((colId) => {
3697
3754
  dataChangedScope.columnIds.add(colId);
@@ -3703,20 +3760,15 @@ class Adaptable {
3703
3760
  }
3704
3761
  });
3705
3762
  }
3706
- getFormatColumnComparisonChanges(dataChangedScope, cellDataChangedInfos) {
3707
- this.api.formatColumnApi.getAllFormatColumn().forEach((fc) => {
3708
- let columnComparison = this.api.formatColumnApi.getColumnComparisonForFormatColumn(fc);
3763
+ getStyledColumnComparisonChanges(dataChangedScope, cellDataChangedInfos) {
3764
+ this.api.styledColumnApi.getStyledColumns().forEach((sc) => {
3765
+ let columnComparison = this.api.styledColumnApi.internalApi.getColumnComparisonForStyledColumn(sc);
3709
3766
  if (columnComparison) {
3710
- let affectedColumnIds = this.api.formatColumnApi.getColumnIdsFromColumnComparison(columnComparison);
3767
+ let affectedColumnIds = this.api.styledColumnApi.internalApi.getColumnIdsFromColumnComparison(columnComparison);
3711
3768
  if (ArrayExtensions_1.ArrayExtensions.IsNotNullOrEmpty(affectedColumnIds)) {
3712
3769
  cellDataChangedInfos.forEach((cellDataChangedInfo) => {
3713
3770
  if (affectedColumnIds.includes(cellDataChangedInfo.column.columnId)) {
3714
- this.api.scopeApi
3715
- .getColumnsForScope(fc.Scope)
3716
- .map((c) => c.columnId)
3717
- .forEach((colId) => {
3718
- dataChangedScope.columnIds.add(colId);
3719
- });
3771
+ dataChangedScope.columnIds.add(sc.ColumnId);
3720
3772
  }
3721
3773
  });
3722
3774
  }
@@ -3740,6 +3792,20 @@ class Adaptable {
3740
3792
  }
3741
3793
  }
3742
3794
  }
3795
+ refreshColumnForRelativeRangeStyledColumns(cellDataChangedInfos) {
3796
+ const columnIdMap = new Set();
3797
+ cellDataChangedInfos.forEach((cellDataChangeInfo) => {
3798
+ const styledColumn = this.api.styledColumnApi.getActiveStyledColumnForColumn(cellDataChangeInfo.column);
3799
+ if (styledColumn &&
3800
+ this.api.styledColumnApi.internalApi.hasStyledColumnRelativeCellRange(styledColumn)) {
3801
+ columnIdMap.add(styledColumn.ColumnId);
3802
+ }
3803
+ });
3804
+ const columnIdsToUpdate = [...columnIdMap];
3805
+ if (columnIdsToUpdate.length) {
3806
+ this.refreshColumns(columnIdsToUpdate, true);
3807
+ }
3808
+ }
3743
3809
  getColumnSorts() {
3744
3810
  const columnSorts = [];
3745
3811
  const columnState = this.gridOptions.columnApi.getColumnState();
@@ -3819,7 +3885,7 @@ class Adaptable {
3819
3885
  }
3820
3886
  getExpandRowGroupsKeys() {
3821
3887
  let returnValues = [];
3822
- if (this.api.layoutApi.areExpandedRowGroupsSavedInLayouts()) {
3888
+ if (this.api.layoutApi.internalApi.areExpandedRowGroupsSavedInLayouts()) {
3823
3889
  this.gridOptions.api.forEachNode((node) => {
3824
3890
  if (node.group && node.expanded) {
3825
3891
  let current = node;
@@ -3952,6 +4018,7 @@ class Adaptable {
3952
4018
  }
3953
4019
  this.gridOptions.api.setRowData(dataSource);
3954
4020
  this.updateColumnDataTypeIfRowDataIsEmpty();
4021
+ this.updateRowGroupsExpandedState();
3955
4022
  }
3956
4023
  getGridData() {
3957
4024
  var _a;
@@ -4018,12 +4085,14 @@ class Adaptable {
4018
4085
  }
4019
4086
  resolve(transaction === null || transaction === void 0 ? void 0 : transaction.add);
4020
4087
  this.updateColumnDataTypeIfRowDataIsEmpty();
4088
+ this.updateRowGroupsExpandedState();
4021
4089
  });
4022
4090
  });
4023
4091
  }
4024
4092
  else {
4025
4093
  const transaction = this.gridOptions.api.applyTransaction(newData);
4026
4094
  this.updateColumnDataTypeIfRowDataIsEmpty();
4095
+ this.updateRowGroupsExpandedState();
4027
4096
  return Promise.resolve(transaction === null || transaction === void 0 ? void 0 : transaction.add);
4028
4097
  }
4029
4098
  }
@@ -4050,7 +4119,7 @@ class Adaptable {
4050
4119
  let groupedColumns = this.gridOptions.columnApi.getRowGroupColumns();
4051
4120
  if (ArrayExtensions_1.ArrayExtensions.IsNotNullOrEmpty(groupedColumns)) {
4052
4121
  let groupedColumn = groupedColumns[0];
4053
- return this.api.columnApi.getColumnFromId(groupedColumn.getColId());
4122
+ return this.api.columnApi.getColumnWithColumnId(groupedColumn.getColId());
4054
4123
  }
4055
4124
  }
4056
4125
  checkColumnsDataTypeSet() {
@@ -4213,7 +4282,7 @@ class Adaptable {
4213
4282
  const themeName = typeof theme === 'string' ? theme : theme.Name;
4214
4283
  const themeClassNamesToRemove = [];
4215
4284
  const themesToRemove = [];
4216
- const allThemes = this.api.themeApi.getAllTheme().map((t) => {
4285
+ const allThemes = this.api.themeApi.getThemes().map((t) => {
4217
4286
  // we mutate the theme later,
4218
4287
  // and since we don't want the mutation to end up in state
4219
4288
  // we better clone it here
@@ -4261,7 +4330,7 @@ class Adaptable {
4261
4330
  }
4262
4331
  return val;
4263
4332
  });
4264
- const systemThemes = this.api.themeApi.getAllSystemTheme();
4333
+ const systemThemes = this.api.themeApi.getSystemThemes();
4265
4334
  const isSystemTheme = !!systemThemes.filter((t) => t.Name === themeName)[0];
4266
4335
  const container = this.getAgGridContainerElement();
4267
4336
  const getAgGridLightThemeName = () => this.getAgGridLightThemeName();
@@ -4315,12 +4384,10 @@ import "@adaptabletools/adaptable/themes/${themeName}.css"`);
4315
4384
  }
4316
4385
  }
4317
4386
  setupRowStyling() {
4318
- // first get the conditional style state
4319
- const conditionalStyles = this.api.conditionalStyleApi.getRowConditionalStyles();
4320
4387
  // Set any Row Styles (i.e. items without a classname)
4321
4388
  this.setGridOptionsProperty('getRowStyle', (userGetRowStyle) => {
4322
4389
  return (params) => {
4323
- const result = Object.assign(Object.assign(Object.assign(Object.assign({}, userGetRowStyle === null || userGetRowStyle === void 0 ? void 0 : userGetRowStyle(params)), this.getRowHighlightStyle(params)), this.getAlertRowStyle(params)), this.getConditionalStyleRowStyle(conditionalStyles, params));
4390
+ const result = Object.assign(Object.assign(Object.assign({}, userGetRowStyle === null || userGetRowStyle === void 0 ? void 0 : userGetRowStyle(params)), this.getRowHighlightStyle(params)), this.getAlertRowStyle(params));
4324
4391
  return result;
4325
4392
  };
4326
4393
  });
@@ -4333,7 +4400,6 @@ import "@adaptabletools/adaptable/themes/${themeName}.css"`);
4333
4400
  typeof userGetRowClass === 'function' ? userGetRowClass(params) : userGetRowClass,
4334
4401
  highlightClassName,
4335
4402
  alertHighlightClassName,
4336
- this.getConditionalStyleRowClass(conditionalStyles.filter((cs) => StringExtensions_1.StringExtensions.IsNotNullOrEmpty(cs.Style.ClassName)), params),
4337
4403
  ]
4338
4404
  // we flatten it because 'userGetRowClass' might return a string[]
4339
4405
  .flat()
@@ -4352,30 +4418,6 @@ import "@adaptabletools/adaptable/themes/${themeName}.css"`);
4352
4418
  const newValue = this.gridOptions.suppressAggFuncInHeader;
4353
4419
  return previousValue !== newValue;
4354
4420
  }
4355
- getConditionalStyleRowClass(conditionalStyles, params) {
4356
- if (ArrayExtensions_1.ArrayExtensions.IsNotNullOrEmpty(conditionalStyles)) {
4357
- const module = this.ModuleService.getModuleById(ModuleConstants.ConditionalStyleModuleId);
4358
- let classNames = conditionalStyles
4359
- .map((conditionalStyle) => {
4360
- var _a;
4361
- if (module.isConditionalStyleActiveForRow(conditionalStyle, params)) {
4362
- return (_a = conditionalStyle.Style) === null || _a === void 0 ? void 0 : _a.ClassName;
4363
- }
4364
- })
4365
- .filter((x) => !!x)
4366
- .join(' ');
4367
- return classNames;
4368
- }
4369
- }
4370
- getConditionalStyleRowStyle(conditionalStyles, params) {
4371
- if (ArrayExtensions_1.ArrayExtensions.IsNotNullOrEmpty(conditionalStyles)) {
4372
- const module = this.ModuleService.getModuleById(ModuleConstants.ConditionalStyleModuleId);
4373
- const cs = conditionalStyles.find((cs) => module.isConditionalStyleActiveForRow(cs, params));
4374
- if (cs) {
4375
- return this.convertAdaptableStyleToCSS(cs.Style);
4376
- }
4377
- }
4378
- }
4379
4421
  getGridOptionsApi() {
4380
4422
  if (!this.gridOptions.api) {
4381
4423
  (0, LoggingHelper_1.ConsoleLogError)('There is a problem with your instance of AG Grid - it has no gridApi object. Please contact Support.');
@@ -4459,6 +4501,7 @@ import "@adaptabletools/adaptable/themes/${themeName}.css"`);
4459
4501
  const cellParams = {
4460
4502
  colDef,
4461
4503
  node,
4504
+ column,
4462
4505
  data: node.data,
4463
4506
  value: this.getRawValueFromRowNode(node, column.getId()),
4464
4507
  rowIndex,
@@ -4483,7 +4526,7 @@ import "@adaptabletools/adaptable/themes/${themeName}.css"`);
4483
4526
  if (userDefinedExcelStyle) {
4484
4527
  excelStyles.push(userDefinedExcelStyle);
4485
4528
  }
4486
- // add adaptable derived styles (format column, conditional style etc.)
4529
+ // add adaptable derived styles (format column etc.)
4487
4530
  const adaptableStyle = Object.assign(Object.assign({}, rowStyle), Object.keys(cellStyle).reduce((result, key) => {
4488
4531
  if (cellStyle[key] !== null) {
4489
4532
  result[key] = cellStyle[key];
@@ -4614,17 +4657,19 @@ import "@adaptabletools/adaptable/themes/${themeName}.css"`);
4614
4657
  return this.ReportService.getCellExportValueFromRowNode(rowNode, columnId);
4615
4658
  }
4616
4659
  processRowGroupForExcelExport(rowNode) {
4617
- if (!rowNode.field || !rowNode.key) {
4660
+ var _a, _b, _c, _d, _e;
4661
+ const columnId = (_c = (_a = rowNode.field) !== null && _a !== void 0 ? _a : (_b = rowNode.rowGroupColumn) === null || _b === void 0 ? void 0 : _b.getColId()) !== null && _c !== void 0 ? _c : (_e = (_d = rowNode.rowGroupColumn) === null || _d === void 0 ? void 0 : _d.getColDef()) === null || _e === void 0 ? void 0 : _e.field;
4662
+ if (!columnId || !rowNode.key) {
4618
4663
  return;
4619
4664
  }
4620
- const columnId = rowNode.field;
4621
4665
  let rawValue = rowNode.key;
4622
- if (this.api.columnApi.getColumnDataTypeFromColumnId(columnId) === 'Date' &&
4666
+ if (this.api.columnApi.getColumnDataTypeForColumnId(columnId) === 'Date' &&
4623
4667
  typeof rawValue === 'string') {
4624
4668
  // AG-Grid converts the value to string, we have to reconvert it back
4625
- const numericRawValue = parseInt(rawValue);
4626
- if (!isNaN(numericRawValue)) {
4627
- rawValue = numericRawValue;
4669
+ const dateRawValue = (0, DateHelper_1.parseDateValue)(rawValue);
4670
+ if (dateRawValue != undefined) {
4671
+ // @ts-ignore
4672
+ rawValue = dateRawValue;
4628
4673
  }
4629
4674
  }
4630
4675
  return this.ReportService.getCellExportValueFromRawValue(rowNode, rawValue, columnId);
@@ -4654,12 +4699,27 @@ import "@adaptabletools/adaptable/themes/${themeName}.css"`);
4654
4699
  publishedAt: publishTimestamp_1.default,
4655
4700
  });
4656
4701
  }
4657
- showCharts(charts) {
4702
+ showCharts(chartsDefinitions, chartContainer) {
4703
+ return chartsDefinitions.map((chartDefinition) => this.showChart(chartDefinition, chartContainer));
4704
+ }
4705
+ showChart(chartDefinition, container) {
4658
4706
  if (!this.gridOptions.api) {
4659
- (0, LoggingHelper_1.ConsoleLogError)('Adaptable must be instantiated before calling showCharts');
4660
- return [];
4707
+ (0, LoggingHelper_1.ConsoleLogError)('Adaptable must be instantiated before calling showChart');
4708
+ return null;
4661
4709
  }
4662
- return charts.map((chart) => this.gridOptions.api.restoreChart(chart));
4710
+ /**
4711
+ * Ag-grid always creates new charts behind the sences.
4712
+ * So we need to update the model inside adaptable state.
4713
+ * This is important to be done as soon as possible so it is not considered new.
4714
+ */
4715
+ const chartRef = this.gridOptions.api.restoreChart(chartDefinition.Model, container);
4716
+ const chartModel = this.getChartModels().find((chartModel) => chartModel.chartId === chartRef.chartId);
4717
+ // Update the definition in state so it is not considered new
4718
+ this.api.chartingApi.editChartDefinition(Object.assign(Object.assign({}, chartDefinition), { Model: chartModel }));
4719
+ return chartRef;
4720
+ }
4721
+ getChartRef(chartId) {
4722
+ return this.gridOptions.api.getChartRef(chartId);
4663
4723
  }
4664
4724
  getChartModels() {
4665
4725
  if (!this.gridOptions.api) {
@@ -4668,6 +4728,9 @@ import "@adaptabletools/adaptable/themes/${themeName}.css"`);
4668
4728
  }
4669
4729
  return this.gridOptions.api.getChartModels();
4670
4730
  }
4731
+ getRowModel() {
4732
+ return this.gridOptions.rowModelType;
4733
+ }
4671
4734
  getActiveAdaptableAggFuncForCol(columnId) {
4672
4735
  if (!columnId) {
4673
4736
  return null;
@@ -4702,8 +4765,7 @@ import "@adaptabletools/adaptable/themes/${themeName}.css"`);
4702
4765
  /**
4703
4766
  * When reading the state from the grid, we have to make sure 'avg' is not overriden with the 'avg' string.
4704
4767
  */
4705
- handleUpdateWeightedAvgFromGrid(aggFuncFromGrid) {
4706
- const currentLayout = this.api.layoutApi.getCurrentLayout();
4768
+ mapAggregationColumnsFromGrid(aggFuncFromGrid, currentLayout) {
4707
4769
  return Object.entries(aggFuncFromGrid).reduce((acc, [colId, agg]) => {
4708
4770
  const adaptableAggFunc = this.getActiveAdaptableAggFuncForCol(colId);
4709
4771
  if ((adaptableAggFunc === null || adaptableAggFunc === void 0 ? void 0 : adaptableAggFunc.type) === 'weightedAverage' && agg === AggregationColumns_1.WEIGHTED_AVERAGE_AGG_FN_NAME) {
@@ -4716,6 +4778,90 @@ import "@adaptabletools/adaptable/themes/${themeName}.css"`);
4716
4778
  return acc;
4717
4779
  }, {});
4718
4780
  }
4781
+ resetMinMaxCachedValueForColumn(column) {
4782
+ if (!column) {
4783
+ this.columnMinMaxValuesCache[column.columnId] = {};
4784
+ }
4785
+ if (this.columnMinMaxValuesCache[column.columnId]) {
4786
+ this.columnMinMaxValuesCache[column.columnId] = undefined;
4787
+ }
4788
+ }
4789
+ getMinMaxCachedValueForColumn(column, minMax) {
4790
+ var _a;
4791
+ const { columnId, dataType } = column;
4792
+ if (dataType !== 'Number') {
4793
+ return undefined;
4794
+ }
4795
+ let value = (_a = this.columnMinMaxValuesCache[columnId]) === null || _a === void 0 ? void 0 : _a[minMax];
4796
+ if (value !== undefined) {
4797
+ return value;
4798
+ }
4799
+ const distinctRawValues = this.api.gridApi.internalApi
4800
+ .getUnsortedDistinctRawValuesForColumn(columnId)
4801
+ .map((item) => item.rawValue);
4802
+ value = minMax === 'min' ? Math.min(...distinctRawValues) : Math.max(...distinctRawValues);
4803
+ this.columnMinMaxValuesCache[columnId] = Object.assign(Object.assign({}, this.columnMinMaxValuesCache[columnId]), { [minMax]: value });
4804
+ return value;
4805
+ }
4806
+ persistColumnIndexBeforeGrouping(params) {
4807
+ const layout = this.api.layoutApi.getCurrentLayout();
4808
+ const columnGroupsInLayout = layout.RowGroupedColumns;
4809
+ const columnGroupsInGrid = params.columns.map((col) => col.getColId());
4810
+ // what is new
4811
+ const newGroups = columnGroupsInGrid.filter((colId) => !columnGroupsInLayout.includes(colId));
4812
+ newGroups.forEach((colId) => {
4813
+ const columnIndex = layout.Columns.filter((colId) => !(this.api.columnApi.isAutoRowGroupColumn(colId) ||
4814
+ this.api.columnApi.isAutoPivotColumn(colId))).findIndex((columnIdInLayout) => columnIdInLayout === colId);
4815
+ // user may group after a column not in layout
4816
+ if (columnIndex !== -1) {
4817
+ this.api.internalApi.persistPreviousGroupedColumnsIndex(layout.Uuid, colId, columnIndex);
4818
+ }
4819
+ });
4820
+ }
4821
+ /**
4822
+ * Restores the order previous grouping order.
4823
+
4824
+ */
4825
+ restoreUnGroupColumnOrder({ newGroupColumns, columnOrder, }) {
4826
+ var _a;
4827
+ const newColumnOrder = [...columnOrder];
4828
+ const currentLayout = this.api.layoutApi.getCurrentLayout();
4829
+ const previousGroupedColumnsIndex = this.api.internalApi.getPreviousGroupedColumnsIndex(currentLayout.Uuid);
4830
+ const isUnGroup = newGroupColumns.length < ((_a = currentLayout === null || currentLayout === void 0 ? void 0 : currentLayout.RowGroupedColumns) === null || _a === void 0 ? void 0 : _a.length);
4831
+ if (!isUnGroup) {
4832
+ return columnOrder;
4833
+ }
4834
+ if (!previousGroupedColumnsIndex) {
4835
+ return columnOrder;
4836
+ }
4837
+ for (let [colId, previousIndex] of Object.entries(previousGroupedColumnsIndex)) {
4838
+ const isStillGrouped = newGroupColumns.includes(colId);
4839
+ const isAlreadyInGrid = currentLayout.Columns.includes(colId); // was not just added by ungrouping
4840
+ if (isStillGrouped) {
4841
+ continue;
4842
+ }
4843
+ if (isAlreadyInGrid) {
4844
+ // no longer grouped, but already in grid, this means it was already in grid before ungrouping
4845
+ // in this case the state can be cleared
4846
+ this.api.internalApi.persistPreviousGroupedColumnsIndex(currentLayout.Uuid, colId, null);
4847
+ continue;
4848
+ }
4849
+ // need to ajust index based if grouped
4850
+ const numberOfGroupedColumns = newColumnOrder.filter((colId) => this.api.columnApi.isAutoRowGroupColumn(colId)).length;
4851
+ const adjustedPreviousIndex = previousIndex + numberOfGroupedColumns;
4852
+ const indexInGrid = newColumnOrder.indexOf(colId);
4853
+ const hasDifferentPositionAsPreviousLayout = adjustedPreviousIndex !== null && // if null, the reorder was already applied
4854
+ indexInGrid > 0 && // needs to be in grid
4855
+ adjustedPreviousIndex !== indexInGrid;
4856
+ const isPreviousPositionInRange = adjustedPreviousIndex < newColumnOrder.length;
4857
+ if (hasDifferentPositionAsPreviousLayout && isPreviousPositionInRange) {
4858
+ newColumnOrder.splice(indexInGrid, 1);
4859
+ newColumnOrder.splice(adjustedPreviousIndex, 0, colId);
4860
+ }
4861
+ this.api.internalApi.persistPreviousGroupedColumnsIndex(currentLayout.Uuid, colId, null);
4862
+ }
4863
+ return newColumnOrder;
4864
+ }
4719
4865
  }
4720
4866
  exports.Adaptable = Adaptable;
4721
4867
  class AdaptableNoCodeWizard {
@@ -4754,15 +4900,15 @@ class AdaptableNoCodeWizard {
4754
4900
  // this allows people to customize the wizard dimensions & styling
4755
4901
  // when it's visible
4756
4902
  container.classList.add('adaptable--in-wizard');
4757
- ReactDOM.render(React.createElement(AdaptableWizardView_1.default, Object.assign(Object.assign({ adaptableOptions: this.adaptableOptions }, this.extraOptions), { onInit: (adaptableOptions) => {
4903
+ const unmount = (0, renderReactRoot_1.renderReactRoot)(React.createElement(AdaptableWizardView_1.default, Object.assign(Object.assign({ adaptableOptions: this.adaptableOptions }, this.extraOptions), { onInit: (adaptableOptions) => {
4758
4904
  container.classList.remove('adaptable--in-wizard');
4759
- ReactDOM.unmountComponentAtNode(container);
4905
+ unmount();
4760
4906
  this.init({
4761
4907
  adaptableOptions,
4762
4908
  gridOptions: adaptableOptions.gridOptions,
4763
4909
  agGridModules: [...this.agGridModules],
4764
4910
  });
4765
- } })), container);
4911
+ } })), container, true);
4766
4912
  }
4767
4913
  }
4768
4914
  exports.AdaptableNoCodeWizard = AdaptableNoCodeWizard;