@adaptabletools/adaptable-cjs 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 (573) 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/AdaptableOptions/DefaultAdaptableOptions.js +2 -2
  7. package/src/AdaptableState/ChartingState.d.ts +1 -1
  8. package/src/AdaptableState/Common/AdaptableAlert.d.ts +2 -2
  9. package/src/AdaptableState/Common/AdaptableColumn.js +2 -2
  10. package/src/AdaptableState/Common/AdaptableForm.js +1 -2
  11. package/src/AdaptableState/Common/AdaptableIcon.d.ts +1 -1
  12. package/src/AdaptableState/Common/AdaptablePredicate.js +7 -3
  13. package/src/AdaptableState/Common/AggregationColumns.d.ts +3 -3
  14. package/src/AdaptableState/Common/DataUpdateConfig.d.ts +4 -4
  15. package/src/AdaptableState/TeamSharingState.d.ts +1 -1
  16. package/src/Api/CustomSortApi.d.ts +6 -1
  17. package/src/Api/Implementation/ColumnApiImpl.d.ts +3 -0
  18. package/src/Api/Implementation/ColumnApiImpl.js +22 -10
  19. package/src/Api/Implementation/CustomSortApiImpl.d.ts +2 -1
  20. package/src/Api/Implementation/CustomSortApiImpl.js +5 -1
  21. package/src/Api/Implementation/LayoutApiImpl.d.ts +1 -0
  22. package/src/Api/Implementation/LayoutApiImpl.js +85 -2
  23. package/src/Api/Implementation/LayoutHelpers.d.ts +2 -2
  24. package/src/Api/Implementation/LayoutHelpers.js +2 -2
  25. package/src/Api/Implementation/PredicateApiImpl.d.ts +1 -0
  26. package/src/Api/Implementation/PredicateApiImpl.js +17 -2
  27. package/src/Api/Implementation/ScheduleApiImpl.d.ts +1 -0
  28. package/src/Api/Implementation/ScheduleApiImpl.js +12 -0
  29. package/src/Api/Implementation/ShortcutApiImpl.d.ts +1 -0
  30. package/src/Api/Implementation/ShortcutApiImpl.js +4 -0
  31. package/src/Api/Implementation/StyledColumnApiImpl.d.ts +1 -0
  32. package/src/Api/Implementation/StyledColumnApiImpl.js +4 -0
  33. package/src/Api/Internal/AdaptableInternalApi.d.ts +0 -1
  34. package/src/Api/Internal/AdaptableInternalApi.js +3 -3
  35. package/src/Api/Internal/ColumnFilterInternalApi.js +1 -0
  36. package/src/Api/Internal/ColumnInternalApi.js +2 -2
  37. package/src/Api/Internal/LayoutInternalApi.d.ts +6 -0
  38. package/src/Api/Internal/LayoutInternalApi.js +34 -0
  39. package/src/Api/LayoutApi.d.ts +7 -1
  40. package/src/Api/ScheduleApi.d.ts +5 -0
  41. package/src/Api/ShortcutApi.d.ts +5 -0
  42. package/src/Api/StyledColumnApi.d.ts +5 -0
  43. package/src/Redux/ActionsReducers/CommentsRedux.d.ts +1 -1
  44. package/src/Redux/ActionsReducers/DashboardRedux.d.ts +1 -1
  45. package/src/Redux/ActionsReducers/InternalRedux.d.ts +6 -6
  46. package/src/Redux/ActionsReducers/LayoutRedux.d.ts +3 -9
  47. package/src/Redux/ActionsReducers/StyledColumnRedux.d.ts +6 -6
  48. package/src/Redux/ActionsReducers/StyledColumnRedux.js +16 -16
  49. package/src/Redux/ActionsReducers/utils.js +3 -4
  50. package/src/Redux/Store/AdaptableReduxLocalStorageEngine.js +4 -2
  51. package/src/Redux/Store/AdaptableReduxMerger.js +5 -5
  52. package/src/Redux/Store/buildAdaptableStateFunctionConfig.js +1 -2
  53. package/src/Strategy/FormatColumnModule.js +2 -2
  54. package/src/Strategy/Utilities/Alert/getAlertPreviewViewItems.js +1 -1
  55. package/src/Strategy/Utilities/FormatColumn/getFormatColumnSettingsViewItems.js +2 -1
  56. package/src/Strategy/Utilities/Layout/getLayoutFilterViewItems.js +4 -3
  57. package/src/Utilities/ExpressionFunctions/deepMap.js +2 -2
  58. package/src/Utilities/ExpressionFunctions/expressionFunctionUtils.d.ts +4 -4
  59. package/src/Utilities/ExpressionFunctions/groupingMap.js +1 -2
  60. package/src/Utilities/ExpressionFunctions/scalarAggregationHelper.js +1 -2
  61. package/src/Utilities/Extensions/ArrayExtensions.js +37 -37
  62. package/src/Utilities/Extensions/EnumExtensions.js +3 -3
  63. package/src/Utilities/Extensions/NumberExtensions.js +5 -5
  64. package/src/Utilities/Extensions/ObjectExtensions.js +3 -3
  65. package/src/Utilities/Extensions/StringExtensions.d.ts +1 -1
  66. package/src/Utilities/Extensions/StringExtensions.js +20 -20
  67. package/src/Utilities/Helpers/AdaptableHelper.js +8 -8
  68. package/src/Utilities/Helpers/FormatHelper.js +3 -4
  69. package/src/Utilities/Helpers/Helper.js +18 -18
  70. package/src/Utilities/Helpers/PreviewHelper.js +5 -5
  71. package/src/Utilities/Helpers/StyleHelper.d.ts +1 -1
  72. package/src/Utilities/Hooks/useAdaptableColumn.js +1 -2
  73. package/src/Utilities/Hooks/useAdaptableState.js +1 -2
  74. package/src/Utilities/ObjectFactory.js +40 -40
  75. package/src/Utilities/Services/Interface/IAlertService.d.ts +2 -2
  76. package/src/Utilities/Services/LicenseService/shouldLogThankYouMessage.js +1 -2
  77. package/src/Utilities/adaptableOverrideCheck.js +2 -3
  78. package/src/Utilities/createAgStatusPanelComponent.d.ts +1 -1
  79. package/src/Utilities/getObjectTagsViewItems.js +1 -1
  80. package/src/Utilities/license/hashing.js +1 -1
  81. package/src/Utilities/runIfNotResolvedIn.d.ts +1 -1
  82. package/src/Utilities/sortColumnStateForVisibleColumns.js +1 -2
  83. package/src/Utilities/updateSingleToMultiplePredicates.js +1 -2
  84. package/src/Utilities/waitForTimeout.js +1 -2
  85. package/src/View/AdaptableComputedCSSVarsContext.js +6 -1
  86. package/src/View/AdaptablePopover/index.d.ts +1 -1
  87. package/src/View/AdaptablePopover/index.js +5 -5
  88. package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/AdaptableOptionsForm.js +8 -9
  89. package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/ColumnsList.js +9 -8
  90. package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/Components/FormBox.d.ts +4 -2
  91. package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/Components/FormBox.js +3 -3
  92. package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/EntitlementsForm.js +9 -9
  93. package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/GridOptionsForm.js +3 -3
  94. package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/UIOptions/UIOptionsSidebarForm.js +5 -5
  95. package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/UIOptions/UIOptionsStatusbarForm.js +6 -6
  96. package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/UIOptions/UiOptionsForm.js +2 -2
  97. package/src/View/AdaptableWizardView/Wizard.js +2 -2
  98. package/src/View/AdaptableWizardView/index.js +1 -4
  99. package/src/View/Alert/ActiveAlertsPanelItemLabel.js +3 -3
  100. package/src/View/Alert/AlertStatusSubPanel.js +1 -1
  101. package/src/View/Alert/AlertViewPanel.js +4 -4
  102. package/src/View/Alert/Utilities/getDefaultAlertDefinition.d.ts +3 -20
  103. package/src/View/Alert/Wizard/AlertBehaviourWizardSection.js +17 -15
  104. package/src/View/Alert/Wizard/AlertButtonsEditor.js +29 -26
  105. package/src/View/Alert/Wizard/AlertMessageWizardSection.js +12 -16
  106. package/src/View/Alert/Wizard/AlertNotificationWizardSection.d.ts +3 -1
  107. package/src/View/Alert/Wizard/AlertNotificationWizardSection.js +7 -7
  108. package/src/View/Alert/Wizard/AlertRulesWizardSection.js +2 -2
  109. package/src/View/Alert/Wizard/AlertScopeWizardSection.js +2 -2
  110. package/src/View/Alert/Wizard/AlertTypeWizardSection.js +3 -3
  111. package/src/View/Alert/Wizard/AlertWizard.js +8 -8
  112. package/src/View/Alert/Wizard/BaseAlertScopeWizardSection.js +13 -10
  113. package/src/View/BulkUpdate/BulkUpdatePopup.js +11 -11
  114. package/src/View/BulkUpdate/BulkUpdateViewPanel.js +6 -6
  115. package/src/View/CalculatedColumn/CalculatedColumnSummary.d.ts +1 -1
  116. package/src/View/CalculatedColumn/Wizard/CalculatedColumnDefinitionWizardSection.js +11 -11
  117. package/src/View/CalculatedColumn/Wizard/CalculatedColumnExpressionWizardSection.d.ts +1 -1
  118. package/src/View/CalculatedColumn/Wizard/CalculatedColumnExpressionWizardSection.js +4 -4
  119. package/src/View/CalculatedColumn/Wizard/CalculatedColumnSettingsWizardSection.js +6 -7
  120. package/src/View/CalculatedColumn/Wizard/CalculatedColumnTypeSection.d.ts +1 -1
  121. package/src/View/CalculatedColumn/Wizard/CalculatedColumnTypeSection.js +2 -2
  122. package/src/View/CalculatedColumn/Wizard/CalculatedColumnWizard.d.ts +0 -2
  123. package/src/View/CalculatedColumn/Wizard/CalculatedColumnWizard.js +9 -15
  124. package/src/View/CalculatedColumn/Wizard/calculatedColumnTypes.d.ts +2 -0
  125. package/src/View/CalculatedColumn/Wizard/calculatedColumnTypes.js +9 -0
  126. package/src/View/CellSummary/CellSummaryPopup.js +1 -1
  127. package/src/View/CellSummary/CellSummaryViewPanel.js +6 -6
  128. package/src/View/Charting/ChartingStatusBarPopover.js +5 -5
  129. package/src/View/Charting/ChartingViewPanel.js +9 -9
  130. package/src/View/Charting/ChartingWizard/AgChargingWizard/AgChargingWizard.js +4 -4
  131. package/src/View/Charting/ChartingWizard/ExternalChartingWizard/ExternalChartingWizard.js +3 -3
  132. package/src/View/Charting/useChartingElements.d.ts +1 -1
  133. package/src/View/Charting/useChartingElements.js +1 -1
  134. package/src/View/ColumnInfo/ColumnInfo.js +15 -20
  135. package/src/View/ColumnInfo/ColumnInfoPopup.js +2 -2
  136. package/src/View/Comments/CommentsEditor.js +16 -19
  137. package/src/View/Comments/CommentsPopup.js +7 -7
  138. package/src/View/Components/AdaptableDateInput/index.js +1 -1
  139. package/src/View/Components/AdaptableInput/index.js +3 -2
  140. package/src/View/Components/AdaptableObjectCollection/index.d.ts +2 -2
  141. package/src/View/Components/AdaptableObjectCollection/index.js +9 -5
  142. package/src/View/Components/AdaptableObjectList/AdaptableObjectCompactList.js +14 -14
  143. package/src/View/Components/AdaptableObjectList/AdaptableObjectList.d.ts +2 -0
  144. package/src/View/Components/AdaptableObjectList/AdaptableObjectList.js +20 -18
  145. package/src/View/Components/AdaptableObjectRow/index.d.ts +1 -0
  146. package/src/View/Components/AdaptableObjectRow/index.js +5 -6
  147. package/src/View/Components/Buttons/ButtonBase/index.d.ts +1 -2
  148. package/src/View/Components/Buttons/ButtonBase/index.js +5 -4
  149. package/src/View/Components/Buttons/ButtonClear.js +2 -1
  150. package/src/View/Components/Buttons/ButtonFunction.js +2 -1
  151. package/src/View/Components/Buttons/ButtonNew.d.ts +11 -1
  152. package/src/View/Components/Buttons/ButtonNew.js +2 -1
  153. package/src/View/Components/Buttons/EntityListActionButtons.d.ts +1 -1
  154. package/src/View/Components/Buttons/EntityListActionButtons.js +14 -43
  155. package/src/View/Components/Buttons/SuspendToggleButton/SuspendToggleButton.d.ts +1 -0
  156. package/src/View/Components/Buttons/SuspendToggleButton/SuspendToggleButton.js +3 -2
  157. package/src/View/Components/CellPopup/index.d.ts +1 -1
  158. package/src/View/Components/ColumnFilter/AdaptableColumnFilter.d.ts +4 -3
  159. package/src/View/Components/ColumnFilter/ColumnFilter.d.ts +4 -2
  160. package/src/View/Components/ColumnFilter/ColumnFilter.js +29 -26
  161. package/src/View/Components/ColumnFilter/ColumnFilterWindow.js +7 -7
  162. package/src/View/Components/ColumnFilter/FloatingFilter.js +7 -7
  163. package/src/View/Components/ColumnFilter/components/ColumnFilterInput.d.ts +1 -1
  164. package/src/View/Components/ColumnFilter/components/ColumnFilterInput.js +2 -2
  165. package/src/View/Components/ColumnFilter/components/ColumnFilterInputList.js +1 -1
  166. package/src/View/Components/ColumnFilter/components/ColumnFilterMenu.js +6 -6
  167. package/src/View/Components/ColumnFilter/components/FloatingFilterValues.js +2 -2
  168. package/src/View/Components/ColumnFilter/useAdaptableFilterWrapper.d.ts +1 -1
  169. package/src/View/Components/ColumnFilter/useAdaptableFilterWrapper.js +9 -1
  170. package/src/View/Components/ColumnSelector/index.js +1 -3
  171. package/src/View/Components/EntityRulesEditor/EntityRulePredicatesEditor/EntityRulePredicateEditor.js +11 -11
  172. package/src/View/Components/EntityRulesEditor/EntityRulePredicatesEditor/EntityRulePredicatesEditor.js +12 -16
  173. package/src/View/Components/EntityRulesEditor/index.d.ts +5 -2
  174. package/src/View/Components/EntityRulesEditor/index.js +12 -11
  175. package/src/View/Components/ExpressionWizard.js +4 -4
  176. package/src/View/Components/FilterForm/Waiting.d.ts +4 -2
  177. package/src/View/Components/FilterForm/Waiting.js +5 -4
  178. package/src/View/Components/Forms/AdaptableFormControlTextClear.d.ts +1 -0
  179. package/src/View/Components/Forms/AdaptableFormControlTextClear.js +4 -8
  180. package/src/View/Components/ModuleValueSelector/index.js +2 -2
  181. package/src/View/Components/NewScopeComponent.js +26 -26
  182. package/src/View/Components/Panels/PanelFooter.js +5 -5
  183. package/src/View/Components/Panels/PanelToolPanel/index.d.ts +1 -1
  184. package/src/View/Components/Panels/PanelToolPanel/index.js +9 -11
  185. package/src/View/Components/Panels/PanelWithButton.d.ts +3 -5
  186. package/src/View/Components/Panels/PanelWithButton.js +8 -7
  187. package/src/View/Components/Panels/PanelWithImage.d.ts +2 -3
  188. package/src/View/Components/Panels/PanelWithImage.js +11 -13
  189. package/src/View/Components/Panels/PanelWithRow.d.ts +0 -1
  190. package/src/View/Components/Panels/PanelWithRow.js +3 -3
  191. package/src/View/Components/Panels/PanelWithTwoButtons.d.ts +1 -1
  192. package/src/View/Components/Panels/PanelWithTwoButtons.js +3 -3
  193. package/src/View/Components/Popups/AdaptableLoadingScreen.js +4 -7
  194. package/src/View/Components/Popups/AdaptablePopup/AdaptablePopup.js +4 -3
  195. package/src/View/Components/Popups/AdaptablePopup/AdaptablePopupDialog.js +3 -2
  196. package/src/View/Components/Popups/AdaptablePopup/AdaptablePopupModuleView.js +4 -4
  197. package/src/View/Components/Popups/AdaptablePopup/Navigation.js +63 -31
  198. package/src/View/Components/Popups/AdaptablePopup/PopupPanel.d.ts +2 -0
  199. package/src/View/Components/Popups/AdaptablePopup/PopupPanel.js +9 -10
  200. package/src/View/Components/Popups/AdaptablePopup/TopBar.js +5 -4
  201. package/src/View/Components/Popups/AdaptablePopup/useMenuItems.d.ts +1 -1
  202. package/src/View/Components/Popups/AdaptablePopupAlert.js +8 -13
  203. package/src/View/Components/Popups/AdaptablePopupConfirmation.js +6 -6
  204. package/src/View/Components/Popups/AdaptablePopupPrompt.js +8 -8
  205. package/src/View/Components/Popups/AdaptablePopupTeamSharing.js +11 -13
  206. package/src/View/Components/Popups/FormPopups/FormPopups.js +3 -3
  207. package/src/View/Components/Popups/GridCellPopup/GridCellPopup.js +2 -2
  208. package/src/View/Components/Popups/WindowPopups/WindowPopups.js +3 -3
  209. package/src/View/Components/Popups/WindowPopups/windowFactory.d.ts +0 -1
  210. package/src/View/Components/PredicateEditor/PredicateEditor.js +9 -9
  211. package/src/View/Components/PreviewResultsPanel.d.ts +1 -0
  212. package/src/View/Components/PreviewResultsPanel.js +6 -13
  213. package/src/View/Components/RangesComponent.js +23 -23
  214. package/src/View/Components/ReorderDraggable/index.d.ts +2 -0
  215. package/src/View/Components/ReorderDraggable/index.js +9 -9
  216. package/src/View/Components/Selectors/BulkUpdateValueSelector.js +5 -8
  217. package/src/View/Components/Selectors/ColumnSelector.js +1 -1
  218. package/src/View/Components/Selectors/ColumnSelectorOld.js +1 -1
  219. package/src/View/Components/StyleComponent.d.ts +2 -26
  220. package/src/View/Components/StyleComponent.js +186 -190
  221. package/src/View/Components/TagValueSelector/index.d.ts +1 -1
  222. package/src/View/Components/TagValueSelector/index.js +3 -2
  223. package/src/View/Components/ToolPanel/AdaptableToolPanel.d.ts +1 -1
  224. package/src/View/Components/ToolPanel/AdaptableToolPanel.js +13 -12
  225. package/src/View/Components/ToolPanel/ToolPanelPopup.d.ts +1 -1
  226. package/src/View/Components/ToolPanel/ToolPanelPopup.js +13 -10
  227. package/src/View/Components/ToolPanel/ToolPanelWrapper.js +2 -2
  228. package/src/View/Components/ValueSelector/index.d.ts +9 -33
  229. package/src/View/Components/ValueSelector/index.js +40 -64
  230. package/src/View/Components/WizardSummaryPage.js +1 -1
  231. package/src/View/CustomSort/Wizard/CustomSortColumnWizardSection.js +2 -2
  232. package/src/View/CustomSort/Wizard/CustomSortValuesWizardSection.js +3 -6
  233. package/src/View/CustomSort/Wizard/CustomSortWizard.js +5 -5
  234. package/src/View/Dashboard/Dashboard.js +5 -5
  235. package/src/View/Dashboard/DashboardPopup.js +27 -23
  236. package/src/View/Dashboard/DashboardViewPanel.js +5 -5
  237. package/src/View/Dashboard/PinnedDashboard.js +4 -4
  238. package/src/View/Dashboard/PinnedToolbarsSelector.js +3 -2
  239. package/src/View/DataChangeHistory/DataChangeHistoryPopup.js +12 -12
  240. package/src/View/DataChangeHistory/DataChangeHistoryViewPanel.js +9 -9
  241. package/src/View/DataImport/DataImportPopup.js +3 -3
  242. package/src/View/DataImport/DataImportWizard/DataImportWizard.js +2 -2
  243. package/src/View/DataImport/DataImportWizard/sections/ColumnsSection.js +6 -6
  244. package/src/View/DataImport/DataImportWizard/sections/ImportSection.js +4 -4
  245. package/src/View/DataImport/DataImportWizard/sections/UploadSection/UploadFileSection.js +1 -1
  246. package/src/View/DataImport/DataImportWizard/sections/UploadSection/UploadSection.js +5 -5
  247. package/src/View/DataImport/DataImportWizard/sections/UploadSection/UploadTextSection.js +1 -1
  248. package/src/View/DataImport/DataImportWizard/sections/ValidationSection.js +4 -4
  249. package/src/View/DataSet/DataSetViewPanel.d.ts +2 -2
  250. package/src/View/DataSet/DataSetViewPanel.js +3 -3
  251. package/src/View/Export/ExportDestinationPicker.js +2 -1
  252. package/src/View/Export/ExportViewPanel.js +4 -4
  253. package/src/View/Export/ReportFormatSelector.js +3 -3
  254. package/src/View/Export/ReportListItem.js +2 -2
  255. package/src/View/Export/ReportNameSelector.js +3 -3
  256. package/src/View/Export/Wizard/NewReportWizard.js +4 -4
  257. package/src/View/Export/Wizard/ReportColumnTypeWizard.js +8 -8
  258. package/src/View/Export/Wizard/ReportColumnsWizardSection.js +11 -11
  259. package/src/View/Export/Wizard/ReportNameWizardSection.js +5 -5
  260. package/src/View/Export/Wizard/ReportRowTypeWizard.js +8 -8
  261. package/src/View/Export/Wizard/ReportRowsWizardSection.js +9 -9
  262. package/src/View/Export/Wizard/ReportSettingsWizard.js +3 -3
  263. package/src/View/Filter/FilterSummary.d.ts +1 -1
  264. package/src/View/Filter/FilterSummary.js +1 -1
  265. package/src/View/Filter/FilterViewPanel.d.ts +2 -2
  266. package/src/View/Filter/FilterViewPanel.js +6 -6
  267. package/src/View/FlashingCell/FlashingCellStyle.d.ts +2 -2
  268. package/src/View/FlashingCell/FlashingCellStyle.js +5 -5
  269. package/src/View/FlashingCell/Wizard/FlashingCellScopeWizardSection.js +2 -2
  270. package/src/View/FlashingCell/Wizard/FlashingCellSettingsWizardSection.js +12 -12
  271. package/src/View/FlashingCell/Wizard/FlashingCellStyleWizardSection.d.ts +2 -2
  272. package/src/View/FlashingCell/Wizard/FlashingCellStyleWizardSection.js +5 -5
  273. package/src/View/FlashingCell/Wizard/FlashingCellWizard.js +5 -5
  274. package/src/View/FormatColumn/Wizard/FormatColumnFormatWizardSection.d.ts +1 -1
  275. package/src/View/FormatColumn/Wizard/FormatColumnFormatWizardSection.js +63 -68
  276. package/src/View/FormatColumn/Wizard/FormatColumnRuleWizardSection.js +2 -3
  277. package/src/View/FormatColumn/Wizard/FormatColumnScopeWizardSection.js +0 -4
  278. package/src/View/FormatColumn/Wizard/FormatColumnSettingsWizardSection.js +29 -29
  279. package/src/View/FormatColumn/Wizard/FormatColumnStyleWizardSection.js +4 -4
  280. package/src/View/FormatColumn/Wizard/FormatColumnTargetWizardSection.js +3 -3
  281. package/src/View/FormatColumn/Wizard/FormatColumnWizard.js +9 -10
  282. package/src/View/FreeTextColumn/Wizard/FreeTextColumnSettingsWizardSection.js +12 -12
  283. package/src/View/FreeTextColumn/Wizard/FreeTextColumnWizard.js +4 -4
  284. package/src/View/GridFilter/GridFilterExpressionEditor.js +6 -6
  285. package/src/View/GridFilter/GridFilterPopup.js +31 -40
  286. package/src/View/GridFilter/GridFilterPopupUI/index.d.ts +68 -0
  287. package/src/View/GridFilter/GridFilterPopupUI/index.js +47 -0
  288. package/src/View/GridFilter/GridFilterViewPanel.js +16 -23
  289. package/src/View/GridFilter/NamedQuerySelector.js +9 -9
  290. package/src/View/GridFilter/useGridFilterExpressionEditor.d.ts +5 -1
  291. package/src/View/GridFilter/useGridFilterExpressionEditor.js +2 -1
  292. package/src/View/GridInfo/GridInfoPopup/AdaptableObjectsSummary.d.ts +3 -1
  293. package/src/View/GridInfo/GridInfoPopup/AdaptableObjectsSummary.js +5 -4
  294. package/src/View/GridInfo/GridInfoPopup/AdaptableOptionsComponent.js +5 -9
  295. package/src/View/GridInfo/GridInfoPopup/GridInfoPopup.js +7 -7
  296. package/src/View/KeyHint.d.ts +5 -2
  297. package/src/View/KeyHint.js +4 -2
  298. package/src/View/Layout/EditCurrentLayoutButton.js +1 -1
  299. package/src/View/Layout/LayoutStatusBarSubPanelPopover.js +2 -2
  300. package/src/View/Layout/LayoutViewPanel.d.ts +3 -3
  301. package/src/View/Layout/LayoutViewPanel.js +4 -4
  302. package/src/View/Layout/TransposedPopup.js +5 -5
  303. package/src/View/Layout/Wizard/LayoutWizard.js +18 -18
  304. package/src/View/Layout/Wizard/sections/AggregationsSection.js +9 -11
  305. package/src/View/Layout/Wizard/sections/ColumnsSection.js +214 -139
  306. package/src/View/Layout/Wizard/sections/FilterSection.js +6 -7
  307. package/src/View/Layout/Wizard/sections/GridFilterSection.js +2 -2
  308. package/src/View/Layout/Wizard/sections/PivotAggregationsSection.js +20 -23
  309. package/src/View/Layout/Wizard/sections/PivotColumnsSection.js +4 -6
  310. package/src/View/Layout/Wizard/sections/PivotRowGroupingSection.js +4 -6
  311. package/src/View/Layout/Wizard/sections/RowGroupingSection.js +8 -10
  312. package/src/View/Layout/Wizard/sections/RowSummarySection.js +16 -18
  313. package/src/View/Layout/Wizard/sections/SettingsSection.js +11 -11
  314. package/src/View/Layout/Wizard/sections/SortSection.js +6 -8
  315. package/src/View/License/LicenseWatermark.js +1 -1
  316. package/src/View/NamedQuery/Wizard/NamedQueryExpressionWizardSection.js +2 -2
  317. package/src/View/NamedQuery/Wizard/NamedQuerySettingsWizardSection.js +3 -3
  318. package/src/View/NamedQuery/Wizard/NamedQueryWizard.js +4 -5
  319. package/src/View/Note/NoteEditor.js +5 -1
  320. package/src/View/PlusMinus/Wizard/PlusMinusRuleWizardSection.js +2 -3
  321. package/src/View/PlusMinus/Wizard/PlusMinusSettingsWizardSection.js +6 -6
  322. package/src/View/PlusMinus/Wizard/PlusMinusWizard.js +4 -4
  323. package/src/View/QuickSearch/FloatingQuickSearch/FloatingQuickSearch.js +2 -2
  324. package/src/View/QuickSearch/QuickSearchInput.d.ts +1 -0
  325. package/src/View/QuickSearch/QuickSearchInput.js +5 -5
  326. package/src/View/QuickSearch/QuickSearchPopup.js +17 -16
  327. package/src/View/QuickSearch/QuickSearchViewPanel.js +1 -1
  328. package/src/View/Schedule/Wizard/ScheduleScheduleWizard.js +5 -5
  329. package/src/View/Schedule/Wizard/ScheduleSettingsWizard/ScheduleSettingsIPushPull.js +6 -6
  330. package/src/View/Schedule/Wizard/ScheduleSettingsWizard/ScheduleSettingsOpenFin.js +3 -3
  331. package/src/View/Schedule/Wizard/ScheduleSettingsWizard/ScheduleSettingsReminder.js +5 -5
  332. package/src/View/Schedule/Wizard/ScheduleSettingsWizard/ScheduleSettingsReport.js +6 -6
  333. package/src/View/Schedule/Wizard/ScheduleWizard.js +5 -5
  334. package/src/View/Shortcut/Wizard/ShortcutSettingsWizard.js +9 -12
  335. package/src/View/Shortcut/Wizard/ShortcutWizard.js +5 -5
  336. package/src/View/SmartEdit/SmartEditPopup.d.ts +1 -1
  337. package/src/View/SmartEdit/SmartEditPopup.js +8 -8
  338. package/src/View/SmartEdit/SmartEditViewPanel.js +4 -4
  339. package/src/View/SpecialColumnSettingsWizardStep.js +5 -5
  340. package/src/View/StateManagement/StateManagementPopup.js +12 -12
  341. package/src/View/StateManagement/StateManagementViewPanel.js +3 -3
  342. package/src/View/StateManagement/handleExportState.d.ts +1 -1
  343. package/src/View/StatusBar/AdaptableStatusBar.js +2 -2
  344. package/src/View/StatusBar/StatusBarPanel.d.ts +2 -2
  345. package/src/View/StatusBar/StatusBarPanel.js +5 -4
  346. package/src/View/StyledColumn/Wizard/StyledColumnBadgeSection.js +9 -9
  347. package/src/View/StyledColumn/Wizard/StyledColumnSparklineSettingsSection.js +59 -56
  348. package/src/View/StyledColumn/Wizard/StyledColumnWizard.js +8 -8
  349. package/src/View/StyledColumn/Wizard/StyledColumnWizardColumnSection.js +2 -2
  350. package/src/View/StyledColumn/Wizard/StyledColumnWizardSettingsSection.js +19 -19
  351. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/PercentBarColumnComparisonPreview.js +3 -3
  352. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/PercentBarRangesPreview.js +4 -5
  353. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/PercentBarStylePreview.js +5 -5
  354. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnBadgePreview.js +3 -3
  355. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnBadgeSettings.js +5 -7
  356. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/StyledColumnWizardStyleSection.js +15 -16
  357. package/src/View/StyledColumn/Wizard/StyledColumnWizardTypeSection.js +4 -4
  358. package/src/View/SystemStatus/SystemStatusEntityRow.js +4 -4
  359. package/src/View/SystemStatus/SystemStatusPopup.js +2 -2
  360. package/src/View/SystemStatus/SystemStatusStatusBarContent.js +2 -2
  361. package/src/View/SystemStatus/SystemStatusViewPanel.d.ts +2 -2
  362. package/src/View/SystemStatus/SystemStatusViewPanel.js +3 -3
  363. package/src/View/TeamSharing/SharedEntityDependencies.js +5 -5
  364. package/src/View/TeamSharing/SharedEntityObjectView.js +8 -8
  365. package/src/View/Theme/ThemeEditor.js +6 -31
  366. package/src/View/Theme/ThemeEditorWindow.js +2 -2
  367. package/src/View/Theme/ThemeField.js +2 -3
  368. package/src/View/Theme/ThemePopup.d.ts +1 -1
  369. package/src/View/Theme/ThemePopup.js +4 -4
  370. package/src/View/Theme/ThemeStatusbar.js +2 -2
  371. package/src/View/Theme/VariantSelector.js +1 -1
  372. package/src/View/UIHelper.d.ts +1 -1
  373. package/src/View/UIHelper.js +29 -29
  374. package/src/View/Wizard/Interface/IAdaptableWizard.d.ts +1 -1
  375. package/src/View/Wizard/ObjectTagsWizardSection.js +2 -4
  376. package/src/View/Wizard/OnePageAdaptableWizard.d.ts +10 -4
  377. package/src/View/Wizard/OnePageAdaptableWizard.js +16 -18
  378. package/src/View/Wizard/OnePageWizards.d.ts +10 -4
  379. package/src/View/Wizard/OnePageWizards.js +52 -66
  380. package/src/View/Wizard/TypeRadio.js +4 -4
  381. package/src/View/Wizard/WizardLegend.js +3 -4
  382. package/src/View/Wizard/useKeyboardNavigation.d.ts +1 -1
  383. package/src/View/Wizard/useKeyboardNavigation.js +7 -4
  384. package/src/View/renderWithAdaptableContext.js +2 -5
  385. package/src/agGrid/AdaptableAgGrid.d.ts +13 -4
  386. package/src/agGrid/AdaptableAgGrid.js +155 -23
  387. package/src/agGrid/AdaptableFilterHandler.d.ts +5 -6
  388. package/src/agGrid/AdaptableFilterHandler.js +13 -19
  389. package/src/agGrid/AgGridAdapter.d.ts +2 -0
  390. package/src/agGrid/AgGridAdapter.js +29 -15
  391. package/src/agGrid/AgGridColumnAdapter.d.ts +6 -1
  392. package/src/agGrid/AgGridColumnAdapter.js +28 -7
  393. package/src/agGrid/AgGridFilterAdapter.js +1 -1
  394. package/src/agGrid/AgGridFloatingFilterAdapter.js +1 -21
  395. package/src/agGrid/editors/AdaptableNumberEditor/InternalAdaptableNumberEditor.js +1 -5
  396. package/src/agGrid/editors/AdaptableNumberEditor/index.js +2 -2
  397. package/src/agGrid/editors/AdaptablePercentageEditor/InternalAdaptablePercentageEditor.js +1 -5
  398. package/src/agGrid/index.js +2 -4
  399. package/src/components/AdaptableFormComponent/AdaptableFormComponent.js +12 -12
  400. package/src/components/Card/index.d.ts +25 -0
  401. package/src/components/Card/index.js +49 -0
  402. package/src/components/CheckBox/index.d.ts +3 -4
  403. package/src/components/CheckBox/index.js +7 -9
  404. package/src/components/CodeBlock/index.d.ts +6 -2
  405. package/src/components/CodeBlock/index.js +3 -3
  406. package/src/components/ColorPicker/ColorPicker.d.ts +1 -1
  407. package/src/components/ColorPicker/ColorPicker.js +10 -9
  408. package/src/components/Dashboard/Dashboard.js +2 -3
  409. package/src/components/Dashboard/DashboardTab.js +1 -2
  410. package/src/components/Dashboard/DashboardToolbar.js +6 -8
  411. package/src/components/Datepicker/index.d.ts +2 -2
  412. package/src/components/Datepicker/index.js +10 -9
  413. package/src/components/Dialog/index.d.ts +8 -2
  414. package/src/components/Dialog/index.js +8 -8
  415. package/src/components/DragAndDropContext/DragAndDropContext.d.ts +1 -1
  416. package/src/components/DragAndDropContext/ModuleManager.d.ts +1 -0
  417. package/src/components/DragAndDropContext/ModuleManager.js +9 -6
  418. package/src/components/DragAndDropContext/TabList.d.ts +2 -1
  419. package/src/components/DragAndDropContext/TabList.js +48 -29
  420. package/src/components/DragAndDropContext/UnusedPanel.js +8 -17
  421. package/src/components/Dropdown/index.d.ts +2 -2
  422. package/src/components/Dropdown/index.js +5 -6
  423. package/src/components/DropdownButton/index.d.ts +2 -22
  424. package/src/components/DropdownButton/index.js +7 -4
  425. package/src/components/EmptyContent/index.d.ts +2 -2
  426. package/src/components/EmptyContent/index.js +4 -4
  427. package/src/components/ErrorBox/index.d.ts +2 -2
  428. package/src/components/ErrorBox/index.js +3 -3
  429. package/src/components/ExpressionEditor/BaseEditorInput.js +67 -51
  430. package/src/components/ExpressionEditor/DataTableEditor.js +6 -10
  431. package/src/components/ExpressionEditor/EditorButton.js +0 -2
  432. package/src/components/ExpressionEditor/EditorContext.d.ts +0 -1
  433. package/src/components/ExpressionEditor/EditorInputWithWhereClause.js +5 -5
  434. package/src/components/ExpressionEditor/ExpressionFunctionDocumentation.js +12 -14
  435. package/src/components/ExpressionEditor/NamedQueryContext.d.ts +0 -1
  436. package/src/components/ExpressionEditor/NamedQueryEditor.js +6 -16
  437. package/src/components/ExpressionEditor/QueryBuilder/QueryBuilder.d.ts +2 -10
  438. package/src/components/ExpressionEditor/QueryBuilder/QueryBuilder.js +11 -11
  439. package/src/components/ExpressionEditor/QueryBuilder/QueryBuilderInputs.d.ts +1 -1
  440. package/src/components/ExpressionEditor/QueryBuilder/QueryBuilderInputs.js +13 -13
  441. package/src/components/ExpressionEditor/QueryBuilder/QueryPredicateBuilder.js +11 -16
  442. package/src/components/ExpressionEditor/index.d.ts +1 -0
  443. package/src/components/ExpressionEditor/index.js +32 -37
  444. package/src/components/FieldWrap/index.d.ts +9 -2
  445. package/src/components/FieldWrap/index.js +3 -8
  446. package/src/components/FileDroppable/FileDroppableState.d.ts +0 -1
  447. package/src/components/FileDroppable/index.d.ts +3 -2
  448. package/src/components/FileDroppable/index.js +7 -7
  449. package/src/components/Flex.d.ts +15 -1
  450. package/src/components/Flex.js +42 -3
  451. package/src/components/FlexWithFooter.d.ts +3 -2
  452. package/src/components/FlexWithFooter.js +5 -5
  453. package/src/components/FormLayout/index.d.ts +5 -1
  454. package/src/components/FormLayout/index.js +3 -3
  455. package/src/components/HelpBlock/index.d.ts +2 -2
  456. package/src/components/HelpBlock/index.js +5 -4
  457. package/src/components/IconSelector/IconSelector.js +11 -11
  458. package/src/components/InfiniteTable/index.js +1 -2
  459. package/src/components/Input/index.d.ts +1 -2
  460. package/src/components/Input/index.js +6 -3
  461. package/src/components/Modal/Backdrop.js +1 -1
  462. package/src/components/Modal/index.d.ts +3 -2
  463. package/src/components/Modal/index.js +3 -3
  464. package/src/components/OverlayTrigger/index.js +3 -0
  465. package/src/components/Panel/index.d.ts +22 -6
  466. package/src/components/Panel/index.js +54 -15
  467. package/src/components/PopupWithFooter.js +3 -4
  468. package/src/components/ProgressIndicator/ProgressIndicator.js +5 -5
  469. package/src/components/Radio/index.d.ts +25 -3
  470. package/src/components/Radio/index.js +19 -21
  471. package/src/components/Select/Select.js +33 -21
  472. package/src/components/SelectList.js +1 -1
  473. package/src/components/SelectableList/index.d.ts +1 -1
  474. package/src/components/SimpleButton/index.d.ts +4 -6
  475. package/src/components/SimpleButton/index.js +55 -23
  476. package/src/components/SizedContainer/index.d.ts +3 -1
  477. package/src/components/SizedContainer/index.js +3 -3
  478. package/src/components/StylePreview.d.ts +3 -1
  479. package/src/components/StylePreview.js +4 -3
  480. package/src/components/Tabs/index.d.ts +3 -3
  481. package/src/components/Tabs/index.js +26 -9
  482. package/src/components/Tag/Tag.d.ts +14 -2
  483. package/src/components/Tag/Tag.js +13 -4
  484. package/src/components/Tag/index.d.ts +1 -1
  485. package/src/components/Tag/index.js +3 -1
  486. package/src/components/Textarea/index.d.ts +5 -1
  487. package/src/components/Textarea/index.js +5 -4
  488. package/src/components/Toggle/Toggle.js +48 -3
  489. package/src/components/Toggle/ToggleGroup.d.ts +7 -0
  490. package/src/components/Toggle/ToggleGroup.js +58 -3
  491. package/src/components/ToggleButton/index.d.ts +2 -2
  492. package/src/components/ToggleButton/index.js +25 -7
  493. package/src/components/Tree/TreeDropdown/index.js +13 -19
  494. package/src/components/Tree/TreeList/index.js +6 -11
  495. package/src/components/WarningBox/index.d.ts +6 -2
  496. package/src/components/WarningBox/index.js +3 -3
  497. package/src/components/WizardPanel/index.d.ts +6 -1
  498. package/src/components/WizardPanel/index.js +2 -2
  499. package/src/components/icons/DefaultIcon.d.ts +1 -0
  500. package/src/components/icons/index.d.ts +1 -1
  501. package/src/components/icons/index.js +2 -0
  502. package/src/components/icons/inspector.d.ts +3 -0
  503. package/src/components/icons/inspector.js +8 -0
  504. package/src/components/twUtils.d.ts +7 -0
  505. package/src/components/twUtils.js +16 -0
  506. package/src/components/utils/contains.js +1 -1
  507. package/src/components/utils/useDraggable.d.ts +0 -1
  508. package/src/components/utils/useDraggable.js +1 -1
  509. package/src/components/utils/usePropState.js +1 -1
  510. package/src/components/utils/useSelectionRange.js +1 -2
  511. package/src/devTools/index.d.ts +23 -23
  512. package/src/devTools/index.js +3 -3
  513. package/src/env.js +2 -2
  514. package/src/layout-manager/src/LMEmitter.d.ts +1 -0
  515. package/src/layout-manager/src/LMEmitter.js +1 -0
  516. package/src/layout-manager/src/destructurePivotColumnId.js +1 -2
  517. package/src/layout-manager/src/index.d.ts +6 -0
  518. package/src/layout-manager/src/index.js +22 -2
  519. package/src/layout-manager/src/isLayoutEqual.js +4 -4
  520. package/src/layout-manager/src/isPivotAggTotalColumn.js +1 -2
  521. package/src/layout-manager/src/isPivotColumnTotal.js +1 -2
  522. package/src/layout-manager/src/isPivotGrandTotal.js +1 -2
  523. package/src/layout-manager/src/normalizeLayoutModel.js +4 -4
  524. package/src/layout-manager/src/simplifyLayoutModel.js +3 -4
  525. package/src/layout-manager/src/sortColumnIdsByOrder.js +2 -3
  526. package/src/migration/VersionUpgrade20.js +8 -7
  527. package/src/parser/src/evaluator.js +1 -2
  528. package/src/parser/src/index.js +5 -5
  529. package/src/parser/src/predicate/mapExpressionToQlPredicate.js +2 -2
  530. package/src/parser/src/predicate/mapQlPredicateToExpression.js +2 -3
  531. package/src/parser/src/tokenizer.js +1 -2
  532. package/src/parser/src/utils.js +3 -4
  533. package/src/twMerge.d.ts +1 -0
  534. package/src/twMerge.js +14 -0
  535. package/themes/dark.css +35 -9
  536. package/themes/light.css +0 -2
  537. package/tsconfig.cjs.tsbuildinfo +1 -1
  538. package/base.css +0 -5602
  539. package/base.css.map +0 -1
  540. package/src/Strategy/Utilities/FormatColumn/getFormatColumnStyleViewItems.d.ts +0 -3
  541. package/src/Strategy/Utilities/FormatColumn/getFormatColumnStyleViewItems.js +0 -11
  542. package/src/View/Alert/AlertsPanel.d.ts +0 -14
  543. package/src/View/Alert/AlertsPanel.js +0 -43
  544. package/src/View/Alert/Wizard/AlertSelectQueryWizard.d.ts +0 -19
  545. package/src/View/Alert/Wizard/AlertSelectQueryWizard.js +0 -59
  546. package/src/View/Components/FilterForm/ListBoxMenu.d.ts +0 -14
  547. package/src/View/Components/FilterForm/ListBoxMenu.js +0 -33
  548. package/src/View/Components/ListBox/DualListBoxEditor.d.ts +0 -22
  549. package/src/View/Components/ListBox/DualListBoxEditor.js +0 -520
  550. package/src/View/Components/ListBox/ListBoxFilterSortComponent.d.ts +0 -13
  551. package/src/View/Components/ListBox/ListBoxFilterSortComponent.js +0 -31
  552. package/src/View/CustomSort/Wizard/CustomSortSummaryWizard.d.ts +0 -15
  553. package/src/View/CustomSort/Wizard/CustomSortSummaryWizard.js +0 -36
  554. package/src/View/Layout/Wizard/Components/ColumnLabels.d.ts +0 -9
  555. package/src/View/Layout/Wizard/Components/ColumnLabels.js +0 -57
  556. package/src/View/Wizard/AdaptableWizard.d.ts +0 -56
  557. package/src/View/Wizard/AdaptableWizard.js +0 -174
  558. package/src/components/ContainerProps.d.ts +0 -30
  559. package/src/components/ContainerProps.js +0 -2
  560. package/src/components/EllipsisContainer/index.d.ts +0 -13
  561. package/src/components/EllipsisContainer/index.js +0 -105
  562. package/src/components/List/GridList/index.d.ts +0 -10
  563. package/src/components/List/GridList/index.js +0 -26
  564. package/src/components/List/ListGroup/index.d.ts +0 -6
  565. package/src/components/List/ListGroup/index.js +0 -12
  566. package/src/components/List/ListGroupItem/index.d.ts +0 -11
  567. package/src/components/List/ListGroupItem/index.js +0 -19
  568. package/src/components/utils/useTheme.d.ts +0 -32
  569. package/src/components/utils/useTheme.js +0 -5
  570. package/src/theme.d.ts +0 -32
  571. package/src/theme.js +0 -51
  572. package/themes/dark.css.map +0 -1
  573. package/themes/light.css.map +0 -1
