@realsee/vreo 1.0.0-alpha.1 → 1.0.0-alpha.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.
Files changed (70) hide show
  1. package/docs/assets/search.js +1 -1
  2. package/docs/classes/Player.AudioLike.html +6 -6
  3. package/docs/classes/Player.Controller.html +12 -12
  4. package/docs/classes/Player.Player-1.html +11 -11
  5. package/docs/classes/Player.VideoAgentMesh.html +12 -12
  6. package/docs/classes/Player.VideoAgentScene.html +1 -1
  7. package/docs/enums/Player.InfoPanelStyleEnum.html +1 -1
  8. package/docs/enums/Player.InfoPanelTypeEnum.html +1 -1
  9. package/docs/enums/Player.PanoEffectEnum.html +1 -1
  10. package/docs/enums/Player.PanoTagEnum.html +1 -1
  11. package/docs/enums/Player.PanoTagStyleEnum.html +2 -2
  12. package/docs/enums/Player.VreoKeyframeEnum.html +12 -12
  13. package/docs/enums/fivePlugins.CameraMovementEffect.html +1 -1
  14. package/docs/enums/fivePlugins.Rotation.html +1 -1
  15. package/docs/interfaces/Player.CustomVreoKeyframeProps.html +1 -1
  16. package/docs/interfaces/Player.PlayerConfigs.html +4 -3
  17. package/docs/interfaces/Player.Vertex.html +1 -1
  18. package/docs/interfaces/Player.VideoAgentMeshOptions.html +3 -3
  19. package/docs/interfaces/Player.VreoKeyframe.html +1 -1
  20. package/docs/interfaces/Player.VreoUnit.html +1 -1
  21. package/docs/interfaces/Player.VreoVideo.html +1 -1
  22. package/docs/interfaces/fivePlugins.CSS3DRenderPluginExportType.html +2 -2
  23. package/docs/interfaces/fivePlugins.CameraMovementOptsCallback.html +1 -1
  24. package/docs/interfaces/fivePlugins.CameraMovementPluginExportType.html +2 -2
  25. package/docs/interfaces/fivePlugins.ModelTVVideoPluginData.html +1 -1
  26. package/docs/interfaces/fivePlugins.ModelTVVideoPluginExportType.html +1 -1
  27. package/docs/interfaces/fivePlugins.ModelTVVideoPluginParameterType.html +1 -1
  28. package/docs/interfaces/fivePlugins.Vector3Position.html +1 -1
  29. package/docs/interfaces/react.VreoActionCallbacks.html +6 -6
  30. package/docs/interfaces/react.VreoProviderProps.html +1 -1
  31. package/docs/modules/Player.html +16 -16
  32. package/docs/modules/custom.html +1 -1
  33. package/docs/modules/fivePlugins.html +3 -3
  34. package/docs/modules/react.html +1 -1
  35. package/lib/PlayController/index.js +1 -2
  36. package/lib/Player/App.js +8 -6
  37. package/lib/Player/Controller.d.ts +27 -8
  38. package/lib/Player/Controller.js +170 -23
  39. package/lib/Player/custom/SpatialScenePanel/index.js +2 -1
  40. package/lib/Player/hooks.js +2 -2
  41. package/lib/Player/index.d.ts +2 -1
  42. package/lib/Player/index.js +42 -29
  43. package/lib/Player/modules/ResizeObserver/index.d.ts +2 -0
  44. package/lib/Player/modules/ResizeObserver/index.js +37 -0
  45. package/lib/Player/modules/VideoAgent/VideoAgentMesh.d.ts +1 -1
  46. package/lib/Player/modules/VideoAgent/VideoAgentMesh.js +44 -43
  47. package/lib/Player/modules/VideoAgent/VideoAgentScene.d.ts +3 -7
  48. package/lib/Player/modules/VideoAgent/VideoAgentScene.js +25 -34
  49. package/lib/Player/modules/VideoAgent/index.js +52 -11
  50. package/lib/Player/modules/Wave/index.d.ts +5 -0
  51. package/lib/Player/modules/Wave/index.js +51 -0
  52. package/lib/Player/modules/keyframes/InfoPanel/index.js +20 -8
  53. package/lib/Player/modules/keyframes/PanoTag/index.d.ts +1 -2
  54. package/lib/Player/modules/keyframes/PanoTag/index.js +78 -131
  55. package/lib/Player/modules/keyframes/PanoTextLabel/index.js +0 -1
  56. package/lib/Player/modules/keyframes/Prompter/index.js +5 -4
  57. package/lib/Player/typings.d.ts +9 -2
  58. package/lib/fivePlugins/CameraMovementPlugin/index.js +2 -5
  59. package/lib/react/index.d.ts +2 -2
  60. package/lib/shared-utils/AduioLike.js +8 -7
  61. package/lib/shared-utils/addResizeListener.d.ts +4 -0
  62. package/lib/shared-utils/addResizeListener.js +51 -0
  63. package/lib/shared-utils/getFileExpandedName.d.ts +1 -0
  64. package/lib/shared-utils/getFileExpandedName.js +13 -0
  65. package/lib/shared-utils/getMediaInfo.d.ts +9 -0
  66. package/lib/shared-utils/getMediaInfo.js +75 -0
  67. package/lib/shared-utils/setElementDataset.d.ts +1 -0
  68. package/lib/shared-utils/setElementDataset.js +24 -0
  69. package/lib/typings/VreoUnit.d.ts +4 -0
  70. package/package.json +1 -1
