@acoustte-digital-services/digitalstore-controls-dev 0.8.1-dev.20260423063335 → 0.8.1-dev.20260423070204
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.
|
@@ -20,6 +20,7 @@ var HlsPlayer = React.memo(
|
|
|
20
20
|
const [isHovered, setIsHovered] = useState(false);
|
|
21
21
|
const [isMobile, setIsMobile] = useState(false);
|
|
22
22
|
const [isControlsVisible, setIsControlsVisible] = useState(true);
|
|
23
|
+
const [isPosterVisible, setIsPosterVisible] = useState(true);
|
|
23
24
|
const wasManuallyPausedRef = useRef(false);
|
|
24
25
|
const inactivityTimerRef = useRef(null);
|
|
25
26
|
const INACTIVITY_DELAY = 2500;
|
|
@@ -37,6 +38,20 @@ var HlsPlayer = React.memo(
|
|
|
37
38
|
window.addEventListener("resize", checkMobile);
|
|
38
39
|
return () => window.removeEventListener("resize", checkMobile);
|
|
39
40
|
}, []);
|
|
41
|
+
useEffect(() => {
|
|
42
|
+
const v = videoRef.current;
|
|
43
|
+
if (!v) return;
|
|
44
|
+
const onPlaying = () => setIsPosterVisible(false);
|
|
45
|
+
const onPause = () => {
|
|
46
|
+
if (v.currentTime === 0) setIsPosterVisible(true);
|
|
47
|
+
};
|
|
48
|
+
v.addEventListener("playing", onPlaying);
|
|
49
|
+
v.addEventListener("pause", onPause);
|
|
50
|
+
return () => {
|
|
51
|
+
v.removeEventListener("playing", onPlaying);
|
|
52
|
+
v.removeEventListener("pause", onPause);
|
|
53
|
+
};
|
|
54
|
+
}, []);
|
|
40
55
|
const resetInactivityTimer = useCallback(() => {
|
|
41
56
|
setIsControlsVisible(true);
|
|
42
57
|
if (inactivityTimerRef.current) clearTimeout(inactivityTimerRef.current);
|
|
@@ -127,6 +142,7 @@ var HlsPlayer = React.memo(
|
|
|
127
142
|
}, [isMobile, resetInactivityTimer]);
|
|
128
143
|
const posterSources = resolvedSources.filter((s) => s.media && s.posterUrl);
|
|
129
144
|
const fallbackPoster = posterUrl ?? resolvedSources.find((s) => !s.media)?.posterUrl ?? resolvedSources[0]?.posterUrl;
|
|
145
|
+
const isPlayOnHover = playOptions === "playOnHover";
|
|
130
146
|
if (resolvedSources.length === 0) return null;
|
|
131
147
|
return /* @__PURE__ */ jsxs(
|
|
132
148
|
"div",
|
|
@@ -143,7 +159,7 @@ var HlsPlayer = React.memo(
|
|
|
143
159
|
className: "w-full h-full object-contain",
|
|
144
160
|
poster: fallbackPoster,
|
|
145
161
|
controls: showControls && (isMobile || isPlaying),
|
|
146
|
-
muted: playOptions === "autoplay" ||
|
|
162
|
+
muted: playOptions === "autoplay" || isPlayOnHover,
|
|
147
163
|
autoPlay: playOptions === "autoplay",
|
|
148
164
|
loop,
|
|
149
165
|
playsInline: true,
|
|
@@ -159,10 +175,14 @@ var HlsPlayer = React.memo(
|
|
|
159
175
|
))
|
|
160
176
|
}
|
|
161
177
|
),
|
|
162
|
-
!isMobile &&
|
|
178
|
+
!isMobile && fallbackPoster && /* @__PURE__ */ jsxs(
|
|
163
179
|
"picture",
|
|
164
180
|
{
|
|
165
|
-
className:
|
|
181
|
+
className: "absolute inset-0 pointer-events-none",
|
|
182
|
+
style: {
|
|
183
|
+
opacity: isPosterVisible && (!isPlayOnHover || !isHovered) ? 1 : 0,
|
|
184
|
+
transition: "opacity 0.4s ease"
|
|
185
|
+
},
|
|
166
186
|
children: [
|
|
167
187
|
posterSources.map(({ media, posterUrl: src }, i) => /* @__PURE__ */ jsx("source", { media, srcSet: src }, i)),
|
|
168
188
|
/* @__PURE__ */ jsx(
|
|
@@ -178,7 +198,7 @@ var HlsPlayer = React.memo(
|
|
|
178
198
|
]
|
|
179
199
|
}
|
|
180
200
|
),
|
|
181
|
-
!isMobile && /* @__PURE__ */ jsx(
|
|
201
|
+
!isMobile && !isPlayOnHover && /* @__PURE__ */ jsx(
|
|
182
202
|
"div",
|
|
183
203
|
{
|
|
184
204
|
className: "absolute inset-0 flex items-center justify-center pointer-events-none",
|
package/dist/index.js
CHANGED
|
@@ -515,6 +515,7 @@ var init_HlsPlayer = __esm({
|
|
|
515
515
|
const [isHovered, setIsHovered] = (0, import_react35.useState)(false);
|
|
516
516
|
const [isMobile, setIsMobile] = (0, import_react35.useState)(false);
|
|
517
517
|
const [isControlsVisible, setIsControlsVisible] = (0, import_react35.useState)(true);
|
|
518
|
+
const [isPosterVisible, setIsPosterVisible] = (0, import_react35.useState)(true);
|
|
518
519
|
const wasManuallyPausedRef = (0, import_react35.useRef)(false);
|
|
519
520
|
const inactivityTimerRef = (0, import_react35.useRef)(null);
|
|
520
521
|
const INACTIVITY_DELAY = 2500;
|
|
@@ -532,6 +533,20 @@ var init_HlsPlayer = __esm({
|
|
|
532
533
|
window.addEventListener("resize", checkMobile);
|
|
533
534
|
return () => window.removeEventListener("resize", checkMobile);
|
|
534
535
|
}, []);
|
|
536
|
+
(0, import_react35.useEffect)(() => {
|
|
537
|
+
const v = videoRef.current;
|
|
538
|
+
if (!v) return;
|
|
539
|
+
const onPlaying = () => setIsPosterVisible(false);
|
|
540
|
+
const onPause = () => {
|
|
541
|
+
if (v.currentTime === 0) setIsPosterVisible(true);
|
|
542
|
+
};
|
|
543
|
+
v.addEventListener("playing", onPlaying);
|
|
544
|
+
v.addEventListener("pause", onPause);
|
|
545
|
+
return () => {
|
|
546
|
+
v.removeEventListener("playing", onPlaying);
|
|
547
|
+
v.removeEventListener("pause", onPause);
|
|
548
|
+
};
|
|
549
|
+
}, []);
|
|
535
550
|
const resetInactivityTimer = (0, import_react35.useCallback)(() => {
|
|
536
551
|
setIsControlsVisible(true);
|
|
537
552
|
if (inactivityTimerRef.current) clearTimeout(inactivityTimerRef.current);
|
|
@@ -622,6 +637,7 @@ var init_HlsPlayer = __esm({
|
|
|
622
637
|
}, [isMobile, resetInactivityTimer]);
|
|
623
638
|
const posterSources = resolvedSources.filter((s) => s.media && s.posterUrl);
|
|
624
639
|
const fallbackPoster = posterUrl ?? resolvedSources.find((s) => !s.media)?.posterUrl ?? resolvedSources[0]?.posterUrl;
|
|
640
|
+
const isPlayOnHover = playOptions === "playOnHover";
|
|
625
641
|
if (resolvedSources.length === 0) return null;
|
|
626
642
|
return /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(
|
|
627
643
|
"div",
|
|
@@ -638,7 +654,7 @@ var init_HlsPlayer = __esm({
|
|
|
638
654
|
className: "w-full h-full object-contain",
|
|
639
655
|
poster: fallbackPoster,
|
|
640
656
|
controls: showControls && (isMobile || isPlaying),
|
|
641
|
-
muted: playOptions === "autoplay" ||
|
|
657
|
+
muted: playOptions === "autoplay" || isPlayOnHover,
|
|
642
658
|
autoPlay: playOptions === "autoplay",
|
|
643
659
|
loop,
|
|
644
660
|
playsInline: true,
|
|
@@ -654,10 +670,14 @@ var init_HlsPlayer = __esm({
|
|
|
654
670
|
))
|
|
655
671
|
}
|
|
656
672
|
),
|
|
657
|
-
!isMobile &&
|
|
673
|
+
!isMobile && fallbackPoster && /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(
|
|
658
674
|
"picture",
|
|
659
675
|
{
|
|
660
|
-
className:
|
|
676
|
+
className: "absolute inset-0 pointer-events-none",
|
|
677
|
+
style: {
|
|
678
|
+
opacity: isPosterVisible && (!isPlayOnHover || !isHovered) ? 1 : 0,
|
|
679
|
+
transition: "opacity 0.4s ease"
|
|
680
|
+
},
|
|
661
681
|
children: [
|
|
662
682
|
posterSources.map(({ media, posterUrl: src }, i) => /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("source", { media, srcSet: src }, i)),
|
|
663
683
|
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
|
|
@@ -673,7 +693,7 @@ var init_HlsPlayer = __esm({
|
|
|
673
693
|
]
|
|
674
694
|
}
|
|
675
695
|
),
|
|
676
|
-
!isMobile && /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
|
|
696
|
+
!isMobile && !isPlayOnHover && /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
|
|
677
697
|
"div",
|
|
678
698
|
{
|
|
679
699
|
className: "absolute inset-0 flex items-center justify-center pointer-events-none",
|
package/dist/index.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
HlsPlayer_default
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-TXHD4F4A.mjs";
|
|
4
4
|
import {
|
|
5
5
|
Button_default,
|
|
6
6
|
ServiceClient_default,
|
|
@@ -2782,7 +2782,7 @@ var DeviceAssetSelector_default = DeviceAssetSelector;
|
|
|
2782
2782
|
|
|
2783
2783
|
// src/components/pageRenderingEngine/nodes/ImageNode.tsx
|
|
2784
2784
|
import { Fragment as Fragment3, jsx as jsx41 } from "react/jsx-runtime";
|
|
2785
|
-
var HlsPlayer = dynamic(() => import("./HlsPlayer-
|
|
2785
|
+
var HlsPlayer = dynamic(() => import("./HlsPlayer-GV3FOPYT.mjs"), {
|
|
2786
2786
|
ssr: false
|
|
2787
2787
|
});
|
|
2788
2788
|
var getNestedValue = (obj, path) => {
|
|
@@ -4251,7 +4251,7 @@ var Pagination_default = Pagination;
|
|
|
4251
4251
|
// src/components/pageRenderingEngine/nodes/ImageGalleryNode.tsx
|
|
4252
4252
|
import dynamic5 from "next/dynamic";
|
|
4253
4253
|
import { Fragment as Fragment9, jsx as jsx60, jsxs as jsxs33 } from "react/jsx-runtime";
|
|
4254
|
-
var HlsPlayer2 = dynamic5(() => import("./HlsPlayer-
|
|
4254
|
+
var HlsPlayer2 = dynamic5(() => import("./HlsPlayer-GV3FOPYT.mjs"), { ssr: false });
|
|
4255
4255
|
var deviceToMediaQuery = (device) => {
|
|
4256
4256
|
switch (device) {
|
|
4257
4257
|
case "sm":
|
package/package.json
CHANGED