@@ -106,6 +106,10 @@ const AgGridModulesAdapter_1 = require("./AgGridModulesAdapter");
106
106
  const devTools_1 = require("../devTools");
107
107
  const infinite_react_1 = require("@infinite-table/infinite-react");
108
108
  const FormatHelper_1 = require("../Utilities/Helpers/FormatHelper");
109
+ const PredicateApiImpl_1 = require("../Api/Implementation/PredicateApiImpl");
110
+ const AgGridFilterAdapter_1 = require("./AgGridFilterAdapter");
111
+ const AdaptableFilterHandler_1 = require("./AdaptableFilterHandler");
112
+ const AgGridFloatingFilterAdapter_1 = require("./AgGridFloatingFilterAdapter");
109
113
  const LocalEventService_Prototype = ag_grid_enterprise_1.LocalEventService.prototype;
110
114
  const LocalEventService_dispatchEvent = LocalEventService_Prototype.dispatchEvent;
111
115
  LocalEventService_Prototype.dispatchEvent = function (event) {
@@ -450,10 +454,14 @@ class AdaptableAgGrid {
450
454
  this.api.themeApi.applyCurrentTheme();
451
455
  this.validatePrimaryKey();
452
456
  this.checkShouldClearExistingFiltersOrSearches();
453
- // FIXME AFL FILTER: talk with Radu: should ColumnFilters still be ignored?!
454
- // see layoutModel.Ignore_ColumnFilters
455
457
  // initial filter model
456
- this.applyFiltering();
458
+ const filteringApplied = this.applyFiltering();
459
+ // We may need to re-apply sort if there are ColumnSorts for columns with CustomSort defined
460
+ // This is required because AG Grid wasn't aware of the CustomSort when applying sorting initially
461
+ // this is not required when filtering was applied because filtering also triggers a sort refresh internally
462
+ if (!filteringApplied) {
463
+ this.refreshInitialSortIfNeeded();
464
+ }
457
465
  // apply quick search if there is one
458
466
  // yes, we could have put this on the gridOptions.findSearchValue
459
467
  // but we need to wait for setupColumns to run first so as to correctly
@@ -625,26 +633,67 @@ You need to define at least one Layout!`);
625
633
  normalize: true,
626
634
  });
627
635
  }
636
+ /**
637
+ * Returns TRUE if filtering was applied, FALSE otherwise
638
+ * This is important in the INIT phase because applying filtering will automatically refresh AG Grids columnState,
639
+ * implicitly refreshing the sorting state too (hence we don't need to apply sorting separately)
640
+ */
628
641
  applyFiltering(config) {
642
+ let filteringApplied = false;
629
643
  // default updateColumnFilterModel to TRUE, if not provided
630
644
  const updateColumnFilterModel = config?.updateColumnFilterModel ?? true;
631
645
  const agGridApi = this.agGridAdapter.getAgGridApi();
632
646
  if (updateColumnFilterModel) {
633
647
  const columnFilters = this.api.filterApi.columnFilterApi
634
648
  .getActiveColumnFilters()
635
- // FIXME AFL: we need this additional filter because 'getActiveColumnFilters' checks only for suspended while 'isColumnFilterActive' also checkss for COMPLETE filters
649
+ // we need this additional filter because 'getActiveColumnFilters' checks only for suspended while 'isColumnFilterActive' also checkss for COMPLETE filters
636
650
  .filter((columnFilter) => this.api.filterApi.columnFilterApi.isColumnFilterActive(columnFilter));
637
651
  const filterModel = {};
638
652
  columnFilters.forEach((columnFilter) => {
639
653
  filterModel[columnFilter.ColumnId] = columnFilter;
640
654
  });
641
655
  agGridApi.setFilterModel(filterModel);
656
+ filteringApplied = Object.keys(filterModel).length > 0;
642
657
  }
643
658
  // FIXME AFL FILTER why is this needed???
644
659
  this.refreshSelectedCellsState();
645
660
  this.refreshSelectedRowsState();
646
- agGridApi.onFilterChanged();
661
+ // FIXME AFL: this is temporary, will be replaced with v22's new autoCol filtering
662
+ const currentPivotLayoutHasAutoCols = this.api.layoutApi.isCurrentLayoutPivot() &&
663
+ !!this.api.layoutApi.getCurrentRowGroupsColumnIds()?.length;
664
+ // agGridApi.setFilterModel() already triggered onFilterChanged(), so we skip it if updateColumnFilterModel is TRUE
665
+ if (!filteringApplied || currentPivotLayoutHasAutoCols) {
666
+ agGridApi.onFilterChanged();
667
+ filteringApplied = true;
668
+ }
647
669
  this._emit('AdapTableFiltersApplied');
670
+ return filteringApplied;
671
+ }
672
+ /**
673
+ * Checks if the current layout has ColumnSorts for columns that have CustomSort defined
674
+ * (either via initialState CustomSorts or via customSortComparers option) and refreshes the sort if needed.
675
+ */
676
+ refreshInitialSortIfNeeded() {
677
+ const currentLayout = this.api.layoutApi.getCurrentLayout();
678
+ const columnSorts = currentLayout?.ColumnSorts;
679
+ if (!columnSorts || columnSorts.length === 0) {
680
+ return;
681
+ }
682
+ const hasCustomSortForSortedColumn = columnSorts.some((columnSort) => {
683
+ // Check if there's a CustomSort defined in state for this column
684
+ const customSort = this.api.customSortApi.getCustomSortForColumn(columnSort.ColumnId);
685
+ if (customSort && !customSort.IsSuspended) {
686
+ return true;
687
+ }
688
+ // Check if there's a customSortComparer defined in options for this column
689
+ if (this.api.customSortApi.internalApi.columnHasCustomSortComparer(columnSort.ColumnId)) {
690
+ return true;
691
+ }
692
+ return false;
693
+ });
694
+ if (hasCustomSortForSortedColumn) {
695
+ this.layoutManager.refreshSort();
696
+ }
648
697
  }
649
698
  showQuickFilter() {
650
699
  const height = this.api.optionsApi.getFilterOptions().columnFilterOptions.quickFilterHeight;
@@ -725,6 +774,92 @@ You need to define at least one Layout!`);
725
774
  });
