@adaptabletools/adaptable 23.0.0-canary.3 → 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 (277) hide show
  1. package/index.css +116 -61
  2. package/package.json +9 -4
  3. package/src/AdaptableOptions/DefaultAdaptableOptions.js +0 -4
  4. package/src/AdaptableOptions/EditOptions.d.ts +2 -2
  5. package/src/AdaptableOptions/FilterOptions.d.ts +0 -7
  6. package/src/AdaptableState/Common/AdaptableForm.d.ts +18 -1
  7. package/src/AdaptableState/Common/AdaptableForm.js +31 -0
  8. package/src/AdaptableState/Common/AggregationColumns.d.ts +14 -6
  9. package/src/AdaptableState/Common/AggregationColumns.js +27 -2
  10. package/src/AdaptableState/Common/CellDataChangedInfo.d.ts +3 -2
  11. package/src/AdaptableState/Common/ColumnScope.d.ts +4 -0
  12. package/src/AdaptableState/Common/Enums.d.ts +5 -10
  13. package/src/AdaptableState/Common/Enums.js +4 -10
  14. package/src/AdaptableState/PlusMinusState.d.ts +3 -3
  15. package/src/AdaptableState/ShortcutState.d.ts +2 -6
  16. package/src/AdaptableState/StyledColumnState.d.ts +3 -5
  17. package/src/AdaptableState/ThemeState.d.ts +33 -28
  18. package/src/Api/EventApi.d.ts +14 -1
  19. package/src/Api/Events/ThemeChanged.d.ts +6 -0
  20. package/src/Api/Events/ThemeSelected.d.ts +11 -0
  21. package/src/Api/Events/ThemeSelected.js +1 -0
  22. package/src/Api/Implementation/EventApiImpl.js +4 -0
  23. package/src/Api/Implementation/LayoutApiImpl.d.ts +0 -2
  24. package/src/Api/Implementation/LayoutApiImpl.js +0 -14
  25. package/src/Api/Implementation/LayoutHelpers.d.ts +2 -0
  26. package/src/Api/Implementation/LayoutHelpers.js +29 -7
  27. package/src/Api/Implementation/ThemeApiImpl.d.ts +3 -2
  28. package/src/Api/Implementation/ThemeApiImpl.js +19 -15
  29. package/src/Api/Internal/EventInternalApi.d.ts +2 -0
  30. package/src/Api/Internal/EventInternalApi.js +8 -1
  31. package/src/Api/Internal/StyledColumnInternalApi.d.ts +4 -4
  32. package/src/Api/Internal/StyledColumnInternalApi.js +4 -4
  33. package/src/Api/Internal/ThemeInternalApi.d.ts +0 -1
  34. package/src/Api/Internal/ThemeInternalApi.js +0 -10
  35. package/src/Api/LayoutApi.d.ts +1 -8
  36. package/src/Api/ThemeApi.d.ts +6 -2
  37. package/src/Redux/ActionsReducers/ThemeRedux.d.ts +3 -3
  38. package/src/Strategy/CalculatedColumnModule.js +3 -1
  39. package/src/Strategy/FormatColumnModule.js +14 -7
  40. package/src/Strategy/LayoutModule.js +13 -8
  41. package/src/Strategy/StyledColumnModule.js +64 -36
  42. package/src/Utilities/Constants/ReduxConstants.d.ts +2 -2
  43. package/src/Utilities/Constants/ReduxConstants.js +1 -14
  44. package/src/Utilities/Helpers/FormatHelper.js +20 -1
  45. package/src/Utilities/Helpers/SparklineOptionsHelper.d.ts +7 -0
  46. package/src/Utilities/Helpers/SparklineOptionsHelper.js +65 -0
  47. package/src/Utilities/Helpers/StyledColumnGradientHelper.d.ts +23 -1
  48. package/src/Utilities/Helpers/StyledColumnGradientHelper.js +204 -0
  49. package/src/Utilities/Helpers/ThemeHelpers.d.ts +5 -0
  50. package/src/Utilities/Helpers/ThemeHelpers.js +38 -0
  51. package/src/Utilities/Helpers/percentBarPreviewHelper.d.ts +19 -0
  52. package/src/Utilities/Helpers/percentBarPreviewHelper.js +143 -0
  53. package/src/Utilities/ObjectFactory.d.ts +1 -3
  54. package/src/Utilities/ObjectFactory.js +0 -8
  55. package/src/Utilities/Services/CalculatedColumnExpressionService.d.ts +1 -0
  56. package/src/Utilities/Services/CalculatedColumnExpressionService.js +7 -0
  57. package/src/Utilities/Services/CalculatedColumnSyntheticChange.d.ts +4 -0
  58. package/src/Utilities/Services/CalculatedColumnSyntheticChange.js +115 -0
  59. package/src/Utilities/Services/Interface/ICalculatedColumnExpressionService.d.ts +1 -0
  60. package/src/Utilities/Services/ThemeService.js +1 -1
  61. package/src/View/Alert/Wizard/AlertBehaviourWizardSection.js +17 -16
  62. package/src/View/Alert/Wizard/AlertButtonsEditor.js +114 -103
  63. package/src/View/Alert/Wizard/AlertMessageWizardSection.js +13 -14
  64. package/src/View/Alert/Wizard/AlertNotificationWizardSection.js +55 -55
  65. package/src/View/Alert/Wizard/AlertRulesWizardSection.js +3 -2
  66. package/src/View/Alert/Wizard/AlertScheduledWizardSection.js +2 -2
  67. package/src/View/Alert/Wizard/AlertScopeWizardSection.js +31 -39
  68. package/src/View/Alert/Wizard/AlertTypeWizardSection.js +3 -4
  69. package/src/View/CalculatedColumn/Wizard/CalculatedColumnDefinitionWizardSection.js +9 -13
  70. package/src/View/CalculatedColumn/Wizard/CalculatedColumnExpressionWizardSection.js +30 -17
  71. package/src/View/CalculatedColumn/Wizard/CalculatedColumnSettingsWizardSection.js +7 -9
  72. package/src/View/CalculatedColumn/Wizard/CalculatedColumnTypeSection.js +3 -3
  73. package/src/View/CellSummary/CellSummaryViewPanel.js +1 -1
  74. package/src/View/Charting/ChartingWizard/AgChargingWizard/AgChargingWizard.js +3 -10
  75. package/src/View/Charting/ChartingWizard/AgChargingWizard/PreviewChartSection.js +1 -1
  76. package/src/View/Charting/ChartingWizard/AgChargingWizard/SettingsSection.js +35 -52
  77. package/src/View/Charting/ChartingWizard/ExternalChartingWizard/ExternalChartingWizard.js +4 -31
  78. package/src/View/Charting/ChartingWizard/ExternalChartingWizard/PreviewChartSection.d.ts +5 -0
  79. package/src/View/Charting/ChartingWizard/ExternalChartingWizard/PreviewChartSection.js +21 -0
  80. package/src/View/Charting/ChartingWizard/ExternalChartingWizard/SettingsSection.d.ts +1 -0
  81. package/src/View/Charting/ChartingWizard/ExternalChartingWizard/SettingsSection.js +10 -7
  82. package/src/View/Comments/CommentsEditor.js +1 -1
  83. package/src/View/Components/ColumnFilter/ColumnFilterWindow.js +1 -1
  84. package/src/View/Components/ModuleProfile.js +1 -1
  85. package/src/View/Components/Popups/WindowPopups/windowFactory.d.ts +0 -1
  86. package/src/View/Components/Popups/WindowPopups/windowFactory.js +0 -1
  87. package/src/View/Components/RangesComponent.d.ts +7 -2
  88. package/src/View/Components/RangesComponent.js +94 -22
  89. package/src/View/Components/Selectors/ColumnSelector.js +5 -0
  90. package/src/View/Components/StyleComponent.d.ts +1 -0
  91. package/src/View/Components/StyleComponent.js +1 -1
  92. package/src/View/Components/ValueSelector/index.js +70 -57
  93. package/src/View/CustomSort/Wizard/CustomSortColumnWizardSection.js +8 -13
  94. package/src/View/CustomSort/Wizard/CustomSortValuesWizardSection.js +8 -8
  95. package/src/View/DataChangeHistory/DataChangeHistoryGrid.js +1 -1
  96. package/src/View/DataImport/DataImportWizard/sections/ColumnsSection.js +11 -12
  97. package/src/View/DataImport/DataImportWizard/sections/UploadSection/UploadSection.js +6 -4
  98. package/src/View/DataImport/DataImportWizard/sections/UploadSection/UploadTextSection.js +3 -2
  99. package/src/View/DataImport/DataImportWizard/sections/ValidationSection.js +5 -15
  100. package/src/View/Export/Wizard/ReportColumnsWizardSection.js +24 -26
  101. package/src/View/Export/Wizard/ReportNameWizardSection.js +10 -13
  102. package/src/View/Export/Wizard/ReportRowsWizardSection.js +20 -22
  103. package/src/View/Export/Wizard/ScheduledReportSettings.d.ts +2 -0
  104. package/src/View/Export/Wizard/ScheduledReportSettings.js +13 -13
  105. package/src/View/Export/Wizard/ScheduledReportWizard.js +4 -5
  106. package/src/View/FlashingCell/Wizard/FlashingCellRulesWizardSection.js +8 -6
  107. package/src/View/FlashingCell/Wizard/FlashingCellScopeWizardSection.js +24 -23
  108. package/src/View/FlashingCell/Wizard/FlashingCellSettingsWizardSection.js +20 -11
  109. package/src/View/FlashingCell/Wizard/FlashingCellStyleWizardSection.js +21 -5
  110. package/src/View/FlashingCell/Wizard/FlashingCellWizard.js +4 -4
  111. package/src/View/FormatColumn/Wizard/FormatColumnFormatWizardSection.d.ts +7 -0
  112. package/src/View/FormatColumn/Wizard/FormatColumnFormatWizardSection.js +117 -12
  113. package/src/View/FormatColumn/Wizard/FormatColumnPreview.d.ts +15 -0
  114. package/src/View/FormatColumn/Wizard/FormatColumnPreview.js +66 -0
  115. package/src/View/FormatColumn/Wizard/FormatColumnRuleWizardSection.d.ts +4 -0
  116. package/src/View/FormatColumn/Wizard/FormatColumnRuleWizardSection.js +30 -0
  117. package/src/View/FormatColumn/Wizard/FormatColumnScopeWizardSection.js +13 -8
  118. package/src/View/FormatColumn/Wizard/FormatColumnSettingsWizardSection.js +1 -1
  119. package/src/View/FormatColumn/Wizard/FormatColumnStyleWizardSection.d.ts +3 -1
  120. package/src/View/FormatColumn/Wizard/FormatColumnStyleWizardSection.js +62 -13
  121. package/src/View/FormatColumn/Wizard/FormatColumnWizard.js +5 -3
  122. package/src/View/FreeTextColumn/Utilities/getFreeTextColumnSettingsTags.d.ts +2 -0
  123. package/src/View/FreeTextColumn/Utilities/getFreeTextColumnSettingsTags.js +15 -0
  124. package/src/View/FreeTextColumn/Wizard/FreeTextColumnDefinitionWizardSection.d.ts +10 -0
  125. package/src/View/FreeTextColumn/Wizard/FreeTextColumnDefinitionWizardSection.js +53 -0
  126. package/src/View/FreeTextColumn/Wizard/FreeTextColumnSettingsWizardSection.d.ts +2 -3
  127. package/src/View/FreeTextColumn/Wizard/FreeTextColumnSettingsWizardSection.js +33 -68
  128. package/src/View/FreeTextColumn/Wizard/FreeTextColumnWizard.js +15 -11
  129. package/src/View/Layout/LayoutViewPanel.js +23 -21
  130. package/src/View/Layout/TransposedPopup.js +2 -2
  131. package/src/View/Layout/Wizard/LayoutWizard.js +3 -3
  132. package/src/View/Layout/Wizard/sections/AggregationsSection.d.ts +2 -3
  133. package/src/View/Layout/Wizard/sections/AggregationsSection.js +115 -26
  134. package/src/View/Layout/Wizard/sections/ColumnsSection.js +79 -79
  135. package/src/View/Layout/Wizard/sections/FilterSection.js +31 -32
  136. package/src/View/Layout/Wizard/sections/GridFilterSection.js +11 -11
  137. package/src/View/Layout/Wizard/sections/PivotAggregationsSection.d.ts +1 -2
  138. package/src/View/Layout/Wizard/sections/PivotAggregationsSection.js +101 -52
  139. package/src/View/Layout/Wizard/sections/PivotColumnsSection.js +9 -8
  140. package/src/View/Layout/Wizard/sections/PivotRowGroupingSection.js +4 -4
  141. package/src/View/Layout/Wizard/sections/RowGroupingSection.js +36 -33
  142. package/src/View/Layout/Wizard/sections/RowSelectionSection.js +2 -2
  143. package/src/View/Layout/Wizard/sections/RowSummarySection.js +95 -73
  144. package/src/View/Layout/Wizard/sections/SettingsSection.js +4 -5
  145. package/src/View/Layout/Wizard/sections/SortSection.js +2 -2
  146. package/src/View/NamedQuery/Wizard/NamedQueryExpressionWizardSection.js +1 -1
  147. package/src/View/NamedQuery/Wizard/NamedQuerySettingsWizardSection.js +9 -14
  148. package/src/View/NamedQuery/Wizard/NamedQueryWizard.js +1 -3
  149. package/src/View/PlusMinus/Wizard/PlusMinusRuleWizardSection.d.ts +4 -0
  150. package/src/View/PlusMinus/Wizard/PlusMinusRuleWizardSection.js +43 -13
  151. package/src/View/PlusMinus/Wizard/PlusMinusScopeWizardSection.js +11 -18
  152. package/src/View/PlusMinus/Wizard/PlusMinusSettingsWizardSection.d.ts +2 -6
  153. package/src/View/PlusMinus/Wizard/PlusMinusSettingsWizardSection.js +6 -22
  154. package/src/View/PlusMinus/Wizard/PlusMinusWizard.js +15 -21
  155. package/src/View/Schedule/Wizard/ScheduleScheduleWizard.js +2 -2
  156. package/src/View/Shortcut/Wizard/ShortcutScopeWizardSection.js +11 -18
  157. package/src/View/Shortcut/Wizard/ShortcutSettingsWizard.js +17 -6
  158. package/src/View/Shortcut/Wizard/ShortcutWizard.js +3 -3
  159. package/src/View/Shortcut/shortcutOperations.d.ts +3 -0
  160. package/src/View/Shortcut/shortcutOperations.js +28 -0
  161. package/src/View/SpecialColumnSettingsWizardStep.js +9 -8
  162. package/src/View/StyledColumn/Wizard/BadgePillStyleEditor.d.ts +5 -0
  163. package/src/View/StyledColumn/Wizard/BadgePillStyleEditor.js +24 -15
  164. package/src/View/StyledColumn/Wizard/StyledColumnBadgeSection.d.ts +10 -2
  165. package/src/View/StyledColumn/Wizard/StyledColumnBadgeSection.js +96 -16
  166. package/src/View/StyledColumn/Wizard/StyledColumnSliceStyleEditors.d.ts +14 -0
  167. package/src/View/StyledColumn/Wizard/StyledColumnSliceStyleEditors.js +45 -24
  168. package/src/View/StyledColumn/Wizard/StyledColumnSparklineSettingsSection.d.ts +2 -3
  169. package/src/View/StyledColumn/Wizard/StyledColumnSparklineSettingsSection.js +108 -33
  170. package/src/View/StyledColumn/Wizard/StyledColumnWizard.js +21 -13
  171. package/src/View/StyledColumn/Wizard/StyledColumnWizardBulletSection.d.ts +5 -0
  172. package/src/View/StyledColumn/Wizard/StyledColumnWizardBulletSection.js +121 -23
  173. package/src/View/StyledColumn/Wizard/StyledColumnWizardGradientSection.d.ts +1 -0
  174. package/src/View/StyledColumn/Wizard/StyledColumnWizardGradientSection.js +34 -11
  175. package/src/View/StyledColumn/Wizard/StyledColumnWizardIconSection.d.ts +5 -0
  176. package/src/View/StyledColumn/Wizard/StyledColumnWizardIconSection.js +86 -12
  177. package/src/View/StyledColumn/Wizard/StyledColumnWizardRangeBarSection.d.ts +5 -0
  178. package/src/View/StyledColumn/Wizard/StyledColumnWizardRangeBarSection.js +121 -34
  179. package/src/View/StyledColumn/Wizard/StyledColumnWizardRatingSection.d.ts +1 -0
  180. package/src/View/StyledColumn/Wizard/StyledColumnWizardRatingSection.js +55 -75
  181. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/BulletRangesSummaryPreview.d.ts +5 -0
  182. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/BulletRangesSummaryPreview.js +16 -0
  183. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/GradientSummaryPreview.js +7 -13
  184. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/PercentBarColumnComparisonPreview.js +5 -5
  185. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/PercentBarRangesPreview.js +4 -3
  186. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/PercentBarStylePreview.d.ts +5 -4
  187. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/PercentBarStylePreview.js +12 -14
  188. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/RangeBarRangesSummaryPreview.d.ts +5 -0
  189. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/RangeBarRangesSummaryPreview.js +16 -0
  190. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnBadgePreview.d.ts +3 -0
  191. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnBadgePreview.js +31 -3
  192. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnBulletPreview.d.ts +9 -0
  193. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnBulletPreview.js +58 -0
  194. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnGradientPreview.d.ts +10 -0
  195. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnGradientPreview.js +30 -0
  196. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnIconPreview.d.ts +10 -0
  197. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnIconPreview.js +91 -0
  198. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnPercentBarPreview.d.ts +8 -0
  199. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnPercentBarPreview.js +52 -0
  200. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnRangeBarPreview.d.ts +8 -0
  201. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnRangeBarPreview.js +53 -0
  202. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnRatingPreview.d.ts +18 -0
  203. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnRatingPreview.js +58 -0
  204. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnSparklinePreview.d.ts +10 -0
  205. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnSparklinePreview.js +126 -0
  206. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/StyledColumnWizardRangesSection.js +12 -5
  207. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/StyledColumnWizardStyleSection.d.ts +1 -5
  208. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/StyledColumnWizardStyleSection.js +52 -29
  209. package/src/View/SystemStatus/Utilities/getStatusItemStyle.js +1 -1
  210. package/src/View/Theme/ThemePopup.d.ts +2 -14
  211. package/src/View/Theme/ThemePopup.js +1 -36
  212. package/src/View/UIHelper.js +1 -1
  213. package/src/View/Wizard/OnePageAdaptableWizard.js +7 -21
  214. package/src/View/renderWithAdaptableContext.js +2 -3
  215. package/src/agGrid/AdaptableAgGrid.d.ts +1 -1
  216. package/src/agGrid/AdaptableAgGrid.js +38 -43
  217. package/src/agGrid/AgGridAdapter.d.ts +1 -1
  218. package/src/agGrid/AgGridAdapter.js +27 -17
  219. package/src/agGrid/AgGridColumnAdapter.js +10 -19
  220. package/src/agGrid/AgGridMenuAdapter.d.ts +0 -1
  221. package/src/agGrid/AgGridMenuAdapter.js +20 -37
  222. package/src/agGrid/buildValueAggregationMenuItem.d.ts +19 -0
  223. package/src/agGrid/buildValueAggregationMenuItem.js +111 -0
  224. package/src/agGrid/cellRenderers/IconRenderer.d.ts +6 -0
  225. package/src/agGrid/cellRenderers/IconRenderer.js +43 -15
  226. package/src/agGrid/createAgGridIcon.d.ts +10 -0
  227. package/src/agGrid/createAgGridIcon.js +16 -0
  228. package/src/components/AdaptableFormComponent/AdaptableFormComponent.js +11 -6
  229. package/src/components/Combobox/VirtualizedList.js +5 -5
  230. package/src/components/Combobox/comboboxUtils.d.ts +4 -1
  231. package/src/components/Combobox/comboboxUtils.js +2 -0
  232. package/src/components/Combobox/index.d.ts +1 -0
  233. package/src/components/Combobox/index.js +35 -15
  234. package/src/components/DragAndDropContext/UnusedPanel.js +1 -1
  235. package/src/components/ExpressionEditor/BaseEditorInput.js +1 -1
  236. package/src/components/ExpressionEditor/ExpressionFunctionDocumentation.js +1 -1
  237. package/src/components/Input/NumberInput.js +1 -1
  238. package/src/components/Panel/index.js +1 -1
  239. package/src/components/SimpleButton/index.js +4 -4
  240. package/src/components/Toggle/Toggle.js +1 -1
  241. package/src/components/Toggle/ToggleGroup.js +1 -1
  242. package/src/components/Tree/TreeDropdown/index.js +2 -6
  243. package/src/env.js +2 -2
  244. package/src/layout-manager/src/LayoutManagerModel.d.ts +5 -1
  245. package/src/layout-manager/src/index.js +2 -9
  246. package/src/metamodel/adaptable.metamodel.d.ts +39 -46
  247. package/src/metamodel/adaptable.metamodel.js +1 -1
  248. package/src/types.d.ts +5 -5
  249. package/themes/dark.css +1 -68
  250. package/themes/light.css +1 -5
  251. package/tsconfig.esm.tsbuildinfo +1 -1
  252. package/src/AdaptableState/Common/FilterActionOnDataChange.d.ts +0 -17
  253. package/src/AdaptableState/Common/FilterActionOnDataChange.js +0 -4
  254. package/src/Aggregation/ParameterizedAggregationRegistry.d.ts +0 -35
  255. package/src/Aggregation/ParameterizedAggregationRegistry.js +0 -63
  256. package/src/Aggregation/definitions/weightedAverageAggregationDefinition.d.ts +0 -3
  257. package/src/Aggregation/definitions/weightedAverageAggregationDefinition.js +0 -55
  258. package/src/Aggregation/parameterizedAggregationColumnMenu.d.ts +0 -8
  259. package/src/Aggregation/parameterizedAggregationColumnMenu.js +0 -137
  260. package/src/Aggregation/parameterizedAggregationHeader.d.ts +0 -13
  261. package/src/Aggregation/parameterizedAggregationHeader.js +0 -60
  262. package/src/Aggregation/parameterizedAggregationHelpers.d.ts +0 -23
  263. package/src/Aggregation/parameterizedAggregationHelpers.js +0 -111
  264. package/src/Aggregation/parameterizedAggregationWizardHelpers.d.ts +0 -9
  265. package/src/Aggregation/parameterizedAggregationWizardHelpers.js +0 -66
  266. package/src/Aggregation/validateParameterizedAggregations.d.ts +0 -4
  267. package/src/Aggregation/validateParameterizedAggregations.js +0 -20
  268. package/src/View/AdaptableComputedCSSVarsContext.d.ts +0 -12
  269. package/src/View/AdaptableComputedCSSVarsContext.js +0 -29
  270. package/src/View/Layout/Wizard/sections/ParameterizedAggFuncPicker.d.ts +0 -12
  271. package/src/View/Layout/Wizard/sections/ParameterizedAggFuncPicker.js +0 -43
  272. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnBadgeSettings.d.ts +0 -5
  273. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnBadgeSettings.js +0 -28
  274. package/src/View/Theme/VariantSelector.d.ts +0 -8
  275. package/src/View/Theme/VariantSelector.js +0 -20
  276. package/src/components/Select/CSSNumericVariableWatch.d.ts +0 -11
  277. package/src/components/Select/CSSNumericVariableWatch.js +0 -45
