@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,59 @@
1
+ import React from 'react';
2
+ import type { BorderConfig, Padding } from '@report-designer/core';
3
+ export interface BoxSideLabels {
4
+ top: string;
5
+ right: string;
6
+ bottom: string;
7
+ left: string;
8
+ }
9
+ export interface BorderEditorLabels {
10
+ style: string;
11
+ inherit?: string;
12
+ none: string;
13
+ solid: string;
14
+ dashed: string;
15
+ dotted: string;
16
+ double: string;
17
+ width: string;
18
+ color: string;
19
+ sides: string;
20
+ sideLabels: BoxSideLabels;
21
+ sideAriaLabels?: BoxSideLabels;
22
+ }
23
+ export interface PaddingEditorLabels {
24
+ title: string;
25
+ top: string;
26
+ right: string;
27
+ bottom: string;
28
+ left: string;
29
+ ariaTop: string;
30
+ ariaRight: string;
31
+ ariaBottom: string;
32
+ ariaLeft: string;
33
+ }
34
+ export declare const DEFAULT_BOX_BORDER: BorderConfig;
35
+ export declare const DEFAULT_BOX_PADDING: Padding;
36
+ export declare function mergeBorderValue(value?: BorderConfig): BorderConfig;
37
+ export declare function mergePaddingValue(value?: Padding): Padding;
38
+ export declare const BorderEditor: React.FC<{
39
+ value?: BorderConfig;
40
+ labels: BorderEditorLabels;
41
+ onChange: (value: BorderConfig | undefined) => void;
42
+ disabled?: (path: string) => boolean;
43
+ formatWidth?: (value: number) => number | string;
44
+ parseWidth?: (value: number | string | null | undefined, fallback: number) => number;
45
+ minWidth?: number | string;
46
+ maxWidth?: number | string;
47
+ step?: number | string;
48
+ }>;
49
+ export declare const PaddingEditor: React.FC<{
50
+ value?: Padding;
51
+ labels: PaddingEditorLabels;
52
+ onChange: (value: Padding | undefined) => void;
53
+ disabled?: (path: string) => boolean;
54
+ formatValue?: (value: number) => number | string;
55
+ parseValue?: (value: number | string | null | undefined, fallback: number) => number;
56
+ min?: number | string;
57
+ step?: number | string;
58
+ }>;
59
+ //# sourceMappingURL=BoxStyleEditors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BoxStyleEditors.d.ts","sourceRoot":"","sources":["../../../src/components/properties/BoxStyleEditors.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,87 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { Checkbox, ColorPicker, Form, InputNumber, Select } from 'antd';
3
+ const SIDE_ORDER = ['top', 'right', 'bottom', 'left'];
4
+ export const DEFAULT_BOX_BORDER = {
5
+ style: 'none',
6
+ width: 0,
7
+ color: '#000000',
8
+ sides: { top: false, right: false, bottom: false, left: false },
9
+ };
10
+ export const DEFAULT_BOX_PADDING = { top: 0, right: 0, bottom: 0, left: 0 };
11
+ export function mergeBorderValue(value) {
12
+ return {
13
+ ...DEFAULT_BOX_BORDER,
14
+ ...value,
15
+ sides: { ...DEFAULT_BOX_BORDER.sides, ...(value?.sides ?? {}) },
16
+ };
17
+ }
18
+ export function mergePaddingValue(value) {
19
+ return { ...DEFAULT_BOX_PADDING, ...(value ?? {}) };
20
+ }
21
+ export const BorderEditor = ({ value, labels, onChange, disabled, formatWidth = value => value, parseWidth = (next, fallback) => Number(next ?? fallback), minWidth = 0, maxWidth, step = 0.1, }) => {
22
+ const border = mergeBorderValue(value);
23
+ const selectedSides = SIDE_ORDER.filter(side => value?.sides?.[side]);
24
+ const inheritOptionValue = '__inherit__';
25
+ const updateBorder = (updates) => {
26
+ onChange({
27
+ ...border,
28
+ ...updates,
29
+ sides: { ...border.sides, ...(updates.sides ?? {}) },
30
+ });
31
+ };
32
+ return (_jsxs(_Fragment, { children: [_jsx(Form.Item, { label: labels.style, children: _jsx(Select, { "aria-label": labels.style, value: value?.style, onChange: (style) => {
33
+ if (style === inheritOptionValue) {
34
+ onChange(undefined);
35
+ return;
36
+ }
37
+ updateBorder({ style: style });
38
+ }, size: "small", disabled: disabled?.('border.style'), style: { width: '100%' }, options: [
39
+ { value: inheritOptionValue, label: labels.inherit ?? '' },
40
+ { value: 'none', label: labels.none },
41
+ { value: 'solid', label: labels.solid },
42
+ { value: 'dashed', label: labels.dashed },
43
+ { value: 'dotted', label: labels.dotted },
44
+ { value: 'double', label: labels.double },
45
+ ] }) }), _jsx(Form.Item, { label: labels.width, children: _jsx(InputNumber, { "aria-label": labels.width, value: value?.width == null ? undefined : formatWidth(value.width), onChange: next => updateBorder({ width: parseWidth(next, border.width) }), size: "small", disabled: disabled?.('border.width'), style: { width: '100%' }, min: minWidth, max: maxWidth, step: step }) }), _jsx(Form.Item, { label: labels.color, children: _jsx(ColorPicker, { "aria-label": labels.color, size: "small", value: value?.color, onChange: color => updateBorder({ color: color.toHexString() }), disabled: disabled?.('border.color') }) }), _jsx(Form.Item, { label: labels.sides, children: _jsx(Checkbox.Group, { value: selectedSides, onChange: (values) => {
46
+ const selected = new Set(values);
47
+ updateBorder({
48
+ sides: {
49
+ top: selected.has('top'),
50
+ right: selected.has('right'),
51
+ bottom: selected.has('bottom'),
52
+ left: selected.has('left'),
53
+ },
54
+ });
55
+ }, children: _jsx("div", { "data-testid": "border-editor-sides", style: {
56
+ display: 'flex',
57
+ flexWrap: 'nowrap',
58
+ gap: 8,
59
+ alignItems: 'center',
60
+ whiteSpace: 'nowrap',
61
+ }, children: SIDE_ORDER.map(side => (_jsxs("span", { style: { display: 'inline-flex', alignItems: 'center', gap: 4 }, children: [_jsx(Checkbox, { value: side, "aria-label": labels.sideAriaLabels?.[side] ?? labels.sideLabels[side], disabled: disabled?.(`border.sides.${side}`) }), _jsx("span", { "aria-hidden": "true", children: labels.sideLabels[side] })] }, side))) }) }) }), _jsx("div", { style: { ...borderPreviewStyle(border), width: 60, height: 40, margin: '8px auto 0' } })] }));
62
+ };
63
+ export const PaddingEditor = ({ value, labels, onChange, disabled, formatValue = value => value, parseValue = (next, fallback) => Number(next ?? fallback), min = 0, step = 0.1, }) => {
64
+ const updateField = (field, next) => {
65
+ const padding = { ...(value ?? {}) };
66
+ if (next === null || next === undefined || next === '') {
67
+ delete padding[field];
68
+ }
69
+ else {
70
+ padding[field] = parseValue(next, value?.[field] ?? 0);
71
+ }
72
+ onChange(Object.keys(padding).length > 0 ? padding : undefined);
73
+ };
74
+ return (_jsxs(_Fragment, { children: [_jsx("div", { style: { fontSize: 12, color: '#666', marginBottom: 4 }, children: labels.title }), _jsx(Form.Item, { label: labels.top, children: _jsx(InputNumber, { "aria-label": labels.ariaTop, value: value?.top == null ? undefined : formatValue(value.top), onChange: next => updateField('top', next), size: "small", disabled: disabled?.('padding.top'), style: { width: '100%' }, min: min, step: step }) }), _jsx(Form.Item, { label: labels.right, children: _jsx(InputNumber, { "aria-label": labels.ariaRight, value: value?.right == null ? undefined : formatValue(value.right), onChange: next => updateField('right', next), size: "small", disabled: disabled?.('padding.right'), style: { width: '100%' }, min: min, step: step }) }), _jsx(Form.Item, { label: labels.bottom, children: _jsx(InputNumber, { "aria-label": labels.ariaBottom, value: value?.bottom == null ? undefined : formatValue(value.bottom), onChange: next => updateField('bottom', next), size: "small", disabled: disabled?.('padding.bottom'), style: { width: '100%' }, min: min, step: step }) }), _jsx(Form.Item, { label: labels.left, children: _jsx(InputNumber, { "aria-label": labels.ariaLeft, value: value?.left == null ? undefined : formatValue(value.left), onChange: next => updateField('left', next), size: "small", disabled: disabled?.('padding.left'), style: { width: '100%' }, min: min, step: step }) })] }));
75
+ };
76
+ function borderPreviewStyle(border) {
77
+ const value = border.style !== 'none' && border.width > 0
78
+ ? `${border.width}mm ${border.style} ${border.color}`
79
+ : '1px solid #eee';
80
+ return {
81
+ borderTop: border.sides.top ? value : '1px solid #eee',
82
+ borderRight: border.sides.right ? value : '1px solid #eee',
83
+ borderBottom: border.sides.bottom ? value : '1px solid #eee',
84
+ borderLeft: border.sides.left ? value : '1px solid #eee',
85
+ };
86
+ }
87
+ //# sourceMappingURL=BoxStyleEditors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BoxStyleEditors.js","sourceRoot":"","sources":["../../../src/components/properties/BoxStyleEditors.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import React from 'react';
2
+ import type { FontConfig, ReportFontOption } from '@report-designer/core';
3
+ export type FontField = 'family' | 'size' | 'color' | 'bold' | 'italic' | 'underline' | 'strikethrough';
4
+ export interface FontEditorLabels {
5
+ fontFamily: string;
6
+ fontSize: string;
7
+ textColor: string;
8
+ bold: string;
9
+ italic: string;
10
+ underline: string;
11
+ strike: string;
12
+ }
13
+ export interface FontEditorProps {
14
+ value: FontConfig;
15
+ onChange: (next: FontConfig) => void;
16
+ reportFontOptions: ReportFontOption[];
17
+ fields?: FontField[];
18
+ sizeRange?: [number, number];
19
+ disabled?: boolean | ((field: FontField) => boolean);
20
+ labels: FontEditorLabels;
21
+ ariaLabels?: Partial<FontEditorLabels>;
22
+ }
23
+ /**
24
+ * 字体编辑器公共组件。
25
+ * 通过 fields 白名单控制渲染哪些字段,解决不同场景(图表轴标签仅 size+color、主标题全家桶、水印仅 family+size)的能力差异。
26
+ */
27
+ export declare const FontEditor: React.FC<FontEditorProps>;
28
+ //# sourceMappingURL=FontEditor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FontEditor.d.ts","sourceRoot":"","sources":["../../../src/components/properties/FontEditor.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE1E,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,GAAG,WAAW,GAAG,eAAe,CAAC;AAIxG,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,UAAU,CAAC;IAClB,QAAQ,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,CAAC;IACrC,iBAAiB,EAAE,gBAAgB,EAAE,CAAC;IACtC,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC;IACrB,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,QAAQ,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,KAAK,EAAE,SAAS,KAAK,OAAO,CAAC,CAAC;IACrD,MAAM,EAAE,gBAAgB,CAAC;IACzB,UAAU,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;CACxC;AAKD;;;GAGG;AACH,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAiIhD,CAAC"}
@@ -0,0 +1,22 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import React from 'react';
3
+ import { Button, ColorPicker, Form, InputNumber, Select, Space } from 'antd';
4
+ import { BoldOutlined, ItalicOutlined, StrikethroughOutlined, UnderlineOutlined } from '@ant-design/icons';
5
+ const ALL_FIELDS = ['family', 'size', 'color', 'bold', 'italic', 'underline', 'strikethrough'];
6
+ const FORM_LABEL_COL = { span: 8 };
7
+ const FORM_WRAPPER_COL = { span: 16 };
8
+ /**
9
+ * 字体编辑器公共组件。
10
+ * 通过 fields 白名单控制渲染哪些字段,解决不同场景(图表轴标签仅 size+color、主标题全家桶、水印仅 family+size)的能力差异。
11
+ */
12
+ export const FontEditor = ({ value, onChange, reportFontOptions, fields = ALL_FIELDS, sizeRange = [6, 72], disabled = false, labels, ariaLabels, }) => {
13
+ const active = React.useMemo(() => new Set(fields), [fields]);
14
+ const isDisabled = React.useCallback((field) => (typeof disabled === 'function' ? disabled(field) : disabled), [disabled]);
15
+ const update = React.useCallback((field, next) => onChange({ ...value, [field]: next }), [onChange, value]);
16
+ const fontOptions = React.useMemo(() => reportFontOptions.map(option => ({
17
+ value: option.value,
18
+ label: _jsx("span", { style: { fontFamily: option.fontFamily }, children: option.label }),
19
+ })), [reportFontOptions]);
20
+ return (_jsxs(Form, { size: "small", labelCol: FORM_LABEL_COL, wrapperCol: FORM_WRAPPER_COL, component: false, children: [active.has('family') ? (_jsx(Form.Item, { label: labels.fontFamily, children: _jsx(Select, { "aria-label": ariaLabels?.fontFamily ?? labels.fontFamily, value: value.family || '', onChange: v => update('family', v), size: "small", disabled: isDisabled('family'), style: { width: '100%' }, showSearch: true, allowClear: true, options: fontOptions }) })) : null, active.has('size') ? (_jsx(Form.Item, { label: labels.fontSize, children: _jsx(InputNumber, { "aria-label": ariaLabels?.fontSize ?? labels.fontSize, value: value.size, onChange: v => update('size', v ?? sizeRange[0]), size: "small", disabled: isDisabled('size'), style: { width: '100%' }, min: sizeRange[0], max: sizeRange[1] }) })) : null, active.has('color') ? (_jsx(Form.Item, { label: labels.textColor, children: _jsx(ColorPicker, { "aria-label": ariaLabels?.textColor ?? labels.textColor, size: "small", value: value.color || '#000000', onChange: color => update('color', color.toHexString()), disabled: isDisabled('color') }) })) : null, active.has('bold') || active.has('italic') || active.has('underline') || active.has('strikethrough') ? (_jsx(Form.Item, { children: _jsxs(Space, { children: [active.has('bold') ? (_jsx(Button, { "aria-label": ariaLabels?.bold ?? labels.bold, title: labels.bold, icon: _jsx(BoldOutlined, {}), size: "small", type: value.bold ? 'primary' : 'default', style: { minWidth: 32 }, onClick: () => update('bold', !value.bold), disabled: isDisabled('bold') })) : null, active.has('italic') ? (_jsx(Button, { "aria-label": ariaLabels?.italic ?? labels.italic, title: labels.italic, icon: _jsx(ItalicOutlined, {}), size: "small", type: value.italic ? 'primary' : 'default', style: { minWidth: 32 }, onClick: () => update('italic', !value.italic), disabled: isDisabled('italic') })) : null, active.has('underline') ? (_jsx(Button, { "aria-label": ariaLabels?.underline ?? labels.underline, title: labels.underline, icon: _jsx(UnderlineOutlined, {}), size: "small", type: value.underline ? 'primary' : 'default', style: { minWidth: 32 }, onClick: () => update('underline', !value.underline), disabled: isDisabled('underline') })) : null, active.has('strikethrough') ? (_jsx(Button, { "aria-label": ariaLabels?.strike ?? labels.strike, title: labels.strike, icon: _jsx(StrikethroughOutlined, {}), size: "small", type: value.strikethrough ? 'primary' : 'default', style: { minWidth: 32 }, onClick: () => update('strikethrough', !value.strikethrough), disabled: isDisabled('strikethrough') })) : null] }) })) : null] }));
21
+ };
22
+ //# sourceMappingURL=FontEditor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FontEditor.js","sourceRoot":"","sources":["../../../src/components/properties/FontEditor.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ export declare const DesignerRibbon: React.FC;
3
+ //# sourceMappingURL=DesignerRibbon.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DesignerRibbon.d.ts","sourceRoot":"","sources":["../../../src/components/ribbon/DesignerRibbon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAuC,MAAM,OAAO,CAAC;AA+D5D,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EA6UlC,CAAC"}
@@ -0,0 +1,193 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { useEffect, useMemo, useState } from 'react';
3
+ import { Button, Dropdown, Popover, Select, Tooltip } from 'antd';
4
+ import { AlignCenterOutlined, AlignLeftOutlined, AlignRightOutlined, ArrowDownOutlined, DownOutlined, ArrowUpOutlined, AppstoreOutlined, BarcodeOutlined, BarChartOutlined, BlockOutlined, PartitionOutlined, BorderOuterOutlined, BorderOutlined, CalendarOutlined, CheckSquareOutlined, ColumnHeightOutlined, ColumnWidthOutlined, CopyOutlined, CompressOutlined, DeleteOutlined, FieldNumberOutlined, FileTextOutlined, FontSizeOutlined, LineOutlined, LayoutOutlined, PictureOutlined, PrinterOutlined, ProfileOutlined, SaveOutlined, SettingOutlined, TableOutlined, ScissorOutlined, UndoOutlined, RedoOutlined, ApartmentOutlined, VerticalAlignBottomOutlined, VerticalAlignMiddleOutlined, VerticalAlignTopOutlined, } from '@ant-design/icons';
5
+ import { useDesignerStore } from '../../store/designer-store';
6
+ import { PageSetupDialog } from '../dialogs/PageSetupDialog';
7
+ import { useDesignerI18n } from '../../i18n';
8
+ import { isTextStylePropertyLocked } from '../../text-style-application';
9
+ import { BAND_COLORS, BAND_DESCRIPTION_KEYS, BAND_GLYPH_KEYS, BAND_LABEL_KEYS, SUPPORTED_INSERT_BAND_TYPES } from '../../band-metadata';
10
+ import { createDefaultComponent } from '../../component-factory';
11
+ import { COMPONENT_TYPES } from '../../component-palette-model';
12
+ const TAB_KEYS = ['home', 'insert', 'pageLayout', 'layout', 'preview'];
13
+ const TAB_LABEL_KEYS = {
14
+ home: 'ribbon.home',
15
+ insert: 'ribbon.insert',
16
+ pageLayout: 'ribbon.pageLayout',
17
+ layout: 'ribbon.layout',
18
+ preview: 'ribbon.preview',
19
+ };
20
+ export const DesignerRibbon = () => {
21
+ const { t } = useDesignerI18n();
22
+ const [activeTab, setActiveTab] = useState('home');
23
+ const [pageDialogOpen, setPageDialogOpen] = useState(false);
24
+ const undo = useDesignerStore(s => s.undo);
25
+ const redo = useDesignerStore(s => s.redo);
26
+ const canUndo = useDesignerStore(s => s.canUndo);
27
+ const canRedo = useDesignerStore(s => s.canRedo);
28
+ const deleteSelected = useDesignerStore(s => s.deleteSelected);
29
+ const copySelected = useDesignerStore(s => s.copySelected);
30
+ const cutSelected = useDesignerStore(s => s.cutSelected);
31
+ const duplicateSelected = useDesignerStore(s => s.duplicateSelected);
32
+ const pasteClipboard = useDesignerStore(s => s.pasteClipboard);
33
+ const setFontBold = useDesignerStore(s => s.setFontBold);
34
+ const setFontSize = useDesignerStore(s => s.setFontSize);
35
+ const setTextAlign = useDesignerStore(s => s.setTextAlign);
36
+ const setBorderAll = useDesignerStore(s => s.setBorderAll);
37
+ const alignComponents = useDesignerStore(s => s.alignComponents);
38
+ const sizeComponents = useDesignerStore(s => s.sizeComponents);
39
+ const bringToFront = useDesignerStore(s => s.bringToFront);
40
+ const sendToBack = useDesignerStore(s => s.sendToBack);
41
+ const getSelectedFont = useDesignerStore(s => s.getSelectedFont);
42
+ const getSelectedTextAlign = useDesignerStore(s => s.getSelectedTextAlign);
43
+ const openTextStyleLibrary = useDesignerStore(s => s.openTextStyleLibrary);
44
+ const openConditionalFormatLibrary = useDesignerStore(s => s.openConditionalFormatLibrary);
45
+ const setMode = useDesignerStore(s => s.setMode);
46
+ const beginBandInsert = useDesignerStore(s => s.beginBandInsert);
47
+ const selectedCount = useDesignerStore(s => s.selectedComponentIds.length);
48
+ const selectedComponentIds = useDesignerStore(s => s.selectedComponentIds);
49
+ const currentPageId = useDesignerStore(s => s.currentPageId);
50
+ const clipboardCount = useDesignerStore(s => s.clipboard.length);
51
+ const template = useDesignerStore(s => s.template);
52
+ const mode = useDesignerStore(s => s.mode);
53
+ const fontInfo = useMemo(() => getSelectedFont(), [currentPageId, getSelectedFont, selectedComponentIds, template]);
54
+ const textAlign = useMemo(() => getSelectedTextAlign(), [currentPageId, getSelectedTextAlign, selectedComponentIds, template]);
55
+ const hasSelection = selectedCount > 0;
56
+ const hasMultiSelection = selectedCount >= 2;
57
+ const hasDistributableSelection = selectedCount >= 3;
58
+ const hasClipboard = clipboardCount > 0;
59
+ const selectedTextComponents = useMemo(() => {
60
+ if (selectedCount === 0)
61
+ return [];
62
+ const selectedIds = new Set(selectedComponentIds);
63
+ return template.pages
64
+ .flatMap(page => page.bands)
65
+ .flatMap(band => band.components)
66
+ .filter((component) => (selectedIds.has(component.id) && component.type === 'text'));
67
+ }, [selectedComponentIds, selectedCount, template]);
68
+ const isTextStyleLocked = (pathOrPrefix) => selectedTextComponents.some(component => isTextStylePropertyLocked(component, pathOrPrefix));
69
+ const fontSizeDisabled = !fontInfo || isTextStyleLocked('font.size');
70
+ const fontBoldDisabled = !fontInfo || isTextStyleLocked('font.bold');
71
+ const textAlignDisabled = textAlign === null || isTextStyleLocked('textAlign');
72
+ const borderDisabled = selectedCount === 0 || isTextStyleLocked('border');
73
+ useEffect(() => {
74
+ if (mode === 'preview') {
75
+ setActiveTab('preview');
76
+ }
77
+ else if (activeTab === 'preview') {
78
+ setActiveTab('home');
79
+ }
80
+ }, [mode, activeTab]);
81
+ const saveTemplate = () => {
82
+ const json = JSON.stringify(useDesignerStore.getState().template, null, 2);
83
+ const blob = new Blob([json], { type: 'application/json' });
84
+ const url = URL.createObjectURL(blob);
85
+ const link = document.createElement('a');
86
+ link.href = url;
87
+ link.download = `${template.name || 'report'}.json`;
88
+ link.click();
89
+ URL.revokeObjectURL(url);
90
+ };
91
+ const handleTabClick = (tab) => {
92
+ setActiveTab(tab);
93
+ setMode(tab === 'preview' ? 'preview' : 'design');
94
+ };
95
+ const addComponentToCurrentBand = (component) => {
96
+ const state = useDesignerStore.getState();
97
+ const page = state.template.pages.find(item => item.id === state.currentPageId);
98
+ if (!page)
99
+ return;
100
+ const targetBand = page.bands.find(band => band.id === state.selectedBandId)
101
+ ?? page.bands.find(band => band.type === 'data')
102
+ ?? page.bands[0];
103
+ if (!targetBand)
104
+ return;
105
+ state.addComponent(page.id, targetBand.id, component);
106
+ state.selectBand(null);
107
+ state.selectComponents([component.id]);
108
+ };
109
+ const createRibbonComponent = (type) => (createDefaultComponent(type, 10, 8));
110
+ const addComponentType = (type) => addComponentToCurrentBand(createRibbonComponent(type));
111
+ const updateCurrentPage = (settings) => {
112
+ const state = useDesignerStore.getState();
113
+ if (!state.currentPageId)
114
+ return;
115
+ state.setPageSettings(state.currentPageId, settings);
116
+ };
117
+ const setPagePreset = (width, height, orientation) => {
118
+ updateCurrentPage({ width, height, orientation });
119
+ };
120
+ const setMargins = (margins) => updateCurrentPage({ margins });
121
+ const renderMultiSelectLayoutGroups = () => (_jsxs(_Fragment, { children: [_jsxs(RibbonGroup, { title: t('ribbon.arrange'), children: [_jsx(RibbonButton, { label: t('ribbon.bringToFront'), icon: _jsx(ArrowUpOutlined, { "aria-hidden": true }), onClick: bringToFront, disabled: !hasSelection }), _jsx(RibbonButton, { label: t('ribbon.sendToBack'), icon: _jsx(ArrowDownOutlined, { "aria-hidden": true }), onClick: sendToBack, disabled: !hasSelection })] }), _jsxs(RibbonGroup, { title: t('ribbon.align'), children: [_jsx(RibbonButton, { label: t('ribbon.alignLeft'), icon: _jsx(AlignLeftOutlined, { "aria-hidden": true }), onClick: () => alignComponents('left'), disabled: !hasMultiSelection }), _jsx(RibbonButton, { label: t('ribbon.alignCenter'), icon: _jsx(AlignCenterOutlined, { "aria-hidden": true }), onClick: () => alignComponents('center-h'), disabled: !hasMultiSelection }), _jsx(RibbonButton, { label: t('ribbon.alignRight'), icon: _jsx(AlignRightOutlined, { "aria-hidden": true }), onClick: () => alignComponents('right'), disabled: !hasMultiSelection }), _jsx(RibbonButton, { label: t('ribbon.alignTop'), icon: _jsx(VerticalAlignTopOutlined, { "aria-hidden": true }), onClick: () => alignComponents('top'), disabled: !hasMultiSelection }), _jsx(RibbonButton, { label: t('ribbon.alignMiddle'), icon: _jsx(VerticalAlignMiddleOutlined, { "aria-hidden": true }), onClick: () => alignComponents('center-v'), disabled: !hasMultiSelection }), _jsx(RibbonButton, { label: t('ribbon.alignBottom'), icon: _jsx(VerticalAlignBottomOutlined, { "aria-hidden": true }), onClick: () => alignComponents('bottom'), disabled: !hasMultiSelection })] }), _jsxs(RibbonGroup, { title: t('ribbon.distribute'), children: [_jsx(RibbonButton, { label: t('ribbon.distributeHorizontal'), icon: _jsx(ColumnWidthOutlined, { "aria-hidden": true }), onClick: () => alignComponents('distribute-h'), disabled: !hasDistributableSelection }), _jsx(RibbonButton, { label: t('ribbon.distributeVertical'), icon: _jsx(ColumnHeightOutlined, { "aria-hidden": true }), onClick: () => alignComponents('distribute-v'), disabled: !hasDistributableSelection })] }), _jsxs(RibbonGroup, { title: t('ribbon.sizeTools'), children: [_jsx(RibbonButton, { label: t('ribbon.sameWidth'), icon: _jsx(ColumnWidthOutlined, { "aria-hidden": true }), onClick: () => sizeComponents('same-width'), disabled: !hasMultiSelection }), _jsx(RibbonButton, { label: t('ribbon.sameHeight'), icon: _jsx(ColumnHeightOutlined, { "aria-hidden": true }), onClick: () => sizeComponents('same-height'), disabled: !hasMultiSelection }), _jsx(RibbonButton, { label: t('ribbon.sameSize'), icon: _jsx(CompressOutlined, { "aria-hidden": true }), onClick: () => sizeComponents('same-size'), disabled: !hasMultiSelection })] }), _jsx(RibbonGroup, { title: t('ribbon.borders'), children: _jsx(Tooltip, { title: t('ribbon.allBorders'), children: _jsx(Button, { "aria-label": t('ribbon.allBorders'), size: "small", icon: _jsx(BorderOuterOutlined, { "aria-hidden": true }), disabled: borderDisabled, onClick: () => setBorderAll(true) }) }) })] }));
122
+ const renderRibbonGroups = () => {
123
+ const bandMenuItems = SUPPORTED_INSERT_BAND_TYPES.map(type => ({
124
+ key: type,
125
+ label: (_jsx(Popover, { placement: "right", trigger: "hover", mouseEnterDelay: 0, mouseLeaveDelay: 0, classNames: { root: 'rd-band-help-popover' }, content: _jsx(BandDescriptionPanel, { type: type }), children: _jsxs("span", { className: "rd-band-menu-item", "data-band-type": type, "data-testid": `band-menu-item-${type}`, children: [_jsx(BandGlyph, { type: type }), _jsx("span", { children: t(BAND_LABEL_KEYS[type]) })] }) })),
126
+ }));
127
+ if (activeTab === 'insert') {
128
+ return (_jsxs(_Fragment, { children: [_jsx(RibbonGroup, { title: t('ribbon.bands'), children: _jsx(Dropdown, { trigger: ['click'], menu: {
129
+ items: bandMenuItems,
130
+ onClick: ({ key }) => beginBandInsert(key),
131
+ }, children: _jsx(Button, { "data-testid": "ribbon-insert-band-button", "aria-label": t('ribbon.insertBand'), size: "small", style: { minWidth: 52 }, icon: _jsx(RibbonComboIcon, { main: _jsx(ApartmentOutlined, { "aria-hidden": true }), suffix: _jsx(DownOutlined, { "aria-hidden": true }) }) }) }) }), _jsx(RibbonGroup, { title: t('ribbon.components'), children: COMPONENT_TYPES.map(item => (_jsx(RibbonButton, { label: t(item.labelKey), icon: renderComponentIcon(item.type), onClick: () => addComponentType(item.type) }, item.type))) })] }));
132
+ }
133
+ if (activeTab === 'pageLayout') {
134
+ return (_jsxs(_Fragment, { children: [_jsx(RibbonGroup, { title: t('ribbon.pageSetup'), children: _jsx(RibbonButton, { label: t('ribbon.pageSettings'), icon: _jsx(SettingOutlined, { "aria-hidden": true }), onClick: () => setPageDialogOpen(true) }) }), _jsxs(RibbonGroup, { title: t('ribbon.size'), children: [_jsx(RibbonButton, { label: t('ribbon.a4Portrait'), icon: _jsx(ColumnHeightOutlined, { "aria-hidden": true }), onClick: () => setPagePreset(210, 297, 'portrait') }), _jsx(RibbonButton, { label: t('ribbon.a4Landscape'), icon: _jsx(ColumnWidthOutlined, { "aria-hidden": true }), onClick: () => setPagePreset(297, 210, 'landscape') })] }), _jsxs(RibbonGroup, { title: t('ribbon.margins'), children: [_jsx(RibbonButton, { label: t('ribbon.normalMargins'), icon: _jsx(BorderOuterOutlined, { "aria-hidden": true }), onClick: () => setMargins({ top: 10, right: 10, bottom: 10, left: 10 }) }), _jsx(RibbonButton, { label: t('ribbon.narrowMargins'), icon: _jsx(CompressOutlined, { "aria-hidden": true }), onClick: () => setMargins({ top: 5, right: 5, bottom: 5, left: 5 }) }), _jsx(RibbonButton, { label: t('ribbon.wideMargins'), icon: _jsx(AppstoreOutlined, { "aria-hidden": true }), onClick: () => setMargins({ top: 20, right: 20, bottom: 20, left: 20 }) })] })] }));
135
+ }
136
+ if (activeTab === 'layout') {
137
+ return renderMultiSelectLayoutGroups();
138
+ }
139
+ if (activeTab === 'preview') {
140
+ return (_jsx(_Fragment, { children: _jsx(RibbonGroup, { title: t('ribbon.printPreview'), children: _jsx(Tooltip, { title: t('ribbon.printPreview'), children: _jsx(Button, { size: "small", icon: _jsx(PrinterOutlined, {}), type: "primary", onClick: () => setMode('preview'), children: t('ribbon.preview') }) }) }) }));
141
+ }
142
+ return (_jsxs(_Fragment, { children: [_jsx(RibbonGroup, { title: t('ribbon.file'), children: _jsx(Tooltip, { title: t('ribbon.saveTemplate'), children: _jsx(Button, { size: "small", icon: _jsx(SaveOutlined, {}), onClick: saveTemplate }) }) }), _jsxs(RibbonGroup, { title: t('ribbon.history'), children: [_jsx(Tooltip, { title: t('shell.undo'), children: _jsx(Button, { size: "small", icon: _jsx(UndoOutlined, {}), disabled: !canUndo(), onClick: undo }) }), _jsx(Tooltip, { title: t('shell.redo'), children: _jsx(Button, { size: "small", icon: _jsx(RedoOutlined, {}), disabled: !canRedo(), onClick: redo }) })] }), _jsxs(RibbonGroup, { title: t('ribbon.clipboard'), children: [_jsx(RibbonButton, { label: t('ribbon.copy'), icon: _jsx(CopyOutlined, { "aria-hidden": true }), onClick: copySelected, disabled: !hasSelection }), _jsx(RibbonButton, { label: t('ribbon.cut'), icon: _jsx(ScissorOutlined, { "aria-hidden": true }), onClick: cutSelected, disabled: !hasSelection }), _jsx(RibbonButton, { label: t('ribbon.paste'), icon: _jsx(SaveOutlined, { "aria-hidden": true, rotate: 90 }), onClick: pasteClipboard, disabled: !hasClipboard }), _jsx(RibbonButton, { label: t('ribbon.duplicate'), icon: _jsx(CopyOutlined, { "aria-hidden": true }), onClick: duplicateSelected, disabled: !hasSelection }), _jsx(RibbonButton, { label: t('ribbon.deleteSelected'), icon: _jsx(DeleteOutlined, { "aria-hidden": true }), onClick: deleteSelected, disabled: !hasSelection, danger: true })] }), _jsxs(RibbonGroup, { title: t('ribbon.font'), children: [_jsx(Select, { size: "small", "aria-label": t('ribbon.fontSizeControl'), value: fontInfo?.size || 12, style: { width: 64 }, suffixIcon: _jsx(FontSizeOutlined, {}), disabled: fontSizeDisabled, onChange: setFontSize, options: [8, 9, 10, 11, 12, 14, 16, 18, 20, 24].map(size => ({ value: size, label: String(size) })) }), _jsx(Button, { "aria-label": t('ribbon.boldControl'), size: "small", disabled: fontBoldDisabled, type: fontInfo?.bold ? 'primary' : 'default', onClick: () => setFontBold(!fontInfo?.bold), children: "B" })] }), _jsxs(RibbonGroup, { title: t('ribbon.align'), children: [_jsx(Button, { "aria-label": `${t('ribbon.text')} ${t('styleLibrary.left')}`, size: "small", icon: _jsx(AlignLeftOutlined, { "aria-hidden": true }), disabled: textAlignDisabled, type: textAlign === 'left' ? 'primary' : 'default', onClick: () => setTextAlign('left') }), _jsx(Button, { "aria-label": `${t('ribbon.text')} ${t('styleLibrary.center')}`, size: "small", icon: _jsx(AlignCenterOutlined, { "aria-hidden": true }), disabled: textAlignDisabled, type: textAlign === 'center' ? 'primary' : 'default', onClick: () => setTextAlign('center') }), _jsx(Button, { "aria-label": `${t('ribbon.text')} ${t('styleLibrary.right')}`, size: "small", icon: _jsx(AlignRightOutlined, { "aria-hidden": true }), disabled: textAlignDisabled, type: textAlign === 'right' ? 'primary' : 'default', onClick: () => setTextAlign('right') })] }), _jsxs(RibbonGroup, { title: t('ribbon.styles'), children: [_jsx(Button, { size: "small", icon: _jsx(AppstoreOutlined, {}), onClick: openTextStyleLibrary, children: t('ribbon.styleDesigner') }), _jsx(Button, { "aria-label": t('ribbon.conditionalFormats'), size: "small", icon: _jsx(PartitionOutlined, { "aria-hidden": true }), onClick: openConditionalFormatLibrary, children: t('ribbon.conditionalFormats') })] })] }));
143
+ };
144
+ return (_jsxs("div", { className: "rd-ribbon", "data-testid": "designer-ribbon", children: [_jsx("div", { className: "rd-ribbon-tabs", children: TAB_KEYS.map((tab) => (_jsx("button", { className: activeTab === tab ? 'rd-ribbon-tab rd-ribbon-tab-active' : 'rd-ribbon-tab', type: "button", onClick: () => handleTabClick(tab), children: t(TAB_LABEL_KEYS[tab]) }, tab))) }), _jsx("div", { className: "rd-ribbon-content", "data-testid": "designer-ribbon-content", children: renderRibbonGroups() }), _jsx(PageSetupDialog, { open: pageDialogOpen, onClose: () => setPageDialogOpen(false) })] }));
145
+ };
146
+ const RibbonGroup = ({ title, children }) => (_jsxs("div", { className: "rd-ribbon-group", children: [_jsx("div", { className: "rd-ribbon-group-controls", children: children }), _jsx("span", { className: "rd-ribbon-divider" }), _jsx("div", { className: "rd-ribbon-group-title", children: title })] }));
147
+ const RibbonButton = ({ label, icon, disabled, danger, onClick }) => (_jsx(Tooltip, { title: label, children: _jsx(Button, { "aria-label": label, size: "small", icon: icon, disabled: disabled, danger: danger, onClick: onClick }) }));
148
+ const RibbonComboIcon = ({ main, suffix }) => (_jsxs("span", { style: { display: 'inline-flex', alignItems: 'center', gap: 2 }, children: [main, _jsx("span", { style: { fontSize: 10 }, children: suffix })] }));
149
+ function renderComponentIcon(type) {
150
+ switch (type) {
151
+ case 'text':
152
+ return _jsx(FontSizeOutlined, { "aria-hidden": true });
153
+ case 'richtext':
154
+ return _jsx(FileTextOutlined, { "aria-hidden": true });
155
+ case 'image':
156
+ return _jsx(PictureOutlined, { "aria-hidden": true });
157
+ case 'table':
158
+ return _jsx(TableOutlined, { "aria-hidden": true });
159
+ case 'chart':
160
+ return _jsx(BarChartOutlined, { "aria-hidden": true });
161
+ case 'barcode':
162
+ return _jsx(BarcodeOutlined, { "aria-hidden": true });
163
+ case 'qrcode':
164
+ return _jsx(AppstoreOutlined, { "aria-hidden": true });
165
+ case 'checkbox':
166
+ return _jsx(CheckSquareOutlined, { "aria-hidden": true });
167
+ case 'pagenumber':
168
+ return _jsx(FieldNumberOutlined, { "aria-hidden": true });
169
+ case 'datetime':
170
+ return _jsx(CalendarOutlined, { "aria-hidden": true });
171
+ case 'line':
172
+ return _jsx(LineOutlined, { "aria-hidden": true });
173
+ case 'shape':
174
+ return _jsx(BorderOutlined, { "aria-hidden": true });
175
+ case 'panel':
176
+ return _jsx(LayoutOutlined, { "aria-hidden": true });
177
+ case 'subreport':
178
+ return _jsx(ProfileOutlined, { "aria-hidden": true });
179
+ default:
180
+ return _jsx(BlockOutlined, { "aria-hidden": true });
181
+ }
182
+ }
183
+ const BandGlyph = ({ type }) => {
184
+ const color = BAND_COLORS[type];
185
+ const glyph = BAND_GLYPH_KEYS[type];
186
+ return (_jsx("span", { className: "rd-band-glyph", "aria-hidden": true, "data-testid": `band-menu-glyph-${type}`, "data-band-color": color, "data-band-glyph": glyph, style: { borderColor: color, color }, children: _jsx("span", { className: `rd-band-glyph-mark rd-band-glyph-${glyph}` }) }));
187
+ };
188
+ const BandDescriptionPanel = ({ type }) => {
189
+ const { t } = useDesignerI18n();
190
+ const color = BAND_COLORS[type];
191
+ return (_jsxs("aside", { className: "rd-band-menu-description", "data-testid": "band-menu-description", style: { borderTopColor: color }, children: [_jsx("div", { className: "rd-band-menu-description-title", children: t(BAND_LABEL_KEYS[type]) }), _jsx("div", { className: "rd-band-menu-description-text", children: t(BAND_DESCRIPTION_KEYS[type]) })] }));
192
+ };
193
+ //# sourceMappingURL=DesignerRibbon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DesignerRibbon.js","sourceRoot":"","sources":["../../../src/components/ribbon/DesignerRibbon.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAClE,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,aAAa,EACb,iBAAiB,EACjB,mBAAmB,EACnB,cAAc,EACd,gBAAgB,EAChB,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,mBAAmB,EACnB,gBAAgB,EAChB,gBAAgB,EAChB,YAAY,EACZ,cAAc,EACd,eAAe,EACf,eAAe,EACf,eAAe,EACf,YAAY,EACZ,eAAe,EACf,aAAa,EACb,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,iBAAiB,EACjB,2BAA2B,EAC3B,2BAA2B,EAC3B,wBAAwB,GACzB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C,OAAO,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,EAAE,WAAW,EAAE,qBAAqB,EAAE,eAAe,EAAE,eAAe,EAAE,2BAA2B,EAAE,MAAM,qBAAqB,CAAC;AACxI,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAEhE,MAAM,QAAQ,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,SAAS,CAAU,CAAC;AAGhF,MAAM,cAAc,GAA0C;IAC5D,IAAI,EAAE,aAAa;IACnB,MAAM,EAAE,eAAe;IACvB,UAAU,EAAE,mBAAmB;IAC/B,MAAM,EAAE,eAAe;IACvB,OAAO,EAAE,gBAAgB;CAC1B,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAa,GAAG,EAAE;IAC3C,MAAM,EAAE,CAAC,EAAE,GAAG,eAAe,EAAE,CAAC;IAChC,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAY,MAAM,CAAC,CAAC;IAC9D,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC5D,MAAM,IAAI,GAAG,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC3C,MAAM,IAAI,GAAG,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC3C,MAAM,OAAO,GAAG,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IACjD,MAAM,OAAO,GAAG,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IACjD,MAAM,cAAc,GAAG,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;IAC/D,MAAM,YAAY,GAAG,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;IAC3D,MAAM,WAAW,GAAG,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;IACzD,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC;IACrE,MAAM,cAAc,GAAG,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;IAC/D,MAAM,WAAW,GAAG,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;IACzD,MAAM,WAAW,GAAG,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;IACzD,MAAM,YAAY,GAAG,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;IAC3D,MAAM,YAAY,GAAG,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;IAC3D,MAAM,eAAe,GAAG,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;IACjE,MAAM,cAAc,GAAG,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;IAC/D,MAAM,YAAY,GAAG,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;IAC3D,MAAM,UAAU,GAAG,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;IACvD,MAAM,eAAe,GAAG,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;IACjE,MAAM,oBAAoB,GAAG,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC;IAC3E,MAAM,oBAAoB,GAAG,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC;IAC3E,MAAM,4BAA4B,GAAG,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC;IAC3F,MAAM,OAAO,GAAG,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IACjD,MAAM,eAAe,GAAG,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;IACjE,MAAM,aAAa,GAAG,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC3E,MAAM,oBAAoB,GAAG,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC;IAC3E,MAAM,aAAa,GAAG,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;IAC7D,MAAM,cAAc,GAAG,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACjE,MAAM,QAAQ,GAAG,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IACnD,MAAM,IAAI,GAAG,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC3C,MAAM,QAAQ,GAAG,OAAO,CACtB,GAAG,EAAE,CAAC,eAAe,EAAE,EACvB,CAAC,aAAa,EAAE,eAAe,EAAE,oBAAoB,EAAE,QAAQ,CAAC,CACjE,CAAC;IACF,MAAM,SAAS,GAAG,OAAO,CACvB,GAAG,EAAE,CAAC,oBAAoB,EAAE,EAC5B,CAAC,aAAa,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,QAAQ,CAAC,CACtE,CAAC;IACF,MAAM,YAAY,GAAG,aAAa,GAAG,CAAC,CAAC;IACvC,MAAM,iBAAiB,GAAG,aAAa,IAAI,CAAC,CAAC;IAC7C,MAAM,yBAAyB,GAAG,aAAa,IAAI,CAAC,CAAC;IACrD,MAAM,YAAY,GAAG,cAAc,GAAG,CAAC,CAAC;IACxC,MAAM,sBAAsB,GAAG,OAAO,CAAC,GAAG,EAAE;QAC1C,IAAI,aAAa,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QACnC,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,oBAAoB,CAAC,CAAC;QAClD,OAAO,QAAQ,CAAC,KAAK;aAClB,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;aAC3B,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC;aAChC,MAAM,CAAC,CAAC,SAAS,EAA8B,EAAE,CAAC,CACjD,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC,IAAI,KAAK,MAAM,CAC3D,CAAC,CAAC;IACP,CAAC,EAAE,CAAC,oBAAoB,EAAE,aAAa,EAAE,QAAQ,CAAC,CAAC,CAAC;IACpD,MAAM,iBAAiB,GAAG,CAAC,YAAoB,EAAE,EAAE,CAAC,sBAAsB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,yBAAyB,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC;IACjJ,MAAM,gBAAgB,GAAG,CAAC,QAAQ,IAAI,iBAAiB,CAAC,WAAW,CAAC,CAAC;IACrE,MAAM,gBAAgB,GAAG,CAAC,QAAQ,IAAI,iBAAiB,CAAC,WAAW,CAAC,CAAC;IACrE,MAAM,iBAAiB,GAAG,SAAS,KAAK,IAAI,IAAI,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAC/E,MAAM,cAAc,GAAG,aAAa,KAAK,CAAC,IAAI,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IAE1E,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,YAAY,CAAC,SAAS,CAAC,CAAC;QAC1B,CAAC;aAAM,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YACnC,YAAY,CAAC,MAAM,CAAC,CAAC;QACvB,CAAC;IACH,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;IAEtB,MAAM,YAAY,GAAG,GAAG,EAAE;QACxB,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAC3E,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC,CAAC;QAC5D,MAAM,GAAG,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QACtC,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QACzC,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;QAChB,IAAI,CAAC,QAAQ,GAAG,GAAG,QAAQ,CAAC,IAAI,IAAI,QAAQ,OAAO,CAAC;QACpD,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC,CAAC;IAEF,MAAM,cAAc,GAAG,CAAC,GAAc,EAAE,EAAE;QACxC,YAAY,CAAC,GAAG,CAAC,CAAC;QAClB,OAAO,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IACpD,CAAC,CAAC;IAEF,MAAM,yBAAyB,GAAG,CAAC,SAA0B,EAAE,EAAE;QAC/D,MAAM,KAAK,GAAG,gBAAgB,CAAC,QAAQ,EAAE,CAAC;QAC1C,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,KAAK,CAAC,aAAa,CAAC,CAAC;QAChF,IAAI,CAAC,IAAI;YAAE,OAAO;QAElB,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,KAAK,CAAC,cAAc,CAAC;eACvE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC;eAC7C,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAEnB,IAAI,CAAC,UAAU;YAAE,OAAO;QAExB,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,EAAE,UAAU,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;QACtD,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACvB,KAAK,CAAC,gBAAgB,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;IACzC,CAAC,CAAC;IAEF,MAAM,qBAAqB,GAAG,CAAC,IAAmB,EAAmB,EAAE,CAAC,CACtE,sBAAsB,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CACpC,CAAC;IAEF,MAAM,gBAAgB,GAAG,CAAC,IAAmB,EAAE,EAAE,CAAC,yBAAyB,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC;IAEzG,MAAM,iBAAiB,GAAG,CAAC,QAAuB,EAAE,EAAE;QACpD,MAAM,KAAK,GAAG,gBAAgB,CAAC,QAAQ,EAAE,CAAC;QAC1C,IAAI,CAAC,KAAK,CAAC,aAAa;YAAE,OAAO;QACjC,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;IACvD,CAAC,CAAC;IAEF,MAAM,aAAa,GAAG,CAAC,KAAa,EAAE,MAAc,EAAE,WAAgC,EAAE,EAAE;QACxF,iBAAiB,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;IACpD,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,CAAC,OAAgB,EAAE,EAAE,CAAC,iBAAiB,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;IAExE,MAAM,6BAA6B,GAAG,GAAG,EAAE,CAAC,CAC1C,8BACE,MAAC,WAAW,IAAC,KAAK,EAAE,CAAC,CAAC,gBAAgB,CAAC,aACrC,KAAC,YAAY,IAAC,KAAK,EAAE,CAAC,CAAC,qBAAqB,CAAC,EAAE,IAAI,EAAE,KAAC,eAAe,0BAAe,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC,YAAY,GAAI,EACxI,KAAC,YAAY,IAAC,KAAK,EAAE,CAAC,CAAC,mBAAmB,CAAC,EAAE,IAAI,EAAE,KAAC,iBAAiB,0BAAe,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,YAAY,GAAI,IAC1H,EAEd,MAAC,WAAW,IAAC,KAAK,EAAE,CAAC,CAAC,cAAc,CAAC,aACnC,KAAC,YAAY,IAAC,KAAK,EAAE,CAAC,CAAC,kBAAkB,CAAC,EAAE,IAAI,EAAE,KAAC,iBAAiB,0BAAe,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC,iBAAiB,GAAI,EAC7J,KAAC,YAAY,IAAC,KAAK,EAAE,CAAC,CAAC,oBAAoB,CAAC,EAAE,IAAI,EAAE,KAAC,mBAAmB,0BAAe,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,CAAC,iBAAiB,GAAI,EACrK,KAAC,YAAY,IAAC,KAAK,EAAE,CAAC,CAAC,mBAAmB,CAAC,EAAE,IAAI,EAAE,KAAC,kBAAkB,0BAAe,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,CAAC,iBAAiB,GAAI,EAChK,KAAC,YAAY,IAAC,KAAK,EAAE,CAAC,CAAC,iBAAiB,CAAC,EAAE,IAAI,EAAE,KAAC,wBAAwB,0BAAe,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC,iBAAiB,GAAI,EAClK,KAAC,YAAY,IAAC,KAAK,EAAE,CAAC,CAAC,oBAAoB,CAAC,EAAE,IAAI,EAAE,KAAC,2BAA2B,0BAAe,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,CAAC,iBAAiB,GAAI,EAC7K,KAAC,YAAY,IAAC,KAAK,EAAE,CAAC,CAAC,oBAAoB,CAAC,EAAE,IAAI,EAAE,KAAC,2BAA2B,0BAAe,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC,iBAAiB,GAAI,IAC/J,EAEd,MAAC,WAAW,IAAC,KAAK,EAAE,CAAC,CAAC,mBAAmB,CAAC,aACxC,KAAC,YAAY,IAAC,KAAK,EAAE,CAAC,CAAC,6BAA6B,CAAC,EAAE,IAAI,EAAE,KAAC,mBAAmB,0BAAe,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,CAAC,yBAAyB,GAAI,EAC1L,KAAC,YAAY,IAAC,KAAK,EAAE,CAAC,CAAC,2BAA2B,CAAC,EAAE,IAAI,EAAE,KAAC,oBAAoB,0BAAe,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,CAAC,yBAAyB,GAAI,IAC7K,EAEd,MAAC,WAAW,IAAC,KAAK,EAAE,CAAC,CAAC,kBAAkB,CAAC,aACvC,KAAC,YAAY,IAAC,KAAK,EAAE,CAAC,CAAC,kBAAkB,CAAC,EAAE,IAAI,EAAE,KAAC,mBAAmB,0BAAe,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,CAAC,iBAAiB,GAAI,EACpK,KAAC,YAAY,IAAC,KAAK,EAAE,CAAC,CAAC,mBAAmB,CAAC,EAAE,IAAI,EAAE,KAAC,oBAAoB,0BAAe,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,aAAa,CAAC,EAAE,QAAQ,EAAE,CAAC,iBAAiB,GAAI,EACvK,KAAC,YAAY,IAAC,KAAK,EAAE,CAAC,CAAC,iBAAiB,CAAC,EAAE,IAAI,EAAE,KAAC,gBAAgB,0BAAe,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC,iBAAiB,GAAI,IACnJ,EAEd,KAAC,WAAW,IAAC,KAAK,EAAE,CAAC,CAAC,gBAAgB,CAAC,YACrC,KAAC,OAAO,IAAC,KAAK,EAAE,CAAC,CAAC,mBAAmB,CAAC,YACpC,KAAC,MAAM,kBAAa,CAAC,CAAC,mBAAmB,CAAC,EAAE,IAAI,EAAC,OAAO,EAAC,IAAI,EAAE,KAAC,mBAAmB,0BAAe,EAAE,QAAQ,EAAE,cAAc,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,GAAI,GAC3J,GACE,IACb,CACJ,CAAC;IAEF,MAAM,kBAAkB,GAAG,GAAG,EAAE;QAC9B,MAAM,aAAa,GAAG,2BAA2B,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC7D,GAAG,EAAE,IAAI;YACT,KAAK,EAAE,CACL,KAAC,OAAO,IACN,SAAS,EAAC,OAAO,EACjB,OAAO,EAAC,OAAO,EACf,eAAe,EAAE,CAAC,EAClB,eAAe,EAAE,CAAC,EAClB,UAAU,EAAE,EAAE,IAAI,EAAE,sBAAsB,EAAE,EAC5C,OAAO,EAAE,KAAC,oBAAoB,IAAC,IAAI,EAAE,IAAI,GAAI,YAE7C,gBAAM,SAAS,EAAC,mBAAmB,oBAAiB,IAAI,iBAAe,kBAAkB,IAAI,EAAE,aAC7F,KAAC,SAAS,IAAC,IAAI,EAAE,IAAI,GAAI,EACzB,yBAAO,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,GAAQ,IAClC,GACC,CACX;SACF,CAAC,CAAC,CAAC;QAEJ,IAAI,SAAS,KAAK,QAAQ,EAAE,CAAC;YAC3B,OAAO,CACL,8BACE,KAAC,WAAW,IAAC,KAAK,EAAE,CAAC,CAAC,cAAc,CAAC,YACnC,KAAC,QAAQ,IACP,OAAO,EAAE,CAAC,OAAO,CAAC,EAClB,IAAI,EAAE;gCACJ,KAAK,EAAE,aAAa;gCACpB,OAAO,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,eAAe,CAAC,GAAe,CAAC;6BACvD,YAED,KAAC,MAAM,mBACO,2BAA2B,gBAC3B,CAAC,CAAC,mBAAmB,CAAC,EAClC,IAAI,EAAC,OAAO,EACZ,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,EACvB,IAAI,EAAE,KAAC,eAAe,IAAC,IAAI,EAAE,KAAC,iBAAiB,0BAAe,EAAE,MAAM,EAAE,KAAC,YAAY,0BAAe,GAAI,GACxG,GACO,GACC,EAEd,KAAC,WAAW,IAAC,KAAK,EAAE,CAAC,CAAC,mBAAmB,CAAC,YACvC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAC3B,KAAC,YAAY,IAEX,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EACvB,IAAI,EAAE,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,EACpC,OAAO,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,IAHrC,IAAI,CAAC,IAAI,CAId,CACH,CAAC,GACU,IACb,CACJ,CAAC;QACJ,CAAC;QAED,IAAI,SAAS,KAAK,YAAY,EAAE,CAAC;YAC/B,OAAO,CACL,8BACE,KAAC,WAAW,IAAC,KAAK,EAAE,CAAC,CAAC,kBAAkB,CAAC,YACvC,KAAC,YAAY,IAAC,KAAK,EAAE,CAAC,CAAC,qBAAqB,CAAC,EAAE,IAAI,EAAE,KAAC,eAAe,0BAAe,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAI,GACpH,EAEd,MAAC,WAAW,IAAC,KAAK,EAAE,CAAC,CAAC,aAAa,CAAC,aAClC,KAAC,YAAY,IAAC,KAAK,EAAE,CAAC,CAAC,mBAAmB,CAAC,EAAE,IAAI,EAAE,KAAC,oBAAoB,0BAAe,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,UAAU,CAAC,GAAI,EAC/I,KAAC,YAAY,IAAC,KAAK,EAAE,CAAC,CAAC,oBAAoB,CAAC,EAAE,IAAI,EAAE,KAAC,mBAAmB,0BAAe,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,WAAW,CAAC,GAAI,IACpI,EAEd,MAAC,WAAW,IAAC,KAAK,EAAE,CAAC,CAAC,gBAAgB,CAAC,aACrC,KAAC,YAAY,IAAC,KAAK,EAAE,CAAC,CAAC,sBAAsB,CAAC,EAAE,IAAI,EAAE,KAAC,mBAAmB,0BAAe,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,GAAI,EACtK,KAAC,YAAY,IAAC,KAAK,EAAE,CAAC,CAAC,sBAAsB,CAAC,EAAE,IAAI,EAAE,KAAC,gBAAgB,0BAAe,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,GAAI,EAC/J,KAAC,YAAY,IAAC,KAAK,EAAE,CAAC,CAAC,oBAAoB,CAAC,EAAE,IAAI,EAAE,KAAC,gBAAgB,0BAAe,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,GAAI,IACrJ,IACb,CACJ,CAAC;QACJ,CAAC;QAED,IAAI,SAAS,KAAK,QAAQ,EAAE,CAAC;YAC3B,OAAO,6BAA6B,EAAE,CAAC;QACzC,CAAC;QAED,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,OAAO,CACL,4BACE,KAAC,WAAW,IAAC,KAAK,EAAE,CAAC,CAAC,qBAAqB,CAAC,YAC1C,KAAC,OAAO,IAAC,KAAK,EAAE,CAAC,CAAC,qBAAqB,CAAC,YACtC,KAAC,MAAM,IAAC,IAAI,EAAC,OAAO,EAAC,IAAI,EAAE,KAAC,eAAe,KAAG,EAAE,IAAI,EAAC,SAAS,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,YAC7F,CAAC,CAAC,gBAAgB,CAAC,GACb,GACD,GACE,GACb,CACJ,CAAC;QACJ,CAAC;QAED,OAAO,CACL,8BACE,KAAC,WAAW,IAAC,KAAK,EAAE,CAAC,CAAC,aAAa,CAAC,YAClC,KAAC,OAAO,IAAC,KAAK,EAAE,CAAC,CAAC,qBAAqB,CAAC,YACtC,KAAC,MAAM,IAAC,IAAI,EAAC,OAAO,EAAC,IAAI,EAAE,KAAC,YAAY,KAAG,EAAE,OAAO,EAAE,YAAY,GAAI,GAC9D,GACE,EAEd,MAAC,WAAW,IAAC,KAAK,EAAE,CAAC,CAAC,gBAAgB,CAAC,aACrC,KAAC,OAAO,IAAC,KAAK,EAAE,CAAC,CAAC,YAAY,CAAC,YAC7B,KAAC,MAAM,IAAC,IAAI,EAAC,OAAO,EAAC,IAAI,EAAE,KAAC,YAAY,KAAG,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,GAAI,GAC5E,EACV,KAAC,OAAO,IAAC,KAAK,EAAE,CAAC,CAAC,YAAY,CAAC,YAC7B,KAAC,MAAM,IAAC,IAAI,EAAC,OAAO,EAAC,IAAI,EAAE,KAAC,YAAY,KAAG,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,GAAI,GAC5E,IACE,EAEd,MAAC,WAAW,IAAC,KAAK,EAAE,CAAC,CAAC,kBAAkB,CAAC,aACvC,KAAC,YAAY,IAAC,KAAK,EAAE,CAAC,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,KAAC,YAAY,0BAAe,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC,YAAY,GAAI,EAC7H,KAAC,YAAY,IAAC,KAAK,EAAE,CAAC,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,KAAC,eAAe,0BAAe,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,YAAY,GAAI,EAC9H,KAAC,YAAY,IAAC,KAAK,EAAE,CAAC,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,KAAC,YAAY,yBAAa,MAAM,EAAE,EAAE,GAAI,EAAE,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,CAAC,YAAY,GAAI,EAC5I,KAAC,YAAY,IAAC,KAAK,EAAE,CAAC,CAAC,kBAAkB,CAAC,EAAE,IAAI,EAAE,KAAC,YAAY,0BAAe,EAAE,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,CAAC,YAAY,GAAI,EACvI,KAAC,YAAY,IAAC,KAAK,EAAE,CAAC,CAAC,uBAAuB,CAAC,EAAE,IAAI,EAAE,KAAC,cAAc,0BAAe,EAAE,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,CAAC,YAAY,EAAE,MAAM,SAAG,IACtI,EAEd,MAAC,WAAW,IAAC,KAAK,EAAE,CAAC,CAAC,aAAa,CAAC,aAClC,KAAC,MAAM,IACL,IAAI,EAAC,OAAO,gBACA,CAAC,CAAC,wBAAwB,CAAC,EACvC,KAAK,EAAE,QAAQ,EAAE,IAAI,IAAI,EAAE,EAC3B,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EACpB,UAAU,EAAE,KAAC,gBAAgB,KAAG,EAChC,QAAQ,EAAE,gBAAgB,EAC1B,QAAQ,EAAE,WAAW,EACrB,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,GACnG,EACF,KAAC,MAAM,kBAAa,CAAC,CAAC,oBAAoB,CAAC,EAAE,IAAI,EAAC,OAAO,EAAC,QAAQ,EAAE,gBAAgB,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,kBAEtK,IACG,EAEd,MAAC,WAAW,IAAC,KAAK,EAAE,CAAC,CAAC,cAAc,CAAC,aACnC,KAAC,MAAM,kBAAa,GAAG,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,mBAAmB,CAAC,EAAE,EAAE,IAAI,EAAC,OAAO,EAAC,IAAI,EAAE,KAAC,iBAAiB,0BAAe,EAAE,QAAQ,EAAE,iBAAiB,EAAE,IAAI,EAAE,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,GAAI,EACnP,KAAC,MAAM,kBAAa,GAAG,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,qBAAqB,CAAC,EAAE,EAAE,IAAI,EAAC,OAAO,EAAC,IAAI,EAAE,KAAC,mBAAmB,0BAAe,EAAE,QAAQ,EAAE,iBAAiB,EAAE,IAAI,EAAE,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAI,EAC3P,KAAC,MAAM,kBAAa,GAAG,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,oBAAoB,CAAC,EAAE,EAAE,IAAI,EAAC,OAAO,EAAC,IAAI,EAAE,KAAC,kBAAkB,0BAAe,EAAE,QAAQ,EAAE,iBAAiB,EAAE,IAAI,EAAE,SAAS,KAAK,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,GAAI,IAC3O,EAEd,MAAC,WAAW,IAAC,KAAK,EAAE,CAAC,CAAC,eAAe,CAAC,aACpC,KAAC,MAAM,IAAC,IAAI,EAAC,OAAO,EAAC,IAAI,EAAE,KAAC,gBAAgB,KAAG,EAAE,OAAO,EAAE,oBAAoB,YAC3E,CAAC,CAAC,sBAAsB,CAAC,GACnB,EACT,KAAC,MAAM,kBACO,CAAC,CAAC,2BAA2B,CAAC,EAC1C,IAAI,EAAC,OAAO,EACZ,IAAI,EAAE,KAAC,iBAAiB,0BAAe,EACvC,OAAO,EAAE,4BAA4B,YAEpC,CAAC,CAAC,2BAA2B,CAAC,GACxB,IACG,IACb,CACJ,CAAC;IACJ,CAAC,CAAC;IAEF,OAAO,CACL,eAAK,SAAS,EAAC,WAAW,iBAAa,iBAAiB,aACtD,cAAK,SAAS,EAAC,gBAAgB,YAC5B,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CACrB,iBAEE,SAAS,EAAE,SAAS,KAAK,GAAG,CAAC,CAAC,CAAC,oCAAoC,CAAC,CAAC,CAAC,eAAe,EACrF,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,YAEjC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,IALlB,GAAG,CAMD,CACV,CAAC,GACE,EAEN,cAAK,SAAS,EAAC,mBAAmB,iBAAa,yBAAyB,YACrE,kBAAkB,EAAE,GACjB,EACN,KAAC,eAAe,IAAC,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,iBAAiB,CAAC,KAAK,CAAC,GAAI,IAC9E,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,WAAW,GAAyD,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CACjG,eAAK,SAAS,EAAC,iBAAiB,aAC9B,cAAK,SAAS,EAAC,0BAA0B,YAAE,QAAQ,GAAO,EAC1D,eAAM,SAAS,EAAC,mBAAmB,GAAG,EACtC,cAAK,SAAS,EAAC,uBAAuB,YAAE,KAAK,GAAO,IAChD,CACP,CAAC;AAEF,MAAM,YAAY,GAMb,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CACnD,KAAC,OAAO,IAAC,KAAK,EAAE,KAAK,YACnB,KAAC,MAAM,kBACO,KAAK,EACjB,IAAI,EAAC,OAAO,EACZ,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,GAChB,GACM,CACX,CAAC;AAEF,MAAM,eAAe,GAAiE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAC1G,gBAAM,KAAK,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,EAAE,aAClE,IAAI,EACL,eAAM,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,YAAG,MAAM,GAAQ,IACzC,CACR,CAAC;AAEF,SAAS,mBAAmB,CAAC,IAAmB;IAC9C,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,MAAM;YACT,OAAO,KAAC,gBAAgB,0BAAe,CAAC;QAC1C,KAAK,UAAU;YACb,OAAO,KAAC,gBAAgB,0BAAe,CAAC;QAC1C,KAAK,OAAO;YACV,OAAO,KAAC,eAAe,0BAAe,CAAC;QACzC,KAAK,OAAO;YACV,OAAO,KAAC,aAAa,0BAAe,CAAC;QACvC,KAAK,OAAO;YACV,OAAO,KAAC,gBAAgB,0BAAe,CAAC;QAC1C,KAAK,SAAS;YACZ,OAAO,KAAC,eAAe,0BAAe,CAAC;QACzC,KAAK,QAAQ;YACX,OAAO,KAAC,gBAAgB,0BAAe,CAAC;QAC1C,KAAK,UAAU;YACb,OAAO,KAAC,mBAAmB,0BAAe,CAAC;QAC7C,KAAK,YAAY;YACf,OAAO,KAAC,mBAAmB,0BAAe,CAAC;QAC7C,KAAK,UAAU;YACb,OAAO,KAAC,gBAAgB,0BAAe,CAAC;QAC1C,KAAK,MAAM;YACT,OAAO,KAAC,YAAY,0BAAe,CAAC;QACtC,KAAK,OAAO;YACV,OAAO,KAAC,cAAc,0BAAe,CAAC;QACxC,KAAK,OAAO;YACV,OAAO,KAAC,cAAc,0BAAe,CAAC;QACxC,KAAK,WAAW;YACd,OAAO,KAAC,eAAe,0BAAe,CAAC;QACzC;YACE,OAAO,KAAC,aAAa,0BAAe,CAAC;IACzC,CAAC;AACH,CAAC;AAED,MAAM,SAAS,GAAiC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE;IAC3D,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAChC,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;IAEpC,OAAO,CACL,eACE,SAAS,EAAC,eAAe,sCAEZ,mBAAmB,IAAI,EAAE,qBACrB,KAAK,qBACL,KAAK,EACtB,KAAK,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,YAEpC,eAAM,SAAS,EAAE,oCAAoC,KAAK,EAAE,GAAI,GAC3D,CACR,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,oBAAoB,GAAiC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE;IACtE,MAAM,EAAE,CAAC,EAAE,GAAG,eAAe,EAAE,CAAC;IAChC,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAEhC,OAAO,CACL,iBACE,SAAS,EAAC,0BAA0B,iBACxB,uBAAuB,EACnC,KAAK,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,aAEhC,cAAK,SAAS,EAAC,gCAAgC,YAAE,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,GAAO,EAChF,cAAK,SAAS,EAAC,+BAA+B,YAAE,CAAC,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,GAAO,IAC/E,CACT,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,15 @@
1
+ import React from 'react';
2
+ import type { ReportFont, RichTextDocument } from '@report-designer/core';
3
+ interface RichTextInlineEditorProps {
4
+ html: string;
5
+ document?: RichTextDocument;
6
+ fonts?: ReportFont[];
7
+ onSave: (value: {
8
+ html: string;
9
+ document: RichTextDocument;
10
+ }) => void;
11
+ onCancel: () => void;
12
+ }
13
+ export declare const RichTextInlineEditor: React.FC<RichTextInlineEditorProps>;
14
+ export {};
15
+ //# sourceMappingURL=RichTextInlineEditor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RichTextInlineEditor.d.ts","sourceRoot":"","sources":["../../../src/components/richtext/RichTextInlineEditor.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4B,MAAM,OAAO,CAAC;AAejD,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAW1E,UAAU,yBAAyB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAC5B,KAAK,CAAC,EAAE,UAAU,EAAE,CAAC;IACrB,MAAM,EAAE,CAAC,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,gBAAgB,CAAA;KAAE,KAAK,IAAI,CAAC;IACtE,QAAQ,EAAE,MAAM,IAAI,CAAC;CACtB;AAOD,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,yBAAyB,CA0JpE,CAAC"}