@adaptabletools/adaptable 23.0.0-canary.6 → 23.0.0-canary.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (332) hide show
  1. package/icons/sort-asc.svg +1 -1
  2. package/index.css +755 -256
  3. package/package.json +1 -1
  4. package/src/AdaptableOptions/DataSetOptions.d.ts +26 -2
  5. package/src/AdaptableOptions/DefaultAdaptableOptions.js +0 -1
  6. package/src/AdaptableOptions/SettingsPanelOptions.d.ts +42 -10
  7. package/src/AdaptableState/Common/AdaptableFormat.d.ts +7 -0
  8. package/src/AdaptableState/Common/AdaptableMessageType.d.ts +1 -1
  9. package/src/AdaptableState/Common/Enums.d.ts +1 -1
  10. package/src/AdaptableState/Common/Enums.js +1 -1
  11. package/src/AdaptableState/StyledColumnState.d.ts +2 -2
  12. package/src/Api/Internal/AlertInternalApi.js +1 -1
  13. package/src/Api/Internal/DataSetInternalApi.d.ts +3 -0
  14. package/src/Api/Internal/DataSetInternalApi.js +73 -13
  15. package/src/Redux/Store/AdaptableStore.js +6 -4
  16. package/src/Strategy/CalculatedColumnModule.js +1 -0
  17. package/src/Strategy/ColumnFilterModule.js +1 -0
  18. package/src/Strategy/FlashingCellModule.js +6 -2
  19. package/src/Strategy/FormatColumnModule.js +2 -2
  20. package/src/Strategy/FreeTextColumnModule.js +38 -28
  21. package/src/Strategy/Interface/IModule.d.ts +3 -1
  22. package/src/Strategy/LayoutModule.js +15 -66
  23. package/src/Strategy/StyledColumnModule.js +12 -29
  24. package/src/Strategy/Utilities/CustomSort/getCustomSortColumnViewItems.d.ts +1 -0
  25. package/src/Strategy/Utilities/CustomSort/getCustomSortColumnViewItems.js +1 -0
  26. package/src/Strategy/Utilities/Export/getExportColumnsViewItems.d.ts +2 -0
  27. package/src/Strategy/Utilities/Export/getExportColumnsViewItems.js +14 -0
  28. package/src/Strategy/Utilities/Export/getExportRowsViewItems.d.ts +1 -0
  29. package/src/Strategy/Utilities/Export/getExportRowsViewItems.js +3 -0
  30. package/src/Strategy/Utilities/Layout/aggregationSummaryHelpers.d.ts +11 -0
  31. package/src/Strategy/Utilities/Layout/aggregationSummaryHelpers.js +105 -0
  32. package/src/Strategy/Utilities/Layout/columnsSummaryHelpers.d.ts +48 -0
  33. package/src/Strategy/Utilities/Layout/columnsSummaryHelpers.js +166 -0
  34. package/src/Strategy/Utilities/Layout/getLayoutSortViewItems.d.ts +1 -0
  35. package/src/Strategy/Utilities/Layout/getLayoutSortViewItems.js +1 -0
  36. package/src/Strategy/Utilities/Layout/rowGroupSummaryHelpers.d.ts +26 -0
  37. package/src/Strategy/Utilities/Layout/rowGroupSummaryHelpers.js +85 -0
  38. package/src/Utilities/Defaults/DefaultSettingsPanel.d.ts +3 -5
  39. package/src/Utilities/Defaults/DefaultSettingsPanel.js +46 -41
  40. package/src/Utilities/Helpers/FormatHelper.js +3 -0
  41. package/src/Utilities/Helpers/ScheduleHelper.js +2 -0
  42. package/src/Utilities/Helpers/StyleHelper.d.ts +18 -0
  43. package/src/Utilities/Helpers/StyleHelper.js +27 -0
  44. package/src/Utilities/Helpers/StyledColumnGradientHelper.js +7 -5
  45. package/src/Utilities/Helpers/resolveSettingsPanelNavigation.d.ts +3 -0
  46. package/src/Utilities/Helpers/resolveSettingsPanelNavigation.js +15 -0
  47. package/src/Utilities/getScopeViewItems.js +2 -0
  48. package/src/Utilities/wizardSelection.d.ts +10 -0
  49. package/src/Utilities/wizardSelection.js +15 -0
  50. package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/AdaptableOptionsForm.js +2 -2
  51. package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/UIOptions/UIOptionsSidebarForm.js +2 -2
  52. package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/UIOptions/UIOptionsStatusbarForm.js +3 -3
  53. package/src/View/Alert/AlertViewPanel.js +2 -2
  54. package/src/View/Alert/Utilities/getAlertButtonStyle.js +7 -4
  55. package/src/View/Alert/Wizard/AlertBehaviourWizardSection.d.ts +0 -1
  56. package/src/View/Alert/Wizard/AlertBehaviourWizardSection.js +0 -4
  57. package/src/View/Alert/Wizard/AlertButtonsEditor.js +2 -1
  58. package/src/View/Alert/Wizard/AlertMessageWizardSection.d.ts +1 -1
  59. package/src/View/Alert/Wizard/AlertMessageWizardSection.js +1 -2
  60. package/src/View/Alert/Wizard/AlertNotificationWizardSection.d.ts +1 -1
  61. package/src/View/Alert/Wizard/AlertNotificationWizardSection.js +3 -4
  62. package/src/View/Alert/Wizard/AlertScheduledWizardSection.d.ts +1 -1
  63. package/src/View/Alert/Wizard/AlertScheduledWizardSection.js +1 -2
  64. package/src/View/Alert/Wizard/AlertTypeWizardSection.d.ts +1 -1
  65. package/src/View/Alert/Wizard/AlertTypeWizardSection.js +31 -7
  66. package/src/View/Alert/Wizard/AlertWizard.js +4 -4
  67. package/src/View/Alert/Wizard/BaseAlertScopeWizardSection.d.ts +2 -1
  68. package/src/View/Alert/Wizard/BaseAlertScopeWizardSection.js +4 -14
  69. package/src/View/BulkUpdate/BulkUpdatePopup.js +1 -1
  70. package/src/View/BulkUpdate/BulkUpdateViewPanel.js +4 -6
  71. package/src/View/CalculatedColumn/Wizard/CalculatedColumnExpressionWizardSection.d.ts +1 -1
  72. package/src/View/CalculatedColumn/Wizard/CalculatedColumnExpressionWizardSection.js +1 -2
  73. package/src/View/CalculatedColumn/Wizard/CalculatedColumnSettingsWizardSection.js +1 -1
  74. package/src/View/CalculatedColumn/Wizard/CalculatedColumnTypeSection.js +30 -4
  75. package/src/View/CellSummary/CellSummaryViewPanel.js +4 -4
  76. package/src/View/Charting/ShowChartButton.js +8 -8
  77. package/src/View/ColumnInfo/ColumnInfo.js +21 -1
  78. package/src/View/Components/AdaptableObjectCollection/index.js +2 -2
  79. package/src/View/Components/AdaptableObjectList/AdaptableObjectCompactList.js +1 -1
  80. package/src/View/Components/AdaptableObjectList/AdaptableObjectList.js +4 -4
  81. package/src/View/Components/AdaptableObjectRow/index.js +2 -2
  82. package/src/View/Components/Buttons/ButtonBase/index.js +2 -3
  83. package/src/View/Components/Buttons/ButtonNew.d.ts +2 -0
  84. package/src/View/Components/Buttons/ButtonNew.js +1 -1
  85. package/src/View/Components/Buttons/EntityListActionButtons.js +3 -3
  86. package/src/View/Components/Buttons/SuspendToggleButton/SuspendToggleButton.js +2 -2
  87. package/src/View/Components/ColumnFilter/ColumnFilter.js +2 -3
  88. package/src/View/Components/ColumnFilter/components/ColumnFilterMenu.js +2 -2
  89. package/src/View/Components/ColumnSelector/index.d.ts +12 -0
  90. package/src/View/Components/ColumnSelector/index.js +30 -6
  91. package/src/View/Components/EntityRulesEditor/EntityRulePredicatesEditor/EntityRulePredicatesEditor.js +2 -2
  92. package/src/View/Components/ModuleValueSelector/index.js +2 -1
  93. package/src/View/Components/NewScopeComponent.js +4 -9
  94. package/src/View/Components/Popups/AdaptablePopup/AdaptablePopup.js +5 -4
  95. package/src/View/Components/Popups/AdaptablePopup/AdaptablePopupDialog.js +4 -4
  96. package/src/View/Components/Popups/AdaptablePopup/AdaptablePopupModuleView.js +1 -1
  97. package/src/View/Components/Popups/AdaptablePopup/Navigation.d.ts +3 -2
  98. package/src/View/Components/Popups/AdaptablePopup/Navigation.js +38 -28
  99. package/src/View/Components/Popups/AdaptablePopup/PopupPanel.js +3 -3
  100. package/src/View/Components/Popups/AdaptablePopup/TopBar.js +2 -2
  101. package/src/View/Components/Popups/AdaptablePopup/settingsPanelNavigationTypes.d.ts +11 -0
  102. package/src/View/Components/Popups/AdaptablePopup/settingsPanelNavigationTypes.js +1 -0
  103. package/src/View/Components/Popups/AdaptablePopup/useMenuItems.d.ts +3 -1
  104. package/src/View/Components/Popups/AdaptablePopup/useMenuItems.js +25 -27
  105. package/src/View/Components/PredicateEditor/PredicateEditor.js +1 -1
  106. package/src/View/Components/RangesComponent.d.ts +2 -4
  107. package/src/View/Components/RangesComponent.js +95 -66
  108. package/src/View/Components/ReorderDraggable/index.js +2 -2
  109. package/src/View/Components/Selectors/BulkUpdateValueSelector.d.ts +0 -2
  110. package/src/View/Components/Selectors/BulkUpdateValueSelector.js +3 -3
  111. package/src/View/Components/StyleComponent.js +32 -65
  112. package/src/View/Components/ToolPanel/AdaptableToolPanel.js +10 -7
  113. package/src/View/Components/ToolPanel/ToolPanelPopup.d.ts +3 -13
  114. package/src/View/Components/ToolPanel/ToolPanelPopup.js +5 -81
  115. package/src/View/Components/ToolPanel/ToolPanelPopupSections.d.ts +17 -0
  116. package/src/View/Components/ToolPanel/ToolPanelPopupSections.js +76 -0
  117. package/src/View/Components/ValueSelector/index.d.ts +29 -0
  118. package/src/View/Components/ValueSelector/index.js +113 -30
  119. package/src/View/Components/wizardColumnListStyles.d.ts +10 -0
  120. package/src/View/Components/wizardColumnListStyles.js +10 -0
  121. package/src/View/CustomSort/Wizard/CustomSortColumnWizardSection.d.ts +2 -1
  122. package/src/View/CustomSort/Wizard/CustomSortColumnWizardSection.js +5 -7
  123. package/src/View/CustomSort/Wizard/CustomSortWizard.js +2 -2
  124. package/src/View/Dashboard/DashboardPopup.d.ts +1 -11
  125. package/src/View/Dashboard/DashboardPopup.js +3 -67
  126. package/src/View/Dashboard/DashboardPopupSections.d.ts +20 -0
  127. package/src/View/Dashboard/DashboardPopupSections.js +68 -0
  128. package/src/View/Dashboard/PinnedToolbarsSelector.js +2 -2
  129. package/src/View/DataChangeHistory/DataChangeHistoryPopup.d.ts +1 -6
  130. package/src/View/DataChangeHistory/DataChangeHistoryPopup.js +8 -20
  131. package/src/View/DataChangeHistory/DataChangeHistoryTable.d.ts +8 -0
  132. package/src/View/DataChangeHistory/DataChangeHistoryTable.js +94 -0
  133. package/src/View/DataChangeHistory/buildActionColumnButton.d.ts +5 -3
  134. package/src/View/DataChangeHistory/buildActionColumnButton.js +30 -39
  135. package/src/View/DataChangeHistory/dataChangeHistoryHelpers.d.ts +15 -0
  136. package/src/View/DataChangeHistory/dataChangeHistoryHelpers.js +37 -0
  137. package/src/View/DataImport/DataImportWizard/DataImportWizard.js +1 -1
  138. package/src/View/DataImport/DataImportWizard/sections/ColumnsSection.js +32 -19
  139. package/src/View/DataImport/DataImportWizard/sections/DataPreview.js +1 -1
  140. package/src/View/DataSet/DataSetViewPanel.d.ts +2 -2
  141. package/src/View/Export/ExportDestinationPicker.js +3 -3
  142. package/src/View/Export/ExportViewPanel.js +2 -2
  143. package/src/View/Export/Wizard/ReportColumnsWizardSection.d.ts +2 -1
  144. package/src/View/Export/Wizard/ReportColumnsWizardSection.js +4 -9
  145. package/src/View/Export/Wizard/ReportRowsWizardSection.d.ts +2 -1
  146. package/src/View/Export/Wizard/ReportRowsWizardSection.js +3 -6
  147. package/src/View/FlashingCell/FlashingCellStyle.d.ts +4 -2
  148. package/src/View/FlashingCell/FlashingCellStyle.js +4 -2
  149. package/src/View/FlashingCell/Wizard/FlashingCellRulesWizardSection.d.ts +2 -1
  150. package/src/View/FlashingCell/Wizard/FlashingCellRulesWizardSection.js +7 -11
  151. package/src/View/FlashingCell/Wizard/FlashingCellScopeSummary.d.ts +9 -0
  152. package/src/View/FlashingCell/Wizard/FlashingCellScopeSummary.js +5 -0
  153. package/src/View/FlashingCell/Wizard/FlashingCellScopeWizardSection.d.ts +1 -1
  154. package/src/View/FlashingCell/Wizard/FlashingCellScopeWizardSection.js +1 -0
  155. package/src/View/FlashingCell/Wizard/FlashingCellStyleWizardSection.d.ts +0 -5
  156. package/src/View/FlashingCell/Wizard/FlashingCellStyleWizardSection.js +1 -5
  157. package/src/View/FlashingCell/Wizard/FlashingCellWizard.js +2 -3
  158. package/src/View/FormatColumn/Wizard/FormatColumnFormatWizardSection.d.ts +1 -1
  159. package/src/View/FormatColumn/Wizard/FormatColumnFormatWizardSection.js +99 -42
  160. package/src/View/FormatColumn/Wizard/FormatColumnRuleWizardSection.d.ts +0 -1
  161. package/src/View/FormatColumn/Wizard/FormatColumnRuleWizardSection.js +0 -4
  162. package/src/View/FormatColumn/Wizard/FormatColumnScopeWizardSection.js +56 -15
  163. package/src/View/FormatColumn/Wizard/FormatColumnSettingsWizardSection.js +1 -1
  164. package/src/View/FormatColumn/Wizard/FormatColumnStyleWizardSection.d.ts +2 -3
  165. package/src/View/FormatColumn/Wizard/FormatColumnStyleWizardSection.js +5 -8
  166. package/src/View/FormatColumn/Wizard/FormatColumnWizard.js +8 -13
  167. package/src/View/FreeTextColumn/Utilities/getFreeTextColumnSettingsTags.js +3 -2
  168. package/src/View/FreeTextColumn/Wizard/FreeTextColumnSettingsWizardSection.js +1 -2
  169. package/src/View/GridFilter/GridFilterPopupUI/index.js +3 -2
  170. package/src/View/GridFilter/GridFilterViewPanel.js +5 -5
  171. package/src/View/GridInfo/GridInfoPopup/AdaptableObjectsSummary.js +2 -2
  172. package/src/View/GridInfo/GridInfoPopup/GridInfoPopup.js +2 -2
  173. package/src/View/Layout/LayoutViewPanel.js +1 -1
  174. package/src/View/Layout/Wizard/LayoutWizard.js +24 -28
  175. package/src/View/Layout/Wizard/sections/AggregationsSection.d.ts +13 -1
  176. package/src/View/Layout/Wizard/sections/AggregationsSection.js +73 -33
  177. package/src/View/Layout/Wizard/sections/ColumnsSection.d.ts +4 -1
  178. package/src/View/Layout/Wizard/sections/ColumnsSection.js +155 -276
  179. package/src/View/Layout/Wizard/sections/PivotAggregationsSection.d.ts +4 -1
  180. package/src/View/Layout/Wizard/sections/PivotAggregationsSection.js +148 -145
  181. package/src/View/Layout/Wizard/sections/PivotColumnsSection.d.ts +5 -2
  182. package/src/View/Layout/Wizard/sections/PivotColumnsSection.js +24 -12
  183. package/src/View/Layout/Wizard/sections/PivotRowGroupingSection.d.ts +4 -1
  184. package/src/View/Layout/Wizard/sections/PivotRowGroupingSection.js +23 -12
  185. package/src/View/Layout/Wizard/sections/RowGroupingSection.d.ts +5 -2
  186. package/src/View/Layout/Wizard/sections/RowGroupingSection.js +19 -12
  187. package/src/View/Layout/Wizard/sections/RowSelectionSection.js +8 -4
  188. package/src/View/Layout/Wizard/sections/RowSummarySection.js +11 -11
  189. package/src/View/Layout/Wizard/sections/SortSection.d.ts +12 -2
  190. package/src/View/Layout/Wizard/sections/SortSection.js +41 -17
  191. package/src/View/Layout/Wizard/sections/columnLayoutCards.d.ts +20 -0
  192. package/src/View/Layout/Wizard/sections/columnLayoutCards.js +159 -0
  193. package/src/View/Layout/Wizard/sections/columnLayoutHelpers.d.ts +30 -0
  194. package/src/View/Layout/Wizard/sections/columnLayoutHelpers.js +201 -0
  195. package/src/View/Layout/Wizard/sections/layoutWizardAccordionHelpers.d.ts +8 -0
  196. package/src/View/Layout/Wizard/sections/layoutWizardAccordionHelpers.js +63 -0
  197. package/src/View/Layout/Wizard/sections/layoutWizardColumns.d.ts +11 -0
  198. package/src/View/Layout/Wizard/sections/layoutWizardColumns.js +52 -0
  199. package/src/View/License/LicenseWatermark.js +1 -1
  200. package/src/View/NamedQuery/Wizard/NamedQueryExpressionWizardSection.d.ts +1 -1
  201. package/src/View/NamedQuery/Wizard/NamedQueryExpressionWizardSection.js +1 -2
  202. package/src/View/Note/NoteEditor.js +2 -2
  203. package/src/View/QuickSearch/QuickSearchPopup.js +2 -3
  204. package/src/View/Schedule/Wizard/ScheduleScheduleWizard.js +1 -1
  205. package/src/View/Shortcut/Wizard/ShortcutSettingsWizard.js +1 -1
  206. package/src/View/SmartEdit/SmartEditPopup.js +2 -2
  207. package/src/View/SmartEdit/SmartEditViewPanel.js +2 -2
  208. package/src/View/StateManagement/StateManagementPopup.js +1 -1
  209. package/src/View/StateManagement/components/ExportDropdown.d.ts +2 -2
  210. package/src/View/StateManagement/components/ExportDropdown.js +12 -12
  211. package/src/View/StatusBar/StatusBarPanel.js +2 -2
  212. package/src/View/StatusBar/StatusBarPopup.js +33 -5
  213. package/src/View/StatusBar/statusBarPanelHelpers.d.ts +2 -0
  214. package/src/View/StatusBar/statusBarPanelHelpers.js +7 -0
  215. package/src/View/StyledColumn/Wizard/BadgePillStyleEditor.d.ts +2 -0
  216. package/src/View/StyledColumn/Wizard/BadgePillStyleEditor.js +14 -11
  217. package/src/View/StyledColumn/Wizard/StyledColumnBadgeSection.d.ts +2 -2
  218. package/src/View/StyledColumn/Wizard/StyledColumnBadgeSection.js +137 -119
  219. package/src/View/StyledColumn/Wizard/StyledColumnSliceStyleEditors.js +8 -14
  220. package/src/View/StyledColumn/Wizard/StyledColumnSparklineSettingsSection.js +2 -1
  221. package/src/View/StyledColumn/Wizard/StyledColumnTypeThumbnail.d.ts +5 -0
  222. package/src/View/StyledColumn/Wizard/StyledColumnTypeThumbnail.js +50 -0
  223. package/src/View/StyledColumn/Wizard/StyledColumnWizard.d.ts +2 -0
  224. package/src/View/StyledColumn/Wizard/StyledColumnWizard.js +26 -5
  225. package/src/View/StyledColumn/Wizard/StyledColumnWizardBulletSection.js +8 -17
  226. package/src/View/StyledColumn/Wizard/StyledColumnWizardGradientSection.js +2 -1
  227. package/src/View/StyledColumn/Wizard/StyledColumnWizardIconSection.js +46 -28
  228. package/src/View/StyledColumn/Wizard/StyledColumnWizardRangeBarSection.js +98 -43
  229. package/src/View/StyledColumn/Wizard/StyledColumnWizardRatingSection.js +2 -1
  230. package/src/View/StyledColumn/Wizard/StyledColumnWizardScopeSection.d.ts +1 -1
  231. package/src/View/StyledColumn/Wizard/StyledColumnWizardScopeSection.js +32 -46
  232. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/StyledColumnWizardStyleSection.js +11 -6
  233. package/src/View/StyledColumn/Wizard/StyledColumnWizardTypeSection.js +94 -7
  234. package/src/View/UIHelper.d.ts +0 -2
  235. package/src/View/UIHelper.js +8 -23
  236. package/src/View/Wizard/CollapsibleWizardCard.d.ts +68 -0
  237. package/src/View/Wizard/CollapsibleWizardCard.js +81 -0
  238. package/src/View/Wizard/OnePageWizards.js +6 -6
  239. package/src/View/Wizard/SummaryColorTag.d.ts +24 -0
  240. package/src/View/Wizard/SummaryColorTag.js +67 -0
  241. package/src/View/Wizard/WizardTypeSelection.d.ts +34 -0
  242. package/src/View/Wizard/WizardTypeSelection.js +31 -0
  243. package/src/View/Wizard/rowGroupSummaryTags.d.ts +18 -0
  244. package/src/View/Wizard/rowGroupSummaryTags.js +14 -0
  245. package/src/View/Wizard/scopeSummaryTags.d.ts +6 -0
  246. package/src/View/Wizard/scopeSummaryTags.js +33 -0
  247. package/src/agGrid/AgGridAdapter.js +0 -5
  248. package/src/agGrid/AgGridColumnAdapter.js +2 -2
  249. package/src/agGrid/cellRenderers/ActionColumnRenderer.js +4 -7
  250. package/src/components/AdaptableFormComponent/AdaptableFormComponent.js +1 -1
  251. package/src/components/Card/index.js +5 -6
  252. package/src/components/CheckBox/index.js +2 -3
  253. package/src/components/CodeBlock/index.js +2 -2
  254. package/src/components/ColorPicker/ColorPicker.d.ts +1 -0
  255. package/src/components/ColorPicker/ColorPicker.js +8 -6
  256. package/src/components/ColorPicker/OptionalColorPicker.d.ts +12 -0
  257. package/src/components/ColorPicker/OptionalColorPicker.js +26 -0
  258. package/src/components/ColorPicker/index.d.ts +1 -0
  259. package/src/components/ColorPicker/index.js +1 -0
  260. package/src/components/Combobox/comboboxUtils.d.ts +1 -0
  261. package/src/components/Combobox/index.js +19 -18
  262. package/src/components/Dashboard/DashboardManager.js +2 -4
  263. package/src/components/Dialog/index.js +4 -4
  264. package/src/components/DragAndDropContext/DragAndDropContext.d.ts +5 -0
  265. package/src/components/DragAndDropContext/DragAndDropContext.js +3 -0
  266. package/src/components/DragAndDropContext/ModuleManager.d.ts +15 -3
  267. package/src/components/DragAndDropContext/ModuleManager.js +47 -8
  268. package/src/components/DragAndDropContext/TabList.d.ts +11 -4
  269. package/src/components/DragAndDropContext/TabList.js +52 -38
  270. package/src/components/DragAndDropContext/UnusedPanel.d.ts +4 -3
  271. package/src/components/DragAndDropContext/UnusedPanel.js +15 -11
  272. package/src/components/DragAndDropContext/dragScope.d.ts +6 -0
  273. package/src/components/DragAndDropContext/dragScope.js +26 -0
  274. package/src/components/DragAndDropContext/types.d.ts +7 -0
  275. package/src/components/DropdownButton/index.d.ts +33 -25
  276. package/src/components/DropdownButton/index.js +24 -158
  277. package/src/components/EmptyContent/index.js +2 -2
  278. package/src/components/ErrorBox/index.js +2 -2
  279. package/src/components/ExpressionEditor/BaseEditorInput.js +3 -3
  280. package/src/components/ExpressionEditor/QueryBuilder/QueryBuilderInputs.js +3 -3
  281. package/src/components/ExpressionEditor/QueryBuilder/QueryPredicateBuilder.js +6 -6
  282. package/src/components/FieldWrap/index.js +2 -2
  283. package/src/components/Flex.js +2 -2
  284. package/src/components/FormLayout/index.d.ts +1 -1
  285. package/src/components/HelpBlock/index.js +3 -3
  286. package/src/components/IconSelector/IconSelector.d.ts +8 -0
  287. package/src/components/IconSelector/IconSelector.js +11 -7
  288. package/src/components/IconSelector/index.d.ts +1 -0
  289. package/src/components/IconSelector/index.js +1 -0
  290. package/src/components/Modal/index.js +2 -2
  291. package/src/components/NewSelect/index.js +11 -1
  292. package/src/components/Panel/index.js +7 -7
  293. package/src/components/Radio/index.d.ts +1 -1
  294. package/src/components/Radio/index.js +8 -6
  295. package/src/components/SimpleButton/index.js +7 -7
  296. package/src/components/StylePreview.js +2 -2
  297. package/src/components/Tabs/index.js +4 -4
  298. package/src/components/Tag/Tag.d.ts +16 -0
  299. package/src/components/Tag/Tag.js +14 -4
  300. package/src/components/Tag/columnScopeTagHelpers.d.ts +8 -0
  301. package/src/components/Tag/columnScopeTagHelpers.js +6 -0
  302. package/src/components/Tag/index.d.ts +1 -1
  303. package/src/components/Tag/index.js +1 -1
  304. package/src/components/Textarea/index.js +2 -3
  305. package/src/components/Toggle/Toggle.d.ts +2 -0
  306. package/src/components/Toggle/Toggle.js +14 -7
  307. package/src/components/Toggle/ToggleGroup.js +2 -2
  308. package/src/components/ToggleButton/index.js +4 -4
  309. package/src/components/Tree/TreeDropdown/index.js +3 -4
  310. package/src/components/WarningBox/index.js +2 -2
  311. package/src/components/icons/sort-asc.js +1 -1
  312. package/src/components/ui/button.d.ts +2 -2
  313. package/src/components/ui/combobox.d.ts +3 -1
  314. package/src/components/ui/combobox.js +2 -2
  315. package/src/components/ui/input-group.d.ts +1 -1
  316. package/src/components/ui/select.js +3 -2
  317. package/src/components/ui/textarea.js +1 -1
  318. package/src/env.js +2 -2
  319. package/src/layout-manager/src/index.js +7 -3
  320. package/src/metamodel/adaptable.metamodel.js +1 -1
  321. package/src/types.d.ts +1 -1
  322. package/tsconfig.esm.tsbuildinfo +1 -1
  323. package/src/View/DataChangeHistory/DataChangeHistoryGrid.d.ts +0 -17
  324. package/src/View/DataChangeHistory/DataChangeHistoryGrid.js +0 -290
  325. package/src/components/DropdownButton/DropdownButtonItem.d.ts +0 -12
  326. package/src/components/DropdownButton/DropdownButtonItem.js +0 -1
  327. package/src/components/DropdownButton/renderItem.d.ts +0 -14
  328. package/src/components/DropdownButton/renderItem.js +0 -11
  329. package/src/components/DropdownButton/useExpanded.d.ts +0 -24
  330. package/src/components/DropdownButton/useExpanded.js +0 -56
  331. package/src/components/NewDropdownButton/index.d.ts +0 -27
  332. package/src/components/NewDropdownButton/index.js +0 -24
