@adaptabletools/adaptable-cjs 23.0.0-canary.5 → 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 (335) hide show
  1. package/icons/sort-asc.svg +1 -1
  2. package/index.css +756 -257
  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 +1 -1
  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 +11 -28
  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 +17 -1
  28. package/src/Strategy/Utilities/Export/getExportRowsViewItems.d.ts +1 -0
  29. package/src/Strategy/Utilities/Export/getExportRowsViewItems.js +5 -1
  30. package/src/Strategy/Utilities/Layout/aggregationSummaryHelpers.d.ts +11 -0
  31. package/src/Strategy/Utilities/Layout/aggregationSummaryHelpers.js +111 -0
  32. package/src/Strategy/Utilities/Layout/columnsSummaryHelpers.d.ts +48 -0
  33. package/src/Strategy/Utilities/Layout/columnsSummaryHelpers.js +177 -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 +97 -0
  38. package/src/Utilities/Defaults/DefaultSettingsPanel.d.ts +3 -5
  39. package/src/Utilities/Defaults/DefaultSettingsPanel.js +48 -42
  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 +30 -1
  44. package/src/Utilities/Helpers/StyledColumnGradientHelper.js +6 -4
  45. package/src/Utilities/Helpers/resolveSettingsPanelNavigation.d.ts +3 -0
  46. package/src/Utilities/Helpers/resolveSettingsPanelNavigation.js +19 -0
  47. package/src/Utilities/getScopeViewItems.js +2 -0
  48. package/src/Utilities/wizardSelection.d.ts +10 -0
  49. package/src/Utilities/wizardSelection.js +22 -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 +1 -6
  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 +30 -7
  66. package/src/View/Alert/Wizard/AlertWizard.js +3 -3
  67. package/src/View/Alert/Wizard/BaseAlertScopeWizardSection.d.ts +2 -1
  68. package/src/View/Alert/Wizard/BaseAlertScopeWizardSection.js +3 -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 +29 -3
  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 -3
  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 +1 -2
  88. package/src/View/Components/ColumnFilter/components/ColumnFilterInput.js +0 -1
  89. package/src/View/Components/ColumnFilter/components/ColumnFilterInputList.js +3 -1
  90. package/src/View/Components/ColumnFilter/components/ColumnFilterMenu.js +2 -2
  91. package/src/View/Components/ColumnSelector/index.d.ts +12 -0
  92. package/src/View/Components/ColumnSelector/index.js +30 -6
  93. package/src/View/Components/EntityRulesEditor/EntityRulePredicatesEditor/EntityRulePredicatesEditor.js +2 -2
  94. package/src/View/Components/ModuleValueSelector/index.js +2 -1
  95. package/src/View/Components/NewScopeComponent.js +3 -8
  96. package/src/View/Components/Popups/AdaptablePopup/AdaptablePopup.js +5 -4
  97. package/src/View/Components/Popups/AdaptablePopup/AdaptablePopupDialog.js +4 -4
  98. package/src/View/Components/Popups/AdaptablePopup/AdaptablePopupModuleView.js +2 -2
  99. package/src/View/Components/Popups/AdaptablePopup/Navigation.d.ts +3 -2
  100. package/src/View/Components/Popups/AdaptablePopup/Navigation.js +38 -28
  101. package/src/View/Components/Popups/AdaptablePopup/PopupPanel.js +3 -4
  102. package/src/View/Components/Popups/AdaptablePopup/TopBar.js +2 -3
  103. package/src/View/Components/Popups/AdaptablePopup/settingsPanelNavigationTypes.d.ts +11 -0
  104. package/src/View/Components/Popups/AdaptablePopup/settingsPanelNavigationTypes.js +5 -0
  105. package/src/View/Components/Popups/AdaptablePopup/useMenuItems.d.ts +3 -1
  106. package/src/View/Components/Popups/AdaptablePopup/useMenuItems.js +27 -28
  107. package/src/View/Components/PredicateEditor/PredicateEditor.js +1 -1
  108. package/src/View/Components/RangesComponent.d.ts +2 -4
  109. package/src/View/Components/RangesComponent.js +95 -66
  110. package/src/View/Components/ReorderDraggable/index.js +2 -3
  111. package/src/View/Components/Selectors/BulkUpdateValueSelector.d.ts +0 -2
  112. package/src/View/Components/Selectors/BulkUpdateValueSelector.js +3 -3
  113. package/src/View/Components/StyleComponent.js +30 -63
  114. package/src/View/Components/ToolPanel/AdaptableToolPanel.js +9 -6
  115. package/src/View/Components/ToolPanel/ToolPanelPopup.d.ts +3 -13
  116. package/src/View/Components/ToolPanel/ToolPanelPopup.js +5 -80
  117. package/src/View/Components/ToolPanel/ToolPanelPopupSections.d.ts +17 -0
  118. package/src/View/Components/ToolPanel/ToolPanelPopupSections.js +81 -0
  119. package/src/View/Components/ValueSelector/index.d.ts +29 -0
  120. package/src/View/Components/ValueSelector/index.js +112 -29
  121. package/src/View/Components/wizardColumnListStyles.d.ts +10 -0
  122. package/src/View/Components/wizardColumnListStyles.js +13 -0
  123. package/src/View/CustomSort/Wizard/CustomSortColumnWizardSection.d.ts +2 -1
  124. package/src/View/CustomSort/Wizard/CustomSortColumnWizardSection.js +4 -6
  125. package/src/View/CustomSort/Wizard/CustomSortWizard.js +2 -2
  126. package/src/View/Dashboard/DashboardPopup.d.ts +1 -11
  127. package/src/View/Dashboard/DashboardPopup.js +3 -67
  128. package/src/View/Dashboard/DashboardPopupSections.d.ts +20 -0
  129. package/src/View/Dashboard/DashboardPopupSections.js +73 -0
  130. package/src/View/Dashboard/PinnedToolbarsSelector.js +2 -2
  131. package/src/View/DataChangeHistory/DataChangeHistoryPopup.d.ts +1 -6
  132. package/src/View/DataChangeHistory/DataChangeHistoryPopup.js +8 -20
  133. package/src/View/DataChangeHistory/DataChangeHistoryTable.d.ts +8 -0
  134. package/src/View/DataChangeHistory/DataChangeHistoryTable.js +99 -0
  135. package/src/View/DataChangeHistory/buildActionColumnButton.d.ts +5 -3
  136. package/src/View/DataChangeHistory/buildActionColumnButton.js +33 -41
  137. package/src/View/DataChangeHistory/dataChangeHistoryHelpers.d.ts +15 -0
  138. package/src/View/DataChangeHistory/dataChangeHistoryHelpers.js +46 -0
  139. package/src/View/DataImport/DataImportWizard/DataImportWizard.js +1 -1
  140. package/src/View/DataImport/DataImportWizard/sections/ColumnsSection.js +32 -19
  141. package/src/View/DataImport/DataImportWizard/sections/DataPreview.js +1 -1
  142. package/src/View/DataSet/DataSetViewPanel.d.ts +2 -2
  143. package/src/View/Export/ExportDestinationPicker.js +4 -5
  144. package/src/View/Export/ExportViewPanel.js +2 -2
  145. package/src/View/Export/Wizard/ReportColumnsWizardSection.d.ts +2 -1
  146. package/src/View/Export/Wizard/ReportColumnsWizardSection.js +2 -7
  147. package/src/View/Export/Wizard/ReportRowsWizardSection.d.ts +2 -1
  148. package/src/View/Export/Wizard/ReportRowsWizardSection.js +2 -5
  149. package/src/View/FlashingCell/FlashingCellStyle.d.ts +4 -2
  150. package/src/View/FlashingCell/FlashingCellStyle.js +5 -3
  151. package/src/View/FlashingCell/Wizard/FlashingCellRulesWizardSection.d.ts +2 -1
  152. package/src/View/FlashingCell/Wizard/FlashingCellRulesWizardSection.js +5 -9
  153. package/src/View/FlashingCell/Wizard/FlashingCellScopeSummary.d.ts +9 -0
  154. package/src/View/FlashingCell/Wizard/FlashingCellScopeSummary.js +10 -0
  155. package/src/View/FlashingCell/Wizard/FlashingCellScopeWizardSection.d.ts +1 -1
  156. package/src/View/FlashingCell/Wizard/FlashingCellScopeWizardSection.js +5 -1
  157. package/src/View/FlashingCell/Wizard/FlashingCellStyleWizardSection.d.ts +0 -5
  158. package/src/View/FlashingCell/Wizard/FlashingCellStyleWizardSection.js +3 -8
  159. package/src/View/FlashingCell/Wizard/FlashingCellWizard.js +1 -2
  160. package/src/View/FormatColumn/Wizard/FormatColumnFormatWizardSection.d.ts +1 -1
  161. package/src/View/FormatColumn/Wizard/FormatColumnFormatWizardSection.js +101 -44
  162. package/src/View/FormatColumn/Wizard/FormatColumnRuleWizardSection.d.ts +0 -1
  163. package/src/View/FormatColumn/Wizard/FormatColumnRuleWizardSection.js +1 -6
  164. package/src/View/FormatColumn/Wizard/FormatColumnScopeWizardSection.js +55 -15
  165. package/src/View/FormatColumn/Wizard/FormatColumnSettingsWizardSection.js +1 -1
  166. package/src/View/FormatColumn/Wizard/FormatColumnStyleWizardSection.d.ts +2 -3
  167. package/src/View/FormatColumn/Wizard/FormatColumnStyleWizardSection.js +5 -9
  168. package/src/View/FormatColumn/Wizard/FormatColumnWizard.js +4 -9
  169. package/src/View/FreeTextColumn/Utilities/getFreeTextColumnSettingsTags.js +3 -2
  170. package/src/View/FreeTextColumn/Wizard/FreeTextColumnSettingsWizardSection.js +1 -2
  171. package/src/View/GridFilter/GridFilterPopupUI/index.js +3 -2
  172. package/src/View/GridFilter/GridFilterViewPanel.js +5 -5
  173. package/src/View/GridInfo/GridInfoPopup/AdaptableObjectsSummary.js +2 -3
  174. package/src/View/GridInfo/GridInfoPopup/GridInfoPopup.js +2 -2
  175. package/src/View/Layout/LayoutViewPanel.js +2 -2
  176. package/src/View/Layout/Wizard/LayoutWizard.js +24 -28
  177. package/src/View/Layout/Wizard/sections/AggregationsSection.d.ts +13 -1
  178. package/src/View/Layout/Wizard/sections/AggregationsSection.js +77 -33
  179. package/src/View/Layout/Wizard/sections/ColumnsSection.d.ts +4 -1
  180. package/src/View/Layout/Wizard/sections/ColumnsSection.js +154 -275
  181. package/src/View/Layout/Wizard/sections/PivotAggregationsSection.d.ts +4 -1
  182. package/src/View/Layout/Wizard/sections/PivotAggregationsSection.js +146 -143
  183. package/src/View/Layout/Wizard/sections/PivotColumnsSection.d.ts +5 -2
  184. package/src/View/Layout/Wizard/sections/PivotColumnsSection.js +22 -10
  185. package/src/View/Layout/Wizard/sections/PivotRowGroupingSection.d.ts +4 -1
  186. package/src/View/Layout/Wizard/sections/PivotRowGroupingSection.js +21 -10
  187. package/src/View/Layout/Wizard/sections/RowGroupingSection.d.ts +5 -2
  188. package/src/View/Layout/Wizard/sections/RowGroupingSection.js +23 -12
  189. package/src/View/Layout/Wizard/sections/RowSelectionSection.js +7 -3
  190. package/src/View/Layout/Wizard/sections/RowSummarySection.js +10 -10
  191. package/src/View/Layout/Wizard/sections/SortSection.d.ts +12 -2
  192. package/src/View/Layout/Wizard/sections/SortSection.js +43 -18
  193. package/src/View/Layout/Wizard/sections/columnLayoutCards.d.ts +20 -0
  194. package/src/View/Layout/Wizard/sections/columnLayoutCards.js +167 -0
  195. package/src/View/Layout/Wizard/sections/columnLayoutHelpers.d.ts +30 -0
  196. package/src/View/Layout/Wizard/sections/columnLayoutHelpers.js +216 -0
  197. package/src/View/Layout/Wizard/sections/layoutWizardAccordionHelpers.d.ts +8 -0
  198. package/src/View/Layout/Wizard/sections/layoutWizardAccordionHelpers.js +72 -0
  199. package/src/View/Layout/Wizard/sections/layoutWizardColumns.d.ts +11 -0
  200. package/src/View/Layout/Wizard/sections/layoutWizardColumns.js +57 -0
  201. package/src/View/License/LicenseWatermark.js +1 -1
  202. package/src/View/NamedQuery/Wizard/NamedQueryExpressionWizardSection.d.ts +1 -1
  203. package/src/View/NamedQuery/Wizard/NamedQueryExpressionWizardSection.js +1 -2
  204. package/src/View/Note/NoteEditor.js +2 -2
  205. package/src/View/QuickSearch/QuickSearchPopup.js +2 -3
  206. package/src/View/Schedule/Wizard/ScheduleScheduleWizard.js +1 -1
  207. package/src/View/Shortcut/Wizard/ShortcutSettingsWizard.js +1 -1
  208. package/src/View/SmartEdit/SmartEditPopup.js +2 -2
  209. package/src/View/SmartEdit/SmartEditViewPanel.js +2 -2
  210. package/src/View/StateManagement/StateManagementPopup.js +1 -1
  211. package/src/View/StateManagement/components/ExportDropdown.d.ts +2 -2
  212. package/src/View/StateManagement/components/ExportDropdown.js +12 -13
  213. package/src/View/StatusBar/StatusBarPanel.js +2 -2
  214. package/src/View/StatusBar/StatusBarPopup.js +33 -5
  215. package/src/View/StatusBar/statusBarPanelHelpers.d.ts +2 -0
  216. package/src/View/StatusBar/statusBarPanelHelpers.js +11 -0
  217. package/src/View/StyledColumn/Wizard/BadgePillStyleEditor.d.ts +2 -0
  218. package/src/View/StyledColumn/Wizard/BadgePillStyleEditor.js +13 -10
  219. package/src/View/StyledColumn/Wizard/StyledColumnBadgeSection.d.ts +2 -2
  220. package/src/View/StyledColumn/Wizard/StyledColumnBadgeSection.js +137 -119
  221. package/src/View/StyledColumn/Wizard/StyledColumnSliceStyleEditors.js +7 -13
  222. package/src/View/StyledColumn/Wizard/StyledColumnSparklineSettingsSection.js +2 -1
  223. package/src/View/StyledColumn/Wizard/StyledColumnTypeThumbnail.d.ts +5 -0
  224. package/src/View/StyledColumn/Wizard/StyledColumnTypeThumbnail.js +54 -0
  225. package/src/View/StyledColumn/Wizard/StyledColumnWizard.d.ts +2 -0
  226. package/src/View/StyledColumn/Wizard/StyledColumnWizard.js +28 -6
  227. package/src/View/StyledColumn/Wizard/StyledColumnWizardBulletSection.js +8 -17
  228. package/src/View/StyledColumn/Wizard/StyledColumnWizardGradientSection.js +2 -1
  229. package/src/View/StyledColumn/Wizard/StyledColumnWizardIconSection.js +46 -28
  230. package/src/View/StyledColumn/Wizard/StyledColumnWizardRangeBarSection.js +97 -42
  231. package/src/View/StyledColumn/Wizard/StyledColumnWizardRatingSection.js +2 -1
  232. package/src/View/StyledColumn/Wizard/StyledColumnWizardScopeSection.d.ts +1 -1
  233. package/src/View/StyledColumn/Wizard/StyledColumnWizardScopeSection.js +31 -45
  234. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/StyledColumnWizardStyleSection.js +10 -5
  235. package/src/View/StyledColumn/Wizard/StyledColumnWizardTypeSection.js +93 -6
  236. package/src/View/UIHelper.d.ts +0 -2
  237. package/src/View/UIHelper.js +8 -24
  238. package/src/View/Wizard/CollapsibleWizardCard.d.ts +68 -0
  239. package/src/View/Wizard/CollapsibleWizardCard.js +90 -0
  240. package/src/View/Wizard/OnePageWizards.js +6 -6
  241. package/src/View/Wizard/SummaryColorTag.d.ts +24 -0
  242. package/src/View/Wizard/SummaryColorTag.js +79 -0
  243. package/src/View/Wizard/WizardTypeSelection.d.ts +34 -0
  244. package/src/View/Wizard/WizardTypeSelection.js +40 -0
  245. package/src/View/Wizard/rowGroupSummaryTags.d.ts +18 -0
  246. package/src/View/Wizard/rowGroupSummaryTags.js +21 -0
  247. package/src/View/Wizard/scopeSummaryTags.d.ts +6 -0
  248. package/src/View/Wizard/scopeSummaryTags.js +38 -0
  249. package/src/agGrid/AdaptableAgGrid.js +1 -1
  250. package/src/agGrid/AgGridAdapter.js +0 -5
  251. package/src/agGrid/AgGridColumnAdapter.js +1 -1
  252. package/src/agGrid/cellRenderers/ActionColumnRenderer.js +4 -7
  253. package/src/components/AdaptableFormComponent/AdaptableFormComponent.js +1 -1
  254. package/src/components/Card/index.js +5 -7
  255. package/src/components/CheckBox/index.js +2 -3
  256. package/src/components/CodeBlock/index.js +2 -3
  257. package/src/components/ColorPicker/ColorPicker.d.ts +1 -0
  258. package/src/components/ColorPicker/ColorPicker.js +8 -6
  259. package/src/components/ColorPicker/OptionalColorPicker.d.ts +12 -0
  260. package/src/components/ColorPicker/OptionalColorPicker.js +31 -0
  261. package/src/components/ColorPicker/index.d.ts +1 -0
  262. package/src/components/ColorPicker/index.js +1 -0
  263. package/src/components/Combobox/comboboxUtils.d.ts +1 -0
  264. package/src/components/Combobox/index.js +19 -18
  265. package/src/components/Dashboard/DashboardManager.js +2 -4
  266. package/src/components/Dialog/index.js +4 -4
  267. package/src/components/DragAndDropContext/DragAndDropContext.d.ts +5 -0
  268. package/src/components/DragAndDropContext/DragAndDropContext.js +4 -1
  269. package/src/components/DragAndDropContext/ModuleManager.d.ts +15 -3
  270. package/src/components/DragAndDropContext/ModuleManager.js +43 -4
  271. package/src/components/DragAndDropContext/TabList.d.ts +11 -4
  272. package/src/components/DragAndDropContext/TabList.js +52 -38
  273. package/src/components/DragAndDropContext/UnusedPanel.d.ts +4 -3
  274. package/src/components/DragAndDropContext/UnusedPanel.js +13 -9
  275. package/src/components/DragAndDropContext/dragScope.d.ts +6 -0
  276. package/src/components/DragAndDropContext/dragScope.js +34 -0
  277. package/src/components/DragAndDropContext/types.d.ts +7 -0
  278. package/src/components/DropdownButton/index.d.ts +33 -25
  279. package/src/components/DropdownButton/index.js +24 -158
  280. package/src/components/EmptyContent/index.js +2 -3
  281. package/src/components/ErrorBox/index.js +2 -3
  282. package/src/components/ExpressionEditor/BaseEditorInput.js +3 -3
  283. package/src/components/ExpressionEditor/QueryBuilder/QueryBuilderInputs.js +3 -3
  284. package/src/components/ExpressionEditor/QueryBuilder/QueryPredicateBuilder.js +9 -9
  285. package/src/components/FieldWrap/index.js +2 -3
  286. package/src/components/Flex.js +2 -2
  287. package/src/components/FormLayout/index.d.ts +1 -1
  288. package/src/components/HelpBlock/index.js +3 -4
  289. package/src/components/IconSelector/IconSelector.d.ts +8 -0
  290. package/src/components/IconSelector/IconSelector.js +13 -8
  291. package/src/components/IconSelector/index.d.ts +1 -0
  292. package/src/components/IconSelector/index.js +3 -0
  293. package/src/components/Modal/index.js +2 -2
  294. package/src/components/NewSelect/index.js +11 -1
  295. package/src/components/Panel/index.js +7 -7
  296. package/src/components/Radio/index.d.ts +1 -1
  297. package/src/components/Radio/index.js +8 -6
  298. package/src/components/SimpleButton/index.js +7 -7
  299. package/src/components/StylePreview.js +2 -3
  300. package/src/components/Tabs/index.js +4 -4
  301. package/src/components/Tag/Tag.d.ts +16 -0
  302. package/src/components/Tag/Tag.js +16 -5
  303. package/src/components/Tag/columnScopeTagHelpers.d.ts +8 -0
  304. package/src/components/Tag/columnScopeTagHelpers.js +12 -0
  305. package/src/components/Tag/index.d.ts +1 -1
  306. package/src/components/Tag/index.js +3 -1
  307. package/src/components/Textarea/index.js +2 -3
  308. package/src/components/Toggle/Toggle.d.ts +2 -0
  309. package/src/components/Toggle/Toggle.js +14 -7
  310. package/src/components/Toggle/ToggleGroup.js +2 -2
  311. package/src/components/ToggleButton/index.js +4 -5
  312. package/src/components/Tree/TreeDropdown/index.js +3 -5
  313. package/src/components/WarningBox/index.js +2 -3
  314. package/src/components/icons/sort-asc.js +1 -1
  315. package/src/components/ui/button.d.ts +2 -2
  316. package/src/components/ui/combobox.d.ts +3 -1
  317. package/src/components/ui/combobox.js +2 -2
  318. package/src/components/ui/input-group.d.ts +1 -1
  319. package/src/components/ui/select.js +3 -2
  320. package/src/components/ui/textarea.js +1 -1
  321. package/src/env.js +2 -2
  322. package/src/layout-manager/src/index.js +7 -3
  323. package/src/metamodel/adaptable.metamodel.js +1 -1
  324. package/src/types.d.ts +1 -1
  325. package/tsconfig.cjs.tsbuildinfo +1 -1
  326. package/src/View/DataChangeHistory/DataChangeHistoryGrid.d.ts +0 -17
  327. package/src/View/DataChangeHistory/DataChangeHistoryGrid.js +0 -295
  328. package/src/components/DropdownButton/DropdownButtonItem.d.ts +0 -12
  329. package/src/components/DropdownButton/DropdownButtonItem.js +0 -2
  330. package/src/components/DropdownButton/renderItem.d.ts +0 -14
  331. package/src/components/DropdownButton/renderItem.js +0 -14
  332. package/src/components/DropdownButton/useExpanded.d.ts +0 -24
  333. package/src/components/DropdownButton/useExpanded.js +0 -59
  334. package/src/components/NewDropdownButton/index.d.ts +0 -27
  335. package/src/components/NewDropdownButton/index.js +0 -28
