@adaptabletools/adaptable 23.0.0-canary.4 → 23.0.0-canary.5

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 (248) hide show
  1. package/index.css +116 -61
  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 +27 -2
  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 +1 -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 +17 -7
  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 +14 -7
  34. package/src/Strategy/LayoutModule.js +13 -8
  35. package/src/Strategy/StyledColumnModule.js +64 -36
  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 +65 -0
  41. package/src/Utilities/Helpers/StyledColumnGradientHelper.d.ts +23 -1
  42. package/src/Utilities/Helpers/StyledColumnGradientHelper.js +204 -0
  43. package/src/Utilities/Helpers/ThemeHelpers.d.ts +5 -0
  44. package/src/Utilities/Helpers/ThemeHelpers.js +38 -0
  45. package/src/Utilities/Helpers/percentBarPreviewHelper.d.ts +19 -0
  46. package/src/Utilities/Helpers/percentBarPreviewHelper.js +143 -0
  47. package/src/Utilities/ObjectFactory.d.ts +1 -3
  48. package/src/Utilities/ObjectFactory.js +0 -8
  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 +114 -103
  52. package/src/View/Alert/Wizard/AlertMessageWizardSection.js +13 -14
  53. package/src/View/Alert/Wizard/AlertNotificationWizardSection.js +55 -55
  54. package/src/View/Alert/Wizard/AlertRulesWizardSection.js +3 -2
  55. package/src/View/Alert/Wizard/AlertScheduledWizardSection.js +2 -2
  56. package/src/View/Alert/Wizard/AlertScopeWizardSection.js +31 -39
  57. package/src/View/Alert/Wizard/AlertTypeWizardSection.js +3 -4
  58. package/src/View/CalculatedColumn/Wizard/CalculatedColumnDefinitionWizardSection.js +9 -13
  59. package/src/View/CalculatedColumn/Wizard/CalculatedColumnExpressionWizardSection.js +30 -17
  60. package/src/View/CalculatedColumn/Wizard/CalculatedColumnSettingsWizardSection.js +7 -9
  61. package/src/View/CalculatedColumn/Wizard/CalculatedColumnTypeSection.js +3 -3
  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 +21 -0
  69. package/src/View/Charting/ChartingWizard/ExternalChartingWizard/SettingsSection.d.ts +1 -0
  70. package/src/View/Charting/ChartingWizard/ExternalChartingWizard/SettingsSection.js +10 -7
  71. package/src/View/Comments/CommentsEditor.js +1 -1
  72. package/src/View/Components/ModuleProfile.js +1 -1
  73. package/src/View/Components/Popups/WindowPopups/windowFactory.d.ts +0 -1
  74. package/src/View/Components/Popups/WindowPopups/windowFactory.js +0 -1
  75. package/src/View/Components/RangesComponent.d.ts +7 -2
  76. package/src/View/Components/RangesComponent.js +94 -22
  77. package/src/View/Components/StyleComponent.d.ts +1 -0
  78. package/src/View/Components/StyleComponent.js +1 -1
  79. package/src/View/Components/ValueSelector/index.js +70 -57
  80. package/src/View/CustomSort/Wizard/CustomSortColumnWizardSection.js +8 -13
  81. package/src/View/CustomSort/Wizard/CustomSortValuesWizardSection.js +8 -8
  82. package/src/View/DataChangeHistory/DataChangeHistoryGrid.js +1 -1
  83. package/src/View/DataImport/DataImportWizard/sections/ColumnsSection.js +11 -12
  84. package/src/View/DataImport/DataImportWizard/sections/UploadSection/UploadSection.js +6 -4
  85. package/src/View/DataImport/DataImportWizard/sections/UploadSection/UploadTextSection.js +3 -2
  86. package/src/View/DataImport/DataImportWizard/sections/ValidationSection.js +5 -15
  87. package/src/View/Export/Wizard/ReportColumnsWizardSection.js +24 -26
  88. package/src/View/Export/Wizard/ReportNameWizardSection.js +10 -13
  89. package/src/View/Export/Wizard/ReportRowsWizardSection.js +20 -22
  90. package/src/View/Export/Wizard/ScheduledReportSettings.d.ts +2 -0
  91. package/src/View/Export/Wizard/ScheduledReportSettings.js +13 -13
  92. package/src/View/Export/Wizard/ScheduledReportWizard.js +4 -5
  93. package/src/View/FlashingCell/Wizard/FlashingCellRulesWizardSection.js +8 -6
  94. package/src/View/FlashingCell/Wizard/FlashingCellScopeWizardSection.js +21 -22
  95. package/src/View/FlashingCell/Wizard/FlashingCellSettingsWizardSection.js +20 -11
  96. package/src/View/FlashingCell/Wizard/FlashingCellStyleWizardSection.js +21 -5
  97. package/src/View/FlashingCell/Wizard/FlashingCellWizard.js +4 -4
  98. package/src/View/FormatColumn/Wizard/FormatColumnFormatWizardSection.d.ts +7 -0
  99. package/src/View/FormatColumn/Wizard/FormatColumnFormatWizardSection.js +117 -12
  100. package/src/View/FormatColumn/Wizard/FormatColumnPreview.d.ts +15 -0
  101. package/src/View/FormatColumn/Wizard/FormatColumnPreview.js +66 -0
  102. package/src/View/FormatColumn/Wizard/FormatColumnRuleWizardSection.d.ts +4 -0
  103. package/src/View/FormatColumn/Wizard/FormatColumnRuleWizardSection.js +30 -0
  104. package/src/View/FormatColumn/Wizard/FormatColumnScopeWizardSection.js +13 -8
  105. package/src/View/FormatColumn/Wizard/FormatColumnSettingsWizardSection.js +1 -1
  106. package/src/View/FormatColumn/Wizard/FormatColumnStyleWizardSection.d.ts +3 -1
  107. package/src/View/FormatColumn/Wizard/FormatColumnStyleWizardSection.js +62 -13
  108. package/src/View/FormatColumn/Wizard/FormatColumnWizard.js +5 -3
  109. package/src/View/FreeTextColumn/Utilities/getFreeTextColumnSettingsTags.d.ts +2 -0
  110. package/src/View/FreeTextColumn/Utilities/getFreeTextColumnSettingsTags.js +15 -0
  111. package/src/View/FreeTextColumn/Wizard/FreeTextColumnDefinitionWizardSection.d.ts +10 -0
  112. package/src/View/FreeTextColumn/Wizard/FreeTextColumnDefinitionWizardSection.js +53 -0
  113. package/src/View/FreeTextColumn/Wizard/FreeTextColumnSettingsWizardSection.d.ts +2 -3
  114. package/src/View/FreeTextColumn/Wizard/FreeTextColumnSettingsWizardSection.js +33 -68
  115. package/src/View/FreeTextColumn/Wizard/FreeTextColumnWizard.js +15 -11
  116. package/src/View/Layout/TransposedPopup.js +2 -2
  117. package/src/View/Layout/Wizard/LayoutWizard.js +3 -3
  118. package/src/View/Layout/Wizard/sections/AggregationsSection.d.ts +2 -3
  119. package/src/View/Layout/Wizard/sections/AggregationsSection.js +115 -26
  120. package/src/View/Layout/Wizard/sections/ColumnsSection.js +79 -79
  121. package/src/View/Layout/Wizard/sections/FilterSection.js +31 -32
  122. package/src/View/Layout/Wizard/sections/GridFilterSection.js +11 -11
  123. package/src/View/Layout/Wizard/sections/PivotAggregationsSection.d.ts +1 -2
  124. package/src/View/Layout/Wizard/sections/PivotAggregationsSection.js +101 -52
  125. package/src/View/Layout/Wizard/sections/PivotColumnsSection.js +9 -8
  126. package/src/View/Layout/Wizard/sections/PivotRowGroupingSection.js +4 -4
  127. package/src/View/Layout/Wizard/sections/RowGroupingSection.js +36 -33
  128. package/src/View/Layout/Wizard/sections/RowSelectionSection.js +2 -2
  129. package/src/View/Layout/Wizard/sections/RowSummarySection.js +95 -73
  130. package/src/View/Layout/Wizard/sections/SettingsSection.js +4 -5
  131. package/src/View/Layout/Wizard/sections/SortSection.js +2 -2
  132. package/src/View/NamedQuery/Wizard/NamedQueryExpressionWizardSection.js +1 -1
  133. package/src/View/NamedQuery/Wizard/NamedQuerySettingsWizardSection.js +9 -14
  134. package/src/View/NamedQuery/Wizard/NamedQueryWizard.js +1 -3
  135. package/src/View/PlusMinus/Wizard/PlusMinusRuleWizardSection.d.ts +4 -0
  136. package/src/View/PlusMinus/Wizard/PlusMinusRuleWizardSection.js +43 -13
  137. package/src/View/PlusMinus/Wizard/PlusMinusScopeWizardSection.js +11 -18
  138. package/src/View/PlusMinus/Wizard/PlusMinusSettingsWizardSection.d.ts +2 -6
  139. package/src/View/PlusMinus/Wizard/PlusMinusSettingsWizardSection.js +6 -22
  140. package/src/View/PlusMinus/Wizard/PlusMinusWizard.js +15 -21
  141. package/src/View/Schedule/Wizard/ScheduleScheduleWizard.js +2 -2
  142. package/src/View/Shortcut/Wizard/ShortcutScopeWizardSection.js +11 -18
  143. package/src/View/Shortcut/Wizard/ShortcutSettingsWizard.js +17 -6
  144. package/src/View/Shortcut/Wizard/ShortcutWizard.js +3 -3
  145. package/src/View/Shortcut/shortcutOperations.d.ts +3 -0
  146. package/src/View/Shortcut/shortcutOperations.js +28 -0
  147. package/src/View/SpecialColumnSettingsWizardStep.js +9 -8
  148. package/src/View/StyledColumn/Wizard/BadgePillStyleEditor.d.ts +5 -0
  149. package/src/View/StyledColumn/Wizard/BadgePillStyleEditor.js +24 -15
  150. package/src/View/StyledColumn/Wizard/StyledColumnBadgeSection.d.ts +10 -2
  151. package/src/View/StyledColumn/Wizard/StyledColumnBadgeSection.js +96 -16
  152. package/src/View/StyledColumn/Wizard/StyledColumnSliceStyleEditors.d.ts +14 -0
  153. package/src/View/StyledColumn/Wizard/StyledColumnSliceStyleEditors.js +45 -24
  154. package/src/View/StyledColumn/Wizard/StyledColumnSparklineSettingsSection.d.ts +2 -3
  155. package/src/View/StyledColumn/Wizard/StyledColumnSparklineSettingsSection.js +108 -33
  156. package/src/View/StyledColumn/Wizard/StyledColumnWizard.js +21 -13
  157. package/src/View/StyledColumn/Wizard/StyledColumnWizardBulletSection.d.ts +5 -0
  158. package/src/View/StyledColumn/Wizard/StyledColumnWizardBulletSection.js +121 -23
  159. package/src/View/StyledColumn/Wizard/StyledColumnWizardGradientSection.d.ts +1 -0
  160. package/src/View/StyledColumn/Wizard/StyledColumnWizardGradientSection.js +34 -11
  161. package/src/View/StyledColumn/Wizard/StyledColumnWizardIconSection.d.ts +5 -0
  162. package/src/View/StyledColumn/Wizard/StyledColumnWizardIconSection.js +86 -12
  163. package/src/View/StyledColumn/Wizard/StyledColumnWizardRangeBarSection.d.ts +5 -0
  164. package/src/View/StyledColumn/Wizard/StyledColumnWizardRangeBarSection.js +121 -34
  165. package/src/View/StyledColumn/Wizard/StyledColumnWizardRatingSection.d.ts +1 -0
  166. package/src/View/StyledColumn/Wizard/StyledColumnWizardRatingSection.js +55 -75
  167. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/BulletRangesSummaryPreview.d.ts +5 -0
  168. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/BulletRangesSummaryPreview.js +16 -0
  169. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/GradientSummaryPreview.js +7 -13
  170. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/PercentBarColumnComparisonPreview.js +5 -5
  171. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/PercentBarRangesPreview.js +4 -3
  172. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/PercentBarStylePreview.d.ts +5 -4
  173. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/PercentBarStylePreview.js +12 -14
  174. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/RangeBarRangesSummaryPreview.d.ts +5 -0
  175. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/RangeBarRangesSummaryPreview.js +16 -0
  176. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnBadgePreview.d.ts +3 -0
  177. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnBadgePreview.js +31 -3
  178. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnBulletPreview.d.ts +9 -0
  179. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnBulletPreview.js +58 -0
  180. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnGradientPreview.d.ts +10 -0
  181. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnGradientPreview.js +30 -0
  182. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnIconPreview.d.ts +10 -0
  183. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnIconPreview.js +91 -0
  184. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnPercentBarPreview.d.ts +8 -0
  185. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnPercentBarPreview.js +52 -0
  186. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnRangeBarPreview.d.ts +8 -0
  187. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnRangeBarPreview.js +53 -0
  188. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnRatingPreview.d.ts +18 -0
  189. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnRatingPreview.js +58 -0
  190. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnSparklinePreview.d.ts +10 -0
  191. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnSparklinePreview.js +126 -0
  192. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/StyledColumnWizardRangesSection.js +12 -5
  193. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/StyledColumnWizardStyleSection.d.ts +1 -5
  194. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/StyledColumnWizardStyleSection.js +52 -29
  195. package/src/View/SystemStatus/Utilities/getStatusItemStyle.js +1 -1
  196. package/src/View/Theme/ThemePopup.d.ts +2 -14
  197. package/src/View/Theme/ThemePopup.js +1 -36
  198. package/src/View/UIHelper.js +1 -1
  199. package/src/View/Wizard/OnePageAdaptableWizard.js +7 -21
  200. package/src/agGrid/AdaptableAgGrid.d.ts +1 -0
  201. package/src/agGrid/AdaptableAgGrid.js +35 -25
  202. package/src/agGrid/AgGridAdapter.d.ts +1 -1
  203. package/src/agGrid/AgGridAdapter.js +27 -17
  204. package/src/agGrid/AgGridColumnAdapter.js +9 -15
  205. package/src/agGrid/AgGridMenuAdapter.d.ts +0 -1
  206. package/src/agGrid/AgGridMenuAdapter.js +20 -37
  207. package/src/agGrid/buildValueAggregationMenuItem.d.ts +19 -0
  208. package/src/agGrid/buildValueAggregationMenuItem.js +111 -0
  209. package/src/agGrid/cellRenderers/IconRenderer.d.ts +6 -0
  210. package/src/agGrid/cellRenderers/IconRenderer.js +43 -15
  211. package/src/agGrid/createAgGridIcon.d.ts +10 -0
  212. package/src/agGrid/createAgGridIcon.js +16 -0
  213. package/src/components/DragAndDropContext/UnusedPanel.js +1 -1
  214. package/src/components/ExpressionEditor/BaseEditorInput.js +1 -1
  215. package/src/components/ExpressionEditor/ExpressionFunctionDocumentation.js +1 -1
  216. package/src/components/Input/NumberInput.js +1 -1
  217. package/src/components/Panel/index.js +1 -1
  218. package/src/components/SimpleButton/index.js +4 -4
  219. package/src/components/Toggle/Toggle.js +1 -1
  220. package/src/components/Toggle/ToggleGroup.js +1 -1
  221. package/src/env.js +2 -2
  222. package/src/layout-manager/src/index.js +2 -9
  223. package/src/metamodel/adaptable.metamodel.d.ts +39 -29
  224. package/src/metamodel/adaptable.metamodel.js +1 -1
  225. package/src/types.d.ts +5 -4
  226. package/themes/dark.css +1 -68
  227. package/themes/light.css +1 -5
  228. package/tsconfig.esm.tsbuildinfo +1 -1
  229. package/src/Aggregation/ParameterizedAggregationRegistry.d.ts +0 -35
  230. package/src/Aggregation/ParameterizedAggregationRegistry.js +0 -63
  231. package/src/Aggregation/definitions/weightedAverageAggregationDefinition.d.ts +0 -3
  232. package/src/Aggregation/definitions/weightedAverageAggregationDefinition.js +0 -55
  233. package/src/Aggregation/parameterizedAggregationColumnMenu.d.ts +0 -8
  234. package/src/Aggregation/parameterizedAggregationColumnMenu.js +0 -137
  235. package/src/Aggregation/parameterizedAggregationHeader.d.ts +0 -13
  236. package/src/Aggregation/parameterizedAggregationHeader.js +0 -60
  237. package/src/Aggregation/parameterizedAggregationHelpers.d.ts +0 -23
  238. package/src/Aggregation/parameterizedAggregationHelpers.js +0 -111
  239. package/src/Aggregation/parameterizedAggregationWizardHelpers.d.ts +0 -9
  240. package/src/Aggregation/parameterizedAggregationWizardHelpers.js +0 -66
  241. package/src/Aggregation/validateParameterizedAggregations.d.ts +0 -4
  242. package/src/Aggregation/validateParameterizedAggregations.js +0 -20
  243. package/src/View/Layout/Wizard/sections/ParameterizedAggFuncPicker.d.ts +0 -12
  244. package/src/View/Layout/Wizard/sections/ParameterizedAggFuncPicker.js +0 -43
  245. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnBadgeSettings.d.ts +0 -5
  246. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnBadgeSettings.js +0 -28
  247. package/src/View/Theme/VariantSelector.d.ts +0 -8
  248. package/src/View/Theme/VariantSelector.js +0 -20