@@ -1,91 +1,15 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import * as React from 'react';
3
3
  import { connect } from 'react-redux';
4
4
  import * as ToolPanelRedux from '../../../Redux/ActionsReducers/ToolPanelRedux';
5
5
  import { PopupPanel } from '../Popups/AdaptablePopup/PopupPanel';
6
- import Radio from '../../../components/Radio';
7
- import { ALL_TOOL_PANELS, } from '../../../AdaptableState/Common/Types';
8
- import ArrayExtensions from '../../../Utilities/Extensions/ArrayExtensions';
9
- import { ModuleValueSelector } from '../ModuleValueSelector';
10
- import { Tabs } from '../../../components/Tabs';
11
- import Panel from '../../../components/Panel';
12
- export var ToolPanelConfigView;
13
- (function (ToolPanelConfigView) {
14
- ToolPanelConfigView["Buttons"] = "Buttons";
15
- ToolPanelConfigView["ToolPanels"] = "ToolPanels";
16
- })(ToolPanelConfigView || (ToolPanelConfigView = {}));
6
+ import { ToolPanelPopupSections, ToolPanelConfigView } from './ToolPanelPopupSections';
7
+ export { ToolPanelConfigView } from './ToolPanelPopupSections';
17
8
  class ToolPanelPopupComponent extends React.Component {
18
- constructor(props) {
19
- super(props);
20
- const initialTab = props.popupParams?.config?.initialTab ?? ToolPanelConfigView.ToolPanels;
21
- this.state = {
22
- ToolPanelConfigView: initialTab,
23
- };
24
- }
25
9
  render() {
26
- // 1. process module buttons
27
- const selectedModuleButtons = [];
28
- if (ArrayExtensions.IsNotNullOrEmpty(this.props.ToolPanelState.ModuleButtons)) {
29
- this.props.ToolPanelState.ModuleButtons.forEach((module) => {
30
- let menuItem = this.props.InternalState.SettingsPanelModuleEntries.find((m) => m.category == module);
31
- if (menuItem?.isVisible) {
32
- selectedModuleButtons.push(module);
33
- }
34
- });
35
- }
36
- const allModuleButtons = this.props.InternalState.SettingsPanelModuleEntries.map((x) => x.category);
37
- // 2. process tool panels
38
- const availableModules = this.props.InternalState.SettingsPanelModuleEntries.filter((menuItem) => menuItem.isVisible).map((menuItem) => menuItem.category);
39
- // 'Dashboard' is a special case because it's not available in the dashboard menu items, s we have to add it manually
40
- if (!this.props.api.entitlementApi.isModuleHiddenEntitlement('Dashboard')) {
41
- availableModules.push('Dashboard');
42
- }
43
- if (this.props.api.pluginsApi.getipushpullPluginApi() &&
44
- !this.props.api.entitlementApi.isModuleHiddenEntitlement('IPushPull')) {
45
- availableModules.push('IPushPull');
46
- }
47
- if (this.props.api.pluginsApi.getOpenFinPluginApi() &&
48
- !this.props.api.entitlementApi.isModuleHiddenEntitlement('OpenFin')) {
49
- availableModules.push('OpenFin');
50
- }
51
- const availableModuleToolPanels = ALL_TOOL_PANELS.filter((moduleToolPanel) => ArrayExtensions.ContainsItem(availableModules, moduleToolPanel));
52
- const availableCustomToolPanels = this.props.api.toolPanelApi
53
- .getCustomToolPanels()
54
- .map((customToolPanel) => customToolPanel.name);
55
- const availableToolPanels = [
56
- ...availableCustomToolPanels,
57
- ...availableModuleToolPanels,
58
- ];
59
- const selectedToolPanels = this.props.ToolPanelState.ToolPanels.map((toolPanelDefinition) => toolPanelDefinition.Name)
60
- // ensure that the visible state has only valid tool panels
61
- .filter((visibleToolPanel) => availableToolPanels.includes(visibleToolPanel));
10
+ const initialTab = this.props.popupParams?.config?.initialTab ?? ToolPanelConfigView.ToolPanels;
62
11
  const isToolPanelReadOnly = this.props.api.entitlementApi.isModuleReadOnlyEntitlement('ToolPanel');
63
- const isModuleCheckboxDisabled = (module) => {
64
- if (module === 'SettingsPanel') {
65
- return this.props.api.optionsApi.getSettingsPanelOptions().alwaysShowInDashboard;
66
- }
67
- return false;
68
- };
69
- return (_jsx(PopupPanel, { headerText: "Tool Panel", glyphicon: this.props.moduleInfo.Glyph, infoLink: this.props.moduleInfo.HelpPage, infoLinkDisabled: !this.props.api.internalApi.isDocumentationLinksDisplayed(), scrollable: false, children: _jsx(Panel, { className: "twa:flex-1 twa:border-none twa:shadow-md twa:overflow-hidden", children: _jsx(Panel.FlexBody, { children: _jsxs(Tabs, { "data-name": 'toolPanelPopup-component', className: "ab-ToolPanelPopup twa:min-h-0 twa:flex-1", value: this.state.ToolPanelConfigView, onValueChange: (value) => this.setState({ ToolPanelConfigView: value }), children: [_jsx(Tabs.Tab, { value: ToolPanelConfigView.ToolPanels, children: _jsx(Radio, { className: "twa:m-0", value: ToolPanelConfigView.ToolPanels, checked: this.state.ToolPanelConfigView == ToolPanelConfigView.ToolPanels, tabIndex: -1, children: "Tool Panels" }) }), _jsx(Tabs.Tab, { value: ToolPanelConfigView.Buttons, children: _jsx(Radio, { className: "twa:m-0", value: ToolPanelConfigView.Buttons, checked: this.state.ToolPanelConfigView == ToolPanelConfigView.Buttons, tabIndex: -1, children: "Module Buttons" }) }), _jsx(Tabs.Content, { value: ToolPanelConfigView.ToolPanels, style: { flex: 1, overflow: 'auto' }, children: _jsx(ModuleValueSelector, { options: availableToolPanels, value: selectedToolPanels, onChange: (selectedValues) => this.onToolPanelToolPanelsChanged(selectedValues), disabled: isToolPanelReadOnly }) }), _jsx(Tabs.Content, { value: ToolPanelConfigView.Buttons, style: { flex: 1, overflow: 'auto' }, children: _jsx(ModuleValueSelector, { options: allModuleButtons, value: selectedModuleButtons, isOptionDisabled: isModuleCheckboxDisabled, disabled: isToolPanelReadOnly, onChange: (selectedValues) => this.props.onToolPanelSetModuleButtons(selectedValues) }) })] }) }) }) }));
70
- }
71
- onShowGridPropertiesChanged(event) {
72
- let e = event.target;
73
- let ToolPanelConfigView = e.value;
74
- this.setState({
75
- ToolPanelConfigView: ToolPanelConfigView,
76
- });
77
- }
78
- onToolPanelToolPanelsChanged(selectedValues) {
79
- const currentSelectedToolPanelDefinitions = this.props.ToolPanelState.ToolPanels;
80
- // try to return the pre-existing definition (to maintain the previous collapsed state)
81
- // otherwise select the new toolPanel with the default 'collapsed' state
82
- let newSelectedToolPanelDefinitions = selectedValues.map((selectedToolPanel) => {
83
- return (currentSelectedToolPanelDefinitions.find((currentDefinition) => currentDefinition.Name === selectedToolPanel) ?? {
84
- Name: selectedToolPanel,
85
- VisibilityMode: 'collapsed',
86
- });
87
- });
88
- this.props.onToolPanelSetToolPanels(newSelectedToolPanelDefinitions);
12
+ return (_jsx(PopupPanel, { headerText: "Tool Panel", glyphicon: this.props.moduleInfo.Glyph, infoLink: this.props.moduleInfo.HelpPage, infoLinkDisabled: !this.props.api.internalApi.isDocumentationLinksDisplayed(), scrollable: false, bodyClassName: "twa:gap-3 twa:flex twa:flex-col twa:h-full twa:min-h-0", children: _jsx(ToolPanelPopupSections, { ToolPanelState: this.props.ToolPanelState, InternalState: this.props.InternalState, initialTab: initialTab, isToolPanelReadOnly: isToolPanelReadOnly, onToolPanelSetModuleButtons: this.props.onToolPanelSetModuleButtons, onToolPanelSetToolPanels: this.props.onToolPanelSetToolPanels }) }));
89
13
  }
90
14
  }
