pptx-vue-viewer 1.1.83 → 1.1.84

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 (37) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/dist/gif-encoder-BN5J0GRM.js +2 -0
  3. package/dist/gif-encoder-BN5J0GRM.js.br +3 -0
  4. package/dist/gif-encoder-BN5J0GRM.js.gz +0 -0
  5. package/dist/gif-encoder-CSeD13Pr.cjs +2 -0
  6. package/dist/gif-encoder-CSeD13Pr.cjs.br +0 -0
  7. package/dist/gif-encoder-CSeD13Pr.cjs.gz +0 -0
  8. package/dist/index.cjs +1 -1
  9. package/dist/index.cjs.br +0 -0
  10. package/dist/index.cjs.gz +0 -0
  11. package/dist/index.js +1 -1
  12. package/dist/index.js.br +0 -0
  13. package/dist/index.js.gz +0 -0
  14. package/dist/viewer/composables/collaboration-provider.d.ts +9 -0
  15. package/dist/viewer/composables/collaboration-provider.d.ts.map +1 -1
  16. package/dist/viewer/composables/useCollaboration.d.ts.map +1 -1
  17. package/dist/viewer/index.cjs +1 -1
  18. package/dist/viewer/index.cjs.br +0 -0
  19. package/dist/viewer/index.cjs.gz +0 -0
  20. package/dist/viewer/index.js +1 -1
  21. package/dist/viewer/index.js.br +0 -0
  22. package/dist/viewer/index.js.gz +0 -0
  23. package/dist/{viewer-D1YS0zEs.cjs → viewer-DVpqCEBV.cjs} +58 -29
  24. package/dist/viewer-DVpqCEBV.cjs.br +0 -0
  25. package/dist/{viewer-D1YS0zEs.cjs.gz → viewer-DVpqCEBV.cjs.gz} +0 -0
  26. package/dist/{viewer-XosufPBO.js → viewer-tdtFidOK.js} +58 -29
  27. package/dist/viewer-tdtFidOK.js.br +0 -0
  28. package/dist/{viewer-XosufPBO.js.gz → viewer-tdtFidOK.js.gz} +0 -0
  29. package/package.json +1 -1
  30. package/dist/gif-encoder-hx9qCGr-.js +0 -2
  31. package/dist/gif-encoder-hx9qCGr-.js.br +0 -0
  32. package/dist/gif-encoder-hx9qCGr-.js.gz +0 -0
  33. package/dist/gif-encoder-mleW16Dh.cjs +0 -2
  34. package/dist/gif-encoder-mleW16Dh.cjs.br +0 -0
  35. package/dist/gif-encoder-mleW16Dh.cjs.gz +0 -0
  36. package/dist/viewer-D1YS0zEs.cjs.br +0 -0
  37. package/dist/viewer-XosufPBO.js.br +0 -0
