@adaptabletools/adaptable 21.2.1 → 22.0.0-canary.0

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 (518) hide show
  1. package/icons/inspector.svg +1 -0
  2. package/index.css +6464 -5488
  3. package/index.css.map +1 -1
  4. package/package.json +5 -6
  5. package/src/AdaptableInterfaces/IAdaptable.d.ts +0 -1
  6. package/src/AdaptableState/ChartingState.d.ts +1 -1
  7. package/src/AdaptableState/Common/AdaptableAlert.d.ts +2 -2
  8. package/src/AdaptableState/Common/AdaptableIcon.d.ts +1 -1
  9. package/src/AdaptableState/Common/AdaptablePredicate.js +7 -3
  10. package/src/AdaptableState/Common/AggregationColumns.d.ts +3 -3
  11. package/src/AdaptableState/Common/DataUpdateConfig.d.ts +4 -4
  12. package/src/AdaptableState/TeamSharingState.d.ts +1 -1
  13. package/src/Api/CustomSortApi.d.ts +6 -1
  14. package/src/Api/Implementation/ColumnApiImpl.d.ts +3 -0
  15. package/src/Api/Implementation/ColumnApiImpl.js +12 -3
  16. package/src/Api/Implementation/CustomSortApiImpl.d.ts +2 -1
  17. package/src/Api/Implementation/CustomSortApiImpl.js +5 -1
  18. package/src/Api/Implementation/LayoutApiImpl.d.ts +1 -0
  19. package/src/Api/Implementation/LayoutApiImpl.js +85 -2
  20. package/src/Api/Implementation/LayoutHelpers.d.ts +2 -2
  21. package/src/Api/Implementation/PredicateApiImpl.d.ts +1 -0
  22. package/src/Api/Implementation/PredicateApiImpl.js +15 -1
  23. package/src/Api/Implementation/ScheduleApiImpl.d.ts +1 -0
  24. package/src/Api/Implementation/ScheduleApiImpl.js +12 -0
  25. package/src/Api/Implementation/ShortcutApiImpl.d.ts +1 -0
  26. package/src/Api/Implementation/ShortcutApiImpl.js +4 -0
  27. package/src/Api/Implementation/StyledColumnApiImpl.d.ts +1 -0
  28. package/src/Api/Implementation/StyledColumnApiImpl.js +4 -0
  29. package/src/Api/Internal/AdaptableInternalApi.d.ts +0 -1
  30. package/src/Api/Internal/AdaptableInternalApi.js +3 -3
  31. package/src/Api/Internal/ColumnFilterInternalApi.js +1 -0
  32. package/src/Api/Internal/LayoutInternalApi.d.ts +6 -0
  33. package/src/Api/Internal/LayoutInternalApi.js +34 -0
  34. package/src/Api/LayoutApi.d.ts +7 -1
  35. package/src/Api/ScheduleApi.d.ts +5 -0
  36. package/src/Api/ShortcutApi.d.ts +5 -0
  37. package/src/Api/StyledColumnApi.d.ts +5 -0
  38. package/src/Redux/ActionsReducers/CommentsRedux.d.ts +1 -1
  39. package/src/Redux/ActionsReducers/DashboardRedux.d.ts +1 -1
  40. package/src/Redux/ActionsReducers/InternalRedux.d.ts +6 -6
  41. package/src/Redux/ActionsReducers/LayoutRedux.d.ts +3 -9
  42. package/src/Redux/ActionsReducers/StyledColumnRedux.d.ts +6 -6
  43. package/src/Redux/ActionsReducers/StyledColumnRedux.js +16 -16
  44. package/src/Redux/Store/AdaptableReduxLocalStorageEngine.js +3 -0
  45. package/src/Strategy/FormatColumnModule.js +2 -2
  46. package/src/Strategy/Utilities/Alert/getAlertPreviewViewItems.js +1 -1
  47. package/src/Strategy/Utilities/FormatColumn/getFormatColumnSettingsViewItems.js +2 -1
  48. package/src/Strategy/Utilities/Layout/getLayoutFilterViewItems.js +4 -3
  49. package/src/Utilities/ExpressionFunctions/expressionFunctionUtils.d.ts +4 -4
  50. package/src/Utilities/Extensions/StringExtensions.d.ts +1 -1
  51. package/src/Utilities/Helpers/StyleHelper.d.ts +1 -1
  52. package/src/Utilities/Services/Interface/IAlertService.d.ts +2 -2
  53. package/src/Utilities/createAgStatusPanelComponent.d.ts +1 -1
  54. package/src/Utilities/getObjectTagsViewItems.js +1 -1
  55. package/src/Utilities/runIfNotResolvedIn.d.ts +1 -1
  56. package/src/View/AdaptableComputedCSSVarsContext.js +6 -1
  57. package/src/View/AdaptablePopover/index.d.ts +1 -1
  58. package/src/View/AdaptablePopover/index.js +3 -3
  59. package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/AdaptableOptionsForm.js +7 -8
  60. package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/ColumnsList.js +7 -6
  61. package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/Components/FormBox.d.ts +4 -2
  62. package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/Components/FormBox.js +3 -3
  63. package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/EntitlementsForm.js +9 -9
  64. package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/GridOptionsForm.js +3 -3
  65. package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/UIOptions/UIOptionsSidebarForm.js +4 -4
  66. package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/UIOptions/UIOptionsStatusbarForm.js +4 -4
  67. package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/UIOptions/UiOptionsForm.js +2 -2
  68. package/src/View/AdaptableWizardView/Wizard.js +1 -1
  69. package/src/View/AdaptableWizardView/index.js +1 -4
  70. package/src/View/Alert/ActiveAlertsPanelItemLabel.js +2 -2
  71. package/src/View/Alert/AlertStatusSubPanel.js +1 -1
  72. package/src/View/Alert/AlertViewPanel.js +2 -2
  73. package/src/View/Alert/Utilities/getDefaultAlertDefinition.d.ts +3 -20
  74. package/src/View/Alert/Wizard/AlertBehaviourWizardSection.js +15 -13
  75. package/src/View/Alert/Wizard/AlertButtonsEditor.js +25 -22
  76. package/src/View/Alert/Wizard/AlertMessageWizardSection.js +12 -16
  77. package/src/View/Alert/Wizard/AlertNotificationWizardSection.d.ts +3 -1
  78. package/src/View/Alert/Wizard/AlertNotificationWizardSection.js +7 -7
  79. package/src/View/Alert/Wizard/AlertRulesWizardSection.js +2 -2
  80. package/src/View/Alert/Wizard/AlertScopeWizardSection.js +2 -2
  81. package/src/View/Alert/Wizard/AlertTypeWizardSection.js +1 -1
  82. package/src/View/Alert/Wizard/AlertWizard.js +8 -8
  83. package/src/View/Alert/Wizard/BaseAlertScopeWizardSection.js +11 -8
  84. package/src/View/BulkUpdate/BulkUpdatePopup.js +11 -11
  85. package/src/View/BulkUpdate/BulkUpdateViewPanel.js +4 -4
  86. package/src/View/CalculatedColumn/CalculatedColumnSummary.d.ts +1 -1
  87. package/src/View/CalculatedColumn/Wizard/CalculatedColumnDefinitionWizardSection.js +8 -8
  88. package/src/View/CalculatedColumn/Wizard/CalculatedColumnExpressionWizardSection.d.ts +1 -1
  89. package/src/View/CalculatedColumn/Wizard/CalculatedColumnExpressionWizardSection.js +4 -4
  90. package/src/View/CalculatedColumn/Wizard/CalculatedColumnSettingsWizardSection.js +4 -5
  91. package/src/View/CalculatedColumn/Wizard/CalculatedColumnTypeSection.d.ts +1 -1
  92. package/src/View/CalculatedColumn/Wizard/CalculatedColumnTypeSection.js +1 -1
  93. package/src/View/CalculatedColumn/Wizard/CalculatedColumnWizard.d.ts +0 -2
  94. package/src/View/CalculatedColumn/Wizard/CalculatedColumnWizard.js +8 -14
  95. package/src/View/CalculatedColumn/Wizard/calculatedColumnTypes.d.ts +2 -0
  96. package/src/View/CalculatedColumn/Wizard/calculatedColumnTypes.js +6 -0
  97. package/src/View/CellSummary/CellSummaryPopup.js +1 -1
  98. package/src/View/CellSummary/CellSummaryViewPanel.js +5 -5
  99. package/src/View/Charting/ChartingStatusBarPopover.js +4 -4
  100. package/src/View/Charting/ChartingViewPanel.js +7 -7
  101. package/src/View/Charting/ChartingWizard/AgChargingWizard/AgChargingWizard.js +4 -4
  102. package/src/View/Charting/ChartingWizard/ExternalChartingWizard/ExternalChartingWizard.js +3 -3
  103. package/src/View/Charting/useChartingElements.d.ts +1 -1
  104. package/src/View/Charting/useChartingElements.js +1 -1
  105. package/src/View/ColumnInfo/ColumnInfo.js +14 -19
  106. package/src/View/ColumnInfo/ColumnInfoPopup.js +2 -2
  107. package/src/View/Comments/CommentsEditor.js +14 -17
  108. package/src/View/Comments/CommentsPopup.js +6 -6
  109. package/src/View/Components/AdaptableDateInput/index.js +1 -1
  110. package/src/View/Components/AdaptableInput/index.js +3 -2
  111. package/src/View/Components/AdaptableObjectCollection/index.d.ts +2 -2
  112. package/src/View/Components/AdaptableObjectCollection/index.js +9 -5
  113. package/src/View/Components/AdaptableObjectList/AdaptableObjectCompactList.js +10 -10
  114. package/src/View/Components/AdaptableObjectList/AdaptableObjectList.d.ts +2 -0
  115. package/src/View/Components/AdaptableObjectList/AdaptableObjectList.js +20 -18
  116. package/src/View/Components/AdaptableObjectRow/index.d.ts +1 -0
  117. package/src/View/Components/AdaptableObjectRow/index.js +4 -5
  118. package/src/View/Components/Buttons/ButtonBase/index.d.ts +1 -2
  119. package/src/View/Components/Buttons/ButtonBase/index.js +5 -4
  120. package/src/View/Components/Buttons/ButtonClear.js +2 -1
  121. package/src/View/Components/Buttons/ButtonFunction.js +2 -1
  122. package/src/View/Components/Buttons/ButtonNew.d.ts +11 -1
  123. package/src/View/Components/Buttons/ButtonNew.js +2 -1
  124. package/src/View/Components/Buttons/EntityListActionButtons.d.ts +1 -1
  125. package/src/View/Components/Buttons/EntityListActionButtons.js +14 -43
  126. package/src/View/Components/Buttons/SuspendToggleButton/SuspendToggleButton.d.ts +1 -0
  127. package/src/View/Components/Buttons/SuspendToggleButton/SuspendToggleButton.js +3 -2
  128. package/src/View/Components/CellPopup/index.d.ts +1 -1
  129. package/src/View/Components/ColumnFilter/AdaptableColumnFilter.d.ts +4 -3
  130. package/src/View/Components/ColumnFilter/ColumnFilter.d.ts +4 -2
  131. package/src/View/Components/ColumnFilter/ColumnFilter.js +26 -23
  132. package/src/View/Components/ColumnFilter/ColumnFilterWindow.js +6 -6
  133. package/src/View/Components/ColumnFilter/FloatingFilter.js +6 -6
  134. package/src/View/Components/ColumnFilter/components/ColumnFilterInput.d.ts +1 -1
  135. package/src/View/Components/ColumnFilter/components/ColumnFilterInput.js +2 -2
  136. package/src/View/Components/ColumnFilter/components/ColumnFilterInputList.js +1 -1
  137. package/src/View/Components/ColumnFilter/components/ColumnFilterMenu.js +6 -6
  138. package/src/View/Components/ColumnFilter/useAdaptableFilterWrapper.d.ts +1 -1
  139. package/src/View/Components/ColumnFilter/useAdaptableFilterWrapper.js +9 -1
  140. package/src/View/Components/ColumnSelector/index.js +1 -3
  141. package/src/View/Components/EntityRulesEditor/EntityRulePredicatesEditor/EntityRulePredicateEditor.js +10 -10
  142. package/src/View/Components/EntityRulesEditor/EntityRulePredicatesEditor/EntityRulePredicatesEditor.js +11 -15
  143. package/src/View/Components/EntityRulesEditor/index.d.ts +5 -2
  144. package/src/View/Components/EntityRulesEditor/index.js +11 -10
  145. package/src/View/Components/ExpressionWizard.js +4 -4
  146. package/src/View/Components/FilterForm/Waiting.d.ts +4 -2
  147. package/src/View/Components/FilterForm/Waiting.js +3 -2
  148. package/src/View/Components/Forms/AdaptableFormControlTextClear.d.ts +1 -0
  149. package/src/View/Components/Forms/AdaptableFormControlTextClear.js +4 -8
  150. package/src/View/Components/ModuleValueSelector/index.js +2 -2
  151. package/src/View/Components/NewScopeComponent.js +20 -20
  152. package/src/View/Components/Panels/PanelFooter.js +5 -5
  153. package/src/View/Components/Panels/PanelToolPanel/index.d.ts +1 -1
  154. package/src/View/Components/Panels/PanelToolPanel/index.js +9 -11
  155. package/src/View/Components/Panels/PanelWithButton.d.ts +3 -5
  156. package/src/View/Components/Panels/PanelWithButton.js +7 -6
  157. package/src/View/Components/Panels/PanelWithImage.d.ts +2 -3
  158. package/src/View/Components/Panels/PanelWithImage.js +10 -12
  159. package/src/View/Components/Panels/PanelWithRow.d.ts +0 -1
  160. package/src/View/Components/Panels/PanelWithRow.js +3 -3
  161. package/src/View/Components/Panels/PanelWithTwoButtons.d.ts +1 -1
  162. package/src/View/Components/Panels/PanelWithTwoButtons.js +3 -3
  163. package/src/View/Components/Popups/AdaptableLoadingScreen.js +3 -5
  164. package/src/View/Components/Popups/AdaptablePopup/AdaptablePopup.js +4 -3
  165. package/src/View/Components/Popups/AdaptablePopup/AdaptablePopupDialog.js +3 -2
  166. package/src/View/Components/Popups/AdaptablePopup/AdaptablePopupModuleView.js +4 -4
  167. package/src/View/Components/Popups/AdaptablePopup/Navigation.js +63 -31
  168. package/src/View/Components/Popups/AdaptablePopup/PopupPanel.d.ts +2 -0
  169. package/src/View/Components/Popups/AdaptablePopup/PopupPanel.js +8 -9
  170. package/src/View/Components/Popups/AdaptablePopup/TopBar.js +5 -4
  171. package/src/View/Components/Popups/AdaptablePopup/useMenuItems.d.ts +1 -1
  172. package/src/View/Components/Popups/AdaptablePopupAlert.js +6 -11
  173. package/src/View/Components/Popups/AdaptablePopupConfirmation.js +6 -6
  174. package/src/View/Components/Popups/AdaptablePopupPrompt.js +7 -7
  175. package/src/View/Components/Popups/AdaptablePopupTeamSharing.js +9 -11
  176. package/src/View/Components/Popups/FormPopups/FormPopups.js +3 -3
  177. package/src/View/Components/Popups/GridCellPopup/GridCellPopup.js +1 -1
  178. package/src/View/Components/Popups/WindowPopups/WindowPopups.js +3 -3
  179. package/src/View/Components/Popups/WindowPopups/windowFactory.d.ts +0 -1
  180. package/src/View/Components/PredicateEditor/PredicateEditor.js +7 -7
  181. package/src/View/Components/PreviewResultsPanel.d.ts +1 -0
  182. package/src/View/Components/PreviewResultsPanel.js +6 -13
  183. package/src/View/Components/RangesComponent.js +19 -19
  184. package/src/View/Components/ReorderDraggable/index.d.ts +2 -0
  185. package/src/View/Components/ReorderDraggable/index.js +8 -7
  186. package/src/View/Components/Selectors/BulkUpdateValueSelector.js +4 -7
  187. package/src/View/Components/Selectors/ColumnSelector.js +1 -1
  188. package/src/View/Components/Selectors/ColumnSelectorOld.js +1 -1
  189. package/src/View/Components/StyleComponent.d.ts +2 -26
  190. package/src/View/Components/StyleComponent.js +186 -190
  191. package/src/View/Components/TagValueSelector/index.d.ts +1 -1
  192. package/src/View/Components/TagValueSelector/index.js +4 -3
  193. package/src/View/Components/ToolPanel/AdaptableToolPanel.d.ts +1 -1
  194. package/src/View/Components/ToolPanel/AdaptableToolPanel.js +13 -12
  195. package/src/View/Components/ToolPanel/ToolPanelPopup.d.ts +1 -1
  196. package/src/View/Components/ToolPanel/ToolPanelPopup.js +13 -10
  197. package/src/View/Components/ToolPanel/ToolPanelWrapper.js +2 -2
  198. package/src/View/Components/ValueSelector/index.d.ts +9 -33
  199. package/src/View/Components/ValueSelector/index.js +38 -61
  200. package/src/View/Components/WizardSummaryPage.js +1 -1
  201. package/src/View/CustomSort/Wizard/CustomSortColumnWizardSection.js +2 -2
  202. package/src/View/CustomSort/Wizard/CustomSortValuesWizardSection.js +4 -7
  203. package/src/View/CustomSort/Wizard/CustomSortWizard.js +5 -5
  204. package/src/View/Dashboard/Dashboard.js +3 -3
  205. package/src/View/Dashboard/DashboardPopup.js +27 -23
  206. package/src/View/Dashboard/DashboardViewPanel.js +4 -4
  207. package/src/View/Dashboard/PinnedDashboard.js +3 -3
  208. package/src/View/Dashboard/PinnedToolbarsSelector.js +3 -2
  209. package/src/View/DataChangeHistory/DataChangeHistoryPopup.js +10 -10
  210. package/src/View/DataChangeHistory/DataChangeHistoryViewPanel.js +7 -7
  211. package/src/View/DataImport/DataImportPopup.js +2 -2
  212. package/src/View/DataImport/DataImportWizard/DataImportWizard.js +2 -2
  213. package/src/View/DataImport/DataImportWizard/sections/ColumnsSection.js +6 -6
  214. package/src/View/DataImport/DataImportWizard/sections/ImportSection.js +4 -4
  215. package/src/View/DataImport/DataImportWizard/sections/UploadSection/UploadFileSection.js +1 -1
  216. package/src/View/DataImport/DataImportWizard/sections/UploadSection/UploadSection.js +4 -4
  217. package/src/View/DataImport/DataImportWizard/sections/UploadSection/UploadTextSection.js +1 -1
  218. package/src/View/DataImport/DataImportWizard/sections/ValidationSection.js +4 -4
  219. package/src/View/DataSet/DataSetViewPanel.d.ts +2 -2
  220. package/src/View/DataSet/DataSetViewPanel.js +2 -2
  221. package/src/View/Export/ExportDestinationPicker.js +2 -1
  222. package/src/View/Export/ExportViewPanel.js +4 -4
  223. package/src/View/Export/ReportFormatSelector.js +3 -3
  224. package/src/View/Export/ReportListItem.js +1 -1
  225. package/src/View/Export/ReportNameSelector.js +3 -3
  226. package/src/View/Export/Wizard/NewReportWizard.js +4 -4
  227. package/src/View/Export/Wizard/ReportColumnTypeWizard.js +8 -8
  228. package/src/View/Export/Wizard/ReportColumnsWizardSection.js +11 -11
  229. package/src/View/Export/Wizard/ReportNameWizardSection.js +4 -4
  230. package/src/View/Export/Wizard/ReportRowTypeWizard.js +8 -8
  231. package/src/View/Export/Wizard/ReportRowsWizardSection.js +9 -9
  232. package/src/View/Export/Wizard/ReportSettingsWizard.js +3 -3
  233. package/src/View/Filter/FilterSummary.d.ts +1 -1
  234. package/src/View/Filter/FilterSummary.js +1 -1
  235. package/src/View/Filter/FilterViewPanel.d.ts +2 -2
  236. package/src/View/Filter/FilterViewPanel.js +4 -4
  237. package/src/View/FlashingCell/FlashingCellStyle.d.ts +2 -2
  238. package/src/View/FlashingCell/FlashingCellStyle.js +4 -4
  239. package/src/View/FlashingCell/Wizard/FlashingCellScopeWizardSection.js +2 -2
  240. package/src/View/FlashingCell/Wizard/FlashingCellSettingsWizardSection.js +11 -11
  241. package/src/View/FlashingCell/Wizard/FlashingCellStyleWizardSection.d.ts +2 -2
  242. package/src/View/FlashingCell/Wizard/FlashingCellStyleWizardSection.js +4 -4
  243. package/src/View/FlashingCell/Wizard/FlashingCellWizard.js +5 -5
  244. package/src/View/FormatColumn/Wizard/FormatColumnFormatWizardSection.d.ts +1 -1
  245. package/src/View/FormatColumn/Wizard/FormatColumnFormatWizardSection.js +59 -64
  246. package/src/View/FormatColumn/Wizard/FormatColumnRuleWizardSection.js +1 -1
  247. package/src/View/FormatColumn/Wizard/FormatColumnScopeWizardSection.js +0 -4
  248. package/src/View/FormatColumn/Wizard/FormatColumnSettingsWizardSection.js +28 -28
  249. package/src/View/FormatColumn/Wizard/FormatColumnStyleWizardSection.js +2 -2
  250. package/src/View/FormatColumn/Wizard/FormatColumnTargetWizardSection.js +2 -2
  251. package/src/View/FormatColumn/Wizard/FormatColumnWizard.js +8 -8
  252. package/src/View/FreeTextColumn/Wizard/FreeTextColumnSettingsWizardSection.js +11 -11
  253. package/src/View/FreeTextColumn/Wizard/FreeTextColumnWizard.js +4 -4
  254. package/src/View/GridFilter/GridFilterExpressionEditor.js +6 -6
  255. package/src/View/GridFilter/GridFilterPopup.js +31 -40
  256. package/src/View/GridFilter/GridFilterPopupUI/index.d.ts +68 -0
  257. package/src/View/GridFilter/GridFilterPopupUI/index.js +42 -0
  258. package/src/View/GridFilter/GridFilterViewPanel.js +14 -21
  259. package/src/View/GridFilter/NamedQuerySelector.js +7 -7
  260. package/src/View/GridFilter/useGridFilterExpressionEditor.d.ts +5 -1
  261. package/src/View/GridFilter/useGridFilterExpressionEditor.js +2 -1
  262. package/src/View/GridInfo/GridInfoPopup/AdaptableObjectsSummary.d.ts +3 -1
  263. package/src/View/GridInfo/GridInfoPopup/AdaptableObjectsSummary.js +4 -3
  264. package/src/View/GridInfo/GridInfoPopup/AdaptableOptionsComponent.js +5 -9
  265. package/src/View/GridInfo/GridInfoPopup/GridInfoPopup.js +7 -7
  266. package/src/View/KeyHint.d.ts +5 -2
  267. package/src/View/KeyHint.js +4 -2
  268. package/src/View/Layout/EditCurrentLayoutButton.js +1 -1
  269. package/src/View/Layout/LayoutStatusBarSubPanelPopover.js +1 -1
  270. package/src/View/Layout/LayoutViewPanel.d.ts +3 -3
  271. package/src/View/Layout/LayoutViewPanel.js +2 -2
  272. package/src/View/Layout/TransposedPopup.js +4 -4
  273. package/src/View/Layout/Wizard/LayoutWizard.js +18 -18
  274. package/src/View/Layout/Wizard/sections/AggregationsSection.js +6 -8
  275. package/src/View/Layout/Wizard/sections/ColumnsSection.js +213 -138
  276. package/src/View/Layout/Wizard/sections/FilterSection.js +6 -7
  277. package/src/View/Layout/Wizard/sections/GridFilterSection.js +2 -2
  278. package/src/View/Layout/Wizard/sections/PivotAggregationsSection.js +15 -18
  279. package/src/View/Layout/Wizard/sections/PivotColumnsSection.js +4 -6
  280. package/src/View/Layout/Wizard/sections/PivotRowGroupingSection.js +3 -5
  281. package/src/View/Layout/Wizard/sections/RowGroupingSection.js +8 -10
  282. package/src/View/Layout/Wizard/sections/RowSummarySection.js +15 -17
  283. package/src/View/Layout/Wizard/sections/SettingsSection.js +8 -8
  284. package/src/View/Layout/Wizard/sections/SortSection.js +5 -7
  285. package/src/View/License/LicenseWatermark.js +1 -1
  286. package/src/View/NamedQuery/Wizard/NamedQueryExpressionWizardSection.js +2 -2
  287. package/src/View/NamedQuery/Wizard/NamedQuerySettingsWizardSection.js +3 -3
  288. package/src/View/NamedQuery/Wizard/NamedQueryWizard.js +3 -3
  289. package/src/View/Note/NoteEditor.js +5 -1
  290. package/src/View/PlusMinus/Wizard/PlusMinusSettingsWizardSection.js +5 -5
  291. package/src/View/PlusMinus/Wizard/PlusMinusWizard.js +4 -4
  292. package/src/View/QuickSearch/FloatingQuickSearch/FloatingQuickSearch.js +2 -2
  293. package/src/View/QuickSearch/QuickSearchInput.d.ts +1 -0
  294. package/src/View/QuickSearch/QuickSearchInput.js +5 -5
  295. package/src/View/QuickSearch/QuickSearchPopup.js +17 -16
  296. package/src/View/QuickSearch/QuickSearchViewPanel.js +1 -1
  297. package/src/View/Schedule/Wizard/ScheduleScheduleWizard.js +4 -4
  298. package/src/View/Schedule/Wizard/ScheduleSettingsWizard/ScheduleSettingsIPushPull.js +5 -5
  299. package/src/View/Schedule/Wizard/ScheduleSettingsWizard/ScheduleSettingsOpenFin.js +2 -2
  300. package/src/View/Schedule/Wizard/ScheduleSettingsWizard/ScheduleSettingsReminder.js +4 -4
  301. package/src/View/Schedule/Wizard/ScheduleSettingsWizard/ScheduleSettingsReport.js +5 -5
  302. package/src/View/Schedule/Wizard/ScheduleWizard.js +5 -5
  303. package/src/View/Shortcut/Wizard/ShortcutSettingsWizard.js +5 -8
  304. package/src/View/Shortcut/Wizard/ShortcutWizard.js +5 -5
  305. package/src/View/SmartEdit/SmartEditPopup.d.ts +1 -1
  306. package/src/View/SmartEdit/SmartEditPopup.js +8 -8
  307. package/src/View/SmartEdit/SmartEditViewPanel.js +1 -1
  308. package/src/View/SpecialColumnSettingsWizardStep.js +4 -4
  309. package/src/View/StateManagement/StateManagementPopup.js +12 -12
  310. package/src/View/StateManagement/StateManagementViewPanel.js +1 -1
  311. package/src/View/StateManagement/handleExportState.d.ts +1 -1
  312. package/src/View/StatusBar/AdaptableStatusBar.js +1 -1
  313. package/src/View/StatusBar/StatusBarPanel.d.ts +2 -2
  314. package/src/View/StatusBar/StatusBarPanel.js +5 -4
  315. package/src/View/StyledColumn/Wizard/StyledColumnBadgeSection.js +9 -9
  316. package/src/View/StyledColumn/Wizard/StyledColumnSparklineSettingsSection.js +51 -48
  317. package/src/View/StyledColumn/Wizard/StyledColumnWizard.js +8 -8
  318. package/src/View/StyledColumn/Wizard/StyledColumnWizardColumnSection.js +2 -2
  319. package/src/View/StyledColumn/Wizard/StyledColumnWizardSettingsSection.js +18 -18
  320. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/PercentBarColumnComparisonPreview.js +3 -3
  321. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/PercentBarRangesPreview.js +4 -5
  322. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/PercentBarStylePreview.js +5 -5
  323. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnBadgePreview.js +2 -2
  324. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnBadgeSettings.js +4 -6
  325. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/StyledColumnWizardStyleSection.js +14 -15
  326. package/src/View/StyledColumn/Wizard/StyledColumnWizardTypeSection.js +4 -4
  327. package/src/View/SystemStatus/SystemStatusEntityRow.js +3 -3
  328. package/src/View/SystemStatus/SystemStatusPopup.js +2 -2
  329. package/src/View/SystemStatus/SystemStatusStatusBarContent.js +2 -2
  330. package/src/View/SystemStatus/SystemStatusViewPanel.d.ts +2 -2
  331. package/src/View/SystemStatus/SystemStatusViewPanel.js +2 -2
  332. package/src/View/TeamSharing/SharedEntityDependencies.js +4 -4
  333. package/src/View/TeamSharing/SharedEntityObjectView.js +8 -8
  334. package/src/View/Theme/ThemeEditor.js +6 -31
  335. package/src/View/Theme/ThemeEditorWindow.js +2 -2
  336. package/src/View/Theme/ThemeField.js +1 -2
  337. package/src/View/Theme/ThemePopup.d.ts +1 -1
  338. package/src/View/Theme/ThemePopup.js +4 -4
  339. package/src/View/Theme/ThemeStatusbar.js +1 -1
  340. package/src/View/Theme/VariantSelector.js +1 -1
  341. package/src/View/UIHelper.d.ts +1 -1
  342. package/src/View/Wizard/Interface/IAdaptableWizard.d.ts +1 -1
  343. package/src/View/Wizard/ObjectTagsWizardSection.js +2 -4
  344. package/src/View/Wizard/OnePageAdaptableWizard.d.ts +10 -4
  345. package/src/View/Wizard/OnePageAdaptableWizard.js +14 -16
  346. package/src/View/Wizard/OnePageWizards.d.ts +10 -4
  347. package/src/View/Wizard/OnePageWizards.js +50 -64
  348. package/src/View/Wizard/TypeRadio.js +3 -3
  349. package/src/View/Wizard/WizardLegend.js +3 -4
  350. package/src/View/Wizard/useKeyboardNavigation.d.ts +1 -1
  351. package/src/View/Wizard/useKeyboardNavigation.js +7 -4
  352. package/src/View/renderWithAdaptableContext.js +2 -5
  353. package/src/agGrid/AdaptableAgGrid.d.ts +13 -4
  354. package/src/agGrid/AdaptableAgGrid.js +155 -23
  355. package/src/agGrid/AdaptableFilterHandler.d.ts +5 -6
  356. package/src/agGrid/AdaptableFilterHandler.js +13 -19
  357. package/src/agGrid/AgGridAdapter.d.ts +2 -0
  358. package/src/agGrid/AgGridAdapter.js +29 -15
  359. package/src/agGrid/AgGridColumnAdapter.d.ts +6 -1
  360. package/src/agGrid/AgGridColumnAdapter.js +26 -5
  361. package/src/agGrid/AgGridFilterAdapter.js +1 -1
  362. package/src/agGrid/AgGridFloatingFilterAdapter.js +1 -21
  363. package/src/agGrid/editors/AdaptableNumberEditor/InternalAdaptableNumberEditor.js +1 -5
  364. package/src/agGrid/editors/AdaptablePercentageEditor/InternalAdaptablePercentageEditor.js +1 -5
  365. package/src/components/AdaptableFormComponent/AdaptableFormComponent.js +9 -8
  366. package/src/components/Card/index.d.ts +25 -0
  367. package/src/components/Card/index.js +45 -0
  368. package/src/components/CheckBox/index.d.ts +3 -4
  369. package/src/components/CheckBox/index.js +7 -9
  370. package/src/components/CodeBlock/index.d.ts +6 -2
  371. package/src/components/CodeBlock/index.js +3 -3
  372. package/src/components/ColorPicker/ColorPicker.d.ts +1 -1
  373. package/src/components/ColorPicker/ColorPicker.js +10 -9
  374. package/src/components/Dashboard/Dashboard.js +1 -1
  375. package/src/components/Dashboard/DashboardToolbar.js +5 -6
  376. package/src/components/Datepicker/index.d.ts +2 -2
  377. package/src/components/Datepicker/index.js +9 -8
  378. package/src/components/Dialog/index.d.ts +8 -2
  379. package/src/components/Dialog/index.js +7 -7
  380. package/src/components/DragAndDropContext/DragAndDropContext.d.ts +1 -1
  381. package/src/components/DragAndDropContext/ModuleManager.d.ts +1 -0
  382. package/src/components/DragAndDropContext/ModuleManager.js +9 -6
  383. package/src/components/DragAndDropContext/TabList.d.ts +2 -1
  384. package/src/components/DragAndDropContext/TabList.js +44 -24
  385. package/src/components/DragAndDropContext/UnusedPanel.js +7 -15
  386. package/src/components/Dropdown/index.d.ts +2 -2
  387. package/src/components/Dropdown/index.js +5 -6
  388. package/src/components/DropdownButton/index.d.ts +2 -22
  389. package/src/components/DropdownButton/index.js +7 -4
  390. package/src/components/EmptyContent/index.d.ts +2 -2
  391. package/src/components/EmptyContent/index.js +4 -4
  392. package/src/components/ErrorBox/index.d.ts +2 -2
  393. package/src/components/ErrorBox/index.js +3 -3
  394. package/src/components/ExpressionEditor/BaseEditorInput.js +65 -48
  395. package/src/components/ExpressionEditor/DataTableEditor.js +6 -10
  396. package/src/components/ExpressionEditor/EditorButton.js +0 -2
  397. package/src/components/ExpressionEditor/EditorContext.d.ts +0 -1
  398. package/src/components/ExpressionEditor/EditorInputWithWhereClause.js +5 -5
  399. package/src/components/ExpressionEditor/ExpressionFunctionDocumentation.js +9 -11
  400. package/src/components/ExpressionEditor/NamedQueryContext.d.ts +0 -1
  401. package/src/components/ExpressionEditor/NamedQueryEditor.js +6 -16
  402. package/src/components/ExpressionEditor/QueryBuilder/QueryBuilder.d.ts +2 -10
  403. package/src/components/ExpressionEditor/QueryBuilder/QueryBuilder.js +6 -6
  404. package/src/components/ExpressionEditor/QueryBuilder/QueryBuilderInputs.d.ts +1 -1
  405. package/src/components/ExpressionEditor/QueryBuilder/QueryBuilderInputs.js +7 -7
  406. package/src/components/ExpressionEditor/QueryBuilder/QueryPredicateBuilder.js +9 -14
  407. package/src/components/ExpressionEditor/index.d.ts +1 -0
  408. package/src/components/ExpressionEditor/index.js +29 -34
  409. package/src/components/FieldWrap/index.d.ts +9 -2
  410. package/src/components/FieldWrap/index.js +3 -8
  411. package/src/components/FileDroppable/FileDroppableState.d.ts +0 -1
  412. package/src/components/FileDroppable/index.d.ts +3 -2
  413. package/src/components/FileDroppable/index.js +3 -3
  414. package/src/components/Flex.d.ts +15 -1
  415. package/src/components/Flex.js +40 -1
  416. package/src/components/FlexWithFooter.d.ts +3 -2
  417. package/src/components/FlexWithFooter.js +4 -4
  418. package/src/components/FormLayout/index.d.ts +5 -1
  419. package/src/components/FormLayout/index.js +1 -1
  420. package/src/components/HelpBlock/index.d.ts +2 -2
  421. package/src/components/HelpBlock/index.js +4 -3
  422. package/src/components/IconSelector/IconSelector.js +8 -8
  423. package/src/components/Input/index.d.ts +1 -2
  424. package/src/components/Input/index.js +6 -3
  425. package/src/components/Modal/Backdrop.js +1 -1
  426. package/src/components/Modal/index.d.ts +3 -2
  427. package/src/components/Modal/index.js +3 -3
  428. package/src/components/OverlayTrigger/index.js +3 -0
  429. package/src/components/Panel/index.d.ts +22 -6
  430. package/src/components/Panel/index.js +54 -15
  431. package/src/components/PopupWithFooter.js +3 -4
  432. package/src/components/ProgressIndicator/ProgressIndicator.js +3 -3
  433. package/src/components/Radio/index.d.ts +25 -3
  434. package/src/components/Radio/index.js +18 -20
  435. package/src/components/Select/Select.js +33 -21
  436. package/src/components/SelectList.js +1 -1
  437. package/src/components/SelectableList/index.d.ts +1 -1
  438. package/src/components/SimpleButton/index.d.ts +4 -6
  439. package/src/components/SimpleButton/index.js +55 -23
  440. package/src/components/SizedContainer/index.d.ts +3 -1
  441. package/src/components/SizedContainer/index.js +1 -1
  442. package/src/components/StylePreview.d.ts +3 -1
  443. package/src/components/StylePreview.js +4 -3
  444. package/src/components/Tabs/index.d.ts +3 -3
  445. package/src/components/Tabs/index.js +26 -9
  446. package/src/components/Tag/Tag.d.ts +14 -2
  447. package/src/components/Tag/Tag.js +10 -3
  448. package/src/components/Tag/index.d.ts +1 -1
  449. package/src/components/Tag/index.js +1 -1
  450. package/src/components/Textarea/index.d.ts +5 -1
  451. package/src/components/Textarea/index.js +4 -3
  452. package/src/components/Toggle/Toggle.js +48 -3
  453. package/src/components/Toggle/ToggleGroup.d.ts +7 -0
  454. package/src/components/Toggle/ToggleGroup.js +57 -2
  455. package/src/components/ToggleButton/index.d.ts +2 -2
  456. package/src/components/ToggleButton/index.js +25 -7
  457. package/src/components/Tree/TreeDropdown/index.js +10 -15
  458. package/src/components/Tree/TreeList/index.js +5 -9
  459. package/src/components/WarningBox/index.d.ts +6 -2
  460. package/src/components/WarningBox/index.js +3 -3
  461. package/src/components/WizardPanel/index.d.ts +6 -1
  462. package/src/components/WizardPanel/index.js +2 -2
  463. package/src/components/icons/DefaultIcon.d.ts +1 -0
  464. package/src/components/icons/index.d.ts +1 -1
  465. package/src/components/icons/index.js +2 -0
  466. package/src/components/icons/inspector.d.ts +3 -0
  467. package/src/components/icons/inspector.js +5 -0
  468. package/src/components/twUtils.d.ts +7 -0
  469. package/src/components/twUtils.js +13 -0
  470. package/src/components/utils/useDraggable.d.ts +0 -1
  471. package/src/devTools/index.d.ts +23 -23
  472. package/src/env.js +2 -2
  473. package/src/layout-manager/src/LMEmitter.d.ts +1 -0
  474. package/src/layout-manager/src/LMEmitter.js +1 -0
  475. package/src/layout-manager/src/index.d.ts +6 -0
  476. package/src/layout-manager/src/index.js +22 -2
  477. package/src/migration/VersionUpgrade20.js +6 -5
  478. package/src/twMerge.d.ts +1 -0
  479. package/src/twMerge.js +11 -0
  480. package/themes/dark.css +35 -9
  481. package/themes/light.css +0 -2
  482. package/tsconfig.esm.tsbuildinfo +1 -1
  483. package/base.css +0 -5602
  484. package/base.css.map +0 -1
  485. package/src/Strategy/Utilities/FormatColumn/getFormatColumnStyleViewItems.d.ts +0 -3
  486. package/src/Strategy/Utilities/FormatColumn/getFormatColumnStyleViewItems.js +0 -6
  487. package/src/View/Alert/AlertsPanel.d.ts +0 -14
  488. package/src/View/Alert/AlertsPanel.js +0 -38
  489. package/src/View/Alert/Wizard/AlertSelectQueryWizard.d.ts +0 -19
  490. package/src/View/Alert/Wizard/AlertSelectQueryWizard.js +0 -54
  491. package/src/View/Components/FilterForm/ListBoxMenu.d.ts +0 -14
  492. package/src/View/Components/FilterForm/ListBoxMenu.js +0 -28
  493. package/src/View/Components/ListBox/DualListBoxEditor.d.ts +0 -22
  494. package/src/View/Components/ListBox/DualListBoxEditor.js +0 -515
  495. package/src/View/Components/ListBox/ListBoxFilterSortComponent.d.ts +0 -13
  496. package/src/View/Components/ListBox/ListBoxFilterSortComponent.js +0 -26
  497. package/src/View/CustomSort/Wizard/CustomSortSummaryWizard.d.ts +0 -15
  498. package/src/View/CustomSort/Wizard/CustomSortSummaryWizard.js +0 -31
  499. package/src/View/Layout/Wizard/Components/ColumnLabels.d.ts +0 -9
  500. package/src/View/Layout/Wizard/Components/ColumnLabels.js +0 -52
  501. package/src/View/Wizard/AdaptableWizard.d.ts +0 -56
  502. package/src/View/Wizard/AdaptableWizard.js +0 -168
  503. package/src/components/ContainerProps.d.ts +0 -30
  504. package/src/components/ContainerProps.js +0 -1
  505. package/src/components/EllipsisContainer/index.d.ts +0 -13
  506. package/src/components/EllipsisContainer/index.js +0 -100
  507. package/src/components/List/GridList/index.d.ts +0 -10
  508. package/src/components/List/GridList/index.js +0 -23
  509. package/src/components/List/ListGroup/index.d.ts +0 -6
  510. package/src/components/List/ListGroup/index.js +0 -9
  511. package/src/components/List/ListGroupItem/index.d.ts +0 -11
  512. package/src/components/List/ListGroupItem/index.js +0 -16
  513. package/src/components/utils/useTheme.d.ts +0 -32
  514. package/src/components/utils/useTheme.js +0 -2
  515. package/src/theme.d.ts +0 -32
  516. package/src/theme.js +0 -49
  517. package/themes/dark.css.map +0 -1
  518. package/themes/light.css.map +0 -1
