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

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 (250) hide show
  1. package/index.css +117 -62
  2. package/package.json +9 -4
  3. package/src/AdaptableOptions/EditOptions.d.ts +2 -2
  4. package/src/AdaptableState/Common/AggregationColumns.d.ts +14 -6
  5. package/src/AdaptableState/Common/AggregationColumns.js +30 -3
  6. package/src/AdaptableState/Common/ColumnScope.d.ts +4 -0
  7. package/src/AdaptableState/Common/Enums.d.ts +5 -5
  8. package/src/AdaptableState/Common/Enums.js +4 -4
  9. package/src/AdaptableState/PlusMinusState.d.ts +3 -3
  10. package/src/AdaptableState/ShortcutState.d.ts +2 -6
  11. package/src/AdaptableState/StyledColumnState.d.ts +3 -5
  12. package/src/AdaptableState/ThemeState.d.ts +33 -28
  13. package/src/Api/EventApi.d.ts +14 -1
  14. package/src/Api/Events/ThemeChanged.d.ts +6 -0
  15. package/src/Api/Events/ThemeSelected.d.ts +11 -0
  16. package/src/Api/Events/ThemeSelected.js +2 -0
  17. package/src/Api/Implementation/EventApiImpl.js +4 -0
  18. package/src/Api/Implementation/LayoutApiImpl.d.ts +0 -2
  19. package/src/Api/Implementation/LayoutApiImpl.js +0 -14
  20. package/src/Api/Implementation/LayoutHelpers.d.ts +2 -0
  21. package/src/Api/Implementation/LayoutHelpers.js +19 -8
  22. package/src/Api/Implementation/ThemeApiImpl.d.ts +3 -2
  23. package/src/Api/Implementation/ThemeApiImpl.js +19 -15
  24. package/src/Api/Internal/EventInternalApi.d.ts +2 -0
  25. package/src/Api/Internal/EventInternalApi.js +8 -1
  26. package/src/Api/Internal/StyledColumnInternalApi.d.ts +4 -4
  27. package/src/Api/Internal/StyledColumnInternalApi.js +4 -4
  28. package/src/Api/Internal/ThemeInternalApi.d.ts +0 -1
  29. package/src/Api/Internal/ThemeInternalApi.js +0 -10
  30. package/src/Api/LayoutApi.d.ts +1 -8
  31. package/src/Api/ThemeApi.d.ts +6 -2
  32. package/src/Redux/ActionsReducers/ThemeRedux.d.ts +3 -3
  33. package/src/Strategy/FormatColumnModule.js +12 -5
  34. package/src/Strategy/LayoutModule.js +13 -8
  35. package/src/Strategy/StyledColumnModule.js +58 -30
  36. package/src/Utilities/Constants/ReduxConstants.d.ts +2 -2
  37. package/src/Utilities/Constants/ReduxConstants.js +1 -14
  38. package/src/Utilities/Helpers/FormatHelper.js +20 -1
  39. package/src/Utilities/Helpers/SparklineOptionsHelper.d.ts +7 -0
  40. package/src/Utilities/Helpers/SparklineOptionsHelper.js +68 -0
  41. package/src/Utilities/Helpers/StyledColumnGradientHelper.d.ts +23 -1
  42. package/src/Utilities/Helpers/StyledColumnGradientHelper.js +212 -1
  43. package/src/Utilities/Helpers/ThemeHelpers.d.ts +5 -0
  44. package/src/Utilities/Helpers/ThemeHelpers.js +43 -0
  45. package/src/Utilities/Helpers/percentBarPreviewHelper.d.ts +19 -0
  46. package/src/Utilities/Helpers/percentBarPreviewHelper.js +155 -0
  47. package/src/Utilities/ObjectFactory.d.ts +1 -3
  48. package/src/Utilities/ObjectFactory.js +0 -9
  49. package/src/Utilities/Services/ThemeService.js +1 -1
  50. package/src/View/Alert/Wizard/AlertBehaviourWizardSection.js +17 -16
  51. package/src/View/Alert/Wizard/AlertButtonsEditor.js +113 -102
  52. package/src/View/Alert/Wizard/AlertMessageWizardSection.js +12 -13
  53. package/src/View/Alert/Wizard/AlertNotificationWizardSection.js +54 -54
  54. package/src/View/Alert/Wizard/AlertRulesWizardSection.js +4 -3
  55. package/src/View/Alert/Wizard/AlertScheduledWizardSection.js +1 -1
  56. package/src/View/Alert/Wizard/AlertScopeWizardSection.js +29 -37
  57. package/src/View/Alert/Wizard/AlertTypeWizardSection.js +2 -3
  58. package/src/View/CalculatedColumn/Wizard/CalculatedColumnDefinitionWizardSection.js +9 -13
  59. package/src/View/CalculatedColumn/Wizard/CalculatedColumnExpressionWizardSection.js +28 -15
  60. package/src/View/CalculatedColumn/Wizard/CalculatedColumnSettingsWizardSection.js +7 -9
  61. package/src/View/CalculatedColumn/Wizard/CalculatedColumnTypeSection.js +2 -2
  62. package/src/View/CellSummary/CellSummaryViewPanel.js +1 -1
  63. package/src/View/Charting/ChartingWizard/AgChargingWizard/AgChargingWizard.js +3 -10
  64. package/src/View/Charting/ChartingWizard/AgChargingWizard/PreviewChartSection.js +1 -1
  65. package/src/View/Charting/ChartingWizard/AgChargingWizard/SettingsSection.js +32 -41
  66. package/src/View/Charting/ChartingWizard/ExternalChartingWizard/ExternalChartingWizard.js +4 -31
  67. package/src/View/Charting/ChartingWizard/ExternalChartingWizard/PreviewChartSection.d.ts +5 -0
  68. package/src/View/Charting/ChartingWizard/ExternalChartingWizard/PreviewChartSection.js +26 -0
  69. package/src/View/Charting/ChartingWizard/ExternalChartingWizard/SettingsSection.d.ts +1 -0
  70. package/src/View/Charting/ChartingWizard/ExternalChartingWizard/SettingsSection.js +9 -6
  71. package/src/View/Comments/CommentsEditor.js +1 -1
  72. package/src/View/Components/ColumnFilter/components/ColumnFilterInput.js +0 -1
  73. package/src/View/Components/ColumnFilter/components/ColumnFilterInputList.js +3 -1
  74. package/src/View/Components/ModuleProfile.js +1 -1
  75. package/src/View/Components/Popups/WindowPopups/windowFactory.d.ts +0 -1
  76. package/src/View/Components/Popups/WindowPopups/windowFactory.js +1 -2
  77. package/src/View/Components/RangesComponent.d.ts +7 -2
  78. package/src/View/Components/RangesComponent.js +94 -22
  79. package/src/View/Components/StyleComponent.d.ts +1 -0
  80. package/src/View/Components/StyleComponent.js +1 -1
  81. package/src/View/Components/ValueSelector/index.js +70 -57
  82. package/src/View/CustomSort/Wizard/CustomSortColumnWizardSection.js +8 -13
  83. package/src/View/CustomSort/Wizard/CustomSortValuesWizardSection.js +8 -8
  84. package/src/View/DataChangeHistory/DataChangeHistoryGrid.js +1 -1
  85. package/src/View/DataImport/DataImportWizard/sections/ColumnsSection.js +11 -12
  86. package/src/View/DataImport/DataImportWizard/sections/UploadSection/UploadSection.js +5 -4
  87. package/src/View/DataImport/DataImportWizard/sections/UploadSection/UploadTextSection.js +2 -1
  88. package/src/View/DataImport/DataImportWizard/sections/ValidationSection.js +4 -15
  89. package/src/View/Export/Wizard/ReportColumnsWizardSection.js +24 -27
  90. package/src/View/Export/Wizard/ReportNameWizardSection.js +8 -11
  91. package/src/View/Export/Wizard/ReportRowsWizardSection.js +19 -22
  92. package/src/View/Export/Wizard/ScheduledReportSettings.d.ts +2 -0
  93. package/src/View/Export/Wizard/ScheduledReportSettings.js +12 -12
  94. package/src/View/Export/Wizard/ScheduledReportWizard.js +2 -3
  95. package/src/View/FlashingCell/Wizard/FlashingCellRulesWizardSection.js +8 -6
  96. package/src/View/FlashingCell/Wizard/FlashingCellScopeWizardSection.js +19 -20
  97. package/src/View/FlashingCell/Wizard/FlashingCellSettingsWizardSection.js +20 -11
  98. package/src/View/FlashingCell/Wizard/FlashingCellStyleWizardSection.js +19 -3
  99. package/src/View/FlashingCell/Wizard/FlashingCellWizard.js +4 -4
  100. package/src/View/FormatColumn/Wizard/FormatColumnFormatWizardSection.d.ts +7 -0
  101. package/src/View/FormatColumn/Wizard/FormatColumnFormatWizardSection.js +120 -13
  102. package/src/View/FormatColumn/Wizard/FormatColumnPreview.d.ts +15 -0
  103. package/src/View/FormatColumn/Wizard/FormatColumnPreview.js +78 -0
  104. package/src/View/FormatColumn/Wizard/FormatColumnRuleWizardSection.d.ts +4 -0
  105. package/src/View/FormatColumn/Wizard/FormatColumnRuleWizardSection.js +34 -0
  106. package/src/View/FormatColumn/Wizard/FormatColumnScopeWizardSection.js +11 -6
  107. package/src/View/FormatColumn/Wizard/FormatColumnSettingsWizardSection.js +1 -1
  108. package/src/View/FormatColumn/Wizard/FormatColumnStyleWizardSection.d.ts +3 -1
  109. package/src/View/FormatColumn/Wizard/FormatColumnStyleWizardSection.js +64 -13
  110. package/src/View/FormatColumn/Wizard/FormatColumnWizard.js +3 -1
  111. package/src/View/FreeTextColumn/Utilities/getFreeTextColumnSettingsTags.d.ts +2 -0
  112. package/src/View/FreeTextColumn/Utilities/getFreeTextColumnSettingsTags.js +19 -0
  113. package/src/View/FreeTextColumn/Wizard/FreeTextColumnDefinitionWizardSection.d.ts +10 -0
  114. package/src/View/FreeTextColumn/Wizard/FreeTextColumnDefinitionWizardSection.js +60 -0
  115. package/src/View/FreeTextColumn/Wizard/FreeTextColumnSettingsWizardSection.d.ts +2 -3
  116. package/src/View/FreeTextColumn/Wizard/FreeTextColumnSettingsWizardSection.js +35 -70
  117. package/src/View/FreeTextColumn/Wizard/FreeTextColumnWizard.js +14 -10
  118. package/src/View/Layout/TransposedPopup.js +2 -2
  119. package/src/View/Layout/Wizard/LayoutWizard.js +3 -3
  120. package/src/View/Layout/Wizard/sections/AggregationsSection.d.ts +2 -3
  121. package/src/View/Layout/Wizard/sections/AggregationsSection.js +116 -26
  122. package/src/View/Layout/Wizard/sections/ColumnsSection.js +79 -79
  123. package/src/View/Layout/Wizard/sections/FilterSection.js +31 -32
  124. package/src/View/Layout/Wizard/sections/GridFilterSection.js +10 -10
  125. package/src/View/Layout/Wizard/sections/PivotAggregationsSection.d.ts +1 -2
  126. package/src/View/Layout/Wizard/sections/PivotAggregationsSection.js +101 -51
  127. package/src/View/Layout/Wizard/sections/PivotColumnsSection.js +9 -8
  128. package/src/View/Layout/Wizard/sections/PivotRowGroupingSection.js +4 -4
  129. package/src/View/Layout/Wizard/sections/RowGroupingSection.js +36 -33
  130. package/src/View/Layout/Wizard/sections/RowSelectionSection.js +2 -2
  131. package/src/View/Layout/Wizard/sections/RowSummarySection.js +95 -73
  132. package/src/View/Layout/Wizard/sections/SettingsSection.js +3 -4
  133. package/src/View/Layout/Wizard/sections/SortSection.js +2 -2
  134. package/src/View/NamedQuery/Wizard/NamedQueryExpressionWizardSection.js +1 -1
  135. package/src/View/NamedQuery/Wizard/NamedQuerySettingsWizardSection.js +7 -12
  136. package/src/View/NamedQuery/Wizard/NamedQueryWizard.js +1 -3
  137. package/src/View/PlusMinus/Wizard/PlusMinusRuleWizardSection.d.ts +4 -0
  138. package/src/View/PlusMinus/Wizard/PlusMinusRuleWizardSection.js +45 -12
  139. package/src/View/PlusMinus/Wizard/PlusMinusScopeWizardSection.js +10 -17
  140. package/src/View/PlusMinus/Wizard/PlusMinusSettingsWizardSection.d.ts +2 -6
  141. package/src/View/PlusMinus/Wizard/PlusMinusSettingsWizardSection.js +5 -21
  142. package/src/View/PlusMinus/Wizard/PlusMinusWizard.js +15 -21
  143. package/src/View/Schedule/Wizard/ScheduleScheduleWizard.js +2 -2
  144. package/src/View/Shortcut/Wizard/ShortcutScopeWizardSection.js +10 -17
  145. package/src/View/Shortcut/Wizard/ShortcutSettingsWizard.js +16 -5
  146. package/src/View/Shortcut/Wizard/ShortcutWizard.js +2 -2
  147. package/src/View/Shortcut/shortcutOperations.d.ts +3 -0
  148. package/src/View/Shortcut/shortcutOperations.js +32 -1
  149. package/src/View/SpecialColumnSettingsWizardStep.js +7 -6
  150. package/src/View/StyledColumn/Wizard/BadgePillStyleEditor.d.ts +5 -0
  151. package/src/View/StyledColumn/Wizard/BadgePillStyleEditor.js +26 -16
  152. package/src/View/StyledColumn/Wizard/StyledColumnBadgeSection.d.ts +10 -2
  153. package/src/View/StyledColumn/Wizard/StyledColumnBadgeSection.js +100 -15
  154. package/src/View/StyledColumn/Wizard/StyledColumnSliceStyleEditors.d.ts +14 -0
  155. package/src/View/StyledColumn/Wizard/StyledColumnSliceStyleEditors.js +48 -25
  156. package/src/View/StyledColumn/Wizard/StyledColumnSparklineSettingsSection.d.ts +2 -3
  157. package/src/View/StyledColumn/Wizard/StyledColumnSparklineSettingsSection.js +109 -33
  158. package/src/View/StyledColumn/Wizard/StyledColumnWizard.js +20 -12
  159. package/src/View/StyledColumn/Wizard/StyledColumnWizardBulletSection.d.ts +5 -0
  160. package/src/View/StyledColumn/Wizard/StyledColumnWizardBulletSection.js +124 -23
  161. package/src/View/StyledColumn/Wizard/StyledColumnWizardGradientSection.d.ts +1 -0
  162. package/src/View/StyledColumn/Wizard/StyledColumnWizardGradientSection.js +35 -11
  163. package/src/View/StyledColumn/Wizard/StyledColumnWizardIconSection.d.ts +5 -0
  164. package/src/View/StyledColumn/Wizard/StyledColumnWizardIconSection.js +88 -11
  165. package/src/View/StyledColumn/Wizard/StyledColumnWizardRangeBarSection.d.ts +5 -0
  166. package/src/View/StyledColumn/Wizard/StyledColumnWizardRangeBarSection.js +125 -35
  167. package/src/View/StyledColumn/Wizard/StyledColumnWizardRatingSection.d.ts +1 -0
  168. package/src/View/StyledColumn/Wizard/StyledColumnWizardRatingSection.js +55 -74
  169. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/BulletRangesSummaryPreview.d.ts +5 -0
  170. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/BulletRangesSummaryPreview.js +20 -0
  171. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/GradientSummaryPreview.js +6 -12
  172. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/PercentBarColumnComparisonPreview.js +5 -5
  173. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/PercentBarRangesPreview.js +2 -1
  174. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/PercentBarStylePreview.d.ts +5 -4
  175. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/PercentBarStylePreview.js +11 -13
  176. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/RangeBarRangesSummaryPreview.d.ts +5 -0
  177. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/RangeBarRangesSummaryPreview.js +20 -0
  178. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnBadgePreview.d.ts +3 -0
  179. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnBadgePreview.js +32 -3
  180. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnBulletPreview.d.ts +9 -0
  181. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnBulletPreview.js +64 -0
  182. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnGradientPreview.d.ts +10 -0
  183. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnGradientPreview.js +35 -0
  184. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnIconPreview.d.ts +10 -0
  185. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnIconPreview.js +96 -0
  186. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnPercentBarPreview.d.ts +8 -0
  187. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnPercentBarPreview.js +57 -0
  188. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnRangeBarPreview.d.ts +8 -0
  189. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnRangeBarPreview.js +58 -0
  190. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnRatingPreview.d.ts +18 -0
  191. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnRatingPreview.js +66 -0
  192. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnSparklinePreview.d.ts +10 -0
  193. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnSparklinePreview.js +133 -0
  194. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/StyledColumnWizardRangesSection.js +12 -5
  195. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/StyledColumnWizardStyleSection.d.ts +1 -5
  196. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/StyledColumnWizardStyleSection.js +53 -29
  197. package/src/View/SystemStatus/Utilities/getStatusItemStyle.js +1 -1
  198. package/src/View/Theme/ThemePopup.d.ts +2 -14
  199. package/src/View/Theme/ThemePopup.js +1 -36
  200. package/src/View/UIHelper.js +1 -1
  201. package/src/View/Wizard/OnePageAdaptableWizard.js +6 -20
  202. package/src/agGrid/AdaptableAgGrid.d.ts +1 -0
  203. package/src/agGrid/AdaptableAgGrid.js +34 -24
  204. package/src/agGrid/AgGridAdapter.d.ts +1 -1
  205. package/src/agGrid/AgGridAdapter.js +27 -17
  206. package/src/agGrid/AgGridColumnAdapter.js +9 -15
  207. package/src/agGrid/AgGridMenuAdapter.d.ts +0 -1
  208. package/src/agGrid/AgGridMenuAdapter.js +20 -37
  209. package/src/agGrid/buildValueAggregationMenuItem.d.ts +19 -0
  210. package/src/agGrid/buildValueAggregationMenuItem.js +114 -0
  211. package/src/agGrid/cellRenderers/IconRenderer.d.ts +6 -0
  212. package/src/agGrid/cellRenderers/IconRenderer.js +46 -17
  213. package/src/agGrid/createAgGridIcon.d.ts +10 -0
  214. package/src/agGrid/createAgGridIcon.js +19 -0
  215. package/src/components/DragAndDropContext/UnusedPanel.js +1 -1
  216. package/src/components/ExpressionEditor/BaseEditorInput.js +1 -1
  217. package/src/components/ExpressionEditor/ExpressionFunctionDocumentation.js +1 -1
  218. package/src/components/Input/NumberInput.js +1 -1
  219. package/src/components/Panel/index.js +1 -1
  220. package/src/components/SimpleButton/index.js +4 -4
  221. package/src/components/Toggle/Toggle.js +1 -1
  222. package/src/components/Toggle/ToggleGroup.js +1 -1
  223. package/src/env.js +2 -2
  224. package/src/layout-manager/src/index.js +2 -9
  225. package/src/metamodel/adaptable.metamodel.d.ts +39 -29
  226. package/src/metamodel/adaptable.metamodel.js +1 -1
  227. package/src/types.d.ts +5 -4
  228. package/themes/dark.css +1 -68
  229. package/themes/light.css +1 -5
  230. package/tsconfig.cjs.tsbuildinfo +1 -1
  231. package/src/Aggregation/ParameterizedAggregationRegistry.d.ts +0 -35
  232. package/src/Aggregation/ParameterizedAggregationRegistry.js +0 -74
  233. package/src/Aggregation/definitions/weightedAverageAggregationDefinition.d.ts +0 -3
  234. package/src/Aggregation/definitions/weightedAverageAggregationDefinition.js +0 -58
  235. package/src/Aggregation/parameterizedAggregationColumnMenu.d.ts +0 -8
  236. package/src/Aggregation/parameterizedAggregationColumnMenu.js +0 -143
  237. package/src/Aggregation/parameterizedAggregationHeader.d.ts +0 -13
  238. package/src/Aggregation/parameterizedAggregationHeader.js +0 -65
  239. package/src/Aggregation/parameterizedAggregationHelpers.d.ts +0 -23
  240. package/src/Aggregation/parameterizedAggregationHelpers.js +0 -121
  241. package/src/Aggregation/parameterizedAggregationWizardHelpers.d.ts +0 -9
  242. package/src/Aggregation/parameterizedAggregationWizardHelpers.js +0 -74
  243. package/src/Aggregation/validateParameterizedAggregations.d.ts +0 -4
  244. package/src/Aggregation/validateParameterizedAggregations.js +0 -25
  245. package/src/View/Layout/Wizard/sections/ParameterizedAggFuncPicker.d.ts +0 -12
  246. package/src/View/Layout/Wizard/sections/ParameterizedAggFuncPicker.js +0 -48
  247. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnBadgeSettings.d.ts +0 -5
  248. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnBadgeSettings.js +0 -32
  249. package/src/View/Theme/VariantSelector.d.ts +0 -8
  250. package/src/View/Theme/VariantSelector.js +0 -25