@@ -1,6 +1,5 @@
1
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import * as React from 'react';
3
- import { Tabs } from '../../../components/Tabs';
4
3
  import { useOnePageAdaptableWizardContext } from '../../Wizard/OnePageAdaptableWizard';
5
4
  import { CheckBox } from '../../../components/CheckBox';
6
5
  import { AdaptablePopupAlert } from '../../Components/Popups/AdaptablePopupAlert';
@@ -10,6 +9,7 @@ import { isScheduledAlertDefinition, scheduledAlertIncludeSuspendButton, } from
10
9
  import { resolveAlertFormForDefinition } from '../../../Utilities/Helpers/alertFormHelper';
11
10
  import { Box, Flex } from '../../../components/Flex';
12
11
  import clsx from 'clsx';
12
+ import { Card } from '../../../components/Card';
13
13
  export const renderAlertNotificationSummary = () => {
14
14
  const { data, api } = useOnePageAdaptableWizardContext();
15
15
  if (!data.AlertProperties?.DisplayNotification) {
@@ -82,57 +82,57 @@ export const AlertNotificationWizardSection = (props) => {
82
82
  },
83
83
  });
84
84
  };
85
- return (_jsxs(_Fragment, { children: [_jsxs(Tabs, { "data-name": "display-options", className: "twa:mt-2 twa:mb-3", autoFocus: false, children: [_jsx(Tabs.Tab, { children: "Notification Options" }), _jsxs(Tabs.Content, { children: [_jsxs(Flex, { flexDirection: "column", alignItems: "flex-start", className: isScheduled ? 'twa:gap-4' : undefined, children: [_jsx(CheckBox, { className: isScheduled ? 'twa:my-0' : undefined, checked: data.AlertProperties?.DisplayNotification, onChange: (DisplayNotification) => {
86
- if (isScheduled && scheduledData) {
87
- updateScheduledProperties({ DisplayNotification });
88
- return;
89
- }
90
- const ruleData = data;
91
- const newAlertDefinition = {
92
- ...ruleData,
93
- AlertProperties: {
94
- ...ruleData.AlertProperties,
95
- DisplayNotification,
96
- },
97
- };
98
- if (!DisplayNotification && typeof newAlertDefinition.AlertForm === 'object') {
99
- delete newAlertDefinition.AlertForm.Buttons;
100
- }
101
- if (DisplayNotification) {
102
- newAlertDefinition.AlertForm =
103
- newAlertDefinition.AlertForm ??
104
- api.alertApi.internalApi.getDefaultAlertNotificationForm();
105
- }
106
- if (DisplayNotification &&
107
- typeof newAlertDefinition.AlertForm === 'object' &&
108
- (!newAlertDefinition.AlertForm?.Buttons ||
109
- newAlertDefinition.AlertForm?.Buttons?.length === 0)) {
110
- newAlertDefinition.AlertForm.Buttons = [
111
- api.alertApi.internalApi.getDefaultButton(),
112
- ];
113
- }
114
- props.onChange(newAlertDefinition);
115
- }, children: isScheduled
116
- ? 'Display a Notification when the Schedule is triggered'
117
- : 'Display a Notification when Alert is triggered (with action buttons)' }), isScheduled && scheduledData && data.AlertProperties?.DisplayNotification ? (_jsx(CheckBox, { className: "twa:my-0", checked: includeSuspendButton, onChange: (IncludeSuspendButton) => {
118
- updateScheduledProperties({ IncludeSuspendButton });
119
- }, children: "Include Suspend button on notification" })) : null] }), data.AlertProperties?.DisplayNotification && !isScheduled
120
- ? (() => {
121
- const ruleData = data;
122
- const alertForm = ruleData.AlertForm;
123
- if (typeof alertForm === 'string') {
124
- return (_jsx(Box, { className: "twa:text-2", children: "Alert buttons cannot be customized because form is dynamically driven" }));
125
- }
126
- return (_jsx(AlertButtonsEditor, { alertType: props.alertType, AlertButtons: alertForm?.Buttons, api: api, adaptableAlert: adaptableAlert, onChange: (buttons) => {
127
- props.onChange({
128
- ...ruleData,
129
- AlertForm: {
130
- ...(alertForm ?? { fields: [] }),
131
- Buttons: buttons,
132
- },
133
- });
134
- } }));
135
- })()
136
- : null] })] }), data.AlertProperties?.DisplayNotification ? (_jsxs(Tabs, { "data-name": "alert-preview", autoFocus: false, children: [_jsx(Tabs.Tab, { children: "Alert Preview" }), _jsx(Tabs.Content, { children: !isScheduled &&
137
- typeof data.AlertForm === 'string' ? (_jsx(Box, { className: "twa:text-2", children: "Preview not available because form is dynamically driven" })) : (_jsx(AlertPreview, { alertDefinition: data, api: api })) })] })) : null] }));
85
+ return (_jsxs(Flex, { flexDirection: "column", className: "twa:gap-3 twa:p-3", children: [_jsx(Box, { "data-name": "display-options", children: _jsxs(Card, { shadow: false, children: [_jsxs(Card.Title, { children: [_jsx(Box, { className: "twa:font-medium", children: "Notification Options" }), _jsx(Box, { className: "twa:text-xs twa:opacity-70 twa:font-normal twa:max-w-[520px]", children: "Choose whether to display a notification when the Alert fires" })] }), _jsxs(Card.Body, { children: [_jsxs(Flex, { flexDirection: "column", alignItems: "flex-start", className: isScheduled ? 'twa:gap-4' : undefined, children: [_jsx(CheckBox, { className: isScheduled ? 'twa:my-0' : undefined, checked: data.AlertProperties?.DisplayNotification, onChange: (DisplayNotification) => {
86
+ if (isScheduled && scheduledData) {
87
+ updateScheduledProperties({ DisplayNotification });
88
+ return;
89
+ }
90
+ const ruleData = data;
91
+ const newAlertDefinition = {
92
+ ...ruleData,
93
+ AlertProperties: {
94
+ ...ruleData.AlertProperties,
95
+ DisplayNotification,
96
+ },
97
+ };
98
+ if (!DisplayNotification && typeof newAlertDefinition.AlertForm === 'object') {
99
+ delete newAlertDefinition.AlertForm.Buttons;
100
+ }
101
+ if (DisplayNotification) {
102
+ newAlertDefinition.AlertForm =
103
+ newAlertDefinition.AlertForm ??
104
+ api.alertApi.internalApi.getDefaultAlertNotificationForm();
105
+ }
106
+ if (DisplayNotification &&
107
+ typeof newAlertDefinition.AlertForm === 'object' &&
108
+ (!newAlertDefinition.AlertForm?.Buttons ||
109
+ newAlertDefinition.AlertForm?.Buttons?.length === 0)) {
110
+ newAlertDefinition.AlertForm.Buttons = [
111
+ api.alertApi.internalApi.getDefaultButton(),
112
+ ];
113
+ }
114
+ props.onChange(newAlertDefinition);
115
+ }, children: isScheduled
116
+ ? 'Display a Notification when the Schedule is triggered'
117
+ : 'Display a Notification when Alert is triggered (with action buttons)' }), isScheduled && scheduledData && data.AlertProperties?.DisplayNotification ? (_jsx(CheckBox, { className: "twa:my-0", checked: includeSuspendButton, onChange: (IncludeSuspendButton) => {
118
+ updateScheduledProperties({ IncludeSuspendButton });
119
+ }, children: "Include Suspend button on notification" })) : null] }), data.AlertProperties?.DisplayNotification && !isScheduled
120
+ ? (() => {
121
+ const ruleData = data;
122
+ const alertForm = ruleData.AlertForm;
123
+ if (typeof alertForm === 'string') {
124
+ return (_jsx(Box, { className: "twa:text-2 twa:mt-3", children: "Alert buttons cannot be customized because form is dynamically driven" }));
125
+ }
126
+ return (_jsx(AlertButtonsEditor, { alertType: props.alertType, AlertButtons: alertForm?.Buttons, api: api, adaptableAlert: adaptableAlert, onChange: (buttons) => {
127
+ props.onChange({
128
+ ...ruleData,
129
+ AlertForm: {
130
+ ...(alertForm ?? { fields: [] }),
131
+ Buttons: buttons,
132
+ },
133
+ });
134
+ } }));
135
+ })()
136
+ : null] })] }) }), data.AlertProperties?.DisplayNotification ? (_jsx(Box, { "data-name": "alert-preview", children: _jsxs(Card, { shadow: false, children: [_jsxs(Card.Title, { children: [_jsx(Box, { className: "twa:font-medium", children: "Alert Preview" }), _jsx(Box, { className: "twa:text-xs twa:opacity-70 twa:font-normal twa:max-w-[520px]", children: "Preview how the notification will appear when triggered" })] }), _jsx(Card.Body, { children: !isScheduled &&
137
+ typeof data.AlertForm === 'string' ? (_jsx(Box, { className: "twa:text-2", children: "Preview not available because form is dynamically driven" })) : (_jsx(AlertPreview, { alertDefinition: data, api: api })) })] }) })) : null] }));
138
138
  };