@@ -1,14 +1,18 @@
1
1
  import * as React from 'react';
2
2
  import { CSSProperties } from 'react';
3
- import { TextProps } from 'rebass';
3
+ import { BoxProps } from '../../components/Flex';
4
4
  export type OnePageWizardContextType<T> = {
5
5
  data: T;
6
6
  sections: (OnePageWizardSection<T> | '-')[];
7
7
  setCurrentSection: (index: number) => void;
8
8
  };
9
- export declare const SummaryTag: React.FunctionComponent<React.PropsWithChildren<TextProps>>;
10
- export declare const SummaryText: React.FunctionComponent<React.PropsWithChildren<TextProps>>;
11
- export declare const FormDescriptionText: React.FunctionComponent<React.PropsWithChildren<TextProps>>;
9
+ type CmpProps = BoxProps & {
10
+ className?: string;
11
+ style?: React.CSSProperties;
12
+ };
13
+ export declare const SummaryTag: React.FunctionComponent<React.PropsWithChildren<CmpProps>>;
14
+ export declare const SummaryText: React.FunctionComponent<React.PropsWithChildren<CmpProps>>;
15
+ export declare const FormDescriptionText: React.FunctionComponent<React.PropsWithChildren<CmpProps>>;
12
16
  export declare const OnePageWizardContext: React.Context<OnePageWizardContextType<any>>;
