pptx-react-viewer 2.20.4 → 2.20.5
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 +14 -0
- package/dist/{AiChatPanel-C3PLXWFZ.js → AiChatPanel-3H5WGSM5.js} +23 -23
- package/dist/AiChatPanel-3H5WGSM5.js.br +0 -0
- package/dist/AiChatPanel-3H5WGSM5.js.gz +0 -0
- package/dist/{AiChatPanel-Y4BQX3TL.mjs → AiChatPanel-AYS6SCSC.mjs} +3 -3
- package/dist/AiChatPanel-AYS6SCSC.mjs.br +0 -0
- package/dist/AiChatPanel-AYS6SCSC.mjs.gz +0 -0
- package/dist/{Model3DScene-Z4JPG2NB.js → Model3DScene-6OVVKUSF.js} +2 -2
- package/dist/Model3DScene-6OVVKUSF.js.br +0 -0
- package/dist/Model3DScene-6OVVKUSF.js.gz +0 -0
- package/dist/{Model3DScene-QJL5F67G.mjs → Model3DScene-QQQEABW7.mjs} +1 -1
- package/dist/Model3DScene-QQQEABW7.mjs.br +0 -0
- package/dist/Model3DScene-QQQEABW7.mjs.gz +0 -0
- package/dist/{chunk-KEGEDUJV.js → chunk-2LOKAZHT.js} +3 -3
- package/dist/chunk-2LOKAZHT.js.br +0 -0
- package/dist/{chunk-KEGEDUJV.js.gz → chunk-2LOKAZHT.js.gz} +0 -0
- package/dist/{chunk-BKBYURH5.js → chunk-62EM4JYP.js} +383 -383
- package/dist/chunk-62EM4JYP.js.br +0 -0
- package/dist/chunk-62EM4JYP.js.gz +0 -0
- package/dist/{chunk-LBSMBRSD.js → chunk-BQJU7ZG6.js} +25 -0
- package/dist/chunk-BQJU7ZG6.js.br +0 -0
- package/dist/{chunk-LBSMBRSD.js.gz → chunk-BQJU7ZG6.js.gz} +0 -0
- package/dist/{chunk-YHEASDGN.mjs → chunk-BSOTRNVG.mjs} +7 -7
- package/dist/chunk-BSOTRNVG.mjs.br +0 -0
- package/dist/chunk-BSOTRNVG.mjs.gz +0 -0
- package/dist/{chunk-ADWJUL4F.mjs → chunk-DIJWZ6ZS.mjs} +1 -1
- package/dist/chunk-DIJWZ6ZS.mjs.br +0 -0
- package/dist/chunk-DIJWZ6ZS.mjs.gz +0 -0
- package/dist/{chunk-7HF5DSE4.js → chunk-ETJBX4YT.js} +147 -147
- package/dist/chunk-ETJBX4YT.js.br +0 -0
- package/dist/chunk-ETJBX4YT.js.gz +0 -0
- package/dist/{chunk-BDMESP3M.js → chunk-JYVQ2MTO.js} +1043 -1043
- package/dist/chunk-JYVQ2MTO.js.br +0 -0
- package/dist/chunk-JYVQ2MTO.js.gz +0 -0
- package/dist/{chunk-JL3GWABW.mjs → chunk-PBFNE5X5.mjs} +1 -1
- package/dist/chunk-PBFNE5X5.mjs.br +0 -0
- package/dist/chunk-PBFNE5X5.mjs.gz +0 -0
- package/dist/{chunk-HXFPEJA4.mjs → chunk-ULBSTLY3.mjs} +25 -0
- package/dist/chunk-ULBSTLY3.mjs.br +0 -0
- package/dist/{chunk-HXFPEJA4.mjs.gz → chunk-ULBSTLY3.mjs.gz} +0 -0
- package/dist/{chunk-KXHYUJI7.mjs → chunk-ZVFTYICH.mjs} +2 -2
- package/dist/chunk-ZVFTYICH.mjs.br +0 -0
- package/dist/chunk-ZVFTYICH.mjs.gz +0 -0
- package/dist/index.js +45 -45
- package/dist/index.js.br +0 -0
- package/dist/index.js.gz +0 -0
- package/dist/index.mjs +5 -5
- package/dist/index.mjs.br +0 -0
- package/dist/index.mjs.gz +0 -0
- package/dist/internals.js +78 -78
- package/dist/internals.js.br +0 -0
- package/dist/internals.js.gz +0 -0
- package/dist/internals.mjs +3 -3
- package/dist/internals.mjs.br +0 -0
- package/dist/internals.mjs.gz +0 -0
- package/dist/viewer/index.js +26 -26
- package/dist/viewer/index.js.br +0 -0
- package/dist/viewer/index.js.gz +0 -0
- package/dist/viewer/index.mjs +5 -5
- package/dist/viewer/index.mjs.br +0 -0
- package/dist/viewer/index.mjs.gz +0 -0
- package/package.json +1 -1
- package/dist/AiChatPanel-C3PLXWFZ.js.br +0 -0
- package/dist/AiChatPanel-C3PLXWFZ.js.gz +0 -0
- package/dist/AiChatPanel-Y4BQX3TL.mjs.br +0 -0
- package/dist/AiChatPanel-Y4BQX3TL.mjs.gz +0 -0
- package/dist/Model3DScene-QJL5F67G.mjs.br +0 -0
- package/dist/Model3DScene-QJL5F67G.mjs.gz +0 -0
- package/dist/Model3DScene-Z4JPG2NB.js.br +0 -0
- package/dist/Model3DScene-Z4JPG2NB.js.gz +0 -0
- package/dist/chunk-7HF5DSE4.js.br +0 -0
- package/dist/chunk-7HF5DSE4.js.gz +0 -0
- package/dist/chunk-ADWJUL4F.mjs.br +0 -0
- package/dist/chunk-ADWJUL4F.mjs.gz +0 -0
- package/dist/chunk-BDMESP3M.js.br +0 -0
- package/dist/chunk-BDMESP3M.js.gz +0 -0
- package/dist/chunk-BKBYURH5.js.br +0 -0
- package/dist/chunk-BKBYURH5.js.gz +0 -0
- package/dist/chunk-HXFPEJA4.mjs.br +0 -0
- package/dist/chunk-JL3GWABW.mjs.br +0 -0
- package/dist/chunk-JL3GWABW.mjs.gz +0 -0
- package/dist/chunk-KEGEDUJV.js.br +0 -0
- package/dist/chunk-KXHYUJI7.mjs.br +0 -0
- package/dist/chunk-KXHYUJI7.mjs.gz +0 -0
- package/dist/chunk-LBSMBRSD.js.br +0 -0
- package/dist/chunk-YHEASDGN.mjs.br +0 -0
- package/dist/chunk-YHEASDGN.mjs.gz +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var chunk6CPUGAK7_js = require('./chunk-6CPUGAK7.js');
|
|
4
|
-
var
|
|
4
|
+
var chunkBQJU7ZG6_js = require('./chunk-BQJU7ZG6.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 chunkBQJU7ZG6_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 chunkBQJU7ZG6_js.cloneHistorySnapshot(snapshot);
|
|
27
27
|
}
|
|
28
28
|
|
|
29
29
|
// src/viewer/constants/scalar.ts
|
|
@@ -61,7 +61,7 @@ var TOOLBAR_SECTIONS = [
|
|
|
61
61
|
{ id: "view", labelKey: "pptx.ribbon.tab.view" },
|
|
62
62
|
{ id: "help", labelKey: "pptx.ribbon.tab.help" }
|
|
63
63
|
];
|
|
64
|
-
var SHORTCUT_REFERENCE_ITEMS =
|
|
64
|
+
var SHORTCUT_REFERENCE_ITEMS = chunkBQJU7ZG6_js.VIEWER_SHORTCUT_REFERENCE;
|
|
65
65
|
|
|
66
66
|
// src/viewer/constants/theme.ts
|
|
67
67
|
var THEME_COLOR_SWATCHES = [
|
|
@@ -105,7 +105,7 @@ var GLYPH_COMPONENTS = {
|
|
|
105
105
|
plus: lu.LuPlus,
|
|
106
106
|
triangle: lu.LuTriangle
|
|
107
107
|
};
|
|
108
|
-
var SHAPE_PRESETS =
|
|
108
|
+
var SHAPE_PRESETS = chunkBQJU7ZG6_js.SHAPE_PRESET_DEFS.map(
|
|
109
109
|
(def) => ({
|
|
110
110
|
type: def.type,
|
|
111
111
|
label: def.label,
|
|
@@ -264,7 +264,7 @@ function isConnectorOrLineElement(element) {
|
|
|
264
264
|
if (element.type === "connector") {
|
|
265
265
|
return true;
|
|
266
266
|
}
|
|
267
|
-
if (!
|
|
267
|
+
if (!chunkBQJU7ZG6_js.hasShapeProperties(element)) {
|
|
268
268
|
return false;
|
|
269
269
|
}
|
|
270
270
|
const st = getShapeType(element.shapeType);
|
|
@@ -273,7 +273,7 @@ function isConnectorOrLineElement(element) {
|
|
|
273
273
|
|
|
274
274
|
// src/viewer/utils/image-style.ts
|
|
275
275
|
function getImageMaskStyle(element) {
|
|
276
|
-
if (!
|
|
276
|
+
if (!chunkBQJU7ZG6_js.hasShapeProperties(element)) {
|
|
277
277
|
return void 0;
|
|
278
278
|
}
|
|
279
279
|
const shapeType = element.shapeType;
|
|
@@ -282,7 +282,7 @@ function getImageMaskStyle(element) {
|
|
|
282
282
|
}
|
|
283
283
|
const normalized = shapeType.toLowerCase();
|
|
284
284
|
if (normalized === "roundrect" || normalized === "round1rect" || normalized === "round2samerect" || normalized === "round2diagrect" || normalized === "sniproundrect" || normalized === "snip1rect" || normalized === "snip2diagrect") {
|
|
285
|
-
const radiusPx =
|
|
285
|
+
const radiusPx = chunkBQJU7ZG6_js.getRoundRectRadiusPx2(element);
|
|
286
286
|
if (radiusPx <= 0.01) {
|
|
287
287
|
return void 0;
|
|
288
288
|
}
|
|
@@ -294,7 +294,7 @@ function getImageMaskStyle(element) {
|
|
|
294
294
|
if (normalized === "can" || normalized === "cylinder") {
|
|
295
295
|
return { borderRadius: "48% / 12%" };
|
|
296
296
|
}
|
|
297
|
-
const clipPath =
|
|
297
|
+
const clipPath = chunkBQJU7ZG6_js.getResolvedShapeClipPath(element);
|
|
298
298
|
if (!clipPath) {
|
|
299
299
|
return void 0;
|
|
300
300
|
}
|
|
@@ -303,7 +303,7 @@ function getImageMaskStyle(element) {
|
|
|
303
303
|
function getImageRenderStyle(element) {
|
|
304
304
|
return {
|
|
305
305
|
...getImageMaskStyle(element) || {},
|
|
306
|
-
...
|
|
306
|
+
...chunkBQJU7ZG6_js.getImageFitStyle(element)
|
|
307
307
|
};
|
|
308
308
|
}
|
|
309
309
|
var CROP_SHAPE_CLIP_PATHS = {
|
|
@@ -316,7 +316,7 @@ var CROP_SHAPE_CLIP_PATHS = {
|
|
|
316
316
|
star: "polygon(50% 0%, 61% 35%, 98% 35%, 68% 57%, 79% 91%, 50% 70%, 21% 91%, 32% 57%, 2% 35%, 39% 35%)"
|
|
317
317
|
};
|
|
318
318
|
function getCropShapeClipPath(element) {
|
|
319
|
-
if (!
|
|
319
|
+
if (!chunkBQJU7ZG6_js.isImageLikeElement(element)) {
|
|
320
320
|
return void 0;
|
|
321
321
|
}
|
|
322
322
|
const shape = element.cropShape;
|
|
@@ -326,7 +326,7 @@ function getCropShapeClipPath(element) {
|
|
|
326
326
|
return CROP_SHAPE_CLIP_PATHS[shape];
|
|
327
327
|
}
|
|
328
328
|
function getImageTilingStyle2(element) {
|
|
329
|
-
return
|
|
329
|
+
return chunkBQJU7ZG6_js.getImageTilingStyle(element);
|
|
330
330
|
}
|
|
331
331
|
|
|
332
332
|
// src/viewer/utils/geometry-image.ts
|
|
@@ -526,9 +526,9 @@ function registerMediaElement(elementId, el) {
|
|
|
526
526
|
};
|
|
527
527
|
}
|
|
528
528
|
function executeMediaCommand(command, frameRoot) {
|
|
529
|
-
return
|
|
529
|
+
return chunkBQJU7ZG6_js.runMediaCommand(
|
|
530
530
|
command,
|
|
531
|
-
(targetId) => registry.get(targetId) ??
|
|
531
|
+
(targetId) => registry.get(targetId) ?? chunkBQJU7ZG6_js.findMediaElementByElementId(targetId, frameRoot?.())
|
|
532
532
|
);
|
|
533
533
|
}
|
|
534
534
|
function PresentationMediaController({
|
|
@@ -572,7 +572,7 @@ function PresentationMediaController({
|
|
|
572
572
|
loop: shouldLoop,
|
|
573
573
|
volume: playbackVolume,
|
|
574
574
|
playbackRate
|
|
575
|
-
} =
|
|
575
|
+
} = chunkBQJU7ZG6_js.mediaPlaybackAttributes({
|
|
576
576
|
loop: element.loop,
|
|
577
577
|
volume: element.volume,
|
|
578
578
|
playbackSpeed: element.playbackSpeed
|
|
@@ -708,7 +708,7 @@ function PresentationMediaController({
|
|
|
708
708
|
if (element.playAcrossSlides && element.mediaType === "audio") {
|
|
709
709
|
const dataUrl = element.mediaData ?? resolvedDataUrl;
|
|
710
710
|
if (dataUrl) {
|
|
711
|
-
|
|
711
|
+
chunkBQJU7ZG6_js.registerPersistentAudio(
|
|
712
712
|
element.id,
|
|
713
713
|
dataUrl,
|
|
714
714
|
element.mediaMimeType,
|
|
@@ -806,17 +806,17 @@ function Badge({
|
|
|
806
806
|
"div",
|
|
807
807
|
{
|
|
808
808
|
className: `absolute inset-0 flex flex-col items-center justify-center ${isMissing ? "gap-1" : ""}`,
|
|
809
|
-
...{ [
|
|
809
|
+
...{ [chunkBQJU7ZG6_js.MEDIA_CHROME_ATTRIBUTE]: visual.badge },
|
|
810
810
|
children: [
|
|
811
811
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
812
812
|
FallbackIcon,
|
|
813
813
|
{
|
|
814
|
-
paths:
|
|
814
|
+
paths: chunkBQJU7ZG6_js.mediaFallbackIcon(visual, element.mediaType),
|
|
815
815
|
size: isMissing ? 32 : 48,
|
|
816
816
|
className: isMissing ? "text-white/60" : "text-white/80 drop-shadow-md"
|
|
817
817
|
}
|
|
818
818
|
),
|
|
819
|
-
isMissing && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[10px] text-white/60", children: label(
|
|
819
|
+
isMissing && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[10px] text-white/60", children: label(chunkBQJU7ZG6_js.mediaFallbackLabelKey(visual, element.mediaType)) })
|
|
820
820
|
]
|
|
821
821
|
}
|
|
822
822
|
);
|
|
@@ -833,17 +833,17 @@ function Placeholder({
|
|
|
833
833
|
"div",
|
|
834
834
|
{
|
|
835
835
|
className: `w-full h-full flex flex-col items-center justify-center gap-1 pointer-events-none rounded ${isMissing ? "bg-black/30 border border-dashed border-white/20" : element.mediaType === "audio" ? "bg-black/10" : "bg-black/20"}`,
|
|
836
|
-
...{ [
|
|
836
|
+
...{ [chunkBQJU7ZG6_js.MEDIA_CHROME_ATTRIBUTE]: visual.placeholder },
|
|
837
837
|
children: [
|
|
838
838
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
839
839
|
FallbackIcon,
|
|
840
840
|
{
|
|
841
|
-
paths:
|
|
841
|
+
paths: chunkBQJU7ZG6_js.mediaFallbackIcon(visual, element.mediaType),
|
|
842
842
|
size: isMissing ? 36 : element.mediaType === "audio" ? 24 : 32,
|
|
843
843
|
className: isMissing ? "text-white/50" : "text-white/70"
|
|
844
844
|
}
|
|
845
845
|
),
|
|
846
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: `text-[10px] ${isMissing ? "text-white/50" : "text-white/70"}`, children: label(
|
|
846
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: `text-[10px] ${isMissing ? "text-white/50" : "text-white/70"}`, children: label(chunkBQJU7ZG6_js.mediaFallbackLabelKey(visual, element.mediaType)) })
|
|
847
847
|
]
|
|
848
848
|
}
|
|
849
849
|
);
|
|
@@ -853,7 +853,7 @@ function renderMediaFallback({
|
|
|
853
853
|
posterUrl,
|
|
854
854
|
surface
|
|
855
855
|
}) {
|
|
856
|
-
const visual =
|
|
856
|
+
const visual = chunkBQJU7ZG6_js.mediaFallbackVisual(surface, {
|
|
857
857
|
hasPoster: Boolean(posterUrl),
|
|
858
858
|
missing: element.mediaMissing === true
|
|
859
859
|
});
|
|
@@ -882,7 +882,7 @@ function renderMediaElement(element, mediaDataUrls, options) {
|
|
|
882
882
|
const dataUrl = element.mediaData ?? (mediaPath ? mediaDataUrls.get(mediaPath) : void 0);
|
|
883
883
|
const trimFragment = buildTrimFragment(element);
|
|
884
884
|
const posterUrl = element.posterFrameData ?? void 0;
|
|
885
|
-
const shouldLoop =
|
|
885
|
+
const shouldLoop = chunkBQJU7ZG6_js.mediaPlaybackAttributes(element).loop;
|
|
886
886
|
const shouldAutoPlay = options?.autoPlay === true || element.autoPlay === true;
|
|
887
887
|
const isFullScreen = options?.fullScreen === true;
|
|
888
888
|
const isPresentationMode = options?.isPresentationMode === true;
|
|
@@ -965,19 +965,19 @@ function renderMediaElement(element, mediaDataUrls, options) {
|
|
|
965
965
|
|
|
966
966
|
// src/viewer/utils/text-utils.tsx
|
|
967
967
|
function getTextStyleForElement(element, fallbackColor) {
|
|
968
|
-
return
|
|
968
|
+
return chunkBQJU7ZG6_js.buildTextBlockStyle(element, { fallbackColor });
|
|
969
969
|
}
|
|
970
970
|
|
|
971
971
|
// src/viewer/utils/text-layout.tsx
|
|
972
972
|
function getTextLayoutStyle(element) {
|
|
973
|
-
if (!
|
|
973
|
+
if (!chunkBQJU7ZG6_js.hasTextProperties(element)) {
|
|
974
974
|
return {};
|
|
975
975
|
}
|
|
976
|
-
const writingMode =
|
|
977
|
-
const textOrientation =
|
|
978
|
-
const verticalDirection =
|
|
976
|
+
const writingMode = chunkBQJU7ZG6_js.toCssWritingMode(element.textStyle?.textDirection);
|
|
977
|
+
const textOrientation = chunkBQJU7ZG6_js.toCssTextOrientation(element.textStyle?.textDirection);
|
|
978
|
+
const verticalDirection = chunkBQJU7ZG6_js.toCssVerticalDirection(element.textStyle?.textDirection);
|
|
979
979
|
const textWrapNone = element.textStyle?.textWrap === "none";
|
|
980
|
-
const hasParagraphIndents =
|
|
980
|
+
const hasParagraphIndents = chunkBQJU7ZG6_js.hasTextProperties(element) && element.paragraphIndents && element.paragraphIndents.length > 0;
|
|
981
981
|
const paragraphMarginLeft = element.textStyle?.paragraphMarginLeft;
|
|
982
982
|
const paragraphIndent = element.textStyle?.paragraphIndent;
|
|
983
983
|
const marginLeft = !hasParagraphIndents && typeof paragraphMarginLeft === "number" && paragraphMarginLeft !== 0 ? paragraphMarginLeft : void 0;
|
|
@@ -986,7 +986,7 @@ function getTextLayoutStyle(element) {
|
|
|
986
986
|
const bodyBottom = element.textStyle?.bodyInsetBottom ?? DEFAULT_BODY_INSET_TB_PX;
|
|
987
987
|
return {
|
|
988
988
|
// Columns / flex anchoring / anchorCtr / tab-size / kinsoku, from shared.
|
|
989
|
-
...
|
|
989
|
+
...chunkBQJU7ZG6_js.buildTextBodyLayoutStyle(element),
|
|
990
990
|
// Body inset only. Paragraph spacing (spcBef/spcAft) is applied
|
|
991
991
|
// per-paragraph by the paragraph renderer, not collapsed here.
|
|
992
992
|
paddingTop: bodyTop,
|
|
@@ -1005,7 +1005,7 @@ function getTextLayoutStyle(element) {
|
|
|
1005
1005
|
|
|
1006
1006
|
// src/viewer/utils/text-effects.tsx
|
|
1007
1007
|
function buildTextBody3DSceneStyle2(textStyle) {
|
|
1008
|
-
return
|
|
1008
|
+
return chunkBQJU7ZG6_js.buildTextBody3DSceneStyle(textStyle);
|
|
1009
1009
|
}
|
|
1010
1010
|
|
|
1011
1011
|
// src/viewer/utils/text-warp-css.tsx
|
|
@@ -1190,13 +1190,13 @@ function wrapWithTextBuildAnimation(elementId, paraIndex, renderedSegments, para
|
|
|
1190
1190
|
if (!subElementAnimStates || subElementAnimStates.size === 0) {
|
|
1191
1191
|
return renderedSegments;
|
|
1192
1192
|
}
|
|
1193
|
-
const paraKey = `${elementId}${
|
|
1193
|
+
const paraKey = `${elementId}${chunkBQJU7ZG6_js.TEXT_BUILD_ID_SEP}p${paraIndex}`;
|
|
1194
1194
|
const paraState = subElementAnimStates.get(paraKey);
|
|
1195
1195
|
if (paraState) {
|
|
1196
1196
|
const style = buildAnimStyle(paraState);
|
|
1197
1197
|
return /* @__PURE__ */ jsxRuntime.jsx("span", { "data-anim-id": paraKey, style: { display: "inline", ...style }, children: renderedSegments }, paraKey);
|
|
1198
1198
|
}
|
|
1199
|
-
const spec =
|
|
1199
|
+
const spec = chunkBQJU7ZG6_js.buildTextBuildSpec(
|
|
1200
1200
|
elementId,
|
|
1201
1201
|
paraIndex,
|
|
1202
1202
|
paraRuns.map((run) => ({ text: run.text, style: run })),
|
|
@@ -1214,7 +1214,7 @@ function wrapWithTextBuildAnimation(elementId, paraIndex, renderedSegments, para
|
|
|
1214
1214
|
"span",
|
|
1215
1215
|
{
|
|
1216
1216
|
"data-anim-id": span.animId,
|
|
1217
|
-
style:
|
|
1217
|
+
style: chunkBQJU7ZG6_js.textBuildSpanStyle(span),
|
|
1218
1218
|
children: content
|
|
1219
1219
|
},
|
|
1220
1220
|
span.animId
|
|
@@ -1358,10 +1358,10 @@ function renderScriptAwareText(text, needsScriptFonts, scriptFonts, baseFontFami
|
|
|
1358
1358
|
if (!needsScriptFonts || !text) {
|
|
1359
1359
|
return text;
|
|
1360
1360
|
}
|
|
1361
|
-
const runs =
|
|
1361
|
+
const runs = chunkBQJU7ZG6_js.segmentByScript(text);
|
|
1362
1362
|
if (runs.length <= 1) {
|
|
1363
1363
|
if (runs.length === 1) {
|
|
1364
|
-
const font =
|
|
1364
|
+
const font = chunkBQJU7ZG6_js.resolveFontForScript(runs[0].script, scriptFonts);
|
|
1365
1365
|
if (font && font !== baseFontFamily) {
|
|
1366
1366
|
return /* @__PURE__ */ jsxRuntime.jsx("span", { style: { ...nestedStyle, fontFamily: font }, children: text });
|
|
1367
1367
|
}
|
|
@@ -1369,7 +1369,7 @@ function renderScriptAwareText(text, needsScriptFonts, scriptFonts, baseFontFami
|
|
|
1369
1369
|
return text;
|
|
1370
1370
|
}
|
|
1371
1371
|
return runs.map((run, i) => {
|
|
1372
|
-
const font =
|
|
1372
|
+
const font = chunkBQJU7ZG6_js.resolveFontForScript(run.script, scriptFonts);
|
|
1373
1373
|
if (!font || font === baseFontFamily) {
|
|
1374
1374
|
return /* @__PURE__ */ jsxRuntime.jsx(React6__default.default.Fragment, { children: run.text }, `${keyPrefix}-r${i}`);
|
|
1375
1375
|
}
|
|
@@ -1380,7 +1380,7 @@ function renderMetricPieces(text, metric, keyPrefix, inner) {
|
|
|
1380
1380
|
if (!metric || !text) {
|
|
1381
1381
|
return inner(text, keyPrefix);
|
|
1382
1382
|
}
|
|
1383
|
-
const pieces =
|
|
1383
|
+
const pieces = chunkBQJU7ZG6_js.splitRunForMetrics(text, metric.font);
|
|
1384
1384
|
if (pieces.length <= 1) {
|
|
1385
1385
|
return inner(text, keyPrefix);
|
|
1386
1386
|
}
|
|
@@ -1389,7 +1389,7 @@ function renderMetricPieces(text, metric, keyPrefix, inner) {
|
|
|
1389
1389
|
{
|
|
1390
1390
|
style: {
|
|
1391
1391
|
...metric.nestedStyle,
|
|
1392
|
-
letterSpacing:
|
|
1392
|
+
letterSpacing: chunkBQJU7ZG6_js.pieceLetterSpacing(metric.authoredPx, piece.tracking)
|
|
1393
1393
|
},
|
|
1394
1394
|
children: inner(piece.text, `${keyPrefix}-w${i}`)
|
|
1395
1395
|
},
|
|
@@ -1476,8 +1476,8 @@ function renderSegmentContent(elementId, segmentIndex, textValue, lines, needsSc
|
|
|
1476
1476
|
});
|
|
1477
1477
|
}
|
|
1478
1478
|
function renderEquationSegment(elementId, segmentIndex, equationXml, equationNumber) {
|
|
1479
|
-
const mathml =
|
|
1480
|
-
const safeMathml = mathml ?
|
|
1479
|
+
const mathml = chunkBQJU7ZG6_js.convertOmmlToMathMl(equationXml);
|
|
1480
|
+
const safeMathml = mathml ? chunkBQJU7ZG6_js.sanitizeMathMl(mathml) : "";
|
|
1481
1481
|
const equationContent = safeMathml ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
1482
1482
|
"span",
|
|
1483
1483
|
{
|
|
@@ -1537,7 +1537,7 @@ function renderParagraphRun(run, segment, ctx, keySuffix = "") {
|
|
|
1537
1537
|
const segmentStyle = segment?.style ?? {};
|
|
1538
1538
|
const textValue = run.text;
|
|
1539
1539
|
const lines = textValue.split("\n");
|
|
1540
|
-
const resolvedSegmentColor =
|
|
1540
|
+
const resolvedSegmentColor = chunkBQJU7ZG6_js.normalizeHexColor(
|
|
1541
1541
|
segmentStyle.color || element.textStyle?.color,
|
|
1542
1542
|
run.hyperlink ? HYPERLINK_COLOR : fallbackColor
|
|
1543
1543
|
);
|
|
@@ -1545,16 +1545,16 @@ function renderParagraphRun(run, segment, ctx, keySuffix = "") {
|
|
|
1545
1545
|
const baselineFraction = rawBaseline === 0 ? 0 : Math.abs(rawBaseline) >= 1e3 ? rawBaseline / 1e5 : rawBaseline / 100;
|
|
1546
1546
|
const baselineFontScale = baselineFraction !== 0 ? BASELINE_FONT_SCALE : 1;
|
|
1547
1547
|
const rawFontSize = segmentStyle.fontSize || element.textStyle?.fontSize || DEFAULT_TEXT_FONT_SIZE;
|
|
1548
|
-
const baseFontSize = rawFontSize *
|
|
1548
|
+
const baseFontSize = rawFontSize * chunkBQJU7ZG6_js.resolveAutoFitFontScale(element.textStyle);
|
|
1549
1549
|
const baselineShift = baselineFraction !== 0 ? `${baselineFraction * baseFontSize}px` : void 0;
|
|
1550
1550
|
const baseFontSizePt = baseFontSize * (72 / 96);
|
|
1551
1551
|
const fontKerning = typeof segmentStyle.kerning === "number" ? segmentStyle.kerning === 0 ? "none" : baseFontSizePt >= segmentStyle.kerning / 100 ? "normal" : "none" : void 0;
|
|
1552
1552
|
const rawFontFamily = segmentStyle.fontFamily || element.textStyle?.fontFamily;
|
|
1553
|
-
const baseFontFamily = rawFontFamily ?
|
|
1553
|
+
const baseFontFamily = rawFontFamily ? chunkBQJU7ZG6_js.getSubstituteFontFamily(
|
|
1554
1554
|
rawFontFamily,
|
|
1555
|
-
|
|
1555
|
+
chunkBQJU7ZG6_js.parsePanoseString(segmentStyle.latinFontPanose ?? element.textStyle?.latinFontPanose)
|
|
1556
1556
|
) : DEFAULT_FONT_FAMILY2;
|
|
1557
|
-
const scriptFont = (name, panose) => name ?
|
|
1557
|
+
const scriptFont = (name, panose) => name ? chunkBQJU7ZG6_js.getSubstituteFontFamily(name, chunkBQJU7ZG6_js.parsePanoseString(panose)) : baseFontFamily;
|
|
1558
1558
|
const scriptFonts = {
|
|
1559
1559
|
latin: baseFontFamily,
|
|
1560
1560
|
eastAsia: scriptFont(
|
|
@@ -1570,7 +1570,7 @@ function renderParagraphRun(run, segment, ctx, keySuffix = "") {
|
|
|
1570
1570
|
segmentStyle.symbolFontPanose ?? element.textStyle?.symbolFontPanose
|
|
1571
1571
|
)
|
|
1572
1572
|
};
|
|
1573
|
-
const needsScriptFonts =
|
|
1573
|
+
const needsScriptFonts = chunkBQJU7ZG6_js.hasDistinctScriptFonts(scriptFonts);
|
|
1574
1574
|
const authoredLetterSpacing = typeof segmentStyle.characterSpacing === "number" && segmentStyle.characterSpacing !== 0 ? segmentStyle.characterSpacing / 100 * (96 / 72) : 0;
|
|
1575
1575
|
const metricFont = {
|
|
1576
1576
|
fontFamily: baseFontFamily,
|
|
@@ -1578,7 +1578,7 @@ function renderParagraphRun(run, segment, ctx, keySuffix = "") {
|
|
|
1578
1578
|
bold: Boolean(segmentStyle.bold),
|
|
1579
1579
|
italic: Boolean(segmentStyle.italic)
|
|
1580
1580
|
};
|
|
1581
|
-
const nestedStyle =
|
|
1581
|
+
const nestedStyle = chunkBQJU7ZG6_js.nestedTextDecorationStyle(run.style);
|
|
1582
1582
|
const metricContext = { font: metricFont, authoredPx: authoredLetterSpacing, nestedStyle };
|
|
1583
1583
|
const spanStyle = { ...run.style };
|
|
1584
1584
|
spanStyle.color = resolvedSegmentColor;
|
|
@@ -1586,11 +1586,11 @@ function renderParagraphRun(run, segment, ctx, keySuffix = "") {
|
|
|
1586
1586
|
spanStyle.fontFamily = baseFontFamily;
|
|
1587
1587
|
spanStyle.verticalAlign = baselineShift;
|
|
1588
1588
|
spanStyle.fontKerning = fontKerning;
|
|
1589
|
-
spanStyle.letterSpacing =
|
|
1589
|
+
spanStyle.letterSpacing = chunkBQJU7ZG6_js.pieceLetterSpacing(
|
|
1590
1590
|
authoredLetterSpacing,
|
|
1591
|
-
|
|
1591
|
+
chunkBQJU7ZG6_js.resolveMetricTrackingPx(textValue, metricFont)
|
|
1592
1592
|
);
|
|
1593
|
-
const hollow =
|
|
1593
|
+
const hollow = chunkBQJU7ZG6_js.hollowTextFillStyle(segmentStyle, {
|
|
1594
1594
|
color: resolvedSegmentColor,
|
|
1595
1595
|
textStroke: typeof spanStyle.WebkitTextStroke === "string" ? spanStyle.WebkitTextStroke : void 0
|
|
1596
1596
|
});
|
|
@@ -1687,7 +1687,7 @@ function renderHyperlink(run, spanNode, key, ctx) {
|
|
|
1687
1687
|
);
|
|
1688
1688
|
}
|
|
1689
1689
|
function renderTextSegments(element, fallbackColor, emptyFallback, findHighlights, onHyperlinkClick, fieldContext, subElementAnimStates, segmentOverrides, requireCtrlClick) {
|
|
1690
|
-
if (!
|
|
1690
|
+
if (!chunkBQJU7ZG6_js.hasTextProperties(element)) {
|
|
1691
1691
|
return emptyFallback || null;
|
|
1692
1692
|
}
|
|
1693
1693
|
const segments = segmentOverrides ?? element.textSegments;
|
|
@@ -1697,7 +1697,7 @@ function renderTextSegments(element, fallbackColor, emptyFallback, findHighlight
|
|
|
1697
1697
|
}
|
|
1698
1698
|
return element.text || emptyFallback || "";
|
|
1699
1699
|
}
|
|
1700
|
-
const paragraphs =
|
|
1700
|
+
const paragraphs = chunkBQJU7ZG6_js.buildParagraphs(element, fieldContext, segmentOverrides);
|
|
1701
1701
|
const ctx = {
|
|
1702
1702
|
element,
|
|
1703
1703
|
fallbackColor,
|
|
@@ -1830,13 +1830,13 @@ function hexToRgbUnit(hex) {
|
|
|
1830
1830
|
};
|
|
1831
1831
|
}
|
|
1832
1832
|
function getDuotoneColors(element) {
|
|
1833
|
-
if (!
|
|
1833
|
+
if (!chunkBQJU7ZG6_js.isImageLikeElement(element)) {
|
|
1834
1834
|
return void 0;
|
|
1835
1835
|
}
|
|
1836
1836
|
return element.imageEffects?.duotone;
|
|
1837
1837
|
}
|
|
1838
1838
|
function buildLineShadowCss(element) {
|
|
1839
|
-
if (!
|
|
1839
|
+
if (!chunkBQJU7ZG6_js.hasShapeProperties(element)) {
|
|
1840
1840
|
return void 0;
|
|
1841
1841
|
}
|
|
1842
1842
|
const ss = element.shapeStyle;
|
|
@@ -1847,13 +1847,13 @@ function buildLineShadowCss(element) {
|
|
|
1847
1847
|
const offsetY = typeof ss.lineShadowOffsetY === "number" ? ss.lineShadowOffsetY : 2;
|
|
1848
1848
|
const blur = typeof ss.lineShadowBlur === "number" ? Math.max(0, ss.lineShadowBlur) : 4;
|
|
1849
1849
|
const opacity = typeof ss.lineShadowOpacity === "number" ? Math.max(0, Math.min(1, ss.lineShadowOpacity)) : 0.35;
|
|
1850
|
-
return `${Math.round(offsetX)}px ${Math.round(offsetY)}px ${Math.round(blur)}px ${
|
|
1851
|
-
|
|
1850
|
+
return `${Math.round(offsetX)}px ${Math.round(offsetY)}px ${Math.round(blur)}px ${chunkBQJU7ZG6_js.colorWithOpacity(
|
|
1851
|
+
chunkBQJU7ZG6_js.normalizeHexColor(ss.lineShadowColor, "#000000"),
|
|
1852
1852
|
opacity
|
|
1853
1853
|
)}`;
|
|
1854
1854
|
}
|
|
1855
1855
|
function buildLineGlowFilter(element) {
|
|
1856
|
-
if (!
|
|
1856
|
+
if (!chunkBQJU7ZG6_js.hasShapeProperties(element)) {
|
|
1857
1857
|
return void 0;
|
|
1858
1858
|
}
|
|
1859
1859
|
const ss = element.shapeStyle;
|
|
@@ -1862,14 +1862,14 @@ function buildLineGlowFilter(element) {
|
|
|
1862
1862
|
}
|
|
1863
1863
|
const glowOpacity = typeof ss.lineGlowOpacity === "number" ? ss.lineGlowOpacity : 0.75;
|
|
1864
1864
|
const glowRad = Math.round(Math.max(0, ss.lineGlowRadius));
|
|
1865
|
-
const glowCol =
|
|
1865
|
+
const glowCol = chunkBQJU7ZG6_js.colorWithOpacity(chunkBQJU7ZG6_js.normalizeHexColor(ss.lineGlowColor, "#ffff00"), glowOpacity);
|
|
1866
1866
|
return `drop-shadow(0 0 ${glowRad}px ${glowCol})`;
|
|
1867
1867
|
}
|
|
1868
1868
|
function getDagDuotoneFilterId(elementId) {
|
|
1869
1869
|
return `dag-duotone-${elementId}`;
|
|
1870
1870
|
}
|
|
1871
1871
|
function hasDagDuotoneEffect(element) {
|
|
1872
|
-
if (!
|
|
1872
|
+
if (!chunkBQJU7ZG6_js.hasShapeProperties(element)) {
|
|
1873
1873
|
return false;
|
|
1874
1874
|
}
|
|
1875
1875
|
return Boolean(element.shapeStyle?.dagDuotone);
|
|
@@ -1921,7 +1921,7 @@ function renderDagDuotoneSvgFilter(elementId, color1, color2) {
|
|
|
1921
1921
|
|
|
1922
1922
|
// src/viewer/utils/shape-visual-3d.ts
|
|
1923
1923
|
function build3DExtrusionData2(shape3d, scene3d, fillColor, elementWidth, elementHeight) {
|
|
1924
|
-
return
|
|
1924
|
+
return chunkBQJU7ZG6_js.build3DExtrusionData(
|
|
1925
1925
|
shape3d,
|
|
1926
1926
|
scene3d,
|
|
1927
1927
|
fillColor,
|
|
@@ -1930,7 +1930,7 @@ function build3DExtrusionData2(shape3d, scene3d, fillColor, elementWidth, elemen
|
|
|
1930
1930
|
);
|
|
1931
1931
|
}
|
|
1932
1932
|
function apply3dEffects2(base, scene3d, shape3d, fillColorFallback) {
|
|
1933
|
-
|
|
1933
|
+
chunkBQJU7ZG6_js.apply3dEffects(base, scene3d, shape3d, fillColorFallback);
|
|
1934
1934
|
}
|
|
1935
1935
|
|
|
1936
1936
|
// src/viewer/utils/shape-visual-style.ts
|
|
@@ -1938,13 +1938,13 @@ function rendersCustomVectorPath(element) {
|
|
|
1938
1938
|
return (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;
|
|
1939
1939
|
}
|
|
1940
1940
|
function getShapeVisualStyle(element, _hasFill, fillColor, _strokeWidth, _strokeColor, animatesFill, animatesStroke, parentGroupFill) {
|
|
1941
|
-
if (!
|
|
1941
|
+
if (!chunkBQJU7ZG6_js.hasShapeProperties(element)) {
|
|
1942
1942
|
return {};
|
|
1943
1943
|
}
|
|
1944
1944
|
const ss = element.shapeStyle;
|
|
1945
|
-
const fill = animatesFill ? void 0 :
|
|
1946
|
-
const fx =
|
|
1947
|
-
const stroke =
|
|
1945
|
+
const fill = animatesFill ? void 0 : chunkBQJU7ZG6_js.getComputedFillStyle(element, parentGroupFill);
|
|
1946
|
+
const fx = chunkBQJU7ZG6_js.getComputedEffectStyle(element);
|
|
1947
|
+
const stroke = chunkBQJU7ZG6_js.getComputedStrokeStyle(element);
|
|
1948
1948
|
const base = {
|
|
1949
1949
|
// A gradient fill REPLACES the solid fill, it does not sit on top of it;
|
|
1950
1950
|
// the whole precedence lives in shared's `getComputedFillStyle`.
|
|
@@ -1979,7 +1979,7 @@ function getShapeVisualStyle(element, _hasFill, fillColor, _strokeWidth, _stroke
|
|
|
1979
1979
|
strokeLinecap: stroke.strokeLinecap
|
|
1980
1980
|
};
|
|
1981
1981
|
apply3dEffects2(base, ss?.scene3d, ss?.shape3d, ss?.fillColor ?? fillColor);
|
|
1982
|
-
if (rendersCustomVectorPath(element) ||
|
|
1982
|
+
if (rendersCustomVectorPath(element) || chunkBQJU7ZG6_js.isStrokeOnlyPresetElement(element)) {
|
|
1983
1983
|
base.backgroundColor = "transparent";
|
|
1984
1984
|
base.backgroundImage = void 0;
|
|
1985
1985
|
base.borderWidth = void 0;
|
|
@@ -1990,7 +1990,7 @@ function getShapeVisualStyle(element, _hasFill, fillColor, _strokeWidth, _stroke
|
|
|
1990
1990
|
base.backgroundColor = void 0;
|
|
1991
1991
|
base.backgroundImage = void 0;
|
|
1992
1992
|
}
|
|
1993
|
-
const geometry =
|
|
1993
|
+
const geometry = chunkBQJU7ZG6_js.resolveShapeGeometry(element);
|
|
1994
1994
|
switch (geometry.kind) {
|
|
1995
1995
|
case "bare":
|
|
1996
1996
|
return { backgroundColor: "transparent", borderWidth: 0, borderStyle: "none" };
|
|
@@ -2016,13 +2016,13 @@ function getShapeVisualStyle(element, _hasFill, fillColor, _strokeWidth, _stroke
|
|
|
2016
2016
|
function getConnectorAdjustment(element, key, fallback) {
|
|
2017
2017
|
const direct = element.shapeAdjustments?.[key];
|
|
2018
2018
|
if (typeof direct === "number" && Number.isFinite(direct)) {
|
|
2019
|
-
return
|
|
2019
|
+
return chunkBQJU7ZG6_js.clampUnitInterval(direct / 1e5);
|
|
2020
2020
|
}
|
|
2021
2021
|
const fallbackKey = element.shapeAdjustments?.adj;
|
|
2022
2022
|
if (typeof fallbackKey === "number" && Number.isFinite(fallbackKey)) {
|
|
2023
|
-
return
|
|
2023
|
+
return chunkBQJU7ZG6_js.clampUnitInterval(fallbackKey / 1e5);
|
|
2024
2024
|
}
|
|
2025
|
-
return
|
|
2025
|
+
return chunkBQJU7ZG6_js.clampUnitInterval(fallback);
|
|
2026
2026
|
}
|
|
2027
2027
|
function getConnectorPathGeometry(element) {
|
|
2028
2028
|
const width = Math.max(element.width, 0);
|
|
@@ -2155,7 +2155,7 @@ function toHexByte(value) {
|
|
|
2155
2155
|
return clamped.toString(16).padStart(2, "0");
|
|
2156
2156
|
}
|
|
2157
2157
|
function shiftHex(hex, factor, towardsWhite) {
|
|
2158
|
-
const channels =
|
|
2158
|
+
const channels = chunkBQJU7ZG6_js.hexToRgbChannels(hex);
|
|
2159
2159
|
if (!channels) {
|
|
2160
2160
|
return hex;
|
|
2161
2161
|
}
|
|
@@ -2181,7 +2181,7 @@ function buildCustomSubpathPaints(subpaths, hasFill, fillColor, fillOpacity) {
|
|
|
2181
2181
|
const fillOff = subpath.fillMode === "none" || !hasFill;
|
|
2182
2182
|
return {
|
|
2183
2183
|
d: subpath.d,
|
|
2184
|
-
fill: fillOff ? "none" :
|
|
2184
|
+
fill: fillOff ? "none" : chunkBQJU7ZG6_js.colorWithOpacity(adjustFillForMode(fillColor, subpath.fillMode), fillOpacity),
|
|
2185
2185
|
stroked: subpath.stroke !== false
|
|
2186
2186
|
};
|
|
2187
2187
|
});
|
|
@@ -2197,11 +2197,11 @@ function strokeContext(shapeStyle, strokePaint, strokeWidth, dashArray) {
|
|
|
2197
2197
|
strokePaint,
|
|
2198
2198
|
strokeWidth,
|
|
2199
2199
|
dashArray,
|
|
2200
|
-
lineCap:
|
|
2200
|
+
lineCap: chunkBQJU7ZG6_js.svgLineCap(shapeStyle?.lineCap),
|
|
2201
2201
|
lineJoin,
|
|
2202
2202
|
miterLimit,
|
|
2203
|
-
offsets:
|
|
2204
|
-
widths:
|
|
2203
|
+
offsets: chunkBQJU7ZG6_js.getCompoundLineOffsets(shapeStyle?.compoundLine, strokeWidth),
|
|
2204
|
+
widths: chunkBQJU7ZG6_js.getCompoundLineWidths(shapeStyle?.compoundLine, strokeWidth)
|
|
2205
2205
|
};
|
|
2206
2206
|
}
|
|
2207
2207
|
function strokeStrands(d, keyBase, ctx) {
|
|
@@ -2249,9 +2249,9 @@ function gradientDefs(gradient) {
|
|
|
2249
2249
|
}
|
|
2250
2250
|
function renderCustomGeometryVector(pathData, pathWidth, pathHeight, structuredPaths, shapeStyle, hasFill, fillColor, fillOpacity, strokePaint, strokeWidth, dashArray, animatesFill = false, gradient) {
|
|
2251
2251
|
const ctx = strokeContext(shapeStyle, strokePaint, strokeWidth, dashArray);
|
|
2252
|
-
const subpaths = structuredPaths && structuredPaths.length > 0 ?
|
|
2252
|
+
const subpaths = structuredPaths && structuredPaths.length > 0 ? chunkBQJU7ZG6_js.customGeometryPathsToSvgSubpaths(structuredPaths, pathWidth, pathHeight) : void 0;
|
|
2253
2253
|
const needsPerSubpath = subpaths !== void 0 && subpaths.some((sp) => sp.fillMode && sp.fillMode !== "norm" || sp.stroke === false);
|
|
2254
|
-
const gradientPaint = gradient ?
|
|
2254
|
+
const gradientPaint = gradient ? chunkBQJU7ZG6_js.svgGradientFillRef(gradient) : void 0;
|
|
2255
2255
|
const nodes = [];
|
|
2256
2256
|
if (subpaths && needsPerSubpath) {
|
|
2257
2257
|
const paints = buildCustomSubpathPaints(subpaths, hasFill, fillColor, fillOpacity);
|
|
@@ -2283,7 +2283,7 @@ function renderCustomGeometryVector(pathData, pathWidth, pathHeight, structuredP
|
|
|
2283
2283
|
"path",
|
|
2284
2284
|
{
|
|
2285
2285
|
d: pathData,
|
|
2286
|
-
fill: animatesFill ? "inherit" : gradientPaint ??
|
|
2286
|
+
fill: animatesFill ? "inherit" : gradientPaint ?? chunkBQJU7ZG6_js.colorWithOpacity(fillColor, fillOpacity),
|
|
2287
2287
|
stroke: "none",
|
|
2288
2288
|
vectorEffect: "non-scaling-stroke"
|
|
2289
2289
|
},
|
|
@@ -2309,14 +2309,14 @@ function renderCustomGeometryVector(pathData, pathWidth, pathHeight, structuredP
|
|
|
2309
2309
|
);
|
|
2310
2310
|
}
|
|
2311
2311
|
function renderVectorShape(element, hasFill, fillColor, strokeWidth, strokeColor, animatesFill, animatesStroke) {
|
|
2312
|
-
if (!
|
|
2312
|
+
if (!chunkBQJU7ZG6_js.hasShapeProperties(element)) {
|
|
2313
2313
|
return null;
|
|
2314
2314
|
}
|
|
2315
2315
|
const normalizedType = (element.shapeType || "").toLowerCase();
|
|
2316
|
-
const fillPaint = animatesFill ? "inherit" :
|
|
2317
|
-
const strokePaint = animatesStroke ? "inherit" :
|
|
2318
|
-
const dashType =
|
|
2319
|
-
const dashArray =
|
|
2316
|
+
const fillPaint = animatesFill ? "inherit" : chunkBQJU7ZG6_js.colorWithOpacity(fillColor, element.shapeStyle?.fillOpacity);
|
|
2317
|
+
const strokePaint = animatesStroke ? "inherit" : chunkBQJU7ZG6_js.colorWithOpacity(strokeColor, element.shapeStyle?.strokeOpacity);
|
|
2318
|
+
const dashType = chunkBQJU7ZG6_js.normalizeStrokeDashType(element.shapeStyle?.strokeDash);
|
|
2319
|
+
const dashArray = chunkBQJU7ZG6_js.getSvgStrokeDasharray(
|
|
2320
2320
|
dashType,
|
|
2321
2321
|
Math.max(strokeWidth, 1),
|
|
2322
2322
|
element.shapeStyle?.customDashSegments
|
|
@@ -2397,21 +2397,21 @@ function renderVectorShape(element, hasFill, fillColor, strokeWidth, strokeColor
|
|
|
2397
2397
|
// container's `background-image` is suppressed for custom geometry, so
|
|
2398
2398
|
// without this the shape fell back to the parser's representative solid
|
|
2399
2399
|
// and lost every fade (issue #132).
|
|
2400
|
-
|
|
2400
|
+
chunkBQJU7ZG6_js.buildSvgGradientDef(element.shapeStyle, element.id)
|
|
2401
2401
|
);
|
|
2402
2402
|
}
|
|
2403
|
-
if (
|
|
2403
|
+
if (chunkBQJU7ZG6_js.isCalloutShape(normalizedType)) {
|
|
2404
2404
|
const width = Math.max(element.width, 1);
|
|
2405
2405
|
const height = Math.max(element.height, 1);
|
|
2406
|
-
const geometry =
|
|
2406
|
+
const geometry = chunkBQJU7ZG6_js.getCalloutLeaderLineGeometry(
|
|
2407
2407
|
normalizedType,
|
|
2408
2408
|
width,
|
|
2409
2409
|
height,
|
|
2410
2410
|
element.shapeAdjustments
|
|
2411
2411
|
);
|
|
2412
2412
|
if (geometry && geometry.points.length >= 2) {
|
|
2413
|
-
const leaderPath =
|
|
2414
|
-
const bounds =
|
|
2413
|
+
const leaderPath = chunkBQJU7ZG6_js.buildCalloutLeaderLineSvgPath(geometry);
|
|
2414
|
+
const bounds = chunkBQJU7ZG6_js.getCalloutViewBoxBounds(width, height, geometry);
|
|
2415
2415
|
const lineStroke = Math.max(strokeWidth, 1);
|
|
2416
2416
|
const offsetLeft = bounds.minX;
|
|
2417
2417
|
const offsetTop = bounds.minY;
|
|
@@ -2474,10 +2474,10 @@ function renderVectorShape(element, hasFill, fillColor, strokeWidth, strokeColor
|
|
|
2474
2474
|
const endArrowW = element.shapeStyle?.connectorEndArrowWidth;
|
|
2475
2475
|
const endArrowL = element.shapeStyle?.connectorEndArrowLength;
|
|
2476
2476
|
const compoundLine = element.shapeStyle?.compoundLine;
|
|
2477
|
-
const connectorLineCap =
|
|
2477
|
+
const connectorLineCap = chunkBQJU7ZG6_js.svgLineCap(element.shapeStyle?.lineCap);
|
|
2478
2478
|
const hitTargetWidth = Math.max(strokeWidth * 3, 12);
|
|
2479
|
-
const offsets =
|
|
2480
|
-
const widths =
|
|
2479
|
+
const offsets = chunkBQJU7ZG6_js.getCompoundLineOffsets(compoundLine, strokeWidth);
|
|
2480
|
+
const widths = chunkBQJU7ZG6_js.getCompoundLineWidths(compoundLine, strokeWidth);
|
|
2481
2481
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2482
2482
|
"svg",
|
|
2483
2483
|
{
|
|
@@ -2544,15 +2544,15 @@ function parseGradientFillCss(gradFill) {
|
|
|
2544
2544
|
}
|
|
2545
2545
|
const parsed = stops.map((gs) => {
|
|
2546
2546
|
const pos = Number.parseInt(String(gs["@_pos"] || "0"), 10) / 1e3;
|
|
2547
|
-
const color =
|
|
2548
|
-
const opacity =
|
|
2549
|
-
return { pos, color:
|
|
2547
|
+
const color = chunkBQJU7ZG6_js.parseDrawingColor(gs) ?? "#888888";
|
|
2548
|
+
const opacity = chunkBQJU7ZG6_js.parseDrawingColorOpacity(gs);
|
|
2549
|
+
return { pos, color: chunkBQJU7ZG6_js.colorWithOpacity(color, opacity) };
|
|
2550
2550
|
}).sort((a, b) => a.pos - b.pos);
|
|
2551
2551
|
const stopStrings = parsed.map((s) => `${s.color} ${s.pos.toFixed(1)}%`).join(", ");
|
|
2552
2552
|
const lin = gradFill["a:lin"];
|
|
2553
2553
|
if (lin) {
|
|
2554
2554
|
const angRaw = Number.parseInt(String(lin["@_ang"] || "0"), 10);
|
|
2555
|
-
const angleDeg = Math.round(
|
|
2555
|
+
const angleDeg = Math.round(chunkBQJU7ZG6_js.ooxmlGradientAngleToCssDegrees(angRaw / 6e4));
|
|
2556
2556
|
return `linear-gradient(${angleDeg}deg, ${stopStrings})`;
|
|
2557
2557
|
}
|
|
2558
2558
|
const path = gradFill["a:path"];
|
|
@@ -2587,8 +2587,8 @@ function parsePatternFillCss(pattFill) {
|
|
|
2587
2587
|
if (!pattFill) {
|
|
2588
2588
|
return void 0;
|
|
2589
2589
|
}
|
|
2590
|
-
const fgColor =
|
|
2591
|
-
const bgColor =
|
|
2590
|
+
const fgColor = chunkBQJU7ZG6_js.parseDrawingColor(pattFill["a:fgClr"]) ?? "#000000";
|
|
2591
|
+
const bgColor = chunkBQJU7ZG6_js.parseDrawingColor(pattFill["a:bgClr"]) ?? "#ffffff";
|
|
2592
2592
|
const preset = String(pattFill["@_prst"] || "ltDnDiag");
|
|
2593
2593
|
switch (preset) {
|
|
2594
2594
|
case "ltHorz":
|
|
@@ -2699,11 +2699,11 @@ function parseCellBorders(cellProperties) {
|
|
|
2699
2699
|
const prstDash = ln["a:prstDash"];
|
|
2700
2700
|
const dashVal = prstDash ? String(prstDash["@_val"] || "") : void 0;
|
|
2701
2701
|
const cssBorderStyle = ooxmlDashToCss(dashVal);
|
|
2702
|
-
const color =
|
|
2702
|
+
const color = chunkBQJU7ZG6_js.parseDrawingColor(ln["a:solidFill"]);
|
|
2703
2703
|
if (color) {
|
|
2704
|
-
const opacity =
|
|
2704
|
+
const opacity = chunkBQJU7ZG6_js.parseDrawingColorOpacity(ln["a:solidFill"]);
|
|
2705
2705
|
const key = `${edge.prefix}`;
|
|
2706
|
-
borderStyle[key] = `${widthPx}px ${cssBorderStyle} ${
|
|
2706
|
+
borderStyle[key] = `${widthPx}px ${cssBorderStyle} ${chunkBQJU7ZG6_js.colorWithOpacity(color, opacity)}`;
|
|
2707
2707
|
}
|
|
2708
2708
|
}
|
|
2709
2709
|
return borderStyle;
|
|
@@ -2716,7 +2716,7 @@ function parseCellTextEffects(runProps) {
|
|
|
2716
2716
|
const textShadowParts = [];
|
|
2717
2717
|
const outerShdw = effectLst["a:outerShdw"];
|
|
2718
2718
|
if (outerShdw) {
|
|
2719
|
-
const shdwColor =
|
|
2719
|
+
const shdwColor = chunkBQJU7ZG6_js.parseDrawingColor(outerShdw);
|
|
2720
2720
|
if (shdwColor) {
|
|
2721
2721
|
const blurRad = Number.parseInt(String(outerShdw["@_blurRad"] || "0"), 10);
|
|
2722
2722
|
const blurPx = blurRad > 0 ? Math.round(blurRad / 12700) : 0;
|
|
@@ -2734,7 +2734,7 @@ function parseCellTextEffects(runProps) {
|
|
|
2734
2734
|
}
|
|
2735
2735
|
const glow = effectLst["a:glow"];
|
|
2736
2736
|
if (glow) {
|
|
2737
|
-
const glowColor =
|
|
2737
|
+
const glowColor = chunkBQJU7ZG6_js.parseDrawingColor(glow);
|
|
2738
2738
|
if (glowColor) {
|
|
2739
2739
|
const glowRad = Number.parseInt(String(glow["@_rad"] || "0"), 10);
|
|
2740
2740
|
const glowPx = glowRad > 0 ? Math.round(glowRad / 12700) : 2;
|
|
@@ -2814,10 +2814,10 @@ function extractTableCellStyle(cellXml, fallbackStyle, schemeColorOverrides) {
|
|
|
2814
2814
|
if (runProps?.["@_u"] !== void 0) {
|
|
2815
2815
|
cellStyle.textDecorationLine = runProps["@_u"] === "sng" ? "underline" : "none";
|
|
2816
2816
|
}
|
|
2817
|
-
const runColor =
|
|
2817
|
+
const runColor = chunkBQJU7ZG6_js.parseDrawingColor(runProps?.["a:solidFill"], schemeColorOverrides) || chunkBQJU7ZG6_js.parseDrawingColor(runProps?.["a:highlight"], schemeColorOverrides);
|
|
2818
2818
|
if (runColor) {
|
|
2819
|
-
const opacity =
|
|
2820
|
-
cellStyle.color =
|
|
2819
|
+
const opacity = chunkBQJU7ZG6_js.parseDrawingColorOpacity(runProps?.["a:solidFill"]);
|
|
2820
|
+
cellStyle.color = chunkBQJU7ZG6_js.colorWithOpacity(runColor, opacity);
|
|
2821
2821
|
}
|
|
2822
2822
|
const fontFamily = runProps?.["a:latin"]?.["@_typeface"] || runProps?.["a:ea"]?.["@_typeface"] || runProps?.["a:cs"]?.["@_typeface"];
|
|
2823
2823
|
if (fontFamily) {
|
|
@@ -2827,15 +2827,15 @@ function extractTableCellStyle(cellXml, fallbackStyle, schemeColorOverrides) {
|
|
|
2827
2827
|
cellStyle.textAlign = parseParagraphAlignment(paragraphProperties["@_algn"]);
|
|
2828
2828
|
}
|
|
2829
2829
|
const cellProperties = cellXml["a:tcPr"];
|
|
2830
|
-
const cellFill =
|
|
2830
|
+
const cellFill = chunkBQJU7ZG6_js.parseDrawingColor(
|
|
2831
2831
|
cellProperties?.["a:solidFill"],
|
|
2832
2832
|
schemeColorOverrides
|
|
2833
2833
|
);
|
|
2834
2834
|
if (cellFill) {
|
|
2835
|
-
const opacity =
|
|
2835
|
+
const opacity = chunkBQJU7ZG6_js.parseDrawingColorOpacity(
|
|
2836
2836
|
cellProperties?.["a:solidFill"]
|
|
2837
2837
|
);
|
|
2838
|
-
cellStyle.backgroundColor =
|
|
2838
|
+
cellStyle.backgroundColor = chunkBQJU7ZG6_js.colorWithOpacity(cellFill, opacity);
|
|
2839
2839
|
} else {
|
|
2840
2840
|
const gradCss = parseGradientFillCss(cellProperties?.["a:gradFill"]);
|
|
2841
2841
|
if (gradCss) {
|
|
@@ -2850,16 +2850,16 @@ function extractTableCellStyle(cellXml, fallbackStyle, schemeColorOverrides) {
|
|
|
2850
2850
|
const edgeBorders = parseCellBorders(cellProperties);
|
|
2851
2851
|
Object.assign(cellStyle, edgeBorders);
|
|
2852
2852
|
if (!cellStyle.borderLeftColor && !cellStyle.borderRightColor && !cellStyle.borderTopColor && !cellStyle.borderBottomColor) {
|
|
2853
|
-
const borderColor =
|
|
2853
|
+
const borderColor = chunkBQJU7ZG6_js.parseDrawingColor(
|
|
2854
2854
|
cellProperties?.["a:lnL"]?.["a:solidFill"],
|
|
2855
2855
|
schemeColorOverrides
|
|
2856
|
-
) ||
|
|
2856
|
+
) || chunkBQJU7ZG6_js.parseDrawingColor(
|
|
2857
2857
|
cellProperties?.["a:lnR"]?.["a:solidFill"],
|
|
2858
2858
|
schemeColorOverrides
|
|
2859
|
-
) ||
|
|
2859
|
+
) || chunkBQJU7ZG6_js.parseDrawingColor(
|
|
2860
2860
|
cellProperties?.["a:lnT"]?.["a:solidFill"],
|
|
2861
2861
|
schemeColorOverrides
|
|
2862
|
-
) ||
|
|
2862
|
+
) || chunkBQJU7ZG6_js.parseDrawingColor(
|
|
2863
2863
|
cellProperties?.["a:lnB"]?.["a:solidFill"],
|
|
2864
2864
|
schemeColorOverrides
|
|
2865
2865
|
);
|
|
@@ -2931,7 +2931,7 @@ function getTableCellBandStyle2(element, rowIndex, cellIndex, rowCount, columnCo
|
|
|
2931
2931
|
if (element.type !== "table") {
|
|
2932
2932
|
return void 0;
|
|
2933
2933
|
}
|
|
2934
|
-
return
|
|
2934
|
+
return chunkBQJU7ZG6_js.getTableCellBandStyle(element.tableData, rowIndex, cellIndex, rowCount, columnCount, {
|
|
2935
2935
|
tableStyleMap: styleCtx?.tableStyleMap,
|
|
2936
2936
|
colorScheme: styleCtx?.theme?.colorScheme,
|
|
2937
2937
|
fontScheme: styleCtx?.theme?.fontScheme
|
|
@@ -3007,7 +3007,7 @@ function renderTableCellContent(cell, fallbackText) {
|
|
|
3007
3007
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
3008
3008
|
"span",
|
|
3009
3009
|
{
|
|
3010
|
-
style: { position: "relative", ...
|
|
3010
|
+
style: { position: "relative", ...chunkBQJU7ZG6_js.cellRunStyle(run) },
|
|
3011
3011
|
children: run.text
|
|
3012
3012
|
},
|
|
3013
3013
|
`r-${index}`
|
|
@@ -3015,7 +3015,7 @@ function renderTableCellContent(cell, fallbackText) {
|
|
|
3015
3015
|
});
|
|
3016
3016
|
}
|
|
3017
3017
|
function getCellDiagonalBorders2(style, tableData, pos, styleCtx) {
|
|
3018
|
-
return
|
|
3018
|
+
return chunkBQJU7ZG6_js.getCellDiagonalBorders(style, tableData, pos, {
|
|
3019
3019
|
tableStyleMap: styleCtx?.tableStyleMap,
|
|
3020
3020
|
colorScheme: styleCtx?.theme?.colorScheme,
|
|
3021
3021
|
fontScheme: styleCtx?.theme?.fontScheme
|
|
@@ -3148,7 +3148,7 @@ function TableResizeOverlay({
|
|
|
3148
3148
|
const containerRef = React6.useRef(null);
|
|
3149
3149
|
const [rowBounds, setRowBounds] = React6.useState([]);
|
|
3150
3150
|
const dragRef = React6.useRef(null);
|
|
3151
|
-
const colBoundaries = React6.useMemo(() =>
|
|
3151
|
+
const colBoundaries = React6.useMemo(() => chunkBQJU7ZG6_js.computeColumnBoundaries(columnWidths), [columnWidths]);
|
|
3152
3152
|
const measureRows = React6.useCallback(() => {
|
|
3153
3153
|
const container = containerRef.current;
|
|
3154
3154
|
if (!container) {
|
|
@@ -3195,11 +3195,11 @@ function TableResizeOverlay({
|
|
|
3195
3195
|
const rect = containerRef.current.getBoundingClientRect();
|
|
3196
3196
|
if (drag.type === "col" && drag.initialWidths && onResizeColumns) {
|
|
3197
3197
|
const deltaProp = (e.clientX - drag.startPos) / rect.width;
|
|
3198
|
-
onResizeColumns(
|
|
3198
|
+
onResizeColumns(chunkBQJU7ZG6_js.computeResizedColumnWidths(drag.initialWidths, drag.index, deltaProp));
|
|
3199
3199
|
} else if (drag.type === "row" && onResizeRow) {
|
|
3200
3200
|
const deltaY = e.clientY - drag.startPos;
|
|
3201
|
-
const newHeight =
|
|
3202
|
-
drag.initialRowHeight ??
|
|
3201
|
+
const newHeight = chunkBQJU7ZG6_js.computeResizedRowHeight(
|
|
3202
|
+
drag.initialRowHeight ?? chunkBQJU7ZG6_js.DEFAULT_ROW_HEIGHT,
|
|
3203
3203
|
deltaY
|
|
3204
3204
|
);
|
|
3205
3205
|
onResizeRow(drag.index, newHeight);
|
|
@@ -3237,7 +3237,7 @@ function TableResizeOverlay({
|
|
|
3237
3237
|
e.stopPropagation();
|
|
3238
3238
|
const table = containerRef.current?.querySelector("table");
|
|
3239
3239
|
const tr = table?.querySelectorAll("tbody > tr")[index];
|
|
3240
|
-
const actualHeight = tr?.offsetHeight ??
|
|
3240
|
+
const actualHeight = tr?.offsetHeight ?? chunkBQJU7ZG6_js.DEFAULT_ROW_HEIGHT;
|
|
3241
3241
|
document.body.style.cursor = "row-resize";
|
|
3242
3242
|
document.body.style.userSelect = "none";
|
|
3243
3243
|
dragRef.current = {
|
|
@@ -3284,7 +3284,7 @@ function renderTableFromTableData(element, textStyle, options) {
|
|
|
3284
3284
|
colorScheme: options?.styleCtx?.theme?.colorScheme,
|
|
3285
3285
|
fontScheme: options?.styleCtx?.theme?.fontScheme
|
|
3286
3286
|
};
|
|
3287
|
-
const cellCss = (cell, rowIndex, cellIndex) =>
|
|
3287
|
+
const cellCss = (cell, rowIndex, cellIndex) => chunkBQJU7ZG6_js.tableCellCss(
|
|
3288
3288
|
tableData,
|
|
3289
3289
|
cell,
|
|
3290
3290
|
{ rowIndex, cellIndex, rowCount, columnCount },
|
|
@@ -3297,7 +3297,7 @@ function renderTableFromTableData(element, textStyle, options) {
|
|
|
3297
3297
|
}
|
|
3298
3298
|
const first = selectedCell.selectedCells[0];
|
|
3299
3299
|
const last = selectedCell.selectedCells[selectedCell.selectedCells.length - 1];
|
|
3300
|
-
return
|
|
3300
|
+
return chunkBQJU7ZG6_js.computeSelectionRect(first.row, first.col, last.row, last.col, tableData);
|
|
3301
3301
|
})();
|
|
3302
3302
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
3303
3303
|
TableResizeOverlay,
|
|
@@ -3318,9 +3318,9 @@ function renderTableFromTableData(element, textStyle, options) {
|
|
|
3318
3318
|
{
|
|
3319
3319
|
className: "w-full h-full border-collapse table-fixed",
|
|
3320
3320
|
style: {
|
|
3321
|
-
fontFamily:
|
|
3321
|
+
fontFamily: chunkBQJU7ZG6_js.DEFAULT_FONT_FAMILY,
|
|
3322
3322
|
// `a:tblPr@rtl` mirrors the column order for RTL decks.
|
|
3323
|
-
...
|
|
3323
|
+
...chunkBQJU7ZG6_js.tableContainerCss(tableData)
|
|
3324
3324
|
},
|
|
3325
3325
|
children: [
|
|
3326
3326
|
tableData.columnWidths.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("colgroup", { children: tableData.columnWidths.map((w, ci) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -3339,7 +3339,7 @@ function renderTableFromTableData(element, textStyle, options) {
|
|
|
3339
3339
|
return null;
|
|
3340
3340
|
}
|
|
3341
3341
|
const isCellSelected = selectedCell?.rowIndex === rowIndex && selectedCell?.columnIndex === cellIndex;
|
|
3342
|
-
const isInMultiSelection =
|
|
3342
|
+
const isInMultiSelection = chunkBQJU7ZG6_js.isCellInRect(rowIndex, cellIndex, selectionRect);
|
|
3343
3343
|
const isCellEditing = isCellSelected && selectedCell?.isEditing;
|
|
3344
3344
|
const diag = getCellDiagonalBorders2(
|
|
3345
3345
|
cell.style,
|
|
@@ -3368,7 +3368,7 @@ function renderTableFromTableData(element, textStyle, options) {
|
|
|
3368
3368
|
}
|
|
3369
3369
|
event.stopPropagation();
|
|
3370
3370
|
if (event.shiftKey && selectedCell) {
|
|
3371
|
-
const rect =
|
|
3371
|
+
const rect = chunkBQJU7ZG6_js.computeSelectionRect(
|
|
3372
3372
|
selectedCell.rowIndex,
|
|
3373
3373
|
selectedCell.columnIndex,
|
|
3374
3374
|
rowIndex,
|
|
@@ -3378,7 +3378,7 @@ function renderTableFromTableData(element, textStyle, options) {
|
|
|
3378
3378
|
options?.onSelectCell?.({
|
|
3379
3379
|
rowIndex: selectedCell.rowIndex,
|
|
3380
3380
|
columnIndex: selectedCell.columnIndex,
|
|
3381
|
-
selectedCells:
|
|
3381
|
+
selectedCells: chunkBQJU7ZG6_js.rectToCells(rect)
|
|
3382
3382
|
});
|
|
3383
3383
|
} else {
|
|
3384
3384
|
options?.onSelectCell?.({
|
|
@@ -3454,7 +3454,7 @@ function renderTableElement(element, textStyle, options) {
|
|
|
3454
3454
|
}
|
|
3455
3455
|
const first = selectedCell.selectedCells[0];
|
|
3456
3456
|
const last = selectedCell.selectedCells[selectedCell.selectedCells.length - 1];
|
|
3457
|
-
return
|
|
3457
|
+
return chunkBQJU7ZG6_js.computeSelectionRect(first.row, first.col, last.row, last.col, tableEl.tableData);
|
|
3458
3458
|
})();
|
|
3459
3459
|
const schemeOverrides = options?.styleCtx?.theme?.colorScheme ? options.styleCtx.theme.colorScheme : void 0;
|
|
3460
3460
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -3476,9 +3476,9 @@ function renderTableElement(element, textStyle, options) {
|
|
|
3476
3476
|
{
|
|
3477
3477
|
className: "w-full h-full border-collapse table-fixed",
|
|
3478
3478
|
style: {
|
|
3479
|
-
fontFamily:
|
|
3479
|
+
fontFamily: chunkBQJU7ZG6_js.DEFAULT_FONT_FAMILY,
|
|
3480
3480
|
// `a:tblPr@rtl` mirrors the column order for RTL decks.
|
|
3481
|
-
...
|
|
3481
|
+
...chunkBQJU7ZG6_js.tableContainerCss(tableEl.tableData)
|
|
3482
3482
|
},
|
|
3483
3483
|
children: [
|
|
3484
3484
|
parsedTable.columnPercentages.length > 0 ? /* @__PURE__ */ jsxRuntime.jsx("colgroup", { children: parsedTable.columnPercentages.map((percentage, columnIndex) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -3535,7 +3535,7 @@ function renderTableElement(element, textStyle, options) {
|
|
|
3535
3535
|
color: textStyle.color,
|
|
3536
3536
|
...bandStyle,
|
|
3537
3537
|
...xmlCellStyle,
|
|
3538
|
-
...tdCellOverride ?
|
|
3538
|
+
...tdCellOverride ? chunkBQJU7ZG6_js.cellStyleToCss(tdCellOverride) : void 0,
|
|
3539
3539
|
...diag ? { position: "relative" } : void 0
|
|
3540
3540
|
};
|
|
3541
3541
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -3545,7 +3545,7 @@ function renderTableElement(element, textStyle, options) {
|
|
|
3545
3545
|
"border px-1 py-0.5 align-top",
|
|
3546
3546
|
isEditable && hasCellSelectionHandler ? "border-blue-200/70 cursor-cell" : "border-white/30",
|
|
3547
3547
|
selectedCell?.rowIndex === rowIndex && selectedCell?.columnIndex === cellIndex ? "ring-1 ring-inset ring-blue-500" : null,
|
|
3548
|
-
|
|
3548
|
+
chunkBQJU7ZG6_js.isCellInRect(rowIndex, cellIndex, xmlSelectionRect) && !(selectedCell?.rowIndex === rowIndex && selectedCell?.columnIndex === cellIndex) ? "bg-blue-500/15 ring-1 ring-inset ring-blue-400/50" : null
|
|
3549
3549
|
),
|
|
3550
3550
|
colSpan,
|
|
3551
3551
|
rowSpan: rSpan,
|
|
@@ -3556,7 +3556,7 @@ function renderTableElement(element, textStyle, options) {
|
|
|
3556
3556
|
}
|
|
3557
3557
|
event.stopPropagation();
|
|
3558
3558
|
if (event.shiftKey && selectedCell && tableEl.tableData) {
|
|
3559
|
-
const rect =
|
|
3559
|
+
const rect = chunkBQJU7ZG6_js.computeSelectionRect(
|
|
3560
3560
|
selectedCell.rowIndex,
|
|
3561
3561
|
selectedCell.columnIndex,
|
|
3562
3562
|
rowIndex,
|
|
@@ -3566,7 +3566,7 @@ function renderTableElement(element, textStyle, options) {
|
|
|
3566
3566
|
options?.onSelectCell?.({
|
|
3567
3567
|
rowIndex: selectedCell.rowIndex,
|
|
3568
3568
|
columnIndex: selectedCell.columnIndex,
|
|
3569
|
-
selectedCells:
|
|
3569
|
+
selectedCells: chunkBQJU7ZG6_js.rectToCells(rect)
|
|
3570
3570
|
});
|
|
3571
3571
|
} else {
|
|
3572
3572
|
options?.onSelectCell?.({
|
|
@@ -3625,23 +3625,23 @@ function renderTableElement(element, textStyle, options) {
|
|
|
3625
3625
|
);
|
|
3626
3626
|
}
|
|
3627
3627
|
function partAttrs(part) {
|
|
3628
|
-
return part ?
|
|
3628
|
+
return part ? chunkBQJU7ZG6_js.chartPartToAttrs(part) : void 0;
|
|
3629
3629
|
}
|
|
3630
3630
|
function resolveReactPalette(chartData) {
|
|
3631
3631
|
if (chartData.colorPalette && chartData.colorPalette.length > 0) {
|
|
3632
3632
|
return chartData.colorPalette;
|
|
3633
3633
|
}
|
|
3634
|
-
return [...
|
|
3634
|
+
return [...chunkBQJU7ZG6_js.getChartStylePalette(chartData.style?.styleId)];
|
|
3635
3635
|
}
|
|
3636
3636
|
function buildReactChartViewModel(element) {
|
|
3637
3637
|
if (element.type !== "chart" || !element.chartData) {
|
|
3638
|
-
return
|
|
3638
|
+
return chunkBQJU7ZG6_js.buildChartViewModel(element);
|
|
3639
3639
|
}
|
|
3640
3640
|
const palette = resolveReactPalette(element.chartData), themedElement = {
|
|
3641
3641
|
...element,
|
|
3642
3642
|
chartData: { ...element.chartData, colorPalette: palette }
|
|
3643
3643
|
};
|
|
3644
|
-
return
|
|
3644
|
+
return chunkBQJU7ZG6_js.buildChartViewModel(themedElement);
|
|
3645
3645
|
}
|
|
3646
3646
|
function renderPrimitive(prim, key) {
|
|
3647
3647
|
switch (prim.kind) {
|
|
@@ -3788,7 +3788,7 @@ function renderText(t, key) {
|
|
|
3788
3788
|
);
|
|
3789
3789
|
}
|
|
3790
3790
|
function renderChartViewModel(elementId, vm, preserveAspectRatio = "none") {
|
|
3791
|
-
const legendItems =
|
|
3791
|
+
const legendItems = chunkBQJU7ZG6_js.computeChartLegendLayout(vm);
|
|
3792
3792
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
3793
3793
|
"svg",
|
|
3794
3794
|
{
|
|
@@ -3875,11 +3875,11 @@ function renderChartElement(element) {
|
|
|
3875
3875
|
if (!chartData || chartData.series.length === 0) {
|
|
3876
3876
|
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children: chunk6CPUGAK7_js.translationsEn["pptx.chart.heading"] });
|
|
3877
3877
|
}
|
|
3878
|
-
const kind =
|
|
3878
|
+
const kind = chunkBQJU7ZG6_js.resolveChartKind(chartData.chartType ?? "bar");
|
|
3879
3879
|
return renderChartViewModel(
|
|
3880
3880
|
element.id,
|
|
3881
3881
|
buildReactChartViewModel(element),
|
|
3882
|
-
|
|
3882
|
+
chunkBQJU7ZG6_js.chartPreserveAspectRatio(kind)
|
|
3883
3883
|
);
|
|
3884
3884
|
}
|
|
3885
3885
|
|
|
@@ -3899,14 +3899,14 @@ function buildNotesPdf(pages) {
|
|
|
3899
3899
|
notes: page.notes,
|
|
3900
3900
|
slideNumber: page.slideNumber
|
|
3901
3901
|
}));
|
|
3902
|
-
const bytes =
|
|
3902
|
+
const bytes = chunkBQJU7ZG6_js.buildNotesPdfBytes(images, meta);
|
|
3903
3903
|
const blob = new Blob([bytes], { type: "application/pdf" });
|
|
3904
3904
|
return URL.createObjectURL(blob);
|
|
3905
3905
|
}
|
|
3906
3906
|
|
|
3907
3907
|
// src/viewer/utils/pdf-builder-slides.ts
|
|
3908
3908
|
function buildPdfFromImageData(images) {
|
|
3909
|
-
const bytes =
|
|
3909
|
+
const bytes = chunkBQJU7ZG6_js.buildSlidesPdfBytes(images);
|
|
3910
3910
|
const blob = new Blob([bytes], { type: "application/pdf" });
|
|
3911
3911
|
return URL.createObjectURL(blob);
|
|
3912
3912
|
}
|
|
@@ -3915,7 +3915,7 @@ function buildPdfFromImageData(images) {
|
|
|
3915
3915
|
var activePreview = null;
|
|
3916
3916
|
function startPreviewAnimation(elementId, preset, options) {
|
|
3917
3917
|
stopPreviewAnimation();
|
|
3918
|
-
const descriptor =
|
|
3918
|
+
const descriptor = chunkBQJU7ZG6_js.buildPreviewAnimation(preset, options);
|
|
3919
3919
|
if (!descriptor) {
|
|
3920
3920
|
return;
|
|
3921
3921
|
}
|
|
@@ -3928,7 +3928,7 @@ function startMotionPathPreview(elementId, path, options) {
|
|
|
3928
3928
|
return;
|
|
3929
3929
|
}
|
|
3930
3930
|
const stage = domEl.offsetParent;
|
|
3931
|
-
const descriptor =
|
|
3931
|
+
const descriptor = chunkBQJU7ZG6_js.buildMotionPathPreview({
|
|
3932
3932
|
path,
|
|
3933
3933
|
slideWidth: stage?.offsetWidth || DEFAULT_PREVIEW_SLIDE_WIDTH,
|
|
3934
3934
|
slideHeight: stage?.offsetHeight || DEFAULT_PREVIEW_SLIDE_HEIGHT,
|