@@ -1,7 +1,12 @@
1
1
  import * as React from 'react';
2
2
  import { ModuleManagerProps } from './ModuleManager';
3
3
  import { ModuleDraggableItem } from './types';
4
+ export declare const DEFAULT_UNUSED_LIST_ID = "UNUSED";
4
5
  export declare const DragAndDropContext: React.Context<{
5
6
  availableItems: ModuleDraggableItem[];
6
7
  permittedActions: ModuleManagerProps["permittedActions"];
8
+ /** Prefixes drag list / item ids so multiple ModuleManagers on one page do not interfere. */
9
+ dragScope: string;
10
+ /** Drag-list ids for unused / available item pools (accept-drop sources for toolbar lists). */
11
+ unusedListIds: string[];
7
12
  }>;
@@ -1,8 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DragAndDropContext = void 0;
3
+ exports.DragAndDropContext = exports.DEFAULT_UNUSED_LIST_ID = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const React = tslib_1.__importStar(require("react"));
6
+ exports.DEFAULT_UNUSED_LIST_ID = 'UNUSED';
6
7
  exports.DragAndDropContext = React.createContext({
7
8
  availableItems: [],
8
9
  permittedActions: {
@@ -11,4 +12,6 @@ exports.DragAndDropContext = React.createContext({
11
12
  dragAndDropTab: true,
12
13
  deleteTab: true,
13
14
  },
15
+ dragScope: 'default',
16
+ unusedListIds: [exports.DEFAULT_UNUSED_LIST_ID],
14
17
  });
@@ -1,5 +1,5 @@
1
1
  import * as React from 'react';
2
- import { BaseModuleTab, ModuleDraggableItem } from './types';
2
+ import { BaseModuleTab, ModuleDraggableItem, UnusedItemGroup } from './types';
3
3
  export interface ModuleManagerProps {
4
4
  availableItems: ModuleDraggableItem[];
5
5
  filterOutSelectedItems?: boolean;
@@ -7,8 +7,12 @@ export interface ModuleManagerProps {
7
7
  disabled: boolean;
8
8
  onTabsChange: (tabs: BaseModuleTab[]) => void;
9
9
  tabs: BaseModuleTab[];
10
- unusedPanelTitle: string;
11
- dragItemText: string;
10
+ unusedPanelTitle?: string;
11
+ dragItemText?: string;
12
+ /** When set, renders multiple available-item pools instead of a single unused panel. */
13
+ unusedItemGroups?: UnusedItemGroup[];
14
+ /** Layout for `unusedItemGroups` when more than one group is provided. */
15
+ unusedItemGroupsLayout?: 'column' | 'row';
12
16
  tabsTitle?: string;
13
17
  permittedActions?: {
14
18
  createTab?: boolean;
@@ -16,5 +20,13 @@ export interface ModuleManagerProps {
16
20
  dragAndDropTab?: boolean;
17
21
  deleteTab?: boolean;
18
22
  };
23
+ /**
24
+ * `strip`: single horizontal drop row (e.g. pinned toolbars).
25
+ * `rows`: named tabs stacked vertically, each with a horizontal toolbar strip.
26
+ * `tabs`: multi-column tab editor (default, e.g. status bar).
27
+ */
28
+ layout?: 'tabs' | 'strip' | 'rows';
29
+ /** Unique per ModuleManager instance when more than one appears on the same screen. */
30
+ dragScope?: string;
19
31
  }
20
32
  export declare const ModuleManager: React.FunctionComponent<ModuleManagerProps>;
@@ -9,10 +9,16 @@ const DragAndDropContext_1 = require("./DragAndDropContext");
9
9
  const TabList_1 = require("./TabList");
10
10
  const UnusedPanel_1 = require("./UnusedPanel");
11
11
  const Flex_1 = require("../Flex");
12
- const clsx_1 = tslib_1.__importDefault(require("clsx"));
13
12
  const Card_1 = require("../Card");
13
+ const utils_1 = require("../../lib/utils");
14
14
  const ModuleManager = (props) => {
15
- const { availableItems, tabs, onTabsChange, tabsTitle, disabled, unusedPanelTitle, dragItemText, permittedActions, className, } = props;
15
+ const { availableItems, tabs, onTabsChange, tabsTitle, disabled, unusedPanelTitle, dragItemText, unusedItemGroups, unusedItemGroupsLayout = 'row', permittedActions, className, layout = 'tabs', dragScope = 'default', } = props;
16
+ const unusedListIds = React.useMemo(() => {
17
+ if (unusedItemGroups?.length) {
18
+ return unusedItemGroups.map((group, index) => group.listId ?? `UNUSED-${index}`);
19
+ }
20
+ return [DragAndDropContext_1.DEFAULT_UNUSED_LIST_ID];
21
+ }, [unusedItemGroups]);
16
22
  const contextValue = React.useMemo(() => {
17
23
  const preparedPermittedAction = {
18
24
  createTab: true,
@@ -24,8 +30,10 @@ const ModuleManager = (props) => {
24
30
  return {
25
31
  permittedActions: preparedPermittedAction,
26
32
  availableItems: props.availableItems,
33
+ dragScope,
34
+ unusedListIds,
27
35
  };
28
- }, [props.availableItems, props.permittedActions]);
36
+ }, [props.availableItems, props.permittedActions, dragScope, unusedListIds, permittedActions]);
29
37
  const allowedItems = React.useMemo(() => {
30
38
  let result = availableItems.map((t) => t.Id);
31
39
  if (props.filterOutSelectedItems) {
@@ -61,6 +69,37 @@ const ModuleManager = (props) => {
61
69
  };
62
70
  }));
63
71
  };
64
- return ((0, jsx_runtime_1.jsx)(dnd_1.DragDropProvider, { children: (0, jsx_runtime_1.jsx)(DragAndDropContext_1.DragAndDropContext.Provider, { value: contextValue, children: (0, jsx_runtime_1.jsxs)(Flex_1.Flex, { flexDirection: "column", className: (0, clsx_1.default)('ab-ModuleSelector twa:flex-1', className), children: [(0, jsx_runtime_1.jsx)(UnusedPanel_1.UnusedPanel, { title: unusedPanelTitle, disabled: disabled, items: allowedItems, dragItemText: dragItemText }), (0, jsx_runtime_1.jsxs)(Card_1.Card, { className: "twa:flex-1 twa:m-2 ab-ModuleSelector-UsedPanel", children: [(0, jsx_runtime_1.jsx)(Card_1.Card.Title, { border: false, children: tabsTitle }), (0, jsx_runtime_1.jsx)(Card_1.Card.Body, { className: "twa:px-2", children: (0, jsx_runtime_1.jsx)(TabList_1.TabList, { disabled: disabled, tabs: tabs, onTabsChange: onTabsChange, onRemoveTab: handleRemoveTab, onRemoveToolbar: handleRemoveToolbar, onChangeTabName: handleChangeTabName, onNewTab: contextValue.permittedActions.createTab ? handleTabAdd : undefined }) })] })] }) }) }));
72
+ const renderUnusedItemGroups = () => {
73
+ const groupsLayout = unusedItemGroups.length > 1 ? unusedItemGroupsLayout : 'column';
74
+ return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [dragItemText ? ((0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:pb-2 twa:text-sm twa:opacity-80", children: dragItemText })) : null, (0, jsx_runtime_1.jsx)(Flex_1.Flex, { flexDirection: groupsLayout === 'row' ? 'row' : 'column', className: (0, utils_1.cn)('twa:gap-2 ab-ModuleSelector__UnusedGroups', {
75
+ 'ab-ModuleSelector__UnusedGroups--row': groupsLayout === 'row',
76
+ }), children: unusedItemGroups.map((group, index) => {
77
+ const listId = group.listId ?? `UNUSED-${index}`;
78
+ return ((0, jsx_runtime_1.jsxs)(Card_1.Card, { className: (0, utils_1.cn)('twa:m-0 ab-ModuleSelector__UnusedGroup', {
79
+ 'twa:flex-1 twa:min-w-0': groupsLayout === 'row',
80
+ }), children: [(0, jsx_runtime_1.jsxs)(Card_1.Card.Title, { border: false, className: "twa:py-2", children: [(0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:text-sm twa:font-medium", children: group.title }), group.help ? ((0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:text-xs twa:opacity-70 twa:font-normal", children: group.help })) : null] }), (0, jsx_runtime_1.jsx)(Card_1.Card.Body, { className: "twa:px-0 twa:pt-0", children: (0, jsx_runtime_1.jsx)(UnusedPanel_1.UnusedPanel, { listId: listId, disabled: disabled, items: group.items }) })] }, listId));
81
+ }) })] }));
82
+ };
83
+ const renderAvailableItemPanels = (options) => {
84
+ const includeOuterPadding = options?.includeOuterPadding ?? true;
85
+ if (unusedItemGroups?.length) {
86
+ const content = renderUnusedItemGroups();
87
+ if (!includeOuterPadding) {
88
+ return content;
89
+ }
90
+ return (0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:px-2 twa:mb-2", children: content });
91
+ }
92
+ return ((0, jsx_runtime_1.jsx)(UnusedPanel_1.UnusedPanel, { title: unusedPanelTitle, disabled: disabled, items: allowedItems, dragItemText: dragItemText }));
93
+ };
94
+ const renderUsedPanelCard = () => ((0, jsx_runtime_1.jsxs)(Card_1.Card, { className: "twa:m-0 ab-ModuleSelector-UsedPanel", children: [tabsTitle ? (0, jsx_runtime_1.jsx)(Card_1.Card.Title, { border: false, children: tabsTitle }) : null, (0, jsx_runtime_1.jsx)(Card_1.Card.Body, { className: "twa:px-2", children: (0, jsx_runtime_1.jsx)(TabList_1.TabList, { variant: layout === 'rows' ? 'rows' : 'columns', disabled: disabled, tabs: tabs, onTabsChange: onTabsChange, onRemoveTab: handleRemoveTab, onRemoveToolbar: handleRemoveToolbar, onChangeTabName: handleChangeTabName, onNewTab: contextValue.permittedActions.createTab ? handleTabAdd : undefined }) })] }));
95
+ if (layout === 'strip') {
96
+ const stripTab = tabs[0] ?? { Name: '', Items: [] };
97
+ return ((0, jsx_runtime_1.jsx)(dnd_1.DragDropProvider, { children: (0, jsx_runtime_1.jsx)(DragAndDropContext_1.DragAndDropContext.Provider, { value: contextValue, children: (0, jsx_runtime_1.jsxs)(Flex_1.Flex, { flexDirection: "column", className: (0, utils_1.cn)('ab-ModuleSelector ab-ModuleSelector--strip', className), children: [(0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:pb-1", children: renderAvailableItemPanels() }), (0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:px-2 twa:pb-1", children: (0, jsx_runtime_1.jsx)(TabList_1.ToolbarList, { compact: true, orientation: "horizontal", disabled: disabled, toolbars: stripTab.Items ?? [], tabIndex: 0, tabs: tabs, onTabsChange: onTabsChange, onRemove: (toolbarIndex) => handleRemoveToolbar(0, toolbarIndex) }) })] }) }) }));
98
+ }
99
+ if (layout === 'rows') {
100
+ const alignUsedPanelWithGroups = Boolean(unusedItemGroups?.length);
101
+ return ((0, jsx_runtime_1.jsx)(dnd_1.DragDropProvider, { children: (0, jsx_runtime_1.jsx)(DragAndDropContext_1.DragAndDropContext.Provider, { value: contextValue, children: (0, jsx_runtime_1.jsx)(Flex_1.Flex, { flexDirection: "column", className: (0, utils_1.cn)('ab-ModuleSelector ab-ModuleSelector--rows', className), children: alignUsedPanelWithGroups ? ((0, jsx_runtime_1.jsxs)(Flex_1.Box, { className: "twa:px-2 twa:flex twa:flex-col twa:gap-2", children: [renderAvailableItemPanels({ includeOuterPadding: false }), renderUsedPanelCard()] })) : ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:pb-1", children: renderAvailableItemPanels() }), renderUsedPanelCard()] })) }) }) }));
102
+ }
103
+ return ((0, jsx_runtime_1.jsx)(dnd_1.DragDropProvider, { children: (0, jsx_runtime_1.jsx)(DragAndDropContext_1.DragAndDropContext.Provider, { value: contextValue, children: (0, jsx_runtime_1.jsxs)(Flex_1.Flex, { flexDirection: "column", className: (0, utils_1.cn)('ab-ModuleSelector twa:flex-1', className), children: [renderAvailableItemPanels(), (0, jsx_runtime_1.jsxs)(Card_1.Card, { className: "twa:flex-1 twa:m-0 ab-ModuleSelector-UsedPanel", children: [tabsTitle ? (0, jsx_runtime_1.jsx)(Card_1.Card.Title, { border: false, children: tabsTitle }) : null, (0, jsx_runtime_1.jsx)(Card_1.Card.Body, { className: "twa:px-2", children: (0, jsx_runtime_1.jsx)(TabList_1.TabList, { disabled: disabled, tabs: tabs, onTabsChange: onTabsChange, onRemoveTab: handleRemoveTab, onRemoveToolbar: handleRemoveToolbar, onChangeTabName: handleChangeTabName, onNewTab: contextValue.permittedActions.createTab ? handleTabAdd : undefined }) })] })] }) }) }));
65
104
  };
66
105
  exports.ModuleManager = ModuleManager;
@@ -1,6 +1,7 @@
1
1
  import * as React from 'react';
2
2
  import { BaseModuleTab } from './types';
3
- export declare function TabList({ tabs, onTabsChange, onRemoveTab, onRemoveToolbar, onChangeTabName, disabled, onNewTab, }: {
3
+ export type TabListVariant = 'columns' | 'rows';
4
+ export declare function TabList({ tabs, onTabsChange, onRemoveTab, onRemoveToolbar, onChangeTabName, disabled, onNewTab, variant, }: {
4
5
  disabled: boolean;
5
6
  tabs: BaseModuleTab[];
6
7
  onTabsChange: (tabs: BaseModuleTab[]) => void;
@@ -8,8 +9,9 @@ export declare function TabList({ tabs, onTabsChange, onRemoveTab, onRemoveToolb
8
9
  onRemoveToolbar: (tabIndex: number, toolbarIndex: number) => void;
9
10
  onChangeTabName: (tabIndex: number, tabName: string) => void;
10
11
  onNewTab?: () => void;
12
+ variant?: TabListVariant;
11
13
  }): React.JSX.Element;
12
- export declare function TabItem({ tab, tabId, tabIndex, tabs, onTabsChange, onRemove, onRemoveToolbar, onChangeTabName, disabled, }: {
14
+ export declare function TabItem({ tab, tabId, tabIndex, tabs, onTabsChange, onRemove, onRemoveToolbar, onChangeTabName, disabled, variant, }: {
13
15
  tab: BaseModuleTab;
14
16
  tabId: string;
15
17
  tabIndex: number;
@@ -19,17 +21,22 @@ export declare function TabItem({ tab, tabId, tabIndex, tabs, onTabsChange, onRe
19
21
  onRemove: () => void;
20
22
  onRemoveToolbar: (toolbarIndex: number) => void;
21
23
  onChangeTabName: (tabName: string) => void;
24
+ variant?: TabListVariant;
22
25
  }): React.JSX.Element;
23
- export declare function ToolbarList({ toolbars, tabIndex, tabs, onTabsChange, onRemove, disabled, }: {
26
+ export declare function ToolbarList({ toolbars, tabIndex, tabs, onTabsChange, onRemove, disabled, orientation, compact, embedded, }: {
24
27
  toolbars: string[];
25
28
  tabIndex: number;
26
29
  tabs: BaseModuleTab[];
27
30
  onTabsChange: (tabs: BaseModuleTab[]) => void;
28
31
  disabled: boolean;
29
32
  onRemove: (toolbarIndex: number) => void;
33
+ orientation?: 'vertical' | 'horizontal';
34
+ compact?: boolean;
35
+ embedded?: boolean;
30
36
  }): React.JSX.Element;
31
- export declare function ToolbarItem({ toolbar, onRemove, disabled, }: {
37
+ export declare function ToolbarItem({ toolbar, onRemove, disabled, compact, }: {
32
38
  disabled: boolean;
33
39
  toolbar: string;
34
40
  onRemove: () => void;
41
+ compact?: boolean;
35
42
  }): React.JSX.Element;
@@ -11,9 +11,13 @@ const dnd_1 = require("../dnd");
11
11
  const icons_1 = require("../icons");
12
12
  const SimpleButton_1 = tslib_1.__importDefault(require("../SimpleButton"));
13
13
  const DragAndDropContext_1 = require("./DragAndDropContext");
14
+ const dragScope_1 = require("./dragScope");
14
15
  const Flex_1 = require("../Flex");
15
- const clsx_1 = tslib_1.__importDefault(require("clsx"));
16
- function TabList({ tabs, onTabsChange, onRemoveTab, onRemoveToolbar, onChangeTabName, disabled, onNewTab, }) {
16
+ const utils_1 = require("../../lib/utils");
17
+ function TabList({ tabs, onTabsChange, onRemoveTab, onRemoveToolbar, onChangeTabName, disabled, onNewTab, variant = 'columns', }) {
18
+ const isRows = variant === 'rows';
19
+ const { dragScope } = React.useContext(DragAndDropContext_1.DragAndDropContext);
20
+ const tabsListId = (0, dragScope_1.scopeListId)(dragScope, 'TABS');
17
21
  const tabIdsRef = React.useRef(new WeakMap());
18
22
  const nextTabIdRef = React.useRef(0);
19
23
  const getTabStableId = React.useCallback((tab) => {
@@ -25,18 +29,22 @@ function TabList({ tabs, onTabsChange, onRemoveTab, onRemoveToolbar, onChangeTab
25
29
  tabIdsRef.current.set(tab, newId);
26
30
  return newId;
27
31
  }, []);
28
- return ((0, jsx_runtime_1.jsx)(dnd_1.DragList, { dragListId: "TABS", orientation: "horizontal", dragStrategy: "proxy", preserveDragSpace: true, onDragProxyMove: dnd_1.defaultDragProxyMove, onDrop: (sortedIndexes) => {
32
+ return ((0, jsx_runtime_1.jsx)(dnd_1.DragList, { dragListId: tabsListId, orientation: isRows ? 'vertical' : 'horizontal', dragStrategy: "proxy", preserveDragSpace: true, onDragProxyMove: dnd_1.defaultDragProxyMove, onDrop: (sortedIndexes) => {
29
33
  const newTabs = sortedIndexes.map((i) => tabs[i]);
30
34
  onTabsChange(newTabs);
31
- }, children: (listDomProps) => ((0, jsx_runtime_1.jsxs)("div", { ...listDomProps, className: (0, clsx_1.default)('ab-ModuleSelector__TabList twa:flex twa:flex-1 twa:overflow-auto', listDomProps.className), "data-name": "dashboard-tabs", children: [tabs.map((tab, tabIndex) => {
35
+ }, children: (listDomProps) => ((0, jsx_runtime_1.jsxs)("div", { ...listDomProps, className: (0, utils_1.cn)('ab-ModuleSelector__TabList twa:flex', isRows
36
+ ? 'ab-ModuleSelector__TabList--rows twa:flex-col twa:gap-2'
37
+ : 'twa:flex-1 twa:overflow-auto', listDomProps.className), "data-name": "dashboard-tabs", children: [tabs.map((tab, tabIndex) => {
32
38
  const tabId = getTabStableId(tab);
33
- return ((0, jsx_runtime_1.jsx)(TabItem, { disabled: disabled, tabId: tabId, tabIndex: tabIndex, tabs: tabs, onTabsChange: onTabsChange, tab: tab, onRemove: () => onRemoveTab(tabIndex), onRemoveToolbar: (toolbarIndex) => onRemoveToolbar(tabIndex, toolbarIndex), onChangeTabName: (tabName) => onChangeTabName(tabIndex, tabName) }, tabIndex));
34
- }), !disabled && onNewTab ? ((0, jsx_runtime_1.jsx)(Flex_1.Flex, { alignItems: "center", justifyContent: "center", className: "ab-ModuleSelector__TabItem twa:min-w-32 twa:border-dashed twa:cursor-pointer twa:bg-primarylight twa:text-primary-foreground twa:hover:bg-primary", onClick: onNewTab, children: (0, jsx_runtime_1.jsxs)("div", { className: "twa:text-8 twa:flex twa:flex-col twa:gap-4 twa:items-center twa:italic", children: [(0, jsx_runtime_1.jsx)(icons_1.Icon, { name: "plus", size: 32 }), "Click to add tab"] }) })) : null] })) }));
39
+ return ((0, jsx_runtime_1.jsx)(TabItem, { disabled: disabled, variant: variant, tabId: tabId, tabIndex: tabIndex, tabs: tabs, onTabsChange: onTabsChange, tab: tab, onRemove: () => onRemoveTab(tabIndex), onRemoveToolbar: (toolbarIndex) => onRemoveToolbar(tabIndex, toolbarIndex), onChangeTabName: (tabName) => onChangeTabName(tabIndex, tabName) }, tabIndex));
40
+ }), !disabled && onNewTab ? (isRows ? ((0, jsx_runtime_1.jsxs)(Flex_1.Flex, { alignItems: "center", className: "twa:gap-2 twa:rounded-standard twa:border twa:border-dashed twa:cursor-pointer twa:px-3 twa:py-2 twa:text-sm twa:italic twa:hover:bg-primarylight", onClick: onNewTab, children: [(0, jsx_runtime_1.jsx)(icons_1.Icon, { name: "plus", size: 16 }), "Add tab"] })) : ((0, jsx_runtime_1.jsx)(Flex_1.Flex, { alignItems: "center", justifyContent: "center", className: "ab-ModuleSelector__TabItem twa:min-w-32 twa:border-dashed twa:cursor-pointer twa:bg-primarylight twa:text-primary-foreground twa:hover:bg-primary", onClick: onNewTab, children: (0, jsx_runtime_1.jsxs)("div", { className: "twa:text-8 twa:flex twa:flex-col twa:gap-4 twa:items-center twa:italic", children: [(0, jsx_runtime_1.jsx)(icons_1.Icon, { name: "plus", size: 32 }), "Click to add tab"] }) }))) : null] })) }));
35
41
  }
36
- function TabItem({ tab, tabId, tabIndex, tabs, onTabsChange, onRemove, onRemoveToolbar, onChangeTabName, disabled, }) {
42
+ function TabItem({ tab, tabId, tabIndex, tabs, onTabsChange, onRemove, onRemoveToolbar, onChangeTabName, disabled, variant = 'columns', }) {
37
43
  const context = React.useContext(DragAndDropContext_1.DragAndDropContext);
38
44
  const isDragDisabled = disabled || !context.permittedActions.dragAndDropTab;
39
- return ((0, jsx_runtime_1.jsx)(dnd_1.DragList.DraggableItem, { dragListId: "TABS", id: tabId, children: (itemDomProps) => {
45
+ const isRows = variant === 'rows';
46
+ const tabsListId = (0, dragScope_1.scopeListId)(context.dragScope, 'TABS');
47
+ return ((0, jsx_runtime_1.jsx)(dnd_1.DragList.DraggableItem, { dragListId: tabsListId, id: (0, dragScope_1.scopeDragId)(context.dragScope, tabId), children: (itemDomProps) => {
40
48
  const { onPointerDown, ...restDomProps } = itemDomProps;
41
49
  let showHeader = true;
42
50
  if (tab.Name === '' &&
@@ -44,57 +52,63 @@ function TabItem({ tab, tabId, tabIndex, tabs, onTabsChange, onRemove, onRemoveT
44
52
  !context.permittedActions.deleteTab) {
45
53
  showHeader = false;
46
54
  }
47
- return ((0, jsx_runtime_1.jsxs)("div", { ...restDomProps, className: (0, clsx_1.default)('twa:bg-background', 'twa:select-none', 'ab-ModuleSelector__TabItem twa:min-w-32', restDomProps.className), "data-name": "dashboard-tab", children: [showHeader ? ((0, jsx_runtime_1.jsxs)("div", { className: "ab-ModuleSelector__TabItem__header", children: [(0, jsx_runtime_1.jsx)("div", { ...(!isDragDisabled ? { onPointerDown } : {}), style: context.permittedActions.dragAndDropTab ? {} : { display: 'none' }, children: (0, jsx_runtime_1.jsx)(icons_1.Icon, { name: "drag" }) }), context.permittedActions.editTabName ? ((0, jsx_runtime_1.jsx)("input", { className: "ab-ModuleSelector__TabItem__header-input", type: "text", disabled: disabled, value: tab.Name, onChange: (event) => {
55
+ return ((0, jsx_runtime_1.jsxs)("div", { ...restDomProps, className: (0, utils_1.cn)('twa:bg-background', 'twa:select-none', 'ab-ModuleSelector__TabItem', isRows ? 'ab-ModuleSelector__TabItem--row' : 'twa:min-w-32', restDomProps.className), "data-name": "dashboard-tab", children: [showHeader ? ((0, jsx_runtime_1.jsxs)("div", { className: (0, utils_1.cn)('ab-ModuleSelector__TabItem__header', isRows && 'ab-ModuleSelector__TabItem__header--row'), children: [(0, jsx_runtime_1.jsx)("div", { ...(!isDragDisabled ? { onPointerDown } : {}), style: context.permittedActions.dragAndDropTab ? {} : { display: 'none' }, children: (0, jsx_runtime_1.jsx)(icons_1.Icon, { name: "drag" }) }), context.permittedActions.editTabName ? ((0, jsx_runtime_1.jsx)("input", { className: "ab-ModuleSelector__TabItem__header-input", type: "text", disabled: disabled, value: tab.Name, placeholder: isRows ? 'Tab name' : undefined, onChange: (event) => {
48
56
  onChangeTabName(event.target.value);
49
- } })) : (tab.Name), context.permittedActions.deleteTab && ((0, jsx_runtime_1.jsx)(SimpleButton_1.default, { disabled: disabled, icon: "delete", variant: "text", onClick: onRemove }))] })) : null, (0, jsx_runtime_1.jsx)(ToolbarList, { disabled: disabled, toolbars: tab.Items, tabIndex: tabIndex, tabs: tabs, onTabsChange: onTabsChange, onRemove: onRemoveToolbar })] }));
57
+ } })) : (tab.Name), context.permittedActions.deleteTab && ((0, jsx_runtime_1.jsx)(SimpleButton_1.default, { disabled: disabled, icon: "delete", variant: "text", onClick: onRemove }))] })) : null, (0, jsx_runtime_1.jsx)(ToolbarList, { disabled: disabled, toolbars: tab.Items, tabIndex: tabIndex, tabs: tabs, onTabsChange: onTabsChange, onRemove: onRemoveToolbar, compact: isRows, embedded: isRows, orientation: isRows ? 'horizontal' : 'vertical' })] }));
50
58
  } }));
51
59
  }
52
- function ToolbarList({ toolbars, tabIndex, tabs, onTabsChange, onRemove, disabled, }) {
60
+ function ToolbarList({ toolbars, tabIndex, tabs, onTabsChange, onRemove, disabled, orientation = 'vertical', compact = false, embedded = false, }) {
61
+ const { dragScope, unusedListIds } = React.useContext(DragAndDropContext_1.DragAndDropContext);
62
+ const listId = String(tabIndex);
63
+ const scopedListId = (0, dragScope_1.scopeListId)(dragScope, listId);
53
64
  const acceptDropsFrom = React.useMemo(() => {
54
- const sources = ['UNUSED'];
65
+ const sources = unusedListIds.map((unusedListId) => (0, dragScope_1.scopeListId)(dragScope, unusedListId));
55
66
  tabs.forEach((_, i) => {
56
67
  if (i !== tabIndex)
57
- sources.push(String(i));
68
+ sources.push((0, dragScope_1.scopeListId)(dragScope, String(i)));
58
69
  });
59
70
  return sources;
60
- }, [tabIndex, tabs]);
61
- return ((0, jsx_runtime_1.jsx)(dnd_1.DragList, { dragListId: String(tabIndex), orientation: "vertical", acceptDropsFrom: [...acceptDropsFrom, String(tabIndex)], onDragProxyMove: dnd_1.defaultDragProxyMove,
71
+ }, [dragScope, unusedListIds, tabIndex, tabs]);
72
+ return ((0, jsx_runtime_1.jsx)(dnd_1.DragList, { dragListId: scopedListId, orientation: orientation, acceptDropsFrom: [...acceptDropsFrom, scopedListId], onDragProxyMove: dnd_1.defaultDragProxyMove,
62
73
  // this is called when reordering inside the same list
63
74
  onDrop: (sortedIndexes) => {
64
75
  const newItems = sortedIndexes.map((i) => toolbars[i]);
65
76
  onTabsChange(tabs.map((t, i) => (i === tabIndex ? { ...t, Items: newItems } : t)));
66
77
  }, shouldAcceptDrop: ({ dragItem, dragSourceListId }) => {
67
- const dragItemId = dragItem.id;
68
- // if the tab contains an item with the same id, don't accept the drop
69
- if (dragSourceListId != String(tabIndex) && tabs[tabIndex].Items.includes(dragItemId)) {
70
- return false;
78
+ const toolbarId = (0, dragScope_1.unscopeDragId)(dragItem.id);
79
+ const sourceTabIndex = (0, dragScope_1.tabIndexFromScopedListId)(dragSourceListId);
80
+ if (sourceTabIndex === tabIndex) {
81
+ return true;
71
82
  }
72
- return true;
83
+ return !toolbars.includes(toolbarId);
73
84
  },
74
85
  // this is called when dropping an item from a different list
75
- onAcceptDrop: ({ dragItemId, dragSourceListId, dropIndex }) => {
76
- const newTabs = tabs.map((tab, i) => {
77
- let items = [...tab.Items];
78
- if (dragSourceListId !== 'UNUSED' && i === Number(dragSourceListId)) {
79
- items = items.filter((item) => item !== dragItemId);
80
- }
81
- if (i === tabIndex) {
82
- items.splice(dropIndex, 0, dragItemId);
86
+ onAcceptDrop: ({ dragItemId, dropIndex }) => {
87
+ const toolbarId = (0, dragScope_1.unscopeDragId)(dragItemId);
88
+ onTabsChange(tabs.map((tab, i) => {
89
+ if (i !== tabIndex || tab.Items.includes(toolbarId)) {
90
+ return tab;
83
91
  }
92
+ const items = [...tab.Items];
93
+ items.splice(Math.min(dropIndex, items.length), 0, toolbarId);
84
94
  return { ...tab, Items: items };
85
- });
86
- onTabsChange(newTabs);
87
- }, children: (listDomProps, context) => ((0, jsx_runtime_1.jsxs)(Flex_1.Box, { ...listDomProps, className: (0, clsx_1.default)('ab-ModuleSelector__ToolbarList', listDomProps.className, {
88
- 'twa:bg-(--ab-dashboard-tab-drop-target__background) ab-ModuleSelector__ToolbarList--accent-drop': context.dropTargetListId === String(tabIndex) && context.status === 'accepted',
89
- 'twa:bg-error/30 ab-ModuleSelector__ToolbarList--reject-drop': context.dropTargetListId === String(tabIndex) && context.status === 'rejected',
90
- }), "data-name": "dashboard-toolbar-drop-target", children: [toolbars?.map((toolbar, toolbarIndex) => ((0, jsx_runtime_1.jsx)(ToolbarItem, { disabled: disabled, toolbar: toolbar, onRemove: () => onRemove(toolbarIndex) }, toolbar))), toolbars.length === 0 ? ((0, jsx_runtime_1.jsx)("div", { className: "ab-ModuleSelector__ToolbarList__placeholder twa:flex twa:items-center twa:justify-center twa:h-full twa:italic twa:text-center", children: "Drag and drop toolbar here" })) : null] })) }));
95
+ }));
96
+ }, children: (listDomProps, context) => ((0, jsx_runtime_1.jsxs)(Flex_1.Box, { ...listDomProps, className: (0, utils_1.cn)('ab-ModuleSelector__ToolbarList', listDomProps.className, {
97
+ 'ab-ModuleSelector__ToolbarList--compact': compact,
98
+ 'ab-ModuleSelector__ToolbarList--embedded': embedded,
99
+ 'ab-ModuleSelector__ToolbarList--horizontal': orientation === 'horizontal',
100
+ 'twa:bg-(--ab-dashboard-tab-drop-target__background) ab-ModuleSelector__ToolbarList--accent-drop': context.dropTargetListId === scopedListId && context.status === 'accepted',
101
+ 'twa:bg-error/30 ab-ModuleSelector__ToolbarList--reject-drop': context.dropTargetListId === scopedListId && context.status === 'rejected',
102
+ }), "data-name": "dashboard-toolbar-drop-target", children: [toolbars?.map((toolbar, toolbarIndex) => ((0, jsx_runtime_1.jsx)(ToolbarItem, { disabled: disabled, compact: compact, toolbar: toolbar, onRemove: () => onRemove(toolbarIndex) }, toolbar))), toolbars.length === 0 ? ((0, jsx_runtime_1.jsx)("div", { className: (0, utils_1.cn)('ab-ModuleSelector__ToolbarList__placeholder twa:italic twa:text-center', compact
103
+ ? 'twa:flex twa:items-center twa:min-h-[2.5rem] twa:px-2 twa:text-sm'
104
+ : 'twa:flex twa:items-center twa:justify-center twa:h-full'), children: "Drag and drop toolbar here" })) : null] })) }));
91
105
  }
92
- function ToolbarItem({ toolbar, onRemove, disabled, }) {
93
- const { availableItems } = React.useContext(DragAndDropContext_1.DragAndDropContext);
106
+ function ToolbarItem({ toolbar, onRemove, disabled, compact = false, }) {
107
+ const { availableItems, dragScope } = React.useContext(DragAndDropContext_1.DragAndDropContext);
94
108
  const currentItem = availableItems.find((t) => t.Id === toolbar);
95
109
  const title = currentItem ? currentItem.Title : toolbar;
96
- return ((0, jsx_runtime_1.jsx)(dnd_1.DragList.DraggableItem, { id: toolbar, children: (itemDomProps) => {
110
+ return ((0, jsx_runtime_1.jsx)(dnd_1.DragList.DraggableItem, { id: (0, dragScope_1.scopeDragId)(dragScope, toolbar), children: (itemDomProps) => {
97
111
  const { onPointerDown, ...restDomProps } = itemDomProps;
98
- return ((0, jsx_runtime_1.jsxs)(Flex_1.Flex, { ...restDomProps, ...(disabled ? {} : { onPointerDown }), className: (0, clsx_1.default)('ab-ModuleSelector__ToolbarItem twa:mb-1 twa:pl-1 twa:text-3', 'twa:bg-primarylight', restDomProps.className), alignItems: "center", children: [(0, jsx_runtime_1.jsx)("div", { className: "twa:flex-1", children: title }), (0, jsx_runtime_1.jsx)(SimpleButton_1.default, { disabled: disabled, icon: "close", variant: "text", className: "twa:p-1", onClick: onRemove })] }));
112
+ return ((0, jsx_runtime_1.jsxs)(Flex_1.Flex, { ...restDomProps, ...(disabled ? {} : { onPointerDown }), className: (0, utils_1.cn)('ab-ModuleSelector__ToolbarItem ab-ModuleSelector__DraggableChip twa:text-3 twa:rounded-standard twa:gap-1', compact ? 'twa:px-2 twa:py-1 twa:shrink-0' : 'twa:mb-1 twa:pl-1 twa:pr-0', restDomProps.className), alignItems: "center", children: [(0, jsx_runtime_1.jsx)(icons_1.Icon, { name: "drag", className: "twa:shrink-0 twa:opacity-60", size: 14 }), (0, jsx_runtime_1.jsx)("div", { className: "twa:flex-1 twa:min-w-0", children: title }), (0, jsx_runtime_1.jsx)(SimpleButton_1.default, { disabled: disabled, icon: "close", variant: "text", className: "twa:p-1", onClick: onRemove })] }));
99
113
  } }));
100
114
  }
@@ -1,7 +1,8 @@
1
1
  import * as React from 'react';
2
- export declare function UnusedPanel({ items, disabled, title, dragItemText, }: {
3
- title: string;
2
+ export declare function UnusedPanel({ items, disabled, title, dragItemText, listId, }: {
3
+ title?: string;
4
4
  items: string[];
5
5
  disabled: boolean;
6
- dragItemText: string;
6
+ dragItemText?: string;
7
+ listId?: string;
7
8
  }): React.JSX.Element;
@@ -6,23 +6,27 @@ const jsx_runtime_1 = require("react/jsx-runtime");
6
6
  const React = tslib_1.__importStar(require("react"));
7
7
  const dnd_1 = require("../dnd");
8
8
  const DragAndDropContext_1 = require("./DragAndDropContext");
9
+ const dragScope_1 = require("./dragScope");
9
10
  const Flex_1 = require("../Flex");
10
- const clsx_1 = tslib_1.__importDefault(require("clsx"));
11
- function UnusedPanel({ items, disabled, title, dragItemText, }) {
12
- return ((0, jsx_runtime_1.jsxs)(Flex_1.Box, { className: "ab-ModuleSelector__UnusedPanel twa:mb-2 twa:pb-1", "data-name": "unusedpanel-items", children: [(0, jsx_runtime_1.jsxs)(Flex_1.Box, { className: "twa:p-2", children: [(0, jsx_runtime_1.jsx)("b", { children: title }), " (", dragItemText, ")"] }), (0, jsx_runtime_1.jsx)(UnusedItemList, { disabled: disabled, items: items })] }));
11
+ const icons_1 = require("../icons");
12
+ const utils_1 = require("../../lib/utils");
13
+ function UnusedPanel({ items, disabled, title, dragItemText, listId = 'UNUSED', }) {
14
+ const showHeader = Boolean(title);
15
+ return ((0, jsx_runtime_1.jsxs)(Flex_1.Box, { className: "ab-ModuleSelector__UnusedPanel twa:mb-2 twa:pb-1", "data-name": "unusedpanel-items", children: [showHeader ? ((0, jsx_runtime_1.jsxs)(Flex_1.Box, { className: "twa:p-2", children: [(0, jsx_runtime_1.jsx)("b", { children: title }), dragItemText ? (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [" (", dragItemText, ")"] }) : null] })) : null, (0, jsx_runtime_1.jsx)(UnusedItemList, { disabled: disabled, items: items, listId: listId })] }));
13
16
  }
14
17
  const EMPTY_ARRAY = [];
15
- function UnusedItemList({ items, disabled }) {
16
- return ((0, jsx_runtime_1.jsx)(dnd_1.DragList, { dragStrategy: "proxy", preserveDragSpace: true, dragListId: "UNUSED", orientation: "horizontal", onDragProxyMove: dnd_1.defaultDragProxyMove, acceptDropsFrom: EMPTY_ARRAY, onDragProxySetup: ({ proxyElement }) => {
18
+ function UnusedItemList({ items, disabled, listId = 'UNUSED', }) {
19
+ const { dragScope } = React.useContext(DragAndDropContext_1.DragAndDropContext);
20
+ return ((0, jsx_runtime_1.jsx)(dnd_1.DragList, { dragStrategy: "proxy", preserveDragSpace: true, dragListId: (0, dragScope_1.scopeListId)(dragScope, listId), orientation: "horizontal", onDragProxyMove: dnd_1.defaultDragProxyMove, acceptDropsFrom: EMPTY_ARRAY, onDragProxySetup: ({ proxyElement }) => {
17
21
  proxyElement.classList.add('twa:shadow-md');
18
- }, onDrop: () => { }, children: (listDomProps) => ((0, jsx_runtime_1.jsx)("div", { ...listDomProps, "data-name": "unusedpanel-items-list", className: (0, clsx_1.default)('twa:px-2 twa:flex-wrap twa:flex twa:flex-row twa:gap-1', listDomProps.className), children: items.map((unusedItem) => ((0, jsx_runtime_1.jsx)(UnusedItem, { disabled: disabled, unusedItem: unusedItem }, unusedItem))) })) }));
22
+ }, onDrop: () => { }, children: (listDomProps) => ((0, jsx_runtime_1.jsx)("div", { ...listDomProps, "data-name": "unusedpanel-items-list", className: (0, utils_1.cn)('twa:px-2 twa:flex-wrap twa:flex twa:flex-row twa:gap-1', listDomProps.className), children: items.map((unusedItem) => ((0, jsx_runtime_1.jsx)(UnusedItem, { disabled: disabled, unusedItem: unusedItem }, unusedItem))) })) }));
19
23
  }
20
24
  function UnusedItem({ unusedItem, disabled }) {
21
- const { availableItems } = React.useContext(DragAndDropContext_1.DragAndDropContext);
25
+ const { availableItems, dragScope } = React.useContext(DragAndDropContext_1.DragAndDropContext);
22
26
  const currentItem = availableItems.find((t) => t.Id === unusedItem);
23
27
  const title = currentItem ? currentItem.Title : unusedItem;
24
- return ((0, jsx_runtime_1.jsx)(dnd_1.DragList.DraggableItem, { id: unusedItem, children: (itemDomProps) => {
28
+ return ((0, jsx_runtime_1.jsx)(dnd_1.DragList.DraggableItem, { id: (0, dragScope_1.scopeDragId)(dragScope, unusedItem), children: (itemDomProps) => {
25
29
  const { onPointerDown, ...restDomProps } = itemDomProps;
26
- return ((0, jsx_runtime_1.jsx)("div", { "data-name": "unused-item", ...restDomProps, ...(disabled ? {} : { onPointerDown }), className: (0, clsx_1.default)('twa:rounded-md twa:text-sm twa:text-primary-foreground twa:p-2 twa:select-none', 'twa:bg-primary', restDomProps.className), children: title }));
30
+ return ((0, jsx_runtime_1.jsxs)(Flex_1.Flex, { "data-name": "unused-item", alignItems: "center", ...restDomProps, ...(disabled ? {} : { onPointerDown }), className: (0, utils_1.cn)('ab-ModuleSelector__DraggableChip twa:rounded-standard twa:text-sm twa:px-2 twa:py-1 twa:select-none twa:gap-1', restDomProps.className), children: [(0, jsx_runtime_1.jsx)(icons_1.Icon, { name: "drag", className: "twa:shrink-0 twa:opacity-60", size: 14 }), (0, jsx_runtime_1.jsx)("span", { children: title })] }));
27
31
  } }));
28
32
  }
@@ -0,0 +1,6 @@
1
+ export declare function scopeDragId(dragScope: string, id: string): string;
2
+ export declare function unscopeDragId(scopedId: string): string;
3
+ export declare function scopeListId(dragScope: string, listId: string): string;
4
+ export declare function unscopeListId(scopedListId: string): string;
5
+ export declare function tabIndexFromScopedListId(scopedListId: string): number | null;
6
+ export declare function isScopedUnusedList(scopedListId: string): boolean;
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.scopeDragId = scopeDragId;
4
+ exports.unscopeDragId = unscopeDragId;
5
+ exports.scopeListId = scopeListId;
6
+ exports.unscopeListId = unscopeListId;
7
+ exports.tabIndexFromScopedListId = tabIndexFromScopedListId;
8
+ exports.isScopedUnusedList = isScopedUnusedList;
9
+ const SCOPE_SEP = '::';
10
+ function scopeDragId(dragScope, id) {
11
+ return `${dragScope}${SCOPE_SEP}${id}`;
12
+ }
13
+ function unscopeDragId(scopedId) {
14
+ const sep = scopedId.indexOf(SCOPE_SEP);
15
+ return sep === -1 ? scopedId : scopedId.slice(sep + SCOPE_SEP.length);
16
+ }
17
+ function scopeListId(dragScope, listId) {
18
+ return scopeDragId(dragScope, listId);
19
+ }
20
+ function unscopeListId(scopedListId) {
21
+ return unscopeDragId(scopedListId);
22
+ }
23
+ function tabIndexFromScopedListId(scopedListId) {
24
+ const listId = unscopeListId(scopedListId);
25
+ if (listId === 'UNUSED' || listId.startsWith('UNUSED-') || listId === 'TABS') {
26
+ return null;
27
+ }
28
+ const index = Number(listId);
29
+ return Number.isNaN(index) ? null : index;
30
+ }
31
+ function isScopedUnusedList(scopedListId) {
32
+ const listId = unscopeListId(scopedListId);
33
+ return listId === 'UNUSED' || listId.startsWith('UNUSED-');
34
+ }
@@ -6,3 +6,10 @@ export interface ModuleDraggableItem {
6
6
  Id: string;
7
7
  Title: string;
8
8
  }
9
+ export interface UnusedItemGroup {
10
+ /** Drag-list id suffix (scoped under `dragScope`). Defaults to `UNUSED-{index}`. */
11
+ listId?: string;
12
+ title: string;
13
+ help?: string;
14
+ items: string[];
15
+ }
@@ -1,28 +1,36 @@
1
1
  import * as React from 'react';
2
+ import { AccessLevel } from '../../AdaptableState/Common/Entitlement';
2
3
  import { SimpleButtonProps } from '../SimpleButton';
3
- import { ExpandedProps } from './useExpanded';
4
- import DropdownButtonItem from './DropdownButtonItem';
5
- import { OverlayTriggerProps } from '../OverlayTrigger';
6
- import { BoxProps } from '../Flex';
7
- export declare const DROPDOWN_ICON: React.JSX.Element;
8
- export type DropdownButtonProps = React.PropsWithChildren<Omit<BoxProps, 'ref'>> & Omit<React.HTMLProps<HTMLElement>, 'ref'> & SimpleButtonProps & ExpandedProps & {
9
- collapseOnItemClick?: boolean;
10
- columns?: string[];
11
- overlayProps?: OverlayTriggerProps;
12
- listOffset?: number;
13
- items?: DropdownButtonItem[];
14
- stopPropagationOnOverlay?: boolean;
15
- idProperty?: string;
16
- showClearButton?: boolean;
17
- focusOnClear?: boolean;
18
- onClear?: () => void;
19
- clearButtonProps?: SimpleButtonProps;
20
- listItemClassName?: string;
21
- listStyle?: React.CSSProperties;
22
- listMinWidth?: number;
23
- listItemStyle?: React.CSSProperties | ((item: DropdownButtonItem, index: number) => React.CSSProperties);
24
- isItemDisabled?: (item: DropdownButtonItem) => boolean | undefined;
25
- showToggleIcon?: boolean;
4
+ export type NewDropdownButtonItem = {
5
+ label?: React.ReactNode;
6
+ tooltip?: string;
7
+ onClick?: (e?: React.SyntheticEvent) => void;
8
+ disabled?: boolean;
9
+ dataName?: string;
10
+ separator?: boolean;
11
+ icon?: React.ReactNode;
12
+ /** When `false`, the menu stays open after this item is clicked (default `true`). */
13
+ closeOnClick?: boolean;
26
14
  };
27
- declare const DropdownButton: React.ForwardRefExoticComponent<Omit<React.PropsWithChildren<DropdownButtonProps>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
28
- export default DropdownButton;
15
+ export type NewDropdownButtonProps = {
16
+ items: NewDropdownButtonItem[];
17
+ children?: React.ReactNode;
18
+ className?: string;
19
+ disabled?: boolean;
20
+ tooltip?: string;
21
+ variant?: SimpleButtonProps['variant'];
22
+ size?: SimpleButtonProps['size'];
23
+ accessLevel?: AccessLevel;
24
+ side?: 'top' | 'bottom' | 'left' | 'right';
25
+ align?: 'start' | 'center' | 'end';
26
+ 'data-name'?: string;
27
+ tone?: SimpleButtonProps['tone'];
28
+ showDivider?: boolean;
29
+ id?: string;
30
+ 'data-id'?: string;
31
+ 'data-value'?: string | number;
32
+ 'aria-label'?: string;
33
+ onMouseDown?: React.MouseEventHandler;
34
+ extraWidthChars?: number;
35
+ };
36
+ export declare const NewDropdownButton: React.ForwardRefExoticComponent<NewDropdownButtonProps & React.RefAttributes<HTMLButtonElement>>;