@@ -6,7 +6,7 @@ const jsx_runtime_1 = require("react/jsx-runtime");
6
6
  const InfiniteTable_1 = require("../../../../components/InfiniteTable");
7
7
  const React = tslib_1.__importStar(require("react"));
8
8
  const Input_1 = tslib_1.__importDefault(require("../../../../components/Input"));
9
- const Tabs_1 = require("../../../../components/Tabs");
9
+ const Card_1 = require("../../../../components/Card");
10
10
  const AdaptableColumn_1 = require("../../../../AdaptableState/Common/AdaptableColumn");
11
11
  const AdaptableContext_1 = require("../../../AdaptableContext");
12
12
  const OnePageAdaptableWizard_1 = require("../../../Wizard/OnePageAdaptableWizard");
@@ -378,87 +378,87 @@ const ColumnsSection = (props) => {
378
378
  .map((col) => col.columnId)
379
379
  : currentOrder.map((col) => col.columnId);
380
380
  const visibleIdsCurrentlyDisplayed = visibleIds.filter((colId) => currentlyDisplayedColumnIds.includes(colId));
381
- return ((0, jsx_runtime_1.jsxs)(Tabs_1.Tabs, { className: "twa:h-full", children: [(0, jsx_runtime_1.jsx)(Tabs_1.Tabs.Tab, { children: "Columns" }), (0, jsx_runtime_1.jsx)(Tabs_1.Tabs.Content, { children: (0, jsx_runtime_1.jsxs)(Flex_1.Box, { className: "twa:gap-2 twa:overflow-hidden twa:grid twa:grid-cols-2 twa:h-full", children: [(0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:gap-2 twa:focus:outline-none twa:flex-1 twa:max-h-full twa:overflow-hidden", "data-name": "columns-container", tabIndex: -1, onKeyDown: (event) => {
382
- const scrollIntoView = (columnId) => {
383
- const el = event.currentTarget.querySelector(`[data-id="${columnId}"]`);
384
- el?.scrollIntoView({ block: 'nearest' });
385
- const input = el?.querySelector('input[type="checkbox"]');
386
- input?.focus();
387
- };
388
- if (event.key === 'ArrowDown') {
389
- event.preventDefault();
390
- event.stopPropagation();
391
- const index = currentlyDisplayedColumnIds.indexOf(selectedColumnId);
392
- if (index === -1) {
393
- return;
381
+ return ((0, jsx_runtime_1.jsxs)(Flex_1.Flex, { flexDirection: "column", className: "twa:h-full", 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-4 twa:font-medium twa:shrink-0", children: "Columns" }), (0, jsx_runtime_1.jsx)(Flex_1.Flex, { flexDirection: "column", className: "twa:flex-1 twa:min-w-0 twa:text-xs twa:opacity-70 twa:font-normal twa:gap-0.5", children: (0, jsx_runtime_1.jsx)(Flex_1.Box, { children: "Drag to reorder and use checkboxes to show or hide columns; click a column to edit in right side panel" }) })] }), (0, jsx_runtime_1.jsxs)(Flex_1.Box, { className: "twa:flex-1 twa:min-h-0 twa:p-2 twa:gap-2 twa:overflow-hidden twa:grid twa:grid-cols-2", 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:p-1", children: (0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:gap-2 twa:focus:outline-none twa:flex-1 twa:max-h-full twa:overflow-hidden twa:h-full", "data-name": "columns-container", tabIndex: -1, onKeyDown: (event) => {
382
+ const scrollIntoView = (columnId) => {
383
+ const el = event.currentTarget.querySelector(`[data-id="${columnId}"]`);
384
+ el?.scrollIntoView({ block: 'nearest' });
385
+ const input = el?.querySelector('input[type="checkbox"]');
386
+ input?.focus();
387
+ };
388
+ if (event.key === 'ArrowDown') {
389
+ event.preventDefault();
390
+ event.stopPropagation();
391
+ const index = currentlyDisplayedColumnIds.indexOf(selectedColumnId);
392
+ if (index === -1) {
393
+ return;
394
+ }
395
+ const nextColumnId = currentlyDisplayedColumnIds[index + 1];
396
+ const nextColumn = colIdToCol[nextColumnId];
397
+ if (nextColumn) {
398
+ setSelectedColumnId(nextColumn.columnId);
399
+ scrollIntoView(nextColumn.columnId);
400
+ }
394
401
  }
395
- const nextColumnId = currentlyDisplayedColumnIds[index + 1];
396
- const nextColumn = colIdToCol[nextColumnId];
397
- if (nextColumn) {
398
- setSelectedColumnId(nextColumn.columnId);
399
- scrollIntoView(nextColumn.columnId);
402
+ if (event.key === 'ArrowUp') {
403
+ event.preventDefault();
404
+ event.stopPropagation();
405
+ const index = currentlyDisplayedColumnIds.indexOf(selectedColumnId);
406
+ if (index === -1) {
407
+ return;
408
+ }
409
+ const previousColumnId = currentlyDisplayedColumnIds[index - 1];
410
+ const previousColumn = colIdToCol[previousColumnId];
411
+ if (previousColumn) {
412
+ setSelectedColumnId(previousColumn.columnId);
413
+ scrollIntoView(previousColumn.columnId);
414
+ }
400
415
  }
401
- }
402
- if (event.key === 'ArrowUp') {
403
- event.preventDefault();
404
- event.stopPropagation();
405
- const index = currentlyDisplayedColumnIds.indexOf(selectedColumnId);
406
- if (index === -1) {
407
- return;
416
+ if (event.key === ' ') {
417
+ const target = event.target;
418
+ if (target.tagName === 'INPUT' &&
419
+ target.type === 'checkbox') {
420
+ return;
421
+ }
422
+ event.preventDefault();
423
+ event.stopPropagation();
424
+ const selectedColumn = colIdToCol[selectedColumnId];
425
+ if (!selectedColumn) {
426
+ return;
427
+ }
428
+ const visible = isColumnVisible({ columnId: selectedColumnId, layout });
429
+ handleColumnVisibilityChange(selectedColumnId, !visible);
408
430
  }
409
- const previousColumnId = currentlyDisplayedColumnIds[index - 1];
410
- const previousColumn = colIdToCol[previousColumnId];
411
- if (previousColumn) {
412
- setSelectedColumnId(previousColumn.columnId);
413
- scrollIntoView(previousColumn.columnId);
414
- }
415
- }
416
- if (event.key === ' ') {
417
- const target = event.target;
418
- if (target.tagName === 'INPUT' &&
419
- target.type === 'checkbox') {
420
- return;
421
- }
422
- event.preventDefault();
423
- event.stopPropagation();
424
- const selectedColumn = colIdToCol[selectedColumnId];
425
- if (!selectedColumn) {
426
- return;
427
- }
428
- const visible = isColumnVisible({ columnId: selectedColumnId, layout });
429
- handleColumnVisibilityChange(selectedColumnId, !visible);
430
- }
431
- }, children: (0, jsx_runtime_1.jsxs)(Flex_1.Box, { className: "twa:flex twa:flex-col twa:gap-2 twa:h-full twa:overflow-hidden twa:p-1", children: [(0, jsx_runtime_1.jsx)(AdaptableFormControlTextClear_1.AdaptableFormControlTextClear, { value: searchInputValue, OnTextChange: setSearchInputValue, placeholder: "Search Columns...", className: "twa:w-full twa:p-1" }), (0, jsx_runtime_1.jsx)(Flex_1.Box, { className: (0, clsx_1.default)('twa:font-bold', 'twa:border-b twa:border-primarydark/30 twa:rounded-standard'), children: (0, jsx_runtime_1.jsx)(CheckBox_1.CheckBox, { checked: currentlyDisplayedColumnIds.length
432
- ? currentlyDisplayedColumnIds.length === visibleIdsCurrentlyDisplayed.length
433
- ? true
434
- : visibleIdsCurrentlyDisplayed.length
435
- ? null
436
- : false
437
- : false, onChange: (checked) => {
438
- handleColumnVisibilityChange(currentlyDisplayedColumnIds, checked);
439
- }, children: "Select All" }) }), (0, jsx_runtime_1.jsx)(ReorderDraggable_1.ReorderDraggable, { className: "twa:overflow-y-auto", toIdentifier: (option) => `${option.columnId}`, isOptionDraggable: (option) => {
440
- return option.moveable;
441
- }, optionClassName: (option) => {
442
- const baseCls = 'ab-Layout-Wizard__ColumnRow twa:cursor-pointer twa:rounded-standard';
443
- if (selectedColumnId !== option.columnId) {
444
- return baseCls;
445
- }
446
- return (0, clsx_1.default)(baseCls, 'twa:after:border-accent twa:relative twa:after:border-2 twa:after:rounded-standard twa:after:pointer-events-none twa:after:inset-0 twa:after:absolute twa:after:bg-accent/15');
447
- }, order: currentOrder, onOptionClick: (option, event) => {
448
- if (event.ctrlKey || option.columnId === selectedColumnId) {
449
- setSelectedColumnId(null);
450
- }
451
- else {
452
- setSelectedColumnId(option.columnId);
453
- const row = event.target.closest?.(`[data-id="${option.columnId}"]`);
454
- const input = row?.querySelector('input[type="checkbox"]');
455
- input?.focus();
456
- }
457
- }, renderOption: (option) => {
458
- return ((0, jsx_runtime_1.jsx)(ColumnRow, { onColumnNameChange: handleColumnNameChange, onColumnWidthChange: handleColumnWidthChange, onColumnFlexChange: handleColumnFlexChange, onColumnMinWidthChange: handleColumnMinWidthChange, onColumnMaxWidthChange: handleColumnMaxWidthChange, onColumnVisibilityChange: handleColumnVisibilityChange, onPinChange: handlePinChange, onCheckboxFocus: setSelectedColumnId, layout: layout, column: option }));
459
- }, onChange: handleColumnsChange })] }) }), currentOrderIds.length ? ((0, jsx_runtime_1.jsx)(ColumnPropertiesEditor, { column: selectedColumnId && currentOrderIds.includes(selectedColumnId)
460
- ? colIdToCol[selectedColumnId] ?? null
461
- : null, layout: layout, onPinChange: handlePinChange, onColumnNameChange: handleColumnNameChange, onColumnWidthChange: handleColumnWidthChange, onColumnFlexChange: handleColumnFlexChange, onColumnMinWidthChange: handleColumnMinWidthChange, onColumnMaxWidthChange: handleColumnMaxWidthChange, onColumnVisibilityChange: handleColumnVisibilityChange })) : null] }) })] }));
431
+ }, children: (0, jsx_runtime_1.jsxs)(Flex_1.Box, { className: "twa:flex twa:flex-col twa:gap-2 twa:h-full twa:overflow-hidden twa:p-1", children: [(0, jsx_runtime_1.jsx)(AdaptableFormControlTextClear_1.AdaptableFormControlTextClear, { value: searchInputValue, OnTextChange: setSearchInputValue, placeholder: "Search Columns...", className: "twa:w-full twa:p-1" }), (0, jsx_runtime_1.jsx)(Flex_1.Box, { className: (0, clsx_1.default)('twa:font-bold', 'twa:border-b twa:border-primarydark/30 twa:rounded-standard'), children: (0, jsx_runtime_1.jsx)(CheckBox_1.CheckBox, { checked: currentlyDisplayedColumnIds.length
432
+ ? currentlyDisplayedColumnIds.length === visibleIdsCurrentlyDisplayed.length
433
+ ? true
434
+ : visibleIdsCurrentlyDisplayed.length
435
+ ? null
436
+ : false
437
+ : false, onChange: (checked) => {
438
+ handleColumnVisibilityChange(currentlyDisplayedColumnIds, checked);
439
+ }, children: "Select All" }) }), (0, jsx_runtime_1.jsx)(ReorderDraggable_1.ReorderDraggable, { className: "twa:overflow-y-auto", toIdentifier: (option) => `${option.columnId}`, isOptionDraggable: (option) => {
440
+ return option.moveable;
441
+ }, optionClassName: (option) => {
442
+ const baseCls = 'ab-Layout-Wizard__ColumnRow twa:cursor-pointer twa:rounded-standard';
443
+ if (selectedColumnId !== option.columnId) {
444
+ return baseCls;
445
+ }
446
+ return (0, clsx_1.default)(baseCls, 'twa:after:border-accent twa:relative twa:after:border-2 twa:after:rounded-standard twa:after:pointer-events-none twa:after:inset-0 twa:after:absolute twa:after:bg-accent/15');
447
+ }, order: currentOrder, onOptionClick: (option, event) => {
448
+ if (event.ctrlKey || option.columnId === selectedColumnId) {
449
+ setSelectedColumnId(null);
450
+ }
451
+ else {
452
+ setSelectedColumnId(option.columnId);
453
+ const row = event.target.closest?.(`[data-id="${option.columnId}"]`);
454
+ const input = row?.querySelector('input[type="checkbox"]');
455
+ input?.focus();
456
+ }
457
+ }, renderOption: (option) => {
458
+ return ((0, jsx_runtime_1.jsx)(ColumnRow, { onColumnNameChange: handleColumnNameChange, onColumnWidthChange: handleColumnWidthChange, onColumnFlexChange: handleColumnFlexChange, onColumnMinWidthChange: handleColumnMinWidthChange, onColumnMaxWidthChange: handleColumnMaxWidthChange, onColumnVisibilityChange: handleColumnVisibilityChange, onPinChange: handlePinChange, onCheckboxFocus: setSelectedColumnId, layout: layout, column: option }));
459
+ }, onChange: handleColumnsChange })] }) }) }) }), currentOrderIds.length ? ((0, jsx_runtime_1.jsx)(ColumnPropertiesEditor, { column: selectedColumnId && currentOrderIds.includes(selectedColumnId)
460
+ ? colIdToCol[selectedColumnId] ?? null
461
+ : null, layout: layout, onPinChange: handlePinChange, onColumnNameChange: handleColumnNameChange, onColumnWidthChange: handleColumnWidthChange, onColumnFlexChange: handleColumnFlexChange, onColumnMinWidthChange: handleColumnMinWidthChange, onColumnMaxWidthChange: handleColumnMaxWidthChange, onColumnVisibilityChange: handleColumnVisibilityChange })) : null] })] }));
462
462
  };
