pptx-react-viewer 2.7.1 → 2.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +4 -0
- package/dist/{AiChatPanel-YAYQ5KUT.mjs → AiChatPanel-6W6ZBAGU.mjs} +4 -4
- package/dist/AiChatPanel-6W6ZBAGU.mjs.br +0 -0
- package/dist/AiChatPanel-6W6ZBAGU.mjs.gz +0 -0
- package/dist/{AiChatPanel-SRKOMEW6.js → AiChatPanel-MALC32TM.js} +23 -23
- package/dist/AiChatPanel-MALC32TM.js.br +0 -0
- package/dist/AiChatPanel-MALC32TM.js.gz +0 -0
- package/dist/{Model3DScene-HYMOPMAM.mjs → Model3DScene-57HZ4NVD.mjs} +1 -1
- package/dist/Model3DScene-57HZ4NVD.mjs.br +0 -0
- package/dist/Model3DScene-57HZ4NVD.mjs.gz +0 -0
- package/dist/{Model3DScene-ONKC5Z6A.js → Model3DScene-76R2YXSO.js} +2 -2
- package/dist/Model3DScene-76R2YXSO.js.br +0 -0
- package/dist/Model3DScene-76R2YXSO.js.gz +0 -0
- package/dist/{SurfaceChart3DScene-YJFWGG5L.js → SurfaceChart3DScene-2QZZTBV4.js} +2 -2
- package/dist/SurfaceChart3DScene-2QZZTBV4.js.br +0 -0
- package/dist/SurfaceChart3DScene-2QZZTBV4.js.gz +0 -0
- package/dist/{SurfaceChart3DScene-B3FK4Q2U.mjs → SurfaceChart3DScene-JGOQNHSU.mjs} +1 -1
- package/dist/SurfaceChart3DScene-JGOQNHSU.mjs.br +0 -0
- package/dist/SurfaceChart3DScene-JGOQNHSU.mjs.gz +0 -0
- package/dist/{chunk-25VSL2BB.js → chunk-2JDWFMIK.js} +259 -17
- package/dist/chunk-2JDWFMIK.js.br +0 -0
- package/dist/chunk-2JDWFMIK.js.gz +0 -0
- package/dist/{chunk-GRW7HM6X.js → chunk-34BUZNKO.js} +370 -364
- package/dist/chunk-34BUZNKO.js.br +0 -0
- package/dist/chunk-34BUZNKO.js.gz +0 -0
- package/dist/{chunk-IDK6XECR.mjs → chunk-4FO4JMTN.mjs} +103 -172
- package/dist/chunk-4FO4JMTN.mjs.br +0 -0
- package/dist/chunk-4FO4JMTN.mjs.gz +0 -0
- package/dist/{chunk-N7EZIKF4.mjs → chunk-6OLS3EJW.mjs} +1 -1
- package/dist/chunk-6OLS3EJW.mjs.br +0 -0
- package/dist/chunk-6OLS3EJW.mjs.gz +0 -0
- package/dist/{chunk-BVK7K74O.js → chunk-6UXRNLHD.js} +5462 -3150
- package/dist/chunk-6UXRNLHD.js.br +0 -0
- package/dist/chunk-6UXRNLHD.js.gz +0 -0
- package/dist/{chunk-Z6HIZWIQ.mjs → chunk-CD434OFE.mjs} +259 -17
- package/dist/chunk-CD434OFE.mjs.br +0 -0
- package/dist/chunk-CD434OFE.mjs.gz +0 -0
- package/dist/{chunk-JEIMWRKF.js → chunk-D6SHCB4V.js} +414 -483
- package/dist/chunk-D6SHCB4V.js.br +0 -0
- package/dist/chunk-D6SHCB4V.js.gz +0 -0
- package/dist/{chunk-LYS44KMG.js → chunk-IKISUZKE.js} +2605 -816
- package/dist/chunk-IKISUZKE.js.br +0 -0
- package/dist/chunk-IKISUZKE.js.gz +0 -0
- package/dist/{chunk-HQGLKAIY.mjs → chunk-JPTO6P5K.mjs} +135 -130
- package/dist/chunk-JPTO6P5K.mjs.br +0 -0
- package/dist/chunk-JPTO6P5K.mjs.gz +0 -0
- package/dist/{chunk-HEAJOHLJ.mjs → chunk-L47Y62L6.mjs} +2539 -809
- package/dist/chunk-L47Y62L6.mjs.br +0 -0
- package/dist/chunk-L47Y62L6.mjs.gz +0 -0
- package/dist/{chunk-2UCJYJUS.mjs → chunk-NQLVK23T.mjs} +4120 -1808
- package/dist/chunk-NQLVK23T.mjs.br +0 -0
- package/dist/chunk-NQLVK23T.mjs.gz +0 -0
- package/dist/{chunk-JVE7BZ25.js → chunk-YEM2VOAP.js} +3 -3
- package/dist/chunk-YEM2VOAP.js.br +0 -0
- package/dist/chunk-YEM2VOAP.js.gz +0 -0
- package/dist/i18n.js +4 -4
- package/dist/i18n.js.br +0 -0
- package/dist/i18n.js.gz +0 -0
- package/dist/i18n.mjs +1 -1
- package/dist/i18n.mjs.br +0 -0
- package/dist/i18n.mjs.gz +0 -0
- package/dist/index.d.ts +34 -0
- package/dist/index.js +36 -36
- package/dist/index.js.br +0 -0
- package/dist/index.js.gz +0 -0
- package/dist/index.mjs +6 -6
- package/dist/index.mjs.br +0 -0
- package/dist/index.mjs.gz +0 -0
- package/dist/internals.d.ts +44 -1
- package/dist/internals.d.ts.map +1 -1
- package/dist/internals.js +79 -79
- package/dist/internals.js.br +0 -0
- package/dist/internals.js.gz +0 -0
- package/dist/internals.mjs +4 -4
- package/dist/internals.mjs.br +0 -0
- package/dist/internals.mjs.gz +0 -0
- package/dist/pptx-viewer.css +1 -1
- package/dist/pptx-viewer.css.br +0 -0
- package/dist/pptx-viewer.css.gz +0 -0
- package/dist/{useViewerBuildingBlocks-DMDZRawe.d.ts → useViewerBuildingBlocks-C59NY1qZ.d.ts} +15 -2
- package/dist/useViewerBuildingBlocks-C59NY1qZ.d.ts.map +1 -0
- package/dist/viewer/index.d.ts +21 -0
- package/dist/viewer/index.js +22 -22
- package/dist/viewer/index.js.br +0 -0
- package/dist/viewer/index.js.gz +0 -0
- package/dist/viewer/index.mjs +6 -6
- package/dist/viewer/index.mjs.br +0 -0
- package/dist/viewer/index.mjs.gz +0 -0
- package/package.json +1 -1
- package/dist/AiChatPanel-SRKOMEW6.js.br +0 -0
- package/dist/AiChatPanel-SRKOMEW6.js.gz +0 -0
- package/dist/AiChatPanel-YAYQ5KUT.mjs.br +0 -0
- package/dist/AiChatPanel-YAYQ5KUT.mjs.gz +0 -0
- package/dist/Model3DScene-HYMOPMAM.mjs.br +0 -0
- package/dist/Model3DScene-HYMOPMAM.mjs.gz +0 -0
- package/dist/Model3DScene-ONKC5Z6A.js.br +0 -0
- package/dist/Model3DScene-ONKC5Z6A.js.gz +0 -0
- package/dist/SurfaceChart3DScene-B3FK4Q2U.mjs.br +0 -0
- package/dist/SurfaceChart3DScene-B3FK4Q2U.mjs.gz +0 -0
- package/dist/SurfaceChart3DScene-YJFWGG5L.js.br +0 -0
- package/dist/SurfaceChart3DScene-YJFWGG5L.js.gz +0 -0
- package/dist/chunk-25VSL2BB.js.br +0 -0
- package/dist/chunk-25VSL2BB.js.gz +0 -0
- package/dist/chunk-2UCJYJUS.mjs.br +0 -0
- package/dist/chunk-2UCJYJUS.mjs.gz +0 -0
- package/dist/chunk-BVK7K74O.js.br +0 -0
- package/dist/chunk-BVK7K74O.js.gz +0 -0
- package/dist/chunk-GRW7HM6X.js.br +0 -0
- package/dist/chunk-GRW7HM6X.js.gz +0 -0
- package/dist/chunk-HEAJOHLJ.mjs.br +0 -0
- package/dist/chunk-HEAJOHLJ.mjs.gz +0 -0
- package/dist/chunk-HQGLKAIY.mjs.br +0 -0
- package/dist/chunk-HQGLKAIY.mjs.gz +0 -0
- package/dist/chunk-IDK6XECR.mjs.br +0 -0
- package/dist/chunk-IDK6XECR.mjs.gz +0 -0
- package/dist/chunk-JEIMWRKF.js.br +0 -0
- package/dist/chunk-JEIMWRKF.js.gz +0 -0
- package/dist/chunk-JVE7BZ25.js.br +0 -0
- package/dist/chunk-JVE7BZ25.js.gz +0 -0
- package/dist/chunk-LYS44KMG.js.br +0 -0
- package/dist/chunk-LYS44KMG.js.gz +0 -0
- package/dist/chunk-N7EZIKF4.mjs.br +0 -0
- package/dist/chunk-N7EZIKF4.mjs.gz +0 -0
- package/dist/chunk-Z6HIZWIQ.mjs.br +0 -0
- package/dist/chunk-Z6HIZWIQ.mjs.gz +0 -0
- package/dist/useViewerBuildingBlocks-DMDZRawe.d.ts.map +0 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
var
|
|
3
|
+
var chunk2JDWFMIK_js = require('./chunk-2JDWFMIK.js');
|
|
4
|
+
var chunkIKISUZKE_js = require('./chunk-IKISUZKE.js');
|
|
5
5
|
var clsx = require('clsx');
|
|
6
6
|
var tailwindMerge = require('tailwind-merge');
|
|
7
7
|
var React6 = require('react');
|
|
@@ -15,7 +15,7 @@ var React6__default = /*#__PURE__*/_interopDefault(React6);
|
|
|
15
15
|
|
|
16
16
|
// src/viewer/utils/animation-effects.ts
|
|
17
17
|
function getAnimationInitialStyle2(preset, nativeAnimation) {
|
|
18
|
-
return
|
|
18
|
+
return chunkIKISUZKE_js.getAnimationInitialStyle(preset, nativeAnimation);
|
|
19
19
|
}
|
|
20
20
|
function cn(...inputs) {
|
|
21
21
|
return tailwindMerge.twMerge(clsx.clsx(inputs));
|
|
@@ -23,7 +23,7 @@ function cn(...inputs) {
|
|
|
23
23
|
|
|
24
24
|
// src/viewer/utils/clone.ts
|
|
25
25
|
function cloneHistorySnapshot2(snapshot) {
|
|
26
|
-
return
|
|
26
|
+
return chunkIKISUZKE_js.cloneHistorySnapshot(snapshot);
|
|
27
27
|
}
|
|
28
28
|
|
|
29
29
|
// src/viewer/constants/scalar.ts
|
|
@@ -31,7 +31,6 @@ var DEFAULT_CANVAS_WIDTH = 1280;
|
|
|
31
31
|
var DEFAULT_CANVAS_HEIGHT = 720;
|
|
32
32
|
var MIN_ELEMENT_SIZE = 12;
|
|
33
33
|
var EMU_PER_PX = 9525;
|
|
34
|
-
var DEFAULT_BODY_INSET_LR_PX = 91440 / 9525;
|
|
35
34
|
var DEFAULT_BODY_INSET_TB_PX = 45720 / 9525;
|
|
36
35
|
var DEFAULT_TEXT_COLOR = "#111827";
|
|
37
36
|
var DEFAULT_FILL_COLOR = "#3b82f6";
|
|
@@ -44,8 +43,6 @@ var DEFAULT_TABLE_COLUMNS = 3;
|
|
|
44
43
|
var SHAPE_ADJUSTMENT_MIN = 0;
|
|
45
44
|
var SHAPE_ADJUSTMENT_MAX = 5e4;
|
|
46
45
|
var DEFAULT_ROUND_RECT_ADJUSTMENT = 16667;
|
|
47
|
-
var MIN_ZOOM_SCALE = 0.2;
|
|
48
|
-
var MAX_ZOOM_SCALE = 5;
|
|
49
46
|
var ZOOM_TO_SELECTION_PADDING = 96;
|
|
50
47
|
var GRID_SIZE = 8;
|
|
51
48
|
var SLIDE_NAV_THUMBNAIL_WIDTH = 156;
|
|
@@ -66,48 +63,25 @@ var TOOLBAR_SECTIONS = [
|
|
|
66
63
|
{ id: "view", labelKey: "pptx.ribbon.tab.view" },
|
|
67
64
|
{ id: "help", labelKey: "pptx.ribbon.tab.help" }
|
|
68
65
|
];
|
|
69
|
-
var SHORTCUT_REFERENCE_ITEMS =
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
66
|
+
var SHORTCUT_REFERENCE_ITEMS = chunkIKISUZKE_js.VIEWER_SHORTCUT_REFERENCE;
|
|
67
|
+
|
|
68
|
+
// src/viewer/constants/theme.ts
|
|
69
|
+
var THEME_COLOR_SWATCHES = [
|
|
70
|
+
"#000000",
|
|
71
|
+
"#FFFFFF",
|
|
72
|
+
"#1F497D",
|
|
73
|
+
"#EEECE1",
|
|
74
|
+
"#4472C4",
|
|
75
|
+
"#ED7D31",
|
|
76
|
+
"#A5A5A5",
|
|
77
|
+
"#FFC000",
|
|
78
|
+
"#5B9BD5",
|
|
79
|
+
"#70AD47",
|
|
80
|
+
"#0563C1",
|
|
81
|
+
"#954F72"
|
|
82
82
|
];
|
|
83
83
|
|
|
84
84
|
// src/viewer/constants/transitions-animations.ts
|
|
85
|
-
var SLIDE_TRANSITION_OPTIONS = [
|
|
86
|
-
{ value: "none", label: "None", i18nKey: "pptx.transition.none" },
|
|
87
|
-
{ value: "cut", label: "Cut", i18nKey: "pptx.ribbon.transition.cut" },
|
|
88
|
-
{ value: "fade", label: "Fade", i18nKey: "pptx.ribbon.transition.fade" },
|
|
89
|
-
{ value: "push", label: "Push", i18nKey: "pptx.ribbon.transition.push" },
|
|
90
|
-
{ value: "wipe", label: "Wipe", i18nKey: "pptx.ribbon.transition.wipe" },
|
|
91
|
-
{ value: "split", label: "Split", i18nKey: "pptx.ribbon.transition.split" },
|
|
92
|
-
{ value: "randomBar", label: "Random Bars", i18nKey: "pptx.transitionPresets.randomBars" },
|
|
93
|
-
{ value: "blinds", label: "Blinds", i18nKey: "pptx.transitionPresets.blinds" },
|
|
94
|
-
{ value: "checker", label: "Checker", i18nKey: "pptx.transitionPresets.checker" },
|
|
95
|
-
{ value: "circle", label: "Circle", i18nKey: "pptx.transitionPresets.circle" },
|
|
96
|
-
{ value: "comb", label: "Comb", i18nKey: "pptx.transitionPresets.comb" },
|
|
97
|
-
{ value: "cover", label: "Cover", i18nKey: "pptx.ribbon.transition.cover" },
|
|
98
|
-
{ value: "diamond", label: "Diamond", i18nKey: "pptx.transitionPresets.diamond" },
|
|
99
|
-
{ value: "dissolve", label: "Dissolve", i18nKey: "pptx.transitionPresets.dissolve" },
|
|
100
|
-
{ value: "plus", label: "Plus", i18nKey: "pptx.transitionPresets.plus" },
|
|
101
|
-
{ value: "pull", label: "Pull", i18nKey: "pptx.transitionPresets.pull" },
|
|
102
|
-
{ value: "random", label: "Random", i18nKey: "pptx.transitionPresets.random" },
|
|
103
|
-
{ value: "strips", label: "Strips", i18nKey: "pptx.transitionPresets.strips" },
|
|
104
|
-
{ value: "uncover", label: "Uncover", i18nKey: "pptx.ribbon.transition.uncover" },
|
|
105
|
-
{ value: "wedge", label: "Wedge", i18nKey: "pptx.transitionPresets.wedge" },
|
|
106
|
-
{ value: "wheel", label: "Wheel", i18nKey: "pptx.transitionPresets.wheel" },
|
|
107
|
-
{ value: "zoom", label: "Zoom", i18nKey: "pptx.transitionPresets.zoom" },
|
|
108
|
-
{ value: "newsflash", label: "Newsflash", i18nKey: "pptx.transitionPresets.newsflash" },
|
|
109
|
-
{ value: "morph", label: "Morph", i18nKey: "pptx.transitionPresets.morph" }
|
|
110
|
-
];
|
|
111
85
|
var ANIMATION_PRESET_OPTIONS = [
|
|
112
86
|
{ value: "fadeIn", label: "Fade In", i18nKey: "pptx.animation.preset.fadeIn" },
|
|
113
87
|
{ value: "flyIn", label: "Fly In", i18nKey: "pptx.animation.preset.flyIn" },
|
|
@@ -133,7 +107,7 @@ var GLYPH_COMPONENTS = {
|
|
|
133
107
|
plus: lu.LuPlus,
|
|
134
108
|
triangle: lu.LuTriangle
|
|
135
109
|
};
|
|
136
|
-
var SHAPE_PRESETS =
|
|
110
|
+
var SHAPE_PRESETS = chunkIKISUZKE_js.SHAPE_PRESET_DEFS.map(
|
|
137
111
|
(def) => ({
|
|
138
112
|
type: def.type,
|
|
139
113
|
label: def.label,
|
|
@@ -144,6 +118,47 @@ var SHAPE_PRESETS = chunkLYS44KMG_js.SHAPE_PRESET_DEFS.map(
|
|
|
144
118
|
})
|
|
145
119
|
);
|
|
146
120
|
|
|
121
|
+
// src/viewer/constants/connectors-strokes.ts
|
|
122
|
+
var CONNECTOR_ARROW_OPTIONS = [
|
|
123
|
+
{ value: "none", label: "None", i18nKey: "pptx.arrowhead.none" },
|
|
124
|
+
{ value: "triangle", label: "Triangle", i18nKey: "pptx.arrowhead.triangle" },
|
|
125
|
+
{ value: "stealth", label: "Stealth", i18nKey: "pptx.arrowhead.stealth" },
|
|
126
|
+
{ value: "diamond", label: "Diamond", i18nKey: "pptx.arrowhead.diamond" },
|
|
127
|
+
{ value: "oval", label: "Oval", i18nKey: "pptx.arrowhead.oval" },
|
|
128
|
+
{ value: "arrow", label: "Open Arrow", i18nKey: "pptx.arrowhead.openArrow" }
|
|
129
|
+
];
|
|
130
|
+
var ARROW_SIZE_OPTIONS = [
|
|
131
|
+
{ value: "sm", label: "Small", i18nKey: "pptx.connectorOptions.sizeSmall" },
|
|
132
|
+
{ value: "med", label: "Medium", i18nKey: "pptx.connectorOptions.sizeMedium" },
|
|
133
|
+
{ value: "lg", label: "Large", i18nKey: "pptx.connectorOptions.sizeLarge" }
|
|
134
|
+
];
|
|
135
|
+
var STROKE_DASH_OPTIONS = [
|
|
136
|
+
{ value: "solid", label: "Solid", i18nKey: "pptx.stroke.dashSolid" },
|
|
137
|
+
{ value: "dot", label: "Dot", i18nKey: "pptx.stroke.dashDot" },
|
|
138
|
+
{ value: "dash", label: "Dash", i18nKey: "pptx.stroke.dashDash" },
|
|
139
|
+
{ value: "dashDot", label: "Dash Dot", i18nKey: "pptx.stroke.dashDashDot" },
|
|
140
|
+
{ value: "lgDash", label: "Long Dash", i18nKey: "pptx.connectorOptions.dashLongDash" },
|
|
141
|
+
{ value: "lgDashDot", label: "Long Dash Dot", i18nKey: "pptx.connectorOptions.dashLongDashDot" },
|
|
142
|
+
{
|
|
143
|
+
value: "lgDashDotDot",
|
|
144
|
+
label: "Long Dash Dot Dot",
|
|
145
|
+
i18nKey: "pptx.connectorOptions.dashLongDashDotDot"
|
|
146
|
+
},
|
|
147
|
+
{ value: "sysDot", label: "System Dot", i18nKey: "pptx.stroke.dashSysDot" },
|
|
148
|
+
{ value: "sysDash", label: "System Dash", i18nKey: "pptx.stroke.dashSysDash" },
|
|
149
|
+
{
|
|
150
|
+
value: "sysDashDot",
|
|
151
|
+
label: "System Dash Dot",
|
|
152
|
+
i18nKey: "pptx.connectorOptions.dashSysDashDot"
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
value: "sysDashDotDot",
|
|
156
|
+
label: "System Dash Dot Dot",
|
|
157
|
+
i18nKey: "pptx.connectorOptions.dashSysDashDotDot"
|
|
158
|
+
},
|
|
159
|
+
{ value: "custom", label: "Custom", i18nKey: "pptx.documentProperties.tabs.custom" }
|
|
160
|
+
];
|
|
161
|
+
|
|
147
162
|
// src/viewer/utils/shape-types.tsx
|
|
148
163
|
function getShapeType(shapeType) {
|
|
149
164
|
if (!shapeType) {
|
|
@@ -251,7 +266,7 @@ function isConnectorOrLineElement(element) {
|
|
|
251
266
|
if (element.type === "connector") {
|
|
252
267
|
return true;
|
|
253
268
|
}
|
|
254
|
-
if (!
|
|
269
|
+
if (!chunkIKISUZKE_js.hasShapeProperties(element)) {
|
|
255
270
|
return false;
|
|
256
271
|
}
|
|
257
272
|
const st = getShapeType(element.shapeType);
|
|
@@ -262,12 +277,12 @@ function isConnectorOrLineElement(element) {
|
|
|
262
277
|
function partitionTemplateElements(slides) {
|
|
263
278
|
const templateElementsBySlideId = {};
|
|
264
279
|
const nextSlides = slides.map((slide) => {
|
|
265
|
-
const template = slide.elements.filter((el) =>
|
|
280
|
+
const template = slide.elements.filter((el) => chunkIKISUZKE_js.isTemplateElement(el));
|
|
266
281
|
if (template.length === 0) {
|
|
267
282
|
return slide;
|
|
268
283
|
}
|
|
269
284
|
templateElementsBySlideId[slide.id] = template;
|
|
270
|
-
return { ...slide, elements: slide.elements.filter((el) => !
|
|
285
|
+
return { ...slide, elements: slide.elements.filter((el) => !chunkIKISUZKE_js.isTemplateElement(el)) };
|
|
271
286
|
});
|
|
272
287
|
return { slides: nextSlides, templateElementsBySlideId };
|
|
273
288
|
}
|
|
@@ -283,7 +298,7 @@ function buildSaveSlides(slides, templateElementsBySlideId) {
|
|
|
283
298
|
|
|
284
299
|
// src/viewer/utils/image-style.ts
|
|
285
300
|
function getImageMaskStyle(element) {
|
|
286
|
-
if (!
|
|
301
|
+
if (!chunkIKISUZKE_js.hasShapeProperties(element)) {
|
|
287
302
|
return void 0;
|
|
288
303
|
}
|
|
289
304
|
const shapeType = element.shapeType;
|
|
@@ -292,7 +307,7 @@ function getImageMaskStyle(element) {
|
|
|
292
307
|
}
|
|
293
308
|
const normalized = shapeType.toLowerCase();
|
|
294
309
|
if (normalized === "roundrect" || normalized === "round1rect" || normalized === "round2samerect" || normalized === "round2diagrect" || normalized === "sniproundrect" || normalized === "snip1rect" || normalized === "snip2diagrect") {
|
|
295
|
-
const radiusPx =
|
|
310
|
+
const radiusPx = chunkIKISUZKE_js.getRoundRectRadiusPx(element);
|
|
296
311
|
if (radiusPx <= 0.01) {
|
|
297
312
|
return void 0;
|
|
298
313
|
}
|
|
@@ -304,7 +319,7 @@ function getImageMaskStyle(element) {
|
|
|
304
319
|
if (normalized === "can" || normalized === "cylinder") {
|
|
305
320
|
return { borderRadius: "48% / 12%" };
|
|
306
321
|
}
|
|
307
|
-
const clipPath =
|
|
322
|
+
const clipPath = chunkIKISUZKE_js.getResolvedShapeClipPath(element);
|
|
308
323
|
if (!clipPath) {
|
|
309
324
|
return void 0;
|
|
310
325
|
}
|
|
@@ -312,7 +327,7 @@ function getImageMaskStyle(element) {
|
|
|
312
327
|
}
|
|
313
328
|
function getImageRenderStyle(element) {
|
|
314
329
|
const maskStyle = getImageMaskStyle(element) || {};
|
|
315
|
-
if (!
|
|
330
|
+
if (!chunkIKISUZKE_js.isImageLikeElement(element)) {
|
|
316
331
|
return {
|
|
317
332
|
...maskStyle,
|
|
318
333
|
width: "100%",
|
|
@@ -320,10 +335,10 @@ function getImageRenderStyle(element) {
|
|
|
320
335
|
objectFit: "cover"
|
|
321
336
|
};
|
|
322
337
|
}
|
|
323
|
-
const cropLeft =
|
|
324
|
-
const cropTop =
|
|
325
|
-
const cropRight =
|
|
326
|
-
const cropBottom =
|
|
338
|
+
const cropLeft = chunkIKISUZKE_js.clampCropValue(element.cropLeft);
|
|
339
|
+
const cropTop = chunkIKISUZKE_js.clampCropValue(element.cropTop);
|
|
340
|
+
const cropRight = chunkIKISUZKE_js.clampCropValue(element.cropRight);
|
|
341
|
+
const cropBottom = chunkIKISUZKE_js.clampCropValue(element.cropBottom);
|
|
327
342
|
const hasCrop = cropLeft + cropRight > 1e-4 || cropTop + cropBottom > 1e-4;
|
|
328
343
|
if (!hasCrop) {
|
|
329
344
|
return {
|
|
@@ -335,10 +350,10 @@ function getImageRenderStyle(element) {
|
|
|
335
350
|
}
|
|
336
351
|
const safeHorizontalScale = cropLeft + cropRight >= 0.99 ? 0.99 / (cropLeft + cropRight) : 1;
|
|
337
352
|
const safeVerticalScale = cropTop + cropBottom >= 0.99 ? 0.99 / (cropTop + cropBottom) : 1;
|
|
338
|
-
const normalizedLeft =
|
|
339
|
-
const normalizedRight =
|
|
340
|
-
const normalizedTop =
|
|
341
|
-
const normalizedBottom =
|
|
353
|
+
const normalizedLeft = chunkIKISUZKE_js.clampCropValue(cropLeft * safeHorizontalScale);
|
|
354
|
+
const normalizedRight = chunkIKISUZKE_js.clampCropValue(cropRight * safeHorizontalScale);
|
|
355
|
+
const normalizedTop = chunkIKISUZKE_js.clampCropValue(cropTop * safeVerticalScale);
|
|
356
|
+
const normalizedBottom = chunkIKISUZKE_js.clampCropValue(cropBottom * safeVerticalScale);
|
|
342
357
|
const remainingWidth = Math.max(0.01, 1 - normalizedLeft - normalizedRight);
|
|
343
358
|
const remainingHeight = Math.max(0.01, 1 - normalizedTop - normalizedBottom);
|
|
344
359
|
const tx = Math.round(-normalizedLeft / remainingWidth * 1e4) / 100;
|
|
@@ -367,7 +382,7 @@ var CROP_SHAPE_CLIP_PATHS = {
|
|
|
367
382
|
star: "polygon(50% 0%, 61% 35%, 98% 35%, 68% 57%, 79% 91%, 50% 70%, 21% 91%, 32% 57%, 2% 35%, 39% 35%)"
|
|
368
383
|
};
|
|
369
384
|
function getCropShapeClipPath(element) {
|
|
370
|
-
if (!
|
|
385
|
+
if (!chunkIKISUZKE_js.isImageLikeElement(element)) {
|
|
371
386
|
return void 0;
|
|
372
387
|
}
|
|
373
388
|
const shape = element.cropShape;
|
|
@@ -377,7 +392,7 @@ function getCropShapeClipPath(element) {
|
|
|
377
392
|
return CROP_SHAPE_CLIP_PATHS[shape];
|
|
378
393
|
}
|
|
379
394
|
function isImageTiled(element) {
|
|
380
|
-
if (!
|
|
395
|
+
if (!chunkIKISUZKE_js.isImageLikeElement(element)) {
|
|
381
396
|
return false;
|
|
382
397
|
}
|
|
383
398
|
return typeof element.tileScaleX === "number" || typeof element.tileScaleY === "number";
|
|
@@ -435,7 +450,7 @@ function buildMirrorTiledBackground(src, flip, scaleX, scaleY) {
|
|
|
435
450
|
};
|
|
436
451
|
}
|
|
437
452
|
function getImageTilingStyle(element) {
|
|
438
|
-
if (!
|
|
453
|
+
if (!chunkIKISUZKE_js.isImageLikeElement(element) || !isImageTiled(element)) {
|
|
439
454
|
return void 0;
|
|
440
455
|
}
|
|
441
456
|
const scaleX = typeof element.tileScaleX === "number" ? element.tileScaleX * 100 : 100;
|
|
@@ -719,7 +734,7 @@ function executeMediaCommand(command) {
|
|
|
719
734
|
if (!el) {
|
|
720
735
|
return false;
|
|
721
736
|
}
|
|
722
|
-
const parsed =
|
|
737
|
+
const parsed = chunkIKISUZKE_js.parseMediaCommand(command.command);
|
|
723
738
|
if (!parsed) {
|
|
724
739
|
return false;
|
|
725
740
|
}
|
|
@@ -990,7 +1005,7 @@ function PresentationMediaController({
|
|
|
990
1005
|
}
|
|
991
1006
|
function renderMediaElement(element, mediaDataUrls, options) {
|
|
992
1007
|
if (element.type !== "media") {
|
|
993
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children:
|
|
1008
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children: chunk2JDWFMIK_js.translationsEn["pptx.media.title"] });
|
|
994
1009
|
}
|
|
995
1010
|
const mediaType = element.mediaType;
|
|
996
1011
|
const mediaPath = element.mediaPath;
|
|
@@ -1020,7 +1035,7 @@ function renderMediaElement(element, mediaDataUrls, options) {
|
|
|
1020
1035
|
"img",
|
|
1021
1036
|
{
|
|
1022
1037
|
src: posterUrl,
|
|
1023
|
-
alt:
|
|
1038
|
+
alt: chunk2JDWFMIK_js.translationsEn["pptx.media.posterAlt"],
|
|
1024
1039
|
className: "w-full h-full object-contain opacity-50"
|
|
1025
1040
|
}
|
|
1026
1041
|
),
|
|
@@ -1041,7 +1056,7 @@ function renderMediaElement(element, mediaDataUrls, options) {
|
|
|
1041
1056
|
]
|
|
1042
1057
|
}
|
|
1043
1058
|
),
|
|
1044
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[10px] text-white/60", children:
|
|
1059
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[10px] text-white/60", children: chunk2JDWFMIK_js.translationsEn["pptx.media.notFound"] })
|
|
1045
1060
|
] })
|
|
1046
1061
|
] });
|
|
1047
1062
|
}
|
|
@@ -1082,7 +1097,7 @@ function renderMediaElement(element, mediaDataUrls, options) {
|
|
|
1082
1097
|
"img",
|
|
1083
1098
|
{
|
|
1084
1099
|
src: posterUrl,
|
|
1085
|
-
alt:
|
|
1100
|
+
alt: chunk2JDWFMIK_js.translationsEn["pptx.media.videoPosterAlt"],
|
|
1086
1101
|
className: "w-full h-full object-contain"
|
|
1087
1102
|
}
|
|
1088
1103
|
),
|
|
@@ -1171,76 +1186,7 @@ function renderMediaElement(element, mediaDataUrls, options) {
|
|
|
1171
1186
|
|
|
1172
1187
|
// src/viewer/utils/text-utils.tsx
|
|
1173
1188
|
function getTextStyleForElement(element, fallbackColor) {
|
|
1174
|
-
|
|
1175
|
-
return { color: fallbackColor };
|
|
1176
|
-
}
|
|
1177
|
-
const textDecorationTokens = [];
|
|
1178
|
-
if (element.textStyle?.underline || element.textStyle?.hyperlink) {
|
|
1179
|
-
textDecorationTokens.push("underline");
|
|
1180
|
-
}
|
|
1181
|
-
if (element.textStyle?.strikethrough) {
|
|
1182
|
-
textDecorationTokens.push("line-through");
|
|
1183
|
-
}
|
|
1184
|
-
const isDoubleStrike = element.textStyle?.strikethrough && element.textStyle?.strikeType === "dblStrike";
|
|
1185
|
-
const textDecorationStyle = isDoubleStrike ? "double" : void 0;
|
|
1186
|
-
const hasItalicRuns = element.textStyle?.italic || Boolean(element.textSegments?.some((segment) => segment.style?.italic));
|
|
1187
|
-
const isRtl = element.textStyle?.rtl === true;
|
|
1188
|
-
const resolvedTextColor = element.textStyle?.hyperlink ? chunkLYS44KMG_js.normalizeHexColor(element.textStyle?.color, HYPERLINK_COLOR) : chunkLYS44KMG_js.normalizeHexColor(element.textStyle?.color, fallbackColor);
|
|
1189
|
-
const bodyTop = element.textStyle?.bodyInsetTop ?? DEFAULT_BODY_INSET_TB_PX;
|
|
1190
|
-
const bodyBottom = element.textStyle?.bodyInsetBottom ?? DEFAULT_BODY_INSET_TB_PX;
|
|
1191
|
-
const bodyLeft = element.textStyle?.bodyInsetLeft ?? DEFAULT_BODY_INSET_LR_PX;
|
|
1192
|
-
const bodyRight = element.textStyle?.bodyInsetRight ?? DEFAULT_BODY_INSET_LR_PX;
|
|
1193
|
-
const hasParagraphIndents = (element.paragraphIndents?.length ?? 0) > 0;
|
|
1194
|
-
const bodyIndent = hasParagraphIndents ? 0 : element.textStyle?.paragraphIndent || 0;
|
|
1195
|
-
const bodyMarginLeft = hasParagraphIndents ? 0 : element.textStyle?.paragraphMarginLeft || 0;
|
|
1196
|
-
const bodyMarginRight = hasParagraphIndents ? 0 : element.textStyle?.paragraphMarginRight || 0;
|
|
1197
|
-
const writingMode = chunkLYS44KMG_js.toCssWritingMode(element.textStyle?.textDirection);
|
|
1198
|
-
const textOrientation = chunkLYS44KMG_js.toCssTextOrientation(element.textStyle?.textDirection);
|
|
1199
|
-
const verticalDirection = chunkLYS44KMG_js.toCssVerticalDirection(element.textStyle?.textDirection);
|
|
1200
|
-
const resolvedDirection = verticalDirection || (isRtl ? "rtl" : "ltr");
|
|
1201
|
-
const resolvedUnicodeBidi = isRtl ? "plaintext" : void 0;
|
|
1202
|
-
const hasSegments = (element.textSegments?.length ?? 0) > 0;
|
|
1203
|
-
return {
|
|
1204
|
-
color: resolvedTextColor,
|
|
1205
|
-
backgroundColor: !hasSegments && element.textStyle?.highlightColor ? chunkLYS44KMG_js.normalizeHexColor(element.textStyle.highlightColor, void 0) : void 0,
|
|
1206
|
-
textAlign: (() => {
|
|
1207
|
-
const a = element.textStyle?.align;
|
|
1208
|
-
if (a === "justLow" || a === "dist" || a === "thaiDist") {
|
|
1209
|
-
return "justify";
|
|
1210
|
-
}
|
|
1211
|
-
return a || (isRtl ? "right" : "left");
|
|
1212
|
-
})(),
|
|
1213
|
-
direction: resolvedDirection,
|
|
1214
|
-
unicodeBidi: resolvedUnicodeBidi,
|
|
1215
|
-
fontSize: element.textStyle?.fontSize || DEFAULT_TEXT_FONT_SIZE,
|
|
1216
|
-
fontWeight: element.textStyle?.bold ? 700 : 400,
|
|
1217
|
-
fontStyle: element.textStyle?.italic ? "italic" : "normal",
|
|
1218
|
-
textDecorationLine: textDecorationTokens.length > 0 ? textDecorationTokens.join(" ") : "none",
|
|
1219
|
-
textDecorationStyle,
|
|
1220
|
-
fontFamily: element.textStyle?.fontFamily || DEFAULT_FONT_FAMILY,
|
|
1221
|
-
lineHeight: chunkLYS44KMG_js.resolveLineHeight(element.textStyle, hasItalicRuns),
|
|
1222
|
-
paddingTop: bodyTop + (hasItalicRuns ? 1 : 0),
|
|
1223
|
-
paddingBottom: bodyBottom + (hasItalicRuns ? 1 : 0),
|
|
1224
|
-
paddingLeft: bodyLeft + bodyMarginLeft,
|
|
1225
|
-
paddingRight: bodyRight + bodyMarginRight,
|
|
1226
|
-
textIndent: bodyIndent,
|
|
1227
|
-
overflow: "visible",
|
|
1228
|
-
writingMode,
|
|
1229
|
-
textOrientation,
|
|
1230
|
-
...element.textStyle?.textWrap === "none" ? { whiteSpace: "nowrap", overflow: "visible" } : {},
|
|
1231
|
-
// Auto-fit: use OOXML-provided fontScale/lnSpcReduction when available,
|
|
1232
|
-
// otherwise fall back to heuristic estimation. The pure font-scale maths
|
|
1233
|
-
// now lives in pptx-viewer-shared (computeAutoFitTextStyle).
|
|
1234
|
-
...chunkLYS44KMG_js.computeAutoFitTextStyle({
|
|
1235
|
-
textStyle: element.textStyle,
|
|
1236
|
-
text: element.text ?? "",
|
|
1237
|
-
width: element.width,
|
|
1238
|
-
height: element.height,
|
|
1239
|
-
bodyInsetVertical: bodyTop + bodyBottom,
|
|
1240
|
-
hasItalicRuns,
|
|
1241
|
-
defaultFontSize: DEFAULT_TEXT_FONT_SIZE
|
|
1242
|
-
})
|
|
1243
|
-
};
|
|
1189
|
+
return chunkIKISUZKE_js.buildTextBlockStyle(element, { fallbackColor });
|
|
1244
1190
|
}
|
|
1245
1191
|
|
|
1246
1192
|
// src/viewer/utils/text-layout.tsx
|
|
@@ -1265,13 +1211,13 @@ function computeTabSize(tabStops, defaultTabSize) {
|
|
|
1265
1211
|
return avgGap > 0 ? `${Math.round(avgGap)}px` : fromDefault;
|
|
1266
1212
|
}
|
|
1267
1213
|
function getTextLayoutStyle(element) {
|
|
1268
|
-
if (!
|
|
1214
|
+
if (!chunkIKISUZKE_js.hasTextProperties(element)) {
|
|
1269
1215
|
return {};
|
|
1270
1216
|
}
|
|
1271
1217
|
const verticalAlign = element.textStyle?.vAlign || "top";
|
|
1272
|
-
const writingMode =
|
|
1273
|
-
const textOrientation =
|
|
1274
|
-
const verticalDirection =
|
|
1218
|
+
const writingMode = chunkIKISUZKE_js.toCssWritingMode(element.textStyle?.textDirection);
|
|
1219
|
+
const textOrientation = chunkIKISUZKE_js.toCssTextOrientation(element.textStyle?.textDirection);
|
|
1220
|
+
const verticalDirection = chunkIKISUZKE_js.toCssVerticalDirection(element.textStyle?.textDirection);
|
|
1275
1221
|
const parsedColumnCount = Number(element.textStyle?.columnCount);
|
|
1276
1222
|
const columnCount = Number.isFinite(parsedColumnCount) ? Math.max(1, Math.min(16, Math.round(parsedColumnCount))) : 1;
|
|
1277
1223
|
const hasColumns = columnCount > 1;
|
|
@@ -1279,7 +1225,7 @@ function getTextLayoutStyle(element) {
|
|
|
1279
1225
|
const tabStops = element.textStyle?.tabStops;
|
|
1280
1226
|
const tabSize = computeTabSize(tabStops, element.textStyle?.defaultTabSize);
|
|
1281
1227
|
const textWrapNone = element.textStyle?.textWrap === "none";
|
|
1282
|
-
const hasParagraphIndents =
|
|
1228
|
+
const hasParagraphIndents = chunkIKISUZKE_js.hasTextProperties(element) && element.paragraphIndents && element.paragraphIndents.length > 0;
|
|
1283
1229
|
const paragraphMarginLeft = element.textStyle?.paragraphMarginLeft;
|
|
1284
1230
|
const paragraphIndent = element.textStyle?.paragraphIndent;
|
|
1285
1231
|
const marginLeft = !hasParagraphIndents && typeof paragraphMarginLeft === "number" && paragraphMarginLeft !== 0 ? paragraphMarginLeft : void 0;
|
|
@@ -1288,7 +1234,7 @@ function getTextLayoutStyle(element) {
|
|
|
1288
1234
|
const bodyBottom = element.textStyle?.bodyInsetBottom ?? DEFAULT_BODY_INSET_TB_PX;
|
|
1289
1235
|
const parsedColumnSpacing = Number(element.textStyle?.columnSpacing);
|
|
1290
1236
|
const columnGap = Number.isFinite(parsedColumnSpacing) && parsedColumnSpacing > 0 ? `${parsedColumnSpacing}px` : "0.75em";
|
|
1291
|
-
const kinsokuStyles =
|
|
1237
|
+
const kinsokuStyles = chunkIKISUZKE_js.getKinsokuLineBreakStyles(element.textStyle);
|
|
1292
1238
|
if (hasColumns) {
|
|
1293
1239
|
return {
|
|
1294
1240
|
display: "block",
|
|
@@ -1335,10 +1281,10 @@ function getTextLayoutStyle(element) {
|
|
|
1335
1281
|
|
|
1336
1282
|
// src/viewer/utils/text-effects.tsx
|
|
1337
1283
|
function buildTextFillCss2(style) {
|
|
1338
|
-
return
|
|
1284
|
+
return chunkIKISUZKE_js.buildTextFillCss(style);
|
|
1339
1285
|
}
|
|
1340
1286
|
function buildTextBody3DSceneStyle2(textStyle) {
|
|
1341
|
-
return
|
|
1287
|
+
return chunkIKISUZKE_js.buildTextBody3DSceneStyle(textStyle);
|
|
1342
1288
|
}
|
|
1343
1289
|
|
|
1344
1290
|
// src/viewer/utils/text-warp-css.tsx
|
|
@@ -1523,13 +1469,13 @@ function wrapWithTextBuildAnimation(elementId, paraIndex, renderedSegments, para
|
|
|
1523
1469
|
if (!subElementAnimStates || subElementAnimStates.size === 0) {
|
|
1524
1470
|
return renderedSegments;
|
|
1525
1471
|
}
|
|
1526
|
-
const paraKey = `${elementId}${
|
|
1472
|
+
const paraKey = `${elementId}${chunkIKISUZKE_js.TEXT_BUILD_ID_SEP}p${paraIndex}`;
|
|
1527
1473
|
const paraState = subElementAnimStates.get(paraKey);
|
|
1528
1474
|
if (paraState) {
|
|
1529
1475
|
const style = buildAnimStyle(paraState);
|
|
1530
1476
|
return /* @__PURE__ */ jsxRuntime.jsx("span", { "data-anim-id": paraKey, style: { display: "inline", ...style }, children: renderedSegments }, paraKey);
|
|
1531
1477
|
}
|
|
1532
|
-
const spec =
|
|
1478
|
+
const spec = chunkIKISUZKE_js.buildTextBuildSpec(
|
|
1533
1479
|
elementId,
|
|
1534
1480
|
paraIndex,
|
|
1535
1481
|
paraSegments.map((entry) => ({ text: entry.segment.text, style: entry })),
|
|
@@ -1547,7 +1493,7 @@ function wrapWithTextBuildAnimation(elementId, paraIndex, renderedSegments, para
|
|
|
1547
1493
|
"span",
|
|
1548
1494
|
{
|
|
1549
1495
|
"data-anim-id": span.animId,
|
|
1550
|
-
style:
|
|
1496
|
+
style: chunkIKISUZKE_js.textBuildSpanStyle(span),
|
|
1551
1497
|
children: content
|
|
1552
1498
|
},
|
|
1553
1499
|
span.animId
|
|
@@ -1691,10 +1637,10 @@ function renderScriptAwareText(text, needsScriptFonts, scriptFonts, baseFontFami
|
|
|
1691
1637
|
if (!needsScriptFonts || !text) {
|
|
1692
1638
|
return text;
|
|
1693
1639
|
}
|
|
1694
|
-
const runs =
|
|
1640
|
+
const runs = chunkIKISUZKE_js.segmentByScript(text);
|
|
1695
1641
|
if (runs.length <= 1) {
|
|
1696
1642
|
if (runs.length === 1) {
|
|
1697
|
-
const font =
|
|
1643
|
+
const font = chunkIKISUZKE_js.resolveFontForScript(runs[0].script, scriptFonts);
|
|
1698
1644
|
if (font && font !== baseFontFamily) {
|
|
1699
1645
|
return /* @__PURE__ */ jsxRuntime.jsx("span", { style: { fontFamily: font }, children: text });
|
|
1700
1646
|
}
|
|
@@ -1702,7 +1648,7 @@ function renderScriptAwareText(text, needsScriptFonts, scriptFonts, baseFontFami
|
|
|
1702
1648
|
return text;
|
|
1703
1649
|
}
|
|
1704
1650
|
return runs.map((run, i) => {
|
|
1705
|
-
const font =
|
|
1651
|
+
const font = chunkIKISUZKE_js.resolveFontForScript(run.script, scriptFonts);
|
|
1706
1652
|
if (!font || font === baseFontFamily) {
|
|
1707
1653
|
return /* @__PURE__ */ jsxRuntime.jsx(React6__default.default.Fragment, { children: run.text }, `${keyPrefix}-r${i}`);
|
|
1708
1654
|
}
|
|
@@ -1774,8 +1720,8 @@ function renderSegmentContent(elementId, segmentIndex, textValue, lines, needsSc
|
|
|
1774
1720
|
);
|
|
1775
1721
|
}
|
|
1776
1722
|
function renderEquationSegment(elementId, segmentIndex, equationXml, equationNumber) {
|
|
1777
|
-
const mathml =
|
|
1778
|
-
const safeMathml = mathml ?
|
|
1723
|
+
const mathml = chunkIKISUZKE_js.convertOmmlToMathMl(equationXml);
|
|
1724
|
+
const safeMathml = mathml ? chunkIKISUZKE_js.sanitizeMathMl(mathml) : "";
|
|
1779
1725
|
const equationContent = safeMathml ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
1780
1726
|
"span",
|
|
1781
1727
|
{
|
|
@@ -1785,7 +1731,7 @@ function renderEquationSegment(elementId, segmentIndex, equationXml, equationNum
|
|
|
1785
1731
|
},
|
|
1786
1732
|
dangerouslySetInnerHTML: { __html: safeMathml }
|
|
1787
1733
|
}
|
|
1788
|
-
) : /* @__PURE__ */ jsxRuntime.jsx("span", { className: "inline-block px-1 py-0.5 rounded text-xs bg-gray-200/20 text-gray-400 italic", children:
|
|
1734
|
+
) : /* @__PURE__ */ jsxRuntime.jsx("span", { className: "inline-block px-1 py-0.5 rounded text-xs bg-gray-200/20 text-gray-400 italic", children: chunk2JDWFMIK_js.translationsEn["pptx.textSegment.equationFallback"] });
|
|
1789
1735
|
if (equationNumber) {
|
|
1790
1736
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1791
1737
|
"span",
|
|
@@ -1825,7 +1771,7 @@ function renderEquationSegment(elementId, segmentIndex, equationXml, equationNum
|
|
|
1825
1771
|
return /* @__PURE__ */ jsxRuntime.jsx("span", { children: equationContent }, `${elementId}-seg-${segmentIndex}`);
|
|
1826
1772
|
}
|
|
1827
1773
|
function renderPictureBullet(elementId, segmentIndex, bulletInfo, baseFontSize) {
|
|
1828
|
-
const picture =
|
|
1774
|
+
const picture = chunkIKISUZKE_js.resolvePictureBullet(bulletInfo, baseFontSize) ?? {
|
|
1829
1775
|
sizePx: baseFontSize,
|
|
1830
1776
|
fallbackMarker: "\u2022",
|
|
1831
1777
|
accessibleLabel: "Bullet"
|
|
@@ -1876,7 +1822,7 @@ function renderSingleSegment(element, segment, segmentIndex, fallbackColor, find
|
|
|
1876
1822
|
}
|
|
1877
1823
|
const segmentStyle = segment.style || {};
|
|
1878
1824
|
const rawText = bulletInfo && typeof bulletHangPx === "number" ? (segment.text || "").trimEnd() : segment.text || "";
|
|
1879
|
-
const textValue =
|
|
1825
|
+
const textValue = chunkIKISUZKE_js.substituteFieldText(rawText, segment.fieldType, fieldContext);
|
|
1880
1826
|
const lines = textValue.split("\n");
|
|
1881
1827
|
const textDecorationTokens = [];
|
|
1882
1828
|
if (segmentStyle.underline || segmentStyle.hyperlink) {
|
|
@@ -1886,8 +1832,8 @@ function renderSingleSegment(element, segment, segmentIndex, fallbackColor, find
|
|
|
1886
1832
|
textDecorationTokens.push("line-through");
|
|
1887
1833
|
}
|
|
1888
1834
|
const isDoubleStrike = segmentStyle.strikethrough && segmentStyle.strikeType === "dblStrike";
|
|
1889
|
-
const resolvedSegmentColor = segmentStyle.hyperlink ?
|
|
1890
|
-
const underlineDecoration =
|
|
1835
|
+
const resolvedSegmentColor = segmentStyle.hyperlink ? chunkIKISUZKE_js.normalizeHexColor(segmentStyle.color || element.textStyle?.color, HYPERLINK_COLOR) : chunkIKISUZKE_js.normalizeHexColor(segmentStyle.color || element.textStyle?.color, fallbackColor);
|
|
1836
|
+
const underlineDecoration = chunkIKISUZKE_js.resolveUnderlineDecorationStyle(
|
|
1891
1837
|
Boolean(isDoubleStrike),
|
|
1892
1838
|
segmentStyle.underlineStyle
|
|
1893
1839
|
);
|
|
@@ -1897,20 +1843,20 @@ function renderSingleSegment(element, segment, segmentIndex, fallbackColor, find
|
|
|
1897
1843
|
const letterSpacing = typeof segmentStyle.characterSpacing === "number" && segmentStyle.characterSpacing !== 0 ? `${segmentStyle.characterSpacing / 100 * (96 / 72)}px` : void 0;
|
|
1898
1844
|
const textFillStyles = buildTextFillCss2(segmentStyle);
|
|
1899
1845
|
const rawFontSize = segmentStyle.fontSize || element.textStyle?.fontSize || DEFAULT_TEXT_FONT_SIZE;
|
|
1900
|
-
const autoFitScale =
|
|
1846
|
+
const autoFitScale = chunkIKISUZKE_js.resolveAutoFitFontScale(element.textStyle);
|
|
1901
1847
|
const baseFontSize = rawFontSize * autoFitScale;
|
|
1902
1848
|
const baselineShift = baselineFraction !== 0 ? `${baselineFraction * baseFontSize}px` : void 0;
|
|
1903
1849
|
const baseFontSizePt = baseFontSize * (72 / 96);
|
|
1904
1850
|
const fontKerning = typeof segmentStyle.kerning === "number" ? segmentStyle.kerning === 0 ? "none" : baseFontSizePt >= segmentStyle.kerning / 100 ? "normal" : "none" : void 0;
|
|
1905
1851
|
const rawFontFamily = segmentStyle.fontFamily || element.textStyle?.fontFamily;
|
|
1906
|
-
const baseFontFamily = rawFontFamily ?
|
|
1852
|
+
const baseFontFamily = rawFontFamily ? chunkIKISUZKE_js.getSubstituteFontFamily(rawFontFamily) : DEFAULT_FONT_FAMILY;
|
|
1907
1853
|
const scriptFonts = {
|
|
1908
1854
|
latin: baseFontFamily,
|
|
1909
1855
|
eastAsia: segmentStyle.eastAsiaFont || element.textStyle?.eastAsiaFont || baseFontFamily,
|
|
1910
1856
|
complexScript: segmentStyle.complexScriptFont || element.textStyle?.complexScriptFont || baseFontFamily,
|
|
1911
1857
|
symbol: segmentStyle.symbolFont || element.textStyle?.symbolFont || baseFontFamily
|
|
1912
1858
|
};
|
|
1913
|
-
const needsScriptFonts =
|
|
1859
|
+
const needsScriptFonts = chunkIKISUZKE_js.hasDistinctScriptFonts(scriptFonts);
|
|
1914
1860
|
const spanStyle = {
|
|
1915
1861
|
color: resolvedSegmentColor,
|
|
1916
1862
|
fontSize: baseFontSize * baselineFontScale,
|
|
@@ -1928,15 +1874,15 @@ function renderSingleSegment(element, segment, segmentIndex, fallbackColor, find
|
|
|
1928
1874
|
fontVariantCaps: segmentStyle.textCaps === "small" ? "small-caps" : void 0,
|
|
1929
1875
|
letterSpacing,
|
|
1930
1876
|
fontKerning,
|
|
1931
|
-
backgroundColor: textFillStyles ? void 0 : segmentStyle.highlightColor ?
|
|
1877
|
+
backgroundColor: textFillStyles ? void 0 : segmentStyle.highlightColor ? chunkIKISUZKE_js.normalizeHexColor(segmentStyle.highlightColor, "transparent") : void 0,
|
|
1932
1878
|
...textFillStyles,
|
|
1933
|
-
textDecorationColor: segmentStyle.underlineColor ?
|
|
1934
|
-
WebkitTextStroke: segmentStyle.textOutlineWidth && segmentStyle.textOutlineColor ? `${segmentStyle.textOutlineWidth}px ${
|
|
1879
|
+
textDecorationColor: segmentStyle.underlineColor ? chunkIKISUZKE_js.normalizeHexColor(segmentStyle.underlineColor, void 0) : void 0,
|
|
1880
|
+
WebkitTextStroke: segmentStyle.textOutlineWidth && segmentStyle.textOutlineColor ? `${segmentStyle.textOutlineWidth}px ${chunkIKISUZKE_js.normalizeHexColor(segmentStyle.textOutlineColor, "#000000")}` : segmentStyle.textOutlineWidth ? `${segmentStyle.textOutlineWidth}px currentColor` : void 0,
|
|
1935
1881
|
paintOrder: segmentStyle.textOutlineWidth ? "stroke fill" : void 0,
|
|
1936
|
-
textShadow:
|
|
1937
|
-
filter:
|
|
1938
|
-
opacity:
|
|
1939
|
-
WebkitBoxReflect:
|
|
1882
|
+
textShadow: chunkIKISUZKE_js.buildTextShadowCss(segmentStyle),
|
|
1883
|
+
filter: chunkIKISUZKE_js.buildTextRunFilterChain(segmentStyle),
|
|
1884
|
+
opacity: chunkIKISUZKE_js.getTextAlphaOpacity(segmentStyle),
|
|
1885
|
+
WebkitBoxReflect: chunkIKISUZKE_js.buildTextReflectionCss(segmentStyle)
|
|
1940
1886
|
};
|
|
1941
1887
|
const runRtl = segmentStyle.rtl;
|
|
1942
1888
|
if (runRtl !== void 0 && runRtl !== paragraphRtl) {
|
|
@@ -1956,7 +1902,7 @@ function renderSingleSegment(element, segment, segmentIndex, fallbackColor, find
|
|
|
1956
1902
|
spanStyle.fontSize = baseFontSize * (bulletInfo.sizePercent / 100) * baselineFontScale;
|
|
1957
1903
|
}
|
|
1958
1904
|
if (bulletInfo.color) {
|
|
1959
|
-
spanStyle.color =
|
|
1905
|
+
spanStyle.color = chunkIKISUZKE_js.normalizeHexColor(bulletInfo.color, resolvedSegmentColor);
|
|
1960
1906
|
}
|
|
1961
1907
|
if (typeof bulletHangPx === "number" && bulletHangPx > 0) {
|
|
1962
1908
|
spanStyle.display = "inline-block";
|
|
@@ -2001,7 +1947,7 @@ function renderSingleSegment(element, segment, segmentIndex, fallbackColor, find
|
|
|
2001
1947
|
textAlign: segment.rubyAlignment === "l" ? "left" : segment.rubyAlignment === "r" ? "right" : segment.rubyAlignment === "dist" || segment.rubyAlignment === "distCat" || segment.rubyAlignment === "distLetter" ? "justify" : "center"
|
|
2002
1948
|
};
|
|
2003
1949
|
if (segment.rubyStyle?.color) {
|
|
2004
|
-
rubyStyle.color =
|
|
1950
|
+
rubyStyle.color = chunkIKISUZKE_js.normalizeHexColor(segment.rubyStyle.color, resolvedSegmentColor);
|
|
2005
1951
|
}
|
|
2006
1952
|
innerContent = /* @__PURE__ */ jsxRuntime.jsxs("ruby", { children: [
|
|
2007
1953
|
baseContent,
|
|
@@ -2096,7 +2042,7 @@ function groupSegmentsIntoParagraphs(segments) {
|
|
|
2096
2042
|
return paragraphs;
|
|
2097
2043
|
}
|
|
2098
2044
|
function renderTextSegments(element, fallbackColor, emptyFallback, findHighlights, onHyperlinkClick, fieldContext, subElementAnimStates, segmentOverrides, requireCtrlClick) {
|
|
2099
|
-
if (!
|
|
2045
|
+
if (!chunkIKISUZKE_js.hasTextProperties(element)) {
|
|
2100
2046
|
return emptyFallback || null;
|
|
2101
2047
|
}
|
|
2102
2048
|
const effectiveSegments = segmentOverrides ?? element.textSegments;
|
|
@@ -2117,10 +2063,10 @@ function renderTextSegments(element, fallbackColor, emptyFallback, findHighlight
|
|
|
2117
2063
|
return element.text || emptyFallback || "";
|
|
2118
2064
|
}
|
|
2119
2065
|
const paragraphs = groupSegmentsIntoParagraphs(effectiveSegments);
|
|
2120
|
-
const paragraphIndents =
|
|
2121
|
-
const elementRtl =
|
|
2122
|
-
const elementAlign =
|
|
2123
|
-
const bodyStyle =
|
|
2066
|
+
const paragraphIndents = chunkIKISUZKE_js.hasTextProperties(element) ? element.paragraphIndents : void 0;
|
|
2067
|
+
const elementRtl = chunkIKISUZKE_js.hasTextProperties(element) ? element.textStyle?.rtl : void 0;
|
|
2068
|
+
const elementAlign = chunkIKISUZKE_js.hasTextProperties(element) ? element.textStyle?.align : void 0;
|
|
2069
|
+
const bodyStyle = chunkIKISUZKE_js.hasTextProperties(element) ? element.textStyle : void 0;
|
|
2124
2070
|
const spaceFirstLast = bodyStyle?.spaceFirstLastParagraph !== false;
|
|
2125
2071
|
return paragraphs.map(({ entries: paraSegments, terminator }, paraIndex) => {
|
|
2126
2072
|
const paraIndent = paragraphIndents?.[paraIndex];
|
|
@@ -2135,14 +2081,14 @@ function renderTextSegments(element, fallbackColor, emptyFallback, findHighlight
|
|
|
2135
2081
|
return Boolean(segment.text) && segment.text.trim().length > 0;
|
|
2136
2082
|
});
|
|
2137
2083
|
const hasBullet = bulletInfo && !bulletInfo.none && hasVisibleTextContent;
|
|
2138
|
-
const paraRtl =
|
|
2084
|
+
const paraRtl = chunkIKISUZKE_js.resolveParagraphRtl(paraSegments, elementRtl);
|
|
2139
2085
|
const isRtlParagraph = paraRtl === true;
|
|
2140
|
-
const paraAlign =
|
|
2141
|
-
const cssTextAlign =
|
|
2086
|
+
const paraAlign = chunkIKISUZKE_js.resolveParagraphAlign(paraSegments, elementAlign);
|
|
2087
|
+
const cssTextAlign = chunkIKISUZKE_js.resolveCssTextAlign(paraAlign, isRtlParagraph);
|
|
2142
2088
|
const paraMarginLeft = isRtlParagraph ? void 0 : rawMarginLeft;
|
|
2143
2089
|
const paraMarginRight = isRtlParagraph ? rawMarginLeft : void 0;
|
|
2144
2090
|
const paraTextIndent = rawTextIndent;
|
|
2145
|
-
const paraKinsokuStyle =
|
|
2091
|
+
const paraKinsokuStyle = chunkIKISUZKE_js.getKinsokuLineBreakStyles(firstSeg?.segment.style);
|
|
2146
2092
|
const hasParaKinsoku = Object.keys(paraKinsokuStyle).length > 0;
|
|
2147
2093
|
const paraProps = effectiveSegments[firstSeg?.globalIndex ?? -1]?.paragraphProperties ?? (paraSegments.length === 0 ? terminator?.paragraphProperties : void 0);
|
|
2148
2094
|
const spacing = resolveParagraphSpacing({
|
|
@@ -2152,7 +2098,7 @@ function renderTextSegments(element, fallbackColor, emptyFallback, findHighlight
|
|
|
2152
2098
|
isLast: paraIndex === paragraphs.length - 1,
|
|
2153
2099
|
spaceFirstLast
|
|
2154
2100
|
});
|
|
2155
|
-
const strutFontSize =
|
|
2101
|
+
const strutFontSize = chunkIKISUZKE_js.resolveParagraphStrutFontSize(
|
|
2156
2102
|
paraSegments.length > 0 ? paraSegments.map(({ segment }) => segment) : terminator ? [terminator] : [],
|
|
2157
2103
|
bodyStyle?.fontSize
|
|
2158
2104
|
);
|
|
@@ -2256,13 +2202,13 @@ function hexToRgbUnit(hex) {
|
|
|
2256
2202
|
};
|
|
2257
2203
|
}
|
|
2258
2204
|
function getDuotoneColors(element) {
|
|
2259
|
-
if (!
|
|
2205
|
+
if (!chunkIKISUZKE_js.isImageLikeElement(element)) {
|
|
2260
2206
|
return void 0;
|
|
2261
2207
|
}
|
|
2262
2208
|
return element.imageEffects?.duotone;
|
|
2263
2209
|
}
|
|
2264
2210
|
function buildLineShadowCss(element) {
|
|
2265
|
-
if (!
|
|
2211
|
+
if (!chunkIKISUZKE_js.hasShapeProperties(element)) {
|
|
2266
2212
|
return void 0;
|
|
2267
2213
|
}
|
|
2268
2214
|
const ss = element.shapeStyle;
|
|
@@ -2273,13 +2219,13 @@ function buildLineShadowCss(element) {
|
|
|
2273
2219
|
const offsetY = typeof ss.lineShadowOffsetY === "number" ? ss.lineShadowOffsetY : 2;
|
|
2274
2220
|
const blur = typeof ss.lineShadowBlur === "number" ? Math.max(0, ss.lineShadowBlur) : 4;
|
|
2275
2221
|
const opacity = typeof ss.lineShadowOpacity === "number" ? Math.max(0, Math.min(1, ss.lineShadowOpacity)) : 0.35;
|
|
2276
|
-
return `${Math.round(offsetX)}px ${Math.round(offsetY)}px ${Math.round(blur)}px ${
|
|
2277
|
-
|
|
2222
|
+
return `${Math.round(offsetX)}px ${Math.round(offsetY)}px ${Math.round(blur)}px ${chunkIKISUZKE_js.colorWithOpacity(
|
|
2223
|
+
chunkIKISUZKE_js.normalizeHexColor(ss.lineShadowColor, "#000000"),
|
|
2278
2224
|
opacity
|
|
2279
2225
|
)}`;
|
|
2280
2226
|
}
|
|
2281
2227
|
function buildLineGlowFilter(element) {
|
|
2282
|
-
if (!
|
|
2228
|
+
if (!chunkIKISUZKE_js.hasShapeProperties(element)) {
|
|
2283
2229
|
return void 0;
|
|
2284
2230
|
}
|
|
2285
2231
|
const ss = element.shapeStyle;
|
|
@@ -2288,7 +2234,7 @@ function buildLineGlowFilter(element) {
|
|
|
2288
2234
|
}
|
|
2289
2235
|
const glowOpacity = typeof ss.lineGlowOpacity === "number" ? ss.lineGlowOpacity : 0.75;
|
|
2290
2236
|
const glowRad = Math.round(Math.max(0, ss.lineGlowRadius));
|
|
2291
|
-
const glowCol =
|
|
2237
|
+
const glowCol = chunkIKISUZKE_js.colorWithOpacity(chunkIKISUZKE_js.normalizeHexColor(ss.lineGlowColor, "#ffff00"), glowOpacity);
|
|
2292
2238
|
return `drop-shadow(0 0 ${glowRad}px ${glowCol})`;
|
|
2293
2239
|
}
|
|
2294
2240
|
function mapDagBlendModeToCss(blend) {
|
|
@@ -2312,7 +2258,7 @@ function getDagDuotoneFilterId(elementId) {
|
|
|
2312
2258
|
return `dag-duotone-${elementId}`;
|
|
2313
2259
|
}
|
|
2314
2260
|
function hasDagDuotoneEffect(element) {
|
|
2315
|
-
if (!
|
|
2261
|
+
if (!chunkIKISUZKE_js.hasShapeProperties(element)) {
|
|
2316
2262
|
return false;
|
|
2317
2263
|
}
|
|
2318
2264
|
return Boolean(element.shapeStyle?.dagDuotone);
|
|
@@ -2375,7 +2321,7 @@ function getRoundRectRadiusPx2(element) {
|
|
|
2375
2321
|
|
|
2376
2322
|
// src/viewer/utils/shape-visual-3d.ts
|
|
2377
2323
|
function build3DExtrusionData2(shape3d, scene3d, fillColor, elementWidth, elementHeight) {
|
|
2378
|
-
return
|
|
2324
|
+
return chunkIKISUZKE_js.build3DExtrusionData(
|
|
2379
2325
|
shape3d,
|
|
2380
2326
|
scene3d,
|
|
2381
2327
|
fillColor,
|
|
@@ -2384,7 +2330,7 @@ function build3DExtrusionData2(shape3d, scene3d, fillColor, elementWidth, elemen
|
|
|
2384
2330
|
);
|
|
2385
2331
|
}
|
|
2386
2332
|
function apply3dEffects2(base, scene3d, shape3d, fillColorFallback) {
|
|
2387
|
-
|
|
2333
|
+
chunkIKISUZKE_js.apply3dEffects(base, scene3d, shape3d, fillColorFallback);
|
|
2388
2334
|
}
|
|
2389
2335
|
|
|
2390
2336
|
// src/viewer/utils/vector-subpath-paint.ts
|
|
@@ -2393,7 +2339,7 @@ function toHexByte(value) {
|
|
|
2393
2339
|
return clamped.toString(16).padStart(2, "0");
|
|
2394
2340
|
}
|
|
2395
2341
|
function shiftHex(hex, factor, towardsWhite) {
|
|
2396
|
-
const channels =
|
|
2342
|
+
const channels = chunkIKISUZKE_js.hexToRgbChannels(hex);
|
|
2397
2343
|
if (!channels) {
|
|
2398
2344
|
return hex;
|
|
2399
2345
|
}
|
|
@@ -2419,13 +2365,13 @@ function buildCustomSubpathPaints(subpaths, hasFill, fillColor, fillOpacity) {
|
|
|
2419
2365
|
const fillOff = subpath.fillMode === "none" || !hasFill;
|
|
2420
2366
|
return {
|
|
2421
2367
|
d: subpath.d,
|
|
2422
|
-
fill: fillOff ? "none" :
|
|
2368
|
+
fill: fillOff ? "none" : chunkIKISUZKE_js.colorWithOpacity(adjustFillForMode(fillColor, subpath.fillMode), fillOpacity),
|
|
2423
2369
|
stroked: subpath.stroke !== false
|
|
2424
2370
|
};
|
|
2425
2371
|
});
|
|
2426
2372
|
}
|
|
2427
2373
|
function getStrokeOnlyPresetPaths(element) {
|
|
2428
|
-
if (element.type !== "shape" || !
|
|
2374
|
+
if (element.type !== "shape" || !chunkIKISUZKE_js.hasShapeProperties(element)) {
|
|
2429
2375
|
return void 0;
|
|
2430
2376
|
}
|
|
2431
2377
|
const shapeType = element.shapeType;
|
|
@@ -2435,7 +2381,7 @@ function getStrokeOnlyPresetPaths(element) {
|
|
|
2435
2381
|
if (element.pathData) {
|
|
2436
2382
|
return void 0;
|
|
2437
2383
|
}
|
|
2438
|
-
const result =
|
|
2384
|
+
const result = chunkIKISUZKE_js.evaluatePresetShape(
|
|
2439
2385
|
shapeType,
|
|
2440
2386
|
Math.max(element.width, 1),
|
|
2441
2387
|
Math.max(element.height, 1),
|
|
@@ -2449,28 +2395,47 @@ function getStrokeOnlyPresetPaths(element) {
|
|
|
2449
2395
|
}
|
|
2450
2396
|
|
|
2451
2397
|
// src/viewer/utils/shape-visual-style.ts
|
|
2398
|
+
function getGradientTilingCss(style) {
|
|
2399
|
+
if (!style || style.fillMode !== "gradient") {
|
|
2400
|
+
return void 0;
|
|
2401
|
+
}
|
|
2402
|
+
const isStructuredLinear = (style.fillGradientType || "linear") === "linear" && chunkIKISUZKE_js.sanitizeGradientStops(style.fillGradientStops).length > 0;
|
|
2403
|
+
if (isStructuredLinear) {
|
|
2404
|
+
const flip = chunkIKISUZKE_js.getGradientTileFlipCss(style.fillGradientFlip);
|
|
2405
|
+
if (flip) {
|
|
2406
|
+
return flip;
|
|
2407
|
+
}
|
|
2408
|
+
}
|
|
2409
|
+
return chunkIKISUZKE_js.getGradientTileRectCss(style.fillGradientTileRect);
|
|
2410
|
+
}
|
|
2452
2411
|
function getShapeVisualStyle(element, hasFill, fillColor, strokeWidth, strokeColor, animatesFill, animatesStroke) {
|
|
2453
|
-
if (!
|
|
2412
|
+
if (!chunkIKISUZKE_js.hasShapeProperties(element)) {
|
|
2454
2413
|
return {};
|
|
2455
2414
|
}
|
|
2456
2415
|
const normalizedShapeType = getShapeType(element.shapeType);
|
|
2457
|
-
const clipPath =
|
|
2416
|
+
const clipPath = chunkIKISUZKE_js.getResolvedShapeClipPath(element);
|
|
2458
2417
|
const rendersCustomVectorPath = (element.type === "shape" || element.type === "image" || element.type === "picture") && Boolean(element.pathData) && typeof element.pathWidth === "number" && element.pathWidth > 0 && typeof element.pathHeight === "number" && element.pathHeight > 0;
|
|
2459
2418
|
const rendersStrokeOnlyPreset = Boolean(getStrokeOnlyPresetPaths(element));
|
|
2460
2419
|
const fillOpacity = element.shapeStyle?.fillOpacity;
|
|
2461
2420
|
const strokeOpacity = element.shapeStyle?.strokeOpacity;
|
|
2462
|
-
const strokeDash =
|
|
2463
|
-
const fillGradient =
|
|
2464
|
-
|
|
2465
|
-
|
|
2466
|
-
|
|
2467
|
-
|
|
2421
|
+
const strokeDash = chunkIKISUZKE_js.normalizeStrokeDashType(element.shapeStyle?.strokeDash);
|
|
2422
|
+
const fillGradient = chunkIKISUZKE_js.buildCssGradientFromShapeStyle(element.shapeStyle, {
|
|
2423
|
+
rotation: element.rotation,
|
|
2424
|
+
width: element.width,
|
|
2425
|
+
height: element.height
|
|
2426
|
+
}) || element.shapeStyle?.fillGradient;
|
|
2427
|
+
const shadowCss = chunkIKISUZKE_js.buildShadowCssFromShapeStyle(element.shapeStyle);
|
|
2428
|
+
const innerShadowCss = chunkIKISUZKE_js.buildInnerShadowCssFromShapeStyle(element.shapeStyle);
|
|
2429
|
+
const resolvedFillColor = chunkIKISUZKE_js.colorWithOpacity(fillColor, fillOpacity);
|
|
2430
|
+
const resolvedStrokeColor = chunkIKISUZKE_js.colorWithOpacity(strokeColor, strokeOpacity);
|
|
2468
2431
|
const ss = element.shapeStyle;
|
|
2432
|
+
const gradientTiling = getGradientTilingCss(ss);
|
|
2433
|
+
const paintsGradientOutline = chunkIKISUZKE_js.suppressesCssBorder(element);
|
|
2469
2434
|
const hasFillOverlayColor = Boolean(
|
|
2470
2435
|
ss?.dagFillOverlayColor && ss.dagFillOverlayColor !== "transparent"
|
|
2471
2436
|
);
|
|
2472
2437
|
const combinedShadowParts = [];
|
|
2473
|
-
const multiLayerShadow =
|
|
2438
|
+
const multiLayerShadow = chunkIKISUZKE_js.buildMultiLayerShadowCss(element.shapeStyle);
|
|
2474
2439
|
if (multiLayerShadow) {
|
|
2475
2440
|
combinedShadowParts.push(multiLayerShadow);
|
|
2476
2441
|
} else if (shadowCss) {
|
|
@@ -2479,7 +2444,7 @@ function getShapeVisualStyle(element, hasFill, fillColor, strokeWidth, strokeCol
|
|
|
2479
2444
|
if (innerShadowCss) {
|
|
2480
2445
|
combinedShadowParts.push(innerShadowCss);
|
|
2481
2446
|
}
|
|
2482
|
-
const glowBoxShadow =
|
|
2447
|
+
const glowBoxShadow = chunkIKISUZKE_js.buildGlowBoxShadow(ss?.glowColor, ss?.glowRadius, ss?.glowOpacity);
|
|
2483
2448
|
if (glowBoxShadow) {
|
|
2484
2449
|
combinedShadowParts.push(glowBoxShadow);
|
|
2485
2450
|
}
|
|
@@ -2487,7 +2452,7 @@ function getShapeVisualStyle(element, hasFill, fillColor, strokeWidth, strokeCol
|
|
|
2487
2452
|
if (lineShadow) {
|
|
2488
2453
|
combinedShadowParts.push(lineShadow);
|
|
2489
2454
|
}
|
|
2490
|
-
const compoundLineShadow =
|
|
2455
|
+
const compoundLineShadow = chunkIKISUZKE_js.getCompoundLineBoxShadow(
|
|
2491
2456
|
element.shapeStyle?.compoundLine,
|
|
2492
2457
|
strokeWidth,
|
|
2493
2458
|
resolvedStrokeColor
|
|
@@ -2500,11 +2465,11 @@ function getShapeVisualStyle(element, hasFill, fillColor, strokeWidth, strokeCol
|
|
|
2500
2465
|
if (ss?.glowColor && ss.glowColor !== "transparent" && ss.glowRadius) {
|
|
2501
2466
|
const glowOpacity = typeof ss.glowOpacity === "number" ? ss.glowOpacity : 0.75;
|
|
2502
2467
|
const glowRad = Math.round(Math.max(0, ss.glowRadius));
|
|
2503
|
-
const glowCol =
|
|
2468
|
+
const glowCol = chunkIKISUZKE_js.colorWithOpacity(chunkIKISUZKE_js.normalizeHexColor(ss.glowColor, "#ffff00"), glowOpacity);
|
|
2504
2469
|
filterParts.push(`drop-shadow(0 0 ${glowRad}px ${glowCol})`);
|
|
2505
2470
|
}
|
|
2506
2471
|
if (typeof ss?.softEdgeRadius === "number" && ss.softEdgeRadius > 0) {
|
|
2507
|
-
filterParts.push(`url(#${
|
|
2472
|
+
filterParts.push(`url(#${chunkIKISUZKE_js.getSoftEdgeFilterId(element.id)})`);
|
|
2508
2473
|
}
|
|
2509
2474
|
if (typeof ss?.blurRadius === "number" && ss.blurRadius > 0) {
|
|
2510
2475
|
filterParts.push(`blur(${Math.round(ss.blurRadius)}px)`);
|
|
@@ -2513,13 +2478,13 @@ function getShapeVisualStyle(element, hasFill, fillColor, strokeWidth, strokeCol
|
|
|
2513
2478
|
if (lineGlowCss) {
|
|
2514
2479
|
filterParts.push(lineGlowCss);
|
|
2515
2480
|
}
|
|
2516
|
-
const dagFilter =
|
|
2481
|
+
const dagFilter = chunkIKISUZKE_js.getEffectDagFilter(ss, element.id);
|
|
2517
2482
|
if (dagFilter) {
|
|
2518
2483
|
filterParts.push(dagFilter);
|
|
2519
2484
|
}
|
|
2520
2485
|
const lineJoinCss = ss?.lineJoin === "round" ? "round" : ss?.lineJoin === "bevel" ? "bevel" : ss?.lineJoin === "miter" ? "miter" : void 0;
|
|
2521
2486
|
const miterLimitCss = ss?.lineJoin === "miter" && typeof ss?.miterLimit === "number" ? Math.max(ss.miterLimit / 1e5, 1) : void 0;
|
|
2522
|
-
const patternFill =
|
|
2487
|
+
const patternFill = chunkIKISUZKE_js.buildPatternFillCss(element.shapeStyle);
|
|
2523
2488
|
const imageFillUrl = ss?.fillMode === "image" && ss.fillImageUrl ? ss.fillImageUrl : void 0;
|
|
2524
2489
|
const imageFillMode = ss?.fillImageMode || "stretch";
|
|
2525
2490
|
let reflectCss;
|
|
@@ -2531,7 +2496,7 @@ function getShapeVisualStyle(element, hasFill, fillColor, strokeWidth, strokeCol
|
|
|
2531
2496
|
const endOpacity = typeof ss.reflectionEndOpacity === "number" ? ss.reflectionEndOpacity : 0;
|
|
2532
2497
|
const fadeLength = typeof ss.reflectionEndPosition === "number" ? Math.round(ss.reflectionEndPosition * Math.max(element.height, 1)) : 100;
|
|
2533
2498
|
const blurRadius = typeof ss.reflectionBlurRadius === "number" ? ss.reflectionBlurRadius : 0;
|
|
2534
|
-
reflectCss =
|
|
2499
|
+
reflectCss = chunkIKISUZKE_js.buildReflectionCss(distance, startOpacity, endOpacity, fadeLength, blurRadius);
|
|
2535
2500
|
}
|
|
2536
2501
|
}
|
|
2537
2502
|
const base = {
|
|
@@ -2545,8 +2510,8 @@ function getShapeVisualStyle(element, hasFill, fillColor, strokeWidth, strokeCol
|
|
|
2545
2510
|
// `getComputedFillStyle` (image -> gradient -> pattern -> solid).
|
|
2546
2511
|
backgroundColor: imageFillUrl ? "transparent" : patternFill ? patternFill.backgroundColor : hasFill && !fillGradient ? resolvedFillColor : "transparent",
|
|
2547
2512
|
backgroundImage: imageFillUrl ? `url(${imageFillUrl})` : patternFill ? patternFill.backgroundImage : hasFill && fillGradient ? fillGradient : void 0,
|
|
2548
|
-
backgroundRepeat: imageFillUrl ? imageFillMode === "tile" ? "repeat" : "no-repeat" : patternFill ? "repeat" : hasFill && fillGradient ? "no-repeat" : void 0,
|
|
2549
|
-
backgroundSize: imageFillUrl ? imageFillMode === "tile" ? "auto" : "100% 100%" : patternFill ? "auto" : hasFill && fillGradient ? "100% 100%" : void 0,
|
|
2513
|
+
backgroundRepeat: imageFillUrl ? imageFillMode === "tile" ? "repeat" : "no-repeat" : patternFill ? "repeat" : hasFill && fillGradient ? gradientTiling?.backgroundRepeat ?? "no-repeat" : void 0,
|
|
2514
|
+
backgroundSize: imageFillUrl ? imageFillMode === "tile" ? "auto" : "100% 100%" : patternFill ? "auto" : hasFill && fillGradient ? gradientTiling?.backgroundSize ?? "100% 100%" : void 0,
|
|
2550
2515
|
// The container always carries a 1px border (transparent unless the shape
|
|
2551
2516
|
// has a stroke or is hovered) and `box-sizing: border-box`, so the default
|
|
2552
2517
|
// `background-origin: padding-box` sizes the paint 2px smaller than the
|
|
@@ -2555,7 +2520,7 @@ function getShapeVisualStyle(element, hasFill, fillColor, strokeWidth, strokeCol
|
|
|
2555
2520
|
// edge - a fade-to-transparent overlay grew a hard opaque line down its
|
|
2556
2521
|
// side. Paint from the border box so the fill matches the shape outline.
|
|
2557
2522
|
backgroundOrigin: "border-box",
|
|
2558
|
-
backgroundPosition: imageFillUrl ? "center" : void 0,
|
|
2523
|
+
backgroundPosition: imageFillUrl ? "center" : hasFill && fillGradient ? gradientTiling?.backgroundPosition : void 0,
|
|
2559
2524
|
boxShadow: combinedBoxShadow,
|
|
2560
2525
|
WebkitBoxReflect: reflectCss,
|
|
2561
2526
|
filter: filterParts.length > 0 ? filterParts.join(" ") : void 0,
|
|
@@ -2573,9 +2538,13 @@ function getShapeVisualStyle(element, hasFill, fillColor, strokeWidth, strokeCol
|
|
|
2573
2538
|
// two adjacent 40px buttons rendered with a 2px gap PowerPoint does not
|
|
2574
2539
|
// draw. The affordance is an `outline` instead (see `ElementRenderer`),
|
|
2575
2540
|
// which paints in the same place without taking part in layout.
|
|
2576
|
-
|
|
2577
|
-
|
|
2578
|
-
|
|
2541
|
+
// A gradient outline is painted by `ShapeEffectOverlay` as a stroked SVG
|
|
2542
|
+
// path following the shape's geometry, because a CSS border can only take
|
|
2543
|
+
// one colour. Keeping the border too would draw the parser's averaged
|
|
2544
|
+
// solid underneath the gradient.
|
|
2545
|
+
borderWidth: strokeWidth > 0 && !paintsGradientOutline ? chunkIKISUZKE_js.getCompoundLineBorderWidth(ss?.compoundLine, strokeWidth) : 0,
|
|
2546
|
+
borderColor: strokeWidth > 0 && !paintsGradientOutline ? resolvedStrokeColor : void 0,
|
|
2547
|
+
borderStyle: strokeWidth > 0 && !paintsGradientOutline ? chunkIKISUZKE_js.getCssBorderDashStyle(strokeDash, ss?.compoundLine) : void 0,
|
|
2579
2548
|
strokeLinejoin: lineJoinCss,
|
|
2580
2549
|
strokeMiterlimit: miterLimitCss,
|
|
2581
2550
|
strokeLinecap: ss?.lineCap === "rnd" ? "round" : ss?.lineCap === "sq" ? "square" : ss?.lineCap === "flat" ? "butt" : void 0
|
|
@@ -2631,7 +2600,7 @@ function getShapeVisualStyle(element, hasFill, fillColor, strokeWidth, strokeCol
|
|
|
2631
2600
|
borderWidth: 0,
|
|
2632
2601
|
borderTopWidth: Math.max(strokeWidth, 2),
|
|
2633
2602
|
borderTopColor: resolvedStrokeColor,
|
|
2634
|
-
borderTopStyle:
|
|
2603
|
+
borderTopStyle: chunkIKISUZKE_js.getCssBorderDashStyle(strokeDash)
|
|
2635
2604
|
};
|
|
2636
2605
|
}
|
|
2637
2606
|
if (normalizedShapeType === "cylinder") {
|
|
@@ -2645,13 +2614,13 @@ function getShapeVisualStyle(element, hasFill, fillColor, strokeWidth, strokeCol
|
|
|
2645
2614
|
function getConnectorAdjustment(element, key, fallback) {
|
|
2646
2615
|
const direct = element.shapeAdjustments?.[key];
|
|
2647
2616
|
if (typeof direct === "number" && Number.isFinite(direct)) {
|
|
2648
|
-
return
|
|
2617
|
+
return chunkIKISUZKE_js.clampUnitInterval(direct / 1e5);
|
|
2649
2618
|
}
|
|
2650
2619
|
const fallbackKey = element.shapeAdjustments?.adj;
|
|
2651
2620
|
if (typeof fallbackKey === "number" && Number.isFinite(fallbackKey)) {
|
|
2652
|
-
return
|
|
2621
|
+
return chunkIKISUZKE_js.clampUnitInterval(fallbackKey / 1e5);
|
|
2653
2622
|
}
|
|
2654
|
-
return
|
|
2623
|
+
return chunkIKISUZKE_js.clampUnitInterval(fallback);
|
|
2655
2624
|
}
|
|
2656
2625
|
function getConnectorPathGeometry(element) {
|
|
2657
2626
|
const width = Math.max(element.width, 1);
|
|
@@ -2788,11 +2757,11 @@ function strokeContext(shapeStyle, strokePaint, strokeWidth, dashArray) {
|
|
|
2788
2757
|
strokePaint,
|
|
2789
2758
|
strokeWidth,
|
|
2790
2759
|
dashArray,
|
|
2791
|
-
lineCap:
|
|
2760
|
+
lineCap: chunkIKISUZKE_js.svgLineCap(shapeStyle?.lineCap),
|
|
2792
2761
|
lineJoin,
|
|
2793
2762
|
miterLimit,
|
|
2794
|
-
offsets:
|
|
2795
|
-
widths:
|
|
2763
|
+
offsets: chunkIKISUZKE_js.getCompoundLineOffsets(shapeStyle?.compoundLine, strokeWidth),
|
|
2764
|
+
widths: chunkIKISUZKE_js.getCompoundLineWidths(shapeStyle?.compoundLine, strokeWidth)
|
|
2796
2765
|
};
|
|
2797
2766
|
}
|
|
2798
2767
|
function strokeStrands(d, keyBase, ctx) {
|
|
@@ -2813,21 +2782,49 @@ function strokeStrands(d, keyBase, ctx) {
|
|
|
2813
2782
|
`${keyBase}-s${idx}`
|
|
2814
2783
|
));
|
|
2815
2784
|
}
|
|
2816
|
-
function
|
|
2785
|
+
function gradientDefs(gradient) {
|
|
2786
|
+
if (!gradient) {
|
|
2787
|
+
return null;
|
|
2788
|
+
}
|
|
2789
|
+
const stops = gradient.stops.map((stop, idx) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
2790
|
+
"stop",
|
|
2791
|
+
{
|
|
2792
|
+
offset: stop.offset,
|
|
2793
|
+
stopColor: stop.color,
|
|
2794
|
+
stopOpacity: typeof stop.opacity === "number" ? stop.opacity : void 0
|
|
2795
|
+
},
|
|
2796
|
+
idx
|
|
2797
|
+
));
|
|
2798
|
+
return /* @__PURE__ */ jsxRuntime.jsx("defs", { children: gradient.kind === "radial" ? /* @__PURE__ */ jsxRuntime.jsx("radialGradient", { id: gradient.id, cx: gradient.cx, cy: gradient.cy, r: gradient.r, children: stops }) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
2799
|
+
"linearGradient",
|
|
2800
|
+
{
|
|
2801
|
+
id: gradient.id,
|
|
2802
|
+
x1: gradient.x1,
|
|
2803
|
+
y1: gradient.y1,
|
|
2804
|
+
x2: gradient.x2,
|
|
2805
|
+
y2: gradient.y2,
|
|
2806
|
+
children: stops
|
|
2807
|
+
}
|
|
2808
|
+
) });
|
|
2809
|
+
}
|
|
2810
|
+
function renderCustomGeometryVector(pathData, pathWidth, pathHeight, structuredPaths, shapeStyle, hasFill, fillColor, fillOpacity, strokePaint, strokeWidth, dashArray, animatesFill = false, gradient) {
|
|
2817
2811
|
const ctx = strokeContext(shapeStyle, strokePaint, strokeWidth, dashArray);
|
|
2818
|
-
const subpaths = structuredPaths && structuredPaths.length > 0 ?
|
|
2812
|
+
const subpaths = structuredPaths && structuredPaths.length > 0 ? chunkIKISUZKE_js.customGeometryPathsToSvgSubpaths(structuredPaths, pathWidth, pathHeight) : void 0;
|
|
2819
2813
|
const needsPerSubpath = subpaths !== void 0 && subpaths.some((sp) => sp.fillMode && sp.fillMode !== "norm" || sp.stroke === false);
|
|
2814
|
+
const gradientPaint = gradient ? chunkIKISUZKE_js.svgGradientFillRef(gradient) : void 0;
|
|
2820
2815
|
const nodes = [];
|
|
2821
2816
|
if (subpaths && needsPerSubpath) {
|
|
2822
2817
|
const paints = buildCustomSubpathPaints(subpaths, hasFill, fillColor, fillOpacity);
|
|
2823
2818
|
paints.forEach((paint, idx) => {
|
|
2824
2819
|
if (paint.fill !== "none") {
|
|
2820
|
+
const mode = subpaths[idx]?.fillMode;
|
|
2821
|
+
const useGradient = gradientPaint && (mode === void 0 || mode === "norm");
|
|
2825
2822
|
nodes.push(
|
|
2826
2823
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2827
2824
|
"path",
|
|
2828
2825
|
{
|
|
2829
2826
|
d: paint.d,
|
|
2830
|
-
fill: animatesFill ? "inherit" : paint.fill,
|
|
2827
|
+
fill: animatesFill ? "inherit" : useGradient ? gradientPaint : paint.fill,
|
|
2831
2828
|
stroke: "none",
|
|
2832
2829
|
vectorEffect: "non-scaling-stroke"
|
|
2833
2830
|
},
|
|
@@ -2846,7 +2843,7 @@ function renderCustomGeometryVector(pathData, pathWidth, pathHeight, structuredP
|
|
|
2846
2843
|
"path",
|
|
2847
2844
|
{
|
|
2848
2845
|
d: pathData,
|
|
2849
|
-
fill: animatesFill ? "inherit" :
|
|
2846
|
+
fill: animatesFill ? "inherit" : gradientPaint ?? chunkIKISUZKE_js.colorWithOpacity(fillColor, fillOpacity),
|
|
2850
2847
|
stroke: "none",
|
|
2851
2848
|
vectorEffect: "non-scaling-stroke"
|
|
2852
2849
|
},
|
|
@@ -2858,13 +2855,16 @@ function renderCustomGeometryVector(pathData, pathWidth, pathHeight, structuredP
|
|
|
2858
2855
|
nodes.push(...strokeStrands(pathData, "agg", ctx));
|
|
2859
2856
|
}
|
|
2860
2857
|
}
|
|
2861
|
-
return /* @__PURE__ */ jsxRuntime.
|
|
2858
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2862
2859
|
"svg",
|
|
2863
2860
|
{
|
|
2864
2861
|
viewBox: `0 0 ${pathWidth} ${pathHeight}`,
|
|
2865
2862
|
className: "w-full h-full pointer-events-none",
|
|
2866
2863
|
preserveAspectRatio: "none",
|
|
2867
|
-
children:
|
|
2864
|
+
children: [
|
|
2865
|
+
animatesFill ? null : gradientDefs(gradient),
|
|
2866
|
+
nodes
|
|
2867
|
+
]
|
|
2868
2868
|
}
|
|
2869
2869
|
);
|
|
2870
2870
|
}
|
|
@@ -2888,14 +2888,14 @@ function renderStrokeOnlyPreset(presetPaths, width, height, shapeStyle, strokePa
|
|
|
2888
2888
|
);
|
|
2889
2889
|
}
|
|
2890
2890
|
function renderVectorShape(element, hasFill, fillColor, strokeWidth, strokeColor, animatesFill, animatesStroke) {
|
|
2891
|
-
if (!
|
|
2891
|
+
if (!chunkIKISUZKE_js.hasShapeProperties(element)) {
|
|
2892
2892
|
return null;
|
|
2893
2893
|
}
|
|
2894
2894
|
const normalizedType = (element.shapeType || "").toLowerCase();
|
|
2895
|
-
const fillPaint = animatesFill ? "inherit" :
|
|
2896
|
-
const strokePaint = animatesStroke ? "inherit" :
|
|
2897
|
-
const dashType =
|
|
2898
|
-
const dashArray =
|
|
2895
|
+
const fillPaint = animatesFill ? "inherit" : chunkIKISUZKE_js.colorWithOpacity(fillColor, element.shapeStyle?.fillOpacity);
|
|
2896
|
+
const strokePaint = animatesStroke ? "inherit" : chunkIKISUZKE_js.colorWithOpacity(strokeColor, element.shapeStyle?.strokeOpacity);
|
|
2897
|
+
const dashType = chunkIKISUZKE_js.normalizeStrokeDashType(element.shapeStyle?.strokeDash);
|
|
2898
|
+
const dashArray = chunkIKISUZKE_js.getSvgStrokeDasharray(
|
|
2899
2899
|
dashType,
|
|
2900
2900
|
Math.max(strokeWidth, 1),
|
|
2901
2901
|
element.shapeStyle?.customDashSegments
|
|
@@ -2971,21 +2971,26 @@ function renderVectorShape(element, hasFill, fillColor, strokeWidth, strokeColor
|
|
|
2971
2971
|
strokePaint,
|
|
2972
2972
|
strokeWidth,
|
|
2973
2973
|
dashArray,
|
|
2974
|
-
Boolean(animatesFill)
|
|
2974
|
+
Boolean(animatesFill),
|
|
2975
|
+
// A freeform's `a:gradFill` needs a real SVG paint server: the
|
|
2976
|
+
// container's `background-image` is suppressed for custom geometry, so
|
|
2977
|
+
// without this the shape fell back to the parser's representative solid
|
|
2978
|
+
// and lost every fade (issue #132).
|
|
2979
|
+
chunkIKISUZKE_js.buildSvgGradientDef(element.shapeStyle, element.id)
|
|
2975
2980
|
);
|
|
2976
2981
|
}
|
|
2977
|
-
if (
|
|
2982
|
+
if (chunkIKISUZKE_js.isCalloutShape(normalizedType)) {
|
|
2978
2983
|
const width = Math.max(element.width, 1);
|
|
2979
2984
|
const height = Math.max(element.height, 1);
|
|
2980
|
-
const geometry =
|
|
2985
|
+
const geometry = chunkIKISUZKE_js.getCalloutLeaderLineGeometry(
|
|
2981
2986
|
normalizedType,
|
|
2982
2987
|
width,
|
|
2983
2988
|
height,
|
|
2984
2989
|
element.shapeAdjustments
|
|
2985
2990
|
);
|
|
2986
2991
|
if (geometry && geometry.points.length >= 2) {
|
|
2987
|
-
const leaderPath =
|
|
2988
|
-
const bounds =
|
|
2992
|
+
const leaderPath = chunkIKISUZKE_js.buildCalloutLeaderLineSvgPath(geometry);
|
|
2993
|
+
const bounds = chunkIKISUZKE_js.getCalloutViewBoxBounds(width, height, geometry);
|
|
2989
2994
|
const lineStroke = Math.max(strokeWidth, 1);
|
|
2990
2995
|
const offsetLeft = bounds.minX;
|
|
2991
2996
|
const offsetTop = bounds.minY;
|
|
@@ -3048,10 +3053,10 @@ function renderVectorShape(element, hasFill, fillColor, strokeWidth, strokeColor
|
|
|
3048
3053
|
const endArrowW = element.shapeStyle?.connectorEndArrowWidth;
|
|
3049
3054
|
const endArrowL = element.shapeStyle?.connectorEndArrowLength;
|
|
3050
3055
|
const compoundLine = element.shapeStyle?.compoundLine;
|
|
3051
|
-
const connectorLineCap =
|
|
3056
|
+
const connectorLineCap = chunkIKISUZKE_js.svgLineCap(element.shapeStyle?.lineCap);
|
|
3052
3057
|
const hitTargetWidth = Math.max(strokeWidth * 3, 12);
|
|
3053
|
-
const offsets =
|
|
3054
|
-
const widths =
|
|
3058
|
+
const offsets = chunkIKISUZKE_js.getCompoundLineOffsets(compoundLine, strokeWidth);
|
|
3059
|
+
const widths = chunkIKISUZKE_js.getCompoundLineWidths(compoundLine, strokeWidth);
|
|
3055
3060
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
3056
3061
|
"svg",
|
|
3057
3062
|
{
|
|
@@ -3130,15 +3135,15 @@ function parseGradientFillCss(gradFill) {
|
|
|
3130
3135
|
}
|
|
3131
3136
|
const parsed = stops.map((gs) => {
|
|
3132
3137
|
const pos = Number.parseInt(String(gs["@_pos"] || "0"), 10) / 1e3;
|
|
3133
|
-
const color =
|
|
3134
|
-
const opacity =
|
|
3135
|
-
return { pos, color:
|
|
3138
|
+
const color = chunkIKISUZKE_js.parseDrawingColor(gs) ?? "#888888";
|
|
3139
|
+
const opacity = chunkIKISUZKE_js.parseDrawingColorOpacity(gs);
|
|
3140
|
+
return { pos, color: chunkIKISUZKE_js.colorWithOpacity(color, opacity) };
|
|
3136
3141
|
}).sort((a, b) => a.pos - b.pos);
|
|
3137
3142
|
const stopStrings = parsed.map((s) => `${s.color} ${s.pos.toFixed(1)}%`).join(", ");
|
|
3138
3143
|
const lin = gradFill["a:lin"];
|
|
3139
3144
|
if (lin) {
|
|
3140
3145
|
const angRaw = Number.parseInt(String(lin["@_ang"] || "0"), 10);
|
|
3141
|
-
const angleDeg = Math.round(
|
|
3146
|
+
const angleDeg = Math.round(chunkIKISUZKE_js.ooxmlGradientAngleToCssDegrees(angRaw / 6e4));
|
|
3142
3147
|
return `linear-gradient(${angleDeg}deg, ${stopStrings})`;
|
|
3143
3148
|
}
|
|
3144
3149
|
const path = gradFill["a:path"];
|
|
@@ -3173,8 +3178,8 @@ function parsePatternFillCss(pattFill) {
|
|
|
3173
3178
|
if (!pattFill) {
|
|
3174
3179
|
return void 0;
|
|
3175
3180
|
}
|
|
3176
|
-
const fgColor =
|
|
3177
|
-
const bgColor =
|
|
3181
|
+
const fgColor = chunkIKISUZKE_js.parseDrawingColor(pattFill["a:fgClr"]) ?? "#000000";
|
|
3182
|
+
const bgColor = chunkIKISUZKE_js.parseDrawingColor(pattFill["a:bgClr"]) ?? "#ffffff";
|
|
3178
3183
|
const preset = String(pattFill["@_prst"] || "ltDnDiag");
|
|
3179
3184
|
switch (preset) {
|
|
3180
3185
|
case "ltHorz":
|
|
@@ -3285,11 +3290,11 @@ function parseCellBorders(cellProperties) {
|
|
|
3285
3290
|
const prstDash = ln["a:prstDash"];
|
|
3286
3291
|
const dashVal = prstDash ? String(prstDash["@_val"] || "") : void 0;
|
|
3287
3292
|
const cssBorderStyle = ooxmlDashToCss(dashVal);
|
|
3288
|
-
const color =
|
|
3293
|
+
const color = chunkIKISUZKE_js.parseDrawingColor(ln["a:solidFill"]);
|
|
3289
3294
|
if (color) {
|
|
3290
|
-
const opacity =
|
|
3295
|
+
const opacity = chunkIKISUZKE_js.parseDrawingColorOpacity(ln["a:solidFill"]);
|
|
3291
3296
|
const key = `${edge.prefix}`;
|
|
3292
|
-
borderStyle[key] = `${widthPx}px ${cssBorderStyle} ${
|
|
3297
|
+
borderStyle[key] = `${widthPx}px ${cssBorderStyle} ${chunkIKISUZKE_js.colorWithOpacity(color, opacity)}`;
|
|
3293
3298
|
}
|
|
3294
3299
|
}
|
|
3295
3300
|
return borderStyle;
|
|
@@ -3302,7 +3307,7 @@ function parseCellTextEffects(runProps) {
|
|
|
3302
3307
|
const textShadowParts = [];
|
|
3303
3308
|
const outerShdw = effectLst["a:outerShdw"];
|
|
3304
3309
|
if (outerShdw) {
|
|
3305
|
-
const shdwColor =
|
|
3310
|
+
const shdwColor = chunkIKISUZKE_js.parseDrawingColor(outerShdw);
|
|
3306
3311
|
if (shdwColor) {
|
|
3307
3312
|
const blurRad = Number.parseInt(String(outerShdw["@_blurRad"] || "0"), 10);
|
|
3308
3313
|
const blurPx = blurRad > 0 ? Math.round(blurRad / 12700) : 0;
|
|
@@ -3320,7 +3325,7 @@ function parseCellTextEffects(runProps) {
|
|
|
3320
3325
|
}
|
|
3321
3326
|
const glow = effectLst["a:glow"];
|
|
3322
3327
|
if (glow) {
|
|
3323
|
-
const glowColor =
|
|
3328
|
+
const glowColor = chunkIKISUZKE_js.parseDrawingColor(glow);
|
|
3324
3329
|
if (glowColor) {
|
|
3325
3330
|
const glowRad = Number.parseInt(String(glow["@_rad"] || "0"), 10);
|
|
3326
3331
|
const glowPx = glowRad > 0 ? Math.round(glowRad / 12700) : 2;
|
|
@@ -3399,10 +3404,10 @@ function extractTableCellStyle(cellXml, fallbackStyle, schemeColorOverrides) {
|
|
|
3399
3404
|
if (runProps?.["@_u"] !== void 0) {
|
|
3400
3405
|
cellStyle.textDecorationLine = runProps["@_u"] === "sng" ? "underline" : "none";
|
|
3401
3406
|
}
|
|
3402
|
-
const runColor =
|
|
3407
|
+
const runColor = chunkIKISUZKE_js.parseDrawingColor(runProps?.["a:solidFill"], schemeColorOverrides) || chunkIKISUZKE_js.parseDrawingColor(runProps?.["a:highlight"], schemeColorOverrides);
|
|
3403
3408
|
if (runColor) {
|
|
3404
|
-
const opacity =
|
|
3405
|
-
cellStyle.color =
|
|
3409
|
+
const opacity = chunkIKISUZKE_js.parseDrawingColorOpacity(runProps?.["a:solidFill"]);
|
|
3410
|
+
cellStyle.color = chunkIKISUZKE_js.colorWithOpacity(runColor, opacity);
|
|
3406
3411
|
}
|
|
3407
3412
|
const fontFamily = runProps?.["a:latin"]?.["@_typeface"] || runProps?.["a:ea"]?.["@_typeface"] || runProps?.["a:cs"]?.["@_typeface"];
|
|
3408
3413
|
if (fontFamily) {
|
|
@@ -3412,15 +3417,15 @@ function extractTableCellStyle(cellXml, fallbackStyle, schemeColorOverrides) {
|
|
|
3412
3417
|
cellStyle.textAlign = parseParagraphAlignment(paragraphProperties["@_algn"]);
|
|
3413
3418
|
}
|
|
3414
3419
|
const cellProperties = cellXml["a:tcPr"];
|
|
3415
|
-
const cellFill =
|
|
3420
|
+
const cellFill = chunkIKISUZKE_js.parseDrawingColor(
|
|
3416
3421
|
cellProperties?.["a:solidFill"],
|
|
3417
3422
|
schemeColorOverrides
|
|
3418
3423
|
);
|
|
3419
3424
|
if (cellFill) {
|
|
3420
|
-
const opacity =
|
|
3425
|
+
const opacity = chunkIKISUZKE_js.parseDrawingColorOpacity(
|
|
3421
3426
|
cellProperties?.["a:solidFill"]
|
|
3422
3427
|
);
|
|
3423
|
-
cellStyle.backgroundColor =
|
|
3428
|
+
cellStyle.backgroundColor = chunkIKISUZKE_js.colorWithOpacity(cellFill, opacity);
|
|
3424
3429
|
} else {
|
|
3425
3430
|
const gradCss = parseGradientFillCss(cellProperties?.["a:gradFill"]);
|
|
3426
3431
|
if (gradCss) {
|
|
@@ -3435,16 +3440,16 @@ function extractTableCellStyle(cellXml, fallbackStyle, schemeColorOverrides) {
|
|
|
3435
3440
|
const edgeBorders = parseCellBorders(cellProperties);
|
|
3436
3441
|
Object.assign(cellStyle, edgeBorders);
|
|
3437
3442
|
if (!cellStyle.borderLeftColor && !cellStyle.borderRightColor && !cellStyle.borderTopColor && !cellStyle.borderBottomColor) {
|
|
3438
|
-
const borderColor =
|
|
3443
|
+
const borderColor = chunkIKISUZKE_js.parseDrawingColor(
|
|
3439
3444
|
cellProperties?.["a:lnL"]?.["a:solidFill"],
|
|
3440
3445
|
schemeColorOverrides
|
|
3441
|
-
) ||
|
|
3446
|
+
) || chunkIKISUZKE_js.parseDrawingColor(
|
|
3442
3447
|
cellProperties?.["a:lnR"]?.["a:solidFill"],
|
|
3443
3448
|
schemeColorOverrides
|
|
3444
|
-
) ||
|
|
3449
|
+
) || chunkIKISUZKE_js.parseDrawingColor(
|
|
3445
3450
|
cellProperties?.["a:lnT"]?.["a:solidFill"],
|
|
3446
3451
|
schemeColorOverrides
|
|
3447
|
-
) ||
|
|
3452
|
+
) || chunkIKISUZKE_js.parseDrawingColor(
|
|
3448
3453
|
cellProperties?.["a:lnB"]?.["a:solidFill"],
|
|
3449
3454
|
schemeColorOverrides
|
|
3450
3455
|
);
|
|
@@ -3523,10 +3528,10 @@ function resolveTableStyleFillColor(fill, colorScheme) {
|
|
|
3523
3528
|
}
|
|
3524
3529
|
let color = base;
|
|
3525
3530
|
if (fill.tint !== void 0 && fill.tint > 0) {
|
|
3526
|
-
color =
|
|
3531
|
+
color = chunkIKISUZKE_js.tintColor2(color, fill.tint / 1e5);
|
|
3527
3532
|
}
|
|
3528
3533
|
if (fill.shade !== void 0 && fill.shade > 0) {
|
|
3529
|
-
color =
|
|
3534
|
+
color = chunkIKISUZKE_js.shadeColor2(color, 1 - fill.shade / 1e5);
|
|
3530
3535
|
}
|
|
3531
3536
|
return color;
|
|
3532
3537
|
}
|
|
@@ -3551,7 +3556,7 @@ function applyTableStyleText(text, colorScheme, style, fontScheme) {
|
|
|
3551
3556
|
style.fontFamily = text.fontFace;
|
|
3552
3557
|
applied = true;
|
|
3553
3558
|
} else {
|
|
3554
|
-
const refFont =
|
|
3559
|
+
const refFont = chunkIKISUZKE_js.resolveFontRefIdx(text.fontRefIdx, fontScheme);
|
|
3555
3560
|
if (refFont) {
|
|
3556
3561
|
style.fontFamily = refFont;
|
|
3557
3562
|
applied = true;
|
|
@@ -3562,10 +3567,10 @@ function applyTableStyleText(text, colorScheme, style, fontScheme) {
|
|
|
3562
3567
|
if (base) {
|
|
3563
3568
|
let color = base;
|
|
3564
3569
|
if (text.fontTint !== void 0 && text.fontTint > 0) {
|
|
3565
|
-
color =
|
|
3570
|
+
color = chunkIKISUZKE_js.tintColor2(color, text.fontTint / 1e5);
|
|
3566
3571
|
}
|
|
3567
3572
|
if (text.fontShade !== void 0 && text.fontShade > 0) {
|
|
3568
|
-
color =
|
|
3573
|
+
color = chunkIKISUZKE_js.shadeColor2(color, 1 - text.fontShade / 1e5);
|
|
3569
3574
|
}
|
|
3570
3575
|
style.color = color;
|
|
3571
3576
|
applied = true;
|
|
@@ -3754,7 +3759,7 @@ function parseTableElementData(element, fallbackTextStyle) {
|
|
|
3754
3759
|
};
|
|
3755
3760
|
}
|
|
3756
3761
|
function getCellDiagonalBorders2(style, tableData, pos, styleCtx) {
|
|
3757
|
-
return
|
|
3762
|
+
return chunkIKISUZKE_js.getCellDiagonalBorders(style, tableData, pos, {
|
|
3758
3763
|
tableStyleMap: styleCtx?.tableStyleMap,
|
|
3759
3764
|
colorScheme: styleCtx?.theme?.colorScheme,
|
|
3760
3765
|
fontScheme: styleCtx?.theme?.fontScheme
|
|
@@ -3902,9 +3907,9 @@ function cellStyleToCss(style) {
|
|
|
3902
3907
|
if (style.gradientFillCss) {
|
|
3903
3908
|
css.background = style.gradientFillCss;
|
|
3904
3909
|
} else if (style.fillMode === "pattern" && style.patternFillPreset) {
|
|
3905
|
-
const fg =
|
|
3906
|
-
const bg =
|
|
3907
|
-
const svgPattern =
|
|
3910
|
+
const fg = chunkIKISUZKE_js.normalizeHexColor(style.patternFillForeground, "#000000");
|
|
3911
|
+
const bg = chunkIKISUZKE_js.normalizeHexColor(style.patternFillBackground, "#ffffff");
|
|
3912
|
+
const svgPattern = chunkIKISUZKE_js.getPatternSvg(style.patternFillPreset, fg, bg);
|
|
3908
3913
|
if (svgPattern) {
|
|
3909
3914
|
const encoded = encodeURIComponent(svgPattern);
|
|
3910
3915
|
css.backgroundImage = `url("data:image/svg+xml,${encoded}")`;
|
|
@@ -3980,7 +3985,7 @@ function cellStyleToCss(style) {
|
|
|
3980
3985
|
if (edge.width || edge.color) {
|
|
3981
3986
|
const w = edge.width ?? 1;
|
|
3982
3987
|
const c = edge.color ?? style.borderColor ?? "#000000";
|
|
3983
|
-
const s =
|
|
3988
|
+
const s = chunkIKISUZKE_js.ooxmlDashToCssBorderStyle(edge.dash);
|
|
3984
3989
|
css[edge.prefix] = `${w}px ${s} ${c}`;
|
|
3985
3990
|
}
|
|
3986
3991
|
}
|
|
@@ -4011,7 +4016,7 @@ function cellStyleToCss(style) {
|
|
|
4011
4016
|
css.textShadow = textShadowParts.join(", ");
|
|
4012
4017
|
}
|
|
4013
4018
|
if (style.cell3D) {
|
|
4014
|
-
Object.assign(css,
|
|
4019
|
+
Object.assign(css, chunkIKISUZKE_js.cell3DBevelCss(style.cell3D));
|
|
4015
4020
|
}
|
|
4016
4021
|
return css;
|
|
4017
4022
|
}
|
|
@@ -4025,7 +4030,7 @@ function TableResizeOverlay({
|
|
|
4025
4030
|
const containerRef = React6.useRef(null);
|
|
4026
4031
|
const [rowBounds, setRowBounds] = React6.useState([]);
|
|
4027
4032
|
const dragRef = React6.useRef(null);
|
|
4028
|
-
const colBoundaries = React6.useMemo(() =>
|
|
4033
|
+
const colBoundaries = React6.useMemo(() => chunkIKISUZKE_js.computeColumnBoundaries(columnWidths), [columnWidths]);
|
|
4029
4034
|
const measureRows = React6.useCallback(() => {
|
|
4030
4035
|
const container = containerRef.current;
|
|
4031
4036
|
if (!container) {
|
|
@@ -4072,11 +4077,11 @@ function TableResizeOverlay({
|
|
|
4072
4077
|
const rect = containerRef.current.getBoundingClientRect();
|
|
4073
4078
|
if (drag.type === "col" && drag.initialWidths && onResizeColumns) {
|
|
4074
4079
|
const deltaProp = (e.clientX - drag.startPos) / rect.width;
|
|
4075
|
-
onResizeColumns(
|
|
4080
|
+
onResizeColumns(chunkIKISUZKE_js.computeResizedColumnWidths(drag.initialWidths, drag.index, deltaProp));
|
|
4076
4081
|
} else if (drag.type === "row" && onResizeRow) {
|
|
4077
4082
|
const deltaY = e.clientY - drag.startPos;
|
|
4078
|
-
const newHeight =
|
|
4079
|
-
drag.initialRowHeight ??
|
|
4083
|
+
const newHeight = chunkIKISUZKE_js.computeResizedRowHeight(
|
|
4084
|
+
drag.initialRowHeight ?? chunkIKISUZKE_js.DEFAULT_ROW_HEIGHT,
|
|
4080
4085
|
deltaY
|
|
4081
4086
|
);
|
|
4082
4087
|
onResizeRow(drag.index, newHeight);
|
|
@@ -4114,7 +4119,7 @@ function TableResizeOverlay({
|
|
|
4114
4119
|
e.stopPropagation();
|
|
4115
4120
|
const table = containerRef.current?.querySelector("table");
|
|
4116
4121
|
const tr = table?.querySelectorAll("tbody > tr")[index];
|
|
4117
|
-
const actualHeight = tr?.offsetHeight ??
|
|
4122
|
+
const actualHeight = tr?.offsetHeight ?? chunkIKISUZKE_js.DEFAULT_ROW_HEIGHT;
|
|
4118
4123
|
document.body.style.cursor = "row-resize";
|
|
4119
4124
|
document.body.style.userSelect = "none";
|
|
4120
4125
|
dragRef.current = {
|
|
@@ -4162,7 +4167,7 @@ function renderTableFromTableData(element, textStyle, options) {
|
|
|
4162
4167
|
}
|
|
4163
4168
|
const first = selectedCell.selectedCells[0];
|
|
4164
4169
|
const last = selectedCell.selectedCells[selectedCell.selectedCells.length - 1];
|
|
4165
|
-
return
|
|
4170
|
+
return chunkIKISUZKE_js.computeSelectionRect(first.row, first.col, last.row, last.col, tableData);
|
|
4166
4171
|
})();
|
|
4167
4172
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
4168
4173
|
TableResizeOverlay,
|
|
@@ -4195,7 +4200,7 @@ function renderTableFromTableData(element, textStyle, options) {
|
|
|
4195
4200
|
return null;
|
|
4196
4201
|
}
|
|
4197
4202
|
const isCellSelected = selectedCell?.rowIndex === rowIndex && selectedCell?.columnIndex === cellIndex;
|
|
4198
|
-
const isInMultiSelection =
|
|
4203
|
+
const isInMultiSelection = chunkIKISUZKE_js.isCellInRect(rowIndex, cellIndex, selectionRect);
|
|
4199
4204
|
const isCellEditing = isCellSelected && selectedCell?.isEditing;
|
|
4200
4205
|
const diag = getCellDiagonalBorders2(
|
|
4201
4206
|
cell.style,
|
|
@@ -4225,7 +4230,7 @@ function renderTableFromTableData(element, textStyle, options) {
|
|
|
4225
4230
|
}
|
|
4226
4231
|
event.stopPropagation();
|
|
4227
4232
|
if (event.shiftKey && selectedCell) {
|
|
4228
|
-
const rect =
|
|
4233
|
+
const rect = chunkIKISUZKE_js.computeSelectionRect(
|
|
4229
4234
|
selectedCell.rowIndex,
|
|
4230
4235
|
selectedCell.columnIndex,
|
|
4231
4236
|
rowIndex,
|
|
@@ -4235,7 +4240,7 @@ function renderTableFromTableData(element, textStyle, options) {
|
|
|
4235
4240
|
options?.onSelectCell?.({
|
|
4236
4241
|
rowIndex: selectedCell.rowIndex,
|
|
4237
4242
|
columnIndex: selectedCell.columnIndex,
|
|
4238
|
-
selectedCells:
|
|
4243
|
+
selectedCells: chunkIKISUZKE_js.rectToCells(rect)
|
|
4239
4244
|
});
|
|
4240
4245
|
} else {
|
|
4241
4246
|
options?.onSelectCell?.({
|
|
@@ -4297,7 +4302,7 @@ function renderTableElement(element, textStyle, options) {
|
|
|
4297
4302
|
if (tableEl2.tableData && tableEl2.tableData.rows.length > 0) {
|
|
4298
4303
|
return renderTableFromTableData(tableEl2, textStyle, options);
|
|
4299
4304
|
}
|
|
4300
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children:
|
|
4305
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children: chunk2JDWFMIK_js.translationsEn["pptx.table.title"] });
|
|
4301
4306
|
}
|
|
4302
4307
|
const selectedCell = options?.selectedCell || null;
|
|
4303
4308
|
const isEditable = Boolean(options?.editable);
|
|
@@ -4312,7 +4317,7 @@ function renderTableElement(element, textStyle, options) {
|
|
|
4312
4317
|
}
|
|
4313
4318
|
const first = selectedCell.selectedCells[0];
|
|
4314
4319
|
const last = selectedCell.selectedCells[selectedCell.selectedCells.length - 1];
|
|
4315
|
-
return
|
|
4320
|
+
return chunkIKISUZKE_js.computeSelectionRect(first.row, first.col, last.row, last.col, tableEl.tableData);
|
|
4316
4321
|
})();
|
|
4317
4322
|
const schemeOverrides = options?.styleCtx?.theme?.colorScheme ? options.styleCtx.theme.colorScheme : void 0;
|
|
4318
4323
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -4389,7 +4394,7 @@ function renderTableElement(element, textStyle, options) {
|
|
|
4389
4394
|
"border px-1 py-0.5 align-top",
|
|
4390
4395
|
isEditable && hasCellSelectionHandler ? "border-blue-200/70 cursor-cell" : "border-white/30",
|
|
4391
4396
|
selectedCell?.rowIndex === rowIndex && selectedCell?.columnIndex === cellIndex ? "ring-1 ring-inset ring-blue-500" : null,
|
|
4392
|
-
|
|
4397
|
+
chunkIKISUZKE_js.isCellInRect(rowIndex, cellIndex, xmlSelectionRect) && !(selectedCell?.rowIndex === rowIndex && selectedCell?.columnIndex === cellIndex) ? "bg-blue-500/15 ring-1 ring-inset ring-blue-400/50" : null
|
|
4393
4398
|
),
|
|
4394
4399
|
colSpan,
|
|
4395
4400
|
rowSpan: rSpan,
|
|
@@ -4400,7 +4405,7 @@ function renderTableElement(element, textStyle, options) {
|
|
|
4400
4405
|
}
|
|
4401
4406
|
event.stopPropagation();
|
|
4402
4407
|
if (event.shiftKey && selectedCell && tableEl.tableData) {
|
|
4403
|
-
const rect =
|
|
4408
|
+
const rect = chunkIKISUZKE_js.computeSelectionRect(
|
|
4404
4409
|
selectedCell.rowIndex,
|
|
4405
4410
|
selectedCell.columnIndex,
|
|
4406
4411
|
rowIndex,
|
|
@@ -4410,7 +4415,7 @@ function renderTableElement(element, textStyle, options) {
|
|
|
4410
4415
|
options?.onSelectCell?.({
|
|
4411
4416
|
rowIndex: selectedCell.rowIndex,
|
|
4412
4417
|
columnIndex: selectedCell.columnIndex,
|
|
4413
|
-
selectedCells:
|
|
4418
|
+
selectedCells: chunkIKISUZKE_js.rectToCells(rect)
|
|
4414
4419
|
});
|
|
4415
4420
|
} else {
|
|
4416
4421
|
options?.onSelectCell?.({
|
|
@@ -4465,24 +4470,24 @@ function renderTableElement(element, textStyle, options) {
|
|
|
4465
4470
|
}
|
|
4466
4471
|
var LEGEND_ITEM_WIDTH = 80;
|
|
4467
4472
|
function partAttrs(part) {
|
|
4468
|
-
return part ?
|
|
4473
|
+
return part ? chunkIKISUZKE_js.chartPartToAttrs(part) : void 0;
|
|
4469
4474
|
}
|
|
4470
4475
|
function resolveReactPalette(chartData) {
|
|
4471
4476
|
if (chartData.colorPalette && chartData.colorPalette.length > 0) {
|
|
4472
4477
|
return chartData.colorPalette;
|
|
4473
4478
|
}
|
|
4474
|
-
return [...
|
|
4479
|
+
return [...chunkIKISUZKE_js.getChartStylePalette(chartData.style?.styleId)];
|
|
4475
4480
|
}
|
|
4476
4481
|
function buildReactChartViewModel(element) {
|
|
4477
4482
|
if (element.type !== "chart" || !element.chartData) {
|
|
4478
|
-
return
|
|
4483
|
+
return chunkIKISUZKE_js.buildChartViewModel(element);
|
|
4479
4484
|
}
|
|
4480
4485
|
const palette = resolveReactPalette(element.chartData);
|
|
4481
4486
|
const themedElement = {
|
|
4482
4487
|
...element,
|
|
4483
4488
|
chartData: { ...element.chartData, colorPalette: palette }
|
|
4484
4489
|
};
|
|
4485
|
-
return
|
|
4490
|
+
return chunkIKISUZKE_js.buildChartViewModel(themedElement);
|
|
4486
4491
|
}
|
|
4487
4492
|
function renderPrimitive(prim, key) {
|
|
4488
4493
|
switch (prim.kind) {
|
|
@@ -4871,7 +4876,7 @@ function renderMapChart(element, chartData, categoryLabels) {
|
|
|
4871
4876
|
const unmatchedRows = [];
|
|
4872
4877
|
categories.forEach((cat, i) => {
|
|
4873
4878
|
const value = values[i] ?? 0;
|
|
4874
|
-
const code =
|
|
4879
|
+
const code = chunkIKISUZKE_js.resolveRegionCode(cat);
|
|
4875
4880
|
if (code) {
|
|
4876
4881
|
regionValueMap.set(code, { value, label: cat });
|
|
4877
4882
|
} else {
|
|
@@ -4909,8 +4914,8 @@ function renderMapChart(element, chartData, categoryLabels) {
|
|
|
4909
4914
|
let fill = "#e2e8f0";
|
|
4910
4915
|
let dataLabel = null;
|
|
4911
4916
|
if (entry) {
|
|
4912
|
-
const t =
|
|
4913
|
-
fill =
|
|
4917
|
+
const t = chunkIKISUZKE_js.normalizeValue(entry.value, minVal, maxVal);
|
|
4918
|
+
fill = chunkIKISUZKE_js.sequentialColorScale(t);
|
|
4914
4919
|
dataLabel = /* @__PURE__ */ jsxRuntime.jsx(
|
|
4915
4920
|
"text",
|
|
4916
4921
|
{
|
|
@@ -4921,7 +4926,7 @@ function renderMapChart(element, chartData, categoryLabels) {
|
|
|
4921
4926
|
fontWeight: 600,
|
|
4922
4927
|
fill: "#1e293b",
|
|
4923
4928
|
style: { pointerEvents: "none" },
|
|
4924
|
-
children:
|
|
4929
|
+
children: chunkIKISUZKE_js.formatAxisValue(entry.value)
|
|
4925
4930
|
},
|
|
4926
4931
|
`${element.id}-map-dl-${region.code}`
|
|
4927
4932
|
);
|
|
@@ -4939,7 +4944,7 @@ function renderMapChart(element, chartData, categoryLabels) {
|
|
|
4939
4944
|
opacity: 0.9,
|
|
4940
4945
|
children: /* @__PURE__ */ jsxRuntime.jsxs("title", { children: [
|
|
4941
4946
|
region.name,
|
|
4942
|
-
entry ? `: ${
|
|
4947
|
+
entry ? `: ${chunkIKISUZKE_js.formatAxisValue(entry.value)}` : ""
|
|
4943
4948
|
] })
|
|
4944
4949
|
}
|
|
4945
4950
|
),
|
|
@@ -4977,7 +4982,7 @@ function renderMapChart(element, chartData, categoryLabels) {
|
|
|
4977
4982
|
fontSize: 7,
|
|
4978
4983
|
fill: "#64748b",
|
|
4979
4984
|
textAnchor: "middle",
|
|
4980
|
-
children:
|
|
4985
|
+
children: chunkIKISUZKE_js.formatAxisValue(minVal)
|
|
4981
4986
|
},
|
|
4982
4987
|
`${element.id}-map-legend-min`
|
|
4983
4988
|
),
|
|
@@ -4989,7 +4994,7 @@ function renderMapChart(element, chartData, categoryLabels) {
|
|
|
4989
4994
|
fontSize: 7,
|
|
4990
4995
|
fill: "#64748b",
|
|
4991
4996
|
textAnchor: "middle",
|
|
4992
|
-
children:
|
|
4997
|
+
children: chunkIKISUZKE_js.formatAxisValue(maxVal)
|
|
4993
4998
|
},
|
|
4994
4999
|
`${element.id}-map-legend-max`
|
|
4995
5000
|
)
|
|
@@ -5008,7 +5013,7 @@ function renderMapChart(element, chartData, categoryLabels) {
|
|
|
5008
5013
|
textAnchor: "middle",
|
|
5009
5014
|
fontSize: 7,
|
|
5010
5015
|
fill: "#94a3b8",
|
|
5011
|
-
children:
|
|
5016
|
+
children: chunk2JDWFMIK_js.translationsEn["pptx.chart.additionalRegionsFallback"]
|
|
5012
5017
|
},
|
|
5013
5018
|
`${element.id}-map-ft-hdr`
|
|
5014
5019
|
)
|
|
@@ -5055,7 +5060,7 @@ function renderMapChart(element, chartData, categoryLabels) {
|
|
|
5055
5060
|
y,
|
|
5056
5061
|
fontSize,
|
|
5057
5062
|
fill: "#475569",
|
|
5058
|
-
children:
|
|
5063
|
+
children: chunkIKISUZKE_js.formatAxisValue(row.value)
|
|
5059
5064
|
},
|
|
5060
5065
|
`${element.id}-map-ft-val-${i}`
|
|
5061
5066
|
)
|
|
@@ -5126,7 +5131,7 @@ function renderStackedBarChart(element, _chartData, _categoryLabels) {
|
|
|
5126
5131
|
|
|
5127
5132
|
// src/viewer/utils/chart-overlay-utils.ts
|
|
5128
5133
|
function sColor(series, idx) {
|
|
5129
|
-
return
|
|
5134
|
+
return chunkIKISUZKE_js.seriesColor(series, idx);
|
|
5130
5135
|
}
|
|
5131
5136
|
function valToY(val, range, topY, bottomY) {
|
|
5132
5137
|
const usable = bottomY - topY;
|
|
@@ -5665,7 +5670,7 @@ function renderLegend(id, style, series, layout, colorPalette) {
|
|
|
5665
5670
|
width: 10,
|
|
5666
5671
|
height: 10,
|
|
5667
5672
|
rx: 2,
|
|
5668
|
-
fill:
|
|
5673
|
+
fill: chunkIKISUZKE_js.seriesColor(s, i, style?.styleId, colorPalette)
|
|
5669
5674
|
},
|
|
5670
5675
|
`${id}-leg-r-${i}`
|
|
5671
5676
|
)
|
|
@@ -5689,7 +5694,7 @@ function renderLegend(id, style, series, layout, colorPalette) {
|
|
|
5689
5694
|
width: 10,
|
|
5690
5695
|
height: 10,
|
|
5691
5696
|
rx: 2,
|
|
5692
|
-
fill:
|
|
5697
|
+
fill: chunkIKISUZKE_js.seriesColor(s, i, style?.styleId, colorPalette)
|
|
5693
5698
|
}
|
|
5694
5699
|
),
|
|
5695
5700
|
/* @__PURE__ */ jsxRuntime.jsx("text", { x: x + 14, y: cy + 8, fontSize: 9, fill: "#475569", children: s.name || `Series ${i + 1}` })
|
|
@@ -5702,9 +5707,9 @@ function renderGridlines(id, style, range, layout) {
|
|
|
5702
5707
|
}
|
|
5703
5708
|
const lines = [];
|
|
5704
5709
|
if (range.logScale && range.logBase) {
|
|
5705
|
-
const ticks =
|
|
5710
|
+
const ticks = chunkIKISUZKE_js.generateLogTicks(range);
|
|
5706
5711
|
ticks.forEach((tickVal, i) => {
|
|
5707
|
-
const y =
|
|
5712
|
+
const y = chunkIKISUZKE_js.valueToY(tickVal, range, layout.plotTop, layout.plotBottom);
|
|
5708
5713
|
lines.push(
|
|
5709
5714
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5710
5715
|
"line",
|
|
@@ -5725,7 +5730,7 @@ function renderGridlines(id, style, range, layout) {
|
|
|
5725
5730
|
const steps = 4;
|
|
5726
5731
|
for (let i = 0; i <= steps; i++) {
|
|
5727
5732
|
const val = range.min + range.span * i / steps;
|
|
5728
|
-
const y =
|
|
5733
|
+
const y = chunkIKISUZKE_js.valueToY(val, range, layout.plotTop, layout.plotBottom);
|
|
5729
5734
|
lines.push(
|
|
5730
5735
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5731
5736
|
"line",
|
|
@@ -5749,9 +5754,9 @@ function renderValueAxis(id, range, layout, axisFormatting) {
|
|
|
5749
5754
|
const labels = [];
|
|
5750
5755
|
const hasDisplayUnits = Boolean(axisFormatting?.displayUnits);
|
|
5751
5756
|
if (range.logScale && range.logBase) {
|
|
5752
|
-
const ticks =
|
|
5757
|
+
const ticks = chunkIKISUZKE_js.generateLogTicks(range);
|
|
5753
5758
|
ticks.forEach((tickVal, i) => {
|
|
5754
|
-
const y =
|
|
5759
|
+
const y = chunkIKISUZKE_js.valueToY(tickVal, range, layout.plotTop, layout.plotBottom);
|
|
5755
5760
|
labels.push(
|
|
5756
5761
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5757
5762
|
"text",
|
|
@@ -5761,7 +5766,7 @@ function renderValueAxis(id, range, layout, axisFormatting) {
|
|
|
5761
5766
|
textAnchor: "end",
|
|
5762
5767
|
fontSize: 8,
|
|
5763
5768
|
fill: "#64748b",
|
|
5764
|
-
children: hasDisplayUnits ?
|
|
5769
|
+
children: hasDisplayUnits ? chunkIKISUZKE_js.formatAxisValueWithUnits(tickVal, axisFormatting) : chunkIKISUZKE_js.formatAxisValue(tickVal)
|
|
5765
5770
|
},
|
|
5766
5771
|
`${id}-vaxis-log-${i}`
|
|
5767
5772
|
)
|
|
@@ -5771,7 +5776,7 @@ function renderValueAxis(id, range, layout, axisFormatting) {
|
|
|
5771
5776
|
const steps = 4;
|
|
5772
5777
|
for (let i = 0; i <= steps; i++) {
|
|
5773
5778
|
const val = range.min + range.span * i / steps;
|
|
5774
|
-
const y =
|
|
5779
|
+
const y = chunkIKISUZKE_js.valueToY(val, range, layout.plotTop, layout.plotBottom);
|
|
5775
5780
|
labels.push(
|
|
5776
5781
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5777
5782
|
"text",
|
|
@@ -5781,7 +5786,7 @@ function renderValueAxis(id, range, layout, axisFormatting) {
|
|
|
5781
5786
|
textAnchor: "end",
|
|
5782
5787
|
fontSize: 8,
|
|
5783
5788
|
fill: "#64748b",
|
|
5784
|
-
children: hasDisplayUnits ?
|
|
5789
|
+
children: hasDisplayUnits ? chunkIKISUZKE_js.formatAxisValueWithUnits(val, axisFormatting) : chunkIKISUZKE_js.formatAxisValue(val)
|
|
5785
5790
|
},
|
|
5786
5791
|
`${id}-vaxis-${i}`
|
|
5787
5792
|
)
|
|
@@ -5789,7 +5794,7 @@ function renderValueAxis(id, range, layout, axisFormatting) {
|
|
|
5789
5794
|
}
|
|
5790
5795
|
}
|
|
5791
5796
|
if (hasDisplayUnits) {
|
|
5792
|
-
const unitLabel =
|
|
5797
|
+
const unitLabel = chunkIKISUZKE_js.getDisplayUnitLabel(
|
|
5793
5798
|
axisFormatting.displayUnits,
|
|
5794
5799
|
axisFormatting.displayUnitsLabel
|
|
5795
5800
|
);
|
|
@@ -5864,7 +5869,7 @@ function renderZeroLine(id, range, layout) {
|
|
|
5864
5869
|
if (range.min >= 0) {
|
|
5865
5870
|
return null;
|
|
5866
5871
|
}
|
|
5867
|
-
const y =
|
|
5872
|
+
const y = chunkIKISUZKE_js.valueToY(0, range, layout.plotTop, layout.plotBottom);
|
|
5868
5873
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
5869
5874
|
"line",
|
|
5870
5875
|
{
|
|
@@ -5888,7 +5893,7 @@ function renderSecondaryValueAxis(id, range, layout, axisFormatting) {
|
|
|
5888
5893
|
const hasDisplayUnits = Boolean(axisFormatting?.displayUnits);
|
|
5889
5894
|
for (let i = 0; i <= steps; i++) {
|
|
5890
5895
|
const val = range.min + range.span * i / steps;
|
|
5891
|
-
const y =
|
|
5896
|
+
const y = chunkIKISUZKE_js.valueToY(val, range, layout.plotTop, layout.plotBottom);
|
|
5892
5897
|
labels.push(
|
|
5893
5898
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5894
5899
|
"text",
|
|
@@ -5900,7 +5905,7 @@ function renderSecondaryValueAxis(id, range, layout, axisFormatting) {
|
|
|
5900
5905
|
fontFamily,
|
|
5901
5906
|
fontWeight,
|
|
5902
5907
|
fill: fontColor,
|
|
5903
|
-
children: hasDisplayUnits ?
|
|
5908
|
+
children: hasDisplayUnits ? chunkIKISUZKE_js.formatAxisValueWithUnits(val, axisFormatting) : chunkIKISUZKE_js.formatAxisValue(val)
|
|
5904
5909
|
},
|
|
5905
5910
|
`${id}-sec-vaxis-${i}`
|
|
5906
5911
|
)
|
|
@@ -5924,7 +5929,7 @@ function renderSecondaryValueAxis(id, range, layout, axisFormatting) {
|
|
|
5924
5929
|
);
|
|
5925
5930
|
}
|
|
5926
5931
|
if (hasDisplayUnits) {
|
|
5927
|
-
const unitLabel =
|
|
5932
|
+
const unitLabel = chunkIKISUZKE_js.getDisplayUnitLabel(
|
|
5928
5933
|
axisFormatting.displayUnits,
|
|
5929
5934
|
axisFormatting.displayUnitsLabel
|
|
5930
5935
|
);
|
|
@@ -5955,7 +5960,7 @@ function renderSecondaryAxisTicks(id, range, layout) {
|
|
|
5955
5960
|
const ticks = [];
|
|
5956
5961
|
for (let i = 0; i <= steps; i++) {
|
|
5957
5962
|
const val = range.min + range.span * i / steps;
|
|
5958
|
-
const y =
|
|
5963
|
+
const y = chunkIKISUZKE_js.valueToY(val, range, layout.plotTop, layout.plotBottom);
|
|
5959
5964
|
ticks.push(
|
|
5960
5965
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5961
5966
|
"line",
|
|
@@ -5982,7 +5987,7 @@ function renderSecondaryGridlines(id, range, layout, axisFormatting) {
|
|
|
5982
5987
|
const gridColor = axisFormatting.majorGridlinesSpPr?.strokeColor ?? "#e2e8f0";
|
|
5983
5988
|
for (let i = 0; i <= steps; i++) {
|
|
5984
5989
|
const val = range.min + range.span * i / steps;
|
|
5985
|
-
const y =
|
|
5990
|
+
const y = chunkIKISUZKE_js.valueToY(val, range, layout.plotTop, layout.plotBottom);
|
|
5986
5991
|
lines.push(
|
|
5987
5992
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5988
5993
|
"line",
|
|
@@ -6100,7 +6105,7 @@ function renderChartDataTable(elementId, chartData, svgWidth) {
|
|
|
6100
6105
|
showK && /* @__PURE__ */ jsxRuntime.jsx(
|
|
6101
6106
|
"th",
|
|
6102
6107
|
{
|
|
6103
|
-
"aria-label":
|
|
6108
|
+
"aria-label": chunk2JDWFMIK_js.translationsEn["pptx.chart.rowLabelsAria"],
|
|
6104
6109
|
style: {
|
|
6105
6110
|
padding: "1px 4px",
|
|
6106
6111
|
fontWeight: 400,
|
|
@@ -6144,7 +6149,7 @@ function renderChartDataTable(elementId, chartData, svgWidth) {
|
|
|
6144
6149
|
width: 8,
|
|
6145
6150
|
height: 8,
|
|
6146
6151
|
borderRadius: 2,
|
|
6147
|
-
backgroundColor:
|
|
6152
|
+
backgroundColor: chunkIKISUZKE_js.seriesColor(
|
|
6148
6153
|
s,
|
|
6149
6154
|
si,
|
|
6150
6155
|
chartData.style?.styleId,
|
|
@@ -6183,8 +6188,8 @@ function renderChartDataTable(elementId, chartData, svgWidth) {
|
|
|
6183
6188
|
function renderStockChart(element, chartData, categoryLabels) {
|
|
6184
6189
|
const style = chartData.style;
|
|
6185
6190
|
const legendPos = style?.legendPosition || "b";
|
|
6186
|
-
const range =
|
|
6187
|
-
const layout =
|
|
6191
|
+
const range = chunkIKISUZKE_js.computeValueRangeForChart(chartData.series, chartData.axes);
|
|
6192
|
+
const layout = chunkIKISUZKE_js.computeLayout(element.width, element.height, style, true, legendPos);
|
|
6188
6193
|
const catCount = Math.max(categoryLabels.length, 1);
|
|
6189
6194
|
const barGroupWidth = layout.plotWidth / catCount;
|
|
6190
6195
|
const candleWidth = barGroupWidth * 0.5;
|
|
@@ -6205,10 +6210,10 @@ function renderStockChart(element, chartData, categoryLabels) {
|
|
|
6205
6210
|
const close = closeSeries.values[ci] ?? high;
|
|
6206
6211
|
const isUp = close >= open;
|
|
6207
6212
|
const cx = layout.plotLeft + barGroupWidth * ci + barGroupWidth / 2;
|
|
6208
|
-
const highY =
|
|
6209
|
-
const lowY =
|
|
6210
|
-
const openY =
|
|
6211
|
-
const closeY =
|
|
6213
|
+
const highY = chunkIKISUZKE_js.valueToY(high, range, layout.plotTop, layout.plotBottom);
|
|
6214
|
+
const lowY = chunkIKISUZKE_js.valueToY(low, range, layout.plotTop, layout.plotBottom);
|
|
6215
|
+
const openY = chunkIKISUZKE_js.valueToY(open, range, layout.plotTop, layout.plotBottom);
|
|
6216
|
+
const closeY = chunkIKISUZKE_js.valueToY(close, range, layout.plotTop, layout.plotBottom);
|
|
6212
6217
|
elements.push(
|
|
6213
6218
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6214
6219
|
"line",
|
|
@@ -6251,7 +6256,7 @@ function renderStockChart(element, chartData, categoryLabels) {
|
|
|
6251
6256
|
textAnchor: "middle",
|
|
6252
6257
|
fontSize: 7,
|
|
6253
6258
|
fill: "#334155",
|
|
6254
|
-
children:
|
|
6259
|
+
children: chunkIKISUZKE_js.formatAxisValue(close)
|
|
6255
6260
|
},
|
|
6256
6261
|
`${element.id}-stock-dl-${ci}`
|
|
6257
6262
|
)
|
|
@@ -6293,7 +6298,7 @@ function FailedToLoad() {
|
|
|
6293
6298
|
var LazySurfaceChart3DScene = React6__default.default.lazy(
|
|
6294
6299
|
async () => {
|
|
6295
6300
|
try {
|
|
6296
|
-
return await import('./SurfaceChart3DScene-
|
|
6301
|
+
return await import('./SurfaceChart3DScene-2QZZTBV4.js');
|
|
6297
6302
|
} catch {
|
|
6298
6303
|
return { default: FailedToLoad };
|
|
6299
6304
|
}
|
|
@@ -6317,7 +6322,7 @@ var SurfaceChart3DErrorBoundary = class extends React6__default.default.Componen
|
|
|
6317
6322
|
function buildSurfaceData(chartData, categoryLabels) {
|
|
6318
6323
|
const rows = chartData.series.length;
|
|
6319
6324
|
const cols = Math.max(categoryLabels.length, 1);
|
|
6320
|
-
const range =
|
|
6325
|
+
const range = chunkIKISUZKE_js.computeValueRangeForChart(chartData.series, chartData.axes);
|
|
6321
6326
|
const heightMap = new Float32Array(rows * cols);
|
|
6322
6327
|
const colorMap = new Float32Array(rows * cols * 3);
|
|
6323
6328
|
for (let r = 0; r < rows; r++) {
|
|
@@ -6437,8 +6442,8 @@ function darkenRgb(r, g, b, factor) {
|
|
|
6437
6442
|
function renderIsometricSurfaceChart(element, chartData, categoryLabels) {
|
|
6438
6443
|
const style = chartData.style;
|
|
6439
6444
|
const legendPos = style?.legendPosition || "b";
|
|
6440
|
-
const layout =
|
|
6441
|
-
const range =
|
|
6445
|
+
const layout = chunkIKISUZKE_js.computeLayout(element.width, element.height, style, false, legendPos);
|
|
6446
|
+
const range = chunkIKISUZKE_js.computeValueRangeForChart(chartData.series, chartData.axes);
|
|
6442
6447
|
const catCount = Math.max(categoryLabels.length, 1);
|
|
6443
6448
|
const seriesCount = chartData.series.length;
|
|
6444
6449
|
const cols = catCount - 1;
|
|
@@ -6528,8 +6533,8 @@ function renderIsometricSurfaceChart(element, chartData, categoryLabels) {
|
|
|
6528
6533
|
function renderFlatSurfaceChart(element, chartData, categoryLabels) {
|
|
6529
6534
|
const style = chartData.style;
|
|
6530
6535
|
const legendPos = style?.legendPosition || "b";
|
|
6531
|
-
const layout =
|
|
6532
|
-
const range =
|
|
6536
|
+
const layout = chunkIKISUZKE_js.computeLayout(element.width, element.height, style, true, legendPos);
|
|
6537
|
+
const range = chunkIKISUZKE_js.computeValueRangeForChart(chartData.series, chartData.axes);
|
|
6533
6538
|
const catCount = Math.max(categoryLabels.length, 1);
|
|
6534
6539
|
const seriesCount = chartData.series.length;
|
|
6535
6540
|
const cellW = layout.plotWidth / Math.max(catCount - 1, 1);
|
|
@@ -6592,7 +6597,7 @@ function renderSurfaceChart(element, chartData, categoryLabels) {
|
|
|
6592
6597
|
function renderTreemapChart(element, chartData, categoryLabels) {
|
|
6593
6598
|
const style = chartData.style;
|
|
6594
6599
|
const legendPos = style?.legendPosition || "b";
|
|
6595
|
-
const layout =
|
|
6600
|
+
const layout = chunkIKISUZKE_js.computeLayout(element.width, element.height, style, false, legendPos);
|
|
6596
6601
|
const allValues = chartData.series.flatMap((s) => s.values);
|
|
6597
6602
|
const totalAbs = allValues.reduce((sum, v) => sum + Math.abs(v), 0) || 1;
|
|
6598
6603
|
const rects = [];
|
|
@@ -6615,7 +6620,7 @@ function renderTreemapChart(element, chartData, categoryLabels) {
|
|
|
6615
6620
|
y: curY,
|
|
6616
6621
|
width: Math.max(w - 1, 1),
|
|
6617
6622
|
height: Math.max(h - 1, 1),
|
|
6618
|
-
fill:
|
|
6623
|
+
fill: chunkIKISUZKE_js.paletteColor(item.index, chartData.style?.styleId, chartData.colorPalette),
|
|
6619
6624
|
rx: 2,
|
|
6620
6625
|
opacity: 0.85
|
|
6621
6626
|
},
|
|
@@ -6668,8 +6673,8 @@ function renderWaterfallChart(element, chartData, categoryLabels) {
|
|
|
6668
6673
|
const style = chartData.style;
|
|
6669
6674
|
const legendPos = style?.legendPosition || "b";
|
|
6670
6675
|
const values = chartData.series[0]?.values ?? [];
|
|
6671
|
-
const range =
|
|
6672
|
-
const layout =
|
|
6676
|
+
const range = chunkIKISUZKE_js.computeValueRangeForChart(chartData.series, chartData.axes);
|
|
6677
|
+
const layout = chunkIKISUZKE_js.computeLayout(element.width, element.height, style, true, legendPos);
|
|
6673
6678
|
const catCount = Math.max(categoryLabels.length, values.length, 1);
|
|
6674
6679
|
const barWidth = layout.plotWidth / catCount * 0.6;
|
|
6675
6680
|
const gap = layout.plotWidth / catCount * 0.2;
|
|
@@ -6680,8 +6685,8 @@ function renderWaterfallChart(element, chartData, categoryLabels) {
|
|
|
6680
6685
|
const isLast = i === values.length - 1;
|
|
6681
6686
|
const startVal = isLast ? 0 : runningTotal;
|
|
6682
6687
|
const endVal = isLast ? runningTotal + val : runningTotal + val;
|
|
6683
|
-
const barStartY =
|
|
6684
|
-
const barEndY =
|
|
6688
|
+
const barStartY = chunkIKISUZKE_js.valueToY(startVal, range, layout.plotTop, layout.plotBottom);
|
|
6689
|
+
const barEndY = chunkIKISUZKE_js.valueToY(endVal, range, layout.plotTop, layout.plotBottom);
|
|
6685
6690
|
const x = layout.plotLeft + layout.plotWidth / catCount * i + gap;
|
|
6686
6691
|
const y = Math.min(barStartY, barEndY);
|
|
6687
6692
|
const h = Math.max(Math.abs(barEndY - barStartY), 1);
|
|
@@ -6710,7 +6715,7 @@ function renderWaterfallChart(element, chartData, categoryLabels) {
|
|
|
6710
6715
|
textAnchor: "middle",
|
|
6711
6716
|
fontSize: 7,
|
|
6712
6717
|
fill: "#334155",
|
|
6713
|
-
children:
|
|
6718
|
+
children: chunkIKISUZKE_js.formatAxisValue(isLast ? endVal : val)
|
|
6714
6719
|
},
|
|
6715
6720
|
`${element.id}-wf-dl-${i}`
|
|
6716
6721
|
)
|
|
@@ -6758,18 +6763,18 @@ function renderWaterfallChart(element, chartData, categoryLabels) {
|
|
|
6758
6763
|
function renderComboChart(element, chartData, categoryLabels) {
|
|
6759
6764
|
const style = chartData.style;
|
|
6760
6765
|
const legendPos = style?.legendPosition || "b";
|
|
6761
|
-
const layoutOpts =
|
|
6766
|
+
const layoutOpts = chunkIKISUZKE_js.computeLayoutOptions(
|
|
6762
6767
|
chartData.axes,
|
|
6763
6768
|
chartData.dataTable,
|
|
6764
6769
|
chartData.series.length
|
|
6765
6770
|
);
|
|
6766
|
-
const layout =
|
|
6767
|
-
const { primary, secondary } =
|
|
6771
|
+
const layout = chunkIKISUZKE_js.computeLayout(element.width, element.height, style, true, legendPos, layoutOpts);
|
|
6772
|
+
const { primary, secondary } = chunkIKISUZKE_js.splitSeriesByAxis(chartData.series, chartData.axes);
|
|
6768
6773
|
const primarySeries = primary.length > 0 ? primary.map((e) => e.series) : chartData.series;
|
|
6769
6774
|
const secondarySeries = secondary.map((e) => e.series);
|
|
6770
|
-
const range =
|
|
6771
|
-
const secondaryRange = secondarySeries.length > 0 ?
|
|
6772
|
-
const secondaryAxisFmt =
|
|
6775
|
+
const range = chunkIKISUZKE_js.computeValueRangeForChart(primarySeries, chartData.axes);
|
|
6776
|
+
const secondaryRange = secondarySeries.length > 0 ? chunkIKISUZKE_js.computeValueRange(secondarySeries) : void 0;
|
|
6777
|
+
const secondaryAxisFmt = chunkIKISUZKE_js.getSecondaryValueAxis(chartData.axes);
|
|
6773
6778
|
const catCount = Math.max(categoryLabels.length, 1);
|
|
6774
6779
|
const barSeriesCount = 1;
|
|
6775
6780
|
const barGroupWidth = layout.plotWidth / catCount;
|
|
@@ -6785,8 +6790,8 @@ function renderComboChart(element, chartData, categoryLabels) {
|
|
|
6785
6790
|
const barRange = isBarSecondary && secondaryRange ? secondaryRange : range;
|
|
6786
6791
|
barSeries.values.forEach((val, vi) => {
|
|
6787
6792
|
const x = layout.plotLeft + barGroupWidth * vi + barOffset;
|
|
6788
|
-
const zeroY =
|
|
6789
|
-
const valY =
|
|
6793
|
+
const zeroY = chunkIKISUZKE_js.valueToY(0, barRange, layout.plotTop, layout.plotBottom);
|
|
6794
|
+
const valY = chunkIKISUZKE_js.valueToY(val, barRange, layout.plotTop, layout.plotBottom);
|
|
6790
6795
|
const y = Math.min(zeroY, valY);
|
|
6791
6796
|
const h = Math.max(Math.abs(zeroY - valY), 1);
|
|
6792
6797
|
barElements.push(
|
|
@@ -6797,7 +6802,7 @@ function renderComboChart(element, chartData, categoryLabels) {
|
|
|
6797
6802
|
y,
|
|
6798
6803
|
width: barWidth,
|
|
6799
6804
|
height: h,
|
|
6800
|
-
fill:
|
|
6805
|
+
fill: chunkIKISUZKE_js.seriesColor(barSeries, 0, chartData.style?.styleId, chartData.colorPalette),
|
|
6801
6806
|
rx: 1
|
|
6802
6807
|
},
|
|
6803
6808
|
`${element.id}-combo-bar-${vi}`
|
|
@@ -6813,7 +6818,7 @@ function renderComboChart(element, chartData, categoryLabels) {
|
|
|
6813
6818
|
textAnchor: "middle",
|
|
6814
6819
|
fontSize: 7,
|
|
6815
6820
|
fill: "#334155",
|
|
6816
|
-
children:
|
|
6821
|
+
children: chunkIKISUZKE_js.formatAxisValue(val)
|
|
6817
6822
|
},
|
|
6818
6823
|
`${element.id}-combo-bar-dl-${vi}`
|
|
6819
6824
|
)
|
|
@@ -6830,10 +6835,10 @@ function renderComboChart(element, chartData, categoryLabels) {
|
|
|
6830
6835
|
const activeRange = isSecondary && secondaryRange ? secondaryRange : range;
|
|
6831
6836
|
const points = series.values.map((val, vi) => {
|
|
6832
6837
|
const x = layout.plotLeft + barGroupWidth * vi + barGroupWidth / 2;
|
|
6833
|
-
const y =
|
|
6838
|
+
const y = chunkIKISUZKE_js.valueToY(val, activeRange, layout.plotTop, layout.plotBottom);
|
|
6834
6839
|
return { x, y, val };
|
|
6835
6840
|
});
|
|
6836
|
-
const c =
|
|
6841
|
+
const c = chunkIKISUZKE_js.seriesColor(series, seriesIdx, chartData.style?.styleId, chartData.colorPalette);
|
|
6837
6842
|
lineElements.push(
|
|
6838
6843
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6839
6844
|
"polyline",
|
|
@@ -6860,7 +6865,7 @@ function renderComboChart(element, chartData, categoryLabels) {
|
|
|
6860
6865
|
textAnchor: "middle",
|
|
6861
6866
|
fontSize: 7,
|
|
6862
6867
|
fill: "#334155",
|
|
6863
|
-
children:
|
|
6868
|
+
children: chunkIKISUZKE_js.formatAxisValue(p.val)
|
|
6864
6869
|
},
|
|
6865
6870
|
`${element.id}-combo-line-dl-${si}-${vi}`
|
|
6866
6871
|
)
|
|
@@ -6898,11 +6903,11 @@ function renderComboChart(element, chartData, categoryLabels) {
|
|
|
6898
6903
|
}
|
|
6899
6904
|
function renderChartElement(element) {
|
|
6900
6905
|
if (element.type !== "chart") {
|
|
6901
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children:
|
|
6906
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children: chunk2JDWFMIK_js.translationsEn["pptx.chart.heading"] });
|
|
6902
6907
|
}
|
|
6903
6908
|
const chartData = element.chartData;
|
|
6904
6909
|
if (!chartData || chartData.series.length === 0) {
|
|
6905
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children:
|
|
6910
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children: chunk2JDWFMIK_js.translationsEn["pptx.chart.heading"] });
|
|
6906
6911
|
}
|
|
6907
6912
|
const longestSeriesLength = chartData.series.reduce(
|
|
6908
6913
|
(maxLength, series) => Math.max(maxLength, series.values.length),
|
|
@@ -8006,14 +8011,14 @@ function buildNotesPdf(pages) {
|
|
|
8006
8011
|
notes: page.notes,
|
|
8007
8012
|
slideNumber: page.slideNumber
|
|
8008
8013
|
}));
|
|
8009
|
-
const bytes =
|
|
8014
|
+
const bytes = chunkIKISUZKE_js.buildNotesPdfBytes(images, meta);
|
|
8010
8015
|
const blob = new Blob([bytes], { type: "application/pdf" });
|
|
8011
8016
|
return URL.createObjectURL(blob);
|
|
8012
8017
|
}
|
|
8013
8018
|
|
|
8014
8019
|
// src/viewer/utils/pdf-builder-slides.ts
|
|
8015
8020
|
function buildPdfFromImageData(images) {
|
|
8016
|
-
const bytes =
|
|
8021
|
+
const bytes = chunkIKISUZKE_js.buildSlidesPdfBytes(images);
|
|
8017
8022
|
const blob = new Blob([bytes], { type: "application/pdf" });
|
|
8018
8023
|
return URL.createObjectURL(blob);
|
|
8019
8024
|
}
|
|
@@ -8022,7 +8027,7 @@ function buildPdfFromImageData(images) {
|
|
|
8022
8027
|
var activePreview = null;
|
|
8023
8028
|
function startPreviewAnimation(elementId, preset, options) {
|
|
8024
8029
|
stopPreviewAnimation();
|
|
8025
|
-
const descriptor =
|
|
8030
|
+
const descriptor = chunkIKISUZKE_js.buildPreviewAnimation(preset, options);
|
|
8026
8031
|
if (!descriptor) {
|
|
8027
8032
|
return;
|
|
8028
8033
|
}
|
|
@@ -8070,6 +8075,8 @@ function stopPreviewAnimation() {
|
|
|
8070
8075
|
}
|
|
8071
8076
|
|
|
8072
8077
|
exports.ANIMATION_PRESET_OPTIONS = ANIMATION_PRESET_OPTIONS;
|
|
8078
|
+
exports.ARROW_SIZE_OPTIONS = ARROW_SIZE_OPTIONS;
|
|
8079
|
+
exports.CONNECTOR_ARROW_OPTIONS = CONNECTOR_ARROW_OPTIONS;
|
|
8073
8080
|
exports.DEFAULT_CANVAS_HEIGHT = DEFAULT_CANVAS_HEIGHT;
|
|
8074
8081
|
exports.DEFAULT_CANVAS_WIDTH = DEFAULT_CANVAS_WIDTH;
|
|
8075
8082
|
exports.DEFAULT_FILL_COLOR = DEFAULT_FILL_COLOR;
|
|
@@ -8082,14 +8089,13 @@ exports.DEFAULT_TEXT_FONT_SIZE = DEFAULT_TEXT_FONT_SIZE;
|
|
|
8082
8089
|
exports.EMU_PER_PX = EMU_PER_PX;
|
|
8083
8090
|
exports.GRID_SIZE = GRID_SIZE;
|
|
8084
8091
|
exports.HYPERLINK_COLOR = HYPERLINK_COLOR;
|
|
8085
|
-
exports.MAX_ZOOM_SCALE = MAX_ZOOM_SCALE;
|
|
8086
8092
|
exports.MIN_ELEMENT_SIZE = MIN_ELEMENT_SIZE;
|
|
8087
|
-
exports.MIN_ZOOM_SCALE = MIN_ZOOM_SCALE;
|
|
8088
8093
|
exports.SHAPE_PRESETS = SHAPE_PRESETS;
|
|
8089
8094
|
exports.SHORTCUT_REFERENCE_ITEMS = SHORTCUT_REFERENCE_ITEMS;
|
|
8090
8095
|
exports.SLIDE_NAV_THUMBNAIL_WIDTH = SLIDE_NAV_THUMBNAIL_WIDTH;
|
|
8091
|
-
exports.
|
|
8096
|
+
exports.STROKE_DASH_OPTIONS = STROKE_DASH_OPTIONS;
|
|
8092
8097
|
exports.SmartArtNodeText = SmartArtNodeText;
|
|
8098
|
+
exports.THEME_COLOR_SWATCHES = THEME_COLOR_SWATCHES;
|
|
8093
8099
|
exports.TOOLBAR_SECTIONS = TOOLBAR_SECTIONS;
|
|
8094
8100
|
exports.UNGROUPED_SECTION_ID = UNGROUPED_SECTION_ID;
|
|
8095
8101
|
exports.ZOOM_TO_SELECTION_PADDING = ZOOM_TO_SELECTION_PADDING;
|