@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,9 +1,8 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import type { StyledColumn } from '../../../types';
|
|
3
|
+
export declare const getStyledColumnSparklineStyleViewValues: (data: StyledColumn) => string[];
|
|
3
4
|
/**
|
|
4
|
-
* Wizard-step summary for the Sparkline Settings step
|
|
5
|
-
* pattern used by Bullet / Badge / Gradient / Percent Bar so the nav row
|
|
6
|
-
* isn't blank when this step is collapsed.
|
|
5
|
+
* Wizard-step summary for the Sparkline Settings step.
|
|
7
6
|
*/
|
|
8
7
|
export declare const renderSparklineSummary: (data: StyledColumn) => React.ReactNode;
|
|
9
8
|
/**
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
import { SingleSelect } from '../../../components/NewSelect';
|
|
4
|
-
import { Tabs } from '../../../components/Tabs';
|
|
5
4
|
import { useOnePageAdaptableWizardContext } from '../../Wizard/OnePageAdaptableWizard';
|
|
6
5
|
import FormLayout, { FormRow } from '../../../components/FormLayout';
|
|
7
6
|
import { Tag } from '../../../components/Tag';
|
|
@@ -9,7 +8,13 @@ import AdaptableInput from '../../Components/AdaptableInput';
|
|
|
9
8
|
import { ColorPicker } from '../../../components/ColorPicker';
|
|
10
9
|
import { CheckBox } from '../../../components/CheckBox';
|
|
11
10
|
import { Box, Flex } from '../../../components/Flex';
|
|
12
|
-
import {
|
|
11
|
+
import { getCellBoxStyleSummaryItems, StyledColumnCellStyleEditor, } from './StyledColumnSliceStyleEditors';
|
|
12
|
+
import { Card } from '../../../components/Card';
|
|
13
|
+
import ErrorBox from '../../../components/ErrorBox';
|
|
14
|
+
import { StyledColumnSparklinePreviewCard } from './StyledColumnWizardStyleSection/Components/StyledColumnSparklinePreview';
|
|
15
|
+
const STYLE_FORM_SIZES = ['200px', '1fr'];
|
|
16
|
+
/** Sentinel for the theme dropdown — persisted options omit `theme` when this is chosen. */
|
|
17
|
+
const SPARKLINE_CUSTOM_COLOURS_THEME = '__custom__';
|
|
13
18
|
const SparklineTypes = {
|
|
14
19
|
LINE: 'line',
|
|
15
20
|
AREA: 'area',
|
|
@@ -30,22 +35,67 @@ const sparklineTypeLabel = (opts) => {
|
|
|
30
35
|
}
|
|
31
36
|
return type.charAt(0).toUpperCase() + type.slice(1);
|
|
32
37
|
};
|
|
38
|
+
const buildStyledColumnSparklineStyleSummaryStrings = (sparkline, options) => {
|
|
39
|
+
const opts = sparkline.options;
|
|
40
|
+
if (!opts) {
|
|
41
|
+
return [];
|
|
42
|
+
}
|
|
43
|
+
const items = [`Type: ${sparklineTypeLabel(opts)}`];
|
|
44
|
+
if (typeof opts.theme === 'string' && opts.theme !== 'ag-default') {
|
|
45
|
+
items.push(`Theme: ${opts.theme.replace(/^ag-/, '')}`);
|
|
46
|
+
}
|
|
47
|
+
if (typeof opts.min === 'number' || typeof opts.max === 'number') {
|
|
48
|
+
items.push(`Range: ${opts.min ?? 'auto'} → ${opts.max ?? 'auto'}`);
|
|
49
|
+
}
|
|
50
|
+
if (opts.xKey || opts.yKey) {
|
|
51
|
+
items.push(`Keys: x=${opts.xKey ?? 'x'}, y=${opts.yKey ?? 'y'}`);
|
|
52
|
+
}
|
|
53
|
+
const markerEnabled = opts.type !== 'bar' &&
|
|
54
|
+
opts.marker?.enabled;
|
|
55
|
+
if (markerEnabled) {
|
|
56
|
+
items.push('Markers: On');
|
|
57
|
+
}
|
|
58
|
+
else if (options.includeEmptyFeatures && opts.type !== 'bar') {
|
|
59
|
+
items.push('Markers: Off');
|
|
60
|
+
}
|
|
61
|
+
if (opts.tooltip?.enabled) {
|
|
62
|
+
items.push('Tooltip: On');
|
|
63
|
+
}
|
|
64
|
+
else if (options.includeEmptyFeatures) {
|
|
65
|
+
items.push('Tooltip: Off');
|
|
66
|
+
}
|
|
67
|
+
if (opts.axis?.visible) {
|
|
68
|
+
items.push('Axis: On');
|
|
69
|
+
}
|
|
70
|
+
else if (options.includeEmptyFeatures) {
|
|
71
|
+
items.push('Axis: Off');
|
|
72
|
+
}
|
|
73
|
+
getCellBoxStyleSummaryItems(sparkline.Cell).forEach(({ label, value }) => {
|
|
74
|
+
items.push(`${label}: ${value}`);
|
|
75
|
+
});
|
|
76
|
+
return items;
|
|
77
|
+
};
|
|
78
|
+
export const getStyledColumnSparklineStyleViewValues = (data) => {
|
|
79
|
+
const sparkline = data.SparklineStyle;
|
|
80
|
+
if (!sparkline) {
|
|
81
|
+
return [];
|
|
82
|
+
}
|
|
83
|
+
return buildStyledColumnSparklineStyleSummaryStrings(sparkline, {
|
|
84
|
+
includeEmptyFeatures: false,
|
|
85
|
+
});
|
|
86
|
+
};
|
|
33
87
|
/**
|
|
34
|
-
* Wizard-step summary for the Sparkline Settings step
|
|
35
|
-
* pattern used by Bullet / Badge / Gradient / Percent Bar so the nav row
|
|
36
|
-
* isn't blank when this step is collapsed.
|
|
88
|
+
* Wizard-step summary for the Sparkline Settings step.
|
|
37
89
|
*/
|
|
38
90
|
export const renderSparklineSummary = (data) => {
|
|
39
|
-
const
|
|
40
|
-
if (!
|
|
41
|
-
return _jsx(Tag, { children: "
|
|
91
|
+
const sparkline = data.SparklineStyle;
|
|
92
|
+
if (!sparkline?.options) {
|
|
93
|
+
return _jsx(Tag, { children: "No Styling Defined" });
|
|
42
94
|
}
|
|
43
|
-
const
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
const cellTags = renderCellStyleSummaryTags(data.SparklineStyle?.Cell);
|
|
48
|
-
return (_jsxs(Flex, { alignItems: "center", className: "twa:flex-wrap twa:gap-2", children: [_jsxs(Box, { children: ["Type: ", _jsx(Tag, { children: type })] }), theme && (_jsxs(Box, { children: ["Theme: ", _jsx(Tag, { children: theme })] })), (min != null || max != null) && (_jsxs(Box, { children: ["Range: ", _jsx(Tag, { children: `${min ?? 'auto'} → ${max ?? 'auto'}` })] })), cellTags && _jsxs(Box, { children: ["Cell: ", cellTags] })] }));
|
|
95
|
+
const items = buildStyledColumnSparklineStyleSummaryStrings(sparkline, {
|
|
96
|
+
includeEmptyFeatures: true,
|
|
97
|
+
});
|
|
98
|
+
return (_jsx(Flex, { alignItems: "center", className: "twa:flex-wrap twa:gap-2", children: items.map((item) => (_jsx(Tag, { children: item }, item))) }));
|
|
49
99
|
};
|
|
50
100
|
/**
|
|
51
101
|
* Validation for the Sparkline Settings wizard step.
|
|
@@ -91,23 +141,32 @@ export const StyledColumnSparklineSettingsSection = ({ onChange }) => {
|
|
|
91
141
|
}
|
|
92
142
|
handleOptionsChange(newOptions);
|
|
93
143
|
};
|
|
94
|
-
const
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
144
|
+
const column = data.ColumnId
|
|
145
|
+
? api.columnApi.getColumnWithColumnId(data.ColumnId)
|
|
146
|
+
: undefined;
|
|
147
|
+
const disabled = !data.ColumnId || !column;
|
|
148
|
+
const isObjectNumberArray = column?.dataType === 'objectArray';
|
|
149
|
+
if (!data.ColumnId || !column) {
|
|
150
|
+
return (_jsx(Box, { children: _jsx(ErrorBox, { className: "twa:mt-2", children: !data.ColumnId
|
|
151
|
+
? 'You need to select a column before styling.'
|
|
152
|
+
: `Column "${data.ColumnId}" was not found in the grid.` }) }));
|
|
153
|
+
}
|
|
154
|
+
return (_jsxs(Box, { children: [_jsxs(Card, { shadow: false, className: "twa:mb-3", children: [_jsx(Card.Title, { children: "Chart" }), _jsx(Card.Body, { children: _jsxs(FormLayout, { sizes: [...STYLE_FORM_SIZES], children: [_jsx(FormRow, { label: "Type:", children: _jsx(Box, { className: "twa:max-w-[160px]", children: _jsx(SingleSelect, { className: "twa:w-full", disabled: disabled, items: sparklineTypeOptions, value: sparklineType, onValueChange: handleTypeChange, placeholder: "Select Sparkline Type" }) }) }), isObjectNumberArray && (_jsx(SparklineObjectArrayProperties, { options: sparklineOptions, onChange: handleOptionsChange })), _jsx(FormRow, { label: "Min Value:", children: _jsx(AdaptableInput, { disabled: disabled, type: "number", value: sparklineOptions.min ?? '', onChange: (e) => handleOptionsChange({
|
|
155
|
+
...sparklineOptions,
|
|
156
|
+
min: e.target.value === '' ? undefined : Number(e.target.value),
|
|
157
|
+
}), placeholder: 'Auto', title: "User override for the automatically determined min value (based on series data)" }) }), _jsx(FormRow, { label: "Max Value:", children: _jsx(AdaptableInput, { disabled: disabled, type: "number", value: sparklineOptions.max ?? '', onChange: (e) => handleOptionsChange({
|
|
158
|
+
...sparklineOptions,
|
|
159
|
+
max: e.target.value === '' ? undefined : Number(e.target.value),
|
|
160
|
+
}), placeholder: 'Auto', title: "User override for the automatically determined max value (based on series data)" }) })] }) })] }), _jsxs(Card, { shadow: false, className: "twa:mb-3", children: [_jsx(Card.Title, { children: "Theming" }), _jsx(Card.Body, { children: _jsx(SparklineThemingOptions, { options: sparklineOptions, onChange: handleOptionsChange }) })] }), _jsxs(Card, { shadow: false, className: "twa:mb-3", children: [_jsx(Card.Title, { children: "Axis" }), _jsx(Card.Body, { children: _jsx(SparklineAxisOptions, { options: sparklineOptions, onChange: handleOptionsChange }) })] }), sparklineOptions.type !== 'bar' && (_jsxs(Card, { shadow: false, className: "twa:mb-3", children: [_jsx(Card.Title, { children: "Markers" }), _jsx(Card.Body, { children: _jsx(SparklineMarkerOptions, { options: sparklineOptions, onChange: handleOptionsChange }) })] })), _jsxs(Card, { shadow: false, className: "twa:mb-3", children: [_jsx(Card.Title, { children: "Tooltip" }), _jsx(Card.Body, { children: _jsx(SparklineTooltipOptions, { options: sparklineOptions, onChange: handleOptionsChange }) })] }), _jsxs(Card, { shadow: false, className: "twa:mb-3", children: [_jsx(Card.Title, { children: "Highlight" }), _jsx(Card.Body, { children: _jsx(SparklineHighlightOptions, { options: sparklineOptions, onChange: handleOptionsChange }) })] }), _jsxs(Card, { shadow: false, className: "twa:mb-3", children: [_jsxs(Card.Title, { children: [_jsx(Box, { className: "twa:font-medium", children: "Cell" }), _jsx(Box, { className: "twa:text-xs twa:opacity-70 twa:font-normal twa:max-w-[500px]", children: "Optional cell-box styling behind the sparkline" })] }), _jsx(Card.Body, { children: _jsx(StyledColumnCellStyleEditor, { api: api, disabled: disabled, value: data.SparklineStyle?.Cell, onChange: (next) => {
|
|
161
|
+
const sparkStyle = { ...(data.SparklineStyle ?? {}) };
|
|
162
|
+
if (next) {
|
|
163
|
+
sparkStyle.Cell = next;
|
|
164
|
+
}
|
|
165
|
+
else {
|
|
166
|
+
delete sparkStyle.Cell;
|
|
167
|
+
}
|
|
168
|
+
onChange({ ...data, SparklineStyle: sparkStyle });
|
|
169
|
+
} }) })] }), _jsx(StyledColumnSparklinePreviewCard, { data: data })] }));
|
|
111
170
|
};
|
|
112
171
|
const SparklineObjectArrayProperties = ({ options, onChange, }) => {
|
|
113
172
|
const { data, api } = useOnePageAdaptableWizardContext();
|
|
@@ -140,11 +199,17 @@ const SparklineThemingOptions = ({ options, onChange, }) => {
|
|
|
140
199
|
const handleChange = (key, value) => {
|
|
141
200
|
onChange({ ...options, [key]: value });
|
|
142
201
|
};
|
|
202
|
+
const applySeriesColour = (patch) => {
|
|
203
|
+
const next = { ...options, ...patch };
|
|
204
|
+
delete next.theme;
|
|
205
|
+
onChange(next);
|
|
206
|
+
};
|
|
143
207
|
const handlePaddingChange = (key, value) => {
|
|
144
208
|
const currentPadding = sparklineOptions.padding || {};
|
|
145
209
|
handleChange('padding', { ...currentPadding, [key]: value });
|
|
146
210
|
};
|
|
147
211
|
const themes = [
|
|
212
|
+
{ value: SPARKLINE_CUSTOM_COLOURS_THEME, label: 'Custom colours' },
|
|
148
213
|
{ value: 'ag-default', label: 'Default' },
|
|
149
214
|
{ value: 'ag-default-dark', label: 'Default Dark' },
|
|
150
215
|
{ value: 'ag-sheets', label: 'Sheets' },
|
|
@@ -158,7 +223,9 @@ const SparklineThemingOptions = ({ options, onChange, }) => {
|
|
|
158
223
|
{ value: 'ag-financial', label: 'Financial' },
|
|
159
224
|
{ value: 'ag-financial-dark', label: 'Financial Dark' },
|
|
160
225
|
];
|
|
161
|
-
return (_jsxs(FormLayout, { children: [sparklineOptions.type !== 'line' && (_jsx(FormRow, { label: "Fill", children:
|
|
226
|
+
return (_jsxs(FormLayout, { children: [sparklineOptions.type !== 'line' && (_jsx(FormRow, { label: "Fill", children: _jsxs(Box, { children: [_jsx(ColorPicker, { title: "The colour for filling shapes", api: api, value: sparklineOptions.fill, onChange: (color) => applySeriesColour({ fill: color }) }), _jsx(Box, { className: "twa:mt-1 twa:text-1 twa:opacity-70", children: "Bar, column, and area body colour." })] }) })), _jsx(FormRow, { label: "Stroke", children: _jsxs(Box, { children: [_jsxs(Flex, { alignItems: "center", children: [_jsx(ColorPicker, { title: "The colour for the stroke", api: api, value: sparklineOptions.stroke, onChange: (color) => applySeriesColour({ stroke: color }) }), _jsx(Box, { className: "twa:ml-2 twa:mr-1", children: "Width" }), _jsx(AdaptableInput, { title: "The width of the stroke in pixels", type: "number", className: "twa:w-[70px]", min: 0, value: sparklineOptions.strokeWidth ?? '', onChange: (e) => handleChange('strokeWidth', Number(e.target.value)) })] }), _jsx(Box, { className: "twa:mt-1 twa:text-1 twa:opacity-70", children: sparklineOptions.type === 'line'
|
|
227
|
+
? 'Line colour. Marker colours are in the Markers card.'
|
|
228
|
+
: 'Outline colour — increase width to see it on bars and columns.' })] }) }), _jsx(FormRow, { label: "Padding", children: _jsxs(Flex, { alignItems: "center", children: [_jsx(Box, { className: "twa:mr-1", children: "Top" }), _jsx(AdaptableInput, { type: "number", min: 0, value: sparklineOptions.padding?.top ?? '', onChange: (e) => handlePaddingChange('top', Number(e.target.value)), className: "twa:w-[70px]", title: "The number of pixels of padding at the top of the chart area" }), _jsx(Box, { className: "twa:ml-2 twa:mr-1", children: "Right" }), _jsx(AdaptableInput, { type: "number", min: 0, value: sparklineOptions.padding?.right ?? '', onChange: (e) => handlePaddingChange('right', Number(e.target.value)), className: "twa:w-[70px]", title: "The number of pixels of padding at the right of the chart area" }), _jsx(Box, { className: "twa:ml-2 twa:mr-1", children: "Bottom" }), _jsx(AdaptableInput, { type: "number", min: 0, value: sparklineOptions.padding?.bottom ?? '', onChange: (e) => handlePaddingChange('bottom', Number(e.target.value)), className: "twa:w-[70px]", title: "The number of pixels of padding at the bottom of the chart area" }), _jsx(Box, { className: "twa:ml-2 twa:mr-1", children: "Left" }), _jsx(AdaptableInput, { type: "number", min: 0, value: sparklineOptions.padding?.left ?? '', onChange: (e) => handlePaddingChange('left', Number(e.target.value)), className: "twa:w-[70px]", title: "The number of pixels of padding at the left of the chart area" })] }) }), _jsx(FormRow, { label: "Line Dash", children: _jsx(AdaptableInput, { title: "Length of dashes and gaps in pixels (comma-separated values, e.g. '3,6,9')", value: sparklineOptions.lineDash?.join(',') ?? '', onChange: (e) => {
|
|
162
229
|
const value = e.target.value;
|
|
163
230
|
const dashArray = value
|
|
164
231
|
? value
|
|
@@ -173,7 +240,15 @@ const SparklineThemingOptions = ({ options, onChange, }) => {
|
|
|
173
240
|
}) }), _jsx(Box, { className: "twa:ml-2", children: _jsx(ColorPicker, { disabled: !sparklineOptions.background?.visible, title: "The colour of the chart background", api: api, value: sparklineOptions.background?.fill, onChange: (fill) => handleChange('background', {
|
|
174
241
|
...sparklineOptions.background,
|
|
175
242
|
fill,
|
|
176
|
-
}) }) })] }) }), typeof sparklineOptions.theme !== 'object' && (_jsx(FormRow, { label: "Theme", children: _jsx(Box, { className: "twa:max-w-[160px]", children: _jsx(SingleSelect, { className: "twa:w-full", value: sparklineOptions.theme ??
|
|
243
|
+
}) }) })] }) }), typeof sparklineOptions.theme !== 'object' && (_jsx(FormRow, { label: "Theme", children: _jsxs(Box, { children: [_jsx(Box, { className: "twa:max-w-[160px]", children: _jsx(SingleSelect, { className: "twa:w-full", value: sparklineOptions.theme ?? SPARKLINE_CUSTOM_COLOURS_THEME, onValueChange: (themeName) => {
|
|
244
|
+
if (themeName === SPARKLINE_CUSTOM_COLOURS_THEME) {
|
|
245
|
+
const next = { ...options };
|
|
246
|
+
delete next.theme;
|
|
247
|
+
onChange(next);
|
|
248
|
+
return;
|
|
249
|
+
}
|
|
250
|
+
handleChange('theme', themeName);
|
|
251
|
+
}, items: themes }) }), _jsx(Box, { className: "twa:mt-1 twa:text-1 twa:opacity-70", children: "Palette preset. Use Custom colours when Fill / Stroke above should control the chart." })] }) }))] }));
|
|
177
252
|
};
|
|
178
253
|
const SparklineAxisOptions = ({ options, onChange, }) => {
|
|
179
254
|
const { api } = useOnePageAdaptableWizardContext();
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { useState } from 'react';
|
|
3
3
|
import { useDispatch, useSelector } from 'react-redux';
|
|
4
4
|
import { OnePageAdaptableWizard, OnePageWizardSummary, } from '../../Wizard/OnePageAdaptableWizard';
|
|
@@ -17,6 +17,14 @@ import { isValidIconStyleMappings, renderStyledColumnIconStyleSummary, renderSty
|
|
|
17
17
|
import { ObjectTagsWizardSection, renderObjectTagsSummary, } from '../../Wizard/ObjectTagsWizardSection';
|
|
18
18
|
import { renderBadgeStyleSummary, renderBadgeSummary, StyledColumnBadgeStyleSection, StyledColumnBadgeSection, } from './StyledColumnBadgeSection';
|
|
19
19
|
import { Box } from '../../../components/Flex';
|
|
20
|
+
import { StyledColumnGradientPreviewCard } from './StyledColumnWizardStyleSection/Components/StyledColumnGradientPreview';
|
|
21
|
+
import { StyledColumnPercentBarPreviewCard } from './StyledColumnWizardStyleSection/Components/StyledColumnPercentBarPreview';
|
|
22
|
+
import { StyledColumnBadgePreviewCard } from './StyledColumnWizardStyleSection/Components/StyledColumnBadgePreview';
|
|
23
|
+
import { StyledColumnRatingPreviewCard } from './StyledColumnWizardStyleSection/Components/StyledColumnRatingPreview';
|
|
24
|
+
import { StyledColumnIconPreviewCard } from './StyledColumnWizardStyleSection/Components/StyledColumnIconPreview';
|
|
25
|
+
import { StyledColumnBulletPreviewCard } from './StyledColumnWizardStyleSection/Components/StyledColumnBulletPreview';
|
|
26
|
+
import { StyledColumnRangeBarPreviewCard } from './StyledColumnWizardStyleSection/Components/StyledColumnRangeBarPreview';
|
|
27
|
+
import { StyledColumnSparklinePreviewCard } from './StyledColumnWizardStyleSection/Components/StyledColumnSparklinePreview';
|
|
20
28
|
/**
|
|
21
29
|
* Mirrors the migration default in `VersionUpgrade23.patchStyledColumnName` and
|
|
22
30
|
* the auto-fill logic in `StyledColumnWizardTypeSection` so users opening the
|
|
@@ -140,7 +148,7 @@ export const StyledColumnWizard = (props) => {
|
|
|
140
148
|
}
|
|
141
149
|
if (styledColumn.GradientStyle) {
|
|
142
150
|
specificSteps.push({
|
|
143
|
-
details: 'Set
|
|
151
|
+
details: 'Set the Style for the Gradient',
|
|
144
152
|
renderSummary: renderStyledColumnGradientStyleSummary,
|
|
145
153
|
render: () => (_jsx(Box, { className: "twa:p-2", children: _jsx(StyledColumnWizardGradientSection, { onChange: setStyledColumn }) })),
|
|
146
154
|
title: 'Style',
|
|
@@ -151,7 +159,7 @@ export const StyledColumnWizard = (props) => {
|
|
|
151
159
|
specificSteps.push({
|
|
152
160
|
title: 'Ranges',
|
|
153
161
|
details: 'Create Cell Ranges',
|
|
154
|
-
renderSummary:
|
|
162
|
+
renderSummary: renderStyledColumnBulletRangesSummary,
|
|
155
163
|
render: () => (_jsx(Box, { className: "twa:p-2", children: _jsx(StyledColumnWizardBulletSection, { variant: "ranges", onChange: setStyledColumn }) })),
|
|
156
164
|
isValid: () => {
|
|
157
165
|
const bs = styledColumn.BulletChartStyle;
|
|
@@ -164,7 +172,7 @@ export const StyledColumnWizard = (props) => {
|
|
|
164
172
|
specificSteps.push({
|
|
165
173
|
title: 'Style',
|
|
166
174
|
details: 'Target, bar appearance, cell text, tooltip, background and font',
|
|
167
|
-
renderSummary:
|
|
175
|
+
renderSummary: renderStyledColumnBulletStyleSummary,
|
|
168
176
|
render: () => (_jsx(Box, { className: "twa:p-2", children: _jsx(StyledColumnWizardBulletSection, { variant: "style", onChange: setStyledColumn }) })),
|
|
169
177
|
isValid: () => true,
|
|
170
178
|
});
|
|
@@ -174,7 +182,7 @@ export const StyledColumnWizard = (props) => {
|
|
|
174
182
|
title: 'Style',
|
|
175
183
|
details: 'Configure the Icon, Text and Cell styles',
|
|
176
184
|
isValid: () => isValidRatingStyle(styledColumn),
|
|
177
|
-
renderSummary:
|
|
185
|
+
renderSummary: renderStyledColumnRatingSummary,
|
|
178
186
|
render: () => (_jsx(Box, { className: "twa:p-2", children: _jsx(StyledColumnWizardRatingSection, { onChange: setStyledColumn }) })),
|
|
179
187
|
});
|
|
180
188
|
}
|
|
@@ -183,14 +191,14 @@ export const StyledColumnWizard = (props) => {
|
|
|
183
191
|
title: 'Style',
|
|
184
192
|
details: 'Set Bounds and optional Ranges',
|
|
185
193
|
isValid: () => isValidRangeBarBounds(styledColumn),
|
|
186
|
-
renderSummary:
|
|
194
|
+
renderSummary: renderStyledColumnRangeBarRangeStepSummary,
|
|
187
195
|
render: () => (_jsx(Box, { className: "twa:p-2", children: _jsx(StyledColumnWizardRangeBarSection, { variant: "range", onChange: setStyledColumn }) })),
|
|
188
196
|
});
|
|
189
197
|
specificSteps.push({
|
|
190
198
|
title: 'Display',
|
|
191
|
-
details: '
|
|
199
|
+
details: 'Configure the Display for the Range Bar',
|
|
192
200
|
isValid: () => true,
|
|
193
|
-
renderSummary:
|
|
201
|
+
renderSummary: renderStyledColumnRangeBarDisplayStepSummary,
|
|
194
202
|
render: () => (_jsx(Box, { className: "twa:p-2", children: _jsx(StyledColumnWizardRangeBarSection, { variant: "appearance", onChange: setStyledColumn }) })),
|
|
195
203
|
});
|
|
196
204
|
}
|
|
@@ -199,14 +207,14 @@ export const StyledColumnWizard = (props) => {
|
|
|
199
207
|
title: 'Mappings',
|
|
200
208
|
details: 'Select a preset or define key → icon mappings',
|
|
201
209
|
isValid: () => isValidIconStyleMappings(styledColumn),
|
|
202
|
-
renderSummary:
|
|
210
|
+
renderSummary: renderStyledColumnIconMappingsSummary,
|
|
203
211
|
render: () => (_jsx(Box, { className: "twa:p-2", children: _jsx(StyledColumnWizardIconSection, { variant: "mappings", onChange: setStyledColumn }) })),
|
|
204
212
|
});
|
|
205
213
|
specificSteps.push({
|
|
206
214
|
title: 'Style',
|
|
207
215
|
details: 'Set Styles for sizing, cell text, tooltips, font and cell',
|
|
208
216
|
isValid: () => true,
|
|
209
|
-
renderSummary:
|
|
217
|
+
renderSummary: renderStyledColumnIconStyleSummary,
|
|
210
218
|
render: () => (_jsx(Box, { className: "twa:p-2", children: _jsx(StyledColumnWizardIconSection, { variant: "style", onChange: setStyledColumn }) })),
|
|
211
219
|
});
|
|
212
220
|
}
|
|
@@ -224,13 +232,13 @@ export const StyledColumnWizard = (props) => {
|
|
|
224
232
|
}
|
|
225
233
|
return true;
|
|
226
234
|
},
|
|
227
|
-
renderSummary:
|
|
235
|
+
renderSummary: renderBadgeSummary,
|
|
228
236
|
render: () => (_jsx(Box, { className: "twa:p-2", children: _jsx(StyledColumnBadgeSection, { onChange: setStyledColumn }) })),
|
|
229
237
|
});
|
|
230
238
|
specificSteps.push({
|
|
231
239
|
title: 'Style',
|
|
232
240
|
details: 'Set Cell Density and Cell Style',
|
|
233
|
-
renderSummary:
|
|
241
|
+
renderSummary: renderBadgeStyleSummary,
|
|
234
242
|
render: () => (_jsx(Box, { className: "twa:p-2", children: _jsx(StyledColumnBadgeStyleSection, { onChange: setStyledColumn }) })),
|
|
235
243
|
});
|
|
236
244
|
}
|
|
@@ -279,7 +287,7 @@ export const StyledColumnWizard = (props) => {
|
|
|
279
287
|
title: 'Summary',
|
|
280
288
|
details: 'Review your Styled Column',
|
|
281
289
|
render: () => {
|
|
282
|
-
return (
|
|
290
|
+
return (_jsxs(Box, { className: "twa:p-2 twa:flex twa:flex-col twa:gap-3", children: [_jsx(OnePageWizardSummary, {}), styledColumn.GradientStyle && (_jsx(StyledColumnGradientPreviewCard, { data: styledColumn })), styledColumn.PercentBarStyle && (_jsx(StyledColumnPercentBarPreviewCard, { data: styledColumn })), styledColumn.BadgeStyle && (_jsx(StyledColumnBadgePreviewCard, { data: styledColumn })), styledColumn.RatingStyle && (_jsx(StyledColumnRatingPreviewCard, { data: styledColumn })), styledColumn.IconStyle && (_jsx(StyledColumnIconPreviewCard, { data: styledColumn })), styledColumn.BulletChartStyle && (_jsx(StyledColumnBulletPreviewCard, { data: styledColumn })), styledColumn.RangeBarStyle && (_jsx(StyledColumnRangeBarPreviewCard, { data: styledColumn })), styledColumn.SparklineStyle && (_jsx(StyledColumnSparklinePreviewCard, { data: styledColumn }))] }));
|
|
283
291
|
},
|
|
284
292
|
},
|
|
285
293
|
] }));
|
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { StyledColumn } from '../../../AdaptableState/StyledColumnState';
|
|
3
|
+
export declare const getStyledColumnBulletRangesViewValues: (data: StyledColumn) => string[];
|
|
4
|
+
export declare const getStyledColumnBulletStyleViewValues: (data: StyledColumn) => string[];
|
|
3
5
|
/** Wizard / list-view summary for the Ranges step (qualitative bands). */
|
|
4
6
|
export declare const renderStyledColumnBulletRangesSummary: (data: StyledColumn) => React.JSX.Element;
|
|
7
|
+
export declare const StyledColumnBulletRangesView: React.FunctionComponent<React.PropsWithChildren<{
|
|
8
|
+
data: StyledColumn;
|
|
9
|
+
}>>;
|
|
5
10
|
/** Wizard / list-view summary for the Style step (target, bar, text, font). */
|
|
6
11
|
export declare const renderStyledColumnBulletStyleSummary: (data: StyledColumn) => React.JSX.Element;
|
|
7
12
|
/** Full combined summary (ranges + style); kept for callers that expect one block. */
|
|
@@ -13,9 +13,10 @@ import DropdownButton from '../../../components/DropdownButton';
|
|
|
13
13
|
import ArrayExtensions from '../../../Utilities/Extensions/ArrayExtensions';
|
|
14
14
|
import AdaptableInput from '../../Components/AdaptableInput';
|
|
15
15
|
import { Box, Flex } from '../../../components/Flex';
|
|
16
|
-
import {
|
|
16
|
+
import { BulletRangesSummaryPreview } from './StyledColumnWizardStyleSection/Components/BulletRangesSummaryPreview';
|
|
17
|
+
import { StyledColumnBulletPreviewCard } from './StyledColumnWizardStyleSection/Components/StyledColumnBulletPreview';
|
|
17
18
|
import { SingleSelect } from '../../../components/NewSelect';
|
|
18
|
-
import {
|
|
19
|
+
import { getCellFontStyleSummaryItems, StyledColumnFontStyleEditor, } from './StyledColumnSliceStyleEditors';
|
|
19
20
|
import { Card } from '../../../components/Card';
|
|
20
21
|
const BULLET_STYLE_FORM_SIZES = ['200px', '1fr'];
|
|
21
22
|
// ---------------------------------------------------------------------------
|
|
@@ -26,37 +27,131 @@ const getTargetSummary = (target) => {
|
|
|
26
27
|
return null;
|
|
27
28
|
}
|
|
28
29
|
if (Array.isArray(target)) {
|
|
29
|
-
return
|
|
30
|
+
return target
|
|
31
|
+
.map((entry) => formatSingleBulletTargetSummary(entry))
|
|
32
|
+
.filter(Boolean)
|
|
33
|
+
.join(', ');
|
|
30
34
|
}
|
|
35
|
+
return formatSingleBulletTargetSummary(target);
|
|
36
|
+
};
|
|
37
|
+
const formatSingleBulletTargetSummary = (target) => {
|
|
31
38
|
if (typeof target === 'number') {
|
|
32
39
|
return String(target);
|
|
33
40
|
}
|
|
34
41
|
if (typeof target === 'string') {
|
|
35
42
|
return target;
|
|
36
43
|
}
|
|
37
|
-
// object form
|
|
38
44
|
const t = target;
|
|
39
45
|
return t.Label ?? String(t.Value);
|
|
40
46
|
};
|
|
47
|
+
const formatBulletOriginLabel = (origin) => {
|
|
48
|
+
if (origin == undefined) {
|
|
49
|
+
return 'Auto';
|
|
50
|
+
}
|
|
51
|
+
if (typeof origin === 'number') {
|
|
52
|
+
return `Custom (${origin})`;
|
|
53
|
+
}
|
|
54
|
+
return origin;
|
|
55
|
+
};
|
|
56
|
+
const formatBulletCellTextSummary = (cellText) => cellText
|
|
57
|
+
?.map((t) => (t === 'CellValue' ? 'Cell Value' : 'Percent Value'))
|
|
58
|
+
.join(' + ') ?? '';
|
|
59
|
+
const formatBulletToolTipSummary = (toolTipText) => toolTipText
|
|
60
|
+
?.map((t) => (t === 'CellValue' ? 'Cell Value' : 'Percent Value'))
|
|
61
|
+
.join(' + ') ?? '';
|
|
62
|
+
export const getStyledColumnBulletRangesViewValues = (data) => {
|
|
63
|
+
const bullet = data.BulletChartStyle;
|
|
64
|
+
if (!bullet) {
|
|
65
|
+
return [];
|
|
66
|
+
}
|
|
67
|
+
const bandCount = bullet.CellRanges?.length ?? 0;
|
|
68
|
+
const items = [`Bands: ${bandCount}`];
|
|
69
|
+
if (bullet.RangeValueType != null) {
|
|
70
|
+
items.push(`Range Value Type: ${bullet.RangeValueType}`);
|
|
71
|
+
}
|
|
72
|
+
return items;
|
|
73
|
+
};
|
|
74
|
+
const buildStyledColumnBulletStyleSummaryStrings = (bullet, options) => {
|
|
75
|
+
const items = [];
|
|
76
|
+
const targetSummary = getTargetSummary(bullet.Target);
|
|
77
|
+
if (targetSummary) {
|
|
78
|
+
items.push(`Target: ${targetSummary}`);
|
|
79
|
+
}
|
|
80
|
+
const marker = bullet.TargetMarker;
|
|
81
|
+
if (marker?.Shape && marker.Shape !== 'Line') {
|
|
82
|
+
items.push(`Target Marker Shape: ${marker.Shape}`);
|
|
83
|
+
}
|
|
84
|
+
if (marker?.Color) {
|
|
85
|
+
items.push(`Target Marker Colour: ${marker.Color}`);
|
|
86
|
+
}
|
|
87
|
+
if (marker?.Size != null) {
|
|
88
|
+
items.push(`Target Marker Size: ${marker.Size}px`);
|
|
89
|
+
}
|
|
90
|
+
if (bullet.Orientation === 'Vertical') {
|
|
91
|
+
items.push('Orientation: Vertical');
|
|
92
|
+
}
|
|
93
|
+
if (bullet.BarColor) {
|
|
94
|
+
items.push(`Bar Colour: ${bullet.BarColor}`);
|
|
95
|
+
}
|
|
96
|
+
if (bullet.BarHeight != null) {
|
|
97
|
+
items.push(`${bullet.Orientation === 'Vertical' ? 'Bar Width' : 'Bar Height'}: ${bullet.BarHeight}px`);
|
|
98
|
+
}
|
|
99
|
+
items.push(`Origin: ${formatBulletOriginLabel(bullet.Origin)}`);
|
|
100
|
+
if (bullet.BackColor) {
|
|
101
|
+
items.push(`Back Colour: ${bullet.BackColor}`);
|
|
102
|
+
}
|
|
103
|
+
if (bullet.CellText?.length) {
|
|
104
|
+
items.push(`Cell Text: ${formatBulletCellTextSummary(bullet.CellText)}`);
|
|
105
|
+
items.push(`Cell Text Position: ${bullet.CellTextPosition ?? 'Below'}`);
|
|
106
|
+
}
|
|
107
|
+
else if (options.includeEmptyCellText) {
|
|
108
|
+
items.push('Cell Text: None');
|
|
109
|
+
}
|
|
110
|
+
getCellFontStyleSummaryItems(bullet.Font).forEach(({ label, value }) => {
|
|
111
|
+
items.push(`${label}: ${value}`);
|
|
112
|
+
});
|
|
113
|
+
if (bullet.ToolTipText?.length) {
|
|
114
|
+
items.push(`Tooltip: ${formatBulletToolTipSummary(bullet.ToolTipText)}`);
|
|
115
|
+
}
|
|
116
|
+
else if (options.includeEmptyTooltip) {
|
|
117
|
+
items.push('Tooltip: No Tooltip');
|
|
118
|
+
}
|
|
119
|
+
return items;
|
|
120
|
+
};
|
|
121
|
+
export const getStyledColumnBulletStyleViewValues = (data) => {
|
|
122
|
+
const bullet = data.BulletChartStyle;
|
|
123
|
+
if (!bullet) {
|
|
124
|
+
return [];
|
|
125
|
+
}
|
|
126
|
+
return buildStyledColumnBulletStyleSummaryStrings(bullet, {
|
|
127
|
+
includeEmptyCellText: false,
|
|
128
|
+
includeEmptyTooltip: false,
|
|
129
|
+
});
|
|
130
|
+
};
|
|
41
131
|
/** Wizard / list-view summary for the Ranges step (qualitative bands). */
|
|
42
132
|
export const renderStyledColumnBulletRangesSummary = (data) => {
|
|
43
133
|
const bullet = data.BulletChartStyle;
|
|
44
134
|
if (!bullet) {
|
|
45
|
-
return _jsx(Tag, { children: "
|
|
135
|
+
return _jsx(Tag, { children: "No bands defined" });
|
|
46
136
|
}
|
|
47
|
-
const
|
|
48
|
-
return (_jsxs(Flex, { flexDirection: "column", className: "twa:gap-2 twa:items-start", children: [_jsx(
|
|
137
|
+
const tagItems = getStyledColumnBulletRangesViewValues(data);
|
|
138
|
+
return (_jsxs(Flex, { flexDirection: "column", className: "twa:gap-2 twa:items-start", children: [_jsx(Flex, { alignItems: "center", className: "twa:flex-wrap twa:gap-2", children: tagItems.map((item) => (_jsx(Tag, { children: item }, item))) }), _jsx(BulletRangesSummaryPreview, { bulletStyle: bullet })] }));
|
|
49
139
|
};
|
|
140
|
+
export const StyledColumnBulletRangesView = ({ data }) => renderStyledColumnBulletRangesSummary(data);
|
|
50
141
|
/** Wizard / list-view summary for the Style step (target, bar, text, font). */
|
|
51
142
|
export const renderStyledColumnBulletStyleSummary = (data) => {
|
|
52
143
|
const bullet = data.BulletChartStyle;
|
|
53
144
|
if (!bullet) {
|
|
54
145
|
return _jsx(Tag, { children: "No Styling Defined" });
|
|
55
146
|
}
|
|
56
|
-
const
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
147
|
+
const items = buildStyledColumnBulletStyleSummaryStrings(bullet, {
|
|
148
|
+
includeEmptyCellText: true,
|
|
149
|
+
includeEmptyTooltip: true,
|
|
150
|
+
});
|
|
151
|
+
if (!items.length) {
|
|
152
|
+
return _jsx(Tag, { children: "No Style Defined" });
|
|
153
|
+
}
|
|
154
|
+
return (_jsx(Flex, { alignItems: "center", className: "twa:flex-wrap twa:gap-2", children: items.map((item) => (_jsx(Tag, { children: item }, item))) }));
|
|
60
155
|
};
|
|
61
156
|
/** Full combined summary (ranges + style); kept for callers that expect one block. */
|
|
62
157
|
export const renderStyledColumnBulletSummary = (data) => {
|
|
@@ -64,11 +159,7 @@ export const renderStyledColumnBulletSummary = (data) => {
|
|
|
64
159
|
if (!bullet) {
|
|
65
160
|
return _jsx(Tag, { children: "No Styling Defined" });
|
|
66
161
|
}
|
|
67
|
-
|
|
68
|
-
const targetSummary = getTargetSummary(bullet.Target);
|
|
69
|
-
const isVertical = bullet.Orientation === 'Vertical';
|
|
70
|
-
const fontTags = renderFontStyleSummaryTags(bullet.Font);
|
|
71
|
-
return (_jsxs(Flex, { flexDirection: "column", className: "twa:gap-2 twa:items-start", children: [_jsx(StyledColumnBulletChartListPreview, { bullet: bullet }), _jsxs(Flex, { alignItems: "center", className: "twa:flex-wrap", children: [_jsxs(Box, { className: "twa:mr-1", children: [bandCount, " ", bandCount === 1 ? 'band' : 'bands'] }), targetSummary && (_jsxs(Box, { className: "twa:mr-1", children: ["\u00B7 target: ", _jsx(Tag, { children: targetSummary })] })), isVertical && (_jsxs(Box, { className: "twa:mr-1", children: ["\u00B7 ", _jsx(Tag, { children: "vertical" })] })), fontTags && (_jsxs(Box, { className: "twa:mr-1", children: ["\u00B7 Font: ", fontTags] }))] })] }));
|
|
162
|
+
return (_jsxs(Flex, { flexDirection: "column", className: "twa:gap-3 twa:items-start", children: [renderStyledColumnBulletRangesSummary(data), renderStyledColumnBulletStyleSummary(data)] }));
|
|
72
163
|
};
|
|
73
164
|
/**
|
|
74
165
|
* Maps the structured `BulletChartStyle.Target` field to one of the simple
|
|
@@ -108,20 +199,25 @@ const MARKER_SHAPES = [
|
|
|
108
199
|
export const StyledColumnWizardBulletSection = (props) => {
|
|
109
200
|
const variant = props.variant ?? 'style';
|
|
110
201
|
const { data, api } = useOnePageAdaptableWizardContext();
|
|
111
|
-
const
|
|
202
|
+
const column = React.useMemo(() => {
|
|
112
203
|
const columnId = data.ColumnId;
|
|
113
204
|
if (!columnId) {
|
|
205
|
+
return undefined;
|
|
206
|
+
}
|
|
207
|
+
return api.columnApi.getColumnWithColumnId(columnId);
|
|
208
|
+
}, [data.ColumnId, api]);
|
|
209
|
+
const minMaxRangeValues = React.useMemo(() => {
|
|
210
|
+
if (!column) {
|
|
114
211
|
return null;
|
|
115
212
|
}
|
|
116
|
-
const column = api.columnApi.getColumnWithColumnId(columnId);
|
|
117
213
|
return {
|
|
118
214
|
min: api.styledColumnApi.internalApi.getMinValueForNumericColumn(column),
|
|
119
215
|
max: api.styledColumnApi.internalApi.getMaxValueForNumericColumn(column),
|
|
120
216
|
};
|
|
121
|
-
}, [
|
|
217
|
+
}, [column, api]);
|
|
122
218
|
const scope = { ColumnIds: [data.ColumnId] };
|
|
123
219
|
const bullet = data.BulletChartStyle ?? {};
|
|
124
|
-
const disabled = !data.ColumnId;
|
|
220
|
+
const disabled = !data.ColumnId || !column;
|
|
125
221
|
// -------------------------------------------------------------------------
|
|
126
222
|
// Updaters
|
|
127
223
|
// -------------------------------------------------------------------------
|
|
@@ -231,8 +327,10 @@ export const StyledColumnWizardBulletSection = (props) => {
|
|
|
231
327
|
// -------------------------------------------------------------------------
|
|
232
328
|
// Render
|
|
233
329
|
// -------------------------------------------------------------------------
|
|
234
|
-
if (!data.ColumnId) {
|
|
235
|
-
return (_jsx(Box, { children: _jsx(ErrorBox, { className: "twa:mt-2", children:
|
|
330
|
+
if (!data.ColumnId || !column) {
|
|
331
|
+
return (_jsx(Box, { children: _jsx(ErrorBox, { className: "twa:mt-2", children: !data.ColumnId
|
|
332
|
+
? 'You need to select a column before styling.'
|
|
333
|
+
: `Column "${data.ColumnId}" was not found in the grid.` }) }));
|
|
236
334
|
}
|
|
237
335
|
// ----- Ranges-only variant (wizard step before Style) ---------------------
|
|
238
336
|
if (variant === 'ranges') {
|
|
@@ -297,5 +395,5 @@ export const StyledColumnWizardBulletSection = (props) => {
|
|
|
297
395
|
delete cleaned.Font;
|
|
298
396
|
props.onChange({ ...data, BulletChartStyle: cleaned });
|
|
299
397
|
}
|
|
300
|
-
} }) })] })] }), _jsxs(Card, { shadow: false, className: "twa:mb-3", children: [_jsxs(Card.Title, { children: [_jsx(Box, { className: "twa:font-medium", children: "Tooltip" }), _jsx(Box, { className: "twa:text-xs twa:opacity-70 twa:font-normal twa:max-w-[520px]", children: "Choose whether to display a tooltip" })] }), _jsx(Card.Body, { children: _jsx(FormLayout, { sizes: [...BULLET_STYLE_FORM_SIZES], children: _jsxs(FormRow, { label: "Tooltip Display:", children: [_jsx(CheckBox, { disabled: disabled, checked: bullet.ToolTipText?.includes('CellValue'), onChange: (checked) => toggleToolTipText('CellValue', checked), children: "Cell Value" }), ' ', _jsx(CheckBox, { disabled: disabled, className: "twa:ml-3", checked: bullet.ToolTipText?.includes('PercentageValue'), onChange: (checked) => toggleToolTipText('PercentageValue', checked), children: "Percent Value" })] }) }) })] })] }));
|
|
398
|
+
} }) })] })] }), _jsxs(Card, { shadow: false, className: "twa:mb-3", children: [_jsxs(Card.Title, { children: [_jsx(Box, { className: "twa:font-medium", children: "Tooltip" }), _jsx(Box, { className: "twa:text-xs twa:opacity-70 twa:font-normal twa:max-w-[520px]", children: "Choose whether to display a tooltip" })] }), _jsx(Card.Body, { children: _jsx(FormLayout, { sizes: [...BULLET_STYLE_FORM_SIZES], children: _jsxs(FormRow, { label: "Tooltip Display:", children: [_jsx(CheckBox, { disabled: disabled, checked: bullet.ToolTipText?.includes('CellValue'), onChange: (checked) => toggleToolTipText('CellValue', checked), children: "Cell Value" }), ' ', _jsx(CheckBox, { disabled: disabled, className: "twa:ml-3", checked: bullet.ToolTipText?.includes('PercentageValue'), onChange: (checked) => toggleToolTipText('PercentageValue', checked), children: "Percent Value" })] }) }) })] }), _jsx(StyledColumnBulletPreviewCard, { data: data })] }));
|
|
301
399
|
};
|
|
@@ -3,6 +3,7 @@ import { StyledColumn } from '../../../AdaptableState/StyledColumnState';
|
|
|
3
3
|
export interface StyledColumnWizardGradientSectionProps {
|
|
4
4
|
onChange: (styledColumn: StyledColumn) => void;
|
|
5
5
|
}
|
|
6
|
+
export declare const getStyledColumnGradientStyleViewValues: (data: StyledColumn) => string[];
|
|
6
7
|
/**
|
|
7
8
|
* Summary of Gradient-only style options (alpha bounds, auto-contrast, tooltip).
|
|
8
9
|
*/
|