@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
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { isAdaptableCustomIcon, isAdaptableElementIcon, isAdaptableSystemIcon, } from '../../../../../components/Icon';
|
|
3
|
+
import { resolveEffectiveIconStyleMappings } from '../../../../../agGrid/cellRenderers/IconRenderer';
|
|
4
|
+
import { AdaptableIconComponent } from '../../../../Components/AdaptableIconComponent';
|
|
5
|
+
import { Box } from '../../../../../components/Flex';
|
|
6
|
+
import { Card } from '../../../../../components/Card';
|
|
7
|
+
import { Tag } from '../../../../../components/Tag';
|
|
8
|
+
import { convertAdaptableStyleToCSS, hasCellBoxStyle, } from '../../../../../Utilities/Helpers/StyleHelper';
|
|
9
|
+
export const DEFAULT_ICON_STYLE_SIZE = 18;
|
|
10
|
+
export const DEFAULT_ICON_STYLE_GAP = 4;
|
|
11
|
+
const PREVIEW_CELL_CLASS = 'ab-IconPreviewCell twa:inline-flex twa:items-center twa:min-w-[140px] twa:min-h-[32px] twa:px-2 twa:py-1 twa:rounded-standard twa:border twa:border-[color-mix(in_srgb,var(--ab-color-foreground)_15%,transparent)]';
|
|
12
|
+
const isInlineGlyph = (spec) => typeof spec === 'string';
|
|
13
|
+
const isAdaptableIconSpec = (spec) => !!spec &&
|
|
14
|
+
(isAdaptableSystemIcon(spec) ||
|
|
15
|
+
isAdaptableCustomIcon(spec) ||
|
|
16
|
+
isAdaptableElementIcon(spec));
|
|
17
|
+
function getIconCellChromeCss(cell) {
|
|
18
|
+
if (!cell || !hasCellBoxStyle(cell)) {
|
|
19
|
+
return {};
|
|
20
|
+
}
|
|
21
|
+
return convertAdaptableStyleToCSS(cell);
|
|
22
|
+
}
|
|
23
|
+
const renderIconSpecForPreview = (spec, size) => {
|
|
24
|
+
if (isInlineGlyph(spec)) {
|
|
25
|
+
return (_jsx("span", { className: "ab-IconStyle__glyph", style: {
|
|
26
|
+
fontSize: size,
|
|
27
|
+
lineHeight: 1,
|
|
28
|
+
display: 'inline-flex',
|
|
29
|
+
alignItems: 'center',
|
|
30
|
+
justifyContent: 'center',
|
|
31
|
+
}, children: spec }));
|
|
32
|
+
}
|
|
33
|
+
if (isAdaptableIconSpec(spec)) {
|
|
34
|
+
return _jsx(AdaptableIconComponent, { icon: spec });
|
|
35
|
+
}
|
|
36
|
+
return null;
|
|
37
|
+
};
|
|
38
|
+
const buildPreviewText = (mapping, iconStyle) => {
|
|
39
|
+
const cellTextTokens = iconStyle.CellText ?? [];
|
|
40
|
+
const formatted = String(mapping.Key);
|
|
41
|
+
const textParts = [];
|
|
42
|
+
if (cellTextTokens.includes('CellValue') && formatted) {
|
|
43
|
+
textParts.push(formatted);
|
|
44
|
+
}
|
|
45
|
+
if (cellTextTokens.includes('IconDescription') && mapping.Description) {
|
|
46
|
+
textParts.push(mapping.Description);
|
|
47
|
+
}
|
|
48
|
+
return textParts.length > 0 ? textParts.join(' · ') : undefined;
|
|
49
|
+
};
|
|
50
|
+
const IconCellPreviewTree = ({ iconStyle, mapping }) => {
|
|
51
|
+
const size = iconStyle.Size ?? DEFAULT_ICON_STYLE_SIZE;
|
|
52
|
+
const gap = iconStyle.Gap ?? DEFAULT_ICON_STYLE_GAP;
|
|
53
|
+
const textPosition = iconStyle.CellTextPosition ?? 'After';
|
|
54
|
+
const text = buildPreviewText(mapping, iconStyle);
|
|
55
|
+
const fontStyle = iconStyle.Font ? convertAdaptableStyleToCSS(iconStyle.Font) : undefined;
|
|
56
|
+
const iconNode = renderIconSpecForPreview(mapping.Icon, size);
|
|
57
|
+
const textNode = text ? (_jsx("span", { className: "ab-IconStyle__text", style: { lineHeight: 1.2, ...fontStyle }, children: text })) : null;
|
|
58
|
+
if (!iconNode && !textNode) {
|
|
59
|
+
return null;
|
|
60
|
+
}
|
|
61
|
+
if (!textNode) {
|
|
62
|
+
return _jsx(_Fragment, { children: iconNode });
|
|
63
|
+
}
|
|
64
|
+
if (!iconNode) {
|
|
65
|
+
return _jsx(_Fragment, { children: textNode });
|
|
66
|
+
}
|
|
67
|
+
const isStacked = textPosition === 'Above' || textPosition === 'Below';
|
|
68
|
+
const children = textPosition === 'Before' || textPosition === 'Above'
|
|
69
|
+
? [textNode, iconNode]
|
|
70
|
+
: [iconNode, textNode];
|
|
71
|
+
return (_jsx("span", { className: "ab-IconStyle__wrapper", style: {
|
|
72
|
+
display: 'inline-flex',
|
|
73
|
+
flexDirection: isStacked ? 'column' : 'row',
|
|
74
|
+
alignItems: 'center',
|
|
75
|
+
gap,
|
|
76
|
+
lineHeight: 1,
|
|
77
|
+
}, children: children }));
|
|
78
|
+
};
|
|
79
|
+
export const StyledColumnIconPreview = ({ data }) => {
|
|
80
|
+
const iconStyle = data.IconStyle;
|
|
81
|
+
if (!iconStyle) {
|
|
82
|
+
return _jsx(Tag, { children: "No Icon Style" });
|
|
83
|
+
}
|
|
84
|
+
const effectiveMappings = resolveEffectiveIconStyleMappings(iconStyle);
|
|
85
|
+
if (effectiveMappings.length === 0) {
|
|
86
|
+
return _jsx(Tag, { children: "Define mappings to preview" });
|
|
87
|
+
}
|
|
88
|
+
const previewCellChrome = getIconCellChromeCss(iconStyle.Cell);
|
|
89
|
+
return (_jsx(Box, { className: PREVIEW_CELL_CLASS, style: previewCellChrome, children: _jsx(IconCellPreviewTree, { iconStyle: iconStyle, mapping: effectiveMappings[0] }) }));
|
|
90
|
+
};
|
|
91
|
+
export const StyledColumnIconPreviewCard = ({ data }) => (_jsxs(Card, { shadow: false, children: [_jsx(Card.Title, { children: _jsx(Box, { className: "twa:font-medium", children: "Preview" }) }), _jsx(Card.Body, { className: "twa:p-1", children: _jsx(StyledColumnIconPreview, { data: data }) })] }));
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { StyledColumn } from '../../../../../AdaptableState/StyledColumnState';
|
|
3
|
+
export declare const StyledColumnPercentBarPreview: React.FunctionComponent<React.PropsWithChildren<{
|
|
4
|
+
data: StyledColumn;
|
|
5
|
+
}>>;
|
|
6
|
+
export declare const StyledColumnPercentBarPreviewCard: React.FunctionComponent<React.PropsWithChildren<{
|
|
7
|
+
data: StyledColumn;
|
|
8
|
+
}>>;
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { convertAdaptableStyleToCSS } from '../../../../../Utilities/Helpers/StyleHelper';
|
|
3
|
+
import { formatPercentBarPreviewCellText, getPercentBarPreviewGeometry, getPercentBarPreviewResolvedBarColor, getPercentBarPreviewSampleValues, getPercentBarPreviewScale, getPercentBarPreviewTrackColor, hasPercentBarRangesConfigured, } from '../../../../../Utilities/Helpers/percentBarPreviewHelper';
|
|
4
|
+
import { Box, Flex } from '../../../../../components/Flex';
|
|
5
|
+
import { Card } from '../../../../../components/Card';
|
|
6
|
+
import { Tag } from '../../../../../components/Tag';
|
|
7
|
+
const PREVIEW_CELL_CLASS = 'ab-PercentBarPreviewCell twa:w-[72px] twa:min-h-[32px] twa:px-1 twa:py-1 twa:rounded-standard twa:border twa:border-[color-mix(in_srgb,var(--ab-color-foreground)_15%,transparent)]';
|
|
8
|
+
const PercentBarPreviewCell = ({ styledColumn, value, min, max }) => {
|
|
9
|
+
const pb = styledColumn.PercentBarStyle;
|
|
10
|
+
const { barLeftPercent, barWidthPercent, percentageValue, barColor } = getPercentBarPreviewGeometry(value, pb, min, max);
|
|
11
|
+
const trackColor = getPercentBarPreviewTrackColor(pb);
|
|
12
|
+
const fillColor = getPercentBarPreviewResolvedBarColor(barColor);
|
|
13
|
+
const cellText = formatPercentBarPreviewCellText(value, percentageValue, pb);
|
|
14
|
+
const hasCellText = Boolean(pb.CellText?.length && cellText);
|
|
15
|
+
const textPosition = pb.CellTextPosition ?? 'Below';
|
|
16
|
+
const fontStyle = pb.Font ? convertAdaptableStyleToCSS(pb.Font) : undefined;
|
|
17
|
+
const textEl = hasCellText ? (_jsx(Box, { className: "ab-PercentBar__text twa:text-2 twa:leading-tight twa:truncate", style: fontStyle, children: cellText })) : null;
|
|
18
|
+
const barEl = (_jsxs(Box, { className: "ab-PercentBar__bar twa:relative twa:flex-1 twa:min-h-[6px]", style: trackColor ? { background: getPercentBarPreviewResolvedBarColor(trackColor) } : undefined, children: [fillColor && (_jsx(Box, { className: "ab-PercentBar__barInside twa:absolute twa:top-0 twa:h-full", style: {
|
|
19
|
+
background: fillColor,
|
|
20
|
+
left: `${barLeftPercent.toFixed(2)}%`,
|
|
21
|
+
width: `${barWidthPercent.toFixed(2)}%`,
|
|
22
|
+
} })), hasCellText && textPosition === 'Merged' && (_jsx(Box, { className: "ab-PercentBar__text twa:absolute twa:inset-x-0 twa:top-1/2 twa:-translate-y-1/2 twa:px-1 twa:text-2 twa:truncate", style: fontStyle, children: cellText }))] }));
|
|
23
|
+
return (_jsxs(Flex, { className: `ab-PercentBar__wrapper ${PREVIEW_CELL_CLASS}`, flexDirection: "column", style: { justifyContent: 'center', height: hasCellText && textPosition !== 'Merged' ? '100%' : undefined }, children: [hasCellText && textPosition === 'Above' && textEl, barEl, hasCellText && textPosition === 'Below' && textEl] }));
|
|
24
|
+
};
|
|
25
|
+
export const StyledColumnPercentBarPreview = ({ data }) => {
|
|
26
|
+
const pb = data.PercentBarStyle;
|
|
27
|
+
if (!pb) {
|
|
28
|
+
return _jsx(Tag, { children: "No Percent Bar Style" });
|
|
29
|
+
}
|
|
30
|
+
if (!hasPercentBarRangesConfigured(pb)) {
|
|
31
|
+
return _jsx(Tag, { children: "Define ranges before previewing" });
|
|
32
|
+
}
|
|
33
|
+
let min;
|
|
34
|
+
let max;
|
|
35
|
+
if (pb.ColumnComparison) {
|
|
36
|
+
const cmpMin = Number(pb.ColumnComparison.MinValue);
|
|
37
|
+
const cmpMax = Number(pb.ColumnComparison.MaxValue);
|
|
38
|
+
if (!Number.isNaN(cmpMin) && !Number.isNaN(cmpMax)) {
|
|
39
|
+
min = cmpMin;
|
|
40
|
+
max = cmpMax;
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
({ min, max } = getPercentBarPreviewScale(pb));
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
({ min, max } = getPercentBarPreviewScale(pb));
|
|
48
|
+
}
|
|
49
|
+
const sampleValues = getPercentBarPreviewSampleValues(pb);
|
|
50
|
+
return (_jsx(Flex, { alignItems: "stretch", className: "twa:flex-wrap twa:gap-2", children: sampleValues.map((value) => (_jsx(PercentBarPreviewCell, { styledColumn: data, value: value, min: min, max: max }, value))) }));
|
|
51
|
+
};
|
|
52
|
+
export const StyledColumnPercentBarPreviewCard = ({ data }) => (_jsxs(Card, { shadow: false, children: [_jsx(Card.Title, { children: _jsx(Box, { className: "twa:font-medium", children: "Preview" }) }), _jsx(Card.Body, { className: "twa:p-1", children: _jsx(StyledColumnPercentBarPreview, { data: data }) })] }));
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { StyledColumn } from '../../../../../AdaptableState/StyledColumnState';
|
|
3
|
+
export declare const StyledColumnRangeBarPreview: React.FunctionComponent<React.PropsWithChildren<{
|
|
4
|
+
data: StyledColumn;
|
|
5
|
+
}>>;
|
|
6
|
+
export declare const StyledColumnRangeBarPreviewCard: React.FunctionComponent<React.PropsWithChildren<{
|
|
7
|
+
data: StyledColumn;
|
|
8
|
+
}>>;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Box, Flex } from '../../../../../components/Flex';
|
|
3
|
+
import { Card } from '../../../../../components/Card';
|
|
4
|
+
import { Tag } from '../../../../../components/Tag';
|
|
5
|
+
import { StyledColumnRangeBarListPreview } from './StyledColumnChartListPreviews';
|
|
6
|
+
const PREVIEW_CELL_CLASS = 'ab-RangeBarPreviewCell twa:inline-flex twa:items-center twa:min-w-[180px] twa:min-h-[36px] twa:px-2 twa:py-1 twa:rounded-standard twa:border twa:border-[color-mix(in_srgb,var(--ab-color-foreground)_15%,transparent)]';
|
|
7
|
+
const getRangeBarPreviewSample = (range) => {
|
|
8
|
+
let min = 0;
|
|
9
|
+
let max = 100;
|
|
10
|
+
if (typeof range.Min === 'number' && typeof range.Max === 'number') {
|
|
11
|
+
min = range.Min;
|
|
12
|
+
max = range.Max;
|
|
13
|
+
}
|
|
14
|
+
const span = max - min || 1;
|
|
15
|
+
// Matches the value-marker position (~72%) in `StyledColumnRangeBarListPreview`.
|
|
16
|
+
const sampleValue = min + span * 0.72;
|
|
17
|
+
const valueFraction = (sampleValue - min) / span;
|
|
18
|
+
return {
|
|
19
|
+
sampleValue,
|
|
20
|
+
valueFraction: Math.max(0, Math.min(1, valueFraction)),
|
|
21
|
+
};
|
|
22
|
+
};
|
|
23
|
+
const formatRangeBarPreviewCellText = (sampleValue, valueFraction, range) => {
|
|
24
|
+
const parts = [];
|
|
25
|
+
if (range.CellText?.includes('CellValue')) {
|
|
26
|
+
parts.push(Number.isInteger(sampleValue) ? String(sampleValue) : sampleValue.toFixed(1));
|
|
27
|
+
}
|
|
28
|
+
if (range.CellText?.includes('PercentageValue')) {
|
|
29
|
+
parts.push(`${(valueFraction * 100).toFixed(0)}%`);
|
|
30
|
+
}
|
|
31
|
+
return parts.join(' ');
|
|
32
|
+
};
|
|
33
|
+
const RangeBarPreviewContent = ({ range }) => {
|
|
34
|
+
const { sampleValue, valueFraction } = getRangeBarPreviewSample(range);
|
|
35
|
+
const cellText = formatRangeBarPreviewCellText(sampleValue, valueFraction, range);
|
|
36
|
+
const hasCellText = Boolean(range.CellText?.length && cellText);
|
|
37
|
+
const textPosition = range.CellTextPosition ?? 'Below';
|
|
38
|
+
const isVertical = range.Orientation === 'Vertical';
|
|
39
|
+
const chartEl = _jsx(StyledColumnRangeBarListPreview, { range: range });
|
|
40
|
+
const textEl = hasCellText ? (_jsx(Box, { className: "ab-RangeBar__text twa:text-2 twa:leading-tight twa:truncate twa:max-w-full", children: cellText })) : null;
|
|
41
|
+
if (hasCellText && textPosition === 'Merged') {
|
|
42
|
+
return (_jsxs(Box, { className: "ab-RangeBar__wrapper twa:relative twa:inline-flex", children: [chartEl, _jsx(Box, { className: "ab-RangeBar__text twa:absolute twa:inset-x-0 twa:top-1/2 twa:-translate-y-1/2 twa:px-1 twa:text-2 twa:truncate twa:pointer-events-none", children: cellText })] }));
|
|
43
|
+
}
|
|
44
|
+
return (_jsxs(Flex, { className: "ab-RangeBar__wrapper", flexDirection: "column", alignItems: isVertical ? 'center' : 'stretch', style: { justifyContent: 'center', gap: hasCellText ? 2 : 0 }, children: [hasCellText && textPosition === 'Above' && textEl, chartEl, hasCellText && textPosition === 'Below' && textEl] }));
|
|
45
|
+
};
|
|
46
|
+
export const StyledColumnRangeBarPreview = ({ data }) => {
|
|
47
|
+
const range = data.RangeBarStyle;
|
|
48
|
+
if (!range) {
|
|
49
|
+
return _jsx(Tag, { children: "No Range Bar Style" });
|
|
50
|
+
}
|
|
51
|
+
return (_jsx(Box, { className: PREVIEW_CELL_CLASS, children: _jsx(RangeBarPreviewContent, { range: range }) }));
|
|
52
|
+
};
|
|
53
|
+
export const StyledColumnRangeBarPreviewCard = ({ data }) => (_jsxs(Card, { shadow: false, children: [_jsx(Card.Title, { children: _jsx(Box, { className: "twa:font-medium", children: "Preview" }) }), _jsx(Card.Body, { className: "twa:p-1", children: _jsx(StyledColumnRangeBarPreview, { data: data }) })] }));
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import type { CellBoxStyle } from '../../../../../AdaptableState/Common/AdaptableStyle';
|
|
3
|
+
import { RatingIconShape, RatingStyle, StyledColumn } from '../../../../../AdaptableState/StyledColumnState';
|
|
4
|
+
export declare const DEFAULT_RATING_MAX = 5;
|
|
5
|
+
export declare const DEFAULT_RATING_SIZE = 14;
|
|
6
|
+
export declare const DEFAULT_RATING_GAP = 2;
|
|
7
|
+
export declare const DEFAULT_RATING_ICON: RatingIconShape;
|
|
8
|
+
export declare function getRatingCellChromeCss(cell: CellBoxStyle | undefined): React.CSSProperties;
|
|
9
|
+
export declare const RatingPreview: React.FC<{
|
|
10
|
+
rating: RatingStyle;
|
|
11
|
+
value?: number;
|
|
12
|
+
}>;
|
|
13
|
+
export declare const StyledColumnRatingPreview: React.FunctionComponent<React.PropsWithChildren<{
|
|
14
|
+
data: StyledColumn;
|
|
15
|
+
}>>;
|
|
16
|
+
export declare const StyledColumnRatingPreviewCard: React.FunctionComponent<React.PropsWithChildren<{
|
|
17
|
+
data: StyledColumn;
|
|
18
|
+
}>>;
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
import { Box } from '../../../../../components/Flex';
|
|
4
|
+
import { Card } from '../../../../../components/Card';
|
|
5
|
+
import { Tag } from '../../../../../components/Tag';
|
|
6
|
+
import { convertAdaptableStyleToCSS, hasCellBoxStyle, } from '../../../../../Utilities/Helpers/StyleHelper';
|
|
7
|
+
export const DEFAULT_RATING_MAX = 5;
|
|
8
|
+
export const DEFAULT_RATING_SIZE = 14;
|
|
9
|
+
export const DEFAULT_RATING_GAP = 2;
|
|
10
|
+
export const DEFAULT_RATING_ICON = 'Star';
|
|
11
|
+
const DEFAULT_FILLED_COLOR = 'var(--ab-color-warn, #f5a623)';
|
|
12
|
+
const DEFAULT_EMPTY_COLOR = 'color-mix(in srgb, currentColor 22%, transparent)';
|
|
13
|
+
const PREVIEW_CELL_CLASS = 'ab-RatingPreviewCell twa:inline-flex twa:items-center twa:min-w-[140px] twa:min-h-[32px] twa:px-2 twa:py-1 twa:rounded-standard twa:border twa:border-[color-mix(in_srgb,var(--ab-color-foreground)_15%,transparent)]';
|
|
14
|
+
const ICON_PATHS = {
|
|
15
|
+
Star: 'M12 2 L14.9 8.6 L22 9.3 L16.7 14.1 L18.2 21 L12 17.4 L5.8 21 L7.3 14.1 L2 9.3 L9.1 8.6 Z',
|
|
16
|
+
Heart: 'M12 21 C 12 21 3 14.5 3 8.5 C 3 5.5 5.5 3 8.5 3 C 10.3 3 11.7 4 12 5.2 C 12.3 4 13.7 3 15.5 3 C 18.5 3 21 5.5 21 8.5 C 21 14.5 12 21 12 21 Z',
|
|
17
|
+
Circle: 'M12 4 a8 8 0 1 0 0.0001 0 Z',
|
|
18
|
+
Thumb: 'M2 11 h4 v10 h-4 z M7 11 l4 -8 c.5 -1 2 -1 2 0 l-1 5 h6 c1 0 2 1 1.7 2 l-2 8 c-.3 1 -1 1.6 -2 1.6 H7 z',
|
|
19
|
+
};
|
|
20
|
+
const clamp = (n, lo, hi) => Math.max(lo, Math.min(hi, n));
|
|
21
|
+
export function getRatingCellChromeCss(cell) {
|
|
22
|
+
if (!cell || !hasCellBoxStyle(cell)) {
|
|
23
|
+
return {};
|
|
24
|
+
}
|
|
25
|
+
return convertAdaptableStyleToCSS(cell);
|
|
26
|
+
}
|
|
27
|
+
export const RatingPreview = ({ rating, value, }) => {
|
|
28
|
+
const instanceId = React.useId();
|
|
29
|
+
const max = rating.Max ?? DEFAULT_RATING_MAX;
|
|
30
|
+
const size = rating.Size ?? DEFAULT_RATING_SIZE;
|
|
31
|
+
const gap = rating.Gap ?? DEFAULT_RATING_GAP;
|
|
32
|
+
const icon = rating.Icon ?? DEFAULT_RATING_ICON;
|
|
33
|
+
const filledColor = rating.FilledColor ?? DEFAULT_FILLED_COLOR;
|
|
34
|
+
const emptyColor = rating.EmptyColor ?? DEFAULT_EMPTY_COLOR;
|
|
35
|
+
const allowHalf = rating.AllowHalf ?? true;
|
|
36
|
+
const previewValue = value ?? Math.max(1, Math.min(max, max * 0.7));
|
|
37
|
+
const effective = allowHalf ? previewValue : Math.round(previewValue);
|
|
38
|
+
const d = ICON_PATHS[icon];
|
|
39
|
+
return (_jsxs("span", { style: {
|
|
40
|
+
display: 'inline-flex',
|
|
41
|
+
alignItems: 'center',
|
|
42
|
+
gap: `${gap}px`,
|
|
43
|
+
lineHeight: 1,
|
|
44
|
+
}, "aria-hidden": "true", children: [Array.from({ length: max }).map((_, i) => {
|
|
45
|
+
const fill = clamp(effective - i, 0, 1);
|
|
46
|
+
const clipId = `ab-rating-preview-clip-${instanceId}-${i}`;
|
|
47
|
+
return (_jsxs("svg", { width: size, height: size, viewBox: "0 0 24 24", children: [_jsx("path", { d: d, fill: emptyColor }), fill > 0 && (_jsxs(_Fragment, { children: [_jsx("defs", { children: _jsx("clipPath", { id: clipId, children: _jsx("rect", { x: 0, y: 0, width: 24 * fill, height: 24 }) }) }), _jsx("path", { d: d, fill: filledColor, clipPath: `url(#${clipId})` })] }))] }, i));
|
|
48
|
+
}), rating.ShowValue && (_jsx("span", { style: { marginLeft: 6, fontVariantNumeric: 'tabular-nums' }, children: previewValue }))] }));
|
|
49
|
+
};
|
|
50
|
+
export const StyledColumnRatingPreview = ({ data }) => {
|
|
51
|
+
const rating = data.RatingStyle;
|
|
52
|
+
if (!rating) {
|
|
53
|
+
return _jsx(Tag, { children: "No Rating Style" });
|
|
54
|
+
}
|
|
55
|
+
const previewCellChrome = getRatingCellChromeCss(rating.Cell);
|
|
56
|
+
return (_jsx(Box, { className: PREVIEW_CELL_CLASS, style: previewCellChrome, children: _jsx(RatingPreview, { rating: rating }) }));
|
|
57
|
+
};
|
|
58
|
+
export const StyledColumnRatingPreviewCard = ({ data }) => (_jsxs(Card, { shadow: false, children: [_jsx(Card.Title, { children: _jsx(Box, { className: "twa:font-medium", children: "Preview" }) }), _jsx(Card.Body, { className: "twa:p-1", children: _jsx(StyledColumnRatingPreview, { data: data }) })] }));
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import type { CellBoxStyle } from '../../../../../AdaptableState/Common/AdaptableStyle';
|
|
3
|
+
import { StyledColumn } from '../../../../../AdaptableState/StyledColumnState';
|
|
4
|
+
export declare function getSparklineCellChromeCss(cell: CellBoxStyle | undefined): React.CSSProperties;
|
|
5
|
+
export declare const StyledColumnSparklinePreview: React.FunctionComponent<React.PropsWithChildren<{
|
|
6
|
+
data: StyledColumn;
|
|
7
|
+
}>>;
|
|
8
|
+
export declare const StyledColumnSparklinePreviewCard: React.FunctionComponent<React.PropsWithChildren<{
|
|
9
|
+
data: StyledColumn;
|
|
10
|
+
}>>;
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
import { AgChartsEnterpriseModule } from 'ag-charts-enterprise';
|
|
4
|
+
import { AdaptableHelper } from '../../../../../Utilities/Helpers/AdaptableHelper';
|
|
5
|
+
import { resolveSparklineOptionsForRender } from '../../../../../Utilities/Helpers/SparklineOptionsHelper';
|
|
6
|
+
import { convertAdaptableStyleToCSS, hasCellBoxStyle, } from '../../../../../Utilities/Helpers/StyleHelper';
|
|
7
|
+
import { Box } from '../../../../../components/Flex';
|
|
8
|
+
import { Card } from '../../../../../components/Card';
|
|
9
|
+
import { Tag } from '../../../../../components/Tag';
|
|
10
|
+
import { useAdaptable } from '../../../../AdaptableContext';
|
|
11
|
+
const FALLBACK_NUMBER_ARRAY = [12, 18, 9, 22, 15, 28, 19, 24, 17, 21];
|
|
12
|
+
const PREVIEW_HEIGHT = 36;
|
|
13
|
+
const PREVIEW_CELL_CLASS = 'ab-SparklinePreviewCell twa:block twa:min-w-[200px] twa:min-h-[36px] twa:px-2 twa:py-1 twa:rounded-standard twa:border twa:border-[color-mix(in_srgb,var(--ab-color-foreground)_15%,transparent)]';
|
|
14
|
+
export function getSparklineCellChromeCss(cell) {
|
|
15
|
+
if (!cell || !hasCellBoxStyle(cell)) {
|
|
16
|
+
return {};
|
|
17
|
+
}
|
|
18
|
+
return convertAdaptableStyleToCSS(cell);
|
|
19
|
+
}
|
|
20
|
+
const resolveSparklinePreviewData = (columnId, getColumnWithColumnId, getRowNodeForIndex) => {
|
|
21
|
+
if (!columnId) {
|
|
22
|
+
return FALLBACK_NUMBER_ARRAY;
|
|
23
|
+
}
|
|
24
|
+
const column = getColumnWithColumnId(columnId);
|
|
25
|
+
if (!column) {
|
|
26
|
+
return FALLBACK_NUMBER_ARRAY;
|
|
27
|
+
}
|
|
28
|
+
for (let row = 0; row < 20; row++) {
|
|
29
|
+
const rowNode = getRowNodeForIndex(row);
|
|
30
|
+
const cellData = rowNode?.data?.[column.field];
|
|
31
|
+
if (Array.isArray(cellData) && cellData.length > 0) {
|
|
32
|
+
return cellData;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
return FALLBACK_NUMBER_ARRAY;
|
|
36
|
+
};
|
|
37
|
+
const buildSparklinePreviewOptions = (sparklineStyle, container, data, width, height) => {
|
|
38
|
+
const persisted = sparklineStyle.options ?? { type: 'line' };
|
|
39
|
+
const sanitized = AdaptableHelper.removeAdaptableObjectPrimitives({
|
|
40
|
+
...persisted,
|
|
41
|
+
});
|
|
42
|
+
const options = resolveSparklineOptionsForRender({
|
|
43
|
+
...sanitized,
|
|
44
|
+
type: sanitized.type ?? 'line',
|
|
45
|
+
container,
|
|
46
|
+
width,
|
|
47
|
+
height,
|
|
48
|
+
data: data,
|
|
49
|
+
});
|
|
50
|
+
// Custom tooltip renderers expect AG Grid row context — use the default tooltip in preview.
|
|
51
|
+
if (options.tooltip?.renderer) {
|
|
52
|
+
const { renderer: _renderer, ...tooltipRest } = options.tooltip;
|
|
53
|
+
options.tooltip = tooltipRest;
|
|
54
|
+
}
|
|
55
|
+
return options;
|
|
56
|
+
};
|
|
57
|
+
/**
|
|
58
|
+
* AG Grid registers chart modules via `AgChartsEnterpriseModule.setup()` when
|
|
59
|
+
* sparklines are enabled. Standalone `AgCharts.createSparkline` needs the same
|
|
60
|
+
* setup — otherwise the settings-panel preview throws "No modules registered".
|
|
61
|
+
*/
|
|
62
|
+
let agChartsPreviewModulesReady = false;
|
|
63
|
+
const ensureAgChartsEnterpriseModules = () => {
|
|
64
|
+
if (agChartsPreviewModulesReady) {
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
AgChartsEnterpriseModule.setup();
|
|
68
|
+
agChartsPreviewModulesReady = true;
|
|
69
|
+
};
|
|
70
|
+
const createSparkline = (options) => {
|
|
71
|
+
ensureAgChartsEnterpriseModules();
|
|
72
|
+
return AgChartsEnterpriseModule.createSparkline(options);
|
|
73
|
+
};
|
|
74
|
+
const SparklinePreviewCanvas = ({ sparklineStyle, columnId }) => {
|
|
75
|
+
const adaptable = useAdaptable();
|
|
76
|
+
const containerRef = React.useRef(null);
|
|
77
|
+
const instanceRef = React.useRef(null);
|
|
78
|
+
const [previewError, setPreviewError] = React.useState(null);
|
|
79
|
+
const canDisplay = adaptable.api.styledColumnApi.canDisplaySparklines();
|
|
80
|
+
const optionsKey = JSON.stringify(sparklineStyle.options ?? {});
|
|
81
|
+
React.useEffect(() => {
|
|
82
|
+
return () => {
|
|
83
|
+
instanceRef.current?.destroy();
|
|
84
|
+
instanceRef.current = null;
|
|
85
|
+
};
|
|
86
|
+
}, []);
|
|
87
|
+
React.useEffect(() => {
|
|
88
|
+
const container = containerRef.current;
|
|
89
|
+
if (!container || !canDisplay) {
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
const data = resolveSparklinePreviewData(columnId, (id) => adaptable.api.columnApi.getColumnWithColumnId(id), (index) => adaptable.api.gridApi.getRowNodeForIndex(index));
|
|
93
|
+
const width = Math.max(container.clientWidth, 200);
|
|
94
|
+
const options = buildSparklinePreviewOptions(sparklineStyle, container, data, width, PREVIEW_HEIGHT);
|
|
95
|
+
try {
|
|
96
|
+
if (!instanceRef.current) {
|
|
97
|
+
instanceRef.current = createSparkline(options);
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
instanceRef.current.update(options);
|
|
101
|
+
}
|
|
102
|
+
setPreviewError(null);
|
|
103
|
+
}
|
|
104
|
+
catch (error) {
|
|
105
|
+
instanceRef.current?.destroy();
|
|
106
|
+
instanceRef.current = null;
|
|
107
|
+
setPreviewError(error instanceof Error ? error.message : 'Unable to render sparkline preview');
|
|
108
|
+
}
|
|
109
|
+
}, [sparklineStyle, columnId, canDisplay, adaptable.api, optionsKey]);
|
|
110
|
+
if (!canDisplay) {
|
|
111
|
+
return _jsx(Tag, { children: "Sparklines module not registered" });
|
|
112
|
+
}
|
|
113
|
+
if (previewError) {
|
|
114
|
+
return _jsx(Tag, { children: previewError });
|
|
115
|
+
}
|
|
116
|
+
return (_jsx("div", { ref: containerRef, className: "ab-SparklinePreviewCanvas", style: { width: '100%', height: PREVIEW_HEIGHT } }));
|
|
117
|
+
};
|
|
118
|
+
export const StyledColumnSparklinePreview = ({ data }) => {
|
|
119
|
+
const sparklineStyle = data.SparklineStyle;
|
|
120
|
+
if (!sparklineStyle) {
|
|
121
|
+
return _jsx(Tag, { children: "No Sparkline Style" });
|
|
122
|
+
}
|
|
123
|
+
const previewCellChrome = getSparklineCellChromeCss(sparklineStyle.Cell);
|
|
124
|
+
return (_jsx(Box, { className: PREVIEW_CELL_CLASS, style: previewCellChrome, children: _jsx(SparklinePreviewCanvas, { sparklineStyle: sparklineStyle, columnId: data.ColumnId }) }));
|
|
125
|
+
};
|
|
126
|
+
export const StyledColumnSparklinePreviewCard = ({ data }) => (_jsxs(Card, { shadow: false, children: [_jsxs(Card.Title, { children: [_jsx(Box, { className: "twa:font-medium", children: "Preview" }), _jsx(Box, { className: "twa:text-xs twa:opacity-70 twa:font-normal twa:max-w-[500px]", children: "Sample sparkline using first non-empty cell in Column (or demo data when unavailable)" })] }), _jsx(Card.Body, { className: "twa:p-1", children: _jsx(StyledColumnSparklinePreview, { data: data }) })] }));
|
|
@@ -44,19 +44,24 @@ export const renderStyledColumnRangesSummary = (data, api) => {
|
|
|
44
44
|
};
|
|
45
45
|
export const StyledColumnWizardRangesSection = (props) => {
|
|
46
46
|
const { data, api } = useOnePageAdaptableWizardContext();
|
|
47
|
-
const
|
|
47
|
+
const column = React.useMemo(() => {
|
|
48
48
|
const columnId = data.ColumnId;
|
|
49
49
|
if (!columnId) {
|
|
50
|
+
return undefined;
|
|
51
|
+
}
|
|
52
|
+
return api.columnApi.getColumnWithColumnId(columnId);
|
|
53
|
+
}, [data.ColumnId, api]);
|
|
54
|
+
const minMaxRangeValues = React.useMemo(() => {
|
|
55
|
+
if (!column) {
|
|
50
56
|
return null;
|
|
51
57
|
}
|
|
52
|
-
const column = api.columnApi.getColumnWithColumnId(columnId);
|
|
53
58
|
return {
|
|
54
59
|
min: api.styledColumnApi.internalApi.getMinValueForNumericColumn(column),
|
|
55
60
|
max: api.styledColumnApi.internalApi.getMaxValueForNumericColumn(column),
|
|
56
61
|
};
|
|
57
|
-
}, [
|
|
62
|
+
}, [column, api]);
|
|
58
63
|
const scope = { ColumnIds: [data.ColumnId] };
|
|
59
|
-
const disabled = !data.ColumnId;
|
|
64
|
+
const disabled = !data.ColumnId || !column;
|
|
60
65
|
// Gradient updates
|
|
61
66
|
const onUpdateGradientStyleRanges = (ranges) => {
|
|
62
67
|
const gradientStyle = {
|
|
@@ -149,5 +154,7 @@ export const StyledColumnWizardRangesSection = (props) => {
|
|
|
149
154
|
}
|
|
150
155
|
props.onChange(newStyledColumn);
|
|
151
156
|
}, [data]);
|
|
152
|
-
return (_jsxs(Box, { children: [data?.GradientStyle && (_jsx(RangesComponent, { disabled: disabled, minMaxRangeValues: minMaxRangeValues, api: api, scope: scope, showZeroCentredTab: true, showRangeDirection: true, zeroCentred: data.GradientStyle.ZeroCentred, onApplyZeroCentred: onApplyGradientZeroCentred, ranges: data.GradientStyle.CellRanges ?? [], rangeValueType: data.GradientStyle?.RangeValueType, onRangeValueTypeChange: handleRangeValueTypeChange, columnComparison: data?.GradientStyle?.ColumnComparison, updateRanges: onUpdateGradientStyleRanges, updateColumnComparison: onUpdateGradientStyleColumnComparison })), data?.PercentBarStyle && (_jsx(RangesComponent, { disabled: disabled, minMaxRangeValues: minMaxRangeValues, api: api, scope: scope, ranges: data.PercentBarStyle?.CellRanges, rangeValueType: data.PercentBarStyle?.RangeValueType, onRangeValueTypeChange: handleRangeValueTypeChange, columnComparison: data?.PercentBarStyle?.ColumnComparison, updateRanges: onUpdatePercentBarStyleRanges, updateColumnComparison: onUpdatePercentBarStyleColumnComparison })), !data.ColumnId && (_jsx(ErrorBox, { className: "twa:mt-2", children:
|
|
157
|
+
return (_jsxs(Box, { children: [data?.GradientStyle && (_jsx(RangesComponent, { disabled: disabled, minMaxRangeValues: minMaxRangeValues, api: api, scope: scope, showZeroCentredTab: true, showRangeDirection: true, zeroCentred: data.GradientStyle.ZeroCentred, onApplyZeroCentred: onApplyGradientZeroCentred, ranges: data.GradientStyle.CellRanges ?? [], rangeValueType: data.GradientStyle?.RangeValueType, onRangeValueTypeChange: handleRangeValueTypeChange, columnComparison: data?.GradientStyle?.ColumnComparison, updateRanges: onUpdateGradientStyleRanges, updateColumnComparison: onUpdateGradientStyleColumnComparison })), data?.PercentBarStyle && (_jsx(RangesComponent, { disabled: disabled, minMaxRangeValues: minMaxRangeValues, api: api, scope: scope, ranges: data.PercentBarStyle?.CellRanges, rangeValueType: data.PercentBarStyle?.RangeValueType, onRangeValueTypeChange: handleRangeValueTypeChange, columnComparison: data?.PercentBarStyle?.ColumnComparison, updateRanges: onUpdatePercentBarStyleRanges, updateColumnComparison: onUpdatePercentBarStyleColumnComparison })), (!data.ColumnId || !column) && (_jsx(ErrorBox, { className: "twa:mt-2", children: !data.ColumnId
|
|
158
|
+
? 'You need to select a column before defining Ranges.'
|
|
159
|
+
: `Column "${data.ColumnId}" was not found in the grid.` }))] }));
|
|
153
160
|
};
|
|
@@ -2,13 +2,9 @@ import * as React from 'react';
|
|
|
2
2
|
import { StyledColumn } from '../../../../AdaptableState/StyledColumnState';
|
|
3
3
|
import { AdaptableApi } from '../../../../types';
|
|
4
4
|
export { renderStyledColumnRangesSummary, StyledColumnWizardRangesSection, } from './StyledColumnWizardRangesSection';
|
|
5
|
+
export declare const getStyledColumnPercentBarStyleViewValues: (data: StyledColumn) => string[];
|
|
5
6
|
/**
|
|
6
7
|
* Compact summary of the *non-range* style properties of a Percent Bar.
|
|
7
|
-
* (Gradient uses `renderStyledColumnGradientStyleSummary`.)
|
|
8
|
-
*
|
|
9
|
-
* Used by:
|
|
10
|
-
* - the wizard's "Style" step `renderSummary`
|
|
11
|
-
* - the Styled Column module's `toView` (read-only summary popup)
|
|
12
8
|
*/
|
|
13
9
|
export declare const renderStyledColumnStyleSummary: (data: StyledColumn, _api?: AdaptableApi) => React.JSX.Element;
|
|
14
10
|
export declare const renderFormatColumnStyleWizardSummary: (data: StyledColumn) => React.JSX.Element;
|
|
@@ -10,55 +10,78 @@ import ArrayExtensions from '../../../../Utilities/Extensions/ArrayExtensions';
|
|
|
10
10
|
import { Box, Flex } from '../../../../components/Flex';
|
|
11
11
|
import Radio, { RadioGroup } from '../../../../components/Radio';
|
|
12
12
|
import { Toggle, ToggleGroup } from '../../../../components/Toggle';
|
|
13
|
-
import {
|
|
13
|
+
import { getCellFontStyleSummaryItems, StyledColumnFontStyleEditor, } from '../StyledColumnSliceStyleEditors';
|
|
14
14
|
import { Card } from '../../../../components/Card';
|
|
15
|
+
import { StyledColumnPercentBarPreviewCard } from './Components/StyledColumnPercentBarPreview';
|
|
15
16
|
// Re-export the Ranges section + summary for legacy import paths.
|
|
16
17
|
export { renderStyledColumnRangesSummary, StyledColumnWizardRangesSection, } from './StyledColumnWizardRangesSection';
|
|
17
18
|
// ---------------------------------------------------------------------------
|
|
18
19
|
// Summary helpers
|
|
19
20
|
// ---------------------------------------------------------------------------
|
|
20
21
|
const formatOriginLabel = (origin) => {
|
|
21
|
-
if (origin == undefined)
|
|
22
|
+
if (origin == undefined) {
|
|
22
23
|
return 'Auto';
|
|
23
|
-
|
|
24
|
+
}
|
|
25
|
+
if (typeof origin === 'number') {
|
|
24
26
|
return `Custom (${origin})`;
|
|
27
|
+
}
|
|
25
28
|
return origin;
|
|
26
29
|
};
|
|
27
|
-
const
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
30
|
+
const formatPercentBarCellTextSummary = (cellText) => cellText
|
|
31
|
+
?.map((t) => (t === 'CellValue' ? 'Cell Value' : 'Percent Value'))
|
|
32
|
+
.join(' + ') ?? '';
|
|
33
|
+
const formatPercentBarToolTipSummary = (toolTipText) => toolTipText
|
|
34
|
+
?.map((t) => (t === 'CellValue' ? 'Cell Value' : 'Percent Value'))
|
|
35
|
+
.join(' + ') ?? '';
|
|
36
|
+
const buildStyledColumnPercentBarStyleSummaryStrings = (pb, options) => {
|
|
37
|
+
const items = [`Origin: ${formatOriginLabel(pb.Origin)}`];
|
|
38
|
+
if (pb.CellText?.length) {
|
|
39
|
+
items.push(`Cell Text: ${formatPercentBarCellTextSummary(pb.CellText)}`);
|
|
40
|
+
items.push(`Cell Text Position: ${pb.CellTextPosition ?? 'Below'}`);
|
|
41
|
+
if (pb.CellTextAlignment != null) {
|
|
42
|
+
items.push(`Cell Text Alignment: ${pb.CellTextAlignment}`);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
else if (options.includeEmptyCellText) {
|
|
46
|
+
items.push('Cell Text: None');
|
|
47
|
+
}
|
|
48
|
+
if (pb.ToolTipText?.length) {
|
|
49
|
+
items.push(`Tooltip: ${formatPercentBarToolTipSummary(pb.ToolTipText)}`);
|
|
50
|
+
}
|
|
51
|
+
else if (options.includeEmptyTooltip) {
|
|
52
|
+
items.push('Tooltip: No Tooltip');
|
|
53
|
+
}
|
|
54
|
+
if (pb.BackColor) {
|
|
55
|
+
items.push(`Back Colour: ${pb.BackColor}`);
|
|
56
|
+
}
|
|
57
|
+
getCellFontStyleSummaryItems(pb.Font).forEach(({ label, value }) => {
|
|
58
|
+
items.push(`${label}: ${value}`);
|
|
59
|
+
});
|
|
60
|
+
return items;
|
|
31
61
|
};
|
|
32
|
-
const
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
62
|
+
export const getStyledColumnPercentBarStyleViewValues = (data) => {
|
|
63
|
+
const pb = data.PercentBarStyle;
|
|
64
|
+
if (!pb) {
|
|
65
|
+
return [];
|
|
66
|
+
}
|
|
67
|
+
return buildStyledColumnPercentBarStyleSummaryStrings(pb, {
|
|
68
|
+
includeEmptyCellText: false,
|
|
69
|
+
includeEmptyTooltip: false,
|
|
70
|
+
});
|
|
36
71
|
};
|
|
37
72
|
/**
|
|
38
73
|
* Compact summary of the *non-range* style properties of a Percent Bar.
|
|
39
|
-
* (Gradient uses `renderStyledColumnGradientStyleSummary`.)
|
|
40
|
-
*
|
|
41
|
-
* Used by:
|
|
42
|
-
* - the wizard's "Style" step `renderSummary`
|
|
43
|
-
* - the Styled Column module's `toView` (read-only summary popup)
|
|
44
74
|
*/
|
|
45
75
|
export const renderStyledColumnStyleSummary = (data, _api) => {
|
|
46
76
|
const pb = data.PercentBarStyle;
|
|
47
77
|
if (!pb) {
|
|
48
78
|
return _jsx(Tag, { children: "No Styling Defined" });
|
|
49
79
|
}
|
|
50
|
-
const
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
parts.push(_jsxs(Box, { className: "twa:mr-2", children: ["Align: ", _jsx(Tag, { children: formatAlignmentLabel(pb.CellTextAlignment) })] }, "align"));
|
|
56
|
-
}
|
|
57
|
-
const fontTags = renderFontStyleSummaryTags(pb.Font);
|
|
58
|
-
if (fontTags) {
|
|
59
|
-
parts.push(_jsxs(Box, { className: "twa:mr-2", children: ["Font: ", fontTags] }, "font"));
|
|
60
|
-
}
|
|
61
|
-
return (_jsx(Flex, { alignItems: "center", className: "twa:flex-wrap", children: parts }));
|
|
80
|
+
const items = buildStyledColumnPercentBarStyleSummaryStrings(pb, {
|
|
81
|
+
includeEmptyCellText: true,
|
|
82
|
+
includeEmptyTooltip: true,
|
|
83
|
+
});
|
|
84
|
+
return (_jsx(Flex, { alignItems: "center", className: "twa:flex-wrap twa:gap-2", children: items.map((item) => (_jsx(Tag, { children: item }, item))) }));
|
|
62
85
|
};
|
|
63
86
|
// Legacy wrapper kept for any external consumers; safe no-op here.
|
|
64
87
|
export const renderFormatColumnStyleWizardSummary = (data) => {
|
|
@@ -170,5 +193,5 @@ export const StyledColumnWizardStyleSection = (props) => {
|
|
|
170
193
|
delete cleaned.Font;
|
|
171
194
|
props.onChange({ ...data, PercentBarStyle: cleaned });
|
|
172
195
|
}
|
|
173
|
-
} }) })] })] }), _jsxs(Card, { shadow: false, className: "twa:mb-3", children: [_jsxs(Card.Title, { children: [_jsx(Box, { className: "twa:font-medium", children: "Cell Style" }), _jsx(Box, { className: "twa:text-xs twa:opacity-70 twa:font-normal twa:max-w-[520px]", children: "Configure Tooltip and Background Colour" })] }), _jsx(Card.Body, { children: _jsxs(FormLayout, { sizes: [...STYLE_FORM_SIZES], children: [_jsxs(FormRow, { label: "Tooltip Display:", children: [_jsx(CheckBox, { disabled: disabled, checked: pb.ToolTipText?.includes('CellValue'), onChange: (checked) => onToolTipTextChanged('CellValue', checked), children: "Cell Value" }), ' ', _jsx(CheckBox, { disabled: disabled, className: "twa:ml-3", checked: pb.ToolTipText?.includes('PercentageValue'), onChange: (checked) => onToolTipTextChanged('PercentageValue', checked), children: "Percent Value" })] }), _jsx(FormRow, { label: `Back ${api.internalApi.getCorrectEnglishVariant('Colour')}:`, children: _jsxs(Flex, { alignItems: "center", children: [_jsx(CheckBox, { disabled: disabled, checked: !!pb.BackColor, onChange: onUseBackColorChanged, className: "twa:mr-2" }), pb.BackColor != undefined && (_jsx(ColorPicker, { disabled: disabled, api: api, value: pb.BackColor, onChange: onBackColorChange }))] }) })] }) })] })] }));
|
|
196
|
+
} }) })] })] }), _jsxs(Card, { shadow: false, className: "twa:mb-3", children: [_jsxs(Card.Title, { children: [_jsx(Box, { className: "twa:font-medium", children: "Cell Style" }), _jsx(Box, { className: "twa:text-xs twa:opacity-70 twa:font-normal twa:max-w-[520px]", children: "Configure Tooltip and Background Colour" })] }), _jsx(Card.Body, { children: _jsxs(FormLayout, { sizes: [...STYLE_FORM_SIZES], children: [_jsxs(FormRow, { label: "Tooltip Display:", children: [_jsx(CheckBox, { disabled: disabled, checked: pb.ToolTipText?.includes('CellValue'), onChange: (checked) => onToolTipTextChanged('CellValue', checked), children: "Cell Value" }), ' ', _jsx(CheckBox, { disabled: disabled, className: "twa:ml-3", checked: pb.ToolTipText?.includes('PercentageValue'), onChange: (checked) => onToolTipTextChanged('PercentageValue', checked), children: "Percent Value" })] }), _jsx(FormRow, { label: `Back ${api.internalApi.getCorrectEnglishVariant('Colour')}:`, children: _jsxs(Flex, { alignItems: "center", children: [_jsx(CheckBox, { disabled: disabled, checked: !!pb.BackColor, onChange: onUseBackColorChanged, className: "twa:mr-2" }), pb.BackColor != undefined && (_jsx(ColorPicker, { disabled: disabled, api: api, value: pb.BackColor, onChange: onBackColorChange }))] }) })] }) })] }), _jsx(StyledColumnPercentBarPreviewCard, { data: data })] }));
|
|
174
197
|
};
|
|
@@ -3,7 +3,7 @@ export const getStatusItemStyle = (systemStatusMessageInfo) => {
|
|
|
3
3
|
const background = UIHelper.getColorByMessageType(systemStatusMessageInfo?.statusType ?? 'Success');
|
|
4
4
|
const color = systemStatusMessageInfo
|
|
5
5
|
? UIHelper.getButtonTextColourForMessageType(systemStatusMessageInfo.statusType)
|
|
6
|
-
: 'var(--ab-color-
|
|
6
|
+
: 'var(--ab-color-primary-foreground)';
|
|
7
7
|
return {
|
|
8
8
|
background,
|
|
9
9
|
color,
|