@netless/window-manager 0.4.49 → 0.4.51
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 +11 -2
- package/LICENSE.txt +21 -0
- package/README.md +3 -3
- package/README.zh-cn.md +3 -3
- package/dist/index.cjs.js +13 -13
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.es.js +177 -58
- package/dist/index.es.js.map +1 -1
- package/dist/index.umd.js +13 -13
- package/dist/index.umd.js.map +1 -1
- package/docs/export-pdf.md +46 -0
- package/package.json +20 -15
- package/src/AppManager.ts +3 -0
- package/pnpm-lock.yaml +0 -4901
package/dist/index.es.js
CHANGED
@@ -2681,6 +2681,9 @@ class AppManager {
|
|
2681
2681
|
});
|
2682
2682
|
this.mainViewProxy.onReconnect();
|
2683
2683
|
await Promise.all(reconnected);
|
2684
|
+
if (this.callbacksNode) {
|
2685
|
+
this.onSceneChange(this.callbacksNode);
|
2686
|
+
}
|
2684
2687
|
}
|
2685
2688
|
notifyContainerRectUpdate(rect) {
|
2686
2689
|
this.appProxies.forEach((appProxy) => {
|
@@ -2879,7 +2882,7 @@ var objectAssign = shouldUseNative$1() ? Object.assign : function(target, source
|
|
2879
2882
|
* This source code is licensed under the MIT license found in the
|
2880
2883
|
* LICENSE file in the root directory of this source tree.
|
2881
2884
|
*/
|
2882
|
-
var l$1 = objectAssign, n$
|
2885
|
+
var l$1 = objectAssign, n$3 = typeof Symbol === "function" && Symbol.for, p = n$3 ? Symbol.for("react.element") : 60103, q = n$3 ? Symbol.for("react.portal") : 60106, r$4 = n$3 ? Symbol.for("react.fragment") : 60107, t$3 = n$3 ? Symbol.for("react.strict_mode") : 60108, u$3 = n$3 ? Symbol.for("react.profiler") : 60114, v$2 = n$3 ? Symbol.for("react.provider") : 60109, w$1 = n$3 ? Symbol.for("react.context") : 60110, x$1 = n$3 ? Symbol.for("react.forward_ref") : 60112, y$1 = n$3 ? Symbol.for("react.suspense") : 60113, z$1 = n$3 ? Symbol.for("react.memo") : 60115, A$1 = n$3 ? Symbol.for("react.lazy") : 60116, B$1 = typeof Symbol === "function" && Symbol.iterator;
|
2883
2886
|
function C$2(a2) {
|
2884
2887
|
for (var b2 = "https://reactjs.org/docs/error-decoder.html?invariant=" + a2, c2 = 1; c2 < arguments.length; c2++)
|
2885
2888
|
b2 += "&args[]=" + encodeURIComponent(arguments[c2]);
|
@@ -4232,7 +4235,7 @@ const e$1$1 = "!#%()*+,-./:;=?@[]^_`{|}~ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmn
|
|
4232
4235
|
t$1$1[r2] = e$1$1.charAt(Math.random() * s$1$1);
|
4233
4236
|
return t$1$1.join("");
|
4234
4237
|
};
|
4235
|
-
class o$
|
4238
|
+
class o$1 {
|
4236
4239
|
constructor() {
|
4237
4240
|
this.disposers = /* @__PURE__ */ new Map();
|
4238
4241
|
}
|
@@ -4338,7 +4341,7 @@ function t$2(e2, s2, t2, i2) {
|
|
4338
4341
|
u2.addBeforeDestroy(t3);
|
4339
4342
|
}), u2;
|
4340
4343
|
}
|
4341
|
-
function i$
|
4344
|
+
function i$2(e2, s2) {
|
4342
4345
|
Object.keys(s2).forEach((r2) => {
|
4343
4346
|
u$2(e2, r2, s2[r2]);
|
4344
4347
|
});
|
@@ -4443,7 +4446,7 @@ class DefaultTitleBar {
|
|
4443
4446
|
state = TELE_BOX_STATE.Normal
|
4444
4447
|
} = {}) {
|
4445
4448
|
this.$btns = [];
|
4446
|
-
this.sideEffect = new o$
|
4449
|
+
this.sideEffect = new o$1();
|
4447
4450
|
this.lastTitleBarClick = {
|
4448
4451
|
timestamp: 0,
|
4449
4452
|
clientX: -100,
|
@@ -4665,12 +4668,12 @@ class TeleBox {
|
|
4665
4668
|
},
|
4666
4669
|
collectorRect
|
4667
4670
|
} = {}) {
|
4668
|
-
this._renderSideEffect = new o$
|
4671
|
+
this._renderSideEffect = new o$1();
|
4669
4672
|
this.handleTrackStart = (ev) => {
|
4670
4673
|
var _a;
|
4671
4674
|
return (_a = this._handleTrackStart) == null ? void 0 : _a.call(this, ev);
|
4672
4675
|
};
|
4673
|
-
this._sideEffect = new o$
|
4676
|
+
this._sideEffect = new o$1();
|
4674
4677
|
this._valSideEffectBinder = c(this._sideEffect);
|
4675
4678
|
const { combine, createVal } = this._valSideEffectBinder;
|
4676
4679
|
this.id = id2;
|
@@ -4906,7 +4909,7 @@ class TeleBox {
|
|
4906
4909
|
$userFooter: $userFooter$,
|
4907
4910
|
$userStyles: $userStyles$
|
4908
4911
|
};
|
4909
|
-
i$
|
4912
|
+
i$2(this, valConfig);
|
4910
4913
|
this._state$ = state$;
|
4911
4914
|
this._minSize$ = minSize$;
|
4912
4915
|
this._size$ = size$;
|
@@ -5630,7 +5633,7 @@ class TeleBoxManager {
|
|
5630
5633
|
readonly = false
|
5631
5634
|
} = {}) {
|
5632
5635
|
this.events = new EventEmitter();
|
5633
|
-
this._sideEffect = new o$
|
5636
|
+
this._sideEffect = new o$1();
|
5634
5637
|
const { combine, createVal } = c(this._sideEffect);
|
5635
5638
|
this.root = root;
|
5636
5639
|
this.namespace = namespace;
|
@@ -5826,7 +5829,7 @@ class TeleBoxManager {
|
|
5826
5829
|
minimized: minimized$,
|
5827
5830
|
maximized: maximized$
|
5828
5831
|
};
|
5829
|
-
i$
|
5832
|
+
i$2(this, valConfig);
|
5830
5833
|
this._state$ = state$;
|
5831
5834
|
this.root.appendChild(this.maxTitleBar.render());
|
5832
5835
|
}
|
@@ -7586,7 +7589,7 @@ var __spreadValues2 = (a2, b2) => {
|
|
7586
7589
|
return a2;
|
7587
7590
|
};
|
7588
7591
|
var __spreadProps2 = (a2, b2) => __defProps2(a2, __getOwnPropDescs2(b2));
|
7589
|
-
var styles = ".netless-app-docs-viewer-content{position:relative;height:100%;overflow:hidden}.netless-app-docs-viewer-preview-mask{display:none;position:absolute;z-index:200;top:0;left:0;width:100%;height:100%}.netless-app-docs-viewer-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-docs-viewer-preview-active .netless-app-docs-viewer-preview-mask{display:block}.netless-app-docs-viewer-preview-active .netless-app-docs-viewer-preview{transform:translate(0)}.netless-app-docs-viewer-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-docs-viewer-preview-page:hover,.netless-app-docs-viewer-preview-page.netless-app-docs-viewer-preview-page-active{border-color:#444e601a}.netless-app-docs-viewer-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-docs-viewer-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-docs-viewer-footer{box-sizing:border-box;height:26px;display:flex;align-items:center;padding:0 16px;border-top:1px solid #eeeef7;color:#191919}.netless-app-docs-viewer-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-docs-viewer-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-docs-viewer-footer-btn:hover{background:rgba(237,237,240,.9)}@media (hover: none){.netless-app-docs-viewer-footer-btn:hover{background:transparent!important}}.netless-app-docs-viewer-footer-btn>svg{width:100%;height:100%}.netless-app-docs-viewer-footer-btn>svg:nth-of-type(2){display:none}.netless-app-docs-viewer-footer-btn.netless-app-docs-viewer-footer-btn-playing>svg:nth-of-type(1){display:none}.netless-app-docs-viewer-footer-btn.netless-app-docs-viewer-footer-btn-playing>svg:nth-of-type(2){display:initial}.netless-app-docs-viewer-footer-btn~.netless-app-docs-viewer-footer-btn{margin-left:15px}.netless-app-docs-viewer-page-jumps{flex:1;display:flex;justify-content:center;align-items:center}.netless-app-docs-viewer-page-number{margin-left:auto;font-size:13px;user-select:none;white-space:nowrap;word-break:keep-all}.netless-app-docs-viewer-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-docs-viewer-page-number-input:hover,.netless-app-docs-viewer-page-number-input:focus,.netless-app-docs-viewer-page-number-input:active{background:#fff;box-shadow:#63636333 0 2px 8px}.netless-app-docs-viewer-readonly .netless-app-docs-viewer-footer-btn{cursor:not-allowed}.netless-app-docs-viewer-readonly .netless-app-docs-viewer-footer-btn:hover{background:transparent}.netless-app-docs-viewer-readonly .netless-app-docs-viewer-page-number-input{cursor:not-allowed}.netless-app-docs-viewer-readonly .netless-app-docs-viewer-page-number-input:hover,.netless-app-docs-viewer-readonly .netless-app-docs-viewer-page-number-input:focus,.netless-app-docs-viewer-readonly .netless-app-docs-viewer-page-number-input:active{background:transparent;box-shadow:none}.netless-app-docs-viewer-readonly .netless-app-docs-viewer-page-number-input:disabled{color:inherit}.netless-app-docs-viewer-readonly.netless-app-docs-viewer-float-footer{display:none}.telebox-color-scheme-dark .netless-app-docs-viewer-page-number-input{color:#a6a6a8}.telebox-color-scheme-dark .netless-app-docs-viewer-page-number-input:active,.telebox-color-scheme-dark .netless-app-docs-viewer-page-number-input:focus,.telebox-color-scheme-dark .netless-app-docs-viewer-page-number-input:hover{color:#222}.telebox-color-scheme-dark .netless-app-docs-viewer-footer{color:#a6a6a8;background:#2d2d33;border-top:none}.telebox-color-scheme-dark .netless-app-docs-viewer-footer-btn:hover{background:#212126}.telebox-color-scheme-dark .netless-app-docs-viewer-preview{background:rgba(50,50,50,.9)}.netless-app-docs-viewer-static-scrollbar{position:absolute;top:0;right:0;z-index:2147483647;width:8px;min-height:30px;margin:0;padding:0;border:none;outline:none;border-radius:4px;background:rgba(68,78,96,.4);box-shadow:1px 1px 8px #ffffffb3;opacity:0;transition:background .4s,opacity .4s 3s,transform .2s;user-select:none}.netless-app-docs-viewer-static-scrollbar.netless-app-docs-viewer-static-scrollbar-dragging{background:rgba(68,78,96,.6);opacity:1;transition:background .4s,opacity .4s 3s!important}.netless-app-docs-viewer-static-scrollbar:hover,.netless-app-docs-viewer-static-scrollbar:focus{background:rgba(68,78,96,.5)}.netless-app-docs-viewer-static-scrollbar:active{background:rgba(68,78,96,.6)}.netless-app-docs-viewer-content:hover .netless-app-docs-viewer-static-scrollbar{opacity:1;transition:background .4s,opacity .4s,transform .2s}.netless-app-docs-viewer-readonly .netless-app-docs-viewer-static-scrollbar{display:none}.netless-app-docs-viewer-static-pages:hover .netless-app-docs-viewer-static-scrollbar{opacity:1;transition:background .4s,opacity .4s,transform .2s}.page-renderer-pages-container{position:relative;overflow:hidden}.page-renderer-page{position:absolute;top:0;left:0;background-position:center;background-size:cover;background-repeat:no-repeat}.page-renderer-pages-container.is-hwa .page-renderer-page{will-change:transform}.page-renderer-page-img{display:block;width:100%;height:auto;user-select:none}.netless-app-docs-viewer-static-pages{overflow:hidden;position:relative;height:100%;user-select:none}.netless-app-docs-viewer-static-page{display:block;width:100%;height:auto;user-select:none}.netless-app-docs-viewer-static-wb-view,.netless-app-docs-viewer-dynamic-wb-view{position:absolute;top:0;left:0;width:100%;height:100%;z-index:100;overflow:hidden}.netless-app-docs-viewer-dynamic-wb-view .cursor-clicker .ppt-event-source{cursor:pointer}\n";
|
7592
|
+
var styles = /* @__PURE__ */ (() => ".netless-app-docs-viewer-content{position:relative;height:100%;overflow:hidden}.netless-app-docs-viewer-preview-mask{display:none;position:absolute;z-index:200;top:0;left:0;width:100%;height:100%}.netless-app-docs-viewer-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-docs-viewer-preview-active .netless-app-docs-viewer-preview-mask{display:block}.netless-app-docs-viewer-preview-active .netless-app-docs-viewer-preview{transform:translate(0)}.netless-app-docs-viewer-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-docs-viewer-preview-page:hover,.netless-app-docs-viewer-preview-page.netless-app-docs-viewer-preview-page-active{border-color:#444e601a}.netless-app-docs-viewer-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-docs-viewer-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-docs-viewer-footer{box-sizing:border-box;height:26px;display:flex;align-items:center;padding:0 16px;border-top:1px solid #eeeef7;color:#191919}.netless-app-docs-viewer-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-docs-viewer-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-docs-viewer-footer-btn:hover{background:rgba(237,237,240,.9)}@media (hover: none){.netless-app-docs-viewer-footer-btn:hover{background:transparent!important}}.netless-app-docs-viewer-footer-btn>svg{width:100%;height:100%}.netless-app-docs-viewer-footer-btn>svg:nth-of-type(2){display:none}.netless-app-docs-viewer-footer-btn.netless-app-docs-viewer-footer-btn-playing>svg:nth-of-type(1){display:none}.netless-app-docs-viewer-footer-btn.netless-app-docs-viewer-footer-btn-playing>svg:nth-of-type(2){display:initial}.netless-app-docs-viewer-footer-btn~.netless-app-docs-viewer-footer-btn{margin-left:15px}.netless-app-docs-viewer-page-jumps{flex:1;display:flex;justify-content:center;align-items:center}.netless-app-docs-viewer-page-number{margin-left:auto;font-size:13px;user-select:none;white-space:nowrap;word-break:keep-all}.netless-app-docs-viewer-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-docs-viewer-page-number-input:hover,.netless-app-docs-viewer-page-number-input:focus,.netless-app-docs-viewer-page-number-input:active{background:#fff;box-shadow:#63636333 0 2px 8px}.netless-app-docs-viewer-readonly .netless-app-docs-viewer-footer-btn{cursor:not-allowed}.netless-app-docs-viewer-readonly .netless-app-docs-viewer-footer-btn:hover{background:transparent}.netless-app-docs-viewer-readonly .netless-app-docs-viewer-page-number-input{cursor:not-allowed}.netless-app-docs-viewer-readonly .netless-app-docs-viewer-page-number-input:hover,.netless-app-docs-viewer-readonly .netless-app-docs-viewer-page-number-input:focus,.netless-app-docs-viewer-readonly .netless-app-docs-viewer-page-number-input:active{background:transparent;box-shadow:none}.netless-app-docs-viewer-readonly .netless-app-docs-viewer-page-number-input:disabled{color:inherit}.netless-app-docs-viewer-readonly.netless-app-docs-viewer-float-footer{display:none}.telebox-color-scheme-dark .netless-app-docs-viewer-page-number-input{color:#a6a6a8}.telebox-color-scheme-dark .netless-app-docs-viewer-page-number-input:active,.telebox-color-scheme-dark .netless-app-docs-viewer-page-number-input:focus,.telebox-color-scheme-dark .netless-app-docs-viewer-page-number-input:hover{color:#222}.telebox-color-scheme-dark .netless-app-docs-viewer-footer{color:#a6a6a8;background:#2d2d33;border-top:none}.telebox-color-scheme-dark .netless-app-docs-viewer-footer-btn:hover{background:#212126}.telebox-color-scheme-dark .netless-app-docs-viewer-preview{background:rgba(50,50,50,.9)}.netless-app-docs-viewer-static-scrollbar{position:absolute;top:0;right:0;z-index:2147483647;width:8px;min-height:30px;margin:0;padding:0;border:none;outline:none;border-radius:4px;background:rgba(68,78,96,.4);box-shadow:1px 1px 8px #ffffffb3;opacity:0;transition:background .4s,opacity .4s 3s,transform .2s;user-select:none}.netless-app-docs-viewer-static-scrollbar.netless-app-docs-viewer-static-scrollbar-dragging{background:rgba(68,78,96,.6);opacity:1;transition:background .4s,opacity .4s 3s!important}.netless-app-docs-viewer-static-scrollbar:hover,.netless-app-docs-viewer-static-scrollbar:focus{background:rgba(68,78,96,.5)}.netless-app-docs-viewer-static-scrollbar:active{background:rgba(68,78,96,.6)}.netless-app-docs-viewer-content:hover .netless-app-docs-viewer-static-scrollbar{opacity:1;transition:background .4s,opacity .4s,transform .2s}.netless-app-docs-viewer-readonly .netless-app-docs-viewer-static-scrollbar{display:none}.netless-app-docs-viewer-static-pages:hover .netless-app-docs-viewer-static-scrollbar{opacity:1;transition:background .4s,opacity .4s,transform .2s}.page-renderer-pages-container{position:relative;overflow:hidden}.page-renderer-page{position:absolute;top:0;left:0;background-position:center;background-size:cover;background-repeat:no-repeat}.page-renderer-pages-container.is-hwa .page-renderer-page{will-change:transform}.page-renderer-page-img{display:block;width:100%;height:auto;user-select:none}.netless-app-docs-viewer-static-pages{overflow:hidden;position:relative;height:100%;user-select:none}.netless-app-docs-viewer-static-page{display:block;width:100%;height:auto;user-select:none}.netless-app-docs-viewer-static-wb-view,.netless-app-docs-viewer-dynamic-wb-view{position:absolute;top:0;left:0;width:100%;height:100%;z-index:100;overflow:hidden}.netless-app-docs-viewer-dynamic-wb-view .cursor-clicker .ppt-event-source{cursor:pointer}\n")();
|
7590
7593
|
const copyProperty = (to, from, property, ignoreNonConfigurable) => {
|
7591
7594
|
if (property === "length" || property === "prototype") {
|
7592
7595
|
return;
|
@@ -7692,59 +7695,63 @@ const debounceFn = (inputFunction, options = {}) => {
|
|
7692
7695
|
};
|
7693
7696
|
return debouncedFunction;
|
7694
7697
|
};
|
7695
|
-
const
|
7696
|
-
for (let
|
7697
|
-
t$1[
|
7698
|
+
const s$1 = "!#%()*+,-./:;=?@[]^_`{|}~ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789", e$1 = s$1.length, t$1 = Array(20), i$1 = () => {
|
7699
|
+
for (let i2 = 0; i2 < 20; i2++)
|
7700
|
+
t$1[i2] = s$1.charAt(Math.random() * e$1);
|
7698
7701
|
return t$1.join("");
|
7699
7702
|
};
|
7700
|
-
|
7703
|
+
function r$2(s2) {
|
7704
|
+
try {
|
7705
|
+
return s2();
|
7706
|
+
} catch (e2) {
|
7707
|
+
console.error(e2);
|
7708
|
+
}
|
7709
|
+
}
|
7710
|
+
class n$2 {
|
7701
7711
|
constructor() {
|
7702
7712
|
this.disposers = /* @__PURE__ */ new Map();
|
7703
7713
|
}
|
7704
|
-
|
7705
|
-
return this.flush(
|
7714
|
+
addDisposer(s2, e2 = this.genUID()) {
|
7715
|
+
return this.flush(e2), this.disposers.set(e2, Array.isArray(s2) ? () => s2.forEach(r$2) : s2), e2;
|
7706
7716
|
}
|
7707
|
-
|
7708
|
-
return this.
|
7717
|
+
add(s2, e2 = this.genUID()) {
|
7718
|
+
return this.addDisposer(s2(), e2);
|
7709
7719
|
}
|
7710
|
-
addEventListener(
|
7711
|
-
return
|
7720
|
+
addEventListener(s2, e2, t2, i2, r2 = this.genUID()) {
|
7721
|
+
return s2.addEventListener(e2, t2, i2), this.addDisposer(() => s2.removeEventListener(e2, t2, i2), r2), r2;
|
7712
7722
|
}
|
7713
|
-
setTimeout(
|
7714
|
-
|
7715
|
-
|
7716
|
-
|
7717
|
-
|
7718
|
-
return () => window.clearTimeout(r2);
|
7719
|
-
}, t2);
|
7723
|
+
setTimeout(s2, e2, t2 = this.genUID()) {
|
7724
|
+
const i2 = window.setTimeout(() => {
|
7725
|
+
this.remove(t2), s2();
|
7726
|
+
}, e2);
|
7727
|
+
return this.addDisposer(() => window.clearTimeout(i2), t2);
|
7720
7728
|
}
|
7721
|
-
setInterval(
|
7722
|
-
|
7723
|
-
|
7724
|
-
return () => window.clearInterval(t3);
|
7725
|
-
}, t2);
|
7729
|
+
setInterval(s2, e2, t2 = this.genUID()) {
|
7730
|
+
const i2 = window.setInterval(s2, e2);
|
7731
|
+
return this.addDisposer(() => window.clearInterval(i2), t2);
|
7726
7732
|
}
|
7727
|
-
remove(
|
7728
|
-
const
|
7729
|
-
return this.disposers.delete(
|
7733
|
+
remove(s2) {
|
7734
|
+
const e2 = this.disposers.get(s2);
|
7735
|
+
return this.disposers.delete(s2), e2;
|
7730
7736
|
}
|
7731
|
-
flush(
|
7732
|
-
const
|
7733
|
-
if (
|
7737
|
+
flush(s2) {
|
7738
|
+
const e2 = this.remove(s2);
|
7739
|
+
if (e2)
|
7734
7740
|
try {
|
7735
|
-
|
7741
|
+
e2();
|
7736
7742
|
} catch (t2) {
|
7737
7743
|
console.error(t2);
|
7738
7744
|
}
|
7739
7745
|
}
|
7740
7746
|
flushAll() {
|
7741
|
-
this.disposers.forEach((
|
7742
|
-
|
7743
|
-
|
7744
|
-
|
7745
|
-
|
7746
|
-
|
7747
|
-
}
|
7747
|
+
this.disposers.forEach(r$2), this.disposers.clear();
|
7748
|
+
}
|
7749
|
+
genUID() {
|
7750
|
+
let s2;
|
7751
|
+
do {
|
7752
|
+
s2 = i$1();
|
7753
|
+
} while (this.disposers.has(s2));
|
7754
|
+
return s2;
|
7748
7755
|
}
|
7749
7756
|
}
|
7750
7757
|
var resizeObservers = [];
|
@@ -8329,6 +8336,7 @@ const defaultSettings = {
|
|
8329
8336
|
data_bg_hidpi: "bg-hidpi",
|
8330
8337
|
data_bg_multi: "bg-multi",
|
8331
8338
|
data_bg_multi_hidpi: "bg-multi-hidpi",
|
8339
|
+
data_bg_set: "bg-set",
|
8332
8340
|
data_poster: "poster",
|
8333
8341
|
class_applied: "applied",
|
8334
8342
|
class_loading: "loading",
|
@@ -8347,7 +8355,8 @@ const defaultSettings = {
|
|
8347
8355
|
callback_error: null,
|
8348
8356
|
callback_finish: null,
|
8349
8357
|
callback_cancel: null,
|
8350
|
-
use_native: false
|
8358
|
+
use_native: false,
|
8359
|
+
restore_on_error: false
|
8351
8360
|
};
|
8352
8361
|
const getExtendedSettings = (customSettings) => {
|
8353
8362
|
return Object.assign({}, defaultSettings, customSettings);
|
@@ -8619,6 +8628,20 @@ const setMultiBackground = (element2, settings, instance2) => {
|
|
8619
8628
|
element2.style.backgroundImage = bgDataValue;
|
8620
8629
|
manageApplied(element2, settings, instance2);
|
8621
8630
|
};
|
8631
|
+
const setImgsetBackground = (element2, settings, instance2) => {
|
8632
|
+
const bgImgSetDataValue = getData(element2, settings.data_bg_set);
|
8633
|
+
if (!bgImgSetDataValue) {
|
8634
|
+
return;
|
8635
|
+
}
|
8636
|
+
const imgSetValues = bgImgSetDataValue.split("|");
|
8637
|
+
let bgImageValues = imgSetValues.map((value) => `image-set(${value})`);
|
8638
|
+
element2.style.backgroundImage = bgImageValues.join();
|
8639
|
+
if (element2.style.backgroundImage === "") {
|
8640
|
+
bgImageValues = imgSetValues.map((value) => `-webkit-image-set(${value})`);
|
8641
|
+
element2.style.backgroundImage = bgImageValues.join();
|
8642
|
+
}
|
8643
|
+
manageApplied(element2, settings, instance2);
|
8644
|
+
};
|
8622
8645
|
const setSourcesFunctions = {
|
8623
8646
|
IMG: setSourcesImg,
|
8624
8647
|
IFRAME: setSourcesIframe,
|
@@ -8699,6 +8722,8 @@ const errorHandler = (event, element2, settings, instance2) => {
|
|
8699
8722
|
addClass(element2, settings.class_error);
|
8700
8723
|
setStatus(element2, statusError);
|
8701
8724
|
safeCallback(settings.callback_error, element2, instance2);
|
8725
|
+
if (settings.restore_on_error)
|
8726
|
+
restoreOriginalAttrs(element2, attrsSrcSrcsetSizes);
|
8702
8727
|
if (!goingNative)
|
8703
8728
|
checkFinish(settings, instance2);
|
8704
8729
|
};
|
@@ -8723,6 +8748,7 @@ const loadBackground = (element2, settings, instance2) => {
|
|
8723
8748
|
saveOriginalBackgroundStyle(element2);
|
8724
8749
|
setBackground(element2, settings, instance2);
|
8725
8750
|
setMultiBackground(element2, settings, instance2);
|
8751
|
+
setImgsetBackground(element2, settings, instance2);
|
8726
8752
|
};
|
8727
8753
|
const loadRegular = (element2, settings, instance2) => {
|
8728
8754
|
addOneShotEventListeners(element2, settings, instance2);
|
@@ -8889,9 +8915,16 @@ const setOnlineCheck = (settings, instance2) => {
|
|
8889
8915
|
if (!runningOnBrowser) {
|
8890
8916
|
return;
|
8891
8917
|
}
|
8892
|
-
|
8918
|
+
instance2._onlineHandler = () => {
|
8893
8919
|
retryLazyLoad(settings, instance2);
|
8894
|
-
}
|
8920
|
+
};
|
8921
|
+
window.addEventListener("online", instance2._onlineHandler);
|
8922
|
+
};
|
8923
|
+
const resetOnlineCheck = (instance2) => {
|
8924
|
+
if (!runningOnBrowser) {
|
8925
|
+
return;
|
8926
|
+
}
|
8927
|
+
window.removeEventListener("online", instance2._onlineHandler);
|
8895
8928
|
};
|
8896
8929
|
const LazyLoad = function(customSettings, elements) {
|
8897
8930
|
const settings = getExtendedSettings(customSettings);
|
@@ -8920,11 +8953,13 @@ LazyLoad.prototype = {
|
|
8920
8953
|
if (this._observer) {
|
8921
8954
|
this._observer.disconnect();
|
8922
8955
|
}
|
8956
|
+
resetOnlineCheck(this);
|
8923
8957
|
queryElements(this._settings).forEach((element2) => {
|
8924
8958
|
deleteOriginalAttrs(element2);
|
8925
8959
|
});
|
8926
8960
|
delete this._observer;
|
8927
8961
|
delete this._settings;
|
8962
|
+
delete this._onlineHandler;
|
8928
8963
|
delete this.loadingCount;
|
8929
8964
|
delete this.toLoadCount;
|
8930
8965
|
},
|
@@ -8959,7 +8994,7 @@ class DocsViewer {
|
|
8959
8994
|
this.namespace = "netless-app-docs-viewer";
|
8960
8995
|
this.isShowPreview = false;
|
8961
8996
|
this.isSmallBox = false;
|
8962
|
-
this.sideEffect = new
|
8997
|
+
this.sideEffect = new n$2();
|
8963
8998
|
if (pages.length <= 0) {
|
8964
8999
|
throw new Error("[DocsViewer] Empty pages.");
|
8965
9000
|
}
|
@@ -9514,7 +9549,7 @@ class PageRenderer {
|
|
9514
9549
|
const SCROLLBAR_DEFAULT_MIN_HEIGHT = 30;
|
9515
9550
|
class ScrollBar {
|
9516
9551
|
constructor(config) {
|
9517
|
-
this.sideEffect = new
|
9552
|
+
this.sideEffect = new n$2();
|
9518
9553
|
this.pagesScrollTop = config.pagesScrollTop || 0;
|
9519
9554
|
this.containerWidth = config.containerWidth || 1;
|
9520
9555
|
this.containerHeight = config.containerHeight || 1;
|
@@ -9641,17 +9676,68 @@ class StaticDocsViewer {
|
|
9641
9676
|
pages,
|
9642
9677
|
pageScrollTop = 0,
|
9643
9678
|
mountWhiteboard,
|
9644
|
-
onUserScroll
|
9679
|
+
onUserScroll,
|
9680
|
+
baseScenePath,
|
9681
|
+
appId
|
9645
9682
|
}) {
|
9646
|
-
this.sideEffect = new
|
9683
|
+
this.sideEffect = new n$2();
|
9647
9684
|
this.userScrolling = false;
|
9648
9685
|
this.onNewPageIndex = (index2) => {
|
9649
9686
|
this.scrollToPage(index2);
|
9650
9687
|
};
|
9688
|
+
this.toPdf = async () => {
|
9689
|
+
const whiteSnapshotCanvas = document.createElement("canvas");
|
9690
|
+
const whiteCtx = whiteSnapshotCanvas.getContext("2d");
|
9691
|
+
if (!whiteCtx || !this.baseScenePath) {
|
9692
|
+
this.reportProgress(100, null);
|
9693
|
+
return;
|
9694
|
+
}
|
9695
|
+
const scenePath = `${this.baseScenePath}/1`;
|
9696
|
+
const firstPage = this.pages[0];
|
9697
|
+
const { jsPDF } = await import("jspdf");
|
9698
|
+
const pdf = new jsPDF({
|
9699
|
+
format: [firstPage.width, firstPage.height],
|
9700
|
+
orientation: firstPage.width > firstPage.height ? "l" : "p",
|
9701
|
+
compress: true
|
9702
|
+
});
|
9703
|
+
for (const [index2, page] of this.pages.entries()) {
|
9704
|
+
const { width, height, src } = page;
|
9705
|
+
whiteSnapshotCanvas.width = width;
|
9706
|
+
whiteSnapshotCanvas.height = height;
|
9707
|
+
const orientation = width > height ? "l" : "p";
|
9708
|
+
if (index2 > 0) {
|
9709
|
+
pdf.addPage([width, height], orientation);
|
9710
|
+
}
|
9711
|
+
const pdfPageSrc = await this.getBase64FromUrl(src);
|
9712
|
+
const img = document.createElement("img");
|
9713
|
+
img.src = pdfPageSrc;
|
9714
|
+
await new Promise((resolve) => img.onload = resolve);
|
9715
|
+
whiteCtx.drawImage(img, 0, 0);
|
9716
|
+
const pdfPageBase64 = whiteSnapshotCanvas.toDataURL("image/jpeg", 0.6);
|
9717
|
+
whiteCtx.clearRect(0, 0, width, height);
|
9718
|
+
this.whiteboardView.screenshotToCanvas(whiteCtx, scenePath, width, height, {
|
9719
|
+
centerX: width / 2,
|
9720
|
+
centerY: height / 2 + index2 * height,
|
9721
|
+
scale: 1
|
9722
|
+
});
|
9723
|
+
const snapshot = whiteSnapshotCanvas.toDataURL("image/png");
|
9724
|
+
pdf.addImage(pdfPageBase64, "JPEG", 0, 0, width, height, "", "FAST");
|
9725
|
+
pdf.addImage(snapshot, "PNG", 0, 0, width, height, "", "FAST");
|
9726
|
+
whiteCtx.clearRect(0, 0, width, height);
|
9727
|
+
const progress = Math.ceil((index2 + 1) / this.pages.length * 100);
|
9728
|
+
if (progress < 100) {
|
9729
|
+
this.reportProgress(Math.ceil((index2 + 1) / this.pages.length * 100), null);
|
9730
|
+
}
|
9731
|
+
}
|
9732
|
+
const dataUrl = pdf.output("arraybuffer");
|
9733
|
+
this.reportProgress(100, { pdf: dataUrl, title: this.box.title });
|
9734
|
+
};
|
9651
9735
|
this.whiteboardView = whiteboardView;
|
9652
9736
|
this.readonly = readonly;
|
9653
9737
|
this.box = box;
|
9654
9738
|
this.pages = pages;
|
9739
|
+
this.baseScenePath = baseScenePath;
|
9740
|
+
this.appId = appId;
|
9655
9741
|
this.mountWhiteboard = mountWhiteboard;
|
9656
9742
|
this._onUserScroll = onUserScroll;
|
9657
9743
|
const debouncedOnUserScroll = this.debounce(() => {
|
@@ -9715,6 +9801,17 @@ class StaticDocsViewer {
|
|
9715
9801
|
this.pageScrollTo(this.pageRenderer.pagesScrollTop);
|
9716
9802
|
}
|
9717
9803
|
}, 100);
|
9804
|
+
this.sideEffect.add(() => {
|
9805
|
+
const handleDownloadPdf = (evt) => {
|
9806
|
+
if (evt.data.type === "@netless/_request_save_pdf_" && evt.data.appId === this.appId) {
|
9807
|
+
this.toPdf().catch(() => this.reportProgress(100, null));
|
9808
|
+
}
|
9809
|
+
};
|
9810
|
+
window.addEventListener("message", handleDownloadPdf);
|
9811
|
+
return () => {
|
9812
|
+
window.removeEventListener("message", handleDownloadPdf);
|
9813
|
+
};
|
9814
|
+
});
|
9718
9815
|
return this;
|
9719
9816
|
}
|
9720
9817
|
unmount() {
|
@@ -9908,10 +10005,30 @@ class StaticDocsViewer {
|
|
9908
10005
|
wrapClassName(className) {
|
9909
10006
|
return "netless-app-docs-viewer-static-" + className;
|
9910
10007
|
}
|
10008
|
+
async getBase64FromUrl(url) {
|
10009
|
+
const data = await fetch(url);
|
10010
|
+
const blob = await data.blob();
|
10011
|
+
return new Promise((resolve) => {
|
10012
|
+
const reader = new FileReader();
|
10013
|
+
reader.readAsDataURL(blob);
|
10014
|
+
reader.onloadend = () => {
|
10015
|
+
const base64data = reader.result;
|
10016
|
+
resolve(base64data);
|
10017
|
+
};
|
10018
|
+
});
|
10019
|
+
}
|
10020
|
+
reportProgress(progress, result) {
|
10021
|
+
window.postMessage({
|
10022
|
+
type: "@netless/_result_save_pdf_",
|
10023
|
+
appId: this.appId,
|
10024
|
+
progress,
|
10025
|
+
result
|
10026
|
+
});
|
10027
|
+
}
|
9911
10028
|
}
|
9912
10029
|
class DynamicDocsViewer {
|
9913
10030
|
constructor({ context, whiteboardView, box, pages }) {
|
9914
|
-
this.sideEffect = new
|
10031
|
+
this.sideEffect = new n$2();
|
9915
10032
|
this.onPlayPPT = () => {
|
9916
10033
|
const room = this.context.getRoom();
|
9917
10034
|
if (room) {
|
@@ -10136,7 +10253,9 @@ function setupStaticDocsViewer(context, whiteboardView, box, pages) {
|
|
10136
10253
|
if (((_a2 = context.getAttributes()) == null ? void 0 : _a2.pageScrollTop) !== pageScrollTop && !box.readonly) {
|
10137
10254
|
context.updateAttributes(["pageScrollTop"], pageScrollTop);
|
10138
10255
|
}
|
10139
|
-
}
|
10256
|
+
},
|
10257
|
+
baseScenePath: context.getInitScenePath(),
|
10258
|
+
appId: context.appId
|
10140
10259
|
}).mount();
|
10141
10260
|
context.emitter.on("attributesUpdate", (attributes) => {
|
10142
10261
|
if (attributes) {
|
@@ -16736,14 +16855,14 @@ const reconnectRefresher = new ReconnectRefresher({ emitter });
|
|
16736
16855
|
const _WindowManager = class extends InvisiblePlugin {
|
16737
16856
|
constructor(context) {
|
16738
16857
|
super(context);
|
16739
|
-
this.version = "0.4.
|
16740
|
-
this.dependencies = { "dependencies": { "@juggle/resize-observer": "^3.3.1", "@netless/telebox-insider": "0.2.27", "emittery": "^0.9.2", "lodash": "^4.17.21", "p-retry": "^4.6.1", "side-effect-manager": "^0.1.5", "uuid": "^7.0.3", "video.js": ">=7" }, "peerDependencies": { "white-web-sdk": "^2.16.0" }, "devDependencies": { "@netless/app-docs-viewer": "^0.2.
|
16858
|
+
this.version = "0.4.51";
|
16859
|
+
this.dependencies = { "dependencies": { "@juggle/resize-observer": "^3.3.1", "@netless/telebox-insider": "0.2.27", "emittery": "^0.9.2", "lodash": "^4.17.21", "p-retry": "^4.6.1", "side-effect-manager": "^0.1.5", "uuid": "^7.0.3", "video.js": ">=7" }, "peerDependencies": { "jspdf": "2.5.1", "white-web-sdk": "^2.16.0" }, "devDependencies": { "@netless/app-docs-viewer": "^0.2.11", "@netless/app-media-player": "0.1.0-beta.5", "@rollup/plugin-commonjs": "^20.0.0", "@rollup/plugin-node-resolve": "^13.0.4", "@rollup/plugin-url": "^6.1.0", "@sveltejs/vite-plugin-svelte": "^1.0.0-next.22", "@tsconfig/svelte": "^2.0.1", "@types/debug": "^4.1.7", "@types/lodash": "^4.14.182", "@types/lodash-es": "^4.17.4", "@types/uuid": "^8.3.1", "@typescript-eslint/eslint-plugin": "^4.30.0", "@typescript-eslint/parser": "^4.30.0", "@vitest/ui": "^0.14.1", "cypress": "^8.7.0", "dotenv": "^10.0.0", "eslint": "^7.32.0", "eslint-config-prettier": "^8.3.0", "eslint-plugin-svelte3": "^3.2.0", "jsdom": "^19.0.0", "less": "^4.1.1", "prettier": "^2.3.2", "prettier-plugin-svelte": "^2.4.0", "rollup-plugin-analyzer": "^4.0.0", "rollup-plugin-styles": "^3.14.1", "svelte": "^3.42.4", "typescript": "^4.5.5", "vite": "^2.5.3", "vitest": "^0.14.1", "white-web-sdk": "2.16.33" } };
|
16741
16860
|
this.emitter = callbacks$1;
|
16742
16861
|
this.viewMode = ViewMode.Broadcaster;
|
16743
16862
|
this.isReplay = isPlayer(this.displayer);
|
16744
16863
|
this.containerSizeRatio = _WindowManager.containerSizeRatio;
|
16745
16864
|
_WindowManager.displayer = context.displayer;
|
16746
|
-
window.NETLESS_DEPS = { "dependencies": { "@juggle/resize-observer": "^3.3.1", "@netless/telebox-insider": "0.2.27", "emittery": "^0.9.2", "lodash": "^4.17.21", "p-retry": "^4.6.1", "side-effect-manager": "^0.1.5", "uuid": "^7.0.3", "video.js": ">=7" }, "peerDependencies": { "white-web-sdk": "^2.16.0" }, "devDependencies": { "@netless/app-docs-viewer": "^0.2.
|
16865
|
+
window.NETLESS_DEPS = { "dependencies": { "@juggle/resize-observer": "^3.3.1", "@netless/telebox-insider": "0.2.27", "emittery": "^0.9.2", "lodash": "^4.17.21", "p-retry": "^4.6.1", "side-effect-manager": "^0.1.5", "uuid": "^7.0.3", "video.js": ">=7" }, "peerDependencies": { "jspdf": "2.5.1", "white-web-sdk": "^2.16.0" }, "devDependencies": { "@netless/app-docs-viewer": "^0.2.11", "@netless/app-media-player": "0.1.0-beta.5", "@rollup/plugin-commonjs": "^20.0.0", "@rollup/plugin-node-resolve": "^13.0.4", "@rollup/plugin-url": "^6.1.0", "@sveltejs/vite-plugin-svelte": "^1.0.0-next.22", "@tsconfig/svelte": "^2.0.1", "@types/debug": "^4.1.7", "@types/lodash": "^4.14.182", "@types/lodash-es": "^4.17.4", "@types/uuid": "^8.3.1", "@typescript-eslint/eslint-plugin": "^4.30.0", "@typescript-eslint/parser": "^4.30.0", "@vitest/ui": "^0.14.1", "cypress": "^8.7.0", "dotenv": "^10.0.0", "eslint": "^7.32.0", "eslint-config-prettier": "^8.3.0", "eslint-plugin-svelte3": "^3.2.0", "jsdom": "^19.0.0", "less": "^4.1.1", "prettier": "^2.3.2", "prettier-plugin-svelte": "^2.4.0", "rollup-plugin-analyzer": "^4.0.0", "rollup-plugin-styles": "^3.14.1", "svelte": "^3.42.4", "typescript": "^4.5.5", "vite": "^2.5.3", "vitest": "^0.14.1", "white-web-sdk": "2.16.33" } };
|
16747
16866
|
}
|
16748
16867
|
static async mount(params) {
|
16749
16868
|
const room = params.room;
|