@@ -4,8 +4,9 @@ import { EntityRulesEditor, EntityRulesSummary } from '../../Components/EntityRu
4
4
  import { Tag } from '../../../components/Tag';
5
5
  import { useOnePageAdaptableWizardContext } from '../../Wizard/OnePageAdaptableWizard';
6
6
  import { getAvailablePredicateDefinitions } from '../Utilities/getAvailablePredicates';
7
- import { Tabs } from '../../../components/Tabs';
8
7
  import Radio from '../../../components/Radio';
8
+ import { Card } from '../../../components/Card';
9
+ import { Flex } from '../../../components/Flex';
9
10
  import { OBSERVABLE_EXPRESSION_ROW_ADDED, OBSERVABLE_EXPRESSION_ROW_REMOVED, } from './../../../Utilities/Constants/GeneralConstants';
10
11
  import { Box } from '../../../components/Flex';
11
12
  export const getRuleStepDescription = (alertType) => {
@@ -50,7 +51,7 @@ const RowChangeEditor = (props) => {
50
51
  },
51
52
  });
52
53
  };
53
- return (_jsx(Box, { className: "twa:p-2", children: _jsxs(Tabs, { children: [_jsx(Tabs.Tab, { children: "Row Change" }), _jsxs(Tabs.Content, { children: [_jsx(Radio, { onClick: () => handleRowAddedChange(), checked: expression?.includes(OBSERVABLE_EXPRESSION_ROW_ADDED), children: "Row Added" }), _jsx(Radio, { onClick: () => handleRowRemovedChange(), checked: expression?.includes(OBSERVABLE_EXPRESSION_ROW_REMOVED), children: "Row Removed" })] })] }) }));
54
+ return (_jsx(Flex, { flexDirection: "column", className: "twa:gap-3 twa:p-3", children: _jsxs(Card, { shadow: false, children: [_jsxs(Card.Title, { children: [_jsx(Box, { className: "twa:font-medium", children: "Row Change" }), _jsx(Box, { className: "twa:text-xs twa:opacity-70 twa:font-normal twa:max-w-[520px]", children: "Choose which type of Row Change will trigger the Alert" })] }), _jsxs(Card.Body, { children: [_jsx(Radio, { onClick: () => handleRowAddedChange(), checked: expression?.includes(OBSERVABLE_EXPRESSION_ROW_ADDED), children: "Row Added" }), _jsx(Radio, { onClick: () => handleRowRemovedChange(), checked: expression?.includes(OBSERVABLE_EXPRESSION_ROW_REMOVED), children: "Row Removed" })] })] }) }));
54
55
  };
