@netless/window-manager 0.4.32 → 1.0.0-canary.2
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/App/AppContext.d.ts +14 -15
- package/dist/App/AppPageStateImpl.d.ts +6 -2
- package/dist/App/AppProxy.d.ts +5 -2
- package/dist/App/WhiteBoardView.d.ts +16 -0
- package/dist/App/index.d.ts +1 -0
- package/dist/AppManager.d.ts +2 -0
- package/dist/BoxManager.d.ts +7 -5
- package/dist/Helper.d.ts +12 -4
- package/dist/InternalEmitter.d.ts +4 -1
- package/dist/View/CameraSynchronizer.d.ts +17 -0
- package/dist/View/MainView.d.ts +4 -5
- package/dist/constants.d.ts +1 -0
- package/dist/index.cjs.js +21 -22
- package/dist/index.d.ts +0 -2
- package/dist/index.es.js +2186 -1970
- package/dist/index.umd.js +21 -22
- package/dist/style.css +1 -1
- package/dist/typings.d.ts +4 -0
- package/package.json +4 -3
- package/pnpm-lock.yaml +86 -97
- package/src/App/AppContext.ts +58 -73
- package/src/App/AppPageStateImpl.ts +25 -6
- package/src/App/AppProxy.ts +39 -15
- package/src/App/Storage/index.ts +4 -4
- package/src/App/WhiteBoardView.ts +68 -0
- package/src/App/index.ts +1 -0
- package/src/AppManager.ts +9 -1
- package/src/BoxManager.ts +102 -107
- package/src/Cursor/index.ts +5 -5
- package/src/Helper.ts +12 -16
- package/src/InternalEmitter.ts +8 -4
- package/src/View/CameraSynchronizer.ts +67 -0
- package/src/View/MainView.ts +45 -53
- package/src/constants.ts +2 -0
- package/src/index.ts +13 -33
- package/src/typings.ts +4 -0
- package/vite.config.js +0 -1
- package/dist/ContainerResizeObserver.d.ts +0 -11
- package/dist/index.cjs.js.map +0 -1
- package/dist/index.es.js.map +0 -1
- package/dist/index.umd.js.map +0 -1
- package/src/ContainerResizeObserver.ts +0 -73
package/pnpm-lock.yaml
CHANGED
@@ -4,7 +4,7 @@ specifiers:
|
|
4
4
|
'@juggle/resize-observer': ^3.3.1
|
5
5
|
'@netless/app-docs-viewer': ^0.2.9
|
6
6
|
'@netless/app-media-player': 0.1.0-beta.5
|
7
|
-
'@netless/telebox-insider': 0.
|
7
|
+
'@netless/telebox-insider': 1.0.0-alpha.8
|
8
8
|
'@rollup/plugin-commonjs': ^20.0.0
|
9
9
|
'@rollup/plugin-node-resolve': ^13.0.4
|
10
10
|
'@rollup/plugin-url': ^6.1.0
|
@@ -31,10 +31,11 @@ specifiers:
|
|
31
31
|
prettier-plugin-svelte: ^2.4.0
|
32
32
|
rollup-plugin-analyzer: ^4.0.0
|
33
33
|
rollup-plugin-styles: ^3.14.1
|
34
|
-
side-effect-manager: ^
|
34
|
+
side-effect-manager: ^1.1.0
|
35
35
|
svelte: ^3.42.4
|
36
36
|
typescript: ^4.5.5
|
37
37
|
uuid: ^7.0.3
|
38
|
+
value-enhancer: ^1.2.1
|
38
39
|
video.js: '>=7'
|
39
40
|
vite: ^2.5.3
|
40
41
|
vitest: ^0.14.1
|
@@ -42,12 +43,13 @@ specifiers:
|
|
42
43
|
|
43
44
|
dependencies:
|
44
45
|
'@juggle/resize-observer': registry.npmmirror.com/@juggle/resize-observer/3.3.1
|
45
|
-
'@netless/telebox-insider':
|
46
|
+
'@netless/telebox-insider': 1.0.0-alpha.8
|
46
47
|
emittery: registry.npmmirror.com/emittery/0.9.2
|
47
48
|
lodash: registry.npmmirror.com/lodash/4.17.21
|
48
49
|
p-retry: registry.npmmirror.com/p-retry/4.6.1
|
49
|
-
side-effect-manager:
|
50
|
+
side-effect-manager: 1.1.0
|
50
51
|
uuid: registry.npmmirror.com/uuid/7.0.3
|
52
|
+
value-enhancer: 1.2.1
|
51
53
|
video.js: registry.npmmirror.com/video.js/7.18.1
|
52
54
|
|
53
55
|
devDependencies:
|
@@ -86,7 +88,6 @@ packages:
|
|
86
88
|
|
87
89
|
/@juggle/resize-observer/3.3.1:
|
88
90
|
resolution: {integrity: sha512-zMM9Ds+SawiUkakS7y94Ymqx+S0ORzpG3frZirN3l+UlXUmSUR7hF4wxCVqW+ei94JzV5kt0uXBcoOEAuiydrw==}
|
89
|
-
dev: true
|
90
91
|
|
91
92
|
/@netless/app-docs-viewer/0.2.9:
|
92
93
|
resolution: {integrity: sha512-yuhfQ02nr61polMq8s3OiIIvA85yonJwCckr/rPYCB8hm8YV9Di9cYb85fB8Wy3A3do/1UVfYHTWa6Vcge6fLw==}
|
@@ -96,10 +97,36 @@ packages:
|
|
96
97
|
vanilla-lazyload: 17.6.1
|
97
98
|
dev: true
|
98
99
|
|
100
|
+
/@netless/telebox-insider/1.0.0-alpha.8:
|
101
|
+
resolution: {integrity: sha512-GFQpS8fVwc2kSjFFg88QQObQ5P25a2eVblC/wWn6J/IF8PihO8kDs/kI9lN+KtbRJltI2Ca9g9QlQAHi7SArHw==}
|
102
|
+
dependencies:
|
103
|
+
'@juggle/resize-observer': 3.3.1
|
104
|
+
'@types/shallowequal': 1.1.1
|
105
|
+
emittery: 0.11.0
|
106
|
+
shallowequal: 1.1.0
|
107
|
+
side-effect-manager: 1.1.0
|
108
|
+
stylefire: 7.0.3
|
109
|
+
value-enhancer: 1.2.1
|
110
|
+
dev: false
|
111
|
+
|
99
112
|
/@polka/url/1.0.0-next.21:
|
100
113
|
resolution: {integrity: sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==}
|
101
114
|
dev: true
|
102
115
|
|
116
|
+
/@popmotion/easing/1.0.2:
|
117
|
+
resolution: {integrity: sha512-IkdW0TNmRnWTeWI7aGQIVDbKXPWHVEYdGgd5ZR4SH/Ty/61p63jCjrPxX1XrR7IGkl08bjhJROStD7j+RKgoIw==}
|
118
|
+
dev: false
|
119
|
+
|
120
|
+
/@popmotion/popcorn/0.4.4:
|
121
|
+
resolution: {integrity: sha512-jYO/8319fKoNLMlY4ZJPiPu8Ea8occYwRZhxpaNn/kZsK4QG2E7XFlXZMJBsTWDw7I1i0uaqyC4zn1nwEezLzg==}
|
122
|
+
dependencies:
|
123
|
+
'@popmotion/easing': 1.0.2
|
124
|
+
framesync: 4.1.0
|
125
|
+
hey-listen: 1.0.8
|
126
|
+
style-value-types: 3.2.0
|
127
|
+
tslib: 1.14.1
|
128
|
+
dev: false
|
129
|
+
|
103
130
|
/@tootallnate/once/2.0.0:
|
104
131
|
resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==}
|
105
132
|
engines: {node: '>= 10'}
|
@@ -119,6 +146,10 @@ packages:
|
|
119
146
|
resolution: {integrity: sha512-/THyiqyQAP9AfARo4pF+aCGcyiQ94tX/Is2I7HofNRqoYLgN1PBoOWu2/zTA5zMxzP5EFutMtWtGAFRKUe961Q==}
|
120
147
|
dev: true
|
121
148
|
|
149
|
+
/@types/shallowequal/1.1.1:
|
150
|
+
resolution: {integrity: sha512-Lhni3aX80zbpdxRuWhnuYPm8j8UQaa571lHP/xI4W+7BAFhSIhRReXnqjEgT/XzPoXZTJkCqstFMJ8CZTK6IlQ==}
|
151
|
+
dev: false
|
152
|
+
|
122
153
|
/@types/yauzl/2.10.0:
|
123
154
|
resolution: {integrity: sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==}
|
124
155
|
requiresBuild: true
|
@@ -299,6 +330,11 @@ packages:
|
|
299
330
|
webidl-conversions: 7.0.0
|
300
331
|
dev: true
|
301
332
|
|
333
|
+
/emittery/0.11.0:
|
334
|
+
resolution: {integrity: sha512-S/7tzL6v5i+4iJd627Nhv9cLFIo5weAIlGccqJFpnBoDB8U1TF2k5tez4J/QNuxyyhWuFqHg1L84Kd3m7iXg6g==}
|
335
|
+
engines: {node: '>=12'}
|
336
|
+
dev: false
|
337
|
+
|
302
338
|
/errno/0.1.8:
|
303
339
|
resolution: {integrity: sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==}
|
304
340
|
hasBin: true
|
@@ -558,6 +594,12 @@ packages:
|
|
558
594
|
mime-types: 2.1.35
|
559
595
|
dev: true
|
560
596
|
|
597
|
+
/framesync/4.1.0:
|
598
|
+
resolution: {integrity: sha512-MmgZ4wCoeVxNbx2xp5hN/zPDCbLSKiDt4BbbslK7j/pM2lg5S0vhTNv1v8BCVb99JPIo6hXBFdwzU7Q4qcAaoQ==}
|
599
|
+
dependencies:
|
600
|
+
hey-listen: 1.0.8
|
601
|
+
dev: false
|
602
|
+
|
561
603
|
/fsevents/2.3.2:
|
562
604
|
resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==}
|
563
605
|
engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
|
@@ -586,6 +628,10 @@ packages:
|
|
586
628
|
function-bind: 1.1.1
|
587
629
|
dev: true
|
588
630
|
|
631
|
+
/hey-listen/1.0.8:
|
632
|
+
resolution: {integrity: sha512-COpmrF2NOg4TBWUJ5UVyaCU2A88wEMkUPK4hNqyCkqHbxT92BbvfjoSozkAIIm6XhicGlJHhFdullInrdhwU8Q==}
|
633
|
+
dev: false
|
634
|
+
|
589
635
|
/html-encoding-sniffer/3.0.0:
|
590
636
|
resolution: {integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==}
|
591
637
|
engines: {node: '>=12'}
|
@@ -851,6 +897,14 @@ packages:
|
|
851
897
|
xmlchars: 2.2.0
|
852
898
|
dev: true
|
853
899
|
|
900
|
+
/shallowequal/1.1.0:
|
901
|
+
resolution: {integrity: sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==}
|
902
|
+
dev: false
|
903
|
+
|
904
|
+
/side-effect-manager/1.1.0:
|
905
|
+
resolution: {integrity: sha512-Gqy1tsBBYcKclLPIGDxMQiZJLM8CGdGg/DM3a5/8ic2x2A19rVUhVk/+Mt5RwNbpaNKmBPO/wxxzAnY2myQVTg==}
|
906
|
+
dev: false
|
907
|
+
|
854
908
|
/sirv/2.0.2:
|
855
909
|
resolution: {integrity: sha512-4Qog6aE29nIjAOKe/wowFTxOdmbEZKb+3tsLljaBRzJwtqto0BChD2zzH0LhgCSXiI+V7X+Y45v14wBZQ1TK3w==}
|
856
910
|
engines: {node: '>= 10'}
|
@@ -870,6 +924,23 @@ packages:
|
|
870
924
|
engines: {node: '>=0.10.0'}
|
871
925
|
dev: true
|
872
926
|
|
927
|
+
/style-value-types/3.2.0:
|
928
|
+
resolution: {integrity: sha512-ih0mGsrYYmVvdDi++/66O6BaQPRPRMQHoZevNNdMMcPlP/cH28Rnfsqf1UEba/Bwfuw9T8BmIMwbGdzsPwQKrQ==}
|
929
|
+
dependencies:
|
930
|
+
hey-listen: 1.0.8
|
931
|
+
tslib: 1.14.1
|
932
|
+
dev: false
|
933
|
+
|
934
|
+
/stylefire/7.0.3:
|
935
|
+
resolution: {integrity: sha512-Q0l7NSeFz/OkX+o6/7Zg3VZxSAZeQzQpYomWmIpOehFM/rJNMSLVX5fgg6Q48ut2ETNKwdhm97mPNU643EBCoQ==}
|
936
|
+
dependencies:
|
937
|
+
'@popmotion/popcorn': 0.4.4
|
938
|
+
framesync: 4.1.0
|
939
|
+
hey-listen: 1.0.8
|
940
|
+
style-value-types: 3.2.0
|
941
|
+
tslib: 1.14.1
|
942
|
+
dev: false
|
943
|
+
|
873
944
|
/supports-preserve-symlinks-flag/1.0.0:
|
874
945
|
resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
|
875
946
|
engines: {node: '>= 0.4'}
|
@@ -910,6 +981,10 @@ packages:
|
|
910
981
|
punycode: 2.1.1
|
911
982
|
dev: true
|
912
983
|
|
984
|
+
/tslib/1.14.1:
|
985
|
+
resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==}
|
986
|
+
dev: false
|
987
|
+
|
913
988
|
/type-check/0.3.2:
|
914
989
|
resolution: {integrity: sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=}
|
915
990
|
engines: {node: '>= 0.8.0'}
|
@@ -927,6 +1002,10 @@ packages:
|
|
927
1002
|
engines: {node: '>= 4.0.0'}
|
928
1003
|
dev: true
|
929
1004
|
|
1005
|
+
/value-enhancer/1.2.1:
|
1006
|
+
resolution: {integrity: sha512-11IrGi9xmVbr3twzuaMRrdUGzhdaE4eXvT6qYZlB5VrhK5uQzSPlYOEBlsIGH+dMvkakNkWGNIbxdZi87/MWuQ==}
|
1007
|
+
dev: false
|
1008
|
+
|
930
1009
|
/vanilla-lazyload/17.6.1:
|
931
1010
|
resolution: {integrity: sha512-Jn/WpWEIe+d6UUb8hw1qDO49W8lceFLW/ucWt8pdRcQvoQaucLtMnc9QHsm0Iz/xe4SCElEE2fyMZB8xC3e/6Q==}
|
932
1011
|
dev: true
|
@@ -1202,19 +1281,6 @@ packages:
|
|
1202
1281
|
version: 0.0.4
|
1203
1282
|
dev: true
|
1204
1283
|
|
1205
|
-
registry.npmmirror.com/@netless/telebox-insider/0.2.26:
|
1206
|
-
resolution: {integrity: sha512-HOBi9HWK0Zf0nvzfjM0V/0QmZ69ec7L/lCKMwRcfiQHxAAJ/zo9fEm468WocYFsliixWW5L7HwMN0eHb0mw7hA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@netless/telebox-insider/-/telebox-insider-0.2.26.tgz}
|
1207
|
-
name: '@netless/telebox-insider'
|
1208
|
-
version: 0.2.26
|
1209
|
-
dependencies:
|
1210
|
-
'@types/shallowequal': registry.npmmirror.com/@types/shallowequal/1.1.1
|
1211
|
-
eventemitter3: registry.npmmirror.com/eventemitter3/4.0.7
|
1212
|
-
shallowequal: registry.npmmirror.com/shallowequal/1.1.0
|
1213
|
-
side-effect-manager: registry.npmmirror.com/side-effect-manager/0.1.5
|
1214
|
-
stylefire: registry.npmmirror.com/stylefire/7.0.3
|
1215
|
-
value-enhancer: registry.npmmirror.com/value-enhancer/0.0.8
|
1216
|
-
dev: false
|
1217
|
-
|
1218
1284
|
registry.npmmirror.com/@netless/xml-js/1.6.15:
|
1219
1285
|
resolution: {integrity: sha512-e0emMs7YtDB/ATUns1SJ61R9n9nfVvwwFodoc539Qt0ScksaCLCaFWgpEbLloj9sr60ry6Xd8QFHKULFIZB6zA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@netless/xml-js/-/xml-js-1.6.15.tgz}
|
1220
1286
|
name: '@netless/xml-js'
|
@@ -1249,24 +1315,6 @@ packages:
|
|
1249
1315
|
fastq: registry.npmmirror.com/fastq/1.13.0
|
1250
1316
|
dev: true
|
1251
1317
|
|
1252
|
-
registry.npmmirror.com/@popmotion/easing/1.0.2:
|
1253
|
-
resolution: {integrity: sha512-IkdW0TNmRnWTeWI7aGQIVDbKXPWHVEYdGgd5ZR4SH/Ty/61p63jCjrPxX1XrR7IGkl08bjhJROStD7j+RKgoIw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@popmotion/easing/-/easing-1.0.2.tgz}
|
1254
|
-
name: '@popmotion/easing'
|
1255
|
-
version: 1.0.2
|
1256
|
-
dev: false
|
1257
|
-
|
1258
|
-
registry.npmmirror.com/@popmotion/popcorn/0.4.4:
|
1259
|
-
resolution: {integrity: sha512-jYO/8319fKoNLMlY4ZJPiPu8Ea8occYwRZhxpaNn/kZsK4QG2E7XFlXZMJBsTWDw7I1i0uaqyC4zn1nwEezLzg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@popmotion/popcorn/-/popcorn-0.4.4.tgz}
|
1260
|
-
name: '@popmotion/popcorn'
|
1261
|
-
version: 0.4.4
|
1262
|
-
dependencies:
|
1263
|
-
'@popmotion/easing': registry.npmmirror.com/@popmotion/easing/1.0.2
|
1264
|
-
framesync: registry.npmmirror.com/framesync/4.1.0
|
1265
|
-
hey-listen: registry.npmmirror.com/hey-listen/1.0.8
|
1266
|
-
style-value-types: registry.npmmirror.com/style-value-types/3.2.0
|
1267
|
-
tslib: registry.npmmirror.com/tslib/1.14.1
|
1268
|
-
dev: false
|
1269
|
-
|
1270
1318
|
registry.npmmirror.com/@protobufjs/aspromise/1.1.2:
|
1271
1319
|
resolution: {integrity: sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@protobufjs/aspromise/-/aspromise-1.1.2.tgz}
|
1272
1320
|
name: '@protobufjs/aspromise'
|
@@ -1522,12 +1570,6 @@ packages:
|
|
1522
1570
|
version: 0.12.1
|
1523
1571
|
dev: false
|
1524
1572
|
|
1525
|
-
registry.npmmirror.com/@types/shallowequal/1.1.1:
|
1526
|
-
resolution: {integrity: sha512-Lhni3aX80zbpdxRuWhnuYPm8j8UQaa571lHP/xI4W+7BAFhSIhRReXnqjEgT/XzPoXZTJkCqstFMJ8CZTK6IlQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/shallowequal/-/shallowequal-1.1.1.tgz}
|
1527
|
-
name: '@types/shallowequal'
|
1528
|
-
version: 1.1.1
|
1529
|
-
dev: false
|
1530
|
-
|
1531
1573
|
registry.npmmirror.com/@types/sinonjs__fake-timers/6.0.4:
|
1532
1574
|
resolution: {integrity: sha512-IFQTJARgMUBF+xVd2b+hIgXWrZEjND3vJtRCvIelcFB5SIXfjV4bOHbHJ0eXKh+0COrBRc8MqteKAz/j88rE0A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-6.0.4.tgz}
|
1533
1575
|
name: '@types/sinonjs__fake-timers'
|
@@ -3077,6 +3119,7 @@ packages:
|
|
3077
3119
|
resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/eventemitter3/-/eventemitter3-4.0.7.tgz}
|
3078
3120
|
name: eventemitter3
|
3079
3121
|
version: 4.0.7
|
3122
|
+
dev: true
|
3080
3123
|
|
3081
3124
|
registry.npmmirror.com/execa/4.1.0:
|
3082
3125
|
resolution: {integrity: sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/execa/-/execa-4.1.0.tgz}
|
@@ -3254,14 +3297,6 @@ packages:
|
|
3254
3297
|
version: 4.2.0
|
3255
3298
|
dev: true
|
3256
3299
|
|
3257
|
-
registry.npmmirror.com/framesync/4.1.0:
|
3258
|
-
resolution: {integrity: sha512-MmgZ4wCoeVxNbx2xp5hN/zPDCbLSKiDt4BbbslK7j/pM2lg5S0vhTNv1v8BCVb99JPIo6hXBFdwzU7Q4qcAaoQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/framesync/-/framesync-4.1.0.tgz}
|
3259
|
-
name: framesync
|
3260
|
-
version: 4.1.0
|
3261
|
-
dependencies:
|
3262
|
-
hey-listen: registry.npmmirror.com/hey-listen/1.0.8
|
3263
|
-
dev: false
|
3264
|
-
|
3265
3300
|
registry.npmmirror.com/fs-extra/9.1.0:
|
3266
3301
|
resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fs-extra/-/fs-extra-9.1.0.tgz}
|
3267
3302
|
name: fs-extra
|
@@ -3457,12 +3492,6 @@ packages:
|
|
3457
3492
|
version: 1.1.0
|
3458
3493
|
dev: true
|
3459
3494
|
|
3460
|
-
registry.npmmirror.com/hey-listen/1.0.8:
|
3461
|
-
resolution: {integrity: sha512-COpmrF2NOg4TBWUJ5UVyaCU2A88wEMkUPK4hNqyCkqHbxT92BbvfjoSozkAIIm6XhicGlJHhFdullInrdhwU8Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/hey-listen/-/hey-listen-1.0.8.tgz}
|
3462
|
-
name: hey-listen
|
3463
|
-
version: 1.0.8
|
3464
|
-
dev: false
|
3465
|
-
|
3466
3495
|
registry.npmmirror.com/hsl-regex/1.0.0:
|
3467
3496
|
resolution: {integrity: sha512-M5ezZw4LzXbBKMruP+BNANf0k+19hDQMgpzBIYnya//Al+fjNct9Wf3b1WedLqdEs2hKBvxq/jh+DsHJLj0F9A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/hsl-regex/-/hsl-regex-1.0.0.tgz}
|
3468
3497
|
name: hsl-regex
|
@@ -5524,12 +5553,6 @@ packages:
|
|
5524
5553
|
lru-cache: registry.npmmirror.com/lru-cache/6.0.0
|
5525
5554
|
dev: true
|
5526
5555
|
|
5527
|
-
registry.npmmirror.com/shallowequal/1.1.0:
|
5528
|
-
resolution: {integrity: sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/shallowequal/-/shallowequal-1.1.0.tgz}
|
5529
|
-
name: shallowequal
|
5530
|
-
version: 1.1.0
|
5531
|
-
dev: false
|
5532
|
-
|
5533
5556
|
registry.npmmirror.com/shebang-command/2.0.0:
|
5534
5557
|
resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/shebang-command/-/shebang-command-2.0.0.tgz}
|
5535
5558
|
name: shebang-command
|
@@ -5556,12 +5579,6 @@ packages:
|
|
5556
5579
|
object-inspect: registry.npmmirror.com/object-inspect/1.12.0
|
5557
5580
|
dev: true
|
5558
5581
|
|
5559
|
-
registry.npmmirror.com/side-effect-manager/0.1.5:
|
5560
|
-
resolution: {integrity: sha512-aAEXMS+9qW7rY2cwq4S6UjW3IBO/ZLWRI0sH1oGJ1eDE7YBFR1TW950qffnpx/0hByusAOVbu2zjThk9Vcjs+Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/side-effect-manager/-/side-effect-manager-0.1.5.tgz}
|
5561
|
-
name: side-effect-manager
|
5562
|
-
version: 0.1.5
|
5563
|
-
dev: false
|
5564
|
-
|
5565
5582
|
registry.npmmirror.com/signal-exit/3.0.7:
|
5566
5583
|
resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/signal-exit/-/signal-exit-3.0.7.tgz}
|
5567
5584
|
name: signal-exit
|
@@ -5741,27 +5758,6 @@ packages:
|
|
5741
5758
|
engines: {node: '>=8'}
|
5742
5759
|
dev: true
|
5743
5760
|
|
5744
|
-
registry.npmmirror.com/style-value-types/3.2.0:
|
5745
|
-
resolution: {integrity: sha512-ih0mGsrYYmVvdDi++/66O6BaQPRPRMQHoZevNNdMMcPlP/cH28Rnfsqf1UEba/Bwfuw9T8BmIMwbGdzsPwQKrQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/style-value-types/-/style-value-types-3.2.0.tgz}
|
5746
|
-
name: style-value-types
|
5747
|
-
version: 3.2.0
|
5748
|
-
dependencies:
|
5749
|
-
hey-listen: registry.npmmirror.com/hey-listen/1.0.8
|
5750
|
-
tslib: registry.npmmirror.com/tslib/1.14.1
|
5751
|
-
dev: false
|
5752
|
-
|
5753
|
-
registry.npmmirror.com/stylefire/7.0.3:
|
5754
|
-
resolution: {integrity: sha512-Q0l7NSeFz/OkX+o6/7Zg3VZxSAZeQzQpYomWmIpOehFM/rJNMSLVX5fgg6Q48ut2ETNKwdhm97mPNU643EBCoQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/stylefire/-/stylefire-7.0.3.tgz}
|
5755
|
-
name: stylefire
|
5756
|
-
version: 7.0.3
|
5757
|
-
dependencies:
|
5758
|
-
'@popmotion/popcorn': registry.npmmirror.com/@popmotion/popcorn/0.4.4
|
5759
|
-
framesync: registry.npmmirror.com/framesync/4.1.0
|
5760
|
-
hey-listen: registry.npmmirror.com/hey-listen/1.0.8
|
5761
|
-
style-value-types: registry.npmmirror.com/style-value-types/3.2.0
|
5762
|
-
tslib: registry.npmmirror.com/tslib/1.14.1
|
5763
|
-
dev: false
|
5764
|
-
|
5765
5761
|
registry.npmmirror.com/stylehacks/4.0.3:
|
5766
5762
|
resolution: {integrity: sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/stylehacks/-/stylehacks-4.0.3.tgz}
|
5767
5763
|
name: stylehacks
|
@@ -5930,6 +5926,7 @@ packages:
|
|
5930
5926
|
resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/tslib/-/tslib-1.14.1.tgz}
|
5931
5927
|
name: tslib
|
5932
5928
|
version: 1.14.1
|
5929
|
+
dev: true
|
5933
5930
|
|
5934
5931
|
registry.npmmirror.com/tslib/2.3.1:
|
5935
5932
|
resolution: {integrity: sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/tslib/-/tslib-2.3.1.tgz}
|
@@ -6113,14 +6110,6 @@ packages:
|
|
6113
6110
|
version: 2.3.0
|
6114
6111
|
dev: true
|
6115
6112
|
|
6116
|
-
registry.npmmirror.com/value-enhancer/0.0.8:
|
6117
|
-
resolution: {integrity: sha512-ba8Rcyp9ItqlLWoyZVqHGaEdY1tqP1mcbRhlOrCnIrDxdl8rKNH1Rq45syo4IMYNSkwC2oV9xBWcV9dmL14aQg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/value-enhancer/-/value-enhancer-0.0.8.tgz}
|
6118
|
-
name: value-enhancer
|
6119
|
-
version: 0.0.8
|
6120
|
-
dependencies:
|
6121
|
-
side-effect-manager: registry.npmmirror.com/side-effect-manager/0.1.5
|
6122
|
-
dev: false
|
6123
|
-
|
6124
6113
|
registry.npmmirror.com/vendors/1.0.4:
|
6125
6114
|
resolution: {integrity: sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vendors/-/vendors-1.0.4.tgz}
|
6126
6115
|
name: vendors
|
package/src/App/AppContext.ts
CHANGED
@@ -1,5 +1,4 @@
|
|
1
1
|
import { BoxNotCreatedError } from "../Utils/error";
|
2
|
-
import { putScenes } from "../Utils/Common";
|
3
2
|
import { Storage } from "./Storage";
|
4
3
|
import {
|
5
4
|
autorun,
|
@@ -14,12 +13,12 @@ import type {
|
|
14
13
|
Room,
|
15
14
|
SceneDefinition,
|
16
15
|
View,
|
17
|
-
EventListener as WhiteEventListener
|
16
|
+
EventListener as WhiteEventListener
|
18
17
|
} from "white-web-sdk";
|
19
18
|
import type { ReadonlyTeleBox } from "@netless/telebox-insider";
|
20
19
|
import type Emittery from "emittery";
|
21
20
|
import type { BoxManager } from "../BoxManager";
|
22
|
-
import type { AppEmitterEvent } from "../index";
|
21
|
+
import type { AppEmitterEvent, Member } from "../index";
|
23
22
|
import type { AppManager } from "../AppManager";
|
24
23
|
import type { AppProxy } from "./AppProxy";
|
25
24
|
import type {
|
@@ -27,11 +26,13 @@ import type {
|
|
27
26
|
MagixEventDispatcher,
|
28
27
|
MagixEventRemoveListener,
|
29
28
|
} from "./MagixEvent";
|
30
|
-
import
|
29
|
+
import { WhiteBoardView } from "./WhiteBoardView";
|
30
|
+
import { findMemberByUid } from "../Helper";
|
31
|
+
import { MAX_PAGE_SIZE } from "../constants";
|
32
|
+
import { putScenes } from "../Utils/Common";
|
33
|
+
import { isNumber } from "lodash";
|
31
34
|
|
32
|
-
export class AppContext<TAttributes = any, TMagixEventPayloads = any, TAppOptions = any>
|
33
|
-
implements PageController
|
34
|
-
{
|
35
|
+
export class AppContext<TAttributes = any, TMagixEventPayloads = any, TAppOptions = any> {
|
35
36
|
public readonly emitter: Emittery<AppEmitterEvent<TAttributes>>;
|
36
37
|
public readonly mobxUtils = {
|
37
38
|
autorun,
|
@@ -48,6 +49,7 @@ export class AppContext<TAttributes = any, TMagixEventPayloads = any, TAppOption
|
|
48
49
|
private store = this.manager.store;
|
49
50
|
public readonly isAddApp: boolean;
|
50
51
|
public readonly isReplay = this.manager.isReplay;
|
52
|
+
private whiteBoardView?: WhiteBoardView;
|
51
53
|
|
52
54
|
constructor(
|
53
55
|
private manager: AppManager,
|
@@ -60,7 +62,7 @@ export class AppContext<TAttributes = any, TMagixEventPayloads = any, TAppOption
|
|
60
62
|
this.isAddApp = appProxy.isAddApp;
|
61
63
|
}
|
62
64
|
|
63
|
-
public
|
65
|
+
public get displayer(){
|
64
66
|
return this.manager.displayer;
|
65
67
|
};
|
66
68
|
|
@@ -78,32 +80,50 @@ export class AppContext<TAttributes = any, TMagixEventPayloads = any, TAppOption
|
|
78
80
|
}
|
79
81
|
};
|
80
82
|
|
81
|
-
public
|
83
|
+
public get view(): View | undefined {
|
82
84
|
return this.appProxy.view;
|
83
85
|
};
|
84
86
|
|
85
|
-
public
|
86
|
-
|
87
|
-
|
88
|
-
view.divElement = dom as HTMLDivElement;
|
89
|
-
setTimeout(() => {
|
90
|
-
// 渲染需要时间,延迟 refresh
|
91
|
-
this.getRoom()?.refreshViewSize();
|
92
|
-
}, 1000);
|
87
|
+
public createWhiteBoardView = (size?: number): WhiteBoardView => {
|
88
|
+
if (this.whiteBoardView) {
|
89
|
+
return this.whiteBoardView;
|
93
90
|
}
|
94
|
-
|
91
|
+
let view = this.view;
|
92
|
+
if (!view) {
|
93
|
+
view = this.appProxy.createAppDir();
|
94
|
+
}
|
95
|
+
view.divElement = this.box.$content as HTMLDivElement;
|
96
|
+
this.initPageSize(size);
|
97
|
+
this.whiteBoardView = new WhiteBoardView(this, this.appProxy);
|
98
|
+
return this.whiteBoardView;
|
99
|
+
}
|
100
|
+
|
101
|
+
private initPageSize = (size?: number) => {
|
102
|
+
if (!isNumber(size)) return;
|
103
|
+
if (!this.appProxy.scenePath) return;
|
104
|
+
if (this.appProxy.pageState.length >= size) return;
|
105
|
+
if (size <= 0 || size >= MAX_PAGE_SIZE) {
|
106
|
+
throw Error(`[WindowManager]: size ${size} muse be in range [1, ${MAX_PAGE_SIZE}]`);
|
107
|
+
}
|
108
|
+
const needInsert = size - this.appProxy.pageState.length;
|
109
|
+
const startPageNumber = this.appProxy.pageState.length;
|
110
|
+
const scenes = new Array(needInsert).fill({}).map((_, index) => {
|
111
|
+
return { name: `${startPageNumber + index + 1}` };
|
112
|
+
});
|
113
|
+
putScenes(this.room, this.appProxy.scenePath, scenes);
|
114
|
+
}
|
95
115
|
|
96
116
|
public getInitScenePath = () => {
|
97
117
|
return this.manager.getAppInitPath(this.appId);
|
98
118
|
};
|
99
119
|
|
100
120
|
/** Get App writable status. */
|
101
|
-
public
|
121
|
+
public get isWritable(): boolean {
|
102
122
|
return this.manager.canOperate;
|
103
123
|
};
|
104
124
|
|
105
125
|
/** Get the App Window UI box. */
|
106
|
-
public
|
126
|
+
public get box(): ReadonlyTeleBox {
|
107
127
|
const box = this.boxManager.getBox(this.appId);
|
108
128
|
if (box) {
|
109
129
|
return box;
|
@@ -112,10 +132,25 @@ export class AppContext<TAttributes = any, TMagixEventPayloads = any, TAppOption
|
|
112
132
|
}
|
113
133
|
};
|
114
134
|
|
115
|
-
public
|
135
|
+
public get room(): Room | undefined {
|
116
136
|
return this.manager.room;
|
117
137
|
};
|
118
138
|
|
139
|
+
public get members() {
|
140
|
+
return this.manager.members;
|
141
|
+
}
|
142
|
+
|
143
|
+
public get memberState(): Member {
|
144
|
+
const self = findMemberByUid(this.room, this.manager.uid);
|
145
|
+
if (!self) {
|
146
|
+
throw new Error(`Member ${this.manager.uid} not found.`);
|
147
|
+
}
|
148
|
+
return {
|
149
|
+
uid: this.manager.uid,
|
150
|
+
...self,
|
151
|
+
}
|
152
|
+
}
|
153
|
+
|
119
154
|
/** @deprecated Use context.storage.setState instead. */
|
120
155
|
public setAttributes = (attributes: TAttributes) => {
|
121
156
|
this.manager.safeSetAttributes({ [this.appId]: attributes });
|
@@ -128,11 +163,12 @@ export class AppContext<TAttributes = any, TMagixEventPayloads = any, TAppOption
|
|
128
163
|
}
|
129
164
|
};
|
130
165
|
|
166
|
+
/** @deprecated Use Pages api instead. */
|
131
167
|
public setScenePath = async (scenePath: string): Promise<void> => {
|
132
168
|
if (!this.appProxy.box) return;
|
133
169
|
this.appProxy.setFullPath(scenePath);
|
134
170
|
// 兼容 15 版本 SDK 的切页
|
135
|
-
this.
|
171
|
+
this.room?.setScenePath(scenePath);
|
136
172
|
};
|
137
173
|
|
138
174
|
/** Get the local App options. */
|
@@ -196,55 +232,4 @@ export class AppContext<TAttributes = any, TMagixEventPayloads = any, TAppOption
|
|
196
232
|
public removeMagixEventListener = this.manager.displayer.removeMagixEventListener.bind(
|
197
233
|
this.manager.displayer
|
198
234
|
) as MagixEventRemoveListener<TMagixEventPayloads>;
|
199
|
-
|
200
|
-
/** PageController */
|
201
|
-
public nextPage = async (): Promise<boolean> => {
|
202
|
-
const nextIndex = this.pageState.index + 1;
|
203
|
-
if (nextIndex > this.pageState.length - 1) {
|
204
|
-
console.warn("[WindowManager] nextPage: index out of range");
|
205
|
-
return false;
|
206
|
-
}
|
207
|
-
this.appProxy.setSceneIndex(nextIndex);
|
208
|
-
return true;
|
209
|
-
};
|
210
|
-
|
211
|
-
public prevPage = async (): Promise<boolean> => {
|
212
|
-
const nextIndex = this.pageState.index - 1;
|
213
|
-
if (nextIndex < 0) {
|
214
|
-
console.warn("[WindowManager] prevPage: index out of range");
|
215
|
-
return false;
|
216
|
-
}
|
217
|
-
this.appProxy.setSceneIndex(nextIndex);
|
218
|
-
return true;
|
219
|
-
};
|
220
|
-
|
221
|
-
public addPage = async (params?: AddPageParams) => {
|
222
|
-
const after = params?.after;
|
223
|
-
const scene = params?.scene;
|
224
|
-
const scenePath = this.appProxy.scenePath;
|
225
|
-
if (!scenePath) return;
|
226
|
-
if (after) {
|
227
|
-
const nextIndex = this.pageState.index + 1;
|
228
|
-
putScenes(this.manager.room, scenePath, [scene || {}], nextIndex);
|
229
|
-
} else {
|
230
|
-
putScenes(this.manager.room, scenePath, [scene || {}]);
|
231
|
-
}
|
232
|
-
};
|
233
|
-
|
234
|
-
public removePage = async (index?: number): Promise<boolean> => {
|
235
|
-
const needRemoveIndex = index === undefined ? this.pageState.index : index;
|
236
|
-
if (this.pageState.length === 1) {
|
237
|
-
console.warn(`[WindowManager]: can not remove the last page`);
|
238
|
-
return false;
|
239
|
-
}
|
240
|
-
if (needRemoveIndex < 0 || needRemoveIndex >= this.pageState.length) {
|
241
|
-
console.warn(`[WindowManager]: page index ${index} out of range`);
|
242
|
-
return false;
|
243
|
-
}
|
244
|
-
return this.appProxy.removeSceneByIndex(needRemoveIndex);;
|
245
|
-
}
|
246
|
-
|
247
|
-
public get pageState(): PageState {
|
248
|
-
return this.appProxy.pageState;
|
249
|
-
}
|
250
235
|
}
|
@@ -9,11 +9,15 @@ export type AppPageStateParams = {
|
|
9
9
|
};
|
10
10
|
|
11
11
|
export class AppPageStateImpl {
|
12
|
-
|
12
|
+
public sceneNode: ScenesCallbacksNode | null = null;
|
13
|
+
private scenePath?: string;
|
14
|
+
private view?: View;
|
13
15
|
|
14
16
|
constructor(private params: AppPageStateParams) {
|
15
17
|
const { displayer, scenePath } = this.params;
|
18
|
+
this.view = this.params.view;
|
16
19
|
if (scenePath) {
|
20
|
+
this.scenePath = scenePath;
|
17
21
|
this.sceneNode = displayer.createScenesCallback(scenePath, {
|
18
22
|
onAddScene: this.onSceneChange,
|
19
23
|
onRemoveScene: this.onSceneChange,
|
@@ -21,24 +25,39 @@ export class AppPageStateImpl {
|
|
21
25
|
}
|
22
26
|
}
|
23
27
|
|
24
|
-
|
25
|
-
this.
|
28
|
+
public createSceneNode = (scenePath: string) => {
|
29
|
+
this.scenePath = scenePath;
|
30
|
+
if (this.sceneNode) {
|
31
|
+
this.sceneNode.dispose();
|
32
|
+
}
|
33
|
+
this.sceneNode = this.params.displayer.createScenesCallback(scenePath, {
|
34
|
+
onAddScene: this.onSceneChange,
|
35
|
+
onRemoveScene: this.onSceneChange,
|
36
|
+
});
|
37
|
+
return this.sceneNode;
|
38
|
+
}
|
39
|
+
|
40
|
+
public setView(view: View) {
|
41
|
+
this.view = view;
|
42
|
+
}
|
43
|
+
|
44
|
+
private onSceneChange = () => {
|
26
45
|
this.params.notifyPageStateChange();
|
27
46
|
};
|
28
47
|
|
29
48
|
public getFullPath(index: number) {
|
30
49
|
const scenes = this.sceneNode?.scenes;
|
31
|
-
if (this.
|
50
|
+
if (this.scenePath && scenes) {
|
32
51
|
const name = scenes[index];
|
33
52
|
if (name) {
|
34
|
-
return `${this.
|
53
|
+
return `${this.scenePath}/${name}`;
|
35
54
|
}
|
36
55
|
}
|
37
56
|
}
|
38
57
|
|
39
58
|
public toObject(): PageState {
|
40
59
|
return {
|
41
|
-
index: this.
|
60
|
+
index: this.view?.focusSceneIndex || 0,
|
42
61
|
length: this.sceneNode?.scenes.length || 0,
|
43
62
|
};
|
44
63
|
}
|