@adaptabletools/adaptable 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 +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/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 +4 -9
  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 +1 -1
  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 -3
  102. package/src/View/Components/Popups/AdaptablePopup/TopBar.js +2 -2
  103. package/src/View/Components/Popups/AdaptablePopup/settingsPanelNavigationTypes.d.ts +11 -0
  104. package/src/View/Components/Popups/AdaptablePopup/settingsPanelNavigationTypes.js +1 -0
  105. package/src/View/Components/Popups/AdaptablePopup/useMenuItems.d.ts +3 -1
  106. package/src/View/Components/Popups/AdaptablePopup/useMenuItems.js +25 -27
  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 -2
  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 +32 -65
  114. package/src/View/Components/ToolPanel/AdaptableToolPanel.js +10 -7
  115. package/src/View/Components/ToolPanel/ToolPanelPopup.d.ts +3 -13
  116. package/src/View/Components/ToolPanel/ToolPanelPopup.js +5 -81
  117. package/src/View/Components/ToolPanel/ToolPanelPopupSections.d.ts +17 -0
  118. package/src/View/Components/ToolPanel/ToolPanelPopupSections.js +76 -0
  119. package/src/View/Components/ValueSelector/index.d.ts +29 -0
  120. package/src/View/Components/ValueSelector/index.js +113 -30
  121. package/src/View/Components/wizardColumnListStyles.d.ts +10 -0
  122. package/src/View/Components/wizardColumnListStyles.js +10 -0
  123. package/src/View/CustomSort/Wizard/CustomSortColumnWizardSection.d.ts +2 -1
  124. package/src/View/CustomSort/Wizard/CustomSortColumnWizardSection.js +5 -7
  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 +68 -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 +94 -0
  135. package/src/View/DataChangeHistory/buildActionColumnButton.d.ts +5 -3
  136. package/src/View/DataChangeHistory/buildActionColumnButton.js +30 -39
  137. package/src/View/DataChangeHistory/dataChangeHistoryHelpers.d.ts +15 -0
  138. package/src/View/DataChangeHistory/dataChangeHistoryHelpers.js +37 -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 +3 -3
  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 +4 -9
  147. package/src/View/Export/Wizard/ReportRowsWizardSection.d.ts +2 -1
  148. package/src/View/Export/Wizard/ReportRowsWizardSection.js +3 -6
  149. package/src/View/FlashingCell/FlashingCellStyle.d.ts +4 -2
  150. package/src/View/FlashingCell/FlashingCellStyle.js +4 -2
  151. package/src/View/FlashingCell/Wizard/FlashingCellRulesWizardSection.d.ts +2 -1
  152. package/src/View/FlashingCell/Wizard/FlashingCellRulesWizardSection.js +7 -11
  153. package/src/View/FlashingCell/Wizard/FlashingCellScopeSummary.d.ts +9 -0
  154. package/src/View/FlashingCell/Wizard/FlashingCellScopeSummary.js +5 -0
  155. package/src/View/FlashingCell/Wizard/FlashingCellScopeWizardSection.d.ts +1 -1
  156. package/src/View/FlashingCell/Wizard/FlashingCellScopeWizardSection.js +1 -0
  157. package/src/View/FlashingCell/Wizard/FlashingCellStyleWizardSection.d.ts +0 -5
  158. package/src/View/FlashingCell/Wizard/FlashingCellStyleWizardSection.js +1 -5
  159. package/src/View/FlashingCell/Wizard/FlashingCellWizard.js +2 -3
  160. package/src/View/FormatColumn/Wizard/FormatColumnFormatWizardSection.d.ts +1 -1
  161. package/src/View/FormatColumn/Wizard/FormatColumnFormatWizardSection.js +99 -42
  162. package/src/View/FormatColumn/Wizard/FormatColumnRuleWizardSection.d.ts +0 -1
  163. package/src/View/FormatColumn/Wizard/FormatColumnRuleWizardSection.js +0 -4
  164. package/src/View/FormatColumn/Wizard/FormatColumnScopeWizardSection.js +56 -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 -8
  168. package/src/View/FormatColumn/Wizard/FormatColumnWizard.js +8 -13
  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 -2
  174. package/src/View/GridInfo/GridInfoPopup/GridInfoPopup.js +2 -2
  175. package/src/View/Layout/LayoutViewPanel.js +1 -1
  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 +73 -33
  179. package/src/View/Layout/Wizard/sections/ColumnsSection.d.ts +4 -1
  180. package/src/View/Layout/Wizard/sections/ColumnsSection.js +155 -276
  181. package/src/View/Layout/Wizard/sections/PivotAggregationsSection.d.ts +4 -1
  182. package/src/View/Layout/Wizard/sections/PivotAggregationsSection.js +148 -145
  183. package/src/View/Layout/Wizard/sections/PivotColumnsSection.d.ts +5 -2
  184. package/src/View/Layout/Wizard/sections/PivotColumnsSection.js +24 -12
  185. package/src/View/Layout/Wizard/sections/PivotRowGroupingSection.d.ts +4 -1
  186. package/src/View/Layout/Wizard/sections/PivotRowGroupingSection.js +23 -12
  187. package/src/View/Layout/Wizard/sections/RowGroupingSection.d.ts +5 -2
  188. package/src/View/Layout/Wizard/sections/RowGroupingSection.js +19 -12
  189. package/src/View/Layout/Wizard/sections/RowSelectionSection.js +8 -4
  190. package/src/View/Layout/Wizard/sections/RowSummarySection.js +11 -11
  191. package/src/View/Layout/Wizard/sections/SortSection.d.ts +12 -2
  192. package/src/View/Layout/Wizard/sections/SortSection.js +41 -17
  193. package/src/View/Layout/Wizard/sections/columnLayoutCards.d.ts +20 -0
  194. package/src/View/Layout/Wizard/sections/columnLayoutCards.js +159 -0
  195. package/src/View/Layout/Wizard/sections/columnLayoutHelpers.d.ts +30 -0
  196. package/src/View/Layout/Wizard/sections/columnLayoutHelpers.js +201 -0
  197. package/src/View/Layout/Wizard/sections/layoutWizardAccordionHelpers.d.ts +8 -0
  198. package/src/View/Layout/Wizard/sections/layoutWizardAccordionHelpers.js +63 -0
  199. package/src/View/Layout/Wizard/sections/layoutWizardColumns.d.ts +11 -0
  200. package/src/View/Layout/Wizard/sections/layoutWizardColumns.js +52 -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 -12
  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 +7 -0
  217. package/src/View/StyledColumn/Wizard/BadgePillStyleEditor.d.ts +2 -0
  218. package/src/View/StyledColumn/Wizard/BadgePillStyleEditor.js +14 -11
  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 +8 -14
  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 +50 -0
  225. package/src/View/StyledColumn/Wizard/StyledColumnWizard.d.ts +2 -0
  226. package/src/View/StyledColumn/Wizard/StyledColumnWizard.js +26 -5
  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 +98 -43
  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 +32 -46
  234. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/StyledColumnWizardStyleSection.js +11 -6
  235. package/src/View/StyledColumn/Wizard/StyledColumnWizardTypeSection.js +94 -7
  236. package/src/View/UIHelper.d.ts +0 -2
  237. package/src/View/UIHelper.js +8 -23
  238. package/src/View/Wizard/CollapsibleWizardCard.d.ts +68 -0
  239. package/src/View/Wizard/CollapsibleWizardCard.js +81 -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 +67 -0
  243. package/src/View/Wizard/WizardTypeSelection.d.ts +34 -0
  244. package/src/View/Wizard/WizardTypeSelection.js +31 -0
  245. package/src/View/Wizard/rowGroupSummaryTags.d.ts +18 -0
  246. package/src/View/Wizard/rowGroupSummaryTags.js +14 -0
  247. package/src/View/Wizard/scopeSummaryTags.d.ts +6 -0
  248. package/src/View/Wizard/scopeSummaryTags.js +33 -0
  249. package/src/agGrid/AdaptableAgGrid.js +1 -1
  250. package/src/agGrid/AgGridAdapter.js +0 -5
  251. package/src/agGrid/AgGridColumnAdapter.js +2 -2
  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 -6
  255. package/src/components/CheckBox/index.js +2 -3
  256. package/src/components/CodeBlock/index.js +2 -2
  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 +26 -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 +3 -0
  269. package/src/components/DragAndDropContext/ModuleManager.d.ts +15 -3
  270. package/src/components/DragAndDropContext/ModuleManager.js +47 -8
  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 +15 -11
  275. package/src/components/DragAndDropContext/dragScope.d.ts +6 -0
  276. package/src/components/DragAndDropContext/dragScope.js +26 -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 -2
  281. package/src/components/ErrorBox/index.js +2 -2
  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 +6 -6
  285. package/src/components/FieldWrap/index.js +2 -2
  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 -3
  289. package/src/components/IconSelector/IconSelector.d.ts +8 -0
  290. package/src/components/IconSelector/IconSelector.js +11 -7
  291. package/src/components/IconSelector/index.d.ts +1 -0
  292. package/src/components/IconSelector/index.js +1 -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 -2
  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 +14 -4
  303. package/src/components/Tag/columnScopeTagHelpers.d.ts +8 -0
  304. package/src/components/Tag/columnScopeTagHelpers.js +6 -0
  305. package/src/components/Tag/index.d.ts +1 -1
  306. package/src/components/Tag/index.js +1 -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 -4
  312. package/src/components/Tree/TreeDropdown/index.js +3 -4
  313. package/src/components/WarningBox/index.js +2 -2
  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.esm.tsbuildinfo +1 -1
  326. package/src/View/DataChangeHistory/DataChangeHistoryGrid.d.ts +0 -17
  327. package/src/View/DataChangeHistory/DataChangeHistoryGrid.js +0 -290
  328. package/src/components/DropdownButton/DropdownButtonItem.d.ts +0 -12
  329. package/src/components/DropdownButton/DropdownButtonItem.js +0 -1
  330. package/src/components/DropdownButton/renderItem.d.ts +0 -14
  331. package/src/components/DropdownButton/renderItem.js +0 -11
  332. package/src/components/DropdownButton/useExpanded.d.ts +0 -24
  333. package/src/components/DropdownButton/useExpanded.js +0 -56
  334. package/src/components/NewDropdownButton/index.d.ts +0 -27
  335. package/src/components/NewDropdownButton/index.js +0 -24
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adaptabletools/adaptable",
3
- "version": "23.0.0-canary.5",
3
+ "version": "23.0.0-canary.7",
4
4
  "description": "Powerful AG Grid extension which provides advanced, cutting-edge functionality to meet all DataGrid requirements",
