@mottosports/motto-video-player 1.0.1-rc.15 → 1.0.1-rc.16
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/README.md +11 -0
- package/dist/index.js +137 -50
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +116 -29
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -29,7 +29,7 @@ function styleInject(css, { insertAt } = {}) {
|
|
|
29
29
|
styleInject('/*! tailwindcss v4.1.8 | MIT License | https://tailwindcss.com */\n@layer properties;\n@layer theme, base, components, utilities;\n@layer theme {\n :root,\n :host {\n --font-sans:\n ui-sans-serif,\n system-ui,\n sans-serif,\n "Apple Color Emoji",\n "Segoe UI Emoji",\n "Segoe UI Symbol",\n "Noto Color Emoji";\n --font-mono:\n ui-monospace,\n SFMono-Regular,\n Menlo,\n Monaco,\n Consolas,\n "Liberation Mono",\n "Courier New",\n monospace;\n --color-red-600: oklch(57.7% 0.245 27.325);\n --color-black: #000;\n --color-white: #fff;\n --spacing: 0.25rem;\n --text-xs: 0.75rem;\n --text-xs--line-height: calc(1 / 0.75);\n --text-sm: 0.875rem;\n --text-sm--line-height: calc(1.25 / 0.875);\n --text-base: 1rem;\n --text-base--line-height: calc(1.5 / 1);\n --text-lg: 1.125rem;\n --text-lg--line-height: calc(1.75 / 1.125);\n --text-xl: 1.25rem;\n --text-xl--line-height: calc(1.75 / 1.25);\n --text-2xl: 1.5rem;\n --text-2xl--line-height: calc(2 / 1.5);\n --text-5xl: 3rem;\n --text-5xl--line-height: 1;\n --font-weight-medium: 500;\n --font-weight-semibold: 600;\n --font-weight-bold: 700;\n --tracking-wide: 0.025em;\n --tracking-widest: 0.1em;\n --radius-md: 0.375rem;\n --radius-2xl: 1rem;\n --animate-spin: spin 1s linear infinite;\n --animate-pulse: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;\n --aspect-video: 16 / 9;\n --default-transition-duration: 150ms;\n --default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n --default-font-family: var(--font-sans);\n --default-mono-font-family: var(--font-mono);\n }\n}\n@layer base {\n *,\n ::after,\n ::before,\n ::backdrop,\n ::file-selector-button {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n border: 0 solid;\n }\n html,\n :host {\n line-height: 1.5;\n -webkit-text-size-adjust: 100%;\n tab-size: 4;\n font-family: var(--default-font-family, ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");\n font-feature-settings: var(--default-font-feature-settings, normal);\n font-variation-settings: var(--default-font-variation-settings, normal);\n -webkit-tap-highlight-color: transparent;\n }\n hr {\n height: 0;\n color: inherit;\n border-top-width: 1px;\n }\n abbr:where([title]) {\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n }\n h1,\n h2,\n h3,\n h4,\n h5,\n h6 {\n font-size: inherit;\n font-weight: inherit;\n }\n a {\n color: inherit;\n -webkit-text-decoration: inherit;\n text-decoration: inherit;\n }\n b,\n strong {\n font-weight: bolder;\n }\n code,\n kbd,\n samp,\n pre {\n font-family: var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);\n font-feature-settings: var(--default-mono-font-feature-settings, normal);\n font-variation-settings: var(--default-mono-font-variation-settings, normal);\n font-size: 1em;\n }\n small {\n font-size: 80%;\n }\n sub,\n sup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n }\n sub {\n bottom: -0.25em;\n }\n sup {\n top: -0.5em;\n }\n table {\n text-indent: 0;\n border-color: inherit;\n border-collapse: collapse;\n }\n :-moz-focusring {\n outline: auto;\n }\n progress {\n vertical-align: baseline;\n }\n summary {\n display: list-item;\n }\n ol,\n ul,\n menu {\n list-style: none;\n }\n img,\n svg,\n video,\n canvas,\n audio,\n iframe,\n embed,\n object {\n display: block;\n vertical-align: middle;\n }\n img,\n video {\n max-width: 100%;\n height: auto;\n }\n button,\n input,\n select,\n optgroup,\n textarea,\n ::file-selector-button {\n font: inherit;\n font-feature-settings: inherit;\n font-variation-settings: inherit;\n letter-spacing: inherit;\n color: inherit;\n border-radius: 0;\n background-color: transparent;\n opacity: 1;\n }\n :where(select:is([multiple], [size])) optgroup {\n font-weight: bolder;\n }\n :where(select:is([multiple], [size])) optgroup option {\n padding-inline-start: 20px;\n }\n ::file-selector-button {\n margin-inline-end: 4px;\n }\n ::placeholder {\n opacity: 1;\n }\n @supports (not (-webkit-appearance: -apple-pay-button)) or (contain-intrinsic-size: 1px) {\n ::placeholder {\n color: currentcolor;\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, currentcolor 50%, transparent);\n }\n }\n }\n textarea {\n resize: vertical;\n }\n ::-webkit-search-decoration {\n -webkit-appearance: none;\n }\n ::-webkit-date-and-time-value {\n min-height: 1lh;\n text-align: inherit;\n }\n ::-webkit-datetime-edit {\n display: inline-flex;\n }\n ::-webkit-datetime-edit-fields-wrapper {\n padding: 0;\n }\n ::-webkit-datetime-edit,\n ::-webkit-datetime-edit-year-field,\n ::-webkit-datetime-edit-month-field,\n ::-webkit-datetime-edit-day-field,\n ::-webkit-datetime-edit-hour-field,\n ::-webkit-datetime-edit-minute-field,\n ::-webkit-datetime-edit-second-field,\n ::-webkit-datetime-edit-millisecond-field,\n ::-webkit-datetime-edit-meridiem-field {\n padding-block: 0;\n }\n :-moz-ui-invalid {\n box-shadow: none;\n }\n button,\n input:where([type=button], [type=reset], [type=submit]),\n ::file-selector-button {\n appearance: button;\n }\n ::-webkit-inner-spin-button,\n ::-webkit-outer-spin-button {\n height: auto;\n }\n [hidden]:where(:not([hidden=until-found])) {\n display: none !important;\n }\n}\n@layer utilities {\n .pointer-events-auto {\n pointer-events: auto;\n }\n .pointer-events-none {\n pointer-events: none;\n }\n .visible {\n visibility: visible;\n }\n .sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0;\n }\n .absolute {\n position: absolute;\n }\n .fixed {\n position: fixed;\n }\n .relative {\n position: relative;\n }\n .static {\n position: static;\n }\n .inset-0 {\n inset: calc(var(--spacing) * 0);\n }\n .top-0 {\n top: calc(var(--spacing) * 0);\n }\n .top-4 {\n top: calc(var(--spacing) * 4);\n }\n .right-0 {\n right: calc(var(--spacing) * 0);\n }\n .right-4 {\n right: calc(var(--spacing) * 4);\n }\n .bottom-0 {\n bottom: calc(var(--spacing) * 0);\n }\n .bottom-4 {\n bottom: calc(var(--spacing) * 4);\n }\n .left-0 {\n left: calc(var(--spacing) * 0);\n }\n .left-4 {\n left: calc(var(--spacing) * 4);\n }\n .z-10 {\n z-index: 10;\n }\n .z-50 {\n z-index: 50;\n }\n .container {\n width: 100%;\n @media (width >= 40rem) {\n max-width: 40rem;\n }\n @media (width >= 48rem) {\n max-width: 48rem;\n }\n @media (width >= 64rem) {\n max-width: 64rem;\n }\n @media (width >= 80rem) {\n max-width: 80rem;\n }\n @media (width >= 96rem) {\n max-width: 96rem;\n }\n }\n .m-6 {\n margin: calc(var(--spacing) * 6);\n }\n .mt-1 {\n margin-top: calc(var(--spacing) * 1);\n }\n .mt-3 {\n margin-top: calc(var(--spacing) * 3);\n }\n .mb-2 {\n margin-bottom: calc(var(--spacing) * 2);\n }\n .mb-6 {\n margin-bottom: calc(var(--spacing) * 6);\n }\n .flex {\n display: flex;\n }\n .grid {\n display: grid;\n }\n .hidden {\n display: none;\n }\n .aspect-video {\n aspect-ratio: var(--aspect-video);\n }\n .h-2 {\n height: calc(var(--spacing) * 2);\n }\n .h-12 {\n height: calc(var(--spacing) * 12);\n }\n .h-24 {\n height: calc(var(--spacing) * 24);\n }\n .h-full {\n height: 100%;\n }\n .w-2 {\n width: calc(var(--spacing) * 2);\n }\n .w-12 {\n width: calc(var(--spacing) * 12);\n }\n .w-24 {\n width: calc(var(--spacing) * 24);\n }\n .w-full {\n width: 100%;\n }\n .animate-pulse {\n animation: var(--animate-pulse);\n }\n .animate-spin {\n animation: var(--animate-spin);\n }\n .auto-cols-max {\n grid-auto-columns: max-content;\n }\n .grid-flow-col {\n grid-auto-flow: column;\n }\n .flex-col {\n flex-direction: column;\n }\n .items-center {\n align-items: center;\n }\n .justify-center {\n justify-content: center;\n }\n .justify-stretch {\n justify-content: stretch;\n }\n .gap-1 {\n gap: calc(var(--spacing) * 1);\n }\n .gap-5 {\n gap: calc(var(--spacing) * 5);\n }\n .overflow-hidden {\n overflow: hidden;\n }\n .rounded-full {\n border-radius: calc(infinity * 1px);\n }\n .rounded-md {\n border-radius: var(--radius-md);\n }\n .bg-\\[\\#151515\\] {\n background-color: #151515;\n }\n .bg-black {\n background-color: var(--color-black);\n }\n .bg-red-600 {\n background-color: var(--color-red-600);\n }\n .bg-white {\n background-color: var(--color-white);\n }\n .bg-gradient-to-t {\n --tw-gradient-position: to top in oklab;\n background-image: linear-gradient(var(--tw-gradient-stops));\n }\n .from-black\\/70 {\n --tw-gradient-from: color-mix(in srgb, #000 70%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-gradient-from: color-mix(in oklab, var(--color-black) 70%, transparent);\n }\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .to-transparent {\n --tw-gradient-to: transparent;\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .bg-cover {\n background-size: cover;\n }\n .bg-center {\n background-position: center;\n }\n .bg-no-repeat {\n background-repeat: no-repeat;\n }\n .p-2 {\n padding: calc(var(--spacing) * 2);\n }\n .p-4 {\n padding: calc(var(--spacing) * 4);\n }\n .px-2 {\n padding-inline: calc(var(--spacing) * 2);\n }\n .px-4 {\n padding-inline: calc(var(--spacing) * 4);\n }\n .py-1 {\n padding-block: calc(var(--spacing) * 1);\n }\n .text-center {\n text-align: center;\n }\n .text-left {\n text-align: left;\n }\n .font-mono {\n font-family: var(--font-mono);\n }\n .text-2xl {\n font-size: var(--text-2xl);\n line-height: var(--tw-leading, var(--text-2xl--line-height));\n }\n .text-5xl {\n font-size: var(--text-5xl);\n line-height: var(--tw-leading, var(--text-5xl--line-height));\n }\n .text-base {\n font-size: var(--text-base);\n line-height: var(--tw-leading, var(--text-base--line-height));\n }\n .text-lg {\n font-size: var(--text-lg);\n line-height: var(--tw-leading, var(--text-lg--line-height));\n }\n .text-sm {\n font-size: var(--text-sm);\n line-height: var(--tw-leading, var(--text-sm--line-height));\n }\n .text-xl {\n font-size: var(--text-xl);\n line-height: var(--tw-leading, var(--text-xl--line-height));\n }\n .text-xs {\n font-size: var(--text-xs);\n line-height: var(--tw-leading, var(--text-xs--line-height));\n }\n .text-\\[10px\\] {\n font-size: 10px;\n }\n .font-bold {\n --tw-font-weight: var(--font-weight-bold);\n font-weight: var(--font-weight-bold);\n }\n .font-medium {\n --tw-font-weight: var(--font-weight-medium);\n font-weight: var(--font-weight-medium);\n }\n .font-semibold {\n --tw-font-weight: var(--font-weight-semibold);\n font-weight: var(--font-weight-semibold);\n }\n .tracking-wide {\n --tw-tracking: var(--tracking-wide);\n letter-spacing: var(--tracking-wide);\n }\n .tracking-widest {\n --tw-tracking: var(--tracking-widest);\n letter-spacing: var(--tracking-widest);\n }\n .text-white {\n color: var(--color-white);\n }\n .uppercase {\n text-transform: uppercase;\n }\n .shadow-lg {\n --tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 4px 6px -4px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow:\n var(--tw-inset-shadow),\n var(--tw-inset-ring-shadow),\n var(--tw-ring-offset-shadow),\n var(--tw-ring-shadow),\n var(--tw-shadow);\n }\n .filter {\n filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);\n }\n .md\\:rounded-2xl {\n @media (width >= 48rem) {\n border-radius: var(--radius-2xl);\n }\n }\n .md\\:rounded-2xl\\! {\n @media (width >= 48rem) {\n border-radius: var(--radius-2xl) !important;\n }\n }\n .md\\:text-base {\n @media (width >= 48rem) {\n font-size: var(--text-base);\n line-height: var(--tw-leading, var(--text-base--line-height));\n }\n }\n .md\\:text-sm {\n @media (width >= 48rem) {\n font-size: var(--text-sm);\n line-height: var(--tw-leading, var(--text-sm--line-height));\n }\n }\n .md\\:text-xl {\n @media (width >= 48rem) {\n font-size: var(--text-xl);\n line-height: var(--tw-leading, var(--text-xl--line-height));\n }\n }\n}\n@layer components {\n .motto-video-container {\n position: relative;\n width: 100%;\n min-height: 300px;\n }\n @supports (aspect-ratio: 16/9) {\n .motto-video-container {\n min-height: auto;\n }\n }\n .motto-video-responsive {\n position: absolute;\n top: calc(var(--spacing) * 0);\n left: calc(var(--spacing) * 0);\n height: 100%;\n width: 100%;\n }\n .motto-skip-button {\n position: absolute;\n top: calc(1/2 * 100%);\n z-index: 10;\n display: flex;\n height: calc(var(--spacing) * 16);\n width: calc(var(--spacing) * 16);\n --tw-translate-y: calc(calc(1/2 * 100%) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n cursor: pointer;\n align-items: center;\n justify-content: center;\n border-radius: calc(infinity * 1px);\n border-style: var(--tw-border-style);\n border-width: 0px;\n background-color: color-mix(in srgb, #000 70%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-black) 70%, transparent);\n }\n font-size: var(--text-2xl);\n line-height: var(--tw-leading, var(--text-2xl--line-height));\n color: var(--color-white);\n opacity: 80%;\n transition-property: all;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n --tw-duration: 200ms;\n transition-duration: 200ms;\n &:hover {\n @media (hover: hover) {\n --tw-scale-x: 110%;\n --tw-scale-y: 110%;\n --tw-scale-z: 110%;\n scale: var(--tw-scale-x) var(--tw-scale-y);\n }\n }\n &:hover {\n @media (hover: hover) {\n opacity: 100%;\n }\n }\n &:active {\n --tw-scale-x: 95%;\n --tw-scale-y: 95%;\n --tw-scale-z: 95%;\n scale: var(--tw-scale-x) var(--tw-scale-y);\n }\n }\n .motto-skip-button-back {\n left: calc(var(--spacing) * 5);\n }\n .motto-skip-button-forward {\n right: calc(var(--spacing) * 5);\n }\n .motto-mobile-controls-overlay {\n position: absolute;\n inset: calc(var(--spacing) * 0);\n z-index: 20;\n display: flex;\n align-items: center;\n justify-content: center;\n transition-property: opacity;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n --tw-duration: 300ms;\n transition-duration: 300ms;\n pointer-events: none;\n }\n .motto-mobile-controls-group {\n display: flex;\n align-items: center;\n gap: calc(var(--spacing) * 8);\n opacity: 100%;\n transition-property: all;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n --tw-duration: 200ms;\n transition-duration: 200ms;\n pointer-events: none;\n }\n .motto-mobile-play-button {\n display: flex;\n height: calc(var(--spacing) * 14);\n width: calc(var(--spacing) * 14);\n cursor: pointer;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n border-radius: calc(infinity * 1px);\n border-style: var(--tw-border-style);\n border-width: 0px;\n background-color: color-mix(in srgb, #000 30%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-black) 30%, transparent);\n }\n color: var(--color-white);\n --tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 4px 6px -4px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow:\n var(--tw-inset-shadow),\n var(--tw-inset-ring-shadow),\n var(--tw-ring-offset-shadow),\n var(--tw-ring-shadow),\n var(--tw-shadow);\n transition-property: all;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n --tw-duration: 200ms;\n transition-duration: 200ms;\n pointer-events: auto;\n }\n .motto-mobile-play-button:active {\n --tw-scale-x: 95%;\n --tw-scale-y: 95%;\n --tw-scale-z: 95%;\n scale: var(--tw-scale-x) var(--tw-scale-y);\n }\n .motto-mobile-play-button svg {\n height: calc(var(--spacing) * 7);\n width: calc(var(--spacing) * 7);\n }\n .motto-mobile-skip-button {\n display: flex;\n height: calc(var(--spacing) * 10);\n width: calc(var(--spacing) * 10);\n cursor: pointer;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n border-radius: calc(infinity * 1px);\n border-style: var(--tw-border-style);\n border-width: 0px;\n background-color: color-mix(in srgb, #000 30%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-black) 30%, transparent);\n }\n color: var(--color-white);\n --tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 4px 6px -4px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow:\n var(--tw-inset-shadow),\n var(--tw-inset-ring-shadow),\n var(--tw-ring-offset-shadow),\n var(--tw-ring-shadow),\n var(--tw-shadow);\n transition-property: all;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n --tw-duration: 200ms;\n transition-duration: 200ms;\n pointer-events: auto;\n }\n .motto-mobile-skip-button:active {\n --tw-scale-x: 95%;\n --tw-scale-y: 95%;\n --tw-scale-z: 95%;\n scale: var(--tw-scale-x) var(--tw-scale-y);\n }\n .motto-mobile-skip-button svg {\n height: calc(var(--spacing) * 6);\n width: calc(var(--spacing) * 6);\n }\n}\n@media (min-width: 768px) {\n .motto-mobile-controls-overlay {\n display: none !important;\n }\n}\n@media (max-width: 767px) {\n .shaka-controls-container .motto-native-skip-button,\n .shaka-controls-container .motto-skip-back-button,\n .shaka-controls-container .motto-skip-forward-button,\n .shaka-controls-container .shaka-button[title*="Skip back"],\n .shaka-controls-container .shaka-button[title*="Skip forward"],\n .shaka-controls-container .shaka-button[aria-label*="Skip back"],\n .shaka-controls-container .shaka-button[aria-label*="Skip forward"],\n .shaka-controls-container button[title*="Skip back"],\n .shaka-controls-container button[title*="Skip forward"],\n .shaka-controls-container button[aria-label*="Skip back"],\n .shaka-controls-container button[aria-label*="Skip forward"],\n .motto-native-skip-button:not(.motto-mobile-skip-button),\n .motto-skip-back-button:not(.motto-mobile-skip-button),\n .motto-skip-forward-button:not(.motto-mobile-skip-button),\n .shaka-button[title*="Skip back"]:not(.motto-mobile-skip-button),\n .shaka-button[title*="Skip forward"]:not(.motto-mobile-skip-button),\n .shaka-button[aria-label*="Skip back"]:not(.motto-mobile-skip-button),\n .shaka-button[aria-label*="Skip forward"]:not(.motto-mobile-skip-button),\n button[title*="Skip back"]:not(.motto-mobile-skip-button),\n button[title*="Skip forward"]:not(.motto-mobile-skip-button),\n button[aria-label*="Skip back"]:not(.motto-mobile-skip-button),\n button[aria-label*="Skip forward"]:not(.motto-mobile-skip-button) {\n display: none !important;\n visibility: hidden !important;\n opacity: 0 !important;\n width: 0 !important;\n height: 0 !important;\n padding: 0 !important;\n margin: 0 !important;\n }\n .motto-mobile-skip-button {\n display: flex !important;\n visibility: visible !important;\n opacity: 1 !important;\n }\n}\n.shaka-seek-bar-container {\n height: 6px !important;\n width: 100% !important;\n margin: 8px 0 !important;\n border-radius: 4px !important;\n position: relative !important;\n border-top: none !important;\n border-bottom: none !important;\n box-shadow: none !important;\n}\n.shaka-seek-bar {\n height: 6px !important;\n width: 100% !important;\n -webkit-appearance: none !important;\n appearance: none !important;\n background: transparent !important;\n cursor: pointer !important;\n border: none !important;\n outline: none !important;\n position: absolute !important;\n top: 0 !important;\n left: 0 !important;\n border-radius: 4px !important;\n}\n.shaka-seek-bar::-webkit-slider-runnable-track {\n height: 6px !important;\n background: transparent !important;\n border-radius: 4px !important;\n border: none !important;\n}\n.shaka-seek-bar::-moz-range-track {\n height: 6px !important;\n background: transparent !important;\n border-radius: 4px !important;\n border: none !important;\n}\n.shaka-seek-bar::-webkit-slider-thumb {\n -webkit-appearance: none !important;\n appearance: none !important;\n width: 16px !important;\n height: 16px !important;\n border-radius: 50% !important;\n background: #ffffff !important;\n cursor: pointer !important;\n border: 2px solid #ffffff !important;\n box-shadow: 0 2px 6px rgba(0, 0, 0, 0.3) !important;\n margin-top: -4px !important;\n}\n.shaka-seek-bar::-moz-range-thumb {\n width: 16px !important;\n height: 16px !important;\n border-radius: 50% !important;\n background: #ffffff !important;\n cursor: pointer !important;\n border: 2px solid #ffffff !important;\n box-shadow: 0 2px 6px rgba(0, 0, 0, 0.3) !important;\n margin-top: -4px !important;\n}\n.motto-skip-back-button,\n.motto-skip-forward-button,\n.motto-native-skip-button {\n background: transparent !important;\n border: none !important;\n padding: 4px !important;\n margin: 0px !important;\n cursor: pointer !important;\n color: #ffffff !important;\n transition: all 0.2s ease !important;\n min-width: 32px !important;\n height: 32px !important;\n display: flex !important;\n align-items: center !important;\n justify-content: center !important;\n border-radius: 4px !important;\n width: 25px;\n}\n.motto-skip-back-button:hover,\n.motto-skip-forward-button:hover,\n.motto-native-skip-button:hover {\n opacity: 0.8 !important;\n background: transparent !important;\n transform: scale(1.05) !important;\n}\n.motto-skip-back-button:active,\n.motto-skip-forward-button:active,\n.motto-native-skip-button:active {\n transform: scale(0.95) !important;\n}\n.motto-skip-back-button svg,\n.motto-skip-forward-button svg,\n.motto-native-skip-button svg {\n width: 24px !important;\n height: 24px !important;\n}\n@media (max-width: 767px) {\n .shaka-controls-container .motto-native-skip-button,\n .shaka-controls-container .motto-skip-back-button,\n .shaka-controls-container .motto-skip-forward-button,\n .shaka-controls-container .shaka-play-button,\n .shaka-controls-container .shaka-pause-button {\n display: none !important;\n }\n}\n.shaka-spinner-svg {\n color: white !important;\n fill: white !important;\n}\n.shaka-spinner-path {\n stroke: white !important;\n fill: none !important;\n}\n.shaka-spinner-container {\n color: white !important;\n}\n.shaka-buffering-spinner {\n color: white !important;\n fill: white !important;\n}\n.shaka-buffering-spinner svg {\n color: white !important;\n fill: white !important;\n}\n.shaka-buffering-spinner path {\n stroke: white !important;\n fill: none !important;\n}\n[data-shaka-player-container] .shaka-spinner,\n[data-shaka-player-container] .spinner {\n color: white !important;\n border-color: white !important;\n}\n.material-icons.shaka-spinner {\n color: white !important;\n}\n.shaka-controls-container .shaka-spinner,\n.shaka-video-container .shaka-spinner {\n color: white !important;\n fill: white !important;\n}\n.shaka-controls-container .shaka-spinner svg,\n.shaka-video-container .shaka-spinner svg {\n color: white !important;\n fill: white !important;\n}\n.shaka-controls-container .shaka-spinner path,\n.shaka-video-container .shaka-spinner path {\n stroke: white !important;\n}\n.motto-video-loading-overlay {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background:\n linear-gradient(\n 135deg,\n #1a1a1a 0%,\n #2d2d2d 100%);\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n z-index: 10;\n transition: opacity 0.3s ease;\n}\n.motto-video-loading-overlay.hidden {\n opacity: 0;\n pointer-events: none;\n}\n.motto-video-loading-content {\n text-align: center;\n color: white;\n}\n.motto-video-loading-icon {\n width: 64px;\n height: 64px;\n margin-bottom: 16px;\n opacity: 0.7;\n}\n.motto-video-loading-text {\n font-size: 16px;\n font-weight: 500;\n margin-bottom: 8px;\n}\n.motto-video-loading-subtext {\n font-size: 14px;\n opacity: 0.7;\n}\n@keyframes pulse-live {\n 0% {\n opacity: 1;\n transform: scale(1);\n }\n 50% {\n opacity: 0.7;\n transform: scale(1.1);\n }\n 100% {\n opacity: 1;\n transform: scale(1);\n }\n}\n.shaka-play-button-container {\n display: none !important;\n}\n@media (max-width: 767px) {\n .shaka-controls-container {\n z-index: 90 !important;\n height: 100px !important;\n bottom: 0 !important;\n top: unset !important;\n }\n}\n@property --tw-gradient-position { syntax: "*"; inherits: false; }\n@property --tw-gradient-from { syntax: "<color>"; inherits: false; initial-value: #0000; }\n@property --tw-gradient-via { syntax: "<color>"; inherits: false; initial-value: #0000; }\n@property --tw-gradient-to { syntax: "<color>"; inherits: false; initial-value: #0000; }\n@property --tw-gradient-stops { syntax: "*"; inherits: false; }\n@property --tw-gradient-via-stops { syntax: "*"; inherits: false; }\n@property --tw-gradient-from-position { syntax: "<length-percentage>"; inherits: false; initial-value: 0%; }\n@property --tw-gradient-via-position { syntax: "<length-percentage>"; inherits: false; initial-value: 50%; }\n@property --tw-gradient-to-position { syntax: "<length-percentage>"; inherits: false; initial-value: 100%; }\n@property --tw-font-weight { syntax: "*"; inherits: false; }\n@property --tw-tracking { syntax: "*"; inherits: false; }\n@property --tw-shadow { syntax: "*"; inherits: false; initial-value: 0 0 #0000; }\n@property --tw-shadow-color { syntax: "*"; inherits: false; }\n@property --tw-shadow-alpha { syntax: "<percentage>"; inherits: false; initial-value: 100%; }\n@property --tw-inset-shadow { syntax: "*"; inherits: false; initial-value: 0 0 #0000; }\n@property --tw-inset-shadow-color { syntax: "*"; inherits: false; }\n@property --tw-inset-shadow-alpha { syntax: "<percentage>"; inherits: false; initial-value: 100%; }\n@property --tw-ring-color { syntax: "*"; inherits: false; }\n@property --tw-ring-shadow { syntax: "*"; inherits: false; initial-value: 0 0 #0000; }\n@property --tw-inset-ring-color { syntax: "*"; inherits: false; }\n@property --tw-inset-ring-shadow { syntax: "*"; inherits: false; initial-value: 0 0 #0000; }\n@property --tw-ring-inset { syntax: "*"; inherits: false; }\n@property --tw-ring-offset-width { syntax: "<length>"; inherits: false; initial-value: 0px; }\n@property --tw-ring-offset-color { syntax: "*"; inherits: false; initial-value: #fff; }\n@property --tw-ring-offset-shadow { syntax: "*"; inherits: false; initial-value: 0 0 #0000; }\n@property --tw-blur { syntax: "*"; inherits: false; }\n@property --tw-brightness { syntax: "*"; inherits: false; }\n@property --tw-contrast { syntax: "*"; inherits: false; }\n@property --tw-grayscale { syntax: "*"; inherits: false; }\n@property --tw-hue-rotate { syntax: "*"; inherits: false; }\n@property --tw-invert { syntax: "*"; inherits: false; }\n@property --tw-opacity { syntax: "*"; inherits: false; }\n@property --tw-saturate { syntax: "*"; inherits: false; }\n@property --tw-sepia { syntax: "*"; inherits: false; }\n@property --tw-drop-shadow { syntax: "*"; inherits: false; }\n@property --tw-drop-shadow-color { syntax: "*"; inherits: false; }\n@property --tw-drop-shadow-alpha { syntax: "<percentage>"; inherits: false; initial-value: 100%; }\n@property --tw-drop-shadow-size { syntax: "*"; inherits: false; }\n@property --tw-translate-x { syntax: "*"; inherits: false; initial-value: 0; }\n@property --tw-translate-y { syntax: "*"; inherits: false; initial-value: 0; }\n@property --tw-translate-z { syntax: "*"; inherits: false; initial-value: 0; }\n@property --tw-border-style { syntax: "*"; inherits: false; initial-value: solid; }\n@property --tw-duration { syntax: "*"; inherits: false; }\n@property --tw-scale-x { syntax: "*"; inherits: false; initial-value: 1; }\n@property --tw-scale-y { syntax: "*"; inherits: false; initial-value: 1; }\n@property --tw-scale-z { syntax: "*"; inherits: false; initial-value: 1; }\n@keyframes spin {\n to {\n transform: rotate(360deg);\n }\n}\n@keyframes pulse {\n 50% {\n opacity: 0.5;\n }\n}\n@layer properties {\n @supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) {\n *,\n ::before,\n ::after,\n ::backdrop {\n --tw-gradient-position: initial;\n --tw-gradient-from: #0000;\n --tw-gradient-via: #0000;\n --tw-gradient-to: #0000;\n --tw-gradient-stops: initial;\n --tw-gradient-via-stops: initial;\n --tw-gradient-from-position: 0%;\n --tw-gradient-via-position: 50%;\n --tw-gradient-to-position: 100%;\n --tw-font-weight: initial;\n --tw-tracking: initial;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-color: initial;\n --tw-shadow-alpha: 100%;\n --tw-inset-shadow: 0 0 #0000;\n --tw-inset-shadow-color: initial;\n --tw-inset-shadow-alpha: 100%;\n --tw-ring-color: initial;\n --tw-ring-shadow: 0 0 #0000;\n --tw-inset-ring-color: initial;\n --tw-inset-ring-shadow: 0 0 #0000;\n --tw-ring-inset: initial;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-blur: initial;\n --tw-brightness: initial;\n --tw-contrast: initial;\n --tw-grayscale: initial;\n --tw-hue-rotate: initial;\n --tw-invert: initial;\n --tw-opacity: initial;\n --tw-saturate: initial;\n --tw-sepia: initial;\n --tw-drop-shadow: initial;\n --tw-drop-shadow-color: initial;\n --tw-drop-shadow-alpha: 100%;\n --tw-drop-shadow-size: initial;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-translate-z: 0;\n --tw-border-style: solid;\n --tw-duration: initial;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-scale-z: 1;\n }\n }\n}\n');
|
|
30
30
|
|
|
31
31
|
// src/Player.tsx
|
|
32
|
-
import { forwardRef, useEffect as
|
|
32
|
+
import { forwardRef, useEffect as useEffect5, useRef as useRef8, useImperativeHandle } from "react";
|
|
33
33
|
import shaka2 from "shaka-player/dist/shaka-player.ui";
|
|
34
34
|
|
|
35
35
|
// src/hooks/useShakePlayer.ts
|
|
@@ -120,11 +120,25 @@ var useQualityControl = (playerRef, qualityConfig, onQualityChange) => {
|
|
|
120
120
|
if (!playerRef.current) return;
|
|
121
121
|
if (height === 0) {
|
|
122
122
|
playerRef.current.configure({
|
|
123
|
-
abr: {
|
|
123
|
+
abr: {
|
|
124
|
+
enabled: true,
|
|
125
|
+
switchInterval: 2,
|
|
126
|
+
// quicker re-checks
|
|
127
|
+
clearBufferSwitch: true,
|
|
128
|
+
safeMarginSwitch: 10
|
|
129
|
+
// leave ~10 s in front of the playhead }
|
|
130
|
+
}
|
|
124
131
|
});
|
|
125
132
|
} else {
|
|
126
133
|
playerRef.current.configure({
|
|
127
|
-
abr: {
|
|
134
|
+
abr: {
|
|
135
|
+
enabled: false,
|
|
136
|
+
switchInterval: 2,
|
|
137
|
+
// quicker re-checks
|
|
138
|
+
clearBufferSwitch: true,
|
|
139
|
+
safeMarginSwitch: 10
|
|
140
|
+
// leave ~10 s in front of the playhead }
|
|
141
|
+
}
|
|
128
142
|
});
|
|
129
143
|
const tracks = playerRef.current.getVariantTracks();
|
|
130
144
|
const targetTrack = tracks.find((track) => track.height === height);
|
|
@@ -551,6 +565,7 @@ var MobileControlsContainerFactory = class {
|
|
|
551
565
|
};
|
|
552
566
|
var useShakaUI = (playerRef, containerRef, videoRef, controls, chromecastConfig, seekbarColors, onSkipBack, onSkipForward) => {
|
|
553
567
|
const uiRef = useRef4(null);
|
|
568
|
+
const mobileOverlayRef = useRef4(null);
|
|
554
569
|
const registeredElements = useRef4(/* @__PURE__ */ new Set());
|
|
555
570
|
const initializeUI = useCallback5(async () => {
|
|
556
571
|
if (!controls || !containerRef.current || !playerRef.current || !videoRef.current) {
|
|
@@ -622,7 +637,14 @@ var useShakaUI = (playerRef, containerRef, videoRef, controls, chromecastConfig,
|
|
|
622
637
|
const container = containerRef.current;
|
|
623
638
|
const video = videoRef.current;
|
|
624
639
|
if (container && video) {
|
|
625
|
-
|
|
640
|
+
if (!mobileOverlayRef.current) {
|
|
641
|
+
mobileOverlayRef.current = new MobileControlsContainer(
|
|
642
|
+
container,
|
|
643
|
+
{ getVideo: () => video },
|
|
644
|
+
onSkipBack,
|
|
645
|
+
onSkipForward
|
|
646
|
+
);
|
|
647
|
+
}
|
|
626
648
|
}
|
|
627
649
|
}, 500);
|
|
628
650
|
}
|
|
@@ -637,6 +659,14 @@ var useShakaUI = (playerRef, containerRef, videoRef, controls, chromecastConfig,
|
|
|
637
659
|
}
|
|
638
660
|
uiRef.current = null;
|
|
639
661
|
}
|
|
662
|
+
if (mobileOverlayRef.current) {
|
|
663
|
+
try {
|
|
664
|
+
mobileOverlayRef.current.release();
|
|
665
|
+
} catch (error) {
|
|
666
|
+
console.warn("Error releasing mobile controls overlay:", error);
|
|
667
|
+
}
|
|
668
|
+
mobileOverlayRef.current = null;
|
|
669
|
+
}
|
|
640
670
|
}, []);
|
|
641
671
|
return {
|
|
642
672
|
uiRef,
|
|
@@ -821,12 +851,10 @@ var useLiveIndicator = (containerRef, options = {}) => {
|
|
|
821
851
|
characterData: true,
|
|
822
852
|
characterDataOldValue: true
|
|
823
853
|
});
|
|
824
|
-
const intervalId = setInterval(checkForLiveContent, 1e3);
|
|
825
854
|
return () => {
|
|
826
855
|
if (observerRef.current) {
|
|
827
856
|
observerRef.current.disconnect();
|
|
828
857
|
}
|
|
829
|
-
clearInterval(intervalId);
|
|
830
858
|
};
|
|
831
859
|
}, [containerRef, enabled, indicatorColor, indicatorSize, showPulseAnimation]);
|
|
832
860
|
return {
|
|
@@ -842,6 +870,51 @@ var useLiveIndicator = (containerRef, options = {}) => {
|
|
|
842
870
|
};
|
|
843
871
|
};
|
|
844
872
|
|
|
873
|
+
// src/hooks/useKeyboardControls.ts
|
|
874
|
+
import { useCallback as useCallback7, useEffect as useEffect4 } from "react";
|
|
875
|
+
var useKeyboardControls = (videoRef, options = {}) => {
|
|
876
|
+
const { skipBack, skipForward, enabled = true } = options;
|
|
877
|
+
const isDesktop = useCallback7(() => {
|
|
878
|
+
return window.innerWidth > 767 && !/Android|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);
|
|
879
|
+
}, []);
|
|
880
|
+
const handleKeydown = useCallback7((event) => {
|
|
881
|
+
if (!enabled || !isDesktop() || !videoRef.current) return;
|
|
882
|
+
const activeElement = document.activeElement;
|
|
883
|
+
if (activeElement && (activeElement.tagName === "INPUT" || activeElement.tagName === "TEXTAREA" || activeElement.isContentEditable)) {
|
|
884
|
+
return;
|
|
885
|
+
}
|
|
886
|
+
switch (event.key) {
|
|
887
|
+
case "ArrowLeft":
|
|
888
|
+
event.preventDefault();
|
|
889
|
+
skipBack?.();
|
|
890
|
+
break;
|
|
891
|
+
case "ArrowRight":
|
|
892
|
+
event.preventDefault();
|
|
893
|
+
skipForward?.();
|
|
894
|
+
break;
|
|
895
|
+
case " ":
|
|
896
|
+
case "Space":
|
|
897
|
+
event.preventDefault();
|
|
898
|
+
if (videoRef.current.paused) {
|
|
899
|
+
videoRef.current.play();
|
|
900
|
+
} else {
|
|
901
|
+
videoRef.current.pause();
|
|
902
|
+
}
|
|
903
|
+
break;
|
|
904
|
+
}
|
|
905
|
+
}, [enabled, videoRef, skipBack, skipForward, isDesktop]);
|
|
906
|
+
useEffect4(() => {
|
|
907
|
+
if (!enabled || !isDesktop()) return;
|
|
908
|
+
document.addEventListener("keydown", handleKeydown);
|
|
909
|
+
return () => {
|
|
910
|
+
document.removeEventListener("keydown", handleKeydown);
|
|
911
|
+
};
|
|
912
|
+
}, [handleKeydown, enabled, isDesktop]);
|
|
913
|
+
return {
|
|
914
|
+
isDesktop: isDesktop()
|
|
915
|
+
};
|
|
916
|
+
};
|
|
917
|
+
|
|
845
918
|
// src/components/Loading.tsx
|
|
846
919
|
import { twMerge } from "tailwind-merge";
|
|
847
920
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
@@ -978,7 +1051,7 @@ var Player = forwardRef(
|
|
|
978
1051
|
seekbarConfig,
|
|
979
1052
|
events,
|
|
980
1053
|
containerClassName,
|
|
981
|
-
...
|
|
1054
|
+
...videoProps
|
|
982
1055
|
}, ref) => {
|
|
983
1056
|
const videoRef = useRef8(null);
|
|
984
1057
|
const containerRef = useRef8(null);
|
|
@@ -1003,6 +1076,11 @@ var Player = forwardRef(
|
|
|
1003
1076
|
skipDuration,
|
|
1004
1077
|
shouldShowSkipControls
|
|
1005
1078
|
} = useSkipControls(videoRef, events?.onSkipBack, events?.onSkipForward);
|
|
1079
|
+
useKeyboardControls(videoRef, {
|
|
1080
|
+
skipBack,
|
|
1081
|
+
skipForward,
|
|
1082
|
+
enabled: true
|
|
1083
|
+
});
|
|
1006
1084
|
const {
|
|
1007
1085
|
initializeMux,
|
|
1008
1086
|
updateMuxData,
|
|
@@ -1078,7 +1156,7 @@ var Player = forwardRef(
|
|
|
1078
1156
|
console.warn("Chromecast initialization failed:", error);
|
|
1079
1157
|
}
|
|
1080
1158
|
};
|
|
1081
|
-
|
|
1159
|
+
useEffect5(() => {
|
|
1082
1160
|
const video = videoRef.current;
|
|
1083
1161
|
if (!video) return;
|
|
1084
1162
|
const initialize = async () => {
|
|
@@ -1104,7 +1182,7 @@ var Player = forwardRef(
|
|
|
1104
1182
|
destroyPlayer();
|
|
1105
1183
|
};
|
|
1106
1184
|
}, [src]);
|
|
1107
|
-
|
|
1185
|
+
useEffect5(() => {
|
|
1108
1186
|
const video = videoRef.current;
|
|
1109
1187
|
if (!video) return;
|
|
1110
1188
|
video.autoplay = autoPlay;
|
|
@@ -1113,6 +1191,13 @@ var Player = forwardRef(
|
|
|
1113
1191
|
video.controls = false;
|
|
1114
1192
|
if (poster) video.poster = poster;
|
|
1115
1193
|
}, [autoPlay, loop, muted, poster]);
|
|
1194
|
+
useEffect5(() => {
|
|
1195
|
+
const video = videoRef.current;
|
|
1196
|
+
if (!video) return;
|
|
1197
|
+
video.controls = false;
|
|
1198
|
+
video.setAttribute("controls", "false");
|
|
1199
|
+
video.removeAttribute("controls");
|
|
1200
|
+
}, []);
|
|
1116
1201
|
useImperativeHandle(ref, () => ({
|
|
1117
1202
|
...videoRef.current,
|
|
1118
1203
|
// Custom methods for quality control
|
|
@@ -1134,6 +1219,8 @@ var Player = forwardRef(
|
|
|
1134
1219
|
} : { width, height };
|
|
1135
1220
|
const videoClasses = isResponsive ? "motto-video-responsive" : "w-full h-full ";
|
|
1136
1221
|
const videoStyle = isResponsive ? {} : { width, height };
|
|
1222
|
+
const filteredVideoProps = { ...videoProps };
|
|
1223
|
+
delete filteredVideoProps.controls;
|
|
1137
1224
|
return /* @__PURE__ */ jsxs4(
|
|
1138
1225
|
"div",
|
|
1139
1226
|
{
|
|
@@ -1152,7 +1239,7 @@ var Player = forwardRef(
|
|
|
1152
1239
|
height: isResponsive ? void 0 : height,
|
|
1153
1240
|
style: videoStyle,
|
|
1154
1241
|
controls: false,
|
|
1155
|
-
...
|
|
1242
|
+
...filteredVideoProps
|
|
1156
1243
|
}
|
|
1157
1244
|
),
|
|
1158
1245
|
/* @__PURE__ */ jsx5(LiveBadge, { isVisible: isLiveBadgeVisible }),
|
|
@@ -1171,7 +1258,7 @@ var Player = forwardRef(
|
|
|
1171
1258
|
Player.displayName = "Player";
|
|
1172
1259
|
|
|
1173
1260
|
// src/Video.tsx
|
|
1174
|
-
import { useEffect as
|
|
1261
|
+
import { useEffect as useEffect7 } from "react";
|
|
1175
1262
|
import { twMerge as twMerge3 } from "tailwind-merge";
|
|
1176
1263
|
import { useQuery } from "@tanstack/react-query";
|
|
1177
1264
|
|
|
@@ -1312,7 +1399,7 @@ var getErrorType = (error, video) => {
|
|
|
1312
1399
|
};
|
|
1313
1400
|
|
|
1314
1401
|
// src/messages/useMessages.tsx
|
|
1315
|
-
import { useState as useState3, useEffect as
|
|
1402
|
+
import { useState as useState3, useEffect as useEffect6 } from "react";
|
|
1316
1403
|
|
|
1317
1404
|
// src/messages/en.json
|
|
1318
1405
|
var en_default = {
|
|
@@ -1616,7 +1703,7 @@ var getBrowserLanguage = () => {
|
|
|
1616
1703
|
var useMessages = (locale) => {
|
|
1617
1704
|
const [language, setLanguage] = useState3("en");
|
|
1618
1705
|
const [translations, setTranslations] = useState3(availableLanguages.en);
|
|
1619
|
-
|
|
1706
|
+
useEffect6(() => {
|
|
1620
1707
|
const lang = !!availableLanguages?.[locale] ? locale : getBrowserLanguage();
|
|
1621
1708
|
;
|
|
1622
1709
|
setLanguage(lang);
|
|
@@ -1678,7 +1765,7 @@ var Video = ({
|
|
|
1678
1765
|
const { t } = useMessages_default(locale);
|
|
1679
1766
|
const activePlaylist = findHLSPlaylist(video);
|
|
1680
1767
|
const hlsUrl = activePlaylist?.url;
|
|
1681
|
-
|
|
1768
|
+
useEffect7(() => {
|
|
1682
1769
|
if (events?.onVideoData && video) {
|
|
1683
1770
|
events.onVideoData(video);
|
|
1684
1771
|
}
|
|
@@ -1729,7 +1816,7 @@ var Video = ({
|
|
|
1729
1816
|
};
|
|
1730
1817
|
|
|
1731
1818
|
// src/Event.tsx
|
|
1732
|
-
import { useCallback as
|
|
1819
|
+
import { useCallback as useCallback8, useEffect as useEffect8, useState as useState4 } from "react";
|
|
1733
1820
|
import { twMerge as twMerge4 } from "tailwind-merge";
|
|
1734
1821
|
import { useQuery as useQuery2 } from "@tanstack/react-query";
|
|
1735
1822
|
import { Fragment, jsx as jsx7, jsxs as jsxs6 } from "react/jsx-runtime";
|
|
@@ -1780,7 +1867,7 @@ var Event = ({
|
|
|
1780
1867
|
retryDelay: queryOptions.retryDelay ?? ((attemptIndex) => Math.min(1e3 * 2 ** attemptIndex, 3e4))
|
|
1781
1868
|
});
|
|
1782
1869
|
const [loadingApisState, setLoadingApisState] = useState4(true);
|
|
1783
|
-
|
|
1870
|
+
useEffect8(() => {
|
|
1784
1871
|
if (videosData !== void 0) {
|
|
1785
1872
|
setLoadingApisState(false);
|
|
1786
1873
|
const videosWithPlaylists = videosData.filter(
|
|
@@ -1812,12 +1899,12 @@ var Event = ({
|
|
|
1812
1899
|
}
|
|
1813
1900
|
}, [videosData, eventData]);
|
|
1814
1901
|
const { t } = useMessages_default(locale);
|
|
1815
|
-
|
|
1902
|
+
useEffect8(() => {
|
|
1816
1903
|
if (events?.onEventData && eventData) {
|
|
1817
1904
|
events.onEventData(eventData);
|
|
1818
1905
|
}
|
|
1819
1906
|
}, [eventData, events]);
|
|
1820
|
-
|
|
1907
|
+
useEffect8(() => {
|
|
1821
1908
|
if (events?.onVideoData && activeVideoId && videosData) {
|
|
1822
1909
|
const activeVideo = videosData.find((video) => video.id === activeVideoId);
|
|
1823
1910
|
if (activeVideo) {
|
|
@@ -1828,7 +1915,7 @@ var Event = ({
|
|
|
1828
1915
|
const [error, setError] = useState4(null);
|
|
1829
1916
|
const [loadingPlaylist, setLoadingPlaylist] = useState4(true);
|
|
1830
1917
|
const videosDataError = videosData?.some((video) => !!video.error);
|
|
1831
|
-
|
|
1918
|
+
useEffect8(() => {
|
|
1832
1919
|
if (eventError || videosError || videosDataError) {
|
|
1833
1920
|
const errorObj = eventError || videosError || videosData?.find((video) => !!video.error)?.error && new Error(videosData?.find((video) => !!video.error)?.error) || new Error("default");
|
|
1834
1921
|
setError(errorObj);
|
|
@@ -1839,7 +1926,7 @@ var Event = ({
|
|
|
1839
1926
|
setError(null);
|
|
1840
1927
|
}
|
|
1841
1928
|
}, [eventError, videosError, videosDataError, videosData, events]);
|
|
1842
|
-
|
|
1929
|
+
useEffect8(() => {
|
|
1843
1930
|
const eventLoadedWithNoVideos = !isEventLoading && eventData && eventData.videoIds && (!eventData.videoIds || eventData?.videoIds?.length === 0) && !loadingApisState;
|
|
1844
1931
|
const allApisLoadedWithPotentialVideos = !isEventLoading && !videosIsLoading && eventData && !loadingApisState;
|
|
1845
1932
|
if (eventLoadedWithNoVideos || allApisLoadedWithPotentialVideos) {
|
|
@@ -1915,7 +2002,7 @@ function PreEvent({
|
|
|
1915
2002
|
);
|
|
1916
2003
|
const shouldBeStarted = remainingTime < 0;
|
|
1917
2004
|
const { t } = useMessages_default(locale);
|
|
1918
|
-
|
|
2005
|
+
useEffect8(() => {
|
|
1919
2006
|
const interval = setInterval(() => {
|
|
1920
2007
|
if (remainingTime < 0) {
|
|
1921
2008
|
clearInterval(interval);
|
|
@@ -1925,7 +2012,7 @@ function PreEvent({
|
|
|
1925
2012
|
}, 1e3);
|
|
1926
2013
|
return () => clearInterval(interval);
|
|
1927
2014
|
}, [date, remainingTime]);
|
|
1928
|
-
const renderCountdown =
|
|
2015
|
+
const renderCountdown = useCallback8(() => {
|
|
1929
2016
|
if (shouldBeStarted) {
|
|
1930
2017
|
return /* @__PURE__ */ jsx7("span", { className: "text-base-content text-xl", children: t("EVENT_NOT_STARTED") });
|
|
1931
2018
|
}
|
|
@@ -2055,7 +2142,7 @@ var TitleAndDescription = ({
|
|
|
2055
2142
|
};
|
|
2056
2143
|
|
|
2057
2144
|
// src/CreativeWork.tsx
|
|
2058
|
-
import { useEffect as
|
|
2145
|
+
import { useEffect as useEffect9, useState as useState5 } from "react";
|
|
2059
2146
|
import { twMerge as twMerge5 } from "tailwind-merge";
|
|
2060
2147
|
import { useQuery as useQuery3 } from "@tanstack/react-query";
|
|
2061
2148
|
import { Fragment as Fragment2, jsx as jsx8, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
@@ -2107,7 +2194,7 @@ var CreativeWork = ({
|
|
|
2107
2194
|
retryDelay: queryOptions.retryDelay ?? ((attemptIndex) => Math.min(1e3 * 2 ** attemptIndex, 3e4))
|
|
2108
2195
|
});
|
|
2109
2196
|
const [loadingApisState, setLoadingApisState] = useState5(true);
|
|
2110
|
-
|
|
2197
|
+
useEffect9(() => {
|
|
2111
2198
|
if (videosData !== void 0) {
|
|
2112
2199
|
setLoadingApisState(false);
|
|
2113
2200
|
const videosWithPlaylists = videosData.filter(
|
|
@@ -2139,7 +2226,7 @@ var CreativeWork = ({
|
|
|
2139
2226
|
}
|
|
2140
2227
|
}, [videosData, creativeWorkData]);
|
|
2141
2228
|
const { t } = useMessages_default(locale);
|
|
2142
|
-
|
|
2229
|
+
useEffect9(() => {
|
|
2143
2230
|
if (events?.onCreativeWorkData && creativeWorkData) {
|
|
2144
2231
|
events.onCreativeWorkData(creativeWorkData);
|
|
2145
2232
|
}
|
|
@@ -2147,7 +2234,7 @@ var CreativeWork = ({
|
|
|
2147
2234
|
setShowCountDown(true);
|
|
2148
2235
|
}
|
|
2149
2236
|
}, [creativeWorkData, events]);
|
|
2150
|
-
|
|
2237
|
+
useEffect9(() => {
|
|
2151
2238
|
if (events?.onVideoData && activeVideoId && videosData) {
|
|
2152
2239
|
const activeVideo = videosData.find((video) => video.id === activeVideoId);
|
|
2153
2240
|
if (activeVideo) {
|
|
@@ -2157,7 +2244,7 @@ var CreativeWork = ({
|
|
|
2157
2244
|
}, [activeVideoId, videosData, events]);
|
|
2158
2245
|
const [error, setError] = useState5(null);
|
|
2159
2246
|
const videosDataError = videosData?.some((video) => !!video.error);
|
|
2160
|
-
|
|
2247
|
+
useEffect9(() => {
|
|
2161
2248
|
if (creativeWorkError || videosError || videosDataError) {
|
|
2162
2249
|
const errorObj = creativeWorkError || videosError || videosData?.find((video) => !!video.error)?.error && new Error(videosData?.find((video) => !!video.error)?.error) || new Error("default");
|
|
2163
2250
|
setError(errorObj);
|
|
@@ -2180,7 +2267,7 @@ var CreativeWork = ({
|
|
|
2180
2267
|
) }) });
|
|
2181
2268
|
}
|
|
2182
2269
|
const [loadingPlaylist, setLoadingPlaylist] = useState5(true);
|
|
2183
|
-
|
|
2270
|
+
useEffect9(() => {
|
|
2184
2271
|
const creativeWorkLoadedWithNoVideos = !isCreativeWorkLoading && creativeWorkData && creativeWorkData.videoIds && creativeWorkData.videoIds.length === 0;
|
|
2185
2272
|
const creativeWorkLoadedWithNoData = !isCreativeWorkLoading && creativeWorkData && !creativeWorkData.videoIds;
|
|
2186
2273
|
const isEventsFinished = !videosIsLoading && videosData && videosData.length > 0 && videosData.every((video) => video.playlists && video.playlists.length === 0);
|
|
@@ -2261,7 +2348,7 @@ function PreCreativeWork({
|
|
|
2261
2348
|
);
|
|
2262
2349
|
const shouldBeStarted = remainingTime < 0;
|
|
2263
2350
|
const { t } = useMessages_default(locale);
|
|
2264
|
-
|
|
2351
|
+
useEffect9(() => {
|
|
2265
2352
|
const interval = setInterval(() => {
|
|
2266
2353
|
if (remainingTime < 0) {
|
|
2267
2354
|
clearInterval(interval);
|