pptx-react-viewer 2.0.0 → 2.1.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.
Files changed (91) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/README.md +1 -1
  3. package/dist/{AiChatPanel-BRGQCYZM.mjs → AiChatPanel-RFBZWMUE.mjs} +2 -2
  4. package/dist/AiChatPanel-RFBZWMUE.mjs.br +0 -0
  5. package/dist/AiChatPanel-RFBZWMUE.mjs.gz +0 -0
  6. package/dist/{AiChatPanel-PW5OT25Z.js → AiChatPanel-VCCVHAAI.js} +10 -10
  7. package/dist/AiChatPanel-VCCVHAAI.js.br +0 -0
  8. package/dist/AiChatPanel-VCCVHAAI.js.gz +0 -0
  9. package/dist/{Model3DScene-TEF362W2.mjs → Model3DScene-2M6HVWTE.mjs} +1 -1
  10. package/dist/{Model3DScene-TEF362W2.mjs.br → Model3DScene-2M6HVWTE.mjs.br} +0 -0
  11. package/dist/Model3DScene-2M6HVWTE.mjs.gz +0 -0
  12. package/dist/{Model3DScene-JCGYRKXM.js → Model3DScene-RQIGSYGQ.js} +2 -2
  13. package/dist/{Model3DScene-JCGYRKXM.js.br → Model3DScene-RQIGSYGQ.js.br} +0 -0
  14. package/dist/Model3DScene-RQIGSYGQ.js.gz +0 -0
  15. package/dist/PowerPointViewer-gmU5rc7K.d.ts.map +1 -1
  16. package/dist/{SurfaceChart3DScene-2SHCYZVC.js → SurfaceChart3DScene-2FVASQGC.js} +2 -2
  17. package/dist/SurfaceChart3DScene-2FVASQGC.js.br +0 -0
  18. package/dist/SurfaceChart3DScene-2FVASQGC.js.gz +0 -0
  19. package/dist/{SurfaceChart3DScene-UPDCIMJM.mjs → SurfaceChart3DScene-EGMWY4CZ.mjs} +1 -1
  20. package/dist/{SurfaceChart3DScene-UPDCIMJM.mjs.br → SurfaceChart3DScene-EGMWY4CZ.mjs.br} +0 -0
  21. package/dist/SurfaceChart3DScene-EGMWY4CZ.mjs.gz +0 -0
  22. package/dist/{chunk-R2N2UYT7.mjs → chunk-27XBWVO5.mjs} +310 -3
  23. package/dist/chunk-27XBWVO5.mjs.br +0 -0
  24. package/dist/{chunk-R2N2UYT7.mjs.gz → chunk-27XBWVO5.mjs.gz} +0 -0
  25. package/dist/{chunk-OKOJVSKJ.js → chunk-46Z6MNRS.js} +315 -2
  26. package/dist/chunk-46Z6MNRS.js.br +0 -0
  27. package/dist/{chunk-OKOJVSKJ.js.gz → chunk-46Z6MNRS.js.gz} +0 -0
  28. package/dist/{chunk-B6NRDUHJ.mjs → chunk-7DQHWPIB.mjs} +2 -2
  29. package/dist/chunk-7DQHWPIB.mjs.br +0 -0
  30. package/dist/chunk-7DQHWPIB.mjs.gz +0 -0
  31. package/dist/{chunk-ZKDE3HJI.js → chunk-LDF77JJD.js} +208 -208
  32. package/dist/chunk-LDF77JJD.js.br +0 -0
  33. package/dist/chunk-LDF77JJD.js.gz +0 -0
  34. package/dist/{chunk-5XLLRPMV.mjs → chunk-NGE7YQTF.mjs} +110 -14
  35. package/dist/chunk-NGE7YQTF.mjs.br +0 -0
  36. package/dist/chunk-NGE7YQTF.mjs.gz +0 -0
  37. package/dist/{chunk-LFXG7SGG.js → chunk-VHO53ZXZ.js} +764 -756
  38. package/dist/chunk-VHO53ZXZ.js.br +0 -0
  39. package/dist/chunk-VHO53ZXZ.js.gz +0 -0
  40. package/dist/{chunk-L63RAVM7.mjs → chunk-Y4OSELBT.mjs} +16 -8
  41. package/dist/chunk-Y4OSELBT.mjs.br +0 -0
  42. package/dist/chunk-Y4OSELBT.mjs.gz +0 -0
  43. package/dist/{chunk-ZB4NZRCI.js → chunk-ZRY7NLKS.js} +354 -257
  44. package/dist/chunk-ZRY7NLKS.js.br +0 -0
  45. package/dist/chunk-ZRY7NLKS.js.gz +0 -0
  46. package/dist/{index-a8wcFjRJ.d.ts → index-nAyIdGqF.d.ts} +2 -2
  47. package/dist/{index-a8wcFjRJ.d.ts.map → index-nAyIdGqF.d.ts.map} +1 -1
  48. package/dist/index.js +33 -33
  49. package/dist/index.js.br +0 -0
  50. package/dist/index.js.gz +0 -0
  51. package/dist/index.mjs +4 -4
  52. package/dist/index.mjs.br +0 -0
  53. package/dist/index.mjs.gz +0 -0
  54. package/dist/internals.d.ts +100 -0
  55. package/dist/internals.d.ts.map +1 -1
  56. package/dist/internals.js +78 -78
  57. package/dist/internals.js.br +0 -0
  58. package/dist/internals.js.gz +0 -0
  59. package/dist/internals.mjs +3 -3
  60. package/dist/internals.mjs.br +0 -0
  61. package/dist/internals.mjs.gz +0 -0
  62. package/dist/viewer/index.js +20 -20
  63. package/dist/viewer/index.js.br +0 -0
  64. package/dist/viewer/index.js.gz +0 -0
  65. package/dist/viewer/index.mjs +4 -4
  66. package/dist/viewer/index.mjs.br +0 -0
  67. package/dist/viewer/index.mjs.gz +0 -0
  68. package/package.json +5 -3
  69. package/dist/AiChatPanel-BRGQCYZM.mjs.br +0 -0
  70. package/dist/AiChatPanel-BRGQCYZM.mjs.gz +0 -0
  71. package/dist/AiChatPanel-PW5OT25Z.js.br +0 -0
  72. package/dist/AiChatPanel-PW5OT25Z.js.gz +0 -0
  73. package/dist/Model3DScene-JCGYRKXM.js.gz +0 -0
  74. package/dist/Model3DScene-TEF362W2.mjs.gz +0 -0
  75. package/dist/SurfaceChart3DScene-2SHCYZVC.js.br +0 -0
  76. package/dist/SurfaceChart3DScene-2SHCYZVC.js.gz +0 -0
  77. package/dist/SurfaceChart3DScene-UPDCIMJM.mjs.gz +0 -0
  78. package/dist/chunk-5XLLRPMV.mjs.br +0 -0
  79. package/dist/chunk-5XLLRPMV.mjs.gz +0 -0
  80. package/dist/chunk-B6NRDUHJ.mjs.br +0 -0
  81. package/dist/chunk-B6NRDUHJ.mjs.gz +0 -0
  82. package/dist/chunk-L63RAVM7.mjs.br +0 -0
  83. package/dist/chunk-L63RAVM7.mjs.gz +0 -0
  84. package/dist/chunk-LFXG7SGG.js.br +0 -0
  85. package/dist/chunk-LFXG7SGG.js.gz +0 -0
  86. package/dist/chunk-OKOJVSKJ.js.br +0 -0
  87. package/dist/chunk-R2N2UYT7.mjs.br +0 -0
  88. package/dist/chunk-ZB4NZRCI.js.br +0 -0
  89. package/dist/chunk-ZB4NZRCI.js.gz +0 -0
  90. package/dist/chunk-ZKDE3HJI.js.br +0 -0
  91. package/dist/chunk-ZKDE3HJI.js.gz +0 -0
