@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,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.FormatColumnScopeWizardSection = exports.renderFormatColumnScopeSummary = void 0;
4
- const tslib_1 = require("tslib");
5
4
  const jsx_runtime_1 = require("react/jsx-runtime");
6
5
  const NewScopeComponent_1 = require("../../Components/NewScopeComponent");
7
6
  const OnePageAdaptableWizard_1 = require("../../Wizard/OnePageAdaptableWizard");
@@ -9,15 +8,16 @@ const AdaptableContext_1 = require("../../AdaptableContext");
9
8
  const AdaptableColumn_1 = require("../../../AdaptableState/Common/AdaptableColumn");
10
9
  const ColumnScope_1 = require("../../../AdaptableState/Common/ColumnScope");
11
10
  const Flex_1 = require("../../../components/Flex");
12
- const FormLayout_1 = tslib_1.__importStar(require("../../../components/FormLayout"));
13
11
  const CheckBox_1 = require("../../../components/CheckBox");
14
12
  const Tag_1 = require("../../../components/Tag");
13
+ const CollapsibleWizardCard_1 = require("../../Wizard/CollapsibleWizardCard");
14
+ const utils_1 = require("../../../lib/utils");
15
15
  const FORMAT_COLUMN_ROW_KINDS = ['Data', 'Group', 'Summary', 'Total'];
16
16
  const ROW_KIND_LABELS = {
17
- Data: 'Data (leaf) rows',
18
- Group: 'Group rows',
19
- Summary: 'Summary rows',
20
- Total: 'Total rows',
17
+ Data: 'Data (leaf) Rows',
18
+ Group: 'Group Rows',
19
+ Summary: 'Summary Rows',
20
+ Total: 'Total Rows',
21
21
  };
22
22
  const ROW_KIND_EXCLUDE_KEY = {
23
23
  Data: 'ExcludeDataRows',
@@ -35,6 +35,18 @@ const isRowKindIncluded = (data, kind) => {
35
35
  const collectIncludedRowKinds = (data) => {
36
36
  return FORMAT_COLUMN_ROW_KINDS.filter((k) => isRowKindIncluded(data, k));
37
37
  };
38
+ const isFormatColumnColumnsScopeConfigured = (scope, scopeApi) => {
39
+ if (scopeApi.scopeIsAll(scope)) {
40
+ return true;
41
+ }
42
+ if ('ColumnIds' in scope) {
43
+ return scope.ColumnIds.length > 0;
44
+ }
45
+ if ('DataTypes' in scope) {
46
+ return scope.DataTypes.length > 0;
47
+ }
48
+ return false;
49
+ };
38
50
  const FormatColumnScopeSummaryContent = ({ data, }) => {
39
51
  const adaptable = (0, AdaptableContext_1.useAdaptable)();
40
52
  const scopeApi = adaptable.api.columnScopeApi;
@@ -43,24 +55,46 @@ const FormatColumnScopeSummaryContent = ({ data, }) => {
43
55
  const showRows = data.Target === 'cell';
44
56
  const includedKinds = collectIncludedRowKinds(data);
45
57
  const allKinds = includedKinds.length === 4;
46
- return ((0, jsx_runtime_1.jsxs)(Flex_1.Box, { className: "twa:flex twa:flex-col twa:gap-3", children: [(0, jsx_runtime_1.jsx)(Flex_1.Box, { children: scopeApi.scopeIsAll(scope) ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: ["Columns ", (0, jsx_runtime_1.jsx)(Tag_1.Tag, { children: "All" })] })) : 'ColumnIds' in scope ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: ["Columns", ' ', columnsInScope.length ? (columnsInScope.map((column) => ((0, jsx_runtime_1.jsx)(Tag_1.Tag, { className: "twa:mr-1", children: column.friendlyName }, column.columnId)))) : ((0, jsx_runtime_1.jsx)(Tag_1.Tag, { children: "None" }))] })) : 'DataTypes' in scope ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: ["Data Types", ' ', scope.DataTypes.length ? (scope.DataTypes.map((dataType) => ((0, jsx_runtime_1.jsx)(Tag_1.Tag, { className: "twa:mr-1", children: (0, AdaptableColumn_1.getColumnTypeFriendlyName)(dataType) }, dataType)))) : ((0, jsx_runtime_1.jsx)(Tag_1.Tag, { children: "None" }))] })) : null }), showRows && ((0, jsx_runtime_1.jsxs)(Flex_1.Box, { children: ["Rows", ' ', allKinds ? ((0, jsx_runtime_1.jsx)(Tag_1.Tag, { children: "All" })) : includedKinds.length === 0 ? ((0, jsx_runtime_1.jsx)(Tag_1.Tag, { children: "None" })) : (includedKinds.map((k) => ((0, jsx_runtime_1.jsx)(Tag_1.Tag, { className: "twa:mr-1", children: k }, k))))] }))] }));
58
+ return ((0, jsx_runtime_1.jsxs)(Flex_1.Box, { className: "twa:flex twa:flex-col twa:gap-3", children: [(0, jsx_runtime_1.jsx)(Flex_1.Box, { children: scopeApi.scopeIsAll(scope) ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: ["Columns ", (0, jsx_runtime_1.jsx)(Tag_1.Tag, { children: "All" })] })) : 'ColumnIds' in scope ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: ["Columns", ' ', columnsInScope.length ? (columnsInScope.map((column) => ((0, jsx_runtime_1.jsx)(Tag_1.ColumnTag, { className: "twa:mr-1", children: column.friendlyName }, column.columnId)))) : ((0, jsx_runtime_1.jsx)(Tag_1.Tag, { children: "None" }))] })) : 'DataTypes' in scope ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: ["Data Types", ' ', scope.DataTypes.length ? (scope.DataTypes.map((dataType) => ((0, jsx_runtime_1.jsx)(Tag_1.Tag, { className: "twa:mr-1", children: (0, AdaptableColumn_1.getColumnTypeFriendlyName)(dataType) }, dataType)))) : ((0, jsx_runtime_1.jsx)(Tag_1.Tag, { children: "None" }))] })) : null }), showRows && ((0, jsx_runtime_1.jsxs)(Flex_1.Box, { children: ["Rows", ' ', allKinds ? ((0, jsx_runtime_1.jsx)(Tag_1.Tag, { children: "All" })) : includedKinds.length === 0 ? ((0, jsx_runtime_1.jsx)(Tag_1.Tag, { children: "None" })) : (includedKinds.map((k) => ((0, jsx_runtime_1.jsx)(Tag_1.Tag, { className: "twa:mr-1", children: k }, k))))] }))] }));
47
59
  };
48
60
  const renderFormatColumnScopeSummary = (data) => {
49
61
  return (0, jsx_runtime_1.jsx)(FormatColumnScopeSummaryContent, { data: data });
50
62
  };
51
63
  exports.renderFormatColumnScopeSummary = renderFormatColumnScopeSummary;
64
+ const FormatColumnColumnsScopeSummary = ({ data, }) => {
65
+ const adaptable = (0, AdaptableContext_1.useAdaptable)();
66
+ const scopeApi = adaptable.api.columnScopeApi;
67
+ const scope = data.Scope;
68
+ const columnsInScope = scopeApi.getColumnsInScope(scope);
69
+ if (scopeApi.scopeIsAll(scope)) {
70
+ return (0, jsx_runtime_1.jsx)(CollapsibleWizardCard_1.CollapsibleWizardValueSummary, { value: (0, jsx_runtime_1.jsx)(Tag_1.Tag, { children: "All columns in the row" }) });
71
+ }
72
+ if ('ColumnIds' in scope) {
73
+ return ((0, jsx_runtime_1.jsx)(CollapsibleWizardCard_1.CollapsibleWizardValueSummary, { value: columnsInScope.length ? ((0, jsx_runtime_1.jsx)(Flex_1.Flex, { flexWrap: "wrap", className: "twa:gap-1", children: columnsInScope.map((column) => ((0, jsx_runtime_1.jsx)(Tag_1.ColumnTag, { children: column.friendlyName }, column.columnId))) })) : ((0, jsx_runtime_1.jsx)(Tag_1.Tag, { children: "None" })) }));
74
+ }
75
+ if ('DataTypes' in scope) {
76
+ return ((0, jsx_runtime_1.jsx)(CollapsibleWizardCard_1.CollapsibleWizardValueSummary, { value: scope.DataTypes.length ? ((0, jsx_runtime_1.jsx)(Flex_1.Flex, { flexWrap: "wrap", className: "twa:gap-1", children: scope.DataTypes.map((dataType) => ((0, jsx_runtime_1.jsx)(Tag_1.Tag, { children: (0, AdaptableColumn_1.getColumnTypeFriendlyName)(dataType) }, dataType))) })) : ((0, jsx_runtime_1.jsx)(Tag_1.Tag, { children: "None" })) }));
77
+ }
78
+ return null;
79
+ };
80
+ const FormatColumnRowsScopeSummary = ({ data, }) => {
81
+ const includedKinds = collectIncludedRowKinds(data);
82
+ const allKinds = includedKinds.length === 4;
83
+ return ((0, jsx_runtime_1.jsx)(CollapsibleWizardCard_1.CollapsibleWizardValueSummary, { value: allKinds ? ((0, jsx_runtime_1.jsx)(Tag_1.Tag, { children: "All" })) : includedKinds.length === 0 ? ((0, jsx_runtime_1.jsx)(Tag_1.Tag, { children: "None" })) : ((0, jsx_runtime_1.jsx)(Flex_1.Flex, { flexWrap: "wrap", className: "twa:gap-1", children: includedKinds.map((kind) => ((0, jsx_runtime_1.jsx)(Tag_1.Tag, { children: ROW_KIND_LABELS[kind] }, kind))) })) }));
84
+ };
85
+ const FormatColumnRowScopePanel = ({ data, onRowKindChange, }) => ((0, jsx_runtime_1.jsx)(Flex_1.Flex, { flexDirection: "column", className: "twa:items-start twa:px-1 twa:py-1", style: { rowGap: 'calc(var(--ab-base-space) * 2)' }, children: FORMAT_COLUMN_ROW_KINDS.map((kind) => ((0, jsx_runtime_1.jsx)(CheckBox_1.CheckBox, { "data-name": `include-${kind.toLowerCase()}-rows-checkbox`, checked: isRowKindIncluded(data, kind), onChange: (checked) => onRowKindChange(kind, checked), children: ROW_KIND_LABELS[kind] }, kind))) }));
52
86
  // ---------------------------------------------------------------------------