463
463
  exports.ColumnsSection = ColumnsSection;
464
464
  const hr = ((0, jsx_runtime_1.jsx)("hr", { className: "twa:my-3 twa:mb-0 twa:w-full twa:h-[0.5px] twa:bg-input-border/50 twa:border-none" }));
@@ -6,8 +6,6 @@ const jsx_runtime_1 = require("react/jsx-runtime");
6
6
  const React = tslib_1.__importStar(require("react"));
7
7
  const getLayoutFilterViewItems_1 = require("../../../../Strategy/Utilities/Layout/getLayoutFilterViewItems");
8
8
  const ModuleConstants = tslib_1.__importStar(require("../../../../Utilities/Constants/ModuleConstants"));
9
- const FormLayout_1 = tslib_1.__importStar(require("../../../../components/FormLayout"));
10
- const Tabs_1 = require("../../../../components/Tabs");
11
9
  const Tag_1 = require("../../../../components/Tag");
12
10
  const AdaptableContext_1 = require("../../../AdaptableContext");
13
11
  const AdaptableObjectList_1 = require("../../../Components/AdaptableObjectList/AdaptableObjectList");
@@ -15,6 +13,7 @@ const ColumnSelector_1 = require("../../../Components/Selectors/ColumnSelector")
15
13
  const OnePageAdaptableWizard_1 = require("../../../Wizard/OnePageAdaptableWizard");
