@netless/app-slide 0.2.17 → 0.2.18

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/dist/main.es.js CHANGED
@@ -26759,7 +26759,7 @@ void main(void){
26759
26759
  this.maxResolution.set(e2, n2);
26760
26760
  }
26761
26761
  updateConfig(t2) {
26762
- nl()(t2.maxFPS) || (this.config.maxFPS = t2.maxFPS), nl()(t2.minFPS) || (this.config.minFPS = t2.minFPS), nl()(t2.resolution) || (this.config.resolution = t2.resolution, this.updateResolution(this.scale * this.config.resolution)), nl()(t2.autoFPS) || (this.config.autoFPS = t2.autoFPS), nl()(t2.autoResolution) || (this.config.autoResolution = t2.autoResolution), nl()(t2.transactionBgColor) || (this.config.transactionBgColor = t2.transactionBgColor), this.taskId && this.logger.info("ppt player update config: " + JSON.stringify(this.config), this.taskId), nl()(t2.maxResolutionLevel) || (this.config.maxResolutionLevel = t2.maxResolutionLevel, this.updateMaxResolutionLevel(this.config.maxResolutionLevel));
26762
+ nl()(t2.maxFPS) || nl()(t2.minFPS) || (this.config.maxFPS = t2.maxFPS, this.app.ticker.maxFPS = t2.maxFPS, this.config.minFPS = t2.minFPS, this.app.ticker.minFPS = t2.minFPS), nl()(t2.resolution) || (this.config.resolution = t2.resolution, this.updateResolution(this.scale * this.config.resolution)), nl()(t2.autoFPS) || (this.config.autoFPS = t2.autoFPS), nl()(t2.autoResolution) || (this.config.autoResolution = t2.autoResolution), nl()(t2.transactionBgColor) || (this.config.transactionBgColor = t2.transactionBgColor), this.taskId && this.logger.info("ppt player update config: " + JSON.stringify(this.config), this.taskId), nl()(t2.maxResolutionLevel) || (this.config.maxResolutionLevel = t2.maxResolutionLevel, this.updateMaxResolutionLevel(this.config.maxResolutionLevel));
26763
26763
  }
