@extend-ai/react-xlsx 0.20.1 → 0.20.3

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 (99) hide show
  1. package/dist/browser-B73UAN6E.cjs +232 -0
  2. package/dist/browser-B73UAN6E.cjs.map +1 -0
  3. package/dist/browser-KWIEUO2X.js +228 -0
  4. package/dist/browser-KWIEUO2X.js.map +1 -0
  5. package/dist/{chart-renderer-K6GORT3R.cjs → chart-renderer-2EKXNHUD.cjs} +286 -365
  6. package/dist/chart-renderer-2EKXNHUD.cjs.map +1 -0
  7. package/dist/{chart-renderer-K2VM257E.cjs → chart-renderer-W7XW24JI.cjs} +526 -604
  8. package/dist/chart-renderer-W7XW24JI.cjs.map +1 -0
  9. package/dist/{chart-renderer-KGLAI4DN.js → chart-renderer-XBF7EPUS.js} +13 -92
  10. package/dist/chart-renderer-XBF7EPUS.js.map +1 -0
  11. package/dist/{chart-renderer-RXO7WP4Q.js → chart-renderer-ZLJVPLGN.js} +23 -101
  12. package/dist/chart-renderer-ZLJVPLGN.js.map +1 -0
  13. package/dist/{chunk-2MVEKDY2.cjs → chunk-6IGWCJU5.cjs} +25 -9
  14. package/dist/chunk-6IGWCJU5.cjs.map +1 -0
  15. package/dist/chunk-A4S3AMON.js +108 -0
  16. package/dist/chunk-A4S3AMON.js.map +1 -0
  17. package/dist/chunk-AJT23BDP.js +111 -0
  18. package/dist/chunk-AJT23BDP.js.map +1 -0
  19. package/dist/{chunk-CJBI5F6V.cjs → chunk-AZWBTFJI.cjs} +12 -93
  20. package/dist/chunk-AZWBTFJI.cjs.map +1 -0
  21. package/dist/{chunk-GXJO6CK6.js → chunk-HEEFCVWS.js} +40 -12
  22. package/dist/chunk-HEEFCVWS.js.map +1 -0
  23. package/dist/{chunk-3JTCYAUX.js → chunk-HKMFMIKE.js} +14 -3
  24. package/dist/chunk-HKMFMIKE.js.map +1 -0
  25. package/dist/chunk-IDNIGBUM.cjs +108 -0
  26. package/dist/chunk-IDNIGBUM.cjs.map +1 -0
  27. package/dist/chunk-M55TBS4X.cjs +111 -0
  28. package/dist/chunk-M55TBS4X.cjs.map +1 -0
  29. package/dist/{chunk-NBH72POD.js → chunk-PUI6QI4U.js} +11 -92
  30. package/dist/chunk-PUI6QI4U.js.map +1 -0
  31. package/dist/{chunk-WSQDFXDW.js → chunk-VG4JELEQ.js} +22 -6
  32. package/dist/chunk-VG4JELEQ.js.map +1 -0
  33. package/dist/{chunk-54YBFWL3.cjs → chunk-WGRRI25I.cjs} +14 -3
  34. package/dist/chunk-WGRRI25I.cjs.map +1 -0
  35. package/dist/{chunk-HAHCVXCU.cjs → chunk-XISBYOD5.cjs} +787 -759
  36. package/dist/chunk-XISBYOD5.cjs.map +1 -0
  37. package/dist/index.cjs +22 -3
  38. package/dist/index.cjs.map +1 -1
  39. package/dist/index.d.cts +10 -0
  40. package/dist/index.d.ts +10 -0
  41. package/dist/index.js +22 -3
  42. package/dist/index.js.map +1 -1
  43. package/dist/{internal-trWFv9In.d.cts → internal-BJsg5os3.d.cts} +10 -0
  44. package/dist/{internal-trWFv9In.d.ts → internal-BJsg5os3.d.ts} +10 -0
  45. package/dist/internal.cjs +5 -4
  46. package/dist/internal.cjs.map +1 -1
  47. package/dist/internal.d.cts +1 -1
  48. package/dist/internal.d.ts +1 -1
  49. package/dist/internal.js +4 -3
  50. package/dist/office_charts_bg.wasm +0 -0
  51. package/dist/payload-JBPE7GEG.cjs +8 -0
  52. package/dist/payload-JBPE7GEG.cjs.map +1 -0
  53. package/dist/payload-KYNCVJT5.js +6 -0
  54. package/dist/payload-KYNCVJT5.js.map +1 -0
  55. package/dist/preact-LICENSE.txt +21 -0
  56. package/dist/region-map-geography-24TXETDP.cjs +184 -0
  57. package/dist/region-map-geography-24TXETDP.cjs.map +1 -0
  58. package/dist/region-map-geography-OR6DHAF7.js +182 -0
  59. package/dist/region-map-geography-OR6DHAF7.js.map +1 -0
  60. package/dist/rust-office-charts-LICENSE.txt +21 -0
  61. package/dist/shared-chart-3STFRVWT.js +215 -0
  62. package/dist/shared-chart-3STFRVWT.js.map +1 -0
  63. package/dist/shared-chart-BFQNYOIQ.js +221 -0
  64. package/dist/shared-chart-BFQNYOIQ.js.map +1 -0
  65. package/dist/shared-chart-DVC5S2P6.cjs +222 -0
  66. package/dist/shared-chart-DVC5S2P6.cjs.map +1 -0
  67. package/dist/shared-chart-MFQSQG4K.cjs +216 -0
  68. package/dist/shared-chart-MFQSQG4K.cjs.map +1 -0
  69. package/dist/{surface-regl-2NNG62KS.cjs → surface-regl-BBJ6OIKK.cjs} +14 -12
  70. package/dist/surface-regl-BBJ6OIKK.cjs.map +1 -0
  71. package/dist/{surface-regl-TJUWTLAZ.js → surface-regl-R2N54JT2.js} +7 -5
  72. package/dist/{surface-regl-TJUWTLAZ.js.map → surface-regl-R2N54JT2.js.map} +1 -1
  73. package/dist/us-atlas-LICENSE.txt +13 -0
  74. package/dist/vanilla.cjs +5 -4
  75. package/dist/vanilla.cjs.map +1 -1
  76. package/dist/vanilla.d.cts +2 -2
  77. package/dist/vanilla.d.ts +2 -2
  78. package/dist/vanilla.js +4 -3
  79. package/dist/world-atlas-LICENSE.txt +13 -0
  80. package/dist/xlsx-worker.js +15 -0
  81. package/dist/xlsx-worker.js.map +1 -1
  82. package/package.json +9 -7
  83. package/dist/chart-renderer-K2VM257E.cjs.map +0 -1
  84. package/dist/chart-renderer-K6GORT3R.cjs.map +0 -1
  85. package/dist/chart-renderer-KGLAI4DN.js.map +0 -1
  86. package/dist/chart-renderer-RXO7WP4Q.js.map +0 -1
  87. package/dist/chunk-2MVEKDY2.cjs.map +0 -1
  88. package/dist/chunk-3JTCYAUX.js.map +0 -1
  89. package/dist/chunk-54YBFWL3.cjs.map +0 -1
  90. package/dist/chunk-CJBI5F6V.cjs.map +0 -1
  91. package/dist/chunk-GXJO6CK6.js.map +0 -1
  92. package/dist/chunk-HAHCVXCU.cjs.map +0 -1
  93. package/dist/chunk-NBH72POD.js.map +0 -1
  94. package/dist/chunk-WSQDFXDW.js.map +0 -1
  95. package/dist/region-map-geography-VEN5CPRS.cjs +0 -184
  96. package/dist/region-map-geography-VEN5CPRS.cjs.map +0 -1
  97. package/dist/region-map-geography-YD54DI3H.js +0 -182
  98. package/dist/region-map-geography-YD54DI3H.js.map +0 -1
  99. package/dist/surface-regl-2NNG62KS.cjs.map +0 -1
