pptx-react-viewer 3.19.2 → 3.20.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 +10 -0
- package/dist/{AiChatPanel-KILEXOPT.js → AiChatPanel-NBKG2CWE.js} +25 -25
- package/dist/AiChatPanel-NBKG2CWE.js.br +0 -0
- package/dist/AiChatPanel-NBKG2CWE.js.gz +0 -0
- package/dist/{AiChatPanel-ZH52BQBE.mjs → AiChatPanel-OXCJVBUS.mjs} +4 -4
- package/dist/AiChatPanel-OXCJVBUS.mjs.br +0 -0
- package/dist/AiChatPanel-OXCJVBUS.mjs.gz +0 -0
- package/dist/{Area3DChartScene-UHN7ZOZT.mjs → Area3DChartScene-5M3LEY6M.mjs} +1 -1
- package/dist/Area3DChartScene-5M3LEY6M.mjs.br +0 -0
- package/dist/Area3DChartScene-5M3LEY6M.mjs.gz +0 -0
- package/dist/{Area3DChartScene-HS7EBQLQ.js → Area3DChartScene-7QPDPVR6.js} +2 -2
- package/dist/Area3DChartScene-7QPDPVR6.js.br +0 -0
- package/dist/Area3DChartScene-7QPDPVR6.js.gz +0 -0
- package/dist/{Bar3DChartScene-TFGSYASD.mjs → Bar3DChartScene-NNSTLO4V.mjs} +1 -1
- package/dist/Bar3DChartScene-NNSTLO4V.mjs.br +0 -0
- package/dist/Bar3DChartScene-NNSTLO4V.mjs.gz +0 -0
- package/dist/{Bar3DChartScene-E57TRVUU.js → Bar3DChartScene-TAMPS6ZS.js} +2 -2
- package/dist/Bar3DChartScene-TAMPS6ZS.js.br +0 -0
- package/dist/Bar3DChartScene-TAMPS6ZS.js.gz +0 -0
- package/dist/{Line3DChartScene-RES5D7W7.mjs → Line3DChartScene-7S2DD45T.mjs} +1 -1
- package/dist/Line3DChartScene-7S2DD45T.mjs.br +0 -0
- package/dist/Line3DChartScene-7S2DD45T.mjs.gz +0 -0
- package/dist/{Line3DChartScene-NM7YYLZD.js → Line3DChartScene-T4SH37NU.js} +2 -2
- package/dist/Line3DChartScene-T4SH37NU.js.br +0 -0
- package/dist/Line3DChartScene-T4SH37NU.js.gz +0 -0
- package/dist/{Model3DScene-6CWFGE7M.mjs → Model3DScene-CXRM7D3J.mjs} +1 -1
- package/dist/Model3DScene-CXRM7D3J.mjs.br +0 -0
- package/dist/Model3DScene-CXRM7D3J.mjs.gz +0 -0
- package/dist/{Model3DScene-SL3QF63O.js → Model3DScene-IDRM7EZD.js} +2 -2
- package/dist/Model3DScene-IDRM7EZD.js.br +0 -0
- package/dist/Model3DScene-IDRM7EZD.js.gz +0 -0
- package/dist/{PieChart3DScene-WIVYOQUQ.js → PieChart3DScene-66Y5UP64.js} +2 -2
- package/dist/PieChart3DScene-66Y5UP64.js.br +0 -0
- package/dist/PieChart3DScene-66Y5UP64.js.gz +0 -0
- package/dist/{PieChart3DScene-QYJUOYMB.mjs → PieChart3DScene-VSCSEY2G.mjs} +1 -1
- package/dist/PieChart3DScene-VSCSEY2G.mjs.br +0 -0
- package/dist/PieChart3DScene-VSCSEY2G.mjs.gz +0 -0
- package/dist/{SurfaceChart3DScene-QCUYYQBZ.js → SurfaceChart3DScene-6J4A6XUH.js} +2 -2
- package/dist/SurfaceChart3DScene-6J4A6XUH.js.br +0 -0
- package/dist/SurfaceChart3DScene-6J4A6XUH.js.gz +0 -0
- package/dist/{SurfaceChart3DScene-Y2LF73QQ.mjs → SurfaceChart3DScene-NSHDK657.mjs} +1 -1
- package/dist/SurfaceChart3DScene-NSHDK657.mjs.br +0 -0
- package/dist/SurfaceChart3DScene-NSHDK657.mjs.gz +0 -0
- package/dist/{chunk-ATKAU2J4.mjs → chunk-2IBDKMY2.mjs} +506 -325
- package/dist/chunk-2IBDKMY2.mjs.br +0 -0
- package/dist/chunk-2IBDKMY2.mjs.gz +0 -0
- package/dist/{chunk-M5BAPEQL.mjs → chunk-5PDGHTRJ.mjs} +9 -9
- package/dist/chunk-5PDGHTRJ.mjs.br +0 -0
- package/dist/chunk-5PDGHTRJ.mjs.gz +0 -0
- package/dist/{chunk-RPPLJQ6R.js → chunk-7SFA4A2E.js} +1515 -1334
- package/dist/chunk-7SFA4A2E.js.br +0 -0
- package/dist/chunk-7SFA4A2E.js.gz +0 -0
- package/dist/{chunk-MQUTXOET.mjs → chunk-AVTH627G.mjs} +11 -0
- package/dist/chunk-AVTH627G.mjs.br +0 -0
- package/dist/chunk-AVTH627G.mjs.gz +0 -0
- package/dist/{chunk-NEMPFYZ5.mjs → chunk-AYH6XSE7.mjs} +1 -1
- package/dist/chunk-AYH6XSE7.mjs.br +0 -0
- package/dist/chunk-AYH6XSE7.mjs.gz +0 -0
- package/dist/{chunk-YH4ODPSH.js → chunk-DW66NEST.js} +182 -182
- package/dist/chunk-DW66NEST.js.br +0 -0
- package/dist/chunk-DW66NEST.js.gz +0 -0
- package/dist/{chunk-7XJ7I6TJ.mjs → chunk-FE4L26FT.mjs} +2 -2
- package/dist/chunk-FE4L26FT.mjs.br +0 -0
- package/dist/chunk-FE4L26FT.mjs.gz +0 -0
- package/dist/{chunk-BRJN3ZMG.js → chunk-I5LPYESF.js} +11 -0
- package/dist/chunk-I5LPYESF.js.br +0 -0
- package/dist/chunk-I5LPYESF.js.gz +0 -0
- package/dist/{chunk-GULL4H2I.mjs → chunk-N4FLKADC.mjs} +476 -168
- package/dist/chunk-N4FLKADC.mjs.br +0 -0
- package/dist/chunk-N4FLKADC.mjs.gz +0 -0
- package/dist/{chunk-ZUIM5737.js → chunk-NGWA6L3N.js} +479 -167
- package/dist/chunk-NGWA6L3N.js.br +0 -0
- package/dist/chunk-NGWA6L3N.js.gz +0 -0
- package/dist/{chunk-2LK3OHAN.js → chunk-W3RBIIZW.js} +796 -796
- package/dist/chunk-W3RBIIZW.js.br +0 -0
- package/dist/chunk-W3RBIIZW.js.gz +0 -0
- package/dist/{chunk-F7VYECOL.js → chunk-WRXXPCZ7.js} +5 -5
- package/dist/chunk-WRXXPCZ7.js.br +0 -0
- package/dist/chunk-WRXXPCZ7.js.gz +0 -0
- package/dist/i18n/de.cjs +11 -0
- package/dist/i18n/de.cjs.br +0 -0
- package/dist/i18n/de.cjs.gz +0 -0
- package/dist/i18n/de.mjs +11 -0
- package/dist/i18n/de.mjs.br +0 -0
- package/dist/i18n/de.mjs.gz +0 -0
- package/dist/i18n/es.cjs +11 -0
- package/dist/i18n/es.cjs.br +0 -0
- package/dist/i18n/es.cjs.gz +0 -0
- package/dist/i18n/es.mjs +11 -0
- package/dist/i18n/es.mjs.br +0 -0
- package/dist/i18n/es.mjs.gz +0 -0
- package/dist/i18n/fr.cjs +11 -0
- package/dist/i18n/fr.cjs.br +0 -0
- package/dist/i18n/fr.cjs.gz +0 -0
- package/dist/i18n/fr.mjs +11 -0
- package/dist/i18n/fr.mjs.br +0 -0
- package/dist/i18n/fr.mjs.gz +0 -0
- package/dist/i18n/zh-CN.cjs +11 -0
- package/dist/i18n/zh-CN.cjs.br +0 -0
- package/dist/i18n/zh-CN.cjs.gz +0 -0
- package/dist/i18n/zh-CN.mjs +11 -0
- package/dist/i18n/zh-CN.mjs.br +0 -0
- package/dist/i18n/zh-CN.mjs.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 +37 -0
- package/dist/index.js +48 -48
- 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 +37 -0
- package/dist/internals.js +105 -105
- 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/viewer/index.d.ts +37 -0
- package/dist/viewer/index.js +27 -27
- 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-KILEXOPT.js.br +0 -0
- package/dist/AiChatPanel-KILEXOPT.js.gz +0 -0
- package/dist/AiChatPanel-ZH52BQBE.mjs.br +0 -0
- package/dist/AiChatPanel-ZH52BQBE.mjs.gz +0 -0
- package/dist/Area3DChartScene-HS7EBQLQ.js.br +0 -0
- package/dist/Area3DChartScene-HS7EBQLQ.js.gz +0 -0
- package/dist/Area3DChartScene-UHN7ZOZT.mjs.br +0 -0
- package/dist/Area3DChartScene-UHN7ZOZT.mjs.gz +0 -0
- package/dist/Bar3DChartScene-E57TRVUU.js.br +0 -0
- package/dist/Bar3DChartScene-E57TRVUU.js.gz +0 -0
- package/dist/Bar3DChartScene-TFGSYASD.mjs.br +0 -0
- package/dist/Bar3DChartScene-TFGSYASD.mjs.gz +0 -0
- package/dist/Line3DChartScene-NM7YYLZD.js.br +0 -0
- package/dist/Line3DChartScene-NM7YYLZD.js.gz +0 -0
- package/dist/Line3DChartScene-RES5D7W7.mjs.br +0 -0
- package/dist/Line3DChartScene-RES5D7W7.mjs.gz +0 -0
- package/dist/Model3DScene-6CWFGE7M.mjs.br +0 -0
- package/dist/Model3DScene-6CWFGE7M.mjs.gz +0 -0
- package/dist/Model3DScene-SL3QF63O.js.br +0 -0
- package/dist/Model3DScene-SL3QF63O.js.gz +0 -0
- package/dist/PieChart3DScene-QYJUOYMB.mjs.br +0 -0
- package/dist/PieChart3DScene-QYJUOYMB.mjs.gz +0 -0
- package/dist/PieChart3DScene-WIVYOQUQ.js.br +0 -0
- package/dist/PieChart3DScene-WIVYOQUQ.js.gz +0 -0
- package/dist/SurfaceChart3DScene-QCUYYQBZ.js.br +0 -0
- package/dist/SurfaceChart3DScene-QCUYYQBZ.js.gz +0 -0
- package/dist/SurfaceChart3DScene-Y2LF73QQ.mjs.br +0 -0
- package/dist/SurfaceChart3DScene-Y2LF73QQ.mjs.gz +0 -0
- package/dist/chunk-2LK3OHAN.js.br +0 -0
- package/dist/chunk-2LK3OHAN.js.gz +0 -0
- package/dist/chunk-7XJ7I6TJ.mjs.br +0 -0
- package/dist/chunk-7XJ7I6TJ.mjs.gz +0 -0
- package/dist/chunk-ATKAU2J4.mjs.br +0 -0
- package/dist/chunk-ATKAU2J4.mjs.gz +0 -0
- package/dist/chunk-BRJN3ZMG.js.br +0 -0
- package/dist/chunk-BRJN3ZMG.js.gz +0 -0
- package/dist/chunk-F7VYECOL.js.br +0 -0
- package/dist/chunk-F7VYECOL.js.gz +0 -0
- package/dist/chunk-GULL4H2I.mjs.br +0 -0
- package/dist/chunk-GULL4H2I.mjs.gz +0 -0
- package/dist/chunk-M5BAPEQL.mjs.br +0 -0
- package/dist/chunk-M5BAPEQL.mjs.gz +0 -0
- package/dist/chunk-MQUTXOET.mjs.br +0 -0
- package/dist/chunk-MQUTXOET.mjs.gz +0 -0
- package/dist/chunk-NEMPFYZ5.mjs.br +0 -0
- package/dist/chunk-NEMPFYZ5.mjs.gz +0 -0
- package/dist/chunk-RPPLJQ6R.js.br +0 -0
- package/dist/chunk-RPPLJQ6R.js.gz +0 -0
- package/dist/chunk-YH4ODPSH.js.br +0 -0
- package/dist/chunk-YH4ODPSH.js.gz +0 -0
- package/dist/chunk-ZUIM5737.js.br +0 -0
- package/dist/chunk-ZUIM5737.js.gz +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
var
|
|
3
|
+
var chunkNGWA6L3N_js = require('./chunk-NGWA6L3N.js');
|
|
4
|
+
var chunkI5LPYESF_js = require('./chunk-I5LPYESF.js');
|
|
5
5
|
var clsx = require('clsx');
|
|
6
6
|
var tailwindMerge = require('tailwind-merge');
|
|
7
7
|
var React7 = require('react');
|
|
@@ -15,7 +15,7 @@ var React7__default = /*#__PURE__*/_interopDefault(React7);
|
|
|
15
15
|
|
|
16
16
|
// src/viewer/utils/animation-effects.ts
|
|
17
17
|
function getAnimationInitialStyle2(preset, nativeAnimation) {
|
|
18
|
-
return
|
|
18
|
+
return chunkNGWA6L3N_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 chunkNGWA6L3N_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 = chunkNGWA6L3N_js.VIEWER_SHORTCUT_REFERENCE;
|
|
65
65
|
|
|
66
66
|
// src/viewer/constants/transitions-animations.ts
|
|
67
67
|
var ANIMATION_PRESET_OPTIONS = [
|
|
@@ -89,7 +89,7 @@ var GLYPH_COMPONENTS = {
|
|
|
89
89
|
plus: lu.LuPlus,
|
|
90
90
|
triangle: lu.LuTriangle
|
|
91
91
|
};
|
|
92
|
-
var SHAPE_PRESETS =
|
|
92
|
+
var SHAPE_PRESETS = chunkNGWA6L3N_js.SHAPE_PRESET_DEFS.map(
|
|
93
93
|
(def) => ({
|
|
94
94
|
type: def.type,
|
|
95
95
|
label: def.label,
|
|
@@ -114,7 +114,7 @@ var ARROW_SIZE_OPTIONS = [
|
|
|
114
114
|
{ value: "med", label: "Medium", i18nKey: "pptx.connectorOptions.sizeMedium" },
|
|
115
115
|
{ value: "lg", label: "Large", i18nKey: "pptx.connectorOptions.sizeLarge" }
|
|
116
116
|
];
|
|
117
|
-
var STROKE_DASH_OPTIONS2 =
|
|
117
|
+
var STROKE_DASH_OPTIONS2 = chunkNGWA6L3N_js.STROKE_DASH_OPTIONS;
|
|
118
118
|
|
|
119
119
|
// src/viewer/utils/shape-types.tsx
|
|
120
120
|
function getShapeType(shapeType) {
|
|
@@ -223,7 +223,7 @@ function isConnectorOrLineElement(element) {
|
|
|
223
223
|
if (element.type === "connector") {
|
|
224
224
|
return true;
|
|
225
225
|
}
|
|
226
|
-
if (!
|
|
226
|
+
if (!chunkNGWA6L3N_js.hasShapeProperties(element)) {
|
|
227
227
|
return false;
|
|
228
228
|
}
|
|
229
229
|
const st = getShapeType(element.shapeType);
|
|
@@ -232,18 +232,18 @@ function isConnectorOrLineElement(element) {
|
|
|
232
232
|
|
|
233
233
|
// src/viewer/utils/image-style.ts
|
|
234
234
|
function getImageMaskStyle(element) {
|
|
235
|
-
if (!
|
|
235
|
+
if (!chunkNGWA6L3N_js.hasShapeProperties(element)) {
|
|
236
236
|
return void 0;
|
|
237
237
|
}
|
|
238
|
-
const geometry =
|
|
238
|
+
const geometry = chunkNGWA6L3N_js.resolveShapeGeometry(element);
|
|
239
239
|
if (geometry.kind === "borderRadius") {
|
|
240
240
|
return { borderRadius: geometry.radius };
|
|
241
241
|
}
|
|
242
242
|
return geometry.kind === "clipPath" ? { clipPath: geometry.clipPath } : void 0;
|
|
243
243
|
}
|
|
244
244
|
function getImageRenderStyle(element) {
|
|
245
|
-
const fit =
|
|
246
|
-
const counterTransform =
|
|
245
|
+
const fit = chunkNGWA6L3N_js.getImageFitStyle(element);
|
|
246
|
+
const counterTransform = chunkNGWA6L3N_js.getImageFillCounterTransform(element, Boolean(fit.transform));
|
|
247
247
|
return {
|
|
248
248
|
// A translated/scaled crop, or a rotWithShape=false counter-transform,
|
|
249
249
|
// must be masked by the stationary wrapper, not by the moving/counter-
|
|
@@ -262,7 +262,7 @@ function getImageSurfaceMaskStyle(element) {
|
|
|
262
262
|
};
|
|
263
263
|
}
|
|
264
264
|
function getImageSurfaceStyle(element) {
|
|
265
|
-
const fill =
|
|
265
|
+
const fill = chunkNGWA6L3N_js.hasShapeProperties(element) ? chunkNGWA6L3N_js.getComputedFillStyle(element) : void 0;
|
|
266
266
|
return {
|
|
267
267
|
position: "absolute",
|
|
268
268
|
inset: 0,
|
|
@@ -275,13 +275,13 @@ function getImageSurfaceStyle(element) {
|
|
|
275
275
|
};
|
|
276
276
|
}
|
|
277
277
|
function getCropShapeClipPath2(element) {
|
|
278
|
-
if (!
|
|
278
|
+
if (!chunkNGWA6L3N_js.isImageLikeElement(element)) {
|
|
279
279
|
return void 0;
|
|
280
280
|
}
|
|
281
|
-
return
|
|
281
|
+
return chunkNGWA6L3N_js.getCropShapeClipPath(element.cropShape, element.width, element.height);
|
|
282
282
|
}
|
|
283
283
|
function getImageTilingStyle2(element) {
|
|
284
|
-
return
|
|
284
|
+
return chunkNGWA6L3N_js.getImageTilingStyle(element);
|
|
285
285
|
}
|
|
286
286
|
|
|
287
287
|
// src/viewer/utils/geometry-image.ts
|
|
@@ -413,7 +413,7 @@ function VideoWithMetadata({
|
|
|
413
413
|
{
|
|
414
414
|
ref: mediaRef,
|
|
415
415
|
className: "w-full h-full pointer-events-auto",
|
|
416
|
-
style: isFullScreen ? { objectFit: "cover" } :
|
|
416
|
+
style: isFullScreen ? { objectFit: "cover" } : chunkNGWA6L3N_js.getImageFitStyle(element),
|
|
417
417
|
controls: showTransport,
|
|
418
418
|
preload: "metadata",
|
|
419
419
|
playsInline: true,
|
|
@@ -470,7 +470,7 @@ function PresentationMediaController({
|
|
|
470
470
|
const [isMediaPlaying, setIsMediaPlaying] = React7.useState(false);
|
|
471
471
|
const trimStartSec = element.trimStartMs !== void 0 ? element.trimStartMs / 1e3 : 0;
|
|
472
472
|
const hideWhenNotPlaying = isPresentationMode && element.hideWhenNotPlaying === true;
|
|
473
|
-
const { volume: playbackVolume, playbackRate } =
|
|
473
|
+
const { volume: playbackVolume, playbackRate } = chunkNGWA6L3N_js.mediaPlaybackAttributes({
|
|
474
474
|
loop: element.loop,
|
|
475
475
|
volume: element.volume,
|
|
476
476
|
playbackSpeed: element.playbackSpeed
|
|
@@ -518,7 +518,7 @@ function PresentationMediaController({
|
|
|
518
518
|
if (!el || !isPresentationMode) {
|
|
519
519
|
return;
|
|
520
520
|
}
|
|
521
|
-
return
|
|
521
|
+
return chunkNGWA6L3N_js.scheduleMediaTrimAndFade(el, {
|
|
522
522
|
trimStartMs: element.trimStartMs,
|
|
523
523
|
trimEndMs: element.trimEndMs,
|
|
524
524
|
fadeInDuration: element.fadeInDuration,
|
|
@@ -539,7 +539,7 @@ function PresentationMediaController({
|
|
|
539
539
|
}
|
|
540
540
|
if (element.playAcrossSlides && element.mediaType === "audio") {
|
|
541
541
|
const dataUrl = element.mediaData ?? resolvedDataUrl;
|
|
542
|
-
if (
|
|
542
|
+
if (chunkNGWA6L3N_js.registerCrossSlideAudio(element, dataUrl)) {
|
|
543
543
|
return;
|
|
544
544
|
}
|
|
545
545
|
}
|
|
@@ -584,7 +584,7 @@ function PresentationMediaController({
|
|
|
584
584
|
] });
|
|
585
585
|
}
|
|
586
586
|
function label(key) {
|
|
587
|
-
return key === void 0 ? void 0 :
|
|
587
|
+
return key === void 0 ? void 0 : chunkI5LPYESF_js.translationsEn[key];
|
|
588
588
|
}
|
|
589
589
|
function FallbackIcon({
|
|
590
590
|
paths,
|
|
@@ -620,17 +620,17 @@ function Badge({
|
|
|
620
620
|
"div",
|
|
621
621
|
{
|
|
622
622
|
className: `absolute inset-0 flex flex-col items-center justify-center ${isMissing ? "gap-1" : ""}`,
|
|
623
|
-
...{ [
|
|
623
|
+
...{ [chunkNGWA6L3N_js.MEDIA_CHROME_ATTRIBUTE]: visual.badge },
|
|
624
624
|
children: [
|
|
625
625
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
626
626
|
FallbackIcon,
|
|
627
627
|
{
|
|
628
|
-
paths:
|
|
628
|
+
paths: chunkNGWA6L3N_js.mediaFallbackIcon(visual, element.mediaType),
|
|
629
629
|
size: isMissing ? 32 : 48,
|
|
630
630
|
className: isMissing ? "text-white/60" : "text-white/80 drop-shadow-md"
|
|
631
631
|
}
|
|
632
632
|
),
|
|
633
|
-
isMissing && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[10px] text-white/60", children: label(
|
|
633
|
+
isMissing && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[10px] text-white/60", children: label(chunkNGWA6L3N_js.mediaFallbackLabelKey(visual, element.mediaType)) })
|
|
634
634
|
]
|
|
635
635
|
}
|
|
636
636
|
);
|
|
@@ -647,17 +647,17 @@ function Placeholder({
|
|
|
647
647
|
"div",
|
|
648
648
|
{
|
|
649
649
|
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"}`,
|
|
650
|
-
...{ [
|
|
650
|
+
...{ [chunkNGWA6L3N_js.MEDIA_CHROME_ATTRIBUTE]: visual.placeholder },
|
|
651
651
|
children: [
|
|
652
652
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
653
653
|
FallbackIcon,
|
|
654
654
|
{
|
|
655
|
-
paths:
|
|
655
|
+
paths: chunkNGWA6L3N_js.mediaFallbackIcon(visual, element.mediaType),
|
|
656
656
|
size: isMissing ? 36 : element.mediaType === "audio" ? 24 : 32,
|
|
657
657
|
className: isMissing ? "text-white/50" : "text-white/70"
|
|
658
658
|
}
|
|
659
659
|
),
|
|
660
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: `text-[10px] ${isMissing ? "text-white/50" : "text-white/70"}`, children: label(
|
|
660
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: `text-[10px] ${isMissing ? "text-white/50" : "text-white/70"}`, children: label(chunkNGWA6L3N_js.mediaFallbackLabelKey(visual, element.mediaType)) })
|
|
661
661
|
]
|
|
662
662
|
}
|
|
663
663
|
);
|
|
@@ -667,7 +667,7 @@ function renderMediaFallback({
|
|
|
667
667
|
posterUrl,
|
|
668
668
|
surface
|
|
669
669
|
}) {
|
|
670
|
-
const visual =
|
|
670
|
+
const visual = chunkNGWA6L3N_js.mediaFallbackVisual(surface, {
|
|
671
671
|
hasPoster: Boolean(posterUrl),
|
|
672
672
|
missing: element.mediaMissing === true
|
|
673
673
|
});
|
|
@@ -677,9 +677,9 @@ function renderMediaFallback({
|
|
|
677
677
|
"img",
|
|
678
678
|
{
|
|
679
679
|
src: posterUrl,
|
|
680
|
-
alt: visual.dimPoster ?
|
|
680
|
+
alt: visual.dimPoster ? chunkI5LPYESF_js.translationsEn["pptx.media.posterAlt"] : chunkI5LPYESF_js.translationsEn["pptx.media.videoPosterAlt"],
|
|
681
681
|
className: `w-full h-full${visual.dimPoster ? " opacity-50" : ""}`,
|
|
682
|
-
style:
|
|
682
|
+
style: chunkNGWA6L3N_js.getImageFitStyle(element)
|
|
683
683
|
}
|
|
684
684
|
),
|
|
685
685
|
/* @__PURE__ */ jsxRuntime.jsx(Badge, { visual, element })
|
|
@@ -689,7 +689,7 @@ function renderMediaFallback({
|
|
|
689
689
|
}
|
|
690
690
|
function renderMediaElement(element, mediaDataUrls, options) {
|
|
691
691
|
if (element.type !== "media") {
|
|
692
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children:
|
|
692
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children: chunkI5LPYESF_js.translationsEn["pptx.media.title"] });
|
|
693
693
|
}
|
|
694
694
|
const mediaType = element.mediaType;
|
|
695
695
|
const mediaPath = element.mediaPath;
|
|
@@ -697,7 +697,7 @@ function renderMediaElement(element, mediaDataUrls, options) {
|
|
|
697
697
|
const dataUrl = element.mediaData ?? (mediaPath ? mediaDataUrls.get(mediaPath) : void 0);
|
|
698
698
|
const trimFragment = buildTrimFragment(element);
|
|
699
699
|
const posterUrl = element.posterFrameData ?? void 0;
|
|
700
|
-
const shouldLoop =
|
|
700
|
+
const shouldLoop = chunkNGWA6L3N_js.mediaPlaybackAttributes(element).loop;
|
|
701
701
|
const shouldAutoPlay = options?.autoPlay === true || element.autoPlay === true;
|
|
702
702
|
const isFullScreen = options?.fullScreen === true;
|
|
703
703
|
const isPresentationMode = options?.isPresentationMode === true;
|
|
@@ -775,25 +775,25 @@ function renderMediaElement(element, mediaDataUrls, options) {
|
|
|
775
775
|
if (surface.presenting || surface.preview) {
|
|
776
776
|
return null;
|
|
777
777
|
}
|
|
778
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children:
|
|
778
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children: chunkI5LPYESF_js.translationsEn["pptx.media.title"] });
|
|
779
779
|
}
|
|
780
780
|
|
|
781
781
|
// src/viewer/utils/text-utils.tsx
|
|
782
782
|
function getTextStyleForElement(element, fallbackColor) {
|
|
783
|
-
return
|
|
783
|
+
return chunkNGWA6L3N_js.buildTextBlockStyle(element, { fallbackColor });
|
|
784
784
|
}
|
|
785
785
|
|
|
786
786
|
// src/viewer/utils/text-layout.tsx
|
|
787
787
|
function getTextLayoutStyle(element) {
|
|
788
|
-
if (!
|
|
788
|
+
if (!chunkNGWA6L3N_js.hasTextProperties(element)) {
|
|
789
789
|
return {};
|
|
790
790
|
}
|
|
791
|
-
const writingMode =
|
|
792
|
-
const textOrientation =
|
|
793
|
-
const verticalDirection =
|
|
791
|
+
const writingMode = chunkNGWA6L3N_js.toCssWritingMode(element.textStyle?.textDirection);
|
|
792
|
+
const textOrientation = chunkNGWA6L3N_js.toCssTextOrientation(element.textStyle?.textDirection);
|
|
793
|
+
const verticalDirection = chunkNGWA6L3N_js.toCssVerticalDirection(element.textStyle?.textDirection);
|
|
794
794
|
const textWrapNone = element.textStyle?.textWrap === "none";
|
|
795
795
|
const shapeAutoFitTextBox = element.textStyle?.autoFitMode === "shrink" && (element.type === "text" || element.locks?.txBox === true);
|
|
796
|
-
const hasParagraphIndents =
|
|
796
|
+
const hasParagraphIndents = chunkNGWA6L3N_js.hasTextProperties(element) && element.paragraphIndents && element.paragraphIndents.length > 0;
|
|
797
797
|
const paragraphMarginLeft = element.textStyle?.paragraphMarginLeft;
|
|
798
798
|
const paragraphIndent = element.textStyle?.paragraphIndent;
|
|
799
799
|
const marginLeft = !hasParagraphIndents && typeof paragraphMarginLeft === "number" && paragraphMarginLeft !== 0 ? paragraphMarginLeft : void 0;
|
|
@@ -802,7 +802,7 @@ function getTextLayoutStyle(element) {
|
|
|
802
802
|
const bodyBottom = element.textStyle?.bodyInsetBottom ?? DEFAULT_BODY_INSET_TB_PX;
|
|
803
803
|
return {
|
|
804
804
|
// Columns / flex anchoring / anchorCtr / tab-size / kinsoku, from shared.
|
|
805
|
-
...
|
|
805
|
+
...chunkNGWA6L3N_js.buildTextBodyLayoutStyle(element),
|
|
806
806
|
// Body inset only. Paragraph spacing (spcBef/spcAft) is applied
|
|
807
807
|
// per-paragraph by the paragraph renderer, not collapsed here.
|
|
808
808
|
paddingTop: bodyTop,
|
|
@@ -830,7 +830,7 @@ function getTextLayoutStyle(element) {
|
|
|
830
830
|
|
|
831
831
|
// src/viewer/utils/text-effects.tsx
|
|
832
832
|
function buildTextBody3DSceneStyle2(textStyle, elementSize) {
|
|
833
|
-
return
|
|
833
|
+
return chunkNGWA6L3N_js.buildTextBody3DSceneStyle(textStyle, elementSize);
|
|
834
834
|
}
|
|
835
835
|
|
|
836
836
|
// src/viewer/utils/text-warp-css.tsx
|
|
@@ -1015,13 +1015,13 @@ function wrapWithTextBuildAnimation(elementId, paraIndex, renderedSegments, para
|
|
|
1015
1015
|
if (!subElementAnimStates || subElementAnimStates.size === 0) {
|
|
1016
1016
|
return renderedSegments;
|
|
1017
1017
|
}
|
|
1018
|
-
const paraKey = `${elementId}${
|
|
1018
|
+
const paraKey = `${elementId}${chunkNGWA6L3N_js.TEXT_BUILD_ID_SEP}p${paraIndex}`;
|
|
1019
1019
|
const paraState = subElementAnimStates.get(paraKey);
|
|
1020
1020
|
if (paraState) {
|
|
1021
1021
|
const style = buildAnimStyle(paraState);
|
|
1022
1022
|
return /* @__PURE__ */ jsxRuntime.jsx("span", { "data-anim-id": paraKey, style: { display: "inline", ...style }, children: renderedSegments }, paraKey);
|
|
1023
1023
|
}
|
|
1024
|
-
const spec =
|
|
1024
|
+
const spec = chunkNGWA6L3N_js.buildTextBuildSpec(
|
|
1025
1025
|
elementId,
|
|
1026
1026
|
paraIndex,
|
|
1027
1027
|
paraRuns.map((run) => ({ text: run.text, style: run })),
|
|
@@ -1039,7 +1039,7 @@ function wrapWithTextBuildAnimation(elementId, paraIndex, renderedSegments, para
|
|
|
1039
1039
|
"span",
|
|
1040
1040
|
{
|
|
1041
1041
|
"data-anim-id": span.animId,
|
|
1042
|
-
style:
|
|
1042
|
+
style: chunkNGWA6L3N_js.textBuildSpanStyle(span),
|
|
1043
1043
|
children: content
|
|
1044
1044
|
},
|
|
1045
1045
|
span.animId
|
|
@@ -1050,13 +1050,13 @@ function renderUnderlineWords(text, isUnderlineWords, wordDecoration, metric, ke
|
|
|
1050
1050
|
if (!isUnderlineWords || !text) {
|
|
1051
1051
|
return inner(text, keyPrefix, metric);
|
|
1052
1052
|
}
|
|
1053
|
-
const pieces =
|
|
1053
|
+
const pieces = chunkNGWA6L3N_js.splitWordsForUnderline(text);
|
|
1054
1054
|
if (pieces.length === 0) {
|
|
1055
1055
|
return inner(text, keyPrefix, metric);
|
|
1056
1056
|
}
|
|
1057
1057
|
const gapMetric = metric ? {
|
|
1058
1058
|
...metric,
|
|
1059
|
-
nestedStyle: metric.nestedStyle ?
|
|
1059
|
+
nestedStyle: metric.nestedStyle ? chunkNGWA6L3N_js.stripUnderlineDecoration(metric.nestedStyle) : void 0
|
|
1060
1060
|
} : void 0;
|
|
1061
1061
|
return pieces.map((piece, i) => {
|
|
1062
1062
|
const key = `${keyPrefix}-u${i}`;
|
|
@@ -1089,7 +1089,7 @@ function makeSegmentPieceRenderer(needsScriptFonts, scriptFonts, baseFontFamily,
|
|
|
1089
1089
|
);
|
|
1090
1090
|
}
|
|
1091
1091
|
function renderTabbedLine(line, ctx, keyPrefix, renderPiece, nestedStyle, underlineWords = false) {
|
|
1092
|
-
const [lineLayout] =
|
|
1092
|
+
const [lineLayout] = chunkNGWA6L3N_js.buildRunTabLines(
|
|
1093
1093
|
line,
|
|
1094
1094
|
ctx,
|
|
1095
1095
|
nestedStyle,
|
|
@@ -1108,7 +1108,7 @@ function renderScriptAwareText(text, needsScriptFonts, scriptFonts, baseFontFami
|
|
|
1108
1108
|
if (!needsScriptFonts || !text) {
|
|
1109
1109
|
return text;
|
|
1110
1110
|
}
|
|
1111
|
-
const pieces =
|
|
1111
|
+
const pieces = chunkNGWA6L3N_js.splitRunByScriptFont(
|
|
1112
1112
|
text,
|
|
1113
1113
|
scriptFonts,
|
|
1114
1114
|
baseFontFamily,
|
|
@@ -1125,7 +1125,7 @@ function renderMetricPieces(text, metric, keyPrefix, inner) {
|
|
|
1125
1125
|
if (!metric || !text) {
|
|
1126
1126
|
return inner(text, keyPrefix);
|
|
1127
1127
|
}
|
|
1128
|
-
const pieces =
|
|
1128
|
+
const pieces = chunkNGWA6L3N_js.splitRunForMetrics(text, metric.font);
|
|
1129
1129
|
if (pieces.length <= 1) {
|
|
1130
1130
|
return inner(text, keyPrefix);
|
|
1131
1131
|
}
|
|
@@ -1134,7 +1134,7 @@ function renderMetricPieces(text, metric, keyPrefix, inner) {
|
|
|
1134
1134
|
{
|
|
1135
1135
|
style: {
|
|
1136
1136
|
...metric.nestedStyle,
|
|
1137
|
-
letterSpacing:
|
|
1137
|
+
letterSpacing: chunkNGWA6L3N_js.pieceLetterSpacing(metric.authoredPx, piece.tracking)
|
|
1138
1138
|
},
|
|
1139
1139
|
children: inner(piece.text, `${keyPrefix}-w${i}`)
|
|
1140
1140
|
},
|
|
@@ -1210,8 +1210,8 @@ function renderSegmentContent(elementId, segmentIndex, textValue, lines, needsSc
|
|
|
1210
1210
|
});
|
|
1211
1211
|
}
|
|
1212
1212
|
function renderEquationSegment(elementId, segmentIndex, equationXml, equationNumber) {
|
|
1213
|
-
const mathml =
|
|
1214
|
-
const safeMathml = mathml ?
|
|
1213
|
+
const mathml = chunkNGWA6L3N_js.convertOmmlToMathMl(equationXml);
|
|
1214
|
+
const safeMathml = mathml ? chunkNGWA6L3N_js.sanitizeMathMl(mathml) : "";
|
|
1215
1215
|
const equationContent = safeMathml ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
1216
1216
|
"span",
|
|
1217
1217
|
{
|
|
@@ -1221,7 +1221,7 @@ function renderEquationSegment(elementId, segmentIndex, equationXml, equationNum
|
|
|
1221
1221
|
},
|
|
1222
1222
|
dangerouslySetInnerHTML: { __html: safeMathml }
|
|
1223
1223
|
}
|
|
1224
|
-
) : /* @__PURE__ */ jsxRuntime.jsx("span", { className: "inline-block px-1 py-0.5 rounded text-xs bg-gray-200/20 text-gray-400 italic", children:
|
|
1224
|
+
) : /* @__PURE__ */ jsxRuntime.jsx("span", { className: "inline-block px-1 py-0.5 rounded text-xs bg-gray-200/20 text-gray-400 italic", children: chunkI5LPYESF_js.translationsEn["pptx.textSegment.equationFallback"] });
|
|
1225
1225
|
if (equationNumber) {
|
|
1226
1226
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1227
1227
|
"span",
|
|
@@ -1340,7 +1340,7 @@ function renderParagraphRun(run, segment, ctx, keySuffix = "") {
|
|
|
1340
1340
|
const segmentStyle = segment?.style ?? {};
|
|
1341
1341
|
const textValue = run.text;
|
|
1342
1342
|
const lines = textValue.split("\n");
|
|
1343
|
-
const resolvedSegmentColor =
|
|
1343
|
+
const resolvedSegmentColor = chunkNGWA6L3N_js.normalizeHexColor(
|
|
1344
1344
|
segmentStyle.color || element.textStyle?.color,
|
|
1345
1345
|
run.hyperlink ? HYPERLINK_COLOR : fallbackColor
|
|
1346
1346
|
);
|
|
@@ -1348,16 +1348,16 @@ function renderParagraphRun(run, segment, ctx, keySuffix = "") {
|
|
|
1348
1348
|
const baselineFraction = rawBaseline === 0 ? 0 : Math.abs(rawBaseline) >= 1e3 ? rawBaseline / 1e5 : rawBaseline / 100;
|
|
1349
1349
|
const baselineFontScale = baselineFraction !== 0 ? BASELINE_FONT_SCALE : 1;
|
|
1350
1350
|
const rawFontSize = segmentStyle.fontSize || element.textStyle?.fontSize || DEFAULT_TEXT_FONT_SIZE;
|
|
1351
|
-
const baseFontSize = rawFontSize *
|
|
1351
|
+
const baseFontSize = rawFontSize * chunkNGWA6L3N_js.resolveAutoFitFontScale(element.textStyle);
|
|
1352
1352
|
const baselineShift = baselineFraction !== 0 ? `${baselineFraction * baseFontSize}px` : void 0;
|
|
1353
|
-
const fontKerning =
|
|
1353
|
+
const fontKerning = chunkNGWA6L3N_js.resolveFontKerning(segmentStyle.kerning, baseFontSize);
|
|
1354
1354
|
const rawFontFamily = segmentStyle.fontFamily || element.textStyle?.fontFamily;
|
|
1355
|
-
const baseFontFamily = rawFontFamily ?
|
|
1355
|
+
const baseFontFamily = rawFontFamily ? chunkNGWA6L3N_js.getSubstituteFontFamily(
|
|
1356
1356
|
rawFontFamily,
|
|
1357
|
-
|
|
1357
|
+
chunkNGWA6L3N_js.parsePanoseString(segmentStyle.latinFontPanose ?? element.textStyle?.latinFontPanose)
|
|
1358
1358
|
) : DEFAULT_FONT_FAMILY2;
|
|
1359
|
-
const scriptFonts =
|
|
1360
|
-
const needsScriptFonts =
|
|
1359
|
+
const scriptFonts = chunkNGWA6L3N_js.resolveScriptFontSet(segmentStyle, element.textStyle, baseFontFamily);
|
|
1360
|
+
const needsScriptFonts = chunkNGWA6L3N_js.hasDistinctScriptFonts(scriptFonts);
|
|
1361
1361
|
const authoredLetterSpacing = typeof segmentStyle.characterSpacing === "number" && segmentStyle.characterSpacing !== 0 ? segmentStyle.characterSpacing / 100 * (96 / 72) : 0;
|
|
1362
1362
|
const metricFont = {
|
|
1363
1363
|
fontFamily: baseFontFamily,
|
|
@@ -1365,7 +1365,7 @@ function renderParagraphRun(run, segment, ctx, keySuffix = "") {
|
|
|
1365
1365
|
bold: Boolean(segmentStyle.bold),
|
|
1366
1366
|
italic: Boolean(segmentStyle.italic)
|
|
1367
1367
|
};
|
|
1368
|
-
const nestedStyle =
|
|
1368
|
+
const nestedStyle = chunkNGWA6L3N_js.nestedTextDecorationStyle(run.style);
|
|
1369
1369
|
const metricContext = { font: metricFont, authoredPx: authoredLetterSpacing, nestedStyle };
|
|
1370
1370
|
const spanStyle = { ...run.style };
|
|
1371
1371
|
spanStyle.color = resolvedSegmentColor;
|
|
@@ -1373,11 +1373,11 @@ function renderParagraphRun(run, segment, ctx, keySuffix = "") {
|
|
|
1373
1373
|
spanStyle.fontFamily = baseFontFamily;
|
|
1374
1374
|
spanStyle.verticalAlign = baselineShift;
|
|
1375
1375
|
spanStyle.fontKerning = fontKerning;
|
|
1376
|
-
spanStyle.letterSpacing =
|
|
1376
|
+
spanStyle.letterSpacing = chunkNGWA6L3N_js.pieceLetterSpacing(
|
|
1377
1377
|
authoredLetterSpacing,
|
|
1378
|
-
|
|
1378
|
+
chunkNGWA6L3N_js.resolveMetricTrackingPx(textValue, metricFont)
|
|
1379
1379
|
);
|
|
1380
|
-
const hollow =
|
|
1380
|
+
const hollow = chunkNGWA6L3N_js.hollowTextFillStyle(segmentStyle, {
|
|
1381
1381
|
color: resolvedSegmentColor,
|
|
1382
1382
|
textStroke: typeof spanStyle.WebkitTextStroke === "string" ? spanStyle.WebkitTextStroke : void 0
|
|
1383
1383
|
});
|
|
@@ -1392,7 +1392,7 @@ function renderParagraphRun(run, segment, ctx, keySuffix = "") {
|
|
|
1392
1392
|
const isUnderlineWords = Boolean(segmentStyle.underline) && segmentStyle.underlineStyle === "words";
|
|
1393
1393
|
const wordDecoration = isUnderlineWords ? nestedStyle ?? run.underlineWordPieces?.find((piece) => piece.style)?.style : void 0;
|
|
1394
1394
|
if (isUnderlineWords) {
|
|
1395
|
-
const stripped =
|
|
1395
|
+
const stripped = chunkNGWA6L3N_js.stripUnderlineDecoration(spanStyle);
|
|
1396
1396
|
spanStyle.textDecoration = stripped.textDecoration;
|
|
1397
1397
|
delete spanStyle.textDecorationStyle;
|
|
1398
1398
|
delete spanStyle.textDecorationThickness;
|
|
@@ -1408,7 +1408,7 @@ function renderParagraphRun(run, segment, ctx, keySuffix = "") {
|
|
|
1408
1408
|
scriptFonts,
|
|
1409
1409
|
baseFontFamily,
|
|
1410
1410
|
findHighlights,
|
|
1411
|
-
|
|
1411
|
+
chunkNGWA6L3N_js.buildTabContext(
|
|
1412
1412
|
element.textStyle?.tabStops,
|
|
1413
1413
|
element.textStyle?.defaultTabSize,
|
|
1414
1414
|
baseFontSize,
|
|
@@ -1440,14 +1440,14 @@ function renderSeededListRun(seed, runs, segments, context) {
|
|
|
1440
1440
|
const segment = sourceRun ? segments[seed.segmentIndex] : { text: seed.text, style: seed.style };
|
|
1441
1441
|
const resolvedSegment = {
|
|
1442
1442
|
...segment,
|
|
1443
|
-
style:
|
|
1443
|
+
style: chunkNGWA6L3N_js.withInlineListDecorationDefaults(segment.style, context.element.textStyle)
|
|
1444
1444
|
};
|
|
1445
|
-
const decorationCss =
|
|
1445
|
+
const decorationCss = chunkNGWA6L3N_js.segmentStyleToCss(
|
|
1446
1446
|
resolvedSegment,
|
|
1447
|
-
|
|
1447
|
+
chunkNGWA6L3N_js.resolveAutoFitFontScale(context.element.textStyle)
|
|
1448
1448
|
);
|
|
1449
|
-
|
|
1450
|
-
const run = sourceRun ? { ...sourceRun, style: { ...sourceRun.style, ...
|
|
1449
|
+
chunkNGWA6L3N_js.applyUnderlineVariant(decorationCss, resolvedSegment);
|
|
1450
|
+
const run = sourceRun ? { ...sourceRun, style: { ...sourceRun.style, ...chunkNGWA6L3N_js.nestedTextDecorationStyle(decorationCss) } } : {
|
|
1451
1451
|
text: seed.text,
|
|
1452
1452
|
style: decorationCss,
|
|
1453
1453
|
segmentIndex: seed.segmentIndex
|
|
@@ -1462,7 +1462,7 @@ function renderSeededListRun(seed, runs, segments, context) {
|
|
|
1462
1462
|
});
|
|
1463
1463
|
}
|
|
1464
1464
|
function renderTextSegments(element, fallbackColor, emptyFallback, findHighlights, onHyperlinkClick, fieldContext, subElementAnimStates, segmentOverrides, requireCtrlClick, placeholderPrompt, inlineListSeed) {
|
|
1465
|
-
if (!
|
|
1465
|
+
if (!chunkNGWA6L3N_js.hasTextProperties(element)) {
|
|
1466
1466
|
return emptyFallback || null;
|
|
1467
1467
|
}
|
|
1468
1468
|
const segments = segmentOverrides ?? element.textSegments;
|
|
@@ -1472,7 +1472,7 @@ function renderTextSegments(element, fallbackColor, emptyFallback, findHighlight
|
|
|
1472
1472
|
}
|
|
1473
1473
|
return element.text || emptyFallback || "";
|
|
1474
1474
|
}
|
|
1475
|
-
const paragraphs =
|
|
1475
|
+
const paragraphs = chunkNGWA6L3N_js.buildParagraphs(
|
|
1476
1476
|
element,
|
|
1477
1477
|
fieldContext,
|
|
1478
1478
|
segmentOverrides,
|
|
@@ -1618,13 +1618,13 @@ function renderBulletMarker(para, paraIndex, elementId) {
|
|
|
1618
1618
|
);
|
|
1619
1619
|
}
|
|
1620
1620
|
function getDuotoneColors(element) {
|
|
1621
|
-
if (!
|
|
1621
|
+
if (!chunkNGWA6L3N_js.isImageLikeElement(element)) {
|
|
1622
1622
|
return void 0;
|
|
1623
1623
|
}
|
|
1624
1624
|
return element.imageEffects?.duotone;
|
|
1625
1625
|
}
|
|
1626
1626
|
function buildLineShadowCss(element) {
|
|
1627
|
-
if (!
|
|
1627
|
+
if (!chunkNGWA6L3N_js.hasShapeProperties(element)) {
|
|
1628
1628
|
return void 0;
|
|
1629
1629
|
}
|
|
1630
1630
|
const ss = element.shapeStyle;
|
|
@@ -1635,13 +1635,13 @@ function buildLineShadowCss(element) {
|
|
|
1635
1635
|
const offsetY = typeof ss.lineShadowOffsetY === "number" ? ss.lineShadowOffsetY : 2;
|
|
1636
1636
|
const blur = typeof ss.lineShadowBlur === "number" ? Math.max(0, ss.lineShadowBlur) : 4;
|
|
1637
1637
|
const opacity = typeof ss.lineShadowOpacity === "number" ? Math.max(0, Math.min(1, ss.lineShadowOpacity)) : 0.35;
|
|
1638
|
-
return `${Math.round(offsetX)}px ${Math.round(offsetY)}px ${Math.round(blur)}px ${
|
|
1639
|
-
|
|
1638
|
+
return `${Math.round(offsetX)}px ${Math.round(offsetY)}px ${Math.round(blur)}px ${chunkNGWA6L3N_js.colorWithOpacity(
|
|
1639
|
+
chunkNGWA6L3N_js.normalizeHexColor(ss.lineShadowColor, "#000000"),
|
|
1640
1640
|
opacity
|
|
1641
1641
|
)}`;
|
|
1642
1642
|
}
|
|
1643
1643
|
function buildLineGlowFilter(element) {
|
|
1644
|
-
if (!
|
|
1644
|
+
if (!chunkNGWA6L3N_js.hasShapeProperties(element)) {
|
|
1645
1645
|
return void 0;
|
|
1646
1646
|
}
|
|
1647
1647
|
const ss = element.shapeStyle;
|
|
@@ -1650,22 +1650,22 @@ function buildLineGlowFilter(element) {
|
|
|
1650
1650
|
}
|
|
1651
1651
|
const glowOpacity = typeof ss.lineGlowOpacity === "number" ? ss.lineGlowOpacity : 0.75;
|
|
1652
1652
|
const glowRad = Math.round(Math.max(0, ss.lineGlowRadius));
|
|
1653
|
-
const glowCol =
|
|
1653
|
+
const glowCol = chunkNGWA6L3N_js.colorWithOpacity(chunkNGWA6L3N_js.normalizeHexColor(ss.lineGlowColor, "#ffff00"), glowOpacity);
|
|
1654
1654
|
return `drop-shadow(0 0 ${glowRad}px ${glowCol})`;
|
|
1655
1655
|
}
|
|
1656
1656
|
function getDagDuotoneFilterId(elementId) {
|
|
1657
1657
|
return `dag-duotone-${elementId}`;
|
|
1658
1658
|
}
|
|
1659
1659
|
function hasDagDuotoneEffect(element) {
|
|
1660
|
-
if (!
|
|
1660
|
+
if (!chunkNGWA6L3N_js.hasShapeProperties(element)) {
|
|
1661
1661
|
return false;
|
|
1662
1662
|
}
|
|
1663
1663
|
return Boolean(element.shapeStyle?.dagDuotone);
|
|
1664
1664
|
}
|
|
1665
1665
|
function renderDagDuotoneSvgFilter(elementId, color1, color2) {
|
|
1666
1666
|
const filterId = getDagDuotoneFilterId(elementId);
|
|
1667
|
-
const c1 =
|
|
1668
|
-
const c2 =
|
|
1667
|
+
const c1 = chunkNGWA6L3N_js.hexToRgbUnit(color1);
|
|
1668
|
+
const c2 = chunkNGWA6L3N_js.hexToRgbUnit(color2);
|
|
1669
1669
|
const grayscaleMatrix = [
|
|
1670
1670
|
0.2126,
|
|
1671
1671
|
0.7152,
|
|
@@ -1709,7 +1709,7 @@ function renderDagDuotoneSvgFilter(elementId, color1, color2) {
|
|
|
1709
1709
|
|
|
1710
1710
|
// src/viewer/utils/shape-visual-3d.ts
|
|
1711
1711
|
function build3DExtrusionData2(shape3d, scene3d, fillColor, elementWidth, elementHeight) {
|
|
1712
|
-
return
|
|
1712
|
+
return chunkNGWA6L3N_js.build3DExtrusionData(
|
|
1713
1713
|
shape3d,
|
|
1714
1714
|
scene3d,
|
|
1715
1715
|
fillColor,
|
|
@@ -1718,7 +1718,7 @@ function build3DExtrusionData2(shape3d, scene3d, fillColor, elementWidth, elemen
|
|
|
1718
1718
|
);
|
|
1719
1719
|
}
|
|
1720
1720
|
function apply3dEffects2(base, scene3d, shape3d, fillColorFallback, elementSize, elementId) {
|
|
1721
|
-
|
|
1721
|
+
chunkNGWA6L3N_js.apply3dEffects(
|
|
1722
1722
|
base,
|
|
1723
1723
|
scene3d,
|
|
1724
1724
|
shape3d,
|
|
@@ -1733,11 +1733,11 @@ function rendersCustomVectorPath(element) {
|
|
|
1733
1733
|
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;
|
|
1734
1734
|
}
|
|
1735
1735
|
function rendersWedgeCalloutVector(element) {
|
|
1736
|
-
return element.type === "shape" &&
|
|
1736
|
+
return element.type === "shape" && chunkNGWA6L3N_js.isWedgeCalloutPresetShape(element.shapeType);
|
|
1737
1737
|
}
|
|
1738
1738
|
function getShapeVisualStyle(element, _hasFill, fillColor, _strokeWidth, _strokeColor, animatesFill, animatesStroke, parentGroupFill) {
|
|
1739
1739
|
if (element.type === "group") {
|
|
1740
|
-
const fx2 =
|
|
1740
|
+
const fx2 = chunkNGWA6L3N_js.getComputedEffectStyle(element);
|
|
1741
1741
|
const groupStyle = {};
|
|
1742
1742
|
if (fx2.filter) {
|
|
1743
1743
|
groupStyle.filter = fx2.filter;
|
|
@@ -1747,13 +1747,13 @@ function getShapeVisualStyle(element, _hasFill, fillColor, _strokeWidth, _stroke
|
|
|
1747
1747
|
}
|
|
1748
1748
|
return groupStyle;
|
|
1749
1749
|
}
|
|
1750
|
-
if (!
|
|
1750
|
+
if (!chunkNGWA6L3N_js.hasShapeProperties(element)) {
|
|
1751
1751
|
return {};
|
|
1752
1752
|
}
|
|
1753
1753
|
const ss = element.shapeStyle;
|
|
1754
|
-
const fill = animatesFill ? void 0 :
|
|
1755
|
-
const fx =
|
|
1756
|
-
const stroke =
|
|
1754
|
+
const fill = animatesFill ? void 0 : chunkNGWA6L3N_js.getComputedFillStyle(element, parentGroupFill);
|
|
1755
|
+
const fx = chunkNGWA6L3N_js.getComputedEffectStyle(element);
|
|
1756
|
+
const stroke = chunkNGWA6L3N_js.getComputedStrokeStyle(element);
|
|
1757
1757
|
const base = {
|
|
1758
1758
|
// A gradient fill REPLACES the solid fill, it does not sit on top of it;
|
|
1759
1759
|
// the whole precedence lives in shared's `getComputedFillStyle`.
|
|
@@ -1792,7 +1792,7 @@ function getShapeVisualStyle(element, _hasFill, fillColor, _strokeWidth, _stroke
|
|
|
1792
1792
|
};
|
|
1793
1793
|
Object.assign(
|
|
1794
1794
|
base,
|
|
1795
|
-
|
|
1795
|
+
chunkNGWA6L3N_js.getAnimationColorBaseStyle(element, {
|
|
1796
1796
|
animatesFill,
|
|
1797
1797
|
animatesStroke,
|
|
1798
1798
|
parentGroupFill
|
|
@@ -1814,7 +1814,7 @@ function getShapeVisualStyle(element, _hasFill, fillColor, _strokeWidth, _stroke
|
|
|
1814
1814
|
},
|
|
1815
1815
|
element.id
|
|
1816
1816
|
);
|
|
1817
|
-
if (rendersCustomVectorPath(element) || rendersWedgeCalloutVector(element) ||
|
|
1817
|
+
if (rendersCustomVectorPath(element) || rendersWedgeCalloutVector(element) || chunkNGWA6L3N_js.isStrokeOnlyPresetElement(element)) {
|
|
1818
1818
|
base.backgroundColor = "transparent";
|
|
1819
1819
|
base.backgroundImage = void 0;
|
|
1820
1820
|
base.borderWidth = void 0;
|
|
@@ -1828,7 +1828,7 @@ function getShapeVisualStyle(element, _hasFill, fillColor, _strokeWidth, _stroke
|
|
|
1828
1828
|
if (rendersWedgeCalloutVector(element)) {
|
|
1829
1829
|
return base;
|
|
1830
1830
|
}
|
|
1831
|
-
const geometry =
|
|
1831
|
+
const geometry = chunkNGWA6L3N_js.resolveShapeGeometry(element);
|
|
1832
1832
|
switch (geometry.kind) {
|
|
1833
1833
|
case "bare":
|
|
1834
1834
|
return { backgroundColor: "transparent", borderWidth: 0, borderStyle: "none" };
|
|
@@ -1852,7 +1852,7 @@ function getShapeVisualStyle(element, _hasFill, fillColor, _strokeWidth, _stroke
|
|
|
1852
1852
|
}
|
|
1853
1853
|
}
|
|
1854
1854
|
function getConnectorPathGeometry2(element) {
|
|
1855
|
-
return
|
|
1855
|
+
return chunkNGWA6L3N_js.getConnectorPathGeometry(element);
|
|
1856
1856
|
}
|
|
1857
1857
|
var ARROW_SIZE_SCALE = {
|
|
1858
1858
|
sm: 0.6,
|
|
@@ -1921,11 +1921,11 @@ function strokeContext(shapeStyle, strokePaint, strokeWidth, dashArray) {
|
|
|
1921
1921
|
strokePaint,
|
|
1922
1922
|
strokeWidth,
|
|
1923
1923
|
dashArray,
|
|
1924
|
-
lineCap:
|
|
1924
|
+
lineCap: chunkNGWA6L3N_js.svgLineCap(shapeStyle?.lineCap),
|
|
1925
1925
|
lineJoin,
|
|
1926
1926
|
miterLimit,
|
|
1927
|
-
offsets:
|
|
1928
|
-
widths:
|
|
1927
|
+
offsets: chunkNGWA6L3N_js.getCompoundLineOffsets(shapeStyle?.compoundLine, strokeWidth),
|
|
1928
|
+
widths: chunkNGWA6L3N_js.getCompoundLineWidths(shapeStyle?.compoundLine, strokeWidth)
|
|
1929
1929
|
};
|
|
1930
1930
|
}
|
|
1931
1931
|
function strokeStrands(d, keyBase, ctx) {
|
|
@@ -1948,12 +1948,12 @@ function strokeStrands(d, keyBase, ctx) {
|
|
|
1948
1948
|
}
|
|
1949
1949
|
function renderCustomGeometryVector(pathData, pathWidth, pathHeight, structuredPaths, shapeStyle, hasFill, fillColor, fillOpacity, strokePaint, strokeWidth, dashArray, animatesFill = false, gradient) {
|
|
1950
1950
|
const ctx = strokeContext(shapeStyle, strokePaint, strokeWidth, dashArray);
|
|
1951
|
-
const subpaths = structuredPaths && structuredPaths.length > 0 ?
|
|
1951
|
+
const subpaths = structuredPaths && structuredPaths.length > 0 ? chunkNGWA6L3N_js.customGeometryPathsToSvgSubpaths(structuredPaths, pathWidth, pathHeight) : void 0;
|
|
1952
1952
|
const needsPerSubpath = subpaths !== void 0 && subpaths.some((sp) => sp.fillMode && sp.fillMode !== "norm" || sp.stroke === false);
|
|
1953
|
-
const gradientPaint = gradient ?
|
|
1953
|
+
const gradientPaint = gradient ? chunkNGWA6L3N_js.svgGradientFillRef(gradient) : void 0;
|
|
1954
1954
|
const nodes = [];
|
|
1955
1955
|
if (subpaths && needsPerSubpath) {
|
|
1956
|
-
const paints =
|
|
1956
|
+
const paints = chunkNGWA6L3N_js.buildSubpathPaints(subpaths, hasFill, fillColor, fillOpacity);
|
|
1957
1957
|
paints.forEach((paint, idx) => {
|
|
1958
1958
|
if (paint.fill !== "none") {
|
|
1959
1959
|
const mode = subpaths[idx]?.fillMode;
|
|
@@ -1982,7 +1982,7 @@ function renderCustomGeometryVector(pathData, pathWidth, pathHeight, structuredP
|
|
|
1982
1982
|
"path",
|
|
1983
1983
|
{
|
|
1984
1984
|
d: pathData,
|
|
1985
|
-
fill: animatesFill ? "inherit" : gradientPaint ??
|
|
1985
|
+
fill: animatesFill ? "inherit" : gradientPaint ?? chunkNGWA6L3N_js.colorWithOpacity(fillColor, fillOpacity),
|
|
1986
1986
|
stroke: "none",
|
|
1987
1987
|
vectorEffect: "non-scaling-stroke"
|
|
1988
1988
|
},
|
|
@@ -2008,14 +2008,14 @@ function renderCustomGeometryVector(pathData, pathWidth, pathHeight, structuredP
|
|
|
2008
2008
|
);
|
|
2009
2009
|
}
|
|
2010
2010
|
function renderVectorShape(element, hasFill, fillColor, strokeWidth, strokeColor, animatesFill, animatesStroke) {
|
|
2011
|
-
if (!
|
|
2011
|
+
if (!chunkNGWA6L3N_js.hasShapeProperties(element)) {
|
|
2012
2012
|
return null;
|
|
2013
2013
|
}
|
|
2014
2014
|
const normalizedType = (element.shapeType || "").toLowerCase();
|
|
2015
|
-
const fillPaint = animatesFill ? "inherit" :
|
|
2016
|
-
const strokePaint = animatesStroke ? "inherit" :
|
|
2017
|
-
const dashType =
|
|
2018
|
-
const dashArray =
|
|
2015
|
+
const fillPaint = animatesFill ? "inherit" : chunkNGWA6L3N_js.colorWithOpacity(fillColor, element.shapeStyle?.fillOpacity);
|
|
2016
|
+
const strokePaint = animatesStroke ? "inherit" : chunkNGWA6L3N_js.colorWithOpacity(strokeColor, element.shapeStyle?.strokeOpacity);
|
|
2017
|
+
const dashType = chunkNGWA6L3N_js.normalizeStrokeDashType(element.shapeStyle?.strokeDash);
|
|
2018
|
+
const dashArray = chunkNGWA6L3N_js.getSvgStrokeDasharray(
|
|
2019
2019
|
dashType,
|
|
2020
2020
|
Math.max(strokeWidth, 1),
|
|
2021
2021
|
element.shapeStyle?.customDashSegments
|
|
@@ -2096,13 +2096,13 @@ function renderVectorShape(element, hasFill, fillColor, strokeWidth, strokeColor
|
|
|
2096
2096
|
// container's `background-image` is suppressed for custom geometry, so
|
|
2097
2097
|
// without this the shape fell back to the parser's representative solid
|
|
2098
2098
|
// and lost every fade (issue #132).
|
|
2099
|
-
|
|
2099
|
+
chunkNGWA6L3N_js.buildSvgGradientDef(element.shapeStyle, element.id)
|
|
2100
2100
|
);
|
|
2101
2101
|
}
|
|
2102
|
-
if ((element.type === "image" || element.type === "picture") && strokeWidth > 0 && !
|
|
2102
|
+
if ((element.type === "image" || element.type === "picture") && strokeWidth > 0 && !chunkNGWA6L3N_js.buildStrokeOutline(element)) {
|
|
2103
2103
|
const width = Math.max(element.width, 1);
|
|
2104
2104
|
const height = Math.max(element.height, 1);
|
|
2105
|
-
const geometry =
|
|
2105
|
+
const geometry = chunkNGWA6L3N_js.getPresetShapeVectorGeometry(
|
|
2106
2106
|
element.shapeType || "rect",
|
|
2107
2107
|
width,
|
|
2108
2108
|
height,
|
|
@@ -2130,18 +2130,18 @@ function renderVectorShape(element, hasFill, fillColor, strokeWidth, strokeColor
|
|
|
2130
2130
|
);
|
|
2131
2131
|
}
|
|
2132
2132
|
}
|
|
2133
|
-
if (element.type === "shape" &&
|
|
2133
|
+
if (element.type === "shape" && chunkNGWA6L3N_js.isWedgeCalloutPresetShape(element.shapeType)) {
|
|
2134
2134
|
const width = Math.max(element.width, 1);
|
|
2135
2135
|
const height = Math.max(element.height, 1);
|
|
2136
|
-
const geometry =
|
|
2136
|
+
const geometry = chunkNGWA6L3N_js.getPresetShapeVectorGeometry(
|
|
2137
2137
|
element.shapeType,
|
|
2138
2138
|
width,
|
|
2139
2139
|
height,
|
|
2140
2140
|
element.shapeAdjustments
|
|
2141
2141
|
);
|
|
2142
2142
|
if (geometry) {
|
|
2143
|
-
const gradient =
|
|
2144
|
-
const gradientPaint = gradient ?
|
|
2143
|
+
const gradient = chunkNGWA6L3N_js.buildSvgGradientDef(element.shapeStyle, element.id);
|
|
2144
|
+
const gradientPaint = gradient ? chunkNGWA6L3N_js.svgGradientFillRef(gradient) : void 0;
|
|
2145
2145
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2146
2146
|
"svg",
|
|
2147
2147
|
{
|
|
@@ -2174,18 +2174,18 @@ function renderVectorShape(element, hasFill, fillColor, strokeWidth, strokeColor
|
|
|
2174
2174
|
);
|
|
2175
2175
|
}
|
|
2176
2176
|
}
|
|
2177
|
-
if (
|
|
2177
|
+
if (chunkNGWA6L3N_js.isCalloutShape(normalizedType)) {
|
|
2178
2178
|
const width = Math.max(element.width, 1);
|
|
2179
2179
|
const height = Math.max(element.height, 1);
|
|
2180
|
-
const geometry =
|
|
2180
|
+
const geometry = chunkNGWA6L3N_js.getCalloutLeaderLineGeometry(
|
|
2181
2181
|
normalizedType,
|
|
2182
2182
|
width,
|
|
2183
2183
|
height,
|
|
2184
2184
|
element.shapeAdjustments
|
|
2185
2185
|
);
|
|
2186
2186
|
if (geometry && geometry.points.length >= 2) {
|
|
2187
|
-
const leaderPath =
|
|
2188
|
-
const bounds =
|
|
2187
|
+
const leaderPath = chunkNGWA6L3N_js.buildCalloutLeaderLineSvgPath(geometry);
|
|
2188
|
+
const bounds = chunkNGWA6L3N_js.getCalloutViewBoxBounds(width, height, geometry);
|
|
2189
2189
|
const lineStroke = Math.max(strokeWidth, 1);
|
|
2190
2190
|
const offsetLeft = bounds.minX;
|
|
2191
2191
|
const offsetTop = bounds.minY;
|
|
@@ -2248,10 +2248,10 @@ function renderVectorShape(element, hasFill, fillColor, strokeWidth, strokeColor
|
|
|
2248
2248
|
const endArrowW = element.shapeStyle?.connectorEndArrowWidth;
|
|
2249
2249
|
const endArrowL = element.shapeStyle?.connectorEndArrowLength;
|
|
2250
2250
|
const compoundLine = element.shapeStyle?.compoundLine;
|
|
2251
|
-
const connectorLineCap =
|
|
2251
|
+
const connectorLineCap = chunkNGWA6L3N_js.svgLineCap(element.shapeStyle?.lineCap);
|
|
2252
2252
|
const hitTargetWidth = Math.max(strokeWidth * 3, 12);
|
|
2253
|
-
const offsets =
|
|
2254
|
-
const widths =
|
|
2253
|
+
const offsets = chunkNGWA6L3N_js.getCompoundLineOffsets(compoundLine, strokeWidth);
|
|
2254
|
+
const widths = chunkNGWA6L3N_js.getCompoundLineWidths(compoundLine, strokeWidth);
|
|
2255
2255
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2256
2256
|
"svg",
|
|
2257
2257
|
{
|
|
@@ -2318,15 +2318,15 @@ function parseGradientFillCss(gradFill) {
|
|
|
2318
2318
|
}
|
|
2319
2319
|
const rawStops = stops.map((gs) => {
|
|
2320
2320
|
const pos = Number.parseInt(String(gs["@_pos"] || "0"), 10) / 1e3;
|
|
2321
|
-
const color =
|
|
2322
|
-
const opacity =
|
|
2321
|
+
const color = chunkNGWA6L3N_js.parseDrawingColor(gs) ?? "#888888";
|
|
2322
|
+
const opacity = chunkNGWA6L3N_js.parseDrawingColorOpacity(gs);
|
|
2323
2323
|
return { position: pos, color, opacity };
|
|
2324
2324
|
}).sort((a, b) => a.position - b.position);
|
|
2325
|
-
const stopStrings = rawStops.map((s) => `${
|
|
2325
|
+
const stopStrings = rawStops.map((s) => `${chunkNGWA6L3N_js.colorWithOpacity(s.color, s.opacity)} ${s.position.toFixed(1)}%`).join(", ");
|
|
2326
2326
|
const lin = gradFill["a:lin"];
|
|
2327
2327
|
if (lin) {
|
|
2328
2328
|
const angRaw = Number.parseInt(String(lin["@_ang"] || "0"), 10);
|
|
2329
|
-
const angleDeg = Math.round(
|
|
2329
|
+
const angleDeg = Math.round(chunkNGWA6L3N_js.ooxmlGradientAngleToCssDegrees(angRaw / 6e4));
|
|
2330
2330
|
return `linear-gradient(${angleDeg}deg, ${stopStrings})`;
|
|
2331
2331
|
}
|
|
2332
2332
|
const path = gradFill["a:path"];
|
|
@@ -2340,7 +2340,7 @@ function parseGradientFillCss(gradFill) {
|
|
|
2340
2340
|
b: Number.parseInt(String(fillToRectXml["@_b"] || "0"), 10) / 1e5
|
|
2341
2341
|
} : void 0;
|
|
2342
2342
|
if (pathType === "rect") {
|
|
2343
|
-
return
|
|
2343
|
+
return chunkNGWA6L3N_js.buildRectPathGradient(rawStops, void 0, fillToRect);
|
|
2344
2344
|
}
|
|
2345
2345
|
let cx = 50;
|
|
2346
2346
|
let cy = 50;
|
|
@@ -2362,8 +2362,8 @@ function parsePatternFillCss(pattFill) {
|
|
|
2362
2362
|
if (!pattFill) {
|
|
2363
2363
|
return void 0;
|
|
2364
2364
|
}
|
|
2365
|
-
const fgColor =
|
|
2366
|
-
const bgColor =
|
|
2365
|
+
const fgColor = chunkNGWA6L3N_js.parseDrawingColor(pattFill["a:fgClr"]) ?? "#000000";
|
|
2366
|
+
const bgColor = chunkNGWA6L3N_js.parseDrawingColor(pattFill["a:bgClr"]) ?? "#ffffff";
|
|
2367
2367
|
const preset = String(pattFill["@_prst"] || "ltDnDiag");
|
|
2368
2368
|
switch (preset) {
|
|
2369
2369
|
case "ltHorz":
|
|
@@ -2474,11 +2474,11 @@ function parseCellBorders(cellProperties) {
|
|
|
2474
2474
|
const prstDash = ln["a:prstDash"];
|
|
2475
2475
|
const dashVal = prstDash ? String(prstDash["@_val"] || "") : void 0;
|
|
2476
2476
|
const cssBorderStyle = ooxmlDashToCss(dashVal);
|
|
2477
|
-
const color =
|
|
2477
|
+
const color = chunkNGWA6L3N_js.parseDrawingColor(ln["a:solidFill"]);
|
|
2478
2478
|
if (color) {
|
|
2479
|
-
const opacity =
|
|
2479
|
+
const opacity = chunkNGWA6L3N_js.parseDrawingColorOpacity(ln["a:solidFill"]);
|
|
2480
2480
|
const key = `${edge.prefix}`;
|
|
2481
|
-
borderStyle[key] = `${widthPx}px ${cssBorderStyle} ${
|
|
2481
|
+
borderStyle[key] = `${widthPx}px ${cssBorderStyle} ${chunkNGWA6L3N_js.colorWithOpacity(color, opacity)}`;
|
|
2482
2482
|
}
|
|
2483
2483
|
}
|
|
2484
2484
|
return borderStyle;
|
|
@@ -2491,7 +2491,7 @@ function parseCellTextEffects(runProps) {
|
|
|
2491
2491
|
const textShadowParts = [];
|
|
2492
2492
|
const outerShdw = effectLst["a:outerShdw"];
|
|
2493
2493
|
if (outerShdw) {
|
|
2494
|
-
const shdwColor =
|
|
2494
|
+
const shdwColor = chunkNGWA6L3N_js.parseDrawingColor(outerShdw);
|
|
2495
2495
|
if (shdwColor) {
|
|
2496
2496
|
const blurRad = Number.parseInt(String(outerShdw["@_blurRad"] || "0"), 10);
|
|
2497
2497
|
const blurPx = blurRad > 0 ? Math.round(blurRad / 12700) : 0;
|
|
@@ -2509,7 +2509,7 @@ function parseCellTextEffects(runProps) {
|
|
|
2509
2509
|
}
|
|
2510
2510
|
const glow = effectLst["a:glow"];
|
|
2511
2511
|
if (glow) {
|
|
2512
|
-
const glowColor =
|
|
2512
|
+
const glowColor = chunkNGWA6L3N_js.parseDrawingColor(glow);
|
|
2513
2513
|
if (glowColor) {
|
|
2514
2514
|
const glowRad = Number.parseInt(String(glow["@_rad"] || "0"), 10);
|
|
2515
2515
|
const glowPx = glowRad > 0 ? Math.round(glowRad / 12700) : 2;
|
|
@@ -2531,11 +2531,11 @@ function extractCellText(cellXml) {
|
|
|
2531
2531
|
const textParts = [];
|
|
2532
2532
|
const runs = ensureArrayValue(paragraph["a:r"]);
|
|
2533
2533
|
runs.forEach((run) => {
|
|
2534
|
-
textParts.push(
|
|
2534
|
+
textParts.push(chunkNGWA6L3N_js.xmlText(run["a:t"]) ?? "");
|
|
2535
2535
|
});
|
|
2536
2536
|
const fields = ensureArrayValue(paragraph["a:fld"]);
|
|
2537
2537
|
fields.forEach((field) => {
|
|
2538
|
-
textParts.push(
|
|
2538
|
+
textParts.push(chunkNGWA6L3N_js.xmlText(field["a:t"]) ?? "");
|
|
2539
2539
|
});
|
|
2540
2540
|
paragraphTexts.push(textParts.join(""));
|
|
2541
2541
|
});
|
|
@@ -2579,10 +2579,10 @@ function extractTableCellStyle(cellXml, fallbackStyle, schemeColorOverrides) {
|
|
|
2579
2579
|
if (runProps?.["@_u"] !== void 0) {
|
|
2580
2580
|
cellStyle.textDecorationLine = runProps["@_u"] === "sng" ? "underline" : "none";
|
|
2581
2581
|
}
|
|
2582
|
-
const runColor =
|
|
2582
|
+
const runColor = chunkNGWA6L3N_js.parseDrawingColor(runProps?.["a:solidFill"], schemeColorOverrides) || chunkNGWA6L3N_js.parseDrawingColor(runProps?.["a:highlight"], schemeColorOverrides);
|
|
2583
2583
|
if (runColor) {
|
|
2584
|
-
const opacity =
|
|
2585
|
-
cellStyle.color =
|
|
2584
|
+
const opacity = chunkNGWA6L3N_js.parseDrawingColorOpacity(runProps?.["a:solidFill"]);
|
|
2585
|
+
cellStyle.color = chunkNGWA6L3N_js.colorWithOpacity(runColor, opacity);
|
|
2586
2586
|
}
|
|
2587
2587
|
const fontFamily = runProps?.["a:latin"]?.["@_typeface"] || runProps?.["a:ea"]?.["@_typeface"] || runProps?.["a:cs"]?.["@_typeface"];
|
|
2588
2588
|
if (fontFamily) {
|
|
@@ -2592,15 +2592,15 @@ function extractTableCellStyle(cellXml, fallbackStyle, schemeColorOverrides) {
|
|
|
2592
2592
|
cellStyle.textAlign = parseParagraphAlignment(paragraphProperties["@_algn"]);
|
|
2593
2593
|
}
|
|
2594
2594
|
const cellProperties = cellXml["a:tcPr"];
|
|
2595
|
-
const cellFill =
|
|
2595
|
+
const cellFill = chunkNGWA6L3N_js.parseDrawingColor(
|
|
2596
2596
|
cellProperties?.["a:solidFill"],
|
|
2597
2597
|
schemeColorOverrides
|
|
2598
2598
|
);
|
|
2599
2599
|
if (cellFill) {
|
|
2600
|
-
const opacity =
|
|
2600
|
+
const opacity = chunkNGWA6L3N_js.parseDrawingColorOpacity(
|
|
2601
2601
|
cellProperties?.["a:solidFill"]
|
|
2602
2602
|
);
|
|
2603
|
-
cellStyle.backgroundColor =
|
|
2603
|
+
cellStyle.backgroundColor = chunkNGWA6L3N_js.colorWithOpacity(cellFill, opacity);
|
|
2604
2604
|
} else {
|
|
2605
2605
|
const gradCss = parseGradientFillCss(cellProperties?.["a:gradFill"]);
|
|
2606
2606
|
if (gradCss) {
|
|
@@ -2615,16 +2615,16 @@ function extractTableCellStyle(cellXml, fallbackStyle, schemeColorOverrides) {
|
|
|
2615
2615
|
const edgeBorders = parseCellBorders(cellProperties);
|
|
2616
2616
|
Object.assign(cellStyle, edgeBorders);
|
|
2617
2617
|
if (!cellStyle.borderLeftColor && !cellStyle.borderRightColor && !cellStyle.borderTopColor && !cellStyle.borderBottomColor) {
|
|
2618
|
-
const borderColor =
|
|
2618
|
+
const borderColor = chunkNGWA6L3N_js.parseDrawingColor(
|
|
2619
2619
|
cellProperties?.["a:lnL"]?.["a:solidFill"],
|
|
2620
2620
|
schemeColorOverrides
|
|
2621
|
-
) ||
|
|
2621
|
+
) || chunkNGWA6L3N_js.parseDrawingColor(
|
|
2622
2622
|
cellProperties?.["a:lnR"]?.["a:solidFill"],
|
|
2623
2623
|
schemeColorOverrides
|
|
2624
|
-
) ||
|
|
2624
|
+
) || chunkNGWA6L3N_js.parseDrawingColor(
|
|
2625
2625
|
cellProperties?.["a:lnT"]?.["a:solidFill"],
|
|
2626
2626
|
schemeColorOverrides
|
|
2627
|
-
) ||
|
|
2627
|
+
) || chunkNGWA6L3N_js.parseDrawingColor(
|
|
2628
2628
|
cellProperties?.["a:lnB"]?.["a:solidFill"],
|
|
2629
2629
|
schemeColorOverrides
|
|
2630
2630
|
);
|
|
@@ -2696,7 +2696,7 @@ function getTableCellBandStyle2(element, rowIndex, cellIndex, rowCount, columnCo
|
|
|
2696
2696
|
if (element.type !== "table") {
|
|
2697
2697
|
return void 0;
|
|
2698
2698
|
}
|
|
2699
|
-
return
|
|
2699
|
+
return chunkNGWA6L3N_js.getTableCellBandStyle(element.tableData, rowIndex, cellIndex, rowCount, columnCount, {
|
|
2700
2700
|
tableStyleMap: styleCtx?.tableStyleMap,
|
|
2701
2701
|
colorScheme: styleCtx?.theme?.colorScheme,
|
|
2702
2702
|
fontScheme: styleCtx?.theme?.fontScheme
|
|
@@ -2776,7 +2776,7 @@ function renderTableCellContent(cell, fallbackText) {
|
|
|
2776
2776
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
2777
2777
|
"span",
|
|
2778
2778
|
{
|
|
2779
|
-
style: { position: "relative", ...
|
|
2779
|
+
style: { position: "relative", ...chunkNGWA6L3N_js.cellRunStyle(run) },
|
|
2780
2780
|
children: run.text
|
|
2781
2781
|
},
|
|
2782
2782
|
`r-${index}`
|
|
@@ -2784,7 +2784,7 @@ function renderTableCellContent(cell, fallbackText) {
|
|
|
2784
2784
|
});
|
|
2785
2785
|
}
|
|
2786
2786
|
function getCellDiagonalBorders2(style, tableData, pos, styleCtx) {
|
|
2787
|
-
return
|
|
2787
|
+
return chunkNGWA6L3N_js.getCellDiagonalBorders(style, tableData, pos, {
|
|
2788
2788
|
tableStyleMap: styleCtx?.tableStyleMap,
|
|
2789
2789
|
colorScheme: styleCtx?.theme?.colorScheme,
|
|
2790
2790
|
fontScheme: styleCtx?.theme?.fontScheme
|
|
@@ -2917,7 +2917,7 @@ function TableResizeOverlay({
|
|
|
2917
2917
|
const containerRef = React7.useRef(null);
|
|
2918
2918
|
const [rowBounds, setRowBounds] = React7.useState([]);
|
|
2919
2919
|
const dragRef = React7.useRef(null);
|
|
2920
|
-
const colBoundaries = React7.useMemo(() =>
|
|
2920
|
+
const colBoundaries = React7.useMemo(() => chunkNGWA6L3N_js.computeColumnBoundaries(columnWidths), [columnWidths]);
|
|
2921
2921
|
const measureRows = React7.useCallback(() => {
|
|
2922
2922
|
const container = containerRef.current;
|
|
2923
2923
|
if (!container) {
|
|
@@ -2964,11 +2964,11 @@ function TableResizeOverlay({
|
|
|
2964
2964
|
const rect = containerRef.current.getBoundingClientRect();
|
|
2965
2965
|
if (e.clientX !== drag.startPos && drag.type === "col" && drag.initialWidths && onResizeColumns) {
|
|
2966
2966
|
const deltaProp = (e.clientX - drag.startPos) / rect.width;
|
|
2967
|
-
onResizeColumns(
|
|
2967
|
+
onResizeColumns(chunkNGWA6L3N_js.computeResizedColumnWidths(drag.initialWidths, drag.index, deltaProp));
|
|
2968
2968
|
} else if (e.clientY !== drag.startPos && drag.type === "row" && onResizeRow) {
|
|
2969
2969
|
const deltaY = e.clientY - drag.startPos;
|
|
2970
|
-
const newHeight =
|
|
2971
|
-
drag.initialRowHeight ??
|
|
2970
|
+
const newHeight = chunkNGWA6L3N_js.computeResizedRowHeight(
|
|
2971
|
+
drag.initialRowHeight ?? chunkNGWA6L3N_js.DEFAULT_ROW_HEIGHT,
|
|
2972
2972
|
deltaY
|
|
2973
2973
|
);
|
|
2974
2974
|
onResizeRow(drag.index, newHeight);
|
|
@@ -3006,7 +3006,7 @@ function TableResizeOverlay({
|
|
|
3006
3006
|
e.stopPropagation();
|
|
3007
3007
|
const table = containerRef.current?.querySelector("table");
|
|
3008
3008
|
const tr = table?.querySelectorAll("tbody > tr")[index];
|
|
3009
|
-
const actualHeight = tr?.offsetHeight ??
|
|
3009
|
+
const actualHeight = tr?.offsetHeight ?? chunkNGWA6L3N_js.DEFAULT_ROW_HEIGHT;
|
|
3010
3010
|
document.body.style.cursor = "row-resize";
|
|
3011
3011
|
document.body.style.userSelect = "none";
|
|
3012
3012
|
dragRef.current = {
|
|
@@ -3046,14 +3046,14 @@ function renderTableFromTableData(element, textStyle, options) {
|
|
|
3046
3046
|
const rowCount = tableData.rows.length;
|
|
3047
3047
|
const columnCount = tableData.columnWidths.length;
|
|
3048
3048
|
const selectedCell = options?.selectedCell || null;
|
|
3049
|
-
const isEditable = Boolean(options?.editable) &&
|
|
3049
|
+
const isEditable = Boolean(options?.editable) && chunkNGWA6L3N_js.canDrillDown(element);
|
|
3050
3050
|
const hasCellSelectionHandler = typeof options?.onSelectCell === "function";
|
|
3051
3051
|
const sharedCtx = {
|
|
3052
3052
|
tableStyleMap: options?.styleCtx?.tableStyleMap,
|
|
3053
3053
|
colorScheme: options?.styleCtx?.theme?.colorScheme,
|
|
3054
3054
|
fontScheme: options?.styleCtx?.theme?.fontScheme
|
|
3055
3055
|
};
|
|
3056
|
-
const cellCss = (cell, rowIndex, cellIndex) =>
|
|
3056
|
+
const cellCss = (cell, rowIndex, cellIndex) => chunkNGWA6L3N_js.tableCellCss(
|
|
3057
3057
|
tableData,
|
|
3058
3058
|
cell,
|
|
3059
3059
|
{ rowIndex, cellIndex, rowCount, columnCount },
|
|
@@ -3066,7 +3066,7 @@ function renderTableFromTableData(element, textStyle, options) {
|
|
|
3066
3066
|
}
|
|
3067
3067
|
const first = selectedCell.selectedCells[0];
|
|
3068
3068
|
const last = selectedCell.selectedCells[selectedCell.selectedCells.length - 1];
|
|
3069
|
-
return
|
|
3069
|
+
return chunkNGWA6L3N_js.computeSelectionRect(first.row, first.col, last.row, last.col, tableData);
|
|
3070
3070
|
})();
|
|
3071
3071
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
3072
3072
|
TableResizeOverlay,
|
|
@@ -3087,9 +3087,9 @@ function renderTableFromTableData(element, textStyle, options) {
|
|
|
3087
3087
|
{
|
|
3088
3088
|
className: "w-full h-full border-collapse table-fixed",
|
|
3089
3089
|
style: {
|
|
3090
|
-
fontFamily:
|
|
3090
|
+
fontFamily: chunkNGWA6L3N_js.DEFAULT_FONT_FAMILY,
|
|
3091
3091
|
// `a:tblPr@rtl` mirrors the column order for RTL decks.
|
|
3092
|
-
...
|
|
3092
|
+
...chunkNGWA6L3N_js.tableContainerCss(tableData)
|
|
3093
3093
|
},
|
|
3094
3094
|
children: [
|
|
3095
3095
|
tableData.columnWidths.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("colgroup", { children: tableData.columnWidths.map((w, ci) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -3108,7 +3108,7 @@ function renderTableFromTableData(element, textStyle, options) {
|
|
|
3108
3108
|
return null;
|
|
3109
3109
|
}
|
|
3110
3110
|
const isCellSelected = selectedCell?.rowIndex === rowIndex && selectedCell?.columnIndex === cellIndex;
|
|
3111
|
-
const isInMultiSelection =
|
|
3111
|
+
const isInMultiSelection = chunkNGWA6L3N_js.isCellInRect(rowIndex, cellIndex, selectionRect);
|
|
3112
3112
|
const isCellEditing = isCellSelected && selectedCell?.isEditing;
|
|
3113
3113
|
const diag = getCellDiagonalBorders2(
|
|
3114
3114
|
cell.style,
|
|
@@ -3137,7 +3137,7 @@ function renderTableFromTableData(element, textStyle, options) {
|
|
|
3137
3137
|
}
|
|
3138
3138
|
event.stopPropagation();
|
|
3139
3139
|
if (event.shiftKey && selectedCell) {
|
|
3140
|
-
const rect =
|
|
3140
|
+
const rect = chunkNGWA6L3N_js.computeSelectionRect(
|
|
3141
3141
|
selectedCell.rowIndex,
|
|
3142
3142
|
selectedCell.columnIndex,
|
|
3143
3143
|
rowIndex,
|
|
@@ -3147,7 +3147,7 @@ function renderTableFromTableData(element, textStyle, options) {
|
|
|
3147
3147
|
options?.onSelectCell?.({
|
|
3148
3148
|
rowIndex: selectedCell.rowIndex,
|
|
3149
3149
|
columnIndex: selectedCell.columnIndex,
|
|
3150
|
-
selectedCells:
|
|
3150
|
+
selectedCells: chunkNGWA6L3N_js.rectToCells(rect)
|
|
3151
3151
|
});
|
|
3152
3152
|
} else {
|
|
3153
3153
|
options?.onSelectCell?.({
|
|
@@ -3208,10 +3208,10 @@ function renderTableElement(element, textStyle, options) {
|
|
|
3208
3208
|
if (tableEl2.tableData && tableEl2.tableData.rows.length > 0) {
|
|
3209
3209
|
return renderTableFromTableData(tableEl2, textStyle, options);
|
|
3210
3210
|
}
|
|
3211
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children:
|
|
3211
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children: chunkI5LPYESF_js.translationsEn["pptx.table.title"] });
|
|
3212
3212
|
}
|
|
3213
3213
|
const selectedCell = options?.selectedCell || null;
|
|
3214
|
-
const isEditable = Boolean(options?.editable) &&
|
|
3214
|
+
const isEditable = Boolean(options?.editable) && chunkNGWA6L3N_js.canDrillDown(element);
|
|
3215
3215
|
const hasCellSelectionHandler = typeof options?.onSelectCell === "function";
|
|
3216
3216
|
const tableEl = element;
|
|
3217
3217
|
const xmlSelectionRect = (() => {
|
|
@@ -3223,7 +3223,7 @@ function renderTableElement(element, textStyle, options) {
|
|
|
3223
3223
|
}
|
|
3224
3224
|
const first = selectedCell.selectedCells[0];
|
|
3225
3225
|
const last = selectedCell.selectedCells[selectedCell.selectedCells.length - 1];
|
|
3226
|
-
return
|
|
3226
|
+
return chunkNGWA6L3N_js.computeSelectionRect(first.row, first.col, last.row, last.col, tableEl.tableData);
|
|
3227
3227
|
})();
|
|
3228
3228
|
const schemeOverrides = options?.styleCtx?.theme?.colorScheme ? options.styleCtx.theme.colorScheme : void 0;
|
|
3229
3229
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -3245,9 +3245,9 @@ function renderTableElement(element, textStyle, options) {
|
|
|
3245
3245
|
{
|
|
3246
3246
|
className: "w-full h-full border-collapse table-fixed",
|
|
3247
3247
|
style: {
|
|
3248
|
-
fontFamily:
|
|
3248
|
+
fontFamily: chunkNGWA6L3N_js.DEFAULT_FONT_FAMILY,
|
|
3249
3249
|
// `a:tblPr@rtl` mirrors the column order for RTL decks.
|
|
3250
|
-
...
|
|
3250
|
+
...chunkNGWA6L3N_js.tableContainerCss(tableEl.tableData)
|
|
3251
3251
|
},
|
|
3252
3252
|
children: [
|
|
3253
3253
|
parsedTable.columnPercentages.length > 0 ? /* @__PURE__ */ jsxRuntime.jsx("colgroup", { children: parsedTable.columnPercentages.map((percentage, columnIndex) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -3304,7 +3304,7 @@ function renderTableElement(element, textStyle, options) {
|
|
|
3304
3304
|
color: textStyle.color,
|
|
3305
3305
|
...bandStyle,
|
|
3306
3306
|
...xmlCellStyle,
|
|
3307
|
-
...tdCellOverride ?
|
|
3307
|
+
...tdCellOverride ? chunkNGWA6L3N_js.cellStyleToCss(tdCellOverride) : void 0,
|
|
3308
3308
|
...diag ? { position: "relative" } : void 0
|
|
3309
3309
|
};
|
|
3310
3310
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -3314,7 +3314,7 @@ function renderTableElement(element, textStyle, options) {
|
|
|
3314
3314
|
"border px-1 py-0.5 align-top",
|
|
3315
3315
|
isEditable && hasCellSelectionHandler ? "border-blue-200/70 cursor-cell" : "border-white/30",
|
|
3316
3316
|
selectedCell?.rowIndex === rowIndex && selectedCell?.columnIndex === cellIndex ? "ring-1 ring-inset ring-blue-500" : null,
|
|
3317
|
-
|
|
3317
|
+
chunkNGWA6L3N_js.isCellInRect(rowIndex, cellIndex, xmlSelectionRect) && !(selectedCell?.rowIndex === rowIndex && selectedCell?.columnIndex === cellIndex) ? "bg-blue-500/15 ring-1 ring-inset ring-blue-400/50" : null
|
|
3318
3318
|
),
|
|
3319
3319
|
colSpan,
|
|
3320
3320
|
rowSpan: rSpan,
|
|
@@ -3325,7 +3325,7 @@ function renderTableElement(element, textStyle, options) {
|
|
|
3325
3325
|
}
|
|
3326
3326
|
event.stopPropagation();
|
|
3327
3327
|
if (event.shiftKey && selectedCell && tableEl.tableData) {
|
|
3328
|
-
const rect =
|
|
3328
|
+
const rect = chunkNGWA6L3N_js.computeSelectionRect(
|
|
3329
3329
|
selectedCell.rowIndex,
|
|
3330
3330
|
selectedCell.columnIndex,
|
|
3331
3331
|
rowIndex,
|
|
@@ -3335,7 +3335,7 @@ function renderTableElement(element, textStyle, options) {
|
|
|
3335
3335
|
options?.onSelectCell?.({
|
|
3336
3336
|
rowIndex: selectedCell.rowIndex,
|
|
3337
3337
|
columnIndex: selectedCell.columnIndex,
|
|
3338
|
-
selectedCells:
|
|
3338
|
+
selectedCells: chunkNGWA6L3N_js.rectToCells(rect)
|
|
3339
3339
|
});
|
|
3340
3340
|
} else {
|
|
3341
3341
|
options?.onSelectCell?.({
|
|
@@ -3394,23 +3394,23 @@ function renderTableElement(element, textStyle, options) {
|
|
|
3394
3394
|
);
|
|
3395
3395
|
}
|
|
3396
3396
|
function partAttrs(part) {
|
|
3397
|
-
return part ?
|
|
3397
|
+
return part ? chunkNGWA6L3N_js.chartPartToAttrs(part) : void 0;
|
|
3398
3398
|
}
|
|
3399
3399
|
function resolveReactPalette(chartData) {
|
|
3400
3400
|
if (chartData.colorPalette && chartData.colorPalette.length > 0) {
|
|
3401
3401
|
return chartData.colorPalette;
|
|
3402
3402
|
}
|
|
3403
|
-
return [...
|
|
3403
|
+
return [...chunkNGWA6L3N_js.getChartStylePalette(chartData.style?.styleId)];
|
|
3404
3404
|
}
|
|
3405
3405
|
function buildReactChartViewModel(element) {
|
|
3406
3406
|
if (element.type !== "chart" || !element.chartData) {
|
|
3407
|
-
return
|
|
3407
|
+
return chunkNGWA6L3N_js.buildChartViewModel(element);
|
|
3408
3408
|
}
|
|
3409
3409
|
const palette = resolveReactPalette(element.chartData), themedElement = {
|
|
3410
3410
|
...element,
|
|
3411
3411
|
chartData: { ...element.chartData, colorPalette: palette }
|
|
3412
3412
|
};
|
|
3413
|
-
return
|
|
3413
|
+
return chunkNGWA6L3N_js.buildChartViewModel(themedElement);
|
|
3414
3414
|
}
|
|
3415
3415
|
function renderPrimitive(prim, key) {
|
|
3416
3416
|
switch (prim.kind) {
|
|
@@ -3561,7 +3561,7 @@ function renderText(t, key) {
|
|
|
3561
3561
|
);
|
|
3562
3562
|
}
|
|
3563
3563
|
function renderChartViewModel(elementId, vm, preserveAspectRatio = "none") {
|
|
3564
|
-
const legendItems =
|
|
3564
|
+
const legendItems = chunkNGWA6L3N_js.computeChartLegendLayout(vm);
|
|
3565
3565
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
3566
3566
|
"svg",
|
|
3567
3567
|
{
|
|
@@ -3701,17 +3701,17 @@ function renderChartViewModel(elementId, vm, preserveAspectRatio = "none") {
|
|
|
3701
3701
|
}
|
|
3702
3702
|
function renderChartElement(element) {
|
|
3703
3703
|
if (element.type !== "chart") {
|
|
3704
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children:
|
|
3704
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children: chunkI5LPYESF_js.translationsEn["pptx.chart.heading"] });
|
|
3705
3705
|
}
|
|
3706
3706
|
const chartData = element.chartData;
|
|
3707
3707
|
if (!chartData || chartData.series.length === 0) {
|
|
3708
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children:
|
|
3708
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children: chunkI5LPYESF_js.translationsEn["pptx.chart.heading"] });
|
|
3709
3709
|
}
|
|
3710
|
-
const kind =
|
|
3710
|
+
const kind = chunkNGWA6L3N_js.resolveChartKind(chartData.chartType ?? "bar");
|
|
3711
3711
|
return renderChartViewModel(
|
|
3712
3712
|
element.id,
|
|
3713
3713
|
buildReactChartViewModel(element),
|
|
3714
|
-
|
|
3714
|
+
chunkNGWA6L3N_js.chartPreserveAspectRatio(kind)
|
|
3715
3715
|
);
|
|
3716
3716
|
}
|
|
3717
3717
|
|
|
@@ -3731,14 +3731,14 @@ function buildNotesPdf(pages) {
|
|
|
3731
3731
|
notes: page.notes,
|
|
3732
3732
|
slideNumber: page.slideNumber
|
|
3733
3733
|
}));
|
|
3734
|
-
const bytes =
|
|
3734
|
+
const bytes = chunkNGWA6L3N_js.buildNotesPdfBytes(images, meta);
|
|
3735
3735
|
const blob = new Blob([bytes], { type: "application/pdf" });
|
|
3736
3736
|
return URL.createObjectURL(blob);
|
|
3737
3737
|
}
|
|
3738
3738
|
|
|
3739
3739
|
// src/viewer/utils/pdf-builder-slides.ts
|
|
3740
3740
|
function buildPdfFromTiledImageData(pages) {
|
|
3741
|
-
const bytes =
|
|
3741
|
+
const bytes = chunkNGWA6L3N_js.buildTiledSlidesPdfBytes(pages);
|
|
3742
3742
|
const blob = new Blob([bytes], { type: "application/pdf" });
|
|
3743
3743
|
return URL.createObjectURL(blob);
|
|
3744
3744
|
}
|
|
@@ -3747,7 +3747,7 @@ function buildPdfFromTiledImageData(pages) {
|
|
|
3747
3747
|
var activePreview = null;
|
|
3748
3748
|
function startPreviewAnimation(elementId, preset, options) {
|
|
3749
3749
|
stopPreviewAnimation();
|
|
3750
|
-
const descriptor =
|
|
3750
|
+
const descriptor = chunkNGWA6L3N_js.buildPreviewAnimation(preset, options);
|
|
3751
3751
|
if (!descriptor) {
|
|
3752
3752
|
return;
|
|
3753
3753
|
}
|
|
@@ -3760,7 +3760,7 @@ function startMotionPathPreview(elementId, path, options) {
|
|
|
3760
3760
|
return;
|
|
3761
3761
|
}
|
|
3762
3762
|
const stage = domEl.offsetParent;
|
|
3763
|
-
const descriptor =
|
|
3763
|
+
const descriptor = chunkNGWA6L3N_js.buildMotionPathPreview({
|
|
3764
3764
|
path,
|
|
3765
3765
|
slideWidth: stage?.offsetWidth || DEFAULT_PREVIEW_SLIDE_WIDTH,
|
|
3766
3766
|
slideHeight: stage?.offsetHeight || DEFAULT_PREVIEW_SLIDE_HEIGHT,
|