@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.
Files changed (253) hide show
  1. package/dist/band-metadata.d.ts +8 -0
  2. package/dist/band-metadata.d.ts.map +1 -0
  3. package/dist/band-metadata.js +75 -0
  4. package/dist/band-metadata.js.map +1 -0
  5. package/dist/component-factory.d.ts +9 -0
  6. package/dist/component-factory.d.ts.map +1 -0
  7. package/dist/component-factory.js +141 -0
  8. package/dist/component-factory.js.map +1 -0
  9. package/dist/component-palette-model.d.ts +14 -0
  10. package/dist/component-palette-model.d.ts.map +1 -0
  11. package/dist/component-palette-model.js +21 -0
  12. package/dist/component-palette-model.js.map +1 -0
  13. package/dist/components/Canvas.d.ts +5 -0
  14. package/dist/components/Canvas.d.ts.map +1 -0
  15. package/dist/components/Canvas.js +2428 -0
  16. package/dist/components/Canvas.js.map +1 -0
  17. package/dist/components/ConditionalFormatManager.d.ts +8 -0
  18. package/dist/components/ConditionalFormatManager.d.ts.map +1 -0
  19. package/dist/components/ConditionalFormatManager.js +135 -0
  20. package/dist/components/ConditionalFormatManager.js.map +1 -0
  21. package/dist/components/Designer.d.ts +22 -0
  22. package/dist/components/Designer.d.ts.map +1 -0
  23. package/dist/components/Designer.js +115 -0
  24. package/dist/components/Designer.js.map +1 -0
  25. package/dist/components/ExpressionEditor.d.ts +10 -0
  26. package/dist/components/ExpressionEditor.d.ts.map +1 -0
  27. package/dist/components/ExpressionEditor.js +203 -0
  28. package/dist/components/ExpressionEditor.js.map +1 -0
  29. package/dist/components/LeftPanel.d.ts +11 -0
  30. package/dist/components/LeftPanel.d.ts.map +1 -0
  31. package/dist/components/LeftPanel.js +551 -0
  32. package/dist/components/LeftPanel.js.map +1 -0
  33. package/dist/components/PropertyEditor.d.ts +6 -0
  34. package/dist/components/PropertyEditor.d.ts.map +1 -0
  35. package/dist/components/PropertyEditor.js +1002 -0
  36. package/dist/components/PropertyEditor.js.map +1 -0
  37. package/dist/components/RibbonToolbar.d.ts +3 -0
  38. package/dist/components/RibbonToolbar.d.ts.map +1 -0
  39. package/dist/components/RibbonToolbar.js +179 -0
  40. package/dist/components/RibbonToolbar.js.map +1 -0
  41. package/dist/components/TextFormatEditor.d.ts +13 -0
  42. package/dist/components/TextFormatEditor.d.ts.map +1 -0
  43. package/dist/components/TextFormatEditor.js +199 -0
  44. package/dist/components/TextFormatEditor.js.map +1 -0
  45. package/dist/components/TextStyleLibraryDialog.d.ts +8 -0
  46. package/dist/components/TextStyleLibraryDialog.d.ts.map +1 -0
  47. package/dist/components/TextStyleLibraryDialog.js +367 -0
  48. package/dist/components/TextStyleLibraryDialog.js.map +1 -0
  49. package/dist/components/canvas/DesignerCanvasFrame.d.ts +10 -0
  50. package/dist/components/canvas/DesignerCanvasFrame.d.ts.map +1 -0
  51. package/dist/components/canvas/DesignerCanvasFrame.js +22 -0
  52. package/dist/components/canvas/DesignerCanvasFrame.js.map +1 -0
  53. package/dist/components/chart/ChartAxesPanel.d.ts +12 -0
  54. package/dist/components/chart/ChartAxesPanel.d.ts.map +1 -0
  55. package/dist/components/chart/ChartAxesPanel.js +71 -0
  56. package/dist/components/chart/ChartAxesPanel.js.map +1 -0
  57. package/dist/components/chart/ChartDataPanel.d.ts +21 -0
  58. package/dist/components/chart/ChartDataPanel.d.ts.map +1 -0
  59. package/dist/components/chart/ChartDataPanel.js +80 -0
  60. package/dist/components/chart/ChartDataPanel.js.map +1 -0
  61. package/dist/components/chart/ChartLabelPanel.d.ts +12 -0
  62. package/dist/components/chart/ChartLabelPanel.d.ts.map +1 -0
  63. package/dist/components/chart/ChartLabelPanel.js +34 -0
  64. package/dist/components/chart/ChartLabelPanel.js.map +1 -0
  65. package/dist/components/chart/ChartLegendPanel.d.ts +12 -0
  66. package/dist/components/chart/ChartLegendPanel.d.ts.map +1 -0
  67. package/dist/components/chart/ChartLegendPanel.js +48 -0
  68. package/dist/components/chart/ChartLegendPanel.js.map +1 -0
  69. package/dist/components/chart/ChartPropertyPanel.d.ts +26 -0
  70. package/dist/components/chart/ChartPropertyPanel.d.ts.map +1 -0
  71. package/dist/components/chart/ChartPropertyPanel.js +119 -0
  72. package/dist/components/chart/ChartPropertyPanel.js.map +1 -0
  73. package/dist/components/chart/ChartThemePanel.d.ts +9 -0
  74. package/dist/components/chart/ChartThemePanel.d.ts.map +1 -0
  75. package/dist/components/chart/ChartThemePanel.js +21 -0
  76. package/dist/components/chart/ChartThemePanel.js.map +1 -0
  77. package/dist/components/chart/ChartTitlePanel.d.ts +10 -0
  78. package/dist/components/chart/ChartTitlePanel.d.ts.map +1 -0
  79. package/dist/components/chart/ChartTitlePanel.js +45 -0
  80. package/dist/components/chart/ChartTitlePanel.js.map +1 -0
  81. package/dist/components/chart/ChartTypeStylePanel.d.ts +11 -0
  82. package/dist/components/chart/ChartTypeStylePanel.d.ts.map +1 -0
  83. package/dist/components/chart/ChartTypeStylePanel.js +37 -0
  84. package/dist/components/chart/ChartTypeStylePanel.js.map +1 -0
  85. package/dist/components/chart/ColorPaletteEditor.d.ts +10 -0
  86. package/dist/components/chart/ColorPaletteEditor.d.ts.map +1 -0
  87. package/dist/components/chart/ColorPaletteEditor.js +18 -0
  88. package/dist/components/chart/ColorPaletteEditor.js.map +1 -0
  89. package/dist/components/chart/chart-options.d.ts +119 -0
  90. package/dist/components/chart/chart-options.d.ts.map +1 -0
  91. package/dist/components/chart/chart-options.js +217 -0
  92. package/dist/components/chart/chart-options.js.map +1 -0
  93. package/dist/components/dialogs/BandWizardDialog.d.ts +8 -0
  94. package/dist/components/dialogs/BandWizardDialog.d.ts.map +1 -0
  95. package/dist/components/dialogs/BandWizardDialog.js +54 -0
  96. package/dist/components/dialogs/BandWizardDialog.js.map +1 -0
  97. package/dist/components/dialogs/GroupWizardDialog.d.ts +8 -0
  98. package/dist/components/dialogs/GroupWizardDialog.d.ts.map +1 -0
  99. package/dist/components/dialogs/GroupWizardDialog.js +70 -0
  100. package/dist/components/dialogs/GroupWizardDialog.js.map +1 -0
  101. package/dist/components/dialogs/JsonDataSourceDialog.d.ts +8 -0
  102. package/dist/components/dialogs/JsonDataSourceDialog.d.ts.map +1 -0
  103. package/dist/components/dialogs/JsonDataSourceDialog.js +67 -0
  104. package/dist/components/dialogs/JsonDataSourceDialog.js.map +1 -0
  105. package/dist/components/dialogs/PageSetupDialog.d.ts +8 -0
  106. package/dist/components/dialogs/PageSetupDialog.d.ts.map +1 -0
  107. package/dist/components/dialogs/PageSetupDialog.js +145 -0
  108. package/dist/components/dialogs/PageSetupDialog.js.map +1 -0
  109. package/dist/components/dialogs/dialog-utils.d.ts +6 -0
  110. package/dist/components/dialogs/dialog-utils.d.ts.map +1 -0
  111. package/dist/components/dialogs/dialog-utils.js +37 -0
  112. package/dist/components/dialogs/dialog-utils.js.map +1 -0
  113. package/dist/components/events/EventEditorDialog.d.ts +43 -0
  114. package/dist/components/events/EventEditorDialog.d.ts.map +1 -0
  115. package/dist/components/events/EventEditorDialog.js +271 -0
  116. package/dist/components/events/EventEditorDialog.js.map +1 -0
  117. package/dist/components/events/EventScriptEditor.d.ts +41 -0
  118. package/dist/components/events/EventScriptEditor.d.ts.map +1 -0
  119. package/dist/components/events/EventScriptEditor.js +140 -0
  120. package/dist/components/events/EventScriptEditor.js.map +1 -0
  121. package/dist/components/events/event-editor-utils.d.ts +18 -0
  122. package/dist/components/events/event-editor-utils.d.ts.map +1 -0
  123. package/dist/components/events/event-editor-utils.js +66 -0
  124. package/dist/components/events/event-editor-utils.js.map +1 -0
  125. package/dist/components/events/event-script-monaco.d.ts +74 -0
  126. package/dist/components/events/event-script-monaco.d.ts.map +1 -0
  127. package/dist/components/events/event-script-monaco.js +282 -0
  128. package/dist/components/events/event-script-monaco.js.map +1 -0
  129. package/dist/components/events/event-script-templates.d.ts +7 -0
  130. package/dist/components/events/event-script-templates.d.ts.map +1 -0
  131. package/dist/components/events/event-script-templates.js +100 -0
  132. package/dist/components/events/event-script-templates.js.map +1 -0
  133. package/dist/components/expression/ExpressionMonacoEditor.d.ts +16 -0
  134. package/dist/components/expression/ExpressionMonacoEditor.d.ts.map +1 -0
  135. package/dist/components/expression/ExpressionMonacoEditor.js +63 -0
  136. package/dist/components/expression/ExpressionMonacoEditor.js.map +1 -0
  137. package/dist/components/expression/InlineExpressionEditor.d.ts +10 -0
  138. package/dist/components/expression/InlineExpressionEditor.d.ts.map +1 -0
  139. package/dist/components/expression/InlineExpressionEditor.js +33 -0
  140. package/dist/components/expression/InlineExpressionEditor.js.map +1 -0
  141. package/dist/components/expression/expression-monaco.d.ts +34 -0
  142. package/dist/components/expression/expression-monaco.d.ts.map +1 -0
  143. package/dist/components/expression/expression-monaco.js +87 -0
  144. package/dist/components/expression/expression-monaco.js.map +1 -0
  145. package/dist/components/panels/DesignerLeftPanel.d.ts +11 -0
  146. package/dist/components/panels/DesignerLeftPanel.d.ts.map +1 -0
  147. package/dist/components/panels/DesignerLeftPanel.js +8 -0
  148. package/dist/components/panels/DesignerLeftPanel.js.map +1 -0
  149. package/dist/components/panels/DesignerPropertyPanel.d.ts +6 -0
  150. package/dist/components/panels/DesignerPropertyPanel.d.ts.map +1 -0
  151. package/dist/components/panels/DesignerPropertyPanel.js +441 -0
  152. package/dist/components/panels/DesignerPropertyPanel.js.map +1 -0
  153. package/dist/components/panels/PanelSearchBox.d.ts +9 -0
  154. package/dist/components/panels/PanelSearchBox.d.ts.map +1 -0
  155. package/dist/components/panels/PanelSearchBox.js +5 -0
  156. package/dist/components/panels/PanelSearchBox.js.map +1 -0
  157. package/dist/components/properties/BandPropertyGrid.d.ts +6 -0
  158. package/dist/components/properties/BandPropertyGrid.d.ts.map +1 -0
  159. package/dist/components/properties/BandPropertyGrid.js +504 -0
  160. package/dist/components/properties/BandPropertyGrid.js.map +1 -0
  161. package/dist/components/properties/BoxStyleEditors.d.ts +59 -0
  162. package/dist/components/properties/BoxStyleEditors.d.ts.map +1 -0
  163. package/dist/components/properties/BoxStyleEditors.js +87 -0
  164. package/dist/components/properties/BoxStyleEditors.js.map +1 -0
  165. package/dist/components/properties/FontEditor.d.ts +28 -0
  166. package/dist/components/properties/FontEditor.d.ts.map +1 -0
  167. package/dist/components/properties/FontEditor.js +22 -0
  168. package/dist/components/properties/FontEditor.js.map +1 -0
  169. package/dist/components/ribbon/DesignerRibbon.d.ts +3 -0
  170. package/dist/components/ribbon/DesignerRibbon.d.ts.map +1 -0
  171. package/dist/components/ribbon/DesignerRibbon.js +193 -0
  172. package/dist/components/ribbon/DesignerRibbon.js.map +1 -0
  173. package/dist/components/richtext/RichTextInlineEditor.d.ts +15 -0
  174. package/dist/components/richtext/RichTextInlineEditor.d.ts.map +1 -0
  175. package/dist/components/richtext/RichTextInlineEditor.js +94 -0
  176. package/dist/components/richtext/RichTextInlineEditor.js.map +1 -0
  177. package/dist/components/shell/DesignerShell.d.ts +12 -0
  178. package/dist/components/shell/DesignerShell.d.ts.map +1 -0
  179. package/dist/components/shell/DesignerShell.js +124 -0
  180. package/dist/components/shell/DesignerShell.js.map +1 -0
  181. package/dist/components/shell/DesignerStatusBar.d.ts +3 -0
  182. package/dist/components/shell/DesignerStatusBar.d.ts.map +1 -0
  183. package/dist/components/shell/DesignerStatusBar.js +23 -0
  184. package/dist/components/shell/DesignerStatusBar.js.map +1 -0
  185. package/dist/components/tree/ReportTree.d.ts +3 -0
  186. package/dist/components/tree/ReportTree.d.ts.map +1 -0
  187. package/dist/components/tree/ReportTree.js +17 -0
  188. package/dist/components/tree/ReportTree.js.map +1 -0
  189. package/dist/data-source-fields.d.ts +14 -0
  190. package/dist/data-source-fields.d.ts.map +1 -0
  191. package/dist/data-source-fields.js +49 -0
  192. package/dist/data-source-fields.js.map +1 -0
  193. package/dist/data-source-paths.d.ts +10 -0
  194. package/dist/data-source-paths.d.ts.map +1 -0
  195. package/dist/data-source-paths.js +61 -0
  196. package/dist/data-source-paths.js.map +1 -0
  197. package/dist/expression/expression-catalog.d.ts +39 -0
  198. package/dist/expression/expression-catalog.d.ts.map +1 -0
  199. package/dist/expression/expression-catalog.js +127 -0
  200. package/dist/expression/expression-catalog.js.map +1 -0
  201. package/dist/expression/expression-preview.d.ts +11 -0
  202. package/dist/expression/expression-preview.d.ts.map +1 -0
  203. package/dist/expression/expression-preview.js +58 -0
  204. package/dist/expression/expression-preview.js.map +1 -0
  205. package/dist/expression/expression-validation.d.ts +12 -0
  206. package/dist/expression/expression-validation.d.ts.map +1 -0
  207. package/dist/expression/expression-validation.js +85 -0
  208. package/dist/expression/expression-validation.js.map +1 -0
  209. package/dist/expression/function-catalog.d.ts +21 -0
  210. package/dist/expression/function-catalog.d.ts.map +1 -0
  211. package/dist/expression/function-catalog.js +96 -0
  212. package/dist/expression/function-catalog.js.map +1 -0
  213. package/dist/i18n/DesignerI18nProvider.d.ts +11 -0
  214. package/dist/i18n/DesignerI18nProvider.d.ts.map +1 -0
  215. package/dist/i18n/DesignerI18nProvider.js +32 -0
  216. package/dist/i18n/DesignerI18nProvider.js.map +1 -0
  217. package/dist/i18n/index.d.ts +3 -0
  218. package/dist/i18n/index.d.ts.map +1 -0
  219. package/dist/i18n/index.js +2 -0
  220. package/dist/i18n/index.js.map +1 -0
  221. package/dist/i18n/messages.d.ts +5 -0
  222. package/dist/i18n/messages.d.ts.map +1 -0
  223. package/dist/i18n/messages.js +1383 -0
  224. package/dist/i18n/messages.js.map +1 -0
  225. package/dist/index.d.ts +21 -0
  226. package/dist/index.d.ts.map +1 -0
  227. package/dist/index.js +18 -0
  228. package/dist/index.js.map +1 -0
  229. package/dist/page-settings.d.ts +21 -0
  230. package/dist/page-settings.d.ts.map +1 -0
  231. package/dist/page-settings.js +66 -0
  232. package/dist/page-settings.js.map +1 -0
  233. package/dist/report-structure.d.ts +20 -0
  234. package/dist/report-structure.d.ts.map +1 -0
  235. package/dist/report-structure.js +219 -0
  236. package/dist/report-structure.js.map +1 -0
  237. package/dist/store/designer-store.d.ts +161 -0
  238. package/dist/store/designer-store.d.ts.map +1 -0
  239. package/dist/store/designer-store.js +1851 -0
  240. package/dist/store/designer-store.js.map +1 -0
  241. package/dist/table/table-structure.d.ts +50 -0
  242. package/dist/table/table-structure.d.ts.map +1 -0
  243. package/dist/table/table-structure.js +251 -0
  244. package/dist/table/table-structure.js.map +1 -0
  245. package/dist/text-style-application.d.ts +11 -0
  246. package/dist/text-style-application.d.ts.map +1 -0
  247. package/dist/text-style-application.js +135 -0
  248. package/dist/text-style-application.js.map +1 -0
  249. package/dist/text-style-bindings.d.ts +16 -0
  250. package/dist/text-style-bindings.d.ts.map +1 -0
  251. package/dist/text-style-bindings.js +549 -0
  252. package/dist/text-style-bindings.js.map +1 -0
  253. 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":"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"}
@@ -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