726
775
  return defaultColGroupDef;
727
776
  });
777
+ /**
778
+ * `autoGroupColumnDef`
779
+ */
780
+ this.agGridOptionsService.setGridOptionsProperty(gridOptions, 'autoGroupColumnDef', (original_autoGroupColumnDef) => {
781
+ // #autoGroupColumnDef
782
+ const useAdaptableFilter = this.adaptableOptions.filterOptions.useAdaptableFiltering;
783
+ if (!useAdaptableFilter) {
784
+ return original_autoGroupColumnDef;
785
+ }
786
+ if (original_autoGroupColumnDef?.filter === false) {
787
+ // if user disables filter on autoGroupColumnDef, we respect that
788
+ this.logger.info(`autoGroupColumnDef.filter is disabled as per user configuration.`);
789
+ return original_autoGroupColumnDef;
790
+ }
791
+ if (typeof original_autoGroupColumnDef?.filter === 'object') {
792
+ this.logger.warn(`autoGroupColumnDef.filter is set and overrides the Adaptable custom filter mechanism! We recommend using a ColumnOptions.columnHeader instead!`);
793
+ return original_autoGroupColumnDef;
794
+ }
795
+ const autoGroupColumnDef = { ...original_autoGroupColumnDef };
796
+ // this is required to make sure that AG Grid doesn't disable the filter
797
+ // !! DO NOT REMOVE THIS !!
798
+ // see https://github.com/ag-grid/ag-grid/blob/6f43ff257c2e285068eb425b655e58d6eeb89816/packages/ag-grid-enterprise/src/rowHierarchy/autoColService.ts#L225
799
+ autoGroupColumnDef.filterValueGetter = (params) => {
800
+ this.logger.error('autoGroupColumnDef.filterValueGetter was called unexpectedly; this is not an expected execution path!', params);
801
+ return '';
802
+ };
803
+ // !! it is important that we always return the same component / handler instances
804
+ // otherwise AG Grid will re-create the filter instance on each filterModel change
805
+ const autoGroupFilterComponent = (0, AgGridFilterAdapter_1.AgGridFilterAdapterFactory)(this);
806
+ const autoGroupFilterHandlerGenerator = () => new AdaptableFilterHandler_1.AdaptableFilterHandler(this.api);
807
+ // Use a getter to dynamically return different filter values based on Layout.RowGroupDisplayType
808
+ Object.defineProperty(autoGroupColumnDef, 'filter', {
809
+ get: () => {
810
+ const rowGroupDisplayType = this.api.layoutApi.internalApi.getCurrentLayoutRowGroupDisplayType();
811
+ if (rowGroupDisplayType === 'single') {
812
+ return {
813
+ component: autoGroupFilterComponent,
814
+ handler: autoGroupFilterHandlerGenerator,
815
+ };
816
+ }
817
+ const groupedColumnFilterConfig = this.api.layoutApi.internalApi.areAllGroupedColumnsFilterable();
818
+ if (groupedColumnFilterConfig.filter) {
819
+ return 'agGroupColumnFilter';
820
+ }
821
+ return original_autoGroupColumnDef?.filter;
822
+ },
823
+ enumerable: true,
824
+ configurable: true,
825
+ });
826
+ if (original_autoGroupColumnDef?.floatingFilter !== false) {
827
+ autoGroupColumnDef.suppressFloatingFilterButton = true;
828
+ Object.defineProperty(autoGroupColumnDef, 'floatingFilter', {
829
+ get: () => {
830
+ const rowGroupDisplayType = this.api.layoutApi.internalApi.getCurrentLayoutRowGroupDisplayType();
831
+ if (rowGroupDisplayType === 'single') {
832
+ return true;
833
+ }
834
+ if (rowGroupDisplayType === 'multi') {
835
+ const groupedColumnFilterConfig = this.api.layoutApi.internalApi.areAllGroupedColumnsFilterable();
836
+ if (groupedColumnFilterConfig.floatingFilter) {
837
+ return true;
838
+ }
839
+ }
840
+ return original_autoGroupColumnDef?.floatingFilter;
841
+ },
842
+ enumerable: true,
843
+ configurable: true,
844
+ });
845
+ // !! it is important that we always return the same component / handler instances
846
+ // otherwise AG Grid will re-create the filter instance on each filterModel change
847
+ const autoGroupFloatingFilterComponent = (0, AgGridFloatingFilterAdapter_1.AgGridFloatingFilterAdapterFactory)(this);
848
+ // Use a getter to dynamically return different floatingFilterComponent values based on Layout.RowGroupDisplayType
849
+ Object.defineProperty(autoGroupColumnDef, 'floatingFilterComponent', {
850
+ get: () => {
851
+ const rowGroupDisplayType = this.api.layoutApi.internalApi.getCurrentLayoutRowGroupDisplayType();
852
+ if (rowGroupDisplayType === 'single') {
853
+ return autoGroupFloatingFilterComponent;
854
+ }
855
+ return;
856
+ },
857
+ enumerable: true,
858
+ configurable: true,
859
+ });
860
+ }
861
+ return autoGroupColumnDef;
862
+ });
728
863
  /**
729
864
  * `theme`
730
865
  */