53
87
  // Section
54
88
  // ---------------------------------------------------------------------------
55
89
  const FormatColumnScopeWizardSection = (props) => {
56
90
  const { data, api } = (0, OnePageAdaptableWizard_1.useOnePageAdaptableWizardContext)();
91
+ const adaptable = (0, AdaptableContext_1.useAdaptable)();
92
+ const scopeApi = adaptable.api.columnScopeApi;
57
93
  const handleScopeChange = (Scope) => {
58
94
  const newData = { ...data, Scope };
59
95
  const wholeRow = api.columnScopeApi.scopeIsAll(Scope);
60
96
  if (newData.Rule?.Predicates?.length) {
61
97
  if (wholeRow) {
62
- // if scope is whole row, a predicate cannot be present, so we set the rule
63
- // to be a boolean expression
64
98
  delete newData.Rule.Predicates;
65
99
  newData.Rule.BooleanExpression = '';
66
100
  }
@@ -68,8 +102,6 @@ const FormatColumnScopeWizardSection = (props) => {
68
102
  const validPredicateIds = new Set(api.formatColumnApi.internalApi.getFormatColumnDefsForScope(Scope).map((def) => def.id));
69
103
  newData.Rule = {
70
104
  Predicates: newData.Rule.Predicates.filter((p) => validPredicateIds.has(p.PredicateId)).filter((predicate) => {
71
- // if there are more than 1 column, then we must eliminate the IN/NotIn predicates
72
- // TODO: this should NOT be required, but the ColumnValueSelector does NOT support creatable values right now
73
105
  if ((0, ColumnScope_1.isScopeColumnIds)(Scope) && Scope.ColumnIds.length > 1) {
74
106
  return predicate.PredicateId !== 'In' && predicate.PredicateId !== 'NotIn';
75
107
  }
@@ -90,9 +122,17 @@ const FormatColumnScopeWizardSection = (props) => {
90
122
  });
91
123
  };
92
124
  const showRowToggles = data.Target === 'cell';
93
- return ((0, jsx_runtime_1.jsxs)(Flex_1.Flex, { flexDirection: "column", style: { height: '100%' }, children: [(0, jsx_runtime_1.jsxs)(Flex_1.Flex, { flexDirection: "column", className: "twa:flex-1 twa:min-h-0", children: [(0, jsx_runtime_1.jsxs)(Flex_1.Flex, { flexDirection: "row", alignItems: "center", className: "twa:p-2 twa:gap-3 twa:border-b twa:mb-2 twa:border-b-foreground/20", children: [(0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:text-5 twa:font-medium", children: "Columns" }), (0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:text-xs twa:opacity-70", children: "Which Columns the Format Column will be applied to" })] }), (0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:flex-1 twa:min-h-0 twa:overflow-auto twa:p-2", children: (0, jsx_runtime_1.jsx)(NewScopeComponent_1.NewScopeComponent, { descriptions: {
94
- rowScope: 'Format all columns in the row',
95
- columnScope: 'Select columns to format',
96
- }, scope: data.Scope, updateScope: handleScopeChange }) })] }), showRowToggles && ((0, jsx_runtime_1.jsxs)(Flex_1.Box, { className: "twa:border-t twa:border-border twa:py-3 twa:shrink-0", children: [(0, jsx_runtime_1.jsxs)(Flex_1.Flex, { alignItems: "center", className: "twa:gap-3 twa:px-2 twa:pb-2 twa:mb-3 twa:flex-wrap twa:border-b twa:border-b-foreground/20", children: [(0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:text-5 twa:font-medium", children: "Rows" }), (0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:text-xs twa:opacity-70 twa:max-w-[520px]", children: "Which kinds of Rows the Format Column will be applied to" })] }), (0, jsx_runtime_1.jsx)(Flex_1.Flex, { flexDirection: "row", className: "twa:gap-6 twa:flex-wrap", children: [FORMAT_COLUMN_ROW_KINDS.slice(0, 2), FORMAT_COLUMN_ROW_KINDS.slice(2)].map((rowKindGroup, groupIndex) => ((0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:flex-1 twa:min-w-[220px]", children: (0, jsx_runtime_1.jsx)(FormLayout_1.default, { sizes: ['180px', '1fr'], children: rowKindGroup.map((kind) => ((0, jsx_runtime_1.jsx)(FormLayout_1.FormRow, { label: `${ROW_KIND_LABELS[kind]}:`, children: (0, jsx_runtime_1.jsx)(Flex_1.Flex, { alignItems: "center", className: "twa:ml-2", children: (0, jsx_runtime_1.jsx)(CheckBox_1.CheckBox, { "data-name": `include-${kind.toLowerCase()}-rows-checkbox`, className: "twa:mr-2", checked: isRowKindIncluded(data, kind), onChange: (checked) => handleRowKindChange(kind, checked) }) }) }, kind))) }) }, groupIndex))) })] }))] }));
125
+ const scope = data.Scope;
126
+ const columnsScopeConfigured = isFormatColumnColumnsScopeConfigured(scope, scopeApi);
127
+ const includedRowKinds = collectIncludedRowKinds(data);
128
+ const allRowKindsIncluded = includedRowKinds.length === 4;
129
+ const initialExpandedCardId = columnsScopeConfigured ? null : 'columns';
130
+ const { bindCard, hasExpandedCard, expandedFillsSpace } = (0, CollapsibleWizardCard_1.useWizardCardAccordion)(initialExpandedCardId, { fillExpandedCard: true });
131
+ const columnsCompactSummary = scopeApi.scopeIsAll(scope) ? ((0, jsx_runtime_1.jsx)(Tag_1.Tag, { children: "All columns" })) : 'ColumnIds' in scope ? ((0, CollapsibleWizardCard_1.renderCompactColumnTags)(scope.ColumnIds, (columnId) => adaptable.api.columnApi.getFriendlyNameForColumnId(columnId), { emptyLabel: 'No columns' })) : 'DataTypes' in scope ? ((0, jsx_runtime_1.jsx)(Flex_1.Flex, { alignItems: "center", className: "twa:gap-1 twa:min-w-0 twa:overflow-hidden", children: scope.DataTypes.length ? (scope.DataTypes.map((dataType) => ((0, jsx_runtime_1.jsx)(Tag_1.Tag, { className: "twa:shrink-0", children: (0, AdaptableColumn_1.getColumnTypeFriendlyName)(dataType) }, dataType)))) : ((0, jsx_runtime_1.jsx)(Tag_1.Tag, { children: "None" })) })) : null;
132
+ const rowsCompactSummary = allRowKindsIncluded ? ((0, jsx_runtime_1.jsx)(Tag_1.Tag, { children: "All" })) : includedRowKinds.length === 0 ? ((0, jsx_runtime_1.jsx)(Tag_1.Tag, { children: "None" })) : ((0, jsx_runtime_1.jsx)(Flex_1.Flex, { alignItems: "center", className: "twa:gap-1 twa:min-w-0 twa:overflow-hidden", children: includedRowKinds.map((kind) => ((0, jsx_runtime_1.jsx)(Tag_1.Tag, { className: "twa:shrink-0", children: kind }, kind))) }));
133
+ return ((0, jsx_runtime_1.jsxs)(Flex_1.Box, { className: (0, utils_1.cn)((0, CollapsibleWizardCard_1.getWizardAccordionSectionClassName)(hasExpandedCard, expandedFillsSpace), 'twa:p-2'), children: [(0, jsx_runtime_1.jsx)(CollapsibleWizardCard_1.CollapsibleWizardCard, { ...bindCard('columns', { fillAvailable: true }), surface: "panel", "data-name": "format-column-scope-columns", title: "Columns", help: "Which Columns the Format Column will be applied to", collapsedHelp: "Columns the Format Column applies to", compactSummary: columnsCompactSummary, summary: (0, jsx_runtime_1.jsx)(FormatColumnColumnsScopeSummary, { data: data }), className: "twa:overflow-hidden twa:flex twa:flex-col", bodyClassName: "twa:min-h-[200px] twa:max-h-[420px] twa:overflow-hidden twa:flex twa:flex-col twa:!pt-0 twa:!pb-0 twa:px-1", children: (0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:flex-1 twa:min-h-0 twa:overflow-auto twa:h-full", children: (0, jsx_runtime_1.jsx)(NewScopeComponent_1.NewScopeComponent, { descriptions: {
134
+ rowScope: 'Format all Columns in the Row',
135
+ columnScope: 'Select Columns to format',
136
+ }, scope: data.Scope, updateScope: handleScopeChange }) }) }), showRowToggles && ((0, jsx_runtime_1.jsx)(CollapsibleWizardCard_1.CollapsibleWizardCard, { ...bindCard('rows'), surface: "panel", "data-name": "format-column-scope-rows", title: "Rows", help: "Which kinds of Rows the Format Column will be applied to", collapsedHelp: "Row kinds the Format Column applies to", compactSummary: rowsCompactSummary, summary: (0, jsx_runtime_1.jsx)(FormatColumnRowsScopeSummary, { data: data }), children: (0, jsx_runtime_1.jsx)(FormatColumnRowScopePanel, { data: data, onRowKindChange: handleRowKindChange }) }))] }));
97
137
  };
98
138
  exports.FormatColumnScopeWizardSection = FormatColumnScopeWizardSection;
@@ -62,7 +62,7 @@ const FormatColumnSettingsWizardSection = (props) => {
62
62
  });
63
63
  };
64
64
  const behaviourSpellingVariant = api.internalApi.getCorrectEnglishVariant('Behaviour');
65
- return ((0, jsx_runtime_1.jsxs)(Flex_1.Flex, { flexDirection: "column", className: "twa:gap-3 twa:p-3", children: [(0, jsx_runtime_1.jsxs)(Card_1.Card, { shadow: false, children: [(0, jsx_runtime_1.jsxs)(Card_1.Card.Title, { children: [(0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:font-medium", children: "Name" }), (0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:text-xs twa:opacity-70 twa:font-normal twa:max-w-[520px]", children: "Provide a unique name for the Format Column" })] }), (0, jsx_runtime_1.jsx)(Card_1.Card.Body, { className: "twa:p-1", children: (0, jsx_runtime_1.jsx)(Input_1.default, { ref: nameInputRef, className: "twa:max-w-[300px] twa:w-full", "data-name": "format-column-name", onChange: onNameChange, value: data?.Name ?? '' }) })] }), (0, jsx_runtime_1.jsxs)(Card_1.Card, { shadow: false, children: [(0, jsx_runtime_1.jsxs)(Card_1.Card.Title, { children: [(0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:font-medium", children: "Target" }), (0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:text-xs twa:opacity-70 twa:font-normal twa:max-w-[700px]", children: "Choose whether Format Column applies to Column Cells or Column Header (latter doesn't support Conditions)" })] }), (0, jsx_runtime_1.jsx)(Card_1.Card.Body, { children: (0, jsx_runtime_1.jsxs)(Flex_1.Flex, { flexDirection: "column", children: [(0, jsx_runtime_1.jsx)(TypeRadio_1.TypeRadio, { "data-name": "target-column-cell", text: 'Column Cells', description: "", checked: currentTarget === 'cell', onClick: () => handleTargetChange('cell') }), (0, jsx_runtime_1.jsx)(TypeRadio_1.TypeRadio, { "data-name": "target-column-header", text: 'Column Header', description: "", checked: currentTarget === 'columnHeader', onClick: () => handleTargetChange('columnHeader') })] }) })] }), (0, jsx_runtime_1.jsxs)(Card_1.Card, { shadow: false, children: [(0, jsx_runtime_1.jsxs)(Card_1.Card.Title, { children: [(0, jsx_runtime_1.jsxs)(Flex_1.Box, { className: "twa:font-medium", children: ["Column Group ", behaviourSpellingVariant] }), (0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:text-xs twa:opacity-70 twa:font-normal twa:max-w-[520px]", children: "Choose when the Format Column is applied to the Column Group" })] }), (0, jsx_runtime_1.jsx)(Card_1.Card.Body, { children: (0, jsx_runtime_1.jsxs)(Radio_1.RadioGroup, { value: data.ColumnGroupScope || 'Both', name: "columnGroupScope", orientation: "horizontal", onRadioChange: (columnGroupScope) => {
65
+ return ((0, jsx_runtime_1.jsxs)(Flex_1.Flex, { flexDirection: "column", className: "twa:gap-3 twa:p-3", children: [(0, jsx_runtime_1.jsxs)(Card_1.Card, { shadow: false, children: [(0, jsx_runtime_1.jsxs)(Card_1.Card.Title, { children: [(0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:font-medium", children: "Name" }), (0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:text-xs twa:opacity-70 twa:font-normal twa:max-w-[520px]", children: "Provide a unique name for the Format Column" })] }), (0, jsx_runtime_1.jsx)(Card_1.Card.Body, { className: "twa:p-1", children: (0, jsx_runtime_1.jsx)(Input_1.default, { ref: nameInputRef, className: "twa:max-w-[300px] twa:w-full", "data-name": "format-column-name", onChange: onNameChange, value: data?.Name ?? '' }) })] }), (0, jsx_runtime_1.jsxs)(Card_1.Card, { shadow: false, children: [(0, jsx_runtime_1.jsxs)(Card_1.Card.Title, { children: [(0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:font-medium", children: "Target" }), (0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:text-xs twa:opacity-70 twa:font-normal twa:max-w-[700px]", children: "Choose whether Format Column applies to Column Cells or Column Header (latter doesn't support Conditions)" })] }), (0, jsx_runtime_1.jsx)(Card_1.Card.Body, { children: (0, jsx_runtime_1.jsxs)(Flex_1.Flex, { flexDirection: "column", children: [(0, jsx_runtime_1.jsx)(TypeRadio_1.TypeRadio, { "data-name": "target-column-cell", text: 'Column Cells', description: "", checked: currentTarget === 'cell', onClick: () => handleTargetChange('cell') }), (0, jsx_runtime_1.jsx)(TypeRadio_1.TypeRadio, { "data-name": "target-column-header", text: 'Column Header', description: "", checked: currentTarget === 'columnHeader', onClick: () => handleTargetChange('columnHeader') })] }) })] }), (0, jsx_runtime_1.jsxs)(Card_1.Card, { shadow: false, children: [(0, jsx_runtime_1.jsxs)(Card_1.Card.Title, { children: [(0, jsx_runtime_1.jsxs)(Flex_1.Box, { className: "twa:font-medium", children: ["Column Group ", behaviourSpellingVariant] }), (0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:text-xs twa:opacity-70 twa:font-normal twa:max-w-[520px]", children: "Choose when the Format Column is applied in a Column Group" })] }), (0, jsx_runtime_1.jsx)(Card_1.Card.Body, { children: (0, jsx_runtime_1.jsxs)(Radio_1.RadioGroup, { value: data.ColumnGroupScope || 'Both', name: "columnGroupScope", orientation: "horizontal", onRadioChange: (columnGroupScope) => {
66
66
  props.onChange({
67
67
  ...data,
68
68
  ColumnGroupScope: columnGroupScope,
@@ -6,8 +6,7 @@ type FormatColumnStyleWizardSectionProps = {
6
6
  onChange: (data: FormatColumn) => void;
7
7
  };
8
8
  export declare const hasFormatColumnStyle: (formatColumn: FormatColumn) => boolean;
9
- export declare const getFormatColumnStyleViewValues: (formatColumn: FormatColumn) => string[];
10
- export declare const renderFormatColumnStyleWizardSummary: (data: FormatColumn) => React.JSX.Element;
11
- export declare const renderFormatColumnStyleSummary: (data: FormatColumn, _api: AdaptableApi) => React.JSX.Element;
9
+ export declare const getFormatColumnStyleViewValues: (formatColumn: FormatColumn) => React.ReactNode[];
10
+ export declare const renderFormatColumnStyleSummary: (data: FormatColumn) => React.JSX.Element;
12
11
  export declare function FormatColumnStyleWizardSection(props: FormatColumnStyleWizardSectionProps): React.JSX.Element;
13
12
  export {};
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.renderFormatColumnStyleSummary = exports.renderFormatColumnStyleWizardSummary = exports.getFormatColumnStyleViewValues = exports.hasFormatColumnStyle = exports.isFormatColumnStyleValid = void 0;
3
+ exports.renderFormatColumnStyleSummary = exports.getFormatColumnStyleViewValues = exports.hasFormatColumnStyle = exports.isFormatColumnStyleValid = void 0;
4
4
  exports.FormatColumnStyleWizardSection = FormatColumnStyleWizardSection;
5
5
  const tslib_1 = require("tslib");
6
6
  const jsx_runtime_1 = require("react/jsx-runtime");
@@ -10,6 +10,7 @@ const UIHelper_1 = tslib_1.__importDefault(require("../../UIHelper"));
10
10
  const StringExtensions_1 = tslib_1.__importDefault(require("../../../Utilities/Extensions/StringExtensions"));
11
11
  const Flex_1 = require("../../../components/Flex");
12
12
  const Tag_1 = require("../../../components/Tag");
13
+ const SummaryColorTag_1 = require("../../Wizard/SummaryColorTag");
13
14
  const FormatColumnPreview_1 = require("./FormatColumnPreview");
14
15
  const isFormatColumnStyleValid = (data, api) => {
15
16
  if (data.Style &&
@@ -67,15 +68,10 @@ const hasFormatColumnStyle = (formatColumn) => {
67
68
  };
68
69
  exports.hasFormatColumnStyle = hasFormatColumnStyle;
69
70
  const getFormatColumnStyleViewValues = (formatColumn) => {
70
- return getFormatColumnStyleSummaryItems(formatColumn).map(({ label, value }) => `${label}: ${value}`);
71
+ return (0, SummaryColorTag_1.summaryStringsToTagContents)(getFormatColumnStyleSummaryItems(formatColumn).map(({ label, value }) => `${label}: ${value}`));
71
72
  };
72
73
  exports.getFormatColumnStyleViewValues = getFormatColumnStyleViewValues;
73
- const renderFormatColumnStyleWizardSummary = (data) => {
74
- const { api } = (0, OnePageAdaptableWizard_1.useOnePageAdaptableWizardContext)();
75
- return (0, exports.renderFormatColumnStyleSummary)(data, api);
76
- };
77
- exports.renderFormatColumnStyleWizardSummary = renderFormatColumnStyleWizardSummary;
78
- const renderFormatColumnStyleSummary = (data, _api) => {
74
+ const renderFormatColumnStyleSummary = (data) => {
79
75
  const hasStyle = data.Style != null && UIHelper_1.default.IsNotEmptyStyle(data.Style);
80
76
  if (!hasStyle) {
81
77
  return (0, jsx_runtime_1.jsx)(Tag_1.Tag, { children: "No Style" });
@@ -84,7 +80,7 @@ const renderFormatColumnStyleSummary = (data, _api) => {
84
80
  if (!items.length) {
85
81
  return (0, jsx_runtime_1.jsx)(Tag_1.Tag, { children: "No Style" });
86
82
  }
87
- return ((0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:grid twa:grid-cols-2 twa:gap-2", children: items.map(({ label, value }) => ((0, jsx_runtime_1.jsxs)(Flex_1.Box, { children: [label, " ", (0, jsx_runtime_1.jsx)(Tag_1.Tag, { children: value })] }, label))) }));
83
+ return ((0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:grid twa:grid-cols-2 twa:gap-2", children: items.map(({ label, value }) => ((0, jsx_runtime_1.jsx)(Flex_1.Box, { children: (0, SummaryColorTag_1.isSummaryInTagLabel)(label) ? ((0, jsx_runtime_1.jsx)(Tag_1.Tag, { children: (0, SummaryColorTag_1.renderSummaryLabelValueTagContent)(label, value) })) : ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [label, " ", (0, jsx_runtime_1.jsx)(Tag_1.Tag, { children: value })] })) }, label))) }));
88
84
  };
89
85
  exports.renderFormatColumnStyleSummary = renderFormatColumnStyleSummary;
90
86
  function FormatColumnStyleWizardSection(props) {
@@ -105,10 +105,7 @@ function FormatColumnWizard(props) {
105
105
  // DisplayFormat object so we don't persist an empty shell. Preset
106
106
  // strings are always meaningful and should never be removed here.
107
107
  const df = formatColumn?.DisplayFormat;
108
- if (df &&
109
- !(0, AdaptableFormatPresets_1.isAdaptableNumericFormatPreset)(df) &&
110
- df.Options &&
111
- (0, ObjectExtensions_1.isObjectEmpty)(df.Options)) {
108
+ if (df && !(0, AdaptableFormatPresets_1.isAdaptableNumericFormatPreset)(df) && df.Options && (0, ObjectExtensions_1.isObjectEmpty)(df.Options)) {
112
109
  delete formatColumn.DisplayFormat;
113
110
  }
114
111
  if (formatColumn.Style && (0, ObjectExtensions_1.isObjectEmpty)(formatColumn.Style)) {
@@ -145,9 +142,7 @@ function FormatColumnWizard(props) {
145
142
  details: 'Select which Columns and Rows will be formatted',
146
143
  isValid: NewScopeComponent_1.isScopeValid,
147
144
  renderSummary: FormatColumnScopeWizardSection_1.renderFormatColumnScopeSummary,
148
- render: () => {
149
- return ((0, jsx_runtime_1.jsx)(Flex_1.Flex, { flexDirection: "column", className: "twa:h-full", children: (0, jsx_runtime_1.jsx)(FormatColumnScopeWizardSection_1.FormatColumnScopeWizardSection, { onChange: setFormatColumn }) }));
150
- },
145
+ render: () => (0, jsx_runtime_1.jsx)(FormatColumnScopeWizardSection_1.FormatColumnScopeWizardSection, { onChange: setFormatColumn }),
151
146
  },
152
147
  {
153
148
  isValid: (abObject, api, context) => {
@@ -158,7 +153,7 @@ function FormatColumnWizard(props) {
158
153
  },
159
154
  title: 'Condition',
160
155
  details: 'Build a Rule when the Format Column should be applied',
161
- renderSummary: FormatColumnRuleWizardSection_1.renderFormatColumnConditionWizardSummary,
156
+ renderSummary: FormatColumnRuleWizardSection_1.renderFormatColumnConditionSummary,
162
157
  render: () => {
163
158
  return ((0, jsx_runtime_1.jsx)(FormatColumnRuleWizardSection_1.FormatColumnRuleWizardSection, { onChange: setFormatColumn, defaultPredicateId: constants_1.DEFAULT_PREDICATE_ID_FOR_FORMAT_COLUMN }));
164
159
  },
@@ -167,7 +162,7 @@ function FormatColumnWizard(props) {
167
162
  title: 'Style',
168
163
  details: 'Create a Style',
169
164
  isValid: FormatColumnStyleWizardSection_1.isFormatColumnStyleValid,
170
- renderSummary: FormatColumnStyleWizardSection_1.renderFormatColumnStyleWizardSummary,
165
+ renderSummary: FormatColumnStyleWizardSection_1.renderFormatColumnStyleSummary,
171
166
  render: () => {
172
167
  return ((0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:p-2", children: (0, jsx_runtime_1.jsx)(FormatColumnStyleWizardSection_1.FormatColumnStyleWizardSection, { onChange: setFormatColumn }) }));
173
168
  },
@@ -2,10 +2,9 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getFreeTextColumnSettingsTags = void 0;
4
4
  const getFreeTextColumnSettingsTags = (settings) => {
5
- const { DataType, Width, Filterable, Resizable, Groupable, Sortable, Pivotable, Aggregatable } = settings ?? {};
5
+ const { Width, Filterable, Resizable, Groupable, Sortable, Pivotable, Aggregatable, SuppressMenu, SuppressMovable, } = settings ?? {};
6
6
  const colTypes = settings?.ColumnTypes ? settings.ColumnTypes.join(', ') : '';
7
7
  return [
8
- DataType ? `DataType: ${DataType}` : null,
9
8
  Width ? `Width: ${Width}px` : null,
10
9
  Pivotable ? 'Pivotable' : null,
11
10
  Filterable ? 'Filterable' : null,
@@ -13,6 +12,8 @@ const getFreeTextColumnSettingsTags = (settings) => {
13
12
  Groupable ? 'Groupable' : null,
14
13
  Sortable ? 'Sortable' : null,
15
14
  Aggregatable ? 'Aggregatable' : null,
15
+ SuppressMenu ? 'Suppress Menu' : null,
16
+ SuppressMovable ? 'Suppress Movable' : null,
16
17
  colTypes ? `Column Types: ${colTypes}` : null,
17
18
  ].filter(Boolean);
18
19
  };
@@ -15,7 +15,6 @@ const SpecialColumnSettingsWizardStep_1 = require("../../SpecialColumnSettingsWi
15
15
  const Flex_1 = require("../../../components/Flex");
16
16
  const NewSelect_1 = require("../../../components/NewSelect");
17
17
  const Card_1 = require("../../../components/Card");
18
- const Tag_2 = require("../../../components/Tag/Tag");
19
18
  const getFreeTextColumnSettingsTags_1 = require("../Utilities/getFreeTextColumnSettingsTags");
20
19
  const OnePageAdaptableWizard_2 = require("../../Wizard/OnePageAdaptableWizard");
21
20
  const dataTypeOptions = [
@@ -26,7 +25,7 @@ const dataTypeOptions = [
26
25
  ];
27
26
  const renderFreeTextColumnSettingsSummary = (data) => {
28
27
  const propertyTags = (0, getFreeTextColumnSettingsTags_1.getFreeTextColumnSettingsTags)(data.FreeTextColumnSettings);
29
- return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsxs)(OnePageAdaptableWizard_2.SummaryText, { children: ["Data Type: ", (0, jsx_runtime_1.jsx)(Tag_1.Tag, { children: data.FreeTextColumnSettings.DataType || 'Not specified' })] }), data.DefaultValue !== undefined ? ((0, jsx_runtime_1.jsxs)(OnePageAdaptableWizard_2.SummaryText, { children: ["Default Value: ", (0, jsx_runtime_1.jsx)(Tag_1.Tag, { children: String(data.DefaultValue) })] })) : null, data.TextEditor !== undefined ? ((0, jsx_runtime_1.jsxs)(OnePageAdaptableWizard_2.SummaryText, { children: ["Editor Type: ", (0, jsx_runtime_1.jsx)(Tag_1.Tag, { children: data.TextEditor })] })) : null, propertyTags.length ? ((0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:mt-2", children: (0, jsx_runtime_1.jsx)(Tag_2.TagList, { tags: propertyTags }) })) : null] }));
28
+ return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsxs)(OnePageAdaptableWizard_2.SummaryText, { children: ["Data Type: ", (0, jsx_runtime_1.jsx)(Tag_1.Tag, { children: data.FreeTextColumnSettings.DataType || 'Not specified' })] }), data.DefaultValue !== undefined ? ((0, jsx_runtime_1.jsxs)(OnePageAdaptableWizard_2.SummaryText, { children: ["Default Value: ", (0, jsx_runtime_1.jsx)(Tag_1.Tag, { children: String(data.DefaultValue) })] })) : null, data.TextEditor !== undefined ? ((0, jsx_runtime_1.jsxs)(OnePageAdaptableWizard_2.SummaryText, { children: ["Editor Type: ", (0, jsx_runtime_1.jsx)(Tag_1.Tag, { children: data.TextEditor })] })) : null, propertyTags.length ? ((0, jsx_runtime_1.jsxs)(OnePageAdaptableWizard_2.SummaryText, { children: ["Properties:", ' ', propertyTags.map((tag, index) => ((0, jsx_runtime_1.jsx)(Tag_1.Tag, { className: index > 0 ? 'twa:ml-1' : undefined, children: tag }, String(tag))))] })) : null] }));
30
29
  };
31
30
  exports.renderFreeTextColumnSettingsSummary = renderFreeTextColumnSettingsSummary;
32
31
  const isValidFreeTextColumnSettings = (data) => {
@@ -3,7 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.GridFilterPopupUI = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const jsx_runtime_1 = require("react/jsx-runtime");
6
- const DropdownButton_1 = tslib_1.__importDefault(require("../../../components/DropdownButton"));
6
+ const DropdownButton_1 = require("../../../components/DropdownButton");
7
+ const icons_1 = require("../../../components/icons");
7
8
  const FieldWrap_1 = tslib_1.__importDefault(require("../../../components/FieldWrap"));
8
9
  const Input_1 = tslib_1.__importDefault(require("../../../components/Input"));
9
10
  const Panel_1 = tslib_1.__importDefault(require("../../../components/Panel"));
@@ -27,6 +28,6 @@ const GridFilterPopupUI = (props) => {
27
28
  onRunQuery();
28
29
  }
29
30
  };
30
- return ((0, jsx_runtime_1.jsx)(PopupPanel_1.PopupPanel, { className: "ab-GridFilter", headerText: headerText, glyphicon: glyphicon, infoLink: infoLink, infoLinkDisabled: infoLinkDisabled, children: (0, jsx_runtime_1.jsx)(Panel_1.default, { className: "twa:flex-1 twa:border-none twa:shadow-md twa:overflow-hidden", children: (0, jsx_runtime_1.jsx)(Panel_1.default.FlexBody, { children: (0, jsx_runtime_1.jsxs)(Flex_1.Box, { className: "twa:grid twa:gap-3 twa:grid-cols-[auto_1fr] twa:items-center", children: ["Expression:", (0, jsx_runtime_1.jsxs)(FieldWrap_1.default, { className: "twa:mr-1 twa:w-full", children: [(0, jsx_runtime_1.jsx)(ButtonExpand_1.ButtonExpand, { disabled: disabled, variant: "text", tone: "neutral", onClick: onExpand, tooltip: "Edit the Expression in UI", className: "twa:ml-1" }), (0, jsx_runtime_1.jsx)(Input_1.default, { onKeyDown: handleKeyDown, disabled: disabled, type: "text", "data-name": "grid-filter-input", placeholder: "Grid Filter", spellCheck: false, value: expression, onChange: (e) => onExpressionChange(e.target.value), className: "twa:font-mono twa:text-2" }), isExpressionValid && ((0, jsx_runtime_1.jsx)(ButtonPlay_1.ButtonPlay, { onClick: () => onRunQuery(), tooltip: '', accessLevel: gridFilterAccessLevel, variant: "text", tone: "accent", disabled: disabled || expression === '' || expression === currentGridFilterExpression, className: "twa:mr-1" })), currentGridFilterExpression && !isExpressionValid && ((0, jsx_runtime_1.jsx)(ButtonInvalid_1.ButtonInvalid, { variant: "text", tone: "neutral", tooltip: "Invalid Grid Filter", className: "twa:mr-1" })), ' ', StringExtensions_1.default.IsNotNullOrEmpty(expression) && ((0, jsx_runtime_1.jsx)(ButtonClear_1.ButtonClear, { onClick: () => onClearQuery(), tooltip: "Clear Grid Filter", accessLevel: gridFilterAccessLevel }))] }), (0, jsx_runtime_1.jsxs)(Flex_1.Flex, { justifyContent: "space-around", className: "twa:col-start-2", children: [(0, jsx_runtime_1.jsx)(ButtonSave_1.ButtonSave, { onClick: () => onSaveQuery(), tooltip: "Save as Named Query", accessLevel: namedQueryAccessLevel, disabled: disabled || !isExpressionValid || isExpressionNamedQuery || expression === '', variant: "text", tone: "neutral", className: "twa:mr-1", children: "Save" }), isSuspended ? ((0, jsx_runtime_1.jsx)(ButtonUnsuspend_1.ButtonUnsuspend, { onClick: () => onUnsuspend(), tooltip: "Unsuspend Grid Filter", accessLevel: gridFilterAccessLevel, disabled: disabled || !isExpressionValid, variant: "text", tone: "neutral", className: "twa:mr-1", children: "Resume" })) : ((0, jsx_runtime_1.jsx)(ButtonPause_1.ButtonPause, { onClick: () => onSuspend(), tooltip: "Suspend Grid Filter", accessLevel: gridFilterAccessLevel, disabled: disabled || !isExpressionValid, variant: "text", tone: "neutral", className: "twa:mr-1", children: "Suspend" })), (0, jsx_runtime_1.jsx)(DropdownButton_1.default, { disabled: disabled, variant: "text", items: availableColumns, className: "twa:mr-1", tooltip: "Pick Columns", icon: "list", iconPosition: "start", children: "Columns" }), (0, jsx_runtime_1.jsx)(NamedQuerySelector_1.NamedQuerySelector, { disabled: disabled, namedQueries: namedQueries, cachedQueries: cachedQueries, currentQuery: currentGridFilterExpression, onSelect: (query) => onSelectNamedQuery(query), setGridFilterExpression: (query) => onSetGridFilterExpression(query), children: "Named Queries" })] })] }) }) }) }));
31
+ return ((0, jsx_runtime_1.jsx)(PopupPanel_1.PopupPanel, { className: "ab-GridFilter", headerText: headerText, glyphicon: glyphicon, infoLink: infoLink, infoLinkDisabled: infoLinkDisabled, children: (0, jsx_runtime_1.jsx)(Panel_1.default, { className: "twa:flex-1 twa:border-none twa:shadow-md twa:overflow-hidden", children: (0, jsx_runtime_1.jsx)(Panel_1.default.FlexBody, { children: (0, jsx_runtime_1.jsxs)(Flex_1.Box, { className: "twa:grid twa:gap-3 twa:grid-cols-[auto_1fr] twa:items-center", children: ["Expression:", (0, jsx_runtime_1.jsxs)(FieldWrap_1.default, { className: "twa:mr-1 twa:w-full", children: [(0, jsx_runtime_1.jsx)(ButtonExpand_1.ButtonExpand, { disabled: disabled, variant: "text", tone: "neutral", onClick: onExpand, tooltip: "Edit the Expression in UI", className: "twa:ml-1" }), (0, jsx_runtime_1.jsx)(Input_1.default, { onKeyDown: handleKeyDown, disabled: disabled, type: "text", "data-name": "grid-filter-input", placeholder: "Grid Filter", spellCheck: false, value: expression, onChange: (e) => onExpressionChange(e.target.value), className: "twa:font-mono twa:text-2" }), isExpressionValid && ((0, jsx_runtime_1.jsx)(ButtonPlay_1.ButtonPlay, { onClick: () => onRunQuery(), tooltip: '', accessLevel: gridFilterAccessLevel, variant: "text", tone: "accent", disabled: disabled || expression === '' || expression === currentGridFilterExpression, className: "twa:mr-1" })), currentGridFilterExpression && !isExpressionValid && ((0, jsx_runtime_1.jsx)(ButtonInvalid_1.ButtonInvalid, { variant: "text", tone: "neutral", tooltip: "Invalid Grid Filter", className: "twa:mr-1" })), ' ', StringExtensions_1.default.IsNotNullOrEmpty(expression) && ((0, jsx_runtime_1.jsx)(ButtonClear_1.ButtonClear, { onClick: () => onClearQuery(), tooltip: "Clear Grid Filter", accessLevel: gridFilterAccessLevel }))] }), (0, jsx_runtime_1.jsxs)(Flex_1.Flex, { justifyContent: "space-around", className: "twa:col-start-2", children: [(0, jsx_runtime_1.jsx)(ButtonSave_1.ButtonSave, { onClick: () => onSaveQuery(), tooltip: "Save as Named Query", accessLevel: namedQueryAccessLevel, disabled: disabled || !isExpressionValid || isExpressionNamedQuery || expression === '', variant: "text", tone: "neutral", className: "twa:mr-1", children: "Save" }), isSuspended ? ((0, jsx_runtime_1.jsx)(ButtonUnsuspend_1.ButtonUnsuspend, { onClick: () => onUnsuspend(), tooltip: "Unsuspend Grid Filter", accessLevel: gridFilterAccessLevel, disabled: disabled || !isExpressionValid, variant: "text", tone: "neutral", className: "twa:mr-1", children: "Resume" })) : ((0, jsx_runtime_1.jsx)(ButtonPause_1.ButtonPause, { onClick: () => onSuspend(), tooltip: "Suspend Grid Filter", accessLevel: gridFilterAccessLevel, disabled: disabled || !isExpressionValid, variant: "text", tone: "neutral", className: "twa:mr-1", children: "Suspend" })), (0, jsx_runtime_1.jsxs)(DropdownButton_1.NewDropdownButton, { disabled: disabled, variant: "text", items: availableColumns, className: "twa:mr-1", tooltip: "Pick Columns", children: [(0, jsx_runtime_1.jsx)(icons_1.Icon, { name: "list" }), "Columns"] }), (0, jsx_runtime_1.jsx)(NamedQuerySelector_1.NamedQuerySelector, { disabled: disabled, namedQueries: namedQueries, cachedQueries: cachedQueries, currentQuery: currentGridFilterExpression, onSelect: (query) => onSelectNamedQuery(query), setGridFilterExpression: (query) => onSetGridFilterExpression(query), children: "Named Queries" })] })] }) }) }) }));
31
32
  };
32
33
  exports.GridFilterPopupUI = GridFilterPopupUI;
@@ -3,7 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.GridFilterPanelControl = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const jsx_runtime_1 = require("react/jsx-runtime");
6
- const clsx_1 = tslib_1.__importDefault(require("clsx"));
7
6
  const StringExtensions_1 = tslib_1.__importDefault(require("../../Utilities/Extensions/StringExtensions"));
8
7
  const FieldWrap_1 = tslib_1.__importDefault(require("../../components/FieldWrap"));
9
8
  const ButtonClear_1 = require("../Components/Buttons/ButtonClear");
@@ -17,6 +16,7 @@ const useGridFilterExpressionEditor_1 = require("./useGridFilterExpressionEditor
17
16
  const Flex_1 = require("../../components/Flex");
18
17
  const Tooltip_1 = tslib_1.__importDefault(require("../../components/Tooltip"));
19
18
  const GeneralConstants_1 = require("../../Utilities/Constants/GeneralConstants");
19
+ const utils_1 = require("../../lib/utils");
20
20
  const QueryViewPanelComponent = (props) => {
21
21
  const { cachedQueries, expression, isExpressionNamedQuery, isExpressionValid, isSuspended, gridFilter, isAdaptableReady, namedQueries, runQuery, onExpand, clearQuery, namedQueryModuleAccessLevel, saveQuery, suspendGridFilter, unSuspendGridFilter, setGridFilterExpression, gridFilterAccessLevel, isReadOnly, } = (0, useGridFilterExpressionEditor_1.useGridFilterExpressionEditor)();
22
22
  if (!isAdaptableReady) {
@@ -28,10 +28,10 @@ const QueryViewPanelComponent = (props) => {
28
28
  const renderExpressionLabel = () => {
29
29
  const baseClasses = 'twa:font-mono twa:text-s twa:py-2 twa:px-2 twa:overflow-hidden twa:text-ellipsis twa:whitespace-nowrap twa:bg-background twa:text-foreground twa:rounded twa:cursor-pointer twa:leading-4 twa:flex twa:items-center';
30
30
  const placeholderClasses = 'twa:text-gray-400 twa:italic';
31
- const labelClassName = (0, clsx_1.default)(baseClasses, {
31
+ const labelClassName = (0, utils_1.cn)(baseClasses, {
32
32
  [placeholderClasses]: !expression,
33
33
  });
34
- const expressionLabel = ((0, jsx_runtime_1.jsx)(Tooltip_1.default, { label: expression || 'Click to edit Grid Filter', children: (0, jsx_runtime_1.jsx)(Flex_1.Box, { className: (0, clsx_1.default)('twa:flex-1 twa:h-full twa:min-w-0', labelClassName), "data-name": "grid-filter-input", onClick: onExpand, children: expression || 'Grid Filter...' }) }));
34
+ const expressionLabel = ((0, jsx_runtime_1.jsx)(Tooltip_1.default, { label: expression || 'Click to edit Grid Filter', children: (0, jsx_runtime_1.jsx)(Flex_1.Box, { className: (0, utils_1.cn)('twa:flex-1 twa:h-full twa:min-w-0', labelClassName), "data-name": "grid-filter-input", onClick: onExpand, children: expression || 'Grid Filter...' }) }));
35
35
  return ((0, jsx_runtime_1.jsxs)(FieldWrap_1.default, { className: "twa:flex-1 twa:min-w-0 twa:min-h-input twa:overflow-visible", children: [buttonExpand, expressionLabel, gridFilter && !isExpressionValid && ((0, jsx_runtime_1.jsx)(ButtonInvalid_1.ButtonInvalid, { variant: "text", tone: "neutral", tooltip: "Invalid Grid Filter" }))] }));
36
36
  };
37
37
  const hasExpression = StringExtensions_1.default.IsNotNullOrEmpty(expression);
@@ -46,9 +46,9 @@ const QueryViewPanelComponent = (props) => {
46
46
  return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [clearButton, isSuspended ? unSuspendButton : suspendButton, saveButton, namedQuerySelector] }));
47
47
  };
48
48
  const isToolbar = props.viewType === 'Toolbar';
49
- return ((0, jsx_runtime_1.jsxs)(Flex_1.Flex, { flexDirection: isToolbar ? 'row' : 'column', className: (0, clsx_1.default)(`ab-${elementType}__Query__wrap`, {
49
+ return ((0, jsx_runtime_1.jsxs)(Flex_1.Flex, { flexDirection: isToolbar ? 'row' : 'column', className: (0, utils_1.cn)(`ab-${elementType}__Query__wrap`, {
50
50
  'twa:w-[500px]': isToolbar,
51
- }), children: [(0, jsx_runtime_1.jsx)(Flex_1.Flex, { className: (0, clsx_1.default)({ 'twa:flex-1 twa:min-w-0': isToolbar }), children: renderExpressionLabel() }), (0, jsx_runtime_1.jsx)(Flex_1.Flex, { className: (0, clsx_1.default)('twa:flex-shrink-0', {
51
+ }), children: [(0, jsx_runtime_1.jsx)(Flex_1.Flex, { className: (0, utils_1.cn)({ 'twa:flex-1 twa:min-w-0': isToolbar }), children: renderExpressionLabel() }), (0, jsx_runtime_1.jsx)(Flex_1.Flex, { className: (0, utils_1.cn)('twa:flex-shrink-0', {
52
52
  'twa:pl-1': isToolbar,
53
53
  'twa:pt-1': !isToolbar,
54
54
  }), children: renderButtons() })] }));
@@ -1,14 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.AdaptableObjectsSummary = void 0;
4
- const tslib_1 = require("tslib");
5
4
  const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const utils_1 = require("../../../lib/utils");
6
6
  const Flex_1 = require("../../../components/Flex");
7
7
  const AdaptableContext_1 = require("../../AdaptableContext");
8
8
  const AdaptableObjectList_1 = require("../../Components/AdaptableObjectList");
9
9
  const useRerender_1 = require("../../../components/utils/useRerender");
10
10
  const react_1 = require("react");
11
- const clsx_1 = tslib_1.__importDefault(require("clsx"));
12
11
  const AdaptableObjectsSummary = ({ className, }) => {
13
12
  const adaptable = (0, AdaptableContext_1.useAdaptable)();
14
13
  const rerender = (0, useRerender_1.useRerender)();
@@ -17,7 +16,7 @@ const AdaptableObjectsSummary = ({ className, }) => {
17
16
  }, [adaptable]);
18
17
  const modules = adaptable.ModuleService.getModuleCollection();
19
18
  const baseClassName = 'ab-AdaptableObjectsSummary';
20
- return ((0, jsx_runtime_1.jsx)(Flex_1.Box, { className: (0, clsx_1.default)(baseClassName, className), children: [...modules].map(([moduleName, module]) => {
19
+ return ((0, jsx_runtime_1.jsx)(Flex_1.Box, { className: (0, utils_1.cn)(baseClassName, className), children: [...modules].map(([moduleName, module]) => {
21
20
  if (!module.isModuleVisible()) {
22
21
  return null;
23
22
  }
@@ -12,7 +12,7 @@ const Tabs_1 = require("../../../components/Tabs");
12
12
  const PopupPanel_1 = require("../../Components/Popups/AdaptablePopup/PopupPanel");
13
13
  const AdaptableObjectsSummary_1 = require("./AdaptableObjectsSummary");
14
14
  const DefaultAdaptableOptions_1 = require("../../../AdaptableOptions/DefaultAdaptableOptions");
15
- const clsx_1 = tslib_1.__importDefault(require("clsx"));
15
+ const utils_1 = require("../../../lib/utils");
16
16
  const adaptableVersion = EnvVars_1.ADAPTABLE_VERSION;
17
17
  const agGridVersion = AgGridModulesAdapter_1.AG_GRID_VERSION;
18
18
  const GridInfoPopup = (props) => {
@@ -238,7 +238,7 @@ const GridInfoPopup = (props) => {
238
238
  const showState = enabledTabs.includes('Grid State');
239
239
  const showOptions = enabledTabs.includes('Grid Options');
240
240
  const baseClassName = 'ab-GridInfo';
241
- return ((0, jsx_runtime_1.jsx)(PopupPanel_1.PopupPanel, { className: (0, clsx_1.default)(baseClassName), headerText: 'Grid Info', glyphicon: 'info', scrollable: false, children: (0, jsx_runtime_1.jsx)(Panel_1.default, { className: "twa:flex-1 twa:border-none twa:shadow-md twa:overflow-hidden", children: (0, jsx_runtime_1.jsx)(Panel_1.default.FlexBody, { children: (0, jsx_runtime_1.jsxs)(Tabs_1.Tabs, { className: "twa:flex-1 twa:min-h-0", children: [showSummary ? (0, jsx_runtime_1.jsx)(Tabs_1.Tabs.Tab, { children: "Grid Summary" }) : null, showState ? (0, jsx_runtime_1.jsx)(Tabs_1.Tabs.Tab, { children: "Grid State" }) : null, showOptions ? (0, jsx_runtime_1.jsx)(Tabs_1.Tabs.Tab, { children: "Grid Options" }) : null, showSummary ? ((0, jsx_runtime_1.jsx)(Tabs_1.Tabs.Content, { children: (0, jsx_runtime_1.jsx)(InfiniteTable_1.DataSource, { data: keyValuePairs, primaryKey: "Key", children: (0, jsx_runtime_1.jsx)(InfiniteTable_1.InfiniteTableGrid, { domProps: domProps, columns: columnsMap }) }) })) : null, showState ? ((0, jsx_runtime_1.jsx)(Tabs_1.Tabs.Content, { children: (0, jsx_runtime_1.jsx)(AdaptableObjectsSummary_1.AdaptableObjectsSummary, { className: "twa:min-h-0 twa:overflow-auto twa:p-2" }) })) : null, showOptions ? ((0, jsx_runtime_1.jsx)(Tabs_1.Tabs.Content, { children: (0, jsx_runtime_1.jsx)("div", { className: "twa:min-h-0 twa:overflow-auto twa:p-2 twa:flex twa:flex-col twa:gap-4", children: gridOptionsSections.map((section) => ((0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("h4", { className: "twa:font-semibold twa:mb-1", children: section.title }), (0, jsx_runtime_1.jsx)(InfiniteTable_1.DataSource, { data: section.rows, primaryKey: "Key", children: (0, jsx_runtime_1.jsx)(InfiniteTable_1.InfiniteTableGrid, { domProps: {
241
+ return ((0, jsx_runtime_1.jsx)(PopupPanel_1.PopupPanel, { className: (0, utils_1.cn)(baseClassName), headerText: 'Grid Info', glyphicon: 'info', scrollable: false, children: (0, jsx_runtime_1.jsx)(Panel_1.default, { className: "twa:flex-1 twa:border-none twa:shadow-md twa:overflow-hidden", children: (0, jsx_runtime_1.jsx)(Panel_1.default.FlexBody, { children: (0, jsx_runtime_1.jsxs)(Tabs_1.Tabs, { className: "twa:flex-1 twa:min-h-0", children: [showSummary ? (0, jsx_runtime_1.jsx)(Tabs_1.Tabs.Tab, { children: "Grid Summary" }) : null, showState ? (0, jsx_runtime_1.jsx)(Tabs_1.Tabs.Tab, { children: "Grid State" }) : null, showOptions ? (0, jsx_runtime_1.jsx)(Tabs_1.Tabs.Tab, { children: "Grid Options" }) : null, showSummary ? ((0, jsx_runtime_1.jsx)(Tabs_1.Tabs.Content, { children: (0, jsx_runtime_1.jsx)(InfiniteTable_1.DataSource, { data: keyValuePairs, primaryKey: "Key", children: (0, jsx_runtime_1.jsx)(InfiniteTable_1.InfiniteTableGrid, { domProps: domProps, columns: columnsMap }) }) })) : null, showState ? ((0, jsx_runtime_1.jsx)(Tabs_1.Tabs.Content, { children: (0, jsx_runtime_1.jsx)(AdaptableObjectsSummary_1.AdaptableObjectsSummary, { className: "twa:min-h-0 twa:overflow-auto twa:p-2" }) })) : null, showOptions ? ((0, jsx_runtime_1.jsx)(Tabs_1.Tabs.Content, { children: (0, jsx_runtime_1.jsx)("div", { className: "twa:min-h-0 twa:overflow-auto twa:p-2 twa:flex twa:flex-col twa:gap-4", children: gridOptionsSections.map((section) => ((0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("h4", { className: "twa:font-semibold twa:mb-1", children: section.title }), (0, jsx_runtime_1.jsx)(InfiniteTable_1.DataSource, { data: section.rows, primaryKey: "Key", children: (0, jsx_runtime_1.jsx)(InfiniteTable_1.InfiniteTableGrid, { domProps: {
242
242
  style: { height: sectionHeight(section.rows), width: '100%' },
243
243
  }, rowHeight: (rowInfo) => calculateRowHeight(rowInfo.data), columns: optionsColumnsMap }) })] }, section.title))) }) })) : null] }) }) }) }));
244
244
  };
@@ -16,7 +16,7 @@ const ButtonDelete_1 = require("../Components/Buttons/ButtonDelete");
16
16
  const ButtonEdit_1 = require("../Components/Buttons/ButtonEdit");
17
17
  const GeneralConstants_1 = require("../../Utilities/Constants/GeneralConstants");
18
18
  const isPivotLayout_1 = require("../../Utilities/isPivotLayout");
19
- const NewDropdownButton_1 = require("../../components/NewDropdownButton");
19
+ const DropdownButton_1 = require("../../components/DropdownButton");
20
20
  const icons_1 = require("../../components/icons");
21
21
  const Flex_1 = require("../../components/Flex");
22
22
  const NewSelect_1 = require("../../components/NewSelect");
@@ -63,7 +63,7 @@ const LayoutViewPanelComponent = (props) => {
63
63
  },
64
64
  ] })) : ((0, jsx_runtime_1.jsx)(NewSelect_1.SingleSelect, { ...layoutSelectCommonProps, items: toLayoutSelectItems(Layouts) })) }), (0, jsx_runtime_1.jsxs)(Flex_1.Flex, { flexDirection: "row", className: (0, join_1.default)(accessLevel === GeneralConstants.ACCESS_LEVEL_READ_ONLY
65
65
  ? GeneralConstants.READ_ONLY_STYLE
66
- : '', `ab-${elementType}__Layout__wrap`), children: [(0, jsx_runtime_1.jsx)(ButtonEdit_1.ButtonEdit, { disabled: isErrorLayout, onClick: () => api.layoutApi.showLayoutEditor(layoutEntity.Name), tooltip: GeneralConstants_1.LAYOUT_EDIT_TOOLTIP, className: `ab-${elementType}__Layout__edit`, accessLevel: entityAccessLevel }), (0, jsx_runtime_1.jsx)(ButtonClone_1.ButtonClone, { disabled: isErrorLayout, onClick: () => api.layoutApi.showLayoutEditor(layoutEntity.Name, (0, isPivotLayout_1.isPivotLayout)(layoutEntity) ? 'pivot' : 'table', 'Clone'), tooltip: GeneralConstants_1.LAYOUT_CLONE_TOOLTIP, className: `ab-${elementType}__Layout__clone`, tone: "neutral", variant: "text", children: null, accessLevel: cloneAccessLevel }), (0, jsx_runtime_1.jsx)(NewDropdownButton_1.NewDropdownButton, { variant: "text", tooltip: GeneralConstants_1.LAYOUT_NEW_TABLE_OR_PIVOT_TOOLTIP, "data-name": "new", items: [
66
+ : '', `ab-${elementType}__Layout__wrap`), children: [(0, jsx_runtime_1.jsx)(ButtonEdit_1.ButtonEdit, { disabled: isErrorLayout, onClick: () => api.layoutApi.showLayoutEditor(layoutEntity.Name), tooltip: GeneralConstants_1.LAYOUT_EDIT_TOOLTIP, className: `ab-${elementType}__Layout__edit`, accessLevel: entityAccessLevel }), (0, jsx_runtime_1.jsx)(ButtonClone_1.ButtonClone, { disabled: isErrorLayout, onClick: () => api.layoutApi.showLayoutEditor(layoutEntity.Name, (0, isPivotLayout_1.isPivotLayout)(layoutEntity) ? 'pivot' : 'table', 'Clone'), tooltip: GeneralConstants_1.LAYOUT_CLONE_TOOLTIP, className: `ab-${elementType}__Layout__clone`, tone: "neutral", variant: "text", children: null, accessLevel: cloneAccessLevel }), (0, jsx_runtime_1.jsx)(DropdownButton_1.NewDropdownButton, { variant: "text", tooltip: GeneralConstants_1.LAYOUT_NEW_TABLE_OR_PIVOT_TOOLTIP, "data-name": "new", items: [
67
67
  {
68
68
  dataName: 'table',
69
69
  label: (0, jsx_runtime_1.jsx)("span", { style: { whiteSpace: 'nowrap' }, children: "Table Layout" }),
@@ -14,7 +14,6 @@ const ColumnsSection_1 = require("./sections/ColumnsSection");
14
14
  const PivotColumnsSection_1 = require("./sections/PivotColumnsSection");
15
15
  const RowGroupingSection_1 = require("./sections/RowGroupingSection");
16
16
  const AggregationsSection_1 = require("./sections/AggregationsSection");
17
- const SortSection_1 = require("./sections/SortSection");
18
17
  const FilterSection_1 = require("./sections/FilterSection");
19
18
  const GridFilterSection_1 = require("./sections/GridFilterSection");
20
19
  const RowSummarySection_1 = require("./sections/RowSummarySection");
@@ -28,11 +27,22 @@ const getLayoutWizardTitle = (layout, moduleFriendlyName) => {
28
27
  const layoutName = layout.Name?.trim();
29
28
  return layoutName ? `${moduleFriendlyName} (${layoutName})` : moduleFriendlyName;
30
29
  };
30
+ const getLayoutWizardMode = (popupParams, initialLayout) => {
31
+ const action = popupParams?.action;
32
+ if (action === 'Edit') {
33
+ return 'edit';
34
+ }
35
+ if (action === 'New' || action === 'Clone') {
36
+ return 'create';
37
+ }
38
+ return initialLayout ? 'edit' : 'create';
39
+ };
31
40
  const LayoutWizard = (props) => {
32
41
  const dispatch = (0, react_redux_1.useDispatch)();
33
42
  const adaptable = (0, AdaptableContext_1.useAdaptable)();
34
43
  const allLayouts = adaptable.api.layoutApi.getLayouts();
35
44
  const initialLayout = props.data ?? props.popupParams?.value;
45
+ const layoutWizardMode = getLayoutWizardMode(props.popupParams, initialLayout);
36
46
  const [layout, setLayout] = React.useState(() => {
37
47
  let preparedLayout = null;
38
48
  if (initialLayout) {
@@ -102,36 +112,29 @@ const LayoutWizard = (props) => {
102
112
  title: 'Pivot Row Groups',
103
113
  isVisible: () => layoutSupportedFeatures.PivotColumns && layoutSupportedFeatures.RowGroupedColumns,
104
114
  details: 'Configure Pivot Row Grouping',
105
- renderSummary: () => (0, jsx_runtime_1.jsx)(PivotRowGroupingSection_1.PivotRowGroupingSectionSummary, {}),
106
- render: () => ((0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:p-2 twa:h-full", children: (0, jsx_runtime_1.jsx)(PivotRowGroupingSection_1.PivotRowGroupingSection, { onChange: (newLayout) => {
115
+ renderSummary: (data) => (0, jsx_runtime_1.jsx)(PivotRowGroupingSection_1.PivotRowGroupingSectionSummary, { layout: data }),
116
+ render: () => ((0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:p-2 twa:h-full", children: (0, jsx_runtime_1.jsx)(PivotRowGroupingSection_1.PivotRowGroupingSection, { layoutWizardMode: layoutWizardMode, onChange: (newLayout) => {
107
117
  setLayout(newLayout);
108
118
  } }) })),
109
119
  },
110
120
  {
111
121
  title: 'Pivot Columns',
112
- details: 'Select Pivot Columns',
122
+ details: 'Select Pivot Columns and Column Sorting',
113
123
  isVisible: () => layoutSupportedFeatures.PivotColumns,
114
124
  renderSummary: () => (0, jsx_runtime_1.jsx)(PivotColumnsSection_1.PivotColumnsSectionSummary, {}),
115
- render: () => ((0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:p-2 twa:h-full", children: (0, jsx_runtime_1.jsx)(PivotColumnsSection_1.PivotColumnsSection, { onChange: (newLayout) => setLayout(newLayout) }) })),
125
+ render: () => ((0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:p-2 twa:h-full", children: (0, jsx_runtime_1.jsx)(PivotColumnsSection_1.PivotColumnsSection, { layoutWizardMode: layoutWizardMode, onChange: (newLayout) => setLayout(newLayout) }) })),
116
126
  },
117
127
  {
118
128
  title: 'Pivot Aggregations',
119
129
  isVisible: () => layoutSupportedFeatures.PivotAggregationColumns && layoutSupportedFeatures.PivotColumns,
120
130
  details: 'Select Pivot Column Aggregations',
121
- renderSummary: () => (0, jsx_runtime_1.jsx)(PivotAggregationsSection_1.PivotAggregationsSectionSummary, {}),
131
+ renderSummary: (data) => (0, jsx_runtime_1.jsx)(PivotAggregationsSection_1.PivotAggregationsSectionSummary, { layout: data }),
122
132
  isValid: (data) => (0, PivotAggregationsSection_1.isPivotAggregationsSectionValid)(data),
123
- render: () => ((0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:p-2 twa:h-full", children: (0, jsx_runtime_1.jsx)(PivotAggregationsSection_1.PivotAggregationsSection, { onChange: (layout) => {
133
+ render: () => ((0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:p-2 twa:h-full", children: (0, jsx_runtime_1.jsx)(PivotAggregationsSection_1.PivotAggregationsSection, { layoutWizardMode: layoutWizardMode, onChange: (layout) => {
124
134
  const newLayout = (0, Helper_1.cloneObject)(layout);
125
135
  setLayout(newLayout);
126
136
  } }) })),
127
137
  },
128
- {
129
- title: 'Sort',
130
- isVisible: () => layoutSupportedFeatures.ColumnSorts,
131
- renderSummary: () => (0, jsx_runtime_1.jsx)(SortSection_1.SortSectionSummary, {}),
132
- details: 'Configure Aggregated Column Sorts',
133
- render: () => ((0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:p-2 twa:h-full", children: (0, jsx_runtime_1.jsx)(SortSection_1.SortSection, { onChange: (newLayout) => setLayout(newLayout) }) })),
134
- },
135
138
  {
136
139
  title: 'Column Filters',
137
140
  isVisible: () => layoutSupportedFeatures.ColumnFilters,
@@ -180,23 +183,23 @@ const LayoutWizard = (props) => {
180
183
  title: 'Row Groups',
181
184
  isVisible: () => layoutSupportedFeatures.RowGroupedColumns,
182
185
  details: 'Configure Row Grouping and Display Behaviour',
183
- renderSummary: () => (0, jsx_runtime_1.jsx)(RowGroupingSection_1.RowGroupingSectionSummary, {}),
184
- render: () => ((0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:p-2 twa:h-full", children: (0, jsx_runtime_1.jsx)(RowGroupingSection_1.RowGroupingSection, { onChange: setLayout }) })),
186
+ renderSummary: (data) => (0, jsx_runtime_1.jsx)(RowGroupingSection_1.RowGroupingSectionSummary, { layout: data }),
187
+ render: () => ((0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:p-2 twa:h-full", children: (0, jsx_runtime_1.jsx)(RowGroupingSection_1.RowGroupingSection, { onChange: setLayout, layoutWizardMode: layoutWizardMode }) })),
185
188
  },
186
189
  {
187
190
  title: 'Columns',
188
- details: 'Select Columns',
191
+ details: 'Configure Column Visibility, Order, Pinning, Sizing and Sorting',
189
192
  isVisible: () => true,
190
- renderSummary: () => (0, jsx_runtime_1.jsx)(ColumnsSection_1.ColumnsSectionSummary, {}),
191
- render: () => ((0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:p-2 twa:h-full", children: (0, jsx_runtime_1.jsx)(ColumnsSection_1.ColumnsSection, { onChange: setLayout }) })),
193
+ renderSummary: (data) => (0, jsx_runtime_1.jsx)(ColumnsSection_1.ColumnsSectionSummary, { layout: data }),
194
+ render: () => ((0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:p-2 twa:h-full", children: (0, jsx_runtime_1.jsx)(ColumnsSection_1.ColumnsSection, { layoutWizardMode: layoutWizardMode, onChange: setLayout }) })),
192
195
  },
193
196
  {
194
197
  title: 'Aggregations',
195
198
  isVisible: () => layoutSupportedFeatures.TableAggregationColumns,
196
199
  details: 'Select Aggregation Columns and Behaviour',
197
- renderSummary: () => (0, jsx_runtime_1.jsx)(AggregationsSection_1.AggregationsSectionSummary, {}),
200
+ renderSummary: (data) => (0, jsx_runtime_1.jsx)(AggregationsSection_1.AggregationsSectionSummary, { layout: data }),
198
201
  isValid: (data) => (0, AggregationsSection_1.isAggregationsSectionValid)(data),
199
- render: () => ((0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:p-2 twa:h-full", children: (0, jsx_runtime_1.jsx)(AggregationsSection_1.AggregationsSection, { onChange: (layout) => {
202
+ render: () => ((0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:p-2 twa:h-full", children: (0, jsx_runtime_1.jsx)(AggregationsSection_1.AggregationsSection, { layoutWizardMode: layoutWizardMode, onChange: (layout) => {
200
203
  let newLayout = (0, Helper_1.cloneObject)(layout);
201
204
  // if we do not have an weighted avg col, we need to clear the row summary if one exists
202
205
  if (newLayout.RowSummaries) {
@@ -235,13 +238,6 @@ const LayoutWizard = (props) => {
235
238
  isValid: RowSummarySection_1.areSummaryRowsValid,
236
239
  render: () => ((0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:p-2 twa:h-full", children: (0, jsx_runtime_1.jsx)(RowSummarySection_1.RowSummarySection, { onChange: setLayout }) })),
237
240
  },
238
- {
239
- title: 'Sort',
240
- isVisible: () => layoutSupportedFeatures.ColumnSorts,
241
- renderSummary: () => (0, jsx_runtime_1.jsx)(SortSection_1.SortSectionSummary, {}),
242
- details: 'Configure Column Sorts',
243
- render: () => ((0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:p-2 twa:h-full", children: (0, jsx_runtime_1.jsx)(SortSection_1.SortSection, { onChange: (newLayout) => setLayout(newLayout) }) })),
244
- },
245
241
  {
246
242
  title: 'Column Filters',
247
243
  isVisible: () => layoutSupportedFeatures.ColumnFilters,
@@ -1,9 +1,21 @@
1
1
  import * as React from 'react';
2
2
  import { Layout, TableLayout } from '../../../../../types';
3
+ import { AggregationColumnValue } from '../../../../AdaptableState/Common/AggregationColumns';
4
+ export type GrandTotalRowPosition = 'top' | 'bottom' | 'pinnedTop' | 'pinnedBottom';
5
+ export declare const GRAND_TOTAL_ROW_LABELS: Record<GrandTotalRowPosition | 'off', string>;
6
+ export declare const GRAND_TOTAL_ROW_DESCRIPTIONS: Record<GrandTotalRowPosition | 'off', string>;
7
+ export declare const GRAND_TOTAL_ROW_OPTIONS: (GrandTotalRowPosition | 'off')[];
8
+ export declare function getGrandTotalRowKey(layout: Layout): GrandTotalRowPosition | 'off';
9
+ export declare function getGrandTotalRowLabel(layout: Layout): string;
10
+ export declare function getGrandTotalRowDescription(layout: Layout): string;
11
+ export declare function getAggFuncSummaryLabel(columnId: string, aggFunc: AggregationColumnValue, aggregationColumnsMap: Record<string, string>): string;
3
12
  export declare const isAggregationsSectionValid: (data: Layout) => true | string;
4
- export declare const AggregationsSectionSummary: React.FunctionComponent;
13
+ export declare const AggregationsSectionSummary: React.FunctionComponent<{
14
+ layout?: TableLayout;
15
+ }>;
5
16
  interface AggregationsSectionProps {
6
17
  onChange: (data: TableLayout) => void;
18
+ layoutWizardMode?: 'create' | 'edit';
7
19
  }
8
20
  export declare const AggregationsSection: React.FunctionComponent<AggregationsSectionProps>;
9
21
  export {};