pptx-angular-viewer 3.2.2 → 3.2.3
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 +6 -0
- package/fesm2022/{pptx-angular-viewer-chat-history-idb-Cxqxc-c6.mjs → pptx-angular-viewer-chat-history-idb-CTv3rQal.mjs} +2 -2
- package/fesm2022/{pptx-angular-viewer-chat-history-idb-Cxqxc-c6.mjs.map → pptx-angular-viewer-chat-history-idb-CTv3rQal.mjs.map} +1 -1
- package/fesm2022/pptx-angular-viewer-index-BbiIOY_Y.mjs.map +1 -1
- package/fesm2022/{pptx-angular-viewer-pptx-angular-viewer-CblBWEKg.mjs → pptx-angular-viewer-pptx-angular-viewer-D4-vQO15.mjs} +3 -3
- package/fesm2022/{pptx-angular-viewer-pptx-angular-viewer-CblBWEKg.mjs.map → pptx-angular-viewer-pptx-angular-viewer-D4-vQO15.mjs.map} +1 -1
- package/fesm2022/pptx-angular-viewer.mjs +1 -1
- package/package.json +3 -3
- package/types/pptx-angular-viewer.d.ts +1 -1
- package/types/pptx-angular-viewer.d.ts.map +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,12 @@ A release listed with no entries carried no Conventional Commit in this package'
|
|
|
7
7
|
scope: scripts/release-plan.mjs re-releases a package whenever any of its files
|
|
8
8
|
change, not only on conventional ones.
|
|
9
9
|
|
|
10
|
+
## [3.2.2](https://github.com/ChristopherVR/pptx-viewer/releases/tag/pptx-angular-viewer@3.2.2) - 2026-08-29
|
|
11
|
+
|
|
12
|
+
### Bug Fixes
|
|
13
|
+
|
|
14
|
+
- **animation:** Preserve authored PowerPoint playback and rendering ([#185](https://github.com/ChristopherVR/pptx-viewer/issues/185)) (by @primerch) ([628be23](https://github.com/ChristopherVR/pptx-viewer/commit/628be23999fb116d11cde2a5f62aac941416a1f5))
|
|
15
|
+
|
|
10
16
|
## [3.2.1](https://github.com/ChristopherVR/pptx-viewer/releases/tag/pptx-angular-viewer@3.2.1) - 2026-08-29
|
|
11
17
|
|
|
12
18
|
### Bug Fixes
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as toChatSummary } from './pptx-angular-viewer-pptx-angular-viewer-
|
|
1
|
+
import { t as toChatSummary } from './pptx-angular-viewer-pptx-angular-viewer-D4-vQO15.mjs';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* IndexedDB backend for {@link createChatHistoryStore}. Kept in its own module
|
|
@@ -103,4 +103,4 @@ function createIdbBackend(db) {
|
|
|
103
103
|
}
|
|
104
104
|
|
|
105
105
|
export { CHAT_STORE, createIdbBackend, openChatDb };
|
|
106
|
-
//# sourceMappingURL=pptx-angular-viewer-chat-history-idb-
|
|
106
|
+
//# sourceMappingURL=pptx-angular-viewer-chat-history-idb-CTv3rQal.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pptx-angular-viewer-chat-history-idb-
|
|
1
|
+
{"version":3,"file":"pptx-angular-viewer-chat-history-idb-CTv3rQal.mjs","sources":["../../src/internal/shared-src/ai/chat-history-idb.ts"],"sourcesContent":["/**\n * IndexedDB backend for {@link createChatHistoryStore}. Kept in its own module\n * so the localStorage fallback and the public factory stay within the per-file\n * size budget. Uses the raw IndexedDB API with tiny promise wrappers so no new\n * runtime dependency is pulled in.\n *\n * Every browser global is touched lazily from inside a function, never at module\n * load, so importing this file in a non-DOM environment (Node, SSR) never throws.\n */\n\nimport type { ChatBackend, PptxAiChatSummary, PptxAiStoredChat } from './chat-history-store';\nimport { toChatSummary } from './chat-history-store';\n\n/** Object store holding one record per chat, keyed by `id`. */\nexport const CHAT_STORE = 'chats';\n/** Index over the optional `deckId` key path, used for per-deck filtering. */\nconst DECK_INDEX = 'deckId';\n\n/** Resolve an `IDBRequest` to a promise. */\nfunction requestToPromise<T>(request: IDBRequest<T>): Promise<T> {\n\treturn new Promise<T>((resolve, reject) => {\n\t\trequest.onsuccess = () => resolve(request.result);\n\t\trequest.onerror = () => reject(request.error ?? new Error('IndexedDB request failed.'));\n\t});\n}\n\n/** Resolve when a transaction commits (or reject on error/abort). */\nfunction transactionDone(tx: IDBTransaction): Promise<void> {\n\treturn new Promise<void>((resolve, reject) => {\n\t\ttx.oncomplete = () => resolve();\n\t\ttx.onerror = () => reject(tx.error ?? new Error('IndexedDB transaction failed.'));\n\t\ttx.onabort = () => reject(tx.error ?? new Error('IndexedDB transaction aborted.'));\n\t});\n}\n\n/**\n * Open (and if needed create/upgrade) the chat database. Throws when there is no\n * `indexedDB` global so the caller can transparently fall back to localStorage.\n */\nexport function openChatDb(dbName: string): Promise<IDBDatabase> {\n\tconst idb = typeof indexedDB !== 'undefined' ? indexedDB : undefined;\n\tif (!idb) {\n\t\tthrow new Error('IndexedDB is not available in this environment.');\n\t}\n\treturn new Promise<IDBDatabase>((resolve, reject) => {\n\t\tconst open = idb.open(dbName, 1);\n\t\topen.onupgradeneeded = () => {\n\t\t\tconst db = open.result;\n\t\t\tif (!db.objectStoreNames.contains(CHAT_STORE)) {\n\t\t\t\tconst store = db.createObjectStore(CHAT_STORE, { keyPath: 'id' });\n\t\t\t\tstore.createIndex(DECK_INDEX, 'deckId', { unique: false });\n\t\t\t}\n\t\t};\n\t\topen.onsuccess = () => resolve(open.result);\n\t\topen.onerror = () => reject(open.error ?? new Error('Failed to open IndexedDB.'));\n\t\topen.onblocked = () => reject(new Error('IndexedDB open blocked by another connection.'));\n\t});\n}\n\n/** Read every stored chat (newest-first ordering is applied by the caller). */\nasync function readAll(db: IDBDatabase, deckId: string | undefined): Promise<PptxAiStoredChat[]> {\n\tconst tx = db.transaction(CHAT_STORE, 'readonly');\n\tconst store = tx.objectStore(CHAT_STORE);\n\tconst source =\n\t\tdeckId === undefined\n\t\t\t? store.getAll()\n\t\t\t: store.index(DECK_INDEX).getAll(IDBKeyRange.only(deckId));\n\tconst rows = await requestToPromise<PptxAiStoredChat[]>(source);\n\tawait transactionDone(tx);\n\treturn rows;\n}\n\n/** Create an IndexedDB-backed {@link ChatBackend}. */\nexport function createIdbBackend(db: IDBDatabase): ChatBackend {\n\treturn {\n\t\tasync list(deckId: string | undefined): Promise<PptxAiChatSummary[]> {\n\t\t\tconst rows = await readAll(db, deckId);\n\t\t\treturn rows.map(toChatSummary).sort((a, b) => b.updatedAt - a.updatedAt);\n\t\t},\n\t\tasync load(id: string): Promise<PptxAiStoredChat | null> {\n\t\t\tconst tx = db.transaction(CHAT_STORE, 'readonly');\n\t\t\tconst row = await requestToPromise<PptxAiStoredChat | undefined>(\n\t\t\t\ttx.objectStore(CHAT_STORE).get(id),\n\t\t\t);\n\t\t\tawait transactionDone(tx);\n\t\t\treturn row ?? null;\n\t\t},\n\t\tasync save(chat: PptxAiStoredChat): Promise<void> {\n\t\t\tconst tx = db.transaction(CHAT_STORE, 'readwrite');\n\t\t\ttx.objectStore(CHAT_STORE).put(chat);\n\t\t\tawait transactionDone(tx);\n\t\t},\n\t\tasync remove(id: string): Promise<void> {\n\t\t\tconst tx = db.transaction(CHAT_STORE, 'readwrite');\n\t\t\ttx.objectStore(CHAT_STORE).delete(id);\n\t\t\tawait transactionDone(tx);\n\t\t},\n\t\tasync clear(deckId: string | undefined): Promise<void> {\n\t\t\tconst tx = db.transaction(CHAT_STORE, 'readwrite');\n\t\t\tconst store = tx.objectStore(CHAT_STORE);\n\t\t\tif (deckId === undefined) {\n\t\t\t\tstore.clear();\n\t\t\t} else {\n\t\t\t\tconst ids = await requestToPromise<IDBValidKey[]>(\n\t\t\t\t\tstore.index(DECK_INDEX).getAllKeys(IDBKeyRange.only(deckId)),\n\t\t\t\t);\n\t\t\t\tfor (const id of ids) {\n\t\t\t\t\tstore.delete(id);\n\t\t\t\t}\n\t\t\t}\n\t\t\tawait transactionDone(tx);\n\t\t},\n\t};\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pptx-angular-viewer-index-BbiIOY_Y.mjs","sources":["../../src/internal/shared-src/smartart-3d/text-texture.ts","../../src/internal/shared-src/smartart-3d/meshes.ts","../../src/internal/shared-src/smartart-3d/scene.ts","../../src/internal/shared-src/smartart-3d/index.ts"],"sourcesContent":["/**\n * Three.js SmartArt renderer - front-face text textures.\n *\n * Renders a node label onto an offscreen 2D canvas and wraps it as a\n * `THREE.CanvasTexture`, sized to sit on the extruded block's front face. Text\n * is word-wrapped and auto-shrunk to fit the node footprint. Returns `null` in\n * non-DOM environments (SSR / unit tests).\n */\n\nimport { CanvasTexture, LinearFilter, RepeatWrapping, SRGBColorSpace } from 'three';\n\n/** A built label texture plus the world-space plane size it should fill. */\nexport interface SmartArtTextTexture {\n\ttexture: CanvasTexture;\n\t/** Plane width in world (layout-pixel) units. */\n\tworldWidth: number;\n\t/** Plane height in world units. */\n\tworldHeight: number;\n}\n\n/** Supersampling factor for crisp text at oblique camera angles. */\nconst SUPERSAMPLE = 4;\n/** Fraction of the footprint the text plane occupies (inset padding). */\nconst FILL = 0.86;\n\n/** Greedily word-wrap `text` to lines that fit `maxWidth` at the given font. */\nfunction wrapLines(ctx: CanvasRenderingContext2D, text: string, maxWidth: number): string[] {\n\tconst words = text.split(/\\s+/u).filter(Boolean);\n\tif (words.length === 0) {\n\t\treturn [];\n\t}\n\tconst lines: string[] = [];\n\tlet line = words[0];\n\tfor (let i = 1; i < words.length; i++) {\n\t\tconst candidate = `${line} ${words[i]}`;\n\t\tif (ctx.measureText(candidate).width <= maxWidth) {\n\t\t\tline = candidate;\n\t\t} else {\n\t\t\tlines.push(line);\n\t\t\tline = words[i];\n\t\t}\n\t}\n\tlines.push(line);\n\treturn lines;\n}\n\n/**\n * Build a label texture for a node's front face.\n *\n * @param text Label text.\n * @param color CSS colour for the text.\n * @param fontSize Requested font size in layout pixels.\n * @param footW Node footprint width (layout pixels).\n * @param footH Node footprint height (layout pixels).\n * @returns The texture + plane size, or `null` when no DOM / empty text.\n */\nexport function makeTextTexture(\n\ttext: string,\n\tcolor: string,\n\tfontSize: number,\n\tfootW: number,\n\tfootH: number,\n): SmartArtTextTexture | null {\n\tif (typeof document === 'undefined' || !text.trim() || footW <= 0 || footH <= 0) {\n\t\treturn null;\n\t}\n\n\tconst worldWidth = footW * FILL;\n\tconst worldHeight = footH * FILL;\n\tconst canvas = document.createElement('canvas');\n\tcanvas.width = Math.max(8, Math.round(worldWidth * SUPERSAMPLE));\n\tcanvas.height = Math.max(8, Math.round(worldHeight * SUPERSAMPLE));\n\tconst ctx = canvas.getContext('2d');\n\tif (!ctx) {\n\t\treturn null;\n\t}\n\n\tconst family = 'system-ui, -apple-system, Segoe UI, Roboto, sans-serif';\n\tconst maxTextWidth = canvas.width * 0.94;\n\n\t// Shrink the font until the wrapped block fits the canvas height.\n\tlet px = Math.max(6, fontSize) * SUPERSAMPLE;\n\tlet lines: string[] = [];\n\tfor (let attempt = 0; attempt < 12; attempt++) {\n\t\tctx.font = `600 ${px}px ${family}`;\n\t\tlines = wrapLines(ctx, text, maxTextWidth);\n\t\tconst lineHeight = px * 1.2;\n\t\tif (lines.length * lineHeight <= canvas.height * 0.96 || px <= 6 * SUPERSAMPLE) {\n\t\t\tbreak;\n\t\t}\n\t\tpx *= 0.88;\n\t}\n\n\tctx.clearRect(0, 0, canvas.width, canvas.height);\n\tctx.fillStyle = color;\n\tctx.textAlign = 'center';\n\tctx.textBaseline = 'middle';\n\tctx.font = `600 ${px}px ${family}`;\n\tconst lineHeight = px * 1.2;\n\tconst blockHeight = lines.length * lineHeight;\n\tconst startY = canvas.height / 2 - blockHeight / 2 + lineHeight / 2;\n\tfor (let i = 0; i < lines.length; i++) {\n\t\tctx.fillText(lines[i], canvas.width / 2, startY + i * lineHeight);\n\t}\n\n\tconst texture = new CanvasTexture(canvas);\n\ttexture.colorSpace = SRGBColorSpace;\n\ttexture.minFilter = LinearFilter;\n\ttexture.magFilter = LinearFilter;\n\t// Disable GPU-side flip: WebGL2 does not allow UNPACK_FLIP_Y_WEBGL for\n\t// texImage3D targets (depth buffers, LUTs, shadow maps). Leaving flipY=true\n\t// (the Three.js default) pollutes the global pixel-store state and causes\n\t// \"INVALID_OPERATION: texImage3D: FLIP_Y or PREMULTIPLY_ALPHA isn't allowed\"\n\t// errors. Compensate in UV space instead.\n\ttexture.flipY = false;\n\ttexture.premultiplyAlpha = false;\n\ttexture.wrapT = RepeatWrapping;\n\ttexture.repeat.set(1, -1);\n\ttexture.offset.set(0, 1);\n\ttexture.needsUpdate = true;\n\n\treturn { texture, worldWidth, worldHeight };\n}\n","/**\n * Three.js SmartArt renderer - mesh-group construction.\n *\n * Turns a pure {@link SmartArt3DModel} into a `THREE.Group` of extruded blocks\n * (with bevels, edge outlines, and front-face text planes) plus connector\n * lines. All allocated GPU resources are tracked so the caller can dispose them\n * deterministically.\n */\n\nimport {\n\tBufferGeometry,\n\tColor,\n\tEdgesGeometry,\n\tEuler,\n\tExtrudeGeometry,\n\tGroup,\n\tLine,\n\tLineBasicMaterial,\n\tLineSegments,\n\tMesh,\n\tMeshBasicMaterial,\n\tMeshStandardMaterial,\n\tPlaneGeometry,\n\tShape,\n\tVector3,\n} from 'three';\n\nimport type { SmartArt3DMesh, SmartArt3DModel } from '../render/smartart-3d-types';\nimport { makeTextTexture } from './text-texture';\n\n/** A disposable GPU resource (geometry, material, or texture). */\ninterface Disposable {\n\tdispose: () => void;\n}\n\n/** A built mesh group plus its teardown hook. */\nexport interface BuiltMeshGroup {\n\tgroup: Group;\n\tdispose: () => void;\n}\n\n/** Build the extruded geometry for one node. */\nfunction extrudeGeometry(m: SmartArt3DMesh): ExtrudeGeometry {\n\tconst shape = new Shape();\n\tm.outline.forEach((p, i) => {\n\t\tif (i === 0) {\n\t\t\tshape.moveTo(p.x, p.y);\n\t\t} else {\n\t\t\tshape.lineTo(p.x, p.y);\n\t\t}\n\t});\n\tshape.closePath();\n\n\tconst bevelEnabled = m.bevel > 0;\n\treturn new ExtrudeGeometry(shape, {\n\t\tdepth: m.depth,\n\t\tbevelEnabled,\n\t\tbevelThickness: m.bevel,\n\t\tbevelSize: m.bevel,\n\t\tbevelSegments: 2,\n\t\tcurveSegments: m.rounded ? 24 : 1,\n\t\tsteps: 1,\n\t});\n}\n\n/** Add the extruded block + edge outline for one node to the group. */\nfunction addBlock(group: Group, disposables: Disposable[], m: SmartArt3DMesh): ExtrudeGeometry {\n\tconst geo = extrudeGeometry(m);\n\tconst material = new MeshStandardMaterial({\n\t\tcolor: new Color(m.fill),\n\t\tmetalness: 0.12,\n\t\troughness: 0.52,\n\t\ttransparent: m.opacity < 1,\n\t\topacity: m.opacity,\n\t});\n\tconst mesh = new Mesh(geo, material);\n\tmesh.position.set(m.position.x, m.position.y, m.position.z);\n\tmesh.rotation.set(m.rotation.x, m.rotation.y, m.rotation.z);\n\tgroup.add(mesh);\n\tdisposables.push(geo, material);\n\n\tif (m.strokeWidth > 0) {\n\t\tconst edges = new EdgesGeometry(geo, 30);\n\t\tconst lineMaterial = new LineBasicMaterial({ color: new Color(m.stroke) });\n\t\tconst line = new LineSegments(edges, lineMaterial);\n\t\tline.position.copy(mesh.position);\n\t\tline.rotation.copy(mesh.rotation);\n\t\tgroup.add(line);\n\t\tdisposables.push(edges, lineMaterial);\n\t}\n\treturn geo;\n}\n\n/** Add a front-face text plane for one node, if it has a label. */\nfunction addLabel(group: Group, disposables: Disposable[], m: SmartArt3DMesh): void {\n\tif (!m.text) {\n\t\treturn;\n\t}\n\tconst tex = makeTextTexture(m.text, m.textColor, m.fontSize, m.halfWidth * 2, m.halfHeight * 2);\n\tif (!tex) {\n\t\treturn;\n\t}\n\tconst planeGeo = new PlaneGeometry(tex.worldWidth, tex.worldHeight);\n\tconst planeMaterial = new MeshBasicMaterial({\n\t\tmap: tex.texture,\n\t\ttransparent: true,\n\t\tdepthWrite: false,\n\t});\n\tconst plane = new Mesh(planeGeo, planeMaterial);\n\t// Float just past the front (+z) face, clearing any bevel, following the\n\t// mesh's rotation so the label sits flat on the (possibly rotated) face.\n\tconst euler = new Euler(m.rotation.x, m.rotation.y, m.rotation.z);\n\tconst offset = new Vector3(0, 0, m.depth + m.bevel + 0.4).applyEuler(euler);\n\tplane.position.set(m.position.x + offset.x, m.position.y + offset.y, m.position.z + offset.z);\n\tplane.rotation.copy(euler);\n\tgroup.add(plane);\n\tdisposables.push(planeGeo, planeMaterial, tex.texture);\n}\n\n/** Add a connector poly-line on the base plane. */\nfunction addConnectors(group: Group, disposables: Disposable[], model: SmartArt3DModel): void {\n\tfor (const c of model.connectors) {\n\t\tif (c.points.length < 2) {\n\t\t\tcontinue;\n\t\t}\n\t\tconst geo = new BufferGeometry().setFromPoints(c.points.map((p) => new Vector3(p.x, p.y, p.z)));\n\t\tconst material = new LineBasicMaterial({\n\t\t\tcolor: new Color(c.color),\n\t\t\ttransparent: true,\n\t\t\topacity: 0.7,\n\t\t});\n\t\tgroup.add(new Line(geo, material));\n\t\tdisposables.push(geo, material);\n\t}\n}\n\n/**\n * Build a `THREE.Group` for a SmartArt 3D model. The group is centred on the\n * origin (the model positions already are); callers add it to the scene.\n */\nexport function buildMeshGroup(model: SmartArt3DModel): BuiltMeshGroup {\n\tconst group = new Group();\n\tconst disposables: Disposable[] = [];\n\n\tfor (const m of model.meshes) {\n\t\taddBlock(group, disposables, m);\n\t\taddLabel(group, disposables, m);\n\t}\n\taddConnectors(group, disposables, model);\n\n\treturn {\n\t\tgroup,\n\t\tdispose() {\n\t\t\tfor (const d of disposables) {\n\t\t\t\td.dispose();\n\t\t\t}\n\t\t},\n\t};\n}\n","/**\n * Three.js SmartArt renderer - vanilla scene runtime.\n *\n * Frames a {@link SmartArt3DModel} in a WebGL scene (lights, perspective\n * camera, optional OrbitControls, render loop) on a caller-provided canvas.\n * Pure vanilla three.js - no framework code - so the React, Vue, and Angular\n * bindings all mount it through a thin canvas wrapper. `three` is imported here\n * only; this module lives behind the `pptx-viewer-shared/smartart-3d` subpath so\n * it is lazily loaded and `three` stays an optional dependency.\n */\n\nimport {\n\tAmbientLight,\n\tColor,\n\tDirectionalLight,\n\tPerspectiveCamera,\n\tScene,\n\tWebGLRenderer,\n} from 'three';\nimport { OrbitControls } from 'three/examples/jsm/controls/OrbitControls.js';\n\nimport type { SmartArt3DModel } from '../render/smartart-3d-types';\nimport { buildMeshGroup } from './meshes';\n\n/** Tunables for the mounted 3D view. */\nexport interface SmartArt3DViewOptions {\n\t/** Enable OrbitControls (rotate/zoom). Default `false`. */\n\tinteractive?: boolean;\n\t/** Slowly auto-rotate the model. Default `false`. */\n\tautoRotate?: boolean;\n\t/** Solid background colour `#rrggbb`; omit for transparent. */\n\tbackground?: string;\n\t/** Device pixel-ratio cap. Default `2`. */\n\tmaxPixelRatio?: number;\n}\n\n/** Imperative handle to a mounted SmartArt 3D view. */\nexport interface SmartArt3DHandle {\n\t/** Resize the renderer + camera to new pixel dimensions. */\n\tresize: (width: number, height: number) => void;\n\t/** Toggle interactive orbit controls at runtime. */\n\tsetInteractive: (on: boolean) => void;\n\t/** Tear down the renderer, controls, and all GPU resources. */\n\tdispose: () => void;\n}\n\nconst FOV = 42;\n\n/** A bounding sphere of the 3D content (centre + radius). */\ninterface ContentSphere {\n\tcx: number;\n\tcy: number;\n\tcz: number;\n\tradius: number;\n}\n\n/** Bounding sphere of all meshes (expanded by footprint/depth) + connectors. */\nfunction contentSphere(model: SmartArt3DModel): ContentSphere {\n\tlet minX = Infinity;\n\tlet minY = Infinity;\n\tlet minZ = Infinity;\n\tlet maxX = -Infinity;\n\tlet maxY = -Infinity;\n\tlet maxZ = -Infinity;\n\tconst expand = (x: number, y: number, z: number, r: number): void => {\n\t\tminX = Math.min(minX, x - r);\n\t\tminY = Math.min(minY, y - r);\n\t\tminZ = Math.min(minZ, z - r);\n\t\tmaxX = Math.max(maxX, x + r);\n\t\tmaxY = Math.max(maxY, y + r);\n\t\tmaxZ = Math.max(maxZ, z + r);\n\t};\n\tfor (const m of model.meshes) {\n\t\tconst r = Math.max(m.halfWidth, m.halfHeight) + m.depth + m.bevel;\n\t\texpand(m.position.x, m.position.y, m.position.z, r);\n\t}\n\tfor (const c of model.connectors) {\n\t\tfor (const p of c.points) {\n\t\t\texpand(p.x, p.y, p.z, 1);\n\t\t}\n\t}\n\tif (!Number.isFinite(minX)) {\n\t\tconst fallback = Math.max(model.bounds.width, model.bounds.height) / 2 || 1;\n\t\treturn { cx: 0, cy: 0, cz: 0, radius: fallback };\n\t}\n\treturn {\n\t\tcx: (minX + maxX) / 2,\n\t\tcy: (minY + maxY) / 2,\n\t\tcz: (minZ + maxZ) / 2,\n\t\tradius: 0.5 * Math.hypot(maxX - minX, maxY - minY, maxZ - minZ) || 1,\n\t};\n}\n\n/** Camera distance that frames a bounding sphere of `radius` at the given FOV. */\nfunction frameDistance(radius: number, aspect: number): number {\n\tconst vFov = (FOV * Math.PI) / 180;\n\tconst hFov = 2 * Math.atan(Math.tan(vFov / 2) * aspect);\n\tconst minFov = Math.min(vFov, hFov);\n\treturn (radius / Math.sin(minFov / 2)) * 1.1;\n}\n\n/**\n * Mount a SmartArt 3D model onto a canvas and start rendering.\n *\n * @returns a handle for resizing, toggling interactivity, and disposal.\n */\nexport function mountSmartArt3D(\n\tcanvas: HTMLCanvasElement,\n\tmodel: SmartArt3DModel,\n\twidth: number,\n\theight: number,\n\toptions: SmartArt3DViewOptions = {},\n): SmartArt3DHandle {\n\tconst renderer = new WebGLRenderer({ canvas, antialias: true, alpha: !options.background });\n\trenderer.setPixelRatio(\n\t\tMath.min(\n\t\t\ttypeof window === 'undefined' ? 1 : window.devicePixelRatio || 1,\n\t\t\toptions.maxPixelRatio ?? 2,\n\t\t),\n\t);\n\trenderer.setSize(width, height, false);\n\n\tconst scene = new Scene();\n\tif (options.background) {\n\t\tscene.background = new Color(options.background);\n\t}\n\n\tconst { cx, cy, cz, radius } = contentSphere(model);\n\tconst aspect = width / Math.max(1, height);\n\tconst dist = frameDistance(radius, aspect);\n\n\tconst camera = new PerspectiveCamera(FOV, aspect, 0.1, dist * 8 + radius * 4);\n\t// A slight elevation + offset gives the extrusion/spatial depth a readable\n\t// three-quarter presence, framing the content's own centroid.\n\tcamera.position.set(cx + radius * 0.25, cy + radius * 0.3, cz + dist);\n\tcamera.lookAt(cx, cy, cz);\n\n\tscene.add(new AmbientLight(0xffffff, 0.62));\n\tconst key = new DirectionalLight(0xffffff, 0.95);\n\tkey.position.set(cx + radius, cy + radius * 1.4, cz + dist);\n\tscene.add(key);\n\tconst fill = new DirectionalLight(0xffffff, 0.3);\n\tfill.position.set(cx - radius, cy - radius * 0.6, cz + dist * 0.6);\n\tscene.add(fill);\n\n\tconst built = buildMeshGroup(model);\n\tscene.add(built.group);\n\n\tlet controls: OrbitControls | null = null;\n\tconst enableControls = (on: boolean): void => {\n\t\tif (on && !controls) {\n\t\t\tcontrols = new OrbitControls(camera, canvas);\n\t\t\tcontrols.enablePan = false;\n\t\t\tcontrols.target.set(cx, cy, cz);\n\t\t\tcontrols.minDistance = dist * 0.4;\n\t\t\tcontrols.maxDistance = dist * 3;\n\t\t\tcontrols.update();\n\t\t} else if (!on && controls) {\n\t\t\tcontrols.dispose();\n\t\t\tcontrols = null;\n\t\t}\n\t\tif (controls) {\n\t\t\tcontrols.autoRotate = Boolean(options.autoRotate);\n\t\t\tcontrols.autoRotateSpeed = 1.2;\n\t\t}\n\t};\n\tenableControls(Boolean(options.interactive));\n\n\tlet frame = 0;\n\tlet disposed = false;\n\tconst renderLoop = (): void => {\n\t\tif (disposed) {\n\t\t\treturn;\n\t\t}\n\t\tframe = requestAnimationFrame(renderLoop);\n\t\tcontrols?.update();\n\t\trenderer.render(scene, camera);\n\t};\n\tframe = requestAnimationFrame(renderLoop);\n\n\treturn {\n\t\tresize(w: number, h: number) {\n\t\t\tcamera.aspect = w / Math.max(1, h);\n\t\t\tcamera.updateProjectionMatrix();\n\t\t\trenderer.setSize(w, h, false);\n\t\t},\n\t\tsetInteractive(on: boolean) {\n\t\t\tenableControls(on);\n\t\t},\n\t\tdispose() {\n\t\t\tdisposed = true;\n\t\t\tcancelAnimationFrame(frame);\n\t\t\tcontrols?.dispose();\n\t\t\tbuilt.dispose();\n\t\t\trenderer.dispose();\n\t\t},\n\t};\n}\n","/**\n * `pptx-viewer-shared/smartart-3d` - vanilla three.js SmartArt scene runtime.\n *\n * Lazily imported by each binding's SmartArt 3D wrapper so `three` stays an\n * optional dependency: when it is not installed the dynamic import rejects and\n * the binding falls back to the SVG `SmartArtRenderer`. The pure model builder\n * (`buildSmartArt3DModel`) and its types live in the main barrel\n * (`pptx-viewer-shared`) and should be imported from there directly.\n */\n\nexport { mountSmartArt3D } from './scene';\nexport type { SmartArt3DHandle, SmartArt3DViewOptions } from './scene';\nexport type {\n\tSmartArt3DModel,\n\tSmartArt3DModelOptions,\n\tSmartArt3DMesh,\n\tSmartArt3DConnector,\n} from '../render/smartart-3d-types';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pptx-angular-viewer-index-BbiIOY_Y.mjs","sources":["../../src/internal/shared-src/smartart-3d/text-texture.ts","../../src/internal/shared-src/smartart-3d/meshes.ts","../../src/internal/shared-src/smartart-3d/scene.ts","../../src/internal/shared-src/smartart-3d/index.ts"],"sourcesContent":["/**\n * Three.js SmartArt renderer - front-face text textures.\n *\n * Renders a node label onto an offscreen 2D canvas and wraps it as a\n * `THREE.CanvasTexture`, sized to sit on the extruded block's front face. Text\n * is word-wrapped and auto-shrunk to fit the node footprint. Returns `null` in\n * non-DOM environments (SSR / unit tests).\n */\n\nimport { CanvasTexture, LinearFilter, RepeatWrapping, SRGBColorSpace } from 'three';\n\n/** A built label texture plus the world-space plane size it should fill. */\nexport interface SmartArtTextTexture {\n\ttexture: CanvasTexture;\n\t/** Plane width in world (layout-pixel) units. */\n\tworldWidth: number;\n\t/** Plane height in world units. */\n\tworldHeight: number;\n}\n\n/** Supersampling factor for crisp text at oblique camera angles. */\nconst SUPERSAMPLE = 4;\n/** Fraction of the footprint the text plane occupies (inset padding). */\nconst FILL = 0.86;\n\n/** Greedily word-wrap `text` to lines that fit `maxWidth` at the given font. */\nfunction wrapLines(ctx: CanvasRenderingContext2D, text: string, maxWidth: number): string[] {\n\tconst words = text.split(/\\s+/u).filter(Boolean);\n\tif (words.length === 0) {\n\t\treturn [];\n\t}\n\tconst lines: string[] = [];\n\tlet line = words[0];\n\tfor (let i = 1; i < words.length; i++) {\n\t\tconst candidate = `${line} ${words[i]}`;\n\t\tif (ctx.measureText(candidate).width <= maxWidth) {\n\t\t\tline = candidate;\n\t\t} else {\n\t\t\tlines.push(line);\n\t\t\tline = words[i];\n\t\t}\n\t}\n\tlines.push(line);\n\treturn lines;\n}\n\n/**\n * Build a label texture for a node's front face.\n *\n * @param text Label text.\n * @param color CSS colour for the text.\n * @param fontSize Requested font size in layout pixels.\n * @param footW Node footprint width (layout pixels).\n * @param footH Node footprint height (layout pixels).\n * @returns The texture + plane size, or `null` when no DOM / empty text.\n */\nexport function makeTextTexture(\n\ttext: string,\n\tcolor: string,\n\tfontSize: number,\n\tfootW: number,\n\tfootH: number,\n): SmartArtTextTexture | null {\n\tif (typeof document === 'undefined' || !text.trim() || footW <= 0 || footH <= 0) {\n\t\treturn null;\n\t}\n\n\tconst worldWidth = footW * FILL;\n\tconst worldHeight = footH * FILL;\n\tconst canvas = document.createElement('canvas');\n\tcanvas.width = Math.max(8, Math.round(worldWidth * SUPERSAMPLE));\n\tcanvas.height = Math.max(8, Math.round(worldHeight * SUPERSAMPLE));\n\tconst ctx = canvas.getContext('2d');\n\tif (!ctx) {\n\t\treturn null;\n\t}\n\n\tconst family = 'system-ui, -apple-system, Segoe UI, Roboto, sans-serif';\n\tconst maxTextWidth = canvas.width * 0.94;\n\n\t// Shrink the font until the wrapped block fits the canvas height.\n\tlet px = Math.max(6, fontSize) * SUPERSAMPLE;\n\tlet lines: string[] = [];\n\tfor (let attempt = 0; attempt < 12; attempt++) {\n\t\tctx.font = `600 ${px}px ${family}`;\n\t\tlines = wrapLines(ctx, text, maxTextWidth);\n\t\tconst lineHeight = px * 1.2;\n\t\tif (lines.length * lineHeight <= canvas.height * 0.96 || px <= 6 * SUPERSAMPLE) {\n\t\t\tbreak;\n\t\t}\n\t\tpx *= 0.88;\n\t}\n\n\tctx.clearRect(0, 0, canvas.width, canvas.height);\n\tctx.fillStyle = color;\n\tctx.textAlign = 'center';\n\tctx.textBaseline = 'middle';\n\tctx.font = `600 ${px}px ${family}`;\n\tconst lineHeight = px * 1.2;\n\tconst blockHeight = lines.length * lineHeight;\n\tconst startY = canvas.height / 2 - blockHeight / 2 + lineHeight / 2;\n\tfor (let i = 0; i < lines.length; i++) {\n\t\tctx.fillText(lines[i], canvas.width / 2, startY + i * lineHeight);\n\t}\n\n\tconst texture = new CanvasTexture(canvas);\n\ttexture.colorSpace = SRGBColorSpace;\n\ttexture.minFilter = LinearFilter;\n\ttexture.magFilter = LinearFilter;\n\t// Disable GPU-side flip: WebGL2 does not allow UNPACK_FLIP_Y_WEBGL for\n\t// texImage3D targets (depth buffers, LUTs, shadow maps). Leaving flipY=true\n\t// (the Three.js default) pollutes the global pixel-store state and causes\n\t// \"INVALID_OPERATION: texImage3D: FLIP_Y or PREMULTIPLY_ALPHA isn't allowed\"\n\t// errors. Compensate in UV space instead.\n\ttexture.flipY = false;\n\ttexture.premultiplyAlpha = false;\n\ttexture.wrapT = RepeatWrapping;\n\ttexture.repeat.set(1, -1);\n\ttexture.offset.set(0, 1);\n\ttexture.needsUpdate = true;\n\n\treturn { texture, worldWidth, worldHeight };\n}\n","/**\n * Three.js SmartArt renderer - mesh-group construction.\n *\n * Turns a pure {@link SmartArt3DModel} into a `THREE.Group` of extruded blocks\n * (with bevels, edge outlines, and front-face text planes) plus connector\n * lines. All allocated GPU resources are tracked so the caller can dispose them\n * deterministically.\n */\n\nimport {\n\tBufferGeometry,\n\tColor,\n\tEdgesGeometry,\n\tEuler,\n\tExtrudeGeometry,\n\tGroup,\n\tLine,\n\tLineBasicMaterial,\n\tLineSegments,\n\tMesh,\n\tMeshBasicMaterial,\n\tMeshStandardMaterial,\n\tPlaneGeometry,\n\tShape,\n\tVector3,\n} from 'three';\n\nimport type { SmartArt3DMesh, SmartArt3DModel } from '../render/smartart-3d-types';\nimport { makeTextTexture } from './text-texture';\n\n/** A disposable GPU resource (geometry, material, or texture). */\ninterface Disposable {\n\tdispose: () => void;\n}\n\n/** A built mesh group plus its teardown hook. */\nexport interface BuiltMeshGroup {\n\tgroup: Group;\n\tdispose: () => void;\n}\n\n/** Build the extruded geometry for one node. */\nfunction extrudeGeometry(m: SmartArt3DMesh): ExtrudeGeometry {\n\tconst shape = new Shape();\n\tm.outline.forEach((p, i) => {\n\t\tif (i === 0) {\n\t\t\tshape.moveTo(p.x, p.y);\n\t\t} else {\n\t\t\tshape.lineTo(p.x, p.y);\n\t\t}\n\t});\n\tshape.closePath();\n\n\tconst bevelEnabled = m.bevel > 0;\n\treturn new ExtrudeGeometry(shape, {\n\t\tdepth: m.depth,\n\t\tbevelEnabled,\n\t\tbevelThickness: m.bevel,\n\t\tbevelSize: m.bevel,\n\t\tbevelSegments: 2,\n\t\tcurveSegments: m.rounded ? 24 : 1,\n\t\tsteps: 1,\n\t});\n}\n\n/** Add the extruded block + edge outline for one node to the group. */\nfunction addBlock(group: Group, disposables: Disposable[], m: SmartArt3DMesh): ExtrudeGeometry {\n\tconst geo = extrudeGeometry(m);\n\tconst material = new MeshStandardMaterial({\n\t\tcolor: new Color(m.fill),\n\t\tmetalness: 0.12,\n\t\troughness: 0.52,\n\t\ttransparent: m.opacity < 1,\n\t\topacity: m.opacity,\n\t});\n\tconst mesh = new Mesh(geo, material);\n\tmesh.position.set(m.position.x, m.position.y, m.position.z);\n\tmesh.rotation.set(m.rotation.x, m.rotation.y, m.rotation.z);\n\tgroup.add(mesh);\n\tdisposables.push(geo, material);\n\n\tif (m.strokeWidth > 0) {\n\t\tconst edges = new EdgesGeometry(geo, 30);\n\t\tconst lineMaterial = new LineBasicMaterial({ color: new Color(m.stroke) });\n\t\tconst line = new LineSegments(edges, lineMaterial);\n\t\tline.position.copy(mesh.position);\n\t\tline.rotation.copy(mesh.rotation);\n\t\tgroup.add(line);\n\t\tdisposables.push(edges, lineMaterial);\n\t}\n\treturn geo;\n}\n\n/** Add a front-face text plane for one node, if it has a label. */\nfunction addLabel(group: Group, disposables: Disposable[], m: SmartArt3DMesh): void {\n\tif (!m.text) {\n\t\treturn;\n\t}\n\tconst tex = makeTextTexture(m.text, m.textColor, m.fontSize, m.halfWidth * 2, m.halfHeight * 2);\n\tif (!tex) {\n\t\treturn;\n\t}\n\tconst planeGeo = new PlaneGeometry(tex.worldWidth, tex.worldHeight);\n\tconst planeMaterial = new MeshBasicMaterial({\n\t\tmap: tex.texture,\n\t\ttransparent: true,\n\t\tdepthWrite: false,\n\t});\n\tconst plane = new Mesh(planeGeo, planeMaterial);\n\t// Float just past the front (+z) face, clearing any bevel, following the\n\t// mesh's rotation so the label sits flat on the (possibly rotated) face.\n\tconst euler = new Euler(m.rotation.x, m.rotation.y, m.rotation.z);\n\tconst offset = new Vector3(0, 0, m.depth + m.bevel + 0.4).applyEuler(euler);\n\tplane.position.set(m.position.x + offset.x, m.position.y + offset.y, m.position.z + offset.z);\n\tplane.rotation.copy(euler);\n\tgroup.add(plane);\n\tdisposables.push(planeGeo, planeMaterial, tex.texture);\n}\n\n/** Add a connector poly-line on the base plane. */\nfunction addConnectors(group: Group, disposables: Disposable[], model: SmartArt3DModel): void {\n\tfor (const c of model.connectors) {\n\t\tif (c.points.length < 2) {\n\t\t\tcontinue;\n\t\t}\n\t\tconst geo = new BufferGeometry().setFromPoints(c.points.map((p) => new Vector3(p.x, p.y, p.z)));\n\t\tconst material = new LineBasicMaterial({\n\t\t\tcolor: new Color(c.color),\n\t\t\ttransparent: true,\n\t\t\topacity: 0.7,\n\t\t});\n\t\tgroup.add(new Line(geo, material));\n\t\tdisposables.push(geo, material);\n\t}\n}\n\n/**\n * Build a `THREE.Group` for a SmartArt 3D model. The group is centred on the\n * origin (the model positions already are); callers add it to the scene.\n */\nexport function buildMeshGroup(model: SmartArt3DModel): BuiltMeshGroup {\n\tconst group = new Group();\n\tconst disposables: Disposable[] = [];\n\n\tfor (const m of model.meshes) {\n\t\taddBlock(group, disposables, m);\n\t\taddLabel(group, disposables, m);\n\t}\n\taddConnectors(group, disposables, model);\n\n\treturn {\n\t\tgroup,\n\t\tdispose() {\n\t\t\tfor (const d of disposables) {\n\t\t\t\td.dispose();\n\t\t\t}\n\t\t},\n\t};\n}\n","/**\n * Three.js SmartArt renderer - vanilla scene runtime.\n *\n * Frames a {@link SmartArt3DModel} in a WebGL scene (lights, perspective\n * camera, optional OrbitControls, render loop) on a caller-provided canvas.\n * Pure vanilla three.js - no framework code - so the React, Vue, and Angular\n * bindings all mount it through a thin canvas wrapper. `three` is imported here\n * only; this module lives behind the `pptx-viewer-shared/smartart-3d` subpath so\n * it is lazily loaded and `three` stays an optional dependency.\n */\n\nimport {\n\tAmbientLight,\n\tColor,\n\tDirectionalLight,\n\tPerspectiveCamera,\n\tScene,\n\tWebGLRenderer,\n} from 'three';\nimport { OrbitControls } from 'three/examples/jsm/controls/OrbitControls.js';\n\nimport type { SmartArt3DModel } from '../render/smartart-3d-types';\nimport { buildMeshGroup } from './meshes';\n\n/** Tunables for the mounted 3D view. */\nexport interface SmartArt3DViewOptions {\n\t/** Enable OrbitControls (rotate/zoom). Default `false`. */\n\tinteractive?: boolean;\n\t/** Slowly auto-rotate the model. Default `false`. */\n\tautoRotate?: boolean;\n\t/** Solid background colour `#rrggbb`; omit for transparent. */\n\tbackground?: string;\n\t/** Device pixel-ratio cap. Default `2`. */\n\tmaxPixelRatio?: number;\n}\n\n/** Imperative handle to a mounted SmartArt 3D view. */\nexport interface SmartArt3DHandle {\n\t/** Resize the renderer + camera to new pixel dimensions. */\n\tresize: (width: number, height: number) => void;\n\t/** Toggle interactive orbit controls at runtime. */\n\tsetInteractive: (on: boolean) => void;\n\t/** Tear down the renderer, controls, and all GPU resources. */\n\tdispose: () => void;\n}\n\nconst FOV = 42;\n\n/** A bounding sphere of the 3D content (centre + radius). */\ninterface ContentSphere {\n\tcx: number;\n\tcy: number;\n\tcz: number;\n\tradius: number;\n}\n\n/** Bounding sphere of all meshes (expanded by footprint/depth) + connectors. */\nfunction contentSphere(model: SmartArt3DModel): ContentSphere {\n\tlet minX = Infinity;\n\tlet minY = Infinity;\n\tlet minZ = Infinity;\n\tlet maxX = -Infinity;\n\tlet maxY = -Infinity;\n\tlet maxZ = -Infinity;\n\tconst expand = (x: number, y: number, z: number, r: number): void => {\n\t\tminX = Math.min(minX, x - r);\n\t\tminY = Math.min(minY, y - r);\n\t\tminZ = Math.min(minZ, z - r);\n\t\tmaxX = Math.max(maxX, x + r);\n\t\tmaxY = Math.max(maxY, y + r);\n\t\tmaxZ = Math.max(maxZ, z + r);\n\t};\n\tfor (const m of model.meshes) {\n\t\tconst r = Math.max(m.halfWidth, m.halfHeight) + m.depth + m.bevel;\n\t\texpand(m.position.x, m.position.y, m.position.z, r);\n\t}\n\tfor (const c of model.connectors) {\n\t\tfor (const p of c.points) {\n\t\t\texpand(p.x, p.y, p.z, 1);\n\t\t}\n\t}\n\tif (!Number.isFinite(minX)) {\n\t\tconst fallback = Math.max(model.bounds.width, model.bounds.height) / 2 || 1;\n\t\treturn { cx: 0, cy: 0, cz: 0, radius: fallback };\n\t}\n\treturn {\n\t\tcx: (minX + maxX) / 2,\n\t\tcy: (minY + maxY) / 2,\n\t\tcz: (minZ + maxZ) / 2,\n\t\tradius: 0.5 * Math.hypot(maxX - minX, maxY - minY, maxZ - minZ) || 1,\n\t};\n}\n\n/** Camera distance that frames a bounding sphere of `radius` at the given FOV. */\nfunction frameDistance(radius: number, aspect: number): number {\n\tconst vFov = (FOV * Math.PI) / 180;\n\tconst hFov = 2 * Math.atan(Math.tan(vFov / 2) * aspect);\n\tconst minFov = Math.min(vFov, hFov);\n\treturn (radius / Math.sin(minFov / 2)) * 1.1;\n}\n\n/**\n * Mount a SmartArt 3D model onto a canvas and start rendering.\n *\n * @returns a handle for resizing, toggling interactivity, and disposal.\n */\nexport function mountSmartArt3D(\n\tcanvas: HTMLCanvasElement,\n\tmodel: SmartArt3DModel,\n\twidth: number,\n\theight: number,\n\toptions: SmartArt3DViewOptions = {},\n): SmartArt3DHandle {\n\tconst renderer = new WebGLRenderer({ canvas, antialias: true, alpha: !options.background });\n\trenderer.setPixelRatio(\n\t\tMath.min(\n\t\t\ttypeof window === 'undefined' ? 1 : window.devicePixelRatio || 1,\n\t\t\toptions.maxPixelRatio ?? 2,\n\t\t),\n\t);\n\trenderer.setSize(width, height, false);\n\n\tconst scene = new Scene();\n\tif (options.background) {\n\t\tscene.background = new Color(options.background);\n\t}\n\n\tconst { cx, cy, cz, radius } = contentSphere(model);\n\tconst aspect = width / Math.max(1, height);\n\tconst dist = frameDistance(radius, aspect);\n\n\tconst camera = new PerspectiveCamera(FOV, aspect, 0.1, dist * 8 + radius * 4);\n\t// A slight elevation + offset gives the extrusion/spatial depth a readable\n\t// three-quarter presence, framing the content's own centroid.\n\tcamera.position.set(cx + radius * 0.25, cy + radius * 0.3, cz + dist);\n\tcamera.lookAt(cx, cy, cz);\n\n\tscene.add(new AmbientLight(0xffffff, 0.62));\n\tconst key = new DirectionalLight(0xffffff, 0.95);\n\tkey.position.set(cx + radius, cy + radius * 1.4, cz + dist);\n\tscene.add(key);\n\tconst fill = new DirectionalLight(0xffffff, 0.3);\n\tfill.position.set(cx - radius, cy - radius * 0.6, cz + dist * 0.6);\n\tscene.add(fill);\n\n\tconst built = buildMeshGroup(model);\n\tscene.add(built.group);\n\n\tlet controls: OrbitControls | null = null;\n\tconst enableControls = (on: boolean): void => {\n\t\tif (on && !controls) {\n\t\t\tcontrols = new OrbitControls(camera, canvas);\n\t\t\tcontrols.enablePan = false;\n\t\t\tcontrols.target.set(cx, cy, cz);\n\t\t\tcontrols.minDistance = dist * 0.4;\n\t\t\tcontrols.maxDistance = dist * 3;\n\t\t\tcontrols.update();\n\t\t} else if (!on && controls) {\n\t\t\tcontrols.dispose();\n\t\t\tcontrols = null;\n\t\t}\n\t\tif (controls) {\n\t\t\tcontrols.autoRotate = Boolean(options.autoRotate);\n\t\t\tcontrols.autoRotateSpeed = 1.2;\n\t\t}\n\t};\n\tenableControls(Boolean(options.interactive));\n\n\tlet frame = 0;\n\tlet disposed = false;\n\tconst renderLoop = (): void => {\n\t\tif (disposed) {\n\t\t\treturn;\n\t\t}\n\t\tframe = requestAnimationFrame(renderLoop);\n\t\tcontrols?.update();\n\t\trenderer.render(scene, camera);\n\t};\n\tframe = requestAnimationFrame(renderLoop);\n\n\treturn {\n\t\tresize(w: number, h: number) {\n\t\t\tcamera.aspect = w / Math.max(1, h);\n\t\t\tcamera.updateProjectionMatrix();\n\t\t\trenderer.setSize(w, h, false);\n\t\t},\n\t\tsetInteractive(on: boolean) {\n\t\t\tenableControls(on);\n\t\t},\n\t\tdispose() {\n\t\t\tdisposed = true;\n\t\t\tcancelAnimationFrame(frame);\n\t\t\tcontrols?.dispose();\n\t\t\tbuilt.dispose();\n\t\t\trenderer.dispose();\n\t\t},\n\t};\n}\n","/**\n * `pptx-viewer-shared/smartart-3d` - vanilla three.js SmartArt scene runtime.\n *\n * Lazily imported by each binding's SmartArt 3D wrapper so `three` stays an\n * optional dependency: when it is not installed the dynamic import rejects and\n * the binding falls back to the SVG `SmartArtRenderer`. The pure model builder\n * (`buildSmartArt3DModel`) and its types live in the main barrel\n * (`pptx-viewer-shared`) and should be imported from there directly.\n */\n\nexport { mountSmartArt3D } from './scene';\nexport type { SmartArt3DHandle, SmartArt3DViewOptions } from './scene';\nexport type {\n\tSmartArt3DModel,\n\tSmartArt3DModelOptions,\n\tSmartArt3DMesh,\n\tSmartArt3DConnector,\n} from '../render/smartart-3d-types';\n"],"names":[],"mappings":"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"}
|
|
@@ -78477,7 +78477,7 @@ function createLocalStorageBackend(namespace) {
|
|
|
78477
78477
|
/** Try IndexedDB first; fall back to localStorage on any failure. */
|
|
78478
78478
|
async function resolveBackend(dbName, namespace) {
|
|
78479
78479
|
try {
|
|
78480
|
-
const { openChatDb, createIdbBackend } = await import('./pptx-angular-viewer-chat-history-idb-
|
|
78480
|
+
const { openChatDb, createIdbBackend } = await import('./pptx-angular-viewer-chat-history-idb-CTv3rQal.mjs');
|
|
78481
78481
|
const db = await openChatDb(dbName);
|
|
78482
78482
|
return createIdbBackend(db);
|
|
78483
78483
|
}
|
|
@@ -114169,7 +114169,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.3", ngImpor
|
|
|
114169
114169
|
}], propDecorators: { canEdit: [{ type: i0.Input, args: [{ isSignal: true, alias: "canEdit", required: false }] }], slideIndex: [{ type: i0.Input, args: [{ isSignal: true, alias: "slideIndex", required: false }] }], selectedElement: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectedElement", required: false }] }] } });
|
|
114170
114170
|
|
|
114171
114171
|
// Generated by scripts/inline-shared.mjs from package.json. Do not edit.
|
|
114172
|
-
const PPTX_ANGULAR_VIEWER_VERSION = "3.2.
|
|
114172
|
+
const PPTX_ANGULAR_VIEWER_VERSION = "3.2.2";
|
|
114173
114173
|
|
|
114174
114174
|
/**
|
|
114175
114175
|
* account-page.component.ts: File > Account content.
|
|
@@ -148291,4 +148291,4 @@ function cn(...values) {
|
|
|
148291
148291
|
*/
|
|
148292
148292
|
|
|
148293
148293
|
export { ColorChangedImageComponent as $, AFTER_ANIMATION_VALUES as A, AnimationPanelComponent as B, AnimationPlaybackService as C, AutosaveRecoveryDialogComponent as D, AutosaveService as E, BroadcastDialogComponent as F, CHART_EDITOR_STYLES as G, CURSOR_PALETTE as H, CanvasFitService as I, ChartAxisOptionsComponent as J, ChartAxisStyleOptionsComponent as K, ChartComboTypeOptionsComponent as L, ChartDataEditorComponent as M, ChartDataLabelOptionsComponent as N, ChartDatapointMarkerOptionsComponent as O, ChartDatapointOptionsComponent as P, ChartDisplayOptionsComponent as Q, ChartElementViewComponent as R, ChartErrorBarOptionsComponent as S, ChartMarkerOptionsComponent as T, ChartPartSelectionService as U, ChartPrimitivesComponent as V, ChartRendererComponent as W, ChartTrendlineOptionsComponent as X, ChartTypeSelectorComponent as Y, CollaborationCursorsComponent as Z, CollaborationService as _, ALIGN_OPTIONS as a, KeepAnnotationsDialogComponent as a$, CommentMarkersOverlayComponent as a0, CommentsPanelComponent as a1, CommentsService as a2, ComparePanelComponent as a3, ConnectorRendererComponent as a4, ConnectorTextOverlayComponent as a5, CustomShowsComponent as a6, DEFAULT_BOUNDS as a7, DEFAULT_BROADCAST_SERVER_URL as a8, DEFAULT_CANVAS_HEIGHT as a9, ElementRendererComponent as aA, EmbeddedFontsService as aB, EncryptedFileDialogComponent as aC, EquationEditorDialogComponent as aD, EquationRendererComponent as aE, EquationTemplateGalleryComponent as aF, ExportProgressModalComponent as aG, ExportService as aH, FieldContextService as aI, FindBarComponent as aJ, FindReplaceBarComponent as aK, FollowModeBarComponent as aL, FontEmbeddingListComponent as aM, FontEmbeddingPanelComponent as aN, GALLERY_THEME_PRESETS as aO, GRIDLINE_COLOR$1 as aP, GradientPickerComponent as aQ, HANDOUT_OPTIONS as aR, HeaderFooterDialogComponent as aS, HyperlinkDialogComponent as aT, ImagePropertiesPanelComponent as aU, InkDrawingService as aV, InkRendererComponent as aW, InsertSmartArtDialogComponent as aX, InspectorPaneHeaderComponent as aY, InspectorPanelComponent as aZ, IsMobileService as a_, DEFAULT_CANVAS_WIDTH as aa, DEFAULT_COLOR_SCHEME as ab, DEFAULT_FILL_COLOR$1 as ac, DEFAULT_LAYOUT as ad, DEFAULT_PALETTE$1 as ae, DEFAULT_PATTERN_FILL_PRESET as af, DEFAULT_PRINT_SETTINGS as ag, DEFAULT_SLIDE_BACKGROUND as ah, DEFAULT_STROKE_COLOR as ai, DEFAULT_STYLE as aj, DEFAULT_TABLE_ROW_HEIGHT as ak, DEFAULT_TEXT_COLOR$2 as al, DEFAULT_VIEWER_PROFILE as am, DIRECTIONAL_PRESETS as an, DIRECTION_OPTIONS as ao, DocumentPropertiesCardComponent as ap, EMBEDDED_FONTS_STYLE_ID as aq, EMPHASIS_PRESETS as ar, ENTRANCE_PRESETS as as, TEMPLATES as at, EXIT_PRESETS as au, EditorContextMenuComponent as av, EditorHistory as aw, EditorStateService as ax, EditorToolbarComponent as ay, EffectsPanelComponent as az, ANIMATION_PRESET_CATEGORIES as b, RibbonDrawSectionComponent as b$, LOCALE_CATALOG as b0, LONG_PRESS_DURATION_MS as b1, LONG_PRESS_MOVE_TOLERANCE_PX as b2, LoadContentService as b3, LocalPresencePublisher as b4, MAX_ZOOM_SCALE as b5, MIN_ZOOM_SCALE as b6, MOTION_PATH_COLUMNS as b7, MediaPreviewComponent as b8, MediaPropertiesPanelComponent as b9, PresentToolbarAutoHide as bA, PresentationAnnotationOverlayComponent as bB, PresentationAnnotationsService as bC, PresentationOverlayComponent as bD, PresentationPropertiesPanelComponent as bE, PresentationSettingsCardComponent as bF, PresentationSubtitleBarComponent as bG, PresentationToolbarComponent as bH, PresentationTransitionOverlayComponent as bI, PresenterViewComponent as bJ, PresenterWindowService as bK, PrintDialogComponent as bL, PrintService as bM, PrintSettingsPanelComponent as bN, PropertiesDialogComponent as bO, REPEAT_MODE_OPTIONS as bP, RESIZE_HANDLES as bQ, RULER_FONT_SIZE as bR, RULER_THICKNESS as bS, ReadingViewOverlayComponent as bT, RemoteSelectionOverlayComponent as bU, RibbonAnimationGalleryComponent as bV, RibbonAnimationsSectionComponent as bW, RibbonArrangeSectionComponent as bX, RibbonColorPopoverComponent as bY, RibbonComponent as bZ, RibbonDesignSectionComponent as b_, MediaRendererComponent as ba, MediaTrimTimelineComponent as bb, MobileBottomBarComponent as bc, MobileMenuSheetComponent as bd, MobilePresenterViewComponent as be, MobileSheetComponent as bf, MobileSlidesSheetComponent as bg, MobileToolbarComponent as bh, ModalDialogComponent as bi, Model3DRendererComponent as bj, NotesHandoutCardComponent as bk, NotesPanelComponent as bl, NotesToolbarComponent as bm, OleRendererComponent as bn, OutlineViewOverlayComponent as bo, POWER_POINT_VIEWER_PROVIDERS as bp, PPTX_OPEN_ACCEPT as bq, PRESENTATION_OPEN_EXTENSIONS as br, PRESENTER_CHANNEL_NAME as bs, PRESENTER_MSG_ORIGIN as bt, PRESENTER_TIMER_SEGMENT_MS as bu, PX_PER_CM as bv, PX_PER_INCH as bw, PasswordProtectionDialogComponent as bx, PasswordStrengthMeterComponent as by, PowerPointViewerComponent as bz, AUDIENCE_HASH as c, THEME_CATALOG as c$, RibbonDrawingGroupComponent as c0, RibbonEditingSectionComponent as c1, RibbonFileSectionComponent as c2, RibbonFontControlsComponent as c3, RibbonHomeSectionComponent as c4, RibbonHyperlinkButtonComponent as c5, RibbonInsertFieldsComponent as c6, RibbonInsertSectionComponent as c7, RibbonMotionPathGalleryComponent as c8, RibbonParagraphControlsComponent as c9, ShortcutPanelComponent as cA, ShowOptionsFieldsetComponent as cB, ShowSlidesFieldsetComponent as cC, SignatureStrippedDialogComponent as cD, SignaturesPanelComponent as cE, SignaturesService as cF, SlideBackgroundCardComponent as cG, SlideCanvasComponent as cH, SlideDefaultInspectorComponent as cI, SlideDiffChangesComponent as cJ, SlideDiffRowComponent as cK, SlideDiffThumbnailsComponent as cL, SlideSizeCardComponent as cM, SlideSorterOverlayComponent as cN, SlideThemeOverridePanelComponent as cO, SlideTransitionCardComponent as cP, SlidesPanelComponent as cQ, SmartArt3DRendererComponent as cR, SmartArt3DService as cS, SmartArtPreviewComponent as cT, SmartArtPropertiesComponent as cU, SmartArtRendererComponent as cV, StatusBarComponent as cW, TABLE_STRUCTURE_TOGGLES as cX, TEXT_3D_BOTTOM_BEVEL_KEYS as cY, TEXT_3D_TOP_BEVEL_KEYS as cZ, TEXT_DIRECTION_OPTIONS$1 as c_, RibbonPrimaryRowComponent as ca, RibbonReviewSectionComponent as cb, RibbonShapeExtrasComponent as cc, RibbonSlideshowSectionComponent as cd, RibbonTransitionsSectionComponent as ce, RibbonViewSectionComponent as cf, RulerGuidesService as cg, SEQUENCE_OPTIONS as ch, SEVERITY_GROUPS as ci, SEVERITY_LABELS as cj, SHORTCUT_REFERENCE_ITEMS as ck, SLIDE_TRANSITION_KEYFRAMES as cl, DEFAULT_PALETTE as cm, PALETTES$1 as cn, SMART_ART_COLOR_SCHEMES as co, SMART_ART_STYLE_OPTIONS as cp, SUB_ITEM_LABEL as cq, SVG_WARP_PRESETS as cr, SWIPE_MAX_VERTICAL_PX as cs, SWIPE_THRESHOLD_PX as ct, SelectionPaneComponent as cu, SetUpSlideShowDialogComponent as cv, SettingsAppearanceTabComponent as cw, SettingsDialogComponent as cx, SettingsLanguageTabComponent as cy, ShareDialogComponent as cz, AUDIENCE_NONCE_KEY as d, applyAcceptedDiff as d$, TIMING_CURVE_OPTIONS as d0, TRIGGER_OPTIONS as d1, TYPE_LABELS as d2, TableCellAdvancedFillComponent as d3, TableCellFormattingComponent as d4, TableDataEditorComponent as d5, TablePropertiesComponent as d6, TableRendererComponent as d7, TableResizeOverlayComponent as d8, TableSelectionService as d9, ViewerFormatPainterService as dA, ViewerInspectorPanelService as dB, ViewerKeyboardService as dC, ViewerMobileSheetService as dD, ViewerPresentationModeService as dE, ViewerThemeGalleryService as dF, ViewerTouchGesturesService as dG, ViewerZoomService as dH, WEBM_MIME_CANDIDATES as dI, WriteBackScheduler as dJ, ZERO_LINE_COLOR as dK, ZoomNavigationService as dL, ZoomRendererComponent as dM, ZoomTargetService as dN, addCategory as dO, addCommentToList as dP, addGradientStopPatch as dQ, addItem as dR, addSeries as dS, addSubItem as dT, advanceStep as dU, affordanceElements as dV, aiToggleVisible as dW, alignPatch as dX, animationFor as dY, animationPresetLabelKey as dZ, annotationMapToInkInserts as d_, TagsCardComponent as da, Text3DBevelSectionComponent as db, Text3DPanelComponent as dc, TextAdvancedPanelComponent as dd, ThemeEditorFieldsComponent as de, ThemeGalleryComponent as df, ThemeSelectorCardComponent as dg, TitleBarComponent as dh, TitleBarSearchComponent as di, TransitionDirectionPickerComponent as dj, TransitionPreviewComponent as dk, VALIGN_OPTIONS as dl, VIEWER_THEME as dm, VersionHistoryPanelComponent as dn, ViewerCanvasEditingService as dp, ViewerCollabCursorService as dq, ViewerCollaborationSessionService as dr, ViewerCompareService as ds, ViewerCustomShowsService as dt, ViewerDialogsService as du, ViewerDocumentPropertiesService as dv, ViewerExportService as dw, ViewerExtraDialogsComponent as dx, ViewerFileIOService as dy, ViewerFindReplaceService as dz, AVATAR_COLOR_SWATCHES as e, buildZoomContainerStyle as e$, applyAnimationPreset as e0, applyFindReplacements as e1, applyFormatToElement as e2, applyMove as e3, applyResize as e4, asMediaElement as e5, assignUserColor as e6, attachShowVisibilityPause as e7, attachTouchGestures as e8, axisTickValues as e9, buildFontFaceRule as eA, buildGradientFillCss as eB, buildGridlinesAndLabels as eC, buildHyperlinkPatch as eD, buildInkContainerStyle as eE, buildInkStrokes as eF, buildLegend as eG, buildMarkTooltip as eH, buildModel3DContainerStyle as eI, buildModel3DViewModel as eJ, buildOleActionModel as eK, buildOleInfoRows as eL, buildPatternFillCss as eM, buildPrintHtmlDocument as eN, buildPropertiesPatch as eO, buildRegionMapViewModel as eP, buildSaveSlides as eQ, buildShareUrl as eR, buildSmartArtInsertElement as eS, buildSmartArtNodes as eT, buildStockViewModel as eU, buildSurfaceViewModel as eV, buildTableViewModel as eW, buildTreemapViewModel as eX, buildTrimFragment as eY, buildWaterfallViewModel as eZ, buildZeroLine as e_, beginNodeEdit as ea, bevelSizePatch as eb, boolFromEvent as ec, bringForward as ed, bringToFront as ee, buildBarActions as ef, buildBroadcastConfig as eg, buildBroadcastViewerUrl as eh, buildCategoryLabels as ei, buildCellParagraphs as ej, buildChartViewModel as ek, buildChatLogExport as el, buildChatLogMarkdown as em, buildChromeStyle as en, buildClearHyperlinkPatch as eo, buildClickGroups as ep, buildColStyles as eq, buildCollaborationConfig as er, buildComboViewModel as es, buildCssGradientFromShapeStyle as et, buildDuotoneFilter as eu, buildDuotoneFilterId as ev, buildEmbeddedFontStyles as ew, buildEquationElement as ex, buildEquationSegment as ey, buildFallbackViewModel as ez, AXIS_LABEL_COLOR as f, computeSingleSelected as f$, buildZoomViewModel as f0, bulletIndentPx as f1, canAddTopLevelNode as f2, canGroupSelection as f3, canRemoveTopLevelNode as f4, canSetStrokeWidth as f5, canStartBroadcast as f6, canStartShare as f7, canUngroupSelection as f8, canUseClipboard as f9, computeAxisTitlePrimitives as fA, computeBarRects as fB, computeBubbleRadius as fC, computeCornerHandle as fD, computeDistribute as fE, computeDrawingViewBox as fF, computeErrorBarPrimitives as fG, computeFocusTargets as fH, computeGridSpacingPx as fI, computeHandleBoxes as fJ, computeHandoutLayout as fK, computeIsMobile as fL, computeIsTablet as fM, computeLinePoints as fN, computeLinearRegression as fO, computePageCount as fP, computePieLayout as fQ, computePieSlicePath as fR, computePieSlices as fS, computePlotLayout as fT, computeRSquared as fU, computeRadarPoints as fV, computeResizeHandleBoxes as fW, computeRotateHandleBox as fX, computeScatterDots as fY, computeScatterXDomain as fZ, computeSelectionBoxes as f_, captionDisplayText as fa, cellRunStyle as fb, cellStyleToStyleMap as fc, cellTdStyle as fd, changeCountLabel as fe, changeIcon as ff, characterSpacingPatch as fg, chartPreserveAspectRatio as fh, checkFontAvailable as fi, clampCursorPosition as fj, clampGifDimensions as fk, clampIndex as fl, clampNotesFontSize as fm, clampScale as fn, clampStep as fo, clearAllLocalViewerData as fp, clearAudienceContent as fq, cn as fr, collectAccessibilityIssues as fs, collectElementText as ft, collectSlideText as fu, collectStoredChats as fv, collectUsedFontFamilies as fw, columnWidthStyle as fx, commitNodeText as fy, computeAlign as fz, AccessibilityPanelComponent as g, formatFileSize as g$, computeSlideIndices as g0, computeSnap as g1, computeStackedBarRects as g2, computeStackedValueRange as g3, computeTrendlinePrimitives as g4, computeValueRange as g5, convertOmmlToMathMl as g6, copyFormatFromElement as g7, countAccessibilityIssues as g8, countAnnotationStrokes as g9, enableGlowPatch as gA, enableInnerShadowPatch as gB, enableOuterShadowPatch as gC, enableReflectionPatch as gD, enableSoftEdgePatch as gE, encodeGif as gF, endShowMediaCleanup as gG, estimatePageCount as gH, exitPresentationFullscreen as gI, exportAiChatLogs as gJ, extractPathPoints as gK, eyedropperAvailable as gL, fillColorOf$1 as gM, findInSlides as gN, findOwningSlideIndex as gO, findSlideIndexByElementId as gP, firstVisibleIndex as gQ, fitPolynomial as gR, fitZoom as gS, focusTargetChips as gT, fontMimeForFormat as gU, fontSizeOf as gV, forgetSessionDeck as gW, formatAxisValue as gX, formatBytes as gY, formatCursorLabel as gZ, formatElapsed as g_, createAngularAiBridge as ga, createCustomShow as gb, createSwipeDismissDrag as gc, createWebrtcBundle as gd, createWebsocketBundle as ge, cssObjectToStyleMap as gf, currentColorScheme as gg, currentLayout as gh, currentStyle as gi, defaultCssVars as gj, defaultRadius as gk, defaultThemeColors as gl, deleteElementsByIds as gm, deleteVersion as gn, demoteNode as go, deriveModel3DBlobUrl as gp, derivePresenceList as gq, describeSmartArtBounds as gr, disableGlowPatch as gs, disableInnerShadowPatch as gt, disableOuterShadowPatch as gu, disableReflectionPatch as gv, disableSoftEdgePatch as gw, duplicateElementById as gx, durationOf as gy, effectsStateOf as gz, AccessibilityService as h, isPpactionUrl as h$, formatPropertyDate as h0, formatTime as h1, fpsToFrameIntervalMs as h2, generateBroadcastRoomId as h3, generateCommentId as h4, generateCustomShowId as h5, generatePressureCircles as h6, generateTicks as h7, getClrChangeParams as h8, getContainerStyle as h9, getWarpPath as hA, gradientStateFromStyle as hB, gradientStateOf as hC, gradientStatePatch as hD, gridColumns as hE, groupIssuesBySeverity as hF, hasAnimation as hG, hasCopyableFormat as hH, hasExistingLink as hI, hasExitedFullscreen as hJ, hasGradientFill as hK, hasPressureVariation as hL, hasVisibleSlideAfter as hM, headerLabel as hN, imageDimensions as hO, inkViewBox as hP, insertTableElementColumn as hQ, insertTableElementRow as hR, interpolateWidth as hS, isAudienceTab as hT, isBold as hU, isBrowserOpenableMime as hV, isChildNode as hW, isElementInteractive as hX, isInjectableUrl as hY, isItalic as hZ, isLegacyBinaryPresentation as h_, getDuotoneFilterDef as ha, getEffectSoundState as hb, getImageSrc as hc, getLocalStorageUsageSummary as hd, getOleAriaLabel as he, getOleBadgeLabel as hf, getOleDisplayName as hg, getOleDownloadFileName as hh, getOleTypeColor as hi, getOleTypeLabel as hj, getPasswordStrength as hk, getPatternSvg as hl, getPlaceholderStyle as hm, getVersions as hn, getResolvedShapeClipPath as ho, getResolvedShapeClipPathFor as hp, getSessionTabId as hq, getShapeFillStrokeStyle as hr, getSlideBackgroundStyle as hs, getSlideTransitionAnimations as ht, getSmartArtNodeBounds as hu, getSpeechRecognitionCtor as hv, getTextBlockStyle as hw, getTextWarp as hx, getTouchDistance as hy, getWarpCategory as hz, AccountPageComponent as i, patchChartData as i$, isPresenterMessage as i0, isSigned as i1, isSupportedPresentationFile as i2, isTextElement as i3, isTwoTableFocus as i4, isUnderline as i5, isUrlSafe as i6, isValidRoomId as i7, isViewportBackgroundPressTarget as i8, isZoomActivationKey as i9, newChartElement as iA, newEquationElement as iB, newPresetShapeElement as iC, newShapeElement as iD, newSmartArtElement as iE, newTableElement as iF, newTextElement as iG, nextVisibleIndex as iH, nodeBold as iI, nodeEditBox as iJ, nodeFillColor as iK, nodeFontColor as iL, nodeIdFromKey as iM, nodeItalic as iN, nodeStyle as iO, normalizeFontFormat as iP, normalizeSlidesPerPage as iQ, normalizeValue as iR, numFromEvent as iS, ommlToMathml as iT, ooxmlDashToCssBorderStyle as iU, openNativeEyeDropper as iV, overallStatus as iW, paletteColor as iX, parseAudienceNonce as iY, parseNodeTextarea as iZ, partitionSlides as i_, issueTrackKey as ia, issueTypeLabel as ib, keyToLabel as ic, lastVisibleIndex as id, latexToMathml as ie, layoutConnectorPaints as ig, layoutNodeLabels as ih, linePointsToSvgString as ii, lineSpacingPatch as ij, loadAudienceContent as ik, loadSessionDeck as il, mediaFallbackFor as im, mediaSurfaceFor as io, mergeCaptionResults as ip, mergeDown as iq, mergeRight as ir, mergeSelection as is, moveElementBy as it, moveNodeDown as iu, moveNodeUp as iv, msToFrameDelayCs as iw, narrowToCircle as ix, narrowToPolygon as iy, narrowToRect as iz, ActionSettingsPanelComponent as j, rulerDragToGuidePosition as j$, patchChartStyle as j0, patchTableData as j1, patchTextStyle as j2, patternPresetOptions as j3, pendingElementStyles as j4, pickColorByClickFallback as j5, pickFile as j6, pickSupportedMimeType as j7, planGifFrames as j8, planVideoSegments as j9, removeSeries as jA, renderToCanvas as jB, reorderAnimationDown as jC, reorderAnimationUp as jD, replaceInSlides as jE, replaceMatch as jF, requestPresentationFullscreen as jG, resizeElement as jH, resolveCaptionTracks as jI, resolveChartKind as jJ, resolveFontVariant as jK, resolveHyperlinkHref as jL, resolveInteractiveElementId as jM, resolveMediaSrc as jN, resolveOleType as jO, resolveParagraphBullet as jP, resolvePresenterNotes as jQ, resolveProfileInitial as jR, resolveRegionCode as jS, resolveSlideAutoAdvanceMs as jT, resolvePalette as jU, resolveThemeCatalogEntry as jV, resolveTransitionDuration as jW, restoreSessionDeck as jX, revealedElementStyles as jY, routeOrthogonalConnector as jZ, rowStyle as j_, pointsToSvgPathD as ja, presenceToCursors as jb, presentationBaseName as jc, presentationStageStyle as jd, presenterTimerProgress as je, presetByLayout as jf, presetsForCategory as jg, pressuresToWidths as jh, prevVisibleIndex as ji, projectDrawingShapes as jj, promoteNode as jk, provideViewerTheme as jl, radarAngle as jm, radarRingPoints as jn, readAsDataUrl as jo, recordWebm as jp, registerCrossSlideAudio as jq, rememberSessionDeck as jr, removeAnimation as js, removeCategory as jt, removeTableElementColumn as ju, removeCommentFromList as jv, removeElementAnimation as jw, removeGradientStopPatch as jx, removeNode as jy, removeTableElementRow as jz, AdvancedChartEditorComponent as k, sheetAfterNavigate as k$, rulerHighlight as k0, rulerStripTicks as k1, sampleColorFromSlide as k2, sanitizeColor as k3, sanitizeSlideIndex as k4, sanitizeUserName as k5, saveViewerProfile as k6, savedPresentationFileName as k7, scanAvailableFonts as k8, searchSlides as k9, setDataPointMarker as kA, setDelay as kB, setDirection as kC, setDuration as kD, setEffectSound as kE, setElementPosition as kF, setGridlineStyle as kG, setLayout as kH, setLegend as kI, setNodeStyle as kJ, setNodeText as kK, setRepeatCount as kL, setRepeatMode as kM, setSequence as kN, setSeriesChartType as kO, setSeriesColor as kP, setSeriesErrorBars as kQ, setSeriesMarker as kR, setSeriesName as kS, setSeriesTrendline as kT, setSeriesValue as kU, setStyle as kV, setTimingCurve as kW, setTitle as kX, setTrigger as kY, setTriggerShapeId as kZ, shapeStylePatch$1 as k_, seedBroadcastFields as ka, seedHyperlinkDraft as kb, seedPropertiesDraft as kc, seedShareFields as kd, segmentFrameCount as ke, selectValue$2 as kf, sendBackward as kg, sendToBack as kh, sequentialColorScale as ki, serializeWriteBack as kj, seriesColor as kk, setAfterAnimation as kl, setAfterAnimationColor as km, setAnimationEmphasis as kn, setAnimationEntrance as ko, setAnimationExit as kp, setAxis as kq, setAxisLogScale as kr, setAxisTitleStyle as ks, setCategoryLabel as kt, setCellText as ku, setColorScheme as kv, setDataLabels as kw, setDataPointExplosion as kx, setDataPointFill as ky, setDataPointLabel as kz, AiChangeOverlayComponent as l, shouldBlockClickAdvance as l0, shouldUseSvgWarp as l1, showDirectionPicker as l2, showsTemplateAffordance as l3, signatureCountLabel as l4, signatureKey as l5, signatureTimestamp as l6, signerName as l7, statusLabel as l8, slideNumberOf as l9, toggleCommentResolvedInList as lA, toggleNodeBold as lB, toggleNodeItalic as lC, toggleSheet as lD, topLevelNodeCount as lE, transformSelectedTextCase as lF, translationsEn as lG, updateElementById as lH, updateGlowPatch as lI, updateGradientStopPatch as lJ, updateInnerShadowPatch as lK, updateOuterShadowPatch as lL, updateReflectionPatch as lM, vAlignPatch as lN, validatePassword as lO, validatePrintSettings as lP, validateRoomId as lQ, valueToY as lR, vermilionDarkColors as lS, vermilionDarkTheme as lT, vermilionLightColors as lU, vermilionLightTheme as lV, vermilionRadius as lW, waypointsToPathD as lX, worstStatus as lY, zoomTargetSlideIndex as lZ, slidesWithReappliedLayout as la, smartArtNodes as lb, paletteColour as lc, snapToGridStep as ld, splitCursorCell as le, splitMergedCell as lf, statusKind as lg, statusLabel$1 as lh, storeAudienceContent as li, stringFromEvent$5 as lj, strokeColorOf as lk, strokeToInkElement as ll, strokeWidthOf as lm, styleShadowFilter as ln, surfaceColor as lo, textAdvancedPatch as lp, textAdvancedStateFromStyle as lq, textAdvancedStateOf as lr, textColorOf as ls, textDirectionPatch as lt, textStyleOf as lu, textStylePatch as lv, themeStyle as lw, themeToCssVars as lx, thumbnailHeight as ly, thumbnailZoom as lz, AiChatPanelComponent as m, AiChatService as n, AiComposerComponent as o, AiFocusBarComponent as p, AiFocusHighlightOverlayComponent as q, AiHistoryMenuComponent as r, AiHistoryService as s, toChatSummary as t, AiMessageListComponent as u, AiPanelStore as v, AiProposalCardComponent as w, AiSettingsSectionComponent as x, AiToolCallCardComponent as y, AnimationAuthorPanelComponent as z };
|
|
148294
|
-
//# sourceMappingURL=pptx-angular-viewer-pptx-angular-viewer-
|
|
148294
|
+
//# sourceMappingURL=pptx-angular-viewer-pptx-angular-viewer-D4-vQO15.mjs.map
|