package/CHANGELOG.md CHANGED
@@ -4,6 +4,30 @@ All notable changes to this project are documented here.
4
4
  This file is generated from [Conventional Commits](https://www.conventionalcommits.org)
5
5
  by [git-cliff](https://git-cliff.org); do not edit it by hand.
6
6
 
7
+ ## [2.0.0](https://github.com/ChristopherVR/pptx-viewer/releases/tag/pptx-react-viewer@2.0.0) - 2026-07-23
8
+
9
+ ### Features
10
+
11
+ - **react:** Rename hooks-unstable subpath to internals (by @ChristopherVR) ([03fc39c](https://github.com/ChristopherVR/pptx-viewer/commit/03fc39c574a3a411f9b28b62d3a79f2699ad839e))
12
+ - **shared:** Ai config, loader and bridge contracts (by @ChristopherVR) ([1c40e28](https://github.com/ChristopherVR/pptx-viewer/commit/1c40e28b1661895e2993b01c11bea6262459cb88))
13
+ - **react:** Add ai bridge and chat session hooks (by @ChristopherVR) ([9a153a7](https://github.com/ChristopherVR/pptx-viewer/commit/9a153a752c47c5e2c140bf58de2984682bcc39ee))
14
+ - **shared:** Indexeddb-first ai chat history store (by @ChristopherVR) ([88920f2](https://github.com/ChristopherVR/pptx-viewer/commit/88920f20eb00e72b84efa9ef2cb500dfd6d20db4))
15
+ - **shared:** Rebuild AI assistant tools on pptx-viewer-mcp (by @ChristopherVR) ([da1c31e](https://github.com/ChristopherVR/pptx-viewer/commit/da1c31ee88c0b60a82628003c8a1b16245f028ed))
16
+ - **core:** Upgrade emf-converter to 2.0.0 (breaking) (by @ChristopherVR) ([effa4e5](https://github.com/ChristopherVR/pptx-viewer/commit/effa4e5338b2b01796a3671f505bcb4563de74cc))
17
+
18
+ ### Documentation
19
+
20
+ - Friendly 2.0.0 changelog for root and packages (by @ChristopherVR) ([f56564d](https://github.com/ChristopherVR/pptx-viewer/commit/f56564de0dea3f3aa6f0bdf5ad5ed1bf6e9d4823))
21
+
22
+ ### Testing
23
+
24
+ - **react:** Ai panel gating and proposals (by @ChristopherVR) ([59e35e0](https://github.com/ChristopherVR/pptx-viewer/commit/59e35e082cfed944f756a5d2fb74c593e0592da4))
25
+ - **shared:** Opt-in live gpt-4o-mini ai integration test (by @ChristopherVR) ([48622f1](https://github.com/ChristopherVR/pptx-viewer/commit/48622f135a5f2ee4c28d97d08478d3c203745f47))
26
+
27
+ ### Build & CI
28
+
29
+ - **shared:** Keep the ai SDK external across bindings (by @ChristopherVR) ([fa5e6b7](https://github.com/ChristopherVR/pptx-viewer/commit/fa5e6b77e6586764d9e7717439f574291810e93b))
30
+
7
31
  ## [1.25.5](https://github.com/ChristopherVR/pptx-viewer/releases/tag/pptx-react-viewer@1.25.5) - 2026-07-19
8
32
 
9
33
  ## [1.25.4](https://github.com/ChristopherVR/pptx-viewer/releases/tag/pptx-react-viewer@1.25.4) - 2026-07-19
package/README.md CHANGED
@@ -20,7 +20,7 @@ Slides render with real **HTML/CSS** (not `<canvas>`), so text stays crisp at an
20
20
  npm install pptx-react-viewer
21
21
  ```
22
22
 
23
- Then add the React peer dependencies your app uses:
23
+ Then add the React peer dependencies your app uses (`react` / `react-dom` may be ^18.2 or ^19; both majors run the full test suite in CI):
24
24
 
25
25
  ```bash
26
26
  npm install react react-dom framer-motion lucide-react react-icons jspdf jszip fast-xml-parser i18next react-i18next
@@ -1,6 +1,6 @@
1
1
  import { isAiAvailable, createAiChatSession, toolCanvasTarget, createChatHistoryStore, focusTargetChips, isTwoTableFocus, humanizeDiffLine, buildDeckContext, describeToolActivity, summarizeToolArgs, toolLabel } from './chunk-BHVCED34.mjs';
2
- import { cn } from './chunk-B6NRDUHJ.mjs';
3
- import './chunk-R2N2UYT7.mjs';
2
+ import { cn } from './chunk-7DQHWPIB.mjs';
3
+ import './chunk-27XBWVO5.mjs';
4
4
  import './chunk-2X72MOPZ.mjs';
5
5
  import './chunk-6YXLGMTN.mjs';
6
6
  import './chunk-XGB3TDIC.mjs';
Binary file
Binary file
@@ -1,8 +1,8 @@
1
1
  'use strict';
2
2
 
3
3
  var chunkSYPHGLIB_js = require('./chunk-SYPHGLIB.js');
4
- var chunkZKDE3HJI_js = require('./chunk-ZKDE3HJI.js');
5
- require('./chunk-OKOJVSKJ.js');
4
+ var chunkLDF77JJD_js = require('./chunk-LDF77JJD.js');
5
+ require('./chunk-46Z6MNRS.js');
6
6
  require('./chunk-CUUYYYC5.js');
7
7
  require('./chunk-CLNGAVNH.js');
8
8
  require('./chunk-4VNS5WPM.js');
@@ -427,7 +427,7 @@ function AiComposer({
427
427
  disabled: value.trim().length === 0,
428
428
  title: t("pptx.ai.send"),
429
429
  "aria-label": t("pptx.ai.send"),
430
- className: chunkZKDE3HJI_js.cn(
430
+ className: chunkLDF77JJD_js.cn(
431
431
  "shrink-0 rounded-sm p-1.5 transition-colors",
432
432
  value.trim().length === 0 ? "text-muted-foreground/50" : "bg-primary text-primary-foreground hover:bg-primary/90"
433
433
  ),
@@ -461,7 +461,7 @@ function AiFocusBar({
461
461
  chips.map((chip) => /* @__PURE__ */ jsxRuntime.jsx(
462
462
  "span",
463
463
  {
464
- className: chunkZKDE3HJI_js.cn(
464
+ className: chunkLDF77JJD_js.cn(
465
465
  "inline-flex max-w-[10rem] items-center rounded-full px-2 py-0.5 text-[11px]",
466
466
  hasPicks || isPinned ? "bg-primary/15 text-primary" : "bg-muted text-muted-foreground"
467
467
  ),
@@ -494,7 +494,7 @@ function AiFocusBar({
494
494
  title: t("pptx.ai.pickElement"),
495
495
  "aria-label": t("pptx.ai.pickAria"),
496
496
  "aria-pressed": pickMode,
497
- className: chunkZKDE3HJI_js.cn(
497
+ className: chunkLDF77JJD_js.cn(
498
498
  "rounded-sm p-1",
499
499
  pickMode ? "bg-primary text-primary-foreground" : "text-muted-foreground hover:bg-accent"
500
500
  ),
@@ -573,7 +573,7 @@ function AiHistoryList({ chats, activeChatId, onResume, onDelete }) {
573
573
  {
574
574
  type: "button",
575
575
  onClick: () => onResume(chat.id),
576
- className: chunkZKDE3HJI_js.cn(
576
+ className: chunkLDF77JJD_js.cn(
577
577
  "flex min-w-0 flex-1 items-start gap-2 rounded-sm px-2 py-1.5 text-left hover:bg-accent",
578
578
  chat.id === activeChatId && "bg-accent/60"
579
579
  ),
@@ -737,17 +737,17 @@ function AiToolCallCard({ part }) {
737
737
  /* @__PURE__ */ jsxRuntime.jsx(
738
738
  Icon,
739
739
  {
740
- className: chunkZKDE3HJI_js.cn(
740
+ className: chunkLDF77JJD_js.cn(
741
741
  "w-3.5 h-3.5 shrink-0",
742
742
  failed ? "text-destructive" : "text-muted-foreground"
743
743
  )
744
744
  }
745
745
  ),
746
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: chunkZKDE3HJI_js.cn("truncate", failed ? "text-destructive" : "text-foreground"), children: activity.label }),
746
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: chunkLDF77JJD_js.cn("truncate", failed ? "text-destructive" : "text-foreground"), children: activity.label }),
747
747
  /* @__PURE__ */ jsxRuntime.jsxs(
748
748
  "span",
749
749
  {
750
- className: chunkZKDE3HJI_js.cn(
750
+ className: chunkLDF77JJD_js.cn(
751
751
  "ml-auto inline-flex items-center gap-1 rounded-sm px-1.5 py-0.5 text-[10px]",
752
752
  failed ? "bg-destructive/15 text-destructive" : done ? "bg-primary/10 text-primary" : "bg-muted text-muted-foreground"
753
753
  ),
@@ -795,7 +795,7 @@ function AiMessageList({ messages, isStreaming, bridge }) {
795
795
  /* @__PURE__ */ jsxRuntime.jsx(
796
796
  "div",
797
797
  {
798
- className: chunkZKDE3HJI_js.cn(
798
+ className: chunkLDF77JJD_js.cn(
799
799
  "mt-0.5 flex h-6 w-6 shrink-0 items-center justify-center rounded-full",
800
800
  isUser ? "bg-secondary text-muted-foreground" : "bg-primary/15 text-primary"
801
801
  ),
Binary file
Binary file
@@ -1,4 +1,4 @@
1
- import { mountModel3D } from './chunk-R2N2UYT7.mjs';
1
+ import { mountModel3D } from './chunk-27XBWVO5.mjs';
2
2
  import './chunk-6YXLGMTN.mjs';
3
3
  import './chunk-XGB3TDIC.mjs';
4
4
  import { useRef, useEffect } from 'react';
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkOKOJVSKJ_js = require('./chunk-OKOJVSKJ.js');
3
+ var chunk46Z6MNRS_js = require('./chunk-46Z6MNRS.js');
4
4
  require('./chunk-CLNGAVNH.js');
5
5
  require('./chunk-4VNS5WPM.js');
6
6
  var react = require('react');
@@ -15,7 +15,7 @@ function Model3DScene({ modelUrl, interactive, width, height }) {
15
15
  return;
16
16
  }
17
17
  let disposed = false;
18
- void chunkOKOJVSKJ_js.mountModel3D(container, modelUrl, { width, height, interactive }).then((handle) => {
18
+ void chunk46Z6MNRS_js.mountModel3D(container, modelUrl, { width, height, interactive }).then((handle) => {
19
19
  if (disposed) {
20
20
  handle.dispose();
21
21
  } else {
Binary file
@@ -1 +1 @@
1
- {"version":3,"file":"PowerPointViewer-gmU5rc7K.d.ts","names":[],"sources":["../src/viewer/utils/animation-effects.ts","../src/viewer/PowerPointViewer.tsx"],"mappings":";;;;;iBAmBgB,yBACf,QAAQ,iCACR,kBAAkB,sBAChB,MAAM;;;;;;;;;;;;cCmFI,kCAAgB,0BAAA,wCAAA,cAAA"}
1
+ {"version":3,"file":"PowerPointViewer-gmU5rc7K.d.ts","names":[],"sources":["../src/viewer/utils/animation-effects.ts","../src/viewer/PowerPointViewer.tsx"],"mappings":";;;;;iBAmBgB,yBACf,QAAQ,iCACR,kBAAkB,sBAChB,MAAM;;;;;;;;;;;;cCwFI,kCAAgB,0BAAA,wCAAA,cAAA"}
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkOKOJVSKJ_js = require('./chunk-OKOJVSKJ.js');
3
+ var chunk46Z6MNRS_js = require('./chunk-46Z6MNRS.js');
4
4
  require('./chunk-CLNGAVNH.js');
5
5
  require('./chunk-4VNS5WPM.js');
6
6
  var react = require('react');
@@ -26,7 +26,7 @@ function SurfaceChart3DScene({
26
26
  return;
27
27
  }
28
28
  let disposed = false;
29
- void chunkOKOJVSKJ_js.mountSurfaceChart3D(container, {
29
+ void chunk46Z6MNRS_js.mountSurfaceChart3D(container, {
30
30
  cols,
31
31
  rows,
32
32
  heightMap,
@@ -1,4 +1,4 @@
1
- import { mountSurfaceChart3D } from './chunk-R2N2UYT7.mjs';
1
+ import { mountSurfaceChart3D } from './chunk-27XBWVO5.mjs';
2
2
  import './chunk-6YXLGMTN.mjs';
3
3
  import './chunk-XGB3TDIC.mjs';
4
4
  import { useRef, useEffect } from 'react';
@@ -17585,7 +17585,7 @@ function reconcileComplexFields(ymap, rec, fields) {
17585
17585
  }
17586
17586
  }
17587
17587
  }
17588
- function reconcileTextBody(ymap, rec, factories) {
17588
+ function reconcileElementTextBody(ymap, rec, factories) {
17589
17589
  const segments = rec.textSegments;
17590
17590
  const current = ymap.get("textBody");
17591
17591
  if (!Array.isArray(segments)) {
@@ -17611,7 +17611,7 @@ function reconcileElementYMap(ymap, element, factories, assets) {
17611
17611
  const rec = element;
17612
17612
  reconcileScalars(ymap, rec, SCALAR_ELEMENT_KEYS);
17613
17613
  reconcileComplexFields(ymap, rec, COMPLEX_ELEMENT_FIELDS);
17614
- reconcileTextBody(ymap, rec, factories);
17614
+ reconcileElementTextBody(ymap, rec, factories);
17615
17615
  reconcileAssetFields(rec.id, rec, ymap, assets);
17616
17616
  }
17617
17617
  function mapIdAt(arr, index) {
@@ -17709,6 +17709,175 @@ function reconcileSlidesInYDoc(slides, ydoc, factories, origin = LOCAL_SYNC_ORIG
17709
17709
  });
17710
17710
  }, origin);
17711
17711
  }
17712
+ var GEOMETRY_KEYS = ["x", "y", "width", "height", "rotation"];
17713
+ var MAX_LIVE_TEXT_LENGTH = 1e5;
17714
+ var asMap = (value) => typeof value === "object" && value !== null && typeof value.get === "function" ? value : void 0;
17715
+ var asArray = (value) => typeof value === "object" && value !== null && typeof value.get === "function" ? value : void 0;
17716
+ function findElementYMap(doc, slideId, elementId) {
17717
+ const slidesArr = doc.getArray(YDOC_SLIDES_KEY);
17718
+ for (let i = 0; i < slidesArr.length; i++) {
17719
+ const slideMap = asMap(slidesArr.get(i));
17720
+ if (!slideMap || slideId !== void 0 && slideMap.get("id") !== slideId) {
17721
+ continue;
17722
+ }
17723
+ const elements = asArray(slideMap.get("elements"));
17724
+ if (!elements) {
17725
+ continue;
17726
+ }
17727
+ for (let j = 0; j < elements.length; j++) {
17728
+ const elementMap = asMap(elements.get(j));
17729
+ if (elementMap && elementMap.get("id") === elementId) {
17730
+ return elementMap;
17731
+ }
17732
+ }
17733
+ }
17734
+ return void 0;
17735
+ }
17736
+ function applyLivePatch(doc, factories, patch, textPatchLimit) {
17737
+ const ymap = findElementYMap(doc, patch.slideId, patch.elementId);
17738
+ if (!ymap) {
17739
+ return;
17740
+ }
17741
+ if (patch.geometry) {
17742
+ for (const key of GEOMETRY_KEYS) {
17743
+ const next = patch.geometry[key];
17744
+ if (typeof next === "number" && ymap.get(key) !== next) {
17745
+ ymap.set(key, next);
17746
+ }
17747
+ }
17748
+ }
17749
+ if (patch.text) {
17750
+ const { value, source } = patch.text;
17751
+ if (value.length > textPatchLimit) {
17752
+ return;
17753
+ }
17754
+ if (ymap.get("text") !== value) {
17755
+ ymap.set("text", value);
17756
+ }
17757
+ const segments = remapTextToSegments(value, source.textSegments, source.textStyle);
17758
+ reconcileElementTextBody(ymap, { textSegments: segments }, factories);
17759
+ }
17760
+ }
17761
+ var LIVE_PATCH_THROTTLE_MS = 50;
17762
+ function createCollaborationLivePatcher(options = {}) {
17763
+ const throttleMs = options.throttleMs ?? LIVE_PATCH_THROTTLE_MS;
17764
+ const pending = /* @__PURE__ */ new Map();
17765
+ let doc = null;
17766
+ let factories = null;
17767
+ let timer = null;
17768
+ let lastWriteAt = Number.NEGATIVE_INFINITY;
17769
+ const cancelTimer = () => {
17770
+ if (timer !== null) {
17771
+ clearTimeout(timer);
17772
+ timer = null;
17773
+ }
17774
+ };
17775
+ const writePending = () => {
17776
+ const activeDoc = doc;
17777
+ const activeFactories = factories;
17778
+ if (!activeDoc || !activeFactories || pending.size === 0) {
17779
+ pending.clear();
17780
+ return;
17781
+ }
17782
+ const patches = [...pending.values()];
17783
+ pending.clear();
17784
+ lastWriteAt = Date.now();
17785
+ try {
17786
+ activeDoc.transact(() => {
17787
+ for (const patch of patches) {
17788
+ applyLivePatch(activeDoc, activeFactories, patch, MAX_LIVE_TEXT_LENGTH);
17789
+ }
17790
+ }, LOCAL_SYNC_ORIGIN);
17791
+ } catch {
17792
+ }
17793
+ };
17794
+ const schedule = () => {
17795
+ if (timer !== null) {
17796
+ return;
17797
+ }
17798
+ const elapsed = Date.now() - lastWriteAt;
17799
+ if (elapsed >= throttleMs) {
17800
+ writePending();
17801
+ return;
17802
+ }
17803
+ timer = setTimeout(() => {
17804
+ timer = null;
17805
+ writePending();
17806
+ }, throttleMs - elapsed);
17807
+ };
17808
+ const enqueue = (slideId, elementId) => {
17809
+ if (!doc || !factories || !elementId) {
17810
+ return null;
17811
+ }
17812
+ const key = `${slideId ?? ""}\0${elementId}`;
17813
+ let entry = pending.get(key);
17814
+ if (!entry) {
17815
+ entry = { slideId, elementId };
17816
+ pending.set(key, entry);
17817
+ }
17818
+ return entry;
17819
+ };
17820
+ return {
17821
+ configure(nextDoc, nextFactories) {
17822
+ if (nextDoc === doc && nextFactories === factories) {
17823
+ return;
17824
+ }
17825
+ cancelTimer();
17826
+ pending.clear();
17827
+ doc = nextDoc;
17828
+ factories = nextFactories;
17829
+ lastWriteAt = Number.NEGATIVE_INFINITY;
17830
+ },
17831
+ isActive() {
17832
+ return doc !== null && factories !== null;
17833
+ },
17834
+ patchGeometry(slideId, elementId, geometry) {
17835
+ const entry = enqueue(slideId, elementId);
17836
+ if (!entry) {
17837
+ return;
17838
+ }
17839
+ entry.geometry = { ...entry.geometry, ...geometry };
17840
+ schedule();
17841
+ },
17842
+ patchText(slideId, elementId, text, source) {
17843
+ const entry = enqueue(slideId, elementId);
17844
+ if (!entry) {
17845
+ return;
17846
+ }
17847
+ entry.text = { value: text, source: source ?? entry.text?.source ?? {} };
17848
+ schedule();
17849
+ },
17850
+ flush() {
17851
+ cancelTimer();
17852
+ writePending();
17853
+ },
17854
+ dispose() {
17855
+ cancelTimer();
17856
+ pending.clear();
17857
+ doc = null;
17858
+ factories = null;
17859
+ }
17860
+ };
17861
+ }
17862
+ function publishLiveInlineText(patcher, slide, elementId, text) {
17863
+ if (!patcher || !slide || !elementId || !patcher.isActive()) {
17864
+ return;
17865
+ }
17866
+ const element = slide.elements.find((el) => el.id === elementId);
17867
+ if (!element || !hasTextProperties(element)) {
17868
+ return;
17869
+ }
17870
+ patcher.patchText(slide.id, elementId, text, {
17871
+ textSegments: element.textSegments,
17872
+ textStyle: element.textStyle
17873
+ });
17874
+ }
17875
+ function publishLiveGeometry(patcher, slideId, elementId, geometry) {
17876
+ if (!patcher || !elementId || !patcher.isActive()) {
17877
+ return;
17878
+ }
17879
+ patcher.patchGeometry(slideId, elementId, geometry);
17880
+ }
17712
17881
  function createSyncGate(onOpen, graceMs = INITIAL_SYNC_GRACE_MS) {
17713
17882
  let opened = false;
17714
17883
  let timer = null;
@@ -17741,6 +17910,144 @@ function createSyncGate(onOpen, graceMs = INITIAL_SYNC_GRACE_MS) {
17741
17910
  }
17742
17911
  };
17743
17912
  }
17913
+ var COLLAB_LEAVE_MESSAGE = "pptx-viewer:collab-leave";
17914
+ function resolveTarget(target) {
17915
+ if (target) {
17916
+ return target;
17917
+ }
17918
+ const scope = globalThis;
17919
+ return scope.window ?? null;
17920
+ }
17921
+ function isLeaveMessage(data) {
17922
+ if (typeof data === "string") {
17923
+ return data === COLLAB_LEAVE_MESSAGE;
17924
+ }
17925
+ if (typeof data !== "object" || data === null) {
17926
+ return false;
17927
+ }
17928
+ return data.type === COLLAB_LEAVE_MESSAGE;
17929
+ }
17930
+ function registerCollaborationTeardown(options) {
17931
+ const target = resolveTarget(options.target);
17932
+ if (!target) {
17933
+ return () => {
17934
+ };
17935
+ }
17936
+ const { leave, rejoin } = options;
17937
+ let left = false;
17938
+ const doLeave = () => {
17939
+ if (left) {
17940
+ return;
17941
+ }
17942
+ left = true;
17943
+ leave();
17944
+ };
17945
+ const onPageHide = (event) => {
17946
+ if (event.persisted === true && !rejoin) {
17947
+ return;
17948
+ }
17949
+ doLeave();
17950
+ };
17951
+ const onBeforeUnload = () => {
17952
+ doLeave();
17953
+ };
17954
+ const onPageShow = (event) => {
17955
+ if (event.persisted !== true || !left || !rejoin) {
17956
+ return;
17957
+ }
17958
+ left = false;
17959
+ rejoin();
17960
+ };
17961
+ const onMessage = (event) => {
17962
+ if (isLeaveMessage(event.data)) {
17963
+ doLeave();
17964
+ }
17965
+ };
17966
+ target.addEventListener("pagehide", onPageHide);
17967
+ target.addEventListener("beforeunload", onBeforeUnload);
17968
+ target.addEventListener("pageshow", onPageShow);
17969
+ target.addEventListener("message", onMessage);
17970
+ return () => {
17971
+ target.removeEventListener("pagehide", onPageHide);
17972
+ target.removeEventListener("beforeunload", onBeforeUnload);
17973
+ target.removeEventListener("pageshow", onPageShow);
17974
+ target.removeEventListener("message", onMessage);
17975
+ };
17976
+ }
17977
+ function clearLocalAwareness(awareness) {
17978
+ awareness?.setLocalState?.(null);
17979
+ }
17980
+ var DEPARTURE_CHANNEL = "pptx-viewer:collab-departures";
17981
+ function removeAwarenessStatesLocally(awareness, clients) {
17982
+ const states = awareness?.states;
17983
+ if (!awareness || !states) {
17984
+ return [];
17985
+ }
17986
+ const removed = [];
17987
+ for (const clientId of clients) {
17988
+ if (states.delete(clientId)) {
17989
+ removed.push(clientId);
17990
+ }
17991
+ }
17992
+ if (removed.length > 0) {
17993
+ const change = { added: [], updated: [], removed };
17994
+ awareness.emit?.("change", [change, "peer-departed"]);
17995
+ awareness.emit?.("update", [change, "peer-departed"]);
17996
+ }
17997
+ return removed;
17998
+ }
17999
+ function readNotice(data, roomId, selfId) {
18000
+ if (typeof data !== "object" || data === null) {
18001
+ return null;
18002
+ }
18003
+ const notice = data;
18004
+ if (notice.channel !== DEPARTURE_CHANNEL || notice.roomId !== roomId) {
18005
+ return null;
18006
+ }
18007
+ if (typeof notice.clientId !== "number" || notice.clientId === selfId) {
18008
+ return null;
18009
+ }
18010
+ return notice.clientId;
18011
+ }
18012
+ function defaultFactory(name) {
18013
+ const scope = globalThis;
18014
+ if (!scope.BroadcastChannel) {
18015
+ return null;
18016
+ }
18017
+ return new scope.BroadcastChannel(name);
18018
+ }
18019
+ function createDepartureChannel(roomId, awareness, factory) {
18020
+ const channel = factory ? factory(DEPARTURE_CHANNEL) : defaultFactory(DEPARTURE_CHANNEL);
18021
+ if (!channel) {
18022
+ return { announce: () => {
18023
+ }, dispose: () => {
18024
+ } };
18025
+ }
18026
+ const selfId = awareness.clientID;
18027
+ channel.onmessage = (event) => {
18028
+ const departed = readNotice(event.data, roomId, selfId);
18029
+ if (departed !== null) {
18030
+ removeAwarenessStatesLocally(awareness, [departed]);
18031
+ }
18032
+ };
18033
+ let closed = false;
18034
+ return {
18035
+ announce: () => {
18036
+ if (closed || typeof selfId !== "number") {
18037
+ return;
18038
+ }
18039
+ channel.postMessage({ channel: DEPARTURE_CHANNEL, roomId, clientId: selfId });
18040
+ },
18041
+ dispose: () => {
18042
+ if (closed) {
18043
+ return;
18044
+ }
18045
+ closed = true;
18046
+ channel.onmessage = null;
18047
+ channel.close();
18048
+ }
18049
+ };
18050
+ }
17744
18051
  var POSITION_THRESHOLD = 2;
17745
18052
  var SIZE_THRESHOLD = 2;
17746
18053
  function getElementText(element) {
@@ -27201,4 +27508,4 @@ function segmentFrameCount(durationMs, fps) {
27201
27508
  return Math.max(1, Math.ceil(durationMs / (1e3 / fps)));
27202
27509
  }
27203
27510
 
27204
- export { ACTION_BUTTON_PRESETS, ARTISTIC_EFFECTS, AVATAR_COLOR_SWATCHES, BACKSTAGE_NAV, BACKSTAGE_TEMPLATES, BROADCAST_THROTTLE_MS, CATEGORIES, CONNECTION_TIMEOUT_MS, DEFAULT_BROADCAST_SERVER_URL, DEFAULT_COLOR_CHANGE_TOLERANCE, DEFAULT_INSERT_CHART_TYPE, DEFAULT_QUICK_ACCESS_COMMAND_IDS, DEFAULT_ROW_HEIGHT, DEFAULT_VIEWER_OPTIONS, DEFAULT_VIEWER_PROFILE, DEFAULT_VIRTUAL_OVERSCAN, DIRECTIONAL_PRESETS, DUOTONE_PRESETS, EQUATION_TEMPLATES, EXPORT_ASSEMBLING_PERCENT, EXPORT_DONE_PERCENT, FILL_MODE_OPTIONS, GRADIENT_TYPE_OPTIONS, HANDOUT_OPTIONS, INK_REPLAY_KEYFRAMES, INSERT_CHART_TYPES, LBL, LOCAL_SYNC_ORIGIN, MOBILE_BREAKPOINT, NOTES_FONT_SIZE_DEFAULT, NOTES_FONT_SIZE_MAX, NOTES_FONT_SIZE_MIN, NOTES_FONT_SIZE_STEP, NUM, PATTERN_OPTIONS, PRESENTATION_CHANNEL_NAME, PRESENTATION_HASH, PRESENTATION_MESSAGE_ORIGIN, PRESENTATION_NONCE_KEY, PRESETS, PresentationAnimationController, QUICK_ACCESS_COMMAND_CATALOG, RULER_FONT_SIZE, RULER_THICKNESS, SECTION_HEADING, SEL, SHAPE_PRESET_DEFS, SHORTCUT_REFERENCE_ITEMS, SLIDE_TRANSITION_KEYFRAMES, SLIDE_VIRTUALIZATION_THRESHOLD, TABLET_BREAKPOINT, TABLE_STYLE_PRESETS, TAB_ROW_ACTION_CLASSES, TEXT_BUILD_ID_SEP, THEME_CATALOG, THEME_COLOR_LABELS, TITLE_BAR_CLASSES, TITLE_BAR_DEFAULT_FILE_KEY, TOOLBAR_TABS, VIEWER_OPTIONS_TABS, VIEWER_PREFS_STORAGE_KEY, WEBM_MIME_CANDIDATES, activateModalFocus, addQuickAccessCommand, addSection, alignElements, appendPresentationInkPoint, apply3dEffects, applyAcceptAllSlides, applyAcceptSlide, applyCaseTransformToSegments, applyChartBuildReveal, applyColorChange, applyDuotone, applyFormatToElement, applyPreferenceToOptions, applyRehearsalTimings, applyReroutedConnectors, applyResize, applyStyleToSelectedSegments, availableQuickAccessCommands, bringForward, bringToFront, build3DExtrusionData, buildBroadcastViewerUrl, buildCacheKey, buildChartViewModel, buildCollaborationShareUrl, buildCreateCollaborationConfig, buildCssGradientFromShapeStyle, buildDuotoneCacheKey, buildElementClipboardPayload, buildGlowBoxShadow, buildHandoutsHtml, buildInitialGuides, buildInnerShadowCssFromShapeStyle, buildJoinCollaborationConfig, buildMultiLayerShadowCss, buildNotesHtml, buildNotesPdfBytes, buildOutlineHtml, buildPatternFillCss, buildPresentationAudienceUrl, buildPreviewAnimation, buildPreviewElements, buildPrintDocument, buildPrintHtmlDocument, buildReflectionCss, buildShadowCssFromShapeStyle, buildSlidesHtml, buildSlidesPdfBytes, buildSmartArt3DModel, buildSmartArtA11y, buildSmartArtPresetData, buildSummaryZoomView, buildTextBody3DSceneStyle, buildTextFillCss, buildTextReflectionCss, buildTextRunFilterChain, buildTextShadowCss, buildThemeColorGrid, buildUserFontFaceStyles, canvasToJpegData, cell3DBevelCss, chartPartToAttrs, clampCropValue, clampNotesFontSize, clampPercent, clampUnitInterval, clearAllLocalViewerData, clearAudienceContent, clearStoredViewerPrefs, cloneElementForPaste, cloneHistorySnapshot, cloneSlide, cloneTemplateElementsBySlideId, collectImagePaths, collectMediaElements, collectUsedFonts, colorWithOpacity, comparePresentation, computeAllNotesPages, computeAutoFitTextStyle, computeColumnBoundaries, computeEntranceAnimationDelay, computeHandoutLayout, computeInlineEditorRect, computeKeyboardInset, computeLayout, computeLayoutOptions, computeMarqueeHitIds, computeMergeCellDown, computeMergeCellRight, computeResizedColumnWidths, computeResizedRowHeight, computeScrollDelta, computeSelectionRect, computeSmartArtLayout, computeSnapToShape, computeSplitCell, computeValueRange, computeValueRangeForChart, computeVirtualRange, convertLatexToOmml, convertOmmlToLatex, convertOmmlToMathMl, copyFormatFromElement, createBackstagePresentation, createBlankSlide, createDefaultChartElement, createInitialPresentationSnapshot, createPresentationSessionId, createPresenterTimer, createSyncGate, createTouchGestureRecognizer, createViewerOptionsStore, defaultCssVars, defaultRadius, defaultThemeColors, deleteAutosaveSnapshot, deleteSection, deleteTableColumn, deleteTableRow, derivePresenceList, detectOrientation, detectTouchDevice, distributeElements, downloadBlob, downloadDataUrl, dragAnchorViewY, dragValueForPart, encodeGif, erasePresentationInkAt, extractPathPoints, filterCommands, findChartPartTarget, findSmartArtNodeText, formatAxisValue, formatAxisValueWithUnits, formatBackstageDate, formatBackstageSize, formatBytes, formatCommentTimestamp, formatElapsed, formatMobileElapsed, formatRelativeTime, formatSlideCounter, formatTime, formatVersionTimestamp, fpsToFrameIntervalMs, generateBroadcastRoomId, generateElementId, generateLogTicks, generateNoteLineCount, generatePackageReadme, generatePressureCircles, generateTicks, getAnimationInitialStyle, getAriaLabel, getAriaRole, getAriaRoleDescription, getCachedResult, getCellDiagonalBorders, getChartStylePalette, getCommentMarkerPosition, getCompoundLineBorderWidth, getCompoundLineBoxShadow, getCompoundLineOffsets, getCompoundLineWidths, getComputedEffectStyle, getConnectionSites, getContentPartReplayStyles, getCssBorderDashStyle, getDisplayUnitLabel, getDuotoneCachedResult, getEffectDagFilter, getElementLabel, getElementTransform, getElementTransformWithoutRotation, getGroupChildParentFill, getImageColorWashStyle, getImageEffectsFilter, getImageEffectsOpacity, getImageSvgFilters, getInkReplayStyles, getInlineEditorSelection, getKinsokuLineBreakStyles, getLocalStorageUsageSummary, getNotesPrintableArea, getOleBadgeLabel, getOleTypeColor, getOleTypeLabel, getPatternSvg, getPendingSelectionRestore, getPrintableArea, getResolvedShapeClipPath, getRoundRectRadiusPx, getSecondaryValueAxis, getShapeAdjustmentHandleDescriptor, getSlideBackgroundStyle, getSlideTransitionAnimations, getSoftEdgeFilterId, getSoftEdgeSvgFilter, getSvgStrokeDasharray, getTextAlphaOpacity, getTextCompensationTransform, getWarpPath, groupElements, groupIntoParagraphs, groupSlidesBySection, hasCopyableFormat, hasDistinctScriptFonts, hasPressureVariation, hexToRgbChannels, insertTableColumn, insertTableRow, isActionHidden, isBrowserOpenableMime, isCellInRect, isEditableTextElement, isExportAbortError, isFirstSlide, isKeyboardOpen, isLastSlide, isMixedContentBlocked, isMobileViewport, isPpactionUrl, isPresentationSessionMessage, isTemplateElement, isTemplateElementId, isUrlSafe, listAutosaveSnapshots, listBackstageRecentFiles, loadAudienceContent, makeCloneId, makeSlideId, mergeAdditiveSelection, mergeCells, mergePresentationSnapshot, mobileElapsedSince, mobileSlideCounter, mountModel3D, mountSurfaceChart3D, movePresenterPointer, moveQuickAccessCommand, moveSectionDown, moveSectionUp, moveSlidesToSection, newTableElement, normalizeColorsForCapture, normalizeHexColor, normalizeStrokeDashType, normalizeValue, notesSegmentsToSpans, observeYDocSlides, ooxmlDashToCssBorderStyle, openPptxFile, openUrlInNewTab, paletteColor, parseDrawingColor, parseDrawingColorOpacity, parseMediaCommand, parsePpactionUrl, pickSupportedMimeType, placeAudienceWindow, preprocessCssForCapture, presentationInkPath, presenterElapsed, pressuresToWidths, printPropertiesFrameSlides, printPropertiesSlidesPerPage, readBackstageRecentFile, readSlidesFromYDoc, readStoredViewerPrefs, readViewportMetrics, rebuildDrawingShapesIfCleared, reconcileSlidesInYDoc, recordProgressPercent, rectToCells, remapTextToSegments, removeQuickAccessCommand, renameSection, rerouteConnectorsForMovedElements, resetPresenterTimer, resolveAudienceScreenPlacement, resolveCssTextAlign, resolveDrawingShapeNodeId, resolveFontForScript, resolveFontRefIdx, resolveGroupChildFill, resolveInkColor, resolveInkOpacity, resolveInkWidth, resolveLineHeight, resolveOleType, resolveParagraphAlign, resolveParagraphRtl, resolvePictureBullet, resolveProfileInitial, resolveRegionCode, resolveThemeCatalogEntry, resolveTitleBarStatusKey, resolveTransitionDurationMs, resolveTransportForServerUrl, resolveUnderlineDecorationStyle, resolveViewerAddinRows, restoreSegmentSelection, revealedSmartArtNodeCount, safeOpenUrl, sanitizeColor, sanitizeDownloadFilename, sanitizeMathMl, saveAutosaveSnapshot, saveViewerProfile, scanAvailableFontFamilies, segmentByScript, segmentFrameCount, sendBackward, sendToBack, sequentialColorScale, seriesColor, setCachedResult, setDuotoneCachedResult, setPendingSelectionRestore, shadeColor2, shouldAutoFollowBroadcaster, shouldCommitSmartArtNodeText, shouldConfirmExternalHyperlink, shouldLoopContinuously, shouldUseSvgWarp, slideProgressPercent, slideStatusLabel, snapBoxToGrid, splitCell, splitSeriesByAxis, stepPresenterZoom, storeAudienceContent, substituteFieldText, svgLineCap, swapPresentationWindows, themeToCssVars, tintColor2, toCssTextOrientation, toCssVerticalDirection, toCssWritingMode, togglePresenterTimer, transformTextCase, validateRoomId, valueToY, vermilionDarkColors, vermilionDarkTheme, vermilionLightColors, vermilionLightTheme, vermilionRadius, viewerOptionsToPreferences, withChartPointValue, withChartTitle, withFrameSlides, withSlidesPerPage, writeStoredViewerPrefs };
27511
+ export { ACTION_BUTTON_PRESETS, ARTISTIC_EFFECTS, AVATAR_COLOR_SWATCHES, BACKSTAGE_NAV, BACKSTAGE_TEMPLATES, BROADCAST_THROTTLE_MS, CATEGORIES, CONNECTION_TIMEOUT_MS, DEFAULT_BROADCAST_SERVER_URL, DEFAULT_COLOR_CHANGE_TOLERANCE, DEFAULT_INSERT_CHART_TYPE, DEFAULT_QUICK_ACCESS_COMMAND_IDS, DEFAULT_ROW_HEIGHT, DEFAULT_VIEWER_OPTIONS, DEFAULT_VIEWER_PROFILE, DEFAULT_VIRTUAL_OVERSCAN, DIRECTIONAL_PRESETS, DUOTONE_PRESETS, EQUATION_TEMPLATES, EXPORT_ASSEMBLING_PERCENT, EXPORT_DONE_PERCENT, FILL_MODE_OPTIONS, GRADIENT_TYPE_OPTIONS, HANDOUT_OPTIONS, INK_REPLAY_KEYFRAMES, INSERT_CHART_TYPES, LBL, LOCAL_SYNC_ORIGIN, MOBILE_BREAKPOINT, NOTES_FONT_SIZE_DEFAULT, NOTES_FONT_SIZE_MAX, NOTES_FONT_SIZE_MIN, NOTES_FONT_SIZE_STEP, NUM, PATTERN_OPTIONS, PRESENTATION_CHANNEL_NAME, PRESENTATION_HASH, PRESENTATION_MESSAGE_ORIGIN, PRESENTATION_NONCE_KEY, PRESETS, PresentationAnimationController, QUICK_ACCESS_COMMAND_CATALOG, RULER_FONT_SIZE, RULER_THICKNESS, SECTION_HEADING, SEL, SHAPE_PRESET_DEFS, SHORTCUT_REFERENCE_ITEMS, SLIDE_TRANSITION_KEYFRAMES, SLIDE_VIRTUALIZATION_THRESHOLD, TABLET_BREAKPOINT, TABLE_STYLE_PRESETS, TAB_ROW_ACTION_CLASSES, TEXT_BUILD_ID_SEP, THEME_CATALOG, THEME_COLOR_LABELS, TITLE_BAR_CLASSES, TITLE_BAR_DEFAULT_FILE_KEY, TOOLBAR_TABS, VIEWER_OPTIONS_TABS, VIEWER_PREFS_STORAGE_KEY, WEBM_MIME_CANDIDATES, activateModalFocus, addQuickAccessCommand, addSection, alignElements, appendPresentationInkPoint, apply3dEffects, applyAcceptAllSlides, applyAcceptSlide, applyCaseTransformToSegments, applyChartBuildReveal, applyColorChange, applyDuotone, applyFormatToElement, applyPreferenceToOptions, applyRehearsalTimings, applyReroutedConnectors, applyResize, applyStyleToSelectedSegments, availableQuickAccessCommands, bringForward, bringToFront, build3DExtrusionData, buildBroadcastViewerUrl, buildCacheKey, buildChartViewModel, buildCollaborationShareUrl, buildCreateCollaborationConfig, buildCssGradientFromShapeStyle, buildDuotoneCacheKey, buildElementClipboardPayload, buildGlowBoxShadow, buildHandoutsHtml, buildInitialGuides, buildInnerShadowCssFromShapeStyle, buildJoinCollaborationConfig, buildMultiLayerShadowCss, buildNotesHtml, buildNotesPdfBytes, buildOutlineHtml, buildPatternFillCss, buildPresentationAudienceUrl, buildPreviewAnimation, buildPreviewElements, buildPrintDocument, buildPrintHtmlDocument, buildReflectionCss, buildShadowCssFromShapeStyle, buildSlidesHtml, buildSlidesPdfBytes, buildSmartArt3DModel, buildSmartArtA11y, buildSmartArtPresetData, buildSummaryZoomView, buildTextBody3DSceneStyle, buildTextFillCss, buildTextReflectionCss, buildTextRunFilterChain, buildTextShadowCss, buildThemeColorGrid, buildUserFontFaceStyles, canvasToJpegData, cell3DBevelCss, chartPartToAttrs, clampCropValue, clampNotesFontSize, clampPercent, clampUnitInterval, clearAllLocalViewerData, clearAudienceContent, clearLocalAwareness, clearStoredViewerPrefs, cloneElementForPaste, cloneHistorySnapshot, cloneSlide, cloneTemplateElementsBySlideId, collectImagePaths, collectMediaElements, collectUsedFonts, colorWithOpacity, comparePresentation, computeAllNotesPages, computeAutoFitTextStyle, computeColumnBoundaries, computeEntranceAnimationDelay, computeHandoutLayout, computeInlineEditorRect, computeKeyboardInset, computeLayout, computeLayoutOptions, computeMarqueeHitIds, computeMergeCellDown, computeMergeCellRight, computeResizedColumnWidths, computeResizedRowHeight, computeScrollDelta, computeSelectionRect, computeSmartArtLayout, computeSnapToShape, computeSplitCell, computeValueRange, computeValueRangeForChart, computeVirtualRange, convertLatexToOmml, convertOmmlToLatex, convertOmmlToMathMl, copyFormatFromElement, createBackstagePresentation, createBlankSlide, createCollaborationLivePatcher, createDefaultChartElement, createDepartureChannel, createInitialPresentationSnapshot, createPresentationSessionId, createPresenterTimer, createSyncGate, createTouchGestureRecognizer, createViewerOptionsStore, defaultCssVars, defaultRadius, defaultThemeColors, deleteAutosaveSnapshot, deleteSection, deleteTableColumn, deleteTableRow, derivePresenceList, detectOrientation, detectTouchDevice, distributeElements, downloadBlob, downloadDataUrl, dragAnchorViewY, dragValueForPart, encodeGif, erasePresentationInkAt, extractPathPoints, filterCommands, findChartPartTarget, findSmartArtNodeText, formatAxisValue, formatAxisValueWithUnits, formatBackstageDate, formatBackstageSize, formatBytes, formatCommentTimestamp, formatElapsed, formatMobileElapsed, formatRelativeTime, formatSlideCounter, formatTime, formatVersionTimestamp, fpsToFrameIntervalMs, generateBroadcastRoomId, generateElementId, generateLogTicks, generateNoteLineCount, generatePackageReadme, generatePressureCircles, generateTicks, getAnimationInitialStyle, getAriaLabel, getAriaRole, getAriaRoleDescription, getCachedResult, getCellDiagonalBorders, getChartStylePalette, getCommentMarkerPosition, getCompoundLineBorderWidth, getCompoundLineBoxShadow, getCompoundLineOffsets, getCompoundLineWidths, getComputedEffectStyle, getConnectionSites, getContentPartReplayStyles, getCssBorderDashStyle, getDisplayUnitLabel, getDuotoneCachedResult, getEffectDagFilter, getElementLabel, getElementTransform, getElementTransformWithoutRotation, getGroupChildParentFill, getImageColorWashStyle, getImageEffectsFilter, getImageEffectsOpacity, getImageSvgFilters, getInkReplayStyles, getInlineEditorSelection, getKinsokuLineBreakStyles, getLocalStorageUsageSummary, getNotesPrintableArea, getOleBadgeLabel, getOleTypeColor, getOleTypeLabel, getPatternSvg, getPendingSelectionRestore, getPrintableArea, getResolvedShapeClipPath, getRoundRectRadiusPx, getSecondaryValueAxis, getShapeAdjustmentHandleDescriptor, getSlideBackgroundStyle, getSlideTransitionAnimations, getSoftEdgeFilterId, getSoftEdgeSvgFilter, getSvgStrokeDasharray, getTextAlphaOpacity, getTextCompensationTransform, getWarpPath, groupElements, groupIntoParagraphs, groupSlidesBySection, hasCopyableFormat, hasDistinctScriptFonts, hasPressureVariation, hexToRgbChannels, insertTableColumn, insertTableRow, isActionHidden, isBrowserOpenableMime, isCellInRect, isEditableTextElement, isExportAbortError, isFirstSlide, isKeyboardOpen, isLastSlide, isMixedContentBlocked, isMobileViewport, isPpactionUrl, isPresentationSessionMessage, isTemplateElement, isTemplateElementId, isUrlSafe, listAutosaveSnapshots, listBackstageRecentFiles, loadAudienceContent, makeCloneId, makeSlideId, mergeAdditiveSelection, mergeCells, mergePresentationSnapshot, mobileElapsedSince, mobileSlideCounter, mountModel3D, mountSurfaceChart3D, movePresenterPointer, moveQuickAccessCommand, moveSectionDown, moveSectionUp, moveSlidesToSection, newTableElement, normalizeColorsForCapture, normalizeHexColor, normalizeStrokeDashType, normalizeValue, notesSegmentsToSpans, observeYDocSlides, ooxmlDashToCssBorderStyle, openPptxFile, openUrlInNewTab, paletteColor, parseDrawingColor, parseDrawingColorOpacity, parseMediaCommand, parsePpactionUrl, pickSupportedMimeType, placeAudienceWindow, preprocessCssForCapture, presentationInkPath, presenterElapsed, pressuresToWidths, printPropertiesFrameSlides, printPropertiesSlidesPerPage, publishLiveGeometry, publishLiveInlineText, readBackstageRecentFile, readSlidesFromYDoc, readStoredViewerPrefs, readViewportMetrics, rebuildDrawingShapesIfCleared, reconcileSlidesInYDoc, recordProgressPercent, rectToCells, registerCollaborationTeardown, remapTextToSegments, removeQuickAccessCommand, renameSection, rerouteConnectorsForMovedElements, resetPresenterTimer, resolveAudienceScreenPlacement, resolveCssTextAlign, resolveDrawingShapeNodeId, resolveFontForScript, resolveFontRefIdx, resolveGroupChildFill, resolveInkColor, resolveInkOpacity, resolveInkWidth, resolveLineHeight, resolveOleType, resolveParagraphAlign, resolveParagraphRtl, resolvePictureBullet, resolveProfileInitial, resolveRegionCode, resolveThemeCatalogEntry, resolveTitleBarStatusKey, resolveTransitionDurationMs, resolveTransportForServerUrl, resolveUnderlineDecorationStyle, resolveViewerAddinRows, restoreSegmentSelection, revealedSmartArtNodeCount, safeOpenUrl, sanitizeColor, sanitizeDownloadFilename, sanitizeMathMl, saveAutosaveSnapshot, saveViewerProfile, scanAvailableFontFamilies, segmentByScript, segmentFrameCount, sendBackward, sendToBack, sequentialColorScale, seriesColor, setCachedResult, setDuotoneCachedResult, setPendingSelectionRestore, shadeColor2, shouldAutoFollowBroadcaster, shouldCommitSmartArtNodeText, shouldConfirmExternalHyperlink, shouldLoopContinuously, shouldUseSvgWarp, slideProgressPercent, slideStatusLabel, snapBoxToGrid, splitCell, splitSeriesByAxis, stepPresenterZoom, storeAudienceContent, substituteFieldText, svgLineCap, swapPresentationWindows, themeToCssVars, tintColor2, toCssTextOrientation, toCssVerticalDirection, toCssWritingMode, togglePresenterTimer, transformTextCase, validateRoomId, valueToY, vermilionDarkColors, vermilionDarkTheme, vermilionLightColors, vermilionLightTheme, vermilionRadius, viewerOptionsToPreferences, withChartPointValue, withChartTitle, withFrameSlides, withSlidesPerPage, writeStoredViewerPrefs };
Binary file