stormcloud-video-player 0.7.48 → 0.7.50
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/stormcloud-vp.min.js +1 -1
- package/lib/index.cjs +109 -7
- package/lib/index.cjs.map +1 -1
- package/lib/index.js +109 -7
- package/lib/index.js.map +1 -1
- package/lib/ui/OverlayRenderer.cjs +109 -7
- package/lib/ui/OverlayRenderer.cjs.map +1 -1
- package/lib/ui/StormcloudVideoPlayer.cjs +109 -7
- package/lib/ui/StormcloudVideoPlayer.cjs.map +1 -1
- package/package.json +1 -1
package/lib/index.js
CHANGED
|
@@ -6333,11 +6333,62 @@ function parseConfig(content) {
|
|
|
6333
6333
|
return null;
|
|
6334
6334
|
}
|
|
6335
6335
|
}
|
|
6336
|
+
function parseClockMMSS(clock) {
|
|
6337
|
+
if (!clock) return null;
|
|
6338
|
+
var m = /^\s*(\d{1,3}):([0-5]?\d)\s*$/.exec(clock);
|
|
6339
|
+
if (!m) return null;
|
|
6340
|
+
return parseInt(m[1], 10) * 60 + parseInt(m[2], 10);
|
|
6341
|
+
}
|
|
6342
|
+
function formatClockMMSS(totalSec) {
|
|
6343
|
+
var s = Math.max(0, Math.floor(totalSec));
|
|
6344
|
+
var mm = Math.floor(s / 60);
|
|
6345
|
+
var ss = s % 60;
|
|
6346
|
+
return "".concat(mm, ":").concat(ss.toString().padStart(2, "0"));
|
|
6347
|
+
}
|
|
6348
|
+
function useScoreBugClock(overlayId, sourceClock) {
|
|
6349
|
+
var initialSec = parseClockMMSS(sourceClock);
|
|
6350
|
+
var _useState = _sliced_to_array(useState(function() {
|
|
6351
|
+
return Date.now();
|
|
6352
|
+
}), 2), now = _useState[0], setNow = _useState[1];
|
|
6353
|
+
var startRef = useRef(null);
|
|
6354
|
+
useEffect(function() {
|
|
6355
|
+
if (initialSec === null) {
|
|
6356
|
+
startRef.current = null;
|
|
6357
|
+
return;
|
|
6358
|
+
}
|
|
6359
|
+
startRef.current = {
|
|
6360
|
+
id: overlayId,
|
|
6361
|
+
source: sourceClock || "",
|
|
6362
|
+
at: Date.now(),
|
|
6363
|
+
seconds: initialSec
|
|
6364
|
+
};
|
|
6365
|
+
setNow(Date.now());
|
|
6366
|
+
var tick = window.setInterval(function() {
|
|
6367
|
+
return setNow(Date.now());
|
|
6368
|
+
}, 500);
|
|
6369
|
+
return function() {
|
|
6370
|
+
return clearInterval(tick);
|
|
6371
|
+
};
|
|
6372
|
+
}, [
|
|
6373
|
+
overlayId,
|
|
6374
|
+
sourceClock,
|
|
6375
|
+
initialSec
|
|
6376
|
+
]);
|
|
6377
|
+
if (initialSec === null || !startRef.current) return null;
|
|
6378
|
+
var elapsed = Math.floor((now - startRef.current.at) / 1e3);
|
|
6379
|
+
var remaining = Math.max(0, startRef.current.seconds - elapsed);
|
|
6380
|
+
return formatClockMMSS(remaining);
|
|
6381
|
+
}
|
|
6336
6382
|
function ScoreBugOverlay(param) {
|
|
6337
6383
|
var overlay = param.overlay, size = param.size;
|
|
6384
|
+
var _ref, _cfg_period;
|
|
6338
6385
|
var cfg = parseConfig(overlay.content);
|
|
6386
|
+
var liveClock = useScoreBugClock(overlay.id, cfg === null || cfg === void 0 ? void 0 : cfg.clock);
|
|
6339
6387
|
if (!cfg) return null;
|
|
6340
6388
|
var f = Math.max(6, size.w * 0.052);
|
|
6389
|
+
var displayClock = (_ref = liveClock !== null && liveClock !== void 0 ? liveClock : cfg.clock) !== null && _ref !== void 0 ? _ref : "";
|
|
6390
|
+
var displayPeriod = (_cfg_period = cfg.period) !== null && _cfg_period !== void 0 ? _cfg_period : "";
|
|
6391
|
+
var showMiddleCol = Boolean(displayPeriod || displayClock);
|
|
6341
6392
|
return /* @__PURE__ */ jsxs("div", {
|
|
6342
6393
|
style: {
|
|
6343
6394
|
width: "100%",
|
|
@@ -6395,7 +6446,7 @@ function ScoreBugOverlay(param) {
|
|
|
6395
6446
|
})
|
|
6396
6447
|
]
|
|
6397
6448
|
}),
|
|
6398
|
-
/* @__PURE__ */ jsxs("div", {
|
|
6449
|
+
showMiddleCol && /* @__PURE__ */ jsxs("div", {
|
|
6399
6450
|
style: {
|
|
6400
6451
|
fontSize: "0.88em",
|
|
6401
6452
|
textAlign: "center",
|
|
@@ -6409,15 +6460,15 @@ function ScoreBugOverlay(param) {
|
|
|
6409
6460
|
letterSpacing: "0.04em"
|
|
6410
6461
|
},
|
|
6411
6462
|
children: [
|
|
6412
|
-
/* @__PURE__ */ jsx("div", {
|
|
6413
|
-
children:
|
|
6463
|
+
displayPeriod && /* @__PURE__ */ jsx("div", {
|
|
6464
|
+
children: displayPeriod
|
|
6414
6465
|
}),
|
|
6415
|
-
/* @__PURE__ */ jsx("div", {
|
|
6466
|
+
displayClock && /* @__PURE__ */ jsx("div", {
|
|
6416
6467
|
style: {
|
|
6417
6468
|
fontWeight: 700,
|
|
6418
6469
|
opacity: 1
|
|
6419
6470
|
},
|
|
6420
|
-
children:
|
|
6471
|
+
children: displayClock
|
|
6421
6472
|
})
|
|
6422
6473
|
]
|
|
6423
6474
|
}),
|
|
@@ -7200,6 +7251,49 @@ function hexToRgb(hex) {
|
|
|
7200
7251
|
return "".concat(num >> 16 & 255, ",").concat(num >> 8 & 255, ",").concat(num & 255);
|
|
7201
7252
|
}
|
|
7202
7253
|
var FADE_DURATION_MS = 1e3;
|
|
7254
|
+
var ENTER_ANIMATION_ALIASES = {
|
|
7255
|
+
fade: "fade",
|
|
7256
|
+
slide_from_left: "slide_from_left",
|
|
7257
|
+
slide_from_right: "slide_from_right",
|
|
7258
|
+
slide_from_top: "slide_from_top",
|
|
7259
|
+
slide_from_bottom: "slide_from_bottom",
|
|
7260
|
+
slide_left: "slide_from_left",
|
|
7261
|
+
slide_right: "slide_from_right",
|
|
7262
|
+
slide_up: "slide_from_top",
|
|
7263
|
+
slide_down: "slide_from_bottom"
|
|
7264
|
+
};
|
|
7265
|
+
function normalizeEnterAnimation(v) {
|
|
7266
|
+
var _ENTER_ANIMATION_ALIASES_v;
|
|
7267
|
+
if (typeof v !== "string") return null;
|
|
7268
|
+
return (_ENTER_ANIMATION_ALIASES_v = ENTER_ANIMATION_ALIASES[v]) !== null && _ENTER_ANIMATION_ALIASES_v !== void 0 ? _ENTER_ANIMATION_ALIASES_v : null;
|
|
7269
|
+
}
|
|
7270
|
+
function getEnterAnimation(overlay) {
|
|
7271
|
+
var flat = overlay.enter_animation;
|
|
7272
|
+
var fromFlat = normalizeEnterAnimation(flat);
|
|
7273
|
+
if (fromFlat) return fromFlat;
|
|
7274
|
+
if (overlay.content) {
|
|
7275
|
+
try {
|
|
7276
|
+
var parsed = JSON.parse(overlay.content);
|
|
7277
|
+
var fromContent = normalizeEnterAnimation(parsed === null || parsed === void 0 ? void 0 : parsed.enterAnimation);
|
|
7278
|
+
if (fromContent) return fromContent;
|
|
7279
|
+
} catch (unused) {}
|
|
7280
|
+
}
|
|
7281
|
+
return "fade";
|
|
7282
|
+
}
|
|
7283
|
+
function enterHiddenTransform(anim) {
|
|
7284
|
+
switch(anim){
|
|
7285
|
+
case "slide_from_left":
|
|
7286
|
+
return "translateX(-120%)";
|
|
7287
|
+
case "slide_from_right":
|
|
7288
|
+
return "translateX(120%)";
|
|
7289
|
+
case "slide_from_top":
|
|
7290
|
+
return "translateY(-120%)";
|
|
7291
|
+
case "slide_from_bottom":
|
|
7292
|
+
return "translateY(120%)";
|
|
7293
|
+
default:
|
|
7294
|
+
return "";
|
|
7295
|
+
}
|
|
7296
|
+
}
|
|
7203
7297
|
var SHOWCASE_CYCLE_MS_DEFAULT = 36e3;
|
|
7204
7298
|
var SHOWCASE_MIN_BEAT_MS = 6e3;
|
|
7205
7299
|
var BEAT_POP_IN_MS = 520;
|
|
@@ -7622,6 +7716,14 @@ var OverlayRenderer = function OverlayRenderer(param) {
|
|
|
7622
7716
|
w: width,
|
|
7623
7717
|
h: height
|
|
7624
7718
|
};
|
|
7719
|
+
var enterAnim = getEnterAnimation(overlay);
|
|
7720
|
+
var hasSlide = enterAnim !== "fade" && !useShowcasePop;
|
|
7721
|
+
var slideTransform = hasSlide && !visible ? enterHiddenTransform(enterAnim) : "";
|
|
7722
|
+
var popTransform = showcaseMode && useShowcasePop ? "scale(".concat(popScale, ")") : "";
|
|
7723
|
+
var combinedTransform = [
|
|
7724
|
+
slideTransform,
|
|
7725
|
+
popTransform
|
|
7726
|
+
].filter(Boolean).join(" ");
|
|
7625
7727
|
return /* @__PURE__ */ jsxs("div", {
|
|
7626
7728
|
style: {
|
|
7627
7729
|
position: "absolute",
|
|
@@ -7630,8 +7732,8 @@ var OverlayRenderer = function OverlayRenderer(param) {
|
|
|
7630
7732
|
width: "".concat(width, "px"),
|
|
7631
7733
|
height: "".concat(height, "px"),
|
|
7632
7734
|
opacity: opacity,
|
|
7633
|
-
transition: useShowcasePop ? "none" : "opacity ".concat(FADE_DURATION_MS, "ms ease"),
|
|
7634
|
-
transform:
|
|
7735
|
+
transition: useShowcasePop ? "none" : hasSlide ? "opacity ".concat(FADE_DURATION_MS, "ms ease, transform ").concat(FADE_DURATION_MS, "ms cubic-bezier(0.22, 1, 0.36, 1)") : "opacity ".concat(FADE_DURATION_MS, "ms ease"),
|
|
7736
|
+
transform: combinedTransform || void 0,
|
|
7635
7737
|
transformOrigin: showcaseMode && useShowcasePop ? "center center" : void 0,
|
|
7636
7738
|
zIndex: overlay.z_index,
|
|
7637
7739
|
overflow: "hidden"
|