@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.
- package/index.css +116 -61
- package/package.json +9 -4
- package/src/AdaptableOptions/EditOptions.d.ts +2 -2
- package/src/AdaptableState/Common/AggregationColumns.d.ts +14 -6
- package/src/AdaptableState/Common/AggregationColumns.js +27 -2
- package/src/AdaptableState/Common/ColumnScope.d.ts +4 -0
- package/src/AdaptableState/Common/Enums.d.ts +5 -5
- package/src/AdaptableState/Common/Enums.js +4 -4
- package/src/AdaptableState/PlusMinusState.d.ts +3 -3
- package/src/AdaptableState/ShortcutState.d.ts +2 -6
- package/src/AdaptableState/StyledColumnState.d.ts +3 -5
- package/src/AdaptableState/ThemeState.d.ts +33 -28
- package/src/Api/EventApi.d.ts +14 -1
- package/src/Api/Events/ThemeChanged.d.ts +6 -0
- package/src/Api/Events/ThemeSelected.d.ts +11 -0
- package/src/Api/Events/ThemeSelected.js +1 -0
- package/src/Api/Implementation/EventApiImpl.js +4 -0
- package/src/Api/Implementation/LayoutApiImpl.d.ts +0 -2
- package/src/Api/Implementation/LayoutApiImpl.js +0 -14
- package/src/Api/Implementation/LayoutHelpers.d.ts +2 -0
- package/src/Api/Implementation/LayoutHelpers.js +17 -7
- package/src/Api/Implementation/ThemeApiImpl.d.ts +3 -2
- package/src/Api/Implementation/ThemeApiImpl.js +19 -15
- package/src/Api/Internal/EventInternalApi.d.ts +2 -0
- package/src/Api/Internal/EventInternalApi.js +8 -1
- package/src/Api/Internal/StyledColumnInternalApi.d.ts +4 -4
- package/src/Api/Internal/StyledColumnInternalApi.js +4 -4
- package/src/Api/Internal/ThemeInternalApi.d.ts +0 -1
- package/src/Api/Internal/ThemeInternalApi.js +0 -10
- package/src/Api/LayoutApi.d.ts +1 -8
- package/src/Api/ThemeApi.d.ts +6 -2
- package/src/Redux/ActionsReducers/ThemeRedux.d.ts +3 -3
- package/src/Strategy/FormatColumnModule.js +14 -7
- package/src/Strategy/LayoutModule.js +13 -8
- package/src/Strategy/StyledColumnModule.js +64 -36
- package/src/Utilities/Constants/ReduxConstants.d.ts +2 -2
- package/src/Utilities/Constants/ReduxConstants.js +1 -14
- package/src/Utilities/Helpers/FormatHelper.js +20 -1
- package/src/Utilities/Helpers/SparklineOptionsHelper.d.ts +7 -0
- package/src/Utilities/Helpers/SparklineOptionsHelper.js +65 -0
- package/src/Utilities/Helpers/StyledColumnGradientHelper.d.ts +23 -1
- package/src/Utilities/Helpers/StyledColumnGradientHelper.js +204 -0
- package/src/Utilities/Helpers/ThemeHelpers.d.ts +5 -0
- package/src/Utilities/Helpers/ThemeHelpers.js +38 -0
- package/src/Utilities/Helpers/percentBarPreviewHelper.d.ts +19 -0
- package/src/Utilities/Helpers/percentBarPreviewHelper.js +143 -0
- package/src/Utilities/ObjectFactory.d.ts +1 -3
- package/src/Utilities/ObjectFactory.js +0 -8
- package/src/Utilities/Services/ThemeService.js +1 -1
- package/src/View/Alert/Wizard/AlertBehaviourWizardSection.js +17 -16
- package/src/View/Alert/Wizard/AlertButtonsEditor.js +114 -103
- package/src/View/Alert/Wizard/AlertMessageWizardSection.js +13 -14
- package/src/View/Alert/Wizard/AlertNotificationWizardSection.js +55 -55
- package/src/View/Alert/Wizard/AlertRulesWizardSection.js +3 -2
- package/src/View/Alert/Wizard/AlertScheduledWizardSection.js +2 -2
- package/src/View/Alert/Wizard/AlertScopeWizardSection.js +31 -39
- package/src/View/Alert/Wizard/AlertTypeWizardSection.js +3 -4
- package/src/View/CalculatedColumn/Wizard/CalculatedColumnDefinitionWizardSection.js +9 -13
- package/src/View/CalculatedColumn/Wizard/CalculatedColumnExpressionWizardSection.js +30 -17
- package/src/View/CalculatedColumn/Wizard/CalculatedColumnSettingsWizardSection.js +7 -9
- package/src/View/CalculatedColumn/Wizard/CalculatedColumnTypeSection.js +3 -3
- package/src/View/CellSummary/CellSummaryViewPanel.js +1 -1
- package/src/View/Charting/ChartingWizard/AgChargingWizard/AgChargingWizard.js +3 -10
- package/src/View/Charting/ChartingWizard/AgChargingWizard/PreviewChartSection.js +1 -1
- package/src/View/Charting/ChartingWizard/AgChargingWizard/SettingsSection.js +32 -41
- package/src/View/Charting/ChartingWizard/ExternalChartingWizard/ExternalChartingWizard.js +4 -31
- package/src/View/Charting/ChartingWizard/ExternalChartingWizard/PreviewChartSection.d.ts +5 -0
- package/src/View/Charting/ChartingWizard/ExternalChartingWizard/PreviewChartSection.js +21 -0
- package/src/View/Charting/ChartingWizard/ExternalChartingWizard/SettingsSection.d.ts +1 -0
- package/src/View/Charting/ChartingWizard/ExternalChartingWizard/SettingsSection.js +10 -7
- package/src/View/Comments/CommentsEditor.js +1 -1
- package/src/View/Components/ModuleProfile.js +1 -1
- package/src/View/Components/Popups/WindowPopups/windowFactory.d.ts +0 -1
- package/src/View/Components/Popups/WindowPopups/windowFactory.js +0 -1
- package/src/View/Components/RangesComponent.d.ts +7 -2
- package/src/View/Components/RangesComponent.js +94 -22
- package/src/View/Components/StyleComponent.d.ts +1 -0
- package/src/View/Components/StyleComponent.js +1 -1
- package/src/View/Components/ValueSelector/index.js +70 -57
- package/src/View/CustomSort/Wizard/CustomSortColumnWizardSection.js +8 -13
- package/src/View/CustomSort/Wizard/CustomSortValuesWizardSection.js +8 -8
- package/src/View/DataChangeHistory/DataChangeHistoryGrid.js +1 -1
- package/src/View/DataImport/DataImportWizard/sections/ColumnsSection.js +11 -12
- package/src/View/DataImport/DataImportWizard/sections/UploadSection/UploadSection.js +6 -4
- package/src/View/DataImport/DataImportWizard/sections/UploadSection/UploadTextSection.js +3 -2
- package/src/View/DataImport/DataImportWizard/sections/ValidationSection.js +5 -15
- package/src/View/Export/Wizard/ReportColumnsWizardSection.js +24 -26
- package/src/View/Export/Wizard/ReportNameWizardSection.js +10 -13
- package/src/View/Export/Wizard/ReportRowsWizardSection.js +20 -22
- package/src/View/Export/Wizard/ScheduledReportSettings.d.ts +2 -0
- package/src/View/Export/Wizard/ScheduledReportSettings.js +13 -13
- package/src/View/Export/Wizard/ScheduledReportWizard.js +4 -5
- package/src/View/FlashingCell/Wizard/FlashingCellRulesWizardSection.js +8 -6
- package/src/View/FlashingCell/Wizard/FlashingCellScopeWizardSection.js +21 -22
- package/src/View/FlashingCell/Wizard/FlashingCellSettingsWizardSection.js +20 -11
- package/src/View/FlashingCell/Wizard/FlashingCellStyleWizardSection.js +21 -5
- package/src/View/FlashingCell/Wizard/FlashingCellWizard.js +4 -4
- package/src/View/FormatColumn/Wizard/FormatColumnFormatWizardSection.d.ts +7 -0
- package/src/View/FormatColumn/Wizard/FormatColumnFormatWizardSection.js +117 -12
- package/src/View/FormatColumn/Wizard/FormatColumnPreview.d.ts +15 -0
- package/src/View/FormatColumn/Wizard/FormatColumnPreview.js +66 -0
- package/src/View/FormatColumn/Wizard/FormatColumnRuleWizardSection.d.ts +4 -0
- package/src/View/FormatColumn/Wizard/FormatColumnRuleWizardSection.js +30 -0
- package/src/View/FormatColumn/Wizard/FormatColumnScopeWizardSection.js +13 -8
- package/src/View/FormatColumn/Wizard/FormatColumnSettingsWizardSection.js +1 -1
- package/src/View/FormatColumn/Wizard/FormatColumnStyleWizardSection.d.ts +3 -1
- package/src/View/FormatColumn/Wizard/FormatColumnStyleWizardSection.js +62 -13
- package/src/View/FormatColumn/Wizard/FormatColumnWizard.js +5 -3
- package/src/View/FreeTextColumn/Utilities/getFreeTextColumnSettingsTags.d.ts +2 -0
- package/src/View/FreeTextColumn/Utilities/getFreeTextColumnSettingsTags.js +15 -0
- package/src/View/FreeTextColumn/Wizard/FreeTextColumnDefinitionWizardSection.d.ts +10 -0
- package/src/View/FreeTextColumn/Wizard/FreeTextColumnDefinitionWizardSection.js +53 -0
- package/src/View/FreeTextColumn/Wizard/FreeTextColumnSettingsWizardSection.d.ts +2 -3
- package/src/View/FreeTextColumn/Wizard/FreeTextColumnSettingsWizardSection.js +33 -68
- package/src/View/FreeTextColumn/Wizard/FreeTextColumnWizard.js +15 -11
- package/src/View/Layout/TransposedPopup.js +2 -2
- package/src/View/Layout/Wizard/LayoutWizard.js +3 -3
- package/src/View/Layout/Wizard/sections/AggregationsSection.d.ts +2 -3
- package/src/View/Layout/Wizard/sections/AggregationsSection.js +115 -26
- package/src/View/Layout/Wizard/sections/ColumnsSection.js +79 -79
- package/src/View/Layout/Wizard/sections/FilterSection.js +31 -32
- package/src/View/Layout/Wizard/sections/GridFilterSection.js +11 -11
- package/src/View/Layout/Wizard/sections/PivotAggregationsSection.d.ts +1 -2
- package/src/View/Layout/Wizard/sections/PivotAggregationsSection.js +101 -52
- package/src/View/Layout/Wizard/sections/PivotColumnsSection.js +9 -8
- package/src/View/Layout/Wizard/sections/PivotRowGroupingSection.js +4 -4
- package/src/View/Layout/Wizard/sections/RowGroupingSection.js +36 -33
- package/src/View/Layout/Wizard/sections/RowSelectionSection.js +2 -2
- package/src/View/Layout/Wizard/sections/RowSummarySection.js +95 -73
- package/src/View/Layout/Wizard/sections/SettingsSection.js +4 -5
- package/src/View/Layout/Wizard/sections/SortSection.js +2 -2
- package/src/View/NamedQuery/Wizard/NamedQueryExpressionWizardSection.js +1 -1
- package/src/View/NamedQuery/Wizard/NamedQuerySettingsWizardSection.js +9 -14
- package/src/View/NamedQuery/Wizard/NamedQueryWizard.js +1 -3
- package/src/View/PlusMinus/Wizard/PlusMinusRuleWizardSection.d.ts +4 -0
- package/src/View/PlusMinus/Wizard/PlusMinusRuleWizardSection.js +43 -13
- package/src/View/PlusMinus/Wizard/PlusMinusScopeWizardSection.js +11 -18
- package/src/View/PlusMinus/Wizard/PlusMinusSettingsWizardSection.d.ts +2 -6
- package/src/View/PlusMinus/Wizard/PlusMinusSettingsWizardSection.js +6 -22
- package/src/View/PlusMinus/Wizard/PlusMinusWizard.js +15 -21
- package/src/View/Schedule/Wizard/ScheduleScheduleWizard.js +2 -2
- package/src/View/Shortcut/Wizard/ShortcutScopeWizardSection.js +11 -18
- package/src/View/Shortcut/Wizard/ShortcutSettingsWizard.js +17 -6
- package/src/View/Shortcut/Wizard/ShortcutWizard.js +3 -3
- package/src/View/Shortcut/shortcutOperations.d.ts +3 -0
- package/src/View/Shortcut/shortcutOperations.js +28 -0
- package/src/View/SpecialColumnSettingsWizardStep.js +9 -8
- package/src/View/StyledColumn/Wizard/BadgePillStyleEditor.d.ts +5 -0
- package/src/View/StyledColumn/Wizard/BadgePillStyleEditor.js +24 -15
- package/src/View/StyledColumn/Wizard/StyledColumnBadgeSection.d.ts +10 -2
- package/src/View/StyledColumn/Wizard/StyledColumnBadgeSection.js +96 -16
- package/src/View/StyledColumn/Wizard/StyledColumnSliceStyleEditors.d.ts +14 -0
- package/src/View/StyledColumn/Wizard/StyledColumnSliceStyleEditors.js +45 -24
- package/src/View/StyledColumn/Wizard/StyledColumnSparklineSettingsSection.d.ts +2 -3
- package/src/View/StyledColumn/Wizard/StyledColumnSparklineSettingsSection.js +108 -33
- package/src/View/StyledColumn/Wizard/StyledColumnWizard.js +21 -13
- package/src/View/StyledColumn/Wizard/StyledColumnWizardBulletSection.d.ts +5 -0
- package/src/View/StyledColumn/Wizard/StyledColumnWizardBulletSection.js +121 -23
- package/src/View/StyledColumn/Wizard/StyledColumnWizardGradientSection.d.ts +1 -0
- package/src/View/StyledColumn/Wizard/StyledColumnWizardGradientSection.js +34 -11
- package/src/View/StyledColumn/Wizard/StyledColumnWizardIconSection.d.ts +5 -0
- package/src/View/StyledColumn/Wizard/StyledColumnWizardIconSection.js +86 -12
- package/src/View/StyledColumn/Wizard/StyledColumnWizardRangeBarSection.d.ts +5 -0
- package/src/View/StyledColumn/Wizard/StyledColumnWizardRangeBarSection.js +121 -34
- package/src/View/StyledColumn/Wizard/StyledColumnWizardRatingSection.d.ts +1 -0
- package/src/View/StyledColumn/Wizard/StyledColumnWizardRatingSection.js +55 -75
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/BulletRangesSummaryPreview.d.ts +5 -0
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/BulletRangesSummaryPreview.js +16 -0
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/GradientSummaryPreview.js +7 -13
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/PercentBarColumnComparisonPreview.js +5 -5
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/PercentBarRangesPreview.js +4 -3
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/PercentBarStylePreview.d.ts +5 -4
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/PercentBarStylePreview.js +12 -14
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/RangeBarRangesSummaryPreview.d.ts +5 -0
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/RangeBarRangesSummaryPreview.js +16 -0
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnBadgePreview.d.ts +3 -0
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnBadgePreview.js +31 -3
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnBulletPreview.d.ts +9 -0
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnBulletPreview.js +58 -0
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnGradientPreview.d.ts +10 -0
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnGradientPreview.js +30 -0
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnIconPreview.d.ts +10 -0
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnIconPreview.js +91 -0
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnPercentBarPreview.d.ts +8 -0
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnPercentBarPreview.js +52 -0
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnRangeBarPreview.d.ts +8 -0
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnRangeBarPreview.js +53 -0
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnRatingPreview.d.ts +18 -0
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnRatingPreview.js +58 -0
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnSparklinePreview.d.ts +10 -0
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnSparklinePreview.js +126 -0
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/StyledColumnWizardRangesSection.js +12 -5
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/StyledColumnWizardStyleSection.d.ts +1 -5
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/StyledColumnWizardStyleSection.js +52 -29
- package/src/View/SystemStatus/Utilities/getStatusItemStyle.js +1 -1
- package/src/View/Theme/ThemePopup.d.ts +2 -14
- package/src/View/Theme/ThemePopup.js +1 -36
- package/src/View/UIHelper.js +1 -1
- package/src/View/Wizard/OnePageAdaptableWizard.js +7 -21
- package/src/agGrid/AdaptableAgGrid.d.ts +1 -0
- package/src/agGrid/AdaptableAgGrid.js +35 -25
- package/src/agGrid/AgGridAdapter.d.ts +1 -1
- package/src/agGrid/AgGridAdapter.js +27 -17
- package/src/agGrid/AgGridColumnAdapter.js +9 -15
- package/src/agGrid/AgGridMenuAdapter.d.ts +0 -1
- package/src/agGrid/AgGridMenuAdapter.js +20 -37
- package/src/agGrid/buildValueAggregationMenuItem.d.ts +19 -0
- package/src/agGrid/buildValueAggregationMenuItem.js +111 -0
- package/src/agGrid/cellRenderers/IconRenderer.d.ts +6 -0
- package/src/agGrid/cellRenderers/IconRenderer.js +43 -15
- package/src/agGrid/createAgGridIcon.d.ts +10 -0
- package/src/agGrid/createAgGridIcon.js +16 -0
- package/src/components/DragAndDropContext/UnusedPanel.js +1 -1
- package/src/components/ExpressionEditor/BaseEditorInput.js +1 -1
- package/src/components/ExpressionEditor/ExpressionFunctionDocumentation.js +1 -1
- package/src/components/Input/NumberInput.js +1 -1
- package/src/components/Panel/index.js +1 -1
- package/src/components/SimpleButton/index.js +4 -4
- package/src/components/Toggle/Toggle.js +1 -1
- package/src/components/Toggle/ToggleGroup.js +1 -1
- package/src/env.js +2 -2
- package/src/layout-manager/src/index.js +2 -9
- package/src/metamodel/adaptable.metamodel.d.ts +39 -29
- package/src/metamodel/adaptable.metamodel.js +1 -1
- package/src/types.d.ts +5 -4
- package/themes/dark.css +1 -68
- package/themes/light.css +1 -5
- package/tsconfig.esm.tsbuildinfo +1 -1
- package/src/Aggregation/ParameterizedAggregationRegistry.d.ts +0 -35
- package/src/Aggregation/ParameterizedAggregationRegistry.js +0 -63
- package/src/Aggregation/definitions/weightedAverageAggregationDefinition.d.ts +0 -3
- package/src/Aggregation/definitions/weightedAverageAggregationDefinition.js +0 -55
- package/src/Aggregation/parameterizedAggregationColumnMenu.d.ts +0 -8
- package/src/Aggregation/parameterizedAggregationColumnMenu.js +0 -137
- package/src/Aggregation/parameterizedAggregationHeader.d.ts +0 -13
- package/src/Aggregation/parameterizedAggregationHeader.js +0 -60
- package/src/Aggregation/parameterizedAggregationHelpers.d.ts +0 -23
- package/src/Aggregation/parameterizedAggregationHelpers.js +0 -111
- package/src/Aggregation/parameterizedAggregationWizardHelpers.d.ts +0 -9
- package/src/Aggregation/parameterizedAggregationWizardHelpers.js +0 -66
- package/src/Aggregation/validateParameterizedAggregations.d.ts +0 -4
- package/src/Aggregation/validateParameterizedAggregations.js +0 -20
- package/src/View/Layout/Wizard/sections/ParameterizedAggFuncPicker.d.ts +0 -12
- package/src/View/Layout/Wizard/sections/ParameterizedAggFuncPicker.js +0 -43
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnBadgeSettings.d.ts +0 -5
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnBadgeSettings.js +0 -28
- package/src/View/Theme/VariantSelector.d.ts +0 -8
- package/src/View/Theme/VariantSelector.js +0 -20
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs
|
|
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(
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
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(
|
|
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 {
|
|
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(
|
|
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 (
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
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(
|
|
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
|
|
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 (
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
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
|
|
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
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
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 '
|
|
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 (
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
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(
|
|
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-
|
|
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: '
|
|
21
|
-
details: '
|
|
19
|
+
title: 'Chart',
|
|
20
|
+
details: 'Configure chart properties and preview the result',
|
|
22
21
|
isValid: isSettingsValid,
|
|
23
|
-
render: () => (_jsx(
|
|
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
|
};
|