16
14
  const LayoutColumnFilter_1 = require("../../../Components/ColumnFilter/LayoutColumnFilter");
17
15
  const Flex_1 = require("../../../../components/Flex");
16
+ const Card_1 = require("../../../../components/Card");
18
17
  const isColumnFiltersValid = (layout) => {
19
18
  const invalidColumnFilters = (layout.ColumnFilters ?? [])?.filter((columnFilter) => !columnFilter?.Predicates[0]?.PredicateId);
20
19
  if (invalidColumnFilters.length > 0) {
@@ -47,35 +46,35 @@ const FilterSection = (props) => {
47
46
  ColumnFilters: layoutFilters.map((layoutFilter) => layoutFilter.ColumnId === columnFilter.ColumnId ? { ...columnFilter } : layoutFilter),
48
47
  });
49
48
  }, [layout.ColumnFilters]);
50
- return ((0, jsx_runtime_1.jsxs)(Tabs_1.Tabs, { className: "twa:h-full", children: [(0, jsx_runtime_1.jsx)(Tabs_1.Tabs.Tab, { children: "Column Filters" }), (0, jsx_runtime_1.jsxs)(Tabs_1.Tabs.Content, { children: [(0, jsx_runtime_1.jsx)(FormLayout_1.default, { className: "twa:mb-2", children: (0, jsx_runtime_1.jsx)(FormLayout_1.FormRow, { label: "Add Column Filter", children: (0, jsx_runtime_1.jsx)(ColumnSelector_1.ColumnSelector, { filterColumn: (column) => column.filterable && !layoutFilters.some((f) => f.ColumnId === column.columnId), placeholder: "Select Column to create Filter", onChange: (option) => {
51
- props.onChange({
52
- ...layout,
53
- ColumnFilters: [
54
- ...layoutFilters,
55
- {
56
- ColumnId: option,
57
- Predicates: [],
58
- },
59
- ],
60
- });
61
- } }) }) }), layoutFilters?.length > 0 && ((0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:p-0", as: "ul", children: layoutFilters.map((columnFilter) => {
62
- const moduleItems = filterModule.toView(columnFilter).items;
63
- const column = adaptable.api.columnApi.getColumnWithColumnId(columnFilter.ColumnId);
64
- const columnGroupItems = column?.columnGroup && column.columnGroup.groupCount > 1
65
- ? [{ name: 'Column Group', values: [column.columnGroup.friendlyName] }]
66
- : [];
67
- const items = [
68
- moduleItems[0],
69
- ...columnGroupItems,
70
- ...moduleItems.slice(1),
71
- {
72
- name: 'Column Filter',
73
- view: ((0, jsx_runtime_1.jsx)(LayoutColumnFilter_1.LayoutColumnFilter, { columnFilter: columnFilter, onColumnFilterChange: (columnFilter) => {
74
- handlePredicateEdit(columnFilter);
75
- } })),
76
- },
77
- ];
78
- return ((0, jsx_runtime_1.jsx)(AdaptableObjectList_1.AdaptableObjectListItemView, { module: filterModule, abObject: columnFilter, entityType: "Column Filter", showActions: true, showEditButton: false, items: items, onDelete: () => handleDelete(columnFilter) }, columnFilter.ColumnId));
79
- }) }))] })] }));
49
+ return ((0, jsx_runtime_1.jsxs)(Flex_1.Box, { className: "twa:gap-3 twa:p-3 twa:flex twa:flex-col", 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: "Add Column Filter" }), (0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:text-xs twa:opacity-70 twa:font-normal twa:max-w-[520px]", children: "Select a column and then create a Filter" })] }), (0, jsx_runtime_1.jsx)(Card_1.Card.Body, { className: "twa:p-1", children: (0, jsx_runtime_1.jsx)(ColumnSelector_1.ColumnSelector, { filterColumn: (column) => column.filterable && !layoutFilters.some((f) => f.ColumnId === column.columnId), placeholder: "Select a Column", onChange: (option) => {
50
+ props.onChange({
51
+ ...layout,
52
+ ColumnFilters: [
53
+ ...layoutFilters,
54
+ {
55
+ ColumnId: option,
56
+ Predicates: [],
57
+ },
58
+ ],
59
+ });
60
+ } }) })] }), layoutFilters?.length > 0 && ((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: "Column Filters" }), (0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:text-xs twa:opacity-70 twa:font-normal twa:max-w-[520px]", children: "Configure predicates for each column filter in this Layout" })] }), (0, jsx_runtime_1.jsx)(Card_1.Card.Body, { className: "twa:p-1", children: (0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:p-0", as: "ul", children: layoutFilters.map((columnFilter) => {
61
+ const moduleItems = filterModule.toView(columnFilter).items;
62
+ const column = adaptable.api.columnApi.getColumnWithColumnId(columnFilter.ColumnId);
63
+ const columnGroupItems = column?.columnGroup && column.columnGroup.groupCount > 1
64
+ ? [{ name: 'Column Group', values: [column.columnGroup.friendlyName] }]
65
+ : [];
66
+ const items = [
67
+ moduleItems[0],
68
+ ...columnGroupItems,
69
+ ...moduleItems.slice(1),
70
+ {
71
+ name: 'Column Filter',
72
+ view: ((0, jsx_runtime_1.jsx)(LayoutColumnFilter_1.LayoutColumnFilter, { columnFilter: columnFilter, onColumnFilterChange: (columnFilter) => {
73
+ handlePredicateEdit(columnFilter);
74
+ } })),
75
+ },
76
+ ];
77
+ return ((0, jsx_runtime_1.jsx)(AdaptableObjectList_1.AdaptableObjectListItemView, { module: filterModule, abObject: columnFilter, entityType: "Column Filter", showActions: true, showEditButton: false, items: items, onDelete: () => handleDelete(columnFilter) }, columnFilter.ColumnId));
78
+ }) }) })] }))] }));
80
79
  };