55
56
  export const AlertRulesWizardSection = (props) => {
56
57
  const { data: alertData, api, moduleInfo } = useOnePageAdaptableWizardContext();
@@ -5,7 +5,7 @@ import { isScheduleValid, ScheduleBuilderWizard, } from '../../Schedule/Wizard/S
5
5
  import { Tag } from '../../../components/Tag';
6
6
  import { SummaryText } from '../../Wizard/OnePageAdaptableWizard';
7
7
  import UIHelper from '../../../View/UIHelper';
8
- import { Box } from '../../../components/Flex';
8
+ import { Flex } from '../../../components/Flex';
9
9
  export const isScheduledAlertTimeValid = (alert) => {
10
10
  if (!isScheduledAlertDefinition(alert)) {
11
11
  return 'Schedule is not specified';
@@ -27,5 +27,5 @@ export const AlertScheduledWizardSection = (props) => {
27
27
  Schedule: scheduleData.Schedule,
28
28
  });
29
29
  };
30
- return (_jsx(Box, { className: "twa:p-3", children: _jsx(ScheduleBuilderWizard, { onChange: handleScheduleChange }) }));
30
+ return (_jsx(Flex, { flexDirection: "column", className: "twa:gap-3 twa:p-3", children: _jsx(ScheduleBuilderWizard, { onChange: handleScheduleChange }) }));
31
31
  };
@@ -1,8 +1,8 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { isRuleBasedAlertDefinition } from '../../../Utilities/Helpers/ScheduledAlertHelper';
3
3
  import { NewScopeComponent } from '../../Components/NewScopeComponent';
4
4
  import { useOnePageAdaptableWizardContext } from '../../Wizard/OnePageAdaptableWizard';
5
- import { Flex } from '../../../components/Flex';
5
+ import { Box, Flex } from '../../../components/Flex';
6
6
  import { isScopeColumnIds } from '../../../AdaptableState/Common/ColumnScope';
