pptx-vue-viewer 3.7.0 → 3.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +21 -0
- package/dist/{AiChatPanel-CGDR-wqY.cjs → AiChatPanel-CKirQ0AC.cjs} +1 -1
- package/dist/AiChatPanel-CKirQ0AC.cjs.br +0 -0
- package/dist/AiChatPanel-CKirQ0AC.cjs.gz +0 -0
- package/dist/{AiChatPanel-XndiOIcU.js → AiChatPanel-CY_Dp6hm.js} +2 -2
- package/dist/AiChatPanel-CY_Dp6hm.js.br +0 -0
- package/dist/AiChatPanel-CY_Dp6hm.js.gz +0 -0
- package/dist/{dist-AONF-8Jh.js → dist-C-nE-IV9.js} +17946 -13462
- package/dist/dist-C-nE-IV9.js.br +0 -0
- package/dist/dist-C-nE-IV9.js.gz +0 -0
- package/dist/{dist-C13dWSnw.cjs → dist-DDJ8JY-U.cjs} +18290 -13781
- package/dist/dist-DDJ8JY-U.cjs.br +0 -0
- package/dist/dist-DDJ8JY-U.cjs.gz +0 -0
- package/dist/gif-encoder-BCZJnRXV.js +2 -0
- package/dist/gif-encoder-BCZJnRXV.js.br +0 -0
- package/dist/gif-encoder-BCZJnRXV.js.gz +0 -0
- package/dist/gif-encoder-CzFa2No0.cjs +2 -0
- package/dist/gif-encoder-CzFa2No0.cjs.br +0 -0
- package/dist/gif-encoder-CzFa2No0.cjs.gz +0 -0
- package/dist/{i18n-3rk7tLH2.js → i18n-CzfTZRLN.js} +65 -4
- package/dist/i18n-CzfTZRLN.js.br +0 -0
- package/dist/i18n-CzfTZRLN.js.gz +0 -0
- package/dist/{i18n-Dhu39QI8.cjs → i18n-WAigQN3b.cjs} +65 -4
- package/dist/i18n-WAigQN3b.cjs.br +0 -0
- package/dist/i18n-WAigQN3b.cjs.gz +0 -0
- package/dist/i18n.cjs +1 -1
- package/dist/i18n.cjs.br +0 -0
- package/dist/i18n.cjs.gz +0 -0
- package/dist/i18n.js +1 -1
- package/dist/i18n.js.br +0 -0
- package/dist/i18n.js.gz +0 -0
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.br +0 -0
- package/dist/index.cjs.gz +0 -0
- package/dist/index.js +3 -3
- package/dist/index.js.br +0 -0
- package/dist/index.js.gz +0 -0
- package/dist/internals.cjs +1 -1
- package/dist/internals.cjs.br +0 -0
- package/dist/internals.cjs.gz +0 -0
- package/dist/internals.js +2 -2
- package/dist/internals.js.br +0 -0
- package/dist/internals.js.gz +0 -0
- package/dist/pptx-vue-viewer.css +91 -104
- package/dist/pptx-vue-viewer.css.br +0 -0
- package/dist/pptx-vue-viewer.css.gz +0 -0
- package/dist/smartart-3d-DbBWzji8.cjs +203 -0
- package/dist/smartart-3d-DbBWzji8.cjs.br +0 -0
- package/dist/smartart-3d-DbBWzji8.cjs.gz +0 -0
- package/dist/smartart-3d-m84Wdu08.js +205 -0
- package/dist/smartart-3d-m84Wdu08.js.br +0 -0
- package/dist/smartart-3d-m84Wdu08.js.gz +0 -0
- package/dist/{useViewerSettingsDialog-DWMP7Zg9.cjs → useViewerSettingsDialog-9q3U6VCB.cjs} +15766 -11895
- package/dist/useViewerSettingsDialog-9q3U6VCB.cjs.br +0 -0
- package/dist/useViewerSettingsDialog-9q3U6VCB.cjs.gz +0 -0
- package/dist/{useViewerSettingsDialog-BzJeMt6Q.js → useViewerSettingsDialog-D-QYEUVN.js} +13115 -9392
- package/dist/useViewerSettingsDialog-D-QYEUVN.js.br +0 -0
- package/dist/useViewerSettingsDialog-D-QYEUVN.js.gz +0 -0
- package/dist/viewer/PowerPointViewer.vue.d.ts.map +1 -1
- package/dist/viewer/components/Area3DChartRenderer.vue.d.ts +14 -4
- package/dist/viewer/components/Area3DChartRenderer.vue.d.ts.map +1 -1
- package/dist/viewer/components/Bar3DChartRenderer.vue.d.ts +12 -3
- package/dist/viewer/components/Bar3DChartRenderer.vue.d.ts.map +1 -1
- package/dist/viewer/components/ChartRenderer.vue.d.ts +7 -0
- package/dist/viewer/components/ChartRenderer.vue.d.ts.map +1 -1
- package/dist/viewer/components/ConnectorRenderer.vue.d.ts +7 -0
- package/dist/viewer/components/ConnectorRenderer.vue.d.ts.map +1 -1
- package/dist/viewer/components/DrawingOverlay.vue.d.ts.map +1 -1
- package/dist/viewer/components/ElementImageBox.vue.d.ts.map +1 -1
- package/dist/viewer/components/ElementRenderer.vue.d.ts.map +1 -1
- package/dist/viewer/components/InkRenderer.vue.d.ts +8 -8
- package/dist/viewer/components/InkRenderer.vue.d.ts.map +1 -1
- package/dist/viewer/components/Line3DChartRenderer.vue.d.ts +12 -3
- package/dist/viewer/components/Line3DChartRenderer.vue.d.ts.map +1 -1
- package/dist/viewer/components/PieChart3DRenderer.vue.d.ts +10 -2
- package/dist/viewer/components/PieChart3DRenderer.vue.d.ts.map +1 -1
- package/dist/viewer/components/PresentationMode.vue.d.ts.map +1 -1
- package/dist/viewer/components/ReadOnlyBanner.vue.d.ts +12 -1
- package/dist/viewer/components/ReadOnlyBanner.vue.d.ts.map +1 -1
- package/dist/viewer/components/ReflectionMirrorContent.vue.d.ts +28 -0
- package/dist/viewer/components/ReflectionMirrorContent.vue.d.ts.map +1 -0
- package/dist/viewer/components/ShapeEffectOverlay.vue.d.ts +6 -0
- package/dist/viewer/components/ShapeEffectOverlay.vue.d.ts.map +1 -1
- package/dist/viewer/components/SlideCanvas.vue.d.ts.map +1 -1
- package/dist/viewer/components/SlideDeckInspector.vue.d.ts +5 -1
- package/dist/viewer/components/SlideDeckInspector.vue.d.ts.map +1 -1
- package/dist/viewer/components/SlideStage.vue.d.ts.map +1 -1
- package/dist/viewer/components/SmartArt3DRenderer.vue.d.ts +12 -0
- package/dist/viewer/components/SmartArt3DRenderer.vue.d.ts.map +1 -1
- package/dist/viewer/components/SmartArtRenderer.vue.d.ts +7 -0
- package/dist/viewer/components/SmartArtRenderer.vue.d.ts.map +1 -1
- package/dist/viewer/components/SurfaceChart3DRenderer.vue.d.ts +11 -2
- package/dist/viewer/components/SurfaceChart3DRenderer.vue.d.ts.map +1 -1
- package/dist/viewer/components/TableRenderer.vue.d.ts +7 -0
- package/dist/viewer/components/TableRenderer.vue.d.ts.map +1 -1
- package/dist/viewer/components/ViewerMobileSheets.vue.d.ts +3 -1
- package/dist/viewer/components/ViewerMobileSheets.vue.d.ts.map +1 -1
- package/dist/viewer/components/ViewerSidePanels.vue.d.ts +3 -1
- package/dist/viewer/components/ViewerSidePanels.vue.d.ts.map +1 -1
- package/dist/viewer/components/WordArtEnvelopeGlyph.vue.d.ts +34 -0
- package/dist/viewer/components/WordArtEnvelopeGlyph.vue.d.ts.map +1 -0
- package/dist/viewer/components/WordArtText.vue.d.ts +14 -10
- package/dist/viewer/components/WordArtText.vue.d.ts.map +1 -1
- package/dist/viewer/components/chart/ChartViewModelSvg.vue.d.ts.map +1 -1
- package/dist/viewer/components/inspector/AccessibilityPanel.vue.d.ts +23 -0
- package/dist/viewer/components/inspector/AccessibilityPanel.vue.d.ts.map +1 -0
- package/dist/viewer/components/inspector/ChartPanel.vue.d.ts.map +1 -1
- package/dist/viewer/components/inspector/ChartUserShapeOptions.vue.d.ts +7 -6
- package/dist/viewer/components/inspector/ChartUserShapeOptions.vue.d.ts.map +1 -1
- package/dist/viewer/components/inspector/ChartUserShapePositionFields.vue.d.ts +56 -0
- package/dist/viewer/components/inspector/ChartUserShapePositionFields.vue.d.ts.map +1 -0
- package/dist/viewer/components/inspector/InspectorPane.vue.d.ts +11 -1
- package/dist/viewer/components/inspector/InspectorPane.vue.d.ts.map +1 -1
- package/dist/viewer/components/inspector/TablePanel.vue.d.ts +10 -1
- package/dist/viewer/components/inspector/TablePanel.vue.d.ts.map +1 -1
- package/dist/viewer/components/inspector/TableStyleEditor.vue.d.ts +27 -0
- package/dist/viewer/components/inspector/TableStyleEditor.vue.d.ts.map +1 -0
- package/dist/viewer/components/inspector/TableStyleEditorFields.vue.d.ts +17 -0
- package/dist/viewer/components/inspector/TableStyleEditorFields.vue.d.ts.map +1 -0
- package/dist/viewer/components/inspector/TableStyleOptions.vue.d.ts +10 -1
- package/dist/viewer/components/inspector/TableStyleOptions.vue.d.ts.map +1 -1
- package/dist/viewer/components/inspector/TransitionPreview.vue.d.ts.map +1 -1
- package/dist/viewer/composables/ai/useAiBridge.d.ts +13 -1
- package/dist/viewer/composables/ai/useAiBridge.d.ts.map +1 -1
- package/dist/viewer/composables/bar-face-picture-sample-version.d.ts +3 -0
- package/dist/viewer/composables/bar-face-picture-sample-version.d.ts.map +1 -0
- package/dist/viewer/composables/chart-3d-interaction-support.d.ts +32 -0
- package/dist/viewer/composables/chart-3d-interaction-support.d.ts.map +1 -0
- package/dist/viewer/composables/chart-3d-scene-selection.d.ts +33 -0
- package/dist/viewer/composables/chart-3d-scene-selection.d.ts.map +1 -0
- package/dist/viewer/composables/chart-canvas-interaction-support.d.ts +9 -1
- package/dist/viewer/composables/chart-canvas-interaction-support.d.ts.map +1 -1
- package/dist/viewer/composables/chart-canvas-interaction.d.ts.map +1 -1
- package/dist/viewer/composables/collaboration-types.d.ts +8 -0
- package/dist/viewer/composables/collaboration-types.d.ts.map +1 -1
- package/dist/viewer/composables/element-style.d.ts.map +1 -1
- package/dist/viewer/composables/useAnimationPlayback.d.ts +12 -0
- package/dist/viewer/composables/useAnimationPlayback.d.ts.map +1 -1
- package/dist/viewer/composables/useAreaChart3dScene.d.ts +11 -2
- package/dist/viewer/composables/useAreaChart3dScene.d.ts.map +1 -1
- package/dist/viewer/composables/useBarChart3dScene.d.ts +11 -2
- package/dist/viewer/composables/useBarChart3dScene.d.ts.map +1 -1
- package/dist/viewer/composables/useCollaboration.d.ts.map +1 -1
- package/dist/viewer/composables/useCollaborationWiring.d.ts +8 -1
- package/dist/viewer/composables/useCollaborationWiring.d.ts.map +1 -1
- package/dist/viewer/composables/useLineChart3dScene.d.ts +11 -2
- package/dist/viewer/composables/useLineChart3dScene.d.ts.map +1 -1
- package/dist/viewer/composables/useLoadContent.d.ts +8 -0
- package/dist/viewer/composables/useLoadContent.d.ts.map +1 -1
- package/dist/viewer/composables/usePieChart3dScene.d.ts +8 -1
- package/dist/viewer/composables/usePieChart3dScene.d.ts.map +1 -1
- package/dist/viewer/composables/useReadOnlyRecommendation.d.ts +20 -2
- package/dist/viewer/composables/useReadOnlyRecommendation.d.ts.map +1 -1
- package/dist/viewer/composables/useSmartArt3DScene.d.ts +23 -0
- package/dist/viewer/composables/useSmartArt3DScene.d.ts.map +1 -0
- package/dist/viewer/composables/useSurfaceChart3dScene.d.ts +11 -2
- package/dist/viewer/composables/useSurfaceChart3dScene.d.ts.map +1 -1
- package/dist/viewer/composables/useTableStyleMapHandlers.d.ts +25 -0
- package/dist/viewer/composables/useTableStyleMapHandlers.d.ts.map +1 -0
- package/dist/viewer/composables/useTextWarpEnvelope.d.ts +38 -0
- package/dist/viewer/composables/useTextWarpEnvelope.d.ts.map +1 -0
- package/dist/viewer/composables/visual-3d.d.ts.map +1 -1
- package/dist/viewer/index.cjs +1 -1
- package/dist/viewer/index.cjs.br +0 -0
- package/dist/viewer/index.cjs.gz +0 -0
- package/dist/viewer/index.js +3 -3
- package/dist/viewer/index.js.br +0 -0
- package/dist/viewer/index.js.gz +0 -0
- package/dist/{viewer-_C2C_5mk.cjs → viewer-5E1GSC6u.cjs} +11448 -10101
- package/dist/viewer-5E1GSC6u.cjs.br +0 -0
- package/dist/viewer-5E1GSC6u.cjs.gz +0 -0
- package/dist/{viewer-DyMHFRc5.js → viewer-Bykr12-X.js} +13150 -11803
- package/dist/viewer-Bykr12-X.js.br +0 -0
- package/dist/viewer-Bykr12-X.js.gz +0 -0
- package/package.json +2 -2
- package/dist/AiChatPanel-CGDR-wqY.cjs.br +0 -0
- package/dist/AiChatPanel-CGDR-wqY.cjs.gz +0 -0
- package/dist/AiChatPanel-XndiOIcU.js.br +0 -0
- package/dist/AiChatPanel-XndiOIcU.js.gz +0 -0
- package/dist/dist-AONF-8Jh.js.br +0 -0
- package/dist/dist-AONF-8Jh.js.gz +0 -0
- package/dist/dist-C13dWSnw.cjs.br +0 -0
- package/dist/dist-C13dWSnw.cjs.gz +0 -0
- package/dist/gif-encoder-BqsV5OmR.js +0 -2
- package/dist/gif-encoder-BqsV5OmR.js.br +0 -0
- package/dist/gif-encoder-BqsV5OmR.js.gz +0 -0
- package/dist/gif-encoder-azxBrC30.cjs +0 -2
- package/dist/gif-encoder-azxBrC30.cjs.br +0 -0
- package/dist/gif-encoder-azxBrC30.cjs.gz +0 -0
- package/dist/i18n-3rk7tLH2.js.br +0 -0
- package/dist/i18n-3rk7tLH2.js.gz +0 -0
- package/dist/i18n-Dhu39QI8.cjs.br +0 -0
- package/dist/i18n-Dhu39QI8.cjs.gz +0 -0
- package/dist/smartart-3d-BpL1-zhY.cjs +0 -158
- package/dist/smartart-3d-BpL1-zhY.cjs.br +0 -0
- package/dist/smartart-3d-BpL1-zhY.cjs.gz +0 -0
- package/dist/smartart-3d-PViOJOXG.js +0 -160
- package/dist/smartart-3d-PViOJOXG.js.br +0 -0
- package/dist/smartart-3d-PViOJOXG.js.gz +0 -0
- package/dist/useViewerSettingsDialog-BzJeMt6Q.js.br +0 -0
- package/dist/useViewerSettingsDialog-BzJeMt6Q.js.gz +0 -0
- package/dist/useViewerSettingsDialog-DWMP7Zg9.cjs.br +0 -0
- package/dist/useViewerSettingsDialog-DWMP7Zg9.cjs.gz +0 -0
- package/dist/viewer-DyMHFRc5.js.br +0 -0
- package/dist/viewer-DyMHFRc5.js.gz +0 -0
- package/dist/viewer-_C2C_5mk.cjs.br +0 -0
- package/dist/viewer-_C2C_5mk.cjs.gz +0 -0
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
let e = require("three"), t = require("three/examples/jsm/controls/OrbitControls.js");
|
|
2
|
+
function o(e, t, o) {
|
|
3
|
+
const n = t.split(/\s+/u).filter(Boolean);
|
|
4
|
+
if (0 === n.length) return [];
|
|
5
|
+
const i = [];
|
|
6
|
+
let a = n[0];
|
|
7
|
+
for (let t = 1; t < n.length; t++) {
|
|
8
|
+
const s = `${a} ${n[t]}`;
|
|
9
|
+
e.measureText(s).width <= o ? a = s : (i.push(a), a = n[t]);
|
|
10
|
+
}
|
|
11
|
+
return i.push(a), i;
|
|
12
|
+
}
|
|
13
|
+
function n(t, n, i, a, s, r) {
|
|
14
|
+
if ("undefined" == typeof document || !t.trim() || a <= 0 || s <= 0) return null;
|
|
15
|
+
const { weight: l, italic: c, color: p, scale: d } = function(e, t) {
|
|
16
|
+
const o = void 0 === t?.bold ? "600" : t.bold ? "700" : "400", n = t?.italic ? "italic " : "", i = "number" == typeof t?.fontScale && Number.isFinite(t.fontScale) && t.fontScale > 0 ? t.fontScale : 1;
|
|
17
|
+
return {
|
|
18
|
+
weight: o,
|
|
19
|
+
italic: n,
|
|
20
|
+
color: t?.color ?? e,
|
|
21
|
+
scale: i
|
|
22
|
+
};
|
|
23
|
+
}(n, r), h = .86 * a, u = .86 * s, f = document.createElement("canvas");
|
|
24
|
+
f.width = Math.max(8, Math.round(4 * h)), f.height = Math.max(8, Math.round(4 * u));
|
|
25
|
+
const m = f.getContext("2d");
|
|
26
|
+
if (!m) return null;
|
|
27
|
+
const x = .94 * f.width, w = (e) => `${c}${l} ${e}px system-ui, -apple-system, Segoe UI, Roboto, sans-serif`;
|
|
28
|
+
let g = Math.max(6, i) * d * 4, y = [];
|
|
29
|
+
for (let e = 0; e < 12; e++) {
|
|
30
|
+
m.font = w(g), y = o(m, t, x);
|
|
31
|
+
const e = 1.2 * g;
|
|
32
|
+
if (y.length * e <= .96 * f.height || g <= 24) break;
|
|
33
|
+
g *= .88;
|
|
34
|
+
}
|
|
35
|
+
m.clearRect(0, 0, f.width, f.height), m.fillStyle = p, m.textAlign = "center", m.textBaseline = "middle", m.font = w(g);
|
|
36
|
+
const b = 1.2 * g, M = y.length * b, S = f.height / 2 - M / 2 + b / 2;
|
|
37
|
+
for (let e = 0; e < y.length; e++) {
|
|
38
|
+
const t = S + e * b;
|
|
39
|
+
if (m.fillText(y[e], f.width / 2, t), r?.underline) {
|
|
40
|
+
const o = m.measureText(y[e]).width;
|
|
41
|
+
m.strokeStyle = p, m.lineWidth = Math.max(1, .06 * g), m.beginPath(), m.moveTo(f.width / 2 - o / 2, t + .32 * g), m.lineTo(f.width / 2 + o / 2, t + .32 * g), m.stroke();
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
const v = new e.CanvasTexture(f);
|
|
45
|
+
return v.colorSpace = e.SRGBColorSpace, v.minFilter = e.LinearFilter, v.magFilter = e.LinearFilter, v.flipY = !1, v.premultiplyAlpha = !1, v.wrapT = e.RepeatWrapping, v.repeat.set(1, -1), v.offset.set(0, 1), v.needsUpdate = !0, {
|
|
46
|
+
texture: v,
|
|
47
|
+
worldWidth: h,
|
|
48
|
+
worldHeight: u
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
function i(t, o, n) {
|
|
52
|
+
const i = function(t) {
|
|
53
|
+
const o = new e.Shape();
|
|
54
|
+
t.outline.forEach((e, t) => {
|
|
55
|
+
0 === t ? o.moveTo(e.x, e.y) : o.lineTo(e.x, e.y);
|
|
56
|
+
}), o.closePath();
|
|
57
|
+
const n = t.bevel > 0;
|
|
58
|
+
return new e.ExtrudeGeometry(o, {
|
|
59
|
+
depth: t.depth,
|
|
60
|
+
bevelEnabled: n,
|
|
61
|
+
bevelThickness: t.bevel,
|
|
62
|
+
bevelSize: t.bevel,
|
|
63
|
+
bevelSegments: 2,
|
|
64
|
+
curveSegments: t.rounded ? 24 : 1,
|
|
65
|
+
steps: 1
|
|
66
|
+
});
|
|
67
|
+
}(n), a = new e.MeshStandardMaterial({
|
|
68
|
+
color: new e.Color(n.fill),
|
|
69
|
+
metalness: .12,
|
|
70
|
+
roughness: .52,
|
|
71
|
+
transparent: n.opacity < 1,
|
|
72
|
+
opacity: n.opacity
|
|
73
|
+
}), s = new e.Mesh(i, a);
|
|
74
|
+
if (s.position.set(n.position.x, n.position.y, n.position.z), s.rotation.set(n.rotation.x, n.rotation.y, n.rotation.z), t.add(s), o.push(i, a), n.strokeWidth > 0) {
|
|
75
|
+
const a = new e.EdgesGeometry(i, 30), r = new e.LineBasicMaterial({ color: new e.Color(n.stroke) }), l = new e.LineSegments(a, r);
|
|
76
|
+
l.position.copy(s.position), l.rotation.copy(s.rotation), t.add(l), o.push(a, r);
|
|
77
|
+
}
|
|
78
|
+
return i;
|
|
79
|
+
}
|
|
80
|
+
function a(t, o) {
|
|
81
|
+
if (!t.text) return null;
|
|
82
|
+
const i = n(t.text, t.textColor, t.fontSize, 2 * t.halfWidth, 2 * t.halfHeight, o);
|
|
83
|
+
if (!i) return null;
|
|
84
|
+
const a = new e.PlaneGeometry(i.worldWidth, i.worldHeight), s = new e.MeshBasicMaterial({
|
|
85
|
+
map: i.texture,
|
|
86
|
+
transparent: !0,
|
|
87
|
+
depthWrite: !1
|
|
88
|
+
}), r = new e.Mesh(a, s), l = new e.Euler(t.rotation.x, t.rotation.y, t.rotation.z), c = new e.Vector3(0, 0, t.depth + t.bevel + .4).applyEuler(l);
|
|
89
|
+
return r.position.set(t.position.x + c.x, t.position.y + c.y, t.position.z + c.z), r.rotation.copy(l), {
|
|
90
|
+
plane: r,
|
|
91
|
+
disposables: [
|
|
92
|
+
a,
|
|
93
|
+
s,
|
|
94
|
+
i.texture
|
|
95
|
+
]
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
function s(e, t) {
|
|
99
|
+
t.plane && e.remove(t.plane);
|
|
100
|
+
for (const e of t.disposables) e.dispose();
|
|
101
|
+
t.plane = null, t.disposables = [];
|
|
102
|
+
}
|
|
103
|
+
function r(t, o) {
|
|
104
|
+
const n = new e.Group(), r = [], l = t.meshes.map((e) => {
|
|
105
|
+
i(n, r, e);
|
|
106
|
+
const t = a(e, o);
|
|
107
|
+
return t && n.add(t.plane), {
|
|
108
|
+
node: e,
|
|
109
|
+
plane: t?.plane ?? null,
|
|
110
|
+
disposables: t?.disposables ?? []
|
|
111
|
+
};
|
|
112
|
+
});
|
|
113
|
+
return function(t, o, n) {
|
|
114
|
+
for (const i of n.connectors) {
|
|
115
|
+
if (i.points.length < 2) continue;
|
|
116
|
+
const n = new e.BufferGeometry().setFromPoints(i.points.map((t) => new e.Vector3(t.x, t.y, t.z))), a = new e.LineBasicMaterial({
|
|
117
|
+
color: new e.Color(i.color),
|
|
118
|
+
transparent: !0,
|
|
119
|
+
opacity: .7
|
|
120
|
+
});
|
|
121
|
+
t.add(new e.Line(n, a)), o.push(n, a);
|
|
122
|
+
}
|
|
123
|
+
}(n, r, t), {
|
|
124
|
+
group: n,
|
|
125
|
+
setTextStyle(e) {
|
|
126
|
+
for (const t of l) {
|
|
127
|
+
s(n, t);
|
|
128
|
+
const o = a(t.node, e);
|
|
129
|
+
o && (n.add(o.plane), t.plane = o.plane, t.disposables = o.disposables);
|
|
130
|
+
}
|
|
131
|
+
},
|
|
132
|
+
dispose() {
|
|
133
|
+
for (const e of r) e.dispose();
|
|
134
|
+
for (const e of l) s(n, e);
|
|
135
|
+
}
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
exports.mountSmartArt3D = function(o, n, i, a, s = {}) {
|
|
139
|
+
const l = new e.WebGLRenderer({
|
|
140
|
+
canvas: o,
|
|
141
|
+
antialias: !0,
|
|
142
|
+
alpha: !s.background
|
|
143
|
+
});
|
|
144
|
+
l.setPixelRatio(Math.min("undefined" == typeof window ? 1 : window.devicePixelRatio || 1, s.maxPixelRatio ?? 2)), l.setSize(i, a, !1);
|
|
145
|
+
const c = new e.Scene();
|
|
146
|
+
s.background && (c.background = new e.Color(s.background));
|
|
147
|
+
const { cx: p, cy: d, cz: h, radius: u } = function(e) {
|
|
148
|
+
let t = 1 / 0, o = 1 / 0, n = 1 / 0, i = -1 / 0, a = -1 / 0, s = -1 / 0;
|
|
149
|
+
const r = (e, r, l, c) => {
|
|
150
|
+
t = Math.min(t, e - c), o = Math.min(o, r - c), n = Math.min(n, l - c), i = Math.max(i, e + c), a = Math.max(a, r + c), s = Math.max(s, l + c);
|
|
151
|
+
};
|
|
152
|
+
for (const t of e.meshes) {
|
|
153
|
+
const e = Math.max(t.halfWidth, t.halfHeight) + t.depth + t.bevel;
|
|
154
|
+
r(t.position.x, t.position.y, t.position.z, e);
|
|
155
|
+
}
|
|
156
|
+
for (const t of e.connectors) for (const e of t.points) r(e.x, e.y, e.z, 1);
|
|
157
|
+
if (!Number.isFinite(t)) return {
|
|
158
|
+
cx: 0,
|
|
159
|
+
cy: 0,
|
|
160
|
+
cz: 0,
|
|
161
|
+
radius: Math.max(e.bounds.width, e.bounds.height) / 2 || 1
|
|
162
|
+
};
|
|
163
|
+
return {
|
|
164
|
+
cx: (t + i) / 2,
|
|
165
|
+
cy: (o + a) / 2,
|
|
166
|
+
cz: (n + s) / 2,
|
|
167
|
+
radius: .5 * Math.hypot(i - t, a - o, s - n) || 1
|
|
168
|
+
};
|
|
169
|
+
}(n), f = i / Math.max(1, a), m = function(e, t) {
|
|
170
|
+
const o = 42 * Math.PI / 180, n = 2 * Math.atan(Math.tan(o / 2) * t);
|
|
171
|
+
return e / Math.sin(Math.min(o, n) / 2) * 1.1;
|
|
172
|
+
}(u, f), x = new e.PerspectiveCamera(42, f, .1, 8 * m + 4 * u);
|
|
173
|
+
x.position.set(p + .25 * u, d + .3 * u, h + m), x.lookAt(p, d, h), c.add(new e.AmbientLight(16777215, .62));
|
|
174
|
+
const w = new e.DirectionalLight(16777215, .95);
|
|
175
|
+
w.position.set(p + u, d + 1.4 * u, h + m), c.add(w);
|
|
176
|
+
const g = new e.DirectionalLight(16777215, .3);
|
|
177
|
+
g.position.set(p - u, d - .6 * u, h + .6 * m), c.add(g);
|
|
178
|
+
const y = r(n, s.textStyle);
|
|
179
|
+
c.add(y.group);
|
|
180
|
+
let b = null;
|
|
181
|
+
const M = (e) => {
|
|
182
|
+
e && !b ? (b = new t.OrbitControls(x, o), b.enablePan = !1, b.target.set(p, d, h), b.minDistance = .4 * m, b.maxDistance = 3 * m, b.update()) : !e && b && (b.dispose(), b = null), b && (b.autoRotate = Boolean(s.autoRotate), b.autoRotateSpeed = 1.2);
|
|
183
|
+
};
|
|
184
|
+
M(Boolean(s.interactive));
|
|
185
|
+
let S = 0, v = !1;
|
|
186
|
+
const z = () => {
|
|
187
|
+
v || (S = requestAnimationFrame(z), b?.update(), l.render(c, x));
|
|
188
|
+
};
|
|
189
|
+
return S = requestAnimationFrame(z), {
|
|
190
|
+
resize(e, t) {
|
|
191
|
+
x.aspect = e / Math.max(1, t), x.updateProjectionMatrix(), l.setSize(e, t, !1);
|
|
192
|
+
},
|
|
193
|
+
setInteractive(e) {
|
|
194
|
+
M(e);
|
|
195
|
+
},
|
|
196
|
+
setTextStyle(e) {
|
|
197
|
+
y.setTextStyle(e);
|
|
198
|
+
},
|
|
199
|
+
dispose() {
|
|
200
|
+
v = !0, cancelAnimationFrame(S), b?.dispose(), y.dispose(), l.dispose();
|
|
201
|
+
}
|
|
202
|
+
};
|
|
203
|
+
};
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
import { AmbientLight as t, BufferGeometry as e, CanvasTexture as o, Color as n, DirectionalLight as i, EdgesGeometry as s, Euler as a, ExtrudeGeometry as r, Group as l, Line as c, LineBasicMaterial as p, LineSegments as d, LinearFilter as h, Mesh as u, MeshBasicMaterial as f, MeshStandardMaterial as m, PerspectiveCamera as w, PlaneGeometry as x, RepeatWrapping as y, SRGBColorSpace as b, Scene as g, Shape as M, Vector3 as v, WebGLRenderer as S } from "three";
|
|
2
|
+
import { OrbitControls as z } from "three/examples/jsm/controls/OrbitControls.js";
|
|
3
|
+
function T(t, e, o) {
|
|
4
|
+
const n = e.split(/\s+/u).filter(Boolean);
|
|
5
|
+
if (0 === n.length) return [];
|
|
6
|
+
const i = [];
|
|
7
|
+
let s = n[0];
|
|
8
|
+
for (let e = 1; e < n.length; e++) {
|
|
9
|
+
const a = `${s} ${n[e]}`;
|
|
10
|
+
t.measureText(a).width <= o ? s = a : (i.push(s), s = n[e]);
|
|
11
|
+
}
|
|
12
|
+
return i.push(s), i;
|
|
13
|
+
}
|
|
14
|
+
function k(t, e, n, i, s, a) {
|
|
15
|
+
if ("undefined" == typeof document || !t.trim() || i <= 0 || s <= 0) return null;
|
|
16
|
+
const { weight: r, italic: l, color: c, scale: p } = function(t, e) {
|
|
17
|
+
const o = void 0 === e?.bold ? "600" : e.bold ? "700" : "400", n = e?.italic ? "italic " : "", i = "number" == typeof e?.fontScale && Number.isFinite(e.fontScale) && e.fontScale > 0 ? e.fontScale : 1;
|
|
18
|
+
return {
|
|
19
|
+
weight: o,
|
|
20
|
+
italic: n,
|
|
21
|
+
color: e?.color ?? t,
|
|
22
|
+
scale: i
|
|
23
|
+
};
|
|
24
|
+
}(e, a), d = .86 * i, u = .86 * s, f = document.createElement("canvas");
|
|
25
|
+
f.width = Math.max(8, Math.round(4 * d)), f.height = Math.max(8, Math.round(4 * u));
|
|
26
|
+
const m = f.getContext("2d");
|
|
27
|
+
if (!m) return null;
|
|
28
|
+
const w = .94 * f.width, x = (t) => `${l}${r} ${t}px system-ui, -apple-system, Segoe UI, Roboto, sans-serif`;
|
|
29
|
+
let g = Math.max(6, n) * p * 4, M = [];
|
|
30
|
+
for (let e = 0; e < 12; e++) {
|
|
31
|
+
m.font = x(g), M = T(m, t, w);
|
|
32
|
+
const e = 1.2 * g;
|
|
33
|
+
if (M.length * e <= .96 * f.height || g <= 24) break;
|
|
34
|
+
g *= .88;
|
|
35
|
+
}
|
|
36
|
+
m.clearRect(0, 0, f.width, f.height), m.fillStyle = c, m.textAlign = "center", m.textBaseline = "middle", m.font = x(g);
|
|
37
|
+
const v = 1.2 * g, S = M.length * v, z = f.height / 2 - S / 2 + v / 2;
|
|
38
|
+
for (let t = 0; t < M.length; t++) {
|
|
39
|
+
const e = z + t * v;
|
|
40
|
+
if (m.fillText(M[t], f.width / 2, e), a?.underline) {
|
|
41
|
+
const o = m.measureText(M[t]).width;
|
|
42
|
+
m.strokeStyle = c, m.lineWidth = Math.max(1, .06 * g), m.beginPath(), m.moveTo(f.width / 2 - o / 2, e + .32 * g), m.lineTo(f.width / 2 + o / 2, e + .32 * g), m.stroke();
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
const k = new o(f);
|
|
46
|
+
return k.colorSpace = b, k.minFilter = h, k.magFilter = h, k.flipY = !1, k.premultiplyAlpha = !1, k.wrapT = y, k.repeat.set(1, -1), k.offset.set(0, 1), k.needsUpdate = !0, {
|
|
47
|
+
texture: k,
|
|
48
|
+
worldWidth: d,
|
|
49
|
+
worldHeight: u
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
function P(t, e, o) {
|
|
53
|
+
const i = function(t) {
|
|
54
|
+
const e = new M();
|
|
55
|
+
t.outline.forEach((t, o) => {
|
|
56
|
+
0 === o ? e.moveTo(t.x, t.y) : e.lineTo(t.x, t.y);
|
|
57
|
+
}), e.closePath();
|
|
58
|
+
const o = t.bevel > 0;
|
|
59
|
+
return new r(e, {
|
|
60
|
+
depth: t.depth,
|
|
61
|
+
bevelEnabled: o,
|
|
62
|
+
bevelThickness: t.bevel,
|
|
63
|
+
bevelSize: t.bevel,
|
|
64
|
+
bevelSegments: 2,
|
|
65
|
+
curveSegments: t.rounded ? 24 : 1,
|
|
66
|
+
steps: 1
|
|
67
|
+
});
|
|
68
|
+
}(o), a = new m({
|
|
69
|
+
color: new n(o.fill),
|
|
70
|
+
metalness: .12,
|
|
71
|
+
roughness: .52,
|
|
72
|
+
transparent: o.opacity < 1,
|
|
73
|
+
opacity: o.opacity
|
|
74
|
+
}), l = new u(i, a);
|
|
75
|
+
if (l.position.set(o.position.x, o.position.y, o.position.z), l.rotation.set(o.rotation.x, o.rotation.y, o.rotation.z), t.add(l), e.push(i, a), o.strokeWidth > 0) {
|
|
76
|
+
const a = new s(i, 30), r = new p({ color: new n(o.stroke) }), c = new d(a, r);
|
|
77
|
+
c.position.copy(l.position), c.rotation.copy(l.rotation), t.add(c), e.push(a, r);
|
|
78
|
+
}
|
|
79
|
+
return i;
|
|
80
|
+
}
|
|
81
|
+
function F(t, e) {
|
|
82
|
+
if (!t.text) return null;
|
|
83
|
+
const o = k(t.text, t.textColor, t.fontSize, 2 * t.halfWidth, 2 * t.halfHeight, e);
|
|
84
|
+
if (!o) return null;
|
|
85
|
+
const n = new x(o.worldWidth, o.worldHeight), i = new f({
|
|
86
|
+
map: o.texture,
|
|
87
|
+
transparent: !0,
|
|
88
|
+
depthWrite: !1
|
|
89
|
+
}), s = new u(n, i), r = new a(t.rotation.x, t.rotation.y, t.rotation.z), l = new v(0, 0, t.depth + t.bevel + .4).applyEuler(r);
|
|
90
|
+
return s.position.set(t.position.x + l.x, t.position.y + l.y, t.position.z + l.z), s.rotation.copy(r), {
|
|
91
|
+
plane: s,
|
|
92
|
+
disposables: [
|
|
93
|
+
n,
|
|
94
|
+
i,
|
|
95
|
+
o.texture
|
|
96
|
+
]
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
function R(t, e) {
|
|
100
|
+
e.plane && t.remove(e.plane);
|
|
101
|
+
for (const t of e.disposables) t.dispose();
|
|
102
|
+
e.plane = null, e.disposables = [];
|
|
103
|
+
}
|
|
104
|
+
function W(t, o) {
|
|
105
|
+
const i = new l(), s = [], a = t.meshes.map((t) => {
|
|
106
|
+
P(i, s, t);
|
|
107
|
+
const e = F(t, o);
|
|
108
|
+
return e && i.add(e.plane), {
|
|
109
|
+
node: t,
|
|
110
|
+
plane: e?.plane ?? null,
|
|
111
|
+
disposables: e?.disposables ?? []
|
|
112
|
+
};
|
|
113
|
+
});
|
|
114
|
+
return function(t, o, i) {
|
|
115
|
+
for (const s of i.connectors) {
|
|
116
|
+
if (s.points.length < 2) continue;
|
|
117
|
+
const i = new e().setFromPoints(s.points.map((t) => new v(t.x, t.y, t.z))), a = new p({
|
|
118
|
+
color: new n(s.color),
|
|
119
|
+
transparent: !0,
|
|
120
|
+
opacity: .7
|
|
121
|
+
});
|
|
122
|
+
t.add(new c(i, a)), o.push(i, a);
|
|
123
|
+
}
|
|
124
|
+
}(i, s, t), {
|
|
125
|
+
group: i,
|
|
126
|
+
setTextStyle(t) {
|
|
127
|
+
for (const e of a) {
|
|
128
|
+
R(i, e);
|
|
129
|
+
const o = F(e.node, t);
|
|
130
|
+
o && (i.add(o.plane), e.plane = o.plane, e.disposables = o.disposables);
|
|
131
|
+
}
|
|
132
|
+
},
|
|
133
|
+
dispose() {
|
|
134
|
+
for (const t of s) t.dispose();
|
|
135
|
+
for (const t of a) R(i, t);
|
|
136
|
+
}
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
function A(e, o, s, a, r = {}) {
|
|
140
|
+
const l = new S({
|
|
141
|
+
canvas: e,
|
|
142
|
+
antialias: !0,
|
|
143
|
+
alpha: !r.background
|
|
144
|
+
});
|
|
145
|
+
l.setPixelRatio(Math.min("undefined" == typeof window ? 1 : window.devicePixelRatio || 1, r.maxPixelRatio ?? 2)), l.setSize(s, a, !1);
|
|
146
|
+
const c = new g();
|
|
147
|
+
r.background && (c.background = new n(r.background));
|
|
148
|
+
const { cx: p, cy: d, cz: h, radius: u } = function(t) {
|
|
149
|
+
let e = 1 / 0, o = 1 / 0, n = 1 / 0, i = -1 / 0, s = -1 / 0, a = -1 / 0;
|
|
150
|
+
const r = (t, r, l, c) => {
|
|
151
|
+
e = Math.min(e, t - c), o = Math.min(o, r - c), n = Math.min(n, l - c), i = Math.max(i, t + c), s = Math.max(s, r + c), a = Math.max(a, l + c);
|
|
152
|
+
};
|
|
153
|
+
for (const e of t.meshes) {
|
|
154
|
+
const t = Math.max(e.halfWidth, e.halfHeight) + e.depth + e.bevel;
|
|
155
|
+
r(e.position.x, e.position.y, e.position.z, t);
|
|
156
|
+
}
|
|
157
|
+
for (const e of t.connectors) for (const t of e.points) r(t.x, t.y, t.z, 1);
|
|
158
|
+
if (!Number.isFinite(e)) return {
|
|
159
|
+
cx: 0,
|
|
160
|
+
cy: 0,
|
|
161
|
+
cz: 0,
|
|
162
|
+
radius: Math.max(t.bounds.width, t.bounds.height) / 2 || 1
|
|
163
|
+
};
|
|
164
|
+
return {
|
|
165
|
+
cx: (e + i) / 2,
|
|
166
|
+
cy: (o + s) / 2,
|
|
167
|
+
cz: (n + a) / 2,
|
|
168
|
+
radius: .5 * Math.hypot(i - e, s - o, a - n) || 1
|
|
169
|
+
};
|
|
170
|
+
}(o), f = s / Math.max(1, a), m = function(t, e) {
|
|
171
|
+
const o = 42 * Math.PI / 180, n = 2 * Math.atan(Math.tan(o / 2) * e);
|
|
172
|
+
return t / Math.sin(Math.min(o, n) / 2) * 1.1;
|
|
173
|
+
}(u, f), x = new w(42, f, .1, 8 * m + 4 * u);
|
|
174
|
+
x.position.set(p + .25 * u, d + .3 * u, h + m), x.lookAt(p, d, h), c.add(new t(16777215, .62));
|
|
175
|
+
const y = new i(16777215, .95);
|
|
176
|
+
y.position.set(p + u, d + 1.4 * u, h + m), c.add(y);
|
|
177
|
+
const b = new i(16777215, .3);
|
|
178
|
+
b.position.set(p - u, d - .6 * u, h + .6 * m), c.add(b);
|
|
179
|
+
const M = W(o, r.textStyle);
|
|
180
|
+
c.add(M.group);
|
|
181
|
+
let v = null;
|
|
182
|
+
const T = (t) => {
|
|
183
|
+
t && !v ? (v = new z(x, e), v.enablePan = !1, v.target.set(p, d, h), v.minDistance = .4 * m, v.maxDistance = 3 * m, v.update()) : !t && v && (v.dispose(), v = null), v && (v.autoRotate = Boolean(r.autoRotate), v.autoRotateSpeed = 1.2);
|
|
184
|
+
};
|
|
185
|
+
T(Boolean(r.interactive));
|
|
186
|
+
let k = 0, P = !1;
|
|
187
|
+
const F = () => {
|
|
188
|
+
P || (k = requestAnimationFrame(F), v?.update(), l.render(c, x));
|
|
189
|
+
};
|
|
190
|
+
return k = requestAnimationFrame(F), {
|
|
191
|
+
resize(t, e) {
|
|
192
|
+
x.aspect = t / Math.max(1, e), x.updateProjectionMatrix(), l.setSize(t, e, !1);
|
|
193
|
+
},
|
|
194
|
+
setInteractive(t) {
|
|
195
|
+
T(t);
|
|
196
|
+
},
|
|
197
|
+
setTextStyle(t) {
|
|
198
|
+
M.setTextStyle(t);
|
|
199
|
+
},
|
|
200
|
+
dispose() {
|
|
201
|
+
P = !0, cancelAnimationFrame(k), v?.dispose(), M.dispose(), l.dispose();
|
|
202
|
+
}
|
|
203
|
+
};
|
|
204
|
+
}
|
|
205
|
+
export { A as mountSmartArt3D };
|
|
Binary file
|
|
Binary file
|