@@ -1,6 +1,5 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
2
  import { isRuleBasedAlertDefinition } from '../../../Utilities/Helpers/ScheduledAlertHelper';
3
- import { Tabs } from '../../../components/Tabs';
4
3
  import { useOnePageAdaptableWizardContext } from '../../Wizard/OnePageAdaptableWizard';
5
4
  import { CheckBox } from '../../../components/CheckBox';
6
5
  import { CodeBlock } from '../../../components/CodeBlock';
@@ -13,6 +12,7 @@ import { AlertType } from '../Utilities/getAlertType';
13
12
  import { Box, Flex } from '../../../components/Flex';
14
13
  import { Tag, TagBox } from '../../../components/Tag/Tag';
15
14
  import { SingleSelect } from '../../../components/NewSelect';
15
+ import { Card } from '../../../components/Card';
16
16
  const HighlightStyle = (props) => {
17
17
  const adaptable = useAdaptable();
18
18
  const options = [
@@ -84,6 +84,7 @@ export const renderAlertBehaviourSummary = (alert, api, allowWrap = false) => {
84
84
  };
85
85
  export const AlertBehaviourWizardSection = (props) => {
86
86
  const { data, api } = useOnePageAdaptableWizardContext();
87
+ const behaviourSpellingVariant = api.internalApi.getCorrectEnglishVariant('Behaviour');
87
88
  const presentationProperties = data.AlertProperties ?? {};
88
89
  const ruleProperties = isRuleBasedAlertDefinition(data)
89
90
  ? (data.AlertProperties ?? {})
@@ -107,19 +108,19 @@ export const AlertBehaviourWizardSection = (props) => {
107
108
  },
108
109
  });
109
110
  };