7
7
  export const AlertScopeWizardSection = (props) => {
8
8
  const { data: alertData, api } = useOnePageAdaptableWizardContext();
@@ -16,41 +16,33 @@ export const AlertScopeWizardSection = (props) => {
16
16
  disableDataTypes = false;
17
17
  disableColumns = false;
18
18
  }
19
- return (_jsx(Flex, { flexDirection: "column", className: "twa:p-2 twa:h-full", children: _jsx(NewScopeComponent, { disableColumns: disableColumns, disableDataTypes: disableDataTypes, descriptions: {
20
- rowScope: 'Changes in any Column in the row will trigger an Alert',
21
- columnScope: 'Changes in selected Columns will trigger an Alert',
22
- dataTypeScope: 'Changes in any Column which is of the selected Data Type(s) will trigger an Alert',
23
- }, scope: data.Scope, updateScope: (Scope) => {
24
- const newData = { ...data, Scope };
25
- if (newData.Rule.Predicates) {
26
- const validPredicateIds = new Set(api.alertApi.internalApi.getAlertPredicateDefsForScope(Scope).map((def) => def.id));
27
- newData.Rule = {
28
- Predicates: newData.Rule.Predicates.filter((p) => validPredicateIds.has(p.PredicateId)).filter((predicate) => {
29
- // if there are more than 1 column, then we must eliminate the IN/NotIn predicates
30
- // TODO: this should NOT be required, but the ColumnValueSelector does NOT support creatable values right now
31
- if (isScopeColumnIds(Scope) && Scope.ColumnIds.length > 1) {
32
- return predicate.PredicateId !== 'In' && predicate.PredicateId !== 'NotIn';
33
- }
34
- return true;
35
- }),
36
- };
37
- }
38
- if (newData.Rule.ObservableExpression !== undefined &&
39
- !api.columnScopeApi.scopeIsAll(Scope)) {
40
- // if it had observable expression and the scope is changed to partial
41
- // we need to reset to not be an observable expression, as observable is not supported
42
- // for partial scope
43
- delete newData.Rule.ObservableExpression;
44
- newData.Rule.BooleanExpression = '';
45
- }
46
- if (newData.Rule.AggregatedBooleanExpression !== undefined &&
47
- !api.columnScopeApi.scopeIsAll(Scope)) {
48
- // if it had aggregation expression and the scope is changed to partial
49
- // we need to reset to not be an aggregation expression, as aggregation is not supported
50
- // for partial scope
51
- delete newData.Rule.AggregatedBooleanExpression;
52
- newData.Rule.BooleanExpression = '';
53
- }
54
- props.onChange(newData);
55
- } }) }));
19
+ return (_jsxs(Flex, { flexDirection: "column", className: "twa:h-full", children: [_jsxs(Flex, { flexDirection: "row", alignItems: "center", className: "twa:p-2 twa:gap-3 twa:border-b twa:mb-2 twa:border-b-foreground/20", children: [_jsx(Box, { className: "twa:text-5 twa:font-medium", children: "Columns" }), _jsx(Box, { className: "twa:text-xs twa:opacity-70 twa:max-w-[520px]", children: "Specify which columns should trigger the Alert" })] }), _jsx(Box, { className: "twa:flex-1 twa:min-h-0 twa:overflow-auto twa:p-2", children: _jsx(NewScopeComponent, { disableColumns: disableColumns, disableDataTypes: disableDataTypes, descriptions: {
20
+ rowScope: 'Changes in any Column in the row will trigger an Alert',
21
+ columnScope: 'Changes in selected Columns will trigger an Alert',
22
+ dataTypeScope: 'Changes in any Column which is of the selected Data Type(s) will trigger an Alert',
23
+ }, scope: data.Scope, updateScope: (Scope) => {
24
+ const newData = { ...data, Scope };
25
+ if (newData.Rule.Predicates) {
26
+ const validPredicateIds = new Set(api.alertApi.internalApi.getAlertPredicateDefsForScope(Scope).map((def) => def.id));
27
+ newData.Rule = {
28
+ Predicates: newData.Rule.Predicates.filter((p) => validPredicateIds.has(p.PredicateId)).filter((predicate) => {
29
+ if (isScopeColumnIds(Scope) && Scope.ColumnIds.length > 1) {
30
+ return predicate.PredicateId !== 'In' && predicate.PredicateId !== 'NotIn';
31
+ }
32
+ return true;
33
+ }),
34
+ };
35
+ }
36
+ if (newData.Rule.ObservableExpression !== undefined &&
37
+ !api.columnScopeApi.scopeIsAll(Scope)) {
38
+ delete newData.Rule.ObservableExpression;
39
+ newData.Rule.BooleanExpression = '';
40
+ }
41
+ if (newData.Rule.AggregatedBooleanExpression !== undefined &&
42
+ !api.columnScopeApi.scopeIsAll(Scope)) {
43
+ delete newData.Rule.AggregatedBooleanExpression;
44
+ newData.Rule.BooleanExpression = '';
45
+ }
46
+ props.onChange(newData);
47
+ } }) })] }));
56
48
  };
@@ -1,13 +1,12 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
- import { Tabs } from '../../../components/Tabs';
3
2
  import { AlertType, getAlertTypeText } from '../Utilities/getAlertType';
4
3
  import { TypeRadio } from '../../Wizard/TypeRadio';
5
4
  import { Tag } from '../../../components/Tag';
6
- import { Flex } from '../../../components/Flex';
5
+ import { Box, Flex } from '../../../components/Flex';
7
6
  import { useOnePageAdaptableWizardContext } from '../../Wizard/OnePageAdaptableWizard';
8
- import FormLayout, { FormRow } from '../../../components/FormLayout';
9
7
  import Input from '../../../components/Input';
10
8
  import { SummaryText } from '../../Wizard/OnePageAdaptableWizard';
9
+ import { Card } from '../../../components/Card';
11
10
  export const isSettingsValid = (data, api) => {
12
11
  if (!data.Name?.trim()) {
13
12
  return 'Name is required';
@@ -32,5 +31,5 @@ export const AlertTypeWizardSection = (props) => {
32
31
  Name: event.target.value,
33
32
  });
34
33
  };
35
- return (_jsxs(Flex, { flexDirection: "column", children: [_jsxs(Tabs, { children: [_jsx(Tabs.Tab, { children: "Settings" }), _jsx(Tabs.Content, { children: _jsx(FormLayout, { children: _jsx(FormRow, { label: "Name", children: _jsx(Input, { "data-name": "alert-name", className: "twa:flex-1 twa:max-w-[200px] twa:mr-3", onChange: handleNameChange, placeholder: "Enter Name", value: data.Name ?? '' }) }) }) })] }), _jsxs(Tabs, { className: "twa:mt-2", children: [_jsx(Tabs.Tab, { children: "Alert Type" }), _jsx(Tabs.Content, { children: _jsxs(Flex, { flexDirection: "column", children: [_jsx(TypeRadio, { text: getAlertTypeText(AlertType.DataChange), description: "A change has been made to the Grid's underlying data", checked: props.alertType === AlertType.DataChange, onClick: () => props.onAlertTypeChange(AlertType.DataChange) }), _jsx(TypeRadio, { text: getAlertTypeText(AlertType.RowChange), description: "A Row was added or removed from the data source", checked: props.alertType === AlertType.RowChange, onClick: () => props.onAlertTypeChange(AlertType.RowChange) }), _jsx(TypeRadio, { text: getAlertTypeText(AlertType.Aggregation), description: "A change has been made to aggregated data (i.e. from multiple Rows)", onClick: () => props.onAlertTypeChange(AlertType.Aggregation), checked: props.alertType === AlertType.Aggregation }), _jsx(TypeRadio, { text: getAlertTypeText(AlertType.Observable), description: "A specified change (or lack of change) over time has been observed in the Grid", onClick: () => props.onAlertTypeChange(AlertType.Observable), checked: props.alertType === AlertType.Observable }), _jsx(TypeRadio, { text: getAlertTypeText(AlertType.Validation), description: "A change has broken a data validation rule", checked: props.alertType === AlertType.Validation, onClick: () => props.onAlertTypeChange(AlertType.Validation) }), _jsx(TypeRadio, { text: getAlertTypeText(AlertType.Scheduled), description: "A reminder fires at a date and time you choose", checked: props.alertType === AlertType.Scheduled, onClick: () => props.onAlertTypeChange(AlertType.Scheduled) })] }) })] })] }));
34
+ return (_jsxs(Flex, { flexDirection: "column", className: "twa:gap-3 twa:p-3", children: [_jsxs(Card, { shadow: false, children: [_jsxs(Card.Title, { children: [_jsx(Box, { className: "twa:font-medium", children: "Name" }), _jsx(Box, { className: "twa:text-xs twa:opacity-70 twa:font-normal twa:max-w-[520px]", children: "Provide a unique name for the Alert" })] }), _jsx(Card.Body, { className: "twa:p-1", children: _jsx(Input, { "data-name": "alert-name", className: "twa:max-w-[300px] twa:w-full", onChange: handleNameChange, placeholder: "Enter Name", value: data.Name ?? '' }) })] }), _jsxs(Card, { shadow: false, children: [_jsxs(Card.Title, { children: [_jsx(Box, { className: "twa:font-medium", children: "Alert Type" }), _jsx(Box, { className: "twa:text-xs twa:opacity-70 twa:font-normal twa:max-w-[520px]", children: "Choose when the Alert should fire" })] }), _jsx(Card.Body, { children: _jsxs(Flex, { flexDirection: "column", children: [_jsx(TypeRadio, { text: getAlertTypeText(AlertType.DataChange), description: "A change has been made to the Grid's underlying data", checked: props.alertType === AlertType.DataChange, onClick: () => props.onAlertTypeChange(AlertType.DataChange) }), _jsx(TypeRadio, { text: getAlertTypeText(AlertType.RowChange), description: "A Row was added or removed from the data source", checked: props.alertType === AlertType.RowChange, onClick: () => props.onAlertTypeChange(AlertType.RowChange) }), _jsx(TypeRadio, { text: getAlertTypeText(AlertType.Aggregation), description: "A change has been made to aggregated data (i.e. from multiple Rows)", onClick: () => props.onAlertTypeChange(AlertType.Aggregation), checked: props.alertType === AlertType.Aggregation }), _jsx(TypeRadio, { text: getAlertTypeText(AlertType.Observable), description: "A specified change (or lack of change) over time has been observed in the Grid", onClick: () => props.onAlertTypeChange(AlertType.Observable), checked: props.alertType === AlertType.Observable }), _jsx(TypeRadio, { text: getAlertTypeText(AlertType.Validation), description: "A change has broken a data validation rule", checked: props.alertType === AlertType.Validation, onClick: () => props.onAlertTypeChange(AlertType.Validation) }), _jsx(TypeRadio, { text: getAlertTypeText(AlertType.Scheduled), description: "A reminder fires at a date and time you choose", checked: props.alertType === AlertType.Scheduled, onClick: () => props.onAlertTypeChange(AlertType.Scheduled) })] }) })] })] }));
36
35
  };
