@adaptabletools/adaptable-cjs 23.0.0-canary.6 → 23.0.0-canary.8

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 (396) hide show
  1. package/icons/sort-asc.svg +1 -1
  2. package/index.css +828 -263
  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 +8 -850
  12. package/src/AdaptableState/StyledColumnState.js +0 -10
  13. package/src/AdaptableState/StyledColumns/BadgeStyle.d.ts +143 -0
  14. package/src/AdaptableState/StyledColumns/BadgeStyle.js +12 -0
  15. package/src/AdaptableState/StyledColumns/BulletChartStyle.d.ts +147 -0
  16. package/src/AdaptableState/StyledColumns/Common/BarChartCellText.d.ts +60 -0
  17. package/src/AdaptableState/StyledColumns/Common/BarChartCellText.js +7 -0
  18. package/src/AdaptableState/StyledColumns/Common/BarChartMarker.d.ts +24 -0
  19. package/src/AdaptableState/StyledColumns/Common/BarChartMarker.js +6 -0
  20. package/src/AdaptableState/StyledColumns/Common/CellTextOptions.d.ts +13 -0
  21. package/src/AdaptableState/StyledColumns/Common/CellTextOptions.js +7 -0
  22. package/src/AdaptableState/StyledColumns/Common/NumericStyledColumn.d.ts +79 -0
  23. package/src/AdaptableState/StyledColumns/Common/NumericStyledColumn.js +10 -0
  24. package/src/AdaptableState/StyledColumns/GradientStyle.d.ts +48 -0
  25. package/src/AdaptableState/StyledColumns/GradientStyle.js +2 -0
  26. package/src/AdaptableState/StyledColumns/IconStyle.d.ts +158 -0
  27. package/src/AdaptableState/StyledColumns/IconStyle.js +2 -0
  28. package/src/AdaptableState/StyledColumns/PercentBarStyle.d.ts +32 -0
  29. package/src/AdaptableState/StyledColumns/PercentBarStyle.js +2 -0
  30. package/src/AdaptableState/StyledColumns/RangeBarStyle.d.ts +155 -0
  31. package/src/AdaptableState/StyledColumns/RangeBarStyle.js +2 -0
  32. package/src/AdaptableState/StyledColumns/RatingStyle.d.ts +111 -0
  33. package/src/AdaptableState/StyledColumns/RatingStyle.js +2 -0
  34. package/src/AdaptableState/StyledColumns/SparklineStyle.d.ts +21 -0
  35. package/src/AdaptableState/StyledColumns/SparklineStyle.js +2 -0
  36. package/src/Api/ColumnScopeApi.d.ts +1 -1
  37. package/src/Api/Implementation/ColumnScopeApiImpl.d.ts +1 -1
  38. package/src/Api/Internal/AlertInternalApi.js +1 -1
  39. package/src/Api/Internal/DataSetInternalApi.d.ts +3 -0
  40. package/src/Api/Internal/DataSetInternalApi.js +73 -13
  41. package/src/Api/Internal/StyledColumnInternalApi.d.ts +3 -1
  42. package/src/Redux/Store/AdaptableStore.js +6 -4
  43. package/src/Strategy/CalculatedColumnModule.js +1 -0
  44. package/src/Strategy/ColumnFilterModule.js +1 -0
  45. package/src/Strategy/FlashingCellModule.js +6 -2
  46. package/src/Strategy/FormatColumnModule.js +1 -1
  47. package/src/Strategy/FreeTextColumnModule.js +38 -28
  48. package/src/Strategy/Interface/IModule.d.ts +3 -1
  49. package/src/Strategy/LayoutModule.js +15 -66
  50. package/src/Strategy/StyledColumnModule.js +11 -28
  51. package/src/Strategy/Utilities/CustomSort/getCustomSortColumnViewItems.d.ts +1 -0
  52. package/src/Strategy/Utilities/CustomSort/getCustomSortColumnViewItems.js +1 -0
  53. package/src/Strategy/Utilities/Export/getExportColumnsViewItems.d.ts +2 -0
  54. package/src/Strategy/Utilities/Export/getExportColumnsViewItems.js +17 -1
  55. package/src/Strategy/Utilities/Export/getExportRowsViewItems.d.ts +1 -0
  56. package/src/Strategy/Utilities/Export/getExportRowsViewItems.js +5 -1
  57. package/src/Strategy/Utilities/Layout/aggregationSummaryHelpers.d.ts +11 -0
  58. package/src/Strategy/Utilities/Layout/aggregationSummaryHelpers.js +111 -0
  59. package/src/Strategy/Utilities/Layout/columnsSummaryHelpers.d.ts +48 -0
  60. package/src/Strategy/Utilities/Layout/columnsSummaryHelpers.js +177 -0
  61. package/src/Strategy/Utilities/Layout/getLayoutSortViewItems.d.ts +1 -0
  62. package/src/Strategy/Utilities/Layout/getLayoutSortViewItems.js +1 -0
  63. package/src/Strategy/Utilities/Layout/rowGroupSummaryHelpers.d.ts +26 -0
  64. package/src/Strategy/Utilities/Layout/rowGroupSummaryHelpers.js +97 -0
  65. package/src/Utilities/Defaults/DefaultSettingsPanel.d.ts +3 -5
  66. package/src/Utilities/Defaults/DefaultSettingsPanel.js +48 -42
  67. package/src/Utilities/Helpers/FormatHelper.js +3 -0
  68. package/src/Utilities/Helpers/IconStylePresets.d.ts +1 -1
  69. package/src/Utilities/Helpers/ScheduleHelper.js +2 -0
  70. package/src/Utilities/Helpers/StyleHelper.d.ts +18 -0
  71. package/src/Utilities/Helpers/StyleHelper.js +30 -1
  72. package/src/Utilities/Helpers/StyledColumnGradientHelper.d.ts +3 -1
  73. package/src/Utilities/Helpers/StyledColumnGradientHelper.js +6 -4
  74. package/src/Utilities/Helpers/barChartCellText.d.ts +63 -0
  75. package/src/Utilities/Helpers/barChartCellText.js +333 -0
  76. package/src/Utilities/Helpers/percentBarPreviewHelper.d.ts +2 -1
  77. package/src/Utilities/Helpers/percentBarPreviewHelper.js +3 -8
  78. package/src/Utilities/Helpers/resolveSettingsPanelNavigation.d.ts +3 -0
  79. package/src/Utilities/Helpers/resolveSettingsPanelNavigation.js +19 -0
  80. package/src/Utilities/getScopeViewItems.js +2 -0
  81. package/src/Utilities/wizardSelection.d.ts +10 -0
  82. package/src/Utilities/wizardSelection.js +22 -0
  83. package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/AdaptableOptionsForm.js +2 -2
  84. package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/UIOptions/UIOptionsSidebarForm.js +2 -2
  85. package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/UIOptions/UIOptionsStatusbarForm.js +3 -3
  86. package/src/View/Alert/AlertViewPanel.js +2 -2
  87. package/src/View/Alert/Utilities/getAlertButtonStyle.js +7 -4
  88. package/src/View/Alert/Wizard/AlertBehaviourWizardSection.d.ts +0 -1
  89. package/src/View/Alert/Wizard/AlertBehaviourWizardSection.js +1 -6
  90. package/src/View/Alert/Wizard/AlertButtonsEditor.js +159 -125
  91. package/src/View/Alert/Wizard/AlertMessageWizardSection.d.ts +1 -1
  92. package/src/View/Alert/Wizard/AlertMessageWizardSection.js +1 -2
  93. package/src/View/Alert/Wizard/AlertNotificationWizardSection.d.ts +1 -1
  94. package/src/View/Alert/Wizard/AlertNotificationWizardSection.js +4 -5
  95. package/src/View/Alert/Wizard/AlertScheduledWizardSection.d.ts +1 -1
  96. package/src/View/Alert/Wizard/AlertScheduledWizardSection.js +1 -2
  97. package/src/View/Alert/Wizard/AlertTypeWizardSection.d.ts +1 -1
  98. package/src/View/Alert/Wizard/AlertTypeWizardSection.js +30 -7
  99. package/src/View/Alert/Wizard/AlertWizard.js +12 -4
  100. package/src/View/Alert/Wizard/BaseAlertScopeWizardSection.d.ts +2 -1
  101. package/src/View/Alert/Wizard/BaseAlertScopeWizardSection.js +3 -14
  102. package/src/View/BulkUpdate/BulkUpdatePopup.js +1 -1
  103. package/src/View/BulkUpdate/BulkUpdateViewPanel.js +4 -6
  104. package/src/View/CalculatedColumn/Wizard/CalculatedColumnExpressionWizardSection.d.ts +1 -1
  105. package/src/View/CalculatedColumn/Wizard/CalculatedColumnExpressionWizardSection.js +1 -2
  106. package/src/View/CalculatedColumn/Wizard/CalculatedColumnSettingsWizardSection.js +1 -1
  107. package/src/View/CalculatedColumn/Wizard/CalculatedColumnTypeSection.js +29 -3
  108. package/src/View/CellSummary/CellSummaryViewPanel.js +4 -4
  109. package/src/View/Charting/ShowChartButton.js +8 -8
  110. package/src/View/ColumnInfo/ColumnInfo.js +21 -1
  111. package/src/View/Components/AdaptableObjectCollection/index.js +2 -3
  112. package/src/View/Components/AdaptableObjectList/AdaptableObjectCompactList.js +3 -2
  113. package/src/View/Components/AdaptableObjectList/AdaptableObjectList.js +7 -6
  114. package/src/View/Components/AdaptableObjectList/objectListActionButtonStyles.d.ts +2 -0
  115. package/src/View/Components/AdaptableObjectList/objectListActionButtonStyles.js +6 -0
  116. package/src/View/Components/AdaptableObjectRow/index.js +2 -2
  117. package/src/View/Components/Buttons/ButtonBase/index.js +2 -3
  118. package/src/View/Components/Buttons/ButtonNew.d.ts +2 -0
  119. package/src/View/Components/Buttons/ButtonNew.js +1 -1
  120. package/src/View/Components/Buttons/EntityListActionButtons.js +3 -3
  121. package/src/View/Components/Buttons/SuspendToggleButton/SuspendToggleButton.d.ts +1 -0
  122. package/src/View/Components/Buttons/SuspendToggleButton/SuspendToggleButton.js +9 -9
  123. package/src/View/Components/ColumnFilter/ColumnFilter.js +15 -3
  124. package/src/View/Components/ColumnFilter/components/ColumnFilterMenu.js +2 -2
  125. package/src/View/Components/ColumnSelector/index.d.ts +12 -0
  126. package/src/View/Components/ColumnSelector/index.js +30 -6
  127. package/src/View/Components/EntityRulesEditor/EntityRulePredicatesEditor/EntityRulePredicatesEditor.js +2 -2
  128. package/src/View/Components/ModuleValueSelector/index.js +2 -1
  129. package/src/View/Components/NewScopeComponent.js +3 -8
  130. package/src/View/Components/Popups/AdaptablePopup/AdaptablePopup.js +5 -4
  131. package/src/View/Components/Popups/AdaptablePopup/AdaptablePopupDialog.js +4 -4
  132. package/src/View/Components/Popups/AdaptablePopup/AdaptablePopupModuleView.js +3 -3
  133. package/src/View/Components/Popups/AdaptablePopup/Navigation.d.ts +3 -2
  134. package/src/View/Components/Popups/AdaptablePopup/Navigation.js +38 -28
  135. package/src/View/Components/Popups/AdaptablePopup/PopupPanel.js +3 -4
  136. package/src/View/Components/Popups/AdaptablePopup/TopBar.js +2 -3
  137. package/src/View/Components/Popups/AdaptablePopup/settingsPanelNavigationTypes.d.ts +11 -0
  138. package/src/View/Components/Popups/AdaptablePopup/settingsPanelNavigationTypes.js +5 -0
  139. package/src/View/Components/Popups/AdaptablePopup/useMenuItems.d.ts +3 -1
  140. package/src/View/Components/Popups/AdaptablePopup/useMenuItems.js +27 -28
  141. package/src/View/Components/PredicateEditor/PredicateEditor.js +1 -1
  142. package/src/View/Components/RangesComponent.d.ts +4 -5
  143. package/src/View/Components/RangesComponent.js +95 -66
  144. package/src/View/Components/ReorderDraggable/index.js +2 -3
  145. package/src/View/Components/Selectors/BulkUpdateValueSelector.d.ts +0 -2
  146. package/src/View/Components/Selectors/BulkUpdateValueSelector.js +3 -3
  147. package/src/View/Components/StyleComponent.js +30 -63
  148. package/src/View/Components/ToolPanel/AdaptableToolPanel.js +9 -6
  149. package/src/View/Components/ToolPanel/ToolPanelPopup.d.ts +3 -13
  150. package/src/View/Components/ToolPanel/ToolPanelPopup.js +5 -80
  151. package/src/View/Components/ToolPanel/ToolPanelPopupSections.d.ts +17 -0
  152. package/src/View/Components/ToolPanel/ToolPanelPopupSections.js +81 -0
  153. package/src/View/Components/ValueSelector/index.d.ts +29 -0
  154. package/src/View/Components/ValueSelector/index.js +112 -29
  155. package/src/View/Components/wizardColumnListStyles.d.ts +10 -0
  156. package/src/View/Components/wizardColumnListStyles.js +13 -0
  157. package/src/View/CustomSort/Wizard/CustomSortColumnWizardSection.d.ts +2 -1
  158. package/src/View/CustomSort/Wizard/CustomSortColumnWizardSection.js +4 -6
  159. package/src/View/CustomSort/Wizard/CustomSortWizard.js +2 -2
  160. package/src/View/Dashboard/DashboardPopup.d.ts +1 -11
  161. package/src/View/Dashboard/DashboardPopup.js +3 -67
  162. package/src/View/Dashboard/DashboardPopupSections.d.ts +20 -0
  163. package/src/View/Dashboard/DashboardPopupSections.js +73 -0
  164. package/src/View/Dashboard/PinnedToolbarsSelector.js +2 -2
  165. package/src/View/DataChangeHistory/DataChangeHistoryPopup.d.ts +1 -6
  166. package/src/View/DataChangeHistory/DataChangeHistoryPopup.js +8 -20
  167. package/src/View/DataChangeHistory/DataChangeHistoryTable.d.ts +8 -0
  168. package/src/View/DataChangeHistory/DataChangeHistoryTable.js +99 -0
  169. package/src/View/DataChangeHistory/buildActionColumnButton.d.ts +5 -3
  170. package/src/View/DataChangeHistory/buildActionColumnButton.js +33 -41
  171. package/src/View/DataChangeHistory/dataChangeHistoryHelpers.d.ts +15 -0
  172. package/src/View/DataChangeHistory/dataChangeHistoryHelpers.js +46 -0
  173. package/src/View/DataImport/DataImportWizard/DataImportWizard.js +1 -1
  174. package/src/View/DataImport/DataImportWizard/sections/ColumnsSection.js +32 -19
  175. package/src/View/DataImport/DataImportWizard/sections/DataPreview.js +1 -1
  176. package/src/View/DataSet/DataSetViewPanel.d.ts +2 -2
  177. package/src/View/Export/ExportDestinationPicker.js +4 -5
  178. package/src/View/Export/ExportSchedulesTab.js +3 -4
  179. package/src/View/Export/ExportViewPanel.js +2 -2
  180. package/src/View/Export/Wizard/ReportColumnsWizardSection.d.ts +2 -1
  181. package/src/View/Export/Wizard/ReportColumnsWizardSection.js +2 -7
  182. package/src/View/Export/Wizard/ReportRowsWizardSection.d.ts +2 -1
  183. package/src/View/Export/Wizard/ReportRowsWizardSection.js +2 -5
  184. package/src/View/Filter/FilterViewPanel.js +1 -1
  185. package/src/View/FlashingCell/FlashingCellStyle.d.ts +4 -2
  186. package/src/View/FlashingCell/FlashingCellStyle.js +5 -3
  187. package/src/View/FlashingCell/Wizard/FlashingCellRulesWizardSection.d.ts +2 -1
  188. package/src/View/FlashingCell/Wizard/FlashingCellRulesWizardSection.js +5 -9
  189. package/src/View/FlashingCell/Wizard/FlashingCellScopeSummary.d.ts +9 -0
  190. package/src/View/FlashingCell/Wizard/FlashingCellScopeSummary.js +10 -0
  191. package/src/View/FlashingCell/Wizard/FlashingCellScopeWizardSection.d.ts +1 -1
  192. package/src/View/FlashingCell/Wizard/FlashingCellScopeWizardSection.js +5 -1
  193. package/src/View/FlashingCell/Wizard/FlashingCellStyleWizardSection.d.ts +0 -5
  194. package/src/View/FlashingCell/Wizard/FlashingCellStyleWizardSection.js +3 -8
  195. package/src/View/FlashingCell/Wizard/FlashingCellWizard.js +1 -2
  196. package/src/View/FormatColumn/Wizard/FormatColumnFormatWizardSection.d.ts +1 -1
  197. package/src/View/FormatColumn/Wizard/FormatColumnFormatWizardSection.js +101 -44
  198. package/src/View/FormatColumn/Wizard/FormatColumnRuleWizardSection.d.ts +0 -1
  199. package/src/View/FormatColumn/Wizard/FormatColumnRuleWizardSection.js +1 -6
  200. package/src/View/FormatColumn/Wizard/FormatColumnScopeWizardSection.js +55 -15
  201. package/src/View/FormatColumn/Wizard/FormatColumnSettingsWizardSection.js +1 -1
  202. package/src/View/FormatColumn/Wizard/FormatColumnStyleWizardSection.d.ts +2 -3
  203. package/src/View/FormatColumn/Wizard/FormatColumnStyleWizardSection.js +5 -9
  204. package/src/View/FormatColumn/Wizard/FormatColumnWizard.js +4 -9
  205. package/src/View/FreeTextColumn/Utilities/getFreeTextColumnSettingsTags.js +3 -2
  206. package/src/View/FreeTextColumn/Wizard/FreeTextColumnSettingsWizardSection.js +1 -2
  207. package/src/View/GridFilter/GridFilterPopupUI/index.js +3 -2
  208. package/src/View/GridFilter/GridFilterViewPanel.js +5 -5
  209. package/src/View/GridInfo/GridInfoPopup/AdaptableObjectsSummary.js +2 -3
  210. package/src/View/GridInfo/GridInfoPopup/GridInfoPopup.js +2 -2
  211. package/src/View/Layout/LayoutViewPanel.js +2 -2
  212. package/src/View/Layout/Wizard/LayoutWizard.js +24 -28
  213. package/src/View/Layout/Wizard/sections/AggregationsSection.d.ts +13 -1
  214. package/src/View/Layout/Wizard/sections/AggregationsSection.js +77 -33
  215. package/src/View/Layout/Wizard/sections/ColumnsSection.d.ts +4 -1
  216. package/src/View/Layout/Wizard/sections/ColumnsSection.js +154 -275
  217. package/src/View/Layout/Wizard/sections/PivotAggregationsSection.d.ts +4 -1
  218. package/src/View/Layout/Wizard/sections/PivotAggregationsSection.js +146 -143
  219. package/src/View/Layout/Wizard/sections/PivotColumnsSection.d.ts +5 -2
  220. package/src/View/Layout/Wizard/sections/PivotColumnsSection.js +22 -10
  221. package/src/View/Layout/Wizard/sections/PivotRowGroupingSection.d.ts +4 -1
  222. package/src/View/Layout/Wizard/sections/PivotRowGroupingSection.js +21 -10
  223. package/src/View/Layout/Wizard/sections/RowGroupingSection.d.ts +5 -2
  224. package/src/View/Layout/Wizard/sections/RowGroupingSection.js +23 -12
  225. package/src/View/Layout/Wizard/sections/RowSelectionSection.js +7 -3
  226. package/src/View/Layout/Wizard/sections/RowSummarySection.js +130 -104
  227. package/src/View/Layout/Wizard/sections/SortSection.d.ts +12 -2
  228. package/src/View/Layout/Wizard/sections/SortSection.js +43 -18
  229. package/src/View/Layout/Wizard/sections/columnLayoutCards.d.ts +20 -0
  230. package/src/View/Layout/Wizard/sections/columnLayoutCards.js +167 -0
  231. package/src/View/Layout/Wizard/sections/columnLayoutHelpers.d.ts +30 -0
  232. package/src/View/Layout/Wizard/sections/columnLayoutHelpers.js +216 -0
  233. package/src/View/Layout/Wizard/sections/layoutWizardAccordionHelpers.d.ts +8 -0
  234. package/src/View/Layout/Wizard/sections/layoutWizardAccordionHelpers.js +72 -0
  235. package/src/View/Layout/Wizard/sections/layoutWizardColumns.d.ts +11 -0
  236. package/src/View/Layout/Wizard/sections/layoutWizardColumns.js +57 -0
  237. package/src/View/License/LicenseWatermark.js +1 -1
  238. package/src/View/NamedQuery/Wizard/NamedQueryExpressionWizardSection.d.ts +1 -1
  239. package/src/View/NamedQuery/Wizard/NamedQueryExpressionWizardSection.js +1 -2
  240. package/src/View/Note/NoteEditor.js +2 -2
  241. package/src/View/QuickSearch/QuickSearchPopup.js +2 -3
  242. package/src/View/Schedule/Wizard/ScheduleScheduleWizard.js +1 -1
  243. package/src/View/Shortcut/Wizard/ShortcutSettingsWizard.js +1 -1
  244. package/src/View/SmartEdit/SmartEditPopup.js +2 -2
  245. package/src/View/SmartEdit/SmartEditViewPanel.js +2 -2
  246. package/src/View/StateManagement/StateManagementPopup.js +1 -1
  247. package/src/View/StateManagement/components/ExportDropdown.d.ts +2 -2
  248. package/src/View/StateManagement/components/ExportDropdown.js +12 -13
  249. package/src/View/StatusBar/StatusBarPanel.js +2 -2
  250. package/src/View/StatusBar/StatusBarPopup.js +33 -5
  251. package/src/View/StatusBar/statusBarPanelHelpers.d.ts +2 -0
  252. package/src/View/StatusBar/statusBarPanelHelpers.js +11 -0
  253. package/src/View/StyledColumn/Wizard/BadgePillStyleEditor.d.ts +3 -1
  254. package/src/View/StyledColumn/Wizard/BadgePillStyleEditor.js +13 -10
  255. package/src/View/StyledColumn/Wizard/StyledColumnBadgeSection.d.ts +2 -2
  256. package/src/View/StyledColumn/Wizard/StyledColumnBadgeSection.js +143 -119
  257. package/src/View/StyledColumn/Wizard/StyledColumnSliceStyleEditors.d.ts +1 -3
  258. package/src/View/StyledColumn/Wizard/StyledColumnSliceStyleEditors.js +7 -13
  259. package/src/View/StyledColumn/Wizard/StyledColumnSparklineSettingsSection.js +2 -1
  260. package/src/View/StyledColumn/Wizard/StyledColumnTypeThumbnail.d.ts +5 -0
  261. package/src/View/StyledColumn/Wizard/StyledColumnTypeThumbnail.js +54 -0
  262. package/src/View/StyledColumn/Wizard/StyledColumnWizard.d.ts +2 -0
  263. package/src/View/StyledColumn/Wizard/StyledColumnWizard.js +28 -6
  264. package/src/View/StyledColumn/Wizard/StyledColumnWizardBulletSection.js +76 -70
  265. package/src/View/StyledColumn/Wizard/StyledColumnWizardGradientSection.js +2 -1
  266. package/src/View/StyledColumn/Wizard/StyledColumnWizardIconSection.js +83 -38
  267. package/src/View/StyledColumn/Wizard/StyledColumnWizardRangeBarSection.js +172 -75
  268. package/src/View/StyledColumn/Wizard/StyledColumnWizardRatingSection.js +2 -1
  269. package/src/View/StyledColumn/Wizard/StyledColumnWizardScopeSection.d.ts +1 -1
  270. package/src/View/StyledColumn/Wizard/StyledColumnWizardScopeSection.js +31 -45
  271. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/BarChartCellTextLayoutEditor.d.ts +9 -0
  272. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/BarChartCellTextLayoutEditor.js +40 -0
  273. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/BarChartCellTextPreview.d.ts +23 -0
  274. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/BarChartCellTextPreview.js +62 -0
  275. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/BulletRangesSummaryPreview.d.ts +1 -1
  276. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/GradientSummaryPreview.d.ts +2 -1
  277. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/RangeBarRangesSummaryPreview.d.ts +1 -1
  278. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnBadgePreview.js +3 -2
  279. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnBulletPreview.d.ts +2 -1
  280. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnBulletPreview.js +13 -17
  281. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnChartListPreviews.d.ts +2 -1
  282. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnChartListPreviews.js +5 -5
  283. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnIconPreview.js +2 -2
  284. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnPercentBarPreview.js +13 -6
  285. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnRangeBarPreview.js +11 -17
  286. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnRatingPreview.d.ts +2 -1
  287. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/StyledColumnWizardStyleSection.js +26 -57
  288. package/src/View/StyledColumn/Wizard/StyledColumnWizardTypeSection.js +93 -6
  289. package/src/View/UIHelper.d.ts +0 -2
  290. package/src/View/UIHelper.js +8 -24
  291. package/src/View/Wizard/CollapsibleWizardCard.d.ts +68 -0
  292. package/src/View/Wizard/CollapsibleWizardCard.js +90 -0
  293. package/src/View/Wizard/OnePageWizards.js +6 -6
  294. package/src/View/Wizard/SummaryColorTag.d.ts +24 -0
  295. package/src/View/Wizard/SummaryColorTag.js +79 -0
  296. package/src/View/Wizard/WizardTypeSelection.d.ts +34 -0
  297. package/src/View/Wizard/WizardTypeSelection.js +40 -0
  298. package/src/View/Wizard/rowGroupSummaryTags.d.ts +18 -0
  299. package/src/View/Wizard/rowGroupSummaryTags.js +21 -0
  300. package/src/View/Wizard/scopeSummaryTags.d.ts +6 -0
  301. package/src/View/Wizard/scopeSummaryTags.js +38 -0
  302. package/src/agGrid/AgGridAdapter.js +0 -5
  303. package/src/agGrid/AgGridColumnAdapter.js +3 -2
  304. package/src/agGrid/cellRenderers/ActionColumnRenderer.js +4 -7
  305. package/src/agGrid/cellRenderers/BadgeRenderer.js +7 -5
  306. package/src/agGrid/cellRenderers/BulletChartRenderer.js +43 -42
  307. package/src/agGrid/cellRenderers/IconRenderer.d.ts +2 -1
  308. package/src/agGrid/cellRenderers/IconRenderer.js +13 -11
  309. package/src/agGrid/cellRenderers/PercentBarRenderer.js +24 -96
  310. package/src/agGrid/cellRenderers/RangeBarRenderer.js +49 -46
  311. package/src/components/AdaptableFormComponent/AdaptableFormComponent.js +1 -1
  312. package/src/components/Card/index.js +5 -7
  313. package/src/components/CheckBox/index.js +2 -3
  314. package/src/components/CodeBlock/index.js +2 -3
  315. package/src/components/ColorPicker/ColorPicker.d.ts +1 -0
  316. package/src/components/ColorPicker/ColorPicker.js +8 -6
  317. package/src/components/ColorPicker/OptionalColorPicker.d.ts +12 -0
  318. package/src/components/ColorPicker/OptionalColorPicker.js +31 -0
  319. package/src/components/ColorPicker/index.d.ts +1 -0
  320. package/src/components/ColorPicker/index.js +1 -0
  321. package/src/components/Combobox/comboboxUtils.d.ts +1 -0
  322. package/src/components/Combobox/index.js +19 -18
  323. package/src/components/Dashboard/DashboardManager.js +2 -4
  324. package/src/components/Dialog/index.js +4 -4
  325. package/src/components/DragAndDropContext/DragAndDropContext.d.ts +5 -0
  326. package/src/components/DragAndDropContext/DragAndDropContext.js +4 -1
  327. package/src/components/DragAndDropContext/ModuleManager.d.ts +15 -3
  328. package/src/components/DragAndDropContext/ModuleManager.js +43 -4
  329. package/src/components/DragAndDropContext/TabList.d.ts +11 -4
  330. package/src/components/DragAndDropContext/TabList.js +52 -38
  331. package/src/components/DragAndDropContext/UnusedPanel.d.ts +4 -3
  332. package/src/components/DragAndDropContext/UnusedPanel.js +13 -9
  333. package/src/components/DragAndDropContext/dragScope.d.ts +6 -0
  334. package/src/components/DragAndDropContext/dragScope.js +34 -0
  335. package/src/components/DragAndDropContext/types.d.ts +7 -0
  336. package/src/components/DropdownButton/index.d.ts +33 -25
  337. package/src/components/DropdownButton/index.js +24 -158
  338. package/src/components/EmptyContent/index.js +2 -3
  339. package/src/components/ErrorBox/index.js +2 -3
  340. package/src/components/ExpressionEditor/BaseEditorInput.js +3 -3
  341. package/src/components/ExpressionEditor/QueryBuilder/QueryBuilderInputs.js +3 -3
  342. package/src/components/ExpressionEditor/QueryBuilder/QueryPredicateBuilder.js +9 -9
  343. package/src/components/FieldWrap/index.js +2 -3
  344. package/src/components/Flex.js +2 -2
  345. package/src/components/FormLayout/index.d.ts +1 -1
  346. package/src/components/HelpBlock/index.js +3 -4
  347. package/src/components/IconSelector/IconSelector.d.ts +8 -0
  348. package/src/components/IconSelector/IconSelector.js +13 -8
  349. package/src/components/IconSelector/index.d.ts +1 -0
  350. package/src/components/IconSelector/index.js +3 -0
  351. package/src/components/Modal/index.js +2 -2
  352. package/src/components/NewSelect/index.js +11 -1
  353. package/src/components/Panel/index.js +7 -7
  354. package/src/components/Radio/index.d.ts +1 -1
  355. package/src/components/Radio/index.js +8 -6
  356. package/src/components/SimpleButton/index.js +7 -7
  357. package/src/components/StylePreview.js +2 -3
  358. package/src/components/Tabs/index.js +4 -4
  359. package/src/components/Tag/Tag.d.ts +16 -0
  360. package/src/components/Tag/Tag.js +16 -5
  361. package/src/components/Tag/columnScopeTagHelpers.d.ts +8 -0
  362. package/src/components/Tag/columnScopeTagHelpers.js +12 -0
  363. package/src/components/Tag/index.d.ts +1 -1
  364. package/src/components/Tag/index.js +3 -1
  365. package/src/components/Textarea/index.js +2 -3
  366. package/src/components/Toggle/Toggle.d.ts +2 -0
  367. package/src/components/Toggle/Toggle.js +14 -7
  368. package/src/components/Toggle/ToggleGroup.js +2 -2
  369. package/src/components/ToggleButton/index.js +4 -5
  370. package/src/components/Tree/TreeDropdown/index.js +3 -5
  371. package/src/components/WarningBox/index.js +2 -3
  372. package/src/components/icons/sort-asc.js +1 -1
  373. package/src/components/ui/button.d.ts +2 -2
  374. package/src/components/ui/combobox.d.ts +3 -1
  375. package/src/components/ui/combobox.js +2 -2
  376. package/src/components/ui/input-group.d.ts +1 -1
  377. package/src/components/ui/select.js +3 -2
  378. package/src/components/ui/textarea.js +1 -1
  379. package/src/env.js +2 -2
  380. package/src/layout-manager/src/index.js +7 -3
  381. package/src/metamodel/adaptable.metamodel.d.ts +80 -14
  382. package/src/metamodel/adaptable.metamodel.js +1 -1
  383. package/src/migration/VersionUpgrade23.d.ts +27 -31
  384. package/src/migration/VersionUpgrade23.js +110 -29
  385. package/src/types.d.ts +13 -2
  386. package/tsconfig.cjs.tsbuildinfo +1 -1
  387. package/src/View/DataChangeHistory/DataChangeHistoryGrid.d.ts +0 -17
  388. package/src/View/DataChangeHistory/DataChangeHistoryGrid.js +0 -295
  389. package/src/components/DropdownButton/DropdownButtonItem.d.ts +0 -12
  390. package/src/components/DropdownButton/renderItem.d.ts +0 -14
  391. package/src/components/DropdownButton/renderItem.js +0 -14
  392. package/src/components/DropdownButton/useExpanded.d.ts +0 -24
  393. package/src/components/DropdownButton/useExpanded.js +0 -59
  394. package/src/components/NewDropdownButton/index.d.ts +0 -27
  395. package/src/components/NewDropdownButton/index.js +0 -28
  396. /package/src/{components/DropdownButton/DropdownButtonItem.js → AdaptableState/StyledColumns/BulletChartStyle.js} +0 -0
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SortSection = exports.SortSectionSummary = void 0;
3
+ exports.ColumnSortingWizardCard = exports.buildColumnSortingSummary = exports.SortSectionSummary = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const jsx_runtime_1 = require("react/jsx-runtime");
6
6
  const React = tslib_1.__importStar(require("react"));