@@ -0,0 +1,222 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
2
+
3
+
4
+ var _chunkM55TBS4Xcjs = require('./chunk-M55TBS4X.cjs');
5
+
6
+
7
+
8
+
9
+
10
+
11
+
12
+ var _chunkAZWBTFJIcjs = require('./chunk-AZWBTFJI.cjs');
13
+ require('./chunk-AD4CGQN2.cjs');
14
+
15
+ // src/shared-chart.tsx
16
+ var svgNamespace = "http://www.w3.org/2000/svg";
17
+ var allowedElements = /* @__PURE__ */ new Set([
18
+ "svg",
19
+ "g",
20
+ "defs",
21
+ "clipPath",
22
+ "rect",
23
+ "circle",
24
+ "ellipse",
25
+ "path",
26
+ "line",
27
+ "polyline",
28
+ "polygon",
29
+ "text",
30
+ "tspan",
31
+ "linearGradient",
32
+ "radialGradient",
33
+ "stop",
34
+ "pattern"
35
+ ]);
36
+ var plainAttributes = /* @__PURE__ */ new Set([
37
+ "x",
38
+ "y",
39
+ "width",
40
+ "height",
41
+ "x1",
42
+ "x2",
43
+ "y1",
44
+ "y2",
45
+ "cx",
46
+ "cy",
47
+ "fx",
48
+ "fy",
49
+ "r",
50
+ "rx",
51
+ "ry",
52
+ "fr",
53
+ "viewBox",
54
+ "transform",
55
+ "d",
56
+ "points",
57
+ "font-family",
58
+ "font-weight",
59
+ "font-size",
60
+ "text-anchor",
61
+ "dominant-baseline",
62
+ "stroke-linecap",
63
+ "stroke-linejoin",
64
+ "stroke-width",
65
+ "stroke-dasharray",
66
+ "opacity",
67
+ "fill-opacity",
68
+ "stroke-opacity",
69
+ "fill-rule",
70
+ "shape-rendering",
71
+ "offset",
72
+ "stop-opacity",
73
+ "gradientUnits",
74
+ "gradientTransform",
75
+ "patternUnits",
76
+ "patternContentUnits",
77
+ "data-chart-kind",
78
+ "data-chart-series",
79
+ "data-chart-point",
80
+ "data-chart-x",
81
+ "data-chart-y"
82
+ ]);
83
+ function safeChartSvg(markup, prefix) {
84
+ const svg = new DOMParser().parseFromString(markup, "image/svg+xml").documentElement;
85
+ if (svg.localName !== "svg" || svg.namespaceURI !== svgNamespace) return null;
86
+ for (const node of [svg, ...Array.from(svg.querySelectorAll("*"))]) {
87
+ if (node.namespaceURI !== svgNamespace || !allowedElements.has(node.localName)) return null;
88
+ for (const { name, value } of Array.from(node.attributes)) {
89
+ if (plainAttributes.has(name) || name === "xmlns") continue;
90
+ if (name === "id" && /^[\w-]+$/.test(value)) {
91
+ node.setAttribute(name, prefix + value);
92
+ continue;
93
+ }
94
+ if (name === "href" && /^(linearGradient|radialGradient)$/.test(node.localName) && /^#[\w-]+$/.test(value)) {
95
+ node.setAttribute(name, "#" + prefix + value.slice(1));
96
+ continue;
97
+ }
98
+ if (["fill", "stroke", "stop-color", "clip-path"].includes(name)) {
99
+ const local = /^url\(#([\w-]+)\)$/.exec(value);
100
+ if (local) {
101
+ node.setAttribute(name, "url(#" + prefix + local[1] + ")");
102
+ continue;
103
+ }
104
+ if (/^(?:#[\da-f]{3,8}|[a-z]+)$/i.test(value)) continue;
105
+ }
106
+ node.removeAttribute(name);
107
+ }
108
+ if (node.hasAttribute("data-chart-series")) {
109
+ node.setAttribute("data-xlsx-chart-series-index", node.getAttribute("data-chart-series"));
110
+ const point = node.getAttribute("data-chart-point");
111
+ if (point != null) node.setAttribute("data-xlsx-chart-point-index", point);
112
+ const kind = node.getAttribute("data-chart-kind");
113
+ if (kind === "bar") node.setAttribute("data-xlsx-chart-selection-mode", "seriesFirst");
114
+ if (kind === "legendEntry") node.setAttribute("data-xlsx-chart-element-kind", kind);
115
+ const style = node.style;
116
+ style.cursor = "pointer";
117
+ style.pointerEvents = "all";
118
+ }
119
+ }
120
+ return svg;
121
+ }
122
+ function renderSharedChart(renderer, chart, source, width, height, prefix) {
123
+ try {
124
+ const svg = renderer.renderChart(source.xml, {
125
+ themeColors: source.themeColors,
126
+ themeOverrideXml: source.themeOverrideXml,
127
+ styleXml: source.styleXml,
128
+ colorStyleXml: source.colorStyleXml,
129
+ width,
130
+ height,
131
+ interactive: true,
132
+ spreadsheetDefaults: true,
133
+ fontFamily: chart.fontFamily,
134
+ data: {
135
+ title: chart.title,
136
+ series: chart.series.map((series) => ({
137
+ chartType: source.kind,
138
+ name: series.name,
139
+ points: Array.from({ length: Math.max(series.values.length, series.categories.length) }, (_2, index) => {
140
+ const value = series.values[index];
141
+ const label = series.categories[index];
142
+ return {
143
+ index,
144
+ value: value == null ? null : String(value),
145
+ categories: series.categories.length || _optionalChain([series, 'access', _3 => _3.categoriesRef, 'optionalAccess', _4 => _4.formula]) ? [{ level: 0, label: label == null ? "" : String(label) }] : []
146
+ };
147
+ })
148
+ }))
149
+ }
150
+ });
151
+ return svg ? safeChartSvg(svg, prefix) : null;
152
+ } catch (e) {
153
+ return null;
154
+ }
155
+ }
156
+ function selectionHandles(svg, chartId, selected) {
157
+ if (!selected || selected.chartId !== chartId || selected.kind === "chart") return null;
158
+ return Array.from(svg.querySelectorAll("[data-chart-point]")).map((node, index) => {
159
+ if (Number(node.getAttribute("data-chart-series")) !== selected.seriesIndex || selected.kind === "point" && Number(node.getAttribute("data-chart-point")) !== selected.pointIndex) return null;
160
+ if (node.getAttribute("data-chart-kind") === "bar") {
161
+ return _chunkM55TBS4Xcjs.renderSelectionRectHandles.call(void 0,
162
+ String(index),
163
+ Number(node.getAttribute("x")),
164
+ Number(node.getAttribute("y")),
165
+ Number(node.getAttribute("width")),
166
+ Number(node.getAttribute("height"))
167
+ );
168
+ }
169
+ if (!node.hasAttribute("data-chart-x") || !node.hasAttribute("data-chart-y")) return null;
170
+ return _chunkM55TBS4Xcjs.renderSelectionRectHandles.call(void 0,
171
+ String(index),
172
+ Number(node.getAttribute("data-chart-x")) - 4,
173
+ Number(node.getAttribute("data-chart-y")) - 4,
174
+ 8,
175
+ 8
176
+ );
177
+ });
178
+ }
179
+ function SharedChartSvg(props) {
180
+ const { chart, rect, renderer, source, selectedChartElement, fallback } = props;
181
+ const id = _chunkAZWBTFJIcjs.g.call(void 0, );
182
+ const width = Math.max(1, rect.width);
183
+ const height = Math.max(1, rect.height);
184
+ const svg = _chunkAZWBTFJIcjs.T.call(void 0, () => renderSharedChart(
185
+ renderer,
186
+ chart,
187
+ source,
188
+ width,
189
+ height,
190
+ "oc-" + id.replace(/[^\w-]/g, "") + "-"
191
+ ), [renderer, chart, source, width, height, id]);
192
+ const graphics = _chunkAZWBTFJIcjs.A.call(void 0, null);
193
+ _chunkAZWBTFJIcjs._.call(void 0, () => {
194
+ if (graphics.current && svg) graphics.current.replaceChildren(svg);
195
+ }, [svg]);
196
+ const handles = _chunkAZWBTFJIcjs.T.call(void 0,
197
+ () => svg && selectionHandles(svg, chart.id, selectedChartElement),
198
+ [svg, chart.id, selectedChartElement]
199
+ );
200
+ const { handlePointerDown, handleDoubleClick } = _chunkM55TBS4Xcjs.useChartEvents.call(void 0, props);
201
+ if (!svg) return /* @__PURE__ */ _chunkAZWBTFJIcjs.u.call(void 0, _chunkAZWBTFJIcjs.S, { children: fallback });
202
+ return /* @__PURE__ */ _chunkAZWBTFJIcjs.u.call(void 0,
203
+ "svg",
204
+ {
205
+ "aria-label": _nullishCoalesce(_nullishCoalesce(chart.title, () => ( chart.name)), () => ( "Chart")),
206
+ "data-xlsx-chart-renderer": "office-charts",
207
+ onDoubleClick: handleDoubleClick,
208
+ onPointerDown: handlePointerDown,
209
+ role: "img",
210
+ style: { display: "block", height: "100%", pointerEvents: "auto", width: "100%" },
211
+ viewBox: `0 0 ${width} ${height}`,
212
+ children: [
213
+ /* @__PURE__ */ _chunkAZWBTFJIcjs.u.call(void 0, "g", { ref: graphics }),
214
+ handles
215
+ ]
216
+ }
217
+ );
218
+ }
219
+
220
+
221
+ exports.SharedChartSvg = SharedChartSvg;
222
+ //# sourceMappingURL=shared-chart-DVC5S2P6.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/runner/work/react-xlsx/react-xlsx/packages/react-xlsx/dist/shared-chart-DVC5S2P6.cjs","../src/shared-chart.tsx"],"names":["_"],"mappings":"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","file":"/home/runner/work/react-xlsx/react-xlsx/packages/react-xlsx/dist/shared-chart-DVC5S2P6.cjs","sourcesContent":[null,"import * as React from \"react\";\nimport type { OfficeCharts } from \"@extend-ai/rust-office-charts\";\nimport { renderSelectionRectHandles, useChartEvents } from \"./chart-interaction\";\nimport type { ChartSvgProps } from \"./chart-renderer\";\nimport type { XlsxChart, XlsxChartRenderSource, XlsxChartElementSelection } from \"./types\";\n\nconst svgNamespace = \"http://www.w3.org/2000/svg\";\nconst allowedElements = new Set([\n \"svg\", \"g\", \"defs\", \"clipPath\", \"rect\", \"circle\", \"ellipse\", \"path\", \"line\", \"polyline\", \"polygon\",\n \"text\", \"tspan\", \"linearGradient\", \"radialGradient\", \"stop\", \"pattern\"\n]);\nconst plainAttributes = new Set([\n \"x\", \"y\", \"width\", \"height\", \"x1\", \"x2\", \"y1\", \"y2\", \"cx\", \"cy\", \"fx\", \"fy\", \"r\", \"rx\", \"ry\", \"fr\",\n \"viewBox\", \"transform\", \"d\", \"points\", \"font-family\", \"font-weight\", \"font-size\", \"text-anchor\",\n \"dominant-baseline\", \"stroke-linecap\", \"stroke-linejoin\", \"stroke-width\", \"stroke-dasharray\",\n \"opacity\", \"fill-opacity\", \"stroke-opacity\", \"fill-rule\", \"shape-rendering\", \"offset\", \"stop-opacity\",\n \"gradientUnits\", \"gradientTransform\", \"patternUnits\", \"patternContentUnits\",\n \"data-chart-kind\", \"data-chart-series\", \"data-chart-point\", \"data-chart-x\", \"data-chart-y\"\n]);\n\nfunction safeChartSvg(markup: string, prefix: string) {\n const svg = new DOMParser().parseFromString(markup, \"image/svg+xml\").documentElement;\n if (svg.localName !== \"svg\" || svg.namespaceURI !== svgNamespace) return null;\n\n // Only local paint servers and inert geometry can enter the document.\n for (const node of [svg, ...Array.from(svg.querySelectorAll(\"*\"))]) {\n if (node.namespaceURI !== svgNamespace || !allowedElements.has(node.localName)) return null;\n for (const { name, value } of Array.from(node.attributes)) {\n if (plainAttributes.has(name) || name === \"xmlns\") continue;\n if (name === \"id\" && /^[\\w-]+$/.test(value)) {\n node.setAttribute(name, prefix + value);\n continue;\n }\n if (name === \"href\" && /^(linearGradient|radialGradient)$/.test(node.localName) && /^#[\\w-]+$/.test(value)) {\n node.setAttribute(name, \"#\" + prefix + value.slice(1));\n continue;\n }\n if ([\"fill\", \"stroke\", \"stop-color\", \"clip-path\"].includes(name)) {\n const local = /^url\\(#([\\w-]+)\\)$/.exec(value);\n if (local) {\n node.setAttribute(name, \"url(#\" + prefix + local[1] + \")\");\n continue;\n }\n if (/^(?:#[\\da-f]{3,8}|[a-z]+)$/i.test(value)) continue;\n }\n node.removeAttribute(name);\n }\n\n if (node.hasAttribute(\"data-chart-series\")) {\n node.setAttribute(\"data-xlsx-chart-series-index\", node.getAttribute(\"data-chart-series\")!);\n const point = node.getAttribute(\"data-chart-point\");\n if (point != null) node.setAttribute(\"data-xlsx-chart-point-index\", point);\n const kind = node.getAttribute(\"data-chart-kind\");\n if (kind === \"bar\") node.setAttribute(\"data-xlsx-chart-selection-mode\", \"seriesFirst\");\n if (kind === \"legendEntry\") node.setAttribute(\"data-xlsx-chart-element-kind\", kind);\n const style = (node as SVGElement).style;\n style.cursor = \"pointer\";\n style.pointerEvents = \"all\";\n }\n }\n return svg;\n}\n\nfunction renderSharedChart(renderer: OfficeCharts, chart: XlsxChart, source: XlsxChartRenderSource, width: number, height: number, prefix: string) {\n try {\n const svg = renderer.renderChart(source.xml, {\n themeColors: source.themeColors,\n themeOverrideXml: source.themeOverrideXml,\n styleXml: source.styleXml,\n colorStyleXml: source.colorStyleXml,\n width, height,\n interactive: true,\n spreadsheetDefaults: true,\n fontFamily: chart.fontFamily,\n data: {\n title: chart.title,\n series: chart.series.map((series) => ({\n chartType: source.kind,\n name: series.name,\n points: Array.from({ length: Math.max(series.values.length, series.categories.length) }, (_, index) => {\n const value = series.values[index];\n const label = series.categories[index];\n return {\n index,\n value: value == null ? null : String(value),\n categories: series.categories.length || series.categoriesRef?.formula\n ? [{ level: 0, label: label == null ? \"\" : String(label) }]\n : []\n };\n })\n }))\n }\n });\n return svg ? safeChartSvg(svg, prefix) : null;\n } catch {\n return null;\n }\n}\n\nfunction selectionHandles(svg: Element, chartId: string, selected: XlsxChartElementSelection | null | undefined) {\n if (!selected || selected.chartId !== chartId || selected.kind === \"chart\") return null;\n return Array.from(svg.querySelectorAll(\"[data-chart-point]\")).map((node, index) => {\n if (Number(node.getAttribute(\"data-chart-series\")) !== selected.seriesIndex\n || (selected.kind === \"point\" && Number(node.getAttribute(\"data-chart-point\")) !== selected.pointIndex)) return null;\n if (node.getAttribute(\"data-chart-kind\") === \"bar\") {\n return renderSelectionRectHandles(String(index), Number(node.getAttribute(\"x\")), Number(node.getAttribute(\"y\")),\n Number(node.getAttribute(\"width\")), Number(node.getAttribute(\"height\")));\n }\n if (!node.hasAttribute(\"data-chart-x\") || !node.hasAttribute(\"data-chart-y\")) return null;\n return renderSelectionRectHandles(String(index), Number(node.getAttribute(\"data-chart-x\")) - 4,\n Number(node.getAttribute(\"data-chart-y\")) - 4, 8, 8);\n });\n}\n\nexport function SharedChartSvg(props: ChartSvgProps & {\n source: XlsxChartRenderSource;\n renderer: OfficeCharts;\n fallback: React.ReactNode;\n}) {\n const { chart, rect, renderer, source, selectedChartElement, fallback } = props;\n const id = React.useId();\n const width = Math.max(1, rect.width);\n const height = Math.max(1, rect.height);\n const svg = React.useMemo(() => renderSharedChart(renderer, chart, source, width, height,\n \"oc-\" + id.replace(/[^\\w-]/g, \"\") + \"-\"), [renderer, chart, source, width, height, id]);\n const graphics = React.useRef<SVGGElement>(null);\n React.useLayoutEffect(() => {\n if (graphics.current && svg) graphics.current.replaceChildren(svg);\n }, [svg]);\n const handles = React.useMemo(() => svg && selectionHandles(svg, chart.id, selectedChartElement),\n [svg, chart.id, selectedChartElement]);\n const { handlePointerDown, handleDoubleClick } = useChartEvents(props);\n if (!svg) return <>{fallback}</>;\n return (\n <svg\n aria-label={chart.title ?? chart.name ?? \"Chart\"}\n data-xlsx-chart-renderer=\"office-charts\"\n onDoubleClick={handleDoubleClick}\n onPointerDown={handlePointerDown}\n role=\"img\"\n style={{ display: \"block\", height: \"100%\", pointerEvents: \"auto\", width: \"100%\" }}\n viewBox={`0 0 ${width} ${height}`}\n >\n <g ref={graphics} />\n {handles}\n </svg>\n );\n}\n"]}
@@ -0,0 +1,216 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
2
+
3
+
4
+ var _chunkIDNIGBUMcjs = require('./chunk-IDNIGBUM.cjs');
5
+ require('./chunk-AD4CGQN2.cjs');
6
+
7
+ // src/shared-chart.tsx
8
+ var _react = require('react'); var React = _interopRequireWildcard(_react);
9
+ var _jsxruntime = require('react/jsx-runtime');
10
+ var svgNamespace = "http://www.w3.org/2000/svg";
11
+ var allowedElements = /* @__PURE__ */ new Set([
12
+ "svg",
13
+ "g",
14
+ "defs",
15
+ "clipPath",
16
+ "rect",
17
+ "circle",
18
+ "ellipse",
19
+ "path",
20
+ "line",
21
+ "polyline",
22
+ "polygon",
23
+ "text",
24
+ "tspan",
25
+ "linearGradient",
26
+ "radialGradient",
27
+ "stop",
28
+ "pattern"
29
+ ]);
30
+ var plainAttributes = /* @__PURE__ */ new Set([
31
+ "x",
32
+ "y",
33
+ "width",
34
+ "height",
35
+ "x1",
36
+ "x2",
37
+ "y1",
38
+ "y2",
39
+ "cx",
40
+ "cy",
41
+ "fx",
42
+ "fy",
43
+ "r",
44
+ "rx",
45
+ "ry",
46
+ "fr",
47
+ "viewBox",
48
+ "transform",
49
+ "d",
50
+ "points",
51
+ "font-family",
52
+ "font-weight",
53
+ "font-size",
54
+ "text-anchor",
55
+ "dominant-baseline",
56
+ "stroke-linecap",
57
+ "stroke-linejoin",
58
+ "stroke-width",
59
+ "stroke-dasharray",
60
+ "opacity",
61
+ "fill-opacity",
62
+ "stroke-opacity",
63
+ "fill-rule",
64
+ "shape-rendering",
65
+ "offset",
66
+ "stop-opacity",
67
+ "gradientUnits",
68
+ "gradientTransform",
69
+ "patternUnits",
70
+ "patternContentUnits",
71
+ "data-chart-kind",
72
+ "data-chart-series",
73
+ "data-chart-point",
74
+ "data-chart-x",
75
+ "data-chart-y"
76
+ ]);
77
+ function safeChartSvg(markup, prefix) {
78
+ const svg = new DOMParser().parseFromString(markup, "image/svg+xml").documentElement;
79
+ if (svg.localName !== "svg" || svg.namespaceURI !== svgNamespace) return null;
80
+ for (const node of [svg, ...Array.from(svg.querySelectorAll("*"))]) {
81
+ if (node.namespaceURI !== svgNamespace || !allowedElements.has(node.localName)) return null;
82
+ for (const { name, value } of Array.from(node.attributes)) {
83
+ if (plainAttributes.has(name) || name === "xmlns") continue;
84
+ if (name === "id" && /^[\w-]+$/.test(value)) {
85
+ node.setAttribute(name, prefix + value);
86
+ continue;
87
+ }
88
+ if (name === "href" && /^(linearGradient|radialGradient)$/.test(node.localName) && /^#[\w-]+$/.test(value)) {
89
+ node.setAttribute(name, "#" + prefix + value.slice(1));
90
+ continue;
91
+ }
92
+ if (["fill", "stroke", "stop-color", "clip-path"].includes(name)) {
93
+ const local = /^url\(#([\w-]+)\)$/.exec(value);
94
+ if (local) {
95
+ node.setAttribute(name, "url(#" + prefix + local[1] + ")");
96
+ continue;
97
+ }
98
+ if (/^(?:#[\da-f]{3,8}|[a-z]+)$/i.test(value)) continue;
99
+ }
100
+ node.removeAttribute(name);
101
+ }
102
+ if (node.hasAttribute("data-chart-series")) {
103
+ node.setAttribute("data-xlsx-chart-series-index", node.getAttribute("data-chart-series"));
104
+ const point = node.getAttribute("data-chart-point");
105
+ if (point != null) node.setAttribute("data-xlsx-chart-point-index", point);
106
+ const kind = node.getAttribute("data-chart-kind");
107
+ if (kind === "bar") node.setAttribute("data-xlsx-chart-selection-mode", "seriesFirst");
108
+ if (kind === "legendEntry") node.setAttribute("data-xlsx-chart-element-kind", kind);
109
+ const style = node.style;
110
+ style.cursor = "pointer";
111
+ style.pointerEvents = "all";
112
+ }
113
+ }
114
+ return svg;
115
+ }
116
+ function renderSharedChart(renderer, chart, source, width, height, prefix) {
117
+ try {
118
+ const svg = renderer.renderChart(source.xml, {
119
+ themeColors: source.themeColors,
120
+ themeOverrideXml: source.themeOverrideXml,
121
+ styleXml: source.styleXml,
122
+ colorStyleXml: source.colorStyleXml,
123
+ width,
124
+ height,
125
+ interactive: true,
126
+ spreadsheetDefaults: true,
127
+ fontFamily: chart.fontFamily,
128
+ data: {
129
+ title: chart.title,
130
+ series: chart.series.map((series) => ({
131
+ chartType: source.kind,
132
+ name: series.name,
133
+ points: Array.from({ length: Math.max(series.values.length, series.categories.length) }, (_, index) => {
134
+ const value = series.values[index];
135
+ const label = series.categories[index];
136
+ return {
137
+ index,
138
+ value: value == null ? null : String(value),
139
+ categories: series.categories.length || _optionalChain([series, 'access', _2 => _2.categoriesRef, 'optionalAccess', _3 => _3.formula]) ? [{ level: 0, label: label == null ? "" : String(label) }] : []
140
+ };
141
+ })
142
+ }))
143
+ }
144
+ });
145
+ return svg ? safeChartSvg(svg, prefix) : null;
146
+ } catch (e) {
147
+ return null;
148
+ }
149
+ }
150
+ function selectionHandles(svg, chartId, selected) {
151
+ if (!selected || selected.chartId !== chartId || selected.kind === "chart") return null;
152
+ return Array.from(svg.querySelectorAll("[data-chart-point]")).map((node, index) => {
153
+ if (Number(node.getAttribute("data-chart-series")) !== selected.seriesIndex || selected.kind === "point" && Number(node.getAttribute("data-chart-point")) !== selected.pointIndex) return null;
154
+ if (node.getAttribute("data-chart-kind") === "bar") {
155
+ return _chunkIDNIGBUMcjs.renderSelectionRectHandles.call(void 0,
156
+ String(index),
157
+ Number(node.getAttribute("x")),
158
+ Number(node.getAttribute("y")),
159
+ Number(node.getAttribute("width")),
160
+ Number(node.getAttribute("height"))
161
+ );
162
+ }
163
+ if (!node.hasAttribute("data-chart-x") || !node.hasAttribute("data-chart-y")) return null;
164
+ return _chunkIDNIGBUMcjs.renderSelectionRectHandles.call(void 0,
165
+ String(index),
166
+ Number(node.getAttribute("data-chart-x")) - 4,
167
+ Number(node.getAttribute("data-chart-y")) - 4,
168
+ 8,
169
+ 8
170
+ );
171
+ });
172
+ }
173
+ function SharedChartSvg(props) {
174
+ const { chart, rect, renderer, source, selectedChartElement, fallback } = props;
175
+ const id = React.useId();
176
+ const width = Math.max(1, rect.width);
177
+ const height = Math.max(1, rect.height);
178
+ const svg = React.useMemo(() => renderSharedChart(
179
+ renderer,
180
+ chart,
181
+ source,
182
+ width,
183
+ height,
184
+ "oc-" + id.replace(/[^\w-]/g, "") + "-"
185
+ ), [renderer, chart, source, width, height, id]);
186
+ const graphics = React.useRef(null);
187
+ React.useLayoutEffect(() => {
188
+ if (graphics.current && svg) graphics.current.replaceChildren(svg);
189
+ }, [svg]);
190
+ const handles = React.useMemo(
191
+ () => svg && selectionHandles(svg, chart.id, selectedChartElement),
192
+ [svg, chart.id, selectedChartElement]
193
+ );
194
+ const { handlePointerDown, handleDoubleClick } = _chunkIDNIGBUMcjs.useChartEvents.call(void 0, props);
195
+ if (!svg) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment, { children: fallback });
196
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
197
+ "svg",
198
+ {
199
+ "aria-label": _nullishCoalesce(_nullishCoalesce(chart.title, () => ( chart.name)), () => ( "Chart")),
200
+ "data-xlsx-chart-renderer": "office-charts",
201
+ onDoubleClick: handleDoubleClick,
202
+ onPointerDown: handlePointerDown,
203
+ role: "img",
204
+ style: { display: "block", height: "100%", pointerEvents: "auto", width: "100%" },
205
+ viewBox: `0 0 ${width} ${height}`,
206
+ children: [
207
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "g", { ref: graphics }),
208
+ handles
209
+ ]
210
+ }
211
+ );
212
+ }
213
+
214
+
215
+ exports.SharedChartSvg = SharedChartSvg;
216
+ //# sourceMappingURL=shared-chart-MFQSQG4K.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/runner/work/react-xlsx/react-xlsx/packages/react-xlsx/dist/shared-chart-MFQSQG4K.cjs","../src/shared-chart.tsx"],"names":[],"mappings":"AAAA;AACE;AACA;AACF,wDAA6B;AAC7B,gCAA6B;AAC7B;AACA;ACNA,2EAAuB;AAoIJ,+CAAA;AA9HnB,IAAM,aAAA,EAAe,4BAAA;AACrB,IAAM,gBAAA,kBAAkB,IAAI,GAAA,CAAI;AAAA,EAC9B,KAAA;AAAA,EAAO,GAAA;AAAA,EAAK,MAAA;AAAA,EAAQ,UAAA;AAAA,EAAY,MAAA;AAAA,EAAQ,QAAA;AAAA,EAAU,SAAA;AAAA,EAAW,MAAA;AAAA,EAAQ,MAAA;AAAA,EAAQ,UAAA;AAAA,EAAY,SAAA;AAAA,EACzF,MAAA;AAAA,EAAQ,OAAA;AAAA,EAAS,gBAAA;AAAA,EAAkB,gBAAA;AAAA,EAAkB,MAAA;AAAA,EAAQ;AAC/D,CAAC,CAAA;AACD,IAAM,gBAAA,kBAAkB,IAAI,GAAA,CAAI;AAAA,EAC9B,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,OAAA;AAAA,EAAS,QAAA;AAAA,EAAU,IAAA;AAAA,EAAM,IAAA;AAAA,EAAM,IAAA;AAAA,EAAM,IAAA;AAAA,EAAM,IAAA;AAAA,EAAM,IAAA;AAAA,EAAM,IAAA;AAAA,EAAM,IAAA;AAAA,EAAM,GAAA;AAAA,EAAK,IAAA;AAAA,EAAM,IAAA;AAAA,EAAM,IAAA;AAAA,EAC9F,SAAA;AAAA,EAAW,WAAA;AAAA,EAAa,GAAA;AAAA,EAAK,QAAA;AAAA,EAAU,aAAA;AAAA,EAAe,aAAA;AAAA,EAAe,WAAA;AAAA,EAAa,aAAA;AAAA,EAClF,mBAAA;AAAA,EAAqB,gBAAA;AAAA,EAAkB,iBAAA;AAAA,EAAmB,cAAA;AAAA,EAAgB,kBAAA;AAAA,EAC1E,SAAA;AAAA,EAAW,cAAA;AAAA,EAAgB,gBAAA;AAAA,EAAkB,WAAA;AAAA,EAAa,iBAAA;AAAA,EAAmB,QAAA;AAAA,EAAU,cAAA;AAAA,EACvF,eAAA;AAAA,EAAiB,mBAAA;AAAA,EAAqB,cAAA;AAAA,EAAgB,qBAAA;AAAA,EACtD,iBAAA;AAAA,EAAmB,mBAAA;AAAA,EAAqB,kBAAA;AAAA,EAAoB,cAAA;AAAA,EAAgB;AAC9E,CAAC,CAAA;AAED,SAAS,YAAA,CAAa,MAAA,EAAgB,MAAA,EAAgB;AACpD,EAAA,MAAM,IAAA,EAAM,IAAI,SAAA,CAAU,CAAA,CAAE,eAAA,CAAgB,MAAA,EAAQ,eAAe,CAAA,CAAE,eAAA;AACrE,EAAA,GAAA,CAAI,GAAA,CAAI,UAAA,IAAc,MAAA,GAAS,GAAA,CAAI,aAAA,IAAiB,YAAA,EAAc,OAAO,IAAA;AAGzE,EAAA,IAAA,CAAA,MAAW,KAAA,GAAQ,CAAC,GAAA,EAAK,GAAG,KAAA,CAAM,IAAA,CAAK,GAAA,CAAI,gBAAA,CAAiB,GAAG,CAAC,CAAC,CAAA,EAAG;AAClE,IAAA,GAAA,CAAI,IAAA,CAAK,aAAA,IAAiB,aAAA,GAAgB,CAAC,eAAA,CAAgB,GAAA,CAAI,IAAA,CAAK,SAAS,CAAA,EAAG,OAAO,IAAA;AACvF,IAAA,IAAA,CAAA,MAAW,EAAE,IAAA,EAAM,MAAM,EAAA,GAAK,KAAA,CAAM,IAAA,CAAK,IAAA,CAAK,UAAU,CAAA,EAAG;AACzD,MAAA,GAAA,CAAI,eAAA,CAAgB,GAAA,CAAI,IAAI,EAAA,GAAK,KAAA,IAAS,OAAA,EAAS,QAAA;AACnD,MAAA,GAAA,CAAI,KAAA,IAAS,KAAA,GAAQ,UAAA,CAAW,IAAA,CAAK,KAAK,CAAA,EAAG;AAC3C,QAAA,IAAA,CAAK,YAAA,CAAa,IAAA,EAAM,OAAA,EAAS,KAAK,CAAA;AACtC,QAAA,QAAA;AAAA,MACF;AACA,MAAA,GAAA,CAAI,KAAA,IAAS,OAAA,GAAU,mCAAA,CAAoC,IAAA,CAAK,IAAA,CAAK,SAAS,EAAA,GAAK,WAAA,CAAY,IAAA,CAAK,KAAK,CAAA,EAAG;AAC1G,QAAA,IAAA,CAAK,YAAA,CAAa,IAAA,EAAM,IAAA,EAAM,OAAA,EAAS,KAAA,CAAM,KAAA,CAAM,CAAC,CAAC,CAAA;AACrD,QAAA,QAAA;AAAA,MACF;AACA,MAAA,GAAA,CAAI,CAAC,MAAA,EAAQ,QAAA,EAAU,YAAA,EAAc,WAAW,CAAA,CAAE,QAAA,CAAS,IAAI,CAAA,EAAG;AAChE,QAAA,MAAM,MAAA,EAAQ,oBAAA,CAAqB,IAAA,CAAK,KAAK,CAAA;AAC7C,QAAA,GAAA,CAAI,KAAA,EAAO;AACT,UAAA,IAAA,CAAK,YAAA,CAAa,IAAA,EAAM,QAAA,EAAU,OAAA,EAAS,KAAA,CAAM,CAAC,EAAA,EAAI,GAAG,CAAA;AACzD,UAAA,QAAA;AAAA,QACF;AACA,QAAA,GAAA,CAAI,6BAAA,CAA8B,IAAA,CAAK,KAAK,CAAA,EAAG,QAAA;AAAA,MACjD;AACA,MAAA,IAAA,CAAK,eAAA,CAAgB,IAAI,CAAA;AAAA,IAC3B;AAEA,IAAA,GAAA,CAAI,IAAA,CAAK,YAAA,CAAa,mBAAmB,CAAA,EAAG;AAC1C,MAAA,IAAA,CAAK,YAAA,CAAa,8BAAA,EAAgC,IAAA,CAAK,YAAA,CAAa,mBAAmB,CAAE,CAAA;AACzF,MAAA,MAAM,MAAA,EAAQ,IAAA,CAAK,YAAA,CAAa,kBAAkB,CAAA;AAClD,MAAA,GAAA,CAAI,MAAA,GAAS,IAAA,EAAM,IAAA,CAAK,YAAA,CAAa,6BAAA,EAA+B,KAAK,CAAA;AACzE,MAAA,MAAM,KAAA,EAAO,IAAA,CAAK,YAAA,CAAa,iBAAiB,CAAA;AAChD,MAAA,GAAA,CAAI,KAAA,IAAS,KAAA,EAAO,IAAA,CAAK,YAAA,CAAa,gCAAA,EAAkC,aAAa,CAAA;AACrF,MAAA,GAAA,CAAI,KAAA,IAAS,aAAA,EAAe,IAAA,CAAK,YAAA,CAAa,8BAAA,EAAgC,IAAI,CAAA;AAClF,MAAA,MAAM,MAAA,EAAS,IAAA,CAAoB,KAAA;AACnC,MAAA,KAAA,CAAM,OAAA,EAAS,SAAA;AACf,MAAA,KAAA,CAAM,cAAA,EAAgB,KAAA;AAAA,IACxB;AAAA,EACF;AACA,EAAA,OAAO,GAAA;AACT;AAEA,SAAS,iBAAA,CAAkB,QAAA,EAAwB,KAAA,EAAkB,MAAA,EAA+B,KAAA,EAAe,MAAA,EAAgB,MAAA,EAAgB;AACjJ,EAAA,IAAI;AACF,IAAA,MAAM,IAAA,EAAM,QAAA,CAAS,WAAA,CAAY,MAAA,CAAO,GAAA,EAAK;AAAA,MAC3C,WAAA,EAAa,MAAA,CAAO,WAAA;AAAA,MACpB,gBAAA,EAAkB,MAAA,CAAO,gBAAA;AAAA,MACzB,QAAA,EAAU,MAAA,CAAO,QAAA;AAAA,MACjB,aAAA,EAAe,MAAA,CAAO,aAAA;AAAA,MACtB,KAAA;AAAA,MAAO,MAAA;AAAA,MACP,WAAA,EAAa,IAAA;AAAA,MACb,mBAAA,EAAqB,IAAA;AAAA,MACrB,UAAA,EAAY,KAAA,CAAM,UAAA;AAAA,MAClB,IAAA,EAAM;AAAA,QACJ,KAAA,EAAO,KAAA,CAAM,KAAA;AAAA,QACb,MAAA,EAAQ,KAAA,CAAM,MAAA,CAAO,GAAA,CAAI,CAAC,MAAA,EAAA,GAAA,CAAY;AAAA,UACpC,SAAA,EAAW,MAAA,CAAO,IAAA;AAAA,UAClB,IAAA,EAAM,MAAA,CAAO,IAAA;AAAA,UACb,MAAA,EAAQ,KAAA,CAAM,IAAA,CAAK,EAAE,MAAA,EAAQ,IAAA,CAAK,GAAA,CAAI,MAAA,CAAO,MAAA,CAAO,MAAA,EAAQ,MAAA,CAAO,UAAA,CAAW,MAAM,EAAE,CAAA,EAAG,CAAC,CAAA,EAAG,KAAA,EAAA,GAAU;AACrG,YAAA,MAAM,MAAA,EAAQ,MAAA,CAAO,MAAA,CAAO,KAAK,CAAA;AACjC,YAAA,MAAM,MAAA,EAAQ,MAAA,CAAO,UAAA,CAAW,KAAK,CAAA;AACrC,YAAA,OAAO;AAAA,cACL,KAAA;AAAA,cACA,KAAA,EAAO,MAAA,GAAS,KAAA,EAAO,KAAA,EAAO,MAAA,CAAO,KAAK,CAAA;AAAA,cAC1C,UAAA,EAAY,MAAA,CAAO,UAAA,CAAW,OAAA,mBAAU,MAAA,qBAAO,aAAA,6BAAe,UAAA,EAC1D,CAAC,EAAE,KAAA,EAAO,CAAA,EAAG,KAAA,EAAO,MAAA,GAAS,KAAA,EAAO,GAAA,EAAK,MAAA,CAAO,KAAK,EAAE,CAAC,EAAA,EACxD,CAAC;AAAA,YACP,CAAA;AAAA,UACF,CAAC;AAAA,QACH,CAAA,CAAE;AAAA,MACJ;AAAA,IACF,CAAC,CAAA;AACD,IAAA,OAAO,IAAA,EAAM,YAAA,CAAa,GAAA,EAAK,MAAM,EAAA,EAAI,IAAA;AAAA,EAC3C,EAAA,UAAQ;AACN,IAAA,OAAO,IAAA;AAAA,EACT;AACF;AAEA,SAAS,gBAAA,CAAiB,GAAA,EAAc,OAAA,EAAiB,QAAA,EAAwD;AAC/G,EAAA,GAAA,CAAI,CAAC,SAAA,GAAY,QAAA,CAAS,QAAA,IAAY,QAAA,GAAW,QAAA,CAAS,KAAA,IAAS,OAAA,EAAS,OAAO,IAAA;AACnF,EAAA,OAAO,KAAA,CAAM,IAAA,CAAK,GAAA,CAAI,gBAAA,CAAiB,oBAAoB,CAAC,CAAA,CAAE,GAAA,CAAI,CAAC,IAAA,EAAM,KAAA,EAAA,GAAU;AACjF,IAAA,GAAA,CAAI,MAAA,CAAO,IAAA,CAAK,YAAA,CAAa,mBAAmB,CAAC,EAAA,IAAM,QAAA,CAAS,YAAA,GAC1D,QAAA,CAAS,KAAA,IAAS,QAAA,GAAW,MAAA,CAAO,IAAA,CAAK,YAAA,CAAa,kBAAkB,CAAC,EAAA,IAAM,QAAA,CAAS,UAAA,EAAa,OAAO,IAAA;AAClH,IAAA,GAAA,CAAI,IAAA,CAAK,YAAA,CAAa,iBAAiB,EAAA,IAAM,KAAA,EAAO;AAClD,MAAA,OAAO,0DAAA;AAAA,QAA2B,MAAA,CAAO,KAAK,CAAA;AAAA,QAAG,MAAA,CAAO,IAAA,CAAK,YAAA,CAAa,GAAG,CAAC,CAAA;AAAA,QAAG,MAAA,CAAO,IAAA,CAAK,YAAA,CAAa,GAAG,CAAC,CAAA;AAAA,QAC5G,MAAA,CAAO,IAAA,CAAK,YAAA,CAAa,OAAO,CAAC,CAAA;AAAA,QAAG,MAAA,CAAO,IAAA,CAAK,YAAA,CAAa,QAAQ,CAAC;AAAA,MAAC,CAAA;AAAA,IAC3E;AACA,IAAA,GAAA,CAAI,CAAC,IAAA,CAAK,YAAA,CAAa,cAAc,EAAA,GAAK,CAAC,IAAA,CAAK,YAAA,CAAa,cAAc,CAAA,EAAG,OAAO,IAAA;AACrF,IAAA,OAAO,0DAAA;AAAA,MAA2B,MAAA,CAAO,KAAK,CAAA;AAAA,MAAG,MAAA,CAAO,IAAA,CAAK,YAAA,CAAa,cAAc,CAAC,EAAA,EAAI,CAAA;AAAA,MAC3F,MAAA,CAAO,IAAA,CAAK,YAAA,CAAa,cAAc,CAAC,EAAA,EAAI,CAAA;AAAA,MAAG,CAAA;AAAA,MAAG;AAAA,IAAC,CAAA;AAAA,EACvD,CAAC,CAAA;AACH;AAEO,SAAS,cAAA,CAAe,KAAA,EAI5B;AACD,EAAA,MAAM,EAAE,KAAA,EAAO,IAAA,EAAM,QAAA,EAAU,MAAA,EAAQ,oBAAA,EAAsB,SAAS,EAAA,EAAI,KAAA;AAC1E,EAAA,MAAM,GAAA,EAAW,KAAA,CAAA,KAAA,CAAM,CAAA;AACvB,EAAA,MAAM,MAAA,EAAQ,IAAA,CAAK,GAAA,CAAI,CAAA,EAAG,IAAA,CAAK,KAAK,CAAA;AACpC,EAAA,MAAM,OAAA,EAAS,IAAA,CAAK,GAAA,CAAI,CAAA,EAAG,IAAA,CAAK,MAAM,CAAA;AACtC,EAAA,MAAM,IAAA,EAAY,KAAA,CAAA,OAAA,CAAQ,CAAA,EAAA,GAAM,iBAAA;AAAA,IAAkB,QAAA;AAAA,IAAU,KAAA;AAAA,IAAO,MAAA;AAAA,IAAQ,KAAA;AAAA,IAAO,MAAA;AAAA,IAChF,MAAA,EAAQ,EAAA,CAAG,OAAA,CAAQ,SAAA,EAAW,EAAE,EAAA,EAAI;AAAA,EAAG,CAAA,EAAG,CAAC,QAAA,EAAU,KAAA,EAAO,MAAA,EAAQ,KAAA,EAAO,MAAA,EAAQ,EAAE,CAAC,CAAA;AACxF,EAAA,MAAM,SAAA,EAAiB,KAAA,CAAA,MAAA,CAAoB,IAAI,CAAA;AAC/C,EAAM,KAAA,CAAA,eAAA,CAAgB,CAAA,EAAA,GAAM;AAC1B,IAAA,GAAA,CAAI,QAAA,CAAS,QAAA,GAAW,GAAA,EAAK,QAAA,CAAS,OAAA,CAAQ,eAAA,CAAgB,GAAG,CAAA;AAAA,EACnE,CAAA,EAAG,CAAC,GAAG,CAAC,CAAA;AACR,EAAA,MAAM,QAAA,EAAgB,KAAA,CAAA,OAAA;AAAA,IAAQ,CAAA,EAAA,GAAM,IAAA,GAAO,gBAAA,CAAiB,GAAA,EAAK,KAAA,CAAM,EAAA,EAAI,oBAAoB,CAAA;AAAA,IAC7F,CAAC,GAAA,EAAK,KAAA,CAAM,EAAA,EAAI,oBAAoB;AAAA,EAAC,CAAA;AACvC,EAAA,MAAM,EAAE,iBAAA,EAAmB,kBAAkB,EAAA,EAAI,8CAAA,KAAoB,CAAA;AACrE,EAAA,GAAA,CAAI,CAAC,GAAA,EAAK,uBAAO,6BAAA,oBAAA,EAAA,EAAG,QAAA,EAAA,SAAA,CAAS,CAAA;AAC7B,EAAA,uBACE,8BAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,YAAA,oCAAY,KAAA,CAAM,KAAA,UAAS,KAAA,CAAM,MAAA,UAAQ,SAAA;AAAA,MACzC,0BAAA,EAAyB,eAAA;AAAA,MACzB,aAAA,EAAe,iBAAA;AAAA,MACf,aAAA,EAAe,iBAAA;AAAA,MACf,IAAA,EAAK,KAAA;AAAA,MACL,KAAA,EAAO,EAAE,OAAA,EAAS,OAAA,EAAS,MAAA,EAAQ,MAAA,EAAQ,aAAA,EAAe,MAAA,EAAQ,KAAA,EAAO,OAAO,CAAA;AAAA,MAChF,OAAA,EAAS,CAAA,IAAA,EAAO,KAAK,CAAA,CAAA,EAAI,MAAM,CAAA,CAAA;AAE/B,MAAA;AAAG,wBAAA;AACF,QAAA;AAAA,MAAA;AAAA,IAAA;AACH,EAAA;AAEJ;ADiEsC;AACA;AACA","file":"/home/runner/work/react-xlsx/react-xlsx/packages/react-xlsx/dist/shared-chart-MFQSQG4K.cjs","sourcesContent":[null,"import * as React from \"react\";\nimport type { OfficeCharts } from \"@extend-ai/rust-office-charts\";\nimport { renderSelectionRectHandles, useChartEvents } from \"./chart-interaction\";\nimport type { ChartSvgProps } from \"./chart-renderer\";\nimport type { XlsxChart, XlsxChartRenderSource, XlsxChartElementSelection } from \"./types\";\n\nconst svgNamespace = \"http://www.w3.org/2000/svg\";\nconst allowedElements = new Set([\n \"svg\", \"g\", \"defs\", \"clipPath\", \"rect\", \"circle\", \"ellipse\", \"path\", \"line\", \"polyline\", \"polygon\",\n \"text\", \"tspan\", \"linearGradient\", \"radialGradient\", \"stop\", \"pattern\"\n]);\nconst plainAttributes = new Set([\n \"x\", \"y\", \"width\", \"height\", \"x1\", \"x2\", \"y1\", \"y2\", \"cx\", \"cy\", \"fx\", \"fy\", \"r\", \"rx\", \"ry\", \"fr\",\n \"viewBox\", \"transform\", \"d\", \"points\", \"font-family\", \"font-weight\", \"font-size\", \"text-anchor\",\n \"dominant-baseline\", \"stroke-linecap\", \"stroke-linejoin\", \"stroke-width\", \"stroke-dasharray\",\n \"opacity\", \"fill-opacity\", \"stroke-opacity\", \"fill-rule\", \"shape-rendering\", \"offset\", \"stop-opacity\",\n \"gradientUnits\", \"gradientTransform\", \"patternUnits\", \"patternContentUnits\",\n \"data-chart-kind\", \"data-chart-series\", \"data-chart-point\", \"data-chart-x\", \"data-chart-y\"\n]);\n\nfunction safeChartSvg(markup: string, prefix: string) {\n const svg = new DOMParser().parseFromString(markup, \"image/svg+xml\").documentElement;\n if (svg.localName !== \"svg\" || svg.namespaceURI !== svgNamespace) return null;\n\n // Only local paint servers and inert geometry can enter the document.\n for (const node of [svg, ...Array.from(svg.querySelectorAll(\"*\"))]) {\n if (node.namespaceURI !== svgNamespace || !allowedElements.has(node.localName)) return null;\n for (const { name, value } of Array.from(node.attributes)) {\n if (plainAttributes.has(name) || name === \"xmlns\") continue;\n if (name === \"id\" && /^[\\w-]+$/.test(value)) {\n node.setAttribute(name, prefix + value);\n continue;\n }\n if (name === \"href\" && /^(linearGradient|radialGradient)$/.test(node.localName) && /^#[\\w-]+$/.test(value)) {\n node.setAttribute(name, \"#\" + prefix + value.slice(1));\n continue;\n }\n if ([\"fill\", \"stroke\", \"stop-color\", \"clip-path\"].includes(name)) {\n const local = /^url\\(#([\\w-]+)\\)$/.exec(value);\n if (local) {\n node.setAttribute(name, \"url(#\" + prefix + local[1] + \")\");\n continue;\n }\n if (/^(?:#[\\da-f]{3,8}|[a-z]+)$/i.test(value)) continue;\n }\n node.removeAttribute(name);\n }\n\n if (node.hasAttribute(\"data-chart-series\")) {\n node.setAttribute(\"data-xlsx-chart-series-index\", node.getAttribute(\"data-chart-series\")!);\n const point = node.getAttribute(\"data-chart-point\");\n if (point != null) node.setAttribute(\"data-xlsx-chart-point-index\", point);\n const kind = node.getAttribute(\"data-chart-kind\");\n if (kind === \"bar\") node.setAttribute(\"data-xlsx-chart-selection-mode\", \"seriesFirst\");\n if (kind === \"legendEntry\") node.setAttribute(\"data-xlsx-chart-element-kind\", kind);\n const style = (node as SVGElement).style;\n style.cursor = \"pointer\";\n style.pointerEvents = \"all\";\n }\n }\n return svg;\n}\n\nfunction renderSharedChart(renderer: OfficeCharts, chart: XlsxChart, source: XlsxChartRenderSource, width: number, height: number, prefix: string) {\n try {\n const svg = renderer.renderChart(source.xml, {\n themeColors: source.themeColors,\n themeOverrideXml: source.themeOverrideXml,\n styleXml: source.styleXml,\n colorStyleXml: source.colorStyleXml,\n width, height,\n interactive: true,\n spreadsheetDefaults: true,\n fontFamily: chart.fontFamily,\n data: {\n title: chart.title,\n series: chart.series.map((series) => ({\n chartType: source.kind,\n name: series.name,\n points: Array.from({ length: Math.max(series.values.length, series.categories.length) }, (_, index) => {\n const value = series.values[index];\n const label = series.categories[index];\n return {\n index,\n value: value == null ? null : String(value),\n categories: series.categories.length || series.categoriesRef?.formula\n ? [{ level: 0, label: label == null ? \"\" : String(label) }]\n : []\n };\n })\n }))\n }\n });\n return svg ? safeChartSvg(svg, prefix) : null;\n } catch {\n return null;\n }\n}\n\nfunction selectionHandles(svg: Element, chartId: string, selected: XlsxChartElementSelection | null | undefined) {\n if (!selected || selected.chartId !== chartId || selected.kind === \"chart\") return null;\n return Array.from(svg.querySelectorAll(\"[data-chart-point]\")).map((node, index) => {\n if (Number(node.getAttribute(\"data-chart-series\")) !== selected.seriesIndex\n || (selected.kind === \"point\" && Number(node.getAttribute(\"data-chart-point\")) !== selected.pointIndex)) return null;\n if (node.getAttribute(\"data-chart-kind\") === \"bar\") {\n return renderSelectionRectHandles(String(index), Number(node.getAttribute(\"x\")), Number(node.getAttribute(\"y\")),\n Number(node.getAttribute(\"width\")), Number(node.getAttribute(\"height\")));\n }\n if (!node.hasAttribute(\"data-chart-x\") || !node.hasAttribute(\"data-chart-y\")) return null;\n return renderSelectionRectHandles(String(index), Number(node.getAttribute(\"data-chart-x\")) - 4,\n Number(node.getAttribute(\"data-chart-y\")) - 4, 8, 8);\n });\n}\n\nexport function SharedChartSvg(props: ChartSvgProps & {\n source: XlsxChartRenderSource;\n renderer: OfficeCharts;\n fallback: React.ReactNode;\n}) {\n const { chart, rect, renderer, source, selectedChartElement, fallback } = props;\n const id = React.useId();\n const width = Math.max(1, rect.width);\n const height = Math.max(1, rect.height);\n const svg = React.useMemo(() => renderSharedChart(renderer, chart, source, width, height,\n \"oc-\" + id.replace(/[^\\w-]/g, \"\") + \"-\"), [renderer, chart, source, width, height, id]);\n const graphics = React.useRef<SVGGElement>(null);\n React.useLayoutEffect(() => {\n if (graphics.current && svg) graphics.current.replaceChildren(svg);\n }, [svg]);\n const handles = React.useMemo(() => svg && selectionHandles(svg, chart.id, selectedChartElement),\n [svg, chart.id, selectedChartElement]);\n const { handlePointerDown, handleDoubleClick } = useChartEvents(props);\n if (!svg) return <>{fallback}</>;\n return (\n <svg\n aria-label={chart.title ?? chart.name ?? \"Chart\"}\n data-xlsx-chart-renderer=\"office-charts\"\n onDoubleClick={handleDoubleClick}\n onPointerDown={handlePointerDown}\n role=\"img\"\n style={{ display: \"block\", height: \"100%\", pointerEvents: \"auto\", width: \"100%\" }}\n viewBox={`0 0 ${width} ${height}`}\n >\n <g ref={graphics} />\n {handles}\n </svg>\n );\n}\n"]}
@@ -12,12 +12,14 @@ var _chunkO3V2MCOCcjs = require('./chunk-O3V2MCOC.cjs');
12
12
 
13
13
 
14
14
 
15
+ var _chunk5ERNVHSOcjs = require('./chunk-5ERNVHSO.cjs');
15
16
 
16
17
 
17
18
 
18
19
 
19
20
 
20
- var _chunkCJBI5F6Vcjs = require('./chunk-CJBI5F6V.cjs');
21
+
22
+ var _chunkAZWBTFJIcjs = require('./chunk-AZWBTFJI.cjs');
21
23
  require('./chunk-AD4CGQN2.cjs');
22
24
 
23
25
  // src/surface-regl.tsx
@@ -114,7 +116,7 @@ function resolveSurfaceBandPaletteColor(chart, palette, domain, value) {
114
116
  if (explicitFill) return explicitFill;
115
117
  const themeColors = _optionalChain([chart, 'access', _25 => _25.raw, 'optionalAccess', _26 => _26.builtinThemeColors]);
116
118
  const paletteCount = Math.trunc((domain.safeMax - domain.minValue) / (domain.ticks[1] - domain.ticks[0])) + 1;
117
- const builtinColor = themeColors ? _chunkCJBI5F6Vcjs.resolveBuiltinChartColor.call(void 0, _chunkCJBI5F6Vcjs.getBuiltinChartColor.call(void 0, chart.chartStyleId, bandIndex % paletteCount, paletteCount), themeColors) : void 0;
119
+ const builtinColor = themeColors ? _chunk5ERNVHSOcjs.resolveBuiltinChartColor.call(void 0, _chunk5ERNVHSOcjs.getBuiltinChartColor.call(void 0, chart.chartStyleId, bandIndex % paletteCount, paletteCount), themeColors) : void 0;
118
120
  if (builtinColor) return builtinColor;
119
121
  const stops = getSurfaceColorStops(chart, palette);
120
122
  if (stops.length === 0) {
@@ -145,7 +147,7 @@ function resolveSurfaceWireframeColor(chart, palette, domain, value) {
145
147
  const bandIndex = resolveSurfaceBandIndex(domain, value);
146
148
  const themeColors = _optionalChain([chart, 'access', _29 => _29.raw, 'optionalAccess', _30 => _30.builtinThemeColors]);
147
149
  const paletteCount = Math.trunc((domain.safeMax - domain.minValue) / (domain.ticks[1] - domain.ticks[0])) + 1;
148
- const builtinLine = themeColors ? _chunkCJBI5F6Vcjs.resolveBuiltinChartColor.call(void 0, _chunkCJBI5F6Vcjs.getBuiltinChartSurfaceLine.call(void 0, chart.chartStyleId, bandIndex, paletteCount), themeColors) : void 0;
150
+ const builtinLine = themeColors ? _chunk5ERNVHSOcjs.resolveBuiltinChartColor.call(void 0, _chunk5ERNVHSOcjs.getBuiltinChartSurfaceLine.call(void 0, chart.chartStyleId, bandIndex, paletteCount), themeColors) : void 0;
149
151
  return _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(resolveSurfaceBandFormatColor(chart, "bandFormatLineColors", bandIndex), () => ( resolveExplicitSurfaceSeriesColor(chart, "line"))), () => ( builtinLine)), () => ( resolveSurfaceBandPaletteColor(chart, palette, domain, value)));
150
152
  }
151
153
  function colorToRgba(color, alpha = 1) {
@@ -481,7 +483,7 @@ function buildSurfaceMesh(chart, palette, layout) {
481
483
  wallPositions: new Float32Array(wallPositions)
482
484
  };
483
485
  }
484
- var MemoSurfaceChartComposite = _chunkCJBI5F6Vcjs.N.call(void 0, function MemoSurfaceChartComposite2({
486
+ var MemoSurfaceChartComposite = _chunkAZWBTFJIcjs.N.call(void 0, function MemoSurfaceChartComposite2({
485
487
  background,
486
488
  borderColor,
487
489
  chart,
@@ -493,11 +495,11 @@ var MemoSurfaceChartComposite = _chunkCJBI5F6Vcjs.N.call(void 0, function MemoSu
493
495
  palette,
494
496
  fallback
495
497
  }) {
496
- const canvasRef = _chunkCJBI5F6Vcjs.A.call(void 0, null);
497
- const [ready, setReady] = _chunkCJBI5F6Vcjs.d.call(void 0, false);
498
- const [failed, setFailed] = _chunkCJBI5F6Vcjs.d.call(void 0, false);
498
+ const canvasRef = _chunkAZWBTFJIcjs.A.call(void 0, null);
499
+ const [ready, setReady] = _chunkAZWBTFJIcjs.d.call(void 0, false);
500
+ const [failed, setFailed] = _chunkAZWBTFJIcjs.d.call(void 0, false);
499
501
  const isContour = isContourSurfaceChart(chart);
500
- _chunkCJBI5F6Vcjs.h.call(void 0, () => {
502
+ _chunkAZWBTFJIcjs.h.call(void 0, () => {
501
503
  if (isContour) {
502
504
  setReady(false);
503
505
  setFailed(false);
@@ -674,7 +676,7 @@ var MemoSurfaceChartComposite = _chunkCJBI5F6Vcjs.N.call(void 0, function MemoSu
674
676
  palette
675
677
  ]);
676
678
  const shouldRenderFallback = isContour || failed || !ready;
677
- return /* @__PURE__ */ _chunkCJBI5F6Vcjs.u.call(void 0,
679
+ return /* @__PURE__ */ _chunkAZWBTFJIcjs.u.call(void 0,
678
680
  "div",
679
681
  {
680
682
  "aria-label": _nullishCoalesce(_nullishCoalesce(chart.title, () => ( chart.name)), () => ( "Chart")),
@@ -691,7 +693,7 @@ var MemoSurfaceChartComposite = _chunkCJBI5F6Vcjs.N.call(void 0, function MemoSu
691
693
  width: "100%"
692
694
  },
693
695
  children: [
694
- /* @__PURE__ */ _chunkCJBI5F6Vcjs.u.call(void 0,
696
+ /* @__PURE__ */ _chunkAZWBTFJIcjs.u.call(void 0,
695
697
  "canvas",
696
698
  {
697
699
  ref: canvasRef,
@@ -704,7 +706,7 @@ var MemoSurfaceChartComposite = _chunkCJBI5F6Vcjs.N.call(void 0, function MemoSu
704
706
  }
705
707
  }
706
708
  ),
707
- /* @__PURE__ */ _chunkCJBI5F6Vcjs.u.call(void 0,
709
+ /* @__PURE__ */ _chunkAZWBTFJIcjs.u.call(void 0,
708
710
  "svg",
709
711
  {
710
712
  onDoubleClick,
@@ -724,4 +726,4 @@ var MemoSurfaceChartComposite = _chunkCJBI5F6Vcjs.N.call(void 0, function MemoSu
724
726
 
725
727
 
726
728
  exports.MemoSurfaceChartComposite = MemoSurfaceChartComposite;
727
- //# sourceMappingURL=surface-regl-2NNG62KS.cjs.map
729
+ //# sourceMappingURL=surface-regl-BBJ6OIKK.cjs.map