110
- return (_jsxs(Tabs, { children: [_jsx(Tabs.Tab, { children: api.internalApi.getCorrectEnglishVariant('Behaviour') }), _jsxs(Tabs.Content, { className: "twa:flex twa:flex-col twa:gap-1", children: [hasPreventCellEdit && (_jsxs(CheckBox, { "data-name": "prevent-cell-edit", style: { alignItems: 'flex-start' }, checked: ruleProperties.PreventEdit, disabled: true, children: ["Prevent Cell Edit", _jsx(Box, { className: "twa:text-2 twa:mt-1", children: "(automatically undo data change which triggered Alert)" })] })), hasHighlightCell && (_jsx(HighlightStyle, { dataName: "highlight-cell", highlight: ruleProperties.HighlightCell, label: "Highlight Cell", onChange: (HighlightCell) => {
111
- onChange({ HighlightCell });
112
- } })), hasHighlightRow && (_jsx(HighlightStyle, { dataName: "highlight-row", highlight: ruleProperties.HighlightRow, label: "Highlight Row", onChange: (HighlightRow) => {
113
- onChange({ HighlightRow });
114
- } })), hasJumpToCell && (_jsx(CheckBox, { "data-name": "jump-to-cell", checked: ruleProperties.JumpToCell, onChange: (JumpToCell) => {
115
- onChange({ JumpToCell });
116
- }, children: "Jump To Cell" })), hasJumpToRow && (_jsx(CheckBox, { "data-name": "jump-to-row", checked: ruleProperties.JumpToRow, onChange: (JumpToRow) => {
117
- onChange({ JumpToRow });
118
- }, children: "Jump To Row" })), showInSeparateDiv && (_jsxs(CheckBox, { "data-name": "show-in-div", checked: presentationProperties.ShowInDiv, onChange: (ShowInDiv) => {
119
- onChange({ ShowInDiv });
120
- }, children: ["Show in separate ", _jsx(CodeBlock, { children: `<div />` }), " element"] })), logToConsole && (_jsx(CheckBox, { "data-name": "log-to-console", checked: presentationProperties.LogToConsole, onChange: (LogToConsole) => {
121
- onChange({ LogToConsole });
122
- }, children: "Log To Console" })), showSystemStatusMessage && (_jsx(CheckBox, { "data-name": "system-status-message", checked: presentationProperties.DisplaySystemStatusMessage, onChange: (DisplaySystemStatusMessage) => {
123
- onChange({ DisplaySystemStatusMessage });
124
- }, children: "Show as System Status Message" }))] })] }));
111
+ 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: behaviourSpellingVariant }), _jsxs(Box, { className: "twa:text-xs twa:opacity-70 twa:font-normal twa:max-w-[520px]", children: ["Configure ", behaviourSpellingVariant.toLowerCase(), "s for the Alert when it fires"] })] }), _jsxs(Card.Body, { className: "twa:gap-1", children: [hasPreventCellEdit && (_jsxs(CheckBox, { "data-name": "prevent-cell-edit", style: { alignItems: 'flex-start' }, checked: ruleProperties.PreventEdit, disabled: true, children: ["Prevent Cell Edit", _jsx(Box, { className: "twa:text-2 twa:mt-1", children: "(automatically undo data change which triggered Alert)" })] })), hasHighlightCell && (_jsx(HighlightStyle, { dataName: "highlight-cell", highlight: ruleProperties.HighlightCell, label: "Highlight Cell", onChange: (HighlightCell) => {
112
+ onChange({ HighlightCell });
113
+ } })), hasHighlightRow && (_jsx(HighlightStyle, { dataName: "highlight-row", highlight: ruleProperties.HighlightRow, label: "Highlight Row", onChange: (HighlightRow) => {
114
+ onChange({ HighlightRow });
115
+ } })), hasJumpToCell && (_jsx(CheckBox, { "data-name": "jump-to-cell", checked: ruleProperties.JumpToCell, onChange: (JumpToCell) => {
116
+ onChange({ JumpToCell });
117
+ }, children: "Jump To Cell" })), hasJumpToRow && (_jsx(CheckBox, { "data-name": "jump-to-row", checked: ruleProperties.JumpToRow, onChange: (JumpToRow) => {
118
+ onChange({ JumpToRow });
119
+ }, children: "Jump To Row" })), showInSeparateDiv && (_jsxs(CheckBox, { "data-name": "show-in-div", checked: presentationProperties.ShowInDiv, onChange: (ShowInDiv) => {
120
+ onChange({ ShowInDiv });
121
+ }, children: ["Show in separate ", _jsx(CodeBlock, { children: `<div />` }), " element"] })), logToConsole && (_jsx(CheckBox, { "data-name": "log-to-console", checked: presentationProperties.LogToConsole, onChange: (LogToConsole) => {
122
+ onChange({ LogToConsole });
123
+ }, children: "Log To Console" })), showSystemStatusMessage && (_jsx(CheckBox, { "data-name": "system-status-message", checked: presentationProperties.DisplaySystemStatusMessage, onChange: (DisplaySystemStatusMessage) => {
124
+ onChange({ DisplaySystemStatusMessage });
125
+ }, children: "Show as System Status Message" }))] })] }) }));
125
126
  };