package/CHANGELOG.md CHANGED
@@ -4,6 +4,16 @@ 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
+ ## [1.1.83](https://github.com/ChristopherVR/pptx-viewer/releases/tag/pptx-vue-viewer@1.1.83) - 2026-07-03
8
+
9
+ ### Features
10
+
11
+ - **vue:** Interoperable presence schema, webrtc transport, granular sync (by @ChristopherVR) ([9b53df5](https://github.com/ChristopherVR/pptx-viewer/commit/9b53df5e9487c5fbb16e78f40f5e746752eb4574))
12
+
13
+ ### Dependencies
14
+
15
+ - **deps:** Declare yjs, y-websocket, and y-webrtc across bindings (by @ChristopherVR) ([27a2849](https://github.com/ChristopherVR/pptx-viewer/commit/27a2849da755a0902296dcd59557c1329a1cbadf))
16
+
7
17
  ## [1.1.81](https://github.com/ChristopherVR/pptx-viewer/releases/tag/pptx-vue-viewer@1.1.81) - 2026-07-03
8
18
 
9
19
  ### Features
@@ -0,0 +1,2 @@
1
+ import { H as r } from "./viewer-tdtFidOK.js";
2
+ export { r as encodeGif };
@@ -0,0 +1,3 @@
1
+ �$�import { H as r } from "./viewer-tdtFidOK.js";
2
+ export { r as encodeGif };
3
+ 
Binary file
@@ -0,0 +1,2 @@
1
+ const e = require("./viewer-DVpqCEBV.cjs");
2
+ exports.encodeGif = e.encodeGif;
Binary file
Binary file
package/dist/index.cjs CHANGED
@@ -1,3 +1,3 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const e = require("./viewer-D1YS0zEs.cjs");
2
+ const e = require("./viewer-DVpqCEBV.cjs");
3
3
  exports.AUDIENCE_HASH = e.AUDIENCE_HASH, exports.ElementRenderer = e.ElementRenderer_default, exports.PowerPointViewer = e.PowerPointViewer_default, exports.SlideCanvas = e.SlideCanvas_default, exports.SlideStage = e.SlideStage_default, exports.clearAudienceContent = e.clearAudienceContent, exports.cn = e.cn, exports.defaultCssVars = e.defaultCssVars, exports.defaultRadius = e.defaultRadius, exports.defaultThemeColors = e.defaultThemeColors, exports.isAudienceTab = e.isAudienceTab, exports.loadAudienceContent = e.loadAudienceContent, exports.provideViewerTheme = e.provideViewerTheme, exports.storeAudienceContent = e.storeAudienceContent, exports.themeToCssVars = e.themeToCssVars, exports.useThemeStyle = e.useThemeStyle, exports.useViewerTheme = e.useViewerTheme;
package/dist/index.cjs.br CHANGED
Binary file
package/dist/index.cjs.gz CHANGED
Binary file
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- import { B as a, F as s, G as e, N as r, P as i, V as o, a as t, d as n, f as d, i as l, n as m, o as p, p as w, r as P, t as S, u as f, z as v } from "./viewer-XosufPBO.js";
1
+ import { B as a, F as s, G as e, N as r, P as i, V as o, a as t, d as n, f as d, i as l, n as m, o as p, p as w, r as P, t as S, u as f, z as v } from "./viewer-tdtFidOK.js";
2
2
  export { S as AUDIENCE_HASH, w as ElementRenderer, p as PowerPointViewer, f as SlideCanvas, d as SlideStage, m as clearAudienceContent, n as cn, v as defaultCssVars, a as defaultRadius, o as defaultThemeColors, P as isAudienceTab, l as loadAudienceContent, r as provideViewerTheme, t as storeAudienceContent, e as themeToCssVars, i as useThemeStyle, s as useViewerTheme };
package/dist/index.js.br CHANGED
Binary file
package/dist/index.js.gz CHANGED
Binary file
@@ -12,6 +12,15 @@ export interface CollabProviderHandle {
12
12
  onStatus: (cb: (connected: boolean) => void) => void;
13
13
  /** Whether the transport reports a connection immediately after creation. */
14
14
  connectedNow: boolean;
15
+ /**
16
+ * Subscribe to the provider's initial-document-sync confirmation. Websocket
17
+ * fires reliably once the server sync completes; webrtc only fires when a
18
+ * peer syncs with us (a lone fresh-room peer never receives one, so callers
19
+ * pair this with a grace timer, see the shared createSyncGate).
20
+ */
21
+ onSynced: (cb: () => void) => void;
22
+ /** Whether the provider already reports its initial sync as complete. */
23
+ syncedNow: boolean;
15
24
  /** Tear the provider down (disconnect + destroy). */
16
25
  destroy: () => void;
17
26
  }
@@ -1 +1 @@
1
- {"version":3,"file":"collaboration-provider.d.ts","sourceRoot":"","sources":["../../../src/viewer/composables/collaboration-provider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,KAAK,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAEtF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAE3D,wDAAwD;AACxD,MAAM,WAAW,oBAAoB;IACpC,yCAAyC;IACzC,SAAS,EAAE,aAAa,CAAC;IACzB;;;;OAIG;IACH,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,KAAK,IAAI,CAAC;IACrD,6EAA6E;IAC7E,YAAY,EAAE,OAAO,CAAC;IACtB,qDAAqD;IACrD,OAAO,EAAE,MAAM,IAAI,CAAC;CACpB;AAED,uDAAuD;AACvD,KAAK,SAAS,GAAG,qBAAqB,CAAC,cAAc,aAAa,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;AAE1F;;;;GAIG;AACH,wBAAsB,oBAAoB,CACzC,SAAS,EAAE,sBAAsB,EACjC,MAAM,EAAE,mBAAmB,EAC3B,GAAG,EAAE,SAAS,GACZ,OAAO,CAAC,oBAAoB,CAAC,CAmC/B"}
1
+ {"version":3,"file":"collaboration-provider.d.ts","sourceRoot":"","sources":["../../../src/viewer/composables/collaboration-provider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,KAAK,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAEtF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAE3D,wDAAwD;AACxD,MAAM,WAAW,oBAAoB;IACpC,yCAAyC;IACzC,SAAS,EAAE,aAAa,CAAC;IACzB;;;;OAIG;IACH,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,KAAK,IAAI,CAAC;IACrD,6EAA6E;IAC7E,YAAY,EAAE,OAAO,CAAC;IACtB;;;;;OAKG;IACH,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;IACnC,yEAAyE;IACzE,SAAS,EAAE,OAAO,CAAC;IACnB,qDAAqD;IACrD,OAAO,EAAE,MAAM,IAAI,CAAC;CACpB;AAED,uDAAuD;AACvD,KAAK,SAAS,GAAG,qBAAqB,CAAC,cAAc,aAAa,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;AAE1F;;;;GAIG;AACH,wBAAsB,oBAAoB,CACzC,SAAS,EAAE,sBAAsB,EACjC,MAAM,EAAE,mBAAmB,EAC3B,GAAG,EAAE,SAAS,GACZ,OAAO,CAAC,oBAAoB,CAAC,CAiD/B"}
@@ -1 +1 @@
1
- {"version":3,"file":"useCollaboration.d.ts","sourceRoot":"","sources":["../../../src/viewer/composables/useCollaboration.ts"],"names":[],"mappings":"AA4BA,OAAO,KAAK,EACX,uBAAuB,EACvB,sBAAsB,EAEtB,cAAc,EACd,MAAM,uBAAuB,CAAC;AAG/B,YAAY,EAAE,cAAc,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,CAAC;AAEhF,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,uBAAuB,GAAG,sBAAsB,CAuQzF"}
1
+ {"version":3,"file":"useCollaboration.d.ts","sourceRoot":"","sources":["../../../src/viewer/composables/useCollaboration.ts"],"names":[],"mappings":"AA6BA,OAAO,KAAK,EACX,uBAAuB,EACvB,sBAAsB,EAEtB,cAAc,EACd,MAAM,uBAAuB,CAAC;AAG/B,YAAY,EAAE,cAAc,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,CAAC;AAEhF,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,uBAAuB,GAAG,sBAAsB,CAkSzF"}
@@ -1,3 +1,3 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const e = require("../viewer-D1YS0zEs.cjs");
2
+ const e = require("../viewer-DVpqCEBV.cjs");
3
3
  exports.AUDIENCE_HASH = e.AUDIENCE_HASH, exports.ChartRenderer = e.ChartRenderer_default, exports.ConnectorRenderer = e.ConnectorRenderer_default, exports.DEFAULT_CANVAS_HEIGHT = e.DEFAULT_CANVAS_HEIGHT, exports.DEFAULT_CANVAS_WIDTH = e.DEFAULT_CANVAS_WIDTH, exports.DEFAULT_FILL_COLOR = e.DEFAULT_FILL_COLOR, exports.DEFAULT_STROKE_COLOR = e.DEFAULT_STROKE_COLOR, exports.DEFAULT_TEXT_COLOR = e.DEFAULT_TEXT_COLOR, exports.ElementRenderer = e.ElementRenderer_default, exports.EquationRenderer = e.EquationRenderer_default, exports.InkRenderer = e.InkRenderer_default, exports.Model3DRenderer = e.Model3DRenderer_default, exports.OleRenderer = e.OleRenderer_default, exports.PowerPointViewer = e.PowerPointViewer_default, exports.SlideCanvas = e.SlideCanvas_default, exports.SlideStage = e.SlideStage_default, exports.SmartArtRenderer = e.SmartArtRenderer_default, exports.TableRenderer = e.TableRenderer_default, exports.WordArtText = e.WordArtText_default, exports.ZoomRenderer = e.ZoomRenderer_default, exports.buildInitialGuides = e.buildInitialGuides, exports.clearAudienceContent = e.clearAudienceContent, exports.collectImagePaths = e.collectImagePaths, exports.collectMediaElements = e.collectMediaElements, exports.getContainerStyle = e.getContainerStyle, exports.getImageSrc = e.getImageSrc, exports.getResolvedShapeClipPath = e.getResolvedShapeClipPath, exports.getResolvedShapeClipPathFor = e.getResolvedShapeClipPathFor, exports.getShapeFillStrokeStyle = e.getShapeFillStrokeStyle, exports.getTextBlockStyle = e.getTextBlockStyle, exports.isAudienceTab = e.isAudienceTab, exports.loadAudienceContent = e.loadAudienceContent, exports.storeAudienceContent = e.storeAudienceContent, exports.useEditorHistory = e.useEditorHistory, exports.useEditorOperations = e.useEditorOperations, exports.useLoadContent = e.useLoadContent;
Binary file
Binary file
@@ -1,2 +1,2 @@
1
- import { A as a, C as s, D as e, E as r, I as n, L as d, M as o, O as t, R, S as i, T as l, U as m, W as S, _ as w, a as C, b as p, c as v, f as x, g as A, h as E, i as T, j as b, k as c, l as f, m as g, n as h, o as j, p as k, r as u, s as D, t as I, u as M, v as O, w as P, x as W, y as q } from "../viewer-XosufPBO.js";
1
+ import { A as a, C as s, D as e, E as r, I as n, L as d, M as o, O as t, R, S as i, T as l, U as m, W as S, _ as w, a as C, b as p, c as v, f as x, g as A, h as E, i as T, j as b, k as c, l as f, m as g, n as h, o as j, p as k, r as u, s as D, t as I, u as M, v as O, w as P, x as W, y as q } from "../viewer-tdtFidOK.js";
2
2
  export { I as AUDIENCE_HASH, s as ChartRenderer, i as ConnectorRenderer, t as DEFAULT_CANVAS_HEIGHT, c as DEFAULT_CANVAS_WIDTH, a as DEFAULT_FILL_COLOR, b as DEFAULT_STROKE_COLOR, o as DEFAULT_TEXT_COLOR, k as ElementRenderer, W as EquationRenderer, p as InkRenderer, q as Model3DRenderer, O as OleRenderer, j as PowerPointViewer, M as SlideCanvas, x as SlideStage, w as SmartArtRenderer, A as TableRenderer, E as WordArtText, g as ZoomRenderer, n as buildInitialGuides, h as clearAudienceContent, d as collectImagePaths, R as collectMediaElements, P as getContainerStyle, l as getImageSrc, m as getResolvedShapeClipPath, S as getResolvedShapeClipPathFor, r as getShapeFillStrokeStyle, e as getTextBlockStyle, u as isAudienceTab, T as loadAudienceContent, C as storeAudienceContent, f as useEditorHistory, v as useEditorOperations, D as useLoadContent };
Binary file
Binary file
@@ -31979,12 +31979,46 @@ function CZ(e) {
31979
31979
  getTemplateElements: e.getTemplateElements
31980
31980
  });
31981
31981
  function N() {
31982
+ if (!C || !E || x) return;
31983
+ const t = JSON.stringify(e.slides.value);
31984
+ t !== w && (w = t, function(e, t, n, o = "pptx-viewer:local-sync") {
31985
+ t.transact(() => {
31986
+ Xa(t.getArray(Da), e, {
31987
+ idOf: (e) => "string" == typeof e.id ? e.id : void 0,
31988
+ create: (e) => {
31989
+ const t = n.createMap();
31990
+ return Aa(e, t, n), t;
31991
+ },
31992
+ update: (e, t) => Ga(e, t, n)
31993
+ });
31994
+ }, o);
31995
+ }(e.slides.value, C, E), S && B.schedule(S));
31996
+ }
31997
+ const V = function(e, t = 3e3) {
31998
+ let n = !1, o = null;
31999
+ const r = () => {
32000
+ null !== o && (clearTimeout(o), o = null);
32001
+ }, a = () => {
32002
+ r(), n || (n = !0, e());
32003
+ };
32004
+ return {
32005
+ isOpen: () => n,
32006
+ arm: () => {
32007
+ r(), n || (o = setTimeout(a, t));
32008
+ },
32009
+ open: a,
32010
+ reset: () => {
32011
+ r(), n = !1;
32012
+ }
32013
+ };
32014
+ }(N);
32015
+ function M() {
31982
32016
  if (!m) return r.value = [], void (i.value = []);
31983
32017
  const { presences: t, cursors: n } = EZ(m.getStates(), g, SZ(e.canvasWidth), SZ(e.canvasHeight), h);
31984
32018
  r.value = t, i.value = n, null === l.value || t.some((e) => e.clientId === l.value) || (l.value = null);
31985
32019
  }
31986
- async function V(o) {
31987
- M(), S = o;
32020
+ async function D(o) {
32021
+ T(), S = o;
31988
32022
  try {
31989
32023
  ga(o.roomId);
31990
32024
  } catch {
@@ -32024,6 +32058,10 @@ function CZ(e) {
32024
32058
  awareness: o.awareness,
32025
32059
  onStatus: (e) => o.on("status", (t) => e(Boolean(t.connected))),
32026
32060
  connectedNow: !0,
32061
+ onSynced: (e) => o.on("synced", (t) => {
32062
+ !1 !== t?.synced && e();
32063
+ }),
32064
+ syncedNow: !1,
32027
32065
  destroy: () => o.destroy()
32028
32066
  };
32029
32067
  }
@@ -32034,11 +32072,15 @@ function CZ(e) {
32034
32072
  "connected" === t.status ? e(!0) : "disconnected" === t.status && e(!1);
32035
32073
  }),
32036
32074
  connectedNow: r.wsconnected,
32075
+ onSynced: (e) => r.on("sync", (t) => {
32076
+ t && e();
32077
+ }),
32078
+ syncedNow: r.synced,
32037
32079
  destroy: () => {
32038
32080
  r.disconnect(), r.destroy();
32039
32081
  }
32040
32082
  };
32041
- }(r, o, i), m = p.awareness, g = m.clientID ?? -1, f = function(e, t) {
32083
+ }(r, o, i), m = p.awareness, g = m.clientID ?? -1, V.reset(), p.onSynced(() => V.open()), p.syncedNow ? V.open() : V.arm(), f = function(e, t) {
32042
32084
  const n = {
32043
32085
  activeSlideIndex: 0,
32044
32086
  cursorX: 0,
@@ -32078,10 +32120,10 @@ function CZ(e) {
32078
32120
  userColor: e.userColor ?? o.userColor ?? "#4c8bf5",
32079
32121
  userAvatar: o.userAvatar,
32080
32122
  role: o.role
32081
- }), m.on("change", N), m.on("update", N), "webrtc" === r ? t.value = "connected" : (p.onStatus((e) => {
32123
+ }), m.on("change", M), m.on("update", M), "webrtc" === r ? t.value = "connected" : (p.onStatus((e) => {
32082
32124
  e ? (null !== b && (clearTimeout(b), b = null), t.value = "connected") : a.value && (t.value = "disconnected");
32083
32125
  }), p.connectedNow ? t.value = "connected" : b = setTimeout(() => {
32084
- b = null, "connected" !== t.value && (M(), t.value = "error");
32126
+ b = null, "connected" !== t.value && (T(), t.value = "error");
32085
32127
  }, 3e4)), y = function(e, t) {
32086
32128
  const n = e.getArray(Da);
32087
32129
  return n.observeDeep(t), () => n.unobserveDeep(t);
@@ -32090,30 +32132,17 @@ function CZ(e) {
32090
32132
  const r = Ra(C);
32091
32133
  0 !== r.length && (x = !0, e.onRemoteSlides(r), x = !1, w = JSON.stringify(r), B.schedule(o));
32092
32134
  }), v = (0, n.watch)(e.slides, () => {
32093
- if (!C || !E || x) return;
32094
- const t = JSON.stringify(e.slides.value);
32095
- t !== w && (w = t, function(e, t, n, o = "pptx-viewer:local-sync") {
32096
- t.transact(() => {
32097
- Xa(t.getArray(Da), e, {
32098
- idOf: (e) => "string" == typeof e.id ? e.id : void 0,
32099
- create: (e) => {
32100
- const t = n.createMap();
32101
- return Aa(e, t, n), t;
32102
- },
32103
- update: (e, t) => Ga(e, t, n)
32104
- });
32105
- }, o);
32106
- }(e.slides.value, C, E), B.schedule(o));
32107
- }, { deep: !1 }), k = setInterval(() => f?.flush(), 1e4), a.value = !0, N();
32135
+ V.isOpen() && N();
32136
+ }, { deep: !1 }), k = setInterval(() => f?.flush(), 1e4), a.value = !0, M();
32108
32137
  } catch {
32109
- M(), t.value = "error";
32138
+ T(), t.value = "error";
32110
32139
  }
32111
32140
  }
32112
32141
  }
32113
- function M() {
32114
- null !== b && (clearTimeout(b), b = null), null !== k && (clearInterval(k), k = null), B.cancel(), y?.(), y = null, v?.(), v = null, m?.off?.("change", N), m?.off?.("update", N), f?.dispose(), f = null, p?.destroy(), d?.destroy(), p = null, d = null, m = null, g = -1, h = 0, x = !1, E = null, C = null, w = "", t.value = "disconnected", a.value = !1, i.value = [], r.value = [], l.value = null;
32142
+ function T() {
32143
+ null !== b && (clearTimeout(b), b = null), null !== k && (clearInterval(k), k = null), B.cancel(), V.reset(), y?.(), y = null, v?.(), v = null, m?.off?.("change", M), m?.off?.("update", M), f?.dispose(), f = null, p?.destroy(), d?.destroy(), p = null, d = null, m = null, g = -1, h = 0, x = !1, E = null, C = null, w = "", t.value = "disconnected", a.value = !1, i.value = [], r.value = [], l.value = null;
32115
32144
  }
32116
- return (0, n.onScopeDispose)(M), {
32145
+ return (0, n.onScopeDispose)(T), {
32117
32146
  status: t,
32118
32147
  connected: o,
32119
32148
  cursors: i,
@@ -32123,10 +32152,10 @@ function CZ(e) {
32123
32152
  followedClientId: l,
32124
32153
  followedSlideIndex: c,
32125
32154
  broadcasterSlideIndex: u,
32126
- start: V,
32127
- stop: M,
32155
+ start: D,
32156
+ stop: T,
32128
32157
  retry: async function() {
32129
- S && await V(S);
32158
+ S && await D(S);
32130
32159
  },
32131
32160
  setCursor: function(e, t) {
32132
32161
  f?.update({
@@ -32138,7 +32167,7 @@ function CZ(e) {
32138
32167
  f?.update({ selectedElementId: e[0] });
32139
32168
  },
32140
32169
  setActiveSlide: function(e) {
32141
- h = Math.max(0, Math.floor(e)), f?.update({ activeSlideIndex: h }), N();
32170
+ h = Math.max(0, Math.floor(e)), f?.update({ activeSlideIndex: h }), M();
32142
32171
  },
32143
32172
  followUser: function(e) {
32144
32173
  l.value = e;
@@ -34426,7 +34455,7 @@ var mq = ["tabindex"], fq = {
34426
34455
  canvasSize: f,
34427
34456
  rasterizeSlide: wt
34428
34457
  }), Et = function(e) {
34429
- const { slideCount: t, rasterizeSlide: o } = e, r = e.loadGifEncoder ?? (async () => (await Promise.resolve().then(() => require("./gif-encoder-mleW16Dh.cjs"))).encodeGif), a = e.createRecorder ?? eq, l = e.createCanvas ?? (() => document.createElement("canvas")), i = e.downloadBlob ?? vi, s = (0, n.ref)(!1), c = (0, n.ref)(0);
34458
+ const { slideCount: t, rasterizeSlide: o } = e, r = e.loadGifEncoder ?? (async () => (await Promise.resolve().then(() => require("./gif-encoder-CSeD13Pr.cjs"))).encodeGif), a = e.createRecorder ?? eq, l = e.createCanvas ?? (() => document.createElement("canvas")), i = e.downloadBlob ?? vi, s = (0, n.ref)(!1), c = (0, n.ref)(0);
34430
34459
  return {
34431
34460
  exporting: s,
34432
34461
  progress: c,
Binary file
@@ -31978,12 +31978,46 @@ function P0(e) {
31978
31978
  getTemplateElements: e.getTemplateElements
31979
31979
  });
31980
31980
  function $() {
31981
+ if (!C || !S || h) return;
31982
+ const t = JSON.stringify(e.slides.value);
31983
+ t !== w && (w = t, function(e, t, n, o = "pptx-viewer:local-sync") {
31984
+ t.transact(() => {
31985
+ Gu(t.getArray(Pu), e, {
31986
+ idOf: (e) => "string" == typeof e.id ? e.id : void 0,
31987
+ create: (e) => {
31988
+ const t = n.createMap();
31989
+ return Ru(e, t, n), t;
31990
+ },
31991
+ update: (e, t) => Vu(e, t, n)
31992
+ });
31993
+ }, o);
31994
+ }(e.slides.value, C, S), k && M.schedule(k));
31995
+ }
31996
+ const T = function(e, t = 3e3) {
31997
+ let n = !1, o = null;
31998
+ const a = () => {
31999
+ null !== o && (clearTimeout(o), o = null);
32000
+ }, r = () => {
32001
+ a(), n || (n = !0, e());
32002
+ };
32003
+ return {
32004
+ isOpen: () => n,
32005
+ arm: () => {
32006
+ a(), n || (o = setTimeout(r, t));
32007
+ },
32008
+ open: r,
32009
+ reset: () => {
32010
+ a(), n = !1;
32011
+ }
32012
+ };
32013
+ }($);
32014
+ function F() {
31981
32015
  if (!d) return o.value = [], void (l.value = []);
31982
32016
  const { presences: t, cursors: n } = I0(d.getStates(), f, F0(e.canvasWidth), F0(e.canvasHeight), x);
31983
32017
  o.value = t, l.value = n, null === r.value || t.some((e) => e.clientId === r.value) || (r.value = null);
31984
32018
  }
31985
- async function T(n) {
31986
- F(), k = n;
32019
+ async function I(n) {
32020
+ P(), k = n;
31987
32021
  try {
31988
32022
  xu(n.roomId);
31989
32023
  } catch {
@@ -32023,6 +32057,10 @@ function P0(e) {
32023
32057
  awareness: o.awareness,
32024
32058
  onStatus: (e) => o.on("status", (t) => e(Boolean(t.connected))),
32025
32059
  connectedNow: !0,
32060
+ onSynced: (e) => o.on("synced", (t) => {
32061
+ !1 !== t?.synced && e();
32062
+ }),
32063
+ syncedNow: !1,
32026
32064
  destroy: () => o.destroy()
32027
32065
  };
32028
32066
  }
@@ -32033,11 +32071,15 @@ function P0(e) {
32033
32071
  "connected" === t.status ? e(!0) : "disconnected" === t.status && e(!1);
32034
32072
  }),
32035
32073
  connectedNow: a.wsconnected,
32074
+ onSynced: (e) => a.on("sync", (t) => {
32075
+ t && e();
32076
+ }),
32077
+ syncedNow: a.synced,
32036
32078
  destroy: () => {
32037
32079
  a.disconnect(), a.destroy();
32038
32080
  }
32039
32081
  };
32040
- }(o, n, l), d = p.awareness, f = d.clientID ?? -1, m = function(e, t) {
32082
+ }(o, n, l), d = p.awareness, f = d.clientID ?? -1, T.reset(), p.onSynced(() => T.open()), p.syncedNow ? T.open() : T.arm(), m = function(e, t) {
32041
32083
  const n = {
32042
32084
  activeSlideIndex: 0,
32043
32085
  cursorX: 0,
@@ -32077,10 +32119,10 @@ function P0(e) {
32077
32119
  userColor: e.userColor ?? n.userColor ?? "#4c8bf5",
32078
32120
  userAvatar: n.userAvatar,
32079
32121
  role: n.role
32080
- }), d.on("change", $), d.on("update", $), "webrtc" === o ? t.value = "connected" : (p.onStatus((e) => {
32122
+ }), d.on("change", F), d.on("update", F), "webrtc" === o ? t.value = "connected" : (p.onStatus((e) => {
32081
32123
  e ? (null !== b && (clearTimeout(b), b = null), t.value = "connected") : a.value && (t.value = "disconnected");
32082
32124
  }), p.connectedNow ? t.value = "connected" : b = setTimeout(() => {
32083
- b = null, "connected" !== t.value && (F(), t.value = "error");
32125
+ b = null, "connected" !== t.value && (P(), t.value = "error");
32084
32126
  }, 3e4)), g = function(e, t) {
32085
32127
  const n = e.getArray(Pu);
32086
32128
  return n.observeDeep(t), () => n.unobserveDeep(t);
@@ -32089,30 +32131,17 @@ function P0(e) {
32089
32131
  const a = Wu(C);
32090
32132
  0 !== a.length && (h = !0, e.onRemoteSlides(a), h = !1, w = JSON.stringify(a), M.schedule(n));
32091
32133
  }), v = bt(e.slides, () => {
32092
- if (!C || !S || h) return;
32093
- const t = JSON.stringify(e.slides.value);
32094
- t !== w && (w = t, function(e, t, n, o = "pptx-viewer:local-sync") {
32095
- t.transact(() => {
32096
- Gu(t.getArray(Pu), e, {
32097
- idOf: (e) => "string" == typeof e.id ? e.id : void 0,
32098
- create: (e) => {
32099
- const t = n.createMap();
32100
- return Ru(e, t, n), t;
32101
- },
32102
- update: (e, t) => Vu(e, t, n)
32103
- });
32104
- }, o);
32105
- }(e.slides.value, C, S), M.schedule(n));
32106
- }, { deep: !1 }), y = setInterval(() => m?.flush(), 1e4), a.value = !0, $();
32134
+ T.isOpen() && $();
32135
+ }, { deep: !1 }), y = setInterval(() => m?.flush(), 1e4), a.value = !0, F();
32107
32136
  } catch {
32108
- F(), t.value = "error";
32137
+ P(), t.value = "error";
32109
32138
  }
32110
32139
  }
32111
32140
  }
32112
- function F() {
32113
- null !== b && (clearTimeout(b), b = null), null !== y && (clearInterval(y), y = null), M.cancel(), g?.(), g = null, v?.(), v = null, d?.off?.("change", $), d?.off?.("update", $), m?.dispose(), m = null, p?.destroy(), c?.destroy(), p = null, c = null, d = null, f = -1, x = 0, h = !1, S = null, C = null, w = "", t.value = "disconnected", a.value = !1, l.value = [], o.value = [], r.value = null;
32141
+ function P() {
32142
+ null !== b && (clearTimeout(b), b = null), null !== y && (clearInterval(y), y = null), M.cancel(), T.reset(), g?.(), g = null, v?.(), v = null, d?.off?.("change", F), d?.off?.("update", F), m?.dispose(), m = null, p?.destroy(), c?.destroy(), p = null, c = null, d = null, f = -1, x = 0, h = !1, S = null, C = null, w = "", t.value = "disconnected", a.value = !1, l.value = [], o.value = [], r.value = null;
32114
32143
  }
32115
- return qe(F), {
32144
+ return qe(P), {
32116
32145
  status: t,
32117
32146
  connected: n,
32118
32147
  cursors: l,
@@ -32122,10 +32151,10 @@ function P0(e) {
32122
32151
  followedClientId: r,
32123
32152
  followedSlideIndex: s,
32124
32153
  broadcasterSlideIndex: u,
32125
- start: T,
32126
- stop: F,
32154
+ start: I,
32155
+ stop: P,
32127
32156
  retry: async function() {
32128
- k && await T(k);
32157
+ k && await I(k);
32129
32158
  },
32130
32159
  setCursor: function(e, t) {
32131
32160
  m?.update({
@@ -32137,7 +32166,7 @@ function P0(e) {
32137
32166
  m?.update({ selectedElementId: e[0] });
32138
32167
  },
32139
32168
  setActiveSlide: function(e) {
32140
- x = Math.max(0, Math.floor(e)), m?.update({ activeSlideIndex: x }), $();
32169
+ x = Math.max(0, Math.floor(e)), m?.update({ activeSlideIndex: x }), F();
32141
32170
  },
32142
32171
  followUser: function(e) {
32143
32172
  r.value = e;
@@ -34423,7 +34452,7 @@ var g1 = ["tabindex"], b1 = {
34423
34452
  canvasSize: g,
34424
34453
  rasterizeSlide: nn
34425
34454
  }), an = function(e) {
34426
- const { slideCount: t, rasterizeSlide: n } = e, o = e.loadGifEncoder ?? (async () => (await import("./gif-encoder-hx9qCGr-.js")).encodeGif), a = e.createRecorder ?? r1, r = e.createCanvas ?? (() => document.createElement("canvas")), l = e.downloadBlob ?? gp, i = nt(!1), s = nt(0);
34455
+ const { slideCount: t, rasterizeSlide: n } = e, o = e.loadGifEncoder ?? (async () => (await import("./gif-encoder-BN5J0GRM.js")).encodeGif), a = e.createRecorder ?? r1, r = e.createCanvas ?? (() => document.createElement("canvas")), l = e.downloadBlob ?? gp, i = nt(!1), s = nt(0);
34427
34456
  return {
34428
34457
  exporting: i,
34429
34458
  progress: s,
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pptx-vue-viewer",
3
- "version": "1.1.83",
3
+ "version": "1.1.84",
4
4
  "description": "Vue 3 PowerPoint viewer and editor component: render, edit, and export PPTX slides in the browser.",
5
5
  "keywords": [
6
6
  "editor",
@@ -1,2 +0,0 @@
1
- import { H as r } from "./viewer-XosufPBO.js";
2
- export { r as encodeGif };
Binary file
Binary file
@@ -1,2 +0,0 @@
1
- const e = require("./viewer-D1YS0zEs.cjs");
2
- exports.encodeGif = e.encodeGif;
Binary file
Binary file
Binary file
Binary file