@@ -1683,19 +1818,7 @@ You need to define at least one Layout!`);
1683
1818
  deriveAdaptableColumnStateFromAgGrid() {
1684
1819
  const allColumns = [];
1685
1820
  const gridApi = this.agGridAdapter.getAgGridApi();
1686
- const isPivot = this.isInPivotMode();
1687
- let agGridCols = isPivot
1688
- ? gridApi.getColumns()
1689
- : // we call getAllGridColumns because we want to also have the generated group columns
1690
- gridApi.getAllGridColumns();
1691
- if (isPivot) {
1692
- // let's also support the pivot result columns
1693
- const pivotResultColumns = gridApi.getPivotResultColumns() || [];
1694
- const autoGroupColumns = gridApi
1695
- .getAllGridColumns()
1696
- .filter((column) => this.api.columnApi.isAutoRowGroupColumn(column.getColId()));
1697
- agGridCols = [...autoGroupColumns, ...agGridCols, ...pivotResultColumns];
1698
- }
1821
+ let agGridCols = this.agGridColumnAdapter.getAllAgGridColumns();
1699
1822
  const columnGroupChildren = gridApi.getAllDisplayedColumnGroups();
1700
1823
  const groupsCount = {};
1701
1824
  const colsToGroups = (columnGroupChildren ?? []).reduce((acc, columnGroup) => {
@@ -1768,14 +1891,21 @@ You need to define at least one Layout!`);
1768
1891
  let _displayValue = defaults ? defaults.displayValue : undefined;
