pptx-react-viewer 2.16.6 → 2.16.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +4 -0
- package/dist/{AiChatPanel-NQFSMKIJ.mjs → AiChatPanel-FR55MUQF.mjs} +3 -9
- package/dist/AiChatPanel-FR55MUQF.mjs.br +0 -0
- package/dist/AiChatPanel-FR55MUQF.mjs.gz +0 -0
- package/dist/{AiChatPanel-T6UN6LME.js → AiChatPanel-VNHHHM2S.js} +23 -29
- package/dist/AiChatPanel-VNHHHM2S.js.br +0 -0
- package/dist/AiChatPanel-VNHHHM2S.js.gz +0 -0
- package/dist/{Model3DScene-SIST7CIH.js → Model3DScene-KVYGN53Y.js} +2 -2
- package/dist/Model3DScene-KVYGN53Y.js.br +0 -0
- package/dist/Model3DScene-KVYGN53Y.js.gz +0 -0
- package/dist/{Model3DScene-4D4GSRIB.mjs → Model3DScene-LYWXBJMA.mjs} +1 -1
- package/dist/Model3DScene-LYWXBJMA.mjs.br +0 -0
- package/dist/Model3DScene-LYWXBJMA.mjs.gz +0 -0
- package/dist/{SurfaceChart3DScene-GRM24VBC.js → SurfaceChart3DScene-E2PSO2FF.js} +2 -2
- package/dist/SurfaceChart3DScene-E2PSO2FF.js.br +0 -0
- package/dist/SurfaceChart3DScene-E2PSO2FF.js.gz +0 -0
- package/dist/{SurfaceChart3DScene-ZT7L27U4.mjs → SurfaceChart3DScene-Z4IIOBDM.mjs} +1 -1
- package/dist/{SurfaceChart3DScene-ZT7L27U4.mjs.br → SurfaceChart3DScene-Z4IIOBDM.mjs.br} +0 -0
- package/dist/SurfaceChart3DScene-Z4IIOBDM.mjs.gz +0 -0
- package/dist/{chunk-VDQD3ZOU.mjs → chunk-4OWZJUAI.mjs} +7 -2
- package/dist/chunk-4OWZJUAI.mjs.br +0 -0
- package/dist/chunk-4OWZJUAI.mjs.gz +0 -0
- package/dist/{chunk-6F76GHPE.mjs → chunk-ACCX43JJ.mjs} +15 -1410
- package/dist/chunk-ACCX43JJ.mjs.br +0 -0
- package/dist/chunk-ACCX43JJ.mjs.gz +0 -0
- package/dist/{chunk-YZHBUMVU.mjs → chunk-EPYWIXP7.mjs} +1114 -527
- package/dist/chunk-EPYWIXP7.mjs.br +0 -0
- package/dist/chunk-EPYWIXP7.mjs.gz +0 -0
- package/dist/{chunk-GUDJDY4J.js → chunk-LYOEX3FB.js} +342 -427
- package/dist/chunk-LYOEX3FB.js.br +0 -0
- package/dist/chunk-LYOEX3FB.js.gz +0 -0
- package/dist/{chunk-NI5GSVZU.mjs → chunk-NAMV6PRF.mjs} +6 -91
- package/dist/chunk-NAMV6PRF.mjs.br +0 -0
- package/dist/chunk-NAMV6PRF.mjs.gz +0 -0
- package/dist/{chunk-H36QL5T5.js → chunk-QBRZ3VIC.js} +258 -1683
- package/dist/chunk-QBRZ3VIC.js.br +0 -0
- package/dist/chunk-QBRZ3VIC.js.gz +0 -0
- package/dist/{chunk-RZYOOWZN.js → chunk-SADF35N7.js} +1165 -13
- package/dist/chunk-SADF35N7.js.br +0 -0
- package/dist/chunk-SADF35N7.js.gz +0 -0
- package/dist/{chunk-DYGKE2LY.js → chunk-SGJP2EUI.js} +2128 -1541
- package/dist/chunk-SGJP2EUI.js.br +0 -0
- package/dist/chunk-SGJP2EUI.js.gz +0 -0
- package/dist/{chunk-PUBYHZYJ.mjs → chunk-SKQCLCBF.mjs} +1132 -6
- package/dist/chunk-SKQCLCBF.mjs.br +0 -0
- package/dist/chunk-SKQCLCBF.mjs.gz +0 -0
- package/dist/{chunk-YDYAOW6D.js → chunk-YT25W6IR.js} +9 -3
- package/dist/chunk-YT25W6IR.js.br +0 -0
- package/dist/chunk-YT25W6IR.js.gz +0 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.js +39 -39
- 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.d.ts +27 -7
- package/dist/internals.d.ts.map +1 -1
- 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/pptx-viewer.css +1 -1
- package/dist/pptx-viewer.css.br +0 -0
- package/dist/pptx-viewer.css.gz +0 -0
- package/dist/{useViewerBuildingBlocks-DpzU8NZ_.d.ts → useViewerBuildingBlocks-Xddn6SFj.d.ts} +13 -1
- package/dist/useViewerBuildingBlocks-Xddn6SFj.d.ts.map +1 -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-NQFSMKIJ.mjs.br +0 -0
- package/dist/AiChatPanel-NQFSMKIJ.mjs.gz +0 -0
- package/dist/AiChatPanel-T6UN6LME.js.br +0 -0
- package/dist/AiChatPanel-T6UN6LME.js.gz +0 -0
- package/dist/Model3DScene-4D4GSRIB.mjs.br +0 -0
- package/dist/Model3DScene-4D4GSRIB.mjs.gz +0 -0
- package/dist/Model3DScene-SIST7CIH.js.br +0 -0
- package/dist/Model3DScene-SIST7CIH.js.gz +0 -0
- package/dist/SurfaceChart3DScene-GRM24VBC.js.br +0 -0
- package/dist/SurfaceChart3DScene-GRM24VBC.js.gz +0 -0
- package/dist/SurfaceChart3DScene-ZT7L27U4.mjs.gz +0 -0
- package/dist/chunk-6F76GHPE.mjs.br +0 -0
- package/dist/chunk-6F76GHPE.mjs.gz +0 -0
- package/dist/chunk-DYGKE2LY.js.br +0 -0
- package/dist/chunk-DYGKE2LY.js.gz +0 -0
- package/dist/chunk-GUDJDY4J.js.br +0 -0
- package/dist/chunk-GUDJDY4J.js.gz +0 -0
- package/dist/chunk-H36QL5T5.js.br +0 -0
- package/dist/chunk-H36QL5T5.js.gz +0 -0
- package/dist/chunk-NI5GSVZU.mjs.br +0 -0
- package/dist/chunk-NI5GSVZU.mjs.gz +0 -0
- package/dist/chunk-PUBYHZYJ.mjs.br +0 -0
- package/dist/chunk-PUBYHZYJ.mjs.gz +0 -0
- package/dist/chunk-RZYOOWZN.js.br +0 -0
- package/dist/chunk-RZYOOWZN.js.gz +0 -0
- package/dist/chunk-VDQD3ZOU.mjs.br +0 -0
- package/dist/chunk-VDQD3ZOU.mjs.gz +0 -0
- package/dist/chunk-YDYAOW6D.js.br +0 -0
- package/dist/chunk-YDYAOW6D.js.gz +0 -0
- package/dist/chunk-YZHBUMVU.mjs.br +0 -0
- package/dist/chunk-YZHBUMVU.mjs.gz +0 -0
- package/dist/useViewerBuildingBlocks-DpzU8NZ_.d.ts.map +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { translationsEn } from './chunk-5IUEPQTK.mjs';
|
|
2
|
-
import { SHAPE_PRESET_DEFS, computeValueRangeForChart, VIEWER_SHORTCUT_REFERENCE, getAnimationInitialStyle, cloneHistorySnapshot, hasShapeProperties,
|
|
2
|
+
import { SHAPE_PRESET_DEFS, computeValueRangeForChart, VIEWER_SHORTCUT_REFERENCE, getAnimationInitialStyle, cloneHistorySnapshot, hasShapeProperties, getImageFitStyle, isImageLikeElement, runMediaCommand, findMediaElementByElementId, mediaPlaybackAttributes, buildTextBlockStyle, hasTextProperties, toCssWritingMode, toCssTextOrientation, toCssVerticalDirection, getKinsokuLineBreakStyles, buildTextBody3DSceneStyle, resolveParagraphRtl, resolveParagraphAlign, resolveCssTextAlign, resolveParagraphSpacing, resolveParagraphStrutFontSize, colorWithOpacity, normalizeHexColor, build3DExtrusionData, isIdentityRectClip, getResolvedShapeClipPath, isStrokeOnlyPresetElement, normalizeStrokeDashType, buildCssGradientFromShapeStyle, buildShadowCssFromShapeStyle, buildInnerShadowCssFromShapeStyle, suppressesCssBorder, buildMultiLayerShadowCss, buildGlowBoxShadow, getCompoundLineBoxShadow, getSoftEdgeFilterId, getEffectDagFilter, buildPatternFillCss, buildReflectionCss, getCssBorderDashStyle, getCompoundLineBorderWidth, getSvgStrokeDasharray, buildSvgGradientDef, isCalloutShape, getCalloutLeaderLineGeometry, buildCalloutLeaderLineSvgPath, getCalloutViewBoxBounds, svgLineCap, getCompoundLineOffsets, getCompoundLineWidths, computeSelectionRect, DEFAULT_FONT_FAMILY, cellStyleToCss, rectToCells, isCellInRect, buildChartViewModel, buildNotesPdfBytes, buildSlidesPdfBytes, buildPreviewAnimation, buildMotionPathPreview, getRoundRectRadiusPx2, mediaFallbackVisual, registerPersistentAudio, substituteFieldText, resolveUnderlineDecorationStyle, resolveAutoFitFontScale, getSubstituteFontFamily, parsePanoseString, hasDistinctScriptFonts, pieceLetterSpacing, resolveMetricTrackingPx, buildTextReflectionCss, getTextAlphaOpacity, buildTextRunFilterChain, buildTextShadowCss, TEXT_BUILD_ID_SEP, buildTextBuildSpec, textBuildSpanStyle, sanitizeGradientStops, getGradientTileFlipCss, getGradientTileRectCss, apply3dEffects, clampUnitInterval, customGeometryPathsToSvgSubpaths, svgGradientFillRef, computeColumnBoundaries, getTableCellBandStyle, parseDrawingColor, parseDrawingColorOpacity, getCellDiagonalBorders, getChartStylePalette, chartAreaFill, computeLayout, valueToY, formatAxisValue, computeLayoutOptions, splitSeriesByAxis, computeValueRange, getSecondaryValueAxis, seriesColor, paletteColor, resolveRegionCode, normalizeValue, sequentialColorScale, mediaFallbackIcon, mediaFallbackLabelKey, MEDIA_CHROME_ATTRIBUTE, convertOmmlToMathMl, sanitizeMathMl, buildTextFillCss, resolvePictureBullet, computeResizedColumnWidths, computeResizedRowHeight, DEFAULT_ROW_HEIGHT, ooxmlGradientAngleToCssDegrees, generateLogTicks, formatAxisValueWithUnits, getDisplayUnitLabel, splitRunForMetrics, hexToRgbChannels, chartPartToAttrs, segmentByScript, resolveFontForScript } from './chunk-SKQCLCBF.mjs';
|
|
3
3
|
import { clsx } from 'clsx';
|
|
4
4
|
import { twMerge } from 'tailwind-merge';
|
|
5
5
|
import React6, { useState, useEffect, useMemo, Suspense, useRef, useCallback, useLayoutEffect } from 'react';
|
|
@@ -267,29 +267,6 @@ function isConnectorOrLineElement(element) {
|
|
|
267
267
|
return st === "connector" || st === "line" || element.shapeType === "line";
|
|
268
268
|
}
|
|
269
269
|
|
|
270
|
-
// src/viewer/utils/template-editing.ts
|
|
271
|
-
function partitionTemplateElements(slides) {
|
|
272
|
-
const templateElementsBySlideId = {};
|
|
273
|
-
const nextSlides = slides.map((slide) => {
|
|
274
|
-
const template = slide.elements.filter((el) => isTemplateElement(el));
|
|
275
|
-
if (template.length === 0) {
|
|
276
|
-
return slide;
|
|
277
|
-
}
|
|
278
|
-
templateElementsBySlideId[slide.id] = template;
|
|
279
|
-
return { ...slide, elements: slide.elements.filter((el) => !isTemplateElement(el)) };
|
|
280
|
-
});
|
|
281
|
-
return { slides: nextSlides, templateElementsBySlideId };
|
|
282
|
-
}
|
|
283
|
-
function buildSaveSlides(slides, templateElementsBySlideId) {
|
|
284
|
-
return slides.map((slide) => {
|
|
285
|
-
const template = templateElementsBySlideId[slide.id];
|
|
286
|
-
if (!template || template.length === 0) {
|
|
287
|
-
return slide;
|
|
288
|
-
}
|
|
289
|
-
return { ...slide, elements: [...template, ...slide.elements] };
|
|
290
|
-
});
|
|
291
|
-
}
|
|
292
|
-
|
|
293
270
|
// src/viewer/utils/image-style.ts
|
|
294
271
|
function getImageMaskStyle(element) {
|
|
295
272
|
if (!hasShapeProperties(element)) {
|
|
@@ -1917,31 +1894,6 @@ function renderSingleSegment(element, segment, segmentIndex, fallbackColor, find
|
|
|
1917
1894
|
}
|
|
1918
1895
|
return spanNode;
|
|
1919
1896
|
}
|
|
1920
|
-
|
|
1921
|
-
// src/viewer/utils/text-paragraph-spacing.ts
|
|
1922
|
-
var PT_TO_PX = 96 / 72;
|
|
1923
|
-
function resolveParagraphSpacing(input) {
|
|
1924
|
-
const { paraProps, bodyStyle, isFirst, isLast, spaceFirstLast } = input;
|
|
1925
|
-
const result = {};
|
|
1926
|
-
const before = paraProps?.paragraphSpacingBefore ?? bodyStyle?.paragraphSpacingBefore;
|
|
1927
|
-
if (typeof before === "number" && before > 0 && (!isFirst || spaceFirstLast)) {
|
|
1928
|
-
result.marginTop = before;
|
|
1929
|
-
}
|
|
1930
|
-
const after = paraProps?.paragraphSpacingAfter ?? bodyStyle?.paragraphSpacingAfter;
|
|
1931
|
-
if (typeof after === "number" && after > 0 && (!isLast || spaceFirstLast)) {
|
|
1932
|
-
result.marginBottom = after;
|
|
1933
|
-
}
|
|
1934
|
-
const hasOwnLine = paraProps?.lineSpacing !== void 0 || paraProps?.lineSpacingExactPt !== void 0;
|
|
1935
|
-
const lineSrc = hasOwnLine ? paraProps : bodyStyle;
|
|
1936
|
-
const exactPt = lineSrc?.lineSpacingExactPt;
|
|
1937
|
-
const multiplier = lineSrc?.lineSpacing;
|
|
1938
|
-
if (typeof exactPt === "number" && exactPt > 0) {
|
|
1939
|
-
result.lineHeight = `${exactPt * PT_TO_PX}px`;
|
|
1940
|
-
} else if (typeof multiplier === "number" && multiplier > 0) {
|
|
1941
|
-
result.lineHeight = proportionalLineHeight(multiplier);
|
|
1942
|
-
}
|
|
1943
|
-
return result;
|
|
1944
|
-
}
|
|
1945
1897
|
function groupSegmentsIntoParagraphs(segments) {
|
|
1946
1898
|
const paragraphs = [];
|
|
1947
1899
|
let current = [];
|
|
@@ -2020,18 +1972,18 @@ function renderTextSegments(element, fallbackColor, emptyFallback, findHighlight
|
|
|
2020
1972
|
paraSegments.length > 0 ? paraSegments.map(({ segment }) => segment) : terminator ? [terminator] : [],
|
|
2021
1973
|
bodyStyle?.fontSize
|
|
2022
1974
|
);
|
|
2023
|
-
const hasParaSpacing = spacing.
|
|
1975
|
+
const hasParaSpacing = spacing.spaceBeforePx !== void 0 || spacing.spaceAfterPx !== void 0 || spacing.lineHeight !== void 0;
|
|
2024
1976
|
const paraStyle = {
|
|
2025
1977
|
...paraKinsokuStyle
|
|
2026
1978
|
};
|
|
2027
1979
|
if (strutFontSize !== void 0) {
|
|
2028
1980
|
paraStyle.fontSize = strutFontSize;
|
|
2029
1981
|
}
|
|
2030
|
-
if (spacing.
|
|
2031
|
-
paraStyle.marginTop = spacing.
|
|
1982
|
+
if (spacing.spaceBeforePx !== void 0) {
|
|
1983
|
+
paraStyle.marginTop = spacing.spaceBeforePx;
|
|
2032
1984
|
}
|
|
2033
|
-
if (spacing.
|
|
2034
|
-
paraStyle.marginBottom = spacing.
|
|
1985
|
+
if (spacing.spaceAfterPx !== void 0) {
|
|
1986
|
+
paraStyle.marginBottom = spacing.spaceAfterPx;
|
|
2035
1987
|
}
|
|
2036
1988
|
if (spacing.lineHeight !== void 0) {
|
|
2037
1989
|
paraStyle.lineHeight = spacing.lineHeight;
|
|
@@ -3385,194 +3337,15 @@ function extractTableCellStyle(cellXml, fallbackStyle, schemeColorOverrides) {
|
|
|
3385
3337
|
}
|
|
3386
3338
|
|
|
3387
3339
|
// src/viewer/utils/table-band-style.tsx
|
|
3388
|
-
function
|
|
3389
|
-
if (!fill) {
|
|
3390
|
-
return void 0;
|
|
3391
|
-
}
|
|
3392
|
-
const key = fill.schemeColor;
|
|
3393
|
-
const base = colorScheme ? colorScheme[key] : void 0;
|
|
3394
|
-
if (!base) {
|
|
3395
|
-
return void 0;
|
|
3396
|
-
}
|
|
3397
|
-
let color = base;
|
|
3398
|
-
if (fill.tint !== void 0 && fill.tint > 0) {
|
|
3399
|
-
color = tintColor2(color, fill.tint / 1e5);
|
|
3400
|
-
}
|
|
3401
|
-
if (fill.shade !== void 0 && fill.shade > 0) {
|
|
3402
|
-
color = shadeColor2(color, 1 - fill.shade / 1e5);
|
|
3403
|
-
}
|
|
3404
|
-
return color;
|
|
3405
|
-
}
|
|
3406
|
-
function applyTableStyleText(text, colorScheme, style, fontScheme) {
|
|
3407
|
-
if (!text) {
|
|
3408
|
-
return false;
|
|
3409
|
-
}
|
|
3410
|
-
let applied = false;
|
|
3411
|
-
if (text.bold) {
|
|
3412
|
-
style.fontWeight = 700;
|
|
3413
|
-
applied = true;
|
|
3414
|
-
}
|
|
3415
|
-
if (text.italic) {
|
|
3416
|
-
style.fontStyle = "italic";
|
|
3417
|
-
applied = true;
|
|
3418
|
-
}
|
|
3419
|
-
if (text.underline) {
|
|
3420
|
-
style.textDecorationLine = "underline";
|
|
3421
|
-
applied = true;
|
|
3422
|
-
}
|
|
3423
|
-
if (text.fontFace) {
|
|
3424
|
-
style.fontFamily = text.fontFace;
|
|
3425
|
-
applied = true;
|
|
3426
|
-
} else {
|
|
3427
|
-
const refFont = resolveFontRefIdx(text.fontRefIdx, fontScheme);
|
|
3428
|
-
if (refFont) {
|
|
3429
|
-
style.fontFamily = refFont;
|
|
3430
|
-
applied = true;
|
|
3431
|
-
}
|
|
3432
|
-
}
|
|
3433
|
-
if (text.fontSchemeColor && colorScheme) {
|
|
3434
|
-
const base = colorScheme[text.fontSchemeColor];
|
|
3435
|
-
if (base) {
|
|
3436
|
-
let color = base;
|
|
3437
|
-
if (text.fontTint !== void 0 && text.fontTint > 0) {
|
|
3438
|
-
color = tintColor2(color, text.fontTint / 1e5);
|
|
3439
|
-
}
|
|
3440
|
-
if (text.fontShade !== void 0 && text.fontShade > 0) {
|
|
3441
|
-
color = shadeColor2(color, 1 - text.fontShade / 1e5);
|
|
3442
|
-
}
|
|
3443
|
-
style.color = color;
|
|
3444
|
-
applied = true;
|
|
3445
|
-
}
|
|
3446
|
-
}
|
|
3447
|
-
return applied;
|
|
3448
|
-
}
|
|
3449
|
-
function resolveTableStyleEntry(tableStyleId, tableStyleMap) {
|
|
3450
|
-
if (!tableStyleId || !tableStyleMap) {
|
|
3451
|
-
return void 0;
|
|
3452
|
-
}
|
|
3453
|
-
const direct = tableStyleMap[tableStyleId];
|
|
3454
|
-
if (direct) {
|
|
3455
|
-
return direct;
|
|
3456
|
-
}
|
|
3457
|
-
const normalised = tableStyleId.trim().toUpperCase();
|
|
3458
|
-
const withBraces = normalised.startsWith("{") ? normalised : `{${normalised}}`;
|
|
3459
|
-
return tableStyleMap[withBraces];
|
|
3460
|
-
}
|
|
3461
|
-
function getTableCellBandStyle(element, rowIndex, cellIndex, rowCount, columnCount, styleCtx) {
|
|
3340
|
+
function getTableCellBandStyle2(element, rowIndex, cellIndex, rowCount, columnCount, styleCtx) {
|
|
3462
3341
|
if (element.type !== "table") {
|
|
3463
3342
|
return void 0;
|
|
3464
3343
|
}
|
|
3465
|
-
|
|
3466
|
-
|
|
3467
|
-
|
|
3468
|
-
|
|
3469
|
-
|
|
3470
|
-
const colorScheme = styleCtx?.theme?.colorScheme;
|
|
3471
|
-
const fontScheme = styleCtx?.theme?.fontScheme;
|
|
3472
|
-
const resolveFill = (fill, fallback) => resolveTableStyleFillColor(fill, colorScheme) ?? fallback;
|
|
3473
|
-
const style = {};
|
|
3474
|
-
let applied = false;
|
|
3475
|
-
if (styleEntry?.wholeTblFill) {
|
|
3476
|
-
const wholeBg = resolveFill(styleEntry.wholeTblFill, "");
|
|
3477
|
-
if (wholeBg) {
|
|
3478
|
-
style.backgroundColor = wholeBg;
|
|
3479
|
-
applied = true;
|
|
3480
|
-
}
|
|
3481
|
-
}
|
|
3482
|
-
if (applyTableStyleText(styleEntry?.wholeTblText, colorScheme, style, fontScheme)) {
|
|
3483
|
-
applied = true;
|
|
3484
|
-
}
|
|
3485
|
-
const bandStartRow = td.firstRowHeader ? 1 : 0;
|
|
3486
|
-
const bandEndRow = td.lastRow ? rowCount - 1 : rowCount;
|
|
3487
|
-
if (td.bandedRows && rowIndex >= bandStartRow && rowIndex < bandEndRow) {
|
|
3488
|
-
const bandIndex = rowIndex - bandStartRow;
|
|
3489
|
-
const rowCycle = Math.max(td.bandRowCycle ?? 1, 1);
|
|
3490
|
-
const bandGroup = Math.floor(bandIndex / rowCycle) % 2;
|
|
3491
|
-
if (bandGroup === 0) {
|
|
3492
|
-
const band1Bg = resolveFill(styleEntry?.band1HFill, "rgba(217, 226, 243, 0.5)");
|
|
3493
|
-
style.backgroundColor = band1Bg;
|
|
3494
|
-
applied = true;
|
|
3495
|
-
} else if (styleEntry?.band2HFill) {
|
|
3496
|
-
const band2Bg = resolveFill(styleEntry.band2HFill, "");
|
|
3497
|
-
if (band2Bg) {
|
|
3498
|
-
style.backgroundColor = band2Bg;
|
|
3499
|
-
applied = true;
|
|
3500
|
-
}
|
|
3501
|
-
}
|
|
3502
|
-
}
|
|
3503
|
-
if (td.bandedColumns) {
|
|
3504
|
-
const isFirstCol = td.firstCol;
|
|
3505
|
-
const isLastCol = td.lastCol;
|
|
3506
|
-
const colBandIndex = isFirstCol && cellIndex > 0 ? cellIndex - 1 : cellIndex;
|
|
3507
|
-
const skipCol = isFirstCol && cellIndex === 0 || isLastCol && cellIndex === columnCount - 1;
|
|
3508
|
-
if (!skipCol) {
|
|
3509
|
-
const colCycle = Math.max(td.bandColCycle ?? 1, 1);
|
|
3510
|
-
const colBandGroup = Math.floor(colBandIndex / colCycle) % 2;
|
|
3511
|
-
if (colBandGroup === 0) {
|
|
3512
|
-
if (!style.backgroundColor || !td.bandedRows) {
|
|
3513
|
-
const band1Bg = resolveFill(styleEntry?.band1VFill, "rgba(217, 226, 243, 0.35)");
|
|
3514
|
-
style.backgroundColor = band1Bg;
|
|
3515
|
-
applied = true;
|
|
3516
|
-
}
|
|
3517
|
-
} else if (styleEntry?.band2VFill) {
|
|
3518
|
-
if (!style.backgroundColor || !td.bandedRows) {
|
|
3519
|
-
const band2Bg = resolveFill(styleEntry.band2VFill, "");
|
|
3520
|
-
if (band2Bg) {
|
|
3521
|
-
style.backgroundColor = band2Bg;
|
|
3522
|
-
applied = true;
|
|
3523
|
-
}
|
|
3524
|
-
}
|
|
3525
|
-
}
|
|
3526
|
-
}
|
|
3527
|
-
}
|
|
3528
|
-
if (td.firstRowHeader && rowIndex === 0) {
|
|
3529
|
-
style.fontWeight = 700;
|
|
3530
|
-
if (styleEntry?.firstRowFill?.noFill) {
|
|
3531
|
-
style.backgroundColor = "transparent";
|
|
3532
|
-
} else {
|
|
3533
|
-
style.backgroundColor = resolveFill(styleEntry?.firstRowFill, "rgba(68, 114, 196, 0.85)");
|
|
3534
|
-
style.color = "#ffffff";
|
|
3535
|
-
}
|
|
3536
|
-
applyTableStyleText(styleEntry?.firstRowText, colorScheme, style, fontScheme);
|
|
3537
|
-
applied = true;
|
|
3538
|
-
}
|
|
3539
|
-
if (td.lastRow && rowIndex === rowCount - 1) {
|
|
3540
|
-
style.fontWeight = 700;
|
|
3541
|
-
if (styleEntry?.lastRowFill) {
|
|
3542
|
-
const lastRowBg = resolveFill(styleEntry.lastRowFill, "");
|
|
3543
|
-
if (lastRowBg) {
|
|
3544
|
-
style.backgroundColor = lastRowBg;
|
|
3545
|
-
}
|
|
3546
|
-
}
|
|
3547
|
-
style.borderTopWidth = 2;
|
|
3548
|
-
style.borderTopColor = resolveFill(styleEntry?.firstRowFill, "rgba(68, 114, 196, 0.7)");
|
|
3549
|
-
style.borderTopStyle = "solid";
|
|
3550
|
-
applyTableStyleText(styleEntry?.lastRowText, colorScheme, style, fontScheme);
|
|
3551
|
-
applied = true;
|
|
3552
|
-
}
|
|
3553
|
-
if (td.firstCol && cellIndex === 0) {
|
|
3554
|
-
style.fontWeight = 700;
|
|
3555
|
-
if (styleEntry?.firstColFill) {
|
|
3556
|
-
const firstColBg = resolveFill(styleEntry.firstColFill, "");
|
|
3557
|
-
if (firstColBg) {
|
|
3558
|
-
style.backgroundColor = firstColBg;
|
|
3559
|
-
}
|
|
3560
|
-
}
|
|
3561
|
-
applyTableStyleText(styleEntry?.firstColText, colorScheme, style, fontScheme);
|
|
3562
|
-
applied = true;
|
|
3563
|
-
}
|
|
3564
|
-
if (td.lastCol && cellIndex === columnCount - 1) {
|
|
3565
|
-
style.fontWeight = 700;
|
|
3566
|
-
if (styleEntry?.lastColFill) {
|
|
3567
|
-
const lastColBg = resolveFill(styleEntry.lastColFill, "");
|
|
3568
|
-
if (lastColBg) {
|
|
3569
|
-
style.backgroundColor = lastColBg;
|
|
3570
|
-
}
|
|
3571
|
-
}
|
|
3572
|
-
applyTableStyleText(styleEntry?.lastColText, colorScheme, style, fontScheme);
|
|
3573
|
-
applied = true;
|
|
3574
|
-
}
|
|
3575
|
-
return applied ? style : void 0;
|
|
3344
|
+
return getTableCellBandStyle(element.tableData, rowIndex, cellIndex, rowCount, columnCount, {
|
|
3345
|
+
tableStyleMap: styleCtx?.tableStyleMap,
|
|
3346
|
+
colorScheme: styleCtx?.theme?.colorScheme,
|
|
3347
|
+
fontScheme: styleCtx?.theme?.fontScheme
|
|
3348
|
+
});
|
|
3576
3349
|
}
|
|
3577
3350
|
|
|
3578
3351
|
// src/viewer/utils/table-data-parse.tsx
|
|
@@ -3753,144 +3526,6 @@ function TableCellInput({
|
|
|
3753
3526
|
}
|
|
3754
3527
|
);
|
|
3755
3528
|
}
|
|
3756
|
-
|
|
3757
|
-
// src/viewer/utils/table-render-helpers.ts
|
|
3758
|
-
function cellStyleToCss(style) {
|
|
3759
|
-
if (!style) {
|
|
3760
|
-
return {};
|
|
3761
|
-
}
|
|
3762
|
-
const css = {};
|
|
3763
|
-
if (style.fontSize) {
|
|
3764
|
-
css.fontSize = style.fontSize;
|
|
3765
|
-
}
|
|
3766
|
-
if (style.bold) {
|
|
3767
|
-
css.fontWeight = "bold";
|
|
3768
|
-
}
|
|
3769
|
-
if (style.italic) {
|
|
3770
|
-
css.fontStyle = "italic";
|
|
3771
|
-
}
|
|
3772
|
-
if (style.underline) {
|
|
3773
|
-
css.textDecorationLine = "underline";
|
|
3774
|
-
}
|
|
3775
|
-
if (style.color) {
|
|
3776
|
-
css.color = style.color;
|
|
3777
|
-
}
|
|
3778
|
-
if (style.gradientFillCss) {
|
|
3779
|
-
css.background = style.gradientFillCss;
|
|
3780
|
-
} else if (style.fillMode === "pattern" && style.patternFillPreset) {
|
|
3781
|
-
const fg = normalizeHexColor(style.patternFillForeground, "#000000");
|
|
3782
|
-
const bg = normalizeHexColor(style.patternFillBackground, "#ffffff");
|
|
3783
|
-
const svgPattern = getPatternSvg(style.patternFillPreset, fg, bg);
|
|
3784
|
-
if (svgPattern) {
|
|
3785
|
-
const encoded = encodeURIComponent(svgPattern);
|
|
3786
|
-
css.backgroundImage = `url("data:image/svg+xml,${encoded}")`;
|
|
3787
|
-
css.backgroundColor = bg;
|
|
3788
|
-
} else if (style.backgroundColor) {
|
|
3789
|
-
css.backgroundColor = style.backgroundColor;
|
|
3790
|
-
}
|
|
3791
|
-
} else if (style.backgroundColor) {
|
|
3792
|
-
css.backgroundColor = style.backgroundColor;
|
|
3793
|
-
}
|
|
3794
|
-
if (style.align) {
|
|
3795
|
-
css.textAlign = style.align;
|
|
3796
|
-
} else if (style.anchorCtr) {
|
|
3797
|
-
css.textAlign = "center";
|
|
3798
|
-
}
|
|
3799
|
-
if (style.vAlign) {
|
|
3800
|
-
css.verticalAlign = style.vAlign;
|
|
3801
|
-
}
|
|
3802
|
-
if (style.horzOverflow === "clip") {
|
|
3803
|
-
css.overflowX = "hidden";
|
|
3804
|
-
} else if (style.horzOverflow === "overflow") {
|
|
3805
|
-
css.overflowX = "visible";
|
|
3806
|
-
}
|
|
3807
|
-
if (style.textDirection) {
|
|
3808
|
-
switch (style.textDirection) {
|
|
3809
|
-
case "vert":
|
|
3810
|
-
case "eaVert":
|
|
3811
|
-
case "wordArtVert":
|
|
3812
|
-
case "wordArtVertRtl":
|
|
3813
|
-
css.writingMode = "vertical-rl";
|
|
3814
|
-
break;
|
|
3815
|
-
case "vert270":
|
|
3816
|
-
case "mongolianVert":
|
|
3817
|
-
css.writingMode = "vertical-lr";
|
|
3818
|
-
break;
|
|
3819
|
-
}
|
|
3820
|
-
if (style.textDirection === "wordArtVert") {
|
|
3821
|
-
css.textOrientation = "upright";
|
|
3822
|
-
} else if (css.writingMode) {
|
|
3823
|
-
css.textOrientation = "mixed";
|
|
3824
|
-
}
|
|
3825
|
-
if (style.textDirection === "wordArtVertRtl") {
|
|
3826
|
-
css.direction = "rtl";
|
|
3827
|
-
}
|
|
3828
|
-
}
|
|
3829
|
-
const borderEdges = [
|
|
3830
|
-
{
|
|
3831
|
-
prefix: "borderTop",
|
|
3832
|
-
width: style.borderTopWidth,
|
|
3833
|
-
color: style.borderTopColor,
|
|
3834
|
-
dash: style.borderTopDash
|
|
3835
|
-
},
|
|
3836
|
-
{
|
|
3837
|
-
prefix: "borderBottom",
|
|
3838
|
-
width: style.borderBottomWidth,
|
|
3839
|
-
color: style.borderBottomColor,
|
|
3840
|
-
dash: style.borderBottomDash
|
|
3841
|
-
},
|
|
3842
|
-
{
|
|
3843
|
-
prefix: "borderLeft",
|
|
3844
|
-
width: style.borderLeftWidth,
|
|
3845
|
-
color: style.borderLeftColor,
|
|
3846
|
-
dash: style.borderLeftDash
|
|
3847
|
-
},
|
|
3848
|
-
{
|
|
3849
|
-
prefix: "borderRight",
|
|
3850
|
-
width: style.borderRightWidth,
|
|
3851
|
-
color: style.borderRightColor,
|
|
3852
|
-
dash: style.borderRightDash
|
|
3853
|
-
}
|
|
3854
|
-
];
|
|
3855
|
-
for (const edge of borderEdges) {
|
|
3856
|
-
if (edge.width || edge.color) {
|
|
3857
|
-
const w = edge.width ?? 1;
|
|
3858
|
-
const c = edge.color ?? style.borderColor ?? "#000000";
|
|
3859
|
-
const s = ooxmlDashToCssBorderStyle(edge.dash);
|
|
3860
|
-
css[edge.prefix] = `${w}px ${s} ${c}`;
|
|
3861
|
-
}
|
|
3862
|
-
}
|
|
3863
|
-
if (style.marginLeft) {
|
|
3864
|
-
css.paddingLeft = style.marginLeft;
|
|
3865
|
-
}
|
|
3866
|
-
if (style.marginRight) {
|
|
3867
|
-
css.paddingRight = style.marginRight;
|
|
3868
|
-
}
|
|
3869
|
-
if (style.marginTop) {
|
|
3870
|
-
css.paddingTop = style.marginTop;
|
|
3871
|
-
}
|
|
3872
|
-
if (style.marginBottom) {
|
|
3873
|
-
css.paddingBottom = style.marginBottom;
|
|
3874
|
-
}
|
|
3875
|
-
const textShadowParts = [];
|
|
3876
|
-
if (style.textShadowColor) {
|
|
3877
|
-
const offX = style.textShadowOffsetX ?? 1;
|
|
3878
|
-
const offY = style.textShadowOffsetY ?? 1;
|
|
3879
|
-
const blur = style.textShadowBlur ?? 0;
|
|
3880
|
-
textShadowParts.push(`${offX}px ${offY}px ${blur}px ${style.textShadowColor}`);
|
|
3881
|
-
}
|
|
3882
|
-
if (style.textGlowColor) {
|
|
3883
|
-
const radius = style.textGlowRadius ?? 2;
|
|
3884
|
-
textShadowParts.push(`0px 0px ${radius}px ${style.textGlowColor}`);
|
|
3885
|
-
}
|
|
3886
|
-
if (textShadowParts.length > 0) {
|
|
3887
|
-
css.textShadow = textShadowParts.join(", ");
|
|
3888
|
-
}
|
|
3889
|
-
if (style.cell3D) {
|
|
3890
|
-
Object.assign(css, cell3DBevelCss(style.cell3D));
|
|
3891
|
-
}
|
|
3892
|
-
return css;
|
|
3893
|
-
}
|
|
3894
3529
|
function TableResizeOverlay({
|
|
3895
3530
|
children,
|
|
3896
3531
|
columnWidths,
|
|
@@ -4243,7 +3878,7 @@ function renderTableElement(element, textStyle, options) {
|
|
|
4243
3878
|
const colSpan = Number.isFinite(gridSpanRaw) && gridSpanRaw > 1 ? gridSpanRaw : void 0;
|
|
4244
3879
|
const rowSpanRaw = Number.parseInt(String(cell["@_rowSpan"] || ""), 10);
|
|
4245
3880
|
const rSpan = Number.isFinite(rowSpanRaw) && rowSpanRaw > 1 ? rowSpanRaw : void 0;
|
|
4246
|
-
const bandStyle =
|
|
3881
|
+
const bandStyle = getTableCellBandStyle2(
|
|
4247
3882
|
element,
|
|
4248
3883
|
rowIndex,
|
|
4249
3884
|
cellIndex,
|
|
@@ -6184,7 +5819,7 @@ function FailedToLoad() {
|
|
|
6184
5819
|
var LazySurfaceChart3DScene = React6.lazy(
|
|
6185
5820
|
async () => {
|
|
6186
5821
|
try {
|
|
6187
|
-
return await import('./SurfaceChart3DScene-
|
|
5822
|
+
return await import('./SurfaceChart3DScene-Z4IIOBDM.mjs');
|
|
6188
5823
|
} catch {
|
|
6189
5824
|
return { default: FailedToLoad };
|
|
6190
5825
|
}
|
|
@@ -6859,1036 +6494,6 @@ function renderChartElement(element) {
|
|
|
6859
6494
|
}
|
|
6860
6495
|
return renderDefaultBarChart(element);
|
|
6861
6496
|
}
|
|
6862
|
-
var PALETTES = {
|
|
6863
|
-
colorful1: ["#3b82f6", "#22c55e", "#f97316", "#eab308", "#a855f7", "#ec4899"],
|
|
6864
|
-
colorful2: ["#6366f1", "#14b8a6", "#f59e0b", "#ef4444", "#8b5cf6", "#06b6d4"],
|
|
6865
|
-
colorful3: ["#0ea5e9", "#84cc16", "#f43e5e", "#a855f7", "#f97316", "#10b981"],
|
|
6866
|
-
monochromatic1: ["#3b82f6", "#60a5fa", "#93c5fd", "#bfdbfe", "#2563eb", "#1d4ed8"],
|
|
6867
|
-
monochromatic2: ["#6366f1", "#818cf8", "#a5b4fc", "#c7d2fe", "#4f46e5", "#4338ca"]
|
|
6868
|
-
};
|
|
6869
|
-
var DEFAULT_PALETTE = PALETTES.colorful1;
|
|
6870
|
-
function colour(index, palette = DEFAULT_PALETTE) {
|
|
6871
|
-
return palette[index % palette.length];
|
|
6872
|
-
}
|
|
6873
|
-
function nodeOpacity(index, total, style) {
|
|
6874
|
-
const base = style === "intense" ? 1 : style === "moderate" ? 0.92 : 0.85;
|
|
6875
|
-
if (total <= 1) {
|
|
6876
|
-
return base;
|
|
6877
|
-
}
|
|
6878
|
-
return base - index / (total - 1) * 0.15;
|
|
6879
|
-
}
|
|
6880
|
-
function styleShadow(style) {
|
|
6881
|
-
if (style === "intense") {
|
|
6882
|
-
return "drop-shadow(0 2px 6px rgba(0,0,0,0.35))";
|
|
6883
|
-
}
|
|
6884
|
-
if (style === "moderate") {
|
|
6885
|
-
return "drop-shadow(0 1px 3px rgba(0,0,0,0.2))";
|
|
6886
|
-
}
|
|
6887
|
-
return void 0;
|
|
6888
|
-
}
|
|
6889
|
-
function styleStroke(style) {
|
|
6890
|
-
if (style === "intense") {
|
|
6891
|
-
return 2;
|
|
6892
|
-
}
|
|
6893
|
-
if (style === "moderate") {
|
|
6894
|
-
return 1.5;
|
|
6895
|
-
}
|
|
6896
|
-
return 0;
|
|
6897
|
-
}
|
|
6898
|
-
function truncate(text, max) {
|
|
6899
|
-
if (text.length <= max) {
|
|
6900
|
-
return text;
|
|
6901
|
-
}
|
|
6902
|
-
return `${text.slice(0, max - 1)}\u2026`;
|
|
6903
|
-
}
|
|
6904
|
-
function resolvePalette(el) {
|
|
6905
|
-
if (el.type !== "smartArt" || !el.smartArtData) {
|
|
6906
|
-
return DEFAULT_PALETTE;
|
|
6907
|
-
}
|
|
6908
|
-
const ctFills = el.smartArtData.colorTransform?.fillColors;
|
|
6909
|
-
if (ctFills && ctFills.length > 0) {
|
|
6910
|
-
return ctFills;
|
|
6911
|
-
}
|
|
6912
|
-
return PALETTES[el.smartArtData.colorScheme ?? "colorful1"] ?? DEFAULT_PALETTE;
|
|
6913
|
-
}
|
|
6914
|
-
function resolveStyle(el) {
|
|
6915
|
-
if (el.type !== "smartArt" || !el.smartArtData) {
|
|
6916
|
-
return "flat";
|
|
6917
|
-
}
|
|
6918
|
-
return el.smartArtData.style ?? "flat";
|
|
6919
|
-
}
|
|
6920
|
-
function resolveSmartArtDataPalette(data) {
|
|
6921
|
-
const ctFills = data.colorTransform?.fillColors;
|
|
6922
|
-
if (ctFills && ctFills.length > 0) {
|
|
6923
|
-
return ctFills;
|
|
6924
|
-
}
|
|
6925
|
-
return PALETTES[data.colorScheme ?? "colorful1"] ?? DEFAULT_PALETTE;
|
|
6926
|
-
}
|
|
6927
|
-
function buildTree(nodes) {
|
|
6928
|
-
const map = /* @__PURE__ */ new Map();
|
|
6929
|
-
for (const n of nodes) {
|
|
6930
|
-
map.set(n.id, { node: n, children: [] });
|
|
6931
|
-
}
|
|
6932
|
-
const roots = [];
|
|
6933
|
-
for (const n of nodes) {
|
|
6934
|
-
const treeNode = map.get(n.id);
|
|
6935
|
-
if (n.parentId && map.has(n.parentId)) {
|
|
6936
|
-
map.get(n.parentId).children.push(treeNode);
|
|
6937
|
-
} else {
|
|
6938
|
-
roots.push(treeNode);
|
|
6939
|
-
}
|
|
6940
|
-
}
|
|
6941
|
-
return roots;
|
|
6942
|
-
}
|
|
6943
|
-
function treeWidth(t) {
|
|
6944
|
-
if (t.children.length === 0) {
|
|
6945
|
-
return 1;
|
|
6946
|
-
}
|
|
6947
|
-
return t.children.reduce((sum, c) => sum + treeWidth(c), 0);
|
|
6948
|
-
}
|
|
6949
|
-
function treeDepth(t) {
|
|
6950
|
-
if (t.children.length === 0) {
|
|
6951
|
-
return 1;
|
|
6952
|
-
}
|
|
6953
|
-
return 1 + Math.max(...t.children.map(treeDepth));
|
|
6954
|
-
}
|
|
6955
|
-
function layoutToCategory(layout) {
|
|
6956
|
-
if (!layout) {
|
|
6957
|
-
return "list";
|
|
6958
|
-
}
|
|
6959
|
-
const map = {
|
|
6960
|
-
basicBlockList: "list",
|
|
6961
|
-
alternatingHexagons: "list",
|
|
6962
|
-
basicChevronProcess: "process",
|
|
6963
|
-
basicCycle: "cycle",
|
|
6964
|
-
basicPie: "cycle",
|
|
6965
|
-
basicRadial: "radial",
|
|
6966
|
-
basicVenn: "venn",
|
|
6967
|
-
continuousBlockProcess: "process",
|
|
6968
|
-
convergingRadial: "radial",
|
|
6969
|
-
hierarchy: "hierarchy",
|
|
6970
|
-
horizontalBulletList: "list",
|
|
6971
|
-
linearVenn: "venn",
|
|
6972
|
-
segmentedProcess: "process",
|
|
6973
|
-
stackedList: "list",
|
|
6974
|
-
tableList: "list",
|
|
6975
|
-
trapezoidList: "list",
|
|
6976
|
-
upwardArrow: "process",
|
|
6977
|
-
basicFunnel: "funnel",
|
|
6978
|
-
basicTarget: "radial",
|
|
6979
|
-
interlockingGears: "radial",
|
|
6980
|
-
basicTimeline: "process",
|
|
6981
|
-
basicMatrix: "matrix",
|
|
6982
|
-
basicPyramid: "pyramid",
|
|
6983
|
-
invertedPyramid: "pyramid",
|
|
6984
|
-
bendingProcess: "process",
|
|
6985
|
-
stepDownProcess: "stepdown",
|
|
6986
|
-
alternatingFlow: "alternatingflow",
|
|
6987
|
-
descendingProcess: "descending",
|
|
6988
|
-
pictureAccentList: "pictureaccent",
|
|
6989
|
-
verticalBlockList: "verticalblock",
|
|
6990
|
-
groupedList: "grouped",
|
|
6991
|
-
pyramidList: "pyramidlist",
|
|
6992
|
-
horizontalPictureList: "horizontalpicture",
|
|
6993
|
-
accentProcess: "accentprocess",
|
|
6994
|
-
verticalChevronList: "verticalchevron"
|
|
6995
|
-
};
|
|
6996
|
-
return map[layout] ?? "list";
|
|
6997
|
-
}
|
|
6998
|
-
var LABEL_WIDTH_FRACTION = 0.82;
|
|
6999
|
-
function smartArtNodeGroupProps(nodeId, shadow, label2) {
|
|
7000
|
-
const props = {
|
|
7001
|
-
"data-smartart-node-id": nodeId,
|
|
7002
|
-
style: { filter: shadow, pointerEvents: "auto" }
|
|
7003
|
-
};
|
|
7004
|
-
if (label2) {
|
|
7005
|
-
props.role = "img";
|
|
7006
|
-
props["aria-label"] = label2;
|
|
7007
|
-
}
|
|
7008
|
-
return props;
|
|
7009
|
-
}
|
|
7010
|
-
function fitFontSize(text, maxWidth, maxHeight, baseSize) {
|
|
7011
|
-
const charWidthRatio = 0.6;
|
|
7012
|
-
const maxByWidth = maxWidth / (text.length * charWidthRatio);
|
|
7013
|
-
const maxByHeight = maxHeight * 0.5;
|
|
7014
|
-
return Math.max(6, Math.min(baseSize, maxByWidth, maxByHeight));
|
|
7015
|
-
}
|
|
7016
|
-
function chevronPoints(x, y, w, h) {
|
|
7017
|
-
const depth = Math.min(w * 0.2, h * 0.4);
|
|
7018
|
-
return [
|
|
7019
|
-
`${x},${y}`,
|
|
7020
|
-
`${x + w - depth},${y}`,
|
|
7021
|
-
`${x + w},${y + h / 2}`,
|
|
7022
|
-
`${x + w - depth},${y + h}`,
|
|
7023
|
-
`${x},${y + h}`,
|
|
7024
|
-
`${x + depth},${y + h / 2}`
|
|
7025
|
-
].join(" ");
|
|
7026
|
-
}
|
|
7027
|
-
function gearPath(cx, cy, outerR, innerR, teeth) {
|
|
7028
|
-
const segments = [];
|
|
7029
|
-
const step = Math.PI * 2 / (teeth * 2);
|
|
7030
|
-
for (let i = 0; i < teeth * 2; i++) {
|
|
7031
|
-
const angle = i * step - Math.PI / 2;
|
|
7032
|
-
const r = i % 2 === 0 ? outerR : innerR;
|
|
7033
|
-
const x = cx + r * Math.cos(angle);
|
|
7034
|
-
const y = cy + r * Math.sin(angle);
|
|
7035
|
-
segments.push(i === 0 ? `M${x},${y}` : `L${x},${y}`);
|
|
7036
|
-
}
|
|
7037
|
-
segments.push("Z");
|
|
7038
|
-
return segments.join(" ");
|
|
7039
|
-
}
|
|
7040
|
-
function SmartArtNodeText({
|
|
7041
|
-
text,
|
|
7042
|
-
x,
|
|
7043
|
-
y,
|
|
7044
|
-
fill,
|
|
7045
|
-
fontSize,
|
|
7046
|
-
fontWeight,
|
|
7047
|
-
fontStyle,
|
|
7048
|
-
className,
|
|
7049
|
-
anchor = "middle",
|
|
7050
|
-
maxWidth
|
|
7051
|
-
}) {
|
|
7052
|
-
const lines = maxWidth !== void 0 ? centeredSvgTextLines(text, fontSize, { maxWidth: maxWidth * LABEL_WIDTH_FRACTION }).map(
|
|
7053
|
-
(line) => line.text
|
|
7054
|
-
) : text.split("\n").filter((l) => l.length > 0);
|
|
7055
|
-
const lineHeight = fontSize * 1.2;
|
|
7056
|
-
let startY;
|
|
7057
|
-
let dominantBaseline;
|
|
7058
|
-
if (anchor === "bottom") {
|
|
7059
|
-
startY = lines.length > 0 ? y - (lines.length - 1) * lineHeight : y;
|
|
7060
|
-
dominantBaseline = "auto";
|
|
7061
|
-
} else if (anchor === "top") {
|
|
7062
|
-
startY = y;
|
|
7063
|
-
dominantBaseline = "hanging";
|
|
7064
|
-
} else {
|
|
7065
|
-
const totalHeight = lines.length * lineHeight;
|
|
7066
|
-
startY = lines.length > 0 ? y - totalHeight / 2 + lineHeight / 2 : y;
|
|
7067
|
-
dominantBaseline = "central";
|
|
7068
|
-
}
|
|
7069
|
-
return /* @__PURE__ */ jsx(
|
|
7070
|
-
"text",
|
|
7071
|
-
{
|
|
7072
|
-
x,
|
|
7073
|
-
textAnchor: "middle",
|
|
7074
|
-
dominantBaseline,
|
|
7075
|
-
fill,
|
|
7076
|
-
fontSize,
|
|
7077
|
-
fontWeight,
|
|
7078
|
-
fontStyle,
|
|
7079
|
-
className,
|
|
7080
|
-
children: lines.map((line, i) => /* @__PURE__ */ jsx("tspan", { x, y: startY + i * lineHeight, children: line }, i))
|
|
7081
|
-
}
|
|
7082
|
-
);
|
|
7083
|
-
}
|
|
7084
|
-
function wrapChrome(chrome, content, className, a11y) {
|
|
7085
|
-
const wrapperStyle = {};
|
|
7086
|
-
if (chrome?.backgroundColor) {
|
|
7087
|
-
wrapperStyle.backgroundColor = chrome.backgroundColor;
|
|
7088
|
-
}
|
|
7089
|
-
if (chrome?.outlineColor) {
|
|
7090
|
-
wrapperStyle.border = `${chrome.outlineWidth ?? 1}px solid ${chrome.outlineColor}`;
|
|
7091
|
-
}
|
|
7092
|
-
return /* @__PURE__ */ jsx(
|
|
7093
|
-
"div",
|
|
7094
|
-
{
|
|
7095
|
-
className: `w-full h-full ${className}`,
|
|
7096
|
-
style: wrapperStyle,
|
|
7097
|
-
role: a11y?.role,
|
|
7098
|
-
"aria-label": a11y?.label,
|
|
7099
|
-
children: content
|
|
7100
|
-
}
|
|
7101
|
-
);
|
|
7102
|
-
}
|
|
7103
|
-
function renderStepDownProcess(element, nodes, palette, style) {
|
|
7104
|
-
const w = element.width;
|
|
7105
|
-
const h = element.height;
|
|
7106
|
-
const pad = 8;
|
|
7107
|
-
const usableW = w - pad * 2;
|
|
7108
|
-
const usableH = h - pad * 2;
|
|
7109
|
-
const stepW = usableW / nodes.length;
|
|
7110
|
-
const stepH = usableH / nodes.length;
|
|
7111
|
-
const boxW = stepW * 0.85;
|
|
7112
|
-
const boxH = stepH * 0.6;
|
|
7113
|
-
const shadow = styleShadow(style);
|
|
7114
|
-
const sw = styleStroke(style);
|
|
7115
|
-
return /* @__PURE__ */ jsx(
|
|
7116
|
-
"svg",
|
|
7117
|
-
{
|
|
7118
|
-
className: "w-full h-full pointer-events-none",
|
|
7119
|
-
viewBox: `0 0 ${w} ${h}`,
|
|
7120
|
-
preserveAspectRatio: "xMidYMid meet",
|
|
7121
|
-
style: { filter: shadow },
|
|
7122
|
-
children: nodes.map((node, i) => {
|
|
7123
|
-
const x = pad + i * stepW;
|
|
7124
|
-
const y = pad + i * stepH;
|
|
7125
|
-
const fontSize = Math.max(7, Math.min(10, boxW * 0.1));
|
|
7126
|
-
return /* @__PURE__ */ jsxs("g", { children: [
|
|
7127
|
-
i < nodes.length - 1 && /* @__PURE__ */ jsx(
|
|
7128
|
-
"line",
|
|
7129
|
-
{
|
|
7130
|
-
x1: x + boxW,
|
|
7131
|
-
y1: y + boxH / 2,
|
|
7132
|
-
x2: x + stepW,
|
|
7133
|
-
y2: y + stepH + boxH / 2,
|
|
7134
|
-
stroke: "#94a3b8",
|
|
7135
|
-
strokeWidth: 1.5,
|
|
7136
|
-
opacity: 0.5
|
|
7137
|
-
}
|
|
7138
|
-
),
|
|
7139
|
-
/* @__PURE__ */ jsx(
|
|
7140
|
-
"rect",
|
|
7141
|
-
{
|
|
7142
|
-
x,
|
|
7143
|
-
y,
|
|
7144
|
-
width: boxW,
|
|
7145
|
-
height: boxH,
|
|
7146
|
-
rx: 5,
|
|
7147
|
-
fill: colour(i, palette),
|
|
7148
|
-
opacity: nodeOpacity(i, nodes.length, style),
|
|
7149
|
-
stroke: sw > 0 ? "rgba(255,255,255,0.3)" : "none",
|
|
7150
|
-
strokeWidth: sw
|
|
7151
|
-
}
|
|
7152
|
-
),
|
|
7153
|
-
/* @__PURE__ */ jsx(
|
|
7154
|
-
SmartArtNodeText,
|
|
7155
|
-
{
|
|
7156
|
-
x: x + boxW / 2,
|
|
7157
|
-
y: y + boxH / 2,
|
|
7158
|
-
text: truncate(node.text, 20),
|
|
7159
|
-
fill: "white",
|
|
7160
|
-
fontSize,
|
|
7161
|
-
className: "pointer-events-none"
|
|
7162
|
-
}
|
|
7163
|
-
)
|
|
7164
|
-
] }, `${element.id}-stepdown-${node.id}-${i}`);
|
|
7165
|
-
})
|
|
7166
|
-
}
|
|
7167
|
-
);
|
|
7168
|
-
}
|
|
7169
|
-
function renderAlternatingFlow(element, nodes, palette, style) {
|
|
7170
|
-
const w = element.width;
|
|
7171
|
-
const h = element.height;
|
|
7172
|
-
const pad = 8;
|
|
7173
|
-
const usableH = h - pad * 2;
|
|
7174
|
-
const rowH = usableH / nodes.length;
|
|
7175
|
-
const halfW = (w - pad * 2) / 2;
|
|
7176
|
-
const boxW = halfW * 0.8;
|
|
7177
|
-
const boxH = Math.min(rowH * 0.7, 40);
|
|
7178
|
-
const centerX = w / 2;
|
|
7179
|
-
const shadow = styleShadow(style);
|
|
7180
|
-
const sw = styleStroke(style);
|
|
7181
|
-
return /* @__PURE__ */ jsxs(
|
|
7182
|
-
"svg",
|
|
7183
|
-
{
|
|
7184
|
-
className: "w-full h-full pointer-events-none",
|
|
7185
|
-
viewBox: `0 0 ${w} ${h}`,
|
|
7186
|
-
preserveAspectRatio: "xMidYMid meet",
|
|
7187
|
-
style: { filter: shadow },
|
|
7188
|
-
children: [
|
|
7189
|
-
/* @__PURE__ */ jsx(
|
|
7190
|
-
"line",
|
|
7191
|
-
{
|
|
7192
|
-
x1: centerX,
|
|
7193
|
-
y1: pad,
|
|
7194
|
-
x2: centerX,
|
|
7195
|
-
y2: h - pad,
|
|
7196
|
-
stroke: "#94a3b8",
|
|
7197
|
-
strokeWidth: 2,
|
|
7198
|
-
opacity: 0.3
|
|
7199
|
-
}
|
|
7200
|
-
),
|
|
7201
|
-
nodes.map((node, i) => {
|
|
7202
|
-
const isLeft = i % 2 === 0;
|
|
7203
|
-
const y = pad + i * rowH + (rowH - boxH) / 2;
|
|
7204
|
-
const x = isLeft ? centerX - boxW - 12 : centerX + 12;
|
|
7205
|
-
const fontSize = Math.max(7, Math.min(10, boxW * 0.1));
|
|
7206
|
-
return /* @__PURE__ */ jsxs("g", { children: [
|
|
7207
|
-
/* @__PURE__ */ jsx(
|
|
7208
|
-
"line",
|
|
7209
|
-
{
|
|
7210
|
-
x1: isLeft ? x + boxW : x,
|
|
7211
|
-
y1: y + boxH / 2,
|
|
7212
|
-
x2: centerX,
|
|
7213
|
-
y2: y + boxH / 2,
|
|
7214
|
-
stroke: colour(i, palette),
|
|
7215
|
-
strokeWidth: 1.5,
|
|
7216
|
-
opacity: 0.5
|
|
7217
|
-
}
|
|
7218
|
-
),
|
|
7219
|
-
/* @__PURE__ */ jsx("circle", { cx: centerX, cy: y + boxH / 2, r: 3, fill: colour(i, palette), opacity: 0.8 }),
|
|
7220
|
-
/* @__PURE__ */ jsx(
|
|
7221
|
-
"rect",
|
|
7222
|
-
{
|
|
7223
|
-
x,
|
|
7224
|
-
y,
|
|
7225
|
-
width: boxW,
|
|
7226
|
-
height: boxH,
|
|
7227
|
-
rx: 5,
|
|
7228
|
-
fill: colour(i, palette),
|
|
7229
|
-
opacity: nodeOpacity(i, nodes.length, style),
|
|
7230
|
-
stroke: sw > 0 ? "rgba(255,255,255,0.3)" : "none",
|
|
7231
|
-
strokeWidth: sw
|
|
7232
|
-
}
|
|
7233
|
-
),
|
|
7234
|
-
/* @__PURE__ */ jsx(
|
|
7235
|
-
SmartArtNodeText,
|
|
7236
|
-
{
|
|
7237
|
-
x: x + boxW / 2,
|
|
7238
|
-
y: y + boxH / 2,
|
|
7239
|
-
text: truncate(node.text, 20),
|
|
7240
|
-
fill: "white",
|
|
7241
|
-
fontSize,
|
|
7242
|
-
className: "pointer-events-none"
|
|
7243
|
-
}
|
|
7244
|
-
)
|
|
7245
|
-
] }, `${element.id}-altflow-${node.id}-${i}`);
|
|
7246
|
-
})
|
|
7247
|
-
]
|
|
7248
|
-
}
|
|
7249
|
-
);
|
|
7250
|
-
}
|
|
7251
|
-
function renderDescendingProcess(element, nodes, palette, style) {
|
|
7252
|
-
const w = element.width;
|
|
7253
|
-
const h = element.height;
|
|
7254
|
-
const pad = 8;
|
|
7255
|
-
const gap = 4;
|
|
7256
|
-
const usableH = h - pad * 2;
|
|
7257
|
-
const maxW = w - pad * 2;
|
|
7258
|
-
const itemH = (usableH - gap * (nodes.length - 1)) / nodes.length;
|
|
7259
|
-
const shadow = styleShadow(style);
|
|
7260
|
-
const sw = styleStroke(style);
|
|
7261
|
-
return /* @__PURE__ */ jsx(
|
|
7262
|
-
"svg",
|
|
7263
|
-
{
|
|
7264
|
-
className: "w-full h-full pointer-events-none",
|
|
7265
|
-
viewBox: `0 0 ${w} ${h}`,
|
|
7266
|
-
preserveAspectRatio: "xMidYMid meet",
|
|
7267
|
-
style: { filter: shadow },
|
|
7268
|
-
children: nodes.map((node, i) => {
|
|
7269
|
-
const widthFraction = 1 - i / Math.max(nodes.length, 1) * 0.5;
|
|
7270
|
-
const bw = maxW * widthFraction;
|
|
7271
|
-
const x = (w - bw) / 2;
|
|
7272
|
-
const y = pad + i * (itemH + gap);
|
|
7273
|
-
const fontSize = Math.max(7, Math.min(11, itemH * 0.4));
|
|
7274
|
-
return /* @__PURE__ */ jsxs("g", { children: [
|
|
7275
|
-
i < nodes.length - 1 && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
7276
|
-
/* @__PURE__ */ jsx(
|
|
7277
|
-
"line",
|
|
7278
|
-
{
|
|
7279
|
-
x1: w / 2,
|
|
7280
|
-
y1: y + itemH,
|
|
7281
|
-
x2: w / 2,
|
|
7282
|
-
y2: y + itemH + gap,
|
|
7283
|
-
stroke: "#94a3b8",
|
|
7284
|
-
strokeWidth: 1.5,
|
|
7285
|
-
opacity: 0.5
|
|
7286
|
-
}
|
|
7287
|
-
),
|
|
7288
|
-
/* @__PURE__ */ jsx(
|
|
7289
|
-
"polygon",
|
|
7290
|
-
{
|
|
7291
|
-
points: `${w / 2 - 3},${y + itemH + gap - 4} ${w / 2},${y + itemH + gap} ${w / 2 + 3},${y + itemH + gap - 4}`,
|
|
7292
|
-
fill: "#94a3b8",
|
|
7293
|
-
opacity: 0.5
|
|
7294
|
-
}
|
|
7295
|
-
)
|
|
7296
|
-
] }),
|
|
7297
|
-
/* @__PURE__ */ jsx(
|
|
7298
|
-
"rect",
|
|
7299
|
-
{
|
|
7300
|
-
x,
|
|
7301
|
-
y,
|
|
7302
|
-
width: bw,
|
|
7303
|
-
height: itemH,
|
|
7304
|
-
rx: 5,
|
|
7305
|
-
fill: colour(i, palette),
|
|
7306
|
-
opacity: nodeOpacity(i, nodes.length, style),
|
|
7307
|
-
stroke: sw > 0 ? "rgba(255,255,255,0.3)" : "none",
|
|
7308
|
-
strokeWidth: sw
|
|
7309
|
-
}
|
|
7310
|
-
),
|
|
7311
|
-
/* @__PURE__ */ jsx(
|
|
7312
|
-
SmartArtNodeText,
|
|
7313
|
-
{
|
|
7314
|
-
x: w / 2,
|
|
7315
|
-
y: y + itemH / 2,
|
|
7316
|
-
text: truncate(node.text, 30),
|
|
7317
|
-
fill: "white",
|
|
7318
|
-
fontSize,
|
|
7319
|
-
className: "pointer-events-none"
|
|
7320
|
-
}
|
|
7321
|
-
)
|
|
7322
|
-
] }, `${element.id}-desc-${node.id}-${i}`);
|
|
7323
|
-
})
|
|
7324
|
-
}
|
|
7325
|
-
);
|
|
7326
|
-
}
|
|
7327
|
-
function renderPictureAccentList(element, nodes, palette, style) {
|
|
7328
|
-
const w = element.width;
|
|
7329
|
-
const h = element.height;
|
|
7330
|
-
const pad = 8;
|
|
7331
|
-
const gap = 6;
|
|
7332
|
-
const usableH = h - pad * 2;
|
|
7333
|
-
const usableW = w - pad * 2;
|
|
7334
|
-
const itemH = (usableH - gap * (nodes.length - 1)) / nodes.length;
|
|
7335
|
-
const circleR = Math.min(itemH * 0.38, 18);
|
|
7336
|
-
const textX = pad + circleR * 2 + 12;
|
|
7337
|
-
const textW = usableW - circleR * 2 - 16;
|
|
7338
|
-
const shadow = styleShadow(style);
|
|
7339
|
-
const sw = styleStroke(style);
|
|
7340
|
-
return /* @__PURE__ */ jsx(
|
|
7341
|
-
"svg",
|
|
7342
|
-
{
|
|
7343
|
-
className: "w-full h-full pointer-events-none",
|
|
7344
|
-
viewBox: `0 0 ${w} ${h}`,
|
|
7345
|
-
preserveAspectRatio: "xMidYMid meet",
|
|
7346
|
-
style: { filter: shadow },
|
|
7347
|
-
children: nodes.map((node, i) => {
|
|
7348
|
-
const y = pad + i * (itemH + gap);
|
|
7349
|
-
const cy = y + itemH / 2;
|
|
7350
|
-
const col = colour(i, palette);
|
|
7351
|
-
const fontSize = Math.max(7, Math.min(11, itemH * 0.35));
|
|
7352
|
-
return /* @__PURE__ */ jsxs("g", { children: [
|
|
7353
|
-
/* @__PURE__ */ jsx(
|
|
7354
|
-
"circle",
|
|
7355
|
-
{
|
|
7356
|
-
cx: pad + circleR,
|
|
7357
|
-
cy,
|
|
7358
|
-
r: circleR,
|
|
7359
|
-
fill: col,
|
|
7360
|
-
opacity: nodeOpacity(i, nodes.length, style)
|
|
7361
|
-
}
|
|
7362
|
-
),
|
|
7363
|
-
/* @__PURE__ */ jsx(
|
|
7364
|
-
"text",
|
|
7365
|
-
{
|
|
7366
|
-
x: pad + circleR,
|
|
7367
|
-
y: cy,
|
|
7368
|
-
textAnchor: "middle",
|
|
7369
|
-
dominantBaseline: "central",
|
|
7370
|
-
fill: "white",
|
|
7371
|
-
fontSize: Math.max(7, circleR * 0.7),
|
|
7372
|
-
fontWeight: "bold",
|
|
7373
|
-
className: "pointer-events-none",
|
|
7374
|
-
children: i + 1
|
|
7375
|
-
}
|
|
7376
|
-
),
|
|
7377
|
-
/* @__PURE__ */ jsx(
|
|
7378
|
-
"rect",
|
|
7379
|
-
{
|
|
7380
|
-
x: textX,
|
|
7381
|
-
y: y + 2,
|
|
7382
|
-
width: textW,
|
|
7383
|
-
height: itemH - 4,
|
|
7384
|
-
rx: 4,
|
|
7385
|
-
fill: col,
|
|
7386
|
-
opacity: 0.12,
|
|
7387
|
-
stroke: col,
|
|
7388
|
-
strokeWidth: sw > 0 ? sw : 1,
|
|
7389
|
-
strokeOpacity: 0.3
|
|
7390
|
-
}
|
|
7391
|
-
),
|
|
7392
|
-
/* @__PURE__ */ jsx(
|
|
7393
|
-
"text",
|
|
7394
|
-
{
|
|
7395
|
-
x: textX + 8,
|
|
7396
|
-
y: cy,
|
|
7397
|
-
textAnchor: "start",
|
|
7398
|
-
dominantBaseline: "central",
|
|
7399
|
-
fill: col,
|
|
7400
|
-
fontSize,
|
|
7401
|
-
className: "pointer-events-none",
|
|
7402
|
-
children: truncate(node.text, 40)
|
|
7403
|
-
}
|
|
7404
|
-
)
|
|
7405
|
-
] }, `${element.id}-picacc-${node.id}-${i}`);
|
|
7406
|
-
})
|
|
7407
|
-
}
|
|
7408
|
-
);
|
|
7409
|
-
}
|
|
7410
|
-
function renderVerticalBlockList(element, nodes, palette, style) {
|
|
7411
|
-
const w = element.width;
|
|
7412
|
-
const h = element.height;
|
|
7413
|
-
const pad = 8;
|
|
7414
|
-
const gap = 4;
|
|
7415
|
-
const usableH = h - pad * 2;
|
|
7416
|
-
const usableW = w - pad * 2;
|
|
7417
|
-
const itemH = (usableH - gap * (nodes.length - 1)) / nodes.length;
|
|
7418
|
-
const headerW = usableW * 0.22;
|
|
7419
|
-
const bodyW = usableW - headerW - 4;
|
|
7420
|
-
const shadow = styleShadow(style);
|
|
7421
|
-
const sw = styleStroke(style);
|
|
7422
|
-
return /* @__PURE__ */ jsx(
|
|
7423
|
-
"svg",
|
|
7424
|
-
{
|
|
7425
|
-
className: "w-full h-full pointer-events-none",
|
|
7426
|
-
viewBox: `0 0 ${w} ${h}`,
|
|
7427
|
-
preserveAspectRatio: "xMidYMid meet",
|
|
7428
|
-
style: { filter: shadow },
|
|
7429
|
-
children: nodes.map((node, i) => {
|
|
7430
|
-
const y = pad + i * (itemH + gap);
|
|
7431
|
-
const col = colour(i, palette);
|
|
7432
|
-
const fontSize = Math.max(7, Math.min(11, itemH * 0.35));
|
|
7433
|
-
return /* @__PURE__ */ jsxs("g", { children: [
|
|
7434
|
-
/* @__PURE__ */ jsx(
|
|
7435
|
-
"rect",
|
|
7436
|
-
{
|
|
7437
|
-
x: pad,
|
|
7438
|
-
y,
|
|
7439
|
-
width: headerW,
|
|
7440
|
-
height: itemH,
|
|
7441
|
-
rx: 3,
|
|
7442
|
-
fill: col,
|
|
7443
|
-
opacity: nodeOpacity(i, nodes.length, style),
|
|
7444
|
-
stroke: sw > 0 ? "rgba(255,255,255,0.3)" : "none",
|
|
7445
|
-
strokeWidth: sw
|
|
7446
|
-
}
|
|
7447
|
-
),
|
|
7448
|
-
/* @__PURE__ */ jsx(
|
|
7449
|
-
"text",
|
|
7450
|
-
{
|
|
7451
|
-
x: pad + headerW / 2,
|
|
7452
|
-
y: y + itemH / 2,
|
|
7453
|
-
textAnchor: "middle",
|
|
7454
|
-
dominantBaseline: "central",
|
|
7455
|
-
fill: "white",
|
|
7456
|
-
fontSize: Math.max(8, itemH * 0.4),
|
|
7457
|
-
fontWeight: "bold",
|
|
7458
|
-
className: "pointer-events-none",
|
|
7459
|
-
children: i + 1
|
|
7460
|
-
}
|
|
7461
|
-
),
|
|
7462
|
-
/* @__PURE__ */ jsx(
|
|
7463
|
-
"rect",
|
|
7464
|
-
{
|
|
7465
|
-
x: pad + headerW + 4,
|
|
7466
|
-
y,
|
|
7467
|
-
width: bodyW,
|
|
7468
|
-
height: itemH,
|
|
7469
|
-
rx: 3,
|
|
7470
|
-
fill: col,
|
|
7471
|
-
opacity: 0.1,
|
|
7472
|
-
stroke: col,
|
|
7473
|
-
strokeWidth: 1,
|
|
7474
|
-
strokeOpacity: 0.3
|
|
7475
|
-
}
|
|
7476
|
-
),
|
|
7477
|
-
/* @__PURE__ */ jsx(
|
|
7478
|
-
"text",
|
|
7479
|
-
{
|
|
7480
|
-
x: pad + headerW + 12,
|
|
7481
|
-
y: y + itemH / 2,
|
|
7482
|
-
textAnchor: "start",
|
|
7483
|
-
dominantBaseline: "central",
|
|
7484
|
-
fill: col,
|
|
7485
|
-
fontSize,
|
|
7486
|
-
className: "pointer-events-none",
|
|
7487
|
-
children: truncate(node.text, 40)
|
|
7488
|
-
}
|
|
7489
|
-
)
|
|
7490
|
-
] }, `${element.id}-vblk-${node.id}-${i}`);
|
|
7491
|
-
})
|
|
7492
|
-
}
|
|
7493
|
-
);
|
|
7494
|
-
}
|
|
7495
|
-
function renderGroupedList(element, nodes, palette, style) {
|
|
7496
|
-
const w = element.width;
|
|
7497
|
-
const h = element.height;
|
|
7498
|
-
const pad = 8;
|
|
7499
|
-
const gap = 8;
|
|
7500
|
-
const shadow = styleShadow(style);
|
|
7501
|
-
const sw = styleStroke(style);
|
|
7502
|
-
const groupSize = nodes.length <= 4 ? 2 : 3;
|
|
7503
|
-
const groups = [];
|
|
7504
|
-
for (let i = 0; i < nodes.length; i += groupSize) {
|
|
7505
|
-
groups.push(nodes.slice(i, i + groupSize));
|
|
7506
|
-
}
|
|
7507
|
-
const usableW = w - pad * 2;
|
|
7508
|
-
const groupW = (usableW - gap * (groups.length - 1)) / groups.length;
|
|
7509
|
-
const usableH = h - pad * 2;
|
|
7510
|
-
const headerH = usableH * 0.18;
|
|
7511
|
-
return /* @__PURE__ */ jsx(
|
|
7512
|
-
"svg",
|
|
7513
|
-
{
|
|
7514
|
-
className: "w-full h-full pointer-events-none",
|
|
7515
|
-
viewBox: `0 0 ${w} ${h}`,
|
|
7516
|
-
preserveAspectRatio: "xMidYMid meet",
|
|
7517
|
-
style: { filter: shadow },
|
|
7518
|
-
children: groups.map((group, gi) => {
|
|
7519
|
-
const gx = pad + gi * (groupW + gap);
|
|
7520
|
-
const col = colour(gi, palette);
|
|
7521
|
-
const subItemGap = 3;
|
|
7522
|
-
const subItemH = (usableH - headerH - 4 - subItemGap * (group.length - 1)) / group.length;
|
|
7523
|
-
return /* @__PURE__ */ jsxs("g", { children: [
|
|
7524
|
-
/* @__PURE__ */ jsx(
|
|
7525
|
-
"rect",
|
|
7526
|
-
{
|
|
7527
|
-
x: gx,
|
|
7528
|
-
y: pad,
|
|
7529
|
-
width: groupW,
|
|
7530
|
-
height: headerH,
|
|
7531
|
-
rx: 4,
|
|
7532
|
-
fill: col,
|
|
7533
|
-
opacity: nodeOpacity(gi, groups.length, style),
|
|
7534
|
-
stroke: sw > 0 ? "rgba(255,255,255,0.3)" : "none",
|
|
7535
|
-
strokeWidth: sw
|
|
7536
|
-
}
|
|
7537
|
-
),
|
|
7538
|
-
/* @__PURE__ */ jsx(
|
|
7539
|
-
"text",
|
|
7540
|
-
{
|
|
7541
|
-
x: gx + groupW / 2,
|
|
7542
|
-
y: pad + headerH / 2,
|
|
7543
|
-
textAnchor: "middle",
|
|
7544
|
-
dominantBaseline: "central",
|
|
7545
|
-
fill: "white",
|
|
7546
|
-
fontSize: Math.max(7, Math.min(10, groupW * 0.08)),
|
|
7547
|
-
fontWeight: "bold",
|
|
7548
|
-
className: "pointer-events-none",
|
|
7549
|
-
children: `Group ${gi + 1}`
|
|
7550
|
-
}
|
|
7551
|
-
),
|
|
7552
|
-
group.map((node, si) => {
|
|
7553
|
-
const sy = pad + headerH + 4 + si * (subItemH + subItemGap);
|
|
7554
|
-
const fontSize = Math.max(7, Math.min(10, subItemH * 0.35));
|
|
7555
|
-
return /* @__PURE__ */ jsxs("g", { children: [
|
|
7556
|
-
/* @__PURE__ */ jsx(
|
|
7557
|
-
"rect",
|
|
7558
|
-
{
|
|
7559
|
-
x: gx + 4,
|
|
7560
|
-
y: sy,
|
|
7561
|
-
width: groupW - 8,
|
|
7562
|
-
height: subItemH,
|
|
7563
|
-
rx: 3,
|
|
7564
|
-
fill: col,
|
|
7565
|
-
opacity: 0.15,
|
|
7566
|
-
stroke: col,
|
|
7567
|
-
strokeWidth: 1,
|
|
7568
|
-
strokeOpacity: 0.3
|
|
7569
|
-
}
|
|
7570
|
-
),
|
|
7571
|
-
/* @__PURE__ */ jsx(
|
|
7572
|
-
SmartArtNodeText,
|
|
7573
|
-
{
|
|
7574
|
-
x: gx + groupW / 2,
|
|
7575
|
-
y: sy + subItemH / 2,
|
|
7576
|
-
text: truncate(node.text, 20),
|
|
7577
|
-
fill: col,
|
|
7578
|
-
fontSize,
|
|
7579
|
-
className: "pointer-events-none"
|
|
7580
|
-
}
|
|
7581
|
-
)
|
|
7582
|
-
] }, `${element.id}-grp-${gi}-item-${node.id}-${si}`);
|
|
7583
|
-
})
|
|
7584
|
-
] }, `${element.id}-grp-${gi}`);
|
|
7585
|
-
})
|
|
7586
|
-
}
|
|
7587
|
-
);
|
|
7588
|
-
}
|
|
7589
|
-
function renderPyramidList(element, nodes, palette, style) {
|
|
7590
|
-
const w = element.width;
|
|
7591
|
-
const h = element.height;
|
|
7592
|
-
const pad = 8;
|
|
7593
|
-
const gap = 4;
|
|
7594
|
-
const usableH = h - pad * 2;
|
|
7595
|
-
const pyramidW = w * 0.35;
|
|
7596
|
-
const labelStartX = pyramidW + pad + 16;
|
|
7597
|
-
const labelW = w - labelStartX - pad;
|
|
7598
|
-
const bandH = (usableH - gap * (nodes.length - 1)) / nodes.length;
|
|
7599
|
-
const shadow = styleShadow(style);
|
|
7600
|
-
return /* @__PURE__ */ jsx(
|
|
7601
|
-
"svg",
|
|
7602
|
-
{
|
|
7603
|
-
className: "w-full h-full pointer-events-none",
|
|
7604
|
-
viewBox: `0 0 ${w} ${h}`,
|
|
7605
|
-
preserveAspectRatio: "xMidYMid meet",
|
|
7606
|
-
style: { filter: shadow },
|
|
7607
|
-
children: nodes.map((node, i) => {
|
|
7608
|
-
const y = pad + i * (bandH + gap);
|
|
7609
|
-
const col = colour(i, palette);
|
|
7610
|
-
const topFrac = 0.3 + i / Math.max(nodes.length - 1, 1) * 0.7;
|
|
7611
|
-
const segW = pyramidW * topFrac;
|
|
7612
|
-
const segX = pad + (pyramidW - segW) / 2;
|
|
7613
|
-
const fontSize = Math.max(7, Math.min(11, bandH * 0.35));
|
|
7614
|
-
return /* @__PURE__ */ jsxs("g", { children: [
|
|
7615
|
-
/* @__PURE__ */ jsx(
|
|
7616
|
-
"rect",
|
|
7617
|
-
{
|
|
7618
|
-
x: segX,
|
|
7619
|
-
y,
|
|
7620
|
-
width: segW,
|
|
7621
|
-
height: bandH,
|
|
7622
|
-
rx: 2,
|
|
7623
|
-
fill: col,
|
|
7624
|
-
opacity: nodeOpacity(i, nodes.length, style)
|
|
7625
|
-
}
|
|
7626
|
-
),
|
|
7627
|
-
/* @__PURE__ */ jsx(
|
|
7628
|
-
"line",
|
|
7629
|
-
{
|
|
7630
|
-
x1: segX + segW,
|
|
7631
|
-
y1: y + bandH / 2,
|
|
7632
|
-
x2: labelStartX - 4,
|
|
7633
|
-
y2: y + bandH / 2,
|
|
7634
|
-
stroke: col,
|
|
7635
|
-
strokeWidth: 1,
|
|
7636
|
-
opacity: 0.5,
|
|
7637
|
-
strokeDasharray: "3,2"
|
|
7638
|
-
}
|
|
7639
|
-
),
|
|
7640
|
-
/* @__PURE__ */ jsx(
|
|
7641
|
-
"rect",
|
|
7642
|
-
{
|
|
7643
|
-
x: labelStartX,
|
|
7644
|
-
y: y + 2,
|
|
7645
|
-
width: labelW,
|
|
7646
|
-
height: bandH - 4,
|
|
7647
|
-
rx: 3,
|
|
7648
|
-
fill: col,
|
|
7649
|
-
opacity: 0.1,
|
|
7650
|
-
stroke: col,
|
|
7651
|
-
strokeWidth: 1,
|
|
7652
|
-
strokeOpacity: 0.25
|
|
7653
|
-
}
|
|
7654
|
-
),
|
|
7655
|
-
/* @__PURE__ */ jsx(
|
|
7656
|
-
"text",
|
|
7657
|
-
{
|
|
7658
|
-
x: labelStartX + 8,
|
|
7659
|
-
y: y + bandH / 2,
|
|
7660
|
-
textAnchor: "start",
|
|
7661
|
-
dominantBaseline: "central",
|
|
7662
|
-
fill: col,
|
|
7663
|
-
fontSize,
|
|
7664
|
-
className: "pointer-events-none",
|
|
7665
|
-
children: truncate(node.text, 30)
|
|
7666
|
-
}
|
|
7667
|
-
)
|
|
7668
|
-
] }, `${element.id}-pyrlist-${node.id}-${i}`);
|
|
7669
|
-
})
|
|
7670
|
-
}
|
|
7671
|
-
);
|
|
7672
|
-
}
|
|
7673
|
-
function renderHorizontalPictureList(element, nodes, palette, style) {
|
|
7674
|
-
const w = element.width;
|
|
7675
|
-
const h = element.height;
|
|
7676
|
-
const pad = 8;
|
|
7677
|
-
const gap = 8;
|
|
7678
|
-
const usableW = w - pad * 2;
|
|
7679
|
-
const colW = (usableW - gap * (nodes.length - 1)) / nodes.length;
|
|
7680
|
-
const usableH = h - pad * 2;
|
|
7681
|
-
const circleR = Math.min(colW * 0.38, usableH * 0.28);
|
|
7682
|
-
const shadow = styleShadow(style);
|
|
7683
|
-
const sw = styleStroke(style);
|
|
7684
|
-
return /* @__PURE__ */ jsx(
|
|
7685
|
-
"svg",
|
|
7686
|
-
{
|
|
7687
|
-
className: "w-full h-full pointer-events-none",
|
|
7688
|
-
viewBox: `0 0 ${w} ${h}`,
|
|
7689
|
-
preserveAspectRatio: "xMidYMid meet",
|
|
7690
|
-
style: { filter: shadow },
|
|
7691
|
-
children: nodes.map((node, i) => {
|
|
7692
|
-
const cx = pad + i * (colW + gap) + colW / 2;
|
|
7693
|
-
const cy = pad + circleR + 4;
|
|
7694
|
-
const col = colour(i, palette);
|
|
7695
|
-
const labelY = cy + circleR + 10;
|
|
7696
|
-
const fontSize = Math.max(7, Math.min(10, colW * 0.1));
|
|
7697
|
-
return /* @__PURE__ */ jsxs("g", { children: [
|
|
7698
|
-
/* @__PURE__ */ jsx(
|
|
7699
|
-
"circle",
|
|
7700
|
-
{
|
|
7701
|
-
cx,
|
|
7702
|
-
cy,
|
|
7703
|
-
r: circleR,
|
|
7704
|
-
fill: col,
|
|
7705
|
-
opacity: nodeOpacity(i, nodes.length, style),
|
|
7706
|
-
stroke: sw > 0 ? "rgba(255,255,255,0.3)" : "none",
|
|
7707
|
-
strokeWidth: sw
|
|
7708
|
-
}
|
|
7709
|
-
),
|
|
7710
|
-
/* @__PURE__ */ jsx(
|
|
7711
|
-
"text",
|
|
7712
|
-
{
|
|
7713
|
-
x: cx,
|
|
7714
|
-
y: cy,
|
|
7715
|
-
textAnchor: "middle",
|
|
7716
|
-
dominantBaseline: "central",
|
|
7717
|
-
fill: "white",
|
|
7718
|
-
fontSize: Math.max(8, circleR * 0.5),
|
|
7719
|
-
fontWeight: "bold",
|
|
7720
|
-
className: "pointer-events-none",
|
|
7721
|
-
children: i + 1
|
|
7722
|
-
}
|
|
7723
|
-
),
|
|
7724
|
-
/* @__PURE__ */ jsx(
|
|
7725
|
-
"text",
|
|
7726
|
-
{
|
|
7727
|
-
x: cx,
|
|
7728
|
-
y: labelY,
|
|
7729
|
-
textAnchor: "middle",
|
|
7730
|
-
dominantBaseline: "hanging",
|
|
7731
|
-
fill: col,
|
|
7732
|
-
fontSize,
|
|
7733
|
-
className: "pointer-events-none",
|
|
7734
|
-
children: truncate(node.text, 15)
|
|
7735
|
-
}
|
|
7736
|
-
)
|
|
7737
|
-
] }, `${element.id}-hpic-${node.id}-${i}`);
|
|
7738
|
-
})
|
|
7739
|
-
}
|
|
7740
|
-
);
|
|
7741
|
-
}
|
|
7742
|
-
function renderAccentProcess(element, nodes, palette, style) {
|
|
7743
|
-
const w = element.width;
|
|
7744
|
-
const h = element.height;
|
|
7745
|
-
const pad = 8;
|
|
7746
|
-
const arrowGap = 16;
|
|
7747
|
-
const usableW = w - pad * 2;
|
|
7748
|
-
const nodeW = (usableW - arrowGap * (nodes.length - 1)) / nodes.length;
|
|
7749
|
-
const nodeH = h * 0.45;
|
|
7750
|
-
const yMid = h / 2;
|
|
7751
|
-
const circleR = Math.min(nodeW, nodeH) * 0.55;
|
|
7752
|
-
const shadow = styleShadow(style);
|
|
7753
|
-
const sw = styleStroke(style);
|
|
7754
|
-
return /* @__PURE__ */ jsx(
|
|
7755
|
-
"svg",
|
|
7756
|
-
{
|
|
7757
|
-
className: "w-full h-full pointer-events-none",
|
|
7758
|
-
viewBox: `0 0 ${w} ${h}`,
|
|
7759
|
-
preserveAspectRatio: "xMidYMid meet",
|
|
7760
|
-
style: { filter: shadow },
|
|
7761
|
-
children: nodes.map((node, i) => {
|
|
7762
|
-
const x = pad + i * (nodeW + arrowGap);
|
|
7763
|
-
const cx = x + nodeW / 2;
|
|
7764
|
-
const col = colour(i, palette);
|
|
7765
|
-
const fontSize = Math.max(7, Math.min(11, nodeW * 0.1));
|
|
7766
|
-
return /* @__PURE__ */ jsxs("g", { children: [
|
|
7767
|
-
/* @__PURE__ */ jsx("circle", { cx, cy: yMid, r: circleR, fill: col, opacity: 0.15 }),
|
|
7768
|
-
/* @__PURE__ */ jsx(
|
|
7769
|
-
"rect",
|
|
7770
|
-
{
|
|
7771
|
-
x,
|
|
7772
|
-
y: yMid - nodeH / 2,
|
|
7773
|
-
width: nodeW,
|
|
7774
|
-
height: nodeH,
|
|
7775
|
-
rx: 5,
|
|
7776
|
-
fill: col,
|
|
7777
|
-
opacity: nodeOpacity(i, nodes.length, style),
|
|
7778
|
-
stroke: sw > 0 ? "rgba(255,255,255,0.3)" : "none",
|
|
7779
|
-
strokeWidth: sw
|
|
7780
|
-
}
|
|
7781
|
-
),
|
|
7782
|
-
/* @__PURE__ */ jsx(
|
|
7783
|
-
SmartArtNodeText,
|
|
7784
|
-
{
|
|
7785
|
-
x: cx,
|
|
7786
|
-
y: yMid,
|
|
7787
|
-
text: truncate(node.text, 20),
|
|
7788
|
-
fill: "white",
|
|
7789
|
-
fontSize,
|
|
7790
|
-
className: "pointer-events-none"
|
|
7791
|
-
}
|
|
7792
|
-
),
|
|
7793
|
-
i < nodes.length - 1 && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
7794
|
-
/* @__PURE__ */ jsx(
|
|
7795
|
-
"line",
|
|
7796
|
-
{
|
|
7797
|
-
x1: x + nodeW + 2,
|
|
7798
|
-
y1: yMid,
|
|
7799
|
-
x2: x + nodeW + arrowGap - 2,
|
|
7800
|
-
y2: yMid,
|
|
7801
|
-
stroke: "#94a3b8",
|
|
7802
|
-
strokeWidth: 1.5,
|
|
7803
|
-
opacity: 0.5
|
|
7804
|
-
}
|
|
7805
|
-
),
|
|
7806
|
-
/* @__PURE__ */ jsx(
|
|
7807
|
-
"polygon",
|
|
7808
|
-
{
|
|
7809
|
-
points: `${x + nodeW + arrowGap - 6},${yMid - 3} ${x + nodeW + arrowGap - 2},${yMid} ${x + nodeW + arrowGap - 6},${yMid + 3}`,
|
|
7810
|
-
fill: "#94a3b8",
|
|
7811
|
-
opacity: 0.5
|
|
7812
|
-
}
|
|
7813
|
-
)
|
|
7814
|
-
] })
|
|
7815
|
-
] }, `${element.id}-accproc-${node.id}-${i}`);
|
|
7816
|
-
})
|
|
7817
|
-
}
|
|
7818
|
-
);
|
|
7819
|
-
}
|
|
7820
|
-
function renderVerticalChevronList(element, nodes, palette, style) {
|
|
7821
|
-
const w = element.width;
|
|
7822
|
-
const h = element.height;
|
|
7823
|
-
const pad = 8;
|
|
7824
|
-
const gap = 2;
|
|
7825
|
-
const usableW = w - pad * 2;
|
|
7826
|
-
const usableH = h - pad * 2;
|
|
7827
|
-
const itemH = (usableH - gap * (nodes.length - 1)) / nodes.length;
|
|
7828
|
-
const chevDepth = Math.min(12, itemH * 0.3);
|
|
7829
|
-
const shadow = styleShadow(style);
|
|
7830
|
-
const sw = styleStroke(style);
|
|
7831
|
-
return /* @__PURE__ */ jsx(
|
|
7832
|
-
"svg",
|
|
7833
|
-
{
|
|
7834
|
-
className: "w-full h-full pointer-events-none",
|
|
7835
|
-
viewBox: `0 0 ${w} ${h}`,
|
|
7836
|
-
preserveAspectRatio: "xMidYMid meet",
|
|
7837
|
-
style: { filter: shadow },
|
|
7838
|
-
children: nodes.map((node, i) => {
|
|
7839
|
-
const x = pad;
|
|
7840
|
-
const y = pad + i * (itemH + gap);
|
|
7841
|
-
const col = colour(i, palette);
|
|
7842
|
-
const fontSize = Math.max(7, Math.min(11, itemH * 0.4));
|
|
7843
|
-
const isFirst = i === 0;
|
|
7844
|
-
const isLast = i === nodes.length - 1;
|
|
7845
|
-
const points = isFirst ? [
|
|
7846
|
-
`${x},${y}`,
|
|
7847
|
-
`${x + usableW},${y}`,
|
|
7848
|
-
`${x + usableW},${y + itemH - chevDepth}`,
|
|
7849
|
-
`${x + usableW / 2},${y + itemH}`,
|
|
7850
|
-
`${x},${y + itemH - chevDepth}`
|
|
7851
|
-
].join(" ") : isLast ? [
|
|
7852
|
-
`${x},${y + chevDepth}`,
|
|
7853
|
-
`${x + usableW / 2},${y}`,
|
|
7854
|
-
`${x + usableW},${y + chevDepth}`,
|
|
7855
|
-
`${x + usableW},${y + itemH}`,
|
|
7856
|
-
`${x},${y + itemH}`
|
|
7857
|
-
].join(" ") : [
|
|
7858
|
-
`${x},${y + chevDepth}`,
|
|
7859
|
-
`${x + usableW / 2},${y}`,
|
|
7860
|
-
`${x + usableW},${y + chevDepth}`,
|
|
7861
|
-
`${x + usableW},${y + itemH - chevDepth}`,
|
|
7862
|
-
`${x + usableW / 2},${y + itemH}`,
|
|
7863
|
-
`${x},${y + itemH - chevDepth}`
|
|
7864
|
-
].join(" ");
|
|
7865
|
-
return /* @__PURE__ */ jsxs("g", { children: [
|
|
7866
|
-
/* @__PURE__ */ jsx(
|
|
7867
|
-
"polygon",
|
|
7868
|
-
{
|
|
7869
|
-
points,
|
|
7870
|
-
fill: col,
|
|
7871
|
-
opacity: nodeOpacity(i, nodes.length, style),
|
|
7872
|
-
stroke: sw > 0 ? "rgba(255,255,255,0.3)" : "none",
|
|
7873
|
-
strokeWidth: sw
|
|
7874
|
-
}
|
|
7875
|
-
),
|
|
7876
|
-
/* @__PURE__ */ jsx(
|
|
7877
|
-
SmartArtNodeText,
|
|
7878
|
-
{
|
|
7879
|
-
x: x + usableW / 2,
|
|
7880
|
-
y: y + itemH / 2,
|
|
7881
|
-
text: truncate(node.text, 30),
|
|
7882
|
-
fill: "white",
|
|
7883
|
-
fontSize,
|
|
7884
|
-
className: "pointer-events-none"
|
|
7885
|
-
}
|
|
7886
|
-
)
|
|
7887
|
-
] }, `${element.id}-vchev-${node.id}-${i}`);
|
|
7888
|
-
})
|
|
7889
|
-
}
|
|
7890
|
-
);
|
|
7891
|
-
}
|
|
7892
6497
|
|
|
7893
6498
|
// src/viewer/utils/pdf-builder-notes-builder.ts
|
|
7894
6499
|
function buildNotesPdf(pages) {
|
|
@@ -7994,4 +6599,4 @@ function stopPreviewAnimation() {
|
|
|
7994
6599
|
activePreview = null;
|
|
7995
6600
|
}
|
|
7996
6601
|
|
|
7997
|
-
export { ANIMATION_PRESET_OPTIONS, ARROW_SIZE_OPTIONS, CONNECTOR_ARROW_OPTIONS, DEFAULT_CANVAS_HEIGHT, DEFAULT_CANVAS_WIDTH, DEFAULT_FILL_COLOR, DEFAULT_FONT_FAMILY2 as DEFAULT_FONT_FAMILY, DEFAULT_STROKE_COLOR, DEFAULT_TABLE_COLUMNS, DEFAULT_TABLE_ROWS, DEFAULT_TEXT_COLOR, DEFAULT_TEXT_FONT_SIZE, EMU_PER_PX, GRID_SIZE, HYPERLINK_COLOR, MIN_ELEMENT_SIZE, SHAPE_PRESETS, SHORTCUT_REFERENCE_ITEMS, SLIDE_NAV_THUMBNAIL_WIDTH, STROKE_DASH_OPTIONS,
|
|
6602
|
+
export { ANIMATION_PRESET_OPTIONS, ARROW_SIZE_OPTIONS, CONNECTOR_ARROW_OPTIONS, DEFAULT_CANVAS_HEIGHT, DEFAULT_CANVAS_WIDTH, DEFAULT_FILL_COLOR, DEFAULT_FONT_FAMILY2 as DEFAULT_FONT_FAMILY, DEFAULT_STROKE_COLOR, DEFAULT_TABLE_COLUMNS, DEFAULT_TABLE_ROWS, DEFAULT_TEXT_COLOR, DEFAULT_TEXT_FONT_SIZE, EMU_PER_PX, GRID_SIZE, HYPERLINK_COLOR, MIN_ELEMENT_SIZE, SHAPE_PRESETS, SHORTCUT_REFERENCE_ITEMS, SLIDE_NAV_THUMBNAIL_WIDTH, STROKE_DASH_OPTIONS, THEME_COLOR_SWATCHES, TOOLBAR_SECTIONS, UNGROUPED_SECTION_ID, ZOOM_TO_SELECTION_PADDING, build3DExtrusionData2 as build3DExtrusionData, buildLineGlowFilter, buildLineShadowCss, buildNotesPdf, buildPdfFromImageData, buildReactChartViewModel, buildTextBody3DSceneStyle2 as buildTextBody3DSceneStyle, cloneHistorySnapshot2 as cloneHistorySnapshot, cn, executeMediaCommand, getAnimationInitialStyle2 as getAnimationInitialStyle, getConnectorPathGeometry, getCropShapeClipPath, getDuotoneColors, getImageRenderStyle, getImageTilingStyle, getShapeVisualStyle, getTextLayoutStyle, getTextStyleForElement, getTextWarpStyle, hasDagDuotoneEffect, isConnectorOrLineElement, isImageTiled, renderChartElement, renderConnectorMarker, renderDagDuotoneSvgFilter, renderMediaElement, renderTableElement, renderTextSegments, renderVectorShape, shouldRenderFallbackLabel, startMotionPathPreview, startPreviewAnimation, stopPreviewAnimation };
|