5
5
  "keywords": [
6
6
  "web-components",
@@ -1,5 +1,6 @@
1
1
  import { AdaptableForm, AdaptableObject } from '../../types';
2
2
  import { FormContext } from '../AdaptableState/Common/FormContext';
3
+ import { DataSetSelectedInfo } from '../Api/Events/DataSetSelected';
3
4
  /**
4
5
  * Options to provide Data Sets
5
6
  */
@@ -9,12 +10,12 @@ export interface DataSetOptions<TData = any> {
9
10
  *
10
11
  * @defaultValue []
11
12
  */
12
- dataSets?: DataSet[];
13
+ dataSets?: DataSet<TData>[];
13
14
  }
14
15
  /**
15
16
  * Defines a Data Set object that can provide data to AdapTable
16
17
  */
17
- export interface DataSet extends AdaptableObject {
18
+ export interface DataSet<TData = any> extends AdaptableObject {
18
19
  /**
19
20
  * Name of Data Set
20
21
  */
@@ -31,6 +32,29 @@ export interface DataSet extends AdaptableObject {
31
32
  * Additional info for Data Set
32
33
  */
33
34
  info?: Record<string, string | number | boolean | Date>;
35
+ /**
36
+ * Invoked when this Data Set is selected and it does not define a `form`.
37
+ *
38
+ * Use for custom loading logic (e.g. server requests). The `DataSetSelected`
39
+ * event is still fired for backward compatibility.
40
+ *
41
+ * @defaultValue undefined
42
+ */
43
+ onSelect?: (info: DataSetSelectedInfo) => void | Promise<void>;
44
+ /**
45
+ * Optional shortcut that loads row data into the Grid when this Data Set is
46
+ * selected (only when no `form` is defined). Runs before `onSelect`.
47
+ *
48
+ * @defaultValue undefined
49
+ */
50
+ loadData?: (info: DataSetSelectedInfo) => TData[] | Promise<TData[]>;
51
+ /**
52
+ * Invoked when the user submits the Data Set form (Enter key or form button).
53
+ * When no form `buttons` are defined, an OK button is added automatically.
54
+ *
55
+ * @defaultValue undefined
56
+ */
57
+ onFormSubmit?: (context: DataSetFormContext) => void | Promise<void>;
34
58
  }
35
59
  /**
36
60
  * Used when a DataSet displays a Form
@@ -268,7 +268,6 @@ const DefaultAdaptableOptions = {
268
268
  popupType: 'modal',
269
269
  title: ModuleConstants.SettingsPanelFriendlyName,
270
270
  icon: 'ConfigurationIcon',
271
- navigation: {},
272
271
  alwaysShowInDashboard: false,
273
272
  alwaysShowInToolPanel: false,
274
273
  showModuleIcons: true,
@@ -1,5 +1,6 @@
1
1
  import { AdaptableFrameworkComponent, AdaptableIcon } from '../../types';
2
2
  import { AdaptableSettingsPanel } from '../AdaptableState/Common/Types';
3
+ import { BaseContext } from '../AdaptableState/Common/BaseContext';
3
4
  import { CustomRenderContext } from '../agGrid/AdaptableFrameworkComponent';
4
5
  /**
5
6
  * Options for managing the AdapTable Settings Panel
@@ -34,13 +35,15 @@ export interface SettingsPanelOptions {
34
35
  */
35
36
  alwaysShowInToolPanel?: boolean;
36
37
  /**
37
- * Ordered items to display at side of Settings Panel
38
+ * Configure grouped navigation for the Settings Panel.
38
39
  *
39
- * @defaultValue all available AdapTable modules
40
+ * Receives the default grouped navigation and AdapTable context; return an amended copy.
41
+ * Groups with no visible modules (e.g. due to entitlements) are omitted automatically.
42
+ * Group headings are omitted when every module in the group is hidden.
43
+ *
44
+ * @defaultValue all available AdapTable modules in the default grouped order
40
45
  */
41
- navigation?: {
42
- items?: (AdaptableSettingsPanel | string | '-')[];
43
- };
46
+ navigation?: SettingsPanelNavigationConfigurer;
44
47
  /**
45
48
  * Initial position of Settings Panel window
46
49
  *
@@ -70,18 +73,47 @@ export interface SettingsPanelOptions {
70
73
  */
71
74
  customSettingsPanels?: CustomSettingsPanel[];
72
75
  /**
73
- * Which Tabs can be used to display Grid Info: 'Grid Options', 'Grid Summary' or 'Grid State'
74
- *
75
- * @defaultValue ['Grid Options', 'Grid Summary', 'Grid State']
76
- */
76
+ * Which Tabs can be used to display Grid Info: 'Grid Options', 'Grid Summary' or 'Grid State'
77
+ *
78
+ * @defaultValue ['Grid Options', 'Grid Summary', 'Grid State']
79
+ */
77
80
  gridInfoTabs?: GridInfoTabs;
78
81
  }
82
+ /**
83
+ * A labelled group of Settings Panel navigation entries.
84
+ */
85
+ export interface SettingsPanelNavigationGroup {
86
+ /**
87
+ * Section heading shown above the group. Use an empty string to show items without a heading.
88
+ */
89
+ label: string;
90
+ /**
91
+ * Module names or custom panel names in display order.
92
+ */
93
+ items: (AdaptableSettingsPanel | string)[];
94
+ }
95
+ /**
96
+ * Grouped Settings Panel navigation structure.
97
+ */
98
+ export interface SettingsPanelNavigation {
99
+ groups: SettingsPanelNavigationGroup[];
100
+ }
101
+ /**
102
+ * Context passed to `SettingsPanelOptions.navigation`.
103
+ */
104
+ export interface SettingsPanelNavigationContext extends BaseContext {
105
+ }
106
+ /**
107
+ * Function used to customise Settings Panel navigation.
108
+ */
109
+ export type SettingsPanelNavigationConfigurer = (context: SettingsPanelNavigationContext, defaultNavigation: SettingsPanelNavigation) => SettingsPanelNavigation;
79
110
  /**
80
111
  * Definition of a Custom Panel to add to the Adaptable Settings Panel
81
112
  */
82
113
  export interface CustomSettingsPanel {
83
114
  /**
84
- * Appears in Settings Panel Navigation and must be included in settingsPanelOptions.navigation for it to be displayed (by default added to the end)
115
+ * Appears in Settings Panel Navigation. Include in `navigation` to choose placement
116
+ * (by default added to a `Custom Panels` group at the end).
85
117
  */
86
118
  name: string;
87
119
  /**
@@ -50,6 +50,13 @@ export interface NumberFormatterOptions extends BaseFormatterOptions {
50
50
  * Multiplier to use on cell value
51
51
  */
52
52
  Multiplier?: number;
53
+ /**
54
+ * When the numeric value is zero (after multiplier and rounding):
55
+ * - omitted / undefined, or `'0'` — use normal formatting (e.g. `0`, `0.00`)
56
+ * - `''` — show a blank cell (user cleared the default `0` in the wizard)
57
+ * - any other string — show that text (e.g. `-`, `—`)
58
+ */
59
+ ZeroDisplay?: string;
53
60
  /**
54
61
  * Shows negative numbers in parentheses
55
62
  */
@@ -15,6 +15,6 @@ export type AdaptableMessageType =
15
15
  */
16
16
  | 'Warning'
17
17
  /**
18
- * Error Message - displays '-ab-color-error' variable (defaults to red)
18
+ * Error Message - displays '-ab-color-destructive' variable (defaults to red)
19
19
  */
20
20
  | 'Error';
@@ -31,7 +31,7 @@ export declare enum FontSize {
31
31
  XLarge = "XLarge"
32
32
  }
33
33
  export declare enum StatusColour {
34
- Error = "var(--ab-color-error)",
34
+ Error = "var(--ab-color-destructive)",
35
35
  Warn = "var(--ab-color-warn)",
36
36
  Success = "var(--ab-color-success)",
37
37
  Info = "var(--ab-color-info)"
@@ -42,7 +42,7 @@ export var FontSize;
42
42
  })(FontSize || (FontSize = {}));
43
43
  export var StatusColour;
44
44
  (function (StatusColour) {
45
- StatusColour["Error"] = "var(--ab-color-error)";
45
+ StatusColour["Error"] = "var(--ab-color-destructive)";
46
46
  StatusColour["Warn"] = "var(--ab-color-warn)";
47
47
  StatusColour["Success"] = "var(--ab-color-success)";
48
48
  StatusColour["Info"] = "var(--ab-color-info)";
@@ -200,11 +200,11 @@ export interface CellColorRange {
200
200
  */
201
201
  export interface ColumnComparison {
202
202
  /**
203
- * Start value - either numeric value or Column name
203
+ * Start value - either numeric value or Column ID
204
204
  */
205
205
  MinValue: number | string;
206
206
  /**
207
- * End value - either numeric value or Column name
207
+ * End value - either numeric value or Column ID
208
208
  */
209
209
  MaxValue: number | string;
210
210
  /**
@@ -122,7 +122,7 @@ export class AlertInternalApi extends ApiBase {
122
122
  let backgroundColor = '';
123
123
  switch (highlightType) {
124
124
  case 'Error':
125
- backgroundColor = 'var(--ab-color-error)';
125
+ backgroundColor = 'var(--ab-color-destructive)';
126
126
  break;
127
127
  case 'Info':
128
128
  backgroundColor = 'var(--ab-color-info)';
@@ -1,5 +1,8 @@
1
1
  import { ApiBase } from '../Implementation/ApiBase';
2
2
  import { DataSet } from '../../AdaptableOptions/DataSetOptions';
3
3
  export declare class DataSetInternalApi extends ApiBase {
4
+ handleDataSetSelected(dataSet: DataSet): void;
4
5
  showDataSetForm(dataSet: DataSet): void;
6
+ private buildDataSetForm;
7
+ private runDataSetHandler;
5
8
  }
@@ -1,20 +1,80 @@
1
1
  import { ApiBase } from '../Implementation/ApiBase';
2
2
  export class DataSetInternalApi extends ApiBase {
3
+ handleDataSetSelected(dataSet) {
4
+ if (!dataSet.form) {
5
+ this.getEventApi().internalApi.fireDataSetSelectedEvent(dataSet);
6
+ const dataSetSelectedInfo = {
7
+ ...this.getAdaptableInternalApi().buildBaseContext(),
8
+ dataSet,
9
+ };
10
+ this.runDataSetHandler(async () => {
11
+ if (dataSet.loadData) {
12
+ const rowData = await dataSet.loadData(dataSetSelectedInfo);
13
+ if (rowData != null) {
14
+ this.getGridApi().loadGridData(rowData);
15
+ }
16
+ }
17
+ if (dataSet.onSelect) {
18
+ await dataSet.onSelect(dataSetSelectedInfo);
19
+ }
20
+ }, 'selection', dataSet.name);
21
+ }
22
+ }
3
23
  showDataSetForm(dataSet) {
4
- if (dataSet.form) {
5
- this.getAdaptableInternalApi().showPopupForm({
6
- Id: 'data-set-form',
7
- Form: dataSet.form,
8
- prepareContext: (context) => {
9
- return new Promise((resolve) => {
10
- const preparedContext = {
11
- ...context,
12
- dataSet,
13
- };
14
- resolve(preparedContext);
15
- });
24
+ if (!dataSet.form) {
25
+ return;
26
+ }
27
+ this.getAdaptableInternalApi().showPopupForm({
28
+ Id: 'data-set-form',
29
+ Form: this.buildDataSetForm(dataSet),
30
+ prepareContext: (context) => {
31
+ return new Promise((resolve) => {
32
+ const preparedContext = {
33
+ ...context,
34
+ dataSet,
35
+ };
36
+ resolve(preparedContext);
37
+ });
38
+ },
39
+ });
40
+ }
41
+ buildDataSetForm(dataSet) {
42
+ const sourceForm = dataSet.form;
43
+ if (!dataSet.onFormSubmit) {
44
+ return sourceForm;
45
+ }
46
+ const invokeOnFormSubmit = (context) => {
47
+ this.runDataSetHandler(() => dataSet.onFormSubmit(context), 'onFormSubmit', dataSet.name);
48
+ };
49
+ const onSubmit = (formData, context) => {
50
+ sourceForm.onSubmit?.(formData, context);
51
+ invokeOnFormSubmit({ ...context, formData, dataSet });
52
+ };
53
+ const buttons = sourceForm.buttons?.length > 0
54
+ ? sourceForm.buttons
55
+ : [
56
+ {
57
+ label: 'OK',
58
+ onClick: (_, context) => invokeOnFormSubmit({ ...context, dataSet }),
16
59
  },
17
- });
60
+ ];
61
+ return {
62
+ ...sourceForm,
63
+ onSubmit,
64
+ buttons,
65
+ };
66
+ }
67
+ runDataSetHandler(handler, handlerName, dataSetName) {
68
+ try {
69
+ const result = handler();
70
+ if (result != null && typeof result.then === 'function') {
71
+ result.catch((error) => {
72
+ this.logError(`DataSet '${dataSetName}' ${handlerName} handler failed`, error);
73
+ });
74
+ }
75
+ }
76
+ catch (error) {
77
+ this.logError(`DataSet '${dataSetName}' ${handlerName} handler failed`, error);
18
78
  }
19
79
  }
20
80
  }
@@ -905,10 +905,12 @@ const adaptableMiddleware = (adaptable) => (function(middlewareAPI) {
905
905
  case InternalRedux.DATA_SET_SELECT: {
906
906
  let returnAction = next(action);
907
907
  const dataSet = adaptable.api.dataSetApi.getCurrentDataSet();
908
- adaptable.api.eventApi.internalApi.fireDataSetSelectedEvent(dataSet);
909
- requestAnimationFrame(() => {
910
- adaptable.api.dataSetApi.internalApi.showDataSetForm(dataSet);
911
- });
908
+ if (dataSet) {
909
+ adaptable.api.dataSetApi.internalApi.handleDataSetSelected(dataSet);
910
+ requestAnimationFrame(() => {
911
+ adaptable.api.dataSetApi.internalApi.showDataSetForm(dataSet);
912
+ });
913
+ }
912
914
  return returnAction;
913
915
  }
914
916
  /*******************
@@ -115,6 +115,7 @@ export class CalculatedColumnModule extends AdaptableModuleBase {
115
115
  name: 'Settings',
116
116
  label: 'Column Id',
117
117
  values: [calculateColumn.ColumnId],
118
+ tagVariant: 'column',
118
119
  },
119
120
  calculateColumn.FriendlyName && {
120
121
  name: 'Settings',
@@ -153,6 +153,7 @@ export class ColumnFilterModule extends AdaptableModuleBase {
153
153
  {
154
154
  name: 'Column',
155
155
  values: [this.api.columnApi.getFriendlyNameForColumnId(filter.ColumnId)],
156
+ tagVariant: 'column',
156
157
  },
157
158
  {
158
159
  name: 'Filter',
@@ -7,8 +7,8 @@ import { getFlashingTargetViewItems } from './Utilities/FlashingCell/getFlashing
7
7
  import { getFlashingCellStyleViewItems } from './Utilities/FlashingCell/getFlashingCellStyleViewItems';
8
8
  import { getObjectTagsViewItems } from '../Utilities/getObjectTagsViewItems';
9
9
  import { getRuleViewItems } from '../Utilities/getRuleViewItems';
10
- import { getScopeViewItems } from '../Utilities/getScopeViewItems';
11
10
  import { FlashingCellWizard } from '../View/FlashingCell/Wizard/FlashingCellWizard';
11
+ import { FlashingCellScopeSummaryView } from '../View/FlashingCell/Wizard/FlashingCellScopeWizardSection';
12
12
  import { getFlashingCellDurationViewItems } from './Utilities/FlashingCell/getFlashingCellDurationViewItems';
13
13
  import { errorOnce } from '../agGrid/AdaptableLogger';
14
14
  export class FlashingCellModule extends AdaptableModuleBase {
@@ -253,7 +253,11 @@ export class FlashingCellModule extends AdaptableModuleBase {
253
253
  name: 'Name',
254
254
  values: [flashingCell.Name],
255
255
  },
256
- { ...getScopeViewItems(flashingCell.Scope, this.api), label: 'Trigger' },
256
+ {
257
+ label: 'Columns',
258
+ name: 'Columns',
259
+ view: FlashingCellScopeSummaryView,
260
+ },
257
261
  {
258
262
  ...getRuleViewItems(flashingCell.Rule, this.api),
259
263
  label: 'Rule',
@@ -3,7 +3,7 @@ import * as ModuleConstants from '../Utilities/Constants/ModuleConstants';
3
3
  import * as FormatColumnRedux from '../Redux/ActionsReducers/FormatColumnRedux';
4
4
  import * as PopupRedux from '../Redux/ActionsReducers/PopupRedux';
5
5
  import { FormatColumnWizard } from '../View/FormatColumn/Wizard/FormatColumnWizard';
6
- import { getFormatColumnFormatSummaryValue, hasFormatColumnDisplayFormat } from '../View/FormatColumn/Wizard/FormatColumnFormatWizardSection';
6
+ import { getFormatColumnFormatSummaryTagValues, hasFormatColumnDisplayFormat } from '../View/FormatColumn/Wizard/FormatColumnFormatWizardSection';
7
7
  import { getFormatColumnSettingsViewItems } from './Utilities/FormatColumn/getFormatColumnSettingsViewItems';
8
8
  import { MoveFormatColumn } from '../View/FormatColumn/MoveFormatColumn';
9
9
  import { getObjectTagsViewItems } from '../Utilities/getObjectTagsViewItems';
@@ -99,7 +99,7 @@ export class FormatColumnModule extends AdaptableModuleBase {
99
99
  },
100
100
  hasFormatColumnDisplayFormat(formatColumn) && {
101
101
  name: 'Display Format',
102
- values: [getFormatColumnFormatSummaryValue(formatColumn)],
102
+ values: getFormatColumnFormatSummaryTagValues(formatColumn),
103
103
  },
104
104
  getObjectTagsViewItems(formatColumn, this.api),
105
105
  {
@@ -2,6 +2,7 @@ import { AdaptableModuleBase } from './AdaptableModuleBase';
2
2
  import * as ModuleConstants from '../Utilities/Constants/ModuleConstants';
3
3
  import * as FreeTextColumnRedux from '../Redux/ActionsReducers/FreeTextColumnRedux';
4
4
  import { FreeTextColumnWizard } from '../View/FreeTextColumn/Wizard/FreeTextColumnWizard';
5
+ import { getFreeTextColumnSettingsTags } from '../View/FreeTextColumn/Utilities/getFreeTextColumnSettingsTags';
5
6
  import { getObjectTagsViewItems } from '../Utilities/getObjectTagsViewItems';
6
7
  import ArrayExtensions from '../Utilities/Extensions/ArrayExtensions';
7
8
  export class FreeTextColumnModule extends AdaptableModuleBase {
@@ -65,36 +66,45 @@ export class FreeTextColumnModule extends AdaptableModuleBase {
65
66
  };
66
67
  }
67
68
  toView(freeTextColumn) {
69
+ const settingsTags = getFreeTextColumnSettingsTags(freeTextColumn.FreeTextColumnSettings);
70
+ const items = [
71
+ {
72
+ name: 'Settings',
73
+ label: 'Column Id',
74
+ values: [freeTextColumn.ColumnId],
75
+ tagVariant: 'column',
76
+ },
77
+ freeTextColumn.FriendlyName && {
78
+ name: 'Settings',
79
+ label: 'Column Name',
80
+ values: [freeTextColumn.FriendlyName],
81
+ },
82
+ {
83
+ name: 'Settings',
84
+ label: 'Data Type',
85
+ values: [freeTextColumn.FreeTextColumnSettings.DataType ?? 'Not specified'],
86
+ },
87
+ Boolean(freeTextColumn.DefaultValue) && {
88
+ name: 'Settings',
89
+ label: 'Default Value',
90
+ values: [freeTextColumn.DefaultValue],
91
+ },
92
+ freeTextColumn.TextEditor && {
93
+ name: 'Settings',
94
+ label: 'Editor Type',
95
+ values: [freeTextColumn.TextEditor],
96
+ },
97
+ ].filter(Boolean);
98
+ if (ArrayExtensions.IsNotNullOrEmpty(settingsTags)) {
99
+ items.push({
100
+ name: 'Settings',
101
+ values: settingsTags,
102
+ });
103
+ }
104
+ items.push(getObjectTagsViewItems(freeTextColumn, this.api));
68
105
  return {
69
106
  abObject: freeTextColumn,
70
- items: [
71
- {
72
- name: 'Settings',
73
- label: 'Column Id',
74
- values: [freeTextColumn.ColumnId],
75
- },
76
- freeTextColumn.FriendlyName && {
77
- name: 'Settings',
78
- label: 'Column Name',
79
- values: [freeTextColumn.FriendlyName],
80
- },
81
- {
82
- name: 'Settings',
83
- label: 'Data Type',
84
- values: [freeTextColumn.FreeTextColumnSettings.DataType ?? 'Not specified'],
85
- },
86
- Boolean(freeTextColumn.DefaultValue) && {
87
- name: 'Settings',
88
- label: 'Default Value',
89
- values: [freeTextColumn.DefaultValue],
90
- },
91
- freeTextColumn.TextEditor && {
92
- name: 'Editor Type',
93
- label: 'Editor',
94
- values: [freeTextColumn.TextEditor],
95
- },
96
- getObjectTagsViewItems(freeTextColumn, this.api),
97
- ].filter(Boolean),
107
+ items: items.filter(Boolean),
98
108
  };
99
109
  }
100
110
  toViewAll() {
@@ -58,7 +58,9 @@ export interface AdaptableObjectItemView {
58
58
  * Values used for the component.
59
59
  * Could be later extended to include an 'onChange' prop.
60
60
  */
61
- values?: (string | number)[];
61
+ values?: (string | number | React.ReactNode)[];
62
+ /** When `'column'`, tag values render with column styling. */
63
+ tagVariant?: 'default' | 'column';
62
64
  }
63
65
  export interface AdaptableObjectView {
64
66
  /**
@@ -8,8 +8,9 @@ import { EditCurrentLayoutButton } from '../View/Layout/EditCurrentLayoutButton'
8
8
  import { LayoutCloneButton } from '../View/Layout/LayoutCloneButton';
9
9
  import { LayoutWizard } from '../View/Layout/Wizard/LayoutWizard';
10
10
  import { getLayoutFilterViewItems } from './Utilities/Layout/getLayoutFilterViewItems';
11
- import { getLayoutSortViewItems } from './Utilities/Layout/getLayoutSortViewItems';
12
- import { WEIGHTED_AVERAGE_AGG_FN_NAME } from '../AdaptableState/Common/AggregationColumns';
11
+ import { getLayoutTableColumnsViewItems, getLayoutPivotSortingViewItem } from './Utilities/Layout/columnsSummaryHelpers';
12
+ import { getLayoutPivotRowGroupViewItems, getLayoutTableRowGroupViewItems, } from './Utilities/Layout/rowGroupSummaryHelpers';
13
+ import { getLayoutTableAggregationViewItems, getLayoutPivotAggregationViewItems, } from './Utilities/Layout/aggregationSummaryHelpers';
13
14
  import { SHOW_PIVOT_COLUMN_DETAILS } from '../View/Components/Popups/WindowPopups/windowFactory';
14
15
  import flattenDeep from '../Utilities/utils/flattenDeep';
15
16
  import StringExtensions from '../Utilities/Extensions/StringExtensions';
@@ -277,25 +278,9 @@ export class LayoutModule extends AdaptableModuleBase {
277
278
  return this.getModuleAdaptableObjects().map((layout) => this.toView(layout));
278
279
  }
279
280
  toView(layout) {
280
- const maxColumnsToDisplay = this.api.optionsApi.getLayoutOptions().layoutViewOptions?.maxColumnsToDisplay ?? 10;
281
281
  const columnIdToFriendlyName = (columnId) => {
282
282
  return this.api.columnApi.getFriendlyNameForColumnId(columnId);
283
283
  };
284
- let columns = (layout.TableColumns || [])
285
- .filter((c) => !this.api.columnApi.isAutoRowGroupColumn(c))
286
- .filter((c) => !this.api.columnApi.isPivotResultColumn(c))
287
- .filter((c) => !this.api.columnApi.isSelectionColumn(c));
288
- if (columns.length >
289
- maxColumnsToDisplay + 1 /* +1 is to show tag only beginning with 2, 'other 2' */) {
290
- const extraColumns = columns.length - maxColumnsToDisplay;
291
- const firstNColumns = columns
292
- .slice(0, maxColumnsToDisplay)
293
- .map((column) => columnIdToFriendlyName(column));
294
- columns = [...firstNColumns, `and ${extraColumns} more`];
295
- }
296
- else {
297
- columns = columns.map((column) => columnIdToFriendlyName(column));
298
- }
299
284
  return {
300
285
  items: [
301
286
  {
@@ -312,59 +297,23 @@ export class LayoutModule extends AdaptableModuleBase {
312
297
  * The generated pivot columns cannot be prevented from beeing on the layout object.
313
298
  * When they are removed/not added, they no longer appear in the grid.
314
299
  */
315
- !isPivotLayout(layout) && {
316
- name: 'Columns',
317
- values: columns,
318
- },
319
- layout.ColumnSorts?.length && getLayoutSortViewItems(layout, this.api),
300
+ ...(!isPivotLayout(layout)
301
+ ? getLayoutTableColumnsViewItems(layout, this.api, {
302
+ maxColumnsToDisplay: this.api.optionsApi.getAdaptableOptions()?.layoutOptions?.layoutViewOptions
303
+ ?.maxColumnsToDisplay,
304
+ })
305
+ : []),
320
306
  layout?.ColumnFilters?.length && getLayoutFilterViewItems(layout, this.api),
321
- layout?.RowGroupedColumns?.length && {
322
- name: 'Row Groups',
323
- values: layout.RowGroupedColumns.map((colId) => columnIdToFriendlyName(colId)),
324
- },
307
+ ...(!isPivotLayout(layout) ? getLayoutTableRowGroupViewItems(layout, this.api) : []),
325
308
  layout?.PivotColumns?.length && {
326
309
  name: 'Pivot Columns',
327
310
  values: layout.PivotColumns.map((colId) => columnIdToFriendlyName(colId)),
311
+ tagVariant: 'column',
328
312
  },
329
- layout?.PivotGroupedColumns?.length && {
330
- name: 'Pivot Row Groups',
331
- values: layout.PivotGroupedColumns.map((colId) => columnIdToFriendlyName(colId)),
332
- },
333
- layout?.TableAggregationColumns &&
334
- layout.TableAggregationColumns.length && {
335
- name: 'Aggregations',
336
- values: layout.TableAggregationColumns.map(({ ColumnId, AggFunc: aggFn }) => {
337
- if (ColumnId === 'Source' || ColumnId === 'Uuid' || ColumnId === 'AdaptableVersion') {
338
- return '';
339
- }
340
- let aggFnName = '';
341
- if (typeof aggFn === 'string') {
342
- aggFnName = aggFn;
343
- }
344
- else if (typeof aggFn === 'object' && aggFn.type === 'weightedAverage') {
345
- aggFnName = WEIGHTED_AVERAGE_AGG_FN_NAME;
346
- }
347
- return `${aggFnName}(${columnIdToFriendlyName(ColumnId)})`;
348
- }).filter(Boolean),
349
- },
350
- isPivotLayout(layout) &&
351
- layout?.PivotAggregationColumns &&
352
- layout.PivotAggregationColumns.length && {
353
- name: 'Pivot Aggregations',
354
- values: layout.PivotAggregationColumns.map(({ ColumnId, AggFunc: aggFn }) => {
355
- if (ColumnId === 'Source' || ColumnId === 'Uuid' || ColumnId === 'AdaptableVersion') {
356
- return '';
357
- }
358
- let aggFnName = '';
359
- if (typeof aggFn === 'string') {
360
- aggFnName = aggFn;
361
- }
362
- else if (typeof aggFn === 'object' && aggFn.type === 'weightedAverage') {
363
- aggFnName = WEIGHTED_AVERAGE_AGG_FN_NAME;
364
- }
365
- return `${aggFnName}(${columnIdToFriendlyName(ColumnId)})`;
366
- }).filter(Boolean),
367
- },
313
+ isPivotLayout(layout) && getLayoutPivotSortingViewItem(layout, this.api),
314
+ ...(isPivotLayout(layout) ? getLayoutPivotRowGroupViewItems(layout, this.api) : []),
315
+ ...(!isPivotLayout(layout) ? getLayoutTableAggregationViewItems(layout, this.api) : []),
316
+ ...(isPivotLayout(layout) ? getLayoutPivotAggregationViewItems(layout, this.api) : []),
368
317
  layout?.GridFilter &&
369
318
  StringExtensions.IsNotNullOrEmpty(layout.GridFilter.Expression) &&
370
319
  getGridFilterViewItems(layout),