26764
26764
  preload(t2) {
26765
26765
  return CT(this, void 0, void 0, function* () {
@@ -28704,7 +28704,7 @@ void main(void){
28704
28704
  }
28705
28705
  var KS = { syncDispatch: "syncDispatch", syncReceive: "syncReceive", syncEventLag: "syncEventLag", renderStart: "renderStart", renderEnd: "renderEnd", renderError: "renderError", slideChange: "slideChange", mainSeqStepStart: "mainSeqStepStart", mainSeqStepEnd: "mainSeqStepEnd", animateStart: "animateStart", animateEnd: "animateEnd", stateChange: "stateChange", slideStepEnd: "slideEnd", slideStepStart: "slideStart" }, $S = { taskId: "", url: "", currentSlideIndex: -1, mainSeqStep: -1, mainSeqState: null, mediaState: /* @__PURE__ */ Object.create(null), interactiveSeqState: /* @__PURE__ */ Object.create(null) }, tE = "";
28706
28706
  try {
28707
- tE = "0.7.6";
28707
+ tE = "0.7.7";
28708
28708
  } catch (t2) {
28709
28709
  tE = "dev";
28710
28710
  }
@@ -28838,7 +28838,7 @@ void main(void){
28838
28838
  }, e2.prototype.initSlideConfig = function(t3) {
28839
28839
  return t3.timestamp && (this.timestamp = t3.timestamp), t3.rtcAudio && (LT.RtcAudioClazz = t3.rtcAudio), this.mode = t3.mode, this.anchor = t3.anchor, this.anchor.appendChild(this.frame), this.enableGlobalClick = !nl()(t3.enableGlobalClick) && t3.enableGlobalClick, this.resize = t3.resize || false, this.interactive = t3.interactive, this.frame.style.cssText = t3.fixedFrameSize ? "width:" + t3.fixedFrameSize.width + "px;height:" + t3.fixedFrameSize.height + "px;" : "width:100%;height:100%", this.frame.style.cssText += "display:flex;justify-content:center;align-items:center;visibility:hidden;position:relative;z-index:1;", t3.fixedFrameSize && (this.frameWidth = t3.fixedFrameSize.width, this.frameHeight = t3.fixedFrameSize.height), t3;
28840
28840
  }, e2.prototype.initPlayer = function(t3) {
28841
- var e3, n3, i3, r2 = this, o2 = new LT({ mode: this.mode, useLocalCache: !!nl()(this.config.useLocalCache) || this.config.useLocalCache, logger: this.logger, resourceTimeout: nl()(this.config.resourceTimeout) ? 15e3 : this.config.resourceTimeout, loadDelegate: this.config.loaderDelegate, volumeAdjuster: this.volumeAdjuster });
28841
+ var e3, n3, i3, r2 = this, o2 = new LT({ mode: this.mode, useLocalCache: !!nl()(this.config.useLocalCache) || this.config.useLocalCache, logger: this.logger, resourceTimeout: nl()(this.config.resourceTimeout) ? 15e3 : this.config.resourceTimeout, loadDelegate: this.config.loaderDelegate, volumeAdjuster: this.volumeAdjuster }, t3.renderOptions);
28842
28842
  return o2.setInteractive(this.interactive), o2.updateConfig(t3.renderOptions || {}), o2.on(IT.renderStart, function(t4) {
28843
28843
  r2.isLoading = true, r2.emit(KS.renderStart, t4);
28844
28844
  }), o2.on(IT.renderEnd, function(t4) {
@@ -29923,7 +29923,9 @@ class SlideController {
29923
29923
  onPageChanged,
29924
29924
  onTransitionStart,
29925
29925
  onTransitionEnd,
29926
- onError
29926
+ onError,
29927
+ onRenderError,
29928
+ showRenderError
29927
29929
  }) {
29928
29930
  this.sideEffect = new SideEffectManager();
29929
29931
  this.ready = false;
@@ -30029,6 +30031,8 @@ class SlideController {
30029
30031
  this.onTransitionStart = onTransitionStart;
30030
30032
  this.onTransitionEnd = onTransitionEnd;
30031
30033
  this.onError = onError;
30034
+ this.onRenderError = onRenderError;
30035
+ this.showRenderError = showRenderError != null ? showRenderError : true;
30032
30036
  this.context = context;
30033
30037
  this.room = context.getRoom();
30034
30038
  this.player = this.room ? void 0 : context.getDisplayer();
@@ -31147,11 +31151,16 @@ class SlideDocsViewer {
31147
31151
  constructor({ box, view, mountSlideController, mountWhiteboard }) {
31148
31152
  this.slideController = null;
31149
31153
  this.isViewMounted = false;
31150
- this.onError = ({ error }) => {
31151
- var _a;
31154
+ this.onError = ({ error, index }) => {
31155
+ var _a, _b;
31152
31156
  this.viewer.setPaused();
31153
- this.$overlay.textContent = `Error on slide[page=${(_a = this.slideController) == null ? void 0 : _a.page}]: ${error.message}`;
31154
- this.$overlay.style.opacity = "1";
31157
+ if ((_a = this.slideController) == null ? void 0 : _a.showRenderError) {
31158
+ this.$overlay.textContent = `Error on slide[page=${this.slideController.page}]: ${error.message}`;
31159
+ this.$overlay.style.opacity = "1";
31160
+ }
31161
+ if ((_b = this.slideController) == null ? void 0 : _b.onRenderError) {
31162
+ this.slideController.onRenderError(error, index);
31163
+ }
31155
31164
  logger.warn("[Slide] render error", error);
31156
31165
  };
31157
31166
  this.onRenderEnd = () => {
@@ -31312,7 +31321,13 @@ class SlideDocsViewer {
31312
31321
  }
31313
31322
  }
31314
31323
  let useFreezer = false;
31315
- const FreezerLength = 2;
31324
+ let FreezerLength = 2;
31325
+ function getFreezerLength() {
31326
+ return FreezerLength;
31327
+ }
31328
+ function setFreezerLength(length) {
31329
+ FreezerLength = length < 1 ? Infinity : length;
31330
+ }
31316
31331
  const inspect = (arr) => {
31317
31332
  return "[" + arr + "]";
31318
31333
  };
@@ -31366,13 +31381,29 @@ const apps = {
31366
31381
  }
31367
31382
  }
31368
31383
  };
31384
+ const on_created_callbacks = /* @__PURE__ */ new Set();
31385
+ function onCreated(callback) {
31386
+ on_created_callbacks.add(callback);
31387
+ return () => on_created_callbacks.delete(callback);
31388
+ }
31389
+ const on_destroyed_callbacks = /* @__PURE__ */ new Set();
31390
+ function onDestroyed(callback) {
31391
+ on_destroyed_callbacks.add(callback);
31392
+ return () => on_destroyed_callbacks.delete(callback);
31393
+ }
31369
31394
  const addHooks = (emitter) => {
31370
31395
  useFreezer = true;
31371
31396
  emitter.on("focus", ({ appId }) => {
31372
31397
  apps.focus(appId);
31373
31398
  });
31399
+ emitter.on("created", ({ appId }) => {
31400
+ on_created_callbacks.forEach((callback) => callback(appId));
31401
+ });
31402
+ emitter.on("destroy", ({ appId }) => {
31403
+ on_destroyed_callbacks.forEach((callback) => callback(appId));
31404
+ });
31374
31405
  };
31375
- var styles = /* @__PURE__ */ (() => ".netless-app-slide-content{position:relative;height:100%;overflow:hidden}.netless-app-slide-preview-mask{display:none;position:absolute;z-index:200;top:0;left:0;width:100%;height:100%}.netless-app-slide-preview{display:flex;flex-direction:column;align-items:center;position:absolute;z-index:300;top:0;left:0;width:33%;max-width:200px;height:100%;padding-top:10px;transform:translate(-100%);background:rgba(237,237,240,.9);box-shadow:inset -1px 0 #0000001c;transition:transform .4s}.netless-app-slide-preview-active .netless-app-slide-preview-mask{display:block}.netless-app-slide-preview-active .netless-app-slide-preview{transform:translate(0)}.netless-app-slide-preview-page{position:relative;display:block;width:55%;margin-bottom:10px;font-size:0;color:transparent;outline:none;border:7px solid transparent;border-radius:4px;transition:border-color .3s;user-select:none}.netless-app-slide-preview-page:hover,.netless-app-slide-preview-page.netless-app-slide-preview-page-active{border-color:#444e601a}.netless-app-slide-preview-page>img{width:100%;height:auto;box-sizing:border-box;border:1px solid rgba(0,0,0,.5);border-radius:1px;background-color:#fff;box-shadow:0 2px 8px #0000004d}.netless-app-slide-preview-page-name{position:absolute;top:1px;left:-10px;transform:translate(-100%);text-align:right;font-size:12px;color:#5f5f5f;user-select:none}.netless-app-slide-footer{box-sizing:border-box;height:26px;display:flex;align-items:center;padding:0 16px;border-top:1px solid #eeeef7;color:#191919}.netless-app-slide-float-footer{width:100%;min-height:26px;position:absolute;left:0;bottom:0;z-index:2000;background:rgba(249,249,252,.9);transition:opacity .4s}.netless-app-slide-footer-btn{box-sizing:border-box;width:26px;height:26px;font-size:0;margin:0;padding:3px;border:none;border-radius:1px;outline:none;color:currentColor;background:transparent;transition:background .4s;cursor:pointer;user-select:none;-webkit-tap-highlight-color:rgba(0,0,0,0)}.netless-app-slide-footer-btn:hover{background:rgba(237,237,240,.9)}@media (hover: none){.netless-app-slide-footer-btn:hover{background:transparent!important}}.netless-app-slide-footer-btn>svg{width:100%;height:100%}.netless-app-slide-footer-btn>svg:nth-of-type(2){display:none}.netless-app-slide-footer-btn.netless-app-slide-footer-btn-playing>svg:nth-of-type(1){display:none}.netless-app-slide-footer-btn.netless-app-slide-footer-btn-playing>svg:nth-of-type(2){display:initial}.netless-app-slide-footer-btn~.netless-app-slide-footer-btn{margin-left:15px}.netless-app-slide-page-jumps{flex:1;display:flex;justify-content:center;align-items:center}.netless-app-slide-page-number{margin-left:auto;font-size:13px;user-select:none;white-space:nowrap;word-break:keep-all}.netless-app-slide-page-number-input{border:none;outline:none;width:3em;margin:0;padding:0 2px;text-align:right;font-size:13px;line-height:1;font-weight:400;font-family:inherit;border-radius:2px;color:currentColor;background:transparent;transition:background .4s;user-select:text;-webkit-tap-highlight-color:rgba(0,0,0,0)}.netless-app-slide-page-number-input:hover,.netless-app-slide-page-number-input:focus,.netless-app-slide-page-number-input:active{background:#fff;box-shadow:#63636333 0 2px 8px}.netless-app-slide-readonly.netless-app-slide-footer{display:none}.telebox-color-scheme-dark .netless-app-slide-page-number-input{color:#a6a6a8}.telebox-color-scheme-dark .netless-app-slide-page-number-input:active,.telebox-color-scheme-dark .netless-app-slide-page-number-input:focus,.telebox-color-scheme-dark .netless-app-slide-page-number-input:hover{color:#222}.telebox-color-scheme-dark .netless-app-slide-footer{color:#a6a6a8;background:#2d2d33;border-top:none}.telebox-color-scheme-dark .netless-app-slide-footer-btn:hover{background:#212126}.telebox-color-scheme-dark .netless-app-slide-preview{background:rgba(50,50,50,.9)}.netless-app-slide-wb-view{position:absolute;top:0;left:0;width:100%;height:100%;z-index:100;overflow:hidden}.netless-app-slide-overlay{display:flex;align-items:center;justify-content:center;position:absolute;z-index:200;top:0;left:0;width:100%;height:100%;background:rgba(255,0,0,.25);transition:opacity .3s;opacity:0;pointer-events:none}.netless-app-slide-slide{width:100%;height:100%;display:flex;align-items:center;justify-content:center}.netless-app-slide-slide canvas{transform:scale(var(--netless-app-slide-scale, 1))}\n")();
31406
+ var styles = /* @__PURE__ */ (() => ".netless-app-slide-content{position:relative;height:100%;overflow:hidden}.netless-app-slide-preview-mask{display:none;position:absolute;z-index:200;top:0;left:0;width:100%;height:100%}.netless-app-slide-preview{display:flex;flex-direction:column;align-items:center;position:absolute;z-index:300;top:0;left:0;width:33%;max-width:200px;height:100%;padding-top:10px;transform:translate(-100%);background:rgba(237,237,240,.9);box-shadow:inset -1px 0 #0000001c;transition:transform .4s}.netless-app-slide-preview-active .netless-app-slide-preview-mask{display:block}.netless-app-slide-preview-active .netless-app-slide-preview{transform:translate(0)}.netless-app-slide-preview-page{position:relative;display:block;width:55%;margin-bottom:10px;font-size:0;color:transparent;outline:none;border:7px solid transparent;border-radius:4px;transition:border-color .3s;user-select:none}.netless-app-slide-preview-page:hover,.netless-app-slide-preview-page.netless-app-slide-preview-page-active{border-color:#444e601a}.netless-app-slide-preview-page>img{width:100%;height:auto;box-sizing:border-box;border:1px solid rgba(0,0,0,.5);border-radius:1px;background-color:#fff;box-shadow:0 2px 8px #0000004d}.netless-app-slide-preview-page-name{position:absolute;top:1px;left:-10px;transform:translate(-100%);text-align:right;font-size:12px;color:#5f5f5f;user-select:none}.netless-app-slide-footer{box-sizing:border-box;height:26px;display:flex;align-items:center;padding:0 16px;border-top:1px solid #eeeef7;color:#191919}.netless-app-slide-float-footer{width:100%;min-height:26px;position:absolute;left:0;bottom:0;z-index:2000;background:rgba(249,249,252,.9);transition:opacity .4s}.netless-app-slide-footer-btn{box-sizing:border-box;width:26px;height:26px;font-size:0;margin:0;padding:3px;border:none;border-radius:1px;outline:none;color:currentColor;background:transparent;transition:background .4s;cursor:pointer;user-select:none;-webkit-tap-highlight-color:rgba(0,0,0,0)}.netless-app-slide-footer-btn:hover{background:rgba(237,237,240,.9)}@media (hover: none){.netless-app-slide-footer-btn:hover{background:transparent!important}}.netless-app-slide-footer-btn>svg{width:100%;height:100%}.netless-app-slide-footer-btn>svg:nth-of-type(2){display:none}.netless-app-slide-footer-btn.netless-app-slide-footer-btn-playing>svg:nth-of-type(1){display:none}.netless-app-slide-footer-btn.netless-app-slide-footer-btn-playing>svg:nth-of-type(2){display:initial}.netless-app-slide-footer-btn~.netless-app-slide-footer-btn{margin-left:15px}.netless-app-slide-page-jumps{flex:1;display:flex;justify-content:center;align-items:center}.netless-app-slide-page-number{margin-left:auto;font-size:13px;user-select:none;white-space:nowrap;word-break:keep-all}.netless-app-slide-page-number-input{border:none;outline:none;width:3em;margin:0;padding:0 2px;text-align:right;font-size:13px;line-height:1;font-weight:400;font-family:inherit;border-radius:2px;color:currentColor;background:transparent;transition:background .4s;user-select:text;-webkit-tap-highlight-color:rgba(0,0,0,0)}.netless-app-slide-page-number-input:hover,.netless-app-slide-page-number-input:focus,.netless-app-slide-page-number-input:active{background:#fff;box-shadow:#63636333 0 2px 8px}.netless-app-slide-readonly.netless-app-slide-footer{display:none}.telebox-color-scheme-dark .netless-app-slide-page-number-input{color:#a6a6a8}.telebox-color-scheme-dark .netless-app-slide-page-number-input:active,.telebox-color-scheme-dark .netless-app-slide-page-number-input:focus,.telebox-color-scheme-dark .netless-app-slide-page-number-input:hover{color:#222}.telebox-color-scheme-dark .netless-app-slide-footer{color:#a6a6a8;background:#2d2d33;border-top:none}.telebox-color-scheme-dark .netless-app-slide-footer-btn:hover{background:#212126}.telebox-color-scheme-dark .netless-app-slide-preview{background:rgba(50,50,50,.9)}.netless-app-slide-wb-view{position:absolute;top:0;left:0;width:100%;height:100%;z-index:100;overflow:hidden}.netless-app-slide-overlay{display:flex;align-items:center;justify-content:center;position:absolute;z-index:200;top:0;left:0;width:100%;height:100%;padding:8px;background:rgba(255,0,0,.25);transition:opacity .3s;opacity:0;pointer-events:none}.netless-app-slide-slide{width:100%;height:100%;display:flex;align-items:center;justify-content:center}.netless-app-slide-slide canvas{transform:scale(var(--netless-app-slide-scale, 1))}\n")();
31376
31407
  function previewSlide({
31377
31408
  container,
31378
31409
  taskId,
@@ -31528,7 +31559,7 @@ class SlidePreviewer {
31528
31559
  }
31529
31560
  }
31530
31561
  const usePlugin = /* @__PURE__ */ Slide.Slide.usePlugin.bind(Slide.Slide);
31531
- const version = "0.2.17";
31562
+ const version = "0.2.18";
31532
31563
  const SlideApp = {
31533
31564
  kind: "Slide",
31534
31565
  setup(context) {
@@ -31565,10 +31596,13 @@ const SlideApp = {
31565
31596
  }
31566
31597
  };
31567
31598
  const mountSlideController = (options) => {
31599
+ const appOptions = context.getAppOptions() || {};
31568
31600
  const slideController = new SlideController(__spreadProps(__spreadValues({
31569
31601
  context
31570
31602
  }, options), {
31571
- onPageChanged
31603
+ onPageChanged,
31604
+ onRenderError: appOptions.onRenderError,
31605
+ showRenderError: appOptions.showRenderError
31572
31606
  }));
31573
31607
  if (useFreezer)
31574
31608
  apps.set(context.appId, slideController, box);
@@ -31625,6 +31659,12 @@ const SlideApp = {
31625
31659
  });
31626
31660
  docsViewer.mount();
31627
31661
  return {
31662
+ viewer: () => {
31663
+ return docsViewer;
31664
+ },
31665
+ controller: () => {
31666
+ return docsViewer == null ? void 0 : docsViewer.slideController;
31667
+ },
31628
31668
  slide: () => {
31629
31669
  var _a;
31630
31670
  return (_a = docsViewer == null ? void 0 : docsViewer.slideController) == null ? void 0 : _a.slide;
@@ -31688,5 +31728,5 @@ const SlideApp = {
31688
31728
  }
31689
31729
  };
31690
31730
  var Slide$1 = Slide.Slide;
31691
- export { DefaultUrl, FreezerLength, Slide$1 as Slide, SlidePreviewer, addHooks, apps, SlideApp as default, previewSlide, usePlugin, version };
31731
+ export { DefaultUrl, FreezerLength, Slide$1 as Slide, SlidePreviewer, addHooks, apps, SlideApp as default, getFreezerLength, onCreated, onDestroyed, previewSlide, setFreezerLength, usePlugin, version };
31692
31732
  //# sourceMappingURL=main.es.js.map