@godscene/visualizer 1.7.11
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/LICENSE +21 -0
- package/README.md +9 -0
- package/dist/es/component/blackboard/highlights.mjs +47 -0
- package/dist/es/component/blackboard/index.css +118 -0
- package/dist/es/component/blackboard/index.mjs +122 -0
- package/dist/es/component/config-selector/index.mjs +251 -0
- package/dist/es/component/context-preview/index.mjs +37 -0
- package/dist/es/component/env-config/index.mjs +237 -0
- package/dist/es/component/env-config-reminder/index.css +30 -0
- package/dist/es/component/env-config-reminder/index.mjs +27 -0
- package/dist/es/component/form-field/index.mjs +158 -0
- package/dist/es/component/history-selector/index.css +237 -0
- package/dist/es/component/history-selector/index.mjs +197 -0
- package/dist/es/component/index.mjs +1 -0
- package/dist/es/component/logo/index.css +19 -0
- package/dist/es/component/logo/index.mjs +20 -0
- package/dist/es/component/logo/logo.mjs +2 -0
- package/dist/es/component/misc/index.mjs +96 -0
- package/dist/es/component/nav-actions/index.mjs +14 -0
- package/dist/es/component/nav-actions/style.css +35 -0
- package/dist/es/component/player/index.css +296 -0
- package/dist/es/component/player/index.mjs +702 -0
- package/dist/es/component/player/playback-controls.mjs +4 -0
- package/dist/es/component/player/report-download.mjs +61 -0
- package/dist/es/component/player/scenes/StepScene.mjs +194 -0
- package/dist/es/component/player/scenes/derive-frame-state.mjs +229 -0
- package/dist/es/component/player/scenes/export-branded-video.mjs +360 -0
- package/dist/es/component/player/scenes/frame-calculator.mjs +149 -0
- package/dist/es/component/player/scenes/playback-frame.mjs +6 -0
- package/dist/es/component/player/scenes/playback-layout.mjs +12 -0
- package/dist/es/component/player/scenes/pointer-layout.mjs +36 -0
- package/dist/es/component/player/use-frame-player.mjs +87 -0
- package/dist/es/component/playground/index.css +930 -0
- package/dist/es/component/playground/playground-demo-ui-context.json +290 -0
- package/dist/es/component/playground-result/index.css +92 -0
- package/dist/es/component/playground-result/index.mjs +232 -0
- package/dist/es/component/prompt-input/index.css +832 -0
- package/dist/es/component/prompt-input/index.mjs +959 -0
- package/dist/es/component/screenshot-viewer/index.css +237 -0
- package/dist/es/component/screenshot-viewer/index.mjs +319 -0
- package/dist/es/component/service-mode-control/index.mjs +107 -0
- package/dist/es/component/shiny-text/index.css +107 -0
- package/dist/es/component/shiny-text/index.mjs +15 -0
- package/dist/es/component/universal-playground/empty-state.mjs +5 -0
- package/dist/es/component/universal-playground/index.css +619 -0
- package/dist/es/component/universal-playground/index.mjs +558 -0
- package/dist/es/component/universal-playground/providers/context-provider.mjs +90 -0
- package/dist/es/component/universal-playground/providers/indexeddb-storage-provider.mjs +280 -0
- package/dist/es/component/universal-playground/providers/storage-provider.mjs +279 -0
- package/dist/es/component/universal-playground/universal-playground-electron.mjs +668 -0
- package/dist/es/hooks/useMinimalTypeGate.mjs +47 -0
- package/dist/es/hooks/usePlaygroundExecution.mjs +435 -0
- package/dist/es/hooks/usePlaygroundState.mjs +278 -0
- package/dist/es/hooks/useSafeOverrideAIConfig.mjs +20 -0
- package/dist/es/hooks/useServerValid.mjs +55 -0
- package/dist/es/hooks/useTheme.mjs +25 -0
- package/dist/es/icons/action-chevron.mjs +61 -0
- package/dist/es/icons/avatar.mjs +70 -0
- package/dist/es/icons/close.mjs +61 -0
- package/dist/es/icons/global-perspective.mjs +58 -0
- package/dist/es/icons/history.mjs +72 -0
- package/dist/es/icons/magnifying-glass.mjs +81 -0
- package/dist/es/icons/player-setting.mjs +68 -0
- package/dist/es/icons/prompt-history.mjs +70 -0
- package/dist/es/icons/setting.mjs +62 -0
- package/dist/es/icons/show-marker.mjs +58 -0
- package/dist/es/index.mjs +26 -0
- package/dist/es/static/image/logo.png +0 -0
- package/dist/es/store/history.mjs +128 -0
- package/dist/es/store/store.mjs +277 -0
- package/dist/es/types.mjs +73 -0
- package/dist/es/utils/action-label.mjs +15 -0
- package/dist/es/utils/color.mjs +35 -0
- package/dist/es/utils/constants.mjs +99 -0
- package/dist/es/utils/device-capabilities.mjs +13 -0
- package/dist/es/utils/empty-state-scroll.mjs +8 -0
- package/dist/es/utils/highlight-element.mjs +62 -0
- package/dist/es/utils/index.mjs +13 -0
- package/dist/es/utils/playground-utils.mjs +43 -0
- package/dist/es/utils/progress-action-icon.mjs +30 -0
- package/dist/es/utils/prompt-input-utils.mjs +49 -0
- package/dist/es/utils/prompt-placeholder.mjs +19 -0
- package/dist/es/utils/replay-scripts.mjs +428 -0
- package/dist/lib/component/blackboard/highlights.js +84 -0
- package/dist/lib/component/blackboard/index.css +118 -0
- package/dist/lib/component/blackboard/index.js +169 -0
- package/dist/lib/component/config-selector/index.js +295 -0
- package/dist/lib/component/context-preview/index.js +82 -0
- package/dist/lib/component/env-config/index.js +271 -0
- package/dist/lib/component/env-config-reminder/index.css +30 -0
- package/dist/lib/component/env-config-reminder/index.js +61 -0
- package/dist/lib/component/form-field/index.js +204 -0
- package/dist/lib/component/history-selector/index.css +237 -0
- package/dist/lib/component/history-selector/index.js +243 -0
- package/dist/lib/component/index.js +58 -0
- package/dist/lib/component/logo/index.css +19 -0
- package/dist/lib/component/logo/index.js +67 -0
- package/dist/lib/component/logo/logo.js +24 -0
- package/dist/lib/component/misc/index.js +152 -0
- package/dist/lib/component/nav-actions/index.js +48 -0
- package/dist/lib/component/nav-actions/style.css +35 -0
- package/dist/lib/component/player/index.css +296 -0
- package/dist/lib/component/player/index.js +747 -0
- package/dist/lib/component/player/playback-controls.js +38 -0
- package/dist/lib/component/player/report-download.js +98 -0
- package/dist/lib/component/player/scenes/StepScene.js +228 -0
- package/dist/lib/component/player/scenes/derive-frame-state.js +266 -0
- package/dist/lib/component/player/scenes/export-branded-video.js +403 -0
- package/dist/lib/component/player/scenes/frame-calculator.js +186 -0
- package/dist/lib/component/player/scenes/playback-frame.js +40 -0
- package/dist/lib/component/player/scenes/playback-layout.js +46 -0
- package/dist/lib/component/player/scenes/pointer-layout.js +88 -0
- package/dist/lib/component/player/use-frame-player.js +121 -0
- package/dist/lib/component/playground/index.css +930 -0
- package/dist/lib/component/playground/playground-demo-ui-context.json +290 -0
- package/dist/lib/component/playground-result/index.css +92 -0
- package/dist/lib/component/playground-result/index.js +276 -0
- package/dist/lib/component/prompt-input/index.css +832 -0
- package/dist/lib/component/prompt-input/index.js +1005 -0
- package/dist/lib/component/screenshot-viewer/index.css +237 -0
- package/dist/lib/component/screenshot-viewer/index.js +353 -0
- package/dist/lib/component/service-mode-control/index.js +141 -0
- package/dist/lib/component/shiny-text/index.css +107 -0
- package/dist/lib/component/shiny-text/index.js +49 -0
- package/dist/lib/component/universal-playground/empty-state.js +39 -0
- package/dist/lib/component/universal-playground/index.css +619 -0
- package/dist/lib/component/universal-playground/index.js +607 -0
- package/dist/lib/component/universal-playground/providers/context-provider.js +133 -0
- package/dist/lib/component/universal-playground/providers/indexeddb-storage-provider.js +320 -0
- package/dist/lib/component/universal-playground/providers/storage-provider.js +337 -0
- package/dist/lib/component/universal-playground/universal-playground-electron.js +717 -0
- package/dist/lib/hooks/useMinimalTypeGate.js +81 -0
- package/dist/lib/hooks/usePlaygroundExecution.js +478 -0
- package/dist/lib/hooks/usePlaygroundState.js +312 -0
- package/dist/lib/hooks/useSafeOverrideAIConfig.js +57 -0
- package/dist/lib/hooks/useServerValid.js +89 -0
- package/dist/lib/hooks/useTheme.js +59 -0
- package/dist/lib/icons/action-chevron.js +95 -0
- package/dist/lib/icons/avatar.js +104 -0
- package/dist/lib/icons/close.js +95 -0
- package/dist/lib/icons/global-perspective.js +92 -0
- package/dist/lib/icons/history.js +106 -0
- package/dist/lib/icons/magnifying-glass.js +115 -0
- package/dist/lib/icons/player-setting.js +102 -0
- package/dist/lib/icons/prompt-history.js +104 -0
- package/dist/lib/icons/setting.js +96 -0
- package/dist/lib/icons/show-marker.js +92 -0
- package/dist/lib/index.js +204 -0
- package/dist/lib/static/image/logo.png +0 -0
- package/dist/lib/store/history.js +135 -0
- package/dist/lib/store/store.js +287 -0
- package/dist/lib/types.js +119 -0
- package/dist/lib/utils/action-label.js +52 -0
- package/dist/lib/utils/color.js +75 -0
- package/dist/lib/utils/constants.js +172 -0
- package/dist/lib/utils/device-capabilities.js +50 -0
- package/dist/lib/utils/empty-state-scroll.js +42 -0
- package/dist/lib/utils/highlight-element.js +99 -0
- package/dist/lib/utils/index.js +69 -0
- package/dist/lib/utils/playground-utils.js +86 -0
- package/dist/lib/utils/progress-action-icon.js +67 -0
- package/dist/lib/utils/prompt-input-utils.js +89 -0
- package/dist/lib/utils/prompt-placeholder.js +53 -0
- package/dist/lib/utils/replay-scripts.js +474 -0
- package/dist/types/component/blackboard/highlights.d.ts +11 -0
- package/dist/types/component/blackboard/index.d.ts +10 -0
- package/dist/types/component/config-selector/index.d.ts +15 -0
- package/dist/types/component/context-preview/index.d.ts +9 -0
- package/dist/types/component/env-config/index.d.ts +8 -0
- package/dist/types/component/env-config-reminder/index.d.ts +6 -0
- package/dist/types/component/form-field/index.d.ts +17 -0
- package/dist/types/component/history-selector/index.d.ts +13 -0
- package/dist/types/component/index.d.ts +1 -0
- package/dist/types/component/logo/index.d.ts +5 -0
- package/dist/types/component/misc/index.d.ts +6 -0
- package/dist/types/component/nav-actions/index.d.ts +12 -0
- package/dist/types/component/player/index.d.ts +15 -0
- package/dist/types/component/player/playback-controls.d.ts +1 -0
- package/dist/types/component/player/report-download.d.ts +32 -0
- package/dist/types/component/player/scenes/StepScene.d.ts +9 -0
- package/dist/types/component/player/scenes/derive-frame-state.d.ts +40 -0
- package/dist/types/component/player/scenes/export-branded-video.d.ts +33 -0
- package/dist/types/component/player/scenes/frame-calculator.d.ts +40 -0
- package/dist/types/component/player/scenes/playback-frame.d.ts +3 -0
- package/dist/types/component/player/scenes/playback-layout.d.ts +7 -0
- package/dist/types/component/player/scenes/pointer-layout.d.ts +20 -0
- package/dist/types/component/player/use-frame-player.d.ts +17 -0
- package/dist/types/component/playground-result/index.d.ts +22 -0
- package/dist/types/component/prompt-input/index.d.ts +23 -0
- package/dist/types/component/screenshot-viewer/index.d.ts +23 -0
- package/dist/types/component/service-mode-control/index.d.ts +6 -0
- package/dist/types/component/shiny-text/index.d.ts +12 -0
- package/dist/types/component/universal-playground/empty-state.d.ts +3 -0
- package/dist/types/component/universal-playground/index.d.ts +4 -0
- package/dist/types/component/universal-playground/providers/context-provider.d.ts +37 -0
- package/dist/types/component/universal-playground/providers/indexeddb-storage-provider.d.ts +71 -0
- package/dist/types/component/universal-playground/providers/storage-provider.d.ts +58 -0
- package/dist/types/component/universal-playground/universal-playground-electron.d.ts +4 -0
- package/dist/types/hooks/useMinimalTypeGate.d.ts +72 -0
- package/dist/types/hooks/usePlaygroundExecution.d.ts +40 -0
- package/dist/types/hooks/usePlaygroundState.d.ts +26 -0
- package/dist/types/hooks/useSafeOverrideAIConfig.d.ts +16 -0
- package/dist/types/hooks/useServerValid.d.ts +1 -0
- package/dist/types/hooks/useTheme.d.ts +7 -0
- package/dist/types/index.d.ts +29 -0
- package/dist/types/store/history.d.ts +16 -0
- package/dist/types/store/store.d.ts +57 -0
- package/dist/types/types.d.ts +278 -0
- package/dist/types/utils/action-label.d.ts +11 -0
- package/dist/types/utils/color.d.ts +4 -0
- package/dist/types/utils/constants.d.ts +80 -0
- package/dist/types/utils/device-capabilities.d.ts +9 -0
- package/dist/types/utils/empty-state-scroll.d.ts +11 -0
- package/dist/types/utils/highlight-element.d.ts +3 -0
- package/dist/types/utils/index.d.ts +5 -0
- package/dist/types/utils/playground-utils.d.ts +11 -0
- package/dist/types/utils/progress-action-icon.d.ts +12 -0
- package/dist/types/utils/prompt-input-utils.d.ts +24 -0
- package/dist/types/utils/prompt-placeholder.d.ts +1 -0
- package/dist/types/utils/replay-scripts.d.ts +50 -0
- package/package.json +82 -0
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __webpack_require__ = {};
|
|
3
|
+
(()=>{
|
|
4
|
+
__webpack_require__.d = (exports1, definition)=>{
|
|
5
|
+
for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: definition[key]
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
})();
|
|
11
|
+
(()=>{
|
|
12
|
+
__webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
|
|
13
|
+
})();
|
|
14
|
+
(()=>{
|
|
15
|
+
__webpack_require__.r = (exports1)=>{
|
|
16
|
+
if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
|
|
17
|
+
value: 'Module'
|
|
18
|
+
});
|
|
19
|
+
Object.defineProperty(exports1, '__esModule', {
|
|
20
|
+
value: true
|
|
21
|
+
});
|
|
22
|
+
};
|
|
23
|
+
})();
|
|
24
|
+
var __webpack_exports__ = {};
|
|
25
|
+
__webpack_require__.r(__webpack_exports__);
|
|
26
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
27
|
+
POINTER_HEIGHT: ()=>POINTER_HEIGHT,
|
|
28
|
+
POINTER_HOTSPOT_X: ()=>POINTER_HOTSPOT_X,
|
|
29
|
+
POINTER_HOTSPOT_Y: ()=>POINTER_HOTSPOT_Y,
|
|
30
|
+
POINTER_WIDTH: ()=>POINTER_WIDTH,
|
|
31
|
+
resolveExportPointerLayout: ()=>resolveExportPointerLayout,
|
|
32
|
+
resolvePointerLayout: ()=>resolvePointerLayout,
|
|
33
|
+
resolveSpinnerLayout: ()=>resolveSpinnerLayout
|
|
34
|
+
});
|
|
35
|
+
const POINTER_REFERENCE_IMAGE_WIDTH = 1920;
|
|
36
|
+
const POINTER_WIDTH = 44;
|
|
37
|
+
const POINTER_HEIGHT = 56;
|
|
38
|
+
const POINTER_HOTSPOT_X = 6;
|
|
39
|
+
const POINTER_HOTSPOT_Y = 4;
|
|
40
|
+
function assertPositiveFinite(value, name) {
|
|
41
|
+
if (!Number.isFinite(value) || value <= 0) throw new Error(`${name} must be a positive finite number`);
|
|
42
|
+
}
|
|
43
|
+
function buildPointerLayout(scale) {
|
|
44
|
+
return {
|
|
45
|
+
scale,
|
|
46
|
+
width: POINTER_WIDTH * scale,
|
|
47
|
+
height: POINTER_HEIGHT * scale,
|
|
48
|
+
hotspotX: POINTER_HOTSPOT_X * scale,
|
|
49
|
+
hotspotY: POINTER_HOTSPOT_Y * scale,
|
|
50
|
+
centerOffsetX: POINTER_WIDTH * scale / 2,
|
|
51
|
+
centerOffsetY: POINTER_HEIGHT * scale / 2
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
function resolvePointerLayout(imageWidth) {
|
|
55
|
+
assertPositiveFinite(imageWidth, 'imageWidth');
|
|
56
|
+
return buildPointerLayout(Math.max(1, Math.sqrt(imageWidth / POINTER_REFERENCE_IMAGE_WIDTH)));
|
|
57
|
+
}
|
|
58
|
+
function resolveExportPointerLayout(imageWidth, contentWidth) {
|
|
59
|
+
assertPositiveFinite(contentWidth, 'contentWidth');
|
|
60
|
+
const liveLayout = resolvePointerLayout(imageWidth);
|
|
61
|
+
return buildPointerLayout(liveLayout.scale * (contentWidth / imageWidth));
|
|
62
|
+
}
|
|
63
|
+
function resolveSpinnerLayout(pointerLayout) {
|
|
64
|
+
const size = pointerLayout.height;
|
|
65
|
+
return {
|
|
66
|
+
size,
|
|
67
|
+
centerOffset: size / 2
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
exports.POINTER_HEIGHT = __webpack_exports__.POINTER_HEIGHT;
|
|
71
|
+
exports.POINTER_HOTSPOT_X = __webpack_exports__.POINTER_HOTSPOT_X;
|
|
72
|
+
exports.POINTER_HOTSPOT_Y = __webpack_exports__.POINTER_HOTSPOT_Y;
|
|
73
|
+
exports.POINTER_WIDTH = __webpack_exports__.POINTER_WIDTH;
|
|
74
|
+
exports.resolveExportPointerLayout = __webpack_exports__.resolveExportPointerLayout;
|
|
75
|
+
exports.resolvePointerLayout = __webpack_exports__.resolvePointerLayout;
|
|
76
|
+
exports.resolveSpinnerLayout = __webpack_exports__.resolveSpinnerLayout;
|
|
77
|
+
for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
78
|
+
"POINTER_HEIGHT",
|
|
79
|
+
"POINTER_HOTSPOT_X",
|
|
80
|
+
"POINTER_HOTSPOT_Y",
|
|
81
|
+
"POINTER_WIDTH",
|
|
82
|
+
"resolveExportPointerLayout",
|
|
83
|
+
"resolvePointerLayout",
|
|
84
|
+
"resolveSpinnerLayout"
|
|
85
|
+
].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
|
|
86
|
+
Object.defineProperty(exports, '__esModule', {
|
|
87
|
+
value: true
|
|
88
|
+
});
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __webpack_require__ = {};
|
|
3
|
+
(()=>{
|
|
4
|
+
__webpack_require__.d = (exports1, definition)=>{
|
|
5
|
+
for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: definition[key]
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
})();
|
|
11
|
+
(()=>{
|
|
12
|
+
__webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
|
|
13
|
+
})();
|
|
14
|
+
(()=>{
|
|
15
|
+
__webpack_require__.r = (exports1)=>{
|
|
16
|
+
if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
|
|
17
|
+
value: 'Module'
|
|
18
|
+
});
|
|
19
|
+
Object.defineProperty(exports1, '__esModule', {
|
|
20
|
+
value: true
|
|
21
|
+
});
|
|
22
|
+
};
|
|
23
|
+
})();
|
|
24
|
+
var __webpack_exports__ = {};
|
|
25
|
+
__webpack_require__.r(__webpack_exports__);
|
|
26
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
27
|
+
useFramePlayer: ()=>useFramePlayer
|
|
28
|
+
});
|
|
29
|
+
const external_react_namespaceObject = require("react");
|
|
30
|
+
function useFramePlayer(options) {
|
|
31
|
+
var _options_playbackRate, _options_playbackRate1;
|
|
32
|
+
const { durationInFrames, fps, autoPlay = false, loop = false } = options;
|
|
33
|
+
const [currentFrame, setCurrentFrame] = (0, external_react_namespaceObject.useState)(0);
|
|
34
|
+
const [playing, setPlaying] = (0, external_react_namespaceObject.useState)(autoPlay);
|
|
35
|
+
const playingRef = (0, external_react_namespaceObject.useRef)(playing);
|
|
36
|
+
const frameRef = (0, external_react_namespaceObject.useRef)(currentFrame);
|
|
37
|
+
const rateRef = (0, external_react_namespaceObject.useRef)(null != (_options_playbackRate = options.playbackRate) ? _options_playbackRate : 1);
|
|
38
|
+
const durationRef = (0, external_react_namespaceObject.useRef)(durationInFrames);
|
|
39
|
+
const fpsRef = (0, external_react_namespaceObject.useRef)(fps);
|
|
40
|
+
const loopRef = (0, external_react_namespaceObject.useRef)(loop);
|
|
41
|
+
playingRef.current = playing;
|
|
42
|
+
frameRef.current = currentFrame;
|
|
43
|
+
rateRef.current = null != (_options_playbackRate1 = options.playbackRate) ? _options_playbackRate1 : 1;
|
|
44
|
+
durationRef.current = durationInFrames;
|
|
45
|
+
fpsRef.current = fps;
|
|
46
|
+
loopRef.current = loop;
|
|
47
|
+
(0, external_react_namespaceObject.useEffect)(()=>{
|
|
48
|
+
if (!playing) return;
|
|
49
|
+
let rafId;
|
|
50
|
+
let lastTime = null;
|
|
51
|
+
let accumulated = 0;
|
|
52
|
+
const tick = (now)=>{
|
|
53
|
+
if (null !== lastTime) {
|
|
54
|
+
const delta = (now - lastTime) * rateRef.current;
|
|
55
|
+
accumulated += delta;
|
|
56
|
+
const frameDuration = 1000 / fpsRef.current;
|
|
57
|
+
while(accumulated >= frameDuration){
|
|
58
|
+
accumulated -= frameDuration;
|
|
59
|
+
const next = frameRef.current + 1;
|
|
60
|
+
if (next >= durationRef.current) if (loopRef.current) {
|
|
61
|
+
frameRef.current = 0;
|
|
62
|
+
setCurrentFrame(0);
|
|
63
|
+
} else {
|
|
64
|
+
frameRef.current = durationRef.current - 1;
|
|
65
|
+
setCurrentFrame(durationRef.current - 1);
|
|
66
|
+
setPlaying(false);
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
frameRef.current = next;
|
|
71
|
+
setCurrentFrame(next);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
lastTime = now;
|
|
76
|
+
rafId = requestAnimationFrame(tick);
|
|
77
|
+
};
|
|
78
|
+
rafId = requestAnimationFrame(tick);
|
|
79
|
+
return ()=>cancelAnimationFrame(rafId);
|
|
80
|
+
}, [
|
|
81
|
+
playing
|
|
82
|
+
]);
|
|
83
|
+
const resetIfAtEnd = ()=>{
|
|
84
|
+
if (frameRef.current >= durationRef.current - 1) {
|
|
85
|
+
frameRef.current = 0;
|
|
86
|
+
setCurrentFrame(0);
|
|
87
|
+
}
|
|
88
|
+
};
|
|
89
|
+
const play = (0, external_react_namespaceObject.useCallback)(()=>{
|
|
90
|
+
resetIfAtEnd();
|
|
91
|
+
setPlaying(true);
|
|
92
|
+
}, []);
|
|
93
|
+
const pause = (0, external_react_namespaceObject.useCallback)(()=>setPlaying(false), []);
|
|
94
|
+
const toggle = (0, external_react_namespaceObject.useCallback)(()=>{
|
|
95
|
+
if (playingRef.current) setPlaying(false);
|
|
96
|
+
else {
|
|
97
|
+
resetIfAtEnd();
|
|
98
|
+
setPlaying(true);
|
|
99
|
+
}
|
|
100
|
+
}, []);
|
|
101
|
+
const seekTo = (0, external_react_namespaceObject.useCallback)((frame)=>{
|
|
102
|
+
const clamped = Math.max(0, Math.min(frame, durationRef.current - 1));
|
|
103
|
+
frameRef.current = clamped;
|
|
104
|
+
setCurrentFrame(clamped);
|
|
105
|
+
}, []);
|
|
106
|
+
return {
|
|
107
|
+
currentFrame,
|
|
108
|
+
playing,
|
|
109
|
+
play,
|
|
110
|
+
pause,
|
|
111
|
+
toggle,
|
|
112
|
+
seekTo
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
exports.useFramePlayer = __webpack_exports__.useFramePlayer;
|
|
116
|
+
for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
117
|
+
"useFramePlayer"
|
|
118
|
+
].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
|
|
119
|
+
Object.defineProperty(exports, '__esModule', {
|
|
120
|
+
value: true
|
|
121
|
+
});
|