@@ -12,44 +12,68 @@ const AdaptableContext_1 = require("../../../AdaptableContext");
12
12
  const ValueSelector_1 = require("../../../Components/ValueSelector");
13
13
  const OnePageAdaptableWizard_1 = require("../../../Wizard/OnePageAdaptableWizard");
14
14
  const Utilities_1 = require("./Utilities");
15
+ const utils_1 = require("../../../../lib/utils");
16
+ const layoutWizardColumns_1 = require("./layoutWizardColumns");
15
17
  const ColumnGroupTag_1 = require("../../../Components/ColumnGroupTag");
16
18
  const ArrayExtensions_1 = tslib_1.__importDefault(require("../../../../Utilities/Extensions/ArrayExtensions"));
17
19
  const Flex_1 = require("../../../../components/Flex");
20
+ const CollapsibleWizardCard_1 = require("../../../Wizard/CollapsibleWizardCard");
18
21
  const SortSectionSummary = () => {
19
22
  const { data: layout } = (0, OnePageAdaptableWizard_1.useOnePageAdaptableWizardContext)();
20
23
  const adaptable = (0, AdaptableContext_1.useAdaptable)();
21
24
  const sortViewItems = (0, getLayoutSortViewItems_1.getLayoutSortViewItems)(layout, adaptable.api);
22
- return ((0, jsx_runtime_1.jsx)(Flex_1.Box, { children: sortViewItems.values.length ? (sortViewItems.values.map((value) => ((0, jsx_runtime_1.jsx)(Tag_1.Tag, { className: "twa:mb-1 twa:mr-1", children: value }, value)))) : ((0, jsx_runtime_1.jsx)(Tag_1.Tag, { children: "No Sorts" })) }));
25
+ return ((0, jsx_runtime_1.jsx)(Flex_1.Box, { children: sortViewItems.values.length ? (sortViewItems.values.map((value) => ((0, jsx_runtime_1.jsx)(Tag_1.ColumnTag, { className: "twa:mb-1 twa:mr-1", children: value }, value)))) : ((0, jsx_runtime_1.jsx)(Tag_1.Tag, { children: "No Sorts" })) }));
23
26
  };
