@netless/window-manager 1.0.0-canary.34 → 1.0.0-canary.37
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/index.cjs.js +8 -9
- package/dist/index.es.js +2448 -2487
- package/dist/index.umd.js +8 -9
- package/dist/src/AppListener.d.ts +2 -0
- package/dist/src/BoxManager.d.ts +4 -1
- package/dist/src/View/CameraSynchronizer.d.ts +2 -1
- package/dist/src/callback.d.ts +3 -0
- package/dist/src/constants.d.ts +3 -1
- package/dist/src/index.d.ts +16 -5
- package/dist/style.css +1 -1
- package/docs/mirgrate-to-1.0.md +2 -1
- package/package.json +5 -6
- package/pnpm-lock.yaml +22 -205
- package/src/AppListener.ts +26 -1
- package/src/AppManager.ts +11 -2
- package/src/BoxManager.ts +16 -1
- package/src/BuiltinApps.ts +5 -5
- package/src/View/CameraSynchronizer.ts +9 -6
- package/src/View/MainView.ts +10 -0
- package/src/View/ViewSync.ts +7 -10
- package/src/callback.ts +4 -1
- package/src/constants.ts +2 -0
- package/src/index.ts +88 -20
package/pnpm-lock.yaml
CHANGED
@@ -2,9 +2,9 @@ lockfileVersion: 5.4
|
|
2
2
|
|
3
3
|
specifiers:
|
4
4
|
'@juggle/resize-observer': ^3.3.1
|
5
|
-
'@netless/app-docs-viewer': ^0.
|
6
|
-
'@netless/app-
|
7
|
-
'@netless/telebox-insider': 1.0.0-alpha.
|
5
|
+
'@netless/app-docs-viewer': ^0.3.0
|
6
|
+
'@netless/app-plyr': 0.2.0
|
7
|
+
'@netless/telebox-insider': 1.0.0-alpha.33
|
8
8
|
'@playwright/test': ^1.23.2
|
9
9
|
'@rollup/plugin-commonjs': ^20.0.0
|
10
10
|
'@rollup/plugin-node-resolve': ^13.0.4
|
@@ -38,7 +38,6 @@ specifiers:
|
|
38
38
|
typescript: ^4.5.5
|
39
39
|
uuid: ^7.0.3
|
40
40
|
value-enhancer: ^1.3.2
|
41
|
-
video.js: '>=7'
|
42
41
|
vite: ^2.5.3
|
43
42
|
vite-plugin-dts: ^1.2.1
|
44
43
|
vitest: ^0.18.0
|
@@ -46,18 +45,17 @@ specifiers:
|
|
46
45
|
|
47
46
|
dependencies:
|
48
47
|
'@juggle/resize-observer': 3.3.1
|
49
|
-
'@netless/telebox-insider': 1.0.0-alpha.
|
48
|
+
'@netless/telebox-insider': 1.0.0-alpha.33
|
50
49
|
emittery: 0.11.0
|
51
50
|
lodash: 4.17.21
|
52
51
|
p-retry: 4.6.2
|
53
52
|
side-effect-manager: 1.1.1
|
54
53
|
uuid: 7.0.3
|
55
54
|
value-enhancer: 1.3.2
|
56
|
-
video.js: 7.18.1
|
57
55
|
|
58
56
|
devDependencies:
|
59
|
-
'@netless/app-docs-viewer': 0.
|
60
|
-
'@netless/app-
|
57
|
+
'@netless/app-docs-viewer': 0.3.0
|
58
|
+
'@netless/app-plyr': 0.2.0
|
61
59
|
'@playwright/test': 1.23.2
|
62
60
|
'@rollup/plugin-commonjs': 20.0.0
|
63
61
|
'@rollup/plugin-node-resolve': 13.1.3
|
@@ -119,13 +117,6 @@ packages:
|
|
119
117
|
js-tokens: 4.0.0
|
120
118
|
dev: true
|
121
119
|
|
122
|
-
/@babel/runtime/7.17.8:
|
123
|
-
resolution: {integrity: sha512-dQpEpK0O9o6lj6oPu0gRDbbnk+4LeHlNcBpspf6Olzt3GIX4P1lWF1gS+pHLDFlaJvbR6q7jCfQ08zA4QJBnmA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/@babel/runtime/-/runtime-7.17.8.tgz}
|
124
|
-
engines: {node: '>=6.9.0'}
|
125
|
-
dependencies:
|
126
|
-
regenerator-runtime: 0.13.9
|
127
|
-
dev: false
|
128
|
-
|
129
120
|
/@babel/runtime/7.18.6:
|
130
121
|
resolution: {integrity: sha512-t9wi7/AW6XtKahAe20Yw0/mMljKq0B1r2fPdvaAdV/KPDZewFXdaaa6K7lxmZBZ8FBNpCiAT6iHPmd6QO9bKfQ==}
|
131
122
|
engines: {node: '>=6.9.0'}
|
@@ -240,24 +231,24 @@ packages:
|
|
240
231
|
resolution: {integrity: sha512-6Wci+Tp3CgPt/B9B0a3J4s3yMgLNSku6w5TV6mN+61C71UqsRBv2FUibBf3tPGlNxebgPHMEUzKpb1ggE8KCKw==}
|
241
232
|
dev: true
|
242
233
|
|
243
|
-
/@netless/app-docs-viewer/0.
|
244
|
-
resolution: {integrity: sha512-
|
234
|
+
/@netless/app-docs-viewer/0.3.0:
|
235
|
+
resolution: {integrity: sha512-L+637oRiLvROQzcppvod2Qwmri1qg0GBMuQKow1Qsrt4HT2KYjAXz8ShBELcUs/+ISgvsyont0CipiBrBlbYsA==}
|
245
236
|
dependencies:
|
246
|
-
|
247
|
-
|
248
|
-
vanilla-lazyload: 17.
|
237
|
+
remitter: 0.2.6
|
238
|
+
value-enhancer: 1.3.2
|
239
|
+
vanilla-lazyload: 17.8.2
|
249
240
|
dev: true
|
250
241
|
|
251
|
-
/@netless/app-
|
252
|
-
resolution: {integrity: sha512-
|
242
|
+
/@netless/app-plyr/0.2.0:
|
243
|
+
resolution: {integrity: sha512-noeWWwcI1Qlkw9Zf/MJispYsH+WsTjETO8tUx/o6qJLHkf2wH+B0AZeL+/wy+bqzSOITg6yDnxWvNdxFuhDNUQ==}
|
253
244
|
dev: true
|
254
245
|
|
255
246
|
/@netless/canvas-polyfill/0.0.4:
|
256
247
|
resolution: {integrity: sha512-7NzsJrba0R/mq/l10SkIZQwbrNVJyPxZYrjK6xL3Ts732iWAVuS2UB0u3s6iGeUVcqV39A679yva8APWRl4M0A==}
|
257
248
|
dev: true
|
258
249
|
|
259
|
-
/@netless/telebox-insider/1.0.0-alpha.
|
260
|
-
resolution: {integrity: sha512-
|
250
|
+
/@netless/telebox-insider/1.0.0-alpha.33:
|
251
|
+
resolution: {integrity: sha512-WWykQAFXtQH3zAbz16Rf4obOFe/oZudzidnrKdU1JC0r703gmGN0tyzc8ka2IrXVaknabMfcBKw2NxWY3H2XoA==}
|
261
252
|
dependencies:
|
262
253
|
'@juggle/resize-observer': 3.3.1
|
263
254
|
'@types/shallowequal': 1.1.1
|
@@ -718,57 +709,12 @@ packages:
|
|
718
709
|
eslint-visitor-keys: 2.1.0
|
719
710
|
dev: true
|
720
711
|
|
721
|
-
/@videojs/http-streaming/2.13.1:
|
722
|
-
resolution: {integrity: sha512-1x3fkGSPyL0+iaS3/lTvfnPTtfqzfgG+ELQtPPtTvDwqGol9Mx3TNyZwtSTdIufBrqYRn7XybB/3QNMsyjq13A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/@videojs/http-streaming/-/http-streaming-2.13.1.tgz}
|
723
|
-
engines: {node: '>=8', npm: '>=5'}
|
724
|
-
dependencies:
|
725
|
-
'@babel/runtime': 7.17.8
|
726
|
-
'@videojs/vhs-utils': 3.0.4
|
727
|
-
aes-decrypter: 3.1.2
|
728
|
-
global: 4.4.0
|
729
|
-
m3u8-parser: 4.7.0
|
730
|
-
mpd-parser: 0.21.0
|
731
|
-
mux.js: 6.0.1
|
732
|
-
video.js: 7.18.1
|
733
|
-
dev: false
|
734
|
-
|
735
|
-
/@videojs/vhs-utils/3.0.4:
|
736
|
-
resolution: {integrity: sha512-hui4zOj2I1kLzDgf8QDVxD3IzrwjS/43KiS8IHQO0OeeSsb4pB/lgNt1NG7Dv0wMQfCccUpMVLGcK618s890Yg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/@videojs/vhs-utils/-/vhs-utils-3.0.4.tgz}
|
737
|
-
engines: {node: '>=8', npm: '>=5'}
|
738
|
-
dependencies:
|
739
|
-
'@babel/runtime': 7.17.8
|
740
|
-
global: 4.4.0
|
741
|
-
url-toolkit: 2.2.5
|
742
|
-
dev: false
|
743
|
-
|
744
|
-
/@videojs/vhs-utils/3.0.5:
|
745
|
-
resolution: {integrity: sha512-PKVgdo8/GReqdx512F+ombhS+Bzogiofy1LgAj4tN8PfdBx3HSS7V5WfJotKTqtOWGwVfSWsrYN/t09/DSryrw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/@videojs/vhs-utils/-/vhs-utils-3.0.5.tgz}
|
746
|
-
engines: {node: '>=8', npm: '>=5'}
|
747
|
-
dependencies:
|
748
|
-
'@babel/runtime': 7.17.8
|
749
|
-
global: 4.4.0
|
750
|
-
url-toolkit: 2.2.5
|
751
|
-
dev: false
|
752
|
-
|
753
|
-
/@videojs/xhr/2.6.0:
|
754
|
-
resolution: {integrity: sha512-7J361GiN1tXpm+gd0xz2QWr3xNWBE+rytvo8J3KuggFaLg+U37gZQ2BuPLcnkfGffy2e+ozY70RHC8jt7zjA6Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/@videojs/xhr/-/xhr-2.6.0.tgz}
|
755
|
-
dependencies:
|
756
|
-
'@babel/runtime': 7.17.8
|
757
|
-
global: 4.4.0
|
758
|
-
is-function: 1.0.2
|
759
|
-
dev: false
|
760
|
-
|
761
712
|
/@vitest/ui/0.14.2:
|
762
713
|
resolution: {integrity: sha512-yV2paiv0/Obymx+9KV+KjM/FAbYF+PbnQiO2RFnZqDCgYwkkNmO1ZNNIetBeOzuNoi1BT1iPSKwtvL0PwCesDQ==}
|
763
714
|
dependencies:
|
764
715
|
sirv: 2.0.2
|
765
716
|
dev: true
|
766
717
|
|
767
|
-
/@xmldom/xmldom/0.7.5:
|
768
|
-
resolution: {integrity: sha512-V3BIhmY36fXZ1OtVcI9W+FxQqxVLsPKcNjWigIaa81dLC9IolJl5Mt4Cvhmr0flUnjSpTdrbMTSbXqYqV5dT6A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/@xmldom/xmldom/-/xmldom-0.7.5.tgz}
|
769
|
-
engines: {node: '>=10.0.0'}
|
770
|
-
dev: false
|
771
|
-
|
772
718
|
/abab/2.0.5:
|
773
719
|
resolution: {integrity: sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==}
|
774
720
|
dev: true
|
@@ -809,15 +755,6 @@ packages:
|
|
809
755
|
hasBin: true
|
810
756
|
dev: true
|
811
757
|
|
812
|
-
/aes-decrypter/3.1.2:
|
813
|
-
resolution: {integrity: sha512-42nRwfQuPRj9R1zqZBdoxnaAmnIFyDi0MNyTVhjdFOd8fifXKKRfwIHIZ6AMn1or4x5WONzjwRTbTWcsIQ0O4A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/aes-decrypter/-/aes-decrypter-3.1.2.tgz}
|
814
|
-
dependencies:
|
815
|
-
'@babel/runtime': 7.17.8
|
816
|
-
'@videojs/vhs-utils': 3.0.5
|
817
|
-
global: 4.4.0
|
818
|
-
pkcs7: 1.0.4
|
819
|
-
dev: false
|
820
|
-
|
821
758
|
/agent-base/6.0.2:
|
822
759
|
resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==}
|
823
760
|
engines: {node: '>= 6.0.0'}
|
@@ -1509,13 +1446,6 @@ packages:
|
|
1509
1446
|
resolution: {integrity: sha512-JLC809s6Y948/FuCZPm5IX8rRhQwOiyMb2TfVVQEixG7P8Lm/gt5S7yoQZmC8x1UehI9Pb7sksEt4xx14m+7Ug==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/dayjs/-/dayjs-1.11.0.tgz}
|
1510
1447
|
dev: true
|
1511
1448
|
|
1512
|
-
/debounce-fn/5.1.0:
|
1513
|
-
resolution: {integrity: sha512-cVmH6CjQyBnlP3nD3OPJw/+Afvbm/XVEkRedSivSCCmRtJehXWrQyM6S8iorH7TrOikgmZ2hII6A1laSpfSuHQ==}
|
1514
|
-
engines: {node: '>=12'}
|
1515
|
-
dependencies:
|
1516
|
-
mimic-fn: 4.0.0
|
1517
|
-
dev: true
|
1518
|
-
|
1519
1449
|
/debug/3.2.7:
|
1520
1450
|
resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==}
|
1521
1451
|
peerDependencies:
|
@@ -1648,10 +1578,6 @@ packages:
|
|
1648
1578
|
entities: 2.2.0
|
1649
1579
|
dev: true
|
1650
1580
|
|
1651
|
-
/dom-walk/0.1.2:
|
1652
|
-
resolution: {integrity: sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/dom-walk/-/dom-walk-0.1.2.tgz}
|
1653
|
-
dev: false
|
1654
|
-
|
1655
1581
|
/domelementtype/1.3.1:
|
1656
1582
|
resolution: {integrity: sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/domelementtype/-/domelementtype-1.3.1.tgz}
|
1657
1583
|
dev: true
|
@@ -2439,13 +2365,6 @@ packages:
|
|
2439
2365
|
ini: 2.0.0
|
2440
2366
|
dev: true
|
2441
2367
|
|
2442
|
-
/global/4.4.0:
|
2443
|
-
resolution: {integrity: sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/global/-/global-4.4.0.tgz}
|
2444
|
-
dependencies:
|
2445
|
-
min-document: 2.19.0
|
2446
|
-
process: 0.11.10
|
2447
|
-
dev: false
|
2448
|
-
|
2449
2368
|
/globals/13.13.0:
|
2450
2369
|
resolution: {integrity: sha512-EQ7Q18AJlPwp3vUDL4mKA0KXrXyNIQyWon6T6XQiBQF0XHvRsiCSrWmmeATpUzdJN2HhWZU6Pdl0a9zdep5p6A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/globals/-/globals-13.13.0.tgz}
|
2451
2370
|
engines: {node: '>=8'}
|
@@ -2629,10 +2548,6 @@ packages:
|
|
2629
2548
|
resolution: {integrity: sha512-bup+4tap3Hympa+JBJUG7XuOsdNQ6fxt0MHyXMKuLBKn0OqsTfvUxkUrroEX1+B2VsSHvCjiIcZVxRtYa4nllA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/indexes-of/-/indexes-of-1.0.1.tgz}
|
2630
2549
|
dev: true
|
2631
2550
|
|
2632
|
-
/individual/2.0.0:
|
2633
|
-
resolution: {integrity: sha512-pWt8hBCqJsUWI/HtcfWod7+N9SgAqyPEaF7JQjwzjn5vGrpg6aQ5qeAFQ7dx//UH4J1O+7xqew+gCeeFt6xN/g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/individual/-/individual-2.0.0.tgz}
|
2634
|
-
dev: false
|
2635
|
-
|
2636
2551
|
/inflight/1.0.6:
|
2637
2552
|
resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/inflight/-/inflight-1.0.6.tgz}
|
2638
2553
|
dependencies:
|
@@ -2736,10 +2651,6 @@ packages:
|
|
2736
2651
|
engines: {node: '>=8'}
|
2737
2652
|
dev: true
|
2738
2653
|
|
2739
|
-
/is-function/1.0.2:
|
2740
|
-
resolution: {integrity: sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/is-function/-/is-function-1.0.2.tgz}
|
2741
|
-
dev: false
|
2742
|
-
|
2743
2654
|
/is-glob/4.0.3:
|
2744
2655
|
resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/is-glob/-/is-glob-4.0.3.tgz}
|
2745
2656
|
engines: {node: '>=0.10.0'}
|
@@ -2976,10 +2887,6 @@ packages:
|
|
2976
2887
|
verror: 1.10.0
|
2977
2888
|
dev: true
|
2978
2889
|
|
2979
|
-
/keycode/2.2.1:
|
2980
|
-
resolution: {integrity: sha512-Rdgz9Hl9Iv4QKi8b0OlCRQEzp4AgVxyCtz5S/+VIHezDmrDhkp2N2TqBWOLz0/gbeREXOOiI9/4b8BY9uw2vFg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/keycode/-/keycode-2.2.1.tgz}
|
2981
|
-
dev: false
|
2982
|
-
|
2983
2890
|
/kleur/4.1.4:
|
2984
2891
|
resolution: {integrity: sha512-8QADVssbrFjivHWQU7KkMgptGTl6WAcSdlbBPY4uNF+mWr6DGcKrvY2w4FQJoXch7+fKMjj0dRrL75vk3k23OA==}
|
2985
2892
|
engines: {node: '>=6'}
|
@@ -3128,14 +3035,6 @@ packages:
|
|
3128
3035
|
yallist: 4.0.0
|
3129
3036
|
dev: true
|
3130
3037
|
|
3131
|
-
/m3u8-parser/4.7.0:
|
3132
|
-
resolution: {integrity: sha512-48l/OwRyjBm+QhNNigEEcRcgbRvnUjL7rxs597HmW9QSNbyNvt+RcZ9T/d9vxi9A9z7EZrB1POtZYhdRlwYQkQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/m3u8-parser/-/m3u8-parser-4.7.0.tgz}
|
3133
|
-
dependencies:
|
3134
|
-
'@babel/runtime': 7.17.8
|
3135
|
-
'@videojs/vhs-utils': 3.0.5
|
3136
|
-
global: 4.4.0
|
3137
|
-
dev: false
|
3138
|
-
|
3139
3038
|
/magic-string/0.25.9:
|
3140
3039
|
resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/magic-string/-/magic-string-0.25.9.tgz}
|
3141
3040
|
dependencies:
|
@@ -3238,17 +3137,6 @@ packages:
|
|
3238
3137
|
engines: {node: '>=6'}
|
3239
3138
|
dev: true
|
3240
3139
|
|
3241
|
-
/mimic-fn/4.0.0:
|
3242
|
-
resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==}
|
3243
|
-
engines: {node: '>=12'}
|
3244
|
-
dev: true
|
3245
|
-
|
3246
|
-
/min-document/2.19.0:
|
3247
|
-
resolution: {integrity: sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/min-document/-/min-document-2.19.0.tgz}
|
3248
|
-
dependencies:
|
3249
|
-
dom-walk: 0.1.2
|
3250
|
-
dev: false
|
3251
|
-
|
3252
3140
|
/minimatch/3.1.2:
|
3253
3141
|
resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/minimatch/-/minimatch-3.1.2.tgz}
|
3254
3142
|
dependencies:
|
@@ -3283,16 +3171,6 @@ packages:
|
|
3283
3171
|
resolution: {integrity: sha512-pHZ/cySF00FVENDWIDzJyoObFahK6Eg4d0papqm6d7yMkxWTZ/S/csqJX1A3PsYy4t5k3z2QnlwuCfMW5lSEwA==}
|
3284
3172
|
dev: true
|
3285
3173
|
|
3286
|
-
/mpd-parser/0.21.0:
|
3287
|
-
resolution: {integrity: sha512-NbpMJ57qQzFmfCiP1pbL7cGMbVTD0X1hqNgL0VYP1wLlZXLf/HtmvQpNkOA1AHkPVeGQng+7/jEtSvNUzV7Gdg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/mpd-parser/-/mpd-parser-0.21.0.tgz}
|
3288
|
-
hasBin: true
|
3289
|
-
dependencies:
|
3290
|
-
'@babel/runtime': 7.17.8
|
3291
|
-
'@videojs/vhs-utils': 3.0.5
|
3292
|
-
'@xmldom/xmldom': 0.7.5
|
3293
|
-
global: 4.4.0
|
3294
|
-
dev: false
|
3295
|
-
|
3296
3174
|
/mrmime/1.0.1:
|
3297
3175
|
resolution: {integrity: sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==}
|
3298
3176
|
engines: {node: '>=10'}
|
@@ -3306,15 +3184,6 @@ packages:
|
|
3306
3184
|
resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
|
3307
3185
|
dev: true
|
3308
3186
|
|
3309
|
-
/mux.js/6.0.1:
|
3310
|
-
resolution: {integrity: sha512-22CHb59rH8pWGcPGW5Og7JngJ9s+z4XuSlYvnxhLuc58cA1WqGDQPzuG8I+sPm1/p0CdgpzVTaKW408k5DNn8w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/mux.js/-/mux.js-6.0.1.tgz}
|
3311
|
-
engines: {node: '>=8', npm: '>=5'}
|
3312
|
-
hasBin: true
|
3313
|
-
dependencies:
|
3314
|
-
'@babel/runtime': 7.17.8
|
3315
|
-
global: 4.4.0
|
3316
|
-
dev: false
|
3317
|
-
|
3318
3187
|
/nanoid/3.3.2:
|
3319
3188
|
resolution: {integrity: sha512-CuHBogktKwpm5g2sRgv83jEy2ijFzBwMoYA60orPDR7ynsLijJDqgsi4RDGj3OJpy3Ieb+LYwiRmIOGyytgITA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/nanoid/-/nanoid-3.3.2.tgz}
|
3320
3189
|
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
|
@@ -3582,13 +3451,6 @@ packages:
|
|
3582
3451
|
dev: true
|
3583
3452
|
optional: true
|
3584
3453
|
|
3585
|
-
/pkcs7/1.0.4:
|
3586
|
-
resolution: {integrity: sha512-afRERtHn54AlwaF2/+LFszyAANTCggGilmcmILUzEjvs3XgFZT+xE6+QWQcAGmu4xajy+Xtj7acLOPdx5/eXWQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/pkcs7/-/pkcs7-1.0.4.tgz}
|
3587
|
-
hasBin: true
|
3588
|
-
dependencies:
|
3589
|
-
'@babel/runtime': 7.17.8
|
3590
|
-
dev: false
|
3591
|
-
|
3592
3454
|
/playwright-core/1.23.2:
|
3593
3455
|
resolution: {integrity: sha512-UGbutIr0nBALDHWW/HcXfyK6ZdmefC99Moo4qyTr89VNIkYZuDrW8Sw554FyFUamcFSdKOgDPk6ECSkofGIZjQ==}
|
3594
3456
|
engines: {node: '>=14'}
|
@@ -3963,11 +3825,6 @@ packages:
|
|
3963
3825
|
engines: {node: '>=6'}
|
3964
3826
|
dev: true
|
3965
3827
|
|
3966
|
-
/process/0.11.10:
|
3967
|
-
resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/process/-/process-0.11.10.tgz}
|
3968
|
-
engines: {node: '>= 0.6.0'}
|
3969
|
-
dev: false
|
3970
|
-
|
3971
3828
|
/progress/2.0.3:
|
3972
3829
|
resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/progress/-/progress-2.0.3.tgz}
|
3973
3830
|
engines: {node: '>=0.4.0'}
|
@@ -4104,12 +3961,17 @@ packages:
|
|
4104
3961
|
|
4105
3962
|
/regenerator-runtime/0.13.9:
|
4106
3963
|
resolution: {integrity: sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz}
|
3964
|
+
dev: true
|
4107
3965
|
|
4108
3966
|
/regexpp/3.2.0:
|
4109
3967
|
resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/regexpp/-/regexpp-3.2.0.tgz}
|
4110
3968
|
engines: {node: '>=8'}
|
4111
3969
|
dev: true
|
4112
3970
|
|
3971
|
+
/remitter/0.2.6:
|
3972
|
+
resolution: {integrity: sha512-vg6psVwfJsg7zcX7HVJ0UxZiRc0V7EfFOOzcp6WAEP2Br0G75DEM5KUglyxyMuxG57ntrfEBzqP6Cd91Nf2CBw==}
|
3973
|
+
dev: true
|
3974
|
+
|
4113
3975
|
/request-progress/3.0.0:
|
4114
3976
|
resolution: {integrity: sha512-MnWzEHHaxHO2iWiQuHrUPBi/1WeBf5PkxQqNyNvLl9VAYSdXkP8tQ3pBSeCPD+yw0v0Aq1zosWLz0BdeXpWwZg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/request-progress/-/request-progress-3.0.0.tgz}
|
4115
3977
|
dependencies:
|
@@ -4239,12 +4101,6 @@ packages:
|
|
4239
4101
|
queue-microtask: 1.2.3
|
4240
4102
|
dev: true
|
4241
4103
|
|
4242
|
-
/rust-result/1.0.0:
|
4243
|
-
resolution: {integrity: sha512-6cJzSBU+J/RJCF063onnQf0cDUOHs9uZI1oroSGnHOph+CQTIJ5Pp2hK5kEQq1+7yE/EEWfulSNXAQ2jikPthA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/rust-result/-/rust-result-1.0.0.tgz}
|
4244
|
-
dependencies:
|
4245
|
-
individual: 2.0.0
|
4246
|
-
dev: false
|
4247
|
-
|
4248
4104
|
/rxjs/7.5.5:
|
4249
4105
|
resolution: {integrity: sha512-sy+H0pQofO95VDmFLzyaw9xNJU4KTRSwQIGM6+iG3SypAtCiLDzpeG8sJrNCWn2Up9km+KhkvTdbkrdy+yzZdw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/rxjs/-/rxjs-7.5.5.tgz}
|
4250
4106
|
dependencies:
|
@@ -4255,12 +4111,6 @@ packages:
|
|
4255
4111
|
resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/safe-buffer/-/safe-buffer-5.2.1.tgz}
|
4256
4112
|
dev: true
|
4257
4113
|
|
4258
|
-
/safe-json-parse/4.0.0:
|
4259
|
-
resolution: {integrity: sha512-RjZPPHugjK0TOzFrLZ8inw44s9bKox99/0AZW9o/BEQVrJfhI+fIHMErnPyRa89/yRXUUr93q+tiN6zhoVV4wQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/safe-json-parse/-/safe-json-parse-4.0.0.tgz}
|
4260
|
-
dependencies:
|
4261
|
-
rust-result: 1.0.0
|
4262
|
-
dev: false
|
4263
|
-
|
4264
4114
|
/safer-buffer/2.1.2:
|
4265
4115
|
resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==}
|
4266
4116
|
dev: true
|
@@ -4785,10 +4635,6 @@ packages:
|
|
4785
4635
|
requires-port: 1.0.0
|
4786
4636
|
dev: true
|
4787
4637
|
|
4788
|
-
/url-toolkit/2.2.5:
|
4789
|
-
resolution: {integrity: sha512-mtN6xk+Nac+oyJ/PrI7tzfmomRVNFIWKUbG8jdYFt52hxbiReFAXIjYskvu64/dvuW71IcB7lV8l0HvZMac6Jg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/url-toolkit/-/url-toolkit-2.2.5.tgz}
|
4790
|
-
dev: false
|
4791
|
-
|
4792
4638
|
/url/0.11.0:
|
4793
4639
|
resolution: {integrity: sha512-kbailJa29QrtXnxgq+DdCEGlbTeYM2eJUxsz6vjZavrCYPMIFHMKQmSKYAIuUK2i7hgPm28a8piX5NTUtM/LKQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/url/-/url-0.11.0.tgz}
|
4794
4640
|
dependencies:
|
@@ -4829,10 +4675,9 @@ packages:
|
|
4829
4675
|
|
4830
4676
|
/value-enhancer/1.3.2:
|
4831
4677
|
resolution: {integrity: sha512-RC+yfNMwuLZO2iDtHh4dxvtHP00DnSO0VARBkVoxT1eOwMJ/Rs5jKh6nBUcotWncJhjfGGhQE4SUK8goLEC5oQ==}
|
4832
|
-
dev: false
|
4833
4678
|
|
4834
|
-
/vanilla-lazyload/17.
|
4835
|
-
resolution: {integrity: sha512-
|
4679
|
+
/vanilla-lazyload/17.8.2:
|
4680
|
+
resolution: {integrity: sha512-sz/dFM5tXi5LbDhx9l31bAdXXtYvKCZ2cCva4SgsKxFIHf0r/4j1HsnaDn60ga2DhbxLRtHh65J8JmHZHW0F8w==}
|
4836
4681
|
dev: true
|
4837
4682
|
|
4838
4683
|
/vendors/1.0.4:
|
@@ -4848,34 +4693,6 @@ packages:
|
|
4848
4693
|
extsprintf: 1.3.0
|
4849
4694
|
dev: true
|
4850
4695
|
|
4851
|
-
/video.js/7.18.1:
|
4852
|
-
resolution: {integrity: sha512-mnXdmkVcD5qQdKMZafDjqdhrnKGettZaGSVkExjACiylSB4r2Yt5W1bchsKmjFpfuNfszsMjTUnnoIWSSqoe/Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/video.js/-/video.js-7.18.1.tgz}
|
4853
|
-
dependencies:
|
4854
|
-
'@babel/runtime': 7.17.8
|
4855
|
-
'@videojs/http-streaming': 2.13.1
|
4856
|
-
'@videojs/vhs-utils': 3.0.5
|
4857
|
-
'@videojs/xhr': 2.6.0
|
4858
|
-
aes-decrypter: 3.1.2
|
4859
|
-
global: 4.4.0
|
4860
|
-
keycode: 2.2.1
|
4861
|
-
m3u8-parser: 4.7.0
|
4862
|
-
mpd-parser: 0.21.0
|
4863
|
-
mux.js: 6.0.1
|
4864
|
-
safe-json-parse: 4.0.0
|
4865
|
-
videojs-font: 3.2.0
|
4866
|
-
videojs-vtt.js: 0.15.3
|
4867
|
-
dev: false
|
4868
|
-
|
4869
|
-
/videojs-font/3.2.0:
|
4870
|
-
resolution: {integrity: sha512-g8vHMKK2/JGorSfqAZQUmYYNnXmfec4MLhwtEFS+mMs2IDY398GLysy6BH6K+aS1KMNu/xWZ8Sue/X/mdQPliA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/videojs-font/-/videojs-font-3.2.0.tgz}
|
4871
|
-
dev: false
|
4872
|
-
|
4873
|
-
/videojs-vtt.js/0.15.3:
|
4874
|
-
resolution: {integrity: sha512-5FvVsICuMRx6Hd7H/Y9s9GDeEtYcXQWzGMS+sl4UX3t/zoHp3y+isSfIPRochnTH7h+Bh1ILyC639xy9Z6kPag==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/videojs-vtt.js/-/videojs-vtt.js-0.15.3.tgz}
|
4875
|
-
dependencies:
|
4876
|
-
global: 4.4.0
|
4877
|
-
dev: false
|
4878
|
-
|
4879
4696
|
/vite-plugin-dts/1.2.1_vite@2.8.6:
|
4880
4697
|
resolution: {integrity: sha512-V59rsKQnPI6FTGybh/ED4+dyK3UeSkvC1CJzpuDNoXb7mKNUcWmg66EM0N5Ijoc8xDAfZIXYxQjg675YHIDvFw==}
|
4881
4698
|
engines: {node: '>=12.0.0'}
|
package/src/AppListener.ts
CHANGED
@@ -2,9 +2,10 @@ import { callbacks } from "./callback";
|
|
2
2
|
import { emitter } from "./InternalEmitter";
|
3
3
|
import { Events, MagixEventName } from "./constants";
|
4
4
|
import { setViewFocusScenePath } from "./Utils/Common";
|
5
|
-
import type { Event } from "white-web-sdk";
|
5
|
+
import type { AnimationMode, Camera, Event, Rectangle } from "white-web-sdk";
|
6
6
|
import type { AppManager } from "./AppManager";
|
7
7
|
import type { TeleBoxState } from "@netless/telebox-insider";
|
8
|
+
import { computedMinScale } from "./View/CameraSynchronizer";
|
8
9
|
|
9
10
|
type SetAppFocusIndex = {
|
10
11
|
type: "main" | "app";
|
@@ -73,6 +74,14 @@ export class AppListeners {
|
|
73
74
|
this.manager.attributesUpdateCallback(this.manager.attributes.apps);
|
74
75
|
break;
|
75
76
|
}
|
77
|
+
case Events.MoveCamera: {
|
78
|
+
this.moveCameraHandler(data.payload);
|
79
|
+
break;
|
80
|
+
}
|
81
|
+
case Events.MoveCameraToContain: {
|
82
|
+
this.moveCameraToContainHandler(data.payload);
|
83
|
+
break;
|
84
|
+
}
|
76
85
|
default:
|
77
86
|
break;
|
78
87
|
}
|
@@ -125,4 +134,20 @@ export class AppListeners {
|
|
125
134
|
}
|
126
135
|
}
|
127
136
|
}
|
137
|
+
|
138
|
+
private moveCameraHandler = (payload: Camera) => {
|
139
|
+
const cameraPayload = payload;
|
140
|
+
if (payload.scale) {
|
141
|
+
const remoteSize = this.manager.mainViewProxy.size$.value;
|
142
|
+
const currentSize = this.manager.boxManager?.stageRect;
|
143
|
+
if (remoteSize && currentSize) {
|
144
|
+
cameraPayload.scale = payload.scale * computedMinScale(remoteSize, currentSize);
|
145
|
+
}
|
146
|
+
}
|
147
|
+
this.manager.mainView.moveCamera(cameraPayload);
|
148
|
+
}
|
149
|
+
|
150
|
+
private moveCameraToContainHandler = (payload: Rectangle & { animationMode?: AnimationMode }) => {
|
151
|
+
this.manager.mainView.moveCameraToContain(payload);
|
152
|
+
}
|
128
153
|
}
|
package/src/AppManager.ts
CHANGED
@@ -472,16 +472,25 @@ export class AppManager {
|
|
472
472
|
if (appIds.length === 0) {
|
473
473
|
this.appCreateQueue.emitReady();
|
474
474
|
}
|
475
|
-
|
475
|
+
let appsWithCreatedAt = appIds.map(appId => {
|
476
476
|
if (apps[appId].setup) {
|
477
477
|
return {
|
478
478
|
id: appId,
|
479
479
|
createdAt: apps[appId].createdAt,
|
480
480
|
};
|
481
481
|
} else {
|
482
|
-
return {}
|
482
|
+
return {};
|
483
483
|
}
|
484
484
|
});
|
485
|
+
// 兼容 1.0 之前版本的回放, 回放时直接过判断 setup 直接创建 app
|
486
|
+
if (this.isReplay) {
|
487
|
+
appsWithCreatedAt = appIds.map(appId => {
|
488
|
+
return {
|
489
|
+
id: appId,
|
490
|
+
createdAt: apps[appId].createdAt,
|
491
|
+
};
|
492
|
+
});
|
493
|
+
}
|
485
494
|
for (const { id } of orderBy(appsWithCreatedAt, "createdAt", "asc")) {
|
486
495
|
if (id && !this.appProxies.has(id) && !this.appStatus.has(id)) {
|
487
496
|
const app = apps[id];
|
package/src/BoxManager.ts
CHANGED
@@ -15,7 +15,7 @@ import type {
|
|
15
15
|
TeleBoxRect,
|
16
16
|
TeleBoxConfig,
|
17
17
|
TeleBoxFullscreen
|
18
|
-
} from "@netless/telebox-insider";
|
18
|
+
, TeleBoxManagerThemeConfig } from "@netless/telebox-insider";
|
19
19
|
import type Emittery from "emittery";
|
20
20
|
import type { NetlessApp } from "./typings";
|
21
21
|
import type { View } from "white-web-sdk";
|
@@ -53,6 +53,9 @@ export type CreateTeleBoxManagerConfig = {
|
|
53
53
|
containerStyle?: string;
|
54
54
|
stageStyle?: string;
|
55
55
|
fullscreen?: TeleBoxFullscreen;
|
56
|
+
defaultBoxBodyStyle?: string | null;
|
57
|
+
defaultBoxStageStyle?: string | null;
|
58
|
+
theme?: TeleBoxManagerThemeConfig;
|
56
59
|
};
|
57
60
|
|
58
61
|
export type BoxManagerContext = {
|
@@ -268,6 +271,18 @@ export class BoxManager {
|
|
268
271
|
initManagerState.fullscreen = createTeleBoxManagerConfig.fullscreen;
|
269
272
|
}
|
270
273
|
|
274
|
+
if (createTeleBoxManagerConfig?.defaultBoxBodyStyle !== undefined) {
|
275
|
+
initManagerState.defaultBoxBodyStyle = createTeleBoxManagerConfig.defaultBoxBodyStyle;
|
276
|
+
}
|
277
|
+
|
278
|
+
if (createTeleBoxManagerConfig?.defaultBoxStageStyle !== undefined) {
|
279
|
+
initManagerState.defaultBoxStageStyle = createTeleBoxManagerConfig.defaultBoxStageStyle;
|
280
|
+
}
|
281
|
+
|
282
|
+
if (createTeleBoxManagerConfig?.theme) {
|
283
|
+
initManagerState.theme = createTeleBoxManagerConfig.theme;
|
284
|
+
}
|
285
|
+
|
271
286
|
const manager = new TeleBoxManager(initManagerState);
|
272
287
|
if (this.teleBoxManager) {
|
273
288
|
this.teleBoxManager.destroy();
|
package/src/BuiltinApps.ts
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
import AppDocsViewer from "@netless/app-docs-viewer";
|
2
|
-
import
|
2
|
+
import Plyr from "@netless/app-plyr";
|
3
3
|
import { WindowManager } from "./index";
|
4
4
|
|
5
5
|
export const setupBuiltin = () => {
|
@@ -8,17 +8,17 @@ export const setupBuiltin = () => {
|
|
8
8
|
src: AppDocsViewer,
|
9
9
|
});
|
10
10
|
WindowManager.register({
|
11
|
-
kind:
|
12
|
-
src:
|
11
|
+
kind: Plyr.kind,
|
12
|
+
src: Plyr,
|
13
13
|
});
|
14
14
|
};
|
15
15
|
|
16
16
|
export const BuiltinApps = {
|
17
17
|
DocsViewer: AppDocsViewer.kind as string,
|
18
|
-
MediaPlayer:
|
18
|
+
MediaPlayer: Plyr.kind as string,
|
19
19
|
};
|
20
20
|
|
21
21
|
export const BuiltinAppsMap = {
|
22
22
|
[BuiltinApps.DocsViewer]: AppDocsViewer,
|
23
|
-
[BuiltinApps.MediaPlayer]:
|
23
|
+
[BuiltinApps.MediaPlayer]: Plyr,
|
24
24
|
}
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import { AnimationMode } from "white-web-sdk";
|
2
2
|
import { isEqual, pick, throttle } from "lodash";
|
3
3
|
import type { TeleBoxRect } from "@netless/telebox-insider";
|
4
|
-
import type { Camera, View } from "white-web-sdk";
|
4
|
+
import type { Camera, View, Size } from "white-web-sdk";
|
5
5
|
import type { ICamera, ISize } from "../AttributesDelegate";
|
6
6
|
|
7
7
|
export type SaveCamera = (camera: ICamera) => void;
|
@@ -30,12 +30,9 @@ export class CameraSynchronizer {
|
|
30
30
|
this.remoteCamera = camera;
|
31
31
|
this.remoteSize = size;
|
32
32
|
if (this.remoteSize && this.rect) {
|
33
|
-
const
|
34
|
-
const
|
35
|
-
const nextScale = camera.scale * Math.min(wScale, hScale);
|
36
|
-
const config: Partial<Camera> & { animationMode: AnimationMode } = {
|
33
|
+
const nextScale = camera.scale * computedMinScale(size, this.rect);
|
34
|
+
const config: Partial<Camera> = {
|
37
35
|
scale: nextScale,
|
38
|
-
animationMode: AnimationMode.Immediately,
|
39
36
|
}
|
40
37
|
if (camera.centerX !== null) {
|
41
38
|
config.centerX = camera.centerX;
|
@@ -68,3 +65,9 @@ export class CameraSynchronizer {
|
|
68
65
|
this.view?.moveCamera({ ...camera, animationMode: AnimationMode.Immediately });
|
69
66
|
}
|
70
67
|
}
|
68
|
+
|
69
|
+
export const computedMinScale = (remoteSize: Size, currentSize: Size) => {
|
70
|
+
const wScale = currentSize.width / remoteSize.width;
|
71
|
+
const hScale = currentSize.height / remoteSize.height;
|
72
|
+
return Math.min(wScale, hScale);
|
73
|
+
}
|
package/src/View/MainView.ts
CHANGED
@@ -49,6 +49,16 @@ export class MainViewProxy {
|
|
49
49
|
}
|
50
50
|
}
|
51
51
|
}));
|
52
|
+
this.camera$.reaction(camera => {
|
53
|
+
if (camera) {
|
54
|
+
callbacks.emit("baseCameraChange", camera);
|
55
|
+
}
|
56
|
+
});
|
57
|
+
this.size$.reaction(size => {
|
58
|
+
if (size) {
|
59
|
+
callbacks.emit("baseSizeChange", size);
|
60
|
+
}
|
61
|
+
});
|
52
62
|
}
|
53
63
|
|
54
64
|
public createViewSync = () => {
|
package/src/View/ViewSync.ts
CHANGED
@@ -1,7 +1,6 @@
|
|
1
|
-
import { ViewMode, AnimationMode } from "white-web-sdk";
|
2
|
-
import { CameraSynchronizer } from "./CameraSynchronizer";
|
1
|
+
import { ViewMode, AnimationMode, Size } from "white-web-sdk";
|
2
|
+
import { CameraSynchronizer, computedMinScale } from "./CameraSynchronizer";
|
3
3
|
import { combine } from "value-enhancer";
|
4
|
-
import { isEqual } from "lodash";
|
5
4
|
import { SideEffectManager } from "side-effect-manager";
|
6
5
|
import type { Camera, View } from "white-web-sdk";
|
7
6
|
import type { Val, ReadonlyVal } from "value-enhancer";
|
@@ -94,13 +93,11 @@ export class ViewSync {
|
|
94
93
|
|
95
94
|
private onCameraUpdatedByDevice = (camera: Camera) => {
|
96
95
|
if (!camera) return;
|
97
|
-
this.
|
98
|
-
|
99
|
-
|
100
|
-
const
|
101
|
-
|
102
|
-
this.context.storeSize(size);
|
103
|
-
}
|
96
|
+
if (this.context.size$.value && this.context.stageRect$.value) {
|
97
|
+
// 始终以远端的 size 为标准, 设置到 attributes 时根据尺寸的大小还原回去
|
98
|
+
const diffScale = computedMinScale(this.context.size$.value, this.context.stageRect$.value);
|
99
|
+
const remoteScale = camera.scale / diffScale;
|
100
|
+
this.synchronizer.onLocalCameraUpdate({ ...camera, scale: remoteScale, id: this.context.uid });
|
104
101
|
}
|
105
102
|
};
|
106
103
|
|