@@ -15,6 +15,8 @@ var _mobx = require("mobx");
15
15
 
16
16
  var _AduioLike = _interopRequireDefault(require("../../../shared-utils/AduioLike"));
17
17
 
18
+ var _getMediaInfo = require("../../../shared-utils/getMediaInfo");
19
+
18
20
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
19
21
 
20
22
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
@@ -86,6 +88,7 @@ var VideoAgentMesh = /*#__PURE__*/function (_THREE$Mesh) {
86
88
  } else {
87
89
  var videoInstance = document.createElement('video');
88
90
  videoInstance.style.opacity = '0';
91
+ videoInstance.style.pointerEvents = 'none';
89
92
  videoInstance.style.display = 'none';
90
93
  document.body.append(videoInstance);
91
94
  options.videoInstance = videoInstance;
@@ -123,10 +126,8 @@ var VideoAgentMesh = /*#__PURE__*/function (_THREE$Mesh) {
123
126
  audioInstance.crossOrigin = ''; // videoInstance.muted = true
124
127
 
125
128
  audioInstance.muted = false;
126
- audioInstance.setAttribute('playsinline', 'true');
127
- audioInstance.setAttribute('webkit-playsinline', 'true');
128
- audioInstance.setAttribute('autoplay', 'false');
129
- audioInstance.setAttribute('style', 'display: none;');
129
+ audioInstance.autoplay = false;
130
+ audioInstance.style.display = 'none';
130
131
  document.body.appendChild(audioInstance);
131
132
  _this.audioInstance = audioInstance;
132
133
  cacheInstance.audioInstance = audioInstance;
@@ -155,7 +156,7 @@ var VideoAgentMesh = /*#__PURE__*/function (_THREE$Mesh) {
155
156
  };
156
157
 
157
158
  var onEnded = function onEnded() {
158
- console.log('vreo: video 播放结束');
159
+ return console.log('vreo: video 播放结束');
159
160
  };
160
161
 
161
162
  _this.audioInstance.addEventListener('pause', onPause);
@@ -192,15 +193,13 @@ var VideoAgentMesh = /*#__PURE__*/function (_THREE$Mesh) {
192
193
  }
193
194
 
194
195
  _createClass(VideoAgentMesh, [{
195
- key: "videoInstance",
196
+ key: "mediaInstance",
196
197
  get: function get() {
197
- var _this$videoUrl;
198
-
199
198
  if (!this.videoUrl) {
200
199
  return this.audioLikeInstance;
201
200
  }
202
201
 
203
- if ((_this$videoUrl = this.videoUrl) !== null && _this$videoUrl !== void 0 && _this$videoUrl.endsWith('mp3')) {
202
+ if ((0, _getMediaInfo.getMediaType)(this.videoUrl) === 'audio') {
204
203
  return this.audioInstance;
205
204
  }
206
205
 
@@ -227,16 +226,22 @@ var VideoAgentMesh = /*#__PURE__*/function (_THREE$Mesh) {
227
226
  return _context.abrupt("return");
228
227
 
229
228
  case 2:
230
- this.videoUrl = videoUrl;
229
+ this.videoUrl = videoUrl; // // 兼容非视频场景
230
+ // if (this.mediaInstance instanceof HTMLAudioElement) {
231
+ // this.mediaInstance.style.display = 'none'
232
+ // } else if (this.mediaInstance instanceof HTMLVideoElement) {
233
+ // this.mediaInstance.style.display = 'block'
234
+ // }
235
+
231
236
  this.freeze = true;
232
237
  _context.next = 6;
233
- return this.videoInstance.pause();
238
+ return this.mediaInstance.pause();
234
239
 
235
240
  case 6:
236
241
  uniforms = this.material.uniforms;
237
- this.videoInstance.muted = true;
242
+ this.mediaInstance.muted = true;
238
243
 
239
- if (!(this.options.preload || this.options.preload === undefined || this.videoUrl.endsWith('.mp4'))) {
244
+ if (!(this.options.preload || this.options.preload === undefined || (0, _getMediaInfo.getMediaType)(this.videoUrl) === 'video')) {
240
245
  _context.next = 18;
241
246
  break;
242
247
  }
@@ -259,21 +264,19 @@ var VideoAgentMesh = /*#__PURE__*/function (_THREE$Mesh) {
259
264
  _context.t0 = this.videoUrl;
260
265
 
261
266
  case 19:
262
- this.videoInstance.src = _context.t0;
263
- this.videoInstance.setAttribute('data-src', this.videoUrl);
267
+ this.mediaInstance.src = _context.t0;
268
+ this.mediaInstance.setAttribute('data-src', this.videoUrl);
264
269
 
265
270
  onStart = function onStart() {
266
- var _this2$videoUrl;
267
-
268
- if (_this2.videoInstance.currentTime === 0) return;
271
+ if (_this2.mediaInstance.currentTime === 0) return;
269
272
  _this2.freeze = false;
270
- _this2.videoInstance.muted = false;
271
- uniforms.enable.value = (_this2$videoUrl = _this2.videoUrl) !== null && _this2$videoUrl !== void 0 && _this2$videoUrl.endsWith('.mp4') ? 1 : 0;
273
+ _this2.mediaInstance.muted = false;
274
+ uniforms.enable.value = (0, _getMediaInfo.getMediaType)(_this2.videoUrl) ? 1 : 0;
272
275
 
273
- _this2.videoInstance.removeEventListener('timeupdate', onStart, false);
276
+ _this2.mediaInstance.removeEventListener('timeupdate', onStart, false);
274
277
  };
275
278
 
276
- this.videoInstance.addEventListener('timeupdate', onStart, false);
279
+ this.mediaInstance.addEventListener('timeupdate', onStart, false);
277
280
 
278
281
  case 23:
279
282
  case "end":
@@ -314,12 +317,12 @@ var VideoAgentMesh = /*#__PURE__*/function (_THREE$Mesh) {
314
317
  }
315
318
 
316
319
  if (this.currentTime) {
317
- this.videoInstance.currentTime = currentTime;
320
+ this.mediaInstance.currentTime = currentTime;
318
321
  }
319
322
 
320
- this.videoInstance.duration = duration;
323
+ this.mediaInstance.duration = duration;
321
324
  this.videoUrl = '';
322
- this.videoInstance.play();
325
+ this.mediaInstance.play();
323
326
  return _context3.abrupt("return", true);
324
327
 
325
328
  case 10:
@@ -334,7 +337,7 @@ var VideoAgentMesh = /*#__PURE__*/function (_THREE$Mesh) {
334
337
  }
335
338
 
336
339
  _context3.next = 14;
337
- return this.videoInstance.play();
340
+ return this.mediaInstance.play();
338
341
 
339
342
  case 14:
340
343
  _context3.next = 17;
@@ -347,36 +350,34 @@ var VideoAgentMesh = /*#__PURE__*/function (_THREE$Mesh) {
347
350
  return _context3.abrupt("return", true);
348
351
 
349
352
  case 18:
350
- console.log('play', videoUrl, this.videoUrl);
351
-
352
353
  if (!(videoUrl === this.videoUrl)) {
353
- _context3.next = 24;
354
+ _context3.next = 23;
354
355
  break;
355
356
  }
356
357
 
357
- this.videoInstance.currentTime = currentTime;
358
- _context3.next = 23;
359
- return this.videoInstance.play();
358
+ this.mediaInstance.currentTime = currentTime;
359
+ _context3.next = 22;
360
+ return this.mediaInstance.play();
360
361
 
361
- case 23:
362
+ case 22:
362
363
  return _context3.abrupt("return", true);
363
364
 
364
- case 24:
365
- _context3.next = 26;
365
+ case 23:
366
+ _context3.next = 25;
366
367
  return this.update(videoUrl);
367
368
 
368
- case 26:
369
- this.videoInstance.pause();
370
- _context3.next = 29;
369
+ case 25:
370
+ this.mediaInstance.pause();
371
+ _context3.next = 28;
371
372
  return new Promise(function (resolve) {
372
373
  return setTimeout( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2() {
373
374
  return regeneratorRuntime.wrap(function _callee2$(_context2) {
374
375
  while (1) {
375
376
  switch (_context2.prev = _context2.next) {
376
377
  case 0:
377
- _this3.videoInstance.currentTime = currentTime;
378
+ _this3.mediaInstance.currentTime = currentTime;
378
379
  _context2.next = 3;
379
- return _this3.videoInstance.play();
380
+ return _this3.mediaInstance.play();
380
381
 
381
382
  case 3:
382
383
  resolve(true);
@@ -390,10 +391,10 @@ var VideoAgentMesh = /*#__PURE__*/function (_THREE$Mesh) {
390
391
  })), 20);
391
392
  });
392
393
 
393
- case 29:
394
+ case 28:
394
395
  return _context3.abrupt("return", _context3.sent);
395
396
 
396
- case 30:
397
+ case 29:
397
398
  case "end":
398
399
  return _context3.stop();
399
400
  }
@@ -414,7 +415,7 @@ var VideoAgentMesh = /*#__PURE__*/function (_THREE$Mesh) {
414
415
  }, {
415
416
  key: "currentTime",
416
417
  get: function get() {
417
- return this.videoInstance.currentTime * 1000;
418
+ return this.mediaInstance.currentTime * 1000;
418
419
  }
419
420
  }, {
420
421
  key: "dispose",
@@ -1,16 +1,12 @@
1
1
  import * as THREE from 'three';
2
- import { VideoAgentMesh } from './VideoAgentMesh';
2
+ import { VideoAgentMesh, VideoAgentMeshOptions } from './VideoAgentMesh';
3
3
  export declare class VideoAgentScene {
4
4
  videoAgentMesh: VideoAgentMesh;
5
5
  scene: THREE.Scene;
6
6
  camera: THREE.OrthographicCamera;
7
7
  renderer: THREE.WebGLRenderer;
8
- container: HTMLElement;
9
- constructor(container: HTMLElement, needRender?: boolean, options?: {
10
- videoInstance?: HTMLVideoElement;
11
- audioInstance?: HTMLAudioElement;
12
- preload?: boolean;
13
- });
8
+ disposers: (() => void)[];
9
+ constructor(container?: HTMLElement, options?: VideoAgentMeshOptions);
14
10
  run: () => void;
15
11
  dispose: () => void;
16
12
  }
@@ -9,6 +9,8 @@ exports.VideoAgentScene = void 0;
9
9
 
10
10
  var THREE = _interopRequireWildcard(require("three"));
11
11
 
12
+ var _addResizeListener = require("../../../shared-utils/addResizeListener");
13
+
12
14
  var _VideoAgentMesh = require("./VideoAgentMesh");
13
15
 
14
16
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
@@ -23,12 +25,9 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons
23
25
 
24
26
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
25
27
 
26
- var VideoAgentScene = /*#__PURE__*/_createClass(function VideoAgentScene(container) {
28
+ var VideoAgentScene = /*#__PURE__*/_createClass(function VideoAgentScene(container, options) {
27
29
  var _this = this;
28
30
 
29
- var needRender = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
30
- var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
31
-
32
31
  _classCallCheck(this, VideoAgentScene);
33
32
 
34
33
  _defineProperty(this, "scene", new THREE.Scene());
@@ -39,20 +38,12 @@ var VideoAgentScene = /*#__PURE__*/_createClass(function VideoAgentScene(contain
39
38
  alpha: true
40
39
  }));
41
40
 
42
- _defineProperty(this, "run", function () {
43
- var _this$videoAgentMesh$;
44
-
45
- var domElement = _this.renderer.domElement; // 视频开始 1s 不渲染:规避某些设备黑屏闪烁问题。视频前 2s 是最好是静默的。
41
+ _defineProperty(this, "disposers", []);
46
42
 
43
+ _defineProperty(this, "run", function () {
44
+ // 视频开始 1s 不渲染:规避某些设备黑屏闪烁问题。视频前 2s 是最好是静默的。
47
45
  if (!(_this.videoAgentMesh.paused || _this.videoAgentMesh.freeze) && _this.videoAgentMesh.currentTime > 1000) {
48
46
  _this.renderer.render(_this.scene, _this.camera);
49
- } // 兼容非视频场景
50
-
51
-
52
- if (!((_this$videoAgentMesh$ = _this.videoAgentMesh.videoUrl) !== null && _this$videoAgentMesh$ !== void 0 && _this$videoAgentMesh$.endsWith('.mp4'))) {
53
- if (domElement.style.display !== 'none') domElement.style.display = 'none';
54
- } else {
55
- if (domElement.style.display !== 'block') domElement.style.display = 'block';
56
47
  }
57
48
 
58
49
  requestAnimationFrame(_this.run);
@@ -62,27 +53,27 @@ var VideoAgentScene = /*#__PURE__*/_createClass(function VideoAgentScene(contain
62
53
  var _this$videoAgentMesh;
63
54
 
64
55
  (_this$videoAgentMesh = _this.videoAgentMesh) === null || _this$videoAgentMesh === void 0 ? void 0 : _this$videoAgentMesh.dispose();
65
- });
66
-
67
- this.container = container;
68
- this.camera.position.set(0, 0, 10);
69
- this.camera.lookAt(0, 0, 0);
70
- var state = {
71
- width: container.offsetWidth,
72
- height: container.offsetHeight
73
- };
74
- var _domElement = this.renderer.domElement;
75
-
76
- _domElement.classList.add('VideoAgent-canvas');
77
56
 
78
- this.renderer.setSize(state.width * window.devicePixelRatio, state.height * window.devicePixelRatio);
79
-
80
- _domElement.setAttribute('style', "width: ".concat(state.width, "px;height: ").concat(state.height, "px;"));
81
-
82
- this.videoAgentMesh = new _VideoAgentMesh.VideoAgentMesh(480, 270, 1, 1, options);
57
+ _this.disposers.forEach(function (disposer) {
58
+ return disposer === null || disposer === void 0 ? void 0 : disposer();
59
+ });
60
+ });
83
61
 
84
- if (needRender) {
85
- container.append(_domElement);
62
+ this.videoAgentMesh = new _VideoAgentMesh.VideoAgentMesh(480, 270, 1, 1, options); // const needRender = getMediaType(this.videoAgentMesh.videoUrl) === 'video'
63
+
64
+ if (container) {
65
+ this.camera.position.set(0, 0, 10);
66
+ this.camera.lookAt(0, 0, 0);
67
+ var domElement = this.renderer.domElement;
68
+ domElement.classList.add('VideoAgent-canvas');
69
+ var dispose = (0, _addResizeListener.addResizeListener)(container, function (width, height) {
70
+ _this.renderer.setSize(width * window.devicePixelRatio, height * window.devicePixelRatio);
71
+
72
+ domElement.style.width = "".concat(width, "px");
73
+ domElement.style.height = "".concat(height, "px");
74
+ });
75
+ this.disposers.push(dispose);
76
+ container.append(domElement);
86
77
  this.scene.add(this.videoAgentMesh);
87
78
  this.run();
88
79
  }
@@ -13,38 +13,79 @@ var _hooks = require("../../hooks");
13
13
 
14
14
  var _VideoAgentScene = require("./VideoAgentScene");
15
15
 
16
+ var _classnames = _interopRequireDefault(require("classnames"));
17
+
18
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
19
+
16
20
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
17
21
 
18
22
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
19
23
 
20
24
  function VideoAgent(props) {
25
+ var _controller$avatar2;
26
+
21
27
  var ref = React.useRef(null);
22
28
  var controller = (0, _hooks.useController)();
29
+ var showAvatar = React.useMemo(function () {
30
+ var _controller$avatar;
31
+
32
+ return ((_controller$avatar = controller.avatar) === null || _controller$avatar === void 0 ? void 0 : _controller$avatar.url) && controller.avatar.force === true;
33
+ }, [controller.avatar]);
34
+ var showVideoAgent = React.useMemo(function () {
35
+ var _controller$videoAgen;
36
+
37
+ if (showAvatar) return false;
38
+ return ((_controller$videoAgen = controller.videoAgentScene) === null || _controller$videoAgen === void 0 ? void 0 : _controller$videoAgen.videoAgentMesh.mediaInstance) instanceof HTMLVideoElement;
39
+ }, [controller.videoAgentScene]);
23
40
  React.useEffect(function () {
24
41
  if (!ref.current) throw new Error('React 渲染异常,请稍后重试 ...');
25
42
 
26
43
  if (controller.videoAgentScene) {
27
- console.warn('"VideoAgentScene" 重复初始化,已被过滤 ...');
44
+ console.warn('VideoAgentScene" 重复初始化,已被过滤');
28
45
  return;
29
46
  }
30
47
 
31
- var videoAgentScene = new _VideoAgentScene.VideoAgentScene(ref.current, true, props.options || {});
48
+ var videoAgentScene = new _VideoAgentScene.VideoAgentScene(ref.current, props.options);
32
49
  controller.videoAgentScene = videoAgentScene;
33
50
  return function () {
34
- var _controller$videoAgen;
51
+ var _controller$videoAgen2;
35
52
 
36
53
  controller.dispose();
37
- (_controller$videoAgen = controller.videoAgentScene) === null || _controller$videoAgen === void 0 ? void 0 : _controller$videoAgen.dispose();
54
+ (_controller$videoAgen2 = controller.videoAgentScene) === null || _controller$videoAgen2 === void 0 ? void 0 : _controller$videoAgen2.dispose();
38
55
  };
39
56
  }, []);
40
- return /*#__PURE__*/React.createElement("div", {
41
- className: "VideoAgent",
57
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
58
+ className: "Avatar",
59
+ style: {
60
+ display: showAvatar ? 'block' : 'none'
61
+ }
62
+ }, /*#__PURE__*/React.createElement("div", {
63
+ className: "Avatar-wrapper ratio-1-1"
64
+ }, /*#__PURE__*/React.createElement("img", {
65
+ className: "Avatar-img",
66
+ src: (_controller$avatar2 = controller.avatar) === null || _controller$avatar2 === void 0 ? void 0 : _controller$avatar2.url,
42
67
  onClick: function onClick() {
43
- if (!props.onClick) return;
44
- props.onClick();
45
- },
68
+ var _props$onClick;
69
+
70
+ return (_props$onClick = props.onClick) === null || _props$onClick === void 0 ? void 0 : _props$onClick.call(props);
71
+ }
72
+ }))), /*#__PURE__*/React.createElement("div", {
73
+ className: (0, _classnames["default"])('VideoAgent', {
74
+ hide: !showVideoAgent
75
+ })
76
+ }, /*#__PURE__*/React.createElement("div", {
77
+ className: "VideoAgent-container"
78
+ }, /*#__PURE__*/React.createElement("div", {
79
+ className: "VideoAgent-wrapper ratio-16-9"
80
+ }, /*#__PURE__*/React.createElement("div", {
81
+ className: "VideoAgent-inner",
46
82
  ref: ref
47
83
  }, /*#__PURE__*/React.createElement("div", {
48
- className: "VideoAgent-play"
49
- }));
84
+ className: "VideoAgent-play",
85
+ onClick: function onClick() {
86
+ var _props$onClick2;
87
+
88
+ return (_props$onClick2 = props.onClick) === null || _props$onClick2 === void 0 ? void 0 : _props$onClick2.call(props);
89
+ }
90
+ }))))));
50
91
  }
@@ -0,0 +1,5 @@
1
+ /// <reference types="react" />
2
+ import { WaveAppearance } from '../../typings';
3
+ export declare function Wave(props?: {
4
+ appearance?: WaveAppearance;
5
+ }): JSX.Element;
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.Wave = Wave;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
11
+
12
+ function Wave(props) {
13
+ var waveUrl = _react["default"].useMemo(function () {
14
+ var _props$appearance;
15
+
16
+ var appearance = (_props$appearance = props === null || props === void 0 ? void 0 : props.appearance) !== null && _props$appearance !== void 0 ? _props$appearance : 'solid';
17
+
18
+ switch (appearance) {
19
+ default:
20
+ return 'https://vr-public.realsee-cdn.cn/release/static/image/release/vapor/static/wave-solid.64438b63cbb346906d066bb7b8dc3e20.webm';
21
+
22
+ case 'solid':
23
+ return 'https://vr-public.realsee-cdn.cn/release/static/image/release/vapor/static/wave-solid.64438b63cbb346906d066bb7b8dc3e20.webm';
24
+
25
+ case 'single':
26
+ return 'https://vr-public.realsee-cdn.cn/release/static/image/release/vapor/static/wave-single.eda65de390a830193fff40d1f1255555.webm';
27
+
28
+ case 'double':
29
+ return 'https://vr-public.realsee-cdn.cn/release/static/image/release/vapor/static/wave-double.77dfe8548ebcb3f3d336785d4fe9c7b2.webm';
30
+
31
+ case 'swap':
32
+ return 'https://vr-public.realsee-cdn.cn/release/static/image/release/vapor/static/wave-swap.c02e4b94cf05aecf6e7a0023bc7bb90f.webm';
33
+
34
+ case 'expand':
35
+ return 'https://vr-public.realsee-cdn.cn/release/static/image/release/vapor/static/wave-expand.a0d2a0074001cd3d4fea56818c6d3c38.webm';
36
+ }
37
+ }, [props === null || props === void 0 ? void 0 : props.appearance]);
38
+
39
+ return /*#__PURE__*/_react["default"].createElement("video", {
40
+ className: "vreo-wave",
41
+ width: "100%",
42
+ preload: "auto",
43
+ muted: true,
44
+ autoPlay: true,
45
+ loop: true,
46
+ playsInline: true,
47
+ disablePictureInPicture: true,
48
+ controls: false,
49
+ src: waveUrl
50
+ });
51
+ }
@@ -21,20 +21,30 @@ function InfoPanelImg(_ref) {
21
21
  var url = _ref.url,
22
22
  children = _ref.children;
23
23
  return /*#__PURE__*/React.createElement("div", {
24
+ className: "vreo-infoPanel-container"
25
+ }, /*#__PURE__*/React.createElement("div", {
24
26
  className: "vreo-infoPanel vreo-infoPanel--img"
25
- }, children, /*#__PURE__*/React.createElement("div", {
27
+ }, /*#__PURE__*/React.createElement("div", {
28
+ className: "ratio-4-5 vreo-infoPanel-wrapper"
29
+ }, /*#__PURE__*/React.createElement("div", {
30
+ className: "vreo-infoPanel-inner"
31
+ }, children, /*#__PURE__*/React.createElement("img", {
26
32
  className: "vreo-infoPanelImg",
27
- style: {
28
- backgroundImage: "url(".concat(url, ")")
29
- }
30
- }));
33
+ src: url
34
+ })))));
31
35
  }
32
36
 
33
37
  function InfoPanelVideo(_ref2) {
34
38
  var url = _ref2.url,
35
39
  children = _ref2.children;
36
40
  return /*#__PURE__*/React.createElement("div", {
41
+ className: "vreo-infoPanel-container"
42
+ }, /*#__PURE__*/React.createElement("div", {
37
43
  className: "vreo-infoPanel vreo-infoPanel--video"
44
+ }, /*#__PURE__*/React.createElement("div", {
45
+ className: "ratio-4-5 vreo-infoPanel-wrapper"
46
+ }, /*#__PURE__*/React.createElement("div", {
47
+ className: "vreo-infoPanel-inner"
38
48
  }, children, /*#__PURE__*/React.createElement("div", {
39
49
  className: "vreo-infoPanelVideo"
40
50
  }, /*#__PURE__*/React.createElement("video", {
@@ -42,7 +52,7 @@ function InfoPanelVideo(_ref2) {
42
52
  autoPlay: true,
43
53
  className: "vreo-infoPanelVideo",
44
54
  src: url
45
- })));
55
+ }))))));
46
56
  }
47
57
 
48
58
  var Title = function Title(props) {
@@ -50,13 +60,15 @@ var Title = function Title(props) {
50
60
  return null;
51
61
  }
52
62
 
53
- return /*#__PURE__*/React.createElement("div", {
63
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
64
+ className: "vreo-infoPanel-title-shadow"
65
+ }), /*#__PURE__*/React.createElement("div", {
54
66
  className: "vreo-infoPanel-title"
55
67
  }, /*#__PURE__*/React.createElement("div", {
56
68
  className: "vreo-infoPanel-t1"
57
69
  }, props.title), /*#__PURE__*/React.createElement("div", {
58
70
  className: "vreo-infoPanel-t2"
59
- }, props.subTitle));
71
+ }, props.subTitle)));
60
72
  };
61
73
 
62
74
  function InfoPanel() {
@@ -1,2 +1 @@
1
- /// <reference types="react" />
2
- export declare function PanoTag(): JSX.Element;
1
+ export declare function PanoTag(): null;