81
80
  exports.FilterSection = FilterSection;
@@ -12,6 +12,7 @@ const ModuleConstants_1 = require("../../../../Utilities/Constants/ModuleConstan
12
12
  const StringExtensions_1 = tslib_1.__importDefault(require("../../../../Utilities/Extensions/StringExtensions"));
13
13
  const useGridFilterOptionsForExpressionEditor_1 = require("../../../GridFilter/useGridFilterOptionsForExpressionEditor");
14
14
  const Flex_1 = require("../../../../components/Flex");
15
+ const Card_1 = require("../../../../components/Card");
15
16
  const isGridFiltersValid = (layout, api) => {
16
17
  const expression = layout?.GridFilter?.Expression;
17
18
  if (StringExtensions_1.default.IsNullOrEmpty(expression)) {
@@ -31,15 +32,14 @@ const GridFilterSection = (props) => {
31
32
  const { data: layout } = (0, OnePageAdaptableWizard_1.useOnePageAdaptableWizardContext)();
32
33
  const initialData = React.useMemo(() => api.internalApi.getQueryPreviewData(), []);
33
34
  const expressionEditorProps = (0, useGridFilterOptionsForExpressionEditor_1.useGridFilterOptionsForExpressionEditorProps)();
34
- const expressionEditorContent = ((0, jsx_runtime_1.jsx)(ExpressionEditor_1.ExpressionEditor, { ...expressionEditorProps, allowSaveNamedQuery: false, type: 'boolean', module: ModuleConstants_1.GridFilterModuleId, value: layout?.GridFilter?.Expression ?? '', onChange: (expression) => {
35
- props.onChange({
36
- ...layout,
37
- GridFilter: {
38
- ...layout.GridFilter,
39
- Expression: expression,
40
- },
41
- });
42
- }, initialData: initialData, columns: api.columnApi.internalApi.getQueryableColumnsForUIEditor(), fields: api.expressionApi.internalApi.getAvailableFields(), namedQueries: api.namedQueryApi.getNamedQueries(), api: api }));
43
- return (0, jsx_runtime_1.jsx)("div", { children: expressionEditorContent });
35
+ return ((0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "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: "Grid Filter" }), (0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:text-xs twa:opacity-70 twa:font-normal twa:max-w-[520px]", children: "Define a boolean expression to filter rows across the entire grid in this Layout" })] }), (0, jsx_runtime_1.jsx)(Card_1.Card.Body, { className: "twa:p-1", children: (0, jsx_runtime_1.jsx)(ExpressionEditor_1.ExpressionEditor, { ...expressionEditorProps, allowSaveNamedQuery: false, type: 'boolean', module: ModuleConstants_1.GridFilterModuleId, value: layout?.GridFilter?.Expression ?? '', onChange: (expression) => {
36
+ props.onChange({
37
+ ...layout,
38
+ GridFilter: {
39
+ ...layout.GridFilter,
40
+ Expression: expression,
41
+ },
42
+ });
43
+ }, initialData: initialData, columns: api.columnApi.internalApi.getQueryableColumnsForUIEditor(), fields: api.expressionApi.internalApi.getAvailableFields(), namedQueries: api.namedQueryApi.getNamedQueries(), api: api }) })] }) }));
44
44
  };
