@trap_stevo/legendarybuilderproreact-ui
Version:
The legendary UI & utility API that makes your application a legendary application. ~ Created by Steven Compton
715 lines • 27.7 kB
JavaScript
import _extends from "@babel/runtime/helpers/extends";
import _defineProperty from "@babel/runtime/helpers/defineProperty";
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
import _regeneratorRuntime from "@babel/runtime/regenerator";
import React, { useRef, useEffect, useState } from "react";
import { motion } from "framer-motion";
import HUDLoading from "./HUDLoading.js";
import HUDIcon from "./HUDIcon.js";
function matchesHUDVideoPreviewStatefulConfigurations(prev, next) {
if (prev.propsVersion !== next.propsVersion) {
return false;
}
var keys = ["videoSRC", "autoPlay", "muted", "loop", "rendererMode", "posterURL", "previewStart", "previewDuration", "playOnHover", "playOnClick", "hoverDelay", "seekTo", "autoPlayDuration"];
for (var i = 0; i < keys.length; i++) {
var k = keys[i];
if (prev[k] !== next[k]) {
return false;
}
}
return true;
}
;
function HUDVideoPreview(hudVideoPreviewConfigurationSettings) {
var _hudVideoPreviewConfi = hudVideoPreviewConfigurationSettings.previewIndicatorContainerConfigurationSettings,
previewIndicatorContainerConfigurationSettings = _hudVideoPreviewConfi === void 0 ? {} : _hudVideoPreviewConfi,
_hudVideoPreviewConfi2 = hudVideoPreviewConfigurationSettings.previewVideoContainerConfigurationSettings,
previewVideoContainerConfigurationSettings = _hudVideoPreviewConfi2 === void 0 ? {} : _hudVideoPreviewConfi2,
_hudVideoPreviewConfi3 = hudVideoPreviewConfigurationSettings.previewIconContainerConfigurationSettings,
previewIconContainerConfigurationSettings = _hudVideoPreviewConfi3 === void 0 ? {} : _hudVideoPreviewConfi3,
_hudVideoPreviewConfi4 = hudVideoPreviewConfigurationSettings.idleThumbnailConfigurationSettings,
idleThumbnailConfigurationSettings = _hudVideoPreviewConfi4 === void 0 ? {} : _hudVideoPreviewConfi4,
_hudVideoPreviewConfi5 = hudVideoPreviewConfigurationSettings.previewVideoConfigurationSettings,
previewVideoConfigurationSettings = _hudVideoPreviewConfi5 === void 0 ? {} : _hudVideoPreviewConfi5,
_hudVideoPreviewConfi6 = hudVideoPreviewConfigurationSettings.previewIndicatorContainerConfigurations,
previewIndicatorContainerConfigurations = _hudVideoPreviewConfi6 === void 0 ? {} : _hudVideoPreviewConfi6,
_hudVideoPreviewConfi7 = hudVideoPreviewConfigurationSettings.previewIndicatorConfigurations,
previewIndicatorConfigurations = _hudVideoPreviewConfi7 === void 0 ? {} : _hudVideoPreviewConfi7,
_hudVideoPreviewConfi8 = hudVideoPreviewConfigurationSettings.previewVideoConfigurations,
previewVideoConfigurations = _hudVideoPreviewConfi8 === void 0 ? {} : _hudVideoPreviewConfi8,
_hudVideoPreviewConfi9 = hudVideoPreviewConfigurationSettings.previewIconConfigurations,
previewIconConfigurations = _hudVideoPreviewConfi9 === void 0 ? {} : _hudVideoPreviewConfi9,
_hudVideoPreviewConfi10 = hudVideoPreviewConfigurationSettings.previewConfigurations,
previewConfigurations = _hudVideoPreviewConfi10 === void 0 ? {} : _hudVideoPreviewConfi10,
_hudVideoPreviewConfi11 = hudVideoPreviewConfigurationSettings.onRenderComplete,
onRenderComplete = _hudVideoPreviewConfi11 === void 0 ? function () {} : _hudVideoPreviewConfi11,
_hudVideoPreviewConfi12 = hudVideoPreviewConfigurationSettings.onRenderUpdate,
onRenderUpdate = _hudVideoPreviewConfi12 === void 0 ? function () {} : _hudVideoPreviewConfi12,
_hudVideoPreviewConfi13 = hudVideoPreviewConfigurationSettings.onRenderLoaded,
onRenderLoaded = _hudVideoPreviewConfi13 === void 0 ? function () {} : _hudVideoPreviewConfi13,
_hudVideoPreviewConfi14 = hudVideoPreviewConfigurationSettings.onVolumeChange,
onVolumeChange = _hudVideoPreviewConfi14 === void 0 ? function () {} : _hudVideoPreviewConfi14,
_hudVideoPreviewConfi15 = hudVideoPreviewConfigurationSettings.onVideoLoaded,
onVideoLoaded = _hudVideoPreviewConfi15 === void 0 ? function () {} : _hudVideoPreviewConfi15,
_hudVideoPreviewConfi16 = hudVideoPreviewConfigurationSettings.onTimeUpdate,
onTimeUpdate = _hudVideoPreviewConfi16 === void 0 ? function () {} : _hudVideoPreviewConfi16,
_hudVideoPreviewConfi17 = hudVideoPreviewConfigurationSettings.onCanPlay,
onCanPlay = _hudVideoPreviewConfi17 === void 0 ? function () {} : _hudVideoPreviewConfi17,
_hudVideoPreviewConfi18 = hudVideoPreviewConfigurationSettings.onSeeking,
onSeeking = _hudVideoPreviewConfi18 === void 0 ? function () {} : _hudVideoPreviewConfi18,
_hudVideoPreviewConfi19 = hudVideoPreviewConfigurationSettings.onSeeked,
onSeeked = _hudVideoPreviewConfi19 === void 0 ? function () {} : _hudVideoPreviewConfi19,
_hudVideoPreviewConfi20 = hudVideoPreviewConfigurationSettings.onError,
onError = _hudVideoPreviewConfi20 === void 0 ? function () {} : _hudVideoPreviewConfi20,
_hudVideoPreviewConfi21 = hudVideoPreviewConfigurationSettings.onEnded,
onEnded = _hudVideoPreviewConfi21 === void 0 ? function () {} : _hudVideoPreviewConfi21,
_hudVideoPreviewConfi22 = hudVideoPreviewConfigurationSettings.onPause,
onPause = _hudVideoPreviewConfi22 === void 0 ? function () {} : _hudVideoPreviewConfi22,
_hudVideoPreviewConfi23 = hudVideoPreviewConfigurationSettings.onPlay,
onPlay = _hudVideoPreviewConfi23 === void 0 ? function () {} : _hudVideoPreviewConfi23,
_hudVideoPreviewConfi24 = hudVideoPreviewConfigurationSettings.autoPlayDuration,
autoPlayDuration = _hudVideoPreviewConfi24 === void 0 ? 10000 : _hudVideoPreviewConfi24,
_hudVideoPreviewConfi25 = hudVideoPreviewConfigurationSettings.previewDuration,
previewDuration = _hudVideoPreviewConfi25 === void 0 ? null : _hudVideoPreviewConfi25,
_hudVideoPreviewConfi26 = hudVideoPreviewConfigurationSettings.previewStart,
previewStart = _hudVideoPreviewConfi26 === void 0 ? 0 : _hudVideoPreviewConfi26,
_hudVideoPreviewConfi27 = hudVideoPreviewConfigurationSettings.hoverDelay,
hoverDelay = _hudVideoPreviewConfi27 === void 0 ? 600 : _hudVideoPreviewConfi27,
_hudVideoPreviewConfi28 = hudVideoPreviewConfigurationSettings.renderSpeed,
renderSpeed = _hudVideoPreviewConfi28 === void 0 ? 25 : _hudVideoPreviewConfi28,
_hudVideoPreviewConfi29 = hudVideoPreviewConfigurationSettings.renderFPS,
renderFPS = _hudVideoPreviewConfi29 === void 0 ? 30 : _hudVideoPreviewConfi29,
_hudVideoPreviewConfi30 = hudVideoPreviewConfigurationSettings.seekTo,
seekTo = _hudVideoPreviewConfi30 === void 0 ? null : _hudVideoPreviewConfi30,
_hudVideoPreviewConfi31 = hudVideoPreviewConfigurationSettings.rendererMode,
rendererMode = _hudVideoPreviewConfi31 === void 0 ? false : _hudVideoPreviewConfi31,
_hudVideoPreviewConfi32 = hudVideoPreviewConfigurationSettings.playOnHover,
playOnHover = _hudVideoPreviewConfi32 === void 0 ? true : _hudVideoPreviewConfi32,
_hudVideoPreviewConfi33 = hudVideoPreviewConfigurationSettings.playOnClick,
playOnClick = _hudVideoPreviewConfi33 === void 0 ? true : _hudVideoPreviewConfi33,
_hudVideoPreviewConfi34 = hudVideoPreviewConfigurationSettings.autoPlay,
autoPlay = _hudVideoPreviewConfi34 === void 0 ? true : _hudVideoPreviewConfi34,
_hudVideoPreviewConfi35 = hudVideoPreviewConfigurationSettings.videoSRC,
videoSRC = _hudVideoPreviewConfi35 === void 0 ? "" : _hudVideoPreviewConfi35,
_hudVideoPreviewConfi36 = hudVideoPreviewConfigurationSettings.muted,
muted = _hudVideoPreviewConfi36 === void 0 ? true : _hudVideoPreviewConfi36,
_hudVideoPreviewConfi37 = hudVideoPreviewConfigurationSettings.loop,
loop = _hudVideoPreviewConfi37 === void 0 ? true : _hudVideoPreviewConfi37,
_hudVideoPreviewConfi38 = hudVideoPreviewConfigurationSettings.enableAdvancedStreaming,
enableAdvancedStreaming = _hudVideoPreviewConfi38 === void 0 ? false : _hudVideoPreviewConfi38,
_hudVideoPreviewConfi39 = hudVideoPreviewConfigurationSettings.posterURL,
posterURL = _hudVideoPreviewConfi39 === void 0 ? null : _hudVideoPreviewConfi39,
_hudVideoPreviewConfi40 = hudVideoPreviewConfigurationSettings.showIdleThumbnail,
showIdleThumbnail = _hudVideoPreviewConfi40 === void 0 ? true : _hudVideoPreviewConfi40,
_hudVideoPreviewConfi41 = hudVideoPreviewConfigurationSettings.idleThumbnailURL,
idleThumbnailURL = _hudVideoPreviewConfi41 === void 0 ? null : _hudVideoPreviewConfi41,
_hudVideoPreviewConfi42 = hudVideoPreviewConfigurationSettings.propsVersion,
propsVersion = _hudVideoPreviewConfi42 === void 0 ? 0 : _hudVideoPreviewConfi42;
var _useState = useState("idle"),
_useState2 = _slicedToArray(_useState, 2),
loadingStage = _useState2[0],
setLoadingStage = _useState2[1];
var _useState3 = useState(0),
_useState4 = _slicedToArray(_useState3, 2),
loadingPercent = _useState4[0],
setLoadingPercent = _useState4[1];
var _useState5 = useState(false),
_useState6 = _slicedToArray(_useState5, 2),
rendering = _useState6[0],
setRendering = _useState6[1];
var _useState7 = useState(false),
_useState8 = _slicedToArray(_useState7, 2),
hovered = _useState8[0],
setHovered = _useState8[1];
var _useState9 = useState(false),
_useState10 = _slicedToArray(_useState9, 2),
playing = _useState10[0],
setPlaying = _useState10[1];
var didFirstFrameRef = useRef(false);
var srcAttachedRef = useRef(false);
var attemptedRef = useRef(false);
var containerRef = useRef(null);
var startedRef = useRef(false);
var blockedRef = useRef(false);
var playingRef = useRef(false);
var inViewRef = useRef(false);
var rVFCHandleRef = useRef(0);
var videoRef = useRef(null);
var autoPlayTO = useRef(0);
var hoverTO = useRef(0);
var fastSeekTo = function fastSeekTo(t) {
var v = videoRef.current;
if (!v) {
return;
}
try {
if (typeof v.fastSeek === "function") {
v.fastSeek(t);
} else {
v.currentTime = t;
}
} catch (_unused) {}
};
var safeClear = function safeClear(h) {
if (h) {
try {
clearTimeout(h);
} catch (_unused2) {}
}
};
var attachSrcIfNeeded = function attachSrcIfNeeded() {
if (srcAttachedRef.current || !videoSRC) {
return;
}
var v = videoRef.current;
if (!v) {
return;
}
v.src = videoSRC;
srcAttachedRef.current = true;
setLoadingStage("network");
};
var updateBufferedPercent = function updateBufferedPercent() {
var v = videoRef.current;
if (!v) {
return;
}
try {
var d = v.duration || 0;
if (!d || !isFinite(d)) {
setLoadingPercent(0);
return;
}
var end = 0;
var b = v.buffered;
for (var i = 0; i < b.length; i++) {
end = Math.max(end, b.end(i));
}
var pct = Math.max(0, Math.min(100, end / d * 100));
setLoadingPercent(pct);
} catch (_unused3) {
setLoadingPercent(0);
}
};
var beginRVFC = function beginRVFC() {
if (!rendererMode) {
return;
}
var v = videoRef.current;
if (!v) {
return;
}
setRendering(true);
var loopCB = function loopCB(now, metadata) {
onRenderUpdate((metadata === null || metadata === void 0 ? void 0 : metadata.presentedFrames) || 0, 0, v, true, now / 1000, v.duration || 1 ? v.currentTime / (v.duration || 1) : 0);
onTimeUpdate({
currentTime: v.currentTime
});
if (!playingRef.current) {
return;
}
try {
rVFCHandleRef.current = v.requestVideoFrameCallback(loopCB);
} catch (_unused4) {
requestAnimationFrame(function () {
if (playingRef.current) {
loopCB(performance.now(), null);
}
});
}
};
try {
rVFCHandleRef.current = v.requestVideoFrameCallback(loopCB);
} catch (_unused5) {
var rafLoop = function rafLoop() {
if (!playingRef.current) {
return;
}
onRenderUpdate(0, 0, v, true, performance.now() / 1000, v.duration || 1 ? v.currentTime / (v.duration || 1) : 0);
onTimeUpdate({
currentTime: v.currentTime
});
requestAnimationFrame(rafLoop);
};
requestAnimationFrame(rafLoop);
}
};
var cancelRVFC = function cancelRVFC() {
var v = videoRef.current;
if (v && rVFCHandleRef.current) {
try {
v.cancelVideoFrameCallback(rVFCHandleRef.current);
} catch (_unused6) {}
rVFCHandleRef.current = 0;
}
setRendering(false);
};
var stabilizedStart = /*#__PURE__*/function () {
var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
var v, t0, firstFrameDeadline;
return _regeneratorRuntime.wrap(function _callee$(_context) {
while (1) switch (_context.prev = _context.next) {
case 0:
v = videoRef.current;
if (v) {
_context.next = 3;
break;
}
return _context.abrupt("return");
case 3:
t0 = performance.now();
case 4:
if (!(v.readyState < 3 && performance.now() - t0 < 800)) {
_context.next = 9;
break;
}
_context.next = 7;
return new Promise(function (r) {
return setTimeout(r, 16);
});
case 7:
_context.next = 4;
break;
case 9:
firstFrameDeadline = performance.now() + 500;
case 10:
if (!(!didFirstFrameRef.current && performance.now() < firstFrameDeadline)) {
_context.next = 15;
break;
}
_context.next = 13;
return new Promise(function (r) {
return setTimeout(r, 16);
});
case 13:
_context.next = 10;
break;
case 15:
case "end":
return _context.stop();
}
}, _callee);
}));
return function stabilizedStart() {
return _ref.apply(this, arguments);
};
}();
var requestStart = /*#__PURE__*/function () {
var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
var v, d, start, playP;
return _regeneratorRuntime.wrap(function _callee2$(_context2) {
while (1) switch (_context2.prev = _context2.next) {
case 0:
v = videoRef.current;
if (v) {
_context2.next = 3;
break;
}
return _context2.abrupt("return");
case 3:
if (!(startedRef.current || attemptedRef.current)) {
_context2.next = 5;
break;
}
return _context2.abrupt("return");
case 5:
didFirstFrameRef.current = false;
attemptedRef.current = true;
blockedRef.current = false;
attachSrcIfNeeded();
setLoadingStage(function (s) {
return s === "idle" ? "decoding" : s;
});
try {
d = previewDuration || v.duration || 0;
start = d ? Math.min(previewStart, Math.max(0, d - 0.01)) : Math.max(0, previewStart);
fastSeekTo(start);
} catch (_unused7) {}
_context2.prev = 11;
playP = v.play();
beginRVFC();
_context2.next = 16;
return playP;
case 16:
onPlay();
playingRef.current = true;
_context2.next = 20;
return stabilizedStart();
case 20:
startedRef.current = true;
setPlaying(true);
_context2.next = 29;
break;
case 24:
_context2.prev = 24;
_context2.t0 = _context2["catch"](11);
attemptedRef.current = false;
playingRef.current = false;
blockedRef.current = true;
case 29:
case "end":
return _context2.stop();
}
}, _callee2, null, [[11, 24]]);
}));
return function requestStart() {
return _ref2.apply(this, arguments);
};
}();
var retryStartIfBlocked = /*#__PURE__*/function () {
var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3() {
return _regeneratorRuntime.wrap(function _callee3$(_context3) {
while (1) switch (_context3.prev = _context3.next) {
case 0:
if (!(!blockedRef.current || startedRef.current)) {
_context3.next = 2;
break;
}
return _context3.abrupt("return");
case 2:
blockedRef.current = false;
_context3.next = 5;
return requestStart();
case 5:
case "end":
return _context3.stop();
}
}, _callee3);
}));
return function retryStartIfBlocked() {
return _ref3.apply(this, arguments);
};
}();
var stopVideo = function stopVideo() {
var resetToZero = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
var v = videoRef.current;
if (!v) {
return;
}
cancelRVFC();
try {
v.pause();
} catch (_unused9) {}
onPause();
attemptedRef.current = false;
playingRef.current = false;
startedRef.current = false;
blockedRef.current = false;
setPlaying(false);
if (resetToZero) {
try {
fastSeekTo(0);
} catch (_unused10) {}
}
};
var handleMouseEnter = function handleMouseEnter() {
safeClear(hoverTO.current);
hoverTO.current = setTimeout(function () {
setHovered(true);
if (playOnHover) {
requestStart();
}
}, hoverDelay);
};
var handleMouseLeave = function handleMouseLeave() {
safeClear(hoverTO.current);
setHovered(false);
if (playOnHover) {
stopVideo(true);
}
};
var handleClick = function handleClick() {
if (!playOnClick) {
return;
}
if (!startedRef.current) {
setHovered(true);
requestStart();
}
};
useEffect(function () {
var el = containerRef.current;
if (!el) {
return;
}
var io = new IntersectionObserver(function (entries) {
var e = entries[0];
var vis = !!(e !== null && e !== void 0 && e.isIntersecting);
inViewRef.current = vis;
if (vis) {
attachSrcIfNeeded();
}
}, {
rootMargin: "600px 0px"
});
io.observe(el);
return function () {
try {
io.disconnect();
} catch (_unused11) {}
};
}, [videoSRC]);
useEffect(function () {
if (!autoPlay) {
return;
}
var v = videoRef.current;
if (!v) {
return;
}
v.muted = muted;
v.playsInline = true;
requestStart().then(function () {
safeClear(autoPlayTO.current);
if (!startedRef.current) {
setTimeout(function () {
if (!startedRef.current && !attemptedRef.current) {
requestStart();
}
}, 120);
}
autoPlayTO.current = setTimeout(function () {
stopVideo(true);
}, autoPlayDuration);
});
return function () {
safeClear(autoPlayTO.current);
};
}, [autoPlay, autoPlayDuration, muted]);
useEffect(function () {
didFirstFrameRef.current = false;
srcAttachedRef.current = false;
attemptedRef.current = false;
startedRef.current = false;
blockedRef.current = false;
if (autoPlay) {
requestAnimationFrame(function () {
requestStart();
});
}
return function () {
safeClear(hoverTO.current);
safeClear(autoPlayTO.current);
stopVideo(false);
};
}, [videoSRC, autoPlay]);
useEffect(function () {
var v = videoRef.current;
if (!v) {
return;
}
var onLoadedData = function onLoadedData() {
didFirstFrameRef.current = true;
if (autoPlay && !startedRef.current && !attemptedRef.current) {
requestStart();
}
};
v.addEventListener("loadeddata", onLoadedData);
return function () {
v.removeEventListener("loadeddata", onLoadedData);
};
}, [autoPlay]);
useEffect(function () {
var v = videoRef.current;
if (!v) {
return;
}
var onLoadedMeta = function onLoadedMeta() {
setLoadingStage(function (s) {
return s === "idle" ? "metadata" : s;
});
onVideoLoaded(v);
updateBufferedPercent();
if (rendererMode) {
try {
onRenderLoaded(Math.floor(renderFPS * renderSpeed), v);
} catch (_unused12) {}
}
};
var onProgressWrap = function onProgressWrap() {
updateBufferedPercent();
};
var onCanPlayWrap = function onCanPlayWrap(e) {
setLoadingStage("ready");
onCanPlay(e);
if (!startedRef.current) {
retryStartIfBlocked();
}
};
var onTime = function onTime() {
if (!didFirstFrameRef.current) {
didFirstFrameRef.current = true;
}
onTimeUpdate({
currentTime: v.currentTime
});
};
var onEndedWrap = function onEndedWrap() {
onEnded();
stopVideo(true);
};
v.addEventListener("loadedmetadata", onLoadedMeta);
v.addEventListener("progress", onProgressWrap);
v.addEventListener("canplay", onCanPlayWrap);
v.addEventListener("timeupdate", onTime);
v.addEventListener("ended", onEndedWrap);
v.addEventListener("seeking", onSeeking);
v.addEventListener("seeked", onSeeked);
v.addEventListener("error", onError);
return function () {
v.removeEventListener("loadedmetadata", onLoadedMeta);
v.removeEventListener("progress", onProgressWrap);
v.removeEventListener("canplay", onCanPlayWrap);
v.removeEventListener("timeupdate", onTime);
v.removeEventListener("ended", onEndedWrap);
v.removeEventListener("seeking", onSeeking);
v.removeEventListener("seeked", onSeeked);
v.removeEventListener("error", onError);
};
}, [rendererMode, renderFPS, renderSpeed]);
useEffect(function () {
if (seekTo == null) {
return;
}
var v = videoRef.current;
if (!v) {
return;
}
try {
fastSeekTo(seekTo);
} catch (_unused13) {}
}, [seekTo]);
useEffect(function () {
var onVis = function onVis() {
if (document.visibilityState === "hidden" && playingRef.current) {
stopVideo(false);
}
};
document.addEventListener("visibilitychange", onVis);
return function () {
document.removeEventListener("visibilitychange", onVis);
};
}, []);
var shouldShowLoader = loadingStage !== "idle" && loadingStage !== "ready" && (hovered || playing || autoPlay || rendererMode);
var showIdleThumb = showIdleThumbnail && !playing && !shouldShowLoader && (idleThumbnailURL || posterURL);
return /*#__PURE__*/React.createElement("div", _extends({
ref: containerRef,
style: _objectSpread({
position: "relative",
display: "inline-block"
}, previewVideoContainerConfigurationSettings),
onMouseEnter: handleMouseEnter,
onMouseLeave: handleMouseLeave,
onClick: handleClick
}, previewConfigurations), /*#__PURE__*/React.createElement("video", _extends({
ref: videoRef,
style: _objectSpread({
borderRadius: "0.569rem",
width: "100%"
}, previewVideoConfigurationSettings),
onVolumeChange: onVolumeChange,
preload: autoPlay ? "auto" : "metadata",
poster: posterURL || undefined,
muted: muted,
loop: loop,
playsInline: true
}, previewVideoConfigurations)), shouldShowLoader && /*#__PURE__*/React.createElement(motion.div, {
initial: {
opacity: 0.0
},
animate: {
opacity: 1.0
},
transition: {
duration: 0.20,
ease: "easeOut"
},
style: {
position: "absolute",
display: "flex",
justifyContent: "center",
alignItems: "center",
pointerEvents: "none",
borderRadius: "0.569rem",
background: "transparent",
inset: 0
}
}, /*#__PURE__*/React.createElement(HUDLoading, _extends({
type: "circleDeterminate",
progress: Math.max(0, Math.min(1, loadingPercent / 100)),
strokeWidth: 4,
size: 42
}, previewIndicatorConfigurations))), showIdleThumb && /*#__PURE__*/React.createElement(HUDIcon, {
alt: "thumbnail",
svg: idleThumbnailURL || posterURL || "",
style: _objectSpread({
position: "absolute",
pointerEvents: "none",
objectFit: "cover",
borderRadius: "0.569rem",
height: "100%",
width: "100%",
inset: 0
}, idleThumbnailConfigurationSettings !== null && idleThumbnailConfigurationSettings !== void 0 ? idleThumbnailConfigurationSettings : {})
}), !playing && !shouldShowLoader && /*#__PURE__*/React.createElement(motion.div, {
initial: {
opacity: 0.0
},
animate: {
opacity: hovered ? 0.15 : 0.349
},
transition: {
duration: 0.25,
ease: "easeOut"
},
style: _objectSpread({
position: "absolute",
display: "flex",
justifyContent: "center",
alignItems: "center",
borderRadius: "0.569rem",
backgroundColor: "rgba(0, 0, 0, 0.469)",
height: "100%",
width: "100%",
left: "0%",
top: "0%"
}, previewIconContainerConfigurationSettings !== null && previewIconContainerConfigurationSettings !== void 0 ? previewIconContainerConfigurationSettings : {})
}, "name" in (previewIconConfigurations || {}) ? /*#__PURE__*/React.createElement(HUDIcon, previewIconConfigurations) : /*#__PURE__*/React.createElement(HUDIcon, {
iconConfigurationSettings: {
fontSize: 32
},
name: "play",
color: "#FFFFFF"
})), playing && !shouldShowLoader && /*#__PURE__*/React.createElement(motion.div, _extends({
initial: {
opacity: 0.0
},
animate: {
opacity: 1.0
},
transition: {
duration: 0.25,
ease: "easeOut"
},
style: _objectSpread({
position: "absolute",
display: "flex",
alignItems: "center",
borderRadius: "0.5rem",
background: "linear-gradient(to bottom, rgba(0, 0, 0, 0.1) 70%, transparent 100%)",
height: "3.25rem",
width: "100%",
paddingLeft: "1rem",
left: "0%",
top: "0%"
}, previewIndicatorContainerConfigurationSettings !== null && previewIndicatorContainerConfigurationSettings !== void 0 ? previewIndicatorContainerConfigurationSettings : {})
}, previewIndicatorContainerConfigurations !== null && previewIndicatorContainerConfigurations !== void 0 ? previewIndicatorContainerConfigurations : {}), /*#__PURE__*/React.createElement(HUDLoading, _extends({
word: "Preview",
type: "word"
}, previewIndicatorConfigurations))));
}
;
export default /*#__PURE__*/React.memo(HUDVideoPreview, matchesHUDVideoPreviewStatefulConfigurations);