@@ -1,4 +1,4 @@
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 SimpleButton from '../../../components/SimpleButton';
3
3
  import Input from '../../../components/Input';
4
4
  import FormLayout, { FormRow } from '../../../components/FormLayout';
@@ -9,6 +9,7 @@ import { AdaptableIconSelector } from '../../Components/AdaptableIconSelector';
9
9
  import { Box, Flex } from '../../../components/Flex';
10
10
  import sentenceCase from '../../../Utilities/utils/sentenceCase';
11
11
  import { SingleSelect } from '../../../components/NewSelect';
12
+ import { Card } from '../../../components/Card';
12
13
  const TONE_OPTIONS = [
13
14
  {
14
15
  label: 'Tone: Use Alert Tone',
@@ -21,6 +22,14 @@ const TONE_OPTIONS = [
21
22
  };
22
23
  }),
23
24
  ];
25
+ const AlertButtonPreview = ({ button, messageType }) => {
26
+ const buttonStyle = button.ButtonStyle ?? {};
27
+ const variant = (buttonStyle.variant ?? 'raised');
28
+ const tone = (buttonStyle.tone ??
29
+ messageType.toLowerCase());
30
+ const icon = button.icon && 'name' in button.icon && button.icon.name ? button.icon : undefined;
31
+ return (_jsx(SimpleButton, { variant: variant, tone: tone, icon: icon, className: "twa:cursor-default twa:pointer-events-none", tabIndex: -1, children: button.Label || 'Untitled' }));
32
+ };
24
33
  function renderTone(option) {
25
34
  return (_jsxs(Flex, { flexDirection: "row", alignItems: "center", children: [_jsx(SimpleButton, { className: "twa:mr-2 twa:w-[10px] twa:h-[10px] twa:line-height-0 twa:rounded-[100%] twa:bg-current", tone: option.value, variant: "text" }), option.label] }));
26
35
  }