1769
1892
  let _normalisedValue = defaults ? defaults.normalisedValue : undefined;
1770
1893
  let _isRowGroupCell;
1771
- const _isPivotCell = this.api.columnApi.isPivotResultColumn(columnId) ||
1772
- this.api.columnApi.isPivotAggColumnWithNoPivotColumns(columnId);
1894
+ let _isPivotCell;
1773
1895
  const self = this;
1774
1896
  const api = this.api;
1897
+ const getIsPivotCell = () => {
1898
+ if (_isPivotCell === undefined) {
1899
+ _isPivotCell =
1900
+ api.columnApi.isPivotResultColumn(columnId) ||
1901
+ api.columnApi.isPivotAggColumnWithNoPivotColumns(columnId);
1902
+ }
1903
+ return _isPivotCell;
1904
+ };
1775
1905
  const getRawValue = () => {
1776
1906
  if (_rawValue === undefined) {
1777
1907
  _rawValue = self.getRawValueFromRowNode(rowNode, columnId);
1778
- if (_isPivotCell && _rawValue?.value != undefined) {
1908
+ if (_rawValue?.value != undefined && getIsPivotCell()) {
1779
1909
  // for pivot result columns, the raw value is an object with a value property
1780
1910
  // we want to return the value property as the raw value
1781
1911
  _rawValue = _rawValue.value;
@@ -1818,7 +1948,7 @@ You need to define at least one Layout!`);
1818
1948
  return _primaryKeyValue;
1819
1949
  },
1820
1950
  get isPivotCell() {
1821
- return _isPivotCell;
1951
+ return getIsPivotCell();
1822
1952
  },
1823
1953
  get isRowGroupCell() {
1824
1954
  if (_isRowGroupCell === undefined) {
@@ -3390,6 +3520,7 @@ You need to define at least one Layout!`);
3390
3520
  this.__prevLayoutForRefresh = undefined;
3391
3521
  this.layoutManager?.destroy();
3392
3522
  this.layoutManager = null;
3523
+ (0, PredicateApiImpl_1.clearPredicateDefMapMemo)();
3393
3524
  const agGridApi = this.agGridAdapter?.getAgGridApi();
3394
3525
  if (agGridApi && !agGridApi.isDestroyed()) {
3395
3526
  agGridApi.removeEventListener('firstDataRendered', this.listenerFirstDataRendered);
@@ -3971,7 +4102,8 @@ You need to define at least one Layout!`);
3971
4102
  }
3972
4103
  }
3973
4104
  // also we need to reset the cache for the group column, when we have rowGripDisplayType single
3974
- if (layout.RowGroupDisplayType === 'single') {
4105
+ if (layout.RowGroupDisplayType === 'single' &&
4106
+ (layout.RowGroupedColumns?.length || layout.PivotGroupedColumns?.length)) {
3975
4107
  this.api.filterApi.columnFilterApi.resetFilterValues(GeneralConstants_1.AG_GRID_GROUPED_COLUMN);
3976
4108
  }
3977
4109
  }
@@ -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: {
@@ -2,20 +2,11 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.AdaptableFilterHandler = void 0;
4
4
  class AdaptableFilterHandler {
5
- constructor(adaptableApi, columnSetup) {
5
+ constructor(adaptableApi) {
6
6
  this.adaptableApi = adaptableApi;
7
- this.colId = columnSetup.colId;
8
7
  }
9
- getCurrentColumnFilters() {
10
- const columnFilters = this.adaptableApi.filterApi.columnFilterApi
11
- .getActiveColumnFilters()
12
- .filter((columnFilter) => this.adaptableApi.filterApi.columnFilterApi.isColumnFilterActive(columnFilter))
13
- .filter((columnFilter) => columnFilter.ColumnId === this.colId)
14
- .filter((columnFilter) => {
15
- const shouldEvaluateFilterOnClient = this.adaptableApi.expressionApi.internalApi.shouldEvaluatePredicatesInAdaptableQL('ColumnFilter', columnFilter, columnFilter.Predicates);
16
- return shouldEvaluateFilterOnClient;
17
- });
18
- return columnFilters;
8
+ init(params) {
9
+ this.colId = params.column.getColId();
19
10
  }
20
11
  doesFilterPass(params) {
21
12
  try {
@@ -25,12 +16,15 @@ class AdaptableFilterHandler {
25
16
  if (!isRowFilterable) {
26
17
  return true;
27
18
  }
28
- const columnFilters = this.getCurrentColumnFilters();
29
- const anyFilterFailed = columnFilters.some((columnFilter) => {
30
- const result = !this.adaptableApi.filterApi.columnFilterApi.internalApi.evaluateColumnFilter(columnFilter, rowNode);
31
- return result;
32
- });
33
- return anyFilterFailed ? false : true;
19
+ const columnFilterModel = params.model;
20
+ if (!columnFilterModel) {
21
+ this.adaptableApi.logWarn(`AdaptableFilterHandler.doesFilterPass: No filter model found for column ${this.colId}`);
22
+ return true;
23
+ }
24
+ if (columnFilterModel.IsSuspended) {
25
+ return true;
26
+ }
27
+ return this.adaptableApi.filterApi.columnFilterApi.internalApi.evaluateColumnFilter(columnFilterModel, rowNode);
34
28
  }
35
29
  catch (ex) {
36
30
  this.adaptableApi.consoleError(ex);
@@ -49,7 +43,7 @@ class AdaptableFilterHandler {
49
43
  }
50
44
  return this.fetchFilterDisplayValues(options);
51
45
  }
52
- fetchFilterDisplayValues(options) {
46
+ async fetchFilterDisplayValues(options) {
53
47
  return this.adaptableApi.gridApi.internalApi
54
48
  .getDistinctFilterDisplayValuesForColumn({
55
49
  columnId: this.colId,
@@ -11,6 +11,7 @@ export declare class AgGridAdapter {
11
11
  private DANGER_updateGridOptionsMonkeyPatcher;
12
12
  private DANGER_doFiltersPassMonkeyPatcher;
13
13
  private DANGER_isAggFilterPresentMonkeyPatcher;
14
+ private activePivotColumnFilters_MEMO;
14
15
  initialGridOptions: GridOptions;
15
16
  private _agGridId;
16
17
  constructor(_adaptableInstance: AdaptableAgGrid, config?: {
@@ -20,6 +21,7 @@ export declare class AgGridAdapter {
20
21
  private get adaptableOptions();
21
22
  private get adaptableApi();
22
23
  private get logger();
24
+ private getActivePivotColumnFilters;
23
25
  private get agGridOptionsService();
24
26
  setAgGridId(agGridId: string): void;
25
27
  setAgGridApi(gridApi: GridApi): void;
@@ -19,6 +19,7 @@ const getColumnApiModule = () => ag_grid_enterprise_1.ColumnApiModule;
19
19
  class AgGridAdapter {
20
20
  constructor(_adaptableInstance, config) {
21
21
  this._adaptableInstance = _adaptableInstance;
22
+ this.activePivotColumnFilters_MEMO = new WeakMap();
22
23
  const columnApiModuleReference = config?.getAgGridColumnApiModuleReference?.() ?? getColumnApiModule();
23
24
  const ColumnDefFactory_Prototype = columnApiModuleReference?.beans?.[0]?.prototype;
24
25
  if (!ColumnDefFactory_Prototype) {
@@ -44,6 +45,7 @@ class AgGridAdapter {
44
45
  this.DANGER_updateGridOptionsMonkeyPatcher = null;
45
46
  this.DANGER_doFiltersPassMonkeyPatcher = null;
46
47
  this.DANGER_isAggFilterPresentMonkeyPatcher = null;
48
+ this.activePivotColumnFilters_MEMO = null;
47
49
  this._adaptableInstance = null;
48
50
  }
49
51
  get adaptableOptions() {
@@ -55,6 +57,27 @@ class AgGridAdapter {
55
57
  get logger() {
56
58
  return this._adaptableInstance.logger;
57
59
  }
60
+ getActivePivotColumnFilters() {
61
+ // we memoize based on layout column filters object reference
62
+ // this method is called for each row during filtering so we need to optimize it
63
+ const layoutColumnFilters = this.adaptableApi.layoutApi.internalApi.getCurrentLayout_perfOptimized()?.ColumnFilters;
64
+ if (!layoutColumnFilters) {
65
+ return [];
66
+ }
67
+ const memoizedColumnFilters = this.activePivotColumnFilters_MEMO.get(layoutColumnFilters);
68
+ if (memoizedColumnFilters) {
69
+ return memoizedColumnFilters;
70
+ }
71
+ const pivotColumnFilters = this.adaptableApi.filterApi.columnFilterApi
72
+ .getActiveColumnFilters()
73
+ .filter((columnFilter) => this.adaptableApi.columnApi.isPivotResultColumn(columnFilter.ColumnId) ||
74
+ this.adaptableApi.columnApi.isAutoRowGroupColumnForSingle(columnFilter.ColumnId) ||
75
+ this.adaptableApi.columnApi.isPivotAggColumnWithNoPivotColumns(columnFilter.ColumnId))
76
+ .filter((columnFilter) => this.adaptableApi.filterApi.columnFilterApi.isColumnFilterActive(columnFilter))
77
+ .filter((columnFilter) => this.adaptableApi.expressionApi.internalApi.shouldEvaluatePredicatesInAdaptableQL('ColumnFilter', columnFilter, columnFilter.Predicates));
78
+ this.activePivotColumnFilters_MEMO.set(layoutColumnFilters, pivotColumnFilters);
79
+ return pivotColumnFilters;
80
+ }
58
81
  get agGridOptionsService() {
59
82
  return this._adaptableInstance.agGridOptionsService;
60
83
  }
@@ -155,21 +178,15 @@ class AgGridAdapter {
155
178
  // should NEVER happen
156
179
  return true;
157
180
  }
158
- const pivotColumnFilters = self.adaptableApi.filterApi.columnFilterApi
159
- .getActiveColumnFilters()
160
- .filter((columnFilter) => self.adaptableApi.columnApi.isPivotResultColumn(columnFilter.ColumnId) ||
161
- self.adaptableApi.columnApi.isAutoRowGroupColumnForSingle(columnFilter.ColumnId) ||
162
- self.adaptableApi.columnApi.isPivotAggColumnWithNoPivotColumns(columnFilter.ColumnId));
181
+ const pivotColumnFilters = self.getActivePivotColumnFilters();
163
182
  try {
164
183
  if (pivotColumnFilters.length > 0) {
165
184
  for (const columnFilter of pivotColumnFilters) {
166
- const evaluateColumnFilterOnClient = self.adaptableApi.expressionApi.internalApi.shouldEvaluatePredicatesInAdaptableQL('ColumnFilter', columnFilter, columnFilter.Predicates);
167
- if (evaluateColumnFilterOnClient) {
168
- const columnFilterEvaluationResult = self.adaptableApi.filterApi.columnFilterApi.internalApi.evaluateColumnFilter(columnFilter, rowNode);
169
- if (!columnFilterEvaluationResult) {
170
- return false;
171
- }
185
+ const columnFilterEvaluationResult = self.adaptableApi.filterApi.columnFilterApi.internalApi.evaluateColumnFilter(columnFilter, rowNode);
186
+ if (!columnFilterEvaluationResult) {
187
+ return false;
172
188
  }
189
+ // else continue to next filter
173
190
  }
174
191
  }
175
192
  }
@@ -181,10 +198,7 @@ class AgGridAdapter {
181
198
  };
182
199
  agGridColumnFilterService.doFiltersPass = this.DANGER_doFiltersPassMonkeyPatcher;
183
200
  this.DANGER_isAggFilterPresentMonkeyPatcher = function () {
184
- const columnFilters = self.adaptableApi.filterApi.columnFilterApi.getActiveColumnFilters();
185
- return columnFilters.some((colFilter) => self.adaptableApi.columnApi.isPivotResultColumn(colFilter.ColumnId) ||
186
- self.adaptableApi.columnApi.isAutoRowGroupColumnForSingle(colFilter.ColumnId) ||
187
- self.adaptableApi.columnApi.isPivotAggColumnWithNoPivotColumns(colFilter.ColumnId));
201
+ return self.getActivePivotColumnFilters().length > 0;
188
202
  };
189
203
  agGridColumnFilterService.isAggFilterPresent = this.DANGER_isAggFilterPresentMonkeyPatcher;
190
204
  }
@@ -16,7 +16,12 @@ export declare class AgGridColumnAdapter {
16
16
  setColDefProperty<T extends keyof ColDef>(col: Column, propertyName: T, propertyGetter: (userPropertyValue: ColDef[T]) => ColDef[T] | undefined): void;
17
17
  getUserColDefProperty<T extends keyof ColDef>(columnId: string, propertyName: T): ColDef[T] | undefined;
18
18
  shouldSkipColumn(colId: string): boolean;
19
- setupColumns(): void;
19
+ getAllAgGridColumns(): Column<any>[];
20
+ /**
21
+ * Setup all columns, or only those with the given Ids
22
+ * @param specificColumnIds - optional list of column Ids to setup. If not provided, all columns are setup
23
+ */
24
+ setupColumns(specificColumnIds?: string[]): void;
20
25
  private setupColumnValueGetter;
21
26
  private setupColumnCellClass;
22
27
  private setupColumnHeaderClass;
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AgGridColumnAdapter = exports.getEditorForColumnDataType = void 0;
3
+ exports.AgGridColumnAdapter = void 0;
4
+ exports.getEditorForColumnDataType = getEditorForColumnDataType;
4
5
  const tslib_1 = require("tslib");
5
6
  const kebabCase_1 = tslib_1.__importDefault(require("lodash/kebabCase"));
6
7
  const merge_1 = tslib_1.__importDefault(require("lodash/merge"));
@@ -30,7 +31,6 @@ function getEditorForColumnDataType(columnDataType, variant) {
30
31
  return variant === 'react' ? AdaptableDateEditor_1.AdaptableReactDateEditor : AdaptableDateEditor_1.AdaptableDateEditor;
31
32
  }
32
33
  }
33
- exports.getEditorForColumnDataType = getEditorForColumnDataType;
34
34
  class AgGridColumnAdapter {
35
35
  constructor(adaptableInstance) {
36
36
  this.adaptableInstance = adaptableInstance;
@@ -107,7 +107,7 @@ class AgGridColumnAdapter {
107
107
  !this.adaptableApi.columnApi.isAutoRowGroupColumn(colId) &&
108
108
  !this.adaptableApi.columnApi.isSelectionColumn(colId));
109
109
  }
110
- setupColumns() {
110
+ getAllAgGridColumns() {
111
111
  const pivotMode = this.adaptableInstance.isInPivotMode();
112
112
  let cols = pivotMode
113
113
  ? // for pivot mode, we take only the initial columns
@@ -122,6 +122,17 @@ class AgGridColumnAdapter {
122
122
  .filter((column) => this.adaptableApi.columnApi.isAutoRowGroupColumn(column.getColId()));
123
123
  cols = [...autoGroupColumns, ...cols, ...pivotResultColumns];
124
124
  }
125
+ return cols;
126
+ }
127
+ /**
128
+ * Setup all columns, or only those with the given Ids
129
+ * @param specificColumnIds - optional list of column Ids to setup. If not provided, all columns are setup
130
+ */
131
+ setupColumns(specificColumnIds) {
132
+ let cols = this.getAllAgGridColumns();
133
+ if (specificColumnIds?.length) {
134
+ cols = cols.filter((col) => specificColumnIds.includes(col.getColId()));
135
+ }
125
136
  // this needs to be here, before the other setup below
126
137
  // so the setup methods below reference the correct columns in adaptable store
127
138
  cols.forEach((col) => {
@@ -137,6 +148,7 @@ class AgGridColumnAdapter {
137
148
  colId,
138
149
  abColumn,
139
150
  };
151
+ const isAutoRowGroupColumn = this.adaptableApi.columnApi.isAutoRowGroupColumn(colId);
140
152
  this.setupColumnCellRenderer(colSetupInfo);
141
153
  this.setupColumnCellStyle(colSetupInfo);
142
154
  this.setupColumnCellClass(colSetupInfo);
@@ -144,8 +156,13 @@ class AgGridColumnAdapter {
144
156
  this.setupColumnHeaderClass(colSetupInfo);
145
157
  this.setupColumnValueGetter(colSetupInfo);
146
158
  this.setupColumnTooltipValueGetter(colSetupInfo);
147
- this.setupColumnFilter(colSetupInfo);
148
- this.setupColumnFloatingFilter(colSetupInfo);
159
+ if (!isAutoRowGroupColumn) {
160
+ // we do NOT setup filtering for auto row group columns
161
+ // this is done via gridOptions.autoGroupColumnDef
162
+ // see #autoGroupColumnDef
163
+ this.setupColumnFilter(colSetupInfo);
164
+ this.setupColumnFloatingFilter(colSetupInfo);
165
+ }
149
166
  this.setupColumnValueFormatter(colSetupInfo);
150
167
  this.setupColumnEditable(colSetupInfo);
151
168
  this.setupColumnValueSetter(colSetupInfo);
@@ -460,8 +477,12 @@ class AgGridColumnAdapter {
460
477
  valueToLabelMap.set(option.value, option.label);
461
478
  return option.value;
462
479
  }));
480
+ const fetchSelectItems = (_params) => {
481
+ return values;
482
+ };
463
483
  return {
464
- values,
484
+ // we need to pass a function which returns a Promise, that's what AG Grid expects
485
+ values: fetchSelectItems,
465
486
  formatValue: (value) => valueToLabelMap.get(value) ?? value,
466
487
  };
467
488
  };
@@ -644,7 +665,7 @@ class AgGridColumnAdapter {
644
665
  }
645
666
  return {
646
667
  component: (0, AgGridFilterAdapter_1.AgGridFilterAdapterFactory)(this.adaptableInstance),
647
- handler: () => new AdaptableFilterHandler_1.AdaptableFilterHandler(this.adaptableApi, columnSetup),
668
+ handler: () => new AdaptableFilterHandler_1.AdaptableFilterHandler(this.adaptableApi),
648
669
  };
649
670
  });
650
671
  }
@@ -40,7 +40,7 @@ const AgGridFilterAdapterFactory = (adaptable) => {
40
40
  if (column) {
41
41
  this.unmountReactRoot = adaptable.renderReactRoot((0, renderWithAdaptableContext_1.renderWithAdaptableContext)(React.createElement(AdaptableColumnFilter_1.AdaptableColumnFilter, {
42
42
  columnId,
43
- wrapperProps: { p: 2 },
43
+ wrapperProps: { className: 'twa:p-2' },
44
44
  location: 'columnMenu',
45
45
  }), adaptable), this.filterContainer);
46
46
  }
@@ -61,26 +61,6 @@ const AgGridFloatingFilterAdapterFactory = (adaptable) => {
61
61
  headerCell.style.padding = 'var(--ab-space-1)';
62
62
  }
63
63
  }
64
- if (adaptable.isAgGridInitialising) {
65
- if (adaptable.variant === 'react') {
66
- return () => React.createElement(React.Fragment, null);
67
- }
68
- return class FloatingFilterStub {
69
- init(params) {
70
- this.filterContainer = document.createElement('div');
71
- }
72
- getGui() {
73
- return this.filterContainer;
74
- }
75
- destroy() {
76
- this.unmountReactRoot?.();
77
- this.filterContainer = null;
78
- }
79
- onParentModelChanged() {
80
- // nothing yet
81
- }
82
- };
83
- }
84
64
  return class AgGridFloatingFilterAdapter {
85
65
  init(params) {
86
66
  const colId = params.column.getColId();
@@ -111,7 +91,7 @@ const AgGridFloatingFilterAdapterFactory = (adaptable) => {
111
91
  }
112
92
  refresh(params) {
113
93
  // always reuse the current instance
114
- // the filte ris refreshed in the underlying React component
94
+ // the filter is refreshed in the underlying React component
115
95
  return true;
116
96
  }
117
97
  destroy() {
@@ -68,11 +68,7 @@ exports.InternalAdaptableNumberEditor = React.forwardRef(function InternalAdapta
68
68
  React.createElement("input", { "data-name": "AdaptableNumberEditorInput", type: props.type ?? 'number', value: value, onKeyDown: preventDisallowedChars, onChange: React.useCallback((event) => {
69
69
  setValue(event.target.value);
70
70
  }, []), style: inputStyle, ref: inputRef }),
71
- showClear ? (React.createElement("div", { style: {
72
- display: 'inline-block',
73
- marginRight: 'var(--ab-space-1)',
74
- marginLeft: 'var(--ab-space-1)',
75
- }, onClick: (e) => {
71
+ showClear ? (React.createElement("div", { className: "twa:inline-block twa:mx-1", onClick: (e) => {
76
72
  if (props.emptyValue != null) {
77
73
  setValue(props.emptyValue);
78
74
  e.stopPropagation();
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AdaptableNumberEditor = exports.AdaptableReactNumberEditor = exports.getStartValue = void 0;
3
+ exports.AdaptableNumberEditor = exports.AdaptableReactNumberEditor = void 0;
4
+ exports.getStartValue = getStartValue;
4
5
  const tslib_1 = require("tslib");
5
6
  const React = tslib_1.__importStar(require("react"));
6
7
  const renderWithAdaptableContext_1 = require("../../../View/renderWithAdaptableContext");
@@ -24,7 +25,6 @@ function getStartValue(params) {
24
25
  }
25
26
  return params.value;
26
27
  }
27
- exports.getStartValue = getStartValue;
28
28
  const defaultValueParser = ({ newValue, oldValue: _ }) => {
29
29
  return newValue;
30
30
  };
@@ -61,11 +61,7 @@ exports.InternalAdaptablePercentageEditor = React.forwardRef(function InternalAd
61
61
  React.createElement(NumberInput_1.NumberInput, { type: props.type ?? 'number', className: "ab-PercentageEditor-Input", value: value, noArrows: true, autoFocus: true, onChange: React.useCallback((value) => {
62
62
  setValue(value);
63
63
  }, []), style: inputStyle, ref: inputRef }),
64
- showClear ? (React.createElement("div", { style: {
65
- display: 'inline-block',
66
- marginRight: 'var(--ab-space-1)',
67
- marginLeft: 'var(--ab-space-1)',
68
- }, onClick: (e) => {
64
+ showClear ? (React.createElement("div", { className: "twa:inline-block twa:mx-1", onClick: (e) => {
69
65
  if (props.emptyValue != null) {
70
66
  setValue(props.emptyValue);
71
67
  e.stopPropagation();
@@ -1,13 +1,11 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.AdaptableLogger = exports.AdaptableNoCodeWizard = exports.AdaptableWizardView = void 0;
4
+ const tslib_1 = require("tslib");
7
5
  const Adaptable_1 = require("./Adaptable");
8
6
  const AdaptableLogger_1 = require("./AdaptableLogger");
9
7
  var AdaptableWizardView_1 = require("../View/AdaptableWizardView");
10
- Object.defineProperty(exports, "AdaptableWizardView", { enumerable: true, get: function () { return __importDefault(AdaptableWizardView_1).default; } });
8
+ Object.defineProperty(exports, "AdaptableWizardView", { enumerable: true, get: function () { return tslib_1.__importDefault(AdaptableWizardView_1).default; } });
11
9
  exports.default = Adaptable_1.Adaptable;
12
10
  exports.AdaptableNoCodeWizard = Adaptable_1.AdaptableNoCodeWizard;
13
11
  exports.AdaptableLogger = AdaptableLogger_1.AdaptableLogger;