91
15
  function mapStateToProps(state) {
@@ -0,0 +1,17 @@
1
+ import * as React from 'react';
2
+ import { InternalState } from '../../../AdaptableState/InternalState';
3
+ import { AdaptableToolPanelDefinition, ToolPanelState } from '../../../AdaptableState/ToolPanelState';
4
+ import { AdaptableModuleButtons } from '../../../AdaptableState/Common/Types';
5
+ export declare enum ToolPanelConfigView {
6
+ Buttons = "Buttons",
7
+ ToolPanels = "ToolPanels"
8
+ }
9
+ export interface ToolPanelPopupSectionsProps {
10
+ ToolPanelState: ToolPanelState;
11
+ InternalState: InternalState;
12
+ initialTab?: ToolPanelConfigView;
13
+ isToolPanelReadOnly: boolean;
14
+ onToolPanelSetModuleButtons: (moduleButtons: AdaptableModuleButtons) => void;
15
+ onToolPanelSetToolPanels: (toolPanels: AdaptableToolPanelDefinition[]) => void;
16
+ }
17
+ export declare const ToolPanelPopupSections: React.FunctionComponent<ToolPanelPopupSectionsProps>;
@@ -0,0 +1,76 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import * as React from 'react';
3
+ import { ALL_TOOL_PANELS, } from '../../../AdaptableState/Common/Types';
4
+ import ArrayExtensions from '../../../Utilities/Extensions/ArrayExtensions';
5
+ import { ModuleValueSelector } from '../ModuleValueSelector';
6
+ import { Flex } from '../../../components/Flex';
7
+ import { Tag } from '../../../components/Tag';
8
+ import { useAdaptable } from '../../AdaptableContext';
9
+ import { CollapsibleWizardCard, getWizardAccordionSectionClassName, renderCompactColumnTags, useWizardCardAccordion, } from '../../Wizard/CollapsibleWizardCard';
10
+ export var ToolPanelConfigView;
11
+ (function (ToolPanelConfigView) {
12
+ ToolPanelConfigView["Buttons"] = "Buttons";
13
+ ToolPanelConfigView["ToolPanels"] = "ToolPanels";
14
+ })(ToolPanelConfigView || (ToolPanelConfigView = {}));
15
+ export const ToolPanelPopupSections = (props) => {
16
+ const { api } = useAdaptable();
17
+ const initialExpandedId = props.initialTab === ToolPanelConfigView.Buttons ? 'module-buttons' : 'tool-panels';
18
+ const { bindCard, hasExpandedCard, expandedFillsSpace } = useWizardCardAccordion(initialExpandedId);
19
+ const selectedModuleButtons = [];
20
+ if (ArrayExtensions.IsNotNullOrEmpty(props.ToolPanelState.ModuleButtons)) {
21
+ props.ToolPanelState.ModuleButtons.forEach((module) => {
22
+ const menuItem = props.InternalState.SettingsPanelModuleEntries.find((entry) => entry.category === module);
23
+ if (menuItem?.isVisible) {
24
+ selectedModuleButtons.push(module);
25
+ }
26
+ });
27
+ }
28
+ const allModuleButtons = props.InternalState.SettingsPanelModuleEntries.map((entry) => entry.category);
29
+ const availableModules = props.InternalState.SettingsPanelModuleEntries.filter((menuItem) => menuItem.isVisible).map((menuItem) => menuItem.category);
30
+ if (!api.entitlementApi.isModuleHiddenEntitlement('Dashboard')) {
31
+ availableModules.push('Dashboard');
32
+ }
33
+ if (api.pluginsApi.getipushpullPluginApi() &&
34
+ !api.entitlementApi.isModuleHiddenEntitlement('IPushPull')) {
35
+ availableModules.push('IPushPull');
36
+ }
37
+ if (api.pluginsApi.getOpenFinPluginApi() &&
38
+ !api.entitlementApi.isModuleHiddenEntitlement('OpenFin')) {
39
+ availableModules.push('OpenFin');
40
+ }
41
+ const availableModuleToolPanels = ALL_TOOL_PANELS.filter((moduleToolPanel) => ArrayExtensions.ContainsItem(availableModules, moduleToolPanel));
42
+ const availableCustomToolPanels = api.toolPanelApi
43
+ .getCustomToolPanels()
44
+ .map((customToolPanel) => customToolPanel.name);
45
+ const availableToolPanels = [
46
+ ...availableCustomToolPanels,
47
+ ...availableModuleToolPanels,
48
+ ];
49
+ const selectedToolPanels = props.ToolPanelState.ToolPanels.map((toolPanelDefinition) => toolPanelDefinition.Name).filter((visibleToolPanel) => availableToolPanels.includes(visibleToolPanel));
50
+ const getToolPanelLabel = React.useCallback((toolPanelId) => {
51
+ const customToolPanel = api.toolPanelApi.getCustomToolPanelByName(toolPanelId);
52
+ if (customToolPanel) {
53
+ return customToolPanel.title ?? customToolPanel.name;
54
+ }
55
+ return (api.internalApi.getModuleService().getModuleFriendlyName(toolPanelId) ??
56
+ toolPanelId);
57
+ }, [api]);
58
+ const isModuleCheckboxDisabled = (module) => {
59
+ if (module === 'SettingsPanel') {
60
+ return api.optionsApi.getSettingsPanelOptions().alwaysShowInDashboard;
61
+ }
62
+ return false;
63
+ };
64
+ const handleToolPanelsChanged = (selectedValues) => {
65
+ const currentSelectedToolPanelDefinitions = props.ToolPanelState.ToolPanels;
66
+ const newSelectedToolPanelDefinitions = selectedValues.map((selectedToolPanel) => currentSelectedToolPanelDefinitions.find((currentDefinition) => currentDefinition.Name === selectedToolPanel) ?? {
67
+ Name: selectedToolPanel,
68
+ VisibilityMode: 'collapsed',
69
+ });
70
+ props.onToolPanelSetToolPanels(newSelectedToolPanelDefinitions);
71
+ };
72
+ const moduleButtonLabels = selectedModuleButtons.map((module) => api.internalApi.getModuleService().getModuleFriendlyName(module) ?? module);
73
+ const toolPanelsSummary = selectedToolPanels.length > 0 ? (_jsx(Flex, { flexWrap: "wrap", alignItems: "center", className: "twa:gap-1", children: selectedToolPanels.map((toolPanelId) => (_jsx(Tag, { children: getToolPanelLabel(toolPanelId) }, toolPanelId))) })) : (_jsx(Tag, { children: "No tool panels" }));
74
+ const moduleButtonsSummary = moduleButtonLabels.length > 0 ? (_jsx(Flex, { flexWrap: "wrap", alignItems: "center", className: "twa:gap-1", children: moduleButtonLabels.map((label) => (_jsx(Tag, { children: label }, label))) })) : (_jsx(Tag, { children: "No Module Buttons" }));
75
+ return (_jsxs(Flex, { flexDirection: "column", className: getWizardAccordionSectionClassName(hasExpandedCard, expandedFillsSpace), children: [_jsx(CollapsibleWizardCard, { ...bindCard('tool-panels', { fillAvailable: true }), "data-name": "tool-panel-tool-panels", title: "Tool Panels", help: "Select and order the Tool Panels to show in the AdapTable Tool Panel", compactSummary: renderCompactColumnTags(selectedToolPanels.map((toolPanelId) => getToolPanelLabel(toolPanelId)), (label) => label), summary: toolPanelsSummary, className: "twa:overflow-hidden twa:flex twa:flex-col", bodyClassName: "twa:min-h-[240px] twa:overflow-hidden twa:flex twa:flex-col twa:!pt-0 twa:!pb-0 twa:px-1", children: _jsx(ModuleValueSelector, { options: availableToolPanels, value: selectedToolPanels, onChange: handleToolPanelsChanged, disabled: props.isToolPanelReadOnly }) }), _jsx(CollapsibleWizardCard, { ...bindCard('module-buttons', { fillAvailable: true }), "data-name": "tool-panel-module-buttons", title: "Module Buttons", help: "Select and order module buttons shown at the top of the tool panel", compactSummary: renderCompactColumnTags(moduleButtonLabels, (label) => label), summary: moduleButtonsSummary, className: "twa:overflow-hidden twa:flex twa:flex-col", bodyClassName: "twa:min-h-[240px] twa:overflow-hidden twa:flex twa:flex-col twa:!pt-0 twa:!pb-0 twa:px-1", children: _jsx(ModuleValueSelector, { options: allModuleButtons, value: selectedModuleButtons, isOptionDisabled: isModuleCheckboxDisabled, disabled: props.isToolPanelReadOnly, onChange: (selectedValues) => props.onToolPanelSetModuleButtons(selectedValues) }) })] }));
76
+ };
@@ -10,6 +10,20 @@ export type ValueSelectorProps<OPTION_TYPE, ID_TYPE extends number | string> = {
10
10
  * To show the filter input, filter needs also to be defined.
11
11
  */
12
12
  showFilterInput?: boolean;
13
+ filterPlaceholder?: string;
14
+ /** Tighter rows and inline search with Select All (layout wizard). */
15
+ compact?: boolean;
16
+ /** Matches Visibility list: checkbox then label (default: label inside checkbox). */
17
+ optionLayout?: 'label-in-checkbox' | 'label-beside-checkbox';
18
+ /** Hides "Show Selected Only" in the header (e.g. Visibility-style Select All + search row). */
19
+ hideShowSelectedOnly?: boolean;
20
+ /** Extra classes on the compact header row (e.g. wider gap between controls). */
21
+ compactHeaderClassName?: string;
22
+ /**
23
+ * Search field classes in compact mode. When set without `flex-1`, a spacer keeps
24
+ * the search narrow (layout wizard column lists).
25
+ */
26
+ compactFilterClassName?: string;
13
27
  singleSelect?: boolean;
14
28
  toIdentifier: (v: OPTION_TYPE) => ID_TYPE;
15
29
  toLabel: (v: OPTION_TYPE) => string | React.ReactElement;
@@ -17,10 +31,16 @@ export type ValueSelectorProps<OPTION_TYPE, ID_TYPE extends number | string> = {
17
31
  * Used to render list items, this extra prop allows to have different rendering for list & bottom tags.
18
32
  */
19
33
  toListLabel?: (v: OPTION_TYPE) => string | React.ReactElement;
34
+ /** Rendered at the end of the row, outside the checkbox label (e.g. sort direction toggle). */
35
+ renderOptionTrailing?: (option: OPTION_TYPE) => ReactNode;
36
+ /** Clicking the row toggles inclusion; checkbox clicks do not double-toggle. */
37
+ toggleSelectionOnRowClick?: boolean;
20
38
  showSelectedOnlyLabel?: ReactNode;
21
39
  onShowSelectedOnlyChange?: (selectedOnly: boolean) => void;
22
40
  isOptionDisabled?: (option: OPTION_TYPE) => boolean;
23
41
  disabled?: boolean;
42
+ optionClassName?: string;
43
+ className?: string;
24
44
  style?: React.CSSProperties;
25
45
  };
26
46
  export declare function ValueSelector<OPTION_TYPE, ID_TYPE extends number | string>(props: ValueSelectorProps<OPTION_TYPE, ID_TYPE>): React.JSX.Element;
@@ -37,4 +57,13 @@ export declare const renderSelectionSection: (props: {
37
57
  onSelectAll: () => void;
38
58
  onClear: () => void;
39
59
  onClearOption: (id: any) => void;
60
+ compact?: boolean;
61
+ showFilterInput?: boolean;
62
+ filter?: null | ((o: any, searchValue: string) => boolean);
63
+ searchInputValue?: string;
64
+ setSearchInputValue?: (value: string) => void;
65
+ filterPlaceholder?: string;
66
+ hideShowSelectedOnly?: boolean;
67
+ compactHeaderClassName?: string;
68
+ compactFilterClassName?: string;
40
69
  }) => React.JSX.Element;
@@ -1,13 +1,13 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
2
  import * as React from 'react';
3
- import { useState, useMemo, useCallback } from 'react';
3
+ import { useState, useMemo, useCallback, useEffect, useRef } from 'react';
4
4
  import { defaultDragProxyMove, DragDropProvider, DragList } from '../../../components/dnd';
5
5
  import { CheckBox } from '../../../components/CheckBox';
6
6
  import { Icon } from '../../../components/icons';
7
7
  import Radio from '../../../components/Radio';
8
8
  import { AdaptableFormControlTextClear } from '../Forms/AdaptableFormControlTextClear';
9
9
  import { Box, Flex } from '../../../components/Flex';
10
- import clsx from 'clsx';
10
+ import { cn } from '../../../lib/utils';
11
11
  function useValuesMap({ options, value, toIdentifier, selectedMap, }) {
12
12
  const optionsMap = useMemo(() => {
13
13
  if (selectedMap) {
@@ -32,9 +32,23 @@ function useValuesMap({ options, value, toIdentifier, selectedMap, }) {
32
32
  return { selectedMap: result, optionsMap };
33
33
  }
34
34
  const baseClassName = 'ab-ValueSelector';
35
+ /** Clicks on these targets must not toggle row selection (`toggleSelectionOnRowClick`). */
36
+ const ROW_CLICK_IGNORE_SELECTOR = 'button, input, select, textarea, a, [data-drag-handle], [data-slot=select-trigger], [data-slot=select-content], [data-slot=select-item], .ab-Select';
37
+ const ROW_TOGGLE_SUPPRESS_MS = 150;
35
38
  export function ValueSelector(props) {
36
- const { options, value, filter, onChange, allowReorder = true, singleSelect, toLabel, toListLabel, toIdentifier, showSelectedOnlyLabel, showFilterInput, onShowSelectedOnlyChange, isOptionDisabled, disabled, } = props;
39
+ const { options, value, filter, onChange, allowReorder = true, singleSelect, toLabel, toListLabel, toIdentifier, renderOptionTrailing, toggleSelectionOnRowClick, showSelectedOnlyLabel, showFilterInput, filterPlaceholder, compact, optionLayout = 'label-in-checkbox', hideShowSelectedOnly, compactHeaderClassName, compactFilterClassName, onShowSelectedOnlyChange, isOptionDisabled, disabled, optionClassName, className, style, } = props;
37
40
  const [searchInputValue, setSearchInputValue] = React.useState('');
41
+ const suppressRowToggleUntilRef = useRef(0);
42
+ useEffect(() => {
43
+ const markSelectInteraction = (event) => {
44
+ const target = event.target;
45
+ if (target.closest(ROW_CLICK_IGNORE_SELECTOR)) {
46
+ suppressRowToggleUntilRef.current = Date.now() + ROW_TOGGLE_SUPPRESS_MS;
47
+ }
48
+ };
49
+ document.addEventListener('pointerdown', markSelectInteraction, true);
50
+ return () => document.removeEventListener('pointerdown', markSelectInteraction, true);
51
+ }, []);
38
52
  const preparedToLabel = toListLabel ?? toLabel;
39
53
  const [selectedOnly, doSetSelectedOnly] = useState(false);
40
54
  const setSelectedOnly = useCallback((selectedOnly) => {
@@ -69,30 +83,66 @@ export function ValueSelector(props) {
69
83
  return result;
70
84
  });
71
85
  }, [filter, options, searchInputValue, selectedMap, selectedOnly, toIdentifier]);
86
+ const handleOptionRowClick = useCallback((option, identifier, optionDisabled, event) => {
87
+ if (Date.now() < suppressRowToggleUntilRef.current) {
88
+ return;
89
+ }
90
+ const target = event.target;
91
+ if (target.closest(ROW_CLICK_IGNORE_SELECTOR)) {
92
+ return;
93
+ }
94
+ if (optionDisabled) {
95
+ return;
96
+ }
97
+ updateSelection((next) => {
98
+ if (next.has(identifier)) {
99
+ next.delete(identifier);
100
+ }
101
+ else {
102
+ next.set(identifier, option);
103
+ }
104
+ });
105
+ }, [updateSelection]);
72
106
  const renderOptionRow = (option, index, reorderable, itemDomProps) => {
73
107
  const identifier = toIdentifier(option);
74
- const label = !reorderEnabled ? preparedToLabel(option) : null;
75
- const { onPointerDown, className: itemClassName, ...restDomProps } = itemDomProps ?? {};
76
- return (_jsx(Flex, { alignItems: "center", "data-index": index, "data-id": identifier, "data-name": "option", ...restDomProps, className: clsx('twa:bg-primary twa:text-primary-foreground twa:rounded-standard twa:p-2', {
77
- 'twa:mt-1': index,
108
+ const label = preparedToLabel(option);
109
+ const { onPointerDown, onClick: itemOnClick, className: itemClassName, ...restDomProps } = itemDomProps ?? {};
110
+ const optionDisabled = disabled || (isOptionDisabled ? isOptionDisabled(option) : false);
111
+ return (_jsxs(Flex, { alignItems: "center", "data-index": index, "data-id": identifier, "data-name": "option", ...restDomProps, onClick: toggleSelectionOnRowClick
112
+ ? (event) => {
113
+ itemOnClick?.(event);
114
+ handleOptionRowClick(option, identifier, optionDisabled, event);
115
+ }
116
+ : itemOnClick, className: cn(toggleSelectionOnRowClick && 'twa:cursor-pointer', reorderable ? 'ab-DraggableListItem' : 'twa:bg-primary twa:text-primary-foreground', 'twa:rounded-standard', compact ? (singleSelect ? 'twa:py-1.5 twa:px-1.5' : 'twa:py-1 twa:px-1.5') : 'twa:p-2', {
117
+ 'twa:mt-0.5': compact && index,
118
+ 'twa:mt-1': !compact && index,
78
119
  'twa:mt-0': !index,
79
- }, itemClassName, `${baseClassName}__option`), children: _jsxs(Flex, { flexDirection: "row", alignItems: "center", className: "twa:flex-1", children: [reorderable ? (_jsx(Box, { onPointerDown: onPointerDown, className: "twa:mr-3", children: _jsx(Icon, { name: "drag", style: { cursor: 'grab' } }) })) : null, singleSelect ? (_jsx(Radio, { checked: selectedMap.has(identifier), "data-name": identifier, onChange: (checked) => {
80
- updateSelection((next) => {
81
- next.clear();
82
- if (checked) {
83
- next.set(identifier, option);
84
- }
85
- });
86
- }, children: label })) : (_jsx(CheckBox, { "data-name": identifier, disabled: disabled || (isOptionDisabled ? isOptionDisabled(option) : false), onChange: (checked) => {
87
- updateSelection((next) => {
88
- if (checked) {
89
- next.set(identifier, option);
90
- }
91
- else {
92
- next.delete(identifier);
93
- }
94
- });
95
- }, checked: selectedMap.has(identifier), children: label })), _jsx(Box, { className: "twa:ml-2 twa:flex-1", children: reorderEnabled ? preparedToLabel(option) : null })] }) }));
120
+ }, itemClassName, optionClassName, `${baseClassName}__option`), children: [_jsxs(Flex, { flexDirection: "row", alignItems: "center", className: "twa:flex-1 twa:min-w-0", children: [reorderable ? (_jsx(Box, { "data-drag-handle": true, onPointerDown: onPointerDown, className: cn('twa:shrink-0', compact ? 'twa:mr-2' : 'twa:mr-3'), children: _jsx(Icon, { name: "drag", style: { cursor: 'grab' } }) })) : null, singleSelect ? (_jsx(Radio, { className: cn('twa:flex-1 twa:min-w-0', compact && !singleSelect && 'twa:my-0!'), checked: selectedMap.has(identifier), "data-name": identifier, disabled: optionDisabled, onClick: toggleSelectionOnRowClick ? (event) => event.stopPropagation() : undefined, onChange: (checked) => {
121
+ updateSelection((next) => {
122
+ next.clear();
123
+ if (checked) {
124
+ next.set(identifier, option);
125
+ }
126
+ });
127
+ }, children: label })) : optionLayout === 'label-beside-checkbox' ? (_jsxs(Flex, { alignItems: "center", className: "twa:flex-1 twa:min-w-0", children: [_jsx(CheckBox, { className: "twa:shrink-0", "data-name": identifier, disabled: optionDisabled, onClick: toggleSelectionOnRowClick ? (event) => event.stopPropagation() : undefined, onChange: (checked) => {
128
+ updateSelection((next) => {
129
+ if (checked) {
130
+ next.set(identifier, option);
131
+ }
132
+ else {
133
+ next.delete(identifier);
134
+ }
135
+ });
136
+ }, checked: selectedMap.has(identifier) }), _jsx(Flex, { alignItems: "center", className: "twa:mx-1.5 twa:text-3 twa:min-w-0", "data-name": "option-label", children: label })] })) : (_jsx(CheckBox, { className: cn('twa:flex-1 twa:min-w-0', compact && 'twa:my-0!'), "data-name": identifier, disabled: optionDisabled, onClick: toggleSelectionOnRowClick ? (event) => event.stopPropagation() : undefined, onChange: (checked) => {
137
+ updateSelection((next) => {
138
+ if (checked) {
139
+ next.set(identifier, option);
140
+ }
141
+ else {
142
+ next.delete(identifier);
143
+ }
144
+ });
145
+ }, checked: selectedMap.has(identifier), children: label }))] }), renderOptionTrailing ? (_jsx(Box, { className: "twa:shrink-0", children: renderOptionTrailing(option) })) : null] }));
96
146
  };
97
147
  const renderOption = (option, index) => {
98
148
  const identifier = toIdentifier(option);
@@ -130,8 +180,19 @@ export function ValueSelector(props) {
130
180
  });
131
181
  },
132
182
  };
133
- const optionList = (_jsx(Flex, { className: `${baseClassName}__body twa:flex-1 twa:overflow-auto`, flexDirection: "column", children: _jsx("div", { children: filteredOptions.map(renderOption) }) }));
134
- return (_jsxs(Flex, { style: props.style, className: clsx('twa:flex-1', baseClassName), flexDirection: "column", children: [_jsx(Flex, { className: "twa:mb-1", children: showFilterInput && filter ? (_jsx(AdaptableFormControlTextClear, { value: searchInputValue, OnTextChange: setSearchInputValue, placeholder: "Type to search", inputClassName: "twa:p-3", className: "twa:flex-1 twa:m-[3px]" })) : (_jsx(Box, { className: "twa:flex-1" })) }), renderSelectionSection(selectionSectionProps), reorderEnabled ? (_jsx(DragDropProvider, { children: _jsx(Flex, { className: `${baseClassName}__body twa:flex-1 twa:overflow-auto`, flexDirection: "column", children: _jsx(DragList, { dragListId: "value-selector", orientation: "vertical", onDragProxyMove: defaultDragProxyMove, onDragProxySetup: ({ proxyElement }) => {
183
+ const optionList = (_jsx(Flex, { className: `${baseClassName}__body twa:flex-1 twa:min-h-0 twa:overflow-auto`, flexDirection: "column", children: _jsx("div", { children: filteredOptions.map(renderOption) }) }));
184
+ return (_jsxs(Flex, { style: style, className: cn('twa:flex-1 twa:min-h-0', compact && 'twa:overflow-hidden', baseClassName, compact && `${baseClassName}--compact`, className), flexDirection: "column", children: [!compact && (_jsx(Flex, { className: "twa:mb-1", children: showFilterInput && filter ? (_jsx(AdaptableFormControlTextClear, { value: searchInputValue, OnTextChange: setSearchInputValue, placeholder: filterPlaceholder ?? 'Type to search', inputClassName: "twa:p-3", className: "twa:flex-1 twa:m-[3px]" })) : (_jsx(Box, { className: "twa:flex-1" })) })), renderSelectionSection({
185
+ ...selectionSectionProps,
186
+ compact,
187
+ showFilterInput,
188
+ filter,
189
+ searchInputValue,
190
+ setSearchInputValue,
191
+ filterPlaceholder,
192
+ hideShowSelectedOnly,
193
+ compactHeaderClassName,
194
+ compactFilterClassName,
195
+ }), reorderEnabled ? (_jsx(DragDropProvider, { children: _jsx(Flex, { className: `${baseClassName}__body twa:flex-1 twa:min-h-0 twa:overflow-auto`, flexDirection: "column", children: _jsx(DragList, { dragListId: "value-selector", orientation: "vertical", onDragProxyMove: defaultDragProxyMove, onDragProxySetup: ({ proxyElement }) => {
135
196
  proxyElement.classList.add('twa:shadow-md');
136
197
  }, onDrop: (_sortedIndexes) => {
137
198
  const selection = [];
@@ -156,8 +217,30 @@ export function ValueSelector(props) {
156
217
  }, children: (listDomProps) => _jsx("div", { ...listDomProps, children: filteredOptions.map(renderOption) }) }) }) })) : (optionList)] }));
157
218
  }
158
219
  export const renderSelectionSection = (props) => {
159
- const { value, options, disabled, singleSelect, toLabel, toIdentifier, } = props;
160
- const selectionBox = (_jsx(Box, { className: "twa:flex twa:flex-col twa:gap-2 twa:py-2", children: _jsxs(Box, { className: clsx('twa:flex twa:flex-row', 'twa:border-b twa:border-primarydark/30 twa:rounded-standard'), children: [singleSelect ? (_jsx(Box, { className: "twa:flex twa:flex-row twa:text-3 twa:font-normal twa:items-center", children: (() => {
220
+ const { value, options, singleSelect, toLabel, toIdentifier, compact, showFilterInput, filter, searchInputValue, setSearchInputValue, filterPlaceholder, hideShowSelectedOnly, compactHeaderClassName, compactFilterClassName, } = props;
221
+ const compactFilterClass = compactFilterClassName ?? 'twa:flex-1 twa:min-w-0';
222
+ const compactFilterUsesSpacer = compactFilterClassName != null && !/\bflex-1\b/.test(compactFilterClassName);
223
+ const headerRowClassName = cn('twa:mb-1', 'twa:p-1', 'twa:border-b twa:border-primarydark/30', compact
224
+ ? cn('twa:w-full twa:min-w-0 twa:gap-2 twa:font-bold twa:shrink-0', compactHeaderClassName)
225
+ : 'twa:flex twa:flex-row ');
226
+ const selectionBox = compact ? (_jsxs(Flex, { alignItems: "center", className: headerRowClassName, children: [singleSelect ? (_jsx(Box, { className: "twa:flex twa:flex-row twa:text-3 twa:font-normal twa:items-center", children: (() => {
227
+ if (!value.length) {
228
+ return _jsx("span", { className: "twa:opacity-70", children: "(none selected)" });
229
+ }
230
+ const selectedId = value[0];
231
+ const selectedOption = options.find((o) => toIdentifier(o) === selectedId);
232
+ if (!selectedOption) {
233
+ return _jsx("span", { className: "twa:opacity-70", children: "(none selected)" });
234
+ }
235
+ return (_jsxs(_Fragment, { children: [_jsx("span", { className: "twa:opacity-70 twa:mr-1", children: "Selected:" }), _jsx("span", { className: "twa:font-medium", children: toLabel(selectedOption) })] }));
236
+ })() })) : (_jsx(CheckBox, { className: "twa:shrink-0", checked: !value.length ? false : value.length === options.length ? true : null, onChange: (checked) => {
237
+ if (checked) {
238
+ props.onSelectAll();
239
+ }
240
+ else {
241
+ props.onClear();
242
+ }
243
+ }, children: "Select All" })), hideShowSelectedOnly ? null : (_jsx(Box, { className: "twa:shrink-0 twa:text-2 twa:font-normal", children: props.showOnlySelectedCheckbox })), showFilterInput && filter ? (_jsxs(_Fragment, { children: [compactFilterUsesSpacer ? _jsx(Box, { className: "twa:flex-1 twa:min-w-0" }) : null, _jsx(AdaptableFormControlTextClear, { value: searchInputValue ?? '', OnTextChange: setSearchInputValue ?? (() => undefined), placeholder: filterPlaceholder ?? 'Search...', className: compactFilterClass })] })) : null] })) : (_jsx(Box, { className: "twa:flex twa:flex-col twa:gap-2 twa:py-2", children: _jsxs(Box, { className: headerRowClassName, children: [singleSelect ? (_jsx(Box, { className: "twa:flex twa:flex-row twa:text-3 twa:font-normal twa:items-center", children: (() => {
161
244
  // For single-select we show the *name* of the selected option
162
245
  // rather than a (1 of N) counter — useful when the list is
163
246
  // long enough to scroll past the chosen row.
@@ -177,6 +260,6 @@ export const renderSelectionSection = (props) => {
177
260
  else {
178
261
  props.onClear();
179
262
  }
180
- }, children: _jsxs(Box, { className: "twa:flex twa:flex-row twa:items-center twa:gap-3", children: ["Select All", _jsxs(Box, { className: "twa:text-2 twa:font-normal", children: ["(", value.length, " of ", options.length, " selected)"] })] }) })), _jsx("div", { className: "twa:flex-1" }), _jsx(Box, { className: "twa:mr-2 twa:text-2 twa:font-normal", children: props.showOnlySelectedCheckbox })] }) }));
181
- return _jsx(Box, { className: clsx(`${baseClassName}__header `), children: selectionBox });
263
+ }, children: _jsxs(Box, { className: "twa:flex twa:flex-row twa:items-center twa:gap-3", children: ["Select All", _jsxs(Box, { className: "twa:text-2 twa:font-normal", children: ["(", value.length, " of ", options.length, " selected)"] })] }) })), hideShowSelectedOnly ? null : _jsx("div", { className: "twa:flex-1" }), hideShowSelectedOnly ? null : (_jsx(Box, { className: "twa:mr-2 twa:text-2 twa:font-normal", children: props.showOnlySelectedCheckbox }))] }) }));
264
+ return _jsx(Box, { className: cn(`${baseClassName}__header`), children: selectionBox });
182
265
  };
@@ -0,0 +1,10 @@
1
+ /** ValueSelector row sizing — matches Visibility and Order list rows. */
2
+ export declare const WIZARD_COLUMN_LIST_OPTION_CLASS = "twa:!py-1 twa:!px-1.5";
3
+ /** Single-select column lists — ~50% taller than multi-select compact rows. */
4
+ export declare const WIZARD_COLUMN_LIST_OPTION_CLASS_SINGLE_SELECT = "twa:!py-1.5 twa:!px-1.5";
5
+ /** Taller rows when ultra-compact one-line cards are not required (e.g. Custom Sort wizard). */
6
+ export declare const WIZARD_COLUMN_LIST_OPTION_CLASS_RELAXED = "twa:!py-2 twa:!px-2";
7
+ /** Compact list header — spacing between Select All, Show Selected Only, and search. */
8
+ export declare const WIZARD_COLUMN_LIST_HEADER_CLASS = "twa:gap-4";
9
+ /** Narrow search field (matches Visibility list column width, not full card width). */
10
+ export declare const WIZARD_COLUMN_LIST_SEARCH_CLASS = "twa:w-[12rem] twa:shrink-0 twa:min-w-0";
@@ -0,0 +1,10 @@
1
+ /** ValueSelector row sizing — matches Visibility and Order list rows. */
2
+ export const WIZARD_COLUMN_LIST_OPTION_CLASS = 'twa:!py-1 twa:!px-1.5';
3
+ /** Single-select column lists — ~50% taller than multi-select compact rows. */
4
+ export const WIZARD_COLUMN_LIST_OPTION_CLASS_SINGLE_SELECT = 'twa:!py-1.5 twa:!px-1.5';
5
+ /** Taller rows when ultra-compact one-line cards are not required (e.g. Custom Sort wizard). */
6
+ export const WIZARD_COLUMN_LIST_OPTION_CLASS_RELAXED = 'twa:!py-2 twa:!px-2';
7
+ /** Compact list header — spacing between Select All, Show Selected Only, and search. */
8
+ export const WIZARD_COLUMN_LIST_HEADER_CLASS = 'twa:gap-4';
9
+ /** Narrow search field (matches Visibility list column width, not full card width). */
10
+ export const WIZARD_COLUMN_LIST_SEARCH_CLASS = 'twa:w-[12rem] twa:shrink-0 twa:min-w-0';
@@ -1,10 +1,11 @@
1
1
  import * as React from 'react';
2
2
  import { CustomSort } from '../../../AdaptableState/CustomSortState';
3
+ import { AdaptableApi } from '../../../Api/AdaptableApi';
3
4
  export type CustomSortColumnWizardSectionProps = {
4
5
  onChange: (data: CustomSort) => void;
5
6
  isNew: boolean;
6
7
  allCustomSorts: CustomSort[];
7
8
  };
8
- export declare const renderCustomSortColumn: (data: CustomSort) => React.JSX.Element;
9
+ export declare const renderCustomSortColumn: (data: CustomSort, api: AdaptableApi) => React.JSX.Element;
9
10
  export declare const isValidCustomSortColumn: (data: CustomSort, allCustomSorts: CustomSort[]) => true | string;
10
11
  export declare const CustomSortColumnWizardSection: (props: CustomSortColumnWizardSectionProps) => React.JSX.Element;
@@ -1,15 +1,14 @@
1
1
  import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
2
2
  import * as React from 'react';
3
- import { Tag } from '../../../components/Tag';
3
+ import { ColumnTag, Tag } from '../../../components/Tag';
4
4
  import { NewColumnSelector } from '../../Components/ColumnSelector';
5
+ import { WIZARD_COLUMN_LIST_OPTION_CLASS_RELAXED } from '../../Components/wizardColumnListStyles';
5
6
  import { useOnePageAdaptableWizardContext } from '../../Wizard/OnePageAdaptableWizard';
6
7
  import { Box, Flex } from '../../../components/Flex';
7
8
  import Input from '../../../components/Input';
8
- import { AdaptableFormControlTextClear } from '../../Components/Forms/AdaptableFormControlTextClear';
9
9
  import { Card } from '../../../components/Card';
10
- export const renderCustomSortColumn = (data) => {
11
- const { api } = useOnePageAdaptableWizardContext();
12
- return (_jsxs(Box, { className: "twa:text-2 twa:py-2 twa:pr-2", children: [_jsxs(Tag, { className: "twa:mr-2", children: ["Name: ", data.Name] }), _jsxs(Tag, { children: ["Column: ", api.columnApi.getFriendlyNameForColumnId(data.ColumnId)] })] }));
10
+ export const renderCustomSortColumn = (data, api) => {
11
+ return (_jsxs(Box, { className: "twa:text-2 twa:py-2 twa:pr-2", children: [_jsxs(Tag, { className: "twa:mr-2", children: ["Name: ", data.Name] }), _jsxs(ColumnTag, { children: ["Column: ", api.columnApi.getFriendlyNameForColumnId(data.ColumnId)] })] }));
13
12
  };
14
13
  export const isValidCustomSortColumn = (data, allCustomSorts) => {
15
14
  if (!data.Name) {
@@ -45,14 +44,13 @@ export const CustomSortColumnWizardSection = (props) => {
45
44
  });
46
45
  });
47
46
  }, []);
48
- const [columnsSearchText, setColumnsSearchText] = React.useState('');
49
47
  const onNameChange = (event) => {
50
48
  props.onChange({
51
49
  ...data,
52
50
  Name: event.target.value,
53
51
  });
54
52
  };
55
- return (_jsxs(Flex, { flexDirection: "column", className: "twa:h-full", children: [_jsx(Flex, { flexDirection: "column", className: "twa:gap-3 twa:p-3 twa:shrink-0", children: _jsxs(Card, { shadow: false, children: [_jsxs(Card.Title, { children: [_jsx(Box, { className: "twa:font-medium", children: "Name" }), _jsx(Box, { className: "twa:text-xs twa:opacity-70 twa:font-normal twa:max-w-[520px]", children: "Provide a unique name for the Custom Sort" })] }), _jsx(Card.Body, { className: "twa:p-1", children: _jsx(Input, { className: "twa:max-w-[300px] twa:w-full", "data-name": "custom-sort-name", onChange: onNameChange, value: data?.Name ?? '' }) })] }) }), _jsxs(Flex, { flexDirection: "column", className: "twa:flex-1 twa:min-h-0", children: [_jsxs(Flex, { flexDirection: "row", alignItems: "center", className: "twa:p-2 twa:gap-3 twa:border-b twa:mb-2 twa:border-b-foreground/20", children: [_jsx(Box, { className: "twa:text-5 twa:font-medium", children: "Column" }), _jsx(Box, { className: "twa:text-xs twa:opacity-70 twa:max-w-[520px]", children: "Select the column to apply the Custom Sort to" })] }), _jsx(Flex, { flexDirection: "row", alignItems: "center", className: "twa:px-2 twa:pb-2 twa:gap-2", children: _jsx(AdaptableFormControlTextClear, { value: columnsSearchText, OnTextChange: setColumnsSearchText, placeholder: "Type to search columns", className: "twa:flex-1" }) }), _jsx(Box, { className: "twa:flex-1 twa:min-h-0 twa:overflow-auto twa:px-2 twa:pb-2", children: _jsx(NewColumnSelector, { columnFilterText: columnsSearchText, availableColumns: sortableCols, selected: data.ColumnId ? [data.ColumnId] : [], singleSelect: true, onChange: (ids) => {
53
+ return (_jsxs(Flex, { flexDirection: "column", className: "twa:h-full twa:min-h-0", children: [_jsx(Flex, { flexDirection: "column", className: "twa:gap-3 twa:p-3 twa:shrink-0", children: _jsxs(Card, { shadow: false, children: [_jsxs(Card.Title, { children: [_jsx(Box, { className: "twa:font-medium", children: "Name" }), _jsx(Box, { className: "twa:text-xs twa:opacity-70 twa:font-normal twa:max-w-[520px]", children: "Provide a unique name for the Custom Sort" })] }), _jsx(Card.Body, { className: "twa:p-1", children: _jsx(Input, { className: "twa:max-w-[300px] twa:w-full", "data-name": "custom-sort-name", onChange: onNameChange, value: data?.Name ?? '' }) })] }) }), _jsxs(Flex, { flexDirection: "column", className: "twa:flex-1 twa:min-h-0 twa:overflow-hidden", children: [_jsxs(Flex, { flexDirection: "row", alignItems: "center", className: "twa:p-2 twa:gap-3 twa:border-b twa:mb-2 twa:border-b-foreground/20 twa:shrink-0", children: [_jsx(Box, { className: "twa:text-5 twa:font-medium", children: "Column" }), _jsx(Box, { className: "twa:text-xs twa:opacity-70 twa:max-w-[520px]", children: "Select the column to apply the Custom Sort to" })] }), _jsx(Box, { className: "twa:flex-1 twa:min-h-0 twa:overflow-hidden twa:px-2 twa:pb-2 twa:flex twa:flex-col", children: _jsx(NewColumnSelector, { compactColumnList: true, className: "twa:h-full", optionClassName: WIZARD_COLUMN_LIST_OPTION_CLASS_RELAXED, availableColumns: sortableCols, selected: data.ColumnId ? [data.ColumnId] : [], singleSelect: true, onChange: (ids) => {
56
54
  props.onChange({
57
55
  ...data,
58
56
  SortedValues: [],
@@ -41,9 +41,9 @@ export const CustomSortWizard = (props) => {
41
41
  renderSummary: renderCustomSortColumn,
42
42
  details: 'Enter Name and select a Column to Sort',
43
43
  render: () => {
44
- return (_jsx(Box, { className: "twa:p-2 twa:h-full", children: _jsx(CustomSortColumnWizardSection, { isNew: props.isNew, onChange: setCustomSort, allCustomSorts: allCustomSorts }) }));
44
+ return (_jsx(Box, { className: "twa:p-2 twa:h-full twa:min-h-0 twa:flex twa:flex-col", children: _jsx(CustomSortColumnWizardSection, { isNew: props.isNew, onChange: setCustomSort, allCustomSorts: allCustomSorts }) }));
45
45
  },
46
- title: 'Name & Column',
46
+ title: 'Settings',
47
47
  },
48
48
  {
49
49
  title: 'Sort Order',
@@ -15,18 +15,8 @@ interface DashboardPopupComponentProps extends ModuleViewPopupProps<DashboardPop
15
15
  onSetDashboardFloating: (isFloating: boolean) => DashboardRedux.DashboardSetIsFloatingAction;
16
16
  onSetDashboardHidden: (isHidden: boolean) => DashboardRedux.DashboardSetIsHiddenAction;
17
17
  }
18
- export declare enum DashboardConfigView {
19
- Toolbars = "Toolbars",
20
- Buttons = "Buttons",
21
- PinnedToolbars = "PinnedToolbars"
22
- }
23
- export interface DashboardPopupState {
24
- DashboardConfigView: DashboardConfigView;
25
- }
26
- declare class DashboardPopupComponent extends React.Component<DashboardPopupComponentProps, DashboardPopupState> {
27
- constructor(props: DashboardPopupComponentProps);
18
+ declare class DashboardPopupComponent extends React.Component<DashboardPopupComponentProps> {
28
19
  render(): React.JSX.Element;
29
- onDashboardConfigViewChanged(event: React.FormEvent<any>): void;
30
20
  }
31
21
  export declare let DashboardPopup: import("react-redux").ConnectedComponent<typeof DashboardPopupComponent, {
32
22
  [x: string]: any;