@report-designer/designer 0.1.0
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/dist/band-metadata.d.ts +8 -0
- package/dist/band-metadata.d.ts.map +1 -0
- package/dist/band-metadata.js +75 -0
- package/dist/band-metadata.js.map +1 -0
- package/dist/component-factory.d.ts +9 -0
- package/dist/component-factory.d.ts.map +1 -0
- package/dist/component-factory.js +141 -0
- package/dist/component-factory.js.map +1 -0
- package/dist/component-palette-model.d.ts +14 -0
- package/dist/component-palette-model.d.ts.map +1 -0
- package/dist/component-palette-model.js +21 -0
- package/dist/component-palette-model.js.map +1 -0
- package/dist/components/Canvas.d.ts +5 -0
- package/dist/components/Canvas.d.ts.map +1 -0
- package/dist/components/Canvas.js +2428 -0
- package/dist/components/Canvas.js.map +1 -0
- package/dist/components/ConditionalFormatManager.d.ts +8 -0
- package/dist/components/ConditionalFormatManager.d.ts.map +1 -0
- package/dist/components/ConditionalFormatManager.js +135 -0
- package/dist/components/ConditionalFormatManager.js.map +1 -0
- package/dist/components/Designer.d.ts +22 -0
- package/dist/components/Designer.d.ts.map +1 -0
- package/dist/components/Designer.js +115 -0
- package/dist/components/Designer.js.map +1 -0
- package/dist/components/ExpressionEditor.d.ts +10 -0
- package/dist/components/ExpressionEditor.d.ts.map +1 -0
- package/dist/components/ExpressionEditor.js +203 -0
- package/dist/components/ExpressionEditor.js.map +1 -0
- package/dist/components/LeftPanel.d.ts +11 -0
- package/dist/components/LeftPanel.d.ts.map +1 -0
- package/dist/components/LeftPanel.js +551 -0
- package/dist/components/LeftPanel.js.map +1 -0
- package/dist/components/PropertyEditor.d.ts +6 -0
- package/dist/components/PropertyEditor.d.ts.map +1 -0
- package/dist/components/PropertyEditor.js +1002 -0
- package/dist/components/PropertyEditor.js.map +1 -0
- package/dist/components/RibbonToolbar.d.ts +3 -0
- package/dist/components/RibbonToolbar.d.ts.map +1 -0
- package/dist/components/RibbonToolbar.js +179 -0
- package/dist/components/RibbonToolbar.js.map +1 -0
- package/dist/components/TextFormatEditor.d.ts +13 -0
- package/dist/components/TextFormatEditor.d.ts.map +1 -0
- package/dist/components/TextFormatEditor.js +199 -0
- package/dist/components/TextFormatEditor.js.map +1 -0
- package/dist/components/TextStyleLibraryDialog.d.ts +8 -0
- package/dist/components/TextStyleLibraryDialog.d.ts.map +1 -0
- package/dist/components/TextStyleLibraryDialog.js +367 -0
- package/dist/components/TextStyleLibraryDialog.js.map +1 -0
- package/dist/components/canvas/DesignerCanvasFrame.d.ts +10 -0
- package/dist/components/canvas/DesignerCanvasFrame.d.ts.map +1 -0
- package/dist/components/canvas/DesignerCanvasFrame.js +22 -0
- package/dist/components/canvas/DesignerCanvasFrame.js.map +1 -0
- package/dist/components/chart/ChartAxesPanel.d.ts +12 -0
- package/dist/components/chart/ChartAxesPanel.d.ts.map +1 -0
- package/dist/components/chart/ChartAxesPanel.js +71 -0
- package/dist/components/chart/ChartAxesPanel.js.map +1 -0
- package/dist/components/chart/ChartDataPanel.d.ts +21 -0
- package/dist/components/chart/ChartDataPanel.d.ts.map +1 -0
- package/dist/components/chart/ChartDataPanel.js +80 -0
- package/dist/components/chart/ChartDataPanel.js.map +1 -0
- package/dist/components/chart/ChartLabelPanel.d.ts +12 -0
- package/dist/components/chart/ChartLabelPanel.d.ts.map +1 -0
- package/dist/components/chart/ChartLabelPanel.js +34 -0
- package/dist/components/chart/ChartLabelPanel.js.map +1 -0
- package/dist/components/chart/ChartLegendPanel.d.ts +12 -0
- package/dist/components/chart/ChartLegendPanel.d.ts.map +1 -0
- package/dist/components/chart/ChartLegendPanel.js +48 -0
- package/dist/components/chart/ChartLegendPanel.js.map +1 -0
- package/dist/components/chart/ChartPropertyPanel.d.ts +26 -0
- package/dist/components/chart/ChartPropertyPanel.d.ts.map +1 -0
- package/dist/components/chart/ChartPropertyPanel.js +119 -0
- package/dist/components/chart/ChartPropertyPanel.js.map +1 -0
- package/dist/components/chart/ChartThemePanel.d.ts +9 -0
- package/dist/components/chart/ChartThemePanel.d.ts.map +1 -0
- package/dist/components/chart/ChartThemePanel.js +21 -0
- package/dist/components/chart/ChartThemePanel.js.map +1 -0
- package/dist/components/chart/ChartTitlePanel.d.ts +10 -0
- package/dist/components/chart/ChartTitlePanel.d.ts.map +1 -0
- package/dist/components/chart/ChartTitlePanel.js +45 -0
- package/dist/components/chart/ChartTitlePanel.js.map +1 -0
- package/dist/components/chart/ChartTypeStylePanel.d.ts +11 -0
- package/dist/components/chart/ChartTypeStylePanel.d.ts.map +1 -0
- package/dist/components/chart/ChartTypeStylePanel.js +37 -0
- package/dist/components/chart/ChartTypeStylePanel.js.map +1 -0
- package/dist/components/chart/ColorPaletteEditor.d.ts +10 -0
- package/dist/components/chart/ColorPaletteEditor.d.ts.map +1 -0
- package/dist/components/chart/ColorPaletteEditor.js +18 -0
- package/dist/components/chart/ColorPaletteEditor.js.map +1 -0
- package/dist/components/chart/chart-options.d.ts +119 -0
- package/dist/components/chart/chart-options.d.ts.map +1 -0
- package/dist/components/chart/chart-options.js +217 -0
- package/dist/components/chart/chart-options.js.map +1 -0
- package/dist/components/dialogs/BandWizardDialog.d.ts +8 -0
- package/dist/components/dialogs/BandWizardDialog.d.ts.map +1 -0
- package/dist/components/dialogs/BandWizardDialog.js +54 -0
- package/dist/components/dialogs/BandWizardDialog.js.map +1 -0
- package/dist/components/dialogs/GroupWizardDialog.d.ts +8 -0
- package/dist/components/dialogs/GroupWizardDialog.d.ts.map +1 -0
- package/dist/components/dialogs/GroupWizardDialog.js +70 -0
- package/dist/components/dialogs/GroupWizardDialog.js.map +1 -0
- package/dist/components/dialogs/JsonDataSourceDialog.d.ts +8 -0
- package/dist/components/dialogs/JsonDataSourceDialog.d.ts.map +1 -0
- package/dist/components/dialogs/JsonDataSourceDialog.js +67 -0
- package/dist/components/dialogs/JsonDataSourceDialog.js.map +1 -0
- package/dist/components/dialogs/PageSetupDialog.d.ts +8 -0
- package/dist/components/dialogs/PageSetupDialog.d.ts.map +1 -0
- package/dist/components/dialogs/PageSetupDialog.js +145 -0
- package/dist/components/dialogs/PageSetupDialog.js.map +1 -0
- package/dist/components/dialogs/dialog-utils.d.ts +6 -0
- package/dist/components/dialogs/dialog-utils.d.ts.map +1 -0
- package/dist/components/dialogs/dialog-utils.js +37 -0
- package/dist/components/dialogs/dialog-utils.js.map +1 -0
- package/dist/components/events/EventEditorDialog.d.ts +43 -0
- package/dist/components/events/EventEditorDialog.d.ts.map +1 -0
- package/dist/components/events/EventEditorDialog.js +271 -0
- package/dist/components/events/EventEditorDialog.js.map +1 -0
- package/dist/components/events/EventScriptEditor.d.ts +41 -0
- package/dist/components/events/EventScriptEditor.d.ts.map +1 -0
- package/dist/components/events/EventScriptEditor.js +140 -0
- package/dist/components/events/EventScriptEditor.js.map +1 -0
- package/dist/components/events/event-editor-utils.d.ts +18 -0
- package/dist/components/events/event-editor-utils.d.ts.map +1 -0
- package/dist/components/events/event-editor-utils.js +66 -0
- package/dist/components/events/event-editor-utils.js.map +1 -0
- package/dist/components/events/event-script-monaco.d.ts +74 -0
- package/dist/components/events/event-script-monaco.d.ts.map +1 -0
- package/dist/components/events/event-script-monaco.js +282 -0
- package/dist/components/events/event-script-monaco.js.map +1 -0
- package/dist/components/events/event-script-templates.d.ts +7 -0
- package/dist/components/events/event-script-templates.d.ts.map +1 -0
- package/dist/components/events/event-script-templates.js +100 -0
- package/dist/components/events/event-script-templates.js.map +1 -0
- package/dist/components/expression/ExpressionMonacoEditor.d.ts +16 -0
- package/dist/components/expression/ExpressionMonacoEditor.d.ts.map +1 -0
- package/dist/components/expression/ExpressionMonacoEditor.js +63 -0
- package/dist/components/expression/ExpressionMonacoEditor.js.map +1 -0
- package/dist/components/expression/InlineExpressionEditor.d.ts +10 -0
- package/dist/components/expression/InlineExpressionEditor.d.ts.map +1 -0
- package/dist/components/expression/InlineExpressionEditor.js +33 -0
- package/dist/components/expression/InlineExpressionEditor.js.map +1 -0
- package/dist/components/expression/expression-monaco.d.ts +34 -0
- package/dist/components/expression/expression-monaco.d.ts.map +1 -0
- package/dist/components/expression/expression-monaco.js +87 -0
- package/dist/components/expression/expression-monaco.js.map +1 -0
- package/dist/components/panels/DesignerLeftPanel.d.ts +11 -0
- package/dist/components/panels/DesignerLeftPanel.d.ts.map +1 -0
- package/dist/components/panels/DesignerLeftPanel.js +8 -0
- package/dist/components/panels/DesignerLeftPanel.js.map +1 -0
- package/dist/components/panels/DesignerPropertyPanel.d.ts +6 -0
- package/dist/components/panels/DesignerPropertyPanel.d.ts.map +1 -0
- package/dist/components/panels/DesignerPropertyPanel.js +441 -0
- package/dist/components/panels/DesignerPropertyPanel.js.map +1 -0
- package/dist/components/panels/PanelSearchBox.d.ts +9 -0
- package/dist/components/panels/PanelSearchBox.d.ts.map +1 -0
- package/dist/components/panels/PanelSearchBox.js +5 -0
- package/dist/components/panels/PanelSearchBox.js.map +1 -0
- package/dist/components/properties/BandPropertyGrid.d.ts +6 -0
- package/dist/components/properties/BandPropertyGrid.d.ts.map +1 -0
- package/dist/components/properties/BandPropertyGrid.js +504 -0
- package/dist/components/properties/BandPropertyGrid.js.map +1 -0
- package/dist/components/properties/BoxStyleEditors.d.ts +59 -0
- package/dist/components/properties/BoxStyleEditors.d.ts.map +1 -0
- package/dist/components/properties/BoxStyleEditors.js +87 -0
- package/dist/components/properties/BoxStyleEditors.js.map +1 -0
- package/dist/components/properties/FontEditor.d.ts +28 -0
- package/dist/components/properties/FontEditor.d.ts.map +1 -0
- package/dist/components/properties/FontEditor.js +22 -0
- package/dist/components/properties/FontEditor.js.map +1 -0
- package/dist/components/ribbon/DesignerRibbon.d.ts +3 -0
- package/dist/components/ribbon/DesignerRibbon.d.ts.map +1 -0
- package/dist/components/ribbon/DesignerRibbon.js +193 -0
- package/dist/components/ribbon/DesignerRibbon.js.map +1 -0
- package/dist/components/richtext/RichTextInlineEditor.d.ts +15 -0
- package/dist/components/richtext/RichTextInlineEditor.d.ts.map +1 -0
- package/dist/components/richtext/RichTextInlineEditor.js +94 -0
- package/dist/components/richtext/RichTextInlineEditor.js.map +1 -0
- package/dist/components/shell/DesignerShell.d.ts +12 -0
- package/dist/components/shell/DesignerShell.d.ts.map +1 -0
- package/dist/components/shell/DesignerShell.js +124 -0
- package/dist/components/shell/DesignerShell.js.map +1 -0
- package/dist/components/shell/DesignerStatusBar.d.ts +3 -0
- package/dist/components/shell/DesignerStatusBar.d.ts.map +1 -0
- package/dist/components/shell/DesignerStatusBar.js +23 -0
- package/dist/components/shell/DesignerStatusBar.js.map +1 -0
- package/dist/components/tree/ReportTree.d.ts +3 -0
- package/dist/components/tree/ReportTree.d.ts.map +1 -0
- package/dist/components/tree/ReportTree.js +17 -0
- package/dist/components/tree/ReportTree.js.map +1 -0
- package/dist/data-source-fields.d.ts +14 -0
- package/dist/data-source-fields.d.ts.map +1 -0
- package/dist/data-source-fields.js +49 -0
- package/dist/data-source-fields.js.map +1 -0
- package/dist/data-source-paths.d.ts +10 -0
- package/dist/data-source-paths.d.ts.map +1 -0
- package/dist/data-source-paths.js +61 -0
- package/dist/data-source-paths.js.map +1 -0
- package/dist/expression/expression-catalog.d.ts +39 -0
- package/dist/expression/expression-catalog.d.ts.map +1 -0
- package/dist/expression/expression-catalog.js +127 -0
- package/dist/expression/expression-catalog.js.map +1 -0
- package/dist/expression/expression-preview.d.ts +11 -0
- package/dist/expression/expression-preview.d.ts.map +1 -0
- package/dist/expression/expression-preview.js +58 -0
- package/dist/expression/expression-preview.js.map +1 -0
- package/dist/expression/expression-validation.d.ts +12 -0
- package/dist/expression/expression-validation.d.ts.map +1 -0
- package/dist/expression/expression-validation.js +85 -0
- package/dist/expression/expression-validation.js.map +1 -0
- package/dist/expression/function-catalog.d.ts +21 -0
- package/dist/expression/function-catalog.d.ts.map +1 -0
- package/dist/expression/function-catalog.js +96 -0
- package/dist/expression/function-catalog.js.map +1 -0
- package/dist/i18n/DesignerI18nProvider.d.ts +11 -0
- package/dist/i18n/DesignerI18nProvider.d.ts.map +1 -0
- package/dist/i18n/DesignerI18nProvider.js +32 -0
- package/dist/i18n/DesignerI18nProvider.js.map +1 -0
- package/dist/i18n/index.d.ts +3 -0
- package/dist/i18n/index.d.ts.map +1 -0
- package/dist/i18n/index.js +2 -0
- package/dist/i18n/index.js.map +1 -0
- package/dist/i18n/messages.d.ts +5 -0
- package/dist/i18n/messages.d.ts.map +1 -0
- package/dist/i18n/messages.js +1383 -0
- package/dist/i18n/messages.js.map +1 -0
- package/dist/index.d.ts +21 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +18 -0
- package/dist/index.js.map +1 -0
- package/dist/page-settings.d.ts +21 -0
- package/dist/page-settings.d.ts.map +1 -0
- package/dist/page-settings.js +66 -0
- package/dist/page-settings.js.map +1 -0
- package/dist/report-structure.d.ts +20 -0
- package/dist/report-structure.d.ts.map +1 -0
- package/dist/report-structure.js +219 -0
- package/dist/report-structure.js.map +1 -0
- package/dist/store/designer-store.d.ts +161 -0
- package/dist/store/designer-store.d.ts.map +1 -0
- package/dist/store/designer-store.js +1851 -0
- package/dist/store/designer-store.js.map +1 -0
- package/dist/table/table-structure.d.ts +50 -0
- package/dist/table/table-structure.d.ts.map +1 -0
- package/dist/table/table-structure.js +251 -0
- package/dist/table/table-structure.js.map +1 -0
- package/dist/text-style-application.d.ts +11 -0
- package/dist/text-style-application.d.ts.map +1 -0
- package/dist/text-style-application.js +135 -0
- package/dist/text-style-application.js.map +1 -0
- package/dist/text-style-bindings.d.ts +16 -0
- package/dist/text-style-bindings.d.ts.map +1 -0
- package/dist/text-style-bindings.js +549 -0
- package/dist/text-style-bindings.js.map +1 -0
- package/package.json +70 -0
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { ColorPicker, Form, Input, InputNumber, Select, Switch } from 'antd';
|
|
4
|
+
import { chartUiText } from './chart-options';
|
|
5
|
+
import { FontEditor } from '../properties/FontEditor';
|
|
6
|
+
import { TextFormatEditor } from '../TextFormatEditor';
|
|
7
|
+
const FORM_LABEL_COL = { span: 8 };
|
|
8
|
+
const FORM_WRAPPER_COL = { span: 16 };
|
|
9
|
+
const DEFAULT_AXIS_TITLE_COLOR = '#111827';
|
|
10
|
+
const DEFAULT_AXIS_LABEL_COLOR = '#4b5563';
|
|
11
|
+
const DEFAULT_AXIS_GRID_COLOR = '#e5e7eb';
|
|
12
|
+
const DEFAULT_AXIS = { visible: true, gridVisible: true };
|
|
13
|
+
function mergeAxis(value, key, updates) {
|
|
14
|
+
const current = value[key] ?? DEFAULT_AXIS;
|
|
15
|
+
return { ...value, [key]: { ...DEFAULT_AXIS, ...current, ...updates } };
|
|
16
|
+
}
|
|
17
|
+
const PanelGroup = ({ children, nested = false, title }) => (_jsxs("div", { style: { borderTop: nested ? '1px dashed #f0f0f0' : '1px solid #f0f0f0', paddingTop: 8, marginTop: 8 }, children: [_jsx("div", { style: { color: nested ? '#6b7280' : '#4b5563', fontSize: 12, fontWeight: 600, marginBottom: 8 }, children: title }), children] }));
|
|
18
|
+
function AxisGroup({ axisKey, axisLabel, axis, onChange, reportFontOptions, t, }) {
|
|
19
|
+
const ui = React.useMemo(() => chartUiText(t), [t]);
|
|
20
|
+
const fontLabels = React.useMemo(() => ({
|
|
21
|
+
fontFamily: t('fontFamily'),
|
|
22
|
+
fontSize: axisKey === 'x' ? ui.xTitleFontSize : ui.yTitleFontSize,
|
|
23
|
+
textColor: axisKey === 'x' ? ui.xTitleColor : ui.yTitleColor,
|
|
24
|
+
bold: t('bold'),
|
|
25
|
+
italic: t('italic'),
|
|
26
|
+
underline: t('underline'),
|
|
27
|
+
strike: t('strike'),
|
|
28
|
+
}), [axisKey, t, ui]);
|
|
29
|
+
const labelFontLabels = React.useMemo(() => ({
|
|
30
|
+
fontFamily: t('fontFamily'),
|
|
31
|
+
fontSize: axisKey === 'x' ? ui.xLabelFontSize : ui.yLabelFontSize,
|
|
32
|
+
textColor: axisKey === 'x' ? ui.xLabelColor : ui.yLabelColor,
|
|
33
|
+
bold: t('bold'),
|
|
34
|
+
italic: t('italic'),
|
|
35
|
+
underline: t('underline'),
|
|
36
|
+
strike: t('strike'),
|
|
37
|
+
}), [axisKey, t, ui]);
|
|
38
|
+
const visibleLabel = axisKey === 'x' ? ui.xAxisVisible : ui.yAxisVisible;
|
|
39
|
+
const titleLabel = axisKey === 'x' ? ui.xAxisTitle : ui.yAxisTitle;
|
|
40
|
+
const gridVisibleLabel = axisKey === 'x' ? ui.xGridVisible : ui.yGridVisible;
|
|
41
|
+
const gridColorLabel = axisKey === 'x' ? ui.xGridColor : ui.yGridColor;
|
|
42
|
+
const axisGroupTitle = axisKey === 'x' ? ui.xAxisGroup : axisKey === 'y' ? ui.yAxisGroup : ui.rightYAxisGroup;
|
|
43
|
+
const shortFontLabels = React.useMemo(() => ({
|
|
44
|
+
fontFamily: ui.familyShort,
|
|
45
|
+
fontSize: ui.sizeShort,
|
|
46
|
+
textColor: ui.colorShort,
|
|
47
|
+
bold: t('bold'),
|
|
48
|
+
italic: t('italic'),
|
|
49
|
+
underline: t('underline'),
|
|
50
|
+
strike: t('strike'),
|
|
51
|
+
}), [t, ui]);
|
|
52
|
+
return (_jsxs(PanelGroup, { title: axisGroupTitle, children: [_jsx(Form.Item, { label: ui.visibleShort, children: _jsx(Switch, { "aria-label": `${axisLabel} visible`, size: "small", checked: axis.visible, onChange: checked => onChange({ visible: checked }) }) }), _jsxs(PanelGroup, { title: ui.axisTitleGroup, nested: true, children: [_jsx(Form.Item, { label: ui.textShort, children: _jsx(Input, { "aria-label": titleLabel, value: axis.title ?? '', onChange: event => onChange({ title: event.target.value }), size: "small" }) }), _jsx(FontEditor, { value: { ...(axis.titleFont ?? {}), color: axis.titleColor ?? axis.titleFont?.color ?? DEFAULT_AXIS_TITLE_COLOR }, onChange: next => onChange({ titleColor: next.color, titleFont: { ...(axis.titleFont ?? {}), ...next } }), reportFontOptions: reportFontOptions, fields: ['size', 'color', 'bold'], sizeRange: [6, 48], labels: shortFontLabels, ariaLabels: fontLabels })] }), _jsxs(PanelGroup, { title: ui.axisLabelGroup, nested: true, children: [_jsx(FontEditor, { value: { ...(axis.labelFont ?? {}), color: axis.labelColor ?? axis.labelFont?.color ?? DEFAULT_AXIS_LABEL_COLOR }, onChange: next => onChange({ labelColor: next.color, labelFont: { ...(axis.labelFont ?? {}), ...next } }), reportFontOptions: reportFontOptions, fields: ['size', 'color', 'bold'], sizeRange: [6, 48], labels: shortFontLabels, ariaLabels: labelFontLabels }), _jsx(Form.Item, { label: ui.rotateShort, children: _jsx(InputNumber, { "aria-label": t('chartAxisLabelRotation'), value: axis.labelRotate ?? 0, min: -90, max: 90, size: "small", style: { width: '100%' }, onChange: rotate => onChange({ labelRotate: rotate ?? 0 }) }) })] }), _jsxs(PanelGroup, { title: ui.axisGridGroup, nested: true, children: [_jsx(Form.Item, { label: ui.visibleShort, children: _jsx(Switch, { "aria-label": gridVisibleLabel, size: "small", checked: axis.gridVisible ?? true, onChange: checked => onChange({ gridVisible: checked }) }) }), _jsx(Form.Item, { label: ui.colorShort, children: _jsx(ColorPicker, { "aria-label": gridColorLabel, size: "small", value: axis.gridColor ?? DEFAULT_AXIS_GRID_COLOR, onChange: color => onChange({ gridColor: color.toHexString() }) }) })] }), _jsxs(PanelGroup, { title: ui.axisScaleGroup, nested: true, children: [_jsx(Form.Item, { label: ui.minShort, children: _jsx(InputNumber, { "aria-label": `${axisLabel} min`, value: axis.min ?? undefined, size: "small", style: { width: '100%' }, onChange: min => onChange({ min: min ?? undefined }) }) }), _jsx(Form.Item, { label: ui.maxShort, children: _jsx(InputNumber, { "aria-label": `${axisLabel} max`, value: axis.max ?? undefined, size: "small", style: { width: '100%' }, onChange: max => onChange({ max: max ?? undefined }) }) })] }), _jsx(PanelGroup, { title: ui.axisFormatGroup, nested: true, children: _jsx(TextFormatEditor, { value: axis.format, onChange: format => onChange({ format }), labelWidth: 76, size: "small" }) })] }));
|
|
53
|
+
}
|
|
54
|
+
function RadialAxisGroup({ axis, onChange, t, }) {
|
|
55
|
+
const ui = React.useMemo(() => chartUiText(t), [t]);
|
|
56
|
+
return (_jsxs(_Fragment, { children: [_jsx(Form.Item, { label: ui.radarAxisCount, children: _jsx(InputNumber, { "aria-label": "radar axis count", value: axis.axisCount ?? 5, min: 3, max: 12, size: "small", style: { width: '100%' }, onChange: axisCount => onChange({ axisCount: axisCount ?? 5 }) }) }), _jsx(Form.Item, { label: ui.radarAxisShape, children: _jsx(Select, { "aria-label": "radar axis shape", value: axis.shape ?? 'polygon', size: "small", options: [
|
|
57
|
+
{ value: 'polygon', label: t('chartRadarPolygon') },
|
|
58
|
+
{ value: 'circle', label: t('chartRadarCircle') },
|
|
59
|
+
], onChange: shape => onChange({ shape }) }) })] }));
|
|
60
|
+
}
|
|
61
|
+
export const ChartAxesPanel = React.memo(({ capabilities, onChange, reportFontOptions, t, value }) => {
|
|
62
|
+
const ui = React.useMemo(() => chartUiText(t), [t]);
|
|
63
|
+
const x = value.x ?? DEFAULT_AXIS;
|
|
64
|
+
const y = value.y ?? DEFAULT_AXIS;
|
|
65
|
+
const rightY = value.rightY ?? DEFAULT_AXIS;
|
|
66
|
+
const updateX = React.useCallback((updates) => onChange(mergeAxis(value, 'x', updates)), [onChange, value]);
|
|
67
|
+
const updateY = React.useCallback((updates) => onChange(mergeAxis(value, 'y', updates)), [onChange, value]);
|
|
68
|
+
const updateRightY = React.useCallback((updates) => onChange(mergeAxis(value, 'rightY', updates)), [onChange, value]);
|
|
69
|
+
return (_jsxs(Form, { size: "small", labelCol: FORM_LABEL_COL, wrapperCol: FORM_WRAPPER_COL, children: [capabilities.axes === 'radial' ? (_jsxs(_Fragment, { children: [_jsx(RadialAxisGroup, { axis: x, onChange: updateX, t: t }), _jsx(Form.Item, { label: ui.radarVisible, children: _jsx(Switch, { "aria-label": "radar visible", size: "small", checked: x.visible, onChange: checked => updateX({ visible: checked }) }) })] })) : (_jsxs(_Fragment, { children: [_jsx(AxisGroup, { axisKey: "x", axis: x, onChange: updateX, reportFontOptions: reportFontOptions, t: t, axisLabel: "X" }), _jsx(AxisGroup, { axisKey: "y", axis: y, onChange: updateY, reportFontOptions: reportFontOptions, t: t, axisLabel: "Y" })] })), capabilities.axes === 'rightY' ? (_jsx(AxisGroup, { axisKey: "rightY", axis: rightY, onChange: updateRightY, reportFontOptions: reportFontOptions, t: t, axisLabel: "Right Y" })) : null] }));
|
|
70
|
+
});
|
|
71
|
+
//# sourceMappingURL=ChartAxesPanel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChartAxesPanel.js","sourceRoot":"","sources":["../../../src/components/chart/ChartAxesPanel.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { ChartBinding, ChartCapabilities, DataSource } from '@report-designer/core';
|
|
3
|
+
import { type ChartPanelT } from './chart-options';
|
|
4
|
+
/**
|
|
5
|
+
* 数据绑定面板。按能力矩阵适配维度/度量槽位:
|
|
6
|
+
* - dimensions: single(1 维度) / dual(2 维度,如 scatter/heatmap/sankey) / hierarchical(有序多字段,如 treeMap)
|
|
7
|
+
* - measures: single(1 度量) / multi(多度量,每度量一个系列) / dualAxis(2 度量带 left/right)
|
|
8
|
+
* - series: 支持显式系列字段时优先使用字段分系列;未设置时多度量仍可按度量名生成系列。
|
|
9
|
+
*/
|
|
10
|
+
export declare const ChartDataPanel: React.FC<{
|
|
11
|
+
binding?: ChartBinding;
|
|
12
|
+
capabilities: ChartCapabilities;
|
|
13
|
+
dataSourceOptions: Array<{
|
|
14
|
+
value: string;
|
|
15
|
+
label: string;
|
|
16
|
+
}>;
|
|
17
|
+
dataSourceDefinitions: DataSource[];
|
|
18
|
+
onChange: (binding: ChartBinding) => void;
|
|
19
|
+
t: ChartPanelT;
|
|
20
|
+
}>;
|
|
21
|
+
//# sourceMappingURL=ChartDataPanel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChartDataPanel.d.ts","sourceRoot":"","sources":["../../../src/components/chart/ChartDataPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,KAAK,EAAsB,YAAY,EAAE,iBAAiB,EAAgB,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAC3H,OAAO,EAAyB,KAAK,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAY1E;;;;;GAKG;AACH,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC;IACpC,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,YAAY,EAAE,iBAAiB,CAAC;IAChC,iBAAiB,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC3D,qBAAqB,EAAE,UAAU,EAAE,CAAC;IACpC,QAAQ,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,IAAI,CAAC;IAC1C,CAAC,EAAE,WAAW,CAAC;CAChB,CA+NC,CAAC"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { Button, Form, Select, Space } from 'antd';
|
|
4
|
+
import { MinusCircleOutlined, PlusOutlined } from '@ant-design/icons';
|
|
5
|
+
import { chartAggregateOptions } from './chart-options';
|
|
6
|
+
import { getFieldsForPath } from '../../data-source-paths';
|
|
7
|
+
const FORM_LABEL_COL = { span: 8 };
|
|
8
|
+
const FORM_WRAPPER_COL = { span: 16 };
|
|
9
|
+
const EMPTY_BINDING = {
|
|
10
|
+
dataSourceId: '',
|
|
11
|
+
dimensions: [],
|
|
12
|
+
measures: [],
|
|
13
|
+
sort: [],
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* 数据绑定面板。按能力矩阵适配维度/度量槽位:
|
|
17
|
+
* - dimensions: single(1 维度) / dual(2 维度,如 scatter/heatmap/sankey) / hierarchical(有序多字段,如 treeMap)
|
|
18
|
+
* - measures: single(1 度量) / multi(多度量,每度量一个系列) / dualAxis(2 度量带 left/right)
|
|
19
|
+
* - series: 支持显式系列字段时优先使用字段分系列;未设置时多度量仍可按度量名生成系列。
|
|
20
|
+
*/
|
|
21
|
+
export const ChartDataPanel = React.memo(({ binding = EMPTY_BINDING, capabilities, dataSourceDefinitions, dataSourceOptions, onChange, t }) => {
|
|
22
|
+
const fields = React.useMemo(() => getFieldsForPath(dataSourceDefinitions, binding.dataSourceId), [binding.dataSourceId, dataSourceDefinitions]);
|
|
23
|
+
const fieldOptions = React.useMemo(() => fields.map(field => ({ value: field.name, label: field.label || field.name })), [fields]);
|
|
24
|
+
const numberFieldOptions = React.useMemo(() => fields.filter(field => field.type === 'number').map(field => ({ value: field.name, label: field.label || field.name })), [fields]);
|
|
25
|
+
const aggregateOptions = React.useMemo(() => chartAggregateOptions(t), [t]);
|
|
26
|
+
const valueFieldOptions = numberFieldOptions.length ? numberFieldOptions : fieldOptions;
|
|
27
|
+
const supportsSeriesField = capabilities.series === 'fieldOrMeasureNames';
|
|
28
|
+
const update = React.useCallback((updates) => {
|
|
29
|
+
onChange({ ...EMPTY_BINDING, ...binding, ...updates });
|
|
30
|
+
}, [binding, onChange]);
|
|
31
|
+
const dimensions = binding.dimensions ?? [];
|
|
32
|
+
const measures = binding.measures ?? [];
|
|
33
|
+
const handleDataSourceChange = React.useCallback((dataSourceId) => {
|
|
34
|
+
const dsFields = getFieldsForPath(dataSourceDefinitions, dataSourceId);
|
|
35
|
+
const firstDim = dsFields.find(field => field.type !== 'number') ?? dsFields[0];
|
|
36
|
+
const firstMeasure = dsFields.find(field => field.type === 'number') ?? dsFields[1] ?? dsFields[0];
|
|
37
|
+
const initialDimensions = capabilities.dimensions === 'dual'
|
|
38
|
+
? (firstDim ? [{ field: firstDim.name }] : [])
|
|
39
|
+
: capabilities.dimensions === 'hierarchical'
|
|
40
|
+
? (firstDim ? [{ field: firstDim.name }] : [])
|
|
41
|
+
: (firstDim ? [{ field: firstDim.name }] : []);
|
|
42
|
+
const initialMeasures = firstMeasure ? [{ field: firstMeasure.name, aggregation: 'sum' }] : [];
|
|
43
|
+
if (capabilities.measures === 'dualAxis' && initialMeasures[0]) {
|
|
44
|
+
initialMeasures.push({ ...initialMeasures[0], axis: 'right' });
|
|
45
|
+
}
|
|
46
|
+
update({
|
|
47
|
+
dataSourceId: dataSourceId ?? '',
|
|
48
|
+
arrayPath: dataSourceId ?? '',
|
|
49
|
+
dimensions: initialDimensions,
|
|
50
|
+
seriesField: undefined,
|
|
51
|
+
measures: initialMeasures,
|
|
52
|
+
});
|
|
53
|
+
}, [capabilities, dataSourceDefinitions, update]);
|
|
54
|
+
const updateDimension = (index, field) => {
|
|
55
|
+
const next = [...dimensions];
|
|
56
|
+
if (field)
|
|
57
|
+
next[index] = { ...next[index], field };
|
|
58
|
+
else
|
|
59
|
+
next.splice(index, 1);
|
|
60
|
+
update({ dimensions: next });
|
|
61
|
+
};
|
|
62
|
+
const addDimension = () => update({ dimensions: [...dimensions, { field: '' }] });
|
|
63
|
+
const updateMeasure = (index, patch) => {
|
|
64
|
+
const next = measures.map((m, i) => (i === index ? { ...m, ...patch } : m));
|
|
65
|
+
update({ measures: next });
|
|
66
|
+
};
|
|
67
|
+
const addMeasure = () => {
|
|
68
|
+
const next = [...measures, { field: '', aggregation: 'sum' }];
|
|
69
|
+
update({ measures: next });
|
|
70
|
+
};
|
|
71
|
+
const removeMeasure = (index) => update({ measures: measures.filter((_, i) => i !== index) });
|
|
72
|
+
const dimensionLabel = capabilities.dimensions === 'dual'
|
|
73
|
+
? (t('chartXField') || 'X')
|
|
74
|
+
: capabilities.dimensions === 'hierarchical'
|
|
75
|
+
? t('chartCategoryField')
|
|
76
|
+
: t('chartCategoryField');
|
|
77
|
+
const secondDimensionLabel = t('chartYField') || 'Y';
|
|
78
|
+
return (_jsxs(Form, { size: "small", labelCol: FORM_LABEL_COL, wrapperCol: FORM_WRAPPER_COL, children: [_jsx(Form.Item, { label: t('chartDataSource'), children: _jsx(Select, { "aria-label": t('chartDataSource'), value: binding.dataSourceId || undefined, onChange: handleDataSourceChange, allowClear: true, showSearch: true, size: "small", placeholder: t('chooseDataSource'), options: dataSourceOptions, virtual: false }) }), _jsx(Form.Item, { label: dimensionLabel, children: _jsx(Select, { "aria-label": dimensionLabel, value: dimensions[0]?.field, onChange: field => updateDimension(0, field), size: "small", options: fieldOptions, allowClear: true, virtual: false }) }), capabilities.dimensions === 'dual' ? (_jsx(Form.Item, { label: secondDimensionLabel, children: _jsx(Select, { "aria-label": secondDimensionLabel, value: dimensions[1]?.field, onChange: field => updateDimension(1, field), size: "small", options: fieldOptions, allowClear: true, virtual: false }) })) : null, capabilities.dimensions === 'hierarchical' ? (dimensions.slice(1).map((dim, i) => (_jsx(Form.Item, { label: `${t('chartCategoryField')} ${i + 2}`, children: _jsx(Space.Compact, { style: { width: '100%' }, children: _jsx(Select, { "aria-label": `${t('chartCategoryField')} ${i + 2}`, value: dimensions[i + 1]?.field, onChange: field => updateDimension(i + 1, field), size: "small", options: fieldOptions, allowClear: true, virtual: false, style: { flex: 1 } }) }) }, `hier-${i}`)))) : null, capabilities.dimensions === 'hierarchical' ? (_jsx(Form.Item, { wrapperCol: { offset: 8, span: 16 }, children: _jsx(Button, { size: "small", type: "dashed", icon: _jsx(PlusOutlined, {}), onClick: addDimension, block: true, children: t('chartCategoryField') }) })) : null, supportsSeriesField ? (_jsx(Form.Item, { label: t('chartSeriesField'), children: _jsx(Select, { "aria-label": t('chartSeriesField'), value: binding.seriesField || undefined, onChange: field => update({ seriesField: field }), size: "small", options: fieldOptions, allowClear: true, virtual: false }) })) : null, capabilities.measures === 'single' ? (_jsxs(_Fragment, { children: [_jsx(Form.Item, { label: t('chartValueField'), children: _jsx(Select, { "aria-label": t('chartValueField'), value: measures[0]?.field, onChange: field => update({ measures: field ? [{ field, aggregation: measures[0]?.aggregation ?? 'sum' }] : [] }), size: "small", options: valueFieldOptions, allowClear: true, virtual: false }) }), _jsx(Form.Item, { label: t('chartAggregate'), children: _jsx(Select, { "aria-label": t('chartAggregate'), value: measures[0]?.aggregation ?? 'sum', onChange: (agg) => update({ measures: measures.map((m, i) => i === 0 ? { ...m, aggregation: agg } : m) }), size: "small", options: aggregateOptions, virtual: false }) })] })) : (measures.map((measure, index) => (_jsxs(React.Fragment, { children: [_jsx(Form.Item, { label: capabilities.measures === 'dualAxis' ? (index === 0 ? t('chartValueField') : t('chartValueField') + ' 2') : `${t('chartValueField')} ${index + 1}`, children: _jsxs(Space.Compact, { style: { width: '100%' }, children: [_jsx(Select, { "aria-label": `${t('chartValueField')} ${index + 1}`, value: measure.field, onChange: field => updateMeasure(index, { field }), size: "small", options: valueFieldOptions, allowClear: true, virtual: false, style: { flex: 1 } }), capabilities.measures === 'multi' ? (_jsx(Button, { "aria-label": `${t('chartValueField')} ${index + 1} remove`, icon: _jsx(MinusCircleOutlined, {}), size: "small", onClick: () => removeMeasure(index), disabled: measures.length <= 1 })) : null] }) }), _jsx(Form.Item, { label: t('chartAggregate'), children: _jsx(Select, { "aria-label": `${t('chartAggregate')} ${index + 1}`, value: measure.aggregation ?? 'sum', onChange: (agg) => updateMeasure(index, { aggregation: agg }), size: "small", options: aggregateOptions, virtual: false }) })] }, `measure-${index}`)))), capabilities.measures === 'multi' ? (_jsx(Form.Item, { wrapperCol: { offset: 8, span: 16 }, children: _jsx(Button, { size: "small", type: "dashed", icon: _jsx(PlusOutlined, {}), onClick: addMeasure, block: true, children: t('chartValueField') }) })) : null] }));
|
|
79
|
+
});
|
|
80
|
+
//# sourceMappingURL=ChartDataPanel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChartDataPanel.js","sourceRoot":"","sources":["../../../src/components/chart/ChartDataPanel.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,EAAE,IAAI,EAAS,MAAM,EAAE,KAAK,EAAE,MAAM,MAAM,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtE,OAAO,EAAE,qBAAqB,EAAoB,MAAM,iBAAiB,CAAC;AAC1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE3D,MAAM,cAAc,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;AACnC,MAAM,gBAAgB,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;AACtC,MAAM,aAAa,GAAiB;IAClC,YAAY,EAAE,EAAE;IAChB,UAAU,EAAE,EAAE;IACd,QAAQ,EAAE,EAAE;IACZ,IAAI,EAAE,EAAE;CACT,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,cAAc,GAOtB,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,GAAG,aAAa,EAAE,YAAY,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE;IACnH,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAC1B,GAAG,EAAE,CAAC,gBAAgB,CAAC,qBAAqB,EAAE,OAAO,CAAC,YAAY,CAAC,EACnE,CAAC,OAAO,CAAC,YAAY,EAAE,qBAAqB,CAAC,CAC9C,CAAC;IACF,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAChC,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,EACpF,CAAC,MAAM,CAAC,CACT,CAAC;IACF,MAAM,kBAAkB,GAAG,KAAK,CAAC,OAAO,CACtC,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,EAC7H,CAAC,MAAM,CAAC,CACT,CAAC;IACF,MAAM,gBAAgB,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5E,MAAM,iBAAiB,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,YAAY,CAAC;IACxF,MAAM,mBAAmB,GAAG,YAAY,CAAC,MAAM,KAAK,qBAAqB,CAAC;IAC1E,MAAM,MAAM,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,OAA8B,EAAE,EAAE;QAClE,QAAQ,CAAC,EAAE,GAAG,aAAa,EAAE,GAAG,OAAO,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IACzD,CAAC,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;IAExB,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC;IAC5C,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC;IAExC,MAAM,sBAAsB,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,YAAqB,EAAE,EAAE;QACzE,MAAM,QAAQ,GAAG,gBAAgB,CAAC,qBAAqB,EAAE,YAAY,CAAC,CAAC;QACvE,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC;QAChF,MAAM,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC;QACnG,MAAM,iBAAiB,GAAG,YAAY,CAAC,UAAU,KAAK,MAAM;YAC1D,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9C,CAAC,CAAC,YAAY,CAAC,UAAU,KAAK,cAAc;gBAC1C,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC9C,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACnD,MAAM,eAAe,GAAmB,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,YAAY,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/G,IAAI,YAAY,CAAC,QAAQ,KAAK,UAAU,IAAI,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/D,eAAe,CAAC,IAAI,CAAC,EAAE,GAAG,eAAe,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QACjE,CAAC;QACD,MAAM,CAAC;YACL,YAAY,EAAE,YAAY,IAAI,EAAE;YAChC,SAAS,EAAE,YAAY,IAAI,EAAE;YAC7B,UAAU,EAAE,iBAAiB;YAC7B,WAAW,EAAE,SAAS;YACtB,QAAQ,EAAE,eAAe;SAC1B,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,YAAY,EAAE,qBAAqB,EAAE,MAAM,CAAC,CAAC,CAAC;IAElD,MAAM,eAAe,GAAG,CAAC,KAAa,EAAE,KAAyB,EAAE,EAAE;QACnE,MAAM,IAAI,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC;QAC7B,IAAI,KAAK;YAAE,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC;;YAC9C,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAC3B,MAAM,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/B,CAAC,CAAC;IACF,MAAM,YAAY,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,CAAC,GAAG,UAAU,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;IAElF,MAAM,aAAa,GAAG,CAAC,KAAa,EAAE,KAA4B,EAAE,EAAE;QACpE,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5E,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7B,CAAC,CAAC;IACF,MAAM,UAAU,GAAG,GAAG,EAAE;QACtB,MAAM,IAAI,GAAmB,CAAC,GAAG,QAAQ,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC;QAC9E,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7B,CAAC,CAAC;IACF,MAAM,aAAa,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC,EAAE,CAAC,CAAC;IAEtG,MAAM,cAAc,GAAG,YAAY,CAAC,UAAU,KAAK,MAAM;QACvD,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC;QAC3B,CAAC,CAAC,YAAY,CAAC,UAAU,KAAK,cAAc;YAC1C,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC;YACzB,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC;IAC9B,MAAM,oBAAoB,GAAG,CAAC,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC;IAErD,OAAO,CACL,MAAC,IAAI,IAAC,IAAI,EAAC,OAAO,EAAC,QAAQ,EAAE,cAAc,EAAE,UAAU,EAAE,gBAAgB,aACvE,KAAC,IAAI,CAAC,IAAI,IAAC,KAAK,EAAE,CAAC,CAAC,iBAAiB,CAAC,YACpC,KAAC,MAAM,kBACO,CAAC,CAAC,iBAAiB,CAAC,EAChC,KAAK,EAAE,OAAO,CAAC,YAAY,IAAI,SAAS,EACxC,QAAQ,EAAE,sBAAsB,EAChC,UAAU,QACV,UAAU,QACV,IAAI,EAAC,OAAO,EACZ,WAAW,EAAE,CAAC,CAAC,kBAAkB,CAAC,EAClC,OAAO,EAAE,iBAAiB,EAC1B,OAAO,EAAE,KAAK,GACd,GACQ,EAGZ,KAAC,IAAI,CAAC,IAAI,IAAC,KAAK,EAAE,cAAc,YAC9B,KAAC,MAAM,kBACO,cAAc,EAC1B,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,EAC3B,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,EAAE,KAAK,CAAC,EAC5C,IAAI,EAAC,OAAO,EACZ,OAAO,EAAE,YAAY,EACrB,UAAU,QACV,OAAO,EAAE,KAAK,GACd,GACQ,EACX,YAAY,CAAC,UAAU,KAAK,MAAM,CAAC,CAAC,CAAC,CACpC,KAAC,IAAI,CAAC,IAAI,IAAC,KAAK,EAAE,oBAAoB,YACpC,KAAC,MAAM,kBACO,oBAAoB,EAChC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,EAC3B,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,EAAE,KAAK,CAAC,EAC5C,IAAI,EAAC,OAAO,EACZ,OAAO,EAAE,YAAY,EACrB,UAAU,QACV,OAAO,EAAE,KAAK,GACd,GACQ,CACb,CAAC,CAAC,CAAC,IAAI,EACP,YAAY,CAAC,UAAU,KAAK,cAAc,CAAC,CAAC,CAAC,CAC5C,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAClC,KAAC,IAAI,CAAC,IAAI,IAAmB,KAAK,EAAE,GAAG,CAAC,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,YACvE,KAAC,KAAK,CAAC,OAAO,IAAC,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,YACrC,KAAC,MAAM,kBACO,GAAG,CAAC,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EACjD,KAAK,EAAE,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAC/B,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,EAChD,IAAI,EAAC,OAAO,EACZ,OAAO,EAAE,YAAY,EACrB,UAAU,QACV,OAAO,EAAE,KAAK,EACd,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,GAClB,GACY,IAZF,QAAQ,CAAC,EAAE,CAaf,CACb,CAAC,CACH,CAAC,CAAC,CAAC,IAAI,EACP,YAAY,CAAC,UAAU,KAAK,cAAc,CAAC,CAAC,CAAC,CAC5C,KAAC,IAAI,CAAC,IAAI,IAAC,UAAU,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,YAC5C,KAAC,MAAM,IAAC,IAAI,EAAC,OAAO,EAAC,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAE,KAAC,YAAY,KAAG,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,kBACpF,CAAC,CAAC,oBAAoB,CAAC,GACjB,GACC,CACb,CAAC,CAAC,CAAC,IAAI,EACP,mBAAmB,CAAC,CAAC,CAAC,CACrB,KAAC,IAAI,CAAC,IAAI,IAAC,KAAK,EAAE,CAAC,CAAC,kBAAkB,CAAC,YACrC,KAAC,MAAM,kBACO,CAAC,CAAC,kBAAkB,CAAC,EACjC,KAAK,EAAE,OAAO,CAAC,WAAW,IAAI,SAAS,EACvC,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,EACjD,IAAI,EAAC,OAAO,EACZ,OAAO,EAAE,YAAY,EACrB,UAAU,QACV,OAAO,EAAE,KAAK,GACd,GACQ,CACb,CAAC,CAAC,CAAC,IAAI,EAGP,YAAY,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,CACpC,8BACE,KAAC,IAAI,CAAC,IAAI,IAAC,KAAK,EAAE,CAAC,CAAC,iBAAiB,CAAC,YACpC,KAAC,MAAM,kBACO,CAAC,CAAC,iBAAiB,CAAC,EAChC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EACzB,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,WAAW,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EACjH,IAAI,EAAC,OAAO,EACZ,OAAO,EAAE,iBAAiB,EAC1B,UAAU,QACV,OAAO,EAAE,KAAK,GACd,GACQ,EACZ,KAAC,IAAI,CAAC,IAAI,IAAC,KAAK,EAAE,CAAC,CAAC,gBAAgB,CAAC,YACnC,KAAC,MAAM,kBACO,CAAC,CAAC,gBAAgB,CAAC,EAC/B,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,WAAW,IAAI,KAAK,EACxC,QAAQ,EAAE,CAAC,GAAuB,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAC7H,IAAI,EAAC,OAAO,EACZ,OAAO,EAAE,gBAAgB,EACzB,OAAO,EAAE,KAAK,GACd,GACQ,IACX,CACJ,CAAC,CAAC,CAAC,CACF,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAC/B,MAAC,KAAK,CAAC,QAAQ,eACb,KAAC,IAAI,CAAC,IAAI,IAAC,KAAK,EAAE,YAAY,CAAC,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,iBAAiB,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,YAClK,MAAC,KAAK,CAAC,OAAO,IAAC,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,aACrC,KAAC,MAAM,kBACO,GAAG,CAAC,CAAC,iBAAiB,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,EAClD,KAAK,EAAE,OAAO,CAAC,KAAK,EACpB,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,EAClD,IAAI,EAAC,OAAO,EACZ,OAAO,EAAE,iBAAiB,EAC1B,UAAU,QACV,OAAO,EAAE,KAAK,EACd,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,GAClB,EACD,YAAY,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,CACnC,KAAC,MAAM,kBACO,GAAG,CAAC,CAAC,iBAAiB,CAAC,IAAI,KAAK,GAAG,CAAC,SAAS,EACzD,IAAI,EAAE,KAAC,mBAAmB,KAAG,EAC7B,IAAI,EAAC,OAAO,EACZ,OAAO,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,EACnC,QAAQ,EAAE,QAAQ,CAAC,MAAM,IAAI,CAAC,GAC9B,CACH,CAAC,CAAC,CAAC,IAAI,IACM,GACN,EACZ,KAAC,IAAI,CAAC,IAAI,IAAC,KAAK,EAAE,CAAC,CAAC,gBAAgB,CAAC,YACnC,KAAC,MAAM,kBACO,GAAG,CAAC,CAAC,gBAAgB,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,EACjD,KAAK,EAAE,OAAO,CAAC,WAAW,IAAI,KAAK,EACnC,QAAQ,EAAE,CAAC,GAAuB,EAAE,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,EACjF,IAAI,EAAC,OAAO,EACZ,OAAO,EAAE,gBAAgB,EACzB,OAAO,EAAE,KAAK,GACd,GACQ,KAjCO,WAAW,KAAK,EAAE,CAkCtB,CAClB,CAAC,CACH,EACA,YAAY,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,CACnC,KAAC,IAAI,CAAC,IAAI,IAAC,UAAU,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,YAC5C,KAAC,MAAM,IAAC,IAAI,EAAC,OAAO,EAAC,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAE,KAAC,YAAY,KAAG,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,kBAClF,CAAC,CAAC,iBAAiB,CAAC,GACd,GACC,CACb,CAAC,CAAC,CAAC,IAAI,IACH,CACR,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { ChartCapabilities, ChartLabelConfig, ChartType, ReportFontOption } from '@report-designer/core';
|
|
3
|
+
import { type ChartPanelT } from './chart-options';
|
|
4
|
+
export declare const ChartLabelPanel: React.FC<{
|
|
5
|
+
chartType: ChartType;
|
|
6
|
+
capabilities: ChartCapabilities;
|
|
7
|
+
value: ChartLabelConfig;
|
|
8
|
+
reportFontOptions: ReportFontOption[];
|
|
9
|
+
onChange: (value: ChartLabelConfig) => void;
|
|
10
|
+
t: ChartPanelT;
|
|
11
|
+
}>;
|
|
12
|
+
//# sourceMappingURL=ChartLabelPanel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChartLabelPanel.d.ts","sourceRoot":"","sources":["../../../src/components/chart/ChartLabelPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9G,OAAO,EAAe,KAAK,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAahE,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC;IACrC,SAAS,EAAE,SAAS,CAAC;IACrB,YAAY,EAAE,iBAAiB,CAAC;IAChC,KAAK,EAAE,gBAAgB,CAAC;IACxB,iBAAiB,EAAE,gBAAgB,EAAE,CAAC;IACtC,QAAQ,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAC5C,CAAC,EAAE,WAAW,CAAC;CAChB,CAoEC,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { Form, Select, Switch } from 'antd';
|
|
4
|
+
import { chartUiText } from './chart-options';
|
|
5
|
+
import { FontEditor } from '../properties/FontEditor';
|
|
6
|
+
const FORM_LABEL_COL = { span: 8 };
|
|
7
|
+
const FORM_WRAPPER_COL = { span: 16 };
|
|
8
|
+
const DEFAULT_LABEL_FONT = { size: 12, color: '#111827' };
|
|
9
|
+
const LABEL_OPTIONS = [
|
|
10
|
+
{ value: 'name', label: 'chartLabelTypeName' },
|
|
11
|
+
{ value: 'value', label: 'chartLabelTypeValue' },
|
|
12
|
+
{ value: 'percent', label: 'chartLabelTypePercent' },
|
|
13
|
+
{ value: 'name-value', label: 'chartLabelTypeNameValue' },
|
|
14
|
+
];
|
|
15
|
+
export const ChartLabelPanel = React.memo(({ capabilities, onChange, reportFontOptions, t, value }) => {
|
|
16
|
+
const ui = React.useMemo(() => chartUiText(t), [t]);
|
|
17
|
+
const allowedContent = capabilities.labelContent;
|
|
18
|
+
const update = React.useCallback((updates) => onChange({ ...value, ...updates }), [onChange, value]);
|
|
19
|
+
const updateFont = React.useCallback((next) => update({ font: next }), [update]);
|
|
20
|
+
const labelOptions = React.useMemo(() => LABEL_OPTIONS
|
|
21
|
+
.filter(option => allowedContent.includes(option.value))
|
|
22
|
+
.map(option => ({ value: option.value, label: t(option.label) })), [allowedContent, t]);
|
|
23
|
+
const fontLabels = React.useMemo(() => ({
|
|
24
|
+
fontFamily: t('fontFamily'),
|
|
25
|
+
fontSize: ui.labelFontSize,
|
|
26
|
+
textColor: ui.labelColor,
|
|
27
|
+
bold: t('bold'),
|
|
28
|
+
italic: t('italic'),
|
|
29
|
+
underline: t('underline'),
|
|
30
|
+
strike: t('strike'),
|
|
31
|
+
}), [t, ui]);
|
|
32
|
+
return (_jsxs(Form, { size: "small", labelCol: FORM_LABEL_COL, wrapperCol: FORM_WRAPPER_COL, children: [_jsx(Form.Item, { label: ui.visible, children: _jsx(Switch, { "aria-label": ui.labelsVisible, size: "small", checked: value.visible, onChange: checked => update({ visible: checked }) }) }), _jsx(Form.Item, { label: ui.labelContent, children: _jsx(Select, { "aria-label": ui.labelContent, value: value.content, onChange: content => update({ content }), size: "small", virtual: false, options: labelOptions }) }), _jsx(Form.Item, { label: t('chartLabelType'), children: _jsx(Select, { "aria-label": "label position", size: "small", value: value.position ?? 'auto', onChange: (position) => update({ position }), options: ['auto', 'inside', 'outside', 'top', 'bottom', 'left', 'right', 'spider'].map(p => ({ value: p, label: p })) }) }), _jsx(Form.Item, { label: t('chartShowLabels'), children: _jsx(Switch, { "aria-label": "label leader line", size: "small", checked: value.showLeaderLine ?? false, onChange: showLeaderLine => update({ showLeaderLine }) }) }), _jsx(Form.Item, { label: t('chartLabelType'), children: _jsx(Select, { "aria-label": "label overlap strategy", size: "small", value: value.overlapStrategy ?? 'none', onChange: (overlapStrategy) => update({ overlapStrategy }), options: ['hide', 'shift', 'none'].map(s => ({ value: s, label: s })) }) }), _jsx(FontEditor, { value: { ...DEFAULT_LABEL_FONT, ...value.font, color: value.color ?? value.font?.color }, onChange: next => updateFont({ ...next, color: next.color }), reportFontOptions: reportFontOptions, fields: ['size', 'color', 'bold'], sizeRange: [6, 48], labels: fontLabels })] }));
|
|
33
|
+
});
|
|
34
|
+
//# sourceMappingURL=ChartLabelPanel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChartLabelPanel.js","sourceRoot":"","sources":["../../../src/components/chart/ChartLabelPanel.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { ChartCapabilities, ChartLegendConfig, ChartType, ReportFontOption } from '@report-designer/core';
|
|
3
|
+
import { type ChartPanelT } from './chart-options';
|
|
4
|
+
export declare const ChartLegendPanel: React.FC<{
|
|
5
|
+
chartType: ChartType;
|
|
6
|
+
capabilities: ChartCapabilities;
|
|
7
|
+
value: ChartLegendConfig;
|
|
8
|
+
reportFontOptions: ReportFontOption[];
|
|
9
|
+
onChange: (value: ChartLegendConfig) => void;
|
|
10
|
+
t: ChartPanelT;
|
|
11
|
+
}>;
|
|
12
|
+
//# sourceMappingURL=ChartLegendPanel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChartLegendPanel.d.ts","sourceRoot":"","sources":["../../../src/components/chart/ChartLegendPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC/G,OAAO,EAAe,KAAK,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAOhE,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC;IACtC,SAAS,EAAE,SAAS,CAAC;IACrB,YAAY,EAAE,iBAAiB,CAAC;IAChC,KAAK,EAAE,iBAAiB,CAAC;IACzB,iBAAiB,EAAE,gBAAgB,EAAE,CAAC;IACtC,QAAQ,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAC7C,CAAC,EAAE,WAAW,CAAC;CAChB,CAuHC,CAAC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { Form, InputNumber, Select, Switch } from 'antd';
|
|
4
|
+
import { chartUiText } from './chart-options';
|
|
5
|
+
import { FontEditor } from '../properties/FontEditor';
|
|
6
|
+
const FORM_LABEL_COL = { span: 8 };
|
|
7
|
+
const FORM_WRAPPER_COL = { span: 16 };
|
|
8
|
+
const DEFAULT_LEGEND_FONT = { size: 12, color: '#374151' };
|
|
9
|
+
export const ChartLegendPanel = React.memo(({ capabilities, onChange, reportFontOptions, t, value }) => {
|
|
10
|
+
const ui = React.useMemo(() => chartUiText(t), [t]);
|
|
11
|
+
const isContinuous = capabilities.legend === 'continuous';
|
|
12
|
+
const update = React.useCallback((updates) => onChange({ ...value, ...updates }), [onChange, value]);
|
|
13
|
+
const updateFont = React.useCallback((next) => update({ font: next }), [update]);
|
|
14
|
+
const positionOptions = React.useMemo(() => ['top', 'right', 'bottom', 'left'].map(position => ({
|
|
15
|
+
value: position,
|
|
16
|
+
label: t(position),
|
|
17
|
+
})), [t]);
|
|
18
|
+
const markerShapeOptions = React.useMemo(() => {
|
|
19
|
+
const isEn = t('chartType') === 'Chart type';
|
|
20
|
+
const labels = isEn
|
|
21
|
+
? { circle: 'Circle', square: 'Square', rect: 'Rectangle', line: 'Line', diamond: 'Diamond' }
|
|
22
|
+
: { circle: '圆形', square: '方形', rect: '矩形', line: '线条', diamond: '菱形' };
|
|
23
|
+
return ['circle', 'square', 'rect', 'line', 'diamond'].map(shape => ({ value: shape, label: labels[shape] }));
|
|
24
|
+
}, [t]);
|
|
25
|
+
const layoutOptions = React.useMemo(() => {
|
|
26
|
+
const isEn = t('chartType') === 'Chart type';
|
|
27
|
+
return ['horizontal', 'vertical'].map(layout => ({
|
|
28
|
+
value: layout,
|
|
29
|
+
label: isEn ? (layout === 'horizontal' ? 'Horizontal' : 'Vertical') : (layout === 'horizontal' ? '水平' : '垂直'),
|
|
30
|
+
}));
|
|
31
|
+
}, [t]);
|
|
32
|
+
const fontLabels = React.useMemo(() => ({
|
|
33
|
+
fontFamily: t('fontFamily'),
|
|
34
|
+
fontSize: ui.sizeShort,
|
|
35
|
+
textColor: ui.colorShort,
|
|
36
|
+
bold: t('bold'),
|
|
37
|
+
italic: t('italic'),
|
|
38
|
+
underline: t('underline'),
|
|
39
|
+
strike: t('strike'),
|
|
40
|
+
}), [t, ui]);
|
|
41
|
+
const fontAriaLabels = React.useMemo(() => ({
|
|
42
|
+
...fontLabels,
|
|
43
|
+
fontSize: ui.legendFontSize,
|
|
44
|
+
textColor: ui.legendColor,
|
|
45
|
+
}), [fontLabels, ui]);
|
|
46
|
+
return (_jsxs(Form, { size: "small", labelCol: FORM_LABEL_COL, wrapperCol: FORM_WRAPPER_COL, children: [_jsx(Form.Item, { label: ui.visible, children: _jsx(Switch, { "aria-label": ui.legendVisible, size: "small", checked: value.visible, onChange: checked => update({ visible: checked }) }) }), _jsx(Form.Item, { label: ui.legendPositionShort, children: _jsx(Select, { "aria-label": ui.legendPositionShort, value: value.position, onChange: position => update({ position }), size: "small", virtual: false, options: positionOptions }) }), isContinuous ? (_jsx(Form.Item, { label: ui.legendLayout, children: _jsx(Select, { "aria-label": ui.legendLayout, size: "small", value: value.layout ?? 'vertical', onChange: (layout) => update({ layout }), options: layoutOptions }) })) : (_jsxs(_Fragment, { children: [_jsx(Form.Item, { label: ui.legendMarkerShape, children: _jsx(Select, { "aria-label": ui.legendMarkerShape, size: "small", value: value.markerShape ?? 'square', onChange: (markerShape) => update({ markerShape }), options: markerShapeOptions }) }), _jsx(Form.Item, { label: ui.legendLayout, children: _jsx(Select, { "aria-label": ui.legendLayout, size: "small", value: value.layout ?? 'horizontal', onChange: (layout) => update({ layout }), options: layoutOptions }) })] })), _jsx(Form.Item, { label: ui.legendMaxRows, children: _jsx(InputNumber, { "aria-label": ui.legendMaxRows, size: "small", value: value.maxRows, min: 1, max: 20, style: { width: '100%' }, onChange: maxRows => update({ maxRows: maxRows ?? undefined }) }) }), _jsx(Form.Item, { label: ui.legendMaxColumns, children: _jsx(InputNumber, { "aria-label": ui.legendMaxColumns, size: "small", value: value.maxColumns, min: 1, max: 20, style: { width: '100%' }, onChange: maxColumns => update({ maxColumns: maxColumns ?? undefined }) }) }), _jsx(FontEditor, { value: { ...DEFAULT_LEGEND_FONT, ...value.font, color: value.color ?? value.font?.color }, onChange: next => updateFont({ ...next, color: next.color }), reportFontOptions: reportFontOptions, fields: ['size', 'color'], sizeRange: [6, 48], labels: fontLabels, ariaLabels: fontAriaLabels })] }));
|
|
47
|
+
});
|
|
48
|
+
//# sourceMappingURL=ChartLegendPanel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChartLegendPanel.js","sourceRoot":"","sources":["../../../src/components/chart/ChartLegendPanel.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAEzD,OAAO,EAAE,WAAW,EAAoB,MAAM,iBAAiB,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEtD,MAAM,cAAc,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;AACnC,MAAM,gBAAgB,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;AACtC,MAAM,mBAAmB,GAA8B,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;AAEtF,MAAM,CAAC,MAAM,gBAAgB,GAOxB,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,YAAY,EAAE,QAAQ,EAAE,iBAAiB,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;IAC1E,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACpD,MAAM,YAAY,GAAG,YAAY,CAAC,MAAM,KAAK,YAAY,CAAC;IAC1D,MAAM,MAAM,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,OAAmC,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,GAAG,KAAK,EAAE,GAAG,OAAO,EAAE,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;IACjI,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,IAA+B,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5G,MAAM,eAAe,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC9F,KAAK,EAAE,QAAQ;QACf,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC;KACnB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACV,MAAM,kBAAkB,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QAC5C,MAAM,IAAI,GAAG,CAAC,CAAC,WAAW,CAAC,KAAK,YAAY,CAAC;QAC7C,MAAM,MAAM,GAA2B,IAAI;YACzC,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE;YAC7F,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAC1E,OAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,CAAW,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3H,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACR,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QACvC,MAAM,IAAI,GAAG,CAAC,CAAC,WAAW,CAAC,KAAK,YAAY,CAAC;QAC7C,OAAQ,CAAC,YAAY,EAAE,UAAU,CAAW,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC1D,KAAK,EAAE,MAAM;YACb,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;SAC9G,CAAC,CAAC,CAAC;IACN,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAER,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QACtC,UAAU,EAAE,CAAC,CAAC,YAAY,CAAC;QAC3B,QAAQ,EAAE,EAAE,CAAC,SAAS;QACtB,SAAS,EAAE,EAAE,CAAC,UAAU;QACxB,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC;QACnB,SAAS,EAAE,CAAC,CAAC,WAAW,CAAC;QACzB,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC;KACpB,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IACb,MAAM,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QAC1C,GAAG,UAAU;QACb,QAAQ,EAAE,EAAE,CAAC,cAAc;QAC3B,SAAS,EAAE,EAAE,CAAC,WAAW;KAC1B,CAAC,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC;IAEtB,OAAO,CACL,MAAC,IAAI,IAAC,IAAI,EAAC,OAAO,EAAC,QAAQ,EAAE,cAAc,EAAE,UAAU,EAAE,gBAAgB,aACvE,KAAC,IAAI,CAAC,IAAI,IAAC,KAAK,EAAE,EAAE,CAAC,OAAO,YAC1B,KAAC,MAAM,kBAAa,EAAE,CAAC,aAAa,EAAE,IAAI,EAAC,OAAO,EAAC,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,GAAI,GACtH,EACZ,KAAC,IAAI,CAAC,IAAI,IAAC,KAAK,EAAE,EAAE,CAAC,mBAAmB,YACtC,KAAC,MAAM,kBACO,EAAE,CAAC,mBAAmB,EAClC,KAAK,EAAE,KAAK,CAAC,QAAQ,EACrB,QAAQ,EAAE,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC,EAC1C,IAAI,EAAC,OAAO,EACZ,OAAO,EAAE,KAAK,EACd,OAAO,EAAE,eAAe,GACxB,GACQ,EACX,YAAY,CAAC,CAAC,CAAC,CACd,KAAC,IAAI,CAAC,IAAI,IAAC,KAAK,EAAE,EAAE,CAAC,YAAY,YAC/B,KAAC,MAAM,kBACO,EAAE,CAAC,YAAY,EAC3B,IAAI,EAAC,OAAO,EACZ,KAAK,EAAE,KAAK,CAAC,MAAM,IAAI,UAAU,EACjC,QAAQ,EAAE,CAAC,MAAiC,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,EACnE,OAAO,EAAE,aAAa,GACtB,GACQ,CACb,CAAC,CAAC,CAAC,CACF,8BACE,KAAC,IAAI,CAAC,IAAI,IAAC,KAAK,EAAE,EAAE,CAAC,iBAAiB,YACpC,KAAC,MAAM,kBACO,EAAE,CAAC,iBAAiB,EAChC,IAAI,EAAC,OAAO,EACZ,KAAK,EAAE,KAAK,CAAC,WAAW,IAAI,QAAQ,EACpC,QAAQ,EAAE,CAAC,WAA0D,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,CAAC,EACjG,OAAO,EAAE,kBAAkB,GAC3B,GACQ,EACZ,KAAC,IAAI,CAAC,IAAI,IAAC,KAAK,EAAE,EAAE,CAAC,YAAY,YAC/B,KAAC,MAAM,kBACO,EAAE,CAAC,YAAY,EAC3B,IAAI,EAAC,OAAO,EACZ,KAAK,EAAE,KAAK,CAAC,MAAM,IAAI,YAAY,EACnC,QAAQ,EAAE,CAAC,MAAiC,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,EACnE,OAAO,EAAE,aAAa,GACtB,GACQ,IACX,CACJ,EACD,KAAC,IAAI,CAAC,IAAI,IAAC,KAAK,EAAE,EAAE,CAAC,aAAa,YAChC,KAAC,WAAW,kBACE,EAAE,CAAC,aAAa,EAC5B,IAAI,EAAC,OAAO,EACZ,KAAK,EAAE,KAAK,CAAC,OAAO,EACpB,GAAG,EAAE,CAAC,EACN,GAAG,EAAE,EAAE,EACP,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EACxB,QAAQ,EAAE,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,CAAC,GAC9D,GACQ,EACZ,KAAC,IAAI,CAAC,IAAI,IAAC,KAAK,EAAE,EAAE,CAAC,gBAAgB,YACnC,KAAC,WAAW,kBACE,EAAE,CAAC,gBAAgB,EAC/B,IAAI,EAAC,OAAO,EACZ,KAAK,EAAE,KAAK,CAAC,UAAU,EACvB,GAAG,EAAE,CAAC,EACN,GAAG,EAAE,EAAE,EACP,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EACxB,QAAQ,EAAE,UAAU,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,UAAU,IAAI,SAAS,EAAE,CAAC,GACvE,GACQ,EACZ,KAAC,UAAU,IACT,KAAK,EAAE,EAAE,GAAG,mBAAmB,EAAE,GAAG,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,EACzF,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,EAC5D,iBAAiB,EAAE,iBAAiB,EACpC,MAAM,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,EACzB,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAClB,MAAM,EAAE,UAAU,EAClB,UAAU,EAAE,cAAc,GAC1B,IACG,CACR,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { CollapseProps } from 'antd';
|
|
2
|
+
import type { ChartComponent, DataSource, ReportFontOption } from '@report-designer/core';
|
|
3
|
+
import { type ChartPanelT } from './chart-options';
|
|
4
|
+
export interface BuildChartPropertyItemsArgs {
|
|
5
|
+
chart: ChartComponent;
|
|
6
|
+
dataSourceOptions: Array<{
|
|
7
|
+
value: string;
|
|
8
|
+
label: string;
|
|
9
|
+
}>;
|
|
10
|
+
dataSourceDefinitions: DataSource[];
|
|
11
|
+
reportFontOptions: ReportFontOption[];
|
|
12
|
+
onChange: (field: string, value: any) => void;
|
|
13
|
+
onChangeMany: (updates: Partial<ChartComponent>) => void;
|
|
14
|
+
t: ChartPanelT;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* 构建图表属性面板的 Collapse items 数组。
|
|
18
|
+
*
|
|
19
|
+
* 不再渲染自己的 Collapse,而是返回 items 数组,由外层 PropertyEditor merge 进统一的
|
|
20
|
+
* Collapse.items,避免"折叠面板套折叠面板"。数组按能力矩阵 filter 生成——无意义的组
|
|
21
|
+
* (如饼图无坐标轴)根本不出现,而非"出现但置灰/空白"。
|
|
22
|
+
*
|
|
23
|
+
* 这是一个普通函数(非组件),便于外层直接展开返回值到 items 数组。
|
|
24
|
+
*/
|
|
25
|
+
export declare function buildChartPropertyItems({ chart, dataSourceDefinitions, dataSourceOptions, reportFontOptions, onChange, onChangeMany, t, }: BuildChartPropertyItemsArgs): NonNullable<CollapseProps['items']>;
|
|
26
|
+
//# sourceMappingURL=ChartPropertyPanel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChartPropertyPanel.d.ts","sourceRoot":"","sources":["../../../src/components/chart/ChartPropertyPanel.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,MAAM,CAAC;AAE1C,OAAO,KAAK,EAEV,cAAc,EAMd,UAAU,EACV,gBAAgB,EACjB,MAAM,uBAAuB,CAAC;AAS/B,OAAO,EASL,KAAK,WAAW,EACjB,MAAM,iBAAiB,CAAC;AAWzB,MAAM,WAAW,2BAA2B;IAC1C,KAAK,EAAE,cAAc,CAAC;IACtB,iBAAiB,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC3D,qBAAqB,EAAE,UAAU,EAAE,CAAC;IACpC,iBAAiB,EAAE,gBAAgB,EAAE,CAAC;IACtC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;IAC9C,YAAY,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,cAAc,CAAC,KAAK,IAAI,CAAC;IACzD,CAAC,EAAE,WAAW,CAAC;CAChB;AA6JD;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CAAC,EACtC,KAAK,EACL,qBAAqB,EACrB,iBAAiB,EACjB,iBAAiB,EACjB,QAAQ,EACR,YAAY,EACZ,CAAC,GACF,EAAE,2BAA2B,GAAG,WAAW,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAyDnE"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { Form, Input, Select } from 'antd';
|
|
4
|
+
import { getChartCapabilities } from '@report-designer/core';
|
|
5
|
+
import { ChartAxesPanel } from './ChartAxesPanel';
|
|
6
|
+
import { ChartDataPanel } from './ChartDataPanel';
|
|
7
|
+
import { ChartLabelPanel } from './ChartLabelPanel';
|
|
8
|
+
import { ChartLegendPanel } from './ChartLegendPanel';
|
|
9
|
+
import { ChartThemePanel } from './ChartThemePanel';
|
|
10
|
+
import { ChartTitlePanel } from './ChartTitlePanel';
|
|
11
|
+
import { ChartTypeStylePanel } from './ChartTypeStylePanel';
|
|
12
|
+
import { chartTypeOptions, chartUiText, } from './chart-options';
|
|
13
|
+
const FORM_LABEL_COL = { span: 8 };
|
|
14
|
+
const FORM_WRAPPER_COL = { span: 16 };
|
|
15
|
+
const DEFAULT_CHART_TITLE = { visible: true, text: '', subtitle: '' };
|
|
16
|
+
const DEFAULT_CHART_THEME = { baseTheme: 'light' };
|
|
17
|
+
const DEFAULT_CHART_LEGEND = { visible: true, position: 'bottom' };
|
|
18
|
+
const DEFAULT_CHART_AXES = {};
|
|
19
|
+
const DEFAULT_CHART_LABELS = { visible: false, content: 'name', position: 'auto' };
|
|
20
|
+
const DEFAULT_CHART_PLOT_OPTIONS = {};
|
|
21
|
+
const ChartBasicGroup = React.memo(function ChartBasicGroup({ chartType, emptyMessage, onChange, t, }) {
|
|
22
|
+
const chartTypeSelectOptions = React.useMemo(() => chartTypeOptions(t), [t]);
|
|
23
|
+
const updateChartType = React.useCallback((nextChartType) => onChange('chartType', nextChartType), [onChange]);
|
|
24
|
+
const updateEmptyMessage = React.useCallback((nextEmptyMessage) => onChange('emptyMessage', nextEmptyMessage), [onChange]);
|
|
25
|
+
return (_jsxs(Form, { size: "small", labelCol: FORM_LABEL_COL, wrapperCol: FORM_WRAPPER_COL, children: [_jsx(Form.Item, { label: t('chartType'), children: _jsx(Select, { "aria-label": t('chartType'), value: chartType, onChange: updateChartType, size: "small", options: chartTypeSelectOptions, virtual: false }) }), _jsx(Form.Item, { label: t('chartEmptyMessage'), children: _jsx(Input, { "aria-label": t('chartEmptyMessage'), value: emptyMessage ?? '', onChange: event => updateEmptyMessage(event.target.value), size: "small" }) })] }));
|
|
26
|
+
});
|
|
27
|
+
const ChartDataGroup = React.memo(function ChartDataGroup({ binding, capabilities, dataSourceDefinitions, dataSourceOptions, onChange, t, }) {
|
|
28
|
+
const updateBinding = React.useCallback((nextBinding) => onChange('binding', nextBinding), [onChange]);
|
|
29
|
+
return _jsx(ChartDataPanel, { binding: binding, capabilities: capabilities, dataSourceOptions: dataSourceOptions, dataSourceDefinitions: dataSourceDefinitions, onChange: updateBinding, t: t });
|
|
30
|
+
});
|
|
31
|
+
const ChartTitleGroup = React.memo(function ChartTitleGroup({ value, reportFontOptions, onChangeMany, t, }) {
|
|
32
|
+
const updateTitle = React.useCallback((title) => onChangeMany({ title }), [onChangeMany]);
|
|
33
|
+
return _jsx(ChartTitlePanel, { value: value ?? DEFAULT_CHART_TITLE, reportFontOptions: reportFontOptions, onChange: updateTitle, t: t });
|
|
34
|
+
});
|
|
35
|
+
const ChartThemeGroup = React.memo(function ChartThemeGroup({ value, onChange, t, }) {
|
|
36
|
+
const updateTheme = React.useCallback((theme) => onChange('theme', theme), [onChange]);
|
|
37
|
+
return _jsx(ChartThemePanel, { value: value ?? DEFAULT_CHART_THEME, onChange: updateTheme, t: t });
|
|
38
|
+
});
|
|
39
|
+
const ChartAxesGroup = React.memo(function ChartAxesGroup({ chartType, capabilities, value, reportFontOptions, onChange, t, }) {
|
|
40
|
+
const updateAxes = React.useCallback((axes) => onChange('axes', axes), [onChange]);
|
|
41
|
+
return _jsx(ChartAxesPanel, { chartType: chartType, capabilities: capabilities, value: value ?? DEFAULT_CHART_AXES, reportFontOptions: reportFontOptions, onChange: updateAxes, t: t });
|
|
42
|
+
});
|
|
43
|
+
const ChartLegendGroup = React.memo(function ChartLegendGroup({ chartType, capabilities, value, reportFontOptions, onChange, t, }) {
|
|
44
|
+
const updateLegend = React.useCallback((legend) => onChange('legend', legend), [onChange]);
|
|
45
|
+
return _jsx(ChartLegendPanel, { chartType: chartType, capabilities: capabilities, value: value ?? DEFAULT_CHART_LEGEND, reportFontOptions: reportFontOptions, onChange: updateLegend, t: t });
|
|
46
|
+
});
|
|
47
|
+
const ChartLabelsGroup = React.memo(function ChartLabelsGroup({ chartType, capabilities, value, reportFontOptions, onChange, t, }) {
|
|
48
|
+
const updateLabels = React.useCallback((labels) => onChange('labels', labels), [onChange]);
|
|
49
|
+
return _jsx(ChartLabelPanel, { chartType: chartType, capabilities: capabilities, value: value ?? DEFAULT_CHART_LABELS, reportFontOptions: reportFontOptions, onChange: updateLabels, t: t });
|
|
50
|
+
});
|
|
51
|
+
const ChartStyleGroup = React.memo(function ChartStyleGroup({ chartType, capabilities, value, onChange, t, }) {
|
|
52
|
+
const updatePlotOptions = React.useCallback((plotOptions) => onChange('plotOptions', plotOptions), [onChange]);
|
|
53
|
+
return _jsx(ChartTypeStylePanel, { chartType: chartType, capabilities: capabilities, value: value ?? DEFAULT_CHART_PLOT_OPTIONS, onChange: updatePlotOptions, t: t });
|
|
54
|
+
});
|
|
55
|
+
/**
|
|
56
|
+
* 构建图表属性面板的 Collapse items 数组。
|
|
57
|
+
*
|
|
58
|
+
* 不再渲染自己的 Collapse,而是返回 items 数组,由外层 PropertyEditor merge 进统一的
|
|
59
|
+
* Collapse.items,避免"折叠面板套折叠面板"。数组按能力矩阵 filter 生成——无意义的组
|
|
60
|
+
* (如饼图无坐标轴)根本不出现,而非"出现但置灰/空白"。
|
|
61
|
+
*
|
|
62
|
+
* 这是一个普通函数(非组件),便于外层直接展开返回值到 items 数组。
|
|
63
|
+
*/
|
|
64
|
+
export function buildChartPropertyItems({ chart, dataSourceDefinitions, dataSourceOptions, reportFontOptions, onChange, onChangeMany, t, }) {
|
|
65
|
+
const ui = chartUiText(t);
|
|
66
|
+
const caps = getChartCapabilities(chart.chartType);
|
|
67
|
+
const items = [
|
|
68
|
+
{
|
|
69
|
+
key: 'chartBasic',
|
|
70
|
+
label: ui.basic,
|
|
71
|
+
children: _jsx(ChartBasicGroup, { chartType: chart.chartType, emptyMessage: chart.emptyMessage, onChange: onChange, t: t }),
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
key: 'chartData',
|
|
75
|
+
label: ui.data,
|
|
76
|
+
children: _jsx(ChartDataGroup, { binding: chart.binding, capabilities: caps, dataSourceOptions: dataSourceOptions, dataSourceDefinitions: dataSourceDefinitions, onChange: onChange, t: t }),
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
key: 'chartTitle',
|
|
80
|
+
label: ui.title,
|
|
81
|
+
children: _jsx(ChartTitleGroup, { value: chart.title, reportFontOptions: reportFontOptions, onChangeMany: onChangeMany, t: t }),
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
key: 'chartTheme',
|
|
85
|
+
label: ui.theme,
|
|
86
|
+
children: _jsx(ChartThemeGroup, { value: chart.theme, onChange: onChange, t: t }),
|
|
87
|
+
},
|
|
88
|
+
];
|
|
89
|
+
if (caps.axes !== false) {
|
|
90
|
+
items.push({
|
|
91
|
+
key: 'chartAxes',
|
|
92
|
+
label: ui.axes,
|
|
93
|
+
children: _jsx(ChartAxesGroup, { chartType: chart.chartType, capabilities: caps, value: chart.axes, reportFontOptions: reportFontOptions, onChange: onChange, t: t }),
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
if (caps.legend !== false) {
|
|
97
|
+
items.push({
|
|
98
|
+
key: 'chartLegend',
|
|
99
|
+
label: ui.legend,
|
|
100
|
+
children: _jsx(ChartLegendGroup, { chartType: chart.chartType, capabilities: caps, value: chart.legend, reportFontOptions: reportFontOptions, onChange: onChange, t: t }),
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
if (caps.labelContent.length > 0) {
|
|
104
|
+
items.push({
|
|
105
|
+
key: 'chartLabels',
|
|
106
|
+
label: ui.labels,
|
|
107
|
+
children: _jsx(ChartLabelsGroup, { chartType: chart.chartType, capabilities: caps, value: chart.labels, reportFontOptions: reportFontOptions, onChange: onChange, t: t }),
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
if (caps.styleOptions.length > 0) {
|
|
111
|
+
items.push({
|
|
112
|
+
key: 'chartStyle',
|
|
113
|
+
label: ui.typeStyle,
|
|
114
|
+
children: _jsx(ChartStyleGroup, { chartType: chart.chartType, capabilities: caps, value: chart.plotOptions, onChange: onChange, t: t }),
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
return items;
|
|
118
|
+
}
|
|
119
|
+
//# sourceMappingURL=ChartPropertyPanel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChartPropertyPanel.js","sourceRoot":"","sources":["../../../src/components/chart/ChartPropertyPanel.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { ChartThemeConfig } from '@report-designer/core';
|
|
3
|
+
import { type ChartPanelT } from './chart-options';
|
|
4
|
+
export declare const ChartThemePanel: React.FC<{
|
|
5
|
+
value: ChartThemeConfig;
|
|
6
|
+
onChange: (value: ChartThemeConfig) => void;
|
|
7
|
+
t: ChartPanelT;
|
|
8
|
+
}>;
|
|
9
|
+
//# sourceMappingURL=ChartThemePanel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChartThemePanel.d.ts","sourceRoot":"","sources":["../../../src/components/chart/ChartThemePanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAe,KAAK,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAYhE,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC;IACrC,KAAK,EAAE,gBAAgB,CAAC;IACxB,QAAQ,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAC5C,CAAC,EAAE,WAAW,CAAC;CAChB,CA6CC,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { ColorPicker, Form, Select } from 'antd';
|
|
4
|
+
import { chartUiText } from './chart-options';
|
|
5
|
+
import { ColorPaletteEditor } from './ColorPaletteEditor';
|
|
6
|
+
const FORM_LABEL_COL = { span: 8 };
|
|
7
|
+
const FORM_WRAPPER_COL = { span: 16 };
|
|
8
|
+
const THEME_OPTIONS = [
|
|
9
|
+
{ value: 'light', label: 'chartThemeLight' },
|
|
10
|
+
{ value: 'dark', label: 'chartThemeDark' },
|
|
11
|
+
];
|
|
12
|
+
const DEFAULT_LINEAR_START = '#dbeafe';
|
|
13
|
+
const DEFAULT_LINEAR_END = '#1d4ed8';
|
|
14
|
+
export const ChartThemePanel = React.memo(({ onChange, t, value }) => {
|
|
15
|
+
const ui = React.useMemo(() => chartUiText(t), [t]);
|
|
16
|
+
const themeOptions = React.useMemo(() => THEME_OPTIONS.map(item => ({ value: item.value, label: t(item.label) })), [t]);
|
|
17
|
+
const update = React.useCallback((updates) => onChange({ ...value, ...updates }), [onChange, value]);
|
|
18
|
+
const linearPalette = value.linearPalette ?? [DEFAULT_LINEAR_START, DEFAULT_LINEAR_END];
|
|
19
|
+
return (_jsxs(Form, { size: "small", labelCol: FORM_LABEL_COL, wrapperCol: FORM_WRAPPER_COL, children: [_jsx(Form.Item, { label: ui.baseTheme, children: _jsx(Select, { "aria-label": ui.baseTheme, value: value.baseTheme ?? 'light', onChange: baseTheme => update({ baseTheme }), size: "small", virtual: false, options: themeOptions }) }), _jsx(Form.Item, { label: ui.customPalette, children: _jsx(ColorPaletteEditor, { t: t, presetId: value.palettePresetId, colors: value.customPalette ?? [], onPresetChange: palettePresetId => update({ palettePresetId, customPalette: undefined }), onColorsChange: customPalette => update({ customPalette }) }) }), _jsx(Form.Item, { label: ui.heatmapStartColor, children: _jsx(ColorPicker, { "aria-label": ui.heatmapStartColor, size: "small", value: linearPalette[0], onChange: color => update({ linearPalette: [color.toHexString(), linearPalette[1]] }) }) }), _jsx(Form.Item, { label: ui.heatmapEndColor, children: _jsx(ColorPicker, { "aria-label": ui.heatmapEndColor, size: "small", value: linearPalette[1], onChange: color => update({ linearPalette: [linearPalette[0], color.toHexString()] }) }) })] }));
|
|
20
|
+
});
|
|
21
|
+
//# sourceMappingURL=ChartThemePanel.js.map
|