24
27
  exports.SortSectionSummary = SortSectionSummary;
25
- const ColumnRow = (props) => {
26
- const SortOrder = (props.layout?.ColumnSorts ?? []).find((sort) => sort.ColumnId === props.column.columnId)?.SortOrder;
27
- const icon = SortOrder === 'Asc' ? 'sort-asc' : 'sort-desc';
28
- return ((0, jsx_runtime_1.jsxs)(Flex_1.Flex, { alignItems: "center", children: [props.column.friendlyName, (0, jsx_runtime_1.jsx)(ColumnGroupTag_1.ColumnGroupTag, { column: props.column }), SortOrder && ((0, jsx_runtime_1.jsx)(SimpleButton_1.default, { className: "twa:ml-2", onClick: () => props.onSortChange(props.column.columnId, SortOrder === 'Asc' ? 'Desc' : 'Asc'), variant: "raised", icon: icon }))] }));
28
+ const getColumnSortOrder = (layout, columnId) => (layout.ColumnSorts ?? []).find((sort) => sort.ColumnId === columnId)?.SortOrder;
29
+ const SortDirectionButton = (props) => {
30
+ const icon = props.sortOrder === 'Asc' ? 'sort-asc' : 'sort-desc';
31
+ const sortTooltip = props.sortOrder === 'Asc' ? 'Ascending (A to Z)' : 'Descending (Z to A)';
32
+ return ((0, jsx_runtime_1.jsx)(SimpleButton_1.default, { className: (0, utils_1.cn)('twa:flex twa:items-center twa:justify-center twa:m-1 twa:p-1', props.compact ? 'twa:min-h-7 twa:min-w-7 twa:p-0' : 'twa:shrink-0'), tooltip: sortTooltip, onClick: (event) => {
33
+ event.stopPropagation();
34
+ props.onSortChange(props.columnId, props.sortOrder === 'Asc' ? 'Desc' : 'Asc');
35
+ }, variant: props.compact ? 'outlined' : 'raised', tone: props.compact ? 'none' : undefined, iconSize: props.compact ? 16 : undefined, icon: icon }));
29
36
  };
30
- const SortSection = (props) => {
37
+ const SortColumnRow = (props) => {
38
+ const sortOrder = getColumnSortOrder(props.layout, props.column.columnId);
39
+ return ((0, jsx_runtime_1.jsxs)(Flex_1.Flex, { alignItems: "center", className: "twa:gap-2", children: [(0, jsx_runtime_1.jsx)(Flex_1.Box, { className: props.compact ? 'twa:truncate' : undefined, children: props.column.friendlyName ?? props.column.columnId }), sortOrder ? ((0, jsx_runtime_1.jsx)(SortDirectionButton, { compact: props.compact, columnId: props.column.columnId, sortOrder: sortOrder, onSortChange: props.onSortChange })) : null, (0, jsx_runtime_1.jsx)(ColumnGroupTag_1.ColumnGroupTag, { column: props.column })] }));
40
+ };
41
+ const SORT_VALUE_SELECTOR_OPTION_CLASS = 'twa:!py-1.5 twa:!px-2 twa:min-h-[2.5rem]';
42
+ const buildColumnSortingSummary = (layout, adaptable) => {
43
+ const sortViewItems = (0, getLayoutSortViewItems_1.getLayoutSortViewItems)(layout, adaptable.api);
44
+ if (!sortViewItems.values.length) {
45
+ return (0, jsx_runtime_1.jsx)(Tag_1.Tag, { children: "No sorts" });
46
+ }
47
+ return ((0, jsx_runtime_1.jsx)(Flex_1.Flex, { flexWrap: "wrap", className: "twa:gap-1", children: sortViewItems.values.map((value) => ((0, jsx_runtime_1.jsx)(Tag_1.ColumnTag, { children: value }, value))) }));
48
+ };
49
+ exports.buildColumnSortingSummary = buildColumnSortingSummary;
50
+ const ColumnSortingWizardCard = (props) => {
51
+ const title = props.title ?? 'Sorting';
52
+ const cardId = props.cardId ?? 'sorting';
53
+ const dataName = props['data-name'] ?? 'column-sorting';
54
+ const fillWhenExpanded = props.fillWhenExpanded ?? true;
31
55
  const adaptable = (0, AdaptableContext_1.useAdaptable)();
32
- const { data: layout } = (0, OnePageAdaptableWizard_1.useOnePageAdaptableWizardContext)();
33
56
  const allSortableColumns = adaptable.api.columnApi.getSortableColumns();
34
57
  const sortedSortColumns = React.useMemo(() => {
35
- return ArrayExtensions_1.default.sortArrayWithOrder(allSortableColumns.map((col) => col.columnId), (layout.ColumnSorts ?? []).map((sort) => sort.ColumnId), { sortUnorderedItems: false }).map((colId) => adaptable.api.columnApi.getColumnWithColumnId(colId));
36
- }, [layout, allSortableColumns]);
58
+ return ArrayExtensions_1.default.sortArrayWithOrder(allSortableColumns.map((col) => col.columnId), (props.layout.ColumnSorts ?? []).map((sort) => sort.ColumnId), { sortUnorderedItems: false }).map((colId) => adaptable.api.columnApi.getColumnWithColumnId(colId));
59
+ }, [props.layout, allSortableColumns, adaptable]);
37
60
  const handleColumnsSelectionChange = React.useCallback((columnIds) => {
38
61
  props.onChange({
39
- ...layout,
62
+ ...props.layout,
40
63
  ColumnSorts: (columnIds || []).map((columnId) => {
41
- const SortOrder = layout.ColumnSorts?.find((sort) => sort.ColumnId === columnId)?.SortOrder ?? 'Asc';
64
+ const SortOrder = props.layout.ColumnSorts?.find((sort) => sort.ColumnId === columnId)?.SortOrder ??
65
+ 'Asc';
42
66
  return {
43
67
  ColumnId: columnId,
44
68
  SortOrder: SortOrder,
45
69
  };
46
70
  }),
47
71
  });
48
- }, [layout]);
72
+ }, [props.layout, props.onChange]);
49
73
  const handleSortChange = React.useCallback((columnId, SortOrder) => {
50
74
  props.onChange({
51
- ...layout,
52
- ColumnSorts: layout.ColumnSorts?.map((sort) => {
75
+ ...props.layout,
76
+ ColumnSorts: props.layout.ColumnSorts?.map((sort) => {
53
77
  if (sort.ColumnId === columnId) {
54
78
  return {
55
79
  ...sort,
@@ -59,7 +83,8 @@ const SortSection = (props) => {
59
83
  return sort;
60
84
  }),
61
85
  });
62
- }, [layout]);
63
- return ((0, jsx_runtime_1.jsx)(Flex_1.Flex, { flexDirection: "column", className: "twa:gap-3 twa:p-3 twa:h-full", children: (0, jsx_runtime_1.jsxs)(Card_1.Card, { shadow: false, className: "twa:flex-1 twa:min-h-0", children: [(0, jsx_runtime_1.jsxs)(Card_1.Card.Title, { children: [(0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:font-medium", children: "Column Sorts" }), (0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:text-xs twa:opacity-70 twa:font-normal twa:max-w-[520px]", children: "Select columns to sort and set their sort order. Drag to change sort priority." })] }), (0, jsx_runtime_1.jsx)(Card_1.Card.Body, { className: "twa:p-1 twa:min-h-[200px]", children: (0, jsx_runtime_1.jsx)(ValueSelector_1.ValueSelector, { showFilterInput: true, filter: Utilities_1.columnFilter, toIdentifier: (option) => `${option.columnId}`, toLabel: (option) => option.friendlyName ?? option.columnId, toListLabel: (column) => ((0, jsx_runtime_1.jsx)(ColumnRow, { onSortChange: handleSortChange, layout: layout, column: column })), options: sortedSortColumns, value: (layout.ColumnSorts ?? []).map((sort) => sort.ColumnId), allowReorder: () => true, onChange: handleColumnsSelectionChange }) })] }) }));
86
+ }, [props.layout, props.onChange]);
87
+ const sortViewItems = (0, getLayoutSortViewItems_1.getLayoutSortViewItems)(props.layout, adaptable.api);
88
+ return ((0, jsx_runtime_1.jsx)(CollapsibleWizardCard_1.CollapsibleWizardCard, { ...props.bindCard(cardId, { fillAvailable: fillWhenExpanded }), surface: "panel", "data-name": dataName, title: title, help: "Select columns to sort and set their order. Drag to change sort priority.", collapsedHelp: "", compactSummary: sortViewItems.values.length ? ((0, jsx_runtime_1.jsxs)(Flex_1.Flex, { alignItems: "center", className: "twa:gap-1 twa:min-w-0 twa:overflow-hidden", children: [sortViewItems.values.slice(0, 2).map((value) => ((0, jsx_runtime_1.jsx)(Tag_1.ColumnTag, { className: "twa:shrink-0", children: value }, value))), sortViewItems.values.length > 2 ? ((0, jsx_runtime_1.jsxs)("span", { className: "twa:text-xs twa:opacity-70 twa:shrink-0", children: ["+", sortViewItems.values.length - 2] })) : null] })) : ('No sorts'), summary: (0, exports.buildColumnSortingSummary)(props.layout, adaptable), 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)(Card_1.Card, { shadow: false, className: "twa:h-full twa:overflow-hidden twa:flex twa:flex-col", children: (0, jsx_runtime_1.jsx)(Card_1.Card.Body, { className: "twa:flex-1 twa:min-h-0 twa:overflow-hidden twa:px-1 twa:pt-0 twa:pb-0", children: (0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:flex twa:flex-col twa:gap-1.5 twa:h-full twa:overflow-hidden twa:flex-1 twa:min-h-0", "data-name": "sorting-columns-container", children: (0, jsx_runtime_1.jsx)(ValueSelector_1.ValueSelector, { compact: true, showFilterInput: true, filter: Utilities_1.columnFilter, filterPlaceholder: "Search Columns...", compactHeaderClassName: layoutWizardColumns_1.LAYOUT_WIZARD_COLUMN_LIST_HEADER_CLASS, compactFilterClassName: layoutWizardColumns_1.LAYOUT_WIZARD_COLUMN_LIST_SEARCH_CLASS, toggleSelectionOnRowClick: true, optionClassName: SORT_VALUE_SELECTOR_OPTION_CLASS, toIdentifier: (option) => `${option.columnId}`, toLabel: (option) => option.friendlyName ?? option.columnId, optionLayout: "label-beside-checkbox", toListLabel: (column) => ((0, jsx_runtime_1.jsx)(SortColumnRow, { compact: true, column: column, layout: props.layout, onSortChange: handleSortChange })), options: sortedSortColumns, value: (props.layout.ColumnSorts ?? []).map((sort) => sort.ColumnId), allowReorder: () => true, onChange: handleColumnsSelectionChange }) }) }) }) }));
64
89
  };
65
- exports.SortSection = SortSection;
90
+ exports.ColumnSortingWizardCard = ColumnSortingWizardCard;
@@ -0,0 +1,20 @@
1
+ import * as React from 'react';
2
+ import { Layout, TableLayout } from '../../../../../types';
3
+ import { type WizardCardAccordionBindCard } from '../../../Wizard/CollapsibleWizardCard';
4
+ import type { IAdaptable } from '../../../../AdaptableInterfaces/IAdaptable';
5
+ import { type ColumnDefaultWidthResolver } from './columnLayoutHelpers';
6
+ export declare const buildColumnPinningSummary: (layout: Layout, adaptable: IAdaptable) => React.ReactNode;
7
+ export declare const buildColumnSizingSummary: (layout: Layout, adaptable: IAdaptable, resolveDefaultWidth: ColumnDefaultWidthResolver) => React.ReactNode;
8
+ interface ColumnPinningWizardCardProps {
9
+ layout: TableLayout;
10
+ onChange: (data: Layout) => void;
11
+ bindCard: WizardCardAccordionBindCard;
12
+ }
13
+ export declare const ColumnPinningWizardCard: React.FunctionComponent<ColumnPinningWizardCardProps>;
14
+ interface ColumnSizingWizardCardProps {
15
+ layout: TableLayout;
16
+ onChange: (data: Layout) => void;
17
+ bindCard: WizardCardAccordionBindCard;
18
+ }
19
+ export declare const ColumnSizingWizardCard: React.FunctionComponent<ColumnSizingWizardCardProps>;
20
+ export {};
@@ -0,0 +1,167 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ColumnSizingWizardCard = exports.ColumnPinningWizardCard = exports.buildColumnSizingSummary = exports.buildColumnPinningSummary = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const jsx_runtime_1 = require("react/jsx-runtime");
6
+ const React = tslib_1.__importStar(require("react"));
7
+ const Input_1 = tslib_1.__importDefault(require("../../../../components/Input"));
8
+ const Radio_1 = tslib_1.__importStar(require("../../../../components/Radio"));
9
+ const AdaptableContext_1 = require("../../../AdaptableContext");
10
+ const CollapsibleWizardCard_1 = require("../../../Wizard/CollapsibleWizardCard");
11
+ const Utilities_1 = require("./Utilities");
12
+ const AdaptableFormControlTextClear_1 = require("../../../Components/Forms/AdaptableFormControlTextClear");
13
+ const ColumnGroupTag_1 = require("../../../Components/ColumnGroupTag");
14
+ const Tag_1 = require("../../../../components/Tag");
15
+ const Flex_1 = require("../../../../components/Flex");
16
+ const layoutWizardColumns_1 = require("./layoutWizardColumns");
17
+ const utils_1 = require("../../../../lib/utils");
18
+ const columnLayoutHelpers_1 = require("./columnLayoutHelpers");
19
+ const PinningColumnRow = (props) => {
20
+ const columnPinning = props.layout.ColumnPinning?.[props.column.columnId];
21
+ const currentPin = columnPinning === 'left' || columnPinning === 'right' ? columnPinning : 'None';
22
+ return ((0, jsx_runtime_1.jsxs)(Flex_1.Flex, { alignItems: "center", className: (0, utils_1.cn)('ab-Layout-Wizard__ColumnListRow', 'twa:bg-primary twa:text-primary-foreground twa:rounded-standard', 'twa:gap-2 twa:py-1.5 twa:px-2 twa:min-h-[2.5rem]'), "data-name": `pinning-row-${props.column.columnId}`, children: [(0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:flex-1 twa:min-w-0 twa:truncate", children: (0, jsx_runtime_1.jsxs)(Flex_1.Flex, { alignItems: "center", children: [props.column.friendlyName ?? props.column.columnId, (0, jsx_runtime_1.jsx)(ColumnGroupTag_1.ColumnGroupTag, { column: props.column })] }) }), (0, jsx_runtime_1.jsx)(Radio_1.RadioGroup, { orientation: "horizontal", variant: "text-only", className: (0, utils_1.cn)(Radio_1.radioGroupStyling.horizontalTextOnly, 'twa:shrink-0'), value: currentPin, name: `pinning-${props.column.columnId}`, onRadioChange: (value) => {
23
+ props.onPinChange(props.column.columnId, value === 'None' ? null : value);
24
+ }, children: columnLayoutHelpers_1.COLUMN_PINNING_OPTIONS.map((option) => ((0, jsx_runtime_1.jsx)(Radio_1.default, { value: option.value, "data-name": `pinning-${props.column.columnId}-${option.value}`, children: option.label }, option.value))) })] }));
25
+ };
26
+ const SizingColumnRow = (props) => {
27
+ const sizing = props.layout.ColumnSizing?.[props.column.columnId];
28
+ const displayValues = (0, columnLayoutHelpers_1.getExplicitSizingDisplayValues)(props.column.columnId, sizing, props.resolveDefaultWidth);
29
+ const resizable = props.column.resizable !== false;
30
+ const parseNumberInput = (value) => {
31
+ const parsed = parseFloat(value);
32
+ return typeof parsed === 'number' && !isNaN(parsed) ? parsed : undefined;
33
+ };
34
+ const sizingLabelClass = 'twa:text-xs twa:opacity-70 twa:shrink-0';
35
+ const sizingInputClass = 'ab-Layout-Wizard__ColumnLayoutSizingInput ab-Layout-Wizard__ColumnPropertiesEditor__Input twa:!min-h-0 twa:text-2';
36
+ const sizingField = (label, inputName, value, onChange) => ((0, jsx_runtime_1.jsxs)(Flex_1.Flex, { alignItems: "center", className: "twa:gap-1 twa:shrink-0", children: [(0, jsx_runtime_1.jsx)(Flex_1.Box, { className: sizingLabelClass, children: label }), (0, jsx_runtime_1.jsx)(Input_1.default, { "data-name": inputName, className: sizingInputClass, type: "number", placeholder: "\u2014", disabled: !resizable, onChange: (event) => {
37
+ onChange(parseNumberInput(event.target.value));
38
+ }, value: value ?? '' })] }));
39
+ return ((0, jsx_runtime_1.jsxs)(Flex_1.Flex, { alignItems: "center", className: (0, utils_1.cn)('ab-Layout-Wizard__ColumnListRow', 'twa:bg-primary twa:text-primary-foreground twa:rounded-standard', 'twa:gap-2 twa:py-1.5 twa:px-2 twa:min-h-[2.5rem] twa:min-w-0'), "data-name": `sizing-row-${props.column.columnId}`, children: [(0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:flex-1 twa:min-w-0 twa:truncate", children: (0, jsx_runtime_1.jsxs)(Flex_1.Flex, { alignItems: "center", children: [props.column.friendlyName ?? props.column.columnId, (0, jsx_runtime_1.jsx)(ColumnGroupTag_1.ColumnGroupTag, { column: props.column })] }) }), (0, jsx_runtime_1.jsxs)(Flex_1.Flex, { alignItems: "center", className: "twa:gap-4 twa:flex-shrink-0", children: [sizingField('Width', `sizing-width-${props.column.columnId}`, displayValues.width, (value) => props.onColumnWidthChange(props.column.columnId, value)), sizingField('Flex', `sizing-flex-${props.column.columnId}`, displayValues.flex, (value) => props.onColumnFlexChange(props.column.columnId, value)), sizingField('Min', `sizing-min-${props.column.columnId}`, displayValues.minWidth, (value) => props.onColumnMinWidthChange(props.column.columnId, value)), sizingField('Max', `sizing-max-${props.column.columnId}`, displayValues.maxWidth, (value) => props.onColumnMaxWidthChange(props.column.columnId, value))] })] }));
40
+ };
41
+ const buildColumnPinningSummary = (layout, adaptable) => {
42
+ const leftPinned = (0, columnLayoutHelpers_1.getLayoutPinnedColumnIds)(layout, 'left');
43
+ const rightPinned = (0, columnLayoutHelpers_1.getLayoutPinnedColumnIds)(layout, 'right');
44
+ if (!leftPinned.length && !rightPinned.length) {
45
+ return (0, jsx_runtime_1.jsx)(Tag_1.Tag, { children: "None pinned" });
46
+ }
47
+ return ((0, jsx_runtime_1.jsxs)(Flex_1.Flex, { flexDirection: "column", className: "twa:gap-2", children: [leftPinned.length ? ((0, jsx_runtime_1.jsxs)(Flex_1.Flex, { flexWrap: "wrap", className: "twa:gap-1 twa:items-center", children: [(0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:text-xs twa:opacity-70", children: "Left:" }), leftPinned.map((columnId) => ((0, jsx_runtime_1.jsx)(Tag_1.ColumnTag, { children: adaptable.api.columnApi.getFriendlyNameForColumnId(columnId, layout) }, columnId)))] })) : null, rightPinned.length ? ((0, jsx_runtime_1.jsxs)(Flex_1.Flex, { flexWrap: "wrap", className: "twa:gap-1 twa:items-center", children: [(0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:text-xs twa:opacity-70", children: "Right:" }), rightPinned.map((columnId) => ((0, jsx_runtime_1.jsx)(Tag_1.ColumnTag, { children: adaptable.api.columnApi.getFriendlyNameForColumnId(columnId, layout) }, columnId)))] })) : null] }));
48
+ };
49
+ exports.buildColumnPinningSummary = buildColumnPinningSummary;
50
+ const buildColumnSizingSummary = (layout, adaptable, resolveDefaultWidth) => {
51
+ const sizedColumnIds = (0, columnLayoutHelpers_1.getLayoutExplicitSizedColumnIds)(layout, resolveDefaultWidth);
52
+ if (!sizedColumnIds.length) {
53
+ return (0, jsx_runtime_1.jsx)(Tag_1.Tag, { children: "Default sizing" });
54
+ }
55
+ return ((0, jsx_runtime_1.jsx)(Flex_1.Flex, { flexWrap: "wrap", className: "twa:gap-1", children: sizedColumnIds.map((columnId) => ((0, jsx_runtime_1.jsxs)(Tag_1.ColumnTag, { children: [adaptable.api.columnApi.getFriendlyNameForColumnId(columnId, layout), " (", (0, columnLayoutHelpers_1.formatColumnSizingBrief)(columnId, layout.ColumnSizing?.[columnId], resolveDefaultWidth), ")"] }, columnId))) }));
56
+ };
57
+ exports.buildColumnSizingSummary = buildColumnSizingSummary;
58
+ const ColumnPinningWizardCard = (props) => {
59
+ const adaptable = (0, AdaptableContext_1.useAdaptable)();
60
+ const [pinningSearch, setPinningSearch] = React.useState('');
61
+ const layoutColumns = React.useMemo(() => (0, layoutWizardColumns_1.getLayoutWizardOrderedColumns)(adaptable, props.layout), [adaptable, props.layout]);
62
+ const filteredPinningColumns = pinningSearch
63
+ ? layoutColumns.filter((col) => (0, Utilities_1.columnFilter)(col, pinningSearch))
64
+ : layoutColumns;
65
+ const handlePinChange = (columnId, pinning) => {
66
+ const ColumnPinning = { ...props.layout.ColumnPinning };
67
+ if (pinning) {
68
+ ColumnPinning[columnId] = pinning;
69
+ }
70
+ else {
71
+ delete ColumnPinning[columnId];
72
+ }
73
+ props.onChange({
74
+ ...props.layout,
75
+ ColumnPinning,
76
+ });
77
+ };
78
+ const leftPinned = (0, columnLayoutHelpers_1.getLayoutPinnedColumnIds)(props.layout, 'left');
79
+ const rightPinned = (0, columnLayoutHelpers_1.getLayoutPinnedColumnIds)(props.layout, 'right');
80
+ const pinnedColumnIds = [...leftPinned, ...rightPinned];
81
+ return ((0, jsx_runtime_1.jsx)(CollapsibleWizardCard_1.CollapsibleWizardCard, { ...props.bindCard('pinning', { fillAvailable: true }), surface: "panel", "data-name": "column-pinning", title: "Pinning", help: "Pin columns to the left or right of the grid", collapsedHelp: "", compactSummary: pinnedColumnIds.length ? ((0, jsx_runtime_1.jsxs)("span", { children: [pinnedColumnIds.length, " pinned", leftPinned.length && rightPinned.length
82
+ ? ` (${leftPinned.length} left, ${rightPinned.length} right)`
83
+ : leftPinned.length
84
+ ? ' (left)'
85
+ : ' (right)'] })) : ('None pinned'), summary: (0, exports.buildColumnPinningSummary)(props.layout, adaptable), 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", children: (0, jsx_runtime_1.jsxs)(Flex_1.Flex, { flexDirection: "column", className: "twa:gap-2 twa:h-full twa:min-h-0 twa:p-1", children: [(0, jsx_runtime_1.jsx)(AdaptableFormControlTextClear_1.AdaptableFormControlTextClear, { value: pinningSearch, OnTextChange: setPinningSearch, placeholder: "Search columns...", className: "twa:w-full" }), (0, jsx_runtime_1.jsx)(Flex_1.Flex, { flexDirection: "column", className: "twa:gap-0.5 twa:flex-1 twa:min-h-0 twa:overflow-y-auto", children: filteredPinningColumns.map((column) => ((0, jsx_runtime_1.jsx)(PinningColumnRow, { column: column, layout: props.layout, onPinChange: handlePinChange }, column.columnId))) })] }) }));
86
+ };
87
+ exports.ColumnPinningWizardCard = ColumnPinningWizardCard;
88
+ const ColumnSizingWizardCard = (props) => {
89
+ const adaptable = (0, AdaptableContext_1.useAdaptable)();
90
+ const [sizingSearch, setSizingSearch] = React.useState('');
91
+ const resolveDefaultWidth = React.useCallback((columnId) => adaptable.getDefaultColumnWidthForCol(columnId), [adaptable]);
92
+ const layoutColumns = React.useMemo(() => (0, layoutWizardColumns_1.getLayoutWizardOrderedColumns)(adaptable, props.layout), [adaptable, props.layout]);
93
+ const filteredSizingColumns = sizingSearch
94
+ ? layoutColumns.filter((col) => (0, Utilities_1.columnFilter)(col, sizingSearch))
95
+ : layoutColumns;
96
+ const updateColumnSizing = (columnId, update) => {
97
+ const ColumnSizing = { ...props.layout.ColumnSizing };
98
+ const colSizingForCol = { ...(ColumnSizing[columnId] ?? {}) };
99
+ const updated = update(colSizingForCol);
100
+ if ((0, columnLayoutHelpers_1.hasExplicitLayoutSizing)(columnId, updated, resolveDefaultWidth)) {
101
+ ColumnSizing[columnId] = updated;
102
+ }
103
+ else {
104
+ delete ColumnSizing[columnId];
105
+ }
106
+ props.onChange({
107
+ ...props.layout,
108
+ ColumnSizing,
109
+ });
110
+ };
111
+ const handleColumnWidthChange = (columnId, width) => {
112
+ updateColumnSizing(columnId, (colSizing) => {
113
+ const next = { ...colSizing };
114
+ if (width == null ||
115
+ width === resolveDefaultWidth(columnId)) {
116
+ delete next.Width;
117
+ }
118
+ else {
119
+ delete next.Flex;
120
+ next.Width = width;
121
+ }
122
+ return next;
123
+ });
124
+ };
125
+ const handleColumnFlexChange = (columnId, flex) => {
126
+ updateColumnSizing(columnId, (colSizing) => {
127
+ const next = { ...colSizing };
128
+ if (flex == null) {
129
+ delete next.Flex;
130
+ }
131
+ else {
132
+ delete next.Width;
133
+ next.Flex = flex;
134
+ }
135
+ return next;
136
+ });
137
+ };
138
+ const handleColumnMinWidthChange = (columnId, minWidth) => {
139
+ updateColumnSizing(columnId, (colSizing) => {
140
+ const next = { ...colSizing };
141
+ if (minWidth == null) {
142
+ delete next.MinWidth;
143
+ }
144
+ else {
145
+ next.MinWidth = minWidth;
146
+ }
147
+ return next;
148
+ });
149
+ };
150
+ const handleColumnMaxWidthChange = (columnId, maxWidth) => {
151
+ updateColumnSizing(columnId, (colSizing) => {
152
+ const next = { ...colSizing };
153
+ if (maxWidth == null) {
154
+ delete next.MaxWidth;
155
+ }
156
+ else {
157
+ next.MaxWidth = maxWidth;
158
+ }
159
+ return next;
160
+ });
161
+ };
162
+ const sizedColumnIds = (0, columnLayoutHelpers_1.getLayoutExplicitSizedColumnIds)(props.layout, resolveDefaultWidth);
163
+ return ((0, jsx_runtime_1.jsx)(CollapsibleWizardCard_1.CollapsibleWizardCard, { ...props.bindCard('sizing', { fillAvailable: true }), surface: "panel", "data-name": "column-sizing", title: "Sizing", help: "Set width, flex, and min/max overrides. Default column widths are not stored in the Layout.", collapsedHelp: "", compactSummary: sizedColumnIds.length
164
+ ? `${sizedColumnIds.length} custom ${sizedColumnIds.length === 1 ? 'size' : 'sizes'}`
165
+ : 'Default sizing', summary: (0, exports.buildColumnSizingSummary)(props.layout, adaptable, resolveDefaultWidth), 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", children: (0, jsx_runtime_1.jsxs)(Flex_1.Flex, { flexDirection: "column", className: "twa:gap-1.5 twa:h-full twa:min-h-0 twa:p-1", children: [(0, jsx_runtime_1.jsx)(AdaptableFormControlTextClear_1.AdaptableFormControlTextClear, { value: sizingSearch, OnTextChange: setSizingSearch, placeholder: "Search columns...", className: "twa:w-full" }), (0, jsx_runtime_1.jsx)(Flex_1.Flex, { flexDirection: "column", className: "twa:gap-0.5 twa:flex-1 twa:min-h-0 twa:overflow-y-auto", children: filteredSizingColumns.map((column) => ((0, jsx_runtime_1.jsx)(SizingColumnRow, { column: column, layout: props.layout, resolveDefaultWidth: resolveDefaultWidth, onColumnWidthChange: handleColumnWidthChange, onColumnFlexChange: handleColumnFlexChange, onColumnMinWidthChange: handleColumnMinWidthChange, onColumnMaxWidthChange: handleColumnMaxWidthChange }, column.columnId))) })] }) }));
166
+ };
167
+ exports.ColumnSizingWizardCard = ColumnSizingWizardCard;
@@ -0,0 +1,30 @@
1
+ import type { ColumnSizingDefinition } from '../../../../AdaptableState/LayoutState';
2
+ import type { ColumnSort, Layout } from '../../../../../types';
3
+ export declare const COLUMN_PINNING_OPTIONS: {
4
+ value: 'left' | 'right' | 'None';
5
+ label: string;
6
+ }[];
7
+ export declare const COLUMN_SORT_OPTIONS: {
8
+ value: ColumnSort['SortOrder'] | 'None';
9
+ label: string;
10
+ }[];
11
+ export type ColumnDefaultWidthResolver = (columnId: string) => number;
12
+ export declare function getLayoutPinnedColumnIds(layout: Layout, side: 'left' | 'right'): string[];
13
+ /** Whether this column has sizing stored in the Layout that differs from grid defaults. */
14
+ export declare function hasExplicitLayoutSizing(columnId: string, sizing: ColumnSizingDefinition | undefined, resolveDefaultWidth?: ColumnDefaultWidthResolver): boolean;
15
+ export declare function getLayoutExplicitSizedColumnIds(layout: Layout, resolveDefaultWidth?: ColumnDefaultWidthResolver): string[];
16
+ export declare function formatColumnSizingBrief(columnId: string, sizing: ColumnSizingDefinition | undefined, resolveDefaultWidth?: ColumnDefaultWidthResolver): string;
17
+ /** Width/flex values to show in the sizing editor (default grid widths are omitted). */
18
+ export declare function getExplicitSizingDisplayValues(columnId: string, sizing: ColumnSizingDefinition | undefined, resolveDefaultWidth?: ColumnDefaultWidthResolver): {
19
+ width: number | undefined;
20
+ flex: number | undefined;
21
+ minWidth: number | undefined;
22
+ maxWidth: number | undefined;
23
+ };
24
+ export declare function formatColumnInspectorPinning(layout: Layout, columnId: string): string;
25
+ export declare function formatColumnInspectorSizing(columnId: string, sizing: ColumnSizingDefinition | undefined, resolveDefaultWidth?: ColumnDefaultWidthResolver): string;
26
+ export declare function formatColumnInspectorSorting(layout: Layout, columnId: string): string;
27
+ export declare function getColumnSortSelection(layout: Layout, columnId: string): ColumnSort['SortOrder'] | 'None';
28
+ export declare function applyColumnPinChange(layout: Layout, columnId: string, pinning: 'left' | 'right' | null): Layout;
29
+ export declare function applyColumnSortChange(layout: Layout, columnId: string, sortOrder: ColumnSort['SortOrder'] | 'None'): Layout;
30
+ export declare function applyColumnSizingFieldChange(layout: Layout, columnId: string, field: 'width' | 'flex' | 'minWidth' | 'maxWidth', value: number | undefined, resolveDefaultWidth: ColumnDefaultWidthResolver): Layout;
@@ -0,0 +1,216 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.COLUMN_SORT_OPTIONS = exports.COLUMN_PINNING_OPTIONS = void 0;
4
+ exports.getLayoutPinnedColumnIds = getLayoutPinnedColumnIds;
5
+ exports.hasExplicitLayoutSizing = hasExplicitLayoutSizing;
6
+ exports.getLayoutExplicitSizedColumnIds = getLayoutExplicitSizedColumnIds;
7
+ exports.formatColumnSizingBrief = formatColumnSizingBrief;
8
+ exports.getExplicitSizingDisplayValues = getExplicitSizingDisplayValues;
9
+ exports.formatColumnInspectorPinning = formatColumnInspectorPinning;
10
+ exports.formatColumnInspectorSizing = formatColumnInspectorSizing;
11
+ exports.formatColumnInspectorSorting = formatColumnInspectorSorting;
12
+ exports.getColumnSortSelection = getColumnSortSelection;
13
+ exports.applyColumnPinChange = applyColumnPinChange;
14
+ exports.applyColumnSortChange = applyColumnSortChange;
15
+ exports.applyColumnSizingFieldChange = applyColumnSizingFieldChange;
16
+ exports.COLUMN_PINNING_OPTIONS = [
17
+ { value: 'left', label: 'Left' },
18
+ { value: 'None', label: 'None' },
19
+ { value: 'right', label: 'Right' },
20
+ ];
21
+ exports.COLUMN_SORT_OPTIONS = [
22
+ { value: 'Asc', label: 'Asc' },
23
+ { value: 'Desc', label: 'Desc' },
24
+ { value: 'None', label: 'None' },
25
+ ];
26
+ function getLayoutPinnedColumnIds(layout, side) {
27
+ const pinning = layout.ColumnPinning ?? {};
28
+ return Object.entries(pinning)
29
+ .filter(([, pin]) => pin === side)
30
+ .map(([columnId]) => columnId);
31
+ }
32
+ /** Whether this column has sizing stored in the Layout that differs from grid defaults. */
33
+ function hasExplicitLayoutSizing(columnId, sizing, resolveDefaultWidth) {
34
+ if (!sizing) {
35
+ return false;
36
+ }
37
+ if (sizing.Flex != null) {
38
+ return true;
39
+ }
40
+ if (sizing.MinWidth != null || sizing.MaxWidth != null) {
41
+ return true;
42
+ }
43
+ if (sizing.Width != null) {
44
+ if (resolveDefaultWidth) {
45
+ return sizing.Width !== resolveDefaultWidth(columnId);
46
+ }
47
+ return true;
48
+ }
49
+ return false;
50
+ }
51
+ function getLayoutExplicitSizedColumnIds(layout, resolveDefaultWidth) {
52
+ const sizing = layout.ColumnSizing ?? {};
53
+ return Object.keys(sizing).filter((columnId) => hasExplicitLayoutSizing(columnId, sizing[columnId], resolveDefaultWidth));
54
+ }
55
+ function formatColumnSizingBrief(columnId, sizing, resolveDefaultWidth) {
56
+ if (!hasExplicitLayoutSizing(columnId, sizing, resolveDefaultWidth)) {
57
+ return '';
58
+ }
59
+ const display = getExplicitSizingDisplayValues(columnId, sizing, resolveDefaultWidth);
60
+ const parts = [];
61
+ if (display.flex != null) {
62
+ parts.push(`flex ${display.flex}`);
63
+ }
64
+ else if (display.width != null) {
65
+ parts.push(String(display.width));
66
+ }
67
+ if (display.minWidth != null) {
68
+ parts.push(`min ${display.minWidth}`);
69
+ }
70
+ if (display.maxWidth != null) {
71
+ parts.push(`max ${display.maxWidth}`);
72
+ }
73
+ return parts.join(', ');
74
+ }
75
+ /** Width/flex values to show in the sizing editor (default grid widths are omitted). */
76
+ function getExplicitSizingDisplayValues(columnId, sizing, resolveDefaultWidth) {
77
+ if (!sizing) {
78
+ return {
79
+ width: undefined,
80
+ flex: undefined,
81
+ minWidth: undefined,
82
+ maxWidth: undefined,
83
+ };
84
+ }
85
+ const width = sizing.Width != null &&
86
+ (!resolveDefaultWidth || sizing.Width !== resolveDefaultWidth(columnId))
87
+ ? sizing.Width
88
+ : undefined;
89
+ return {
90
+ width,
91
+ flex: sizing.Flex ?? undefined,
92
+ minWidth: sizing.MinWidth ?? undefined,
93
+ maxWidth: sizing.MaxWidth ?? undefined,
94
+ };
95
+ }
96
+ function formatColumnInspectorPinning(layout, columnId) {
97
+ const pin = layout.ColumnPinning?.[columnId];
98
+ if (pin === 'left') {
99
+ return 'Left';
100
+ }
101
+ if (pin === 'right') {
102
+ return 'Right';
103
+ }
104
+ return 'None';
105
+ }
106
+ function formatColumnInspectorSizing(columnId, sizing, resolveDefaultWidth) {
107
+ if (!hasExplicitLayoutSizing(columnId, sizing, resolveDefaultWidth)) {
108
+ return 'Default';
109
+ }
110
+ const display = getExplicitSizingDisplayValues(columnId, sizing, resolveDefaultWidth);
111
+ const parts = [];
112
+ if (display.width != null) {
113
+ parts.push(String(display.width));
114
+ }
115
+ if (display.flex != null) {
116
+ parts.push(`flex ${display.flex}`);
117
+ }
118
+ if (display.minWidth != null) {
119
+ parts.push(`min ${display.minWidth}`);
120
+ }
121
+ if (display.maxWidth != null) {
122
+ parts.push(`max ${display.maxWidth}`);
123
+ }
124
+ return parts.length ? parts.join(', ') : 'Default';
125
+ }
126
+ function formatColumnInspectorSorting(layout, columnId) {
127
+ return getColumnSortSelection(layout, columnId);
128
+ }
129
+ function getColumnSortSelection(layout, columnId) {
130
+ const sort = (layout.ColumnSorts ?? []).find((entry) => entry.ColumnId === columnId);
131
+ return sort?.SortOrder ?? 'None';
132
+ }
133
+ function applyColumnPinChange(layout, columnId, pinning) {
134
+ const ColumnPinning = { ...layout.ColumnPinning };
135
+ if (pinning) {
136
+ ColumnPinning[columnId] = pinning;
137
+ }
138
+ else {
139
+ delete ColumnPinning[columnId];
140
+ }
141
+ return {
142
+ ...layout,
143
+ ColumnPinning,
144
+ };
145
+ }
146
+ function applyColumnSortChange(layout, columnId, sortOrder) {
147
+ const existing = layout.ColumnSorts ?? [];
148
+ if (sortOrder === 'None') {
149
+ return {
150
+ ...layout,
151
+ ColumnSorts: existing.filter((entry) => entry.ColumnId !== columnId),
152
+ };
153
+ }
154
+ const current = existing.find((entry) => entry.ColumnId === columnId);
155
+ if (current) {
156
+ return {
157
+ ...layout,
158
+ ColumnSorts: existing.map((entry) => entry.ColumnId === columnId ? { ...entry, SortOrder: sortOrder } : entry),
159
+ };
160
+ }
161
+ return {
162
+ ...layout,
163
+ ColumnSorts: [...existing, { ColumnId: columnId, SortOrder: sortOrder }],
164
+ };
165
+ }
166
+ function applyColumnSizingFieldChange(layout, columnId, field, value, resolveDefaultWidth) {
167
+ const ColumnSizing = { ...layout.ColumnSizing };
168
+ const colSizingForCol = { ...(ColumnSizing[columnId] ?? {}) };
169
+ const next = { ...colSizingForCol };
170
+ switch (field) {
171
+ case 'width':
172
+ if (value == null || value === resolveDefaultWidth(columnId)) {
173
+ delete next.Width;
174
+ }
175
+ else {
176
+ delete next.Flex;
177
+ next.Width = value;
178
+ }
179
+ break;
180
+ case 'flex':
181
+ if (value == null) {
182
+ delete next.Flex;
183
+ }
184
+ else {
185
+ delete next.Width;
186
+ next.Flex = value;
187
+ }
188
+ break;
189
+ case 'minWidth':
190
+ if (value == null) {
191
+ delete next.MinWidth;
192
+ }
193
+ else {
194
+ next.MinWidth = value;
195
+ }
196
+ break;
197
+ case 'maxWidth':
198
+ if (value == null) {
199
+ delete next.MaxWidth;
200
+ }
201
+ else {
202
+ next.MaxWidth = value;
203
+ }
204
+ break;
205
+ }
206
+ if (hasExplicitLayoutSizing(columnId, next, resolveDefaultWidth)) {
207
+ ColumnSizing[columnId] = next;
208
+ }
209
+ else {
210
+ delete ColumnSizing[columnId];
211
+ }
212
+ return {
213
+ ...layout,
214
+ ColumnSizing,
215
+ };
216
+ }
@@ -0,0 +1,8 @@
1
+ import { Layout, PivotLayout, TableLayout } from '../../../../types';
2
+ export declare function getLayoutWizardInitialExpandedCardId(layoutWizardMode: 'create' | 'edit' | undefined, firstCardId: string, isSectionConfigured: boolean): string | null;
3
+ export declare function isColumnsSectionConfigured(layout: TableLayout): boolean;
4
+ export declare function isRowGroupingSectionConfigured(layout: Layout): boolean;
5
+ export declare function isPivotRowGroupingSectionConfigured(layout: PivotLayout): boolean;
6
+ export declare function isTableAggregationsSectionConfigured(layout: TableLayout): boolean;
7
+ export declare function isPivotAggregationsSectionConfigured(layout: PivotLayout): boolean;
8
+ export declare function isPivotColumnsSectionConfigured(layout: PivotLayout): boolean;
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getLayoutWizardInitialExpandedCardId = getLayoutWizardInitialExpandedCardId;
4
+ exports.isColumnsSectionConfigured = isColumnsSectionConfigured;
5
+ exports.isRowGroupingSectionConfigured = isRowGroupingSectionConfigured;
6
+ exports.isPivotRowGroupingSectionConfigured = isPivotRowGroupingSectionConfigured;
7
+ exports.isTableAggregationsSectionConfigured = isTableAggregationsSectionConfigured;
8
+ exports.isPivotAggregationsSectionConfigured = isPivotAggregationsSectionConfigured;
9
+ exports.isPivotColumnsSectionConfigured = isPivotColumnsSectionConfigured;
10
+ function getLayoutWizardInitialExpandedCardId(layoutWizardMode, firstCardId, isSectionConfigured) {
11
+ if (layoutWizardMode !== 'create' || isSectionConfigured) {
12
+ return null;
13
+ }
14
+ return firstCardId;
15
+ }
16
+ function isColumnsSectionConfigured(layout) {
17
+ if ((layout.TableColumns?.length ?? 0) > 0) {
18
+ return true;
19
+ }
20
+ if (layout.ColumnPinning && Object.keys(layout.ColumnPinning).length > 0) {
21
+ return true;
22
+ }
23
+ if ((layout.ColumnSorts?.length ?? 0) > 0) {
24
+ return true;
25
+ }
26
+ if (layout.ColumnSizing && Object.keys(layout.ColumnSizing).length > 0) {
27
+ return true;
28
+ }
29
+ return false;
30
+ }
31
+ function isRowGroupingSectionConfigured(layout) {
32
+ return (layout.RowGroupedColumns?.length ?? 0) > 0;
33
+ }
34
+ function isPivotRowGroupingSectionConfigured(layout) {
35
+ return (layout.PivotGroupedColumns?.length ?? 0) > 0;
36
+ }
37
+ function isTableAggregationsSectionConfigured(layout) {
38
+ if ((layout.TableAggregationColumns?.length ?? 0) > 0) {
39
+ return true;
40
+ }
41
+ if (layout.GrandTotalRow != null && layout.GrandTotalRow !== false) {
42
+ return true;
43
+ }
44
+ return false;
45
+ }
46
+ function isPivotAggregationsSectionConfigured(layout) {
47
+ if ((layout.PivotAggregationColumns?.length ?? 0) > 0) {
48
+ return true;
49
+ }
50
+ if (layout.GrandTotalRow != null && layout.GrandTotalRow !== false) {
51
+ return true;
52
+ }
53
+ if (layout.PivotGrandTotal != null && layout.PivotGrandTotal !== false) {
54
+ return true;
55
+ }
56
+ if (layout.PivotColumnTotal != null && layout.PivotColumnTotal !== false) {
57
+ return true;
58
+ }
59
+ return false;
60
+ }
61
+ function isPivotColumnsSectionConfigured(layout) {
62
+ if ((layout.PivotColumns?.length ?? 0) > 0) {
63
+ return true;
64
+ }
65
+ if (layout.PivotResultColumnsOrder) {
66
+ return true;
67
+ }
68
+ if ((layout.ColumnSorts?.length ?? 0) > 0) {
69
+ return true;
70
+ }
71
+ return false;
72
+ }
@@ -0,0 +1,11 @@
1
+ import { AdaptableColumn } from '../../../../AdaptableState/Common/AdaptableColumn';
2
+ import type { IAdaptable } from '../../../../AdaptableInterfaces/IAdaptable';
3
+ import type { Layout } from '../../../../../types';
4
+ /** ValueSelector row sizing — matches Visibility and Order list rows. */
5
+ export declare const LAYOUT_WIZARD_COLUMN_LIST_OPTION_CLASS = "twa:!py-1 twa:!px-1.5";
6
+ /** Compact list header — spacing between Select All, Show Selected Only, and search. */
7
+ export declare const LAYOUT_WIZARD_COLUMN_LIST_HEADER_CLASS = "twa:gap-4";
8
+ /** Narrow search field (matches Visibility list column width, not full card width). */
9
+ export declare const LAYOUT_WIZARD_COLUMN_LIST_SEARCH_CLASS = "twa:w-[12rem] twa:shrink-0 twa:min-w-0";
10
+ /** Columns shown in Layout wizard column steps, in layout table order. */
11
+ export declare function getLayoutWizardOrderedColumns(adaptable: IAdaptable, layout: Layout): AdaptableColumn[];