@@ -1,13 +1,11 @@
1
1
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useState } from 'react';
3
3
  import { useOnePageAdaptableWizardContext } from '../../Wizard/OnePageAdaptableWizard';
4
- import FormLayout, { FormRow } from '../../../components/FormLayout';
5
4
  import Input from '../../../components/Input';
6
5
  import { CheckBox } from '../../../components/CheckBox';
7
- import ErrorBox from '../../../components/ErrorBox';
8
- import { Tabs } from '../../../components/Tabs';
9
6
  import { Tag } from '../../../components/Tag';
10
7
  import { Box, Flex } from '../../../components/Flex';
8
+ import { Card } from '../../../components/Card';
11
9
  export const renderCalculatedColumnDefinitionSummary = (data) => {
12
10
  return (_jsxs(Box, { className: "twa:text-2 twa:grid twa:items-center twa:grid-cols-[auto_1fr] twa:gap-2", children: [_jsx(Box, { children: "Column Identifier:" }), _jsx(Box, { children: _jsx(Tag, { children: data.ColumnId }) }), data.FriendlyName ? (_jsxs(_Fragment, { children: [_jsx(Box, { children: "Column Name:" }), _jsx(Box, { children: _jsx(Tag, { children: data.FriendlyName ?? data.ColumnId }) })] })) : null] }));
13
11
  };
@@ -21,7 +19,7 @@ export const isValidCalculatedColumnDefinition = (data, api) => {
21
19
  return hasAlreadyExistingId ? 'A column with this Name already exists' : true;
22
20
  };
23
21
  export const CalculatedColumnDefinitionWizardSection = (props) => {
24
- const { data, api } = useOnePageAdaptableWizardContext();
22
+ const { data } = useOnePageAdaptableWizardContext();
25
23
  const handleColumnIdChange = (event) => {
26
24
  let e = event.target;
27
25
  props.onChange({
@@ -37,8 +35,6 @@ export const CalculatedColumnDefinitionWizardSection = (props) => {
37
35
  });
38
36
  };
39
37
  const inEdit = props.isEdit;
40
- const validCheck = isValidCalculatedColumnDefinition(data, api);
41
- const ErrorMessage = validCheck === true ? null : validCheck;
42
38
  const [ColumnNameFocused, setColumnNameFocused] = useState(false);
43
39
  const ColumnName = data.FriendlyName;
44
40
  const ColumnId = data.ColumnId;
@@ -52,11 +48,11 @@ export const CalculatedColumnDefinitionWizardSection = (props) => {
52
48
  },
53
49
  });
54
50
  };
55
- return (_jsxs(Box, { "data-name": 'calculated-column-definition', children: [_jsxs(Tabs, { autoFocus: false, children: [_jsx(Tabs.Tab, { children: "Column Details" }), _jsx(Tabs.Content, { children: _jsx(Flex, { flexDirection: "row", children: _jsxs(FormLayout, { children: [_jsx(FormRow, { label: "Column Name", children: _jsx(Input, { "data-name": "column-id", value: data.ColumnId || '', style: { width: '100%', maxWidth: 500 }, autoFocus: !inEdit, disabled: inEdit, type: "text", placeholder: "Enter a Column Name", onChange: handleColumnIdChange }) }), _jsx(FormRow, { label: "Column Header", children: _jsx(Input, { "data-name": "column-name", autoFocus: inEdit, onFocus: () => {
56
- setColumnNameFocused(true);
57
- }, onBlur: () => {
58
- setColumnNameFocused(false);
59
- }, value: ColumnNameFocused ? ColumnName || '' : ColumnName || ColumnId || '', style: { width: '100%', maxWidth: 500 }, type: "text", placeholder: "Enter a Column Header (optional)", onChange: handleColumnNameChange }) }), _jsx(FormRow, { label: "Column Header Tooltip", children: _jsx(Input, { "data-name": "header-tooltip", type: "text", style: { width: '100%', maxWidth: 500 }, value: HeaderToolTip, onChange: (e) => handleSpecialColumnSettingsChange({
60
- HeaderToolTip: e.target.value,
61
- }) }) }), _jsx(FormRow, { label: "", children: _jsx(CheckBox, { "data-name": "column-show-tooltip", onChange: (checked) => handleSpecialColumnSettingsChange({ ShowToolTip: checked }), checked: ShowToolTip, children: "Show Expression as Cell Tooltip" }) })] }) }) })] }), ErrorMessage ? _jsx(ErrorBox, { className: "twa:mt-2", children: ErrorMessage }) : null] }));
51
+ return (_jsx(Box, { "data-name": 'calculated-column-definition', children: _jsxs(Flex, { flexDirection: "column", className: "twa:gap-3 twa:p-3", children: [_jsxs(Card, { shadow: false, children: [_jsxs(Card.Title, { children: [_jsx(Box, { className: "twa:font-medium", children: "Column Name" }), _jsx(Box, { className: "twa:text-xs twa:opacity-70 twa:font-normal twa:max-w-[520px]", children: "Unique identifier for the Calculated Column" })] }), _jsx(Card.Body, { className: "twa:p-1", children: _jsx(Input, { "data-name": "column-id", value: data.ColumnId || '', className: "twa:max-w-[500px] twa:w-full", autoFocus: !inEdit, disabled: inEdit, type: "text", placeholder: "Enter a Column Name", onChange: handleColumnIdChange }) })] }), _jsxs(Card, { shadow: false, children: [_jsxs(Card.Title, { children: [_jsx(Box, { className: "twa:font-medium", children: "Column Header" }), _jsx(Box, { className: "twa:text-xs twa:opacity-70 twa:font-normal twa:max-w-[520px]", children: "Display name shown in the Column Header (Name used if not provided)" })] }), _jsx(Card.Body, { className: "twa:p-1", children: _jsx(Input, { "data-name": "column-name", autoFocus: inEdit, onFocus: () => {
52
+ setColumnNameFocused(true);
53
+ }, onBlur: () => {
54
+ setColumnNameFocused(false);
55
+ }, value: ColumnNameFocused ? ColumnName || '' : ColumnName || ColumnId || '', className: "twa:max-w-[500px] twa:w-full", type: "text", placeholder: "Enter a Column Header (optional)", onChange: handleColumnNameChange }) })] }), _jsxs(Card, { shadow: false, children: [_jsxs(Card.Title, { children: [_jsx(Box, { className: "twa:font-medium", children: "Column Header Tooltip" }), _jsx(Box, { className: "twa:text-xs twa:opacity-70 twa:font-normal twa:max-w-[520px]", children: "Optional text shown when hovering over the Column Header" })] }), _jsx(Card.Body, { className: "twa:p-1", children: _jsx(Input, { "data-name": "header-tooltip", type: "text", className: "twa:max-w-[500px] twa:w-full", value: HeaderToolTip, onChange: (e) => handleSpecialColumnSettingsChange({
56
+ HeaderToolTip: e.target.value,
57
+ }) }) })] }), _jsxs(Card, { shadow: false, children: [_jsxs(Card.Title, { children: [_jsx(Box, { className: "twa:font-medium", children: "Cell Tooltip" }), _jsx(Box, { className: "twa:text-xs twa:opacity-70 twa:font-normal twa:max-w-[520px]", children: "Show the Expression as a tooltip when hovering over each cell" })] }), _jsx(Card.Body, { children: _jsx(CheckBox, { "data-name": "column-show-tooltip", onChange: (checked) => handleSpecialColumnSettingsChange({ ShowToolTip: checked }), checked: ShowToolTip, children: "Show Expression as Cell Tooltip" }) })] })] }) }));
62
58
  };
@@ -1,11 +1,25 @@
1
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useMemo } from 'react';
3
3
  import { useOnePageAdaptableWizardContext } from '../../Wizard/OnePageAdaptableWizard';
4
4
  import { ExpressionEditor } from '../../../components/ExpressionEditor';
5
- import { Tabs } from '../../../components/Tabs';
6
5
  import { CodeBlock } from '../../../components/CodeBlock';
7
6
  import { Humanize } from '../../../Utilities/Extensions/StringExtensions';
