@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.
- package/docs/assets/search.js +1 -1
- package/docs/classes/Player.AudioLike.html +6 -6
- package/docs/classes/Player.Controller.html +12 -12
- package/docs/classes/Player.Player-1.html +11 -11
- package/docs/classes/Player.VideoAgentMesh.html +12 -12
- package/docs/classes/Player.VideoAgentScene.html +1 -1
- package/docs/enums/Player.InfoPanelStyleEnum.html +1 -1
- package/docs/enums/Player.InfoPanelTypeEnum.html +1 -1
- package/docs/enums/Player.PanoEffectEnum.html +1 -1
- package/docs/enums/Player.PanoTagEnum.html +1 -1
- package/docs/enums/Player.PanoTagStyleEnum.html +2 -2
- package/docs/enums/Player.VreoKeyframeEnum.html +12 -12
- package/docs/enums/fivePlugins.CameraMovementEffect.html +1 -1
- package/docs/enums/fivePlugins.Rotation.html +1 -1
- package/docs/interfaces/Player.CustomVreoKeyframeProps.html +1 -1
- package/docs/interfaces/Player.PlayerConfigs.html +4 -3
- package/docs/interfaces/Player.Vertex.html +1 -1
- package/docs/interfaces/Player.VideoAgentMeshOptions.html +3 -3
- package/docs/interfaces/Player.VreoKeyframe.html +1 -1
- package/docs/interfaces/Player.VreoUnit.html +1 -1
- package/docs/interfaces/Player.VreoVideo.html +1 -1
- package/docs/interfaces/fivePlugins.CSS3DRenderPluginExportType.html +2 -2
- package/docs/interfaces/fivePlugins.CameraMovementOptsCallback.html +1 -1
- package/docs/interfaces/fivePlugins.CameraMovementPluginExportType.html +2 -2
- package/docs/interfaces/fivePlugins.ModelTVVideoPluginData.html +1 -1
- package/docs/interfaces/fivePlugins.ModelTVVideoPluginExportType.html +1 -1
- package/docs/interfaces/fivePlugins.ModelTVVideoPluginParameterType.html +1 -1
- package/docs/interfaces/fivePlugins.Vector3Position.html +1 -1
- package/docs/interfaces/react.VreoActionCallbacks.html +6 -6
- package/docs/interfaces/react.VreoProviderProps.html +1 -1
- package/docs/modules/Player.html +16 -16
- package/docs/modules/custom.html +1 -1
- package/docs/modules/fivePlugins.html +3 -3
- package/docs/modules/react.html +1 -1
- package/lib/PlayController/index.js +1 -2
- package/lib/Player/App.js +8 -6
- package/lib/Player/Controller.d.ts +27 -8
- package/lib/Player/Controller.js +170 -23
- package/lib/Player/custom/SpatialScenePanel/index.js +2 -1
- package/lib/Player/hooks.js +2 -2
- package/lib/Player/index.d.ts +2 -1
- package/lib/Player/index.js +42 -29
- package/lib/Player/modules/ResizeObserver/index.d.ts +2 -0
- package/lib/Player/modules/ResizeObserver/index.js +37 -0
- package/lib/Player/modules/VideoAgent/VideoAgentMesh.d.ts +1 -1
- package/lib/Player/modules/VideoAgent/VideoAgentMesh.js +44 -43
- package/lib/Player/modules/VideoAgent/VideoAgentScene.d.ts +3 -7
- package/lib/Player/modules/VideoAgent/VideoAgentScene.js +25 -34
- package/lib/Player/modules/VideoAgent/index.js +52 -11
- package/lib/Player/modules/Wave/index.d.ts +5 -0
- package/lib/Player/modules/Wave/index.js +51 -0
- package/lib/Player/modules/keyframes/InfoPanel/index.js +20 -8
- package/lib/Player/modules/keyframes/PanoTag/index.d.ts +1 -2
- package/lib/Player/modules/keyframes/PanoTag/index.js +78 -131
- package/lib/Player/modules/keyframes/PanoTextLabel/index.js +0 -1
- package/lib/Player/modules/keyframes/Prompter/index.js +5 -4
- package/lib/Player/typings.d.ts +9 -2
- package/lib/fivePlugins/CameraMovementPlugin/index.js +2 -5
- package/lib/react/index.d.ts +2 -2
- package/lib/shared-utils/AduioLike.js +8 -7
- package/lib/shared-utils/addResizeListener.d.ts +4 -0
- package/lib/shared-utils/addResizeListener.js +51 -0
- package/lib/shared-utils/getFileExpandedName.d.ts +1 -0
- package/lib/shared-utils/getFileExpandedName.js +13 -0
- package/lib/shared-utils/getMediaInfo.d.ts +9 -0
- package/lib/shared-utils/getMediaInfo.js +75 -0
- package/lib/shared-utils/setElementDataset.d.ts +1 -0
- package/lib/shared-utils/setElementDataset.js +24 -0
- package/lib/typings/VreoUnit.d.ts +4 -0
- package/package.json +1 -1
|
@@ -7,49 +7,39 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
});
|
|
8
8
|
exports.PanoTag = PanoTag;
|
|
9
9
|
|
|
10
|
-
var _classnames = _interopRequireDefault(require("classnames"));
|
|
11
|
-
|
|
12
10
|
var React = _interopRequireWildcard(require("react"));
|
|
13
11
|
|
|
14
|
-
var _three = require("three");
|
|
15
|
-
|
|
16
12
|
var _hooks = require("../../../hooks");
|
|
17
13
|
|
|
18
14
|
var _VreoUnit = require("../../../../typings/VreoUnit");
|
|
19
15
|
|
|
16
|
+
var _dnalogel = require("@realsee/dnalogel");
|
|
17
|
+
|
|
20
18
|
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); }
|
|
21
19
|
|
|
22
20
|
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; }
|
|
23
21
|
|
|
24
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
25
|
-
|
|
26
|
-
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
27
|
-
|
|
28
|
-
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
29
|
-
|
|
30
|
-
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
31
|
-
|
|
32
|
-
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
33
|
-
|
|
34
|
-
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
|
35
|
-
|
|
36
|
-
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
37
|
-
|
|
38
22
|
function PanoTag() {
|
|
39
|
-
var _React$useState = React.useState(null),
|
|
40
|
-
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
41
|
-
state = _React$useState2[0],
|
|
42
|
-
setState = _React$useState2[1];
|
|
43
|
-
|
|
44
|
-
var _React$useState3 = React.useState(null),
|
|
45
|
-
_React$useState4 = _slicedToArray(_React$useState3, 2),
|
|
46
|
-
pos = _React$useState4[0],
|
|
47
|
-
setPos = _React$useState4[1];
|
|
48
|
-
|
|
49
23
|
var timeoutRef = React.useRef();
|
|
50
24
|
var controller = (0, _hooks.useController)();
|
|
51
25
|
var five = (0, _hooks.useFiveInstance)();
|
|
52
|
-
var
|
|
26
|
+
var panoTagPlugin = React.useRef((0, _dnalogel.PanoTagPlugin)(five, {
|
|
27
|
+
config: {
|
|
28
|
+
globalConfig: {
|
|
29
|
+
visibleConfig: {
|
|
30
|
+
keep: 'visible'
|
|
31
|
+
},
|
|
32
|
+
unfoldedConfig: {
|
|
33
|
+
autoUnfold: {
|
|
34
|
+
strategy: 'MinimumDistance'
|
|
35
|
+
},
|
|
36
|
+
unfoldDistance: {
|
|
37
|
+
max: 100
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}));
|
|
53
43
|
React.useEffect(function () {
|
|
54
44
|
var _controller$configs;
|
|
55
45
|
|
|
@@ -58,33 +48,70 @@ function PanoTag() {
|
|
|
58
48
|
}
|
|
59
49
|
|
|
60
50
|
var callback = function callback(keyframe) {
|
|
51
|
+
if (!panoTagPlugin.current) return;
|
|
61
52
|
var start = keyframe.start,
|
|
62
53
|
end = keyframe.end,
|
|
63
54
|
data = keyframe.data;
|
|
64
55
|
var panoTagData = data;
|
|
65
|
-
var
|
|
66
|
-
var
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
var
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
56
|
+
var id = 'any-id';
|
|
57
|
+
var pointType = _dnalogel.PointType.PointTag;
|
|
58
|
+
var dimensionType = _dnalogel.DimensionType.Two;
|
|
59
|
+
var position = [panoTagData.vertex.x, panoTagData.vertex.y, panoTagData.vertex.z];
|
|
60
|
+
|
|
61
|
+
var tag = function () {
|
|
62
|
+
if (panoTagData.imgUrl) {
|
|
63
|
+
return {
|
|
64
|
+
id: id,
|
|
65
|
+
pointType: pointType,
|
|
66
|
+
position: position,
|
|
67
|
+
dimensionType: dimensionType,
|
|
68
|
+
contentType: _dnalogel.ContentType.ImageText,
|
|
69
|
+
data: {
|
|
70
|
+
text: panoTagData.text,
|
|
71
|
+
mediaData: [{
|
|
72
|
+
type: 'Image',
|
|
73
|
+
url: panoTagData.imgUrl
|
|
74
|
+
}]
|
|
75
|
+
}
|
|
76
|
+
};
|
|
77
|
+
} else {
|
|
78
|
+
return {
|
|
79
|
+
id: id,
|
|
80
|
+
pointType: pointType,
|
|
81
|
+
position: position,
|
|
82
|
+
dimensionType: dimensionType,
|
|
83
|
+
contentType: _dnalogel.ContentType.Text,
|
|
84
|
+
data: {
|
|
85
|
+
text: panoTagData.text
|
|
86
|
+
}
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
}(); // show
|
|
90
|
+
|
|
91
|
+
|
|
92
|
+
panoTagPlugin.current.load({
|
|
93
|
+
tagList: [tag]
|
|
84
94
|
});
|
|
85
95
|
timeoutRef.current = setTimeout(function () {
|
|
86
|
-
|
|
87
|
-
|
|
96
|
+
var _tag$hooks;
|
|
97
|
+
|
|
98
|
+
var id = Date.now(); // clear
|
|
99
|
+
|
|
100
|
+
var tag = panoTagPlugin.current.getTagById(id);
|
|
101
|
+
|
|
102
|
+
if (tag.state) {
|
|
103
|
+
tag.state.unfolded = false;
|
|
104
|
+
panoTagPlugin.current.updateRenderAllTags();
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
(_tag$hooks = tag.hooks) === null || _tag$hooks === void 0 ? void 0 : _tag$hooks.on('folded', function () {
|
|
108
|
+
setTimeout(function () {
|
|
109
|
+
if (tag.state) {
|
|
110
|
+
tag.state.visible = false;
|
|
111
|
+
panoTagPlugin.current.destroyTagById(id);
|
|
112
|
+
}
|
|
113
|
+
}, 1500);
|
|
114
|
+
});
|
|
88
115
|
}, end - start);
|
|
89
116
|
};
|
|
90
117
|
|
|
@@ -97,85 +124,5 @@ function PanoTag() {
|
|
|
97
124
|
}
|
|
98
125
|
};
|
|
99
126
|
}, [controller]);
|
|
100
|
-
|
|
101
|
-
var callback = function callback() {
|
|
102
|
-
if (!(state !== null && state !== void 0 && state.vertex)) return;
|
|
103
|
-
var _state$vertex = state.vertex,
|
|
104
|
-
x = _state$vertex.x,
|
|
105
|
-
y = _state$vertex.y,
|
|
106
|
-
z = _state$vertex.z;
|
|
107
|
-
var res = project2d(new _three.Vector3(x, y, z));
|
|
108
|
-
if (!res) return;
|
|
109
|
-
var left = res.x,
|
|
110
|
-
top = res.y;
|
|
111
|
-
setPos({
|
|
112
|
-
left: left,
|
|
113
|
-
top: top
|
|
114
|
-
});
|
|
115
|
-
};
|
|
116
|
-
|
|
117
|
-
five.on('currentStateChange', callback);
|
|
118
|
-
return function () {
|
|
119
|
-
five.off('currentStateChange', callback);
|
|
120
|
-
};
|
|
121
|
-
}, [state === null || state === void 0 ? void 0 : state.vertex]);
|
|
122
|
-
|
|
123
|
-
var boxContent = function () {
|
|
124
|
-
if (!state) return undefined;
|
|
125
|
-
|
|
126
|
-
if (state.type === _VreoUnit.PanoTagEnum.Text) {
|
|
127
|
-
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("span", null, state.text));
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
if (state.type === _VreoUnit.PanoTagEnum.Image) {
|
|
131
|
-
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("img", {
|
|
132
|
-
className: "PanoTag-img",
|
|
133
|
-
src: state.imgUrl,
|
|
134
|
-
alt: state.text || ''
|
|
135
|
-
}), /*#__PURE__*/React.createElement("span", {
|
|
136
|
-
className: "PanoTag-txt"
|
|
137
|
-
}, state.text));
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
return undefined;
|
|
141
|
-
}();
|
|
142
|
-
|
|
143
|
-
if ((state === null || state === void 0 ? void 0 : state.style) === _VreoUnit.PanoTagStyleEnum.Expand) {
|
|
144
|
-
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
|
|
145
|
-
className: (0, _classnames["default"])('PanoTag', {
|
|
146
|
-
'PanoTag--expand': true,
|
|
147
|
-
'PanoTag--notHidden': state
|
|
148
|
-
}),
|
|
149
|
-
style: {
|
|
150
|
-
left: ((pos === null || pos === void 0 ? void 0 : pos.left) || 0) + 'px',
|
|
151
|
-
top: ((pos === null || pos === void 0 ? void 0 : pos.top) || 0) + 'px'
|
|
152
|
-
}
|
|
153
|
-
}, /*#__PURE__*/React.createElement("div", {
|
|
154
|
-
className: 'PanoTag-box PanoTag-box--' + ((state === null || state === void 0 ? void 0 : state.type) || '')
|
|
155
|
-
}, boxContent), /*#__PURE__*/React.createElement("div", {
|
|
156
|
-
className: "PanoTag-guideline"
|
|
157
|
-
})));
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
|
|
161
|
-
className: (0, _classnames["default"])('PanoTag', {
|
|
162
|
-
'PanoTag--notHidden': state
|
|
163
|
-
}),
|
|
164
|
-
style: {
|
|
165
|
-
left: ((pos === null || pos === void 0 ? void 0 : pos.left) || 0) + 'px',
|
|
166
|
-
top: ((pos === null || pos === void 0 ? void 0 : pos.top) || 0) + 'px'
|
|
167
|
-
}
|
|
168
|
-
}, /*#__PURE__*/React.createElement("div", {
|
|
169
|
-
className: "PanoTag-point"
|
|
170
|
-
}), /*#__PURE__*/React.createElement("div", {
|
|
171
|
-
className: "PanoTag-content"
|
|
172
|
-
}, /*#__PURE__*/React.createElement("span", {
|
|
173
|
-
className: "PanoTag-linewrap"
|
|
174
|
-
}, /*#__PURE__*/React.createElement("span", {
|
|
175
|
-
className: "PanoTag-slashline"
|
|
176
|
-
}), /*#__PURE__*/React.createElement("span", {
|
|
177
|
-
className: "PanoTag-straightline"
|
|
178
|
-
})), /*#__PURE__*/React.createElement("div", {
|
|
179
|
-
className: 'PanoTag-box PanoTag-box--' + ((state === null || state === void 0 ? void 0 : state.type) || '')
|
|
180
|
-
}, boxContent))));
|
|
127
|
+
return null;
|
|
181
128
|
}
|
|
@@ -21,6 +21,8 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
|
|
|
21
21
|
|
|
22
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; }
|
|
23
23
|
|
|
24
|
+
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
|
+
|
|
24
26
|
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
25
27
|
|
|
26
28
|
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
@@ -80,10 +82,9 @@ function Prompter() {
|
|
|
80
82
|
};
|
|
81
83
|
}, [controller]);
|
|
82
84
|
return /*#__PURE__*/React.createElement("div", {
|
|
83
|
-
className: (0, _classnames["default"])('vreo-prompter', {
|
|
84
|
-
'vreo-prompter--hidden': hidden
|
|
85
|
-
|
|
86
|
-
})
|
|
85
|
+
className: (0, _classnames["default"])('vreo-prompter', _defineProperty({
|
|
86
|
+
'vreo-prompter--hidden': hidden
|
|
87
|
+
}, "vreo-prompter-left--".concat(controller.agentType), true))
|
|
87
88
|
}, /*#__PURE__*/React.createElement("div", {
|
|
88
89
|
className: "vreo-prompter-text"
|
|
89
90
|
}, /*#__PURE__*/React.createElement("div", {
|
package/lib/Player/typings.d.ts
CHANGED
|
@@ -6,8 +6,8 @@ export interface PlayerConfigs {
|
|
|
6
6
|
/**
|
|
7
7
|
* @deprecated rename to container
|
|
8
8
|
*/
|
|
9
|
-
containter?:
|
|
10
|
-
container?:
|
|
9
|
+
containter?: Element;
|
|
10
|
+
container?: Element;
|
|
11
11
|
keyframeMap: VreoKeyframeConfigMap;
|
|
12
12
|
/**
|
|
13
13
|
* 微信端自动播放功能实现需要提前初始化 Video 实例。
|
|
@@ -28,6 +28,13 @@ export interface PlayerConfigs {
|
|
|
28
28
|
size: number;
|
|
29
29
|
};
|
|
30
30
|
autoPreload?: boolean;
|
|
31
|
+
appSize?: AppSize;
|
|
32
|
+
appearance?: Appearance;
|
|
33
|
+
}
|
|
34
|
+
export declare type AppSize = 'S' | 'M' | 'L' | 'XL';
|
|
35
|
+
export declare type WaveAppearance = 'single' | 'double' | 'solid' | 'swap' | 'expand';
|
|
36
|
+
export interface Appearance {
|
|
37
|
+
waveStyle?: 'wave' | 'solid';
|
|
31
38
|
}
|
|
32
39
|
export declare type VreoSubscribe = Pick<Subscribe<VreoKeyframeEvent>, 'on' | 'once' | 'off'>;
|
|
33
40
|
export interface CustomVreoKeyframeProps {
|
|
@@ -259,8 +259,7 @@ var CameraMovementPlugin = function CameraMovementPlugin(five) {
|
|
|
259
259
|
opts.asyncEndCallback();
|
|
260
260
|
}
|
|
261
261
|
|
|
262
|
-
_getAnimeParams = getAnimeParams(args), from = _getAnimeParams.from, to = _getAnimeParams.to;
|
|
263
|
-
|
|
262
|
+
_getAnimeParams = getAnimeParams(args), from = _getAnimeParams.from, to = _getAnimeParams.to;
|
|
264
263
|
_context2.next = 15;
|
|
265
264
|
return new Promise(function (resolve, reject) {
|
|
266
265
|
var onUpdate = function onUpdate(_ref3) {
|
|
@@ -268,9 +267,7 @@ var CameraMovementPlugin = function CameraMovementPlugin(five) {
|
|
|
268
267
|
var state = {};
|
|
269
268
|
state.longitude = progressNumber(from.longitude, to.longitude, progress) % PI_2;
|
|
270
269
|
state.latitude = progressNumber(from.latitude, to.latitude, progress);
|
|
271
|
-
state.fov = progressNumber(from.fov, to.fov, progress);
|
|
272
|
-
|
|
273
|
-
// console.log(state.longitude)
|
|
270
|
+
state.fov = progressNumber(from.fov, to.fov, progress);
|
|
274
271
|
five.setState(state, true);
|
|
275
272
|
};
|
|
276
273
|
|
package/lib/react/index.d.ts
CHANGED
|
@@ -39,10 +39,10 @@ export interface VreoActionCallbacks {
|
|
|
39
39
|
dispose: () => void;
|
|
40
40
|
}
|
|
41
41
|
export declare function useVreoAction(): {
|
|
42
|
-
load: (vreoUnit: VreoUnit, currentTime?: number
|
|
42
|
+
load: (vreoUnit: VreoUnit, currentTime?: number) => Promise<boolean>;
|
|
43
43
|
pause: () => void;
|
|
44
44
|
show: () => void;
|
|
45
|
-
play: (currentTime?: number
|
|
45
|
+
play: (currentTime?: number) => boolean;
|
|
46
46
|
hide: () => void;
|
|
47
47
|
dispose: () => void;
|
|
48
48
|
};
|
|
@@ -51,7 +51,7 @@ var AudioLike = /*#__PURE__*/function (_Subscribe) {
|
|
|
51
51
|
|
|
52
52
|
_this = _super.call(this);
|
|
53
53
|
|
|
54
|
-
_defineProperty(_assertThisInitialized(_this), "$timestamp",
|
|
54
|
+
_defineProperty(_assertThisInitialized(_this), "$timestamp", null);
|
|
55
55
|
|
|
56
56
|
_defineProperty(_assertThisInitialized(_this), "$currentTime", 0);
|
|
57
57
|
|
|
@@ -77,14 +77,14 @@ var AudioLike = /*#__PURE__*/function (_Subscribe) {
|
|
|
77
77
|
value: function play() {
|
|
78
78
|
var _this2 = this;
|
|
79
79
|
|
|
80
|
-
if (this.$timestamp === 0) {
|
|
81
|
-
this.$timestamp = performance.now();
|
|
82
|
-
}
|
|
83
|
-
|
|
84
80
|
if (this.$currentTime === this.$duration) {
|
|
85
81
|
this.$currentTime = 0;
|
|
86
82
|
}
|
|
87
83
|
|
|
84
|
+
if (this.$timestamp === null) {
|
|
85
|
+
this.$timestamp = performance.now() - this.$currentTime;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
88
|
this.stopInterval = (0, _animationFrame.requestAnimationFrameInterval)(function () {
|
|
89
89
|
return _this2.requestAnimationFrameLoop();
|
|
90
90
|
});
|
|
@@ -99,11 +99,12 @@ var AudioLike = /*#__PURE__*/function (_Subscribe) {
|
|
|
99
99
|
this.stopInterval = undefined;
|
|
100
100
|
}
|
|
101
101
|
|
|
102
|
-
this.$timestamp =
|
|
102
|
+
this.$timestamp = null;
|
|
103
103
|
}
|
|
104
104
|
}, {
|
|
105
105
|
key: "requestAnimationFrameLoop",
|
|
106
106
|
value: function requestAnimationFrameLoop() {
|
|
107
|
+
if (this.$timestamp === null) return;
|
|
107
108
|
var now = performance.now();
|
|
108
109
|
this.$currentTime = now - this.$timestamp;
|
|
109
110
|
this.emit('timeupdate');
|
|
@@ -130,7 +131,7 @@ var AudioLike = /*#__PURE__*/function (_Subscribe) {
|
|
|
130
131
|
set: function set(duration) {
|
|
131
132
|
this.pause();
|
|
132
133
|
this.$duration = duration;
|
|
133
|
-
this.$timestamp =
|
|
134
|
+
this.$timestamp = null;
|
|
134
135
|
this.$currentTime = 0;
|
|
135
136
|
}
|
|
136
137
|
}, {
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
declare type ResizeHandler = (width: number, height: number) => void;
|
|
2
|
+
export declare function addResizeListener(element: Element | undefined | null, resizeHandler: ResizeHandler, immediate?: boolean): () => void;
|
|
3
|
+
export declare function hasResizeListener(element?: Element | null): number | boolean;
|
|
4
|
+
export {};
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.addResizeListener = addResizeListener;
|
|
7
|
+
exports.hasResizeListener = hasResizeListener;
|
|
8
|
+
var resizeObserverCache = new Map();
|
|
9
|
+
|
|
10
|
+
function addResizeListener(element, resizeHandler) {
|
|
11
|
+
var immediate = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
|
|
12
|
+
if (!element) return function () {};
|
|
13
|
+
if (immediate) resizeHandler(element.clientWidth, element.clientHeight);
|
|
14
|
+
|
|
15
|
+
if (typeof ResizeObserver !== 'undefined' && ResizeObserver) {
|
|
16
|
+
var resizeObserver = new ResizeObserver(function () {
|
|
17
|
+
return resizeHandler(element.clientWidth, element.clientHeight);
|
|
18
|
+
});
|
|
19
|
+
resizeObserver.observe(element);
|
|
20
|
+
resizeObserverCache.set(element, resizeObserverCache.get(element) || 0 + 1);
|
|
21
|
+
return function () {
|
|
22
|
+
if (element) resizeObserver.unobserve(element);
|
|
23
|
+
|
|
24
|
+
if (resizeObserverCache.get(element) === 1) {
|
|
25
|
+
resizeObserverCache["delete"](element);
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
} else {
|
|
29
|
+
var iframe = document.createElement('iframe');
|
|
30
|
+
iframe.style.cssText = 'position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;opacity:0;visibility:hidden;margin:0;border:0;padding:0;z-index:-1;';
|
|
31
|
+
iframe.classList.add('resize-sensor-iframe');
|
|
32
|
+
element.appendChild(iframe);
|
|
33
|
+
if (!iframe.contentWindow) return function () {};
|
|
34
|
+
iframe.contentWindow.addEventListener('resize', function () {
|
|
35
|
+
resizeHandler(iframe.clientWidth, iframe.clientHeight);
|
|
36
|
+
});
|
|
37
|
+
resizeObserverCache.set(element, resizeObserverCache.get(element) || 0 + 1);
|
|
38
|
+
return function () {
|
|
39
|
+
element.removeChild(iframe);
|
|
40
|
+
|
|
41
|
+
if (resizeObserverCache.get(element) === 1) {
|
|
42
|
+
resizeObserverCache["delete"](element);
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
function hasResizeListener(element) {
|
|
49
|
+
if (!element) return false;
|
|
50
|
+
return resizeObserverCache.get(element) || 0 > 0;
|
|
51
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function getFileExpandedName(filePath?: string | null): string;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports["default"] = getFileExpandedName;
|
|
7
|
+
|
|
8
|
+
function getFileExpandedName(filePath) {
|
|
9
|
+
if (!filePath) return '';
|
|
10
|
+
var index = filePath.lastIndexOf('.');
|
|
11
|
+
var ext = filePath.substring(index + 1);
|
|
12
|
+
return ext.toLowerCase();
|
|
13
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export default function getMediaInfo(fileUrl: string): Promise<{
|
|
2
|
+
duration?: number | undefined;
|
|
3
|
+
type?: 'video' | 'audio' | 'image' | 'unknown' | undefined;
|
|
4
|
+
error?: string | undefined;
|
|
5
|
+
}>;
|
|
6
|
+
export declare function getMediaType(url?: string): "audio" | "video" | "image" | "unknown";
|
|
7
|
+
export declare function getMediaTypeByExpandedName(fileExpandedName?: string | null): "audio" | "video" | "image" | "unknown";
|
|
8
|
+
export declare function getMediaTypeByUrl(fileUrl?: string | null): "audio" | "video" | "image" | "unknown" | undefined;
|
|
9
|
+
export declare function getFileName(fileUrl?: string): string;
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports["default"] = getMediaInfo;
|
|
7
|
+
exports.getFileName = getFileName;
|
|
8
|
+
exports.getMediaType = getMediaType;
|
|
9
|
+
exports.getMediaTypeByExpandedName = getMediaTypeByExpandedName;
|
|
10
|
+
exports.getMediaTypeByUrl = getMediaTypeByUrl;
|
|
11
|
+
|
|
12
|
+
var _getFileExpandedName = _interopRequireDefault(require("./getFileExpandedName"));
|
|
13
|
+
|
|
14
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
15
|
+
|
|
16
|
+
function getMediaInfo(fileUrl) {
|
|
17
|
+
var type = getMediaType(fileUrl);
|
|
18
|
+
if (!type) return Promise.resolve({
|
|
19
|
+
error: '未知的文件类型: ' + fileUrl
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
var mediaElement = function () {
|
|
23
|
+
if (type === 'video') return document.createElement('video');
|
|
24
|
+
if (type === 'audio') return document.createElement('audio');
|
|
25
|
+
}();
|
|
26
|
+
|
|
27
|
+
if (!mediaElement) return Promise.resolve({
|
|
28
|
+
error: 'Unknown media element'
|
|
29
|
+
});
|
|
30
|
+
mediaElement.src = fileUrl;
|
|
31
|
+
return new Promise(function (resolve) {
|
|
32
|
+
mediaElement.onerror = function () {
|
|
33
|
+
return resolve({
|
|
34
|
+
error: 'onerror'
|
|
35
|
+
});
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
mediaElement.onloadedmetadata = function () {
|
|
39
|
+
resolve({
|
|
40
|
+
duration: mediaElement.duration * 1000,
|
|
41
|
+
type: type
|
|
42
|
+
}); // s => ms
|
|
43
|
+
};
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
function getMediaType(url) {
|
|
48
|
+
var fileExpandedName = (0, _getFileExpandedName["default"])(url);
|
|
49
|
+
var type = getMediaTypeByExpandedName(fileExpandedName);
|
|
50
|
+
return type;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
function getMediaTypeByExpandedName(fileExpandedName) {
|
|
54
|
+
if (!fileExpandedName) return 'unknown';
|
|
55
|
+
if (/jpg|jpeg|png$/.test(fileExpandedName)) return 'image';
|
|
56
|
+
if (/mp3|wav$/.test(fileExpandedName)) return 'audio';
|
|
57
|
+
if (/avi|wmv|mpeg|mp4|m4v|mov|asf|flv|f4v|rmvb|rm|3gp|vob$/.test(fileExpandedName)) return 'video';
|
|
58
|
+
return 'unknown';
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
function getMediaTypeByUrl(fileUrl) {
|
|
62
|
+
if (!fileUrl) return;
|
|
63
|
+
var fileExpandedName = (0, _getFileExpandedName["default"])(fileUrl);
|
|
64
|
+
return getMediaTypeByExpandedName(fileExpandedName);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
function getFileName(fileUrl) {
|
|
68
|
+
if (!fileUrl) return '';
|
|
69
|
+
var index1 = fileUrl.lastIndexOf('/');
|
|
70
|
+
var index2 = fileUrl.lastIndexOf('\\');
|
|
71
|
+
var index3 = fileUrl.lastIndexOf('\\\\');
|
|
72
|
+
var index = Math.max(index1, index2, index3);
|
|
73
|
+
var ext = fileUrl.substring(index + 1);
|
|
74
|
+
return ext;
|
|
75
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function setElementDataset(element: any, dataset: Record<string, string | number>): void;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports["default"] = setElementDataset;
|
|
7
|
+
|
|
8
|
+
function setElementDataset(element, dataset) {
|
|
9
|
+
if (element) {
|
|
10
|
+
Object.keys(dataset).forEach(function (key) {
|
|
11
|
+
var value = dataset[key].toString();
|
|
12
|
+
|
|
13
|
+
if (element instanceof Element) {
|
|
14
|
+
element.setAttribute("data-".concat(key), value);
|
|
15
|
+
} else if (element instanceof Document) {
|
|
16
|
+
element.documentElement.setAttribute("data-".concat(key), value);
|
|
17
|
+
} else if (element instanceof HTMLElement) {
|
|
18
|
+
element.dataset[key] = value;
|
|
19
|
+
} else {
|
|
20
|
+
element.setAttribute("data-".concat(key), value);
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
}
|