45
45
  exports.GridFilterSection = GridFilterSection;
@@ -1,7 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import { PivotLayout } from '../../../../../types';
3
- import { validatePivotLayoutAggregations } from '../../../../Aggregation/validateParameterizedAggregations';
4
- export declare const isPivotAggregationsSectionValid: typeof validatePivotLayoutAggregations;
3
+ export declare const isPivotAggregationsSectionValid: (data: PivotLayout) => true | string;
5
4
  export declare const PivotAggregationsSectionSummary: React.FunctionComponent;
6
5
  interface PivotAggregationsSectionProps {
7
6
  onChange: (data: PivotLayout) => void;
@@ -7,13 +7,9 @@ const React = tslib_1.__importStar(require("react"));
7
7
  const CheckBox_1 = require("../../../../components/CheckBox");
8
8
  const DropdownButton_1 = tslib_1.__importDefault(require("../../../../components/DropdownButton"));
9
9
  const FormLayout_1 = tslib_1.__importStar(require("../../../../components/FormLayout"));
10
- const Tabs_1 = require("../../../../components/Tabs");
10
+ const Card_1 = require("../../../../components/Card");
11
11
  const Tag_1 = require("../../../../components/Tag");
12
12
  const AggregationColumns_1 = require("../../../../AdaptableState/Common/AggregationColumns");
13
- const validateParameterizedAggregations_1 = require("../../../../Aggregation/validateParameterizedAggregations");
14
- const parameterizedAggregationHeader_1 = require("../../../../Aggregation/parameterizedAggregationHeader");
15
- const parameterizedAggregationWizardHelpers_1 = require("../../../../Aggregation/parameterizedAggregationWizardHelpers");
16
- const ParameterizedAggFuncPicker_1 = require("./ParameterizedAggFuncPicker");
17
13
  const AdaptableContext_1 = require("../../../AdaptableContext");
18
14
  const ValueSelector_1 = require("../../../Components/ValueSelector");
19
15
  const OnePageAdaptableWizard_1 = require("../../../Wizard/OnePageAdaptableWizard");
@@ -26,6 +22,33 @@ const NewSelect_1 = require("../../../../components/NewSelect");
26
22
  const PivotColumnRow = (props) => {
27
23
  const adaptable = (0, AdaptableContext_1.useAdaptable)();
28
24
  const aggValue = (props.layout.PivotAggregationColumns || []).find((x) => x.ColumnId === props.column.columnId)?.AggFunc;
25
+ // Weighted Average is not supported in Pivot Layouts, so only the standard
26
+ // AG Grid aggregation functions are offered here.
27
+ const aggFunctionNames = props.column.availableAggregationFunctions || [];
28
+ const currentAggFnName = props.aggregationColumnsMap[props.column.columnId];
29
+ const updateAggFunc = (fnName) => {
30
+ let aggCols = [...(props.layout.PivotAggregationColumns || [])];
31
+ const AggFuncValue = fnName;
32
+ let found = false;
33
+ aggCols = aggCols.map(({ ColumnId, AggFunc, ...rest }) => {
34
+ if (ColumnId === props.column.columnId) {
35
+ found = true;
36
+ return {
37
+ ColumnId,
38
+ AggFunc: AggFuncValue,
39
+ ...rest,
40
+ };
41
+ }
42
+ return { ColumnId, AggFunc, ...rest };
43
+ });
44
+ if (!found) {
45
+ aggCols.push({
46
+ ColumnId: props.column.columnId,
47
+ AggFunc: AggFuncValue,
48
+ });
49
+ }
50
+ props.onChangeAggFunction(aggCols);
51
+ };
29
52
  const totalOptions = ['Off', 'Before', 'After', 'Pivot Specific'].map((totalVariant) => {
30
53
  return {
31
54
  label: totalVariant,
@@ -98,8 +121,11 @@ const PivotColumnRow = (props) => {
98
121
  label: option,
99
122
  value: option === 'Off' ? false : option.toLowerCase(),
100
123
  }));
101
- return ((0, jsx_runtime_1.jsx)(Flex_1.Box, { "data-name": props.column.columnId, className: "ab-Layout-Wizard__ColumnRow", children: (0, jsx_runtime_1.jsxs)(Flex_1.Flex, { alignItems: "flex-start", children: [(0, jsx_runtime_1.jsxs)(Flex_1.Flex, { className: "twa:flex-[0_0_auto]", alignItems: "center", children: [(0, jsx_runtime_1.jsx)(Flex_1.Flex, { className: "twa:min-w-[80px]", children: props.column.friendlyName }), (0, jsx_runtime_1.jsx)(ColumnGroupTag_1.ColumnGroupTag, { column: props.column }), (0, jsx_runtime_1.jsx)(ParameterizedAggFuncPicker_1.ParameterizedAggFuncPicker, { column: props.column, aggValue: aggValue, aggregationColumnsMap: props.aggregationColumnsMap, numberColumns: props.numberColumns, aggregationEntries: props.layout.PivotAggregationColumns || [], onChangeEntries: props.onChangeAggFunction, availableAggregationFunctions: props.column.availableAggregationFunctions }), aggValue && ((0, jsx_runtime_1.jsxs)(Flex_1.Flex, { className: "twa:bg-primary twa:ml-3", alignItems: "center", children: [(0, jsx_runtime_1.jsx)(Flex_1.Box, { children: "Total" }), ' ', (0, jsx_runtime_1.jsx)(DropdownButton_1.default, { columns: ['label'], items: totalOptions, className: "twa:ml-2", children: currentTotal })] }))] }), hasPivotSpecificTotals && ((0, jsx_runtime_1.jsx)(Flex_1.Flex, { className: "twa:ml-2 twa:pl-2 twa:flex-[1_1_auto] twa:min-w-[200px]", flexWrap: "wrap", alignItems: "center", style: {
102
- borderLeft: '1px solid var(--ab-color-text-on-primary)',
124
+ return ((0, jsx_runtime_1.jsx)(Flex_1.Box, { "data-name": props.column.columnId, className: "ab-Layout-Wizard__ColumnRow", children: (0, jsx_runtime_1.jsxs)(Flex_1.Flex, { alignItems: "flex-start", children: [(0, jsx_runtime_1.jsxs)(Flex_1.Flex, { className: "twa:flex-[0_0_auto]", alignItems: "center", children: [(0, jsx_runtime_1.jsx)(Flex_1.Flex, { className: "twa:min-w-[80px]", children: props.column.friendlyName }), (0, jsx_runtime_1.jsx)(ColumnGroupTag_1.ColumnGroupTag, { column: props.column }), aggValue && ((0, jsx_runtime_1.jsx)(NewSelect_1.SingleSelect, { className: "twa:min-w-[140px] twa:ml-2", value: currentAggFnName, items: aggFunctionNames.map((fnName) => ({
125
+ label: fnName,
126
+ value: fnName,
127
+ })), onValueChange: updateAggFunc })), aggValue && ((0, jsx_runtime_1.jsxs)(Flex_1.Flex, { className: "twa:bg-primary twa:ml-3", alignItems: "center", children: [(0, jsx_runtime_1.jsx)(Flex_1.Box, { children: "Total" }), ' ', (0, jsx_runtime_1.jsx)(DropdownButton_1.default, { columns: ['label'], items: totalOptions, className: "twa:ml-2", children: currentTotal })] }))] }), hasPivotSpecificTotals && ((0, jsx_runtime_1.jsx)(Flex_1.Flex, { className: "twa:ml-2 twa:pl-2 twa:flex-[1_1_auto] twa:min-w-[200px]", flexWrap: "wrap", alignItems: "center", style: {
128
+ borderLeft: '1px solid var(--ab-color-primary-foreground)',
103
129
  rowGap: '8px',
104
130
  columnGap: '12px',
105
131
  }, children: props.layout.PivotColumns.map((pivotColId) => {
@@ -121,14 +147,25 @@ const PivotColumnRow = (props) => {
121
147
  })), children: currentValue })] }, pivotColId));
122
148
  }) }))] }) }));
123
149
  };
124
- exports.isPivotAggregationsSectionValid = validateParameterizedAggregations_1.validatePivotLayoutAggregations;
150
+ const isPivotAggregationsSectionValid = (data) => {
151
+ const weightedAvg = data.PivotAggregationColumns
152
+ ? (data.PivotAggregationColumns || [])
153
+ .map((agg) => agg.AggFunc)
154
+ .find((agg) => typeof agg === 'object' && agg.type === 'weightedAverage')
155
+ : null;
156
+ if (weightedAvg && !weightedAvg.weightedColumnId) {
157
+ return 'Weighted Average requires a weight column to be selected.';
158
+ }
159
+ return true;
160
+ };
161
+ exports.isPivotAggregationsSectionValid = isPivotAggregationsSectionValid;
125
162
  const PivotAggregationsSectionSummary = () => {
126
163
  const adaptable = (0, AdaptableContext_1.useAdaptable)();
127
164
  const { data: layout } = (0, OnePageAdaptableWizard_1.useOnePageAdaptableWizardContext)();
128
165
  const pivotAggregationColumns = layout.PivotAggregationColumns || [];
129
166
  let content = null;
130
167
  if (pivotAggregationColumns.length) {
131
- content = ((0, jsx_runtime_1.jsx)(FormLayout_1.default, { children: pivotAggregationColumns.map(({ ColumnId: colId, AggFunc: aggFunc }) => ((0, jsx_runtime_1.jsx)(FormLayout_1.FormRow, { label: adaptable.api.columnApi.getFriendlyNameForColumnId(colId), children: (0, jsx_runtime_1.jsx)(Tag_1.Tag, { children: (0, parameterizedAggregationHeader_1.getParameterizedAggregationDisplayName)(adaptable.api, aggFunc, colId) }) }, colId))) }));
168
+ content = ((0, jsx_runtime_1.jsx)(FormLayout_1.default, { children: pivotAggregationColumns.map(({ ColumnId: colId, AggFunc: aggFunc }) => ((0, jsx_runtime_1.jsx)(FormLayout_1.FormRow, { label: adaptable.api.columnApi.getFriendlyNameForColumnId(colId), children: (0, jsx_runtime_1.jsx)(Tag_1.Tag, { children: typeof aggFunc === 'object' ? aggFunc.type : aggFunc }) }, colId))) }));
132
169
  }
133
170
  else {
134
171
  content = (0, jsx_runtime_1.jsx)(Tag_1.Tag, { children: "No Pivot Column Aggregations" });
@@ -141,7 +178,6 @@ const PivotAggregationsSection = (props) => {
141
178
  const { data: layout } = (0, OnePageAdaptableWizard_1.useOnePageAdaptableWizardContext)();
142
179
  const allAggregableColumns = adaptable.api.columnApi.getAggregatableColumns();
143
180
  const allColumns = adaptable.api.columnApi.getUIAvailableColumns();
144
- const numberColumns = adaptable.api.columnApi.getNumericColumns();
145
181
  const sortedAggregableColumns = React.useMemo(() => {
146
182
  return ArrayExtensions_1.default.sortArrayWithOrder(allAggregableColumns.map((col) => col.columnId), (layout.PivotAggregationColumns ?? []).map((col) => col.ColumnId), { sortUnorderedItems: false }).map((colId) => adaptable.api.columnApi.getColumnWithColumnId(colId));
147
183
  }, [layout, allAggregableColumns]);
@@ -175,8 +211,22 @@ const PivotAggregationsSection = (props) => {
175
211
  acc[col.columnId] = col;
176
212
  return acc;
177
213
  }, {});
178
- return (0, parameterizedAggregationWizardHelpers_1.buildAggregationColumnsMap)(layout.PivotAggregationColumns || [], allColumnsMap);
179
- }, [layout, allColumns]);
214
+ return (layout.PivotAggregationColumns || []).reduce((acc, { ColumnId: colId, AggFunc: aggFunc }) => {
215
+ let fn = aggFunc;
216
+ let fnName = '';
217
+ if (typeof fn === 'boolean') {
218
+ fnName = allColumnsMap[colId].aggregationFunction;
219
+ }
220
+ if (typeof fn === 'object' && fn.type === 'weightedAverage') {
221
+ fnName = AggregationColumns_1.WEIGHTED_AVERAGE_AGG_FN_NAME;
222
+ }
223
+ else if (typeof fn === 'string') {
224
+ fnName = fn;
225
+ }
226
+ acc[colId] = fnName;
227
+ return acc;
228
+ }, {});
229
+ }, [layout]);
180
230
  const handleSuppressAggFuncInHeader = (checked) => {
181
231
  props.onChange({
182
232
  ...layout,
@@ -201,47 +251,47 @@ const PivotAggregationsSection = (props) => {
201
251
  return true;
202
252
  };
203
253
  const isPivotColumnTotalEnabled = checkIfPivotColumnTotalEnabled();
204
- return ((0, jsx_runtime_1.jsxs)(Tabs_1.Tabs, { style: { height: '100%' }, children: [(0, jsx_runtime_1.jsx)(Tabs_1.Tabs.Tab, { children: "Column Aggregations" }), (0, jsx_runtime_1.jsxs)(Tabs_1.Tabs.Content, { children: [(0, jsx_runtime_1.jsx)(Flex_1.Flex, { className: "twa:mb-2", children: (0, jsx_runtime_1.jsxs)(FormLayout_1.default, { children: [(0, jsx_runtime_1.jsx)(FormLayout_1.FormRow, { label: 'Omit Aggregation from Header', children: (0, jsx_runtime_1.jsx)(CheckBox_1.CheckBox, { checked: layout.SuppressAggFuncInHeader, onChange: handleSuppressAggFuncInHeader }) }), (0, jsx_runtime_1.jsx)(FormLayout_1.FormRow, { label: 'Grand Total Row', children: (0, jsx_runtime_1.jsx)(NewSelect_1.SingleSelect, { className: "twa:w-[160px]", items: [
205
- {
206
- label: 'Off',
207
- value: null,
208
- },
209
- ].concat(['top', 'bottom', 'pinnedTop', 'pinnedBottom'].map((position) => {
254
+ return ((0, jsx_runtime_1.jsxs)(Flex_1.Box, { className: "twa:h-full twa:min-h-0 twa:p-2 twa:gap-2 twa:overflow-hidden twa:grid twa:grid-cols-2", children: [(0, jsx_runtime_1.jsxs)(Card_1.Card, { shadow: false, className: "twa:h-full twa:overflow-hidden twa:flex twa:flex-col", children: [(0, jsx_runtime_1.jsxs)(Card_1.Card.Title, { children: [(0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:font-medium", children: "Aggregation Columns" }), (0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:text-xs twa:opacity-70 twa:font-normal twa:max-w-[520px]", children: "Select a column and an aggregation function" })] }), (0, jsx_runtime_1.jsx)(Card_1.Card.Body, { className: "twa:flex-1 twa:min-h-0 twa:overflow-hidden twa:p-1", children: (0, jsx_runtime_1.jsx)(ValueSelector_1.ValueSelector, { style: { minHeight: 0 }, showFilterInput: true, filter: Utilities_1.columnFilter, toIdentifier: (option) => `${option.columnId}`, toLabel: (option) => option.friendlyName ?? option.columnId, toListLabel: (column) => ((0, jsx_runtime_1.jsx)(PivotColumnRow, { onChangeAggFunction: handleAggregationChange, layout: layout, column: column, aggregationColumnsMap: aggregationColumnsMap })), options: sortedAggregableColumns, value: (layout.PivotAggregationColumns || []).map((col) => col.ColumnId), allowReorder: true, onChange: handleColumnsSelectionChange }) })] }), (0, jsx_runtime_1.jsxs)(Flex_1.Box, { className: "twa:h-full twa:min-h-0 twa:overflow-y-auto twa:flex twa:flex-col twa:gap-2", children: [(0, jsx_runtime_1.jsxs)(Card_1.Card, { shadow: false, children: [(0, jsx_runtime_1.jsx)(Card_1.Card.Title, { children: (0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:font-medium", children: "Omit Aggregation from Header" }) }), (0, jsx_runtime_1.jsx)(Card_1.Card.Body, { className: "twa:p-1", children: (0, jsx_runtime_1.jsx)(CheckBox_1.CheckBox, { checked: layout.SuppressAggFuncInHeader, onChange: handleSuppressAggFuncInHeader, children: "Do not show aggregation function names in column headers" }) })] }), (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: "Grand Total Row" }), (0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:text-xs twa:opacity-70 twa:font-normal twa:max-w-[520px]", children: "Set position of the grand total row in the grid" })] }), (0, jsx_runtime_1.jsx)(Card_1.Card.Body, { className: "twa:p-1", children: (0, jsx_runtime_1.jsx)(NewSelect_1.SingleSelect, { className: "twa:w-[180px]", items: [
255
+ {
256
+ label: 'Off',
257
+ value: null,
258
+ },
259
+ ].concat(['top', 'bottom', 'pinnedTop', 'pinnedBottom'].map((position) => {
260
+ return {
261
+ label: StringExtensions_1.default.CamelCaseToHumanText(position),
262
+ value: position,
263
+ };
264
+ })), placeholder: "Off", value: layout.GrandTotalRow, onValueChange: (value) => {
265
+ props.onChange({
266
+ ...layout,
267
+ GrandTotalRow: value,
268
+ });
269
+ } }) })] }), (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: "Pivot Grand Total" }), (0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:text-xs twa:opacity-70 twa:font-normal twa:max-w-[520px]", children: "Set position of pivot grand total columns" })] }), (0, jsx_runtime_1.jsx)(Card_1.Card.Body, { className: "twa:p-1", children: (0, jsx_runtime_1.jsx)(NewSelect_1.SingleSelect, { className: "twa:w-[180px]", items: [
270
+ { label: 'Off', value: null },
271
+ ...['before', 'after'].map((position) => {
272
+ return {
273
+ label: StringExtensions_1.default.CapitaliseFirstLetter(position),
274
+ value: position,
275
+ };
276
+ }),
277
+ ], placeholder: "Off", value: layout.PivotGrandTotal, onValueChange: (value) => {
278
+ props.onChange({
279
+ ...layout,
280
+ PivotGrandTotal: value,
281
+ });
282
+ } }) })] }), (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: "Pivot Column Total" }), (0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:text-xs twa:opacity-70 twa:font-normal twa:max-w-[520px]", children: "Set position of pivot column totals" })] }), (0, jsx_runtime_1.jsx)(Card_1.Card.Body, { className: "twa:p-1", children: isPivotColumnTotalEnabled === true ? ((0, jsx_runtime_1.jsx)(NewSelect_1.SingleSelect, { className: "twa:w-[180px]", items: [
283
+ { label: 'Off', value: null },
284
+ ...['before', 'after'].map((position) => {
210
285
  return {
211
- label: StringExtensions_1.default.CamelCaseToHumanText(position),
286
+ label: StringExtensions_1.default.CapitaliseFirstLetter(position),
212
287
  value: position,
213
288
  };
214
- })), placeholder: "[none]", value: layout.GrandTotalRow, onValueChange: (value) => {
215
- props.onChange({
216
- ...layout,
217
- GrandTotalRow: value,
218
- });
219
- } }) }), (0, jsx_runtime_1.jsx)(FormLayout_1.FormRow, { label: 'Pivot Grand Total', children: (0, jsx_runtime_1.jsx)(NewSelect_1.SingleSelect, { className: "twa:w-[160px]", items: [
220
- { label: 'Off', value: null },
221
- ...['before', 'after'].map((position) => {
222
- return {
223
- label: StringExtensions_1.default.CapitaliseFirstLetter(position),
224
- value: position,
225
- };
226
- }),
227
- ], placeholder: "[none]", value: layout.PivotGrandTotal, onValueChange: (value) => {
228
- props.onChange({
229
- ...layout,
230
- PivotGrandTotal: value,
231
- });
232
- } }) }), (0, jsx_runtime_1.jsx)(FormLayout_1.FormRow, { label: 'Pivot Column Total', children: isPivotColumnTotalEnabled === true ? ((0, jsx_runtime_1.jsx)(NewSelect_1.SingleSelect, { className: "twa:w-[160px]", items: [
233
- { label: 'Off', value: null },
234
- ...['before', 'after'].map((position) => {
235
- return {
236
- label: StringExtensions_1.default.CapitaliseFirstLetter(position),
237
- value: position,
238
- };
239
- }),
240
- ], placeholder: "[none]", value: layout.PivotColumnTotal, onValueChange: (value) => {
241
- props.onChange({
242
- ...layout,
243
- PivotColumnTotal: value,
244
- });
245
- } })) : ((0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:ml-1 twa:italic", children: isPivotColumnTotalEnabled })) })] }) }), (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)(PivotColumnRow, { onChangeAggFunction: handleAggregationChange, layout: layout, column: column, aggregationColumnsMap: aggregationColumnsMap, numberColumns: numberColumns })), options: sortedAggregableColumns, value: (layout.PivotAggregationColumns || []).map((col) => col.ColumnId), allowReorder: true, onChange: handleColumnsSelectionChange })] })] }));
289
+ }),
290
+ ], placeholder: "Off", value: layout.PivotColumnTotal, onValueChange: (value) => {
291
+ props.onChange({
292
+ ...layout,
293
+ PivotColumnTotal: value,
294
+ });
295
+ } })) : ((0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:text-xs twa:opacity-70 twa:italic", children: isPivotColumnTotalEnabled })) })] })] })] }));
246
296
  };
247
297
  exports.PivotAggregationsSection = PivotAggregationsSection;
@@ -4,7 +4,6 @@ exports.PivotColumnsSection = exports.PivotColumnsSectionSummary = 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"));
7
- const Tabs_1 = require("../../../../components/Tabs");
8
7
  const Tag_1 = require("../../../../components/Tag");
9
8
  const AdaptableContext_1 = require("../../../AdaptableContext");
10
9
  const ValueSelector_1 = require("../../../Components/ValueSelector");
@@ -13,6 +12,8 @@ const Utilities_1 = require("./Utilities");
13
12
  const ArrayExtensions_1 = tslib_1.__importDefault(require("../../../../Utilities/Extensions/ArrayExtensions"));
14
13
  const Flex_1 = require("../../../../components/Flex");
15
14
  const CheckBox_1 = require("../../../../components/CheckBox");
15
+ const HelpBlock_1 = tslib_1.__importDefault(require("../../../../components/HelpBlock"));
16
+ const Card_1 = require("../../../../components/Card");
16
17
  const PivotColumnsSectionSummary = () => {
17
18
  const adaptable = (0, AdaptableContext_1.useAdaptable)();
18
19
  const { data: layout } = (0, OnePageAdaptableWizard_1.useOnePageAdaptableWizardContext)();
@@ -25,18 +26,18 @@ const PivotColumnsSection = (props) => {
25
26
  const allPivotColumns = adaptable.api.columnApi.getPivotableColumns();
26
27
  const sortedPivotColumns = React.useMemo(() => {
27
28
  return ArrayExtensions_1.default.sortArrayWithOrder(allPivotColumns.map((col) => col.columnId), layout.PivotColumns ?? [], { sortUnorderedItems: false }).map((colId) => adaptable.api.columnApi.getColumnWithColumnId(colId));
28
- }, [layout, allPivotColumns]);
29
+ }, [layout, allPivotColumns, adaptable]);
29
30
  const handleColumnsChange = (columnIds) => {
30
31
  props.onChange({
31
32
  ...layout,
32
33
  PivotColumns: columnIds,
33
34
  });
34
35
  };
35
- return ((0, jsx_runtime_1.jsxs)(Tabs_1.Tabs, { className: "twa:h-full", children: [(0, jsx_runtime_1.jsx)(Tabs_1.Tabs.Tab, { children: "Pivot Columns" }), (0, jsx_runtime_1.jsxs)(Tabs_1.Tabs.Content, { children: [(0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:mb-3 twa:px-2", children: (0, jsx_runtime_1.jsx)(CheckBox_1.CheckBox, { checked: !!layout.PivotResultColumnsOrder, onChange: (checked) => {
36
- props.onChange({
37
- ...layout,
38
- PivotResultColumnsOrder: checked,
39
- });
40
- }, children: "Persist Order of Pivot Result Columns" }) }), (0, jsx_runtime_1.jsx)(ValueSelector_1.ValueSelector, { showFilterInput: true, filter: Utilities_1.columnFilter, toIdentifier: (option) => `${option.columnId}`, toLabel: (option) => option.friendlyName ?? option.columnId, options: sortedPivotColumns, value: layout.PivotColumns ?? [], allowReorder: true, onChange: handleColumnsChange })] })] }));
36
+ return ((0, jsx_runtime_1.jsxs)(Flex_1.Box, { className: "twa:h-full twa:min-h-0 twa:p-2 twa:gap-2 twa:overflow-hidden twa:grid twa:grid-cols-2", children: [(0, jsx_runtime_1.jsxs)(Card_1.Card, { shadow: false, className: "twa:h-full twa:overflow-hidden twa:flex twa:flex-col", children: [(0, jsx_runtime_1.jsxs)(Card_1.Card.Title, { children: [(0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:font-medium", children: "Pivot Columns" }), (0, jsx_runtime_1.jsxs)(Flex_1.Box, { className: "twa:text-xs twa:opacity-70 twa:font-normal twa:max-w-[520px]", children: ["Select and order the columns used as pivot columns", ' '] })] }), (0, jsx_runtime_1.jsx)(Card_1.Card.Body, { className: "twa:flex-1 twa:min-h-0 twa:overflow-hidden twa:p-1", children: (0, jsx_runtime_1.jsx)(ValueSelector_1.ValueSelector, { style: { minHeight: 0 }, showFilterInput: true, filter: Utilities_1.columnFilter, toIdentifier: (option) => `${option.columnId}`, toLabel: (option) => option.friendlyName ?? option.columnId, options: sortedPivotColumns, value: layout.PivotColumns ?? [], allowReorder: true, onChange: handleColumnsChange }) })] }), (0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:h-full twa:min-h-0 twa:overflow-y-auto twa:flex twa:flex-col twa:gap-2", 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: "Pivot Result Columns" }), (0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:text-xs twa:opacity-70 twa:font-normal twa:max-w-[520px]", children: "Configure layout persistence behaviour" })] }), (0, jsx_runtime_1.jsxs)(Card_1.Card.Body, { className: "twa:p-1", children: [(0, jsx_runtime_1.jsx)(CheckBox_1.CheckBox, { checked: !!layout.PivotResultColumnsOrder, onChange: (checked) => {
37
+ props.onChange({
38
+ ...layout,
39
+ PivotResultColumnsOrder: checked,
40
+ });
41
+ }, children: "Persist order of pivot result columns" }), (0, jsx_runtime_1.jsx)(HelpBlock_1.default, { className: "twa:mt-2", children: "Result columns are created dynamically for each value in the pivot column" })] })] }) })] }));
41
42
  };
42
43
  exports.PivotColumnsSection = PivotColumnsSection;