8
- import { Box } from '../../../components/Flex';
7
+ import { Box, Flex } from '../../../components/Flex';
8
+ import { Card } from '../../../components/Card';
9
+ const getExpressionTypeDescription = (expressionType) => {
10
+ switch (expressionType) {
11
+ case 'ScalarExpression':
12
+ return 'Define an expression using values from other cells in each row';
13
+ case 'AggregatedScalarExpression':
14
+ return 'Define an expression using aggregated values from other rows';
15
+ case 'CumulativeAggregatedExpression':
16
+ return 'Define a cumulative expression using values from other rows';
17
+ case 'QuantileAggregatedExpression':
18
+ return 'Define a quantile expression using values from other rows';
19
+ default:
20
+ return '';
21
+ }
22
+ };
9
23
  export const renderCalculatedColumnExpressionSummary = (data) => {
10
24
  const { api } = useOnePageAdaptableWizardContext();
11
25
  return (_jsxs(Box, { className: "twa:text-2", children: ["Column scalar expression:", ' ', _jsx(CodeBlock, { children: api.internalApi.getAdaptableQueryExpressionText(data.Query) })] }));
@@ -34,8 +48,6 @@ export const CalculatedColumnExpressionWizardSection = (props) => {
34
48
  CalculatedColumnSettings: {
35
49
  ...data.CalculatedColumnSettings,
36
50
  DataType: dataType,
37
- // Pivotable,
38
- // Aggregatable,
39
51
  },
40
52
  });
41
53
  };
@@ -50,16 +62,17 @@ export const CalculatedColumnExpressionWizardSection = (props) => {
50
62
  }
51
63
  };
52
64
  const columns = api.columnApi.internalApi.getQueryableColumnsForUIEditor();
53
- return (_jsxs(Tabs, { autoFocus: false, height: "100%", children: [_jsx(Tabs.Tab, { children: Humanize(props.expressionType) }), _jsx(Tabs.Content, { children: (() => {
54
- switch (props.expressionType) {
55
- case 'ScalarExpression':
56
- return (_jsx(ExpressionEditor, { type: 'scalar', module: moduleInfo.ModuleName, className: "twa:pl-0", value: data.Query.ScalarExpression, onChange: (ScalarExpression) => setCalculatedColumnExpression({ ScalarExpression }), initialData: initialData, columns: columns, fields: api.expressionApi.internalApi.getAvailableFields(), namedQueries: api.namedQueryApi.getNamedQueries(), isFullExpression: true, api: api }));
57
- case 'AggregatedScalarExpression':
58
- case 'CumulativeAggregatedExpression':
59
- case 'QuantileAggregatedExpression':
60
- return (_jsx(ExpressionEditor, { type: getEditorType(props.expressionType), module: moduleInfo.ModuleName, className: "twa:pl-0", value: data.Query.AggregatedScalarExpression, onChange: (AggregatedScalarExpression) => setCalculatedColumnExpression({ AggregatedScalarExpression }), initialData: initialData, columns: columns, namedQueries: api.namedQueryApi.getNamedQueries(), isFullExpression: true, api: api }));
61
- default:
62
- return _jsx(_Fragment, {});
63
- }
64
- })() })] }));
65
+ const expressionEditor = (() => {
66
+ switch (props.expressionType) {
67
+ case 'ScalarExpression':
68
+ return (_jsx(ExpressionEditor, { type: 'scalar', module: moduleInfo.ModuleName, className: "twa:pl-0", value: data.Query.ScalarExpression, onChange: (ScalarExpression) => setCalculatedColumnExpression({ ScalarExpression }), initialData: initialData, columns: columns, fields: api.expressionApi.internalApi.getAvailableFields(), namedQueries: api.namedQueryApi.getNamedQueries(), isFullExpression: true, api: api }));
69
+ case 'AggregatedScalarExpression':
70
+ case 'CumulativeAggregatedExpression':
71
+ case 'QuantileAggregatedExpression':
72
+ return (_jsx(ExpressionEditor, { type: getEditorType(props.expressionType), module: moduleInfo.ModuleName, className: "twa:pl-0", value: data.Query.AggregatedScalarExpression, onChange: (AggregatedScalarExpression) => setCalculatedColumnExpression({ AggregatedScalarExpression }), initialData: initialData, columns: columns, namedQueries: api.namedQueryApi.getNamedQueries(), isFullExpression: true, api: api }));
73
+ default:
74
+ return null;
75
+ }
76
+ })();
77
+ return (_jsx(Flex, { flexDirection: "column", className: "twa:h-full twa:gap-3 twa:p-3", children: _jsxs(Card, { shadow: false, className: "twa:flex-1 twa:min-h-0", children: [_jsxs(Card.Title, { children: [_jsx(Box, { className: "twa:font-medium", children: Humanize(props.expressionType) }), _jsx(Box, { className: "twa:text-xs twa:opacity-70 twa:font-normal twa:max-w-[520px]", children: getExpressionTypeDescription(props.expressionType) })] }), _jsx(Card.Body, { className: "twa:flex-1 twa:min-h-0", children: expressionEditor })] }) }));
65
78
  };
@@ -2,22 +2,20 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import * as React from 'react';
3
3
  import { useMemo } from 'react';
4
4
  import { useOnePageAdaptableWizardContext } from '../../Wizard/OnePageAdaptableWizard';
5
- import FormLayout, { FormRow } from '../../../components/FormLayout';
6
5
  import Input from '../../../components/Input';
7
- import ErrorBox from '../../../components/ErrorBox';
8
- import { Tabs } from '../../../components/Tabs';
9
6
  import { SpecialColumnSettingsWizardStep } from '../../SpecialColumnSettingsWizardStep';
10
7
  import { getCalculatedColumnSettingsTags } from '../Utilities/getCalculatedColumnSettingsTags';
11
8
  import { Box, Flex } from '../../../components/Flex';
12
9
  import { TagList } from '../../../components/Tag/Tag';
13
10
  import { SingleSelect } from '../../../components/NewSelect';
11
+ import { Card } from '../../../components/Card';
14
12
  export const renderCalculatedColumnSettingsSummary = (data) => {
15
13
  const options = getCalculatedColumnSettingsTags(data.CalculatedColumnSettings);
16
14
  return _jsx(TagList, { tags: options });
17
15
  };
18
16
  export const isValidCalculatedColumnSettings = (data) => {
19
17
  if (!data.CalculatedColumnSettings?.DataType) {
20
- return 'A data type is required. It could not be inferred from the expression.';
18
+ return 'Please select a data type (could not be inferred from the expression)';
21
19
  }
22
20
  return true;
23
21
  };
@@ -64,9 +62,9 @@ export const CalculatedColumnSettingsWizardSection = (props) => {
64
62
  { value: 'boolean', label: 'Boolean' },
65
63
  { value: 'numberArray', label: 'NumberArray' },
66
64
  ];
67
- return (_jsxs(Box, { "data-name": 'calculated-column-settings', children: [_jsxs(Tabs, { autoFocus: false, children: [_jsx(Tabs.Tab, { children: "Column Settings" }), _jsx(Tabs.Content, { children: _jsx(Flex, { flexDirection: "row", children: _jsxs(FormLayout, { children: [_jsx(FormRow, { label: "Data Type", children: _jsx(SingleSelect, { "data-name": "column-type", placeholder: "Select Data Type", items: options, value: dataType, onValueChange: (value) => handleDataTypeChange(value) }) }), _jsx(FormRow, { label: "Width", children: _jsx(Input, { "data-name": "column-width", type: "number", width: 300, value: Width || '', onChange: (e) => handleSpecialColumnSettingsChange({
68
- Width: Number(e.target.value),
69
- }) }) })] }) }) })] }), ErrorMessage ? _jsx(ErrorBox, { className: "twa:mt-2", children: ErrorMessage }) : null, _jsx(SpecialColumnSettingsWizardStep, { isEditable: false,
70
- // @ts-ignore CalculatedColumn has a broader DataType
71
- settings: data.CalculatedColumnSettings, onChange: handleSpecialColumnSettingsChange })] }));
65
+ return (_jsx(Box, { "data-name": 'calculated-column-settings', children: _jsxs(Flex, { flexDirection: "column", className: "twa:gap-3 twa:p-3", children: [_jsxs(Card, { shadow: false, children: [_jsxs(Card.Title, { children: [_jsx(Box, { className: "twa:font-medium", children: "Data Type" }), _jsx(Box, { className: "twa:text-xs twa:opacity-70 twa:font-normal twa:max-w-[520px]", children: "Choose the data type for the Calculated Column values" })] }), _jsxs(Card.Body, { className: "twa:p-1 twa:gap-1", children: [_jsx(SingleSelect, { "data-name": "column-type", placeholder: "Select Data Type", items: options, value: dataType, onValueChange: (value) => handleDataTypeChange(value), className: "twa:max-w-[300px]" }), ErrorMessage ? (_jsx(Box, { className: "twa:text-2 twa:text-error", children: ErrorMessage })) : null] })] }), _jsxs(Card, { shadow: false, children: [_jsxs(Card.Title, { children: [_jsx(Box, { className: "twa:font-medium", children: "Width" }), _jsx(Box, { className: "twa:text-xs twa:opacity-70 twa:font-normal twa:max-w-[520px]", children: "Optional Column Width in pixels" })] }), _jsx(Card.Body, { className: "twa:p-1", children: _jsx(Input, { "data-name": "column-width", type: "number", className: "twa:max-w-[300px]", value: Width || '', onChange: (e) => handleSpecialColumnSettingsChange({
66
+ Width: Number(e.target.value),
67
+ }) }) })] }), _jsx(SpecialColumnSettingsWizardStep, { isEditable: false,
68
+ // @ts-ignore CalculatedColumn has a broader DataType
69
+ settings: data.CalculatedColumnSettings, onChange: handleSpecialColumnSettingsChange })] }) }));
72
70
  };