13
17
  export declare function useOnePageWizardContext<ENTITY>(): OnePageWizardContextType<ENTITY>;
14
18
  export type OnePageWizardSection<ENTITY> = {
@@ -21,6 +25,7 @@ export type OnePageWizardSection<ENTITY> = {
21
25
  };
22
26
  export interface OnePageWizardProps<ENTITY> {
23
27
  data: ENTITY;
28
+ modal?: boolean;
24
29
  name: string;
25
30
  sections: (OnePageWizardSection<ENTITY> | '-')[];
26
31
  currentIndex?: number;
@@ -37,3 +42,4 @@ export interface OnePageWizardProps<ENTITY> {
37
42
  finishText?: React.ReactNode;
38
43
  }
39
44
  export declare const OnePageWizard: <ENTITY extends unknown>(props: OnePageWizardProps<ENTITY>) => React.JSX.Element;
45
+ export {};
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import { useState, useRef } from 'react';
3
- import { Flex, Box, Text } from 'rebass';
3
+ import clsx from 'clsx';
4
4
  import Dialog from '../../components/Dialog';
5
5
  import SimpleButton from '../../components/SimpleButton';
6
6
  import useProperty from '../../components/utils/useProperty';
@@ -10,9 +10,12 @@ import { Icon } from '../../components/icons';
10
10
  import { useResizeObserver } from '../../components/ResizeObserver';
11
11
  import { NamedQueryContext, } from '../../components/ExpressionEditor/NamedQueryContext';
12
12
  import { useKeyboardNavigation } from './useKeyboardNavigation';
13
- export const SummaryTag = (props) => (React.createElement(Text, { ...props }));
14
- export const SummaryText = (props) => (React.createElement(Text, { fontSize: 2, mb: 3, ...props }));
15
- export const FormDescriptionText = (props) => React.createElement(Text, { fontSize: 2, mt: 1, ...props });
13
+ import { Box, Flex } from '../../components/Flex';
14
+ import { twMerge } from '../../twMerge';
15
+ import { targetOwn } from '../../components/twUtils';
16
+ export const SummaryTag = (props) => (React.createElement(Box, { ...props }));
17
+ export const SummaryText = (props) => (React.createElement(Box, { ...props, className: twMerge('twa:text-2 twa:mb-3', props.className) }));
18
+ export const FormDescriptionText = (props) => React.createElement(Box, { ...props, className: twMerge('twa:text-2 twa:mt-1', props.className) });
16
19
  export const OnePageWizardContext = React.createContext({
17
20
  data: null,
18
21
  sections: [],
@@ -41,12 +44,14 @@ export const OnePageWizard = (props) => {
41
44
  section.isVisible(props.data, contextValue));
42
45
  }, [props.sections]);
43
46
  contextValue.sections = visibleSections;
44
- if (props.defaultCurrentSectionName) {
45
- const candidate = visibleSections.findIndex((section) => section !== '-' && section?.title === props.defaultCurrentSectionName);
46
- if (candidate >= 0) {
47
- defaultCurrentIndex = candidate;
47
+ React.useEffect(() => {
48
+ if (props.defaultCurrentSectionName) {
49
+ const candidate = visibleSections.findIndex((section) => section !== '-' && section?.title === props.defaultCurrentSectionName);
50
+ if (candidate >= 0) {
51
+ setCurrentSection(candidate);
52
+ }
48
53
  }
49
- }
54
+ }, [props.defaultCurrentSectionName, visibleSections]);
50
55
  const [namedQuery, setNamedQuery] = useState(false);
51
56
  const [navIndexMap] = useState(() => new Map());
52
57
  const handleClickFinish = () => {
@@ -57,18 +62,13 @@ export const OnePageWizard = (props) => {
57
62
  if (section === '-') {
58
63
  return React.createElement(React.Fragment, { key: index });
59
64
  }
60
- return (React.createElement(Flex, { flexDirection: "column", key: index, "data-name": `section-${index}`, style: { minHeight: '100%' }, mr: 2 },
61
- React.createElement(Box, { py: 3, paddingLeft: 2, fontSize: 4, className: "ab-OnePageWizard__details" }, section.details),
62
- React.createElement(Box, { flex: 1, className: "ab-OnePageWizard__section" }, section.render(props.data, index))));
65
+ return (React.createElement(Flex, { flexDirection: "column", key: index, "data-name": `section-${index}`, className: "twa:min-h-full twa:mr-2" },
66
+ React.createElement(Box, { className: "ab-OnePageWizard__details twa:text-4 twa:py-3 twa:pl-2" }, section.details),
67
+ React.createElement(Box, { className: "ab-OnePageWizard__section twa:flex-1 twa:rounded-standard twa:overflow-auto twa:bg-defaultbackground" }, section.render(props.data, index))));
63
68
  };
69
+ const handleNavigation = useKeyboardNavigation(setCurrentSection, visibleSections);
64
70
  const selectedNodeRef = useRef(null);
65
- const selectedFeedback = (React.createElement("div", { ref: selectedNodeRef, className: "ab-OnePageWizard__selected-title-overlay", style: {
66
- position: 'absolute',
67
- background: 'var(--ab-cmp-one-page-wizard-selected-title__background)',
68
- pointerEvents: 'none',
69
- borderRadius: 'var(--ab__border-radius)',
70
- transition: 'top 0.2s',
71
- } }));
71
+ const selectedFeedback = (React.createElement("div", { ref: selectedNodeRef, onKeyDown: (event) => handleNavigation(event), tabIndex: 0, className: clsx('ab-OnePageWizard__selected-title-overlay', 'twa:absolute twa:rounded-standard twa:select-none twa:bg-accent twa:transition-top twa:duration-200', targetOwn.focusOutline) }));
72
72
  const sizeOwnerRef = useRef(null);
73
73
  const [width, setWidth] = useState(0);
74
74
  useResizeObserver(sizeOwnerRef, ({ width }) => {
@@ -82,6 +82,7 @@ export const OnePageWizard = (props) => {
82
82
  node.style.left = `${activeElement.offsetLeft}px`;
83
83
  node.style.height = `${activeElement.offsetHeight}px`;
84
84
  node.style.width = `${activeElement.offsetWidth}px`;
85
+ node.focus();
85
86
  }, [currentSection, width]);
86
87
  let navIndex = 0;
87
88
  const dialogRef = useRef(null);
@@ -102,15 +103,10 @@ export const OnePageWizard = (props) => {
102
103
  acc.set(index, valid);
103
104
  return acc;
104
105
  }, new Map());
105
- useKeyboardNavigation(setCurrentSection, visibleSections);
106
106
  const canFinish = !invalidCount;
107
107
  return (React.createElement(NamedQueryContext.Provider, { value: { namedQuery, setNamedQuery } },
108
108
  React.createElement(OnePageWizardContext.Provider, { value: contextValue },
109
- React.createElement(Dialog, { modal: true, isOpen: true, showCloseButton: false, focusOnBrowserVisible: true, style: {
110
- borderRadius: 'var(--ab__border-radius)',
111
- overflow: 'hidden',
112
- height: '90vh',
113
- }, ref: dialogRef, onDismiss: () => props.onHide?.(), onKeyDown: (event) => {
109
+ React.createElement(Dialog, { modal: props.modal ?? true, isOpen: true, showCloseButton: false, focusOnBrowserVisible: true, className: "twa:rounded-standard twa:overflow-hidden twa:h-[90vh]", ref: dialogRef, onDismiss: () => props.onHide?.(), onKeyDown: (event) => {
114
110
  if (event.metaKey || event.ctrlKey) {
115
111
  const { key } = event;
116
112
  if (!isNaN(Number(key))) {
@@ -127,64 +123,54 @@ export const OnePageWizard = (props) => {
127
123
  }
128
124
  }
129
125
  } },
130
- React.createElement(Flex, { className: "ab-OnePageWizard", flexDirection: "column", "data-name": props.name, style: {
131
- height: '100%',
132
- width: '90vw',
133
- maxWidth: 1200,
134
- ...props.style,
135
- } },
136
- React.createElement(Flex, { flexDirection: "row", alignItems: "stretch", flex: 1, style: { overflow: 'auto' } },
137
- React.createElement(Flex, { flexDirection: "column", padding: 3, className: "ab-OnePageWizard__section-title-container", ref: sizeOwnerRef, style: {
138
- overflow: 'auto',
139
- position: 'relative',
140
- flex: 'none',
141
- ...props.titleContainerStyle,
142
- } },
126
+ React.createElement(Box, { className: clsx('ab-OnePageWizard twa:flex twa:flex-col twa:h-full twa:w-[90vw] twa:max-w-[1200px]', 'twa:bg-primarylight twa:text-primary-foreground'), "data-name": props.name, style: props.style },
127
+ React.createElement(Flex, { flexDirection: "row", alignItems: "stretch", className: "twa:flex-1 twa:overflow-auto" },
128
+ React.createElement(Flex, { flexDirection: "column", className: "ab-OnePageWizard__section-title-container twa:p-3 twa:flex-none twa:overflow-auto twa:relative", ref: sizeOwnerRef, style: props.titleContainerStyle },
143
129
  visibleSections.map((section, index) => {
144
130
  if (section === '-') {
145
- return (React.createElement(Box, { as: "hr", mt: 2, className: "ab-OnePageWizard__section-separator", key: `${index}-`, style: {
146
- width: '100%',
147
- border: 'none',
148
- borderTop: `1px solid var(--ab-color-inputborder)`,
149
- } }));
131
+ return (React.createElement(Box, { as: "hr", className: "ab-OnePageWizard__section-separator twa:mt-2 twa:w-full twa:border-t twa:border-t-inputborder", key: `${index}-` }));
150
132
  }
151
133
  navIndex++;
152
134
  navIndexMap.set(navIndex, index);
153
135
  const active = index === currentSection;
154
136
  const disabled = false; //!active && !currentSectionValid;
155
- return (React.createElement(Flex, { className: "ab-OnePageWizard__section-title", "data-name": section.title, flexDirection: "row", style: {
156
- cursor: disabled ? 'auto' : 'pointer',
157
- zIndex: 10,
137
+ return (React.createElement(Flex, { className: clsx('ab-OnePageWizard__section-title twa:p-2', {
138
+ 'twa:cursor-auto': disabled,
139
+ 'twa:cursor-pointer': !disabled,
140
+ 'twa:z-10': true,
141
+ 'twa:opacity-50': disabled,
142
+ 'twa:opacity-100': !disabled,
143
+ 'twa:mt-2': index > 0,
144
+ 'twa:mt-0': index === 0,
145
+ 'twa:text-accent-foreground twa:pointer-events-none': active,
146
+ }), "data-name": section.title, flexDirection: "row", style: {
158
147
  transition: 'color 0.2s',
159
- opacity: disabled ? 0.5 : 1,
160
- }, key: section.title, color: active ? 'var(--ab-cmp-one-page-wizard-section-title__color)' : '', px: 2, py: 1, mt: index ? 2 : 0, onClick: () => {
148
+ }, key: section.title, onClick: () => {
161
149
  if (disabled) {
162
150
  return;
163
151
  }
152
+ if (active) {
153
+ return;
154
+ }
164
155
  setCurrentSection(index);
165
156
  } },
166
- React.createElement(KeyHint, { mr: 2, style: { display: 'inline-block' } }, navIndex),
167
- React.createElement("div", { style: { flex: 1 } }, section.title),
168
- React.createElement(Icon, { name: "error", style: {
169
- marginLeft: 'var(--ab-space-2)',
170
- visibility: validSectionsMap.get(index) !== true ? 'visible' : 'hidden',
171
- } })));
157
+ React.createElement(KeyHint, { className: "twa:mr-2 twa:inline-block twa:text-color-accent-foreground" }, navIndex),
158
+ React.createElement("div", { className: "twa:flex-1" }, section.title),
159
+ React.createElement(Icon, { name: "error", className: clsx('twa:ml-2', validSectionsMap.get(index) !== true ? 'twa:visible' : 'twa:hidden') })));
172
160
  }),
173
161
  selectedFeedback,
174
- React.createElement(Box, { flex: 1 }),
175
- React.createElement(KeyHint, { style: { lineHeight: 1.5 }, className: "ab-OnePageWizard__key-hint" },
162
+ React.createElement(Box, { className: "twa:flex-1" }),
163
+ React.createElement(KeyHint, { className: "ab-OnePageWizard__key-hint twa:leading-normal" },
176
164
  isMacLike() ? 'Cmd' : 'Ctrl',
177
165
  " + #",
178
166
  React.createElement("br", null),
167
+ "or arrow keys",
168
+ React.createElement("br", null),
179
169
  "to navigate")),
180
- React.createElement(Flex, { flex: 1, flexDirection: "column", className: "ab-OnePageWizard__section-container" }, renderSection(currentSection))),
181
- React.createElement(Flex, { flexDirection: "row", padding: 2, alignItems: "center", className: "ab-WizardDialog__footer ab-OnePageWizard__footer" },
170
+ React.createElement(Flex, { flexDirection: "column", className: "ab-OnePageWizard__section-container twa:flex-1" }, renderSection(currentSection))),
171
+ React.createElement(Flex, { flexDirection: "row", alignItems: "center", className: "ab-WizardDialog__footer ab-OnePageWizard__footer twa:p-2" },
182
172
  React.createElement(SimpleButton, { tone: "neutral", variant: "text", "data-name": "close", onClick: () => props.onHide?.(), tooltip: props.closeTooltip ?? 'Close wizard', accessLevel: 'Full' }, props.closeText ?? 'CLOSE'),
183
- React.createElement(KeyHint, { ml: 2 }, "Esc"),
184
- React.createElement(Text, { fontSize: 2, mr: 3, className: "ab-OnePageWizard__error", style: {
185
- flex: 1,
186
- color: 'var(--ab-color-error)',
187
- textAlign: 'end',
188
- } }, firstErrorMessage),
173
+ React.createElement(KeyHint, { className: "twa:ml-2" }, "Esc"),
174
+ React.createElement(Box, { className: "ab-OnePageWizard__error twa:text-2 twa:mr-3 twa:flex-1 twa:text-error twa:text-end" }, firstErrorMessage),
189
175
  React.createElement(SimpleButton, { tone: "accent", "data-name": "finish", variant: "raised", disabled: canFinish !== true, onClick: () => handleClickFinish(), icon: 'check', accessLevel: 'Full' }, props.finishText ?? 'Finish')))))));
190
176
  };
@@ -1,7 +1,7 @@
1
1
  import * as React from 'react';
2
- import { Flex, Text } from 'rebass';
3
2
  import Radio from '../../components/Radio';
3
+ import { Box, Flex } from '../../components/Flex';
4
4
  export const TypeRadio = (props) => (React.createElement(Radio, { onClick: () => props.onClick?.(), checked: props.checked, value: props.value },
5
5
  React.createElement(Flex, { flexDirection: "column" },
6
- React.createElement(Text, null, props.text),
7
- React.createElement(Text, { fontSize: 2, marginTop: 1 }, props.description))));
6
+ React.createElement(Box, null, props.text),
7
+ React.createElement(Box, { className: "twa:text-2 twa:mt-1" }, props.description))));
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import SimpleButton from '../../components/SimpleButton';
3
- import { Box } from 'rebass';
3
+ import { Box } from '../../components/Flex';
4
4
  export class WizardLegend extends React.Component {
5
5
  render() {
6
6
  let count = this.props.StepNames.length - 1;
@@ -10,11 +10,10 @@ export class WizardLegend extends React.Component {
10
10
  let isDisabled = this.props.CanShowAllSteps
11
11
  ? false
12
12
  : isActiveStep || index > activeStepIndex;
13
- let style = isActiveStep ? 'primary' : 'default';
14
13
  let lastStep = index == count;
15
- return (React.createElement("div", { className: "ab-WizardLegend__step", "data-name": s, key: index, style: { display: 'inline-block' } },
14
+ return (React.createElement("div", { className: "ab-WizardLegend__step twa:inline-block", "data-name": s, key: index },
16
15
  React.createElement(SimpleButton, { variant: isActiveStep ? 'raised' : 'outlined', tone: isActiveStep ? 'accent' : 'neutral', disabled: isDisabled, onClick: () => this.onStepButtonClicked(s) }, s),
17
- lastStep == false && (React.createElement(Box, { mx: 2, "data-name": "separator", className: "ab-WizardLegend__step__separator", style: { display: 'inline-block' } }, "\u2014"))));
16
+ lastStep == false && (React.createElement(Box, { "data-name": "separator", className: "ab-WizardLegend__step__separator twa:mx-2 twa:inline-block" }, "\u2014"))));
18
17
  });
19
18
  return React.createElement("div", null, stepButtons);
20
19
  }
@@ -1,2 +1,2 @@
1
1
  import { OnePageWizardSection } from './OnePageWizards';
2
- export declare const useKeyboardNavigation: <ENTITY>(setCurrentSection: (value: number | ((v: number) => number)) => void, sections: (OnePageWizardSection<ENTITY> | '-')[]) => void;
2
+ export declare const useKeyboardNavigation: <ENTITY>(setCurrentSection: (value: number | ((v: number) => number)) => void, sections: (OnePageWizardSection<ENTITY> | "-")[]) => (event: KeyboardEvent) => void;
@@ -1,9 +1,12 @@
1
1
  import * as React from 'react';
2
- import { useGlobalEvent } from '../../components/utils/useGlobalEvent';
3
2
  export const useKeyboardNavigation = (setCurrentSection, sections) => {
4
3
  const handleKeyPress = React.useCallback((event) => {
5
- if ((event.ctrlKey || event.metaKey) &&
6
- (event.code === 'ArrowUp' || event.code === 'ArrowDown')) {
4
+ if (
5
+ // (event.ctrlKey || event.metaKey) &&
6
+ event.code === 'ArrowUp' ||
7
+ event.code === 'ArrowDown') {
8
+ event.preventDefault();
9
+ event.stopPropagation();
7
10
  const isKeyUp = event.code === 'ArrowUp';
8
11
  const validIndexes = sections.reduce((acc, item, index) => {
9
12
  if (item !== '-') {
@@ -27,5 +30,5 @@ export const useKeyboardNavigation = (setCurrentSection, sections) => {
27
30
  });
28
31
  }
29
32
  }, [sections, setCurrentSection]);
30
- useGlobalEvent('keydown', handleKeyPress);
33
+ return handleKeyPress;
31
34
  };
@@ -1,12 +1,9 @@
1
1
  import * as React from 'react';
2
2
  import { Provider } from 'react-redux';
3
- import { ThemeProvider } from 'styled-components';
4
- import theme from '../theme';
5
3
  import AdaptableContext from './AdaptableContext';
6
4
  import { WithAdaptableComputedCSSVars } from './AdaptableComputedCSSVarsContext';
7
5
  export const renderWithAdaptableContext = (children, adaptable) => {
8
6
  return (React.createElement(Provider, { store: adaptable.adaptableStore.TheStore },
9
- React.createElement(ThemeProvider, { theme: theme },
10
- React.createElement(WithAdaptableComputedCSSVars, null,
11
- React.createElement(AdaptableContext.Provider, { value: adaptable }, children)))));
7
+ React.createElement(WithAdaptableComputedCSSVars, null,
8
+ React.createElement(AdaptableContext.Provider, { value: adaptable }, children))));
12
9
  };
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import { AdaptableOptions } from '../AdaptableOptions/AdaptableOptions';
3
2
  import { ChartRef, Column, GridApi, GridOptions, IRowNode, Module, RowModelType } from 'ag-grid-enterprise';
4
3
  import { AdaptableLogger } from './AdaptableLogger';
@@ -21,12 +20,12 @@ import { Fdc3Service } from '../Utilities/Services/Fdc3Service';
21
20
  import { AnnotationsService } from '../Utilities/Services/AnnotationsService';
22
21
  import { IModuleCollection } from '../Strategy/Interface/IModule';
23
22
  import { AgGridMenuAdapter } from './AgGridMenuAdapter';
24
- import { AdaptableColumn, AdaptableTheme, ChartDefinition, ColumnSort, InFilterValueResult, DataUpdateConfig, GridCell, Layout, SelectedCellInfo, SelectedRowInfo } from '../types';
23
+ import { AdaptableColumn, AdaptableTheme, ChartDefinition, ColumnSort, DataUpdateConfig, GridCell, InFilterValueResult, Layout, SelectedCellInfo, SelectedRowInfo } from '../types';
25
24
  import { RenderReactRootFn } from '../renderReactRoot';
26
25
  import { AgGridOptionsService } from './AgGridOptionsService';
27
26
  import { AgGridColumnAdapter } from './AgGridColumnAdapter';
28
27
  import { RowFormService } from '../Utilities/Services/RowFormService';
29
- import { GridCellWithCount, GridCellWithChildren } from '../AdaptableState/Selection/GridCell';
28
+ import { GridCellWithChildren, GridCellWithCount } from '../AdaptableState/Selection/GridCell';
30
29
  import { FlashingCellService } from '../Utilities/Services/FlashingCellService';
31
30
  import { AgGridExportAdapter } from './AgGridExportAdapter';
32
31
  import { PivotLayoutModel, TableLayoutModel } from '../layout-manager/src/LayoutManagerModel';
@@ -149,9 +148,19 @@ export declare class AdaptableAgGrid implements IAdaptable {
149
148
  private normaliseToolPanelState;
150
149
  private getCurrentLayoutModel;
151
150
  silentUpdateCurrentLayoutModel(layoutModel?: TableLayoutModel | PivotLayoutModel): void;
151
+ /**
152
+ * Returns TRUE if filtering was applied, FALSE otherwise
153
+ * This is important in the INIT phase because applying filtering will automatically refresh AG Grids columnState,
154
+ * implicitly refreshing the sorting state too (hence we don't need to apply sorting separately)
155
+ */
152
156
  applyFiltering(config?: {
153
157
  updateColumnFilterModel?: boolean;
154
- }): void;
158
+ }): boolean;
159
+ /**
160
+ * Checks if the current layout has ColumnSorts for columns that have CustomSort defined
161
+ * (either via initialState CustomSorts or via customSortComparers option) and refreshes the sort if needed.
162
+ */
163
+ private refreshInitialSortIfNeeded;
155
164
  showQuickFilter(): void;
156
165
  hideQuickFilter(): void;
157
166
  private normalizeAdaptableOptions;
@@ -102,6 +102,10 @@ import { AgGridModulesAdapter } from './AgGridModulesAdapter';
102
102
  import { getMarker } from '../devTools';
103
103
  import { DeepMap } from '@infinite-table/infinite-react';
104
104
  import { DateFormatter } from '../Utilities/Helpers/FormatHelper';
105
+ import { clearPredicateDefMapMemo } from '../Api/Implementation/PredicateApiImpl';
106
+ import { AgGridFilterAdapterFactory } from './AgGridFilterAdapter';
107
+ import { AdaptableFilterHandler } from './AdaptableFilterHandler';
108
+ import { AgGridFloatingFilterAdapterFactory } from './AgGridFloatingFilterAdapter';
105
109
  const LocalEventService_Prototype = LocalEventService.prototype;
106
110
  const LocalEventService_dispatchEvent = LocalEventService_Prototype.dispatchEvent;
107
111
  LocalEventService_Prototype.dispatchEvent = function (event) {
@@ -446,10 +450,14 @@ export class AdaptableAgGrid {
446
450
  this.api.themeApi.applyCurrentTheme();
447
451
  this.validatePrimaryKey();
448
452
  this.checkShouldClearExistingFiltersOrSearches();
449
- // FIXME AFL FILTER: talk with Radu: should ColumnFilters still be ignored?!
450
- // see layoutModel.Ignore_ColumnFilters
451
453
  // initial filter model
452
- this.applyFiltering();
454
+ const filteringApplied = this.applyFiltering();
455
+ // We may need to re-apply sort if there are ColumnSorts for columns with CustomSort defined
456
+ // This is required because AG Grid wasn't aware of the CustomSort when applying sorting initially
457
+ // this is not required when filtering was applied because filtering also triggers a sort refresh internally
458
+ if (!filteringApplied) {
459
+ this.refreshInitialSortIfNeeded();
460
+ }
453
461
  // apply quick search if there is one
454
462
  // yes, we could have put this on the gridOptions.findSearchValue
455
463
  // but we need to wait for setupColumns to run first so as to correctly
@@ -621,26 +629,67 @@ You need to define at least one Layout!`);
621
629
  normalize: true,
622
630
  });
623
631
  }
632
+ /**
633
+ * Returns TRUE if filtering was applied, FALSE otherwise
634
+ * This is important in the INIT phase because applying filtering will automatically refresh AG Grids columnState,
635
+ * implicitly refreshing the sorting state too (hence we don't need to apply sorting separately)
636
+ */
624
637
  applyFiltering(config) {
638
+ let filteringApplied = false;
625
639
  // default updateColumnFilterModel to TRUE, if not provided
626
640
  const updateColumnFilterModel = config?.updateColumnFilterModel ?? true;
627
641
  const agGridApi = this.agGridAdapter.getAgGridApi();
628
642
  if (updateColumnFilterModel) {
629
643
  const columnFilters = this.api.filterApi.columnFilterApi
630
644
  .getActiveColumnFilters()
631
- // FIXME AFL: we need this additional filter because 'getActiveColumnFilters' checks only for suspended while 'isColumnFilterActive' also checkss for COMPLETE filters
645
+ // we need this additional filter because 'getActiveColumnFilters' checks only for suspended while 'isColumnFilterActive' also checkss for COMPLETE filters
632
646
  .filter((columnFilter) => this.api.filterApi.columnFilterApi.isColumnFilterActive(columnFilter));
633
647
  const filterModel = {};
634
648
  columnFilters.forEach((columnFilter) => {
635
649
  filterModel[columnFilter.ColumnId] = columnFilter;
636
650
  });
637
651
  agGridApi.setFilterModel(filterModel);
652
+ filteringApplied = Object.keys(filterModel).length > 0;
638
653
  }
639
654
  // FIXME AFL FILTER why is this needed???
640
655
  this.refreshSelectedCellsState();
641
656
  this.refreshSelectedRowsState();
642
- agGridApi.onFilterChanged();
657
+ // FIXME AFL: this is temporary, will be replaced with v22's new autoCol filtering
658
+ const currentPivotLayoutHasAutoCols = this.api.layoutApi.isCurrentLayoutPivot() &&
659
+ !!this.api.layoutApi.getCurrentRowGroupsColumnIds()?.length;
660
+ // agGridApi.setFilterModel() already triggered onFilterChanged(), so we skip it if updateColumnFilterModel is TRUE
661
+ if (!filteringApplied || currentPivotLayoutHasAutoCols) {
662
+ agGridApi.onFilterChanged();
663
+ filteringApplied = true;
664
+ }
643
665
  this._emit('AdapTableFiltersApplied');
666
+ return filteringApplied;
667
+ }
668
+ /**
669
+ * Checks if the current layout has ColumnSorts for columns that have CustomSort defined
670
+ * (either via initialState CustomSorts or via customSortComparers option) and refreshes the sort if needed.
671
+ */
672
+ refreshInitialSortIfNeeded() {
673
+ const currentLayout = this.api.layoutApi.getCurrentLayout();
674
+ const columnSorts = currentLayout?.ColumnSorts;
675
+ if (!columnSorts || columnSorts.length === 0) {
676
+ return;
677
+ }
678
+ const hasCustomSortForSortedColumn = columnSorts.some((columnSort) => {
679
+ // Check if there's a CustomSort defined in state for this column
680
+ const customSort = this.api.customSortApi.getCustomSortForColumn(columnSort.ColumnId);
681
+ if (customSort && !customSort.IsSuspended) {
682
+ return true;
683
+ }
684
+ // Check if there's a customSortComparer defined in options for this column
685
+ if (this.api.customSortApi.internalApi.columnHasCustomSortComparer(columnSort.ColumnId)) {
686
+ return true;
687
+ }
688
+ return false;
689
+ });
690
+ if (hasCustomSortForSortedColumn) {
691
+ this.layoutManager.refreshSort();
692
+ }
644
693
  }
645
694
  showQuickFilter() {
646
695
  const height = this.api.optionsApi.getFilterOptions().columnFilterOptions.quickFilterHeight;
@@ -721,6 +770,92 @@ You need to define at least one Layout!`);
721
770
  });
722
771
  return defaultColGroupDef;
723
772
  });
773
+ /**
774
+ * `autoGroupColumnDef`
775
+ */
776
+ this.agGridOptionsService.setGridOptionsProperty(gridOptions, 'autoGroupColumnDef', (original_autoGroupColumnDef) => {
777
+ // #autoGroupColumnDef
778
+ const useAdaptableFilter = this.adaptableOptions.filterOptions.useAdaptableFiltering;
779
+ if (!useAdaptableFilter) {
780
+ return original_autoGroupColumnDef;
781
+ }
782
+ if (original_autoGroupColumnDef?.filter === false) {
783
+ // if user disables filter on autoGroupColumnDef, we respect that
784
+ this.logger.info(`autoGroupColumnDef.filter is disabled as per user configuration.`);
785
+ return original_autoGroupColumnDef;
786
+ }
787
+ if (typeof original_autoGroupColumnDef?.filter === 'object') {
788
+ this.logger.warn(`autoGroupColumnDef.filter is set and overrides the Adaptable custom filter mechanism! We recommend using a ColumnOptions.columnHeader instead!`);
789
+ return original_autoGroupColumnDef;
790
+ }
791
+ const autoGroupColumnDef = { ...original_autoGroupColumnDef };
792
+ // this is required to make sure that AG Grid doesn't disable the filter
793
+ // !! DO NOT REMOVE THIS !!
794
+ // see https://github.com/ag-grid/ag-grid/blob/6f43ff257c2e285068eb425b655e58d6eeb89816/packages/ag-grid-enterprise/src/rowHierarchy/autoColService.ts#L225
795
+ autoGroupColumnDef.filterValueGetter = (params) => {
796
+ this.logger.error('autoGroupColumnDef.filterValueGetter was called unexpectedly; this is not an expected execution path!', params);
797
+ return '';
798
+ };
799
+ // !! it is important that we always return the same component / handler instances
800
+ // otherwise AG Grid will re-create the filter instance on each filterModel change
801
+ const autoGroupFilterComponent = AgGridFilterAdapterFactory(this);
802
+ const autoGroupFilterHandlerGenerator = () => new AdaptableFilterHandler(this.api);
803
+ // Use a getter to dynamically return different filter values based on Layout.RowGroupDisplayType
804
+ Object.defineProperty(autoGroupColumnDef, 'filter', {
805
+ get: () => {
806
+ const rowGroupDisplayType = this.api.layoutApi.internalApi.getCurrentLayoutRowGroupDisplayType();
807
+ if (rowGroupDisplayType === 'single') {
808
+ return {
809
+ component: autoGroupFilterComponent,
810
+ handler: autoGroupFilterHandlerGenerator,
811
+ };
812
+ }
813
+ const groupedColumnFilterConfig = this.api.layoutApi.internalApi.areAllGroupedColumnsFilterable();
814
+ if (groupedColumnFilterConfig.filter) {
815
+ return 'agGroupColumnFilter';
816
+ }
817
+ return original_autoGroupColumnDef?.filter;
818
+ },
819
+ enumerable: true,
820
+ configurable: true,
821
+ });
822
+ if (original_autoGroupColumnDef?.floatingFilter !== false) {
823
+ autoGroupColumnDef.suppressFloatingFilterButton = true;
824
+ Object.defineProperty(autoGroupColumnDef, 'floatingFilter', {
825
+ get: () => {
826
+ const rowGroupDisplayType = this.api.layoutApi.internalApi.getCurrentLayoutRowGroupDisplayType();
827
+ if (rowGroupDisplayType === 'single') {
828
+ return true;
829
+ }
830
+ if (rowGroupDisplayType === 'multi') {
831
+ const groupedColumnFilterConfig = this.api.layoutApi.internalApi.areAllGroupedColumnsFilterable();
832
+ if (groupedColumnFilterConfig.floatingFilter) {
833
+ return true;
834
+ }
835
+ }
836
+ return original_autoGroupColumnDef?.floatingFilter;
837
+ },
838
+ enumerable: true,
839
+ configurable: true,
840
+ });
841
+ // !! it is important that we always return the same component / handler instances
842
+ // otherwise AG Grid will re-create the filter instance on each filterModel change
843
+ const autoGroupFloatingFilterComponent = AgGridFloatingFilterAdapterFactory(this);
844
+ // Use a getter to dynamically return different floatingFilterComponent values based on Layout.RowGroupDisplayType
845
+ Object.defineProperty(autoGroupColumnDef, 'floatingFilterComponent', {
846
+ get: () => {
847
+ const rowGroupDisplayType = this.api.layoutApi.internalApi.getCurrentLayoutRowGroupDisplayType();
848
+ if (rowGroupDisplayType === 'single') {
849
+ return autoGroupFloatingFilterComponent;
850
+ }
851
+ return;
852
+ },
853
+ enumerable: true,
854
+ configurable: true,
855
+ });
856
+ }
857
+ return autoGroupColumnDef;
858
+ });
724
859
  /**
725
860
  * `theme`
726
861
  */
@@ -1679,19 +1814,7 @@ You need to define at least one Layout!`);
1679
1814
  deriveAdaptableColumnStateFromAgGrid() {
1680
1815
  const allColumns = [];
1681
1816
  const gridApi = this.agGridAdapter.getAgGridApi();
1682
- const isPivot = this.isInPivotMode();
1683
- let agGridCols = isPivot
1684
- ? gridApi.getColumns()
1685
- : // we call getAllGridColumns because we want to also have the generated group columns
1686
- gridApi.getAllGridColumns();
1687
- if (isPivot) {
1688
- // let's also support the pivot result columns
1689
- const pivotResultColumns = gridApi.getPivotResultColumns() || [];
1690
- const autoGroupColumns = gridApi
1691
- .getAllGridColumns()
1692
- .filter((column) => this.api.columnApi.isAutoRowGroupColumn(column.getColId()));
1693
- agGridCols = [...autoGroupColumns, ...agGridCols, ...pivotResultColumns];
1694
- }
1817
+ let agGridCols = this.agGridColumnAdapter.getAllAgGridColumns();
1695
1818
  const columnGroupChildren = gridApi.getAllDisplayedColumnGroups();
1696
1819
  const groupsCount = {};
1697
1820
  const colsToGroups = (columnGroupChildren ?? []).reduce((acc, columnGroup) => {
@@ -1764,14 +1887,21 @@ You need to define at least one Layout!`);
1764
1887
  let _displayValue = defaults ? defaults.displayValue : undefined;
1765
1888
  let _normalisedValue = defaults ? defaults.normalisedValue : undefined;
1766
1889
  let _isRowGroupCell;
1767
- const _isPivotCell = this.api.columnApi.isPivotResultColumn(columnId) ||
1768
- this.api.columnApi.isPivotAggColumnWithNoPivotColumns(columnId);
1890
+ let _isPivotCell;
1769
1891
  const self = this;
1770
1892
  const api = this.api;
1893
+ const getIsPivotCell = () => {
1894
+ if (_isPivotCell === undefined) {
1895
+ _isPivotCell =
1896
+ api.columnApi.isPivotResultColumn(columnId) ||
1897
+ api.columnApi.isPivotAggColumnWithNoPivotColumns(columnId);
1898
+ }
1899
+ return _isPivotCell;
1900
+ };
1771
1901
  const getRawValue = () => {
1772
1902
  if (_rawValue === undefined) {
1773
1903
  _rawValue = self.getRawValueFromRowNode(rowNode, columnId);
1774
- if (_isPivotCell && _rawValue?.value != undefined) {
1904
+ if (_rawValue?.value != undefined && getIsPivotCell()) {
1775
1905
  // for pivot result columns, the raw value is an object with a value property
1776
1906
  // we want to return the value property as the raw value
1777
1907
  _rawValue = _rawValue.value;
@@ -1814,7 +1944,7 @@ You need to define at least one Layout!`);
1814
1944
  return _primaryKeyValue;
1815
1945
  },
1816
1946
  get isPivotCell() {
1817
- return _isPivotCell;
1947
+ return getIsPivotCell();
1818
1948
  },
1819
1949
  get isRowGroupCell() {
1820
1950
  if (_isRowGroupCell === undefined) {
@@ -3386,6 +3516,7 @@ You need to define at least one Layout!`);
3386
3516
  this.__prevLayoutForRefresh = undefined;
3387
3517
  this.layoutManager?.destroy();
3388
3518
  this.layoutManager = null;
3519
+ clearPredicateDefMapMemo();
3389
3520
  const agGridApi = this.agGridAdapter?.getAgGridApi();
3390
3521
  if (agGridApi && !agGridApi.isDestroyed()) {
3391
3522
  agGridApi.removeEventListener('firstDataRendered', this.listenerFirstDataRendered);
@@ -3967,7 +4098,8 @@ You need to define at least one Layout!`);
3967
4098
  }
3968
4099
  }
3969
4100
  // also we need to reset the cache for the group column, when we have rowGripDisplayType single
3970
- if (layout.RowGroupDisplayType === 'single') {
4101
+ if (layout.RowGroupDisplayType === 'single' &&
4102
+ (layout.RowGroupedColumns?.length || layout.PivotGroupedColumns?.length)) {
3971
4103
  this.api.filterApi.columnFilterApi.resetFilterValues(AG_GRID_GROUPED_COLUMN);
3972
4104
  }
3973
4105
  }
@@ -1,16 +1,15 @@
1
1
  import { DoesFilterPassParams, FilterHandler, FilterHandlerParams } from 'ag-grid-enterprise';
2
2
  import { AdaptableApi } from '../Api/AdaptableApi';
3
- import { ColumnSetupInfo } from '../AdaptableState/Common/ColumnSetupInfo';
4
3
  import { InFilterValueResult } from '../AdaptableOptions/FilterOptions';
5
4
  import { ColumnFilter } from '../types';
6
- export declare class AdaptableFilterHandler implements FilterHandler {
5
+ export declare class AdaptableFilterHandler implements FilterHandler<any, any, ColumnFilter> {
7
6
  private adaptableApi;
8
- readonly colId: string;
7
+ colId: string;
9
8
  private filterDisplayValuesResult;
10
9
  private previousFilterDisplayValuesResult;
11
- constructor(adaptableApi: AdaptableApi, columnSetup: ColumnSetupInfo);
12
- getCurrentColumnFilters(): ColumnFilter[];
13
- doesFilterPass(params: DoesFilterPassParams): boolean;
10
+ constructor(adaptableApi: AdaptableApi);
11
+ init(params: FilterHandlerParams): void;
12
+ doesFilterPass(params: DoesFilterPassParams<any, any, ColumnFilter>): boolean;
14
13
  getCachedFilterDisplayValues(): InFilterValueResult | undefined;
15
14
  getLastCachedFilterDisplayValues(): InFilterValueResult | undefined;
16
15
  getFromCacheOrFetchFilterDisplayValues(options: {