@@ -30,6 +39,7 @@ export const AlertButtonsEditor = (props) => {
30
39
  props.onChange(newButtons);
31
40
  };
32
41
  const alertDefinition = adaptableAlert.alertDefinition;
42
+ const messageType = alertDefinition?.MessageType ?? 'Info';
33
43
  // const rowAddedAlert =
34
44
  // api.alertApi.internalApi.isAlertDefinitionForAddedRowChangeEvent(alertDefinition);
35
45
  const isRowRemovedAlert = api.alertApi.internalApi.isAlertDefinitionForRemovedRowChangeEvent(alertDefinition);
@@ -71,7 +81,7 @@ export const AlertButtonsEditor = (props) => {
71
81
  buttonCommands.push(ch.name);
72
82
  });
73
83
  }
74
- return (_jsxs(_Fragment, { children: [_jsxs(Flex, { flexDirection: "row", alignItems: "center", justifyContent: "space-between", children: [_jsx(Box, { className: "twa:text-2 twa:mt-3 twa:mb-2", children: "Add Buttons to the Alert Notification, and set Actions to perform when the Button is clicked" }), _jsx(SimpleButton, { icon: "plus", onClick: () => {
84
+ return (_jsxs(Box, { className: "twa:mt-3", children: [_jsxs(Flex, { flexDirection: "row", alignItems: "center", justifyContent: "space-between", className: "twa:mb-3", children: [_jsx(Box, { className: "twa:text-2 twa:max-w-[520px]", children: "Add buttons to the notification and set actions to perform when clicked" }), _jsx(SimpleButton, { icon: "plus", onClick: () => {
75
85
  onChange([
76
86
  ...(AlertButtons || []),
77
87
  {
@@ -81,109 +91,110 @@ export const AlertButtonsEditor = (props) => {
81
91
  },
82
92
  },
83
93
  ]);
84
- }, children: "Add" })] }), AlertButtons.map((button, index) => {
85
- let buttonStyle = button.ButtonStyle;
86
- let buttonLabel = button.Label;
87
- let btnCommands = [];
88
- if (button.Command && typeof button.Command === 'string') {
89
- btnCommands = [button.Command];
90
- }
91
- else if (button.Command && Array.isArray(button.Command)) {
92
- btnCommands = button.Command;
93
- }
94
- // filter out the adaptable standard commands
95
- const btnUserFunctions = btnCommands.filter((command) => !buttonCommands.includes(command));
96
- const setVariant = (variant) => {
97
- onChange(AlertButtons.map((btn, i) => {
98
- if (i === index) {
99
- const buttonStyle = { ...btn.ButtonStyle };
100
- buttonStyle.variant = variant;
101
- return {
102
- ...btn,
103
- ButtonStyle: buttonStyle,
104
- };
105
- }
106
- return btn;
107
- }));
108
- };
109
- const setTone = (tone) => {
110
- onChange(AlertButtons.map((btn, i) => {
111
- if (i === index) {
112
- const buttonStyle = { ...btn.ButtonStyle };
113
- if (tone == null) {
114
- delete buttonStyle.tone;
94
+ }, children: "Add" })] }), _jsx(Flex, { flexDirection: "column", className: "twa:gap-3", children: AlertButtons.map((button, index) => {
95
+ let buttonStyle = button.ButtonStyle;
96
+ let buttonLabel = button.Label;
97
+ let btnCommands = [];
98
+ if (button.Command && typeof button.Command === 'string') {
99
+ btnCommands = [button.Command];
100
+ }
101
+ else if (button.Command && Array.isArray(button.Command)) {
102
+ btnCommands = button.Command;
103
+ }
104
+ // filter out the adaptable standard commands
105
+ const btnUserFunctions = btnCommands.filter((command) => !buttonCommands.includes(command));
106
+ const setVariant = (variant) => {
107
+ onChange(AlertButtons.map((btn, i) => {
108
+ if (i === index) {
109
+ const buttonStyle = { ...btn.ButtonStyle };
110
+ buttonStyle.variant = variant;
111
+ return {
112
+ ...btn,
113
+ ButtonStyle: buttonStyle,
114
+ };
115
115
  }
116
- else {
117
- buttonStyle.tone = tone;
116
+ return btn;
117
+ }));
118
+ };
119
+ const setTone = (tone) => {
120
+ onChange(AlertButtons.map((btn, i) => {
121
+ if (i === index) {
122
+ const buttonStyle = { ...btn.ButtonStyle };
123
+ if (tone == null) {
124
+ delete buttonStyle.tone;
125
+ }
126
+ else {
127
+ buttonStyle.tone = tone;
128
+ }
129
+ return {
130
+ ...btn,
131
+ ButtonStyle: buttonStyle,
132
+ };
118
133
  }
119
- return {
120
- ...btn,
121
- ButtonStyle: buttonStyle,
122
- };
134
+ return btn;
135
+ }));
136
+ };
137
+ const handleCommandChange = (checked, commandName) => {
138
+ let commands = btnCommands;
139
+ if (!checked) {
140
+ // remove current Command
141
+ commands = commands.filter((a) => a !== commandName);
123
142
  }
124
- return btn;
125
- }));
126
- };
127
- const handleCommandChange = (checked, commandName) => {
128
- let commands = btnCommands;
129
- if (!checked) {
130
- // remove current Command
131
- commands = commands.filter((a) => a !== commandName);
132
- }
133
- else {
134
- commands = [...commands, commandName];
135
- }
136
- onChange(AlertButtons.map((btn, i) => {
137
- if (i === index) {
138
- return {
139
- ...btn,
140
- Command: commands.length ? commands : undefined,
141
- };
143
+ else {
144
+ commands = [...commands, commandName];
142
145
  }
143
- return btn;
144
- }));
145
- };
146
- let iconSelector = null;
147
- if (!button.icon || (button.icon && 'name' in button.icon)) {
148
- iconSelector = (_jsx(AdaptableIconSelector, { value: button.icon && 'name' in button.icon ? button?.icon?.name : '', onChange: (iconName) => {
149
- onChange(AlertButtons.map((btn) => {
150
- if (btn === button) {
151
- return {
152
- ...btn,
153
- icon: {
154
- name: iconName,
155
- },
156
- };
157
- }
158
- return btn;
159
- }));
160
- } }));
161
- }
162
- return (_jsx(Box, { className: `twa:ml-3 ${index ? 'twa:border-t twa:border-dashed twa:border-input-border' : ''}`, children: _jsxs(FormLayout, { className: "twa:mb-2 twa:pt-2", children: [_jsx(FormRow, { label: _jsx(Box, { className: "twa:text-2 twa:whitespace-nowrap", children: "Button Text" }), children: _jsxs(Flex, { flexDirection: "row", children: [_jsx(Input, { value: buttonLabel, className: "twa:mr-2 twa:w-[80px]", onChange: (e) => {
163
- onChange(AlertButtons.map((btn, i) => {
164
- if (i === index) {
165
- return { ...btn, Label: e.target.value };
166
- }
167
- return btn;
168
- }));
169
- } }), _jsx(SingleSelect, { items: ['text', 'outlined', 'raised'].map((variant) => {
170
- return {
171
- label: StringExtensions.CapitaliseFirstLetter(variant),
172
- value: variant,
173
- };
174
- }), renderValue: (option) => `Variant: ${option.label}`, value: buttonStyle?.variant, onValueChange: (value) => {
175
- setVariant(value);
176
- } }), _jsx(SingleSelect, { className: "twa:ml-2", items: TONE_OPTIONS, onValueChange: (value) => {
177
- if (value === 'text') {
178
- setTone(null);
179
- return;
180
- }
181
- setTone(value);
182
- }, value: buttonStyle?.tone ?? 'text' }), _jsx(SimpleButton, { icon: "close", tone: "error", disabled: AlertButtons.length <= 1, className: "twa:ml-1", variant: "text", tooltip: AlertButtons.length <= 1 ? 'Cannot remove last button' : 'Remove button', onClick: () => {
183
- onChange(AlertButtons.filter((btn) => btn !== button));
184
- } })] }) }), _jsxs(FormRow, { label: _jsx(Box, { className: "twa:text-2", children: "Actions" }), children: [buttonCommands.map((commandName) => {
185
- return (_jsx(CheckBox, { className: "twa:mr-3", onChange: (checked) => handleCommandChange(checked, commandName), checked: button.Command === commandName ||
186
- (Array.isArray(button.Command) && button.Command.includes(commandName)), children: _jsx(Box, { className: "twa:text-2", children: sentenceCase(commandName) }) }, commandName));
187
- }), btnUserFunctions.length ? (_jsx(CheckBox, { checked: true, disabled: true, children: _jsxs(Box, { className: "twa:text-2", children: ["User function", btnUserFunctions.length > 1 ? 's' : '', ":", ' ', btnUserFunctions.join(', ')] }) })) : null] }), iconSelector && (_jsx(FormRow, { label: _jsx(Box, { className: "twa:text-2", children: "Icon" }), children: _jsx(Box, { children: iconSelector }) }))] }) }, index));
188
- })] }));
146
+ onChange(AlertButtons.map((btn, i) => {
147
+ if (i === index) {
148
+ return {
149
+ ...btn,
150
+ Command: commands.length ? commands : undefined,
151
+ };
152
+ }
153
+ return btn;
154
+ }));
155
+ };
156
+ let iconSelector = null;
157
+ if (!button.icon || (button.icon && 'name' in button.icon)) {
158
+ iconSelector = (_jsx(AdaptableIconSelector, { value: button.icon && 'name' in button.icon ? button?.icon?.name : '', onChange: (iconName) => {
159
+ onChange(AlertButtons.map((btn) => {
160
+ if (btn === button) {
161
+ return {
162
+ ...btn,
163
+ icon: {
164
+ name: iconName,
165
+ },
166
+ };
167
+ }
168
+ return btn;
169
+ }));
170
+ } }));
171
+ }
172
+ return (_jsxs(Card, { shadow: false, children: [_jsxs(Card.Title, { className: "twa:justify-between twa:gap-3", children: [_jsxs(Box, { className: "twa:font-medium twa:shrink-0", children: ["Button ", index + 1] }), _jsx(Flex, { justifyContent: "center", className: "twa:flex-1 twa:min-w-0", children: _jsx(AlertButtonPreview, { button: button, messageType: messageType }) }), _jsx(SimpleButton, { icon: "close", tone: "error", disabled: AlertButtons.length <= 1, variant: "text", tooltip: AlertButtons.length <= 1 ? 'Cannot remove last button' : 'Remove button', onClick: () => {
173
+ onChange(AlertButtons.filter((btn) => btn !== button));
174
+ } })] }), _jsx(Card.Body, { children: _jsxs(FormLayout, { children: [_jsx(FormRow, { label: _jsx(Box, { className: "twa:text-2", children: "Button Text" }), children: _jsx(Input, { value: buttonLabel, className: "twa:max-w-[200px]", onChange: (e) => {
175
+ onChange(AlertButtons.map((btn, i) => {
176
+ if (i === index) {
177
+ return { ...btn, Label: e.target.value };
178
+ }
179
+ return btn;
180
+ }));
181
+ } }) }), _jsx(FormRow, { label: _jsx(Box, { className: "twa:text-2", children: "Style" }), children: _jsxs(Flex, { flexDirection: "row", className: "twa:gap-2 twa:flex-wrap", children: [_jsx(SingleSelect, { items: ['text', 'outlined', 'raised'].map((variant) => {
182
+ return {
183
+ label: StringExtensions.CapitaliseFirstLetter(variant),
184
+ value: variant,
185
+ };
186
+ }), renderValue: (option) => `Variant: ${option.label}`, value: buttonStyle?.variant, onValueChange: (value) => {
187
+ setVariant(value);
188
+ } }), _jsx(SingleSelect, { items: TONE_OPTIONS, onValueChange: (value) => {
189
+ if (value === 'text') {
190
+ setTone(null);
191
+ return;
192
+ }
193
+ setTone(value);
194
+ }, value: buttonStyle?.tone ?? 'text' })] }) }), _jsx(FormRow, { label: _jsx(Box, { className: "twa:text-2", children: "Actions" }), children: _jsxs(Flex, { flexDirection: "row", className: "twa:gap-3 twa:flex-wrap", children: [buttonCommands.map((commandName) => {
195
+ return (_jsx(CheckBox, { onChange: (checked) => handleCommandChange(checked, commandName), checked: button.Command === commandName ||
196
+ (Array.isArray(button.Command) &&
197
+ button.Command.includes(commandName)), children: _jsx(Box, { className: "twa:text-2", children: sentenceCase(commandName) }) }, commandName));
198
+ }), btnUserFunctions.length ? (_jsx(CheckBox, { checked: true, disabled: true, children: _jsxs(Box, { className: "twa:text-2", children: ["User function", btnUserFunctions.length > 1 ? 's' : '', ":", ' ', btnUserFunctions.join(', ')] }) })) : null] }) }), iconSelector && (_jsx(FormRow, { label: _jsx(Box, { className: "twa:text-2", children: "Icon" }), children: _jsx(Box, { children: iconSelector }) }))] }) })] }, index));
199
+ }) })] }));
189
200
  };
@@ -1,19 +1,18 @@
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 Radio, { RadioGroup } from '../../../components/Radio';
4
3
  import { SummaryText, useOnePageAdaptableWizardContext } from '../../Wizard/OnePageAdaptableWizard';
5
4
  import { Tag } from '../../../components/Tag';
6
- import FormLayout, { FormRow } from '../../../components/FormLayout';
7
5
  import { AlertType } from '../Utilities/getAlertType';
8
6
  import { ButtonInfo } from '../../Components/Buttons/ButtonInfo';
9
7
  import { AlertMessageDocsLink } from '../../../Utilities/Constants/DocumentationLinkConstants';
10
8
  import Textarea from '../../../components/Textarea';
11
9
  import HelpBlock from '../../../components/HelpBlock';
12
- import { Box } from '../../../components/Flex';
10
+ import { Box, Flex } from '../../../components/Flex';
11
+ import { Card } from '../../../components/Card';
13
12
  export const renderAlertMessageSummary = (alertType) => {
14
13
  const { data } = useOnePageAdaptableWizardContext();
15
14
  if (alertType === AlertType.Scheduled) {
16
- return (_jsxs(_Fragment, { children: [_jsxs(SummaryText, { children: ["Message Type: ", _jsx(Tag, { children: data.MessageType })] }), _jsxs(SummaryText, { children: ["Header: ", _jsx(Tag, { children: data.MessageHeader || 'Not specified' })] }), _jsxs(SummaryText, { children: ["Message: ", _jsx(Tag, { children: data.MessageText || 'Not specified' })] })] }));
15
+ return (_jsxs(_Fragment, { children: [_jsxs(SummaryText, { children: ["Message Type: ", _jsx(Tag, { children: data.MessageType })] }), _jsxs(SummaryText, { children: ["Header: ", _jsx(Tag, { children: data.MessageHeader || 'Not specified' })] }), _jsxs(SummaryText, { children: ["Body: ", _jsx(Tag, { children: data.MessageText || 'Not specified' })] })] }));
17
16
  }
18
17
  return (_jsxs(SummaryText, { children: ["Message Type: ", _jsx(Tag, { children: data.MessageType })] }));
19
18
  };
@@ -40,14 +39,14 @@ export const AlertMessageWizardSection = (props) => {
40
39
  MessageHeader: value,
41
40
  });
42
41
  };
43
- return (_jsxs(_Fragment, { children: [_jsxs(Tabs, { "data-name": "message-type", children: [_jsx(Tabs.Tab, { children: "Message Type" }), _jsx(Tabs.Content, { children: _jsxs(RadioGroup, { value: messageType, name: "messageType", orientation: "horizontal", onRadioChange: (MessageType) => {
44
- props.onChange({
45
- ...data,
46
- MessageType,
47
- });
48
- }, children: [_jsx(Radio, { className: "twa:ml-1", value: "Info", children: "Info" }), _jsx(Radio, { className: "twa:ml-4", value: "Success", children: "Success" }), _jsx(Radio, { className: "twa:ml-4", value: "Warning", children: "Warning" }), _jsx(Radio, { className: "twa:ml-4", value: "Error", children: "Error" })] }) })] }), _jsxs(Tabs, { "data-name": "message-text", className: "twa:mt-2 twa:mb-3", autoFocus: false, children: [_jsx(Tabs.Tab, { children: "Message Text" }), _jsxs(Tabs.Content, { children: [_jsx(Box, { className: "twa:text-2 twa:mt-3 twa:mb-2", children: isScheduled
49
- ? 'Enter the header and message shown when this scheduled alert fires.'
50
- : 'Text to display as the Alert Message (leave blank to show automated Message based on Alert Type)' }), _jsxs(FormLayout, { children: [_jsx(FormRow, { label: "Header", children: _jsx(Textarea, { className: "twa:min-w-[300px] twa:mt-2", rows: 3, placeholder: isScheduled ? 'Enter header (required)' : '(Use Default Header Message)', type: 'text', autoFocus: false, value: messageHeader,
51
- // placeholder="defaults to column name"
52
- onChange: (e) => onMessageHeaderChange(e) }) }), _jsx(FormRow, { label: "Message", children: _jsx(Textarea, { className: "twa:min-w-[300px] twa:mt-2", rows: 3, type: 'text', autoFocus: false, placeholder: isScheduled ? 'Enter message (required)' : undefined, value: messageText, onChange: (e) => onMessageTextChange(e) }) })] }), showDocumentationLinks && !isScheduled && (_jsxs(HelpBlock, { "data-name": "alert-message-documentation", className: "twa:mt-3 twa:mb-2 twa:p-0 twa:text-3", children: [_jsx(ButtonInfo, { className: "twa:mr-2", onClick: () => window.open(AlertMessageDocsLink, '_blank') }), "See how to create dynamic Alert Messages using placeholders"] }))] })] })] }));
42
+ return (_jsxs(Flex, { flexDirection: "column", className: "twa:gap-3 twa:p-3", children: [_jsx(Box, { "data-name": "message-type", children: _jsxs(Card, { shadow: false, children: [_jsxs(Card.Title, { children: [_jsx(Box, { className: "twa:font-medium", children: "Message Type" }), _jsx(Box, { className: "twa:text-xs twa:opacity-70 twa:font-normal twa:max-w-[520px]", children: "Choose how the Alert message is styled" })] }), _jsx(Card.Body, { children: _jsxs(RadioGroup, { value: messageType, name: "messageType", orientation: "horizontal", onRadioChange: (MessageType) => {
43
+ props.onChange({
44
+ ...data,
45
+ MessageType,
46
+ });
47
+ }, children: [_jsx(Radio, { className: "twa:ml-1", value: "Info", children: "Info" }), _jsx(Radio, { className: "twa:ml-4", value: "Success", children: "Success" }), _jsx(Radio, { className: "twa:ml-4", value: "Warning", children: "Warning" }), _jsx(Radio, { className: "twa:ml-4", value: "Error", children: "Error" })] }) })] }) }), _jsx(Box, { "data-name": "message-header", children: _jsxs(Card, { shadow: false, children: [_jsxs(Card.Title, { children: [_jsx(Box, { className: "twa:font-medium", children: "Header" }), _jsx(Box, { className: "twa:text-xs twa:opacity-70 twa:font-normal twa:max-w-[520px]", children: isScheduled
48
+ ? 'Enter the header shown when this scheduled alert fires'
49
+ : 'Optional header text (leave blank to use the default)' })] }), _jsx(Card.Body, { className: "twa:p-1", children: _jsx(Textarea, { className: "twa:min-w-[300px] twa:w-full twa:max-w-[500px]", rows: 3, placeholder: isScheduled ? 'Enter header (required)' : '(Use Default Header Message)', type: 'text', autoFocus: false, value: messageHeader, onChange: (e) => onMessageHeaderChange(e) }) })] }) }), _jsx(Box, { "data-name": "message-body", children: _jsxs(Card, { shadow: false, children: [_jsxs(Card.Title, { children: [_jsx(Box, { className: "twa:font-medium", children: "Body" }), _jsx(Box, { className: "twa:text-xs twa:opacity-70 twa:font-normal twa:max-w-[520px]", children: isScheduled
50
+ ? 'Enter the message body shown when this scheduled alert fires'
51
+ : 'Alert message body (leave blank to show automated message based on Alert Type)' })] }), _jsxs(Card.Body, { className: "twa:p-1", children: [_jsx(Textarea, { className: "twa:min-w-[300px] twa:w-full twa:max-w-[500px]", rows: 3, type: 'text', autoFocus: false, placeholder: isScheduled ? 'Enter message (required)' : undefined, value: messageText, onChange: (e) => onMessageTextChange(e) }), showDocumentationLinks && !isScheduled && (_jsxs(HelpBlock, { "data-name": "alert-message-documentation", className: "twa:mt-3 twa:p-0 twa:text-3", children: [_jsx(ButtonInfo, { className: "twa:mr-2", onClick: () => window.open(AlertMessageDocsLink, '_blank') }), "See how to create dynamic Alert Messages using placeholders"] }))] })] }) })] }));
53
52
  };
@@ -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
  };