@@ -1,7 +1,7 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { Tabs } from '../../../components/Tabs';
3
2
  import { TypeRadio } from '../../Wizard/TypeRadio';
4
- import { Flex } from '../../../components/Flex';
3
+ import { Box, Flex } from '../../../components/Flex';
4
+ import { Card } from '../../../components/Card';
5
5
  export const CalculatedColumnTypeWizardSection = (props) => {
6
- return (_jsxs(Tabs, { children: [_jsx(Tabs.Tab, { children: "Calculated Column Type" }), _jsx(Tabs.Content, { children: _jsxs(Flex, { flexDirection: "column", children: [_jsx(TypeRadio, { text: 'Standard', description: "The calculated value is derived from other cells in the row", checked: props.type === 'ScalarExpression', onClick: () => props.onTypeChange('ScalarExpression') }), _jsx(TypeRadio, { text: 'Aggregated', description: "The calculated value is derived from other rows", checked: props.type === 'AggregatedScalarExpression', onClick: () => props.onTypeChange('AggregatedScalarExpression') }), _jsx(TypeRadio, { text: 'Cumulative', description: "The calculated value is derived cumulatively from other rows", checked: props.type === 'CumulativeAggregatedExpression', onClick: () => props.onTypeChange('CumulativeAggregatedExpression') }), _jsx(TypeRadio, { text: 'Quantile', description: "The calculated value is derived from other rows using quantile aggregations", checked: props.type === 'QuantileAggregatedExpression', onClick: () => props.onTypeChange('QuantileAggregatedExpression') })] }) })] }));
6
+ return (_jsx(Flex, { flexDirection: "column", className: "twa:gap-3 twa:p-3", children: _jsxs(Card, { shadow: false, children: [_jsx(Card.Title, { children: _jsx(Box, { className: "twa:font-medium", children: "Calculated Column Type" }) }), _jsx(Card.Body, { children: _jsxs(Flex, { flexDirection: "column", children: [_jsx(TypeRadio, { text: 'Standard', description: "The calculated value is derived from other cells in the row", checked: props.type === 'ScalarExpression', onClick: () => props.onTypeChange('ScalarExpression') }), _jsx(TypeRadio, { text: 'Aggregated', description: "The calculated value is derived from other rows", checked: props.type === 'AggregatedScalarExpression', onClick: () => props.onTypeChange('AggregatedScalarExpression') }), _jsx(TypeRadio, { text: 'Cumulative', description: "The calculated value is derived cumulatively from other rows", checked: props.type === 'CumulativeAggregatedExpression', onClick: () => props.onTypeChange('CumulativeAggregatedExpression') }), _jsx(TypeRadio, { text: 'Quantile', description: "The calculated value is derived from other rows using quantile aggregations", checked: props.type === 'QuantileAggregatedExpression', onClick: () => props.onTypeChange('QuantileAggregatedExpression') })] }) })] }) }));
7
7
  };
@@ -55,7 +55,7 @@ class CellSummaryViewPanelComponent extends React.Component {
55
55
  'twa:flex-1 twa:flex-wrap': !isToolbar,
56
56
  }), children: [_jsx(Flex, { className: "twa:flex-1", children: _jsx(SingleSelect, { ariaLabel: "Cell Summary Operation Selector", className: `ab-${elementType}__CellSummary__select twa:w-full`, disabled: shouldDisable, items: [...operationMenuItems, ...operationDefinitions], onValueChange: (x) => this.props.onCellSummaryOperationChange(x), value: this.props.CellSummaryOperation }) }), _jsx(Flex, { className: "twa:items-center twa:gap-1", children: _jsxs(_Fragment, { children: [_jsx(Flex, { className: clsx(`ab-${elementType}__CellSummary__value twa:min-w-[50px]`, {
57
57
  'twa:rounded-standard twa:text-color-text-on-info twa:bg-color-info twa:text-2': !isToolbar,
58
- 'twa:flex-1 twa:text-color-text-on-primary twa:justify-center': isToolbar,
58
+ 'twa:flex-1 twa:text-primary-foreground twa:justify-center': isToolbar,
59
59
  }), children: operationValue }), _jsx(AdaptablePopover, { popoverMaxWidth: 360, className: "ab-ToolPanel__CellSummary__info", bodyText: [cellSummaryPopover], useButton: true, showEvent: 'focus', hideEvent: "blur", tooltipText: 'Show Cell Summaries', disabled: !this.props.CellSummary?.Count })] }) })] }));
60
60
  }
61
61
  checkSelectedCells() {
@@ -2,7 +2,6 @@ import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import * as React from 'react';
3
3
  import { useAdaptable } from '../../../AdaptableContext';
4
4
  import { OnePageAdaptableWizard } from '../../../Wizard/OnePageAdaptableWizard';
5
- import { PreviewChartSection } from './PreviewChartSection';
6
5
  import { isSettingsValid, SettingsSection } from './SettingsSection';
7
6
  import { ObjectTagsWizardSection, renderObjectTagsSummary, } from '../../../Wizard/ObjectTagsWizardSection';
8
7
  import { Box } from '../../../../components/Flex';
@@ -17,10 +16,10 @@ export const AgChargingWizard = (props) => {
17
16
  }, [chartDefinition]);
18
17
  return (_jsx(OnePageAdaptableWizard, { defaultCurrentSectionName: props.defaultCurrentSectionName, moduleInfo: props.moduleInfo, data: chartDefinition, onHide: props.onCloseWizard, onFinish: handleFinish, sections: [
19
18
  {
20
- title: 'Settings',
21
- details: 'Chart Settings',
19
+ title: 'Chart',
20
+ details: 'Configure chart properties and preview the result',
22
21
  isValid: isSettingsValid,
23
- render: () => (_jsx(Box, { className: "twa:p-2", children: _jsx(SettingsSection, { chartDefinition: chartDefinition, onChange: setChartDefinition }) })),
22
+ render: () => (_jsx(SettingsSection, { chartDefinition: chartDefinition, onChange: setChartDefinition })),
24
23
  },
25
24
  {
26
25
  details: 'Select Chart Tags',
@@ -29,11 +28,5 @@ export const AgChargingWizard = (props) => {
29
28
  render: () => (_jsx(Box, { className: "twa:p-2", children: _jsx(ObjectTagsWizardSection, { onChange: setChartDefinition }) })),
30
29
  renderSummary: renderObjectTagsSummary,
31
30
  },
32
- '-',
33
- {
34
- title: 'Preview Chart',
35
- details: 'Chart Preview',
36
- render: () => (_jsx(Box, { className: "twa:p-2", children: _jsx(PreviewChartSection, { chartDefinition: chartDefinition, onChange: setChartDefinition }) })),
37
- },
38
31
  ] }));
39
32
  };
@@ -29,5 +29,5 @@ export const PreviewChartSection = (props) => {
29
29
  });
30
30
  }
31
31
  }, [currentChartModels]);
32
- return _jsx("div", { ref: divRef });
32
+ return _jsx("div", { ref: divRef, className: "twa:min-h-[280px] twa:h-full twa:w-full" });
33
33
  };