@mux/mux-player-react 1.5.1 → 1.6.0

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.
@@ -1,2 +1,2 @@
1
- import y,{useEffect as ae}from"react";import{MediaError as ge}from"@mux/mux-player";var c={className:"class",classname:"class",htmlFor:"for",crossOrigin:"crossorigin",viewBox:"viewBox",playsInline:"playsinline",autoPlay:"autoplay",playbackRate:"playbackrate"},F=e=>e==null,W=(e,t)=>F(t)?!1:e in t,Z=e=>e.replace(/[A-Z]/g,t=>`-${t.toLowerCase()}`),_=(e,t)=>{if(!(typeof t=="boolean"&&!t)){if(W(e,c))return c[e];if(typeof t!=null)return/[A-Z]/.test(e)?Z(e):e}};var q=(e,t)=>typeof e=="boolean"?"":e,m=(e={})=>Object.entries(e).reduce((t,[n,o])=>{let r=_(n,o);if(!r)return t;let i=q(o,n);return t[r]=i,t},{});import{useRef as re}from"react";import{useEffect as J,useRef as Y}from"react";var E=(...e)=>{let t=Y(null);return J(()=>{e.forEach(n=>{!n||(typeof n=="function"?n(t.current):n.current=t.current)})},[e]),t};import{useEffect as $}from"react";var Q=Object.prototype.hasOwnProperty,X=(e,t)=>{if(Object.is(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;if(Array.isArray(e))return!Array.isArray(t)||e.length!==t.length?!1:e.some((r,i)=>t[i]===r);let n=Object.keys(e),o=Object.keys(t);if(n.length!==o.length)return!1;for(let r=0;r<n.length;r++)if(!Q.call(t,n[r])||!Object.is(e[n[r]],t[n[r]]))return!1;return!0},d=(e,t,n)=>!X(t,e[n]),B=(e,t,n)=>{e[n]=t},ee=(e,t,n,o=B,r=d)=>$(()=>{let i=n==null?void 0:n.current;!i||!r(i,t,e)||o(i,t,e)},[n==null?void 0:n.current,t]),s=ee;var te=()=>{try{return"1.5.1"}catch{}return"UNKNOWN"},ne=te(),f=()=>ne;var oe=y.forwardRef(({children:e,...t},n)=>y.createElement("mux-player",m({...t,ref:n}),e)),a=(e,t,n)=>ae(()=>{let o=t==null?void 0:t.current;if(!(!o||!n))return o.addEventListener(e,n),()=>{o.removeEventListener(e,n)}},[t==null?void 0:t.current,n]),ie=(e,t)=>{let{onAbort:n,onCanPlay:o,onCanPlayThrough:r,onEmptied:i,onLoadStart:M,onLoadedData:g,onLoadedMetadata:P,onProgress:v,onDurationChange:b,onVolumeChange:x,onRateChange:T,onResize:R,onWaiting:k,onPlay:h,onPlaying:L,onTimeUpdate:C,onPause:O,onSeeking:S,onSeeked:w,onStalled:G,onSuspend:V,onEnded:A,onError:N,metadata:I,tokens:K,paused:D,playbackId:U,playbackRates:H,currentTime:p,...j}=t;return s("playbackRates",H,e),s("metadata",I,e),s("tokens",K,e),s("playbackId",U,e),s("paused",D,e,(l,u)=>{u!=null&&(u?l.pause():l.play())},(l,u,z)=>l.hasAttribute("autoplay")&&!l.hasPlayed?!1:d(l,u,z)),s("currentTime",p!=null?p:0,e),a("abort",e,n),a("canplay",e,o),a("canplaythrough",e,r),a("emptied",e,i),a("loadstart",e,M),a("loadeddata",e,g),a("loadedmetadata",e,P),a("progress",e,v),a("durationchange",e,b),a("volumechange",e,x),a("ratechange",e,T),a("resize",e,R),a("waiting",e,k),a("play",e,h),a("playing",e,L),a("timeupdate",e,C),a("pause",e,O),a("seeking",e,S),a("seeked",e,w),a("stalled",e,G),a("suspend",e,V),a("ended",e,A),a("error",e,N),[j]},se=f(),le="mux-player-react",ue=y.forwardRef((e,t)=>{let n=re(null),o=E(n,t),[r]=ie(n,e);return y.createElement(oe,{ref:o,playerSoftwareName:le,playerSoftwareVersion:se,...r})}),Re=ue;export{ge as MediaError,Re as default};
2
- //# sourceMappingURL=-DF7QULBM.mjs.map
1
+ import y,{useEffect as ae}from"react";import{MediaError as ge}from"@mux/mux-player";var c={className:"class",classname:"class",htmlFor:"for",crossOrigin:"crossorigin",viewBox:"viewBox",playsInline:"playsinline",autoPlay:"autoplay",playbackRate:"playbackrate"},F=e=>e==null,W=(e,t)=>F(t)?!1:e in t,Z=e=>e.replace(/[A-Z]/g,t=>`-${t.toLowerCase()}`),_=(e,t)=>{if(!(typeof t=="boolean"&&!t)){if(W(e,c))return c[e];if(typeof t!=null)return/[A-Z]/.test(e)?Z(e):e}};var q=(e,t)=>typeof e=="boolean"?"":e,m=(e={})=>Object.entries(e).reduce((t,[n,o])=>{let r=_(n,o);if(!r)return t;let i=q(o,n);return t[r]=i,t},{});import{useRef as re}from"react";import{useEffect as J,useRef as Y}from"react";var E=(...e)=>{let t=Y(null);return J(()=>{e.forEach(n=>{!n||(typeof n=="function"?n(t.current):n.current=t.current)})},[e]),t};import{useEffect as $}from"react";var Q=Object.prototype.hasOwnProperty,X=(e,t)=>{if(Object.is(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;if(Array.isArray(e))return!Array.isArray(t)||e.length!==t.length?!1:e.some((r,i)=>t[i]===r);let n=Object.keys(e),o=Object.keys(t);if(n.length!==o.length)return!1;for(let r=0;r<n.length;r++)if(!Q.call(t,n[r])||!Object.is(e[n[r]],t[n[r]]))return!1;return!0},p=(e,t,n)=>!X(t,e[n]),B=(e,t,n)=>{e[n]=t},ee=(e,t,n,o=B,r=p)=>$(()=>{let i=n==null?void 0:n.current;!i||!r(i,t,e)||o(i,t,e)},[n==null?void 0:n.current,t]),s=ee;var te=()=>{try{return"1.6.0"}catch{}return"UNKNOWN"},ne=te(),f=()=>ne;var oe=y.forwardRef(({children:e,...t},n)=>y.createElement("mux-player",m({...t,ref:n}),e)),a=(e,t,n)=>ae(()=>{let o=t==null?void 0:t.current;if(!(!o||!n))return o.addEventListener(e,n),()=>{o.removeEventListener(e,n)}},[t==null?void 0:t.current,n]),ie=(e,t)=>{let{onAbort:n,onCanPlay:o,onCanPlayThrough:r,onEmptied:i,onLoadStart:M,onLoadedData:g,onLoadedMetadata:P,onProgress:b,onDurationChange:v,onVolumeChange:x,onRateChange:T,onResize:R,onWaiting:h,onPlay:k,onPlaying:L,onTimeUpdate:C,onPause:O,onSeeking:S,onSeeked:w,onStalled:G,onSuspend:V,onEnded:A,onError:N,metadata:I,tokens:K,paused:D,playbackId:U,playbackRates:H,currentTime:d,...j}=t;return s("playbackRates",H,e),s("metadata",I,e),s("tokens",K,e),s("playbackId",U,e),s("paused",D,e,(l,u)=>{u!=null&&(u?l.pause():l.play())},(l,u,z)=>l.hasAttribute("autoplay")&&!l.hasPlayed?!1:p(l,u,z)),s("currentTime",d!=null?d:0,e),a("abort",e,n),a("canplay",e,o),a("canplaythrough",e,r),a("emptied",e,i),a("loadstart",e,M),a("loadeddata",e,g),a("loadedmetadata",e,P),a("progress",e,b),a("durationchange",e,v),a("volumechange",e,x),a("ratechange",e,T),a("resize",e,R),a("waiting",e,h),a("play",e,k),a("playing",e,L),a("timeupdate",e,C),a("pause",e,O),a("seeking",e,S),a("seeked",e,w),a("stalled",e,G),a("suspend",e,V),a("ended",e,A),a("error",e,N),[j]},se=f(),le="mux-player-react",ue=y.forwardRef((e,t)=>{let n=re(null),o=E(n,t),[r]=ie(n,e);return y.createElement(oe,{ref:o,playerSoftwareName:le,playerSoftwareVersion:se,...r})}),Re=ue;export{ge as MediaError,Re as default};
2
+ //# sourceMappingURL=-DSLFYLAF.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/index.tsx", "../src/common/utils.ts", "../src/useCombinedRefs.ts", "../src/useObjectPropEffect.ts", "../src/env.ts"],
4
+ "sourcesContent": ["import React, { useEffect } from 'react';\nimport type { CSSProperties } from 'react';\nimport type { StreamTypes, PlaybackTypes, CmcdTypes } from '@mux/playback-core';\nimport { MediaError } from '@mux/mux-player';\nimport type MuxPlayerElement from '@mux/mux-player';\nimport type { Tokens } from '@mux/mux-player';\nimport { toNativeProps } from './common/utils';\nimport { useRef } from 'react';\nimport { useCombinedRefs } from './useCombinedRefs';\nimport useObjectPropEffect, { defaultHasChanged } from './useObjectPropEffect';\nimport { getPlayerVersion } from './env';\n\nexport { MediaError };\n\ntype ValueOf<T> = T[keyof T];\ninterface GenericEventListener<T extends Event = CustomEvent> {\n (evt: T): void;\n}\n\nexport type MuxPlayerRefAttributes = MuxPlayerElement;\ntype VideoApiAttributes = {\n currentTime: number;\n volume: number;\n paused: boolean;\n src: string | null;\n poster: string;\n playbackRate: number;\n playsInline: boolean;\n preload: string;\n crossOrigin: string;\n autoPlay: boolean | string;\n loop: boolean;\n muted: boolean;\n style: CSSProperties;\n};\n\ntype MuxMediaPropTypes = {\n audio: boolean;\n // envKey: Options[\"data\"][\"env_key\"];\n envKey: string;\n // debug: Options[\"debug\"] & Hls[\"config\"][\"debug\"];\n debug: boolean;\n disableCookies: boolean;\n // metadata: Partial<Options[\"data\"]>;\n metadata: { [k: string]: any };\n beaconCollectionDomain: string;\n customDomain: string;\n playbackId: string;\n preferPlayback: ValueOf<PlaybackTypes> | undefined;\n streamType: ValueOf<StreamTypes> | 'vod';\n startTime: number;\n storyboardSrc: string;\n preferCmcd: ValueOf<CmcdTypes> | undefined;\n children: never[];\n};\n\ninterface MuxPlayerElementEventMap extends HTMLVideoElementEventMap {}\n\nexport type MuxPlayerProps = {\n className?: string;\n hotkeys?: string;\n nohotkeys?: boolean;\n defaultHiddenCaptions?: boolean;\n playerSoftwareVersion?: string;\n playerSoftwareName?: string;\n forwardSeekOffset?: number;\n backwardSeekOffset?: number;\n metadataVideoId?: string;\n metadataVideoTitle?: string;\n metadataViewerUserId?: string;\n primaryColor?: string;\n secondaryColor?: string;\n placeholder?: string;\n playbackRates?: number[];\n defaultShowRemainingTime?: boolean;\n thumbnailTime?: number;\n title?: string;\n tokens?: Tokens;\n onAbort?: GenericEventListener<MuxPlayerElementEventMap['abort']>;\n onCanPlay?: GenericEventListener<MuxPlayerElementEventMap['canplay']>;\n onCanPlayThrough?: GenericEventListener<MuxPlayerElementEventMap['canplaythrough']>;\n onEmptied?: GenericEventListener<MuxPlayerElementEventMap['emptied']>;\n onLoadStart?: GenericEventListener<MuxPlayerElementEventMap['loadstart']>;\n onLoadedData?: GenericEventListener<MuxPlayerElementEventMap['loadeddata']>;\n onLoadedMetadata?: GenericEventListener<MuxPlayerElementEventMap['loadedmetadata']>;\n onProgress?: GenericEventListener<MuxPlayerElementEventMap['progress']>;\n onDurationChange?: GenericEventListener<MuxPlayerElementEventMap['durationchange']>;\n onVolumeChange?: GenericEventListener<MuxPlayerElementEventMap['volumechange']>;\n onRateChange?: GenericEventListener<MuxPlayerElementEventMap['ratechange']>;\n onResize?: GenericEventListener<MuxPlayerElementEventMap['resize']>;\n onWaiting?: GenericEventListener<MuxPlayerElementEventMap['waiting']>;\n onPlay?: GenericEventListener<MuxPlayerElementEventMap['play']>;\n onPlaying?: GenericEventListener<MuxPlayerElementEventMap['playing']>;\n onTimeUpdate?: GenericEventListener<MuxPlayerElementEventMap['timeupdate']>;\n onPause?: GenericEventListener<MuxPlayerElementEventMap['pause']>;\n onSeeking?: GenericEventListener<MuxPlayerElementEventMap['seeking']>;\n onSeeked?: GenericEventListener<MuxPlayerElementEventMap['seeked']>;\n onStalled?: GenericEventListener<MuxPlayerElementEventMap['stalled']>;\n onSuspend?: GenericEventListener<MuxPlayerElementEventMap['suspend']>;\n onEnded?: GenericEventListener<MuxPlayerElementEventMap['ended']>;\n onError?: GenericEventListener<MuxPlayerElementEventMap['error']>;\n // onPlayerReady?: EventListener;\n} & Partial<MuxMediaPropTypes> &\n Partial<VideoApiAttributes>;\n\nconst MuxPlayerInternal = React.forwardRef<MuxPlayerRefAttributes, MuxPlayerProps>(({ children, ...props }, ref) => {\n return React.createElement('mux-player', toNativeProps({ ...props, ref }), children);\n});\n\nconst useEventCallbackEffect = <K extends keyof MuxPlayerElementEventMap>(\n type: K,\n ref: // | ((instance: EventTarget | null) => void)\n React.MutableRefObject<MuxPlayerElement | null> | null | undefined,\n callback: GenericEventListener<MuxPlayerElementEventMap[K]> | undefined\n) => {\n return useEffect(() => {\n const eventTarget = ref?.current;\n if (!eventTarget || !callback) return;\n eventTarget.addEventListener(type, callback);\n return () => {\n eventTarget.removeEventListener(type, callback);\n };\n }, [ref?.current, callback]);\n};\n\nconst usePlayer = (\n ref: // | ((instance: EventTarget | null) => void)\n React.MutableRefObject<MuxPlayerElement | null> | null | undefined,\n props: MuxPlayerProps\n) => {\n const {\n onAbort,\n onCanPlay,\n onCanPlayThrough,\n onEmptied,\n onLoadStart,\n onLoadedData,\n onLoadedMetadata,\n onProgress,\n onDurationChange,\n onVolumeChange,\n onRateChange,\n onResize,\n onWaiting,\n onPlay,\n onPlaying,\n onTimeUpdate,\n onPause,\n onSeeking,\n onSeeked,\n onStalled,\n onSuspend,\n onEnded,\n onError,\n // onPlayerReady,\n metadata,\n tokens,\n paused,\n playbackId,\n playbackRates,\n currentTime,\n ...remainingProps\n } = props;\n useObjectPropEffect('playbackRates', playbackRates, ref);\n useObjectPropEffect('metadata', metadata, ref);\n useObjectPropEffect('tokens', tokens, ref);\n useObjectPropEffect('playbackId', playbackId, ref);\n useObjectPropEffect(\n 'paused',\n paused,\n ref,\n (playerEl: HTMLMediaElement, pausedVal?: boolean) => {\n if (pausedVal == null) return;\n if (pausedVal) {\n playerEl.pause();\n } else {\n playerEl.play();\n }\n },\n (playerEl, value, propName) => {\n if (playerEl.hasAttribute('autoplay') && !playerEl.hasPlayed) {\n return false;\n }\n return defaultHasChanged(playerEl, value, propName);\n }\n );\n // NOTE: Somewhere in the codebase, `currentTime` is getting cast to a number, resulting in `NaN` + an error.\n // This is a bandaid solution for now. (CJP)\n useObjectPropEffect('currentTime', currentTime ?? 0, ref);\n useEventCallbackEffect('abort', ref, onAbort);\n useEventCallbackEffect('canplay', ref, onCanPlay);\n useEventCallbackEffect('canplaythrough', ref, onCanPlayThrough);\n useEventCallbackEffect('emptied', ref, onEmptied);\n useEventCallbackEffect('loadstart', ref, onLoadStart);\n useEventCallbackEffect('loadeddata', ref, onLoadedData);\n useEventCallbackEffect('loadedmetadata', ref, onLoadedMetadata);\n useEventCallbackEffect('progress', ref, onProgress);\n useEventCallbackEffect('durationchange', ref, onDurationChange);\n useEventCallbackEffect('volumechange', ref, onVolumeChange);\n useEventCallbackEffect('ratechange', ref, onRateChange);\n useEventCallbackEffect('resize', ref, onResize);\n useEventCallbackEffect('waiting', ref, onWaiting);\n useEventCallbackEffect('play', ref, onPlay);\n useEventCallbackEffect('playing', ref, onPlaying);\n useEventCallbackEffect('timeupdate', ref, onTimeUpdate);\n useEventCallbackEffect('pause', ref, onPause);\n useEventCallbackEffect('seeking', ref, onSeeking);\n useEventCallbackEffect('seeked', ref, onSeeked);\n useEventCallbackEffect('stalled', ref, onStalled);\n useEventCallbackEffect('suspend', ref, onSuspend);\n useEventCallbackEffect('ended', ref, onEnded);\n useEventCallbackEffect('error', ref, onError);\n // useEventCallbackEffect('playerready', ref, onPlayerReady);\n return [remainingProps];\n};\n\nconst playerSoftwareVersion = getPlayerVersion();\nconst playerSoftwareName = 'mux-player-react';\n\nconst MuxPlayer = React.forwardRef<\n MuxPlayerRefAttributes,\n Omit<MuxPlayerProps, 'playerSoftwareVersion' | 'playerSoftwareName'>\n>((props, ref) => {\n const innerPlayerRef = useRef<MuxPlayerElement>(null);\n const playerRef = useCombinedRefs(innerPlayerRef, ref);\n const [remainingProps] = usePlayer(innerPlayerRef, props);\n\n return (\n <MuxPlayerInternal\n /** @TODO Fix types relationships (CJP) */\n ref={playerRef as typeof innerPlayerRef}\n playerSoftwareName={playerSoftwareName}\n playerSoftwareVersion={playerSoftwareVersion}\n {...remainingProps}\n />\n );\n});\n\nexport default MuxPlayer;\n", "// NOTE: As a forward-looking implementation, we may want to assume\n// prop names -> attribute names is always a simple name.toLowerCase()\n// and provide a mechanism for passing in per-component overrides for\n// e.g. kebab cases, as that's the way React/Preact handles these. (CJP)\nconst ReactPropToAttrNameMap = {\n className: 'class',\n classname: 'class',\n htmlFor: 'for',\n crossOrigin: 'crossorigin',\n viewBox: 'viewBox',\n playsInline: 'playsinline',\n autoPlay: 'autoplay',\n playbackRate: 'playbackrate',\n};\n\ntype KeyTypes = string | number | symbol;\ntype Maybe<T> = T | null | undefined;\n\nexport const isNil = (x: unknown): x is null | undefined => x == undefined;\n\n// Type Guard to determine if a given key is actually a key of some object of type T\nexport const isKeyOf = <T extends {} = any>(k: KeyTypes, o: Maybe<T>): k is keyof T => {\n if (isNil(o)) return false;\n return k in o;\n};\n\nconst toKebabCase = (string: string) => string.replace(/[A-Z]/g, (match) => `-${match.toLowerCase()}`);\n\nexport const toNativeAttrName = (propName: string, propValue: any): string | undefined => {\n if (typeof propValue === 'boolean' && !propValue) return undefined;\n if (isKeyOf(propName, ReactPropToAttrNameMap)) return ReactPropToAttrNameMap[propName];\n if (typeof propValue == undefined) return undefined;\n if (/[A-Z]/.test(propName)) return toKebabCase(propName);\n return propName;\n};\nexport const toStyleAttr = <T>(x: T) => x;\n\nexport const toNativeAttrValue = (propValue: any, propName: string) => {\n if (typeof propValue === 'boolean') return '';\n return propValue;\n};\n\nexport const toNativeProps = (props = {}) => {\n return Object.entries(props).reduce<{ [k: string]: string }>((transformedProps, [propName, propValue]) => {\n const attrName = toNativeAttrName(propName, propValue);\n\n // prop was stripped. Don't add.\n if (!attrName) {\n return transformedProps;\n }\n\n const attrValue = toNativeAttrValue(propValue, propName);\n transformedProps[attrName] = attrValue;\n return transformedProps;\n }, {});\n};\n", "import { useEffect, useRef } from 'react';\nimport type { MutableRefObject, ForwardedRef } from 'react';\n\ntype Maybe<T> = T | null | undefined;\ntype RefCb<T> = (instance: Maybe<T>) => void;\ntype RefObj<T> = MutableRefObject<Maybe<T>>;\ntype RefTypes<T> = RefObj<T> | RefCb<T> | ForwardedRef<T>;\ninterface useCombinedRefs {\n <T>(...refs: Maybe<RefTypes<T>>[]): RefObj<T>;\n}\n\nexport const useCombinedRefs: useCombinedRefs = (...refs) => {\n const targetRef = useRef(null);\n\n useEffect(() => {\n refs.forEach((ref) => {\n if (!ref) return;\n\n if (typeof ref === 'function') {\n ref(targetRef.current);\n } else {\n ref.current = targetRef.current;\n }\n });\n }, [refs]);\n\n return targetRef;\n};\n\n// TS assumed default export was interface def instead of function value (CJP)\nconst defaultUseCombinedRefs = useCombinedRefs;\nexport default defaultUseCombinedRefs;\n", "import { useEffect } from 'react';\n\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\n\n/**\n * Slightly modified version of React's shallowEqual, with optimizations for Arrays\n * so we may treat them specifically as unequal if they are not a) both arrays\n * or b) don't contain the same (shallowly compared) elements.\n */\nconst shallowEqual = (objA: any, objB: any): boolean => {\n if (Object.is(objA, objB)) {\n return true;\n }\n\n if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {\n return false;\n }\n\n if (Array.isArray(objA)) {\n // Early \"cheap\" array compares\n if (!Array.isArray(objB) || objA.length !== objB.length) return false;\n // Shallow compare for arrays\n return objA.some((vVal, i) => objB[i] === vVal);\n }\n\n const keysA = Object.keys(objA);\n const keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n // Test for A's keys different from B.\n for (let i = 0; i < keysA.length; i++) {\n if (!hasOwnProperty.call(objB, keysA[i]) || !Object.is(objA[keysA[i]], objB[keysA[i]])) {\n return false;\n }\n }\n\n return true;\n};\n\nexport const defaultHasChanged = (obj: any, v: any, k: string) => {\n return !shallowEqual(v, obj[k]);\n};\n\nconst defaultUpdateValue = (obj: any, v: any, k: string) => {\n obj[k] = v;\n};\n\nexport const useObjectPropEffect = <T extends { [k: string]: any }, V>(\n propName: string,\n propValue: V | null | undefined,\n ref: React.MutableRefObject<T | null> | null | undefined,\n updateValue = defaultUpdateValue,\n hasChanged = defaultHasChanged\n) => {\n return useEffect(() => {\n const obj = ref?.current;\n if (!obj) return;\n if (!hasChanged(obj, propValue, propName)) return;\n updateValue(obj, propValue, propName);\n }, [ref?.current, propValue]);\n};\n\nexport default useObjectPropEffect;\n", "const getEnvPlayerVersion = () => {\n try {\n // @ts-ignore\n return PLAYER_VERSION as string;\n } catch {}\n return 'UNKNOWN';\n};\n\nconst player_version: string = getEnvPlayerVersion();\n\nexport const getPlayerVersion = () => player_version;\n"],
5
+ "mappings": "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",
6
+ "names": ["React", "useEffect", "MediaError", "ReactPropToAttrNameMap", "isNil", "x", "isKeyOf", "k", "o", "toKebabCase", "string", "match", "toNativeAttrName", "propName", "propValue", "toNativeAttrValue", "propValue", "propName", "toNativeProps", "props", "transformedProps", "attrName", "toNativeAttrName", "attrValue", "useRef", "useEffect", "useRef", "useCombinedRefs", "refs", "targetRef", "ref", "useEffect", "hasOwnProperty", "shallowEqual", "objA", "objB", "vVal", "keysA", "keysB", "i", "defaultHasChanged", "obj", "v", "k", "defaultUpdateValue", "useObjectPropEffect", "propName", "propValue", "ref", "updateValue", "hasChanged", "useObjectPropEffect_default", "getEnvPlayerVersion", "player_version", "getPlayerVersion", "MuxPlayerInternal", "React", "children", "props", "ref", "toNativeProps", "useEventCallbackEffect", "type", "callback", "useEffect", "eventTarget", "usePlayer", "onAbort", "onCanPlay", "onCanPlayThrough", "onEmptied", "onLoadStart", "onLoadedData", "onLoadedMetadata", "onProgress", "onDurationChange", "onVolumeChange", "onRateChange", "onResize", "onWaiting", "onPlay", "onPlaying", "onTimeUpdate", "onPause", "onSeeking", "onSeeked", "onStalled", "onSuspend", "onEnded", "onError", "metadata", "tokens", "paused", "playbackId", "playbackRates", "currentTime", "remainingProps", "useObjectPropEffect_default", "playerEl", "pausedVal", "value", "propName", "defaultHasChanged", "playerSoftwareVersion", "getPlayerVersion", "playerSoftwareName", "MuxPlayer", "innerPlayerRef", "useRef", "playerRef", "useCombinedRefs", "src_default"]
7
+ }
@@ -13,7 +13,7 @@
13
13
  "imports": []
14
14
  },
15
15
  "src/common/utils.ts": {
16
- "bytes": 1996,
16
+ "bytes": 2048,
17
17
  "imports": []
18
18
  },
19
19
  "src/useCombinedRefs.ts": {
@@ -29,7 +29,7 @@
29
29
  "imports": []
30
30
  },
31
31
  "src/index.tsx": {
32
- "bytes": 8540,
32
+ "bytes": 8565,
33
33
  "imports": [
34
34
  {
35
35
  "path": "src/common/utils.ts",
@@ -81,7 +81,7 @@
81
81
  "dist/lazy.mjs": {
82
82
  "imports": [
83
83
  {
84
- "path": "dist/-DF7QULBM.mjs",
84
+ "path": "dist/-DSLFYLAF.mjs",
85
85
  "kind": "dynamic-import"
86
86
  }
87
87
  ],
@@ -105,13 +105,13 @@
105
105
  },
106
106
  "bytes": 2268
107
107
  },
108
- "dist/-DF7QULBM.mjs.map": {
108
+ "dist/-DSLFYLAF.mjs.map": {
109
109
  "imports": [],
110
110
  "exports": [],
111
111
  "inputs": {},
112
- "bytes": 20069
112
+ "bytes": 20149
113
113
  },
114
- "dist/-DF7QULBM.mjs": {
114
+ "dist/-DSLFYLAF.mjs": {
115
115
  "imports": [],
116
116
  "exports": [
117
117
  "MediaError",
package/dist/index.cjs.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";var Y=Object.create;var p=Object.defineProperty;var $=Object.getOwnPropertyDescriptor;var Q=Object.getOwnPropertyNames;var X=Object.getPrototypeOf,B=Object.prototype.hasOwnProperty;var ee=(e,t)=>{for(var n in t)p(e,n,{get:t[n],enumerable:!0})},E=(e,t,n,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of Q(t))!B.call(e,r)&&r!==n&&p(e,r,{get:()=>t[r],enumerable:!(o=$(t,r))||o.enumerable});return e};var te=(e,t,n)=>(n=e!=null?Y(X(e)):{},E(t||!e||!e.__esModule?p(n,"default",{value:e,enumerable:!0}):n,e)),ne=e=>E(p({},"__esModule",{value:!0}),e);var ve={};ee(ve,{MediaError:()=>b.MediaError,default:()=>Pe});module.exports=ne(ve);var l=te(require("react")),b=require("@mux/mux-player");var f={className:"class",classname:"class",htmlFor:"for",crossOrigin:"crossorigin",viewBox:"viewBox",playsInline:"playsinline",autoPlay:"autoplay",playbackRate:"playbackrate"},ae=e=>e==null,re=(e,t)=>ae(t)?!1:e in t,oe=e=>e.replace(/[A-Z]/g,t=>`-${t.toLowerCase()}`),ie=(e,t)=>{if(!(typeof t=="boolean"&&!t)){if(re(e,f))return f[e];if(typeof t!=null)return/[A-Z]/.test(e)?oe(e):e}};var se=(e,t)=>typeof e=="boolean"?"":e,M=(e={})=>Object.entries(e).reduce((t,[n,o])=>{let r=ie(n,o);if(!r)return t;let i=se(o,n);return t[r]=i,t},{});var x=require("react");var d=require("react"),g=(...e)=>{let t=(0,d.useRef)(null);return(0,d.useEffect)(()=>{e.forEach(n=>{!n||(typeof n=="function"?n(t.current):n.current=t.current)})},[e]),t};var P=require("react"),le=Object.prototype.hasOwnProperty,ue=(e,t)=>{if(Object.is(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;if(Array.isArray(e))return!Array.isArray(t)||e.length!==t.length?!1:e.some((r,i)=>t[i]===r);let n=Object.keys(e),o=Object.keys(t);if(n.length!==o.length)return!1;for(let r=0;r<n.length;r++)if(!le.call(t,n[r])||!Object.is(e[n[r]],t[n[r]]))return!1;return!0},m=(e,t,n)=>!ue(t,e[n]),ye=(e,t,n)=>{e[n]=t},pe=(e,t,n,o=ye,r=m)=>(0,P.useEffect)(()=>{let i=n==null?void 0:n.current;!i||!r(i,t,e)||o(i,t,e)},[n==null?void 0:n.current,t]),s=pe;var de=()=>{try{return"1.5.1"}catch{}return"UNKNOWN"},ce=de(),v=()=>ce;var me=l.default.forwardRef(({children:e,...t},n)=>l.default.createElement("mux-player",M({...t,ref:n}),e)),a=(e,t,n)=>(0,l.useEffect)(()=>{let o=t==null?void 0:t.current;if(!(!o||!n))return o.addEventListener(e,n),()=>{o.removeEventListener(e,n)}},[t==null?void 0:t.current,n]),Ee=(e,t)=>{let{onAbort:n,onCanPlay:o,onCanPlayThrough:r,onEmptied:i,onLoadStart:T,onLoadedData:R,onLoadedMetadata:k,onProgress:h,onDurationChange:L,onVolumeChange:C,onRateChange:O,onResize:S,onWaiting:w,onPlay:G,onPlaying:V,onTimeUpdate:A,onPause:N,onSeeking:I,onSeeked:K,onStalled:D,onSuspend:U,onEnded:H,onError:j,metadata:z,tokens:F,paused:W,playbackId:Z,playbackRates:_,currentTime:c,...q}=t;return s("playbackRates",_,e),s("metadata",z,e),s("tokens",F,e),s("playbackId",Z,e),s("paused",W,e,(u,y)=>{y!=null&&(y?u.pause():u.play())},(u,y,J)=>u.hasAttribute("autoplay")&&!u.hasPlayed?!1:m(u,y,J)),s("currentTime",c!=null?c:0,e),a("abort",e,n),a("canplay",e,o),a("canplaythrough",e,r),a("emptied",e,i),a("loadstart",e,T),a("loadeddata",e,R),a("loadedmetadata",e,k),a("progress",e,h),a("durationchange",e,L),a("volumechange",e,C),a("ratechange",e,O),a("resize",e,S),a("waiting",e,w),a("play",e,G),a("playing",e,V),a("timeupdate",e,A),a("pause",e,N),a("seeking",e,I),a("seeked",e,K),a("stalled",e,D),a("suspend",e,U),a("ended",e,H),a("error",e,j),[q]},fe=v(),Me="mux-player-react",ge=l.default.forwardRef((e,t)=>{let n=(0,x.useRef)(null),o=g(n,t),[r]=Ee(n,e);return l.default.createElement(me,{ref:o,playerSoftwareName:Me,playerSoftwareVersion:fe,...r})}),Pe=ge;
1
+ "use strict";var Y=Object.create;var d=Object.defineProperty;var $=Object.getOwnPropertyDescriptor;var Q=Object.getOwnPropertyNames;var X=Object.getPrototypeOf,B=Object.prototype.hasOwnProperty;var ee=(e,t)=>{for(var n in t)d(e,n,{get:t[n],enumerable:!0})},E=(e,t,n,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of Q(t))!B.call(e,r)&&r!==n&&d(e,r,{get:()=>t[r],enumerable:!(o=$(t,r))||o.enumerable});return e};var te=(e,t,n)=>(n=e!=null?Y(X(e)):{},E(t||!e||!e.__esModule?d(n,"default",{value:e,enumerable:!0}):n,e)),ne=e=>E(d({},"__esModule",{value:!0}),e);var be={};ee(be,{MediaError:()=>v.MediaError,default:()=>Pe});module.exports=ne(be);var l=te(require("react")),v=require("@mux/mux-player");var f={className:"class",classname:"class",htmlFor:"for",crossOrigin:"crossorigin",viewBox:"viewBox",playsInline:"playsinline",autoPlay:"autoplay",playbackRate:"playbackrate"},ae=e=>e==null,re=(e,t)=>ae(t)?!1:e in t,oe=e=>e.replace(/[A-Z]/g,t=>`-${t.toLowerCase()}`),ie=(e,t)=>{if(!(typeof t=="boolean"&&!t)){if(re(e,f))return f[e];if(typeof t!=null)return/[A-Z]/.test(e)?oe(e):e}};var se=(e,t)=>typeof e=="boolean"?"":e,M=(e={})=>Object.entries(e).reduce((t,[n,o])=>{let r=ie(n,o);if(!r)return t;let i=se(o,n);return t[r]=i,t},{});var x=require("react");var p=require("react"),g=(...e)=>{let t=(0,p.useRef)(null);return(0,p.useEffect)(()=>{e.forEach(n=>{!n||(typeof n=="function"?n(t.current):n.current=t.current)})},[e]),t};var P=require("react"),le=Object.prototype.hasOwnProperty,ue=(e,t)=>{if(Object.is(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;if(Array.isArray(e))return!Array.isArray(t)||e.length!==t.length?!1:e.some((r,i)=>t[i]===r);let n=Object.keys(e),o=Object.keys(t);if(n.length!==o.length)return!1;for(let r=0;r<n.length;r++)if(!le.call(t,n[r])||!Object.is(e[n[r]],t[n[r]]))return!1;return!0},m=(e,t,n)=>!ue(t,e[n]),ye=(e,t,n)=>{e[n]=t},de=(e,t,n,o=ye,r=m)=>(0,P.useEffect)(()=>{let i=n==null?void 0:n.current;!i||!r(i,t,e)||o(i,t,e)},[n==null?void 0:n.current,t]),s=de;var pe=()=>{try{return"1.6.0"}catch{}return"UNKNOWN"},ce=pe(),b=()=>ce;var me=l.default.forwardRef(({children:e,...t},n)=>l.default.createElement("mux-player",M({...t,ref:n}),e)),a=(e,t,n)=>(0,l.useEffect)(()=>{let o=t==null?void 0:t.current;if(!(!o||!n))return o.addEventListener(e,n),()=>{o.removeEventListener(e,n)}},[t==null?void 0:t.current,n]),Ee=(e,t)=>{let{onAbort:n,onCanPlay:o,onCanPlayThrough:r,onEmptied:i,onLoadStart:T,onLoadedData:R,onLoadedMetadata:h,onProgress:k,onDurationChange:L,onVolumeChange:C,onRateChange:O,onResize:S,onWaiting:w,onPlay:G,onPlaying:V,onTimeUpdate:A,onPause:N,onSeeking:I,onSeeked:K,onStalled:D,onSuspend:U,onEnded:H,onError:j,metadata:z,tokens:F,paused:W,playbackId:Z,playbackRates:_,currentTime:c,...q}=t;return s("playbackRates",_,e),s("metadata",z,e),s("tokens",F,e),s("playbackId",Z,e),s("paused",W,e,(u,y)=>{y!=null&&(y?u.pause():u.play())},(u,y,J)=>u.hasAttribute("autoplay")&&!u.hasPlayed?!1:m(u,y,J)),s("currentTime",c!=null?c:0,e),a("abort",e,n),a("canplay",e,o),a("canplaythrough",e,r),a("emptied",e,i),a("loadstart",e,T),a("loadeddata",e,R),a("loadedmetadata",e,h),a("progress",e,k),a("durationchange",e,L),a("volumechange",e,C),a("ratechange",e,O),a("resize",e,S),a("waiting",e,w),a("play",e,G),a("playing",e,V),a("timeupdate",e,A),a("pause",e,N),a("seeking",e,I),a("seeked",e,K),a("stalled",e,D),a("suspend",e,U),a("ended",e,H),a("error",e,j),[q]},fe=b(),Me="mux-player-react",ge=l.default.forwardRef((e,t)=>{let n=(0,x.useRef)(null),o=g(n,t),[r]=Ee(n,e);return l.default.createElement(me,{ref:o,playerSoftwareName:Me,playerSoftwareVersion:fe,...r})}),Pe=ge;
2
2
  //# sourceMappingURL=index.cjs.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/index.tsx", "../src/common/utils.ts", "../src/useCombinedRefs.ts", "../src/useObjectPropEffect.ts", "../src/env.ts"],
4
- "sourcesContent": ["import React, { useEffect } from 'react';\nimport type { CSSProperties } from 'react';\nimport type { StreamTypes, PlaybackTypes, CmcdTypes } from '@mux/playback-core';\nimport { MediaError } from '@mux/mux-player';\nimport type MuxPlayerElement from '@mux/mux-player';\nimport type { Tokens } from '@mux/mux-player';\nimport { toNativeProps } from './common/utils';\nimport { useRef } from 'react';\nimport { useCombinedRefs } from './useCombinedRefs';\nimport useObjectPropEffect, { defaultHasChanged } from './useObjectPropEffect';\nimport { getPlayerVersion } from './env';\n\nexport { MediaError };\n\ntype ValueOf<T> = T[keyof T];\ninterface GenericEventListener<T extends Event = CustomEvent> {\n (evt: T): void;\n}\n\nexport type MuxPlayerRefAttributes = MuxPlayerElement;\ntype VideoApiAttributes = {\n currentTime: number;\n volume: number;\n paused: boolean;\n src: string | null;\n poster: string;\n playbackRate: number;\n playsInline: boolean;\n preload: string;\n crossOrigin: string;\n autoPlay: boolean | string;\n loop: boolean;\n muted: boolean;\n style: CSSProperties;\n};\n\ntype MuxMediaPropTypes = {\n audio: boolean;\n // envKey: Options[\"data\"][\"env_key\"];\n envKey: string;\n // debug: Options[\"debug\"] & Hls[\"config\"][\"debug\"];\n debug: boolean;\n disableCookies: boolean;\n // metadata: Partial<Options[\"data\"]>;\n metadata: { [k: string]: any };\n beaconCollectionDomain: string;\n customDomain: string;\n playbackId: string;\n preferPlayback: ValueOf<PlaybackTypes> | undefined;\n streamType: ValueOf<StreamTypes> | 'vod';\n startTime: number;\n preferCmcd: ValueOf<CmcdTypes> | undefined;\n children: never[];\n};\n\ninterface MuxPlayerElementEventMap extends HTMLVideoElementEventMap {}\n\nexport type MuxPlayerProps = {\n className?: string;\n hotkeys?: string;\n nohotkeys?: boolean;\n defaultHiddenCaptions?: boolean;\n playerSoftwareVersion?: string;\n playerSoftwareName?: string;\n forwardSeekOffset?: number;\n backwardSeekOffset?: number;\n metadataVideoId?: string;\n metadataVideoTitle?: string;\n metadataViewerUserId?: string;\n primaryColor?: string;\n secondaryColor?: string;\n placeholder?: string;\n playbackRates?: number[];\n defaultShowRemainingTime?: boolean;\n thumbnailTime?: number;\n title?: string;\n tokens?: Tokens;\n onAbort?: GenericEventListener<MuxPlayerElementEventMap['abort']>;\n onCanPlay?: GenericEventListener<MuxPlayerElementEventMap['canplay']>;\n onCanPlayThrough?: GenericEventListener<MuxPlayerElementEventMap['canplaythrough']>;\n onEmptied?: GenericEventListener<MuxPlayerElementEventMap['emptied']>;\n onLoadStart?: GenericEventListener<MuxPlayerElementEventMap['loadstart']>;\n onLoadedData?: GenericEventListener<MuxPlayerElementEventMap['loadeddata']>;\n onLoadedMetadata?: GenericEventListener<MuxPlayerElementEventMap['loadedmetadata']>;\n onProgress?: GenericEventListener<MuxPlayerElementEventMap['progress']>;\n onDurationChange?: GenericEventListener<MuxPlayerElementEventMap['durationchange']>;\n onVolumeChange?: GenericEventListener<MuxPlayerElementEventMap['volumechange']>;\n onRateChange?: GenericEventListener<MuxPlayerElementEventMap['ratechange']>;\n onResize?: GenericEventListener<MuxPlayerElementEventMap['resize']>;\n onWaiting?: GenericEventListener<MuxPlayerElementEventMap['waiting']>;\n onPlay?: GenericEventListener<MuxPlayerElementEventMap['play']>;\n onPlaying?: GenericEventListener<MuxPlayerElementEventMap['playing']>;\n onTimeUpdate?: GenericEventListener<MuxPlayerElementEventMap['timeupdate']>;\n onPause?: GenericEventListener<MuxPlayerElementEventMap['pause']>;\n onSeeking?: GenericEventListener<MuxPlayerElementEventMap['seeking']>;\n onSeeked?: GenericEventListener<MuxPlayerElementEventMap['seeked']>;\n onStalled?: GenericEventListener<MuxPlayerElementEventMap['stalled']>;\n onSuspend?: GenericEventListener<MuxPlayerElementEventMap['suspend']>;\n onEnded?: GenericEventListener<MuxPlayerElementEventMap['ended']>;\n onError?: GenericEventListener<MuxPlayerElementEventMap['error']>;\n // onPlayerReady?: EventListener;\n} & Partial<MuxMediaPropTypes> &\n Partial<VideoApiAttributes>;\n\nconst MuxPlayerInternal = React.forwardRef<MuxPlayerRefAttributes, MuxPlayerProps>(({ children, ...props }, ref) => {\n return React.createElement('mux-player', toNativeProps({ ...props, ref }), children);\n});\n\nconst useEventCallbackEffect = <K extends keyof MuxPlayerElementEventMap>(\n type: K,\n ref: // | ((instance: EventTarget | null) => void)\n React.MutableRefObject<MuxPlayerElement | null> | null | undefined,\n callback: GenericEventListener<MuxPlayerElementEventMap[K]> | undefined\n) => {\n return useEffect(() => {\n const eventTarget = ref?.current;\n if (!eventTarget || !callback) return;\n eventTarget.addEventListener(type, callback);\n return () => {\n eventTarget.removeEventListener(type, callback);\n };\n }, [ref?.current, callback]);\n};\n\nconst usePlayer = (\n ref: // | ((instance: EventTarget | null) => void)\n React.MutableRefObject<MuxPlayerElement | null> | null | undefined,\n props: MuxPlayerProps\n) => {\n const {\n onAbort,\n onCanPlay,\n onCanPlayThrough,\n onEmptied,\n onLoadStart,\n onLoadedData,\n onLoadedMetadata,\n onProgress,\n onDurationChange,\n onVolumeChange,\n onRateChange,\n onResize,\n onWaiting,\n onPlay,\n onPlaying,\n onTimeUpdate,\n onPause,\n onSeeking,\n onSeeked,\n onStalled,\n onSuspend,\n onEnded,\n onError,\n // onPlayerReady,\n metadata,\n tokens,\n paused,\n playbackId,\n playbackRates,\n currentTime,\n ...remainingProps\n } = props;\n useObjectPropEffect('playbackRates', playbackRates, ref);\n useObjectPropEffect('metadata', metadata, ref);\n useObjectPropEffect('tokens', tokens, ref);\n useObjectPropEffect('playbackId', playbackId, ref);\n useObjectPropEffect(\n 'paused',\n paused,\n ref,\n (playerEl: HTMLMediaElement, pausedVal?: boolean) => {\n if (pausedVal == null) return;\n if (pausedVal) {\n playerEl.pause();\n } else {\n playerEl.play();\n }\n },\n (playerEl, value, propName) => {\n if (playerEl.hasAttribute('autoplay') && !playerEl.hasPlayed) {\n return false;\n }\n return defaultHasChanged(playerEl, value, propName);\n }\n );\n // NOTE: Somewhere in the codebase, `currentTime` is getting cast to a number, resulting in `NaN` + an error.\n // This is a bandaid solution for now. (CJP)\n useObjectPropEffect('currentTime', currentTime ?? 0, ref);\n useEventCallbackEffect('abort', ref, onAbort);\n useEventCallbackEffect('canplay', ref, onCanPlay);\n useEventCallbackEffect('canplaythrough', ref, onCanPlayThrough);\n useEventCallbackEffect('emptied', ref, onEmptied);\n useEventCallbackEffect('loadstart', ref, onLoadStart);\n useEventCallbackEffect('loadeddata', ref, onLoadedData);\n useEventCallbackEffect('loadedmetadata', ref, onLoadedMetadata);\n useEventCallbackEffect('progress', ref, onProgress);\n useEventCallbackEffect('durationchange', ref, onDurationChange);\n useEventCallbackEffect('volumechange', ref, onVolumeChange);\n useEventCallbackEffect('ratechange', ref, onRateChange);\n useEventCallbackEffect('resize', ref, onResize);\n useEventCallbackEffect('waiting', ref, onWaiting);\n useEventCallbackEffect('play', ref, onPlay);\n useEventCallbackEffect('playing', ref, onPlaying);\n useEventCallbackEffect('timeupdate', ref, onTimeUpdate);\n useEventCallbackEffect('pause', ref, onPause);\n useEventCallbackEffect('seeking', ref, onSeeking);\n useEventCallbackEffect('seeked', ref, onSeeked);\n useEventCallbackEffect('stalled', ref, onStalled);\n useEventCallbackEffect('suspend', ref, onSuspend);\n useEventCallbackEffect('ended', ref, onEnded);\n useEventCallbackEffect('error', ref, onError);\n // useEventCallbackEffect('playerready', ref, onPlayerReady);\n return [remainingProps];\n};\n\nconst playerSoftwareVersion = getPlayerVersion();\nconst playerSoftwareName = 'mux-player-react';\n\nconst MuxPlayer = React.forwardRef<\n MuxPlayerRefAttributes,\n Omit<MuxPlayerProps, 'playerSoftwareVersion' | 'playerSoftwareName'>\n>((props, ref) => {\n const innerPlayerRef = useRef<MuxPlayerElement>(null);\n const playerRef = useCombinedRefs(innerPlayerRef, ref);\n const [remainingProps] = usePlayer(innerPlayerRef, props);\n\n return (\n <MuxPlayerInternal\n /** @TODO Fix types relationships (CJP) */\n ref={playerRef as typeof innerPlayerRef}\n playerSoftwareName={playerSoftwareName}\n playerSoftwareVersion={playerSoftwareVersion}\n {...remainingProps}\n />\n );\n});\n\nexport default MuxPlayer;\n", "// NOTE: As a forward-looking implementation, we may want to assume\n// prop names -> attribute names is always a simple name.toLowerCase()\n// and provide a mechanism for passing in per-component overrides for\n// e.g. kebab cases, as that's the way React/Preact handles these. (CJP)\nconst ReactPropToAttrNameMap = {\n className: 'class',\n classname: 'class',\n htmlFor: 'for',\n crossOrigin: 'crossorigin',\n viewBox: 'viewBox',\n playsInline: 'playsinline',\n autoPlay: 'autoplay',\n playbackRate: 'playbackrate',\n};\n\ntype KeyTypes = string | number | symbol;\n\nexport const isNil = (x: unknown): x is null | undefined => x == undefined;\n\n// Type Guard to determine if a given key is actually a key of some object of type T\nexport const isKeyOf = <T = unknown>(k: KeyTypes, o: T): k is keyof T => {\n if (isNil(o)) return false;\n return k in o;\n};\n\nconst toKebabCase = (string: string) => string.replace(/[A-Z]/g, (match) => `-${match.toLowerCase()}`);\n\nexport const toNativeAttrName = (propName: string, propValue: any): string | undefined => {\n if (typeof propValue === 'boolean' && !propValue) return undefined;\n if (isKeyOf(propName, ReactPropToAttrNameMap)) return ReactPropToAttrNameMap[propName];\n if (typeof propValue == undefined) return undefined;\n if (/[A-Z]/.test(propName)) return toKebabCase(propName);\n return propName;\n};\nexport const toStyleAttr = <T>(x: T) => x;\n\nexport const toNativeAttrValue = (propValue: any, propName: string) => {\n if (typeof propValue === 'boolean') return '';\n return propValue;\n};\n\nexport const toNativeProps = (props = {}) => {\n return Object.entries(props).reduce<{ [k: string]: string }>((transformedProps, [propName, propValue]) => {\n const attrName = toNativeAttrName(propName, propValue);\n\n // prop was stripped. Don't add.\n if (!attrName) {\n return transformedProps;\n }\n\n const attrValue = toNativeAttrValue(propValue, propName);\n transformedProps[attrName] = attrValue;\n return transformedProps;\n }, {});\n};\n", "import { useEffect, useRef } from 'react';\nimport type { MutableRefObject, ForwardedRef } from 'react';\n\ntype Maybe<T> = T | null | undefined;\ntype RefCb<T> = (instance: Maybe<T>) => void;\ntype RefObj<T> = MutableRefObject<Maybe<T>>;\ntype RefTypes<T> = RefObj<T> | RefCb<T> | ForwardedRef<T>;\ninterface useCombinedRefs {\n <T>(...refs: Maybe<RefTypes<T>>[]): RefObj<T>;\n}\n\nexport const useCombinedRefs: useCombinedRefs = (...refs) => {\n const targetRef = useRef(null);\n\n useEffect(() => {\n refs.forEach((ref) => {\n if (!ref) return;\n\n if (typeof ref === 'function') {\n ref(targetRef.current);\n } else {\n ref.current = targetRef.current;\n }\n });\n }, [refs]);\n\n return targetRef;\n};\n\n// TS assumed default export was interface def instead of function value (CJP)\nconst defaultUseCombinedRefs = useCombinedRefs;\nexport default defaultUseCombinedRefs;\n", "import { useEffect } from 'react';\n\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\n\n/**\n * Slightly modified version of React's shallowEqual, with optimizations for Arrays\n * so we may treat them specifically as unequal if they are not a) both arrays\n * or b) don't contain the same (shallowly compared) elements.\n */\nconst shallowEqual = (objA: any, objB: any): boolean => {\n if (Object.is(objA, objB)) {\n return true;\n }\n\n if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {\n return false;\n }\n\n if (Array.isArray(objA)) {\n // Early \"cheap\" array compares\n if (!Array.isArray(objB) || objA.length !== objB.length) return false;\n // Shallow compare for arrays\n return objA.some((vVal, i) => objB[i] === vVal);\n }\n\n const keysA = Object.keys(objA);\n const keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n // Test for A's keys different from B.\n for (let i = 0; i < keysA.length; i++) {\n if (!hasOwnProperty.call(objB, keysA[i]) || !Object.is(objA[keysA[i]], objB[keysA[i]])) {\n return false;\n }\n }\n\n return true;\n};\n\nexport const defaultHasChanged = (obj: any, v: any, k: string) => {\n return !shallowEqual(v, obj[k]);\n};\n\nconst defaultUpdateValue = (obj: any, v: any, k: string) => {\n obj[k] = v;\n};\n\nexport const useObjectPropEffect = <T extends { [k: string]: any }, V>(\n propName: string,\n propValue: V | null | undefined,\n ref: React.MutableRefObject<T | null> | null | undefined,\n updateValue = defaultUpdateValue,\n hasChanged = defaultHasChanged\n) => {\n return useEffect(() => {\n const obj = ref?.current;\n if (!obj) return;\n if (!hasChanged(obj, propValue, propName)) return;\n updateValue(obj, propValue, propName);\n }, [ref?.current, propValue]);\n};\n\nexport default useObjectPropEffect;\n", "const getEnvPlayerVersion = () => {\n try {\n // @ts-ignore\n return PLAYER_VERSION as string;\n } catch {}\n return 'UNKNOWN';\n};\n\nconst player_version: string = getEnvPlayerVersion();\n\nexport const getPlayerVersion = () => player_version;\n"],
5
- "mappings": "6jBAAA,IAAAA,GAAA,GAAAC,GAAAD,GAAA,yCAAAE,KAAA,eAAAC,GAAAH,IAAA,IAAAI,EAAiC,qBAGjCC,EAA2B,2BCC3B,IAAMC,EAAyB,CAC7B,UAAW,QACX,UAAW,QACX,QAAS,MACT,YAAa,cACb,QAAS,UACT,YAAa,cACb,SAAU,WACV,aAAc,cAChB,EAIaC,GAASC,GAAsCA,GAAK,KAGpDC,GAAU,CAAcC,EAAaC,IAC5CJ,GAAMI,CAAC,EAAU,GACdD,KAAKC,EAGRC,GAAeC,GAAmBA,EAAO,QAAQ,SAAWC,GAAU,IAAIA,EAAM,YAAY,GAAG,EAExFC,GAAmB,CAACC,EAAkBC,IAAuC,CACxF,GAAI,SAAOA,GAAc,WAAa,CAACA,GACvC,IAAIR,GAAQO,EAAUV,CAAsB,EAAG,OAAOA,EAAuBU,GAC7E,GAAI,OAAOC,GAAa,KACxB,MAAI,QAAQ,KAAKD,CAAQ,EAAUJ,GAAYI,CAAQ,EAChDA,EACT,EAGO,IAAME,GAAoB,CAACC,EAAgBC,IAC5C,OAAOD,GAAc,UAAkB,GACpCA,EAGIE,EAAgB,CAACC,EAAQ,CAAC,IAC9B,OAAO,QAAQA,CAAK,EAAE,OAAgC,CAACC,EAAkB,CAACH,EAAUD,CAAS,IAAM,CACxG,IAAMK,EAAWC,GAAiBL,EAAUD,CAAS,EAGrD,GAAI,CAACK,EACH,OAAOD,EAGT,IAAMG,EAAYR,GAAkBC,EAAWC,CAAQ,EACvD,OAAAG,EAAiBC,GAAYE,EACtBH,CACT,EAAG,CAAC,CAAC,ED9CP,IAAAI,EAAuB,iBEPvB,IAAAC,EAAkC,iBAWrBC,EAAmC,IAAIC,IAAS,CAC3D,IAAMC,KAAY,UAAO,IAAI,EAE7B,sBAAU,IAAM,CACdD,EAAK,QAASE,GAAQ,CAChB,CAACA,IAED,OAAOA,GAAQ,WACjBA,EAAID,EAAU,OAAO,EAErBC,EAAI,QAAUD,EAAU,QAE5B,CAAC,CACH,EAAG,CAACD,CAAI,CAAC,EAEFC,CACT,EC3BA,IAAAE,EAA0B,iBAEpBC,GAAiB,OAAO,UAAU,eAOlCC,GAAe,CAACC,EAAWC,IAAuB,CACtD,GAAI,OAAO,GAAGD,EAAMC,CAAI,EACtB,MAAO,GAGT,GAAI,OAAOD,GAAS,UAAYA,IAAS,MAAQ,OAAOC,GAAS,UAAYA,IAAS,KACpF,MAAO,GAGT,GAAI,MAAM,QAAQD,CAAI,EAEpB,MAAI,CAAC,MAAM,QAAQC,CAAI,GAAKD,EAAK,SAAWC,EAAK,OAAe,GAEzDD,EAAK,KAAK,CAACE,EAAM,IAAMD,EAAK,KAAOC,CAAI,EAGhD,IAAMC,EAAQ,OAAO,KAAKH,CAAI,EACxBI,EAAQ,OAAO,KAAKH,CAAI,EAE9B,GAAIE,EAAM,SAAWC,EAAM,OACzB,MAAO,GAIT,QAASC,EAAI,EAAGA,EAAIF,EAAM,OAAQE,IAChC,GAAI,CAACP,GAAe,KAAKG,EAAME,EAAME,EAAE,GAAK,CAAC,OAAO,GAAGL,EAAKG,EAAME,IAAKJ,EAAKE,EAAME,GAAG,EACnF,MAAO,GAIX,MAAO,EACT,EAEaC,EAAoB,CAACC,EAAUC,EAAQC,IAC3C,CAACV,GAAaS,EAAGD,EAAIE,EAAE,EAG1BC,GAAqB,CAACH,EAAUC,EAAQC,IAAc,CAC1DF,EAAIE,GAAKD,CACX,EAEaG,GAAsB,CACjCC,EACAC,EACAC,EACAC,EAAcL,GACdM,EAAaV,OAEN,aAAU,IAAM,CACrB,IAAMC,EAAMO,GAAA,YAAAA,EAAK,QACb,CAACP,GACD,CAACS,EAAWT,EAAKM,EAAWD,CAAQ,GACxCG,EAAYR,EAAKM,EAAWD,CAAQ,CACtC,EAAG,CAACE,GAAA,YAAAA,EAAK,QAASD,CAAS,CAAC,EAGvBI,EAAQN,GCjEf,IAAMO,GAAsB,IAAM,CAChC,GAAI,CAEF,MAAO,OACT,MAAE,CAAO,CACT,MAAO,SACT,EAEMC,GAAyBD,GAAoB,EAEtCE,EAAmB,IAAMD,GJ8FtC,IAAME,GAAoB,EAAAC,QAAM,WAAmD,CAAC,CAAE,SAAAC,KAAaC,CAAM,EAAGC,IACnG,EAAAH,QAAM,cAAc,aAAcI,EAAc,CAAE,GAAGF,EAAO,IAAAC,CAAI,CAAC,EAAGF,CAAQ,CACpF,EAEKI,EAAyB,CAC7BC,EACAH,EAEAI,OAEO,aAAU,IAAM,CACrB,IAAMC,EAAcL,GAAA,YAAAA,EAAK,QACzB,GAAI,GAACK,GAAe,CAACD,GACrB,OAAAC,EAAY,iBAAiBF,EAAMC,CAAQ,EACpC,IAAM,CACXC,EAAY,oBAAoBF,EAAMC,CAAQ,CAChD,CACF,EAAG,CAACJ,GAAA,YAAAA,EAAK,QAASI,CAAQ,CAAC,EAGvBE,GAAY,CAChBN,EAEAD,IACG,CACH,GAAM,CACJ,QAAAQ,EACA,UAAAC,EACA,iBAAAC,EACA,UAAAC,EACA,YAAAC,EACA,aAAAC,EACA,iBAAAC,EACA,WAAAC,EACA,iBAAAC,EACA,eAAAC,EACA,aAAAC,EACA,SAAAC,EACA,UAAAC,EACA,OAAAC,EACA,UAAAC,EACA,aAAAC,EACA,QAAAC,EACA,UAAAC,EACA,SAAAC,EACA,UAAAC,EACA,UAAAC,EACA,QAAAC,EACA,QAAAC,EAEA,SAAAC,EACA,OAAAC,EACA,OAAAC,EACA,WAAAC,EACA,cAAAC,EACA,YAAAC,KACGC,CACL,EAAIrC,EACJ,OAAAsC,EAAoB,gBAAiBH,EAAelC,CAAG,EACvDqC,EAAoB,WAAYP,EAAU9B,CAAG,EAC7CqC,EAAoB,SAAUN,EAAQ/B,CAAG,EACzCqC,EAAoB,aAAcJ,EAAYjC,CAAG,EACjDqC,EACE,SACAL,EACAhC,EACA,CAACsC,EAA4BC,IAAwB,CAC/CA,GAAa,OACbA,EACFD,EAAS,MAAM,EAEfA,EAAS,KAAK,EAElB,EACA,CAACA,EAAUE,EAAOC,IACZH,EAAS,aAAa,UAAU,GAAK,CAACA,EAAS,UAC1C,GAEFI,EAAkBJ,EAAUE,EAAOC,CAAQ,CAEtD,EAGAJ,EAAoB,cAAeF,GAAA,KAAAA,EAAe,EAAGnC,CAAG,EACxDE,EAAuB,QAASF,EAAKO,CAAO,EAC5CL,EAAuB,UAAWF,EAAKQ,CAAS,EAChDN,EAAuB,iBAAkBF,EAAKS,CAAgB,EAC9DP,EAAuB,UAAWF,EAAKU,CAAS,EAChDR,EAAuB,YAAaF,EAAKW,CAAW,EACpDT,EAAuB,aAAcF,EAAKY,CAAY,EACtDV,EAAuB,iBAAkBF,EAAKa,CAAgB,EAC9DX,EAAuB,WAAYF,EAAKc,CAAU,EAClDZ,EAAuB,iBAAkBF,EAAKe,CAAgB,EAC9Db,EAAuB,eAAgBF,EAAKgB,CAAc,EAC1Dd,EAAuB,aAAcF,EAAKiB,CAAY,EACtDf,EAAuB,SAAUF,EAAKkB,CAAQ,EAC9ChB,EAAuB,UAAWF,EAAKmB,CAAS,EAChDjB,EAAuB,OAAQF,EAAKoB,CAAM,EAC1ClB,EAAuB,UAAWF,EAAKqB,CAAS,EAChDnB,EAAuB,aAAcF,EAAKsB,CAAY,EACtDpB,EAAuB,QAASF,EAAKuB,CAAO,EAC5CrB,EAAuB,UAAWF,EAAKwB,CAAS,EAChDtB,EAAuB,SAAUF,EAAKyB,CAAQ,EAC9CvB,EAAuB,UAAWF,EAAK0B,CAAS,EAChDxB,EAAuB,UAAWF,EAAK2B,CAAS,EAChDzB,EAAuB,QAASF,EAAK4B,CAAO,EAC5C1B,EAAuB,QAASF,EAAK6B,CAAO,EAErC,CAACO,CAAc,CACxB,EAEMO,GAAwBC,EAAiB,EACzCC,GAAqB,mBAErBC,GAAY,EAAAjD,QAAM,WAGtB,CAACE,EAAOC,IAAQ,CAChB,IAAM+C,KAAiB,UAAyB,IAAI,EAC9CC,EAAYC,EAAgBF,EAAgB/C,CAAG,EAC/C,CAACoC,CAAc,EAAI9B,GAAUyC,EAAgBhD,CAAK,EAExD,OACE,EAAAF,QAAA,cAACD,GAAA,CAEC,IAAKoD,EACL,mBAAoBH,GACpB,sBAAuBF,GACtB,GAAGP,EACN,CAEJ,CAAC,EAEMc,GAAQJ",
4
+ "sourcesContent": ["import React, { useEffect } from 'react';\nimport type { CSSProperties } from 'react';\nimport type { StreamTypes, PlaybackTypes, CmcdTypes } from '@mux/playback-core';\nimport { MediaError } from '@mux/mux-player';\nimport type MuxPlayerElement from '@mux/mux-player';\nimport type { Tokens } from '@mux/mux-player';\nimport { toNativeProps } from './common/utils';\nimport { useRef } from 'react';\nimport { useCombinedRefs } from './useCombinedRefs';\nimport useObjectPropEffect, { defaultHasChanged } from './useObjectPropEffect';\nimport { getPlayerVersion } from './env';\n\nexport { MediaError };\n\ntype ValueOf<T> = T[keyof T];\ninterface GenericEventListener<T extends Event = CustomEvent> {\n (evt: T): void;\n}\n\nexport type MuxPlayerRefAttributes = MuxPlayerElement;\ntype VideoApiAttributes = {\n currentTime: number;\n volume: number;\n paused: boolean;\n src: string | null;\n poster: string;\n playbackRate: number;\n playsInline: boolean;\n preload: string;\n crossOrigin: string;\n autoPlay: boolean | string;\n loop: boolean;\n muted: boolean;\n style: CSSProperties;\n};\n\ntype MuxMediaPropTypes = {\n audio: boolean;\n // envKey: Options[\"data\"][\"env_key\"];\n envKey: string;\n // debug: Options[\"debug\"] & Hls[\"config\"][\"debug\"];\n debug: boolean;\n disableCookies: boolean;\n // metadata: Partial<Options[\"data\"]>;\n metadata: { [k: string]: any };\n beaconCollectionDomain: string;\n customDomain: string;\n playbackId: string;\n preferPlayback: ValueOf<PlaybackTypes> | undefined;\n streamType: ValueOf<StreamTypes> | 'vod';\n startTime: number;\n storyboardSrc: string;\n preferCmcd: ValueOf<CmcdTypes> | undefined;\n children: never[];\n};\n\ninterface MuxPlayerElementEventMap extends HTMLVideoElementEventMap {}\n\nexport type MuxPlayerProps = {\n className?: string;\n hotkeys?: string;\n nohotkeys?: boolean;\n defaultHiddenCaptions?: boolean;\n playerSoftwareVersion?: string;\n playerSoftwareName?: string;\n forwardSeekOffset?: number;\n backwardSeekOffset?: number;\n metadataVideoId?: string;\n metadataVideoTitle?: string;\n metadataViewerUserId?: string;\n primaryColor?: string;\n secondaryColor?: string;\n placeholder?: string;\n playbackRates?: number[];\n defaultShowRemainingTime?: boolean;\n thumbnailTime?: number;\n title?: string;\n tokens?: Tokens;\n onAbort?: GenericEventListener<MuxPlayerElementEventMap['abort']>;\n onCanPlay?: GenericEventListener<MuxPlayerElementEventMap['canplay']>;\n onCanPlayThrough?: GenericEventListener<MuxPlayerElementEventMap['canplaythrough']>;\n onEmptied?: GenericEventListener<MuxPlayerElementEventMap['emptied']>;\n onLoadStart?: GenericEventListener<MuxPlayerElementEventMap['loadstart']>;\n onLoadedData?: GenericEventListener<MuxPlayerElementEventMap['loadeddata']>;\n onLoadedMetadata?: GenericEventListener<MuxPlayerElementEventMap['loadedmetadata']>;\n onProgress?: GenericEventListener<MuxPlayerElementEventMap['progress']>;\n onDurationChange?: GenericEventListener<MuxPlayerElementEventMap['durationchange']>;\n onVolumeChange?: GenericEventListener<MuxPlayerElementEventMap['volumechange']>;\n onRateChange?: GenericEventListener<MuxPlayerElementEventMap['ratechange']>;\n onResize?: GenericEventListener<MuxPlayerElementEventMap['resize']>;\n onWaiting?: GenericEventListener<MuxPlayerElementEventMap['waiting']>;\n onPlay?: GenericEventListener<MuxPlayerElementEventMap['play']>;\n onPlaying?: GenericEventListener<MuxPlayerElementEventMap['playing']>;\n onTimeUpdate?: GenericEventListener<MuxPlayerElementEventMap['timeupdate']>;\n onPause?: GenericEventListener<MuxPlayerElementEventMap['pause']>;\n onSeeking?: GenericEventListener<MuxPlayerElementEventMap['seeking']>;\n onSeeked?: GenericEventListener<MuxPlayerElementEventMap['seeked']>;\n onStalled?: GenericEventListener<MuxPlayerElementEventMap['stalled']>;\n onSuspend?: GenericEventListener<MuxPlayerElementEventMap['suspend']>;\n onEnded?: GenericEventListener<MuxPlayerElementEventMap['ended']>;\n onError?: GenericEventListener<MuxPlayerElementEventMap['error']>;\n // onPlayerReady?: EventListener;\n} & Partial<MuxMediaPropTypes> &\n Partial<VideoApiAttributes>;\n\nconst MuxPlayerInternal = React.forwardRef<MuxPlayerRefAttributes, MuxPlayerProps>(({ children, ...props }, ref) => {\n return React.createElement('mux-player', toNativeProps({ ...props, ref }), children);\n});\n\nconst useEventCallbackEffect = <K extends keyof MuxPlayerElementEventMap>(\n type: K,\n ref: // | ((instance: EventTarget | null) => void)\n React.MutableRefObject<MuxPlayerElement | null> | null | undefined,\n callback: GenericEventListener<MuxPlayerElementEventMap[K]> | undefined\n) => {\n return useEffect(() => {\n const eventTarget = ref?.current;\n if (!eventTarget || !callback) return;\n eventTarget.addEventListener(type, callback);\n return () => {\n eventTarget.removeEventListener(type, callback);\n };\n }, [ref?.current, callback]);\n};\n\nconst usePlayer = (\n ref: // | ((instance: EventTarget | null) => void)\n React.MutableRefObject<MuxPlayerElement | null> | null | undefined,\n props: MuxPlayerProps\n) => {\n const {\n onAbort,\n onCanPlay,\n onCanPlayThrough,\n onEmptied,\n onLoadStart,\n onLoadedData,\n onLoadedMetadata,\n onProgress,\n onDurationChange,\n onVolumeChange,\n onRateChange,\n onResize,\n onWaiting,\n onPlay,\n onPlaying,\n onTimeUpdate,\n onPause,\n onSeeking,\n onSeeked,\n onStalled,\n onSuspend,\n onEnded,\n onError,\n // onPlayerReady,\n metadata,\n tokens,\n paused,\n playbackId,\n playbackRates,\n currentTime,\n ...remainingProps\n } = props;\n useObjectPropEffect('playbackRates', playbackRates, ref);\n useObjectPropEffect('metadata', metadata, ref);\n useObjectPropEffect('tokens', tokens, ref);\n useObjectPropEffect('playbackId', playbackId, ref);\n useObjectPropEffect(\n 'paused',\n paused,\n ref,\n (playerEl: HTMLMediaElement, pausedVal?: boolean) => {\n if (pausedVal == null) return;\n if (pausedVal) {\n playerEl.pause();\n } else {\n playerEl.play();\n }\n },\n (playerEl, value, propName) => {\n if (playerEl.hasAttribute('autoplay') && !playerEl.hasPlayed) {\n return false;\n }\n return defaultHasChanged(playerEl, value, propName);\n }\n );\n // NOTE: Somewhere in the codebase, `currentTime` is getting cast to a number, resulting in `NaN` + an error.\n // This is a bandaid solution for now. (CJP)\n useObjectPropEffect('currentTime', currentTime ?? 0, ref);\n useEventCallbackEffect('abort', ref, onAbort);\n useEventCallbackEffect('canplay', ref, onCanPlay);\n useEventCallbackEffect('canplaythrough', ref, onCanPlayThrough);\n useEventCallbackEffect('emptied', ref, onEmptied);\n useEventCallbackEffect('loadstart', ref, onLoadStart);\n useEventCallbackEffect('loadeddata', ref, onLoadedData);\n useEventCallbackEffect('loadedmetadata', ref, onLoadedMetadata);\n useEventCallbackEffect('progress', ref, onProgress);\n useEventCallbackEffect('durationchange', ref, onDurationChange);\n useEventCallbackEffect('volumechange', ref, onVolumeChange);\n useEventCallbackEffect('ratechange', ref, onRateChange);\n useEventCallbackEffect('resize', ref, onResize);\n useEventCallbackEffect('waiting', ref, onWaiting);\n useEventCallbackEffect('play', ref, onPlay);\n useEventCallbackEffect('playing', ref, onPlaying);\n useEventCallbackEffect('timeupdate', ref, onTimeUpdate);\n useEventCallbackEffect('pause', ref, onPause);\n useEventCallbackEffect('seeking', ref, onSeeking);\n useEventCallbackEffect('seeked', ref, onSeeked);\n useEventCallbackEffect('stalled', ref, onStalled);\n useEventCallbackEffect('suspend', ref, onSuspend);\n useEventCallbackEffect('ended', ref, onEnded);\n useEventCallbackEffect('error', ref, onError);\n // useEventCallbackEffect('playerready', ref, onPlayerReady);\n return [remainingProps];\n};\n\nconst playerSoftwareVersion = getPlayerVersion();\nconst playerSoftwareName = 'mux-player-react';\n\nconst MuxPlayer = React.forwardRef<\n MuxPlayerRefAttributes,\n Omit<MuxPlayerProps, 'playerSoftwareVersion' | 'playerSoftwareName'>\n>((props, ref) => {\n const innerPlayerRef = useRef<MuxPlayerElement>(null);\n const playerRef = useCombinedRefs(innerPlayerRef, ref);\n const [remainingProps] = usePlayer(innerPlayerRef, props);\n\n return (\n <MuxPlayerInternal\n /** @TODO Fix types relationships (CJP) */\n ref={playerRef as typeof innerPlayerRef}\n playerSoftwareName={playerSoftwareName}\n playerSoftwareVersion={playerSoftwareVersion}\n {...remainingProps}\n />\n );\n});\n\nexport default MuxPlayer;\n", "// NOTE: As a forward-looking implementation, we may want to assume\n// prop names -> attribute names is always a simple name.toLowerCase()\n// and provide a mechanism for passing in per-component overrides for\n// e.g. kebab cases, as that's the way React/Preact handles these. (CJP)\nconst ReactPropToAttrNameMap = {\n className: 'class',\n classname: 'class',\n htmlFor: 'for',\n crossOrigin: 'crossorigin',\n viewBox: 'viewBox',\n playsInline: 'playsinline',\n autoPlay: 'autoplay',\n playbackRate: 'playbackrate',\n};\n\ntype KeyTypes = string | number | symbol;\ntype Maybe<T> = T | null | undefined;\n\nexport const isNil = (x: unknown): x is null | undefined => x == undefined;\n\n// Type Guard to determine if a given key is actually a key of some object of type T\nexport const isKeyOf = <T extends {} = any>(k: KeyTypes, o: Maybe<T>): k is keyof T => {\n if (isNil(o)) return false;\n return k in o;\n};\n\nconst toKebabCase = (string: string) => string.replace(/[A-Z]/g, (match) => `-${match.toLowerCase()}`);\n\nexport const toNativeAttrName = (propName: string, propValue: any): string | undefined => {\n if (typeof propValue === 'boolean' && !propValue) return undefined;\n if (isKeyOf(propName, ReactPropToAttrNameMap)) return ReactPropToAttrNameMap[propName];\n if (typeof propValue == undefined) return undefined;\n if (/[A-Z]/.test(propName)) return toKebabCase(propName);\n return propName;\n};\nexport const toStyleAttr = <T>(x: T) => x;\n\nexport const toNativeAttrValue = (propValue: any, propName: string) => {\n if (typeof propValue === 'boolean') return '';\n return propValue;\n};\n\nexport const toNativeProps = (props = {}) => {\n return Object.entries(props).reduce<{ [k: string]: string }>((transformedProps, [propName, propValue]) => {\n const attrName = toNativeAttrName(propName, propValue);\n\n // prop was stripped. Don't add.\n if (!attrName) {\n return transformedProps;\n }\n\n const attrValue = toNativeAttrValue(propValue, propName);\n transformedProps[attrName] = attrValue;\n return transformedProps;\n }, {});\n};\n", "import { useEffect, useRef } from 'react';\nimport type { MutableRefObject, ForwardedRef } from 'react';\n\ntype Maybe<T> = T | null | undefined;\ntype RefCb<T> = (instance: Maybe<T>) => void;\ntype RefObj<T> = MutableRefObject<Maybe<T>>;\ntype RefTypes<T> = RefObj<T> | RefCb<T> | ForwardedRef<T>;\ninterface useCombinedRefs {\n <T>(...refs: Maybe<RefTypes<T>>[]): RefObj<T>;\n}\n\nexport const useCombinedRefs: useCombinedRefs = (...refs) => {\n const targetRef = useRef(null);\n\n useEffect(() => {\n refs.forEach((ref) => {\n if (!ref) return;\n\n if (typeof ref === 'function') {\n ref(targetRef.current);\n } else {\n ref.current = targetRef.current;\n }\n });\n }, [refs]);\n\n return targetRef;\n};\n\n// TS assumed default export was interface def instead of function value (CJP)\nconst defaultUseCombinedRefs = useCombinedRefs;\nexport default defaultUseCombinedRefs;\n", "import { useEffect } from 'react';\n\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\n\n/**\n * Slightly modified version of React's shallowEqual, with optimizations for Arrays\n * so we may treat them specifically as unequal if they are not a) both arrays\n * or b) don't contain the same (shallowly compared) elements.\n */\nconst shallowEqual = (objA: any, objB: any): boolean => {\n if (Object.is(objA, objB)) {\n return true;\n }\n\n if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {\n return false;\n }\n\n if (Array.isArray(objA)) {\n // Early \"cheap\" array compares\n if (!Array.isArray(objB) || objA.length !== objB.length) return false;\n // Shallow compare for arrays\n return objA.some((vVal, i) => objB[i] === vVal);\n }\n\n const keysA = Object.keys(objA);\n const keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n // Test for A's keys different from B.\n for (let i = 0; i < keysA.length; i++) {\n if (!hasOwnProperty.call(objB, keysA[i]) || !Object.is(objA[keysA[i]], objB[keysA[i]])) {\n return false;\n }\n }\n\n return true;\n};\n\nexport const defaultHasChanged = (obj: any, v: any, k: string) => {\n return !shallowEqual(v, obj[k]);\n};\n\nconst defaultUpdateValue = (obj: any, v: any, k: string) => {\n obj[k] = v;\n};\n\nexport const useObjectPropEffect = <T extends { [k: string]: any }, V>(\n propName: string,\n propValue: V | null | undefined,\n ref: React.MutableRefObject<T | null> | null | undefined,\n updateValue = defaultUpdateValue,\n hasChanged = defaultHasChanged\n) => {\n return useEffect(() => {\n const obj = ref?.current;\n if (!obj) return;\n if (!hasChanged(obj, propValue, propName)) return;\n updateValue(obj, propValue, propName);\n }, [ref?.current, propValue]);\n};\n\nexport default useObjectPropEffect;\n", "const getEnvPlayerVersion = () => {\n try {\n // @ts-ignore\n return PLAYER_VERSION as string;\n } catch {}\n return 'UNKNOWN';\n};\n\nconst player_version: string = getEnvPlayerVersion();\n\nexport const getPlayerVersion = () => player_version;\n"],
5
+ "mappings": "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",
6
6
  "names": ["src_exports", "__export", "src_default", "__toCommonJS", "import_react", "import_mux_player", "ReactPropToAttrNameMap", "isNil", "x", "isKeyOf", "k", "o", "toKebabCase", "string", "match", "toNativeAttrName", "propName", "propValue", "toNativeAttrValue", "propValue", "propName", "toNativeProps", "props", "transformedProps", "attrName", "toNativeAttrName", "attrValue", "import_react", "import_react", "useCombinedRefs", "refs", "targetRef", "ref", "import_react", "hasOwnProperty", "shallowEqual", "objA", "objB", "vVal", "keysA", "keysB", "i", "defaultHasChanged", "obj", "v", "k", "defaultUpdateValue", "useObjectPropEffect", "propName", "propValue", "ref", "updateValue", "hasChanged", "useObjectPropEffect_default", "getEnvPlayerVersion", "player_version", "getPlayerVersion", "MuxPlayerInternal", "React", "children", "props", "ref", "toNativeProps", "useEventCallbackEffect", "type", "callback", "eventTarget", "usePlayer", "onAbort", "onCanPlay", "onCanPlayThrough", "onEmptied", "onLoadStart", "onLoadedData", "onLoadedMetadata", "onProgress", "onDurationChange", "onVolumeChange", "onRateChange", "onResize", "onWaiting", "onPlay", "onPlaying", "onTimeUpdate", "onPause", "onSeeking", "onSeeked", "onStalled", "onSuspend", "onEnded", "onError", "metadata", "tokens", "paused", "playbackId", "playbackRates", "currentTime", "remainingProps", "useObjectPropEffect_default", "playerEl", "pausedVal", "value", "propName", "defaultHasChanged", "playerSoftwareVersion", "getPlayerVersion", "playerSoftwareName", "MuxPlayer", "innerPlayerRef", "playerRef", "useCombinedRefs", "src_default"]
7
7
  }
package/dist/index.mjs CHANGED
@@ -1,2 +1,2 @@
1
- import y,{useEffect as ae}from"react";import{MediaError as ge}from"@mux/mux-player";var c={className:"class",classname:"class",htmlFor:"for",crossOrigin:"crossorigin",viewBox:"viewBox",playsInline:"playsinline",autoPlay:"autoplay",playbackRate:"playbackrate"},F=e=>e==null,W=(e,t)=>F(t)?!1:e in t,Z=e=>e.replace(/[A-Z]/g,t=>`-${t.toLowerCase()}`),_=(e,t)=>{if(!(typeof t=="boolean"&&!t)){if(W(e,c))return c[e];if(typeof t!=null)return/[A-Z]/.test(e)?Z(e):e}};var q=(e,t)=>typeof e=="boolean"?"":e,m=(e={})=>Object.entries(e).reduce((t,[n,o])=>{let r=_(n,o);if(!r)return t;let i=q(o,n);return t[r]=i,t},{});import{useRef as re}from"react";import{useEffect as J,useRef as Y}from"react";var E=(...e)=>{let t=Y(null);return J(()=>{e.forEach(n=>{!n||(typeof n=="function"?n(t.current):n.current=t.current)})},[e]),t};import{useEffect as $}from"react";var Q=Object.prototype.hasOwnProperty,X=(e,t)=>{if(Object.is(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;if(Array.isArray(e))return!Array.isArray(t)||e.length!==t.length?!1:e.some((r,i)=>t[i]===r);let n=Object.keys(e),o=Object.keys(t);if(n.length!==o.length)return!1;for(let r=0;r<n.length;r++)if(!Q.call(t,n[r])||!Object.is(e[n[r]],t[n[r]]))return!1;return!0},d=(e,t,n)=>!X(t,e[n]),B=(e,t,n)=>{e[n]=t},ee=(e,t,n,o=B,r=d)=>$(()=>{let i=n==null?void 0:n.current;!i||!r(i,t,e)||o(i,t,e)},[n==null?void 0:n.current,t]),s=ee;var te=()=>{try{return"1.5.1"}catch{}return"UNKNOWN"},ne=te(),f=()=>ne;var oe=y.forwardRef(({children:e,...t},n)=>y.createElement("mux-player",m({...t,ref:n}),e)),a=(e,t,n)=>ae(()=>{let o=t==null?void 0:t.current;if(!(!o||!n))return o.addEventListener(e,n),()=>{o.removeEventListener(e,n)}},[t==null?void 0:t.current,n]),ie=(e,t)=>{let{onAbort:n,onCanPlay:o,onCanPlayThrough:r,onEmptied:i,onLoadStart:M,onLoadedData:g,onLoadedMetadata:P,onProgress:v,onDurationChange:b,onVolumeChange:x,onRateChange:T,onResize:R,onWaiting:k,onPlay:h,onPlaying:L,onTimeUpdate:C,onPause:O,onSeeking:S,onSeeked:w,onStalled:G,onSuspend:V,onEnded:A,onError:N,metadata:I,tokens:K,paused:D,playbackId:U,playbackRates:H,currentTime:p,...j}=t;return s("playbackRates",H,e),s("metadata",I,e),s("tokens",K,e),s("playbackId",U,e),s("paused",D,e,(l,u)=>{u!=null&&(u?l.pause():l.play())},(l,u,z)=>l.hasAttribute("autoplay")&&!l.hasPlayed?!1:d(l,u,z)),s("currentTime",p!=null?p:0,e),a("abort",e,n),a("canplay",e,o),a("canplaythrough",e,r),a("emptied",e,i),a("loadstart",e,M),a("loadeddata",e,g),a("loadedmetadata",e,P),a("progress",e,v),a("durationchange",e,b),a("volumechange",e,x),a("ratechange",e,T),a("resize",e,R),a("waiting",e,k),a("play",e,h),a("playing",e,L),a("timeupdate",e,C),a("pause",e,O),a("seeking",e,S),a("seeked",e,w),a("stalled",e,G),a("suspend",e,V),a("ended",e,A),a("error",e,N),[j]},se=f(),le="mux-player-react",ue=y.forwardRef((e,t)=>{let n=re(null),o=E(n,t),[r]=ie(n,e);return y.createElement(oe,{ref:o,playerSoftwareName:le,playerSoftwareVersion:se,...r})}),Re=ue;export{ge as MediaError,Re as default};
1
+ import y,{useEffect as ae}from"react";import{MediaError as ge}from"@mux/mux-player";var c={className:"class",classname:"class",htmlFor:"for",crossOrigin:"crossorigin",viewBox:"viewBox",playsInline:"playsinline",autoPlay:"autoplay",playbackRate:"playbackrate"},F=e=>e==null,W=(e,t)=>F(t)?!1:e in t,Z=e=>e.replace(/[A-Z]/g,t=>`-${t.toLowerCase()}`),_=(e,t)=>{if(!(typeof t=="boolean"&&!t)){if(W(e,c))return c[e];if(typeof t!=null)return/[A-Z]/.test(e)?Z(e):e}};var q=(e,t)=>typeof e=="boolean"?"":e,m=(e={})=>Object.entries(e).reduce((t,[n,o])=>{let r=_(n,o);if(!r)return t;let i=q(o,n);return t[r]=i,t},{});import{useRef as re}from"react";import{useEffect as J,useRef as Y}from"react";var E=(...e)=>{let t=Y(null);return J(()=>{e.forEach(n=>{!n||(typeof n=="function"?n(t.current):n.current=t.current)})},[e]),t};import{useEffect as $}from"react";var Q=Object.prototype.hasOwnProperty,X=(e,t)=>{if(Object.is(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;if(Array.isArray(e))return!Array.isArray(t)||e.length!==t.length?!1:e.some((r,i)=>t[i]===r);let n=Object.keys(e),o=Object.keys(t);if(n.length!==o.length)return!1;for(let r=0;r<n.length;r++)if(!Q.call(t,n[r])||!Object.is(e[n[r]],t[n[r]]))return!1;return!0},p=(e,t,n)=>!X(t,e[n]),B=(e,t,n)=>{e[n]=t},ee=(e,t,n,o=B,r=p)=>$(()=>{let i=n==null?void 0:n.current;!i||!r(i,t,e)||o(i,t,e)},[n==null?void 0:n.current,t]),s=ee;var te=()=>{try{return"1.6.0"}catch{}return"UNKNOWN"},ne=te(),f=()=>ne;var oe=y.forwardRef(({children:e,...t},n)=>y.createElement("mux-player",m({...t,ref:n}),e)),a=(e,t,n)=>ae(()=>{let o=t==null?void 0:t.current;if(!(!o||!n))return o.addEventListener(e,n),()=>{o.removeEventListener(e,n)}},[t==null?void 0:t.current,n]),ie=(e,t)=>{let{onAbort:n,onCanPlay:o,onCanPlayThrough:r,onEmptied:i,onLoadStart:M,onLoadedData:g,onLoadedMetadata:P,onProgress:b,onDurationChange:v,onVolumeChange:x,onRateChange:T,onResize:R,onWaiting:h,onPlay:k,onPlaying:L,onTimeUpdate:C,onPause:O,onSeeking:S,onSeeked:w,onStalled:G,onSuspend:V,onEnded:A,onError:N,metadata:I,tokens:K,paused:D,playbackId:U,playbackRates:H,currentTime:d,...j}=t;return s("playbackRates",H,e),s("metadata",I,e),s("tokens",K,e),s("playbackId",U,e),s("paused",D,e,(l,u)=>{u!=null&&(u?l.pause():l.play())},(l,u,z)=>l.hasAttribute("autoplay")&&!l.hasPlayed?!1:p(l,u,z)),s("currentTime",d!=null?d:0,e),a("abort",e,n),a("canplay",e,o),a("canplaythrough",e,r),a("emptied",e,i),a("loadstart",e,M),a("loadeddata",e,g),a("loadedmetadata",e,P),a("progress",e,b),a("durationchange",e,v),a("volumechange",e,x),a("ratechange",e,T),a("resize",e,R),a("waiting",e,h),a("play",e,k),a("playing",e,L),a("timeupdate",e,C),a("pause",e,O),a("seeking",e,S),a("seeked",e,w),a("stalled",e,G),a("suspend",e,V),a("ended",e,A),a("error",e,N),[j]},se=f(),le="mux-player-react",ue=y.forwardRef((e,t)=>{let n=re(null),o=E(n,t),[r]=ie(n,e);return y.createElement(oe,{ref:o,playerSoftwareName:le,playerSoftwareVersion:se,...r})}),Re=ue;export{ge as MediaError,Re as default};
2
2
  //# sourceMappingURL=index.mjs.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/index.tsx", "../src/common/utils.ts", "../src/useCombinedRefs.ts", "../src/useObjectPropEffect.ts", "../src/env.ts"],
4
- "sourcesContent": ["import React, { useEffect } from 'react';\nimport type { CSSProperties } from 'react';\nimport type { StreamTypes, PlaybackTypes, CmcdTypes } from '@mux/playback-core';\nimport { MediaError } from '@mux/mux-player';\nimport type MuxPlayerElement from '@mux/mux-player';\nimport type { Tokens } from '@mux/mux-player';\nimport { toNativeProps } from './common/utils';\nimport { useRef } from 'react';\nimport { useCombinedRefs } from './useCombinedRefs';\nimport useObjectPropEffect, { defaultHasChanged } from './useObjectPropEffect';\nimport { getPlayerVersion } from './env';\n\nexport { MediaError };\n\ntype ValueOf<T> = T[keyof T];\ninterface GenericEventListener<T extends Event = CustomEvent> {\n (evt: T): void;\n}\n\nexport type MuxPlayerRefAttributes = MuxPlayerElement;\ntype VideoApiAttributes = {\n currentTime: number;\n volume: number;\n paused: boolean;\n src: string | null;\n poster: string;\n playbackRate: number;\n playsInline: boolean;\n preload: string;\n crossOrigin: string;\n autoPlay: boolean | string;\n loop: boolean;\n muted: boolean;\n style: CSSProperties;\n};\n\ntype MuxMediaPropTypes = {\n audio: boolean;\n // envKey: Options[\"data\"][\"env_key\"];\n envKey: string;\n // debug: Options[\"debug\"] & Hls[\"config\"][\"debug\"];\n debug: boolean;\n disableCookies: boolean;\n // metadata: Partial<Options[\"data\"]>;\n metadata: { [k: string]: any };\n beaconCollectionDomain: string;\n customDomain: string;\n playbackId: string;\n preferPlayback: ValueOf<PlaybackTypes> | undefined;\n streamType: ValueOf<StreamTypes> | 'vod';\n startTime: number;\n preferCmcd: ValueOf<CmcdTypes> | undefined;\n children: never[];\n};\n\ninterface MuxPlayerElementEventMap extends HTMLVideoElementEventMap {}\n\nexport type MuxPlayerProps = {\n className?: string;\n hotkeys?: string;\n nohotkeys?: boolean;\n defaultHiddenCaptions?: boolean;\n playerSoftwareVersion?: string;\n playerSoftwareName?: string;\n forwardSeekOffset?: number;\n backwardSeekOffset?: number;\n metadataVideoId?: string;\n metadataVideoTitle?: string;\n metadataViewerUserId?: string;\n primaryColor?: string;\n secondaryColor?: string;\n placeholder?: string;\n playbackRates?: number[];\n defaultShowRemainingTime?: boolean;\n thumbnailTime?: number;\n title?: string;\n tokens?: Tokens;\n onAbort?: GenericEventListener<MuxPlayerElementEventMap['abort']>;\n onCanPlay?: GenericEventListener<MuxPlayerElementEventMap['canplay']>;\n onCanPlayThrough?: GenericEventListener<MuxPlayerElementEventMap['canplaythrough']>;\n onEmptied?: GenericEventListener<MuxPlayerElementEventMap['emptied']>;\n onLoadStart?: GenericEventListener<MuxPlayerElementEventMap['loadstart']>;\n onLoadedData?: GenericEventListener<MuxPlayerElementEventMap['loadeddata']>;\n onLoadedMetadata?: GenericEventListener<MuxPlayerElementEventMap['loadedmetadata']>;\n onProgress?: GenericEventListener<MuxPlayerElementEventMap['progress']>;\n onDurationChange?: GenericEventListener<MuxPlayerElementEventMap['durationchange']>;\n onVolumeChange?: GenericEventListener<MuxPlayerElementEventMap['volumechange']>;\n onRateChange?: GenericEventListener<MuxPlayerElementEventMap['ratechange']>;\n onResize?: GenericEventListener<MuxPlayerElementEventMap['resize']>;\n onWaiting?: GenericEventListener<MuxPlayerElementEventMap['waiting']>;\n onPlay?: GenericEventListener<MuxPlayerElementEventMap['play']>;\n onPlaying?: GenericEventListener<MuxPlayerElementEventMap['playing']>;\n onTimeUpdate?: GenericEventListener<MuxPlayerElementEventMap['timeupdate']>;\n onPause?: GenericEventListener<MuxPlayerElementEventMap['pause']>;\n onSeeking?: GenericEventListener<MuxPlayerElementEventMap['seeking']>;\n onSeeked?: GenericEventListener<MuxPlayerElementEventMap['seeked']>;\n onStalled?: GenericEventListener<MuxPlayerElementEventMap['stalled']>;\n onSuspend?: GenericEventListener<MuxPlayerElementEventMap['suspend']>;\n onEnded?: GenericEventListener<MuxPlayerElementEventMap['ended']>;\n onError?: GenericEventListener<MuxPlayerElementEventMap['error']>;\n // onPlayerReady?: EventListener;\n} & Partial<MuxMediaPropTypes> &\n Partial<VideoApiAttributes>;\n\nconst MuxPlayerInternal = React.forwardRef<MuxPlayerRefAttributes, MuxPlayerProps>(({ children, ...props }, ref) => {\n return React.createElement('mux-player', toNativeProps({ ...props, ref }), children);\n});\n\nconst useEventCallbackEffect = <K extends keyof MuxPlayerElementEventMap>(\n type: K,\n ref: // | ((instance: EventTarget | null) => void)\n React.MutableRefObject<MuxPlayerElement | null> | null | undefined,\n callback: GenericEventListener<MuxPlayerElementEventMap[K]> | undefined\n) => {\n return useEffect(() => {\n const eventTarget = ref?.current;\n if (!eventTarget || !callback) return;\n eventTarget.addEventListener(type, callback);\n return () => {\n eventTarget.removeEventListener(type, callback);\n };\n }, [ref?.current, callback]);\n};\n\nconst usePlayer = (\n ref: // | ((instance: EventTarget | null) => void)\n React.MutableRefObject<MuxPlayerElement | null> | null | undefined,\n props: MuxPlayerProps\n) => {\n const {\n onAbort,\n onCanPlay,\n onCanPlayThrough,\n onEmptied,\n onLoadStart,\n onLoadedData,\n onLoadedMetadata,\n onProgress,\n onDurationChange,\n onVolumeChange,\n onRateChange,\n onResize,\n onWaiting,\n onPlay,\n onPlaying,\n onTimeUpdate,\n onPause,\n onSeeking,\n onSeeked,\n onStalled,\n onSuspend,\n onEnded,\n onError,\n // onPlayerReady,\n metadata,\n tokens,\n paused,\n playbackId,\n playbackRates,\n currentTime,\n ...remainingProps\n } = props;\n useObjectPropEffect('playbackRates', playbackRates, ref);\n useObjectPropEffect('metadata', metadata, ref);\n useObjectPropEffect('tokens', tokens, ref);\n useObjectPropEffect('playbackId', playbackId, ref);\n useObjectPropEffect(\n 'paused',\n paused,\n ref,\n (playerEl: HTMLMediaElement, pausedVal?: boolean) => {\n if (pausedVal == null) return;\n if (pausedVal) {\n playerEl.pause();\n } else {\n playerEl.play();\n }\n },\n (playerEl, value, propName) => {\n if (playerEl.hasAttribute('autoplay') && !playerEl.hasPlayed) {\n return false;\n }\n return defaultHasChanged(playerEl, value, propName);\n }\n );\n // NOTE: Somewhere in the codebase, `currentTime` is getting cast to a number, resulting in `NaN` + an error.\n // This is a bandaid solution for now. (CJP)\n useObjectPropEffect('currentTime', currentTime ?? 0, ref);\n useEventCallbackEffect('abort', ref, onAbort);\n useEventCallbackEffect('canplay', ref, onCanPlay);\n useEventCallbackEffect('canplaythrough', ref, onCanPlayThrough);\n useEventCallbackEffect('emptied', ref, onEmptied);\n useEventCallbackEffect('loadstart', ref, onLoadStart);\n useEventCallbackEffect('loadeddata', ref, onLoadedData);\n useEventCallbackEffect('loadedmetadata', ref, onLoadedMetadata);\n useEventCallbackEffect('progress', ref, onProgress);\n useEventCallbackEffect('durationchange', ref, onDurationChange);\n useEventCallbackEffect('volumechange', ref, onVolumeChange);\n useEventCallbackEffect('ratechange', ref, onRateChange);\n useEventCallbackEffect('resize', ref, onResize);\n useEventCallbackEffect('waiting', ref, onWaiting);\n useEventCallbackEffect('play', ref, onPlay);\n useEventCallbackEffect('playing', ref, onPlaying);\n useEventCallbackEffect('timeupdate', ref, onTimeUpdate);\n useEventCallbackEffect('pause', ref, onPause);\n useEventCallbackEffect('seeking', ref, onSeeking);\n useEventCallbackEffect('seeked', ref, onSeeked);\n useEventCallbackEffect('stalled', ref, onStalled);\n useEventCallbackEffect('suspend', ref, onSuspend);\n useEventCallbackEffect('ended', ref, onEnded);\n useEventCallbackEffect('error', ref, onError);\n // useEventCallbackEffect('playerready', ref, onPlayerReady);\n return [remainingProps];\n};\n\nconst playerSoftwareVersion = getPlayerVersion();\nconst playerSoftwareName = 'mux-player-react';\n\nconst MuxPlayer = React.forwardRef<\n MuxPlayerRefAttributes,\n Omit<MuxPlayerProps, 'playerSoftwareVersion' | 'playerSoftwareName'>\n>((props, ref) => {\n const innerPlayerRef = useRef<MuxPlayerElement>(null);\n const playerRef = useCombinedRefs(innerPlayerRef, ref);\n const [remainingProps] = usePlayer(innerPlayerRef, props);\n\n return (\n <MuxPlayerInternal\n /** @TODO Fix types relationships (CJP) */\n ref={playerRef as typeof innerPlayerRef}\n playerSoftwareName={playerSoftwareName}\n playerSoftwareVersion={playerSoftwareVersion}\n {...remainingProps}\n />\n );\n});\n\nexport default MuxPlayer;\n", "// NOTE: As a forward-looking implementation, we may want to assume\n// prop names -> attribute names is always a simple name.toLowerCase()\n// and provide a mechanism for passing in per-component overrides for\n// e.g. kebab cases, as that's the way React/Preact handles these. (CJP)\nconst ReactPropToAttrNameMap = {\n className: 'class',\n classname: 'class',\n htmlFor: 'for',\n crossOrigin: 'crossorigin',\n viewBox: 'viewBox',\n playsInline: 'playsinline',\n autoPlay: 'autoplay',\n playbackRate: 'playbackrate',\n};\n\ntype KeyTypes = string | number | symbol;\n\nexport const isNil = (x: unknown): x is null | undefined => x == undefined;\n\n// Type Guard to determine if a given key is actually a key of some object of type T\nexport const isKeyOf = <T = unknown>(k: KeyTypes, o: T): k is keyof T => {\n if (isNil(o)) return false;\n return k in o;\n};\n\nconst toKebabCase = (string: string) => string.replace(/[A-Z]/g, (match) => `-${match.toLowerCase()}`);\n\nexport const toNativeAttrName = (propName: string, propValue: any): string | undefined => {\n if (typeof propValue === 'boolean' && !propValue) return undefined;\n if (isKeyOf(propName, ReactPropToAttrNameMap)) return ReactPropToAttrNameMap[propName];\n if (typeof propValue == undefined) return undefined;\n if (/[A-Z]/.test(propName)) return toKebabCase(propName);\n return propName;\n};\nexport const toStyleAttr = <T>(x: T) => x;\n\nexport const toNativeAttrValue = (propValue: any, propName: string) => {\n if (typeof propValue === 'boolean') return '';\n return propValue;\n};\n\nexport const toNativeProps = (props = {}) => {\n return Object.entries(props).reduce<{ [k: string]: string }>((transformedProps, [propName, propValue]) => {\n const attrName = toNativeAttrName(propName, propValue);\n\n // prop was stripped. Don't add.\n if (!attrName) {\n return transformedProps;\n }\n\n const attrValue = toNativeAttrValue(propValue, propName);\n transformedProps[attrName] = attrValue;\n return transformedProps;\n }, {});\n};\n", "import { useEffect, useRef } from 'react';\nimport type { MutableRefObject, ForwardedRef } from 'react';\n\ntype Maybe<T> = T | null | undefined;\ntype RefCb<T> = (instance: Maybe<T>) => void;\ntype RefObj<T> = MutableRefObject<Maybe<T>>;\ntype RefTypes<T> = RefObj<T> | RefCb<T> | ForwardedRef<T>;\ninterface useCombinedRefs {\n <T>(...refs: Maybe<RefTypes<T>>[]): RefObj<T>;\n}\n\nexport const useCombinedRefs: useCombinedRefs = (...refs) => {\n const targetRef = useRef(null);\n\n useEffect(() => {\n refs.forEach((ref) => {\n if (!ref) return;\n\n if (typeof ref === 'function') {\n ref(targetRef.current);\n } else {\n ref.current = targetRef.current;\n }\n });\n }, [refs]);\n\n return targetRef;\n};\n\n// TS assumed default export was interface def instead of function value (CJP)\nconst defaultUseCombinedRefs = useCombinedRefs;\nexport default defaultUseCombinedRefs;\n", "import { useEffect } from 'react';\n\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\n\n/**\n * Slightly modified version of React's shallowEqual, with optimizations for Arrays\n * so we may treat them specifically as unequal if they are not a) both arrays\n * or b) don't contain the same (shallowly compared) elements.\n */\nconst shallowEqual = (objA: any, objB: any): boolean => {\n if (Object.is(objA, objB)) {\n return true;\n }\n\n if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {\n return false;\n }\n\n if (Array.isArray(objA)) {\n // Early \"cheap\" array compares\n if (!Array.isArray(objB) || objA.length !== objB.length) return false;\n // Shallow compare for arrays\n return objA.some((vVal, i) => objB[i] === vVal);\n }\n\n const keysA = Object.keys(objA);\n const keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n // Test for A's keys different from B.\n for (let i = 0; i < keysA.length; i++) {\n if (!hasOwnProperty.call(objB, keysA[i]) || !Object.is(objA[keysA[i]], objB[keysA[i]])) {\n return false;\n }\n }\n\n return true;\n};\n\nexport const defaultHasChanged = (obj: any, v: any, k: string) => {\n return !shallowEqual(v, obj[k]);\n};\n\nconst defaultUpdateValue = (obj: any, v: any, k: string) => {\n obj[k] = v;\n};\n\nexport const useObjectPropEffect = <T extends { [k: string]: any }, V>(\n propName: string,\n propValue: V | null | undefined,\n ref: React.MutableRefObject<T | null> | null | undefined,\n updateValue = defaultUpdateValue,\n hasChanged = defaultHasChanged\n) => {\n return useEffect(() => {\n const obj = ref?.current;\n if (!obj) return;\n if (!hasChanged(obj, propValue, propName)) return;\n updateValue(obj, propValue, propName);\n }, [ref?.current, propValue]);\n};\n\nexport default useObjectPropEffect;\n", "const getEnvPlayerVersion = () => {\n try {\n // @ts-ignore\n return PLAYER_VERSION as string;\n } catch {}\n return 'UNKNOWN';\n};\n\nconst player_version: string = getEnvPlayerVersion();\n\nexport const getPlayerVersion = () => player_version;\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import React, { useEffect } from 'react';\nimport type { CSSProperties } from 'react';\nimport type { StreamTypes, PlaybackTypes, CmcdTypes } from '@mux/playback-core';\nimport { MediaError } from '@mux/mux-player';\nimport type MuxPlayerElement from '@mux/mux-player';\nimport type { Tokens } from '@mux/mux-player';\nimport { toNativeProps } from './common/utils';\nimport { useRef } from 'react';\nimport { useCombinedRefs } from './useCombinedRefs';\nimport useObjectPropEffect, { defaultHasChanged } from './useObjectPropEffect';\nimport { getPlayerVersion } from './env';\n\nexport { MediaError };\n\ntype ValueOf<T> = T[keyof T];\ninterface GenericEventListener<T extends Event = CustomEvent> {\n (evt: T): void;\n}\n\nexport type MuxPlayerRefAttributes = MuxPlayerElement;\ntype VideoApiAttributes = {\n currentTime: number;\n volume: number;\n paused: boolean;\n src: string | null;\n poster: string;\n playbackRate: number;\n playsInline: boolean;\n preload: string;\n crossOrigin: string;\n autoPlay: boolean | string;\n loop: boolean;\n muted: boolean;\n style: CSSProperties;\n};\n\ntype MuxMediaPropTypes = {\n audio: boolean;\n // envKey: Options[\"data\"][\"env_key\"];\n envKey: string;\n // debug: Options[\"debug\"] & Hls[\"config\"][\"debug\"];\n debug: boolean;\n disableCookies: boolean;\n // metadata: Partial<Options[\"data\"]>;\n metadata: { [k: string]: any };\n beaconCollectionDomain: string;\n customDomain: string;\n playbackId: string;\n preferPlayback: ValueOf<PlaybackTypes> | undefined;\n streamType: ValueOf<StreamTypes> | 'vod';\n startTime: number;\n storyboardSrc: string;\n preferCmcd: ValueOf<CmcdTypes> | undefined;\n children: never[];\n};\n\ninterface MuxPlayerElementEventMap extends HTMLVideoElementEventMap {}\n\nexport type MuxPlayerProps = {\n className?: string;\n hotkeys?: string;\n nohotkeys?: boolean;\n defaultHiddenCaptions?: boolean;\n playerSoftwareVersion?: string;\n playerSoftwareName?: string;\n forwardSeekOffset?: number;\n backwardSeekOffset?: number;\n metadataVideoId?: string;\n metadataVideoTitle?: string;\n metadataViewerUserId?: string;\n primaryColor?: string;\n secondaryColor?: string;\n placeholder?: string;\n playbackRates?: number[];\n defaultShowRemainingTime?: boolean;\n thumbnailTime?: number;\n title?: string;\n tokens?: Tokens;\n onAbort?: GenericEventListener<MuxPlayerElementEventMap['abort']>;\n onCanPlay?: GenericEventListener<MuxPlayerElementEventMap['canplay']>;\n onCanPlayThrough?: GenericEventListener<MuxPlayerElementEventMap['canplaythrough']>;\n onEmptied?: GenericEventListener<MuxPlayerElementEventMap['emptied']>;\n onLoadStart?: GenericEventListener<MuxPlayerElementEventMap['loadstart']>;\n onLoadedData?: GenericEventListener<MuxPlayerElementEventMap['loadeddata']>;\n onLoadedMetadata?: GenericEventListener<MuxPlayerElementEventMap['loadedmetadata']>;\n onProgress?: GenericEventListener<MuxPlayerElementEventMap['progress']>;\n onDurationChange?: GenericEventListener<MuxPlayerElementEventMap['durationchange']>;\n onVolumeChange?: GenericEventListener<MuxPlayerElementEventMap['volumechange']>;\n onRateChange?: GenericEventListener<MuxPlayerElementEventMap['ratechange']>;\n onResize?: GenericEventListener<MuxPlayerElementEventMap['resize']>;\n onWaiting?: GenericEventListener<MuxPlayerElementEventMap['waiting']>;\n onPlay?: GenericEventListener<MuxPlayerElementEventMap['play']>;\n onPlaying?: GenericEventListener<MuxPlayerElementEventMap['playing']>;\n onTimeUpdate?: GenericEventListener<MuxPlayerElementEventMap['timeupdate']>;\n onPause?: GenericEventListener<MuxPlayerElementEventMap['pause']>;\n onSeeking?: GenericEventListener<MuxPlayerElementEventMap['seeking']>;\n onSeeked?: GenericEventListener<MuxPlayerElementEventMap['seeked']>;\n onStalled?: GenericEventListener<MuxPlayerElementEventMap['stalled']>;\n onSuspend?: GenericEventListener<MuxPlayerElementEventMap['suspend']>;\n onEnded?: GenericEventListener<MuxPlayerElementEventMap['ended']>;\n onError?: GenericEventListener<MuxPlayerElementEventMap['error']>;\n // onPlayerReady?: EventListener;\n} & Partial<MuxMediaPropTypes> &\n Partial<VideoApiAttributes>;\n\nconst MuxPlayerInternal = React.forwardRef<MuxPlayerRefAttributes, MuxPlayerProps>(({ children, ...props }, ref) => {\n return React.createElement('mux-player', toNativeProps({ ...props, ref }), children);\n});\n\nconst useEventCallbackEffect = <K extends keyof MuxPlayerElementEventMap>(\n type: K,\n ref: // | ((instance: EventTarget | null) => void)\n React.MutableRefObject<MuxPlayerElement | null> | null | undefined,\n callback: GenericEventListener<MuxPlayerElementEventMap[K]> | undefined\n) => {\n return useEffect(() => {\n const eventTarget = ref?.current;\n if (!eventTarget || !callback) return;\n eventTarget.addEventListener(type, callback);\n return () => {\n eventTarget.removeEventListener(type, callback);\n };\n }, [ref?.current, callback]);\n};\n\nconst usePlayer = (\n ref: // | ((instance: EventTarget | null) => void)\n React.MutableRefObject<MuxPlayerElement | null> | null | undefined,\n props: MuxPlayerProps\n) => {\n const {\n onAbort,\n onCanPlay,\n onCanPlayThrough,\n onEmptied,\n onLoadStart,\n onLoadedData,\n onLoadedMetadata,\n onProgress,\n onDurationChange,\n onVolumeChange,\n onRateChange,\n onResize,\n onWaiting,\n onPlay,\n onPlaying,\n onTimeUpdate,\n onPause,\n onSeeking,\n onSeeked,\n onStalled,\n onSuspend,\n onEnded,\n onError,\n // onPlayerReady,\n metadata,\n tokens,\n paused,\n playbackId,\n playbackRates,\n currentTime,\n ...remainingProps\n } = props;\n useObjectPropEffect('playbackRates', playbackRates, ref);\n useObjectPropEffect('metadata', metadata, ref);\n useObjectPropEffect('tokens', tokens, ref);\n useObjectPropEffect('playbackId', playbackId, ref);\n useObjectPropEffect(\n 'paused',\n paused,\n ref,\n (playerEl: HTMLMediaElement, pausedVal?: boolean) => {\n if (pausedVal == null) return;\n if (pausedVal) {\n playerEl.pause();\n } else {\n playerEl.play();\n }\n },\n (playerEl, value, propName) => {\n if (playerEl.hasAttribute('autoplay') && !playerEl.hasPlayed) {\n return false;\n }\n return defaultHasChanged(playerEl, value, propName);\n }\n );\n // NOTE: Somewhere in the codebase, `currentTime` is getting cast to a number, resulting in `NaN` + an error.\n // This is a bandaid solution for now. (CJP)\n useObjectPropEffect('currentTime', currentTime ?? 0, ref);\n useEventCallbackEffect('abort', ref, onAbort);\n useEventCallbackEffect('canplay', ref, onCanPlay);\n useEventCallbackEffect('canplaythrough', ref, onCanPlayThrough);\n useEventCallbackEffect('emptied', ref, onEmptied);\n useEventCallbackEffect('loadstart', ref, onLoadStart);\n useEventCallbackEffect('loadeddata', ref, onLoadedData);\n useEventCallbackEffect('loadedmetadata', ref, onLoadedMetadata);\n useEventCallbackEffect('progress', ref, onProgress);\n useEventCallbackEffect('durationchange', ref, onDurationChange);\n useEventCallbackEffect('volumechange', ref, onVolumeChange);\n useEventCallbackEffect('ratechange', ref, onRateChange);\n useEventCallbackEffect('resize', ref, onResize);\n useEventCallbackEffect('waiting', ref, onWaiting);\n useEventCallbackEffect('play', ref, onPlay);\n useEventCallbackEffect('playing', ref, onPlaying);\n useEventCallbackEffect('timeupdate', ref, onTimeUpdate);\n useEventCallbackEffect('pause', ref, onPause);\n useEventCallbackEffect('seeking', ref, onSeeking);\n useEventCallbackEffect('seeked', ref, onSeeked);\n useEventCallbackEffect('stalled', ref, onStalled);\n useEventCallbackEffect('suspend', ref, onSuspend);\n useEventCallbackEffect('ended', ref, onEnded);\n useEventCallbackEffect('error', ref, onError);\n // useEventCallbackEffect('playerready', ref, onPlayerReady);\n return [remainingProps];\n};\n\nconst playerSoftwareVersion = getPlayerVersion();\nconst playerSoftwareName = 'mux-player-react';\n\nconst MuxPlayer = React.forwardRef<\n MuxPlayerRefAttributes,\n Omit<MuxPlayerProps, 'playerSoftwareVersion' | 'playerSoftwareName'>\n>((props, ref) => {\n const innerPlayerRef = useRef<MuxPlayerElement>(null);\n const playerRef = useCombinedRefs(innerPlayerRef, ref);\n const [remainingProps] = usePlayer(innerPlayerRef, props);\n\n return (\n <MuxPlayerInternal\n /** @TODO Fix types relationships (CJP) */\n ref={playerRef as typeof innerPlayerRef}\n playerSoftwareName={playerSoftwareName}\n playerSoftwareVersion={playerSoftwareVersion}\n {...remainingProps}\n />\n );\n});\n\nexport default MuxPlayer;\n", "// NOTE: As a forward-looking implementation, we may want to assume\n// prop names -> attribute names is always a simple name.toLowerCase()\n// and provide a mechanism for passing in per-component overrides for\n// e.g. kebab cases, as that's the way React/Preact handles these. (CJP)\nconst ReactPropToAttrNameMap = {\n className: 'class',\n classname: 'class',\n htmlFor: 'for',\n crossOrigin: 'crossorigin',\n viewBox: 'viewBox',\n playsInline: 'playsinline',\n autoPlay: 'autoplay',\n playbackRate: 'playbackrate',\n};\n\ntype KeyTypes = string | number | symbol;\ntype Maybe<T> = T | null | undefined;\n\nexport const isNil = (x: unknown): x is null | undefined => x == undefined;\n\n// Type Guard to determine if a given key is actually a key of some object of type T\nexport const isKeyOf = <T extends {} = any>(k: KeyTypes, o: Maybe<T>): k is keyof T => {\n if (isNil(o)) return false;\n return k in o;\n};\n\nconst toKebabCase = (string: string) => string.replace(/[A-Z]/g, (match) => `-${match.toLowerCase()}`);\n\nexport const toNativeAttrName = (propName: string, propValue: any): string | undefined => {\n if (typeof propValue === 'boolean' && !propValue) return undefined;\n if (isKeyOf(propName, ReactPropToAttrNameMap)) return ReactPropToAttrNameMap[propName];\n if (typeof propValue == undefined) return undefined;\n if (/[A-Z]/.test(propName)) return toKebabCase(propName);\n return propName;\n};\nexport const toStyleAttr = <T>(x: T) => x;\n\nexport const toNativeAttrValue = (propValue: any, propName: string) => {\n if (typeof propValue === 'boolean') return '';\n return propValue;\n};\n\nexport const toNativeProps = (props = {}) => {\n return Object.entries(props).reduce<{ [k: string]: string }>((transformedProps, [propName, propValue]) => {\n const attrName = toNativeAttrName(propName, propValue);\n\n // prop was stripped. Don't add.\n if (!attrName) {\n return transformedProps;\n }\n\n const attrValue = toNativeAttrValue(propValue, propName);\n transformedProps[attrName] = attrValue;\n return transformedProps;\n }, {});\n};\n", "import { useEffect, useRef } from 'react';\nimport type { MutableRefObject, ForwardedRef } from 'react';\n\ntype Maybe<T> = T | null | undefined;\ntype RefCb<T> = (instance: Maybe<T>) => void;\ntype RefObj<T> = MutableRefObject<Maybe<T>>;\ntype RefTypes<T> = RefObj<T> | RefCb<T> | ForwardedRef<T>;\ninterface useCombinedRefs {\n <T>(...refs: Maybe<RefTypes<T>>[]): RefObj<T>;\n}\n\nexport const useCombinedRefs: useCombinedRefs = (...refs) => {\n const targetRef = useRef(null);\n\n useEffect(() => {\n refs.forEach((ref) => {\n if (!ref) return;\n\n if (typeof ref === 'function') {\n ref(targetRef.current);\n } else {\n ref.current = targetRef.current;\n }\n });\n }, [refs]);\n\n return targetRef;\n};\n\n// TS assumed default export was interface def instead of function value (CJP)\nconst defaultUseCombinedRefs = useCombinedRefs;\nexport default defaultUseCombinedRefs;\n", "import { useEffect } from 'react';\n\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\n\n/**\n * Slightly modified version of React's shallowEqual, with optimizations for Arrays\n * so we may treat them specifically as unequal if they are not a) both arrays\n * or b) don't contain the same (shallowly compared) elements.\n */\nconst shallowEqual = (objA: any, objB: any): boolean => {\n if (Object.is(objA, objB)) {\n return true;\n }\n\n if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {\n return false;\n }\n\n if (Array.isArray(objA)) {\n // Early \"cheap\" array compares\n if (!Array.isArray(objB) || objA.length !== objB.length) return false;\n // Shallow compare for arrays\n return objA.some((vVal, i) => objB[i] === vVal);\n }\n\n const keysA = Object.keys(objA);\n const keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n // Test for A's keys different from B.\n for (let i = 0; i < keysA.length; i++) {\n if (!hasOwnProperty.call(objB, keysA[i]) || !Object.is(objA[keysA[i]], objB[keysA[i]])) {\n return false;\n }\n }\n\n return true;\n};\n\nexport const defaultHasChanged = (obj: any, v: any, k: string) => {\n return !shallowEqual(v, obj[k]);\n};\n\nconst defaultUpdateValue = (obj: any, v: any, k: string) => {\n obj[k] = v;\n};\n\nexport const useObjectPropEffect = <T extends { [k: string]: any }, V>(\n propName: string,\n propValue: V | null | undefined,\n ref: React.MutableRefObject<T | null> | null | undefined,\n updateValue = defaultUpdateValue,\n hasChanged = defaultHasChanged\n) => {\n return useEffect(() => {\n const obj = ref?.current;\n if (!obj) return;\n if (!hasChanged(obj, propValue, propName)) return;\n updateValue(obj, propValue, propName);\n }, [ref?.current, propValue]);\n};\n\nexport default useObjectPropEffect;\n", "const getEnvPlayerVersion = () => {\n try {\n // @ts-ignore\n return PLAYER_VERSION as string;\n } catch {}\n return 'UNKNOWN';\n};\n\nconst player_version: string = getEnvPlayerVersion();\n\nexport const getPlayerVersion = () => player_version;\n"],
5
+ "mappings": "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",
6
6
  "names": ["React", "useEffect", "MediaError", "ReactPropToAttrNameMap", "isNil", "x", "isKeyOf", "k", "o", "toKebabCase", "string", "match", "toNativeAttrName", "propName", "propValue", "toNativeAttrValue", "propValue", "propName", "toNativeProps", "props", "transformedProps", "attrName", "toNativeAttrName", "attrValue", "useRef", "useEffect", "useRef", "useCombinedRefs", "refs", "targetRef", "ref", "useEffect", "hasOwnProperty", "shallowEqual", "objA", "objB", "vVal", "keysA", "keysB", "i", "defaultHasChanged", "obj", "v", "k", "defaultUpdateValue", "useObjectPropEffect", "propName", "propValue", "ref", "updateValue", "hasChanged", "useObjectPropEffect_default", "getEnvPlayerVersion", "player_version", "getPlayerVersion", "MuxPlayerInternal", "React", "children", "props", "ref", "toNativeProps", "useEventCallbackEffect", "type", "callback", "useEffect", "eventTarget", "usePlayer", "onAbort", "onCanPlay", "onCanPlayThrough", "onEmptied", "onLoadStart", "onLoadedData", "onLoadedMetadata", "onProgress", "onDurationChange", "onVolumeChange", "onRateChange", "onResize", "onWaiting", "onPlay", "onPlaying", "onTimeUpdate", "onPause", "onSeeking", "onSeeked", "onStalled", "onSuspend", "onEnded", "onError", "metadata", "tokens", "paused", "playbackId", "playbackRates", "currentTime", "remainingProps", "useObjectPropEffect_default", "playerEl", "pausedVal", "value", "propName", "defaultHasChanged", "playerSoftwareVersion", "getPlayerVersion", "playerSoftwareName", "MuxPlayer", "innerPlayerRef", "useRef", "playerRef", "useCombinedRefs", "src_default"]
7
7
  }
package/dist/lazy.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import o,{useEffect as P,useState as g}from"react";import i,{Suspense as d}from"react";var y=({condition:r,fallback:t,children:s,...e})=>r?i.createElement(d,{fallback:t,...e},s):i.createElement(i.Fragment,null,t),c=y;import{useState as m,useEffect as f}from"react";var b=()=>{let[r,t]=m(!1);return f(()=>{typeof window!="undefined"&&t(!0)},[]),r},p=b;import{useState as x,useEffect as h}from"react";var I=(r,t)=>{let[s,e]=x(!1);return h(()=>{if(typeof IntersectionObserver=="function"){let a=new IntersectionObserver(([n])=>{e(n.isIntersecting)},t);return r.current&&a.observe(r.current),()=>{a.disconnect()}}},[r,t]),s},u=I;var v=o.lazy(()=>import("./-DF7QULBM.mjs")),M=r=>{let{style:t,className:s,onIntersection:e,placeholder:a}=r,n=o.useRef(null),l=u(n);return P(()=>{l&&e&&e()},[l,e]),o.createElement(o.Fragment,null,o.createElement("mux-player",{ref:n,"data-mux-player-react-lazy-placeholder":!0,placeholder:a,style:{"--mux-player-react-lazy-placeholder":a?`url(${a});`:"",...t},className:s||"",nohotkeys:!0,"aria-hidden":!0,tabIndex:-1},o.createElement("div",{"data-mux-player-react-lazy-placeholder-overlay":!0})),o.createElement("style",null,`
1
+ import o,{useEffect as P,useState as g}from"react";import i,{Suspense as d}from"react";var y=({condition:r,fallback:t,children:s,...e})=>r?i.createElement(d,{fallback:t,...e},s):i.createElement(i.Fragment,null,t),c=y;import{useState as m,useEffect as f}from"react";var b=()=>{let[r,t]=m(!1);return f(()=>{typeof window!="undefined"&&t(!0)},[]),r},p=b;import{useState as x,useEffect as h}from"react";var I=(r,t)=>{let[s,e]=x(!1);return h(()=>{if(typeof IntersectionObserver=="function"){let a=new IntersectionObserver(([n])=>{e(n.isIntersecting)},t);return r.current&&a.observe(r.current),()=>{a.disconnect()}}},[r,t]),s},u=I;var v=o.lazy(()=>import("./-DSLFYLAF.mjs")),M=r=>{let{style:t,className:s,onIntersection:e,placeholder:a}=r,n=o.useRef(null),l=u(n);return P(()=>{l&&e&&e()},[l,e]),o.createElement(o.Fragment,null,o.createElement("mux-player",{ref:n,"data-mux-player-react-lazy-placeholder":!0,placeholder:a,style:{"--mux-player-react-lazy-placeholder":a?`url(${a});`:"",...t},className:s||"",nohotkeys:!0,"aria-hidden":!0,tabIndex:-1},o.createElement("div",{"data-mux-player-react-lazy-placeholder-overlay":!0})),o.createElement("style",null,`
2
2
  mux-player[data-mux-player-react-lazy-placeholder] {
3
3
  aspect-ratio: 16/9;
4
4
  display: block;
@@ -1 +1 @@
1
- {"program":{"fileNames":["../../../node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/typescript/lib/lib.dom.d.ts","../../../node_modules/typescript/lib/lib.dom.iterable.d.ts","../../../node_modules/typescript/lib/lib.webworker.importscripts.d.ts","../../../node_modules/typescript/lib/lib.scripthost.d.ts","../../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2019.full.d.ts","../../../node_modules/@types/react/global.d.ts","../../../node_modules/csstype/index.d.ts","../../../node_modules/@types/prop-types/index.d.ts","../../../node_modules/@types/scheduler/tracing.d.ts","../../../node_modules/@types/react/index.d.ts","../src/ConditionalSuspense.tsx","../src/env.ts","../../../node_modules/hls.js/dist/hls.js.d.ts","../../playback-core/dist/types/errors.d.ts","../../playback-core/dist/types/tracks.d.ts","../../playback-core/dist/types/types.d.ts","../../playback-core/dist/types/index.d.ts","../../../node_modules/media-chrome/dist/constants.d.ts","../../../node_modules/media-chrome/dist/labels/labels.d.ts","../../../node_modules/media-chrome/dist/utils/time.d.ts","../../../node_modules/media-chrome/dist/media-chrome-button.d.ts","../../../node_modules/media-chrome/dist/media-airplay-button.d.ts","../../../node_modules/media-chrome/dist/media-cast-button.d.ts","../../../node_modules/media-chrome/dist/media-gesture-receiver.d.ts","../../../node_modules/media-chrome/dist/media-container.d.ts","../../../node_modules/media-chrome/dist/utils/attribute-token-list.d.ts","../../../node_modules/media-chrome/dist/media-controller.d.ts","../../../node_modules/media-chrome/dist/media-chrome-range.d.ts","../../../node_modules/media-chrome/dist/media-control-bar.d.ts","../../../node_modules/media-chrome/dist/media-text-display.d.ts","../../../node_modules/media-chrome/dist/media-current-time-display.d.ts","../../../node_modules/media-chrome/dist/media-duration-display.d.ts","../../../node_modules/media-chrome/dist/media-time-display.d.ts","../../../node_modules/media-chrome/dist/media-captions-button.d.ts","../../../node_modules/media-chrome/dist/media-seek-forward-button.d.ts","../../../node_modules/media-chrome/dist/media-fullscreen-button.d.ts","../../../node_modules/media-chrome/dist/media-mute-button.d.ts","../../../node_modules/media-chrome/dist/media-pip-button.d.ts","../../../node_modules/media-chrome/dist/media-play-button.d.ts","../../../node_modules/media-chrome/dist/media-playback-rate-button.d.ts","../../../node_modules/media-chrome/dist/media-poster-image.d.ts","../../../node_modules/media-chrome/dist/media-time-range.d.ts","../../../node_modules/media-chrome/dist/media-progress-range.d.ts","../../../node_modules/media-chrome/dist/media-seek-backward-button.d.ts","../../../node_modules/media-chrome/dist/media-preview-time-display.d.ts","../../../node_modules/media-chrome/dist/media-preview-thumbnail.d.ts","../../../node_modules/media-chrome/dist/media-title-element.d.ts","../../../node_modules/media-chrome/dist/media-loading-indicator.d.ts","../../../node_modules/media-chrome/dist/media-volume-range.d.ts","../../../node_modules/media-chrome/dist/themes/media-theme.d.ts","../../../node_modules/media-chrome/dist/index.d.ts","../../mux-video/dist/types/CustomVideoElement.d.ts","../../mux-video/dist/types/index.d.ts","../../../shared/polyfills/index.d.ts","../../mux-player/dist/types/video-api.d.ts","../../mux-player/dist/types/helpers.d.ts","../../mux-player/dist/types/index.d.ts","../src/common/utils.ts","../src/useCombinedRefs.ts","../src/useObjectPropEffect.ts","../src/index.tsx","../src/useIsBrowser.ts","../src/useIsIntersecting.ts","../src/lazy.tsx","../../../types/media-chrome.d.ts","../../../types/mux-embed.d.ts","../../../types/mux.d.ts"],"fileInfos":[{"version":"3ac1b83264055b28c0165688fda6dfcc39001e9e7828f649299101c23ad0a0c3","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","e6b724280c694a9f588847f754198fb96c43d805f065c3a5b28bbc9594541c84",{"version":"72704b10d97777e15f1a581b73f88273037ef752d2e50b72287bd0a90af64fe6","affectsGlobalScope":true},{"version":"dbb73d4d99be496175cb432c74c2615f78c76f4272f1d83cba11ee0ed6dbddf0","affectsGlobalScope":true},{"version":"7fac8cb5fc820bc2a59ae11ef1c5b38d3832c6d0dfaec5acdb5569137d09a481","affectsGlobalScope":true},{"version":"097a57355ded99c68e6df1b738990448e0bf170e606707df5a7c0481ff2427cd","affectsGlobalScope":true},{"version":"d8996609230d17e90484a2dd58f22668f9a05a3bfe00bfb1d6271171e54a31fb","affectsGlobalScope":true},{"version":"43fb1d932e4966a39a41b464a12a81899d9ae5f2c829063f5571b6b87e6d2f9c","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"c5c05907c02476e4bde6b7e76a79ffcd948aedd14b6a8f56e4674221b0417398","affectsGlobalScope":true},{"version":"0d5f52b3174bee6edb81260ebcd792692c32c81fd55499d69531496f3f2b25e7","affectsGlobalScope":true},{"version":"810627a82ac06fb5166da5ada4159c4ec11978dfbb0805fe804c86406dab8357","affectsGlobalScope":true},{"version":"62d80405c46c3f4c527ee657ae9d43fda65a0bf582292429aea1e69144a522a6","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"75ec0bdd727d887f1b79ed6619412ea72ba3c81d92d0787ccb64bab18d261f14","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"12a310447c5d23c7d0d5ca2af606e3bd08afda69100166730ab92c62999ebb9d","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"d154ea5bb7f7f9001ed9153e876b2d5b8f5c2bb9ec02b3ae0d239ec769f1f2ae","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"6e7997ef61de3132e4d4b2250e75343f487903ddf5370e7ce33cf1b9db9a63ed","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},"1f03b495671c3a1bd24510f38b8947f0991dfd6bf0278c68eca14af15b306e1f",{"version":"bbdf156fea2fabed31a569445835aeedcc33643d404fcbaa54541f06c109df3f","affectsGlobalScope":true},"ea0aa24a32c073b8639aa1f3130ba0add0f0f2f76b314d9ba988a5cb91d7e3c4","6a386ff939f180ae8ef064699d8b7b6e62bc2731a62d7fbf5e02589383838dea","f5a8b384f182b3851cec3596ccc96cb7464f8d3469f48c74bf2befb782a19de5",{"version":"0bcebfaf66be25c793d0281a8dce761bc078d203f02c573e6ee3b844a5ad7fbc","affectsGlobalScope":true},"6d3aae02e573b4424749a17ecde853c18195fd6f08297da64aa7fff2057bb7c9","a6b7e3c103b4424b9c9d6dce7f059c16bbf037844b9f418775b86506d3d141d4","3359566cd3e1d64199b5cc028817490162edcf5aa7954f35133a462a507cdb48","8b1a6692156440f6585937b6b8de1c2692e7cac5c43aeb8893bfbd293f719552","16d89c2619e5c73fe784212aa78a4c3f6581d54e5bb566a942dfd4598c974370","aa9b5fdd9c8600626b93be161dfafd4d499c9f1fb7c5844113680406ce375c97","9e27729cf561fb0950e75cbcf2007aed5c408868c0646f08e03f1326f5ddbbee","25831ab1e1a654b8a092a34b3a9511f82854d9cce76d995d7f8a9313fe0bb423","1bca2772bfe6da518ab061f96c01d7d71485b9afe80ea04048d468b6f081889c","f42c69e41a1c031b1bb2339d2bd05de3164ab8562cfbd9162d5b7a7cccb98ea8","d11911d6ffb045581d9a42a3dc362310506a2211fd6731992e1efa94bfd55106","0be2f20bdaf1332b336178ffb56644f023458ec18d5a6cf2166ba96d1ddb5661","79e04a665d69d0edbf243a4356efc1801c039bdac192adf7626c385f0289e7a1","bd2b2593c4903b3cd56c6b275e4d0b9d77373e027f92692a8a12ad60bd57ef66","ba09a10e145c8858d8b1ad040445e7a6e1145b77a4214b908e52c3db0ca15b84","5259d9ca9b434d127b69ebb76f4b4d753b1806a648e0c7269a731a5e25620bca","fa81ff8bab4694283154796bfb102835259b87562b6b254295a2652ec192cf6d","b2c3bd6183d4d4dd331e2d1931df945edfafc74070107246dfad63e0936bbbf5","4eaf0a9c07db8027b3152ec4630bde92d9c4f79fd9368fc275ccc18a0f95c45a","e57981f45d914f2408da70a1466c714427059d2332bee02e3e42b93ffba1b45a","c336aa56ac18350ce9734a69610d02822eeeb2194c790c5fc09f85277383badd","7cc95cca975581a368480357dfc672ce8022a55d8be7cb93b7a43a112d8ee325","0f4b05ff0ab1fd751987cd35be61421da42578a84f9b3fe4a2252489c35efecd","416710f3b46d2a66fbaa6e76275cfd282c5794c073f892f925f062725c6f2a3a","175c1dcc31e458ed13d1655e2773e8c1a5345fda1d2993f8c09201490dd95054","49e54658266510cc6f5daf9ba6d0bec1f53e3031556fcd06973352eb319f9800","f01ae56812a493de0399df3c895a4214cfb79fce77b065729036beae1528f172","24e7c377150337f5db7c632f4bd41a483170d19c6476c9be6c77a7b53457cee1","778d1a9159f08ad0921b481f7d08d180f98c6f5733a6b7407ad22a24763a686b","f8717ae243f0805094acb6c03e658d335246e9d24e75f9f008f3ba164ed42dd9","b9ab77378dd701c92c9fa2a2496bb11ffa6fef070880b96a53058289ec8a310e","3387c30139c0be6d192983013c9fcabaf376e35ae1db6b0f2791234ef070f120","1796aacfb419bfc66657829643ee172d9f9de5dd1096584fb004c66b878f9947","0414571c06823f212a1aa34156e6889294d80c2dc788544648e3f4949f171a93","61c0a0dccdbcfeefa5c9d6a0d9e6732b58c45f7c165e9dd89966b21e33bd1be1","fad65da820bc5accd5a7f4b3c392f7e7d230f5fa379fe2139cbe531bca84b2ae","067aa0bdd09718bff596d4c1b0d47bd18433044939e043d781d0b700ed15513f","c3cd574d0de12f6ffa04aa6c2190ad264497ad538ab6d1241fc4481939d62795","661a04ad362b9833789c5b36613372e4c67475bb8c4af82abfb65d09d9a3d7ab","a60da6ee6249056864b64b5f0f319f8907ab03728cd39598bbe0ce45d579997f","5e32cdfb53d4bad9553c363ecabfd4728cd4cbbe89e8a9234f373fb935be5a3c","76f80c5148923283518d43aaf7d7a899936c99b725f40f44762b1faab876996d",{"version":"7b36b50dc9207bf631155637180531813760fdb079e0d8eb2fe0c1b74a6a2306","affectsGlobalScope":true},"9c0eebd3a0506c79c428ca5c9c7abd895645879bca18ca793d9d367518dbff31","68b87d79449a613f5b038d04d3beafdc5eed0bd41a200f10a6d5aabc919e8922","8d5d32b75da9b6acfc987d0ec4958b7f261fc7f8dfcf04642e4fc02a8f4f77bc","03d42d8d36af9ab628d313a0b6151f2c1d2f747ff12ce345ed572155a96f76be","dc49ec04a922acc03c828612b0145e57870b3acf22f9e023f5b1aa9b35070515","f21932f853b3dbd3949e14c7d31d2dcfba3418c5de50878884a54cf0ba14e904","721526438283d40d50c6356064d346f1c57693f7e9930a3854c20c73bf4380a5","6ad2e1b040e5b044f2171400933ce26fd22317b18e176e8a4ba196ce58180318","c7e2e472d0ba77ba41adc2422d0fb7e3eeada664eda67fbf2d1820cf6f9d49d5","3afe879128eb0bc263123450b8211b56d7afba72c95e820cb51224fe661546b1",{"version":"69eb47a8c68a18c54e78961b83da1a083e735bc9e87ca981db44e3c376838e81","affectsGlobalScope":true},"3cf4c7825a6c0ef1965e8906b85844aafdcdda9d95c8b4bcfcb3a20811cfd0b1","c5a4764697efe3b6b4eaf19b3dc1880cf3df665d30ec93e212233c29a2fa7207",{"version":"a092979673af6906d766c907c9bf0ae97c7bed1f0d9e69d870ce4d4505a51edd","affectsGlobalScope":true}],"options":{"composite":true,"declaration":true,"emitDeclarationOnly":true,"esModuleInterop":true,"jsx":2,"module":6,"noImplicitAny":true,"outDir":"./types","rootDir":"../src","skipLibCheck":true,"sourceMap":true,"strict":true,"target":6},"fileIdsList":[[36,37,38,39],[48,49,50,51,52,53,54,57,58,59,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80],[51],[55,56],[60],[72],[58],[40],[40,42,47,87,88,89,90],[40,41,91,92,93],[87],[47,83,85,86,95],[83,84],[47,82],[43,44,45,46,96],[43],[43,96]],"referencedMap":[[40,1],[81,2],[52,3],[64,3],[53,3],[57,4],[61,5],[62,5],[66,3],[67,3],[68,3],[69,3],[70,3],[75,5],[73,6],[74,3],[65,3],[63,5],[72,7],[79,7],[41,8],[91,9],[94,10],[89,8],[92,8],[93,8],[90,8],[86,11],[87,12],[85,13],[83,14],[47,15],[45,16],[46,17],[97,16]],"exportedModulesMap":[[40,1],[81,2],[52,3],[64,3],[53,3],[57,4],[61,5],[62,5],[66,3],[67,3],[68,3],[69,3],[70,3],[75,5],[73,6],[74,3],[65,3],[63,5],[72,7],[79,7],[41,8],[91,9],[94,10],[89,8],[92,8],[93,8],[90,8],[86,11],[87,12],[85,13],[83,14],[47,15],[45,16],[46,17],[97,16]],"semanticDiagnosticsPerFile":[38,36,40,39,37,43,48,81,49,52,64,53,51,58,55,59,57,61,62,66,54,78,67,68,69,70,71,76,75,73,74,65,60,63,72,77,79,80,56,50,7,8,12,11,2,13,14,15,16,17,18,19,20,3,4,24,21,22,23,25,26,27,5,28,29,30,31,6,35,32,33,34,1,10,9,41,88,42,91,94,89,92,93,90,86,87,85,82,83,44,47,45,46,84,95,96,97]},"version":"4.6.4"}
1
+ {"program":{"fileNames":["../../../node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/typescript/lib/lib.dom.d.ts","../../../node_modules/typescript/lib/lib.dom.iterable.d.ts","../../../node_modules/typescript/lib/lib.webworker.importscripts.d.ts","../../../node_modules/typescript/lib/lib.scripthost.d.ts","../../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../node_modules/typescript/lib/lib.es2019.full.d.ts","../../../node_modules/@types/react/global.d.ts","../../../node_modules/csstype/index.d.ts","../../../node_modules/@types/prop-types/index.d.ts","../../../node_modules/@types/scheduler/tracing.d.ts","../../../node_modules/@types/react/index.d.ts","../src/ConditionalSuspense.tsx","../src/env.ts","../../../node_modules/hls.js/dist/hls.js.d.ts","../../playback-core/dist/types/errors.d.ts","../../playback-core/dist/types/tracks.d.ts","../../playback-core/dist/types/types.d.ts","../../playback-core/dist/types/index.d.ts","../../../node_modules/media-chrome/dist/constants.d.ts","../../../node_modules/media-chrome/dist/labels/labels.d.ts","../../../node_modules/media-chrome/dist/utils/time.d.ts","../../../node_modules/media-chrome/dist/media-chrome-button.d.ts","../../../node_modules/media-chrome/dist/media-airplay-button.d.ts","../../../node_modules/media-chrome/dist/media-cast-button.d.ts","../../../node_modules/media-chrome/dist/media-gesture-receiver.d.ts","../../../node_modules/media-chrome/dist/media-container.d.ts","../../../node_modules/media-chrome/dist/utils/attribute-token-list.d.ts","../../../node_modules/media-chrome/dist/media-controller.d.ts","../../../node_modules/media-chrome/dist/media-chrome-range.d.ts","../../../node_modules/media-chrome/dist/media-control-bar.d.ts","../../../node_modules/media-chrome/dist/media-text-display.d.ts","../../../node_modules/media-chrome/dist/media-current-time-display.d.ts","../../../node_modules/media-chrome/dist/media-duration-display.d.ts","../../../node_modules/media-chrome/dist/media-time-display.d.ts","../../../node_modules/media-chrome/dist/media-captions-button.d.ts","../../../node_modules/media-chrome/dist/media-seek-forward-button.d.ts","../../../node_modules/media-chrome/dist/media-fullscreen-button.d.ts","../../../node_modules/media-chrome/dist/media-mute-button.d.ts","../../../node_modules/media-chrome/dist/media-pip-button.d.ts","../../../node_modules/media-chrome/dist/media-play-button.d.ts","../../../node_modules/media-chrome/dist/media-playback-rate-button.d.ts","../../../node_modules/media-chrome/dist/media-poster-image.d.ts","../../../node_modules/media-chrome/dist/media-time-range.d.ts","../../../node_modules/media-chrome/dist/media-progress-range.d.ts","../../../node_modules/media-chrome/dist/media-seek-backward-button.d.ts","../../../node_modules/media-chrome/dist/media-preview-time-display.d.ts","../../../node_modules/media-chrome/dist/media-preview-thumbnail.d.ts","../../../node_modules/media-chrome/dist/media-title-element.d.ts","../../../node_modules/media-chrome/dist/media-loading-indicator.d.ts","../../../node_modules/media-chrome/dist/media-volume-range.d.ts","../../../node_modules/media-chrome/dist/themes/media-theme.d.ts","../../../node_modules/media-chrome/dist/index.d.ts","../../mux-video/dist/types/CustomVideoElement.d.ts","../../mux-video/dist/types/index.d.ts","../../../shared/polyfills/index.d.ts","../../mux-player/dist/types/video-api.d.ts","../../mux-player/dist/types/helpers.d.ts","../../mux-player/dist/types/index.d.ts","../src/common/utils.ts","../src/useCombinedRefs.ts","../src/useObjectPropEffect.ts","../src/index.tsx","../src/useIsBrowser.ts","../src/useIsIntersecting.ts","../src/lazy.tsx","../../../types/media-chrome.d.ts","../../../types/mux-embed.d.ts","../../../types/mux.d.ts"],"fileInfos":[{"version":"8730f4bf322026ff5229336391a18bcaa1f94d4f82416c8b2f3954e2ccaae2ba","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","4b421cbfb3a38a27c279dec1e9112c3d1da296f77a1a85ddadf7e7a425d45d18",{"version":"3aafcb693fe5b5c3bd277bd4c3a617b53db474fe498fc5df067c5603b1eebde7","affectsGlobalScope":true},{"version":"f3d4da15233e593eacb3965cde7960f3fddf5878528d882bcedd5cbaba0193c7","affectsGlobalScope":true},{"version":"7fac8cb5fc820bc2a59ae11ef1c5b38d3832c6d0dfaec5acdb5569137d09a481","affectsGlobalScope":true},{"version":"097a57355ded99c68e6df1b738990448e0bf170e606707df5a7c0481ff2427cd","affectsGlobalScope":true},{"version":"adb996790133eb33b33aadb9c09f15c2c575e71fb57a62de8bf74dbf59ec7dfb","affectsGlobalScope":true},{"version":"8cc8c5a3bac513368b0157f3d8b31cfdcfe78b56d3724f30f80ed9715e404af8","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"c5c05907c02476e4bde6b7e76a79ffcd948aedd14b6a8f56e4674221b0417398","affectsGlobalScope":true},{"version":"5f406584aef28a331c36523df688ca3650288d14f39c5d2e555c95f0d2ff8f6f","affectsGlobalScope":true},{"version":"22f230e544b35349cfb3bd9110b6ef37b41c6d6c43c3314a31bd0d9652fcec72","affectsGlobalScope":true},{"version":"7ea0b55f6b315cf9ac2ad622b0a7813315bb6e97bf4bb3fbf8f8affbca7dc695","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"eb26de841c52236d8222f87e9e6a235332e0788af8c87a71e9e210314300410a","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"81cac4cbc92c0c839c70f8ffb94eb61e2d32dc1c3cf6d95844ca099463cf37ea","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"d154ea5bb7f7f9001ed9153e876b2d5b8f5c2bb9ec02b3ae0d239ec769f1f2ae","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"6e7997ef61de3132e4d4b2250e75343f487903ddf5370e7ce33cf1b9db9a63ed","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"5e5e095c4470c8bab227dbbc61374878ecead104c74ab9960d3adcccfee23205","affectsGlobalScope":true},"1f03b495671c3a1bd24510f38b8947f0991dfd6bf0278c68eca14af15b306e1f",{"version":"bbdf156fea2fabed31a569445835aeedcc33643d404fcbaa54541f06c109df3f","affectsGlobalScope":true},"1c29793071152b207c01ea1954e343be9a44d85234447b2b236acae9e709a383","6a386ff939f180ae8ef064699d8b7b6e62bc2731a62d7fbf5e02589383838dea","f5a8b384f182b3851cec3596ccc96cb7464f8d3469f48c74bf2befb782a19de5",{"version":"facb3daa9cb4215070b5662409638ac826681c208d701e96efe9b731d0ec39ee","affectsGlobalScope":true},{"version":"6d3aae02e573b4424749a17ecde853c18195fd6f08297da64aa7fff2057bb7c9","signature":"1cf7f7233499f56ea5b399b0b53edfe0367fcb6caf5b235b873d9f3f9e5d6a16"},{"version":"a6b7e3c103b4424b9c9d6dce7f059c16bbf037844b9f418775b86506d3d141d4","signature":"91c076ae465392962257aca34e4bf13640363d6cca8e0636d5cda95c890951e9"},"3359566cd3e1d64199b5cc028817490162edcf5aa7954f35133a462a507cdb48","8b1a6692156440f6585937b6b8de1c2692e7cac5c43aeb8893bfbd293f719552","16d89c2619e5c73fe784212aa78a4c3f6581d54e5bb566a942dfd4598c974370","30ac7c296085e45df59108da7c29ace25f9630e7102adce3212fa83d57619dd6","31b4bcf9398edbe06c8ab035e5d22a889791f3dbfe4ea0d905c000fcf42e0306","25831ab1e1a654b8a092a34b3a9511f82854d9cce76d995d7f8a9313fe0bb423","1bca2772bfe6da518ab061f96c01d7d71485b9afe80ea04048d468b6f081889c","f42c69e41a1c031b1bb2339d2bd05de3164ab8562cfbd9162d5b7a7cccb98ea8","d11911d6ffb045581d9a42a3dc362310506a2211fd6731992e1efa94bfd55106","0be2f20bdaf1332b336178ffb56644f023458ec18d5a6cf2166ba96d1ddb5661","79e04a665d69d0edbf243a4356efc1801c039bdac192adf7626c385f0289e7a1","bd2b2593c4903b3cd56c6b275e4d0b9d77373e027f92692a8a12ad60bd57ef66","ba09a10e145c8858d8b1ad040445e7a6e1145b77a4214b908e52c3db0ca15b84","5259d9ca9b434d127b69ebb76f4b4d753b1806a648e0c7269a731a5e25620bca","fa81ff8bab4694283154796bfb102835259b87562b6b254295a2652ec192cf6d","b2c3bd6183d4d4dd331e2d1931df945edfafc74070107246dfad63e0936bbbf5","4eaf0a9c07db8027b3152ec4630bde92d9c4f79fd9368fc275ccc18a0f95c45a","e57981f45d914f2408da70a1466c714427059d2332bee02e3e42b93ffba1b45a","c336aa56ac18350ce9734a69610d02822eeeb2194c790c5fc09f85277383badd","7cc95cca975581a368480357dfc672ce8022a55d8be7cb93b7a43a112d8ee325","0f4b05ff0ab1fd751987cd35be61421da42578a84f9b3fe4a2252489c35efecd","416710f3b46d2a66fbaa6e76275cfd282c5794c073f892f925f062725c6f2a3a","175c1dcc31e458ed13d1655e2773e8c1a5345fda1d2993f8c09201490dd95054","49e54658266510cc6f5daf9ba6d0bec1f53e3031556fcd06973352eb319f9800","f01ae56812a493de0399df3c895a4214cfb79fce77b065729036beae1528f172","24e7c377150337f5db7c632f4bd41a483170d19c6476c9be6c77a7b53457cee1","778d1a9159f08ad0921b481f7d08d180f98c6f5733a6b7407ad22a24763a686b","f8717ae243f0805094acb6c03e658d335246e9d24e75f9f008f3ba164ed42dd9","b9ab77378dd701c92c9fa2a2496bb11ffa6fef070880b96a53058289ec8a310e","3387c30139c0be6d192983013c9fcabaf376e35ae1db6b0f2791234ef070f120","1796aacfb419bfc66657829643ee172d9f9de5dd1096584fb004c66b878f9947","0414571c06823f212a1aa34156e6889294d80c2dc788544648e3f4949f171a93","61c0a0dccdbcfeefa5c9d6a0d9e6732b58c45f7c165e9dd89966b21e33bd1be1","fad65da820bc5accd5a7f4b3c392f7e7d230f5fa379fe2139cbe531bca84b2ae","067aa0bdd09718bff596d4c1b0d47bd18433044939e043d781d0b700ed15513f","c3cd574d0de12f6ffa04aa6c2190ad264497ad538ab6d1241fc4481939d62795","661a04ad362b9833789c5b36613372e4c67475bb8c4af82abfb65d09d9a3d7ab","a60da6ee6249056864b64b5f0f319f8907ab03728cd39598bbe0ce45d579997f","5e32cdfb53d4bad9553c363ecabfd4728cd4cbbe89e8a9234f373fb935be5a3c","76f80c5148923283518d43aaf7d7a899936c99b725f40f44762b1faab876996d",{"version":"0fb6d4b2884fce1abee44399f3a92d58c1a9f90ab442d082d5b0fdf92ed207d1","affectsGlobalScope":true},"9c0eebd3a0506c79c428ca5c9c7abd895645879bca18ca793d9d367518dbff31","a703a5b199e9acea8d6aef6017698ea8c8065484c2d045b598eec00290c1d142","68dd4974adc9f0c7591c175af9a7c15bef308cb0c071fceb129b984fdf6b2784","b56ea3a811c2dd07062bdb4d7f5f3dfca6554c4d18c68b73c80f05121436f629",{"version":"498d6a91f4bbfbd412e928a5fd6306d98a8b8b49c334b3ef1b1dccd8ec327e2f","signature":"d84a480259a7bda3cd794ab264e29fda120eb72c8c9270396a584479bf5b827f"},{"version":"f21932f853b3dbd3949e14c7d31d2dcfba3418c5de50878884a54cf0ba14e904","signature":"014089c3590328e311f0651db51765945a630df49cccfaf71c884d53bafd70d2"},{"version":"721526438283d40d50c6356064d346f1c57693f7e9930a3854c20c73bf4380a5","signature":"066053c842a2d9edb616d9c88dab6b19eaf8f4630bf862c774d0d6cc98c62a91"},{"version":"8d86d061556517683ece60323ebbe0dfe85f2c2dcee5437b3080879761a23b82","signature":"84902cc6ebe882438f8ccf62f18842b088e30d4af2b12dc61f09fe11a0941737"},{"version":"c7e2e472d0ba77ba41adc2422d0fb7e3eeada664eda67fbf2d1820cf6f9d49d5","signature":"d8697925fd69925c68732d55ed14c69c38bd4435b91355e974797c6f11685ee5"},{"version":"3afe879128eb0bc263123450b8211b56d7afba72c95e820cb51224fe661546b1","signature":"536ccb1a38a39569293fde322adb7b936d9a8bf81984d675bbba6e57c6569ca9"},{"version":"69eb47a8c68a18c54e78961b83da1a083e735bc9e87ca981db44e3c376838e81","signature":"0318412f8ace744f3b8850a53f6d83dc9bbd3ff350a172350a55eb8e66d20661","affectsGlobalScope":true},"3cf4c7825a6c0ef1965e8906b85844aafdcdda9d95c8b4bcfcb3a20811cfd0b1","c5a4764697efe3b6b4eaf19b3dc1880cf3df665d30ec93e212233c29a2fa7207",{"version":"a092979673af6906d766c907c9bf0ae97c7bed1f0d9e69d870ce4d4505a51edd","affectsGlobalScope":true}],"options":{"composite":true,"declaration":true,"emitDeclarationOnly":true,"esModuleInterop":true,"jsx":2,"module":6,"noImplicitAny":true,"outDir":"./types","rootDir":"../src","skipLibCheck":true,"sourceMap":true,"strict":true,"target":6},"fileIdsList":[[37,38,39,40],[49,50,51,52,53,54,55,58,59,60,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81],[52],[56,57],[61],[73],[59],[41],[41,43,48,88,89,90,91],[41,42,92,93,94],[88],[48,84,86,87,96],[84,85],[48,83],[44,45,46,47,97],[44],[44,97],[41,48,88],[41,88,92]],"referencedMap":[[41,1],[82,2],[53,3],[65,3],[54,3],[58,4],[62,5],[63,5],[67,3],[68,3],[69,3],[70,3],[71,3],[76,5],[74,6],[75,3],[66,3],[64,5],[73,7],[80,7],[42,8],[92,9],[95,10],[90,8],[93,8],[94,8],[91,8],[87,11],[88,12],[86,13],[84,14],[48,15],[46,16],[47,17],[98,16]],"exportedModulesMap":[[41,1],[82,2],[53,3],[65,3],[54,3],[58,4],[62,5],[63,5],[67,3],[68,3],[69,3],[70,3],[71,3],[76,5],[74,6],[75,3],[66,3],[64,5],[73,7],[80,7],[42,8],[92,18],[95,19],[90,8],[91,8],[87,11],[88,12],[86,13],[84,14],[48,15],[46,16],[47,17],[98,16]],"semanticDiagnosticsPerFile":[39,37,41,40,38,44,49,82,50,53,65,54,52,59,56,60,58,62,63,67,55,79,68,69,70,71,72,77,76,74,75,66,61,64,73,78,80,81,57,51,7,8,12,11,2,13,14,15,16,17,18,19,20,3,4,24,21,22,23,25,26,27,5,28,29,30,31,6,36,35,32,33,34,1,10,9,42,89,43,92,95,90,93,94,91,87,88,86,83,84,45,48,46,47,85,96,97,98],"latestChangedDtsFile":"./types/lazy.d.ts"},"version":"4.9.4"}
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- declare type Props = {
2
+ type Props = {
3
3
  fallback: React.ReactChild | React.ReactFragment | React.ReactPortal | null;
4
4
  condition: boolean;
5
5
  children: React.ReactNode;
@@ -1,6 +1,7 @@
1
- declare type KeyTypes = string | number | symbol;
1
+ type KeyTypes = string | number | symbol;
2
+ type Maybe<T> = T | null | undefined;
2
3
  export declare const isNil: (x: unknown) => x is null | undefined;
3
- export declare const isKeyOf: <T = unknown>(k: KeyTypes, o: T) => k is keyof T;
4
+ export declare const isKeyOf: <T extends {} = any>(k: KeyTypes, o: Maybe<T>) => k is keyof T;
4
5
  export declare const toNativeAttrName: (propName: string, propValue: any) => string | undefined;
5
6
  export declare const toStyleAttr: <T>(x: T) => T;
6
7
  export declare const toNativeAttrValue: (propValue: any, propName: string) => any;
@@ -5,12 +5,12 @@ import { MediaError } from '@mux/mux-player';
5
5
  import type MuxPlayerElement from '@mux/mux-player';
6
6
  import type { Tokens } from '@mux/mux-player';
7
7
  export { MediaError };
8
- declare type ValueOf<T> = T[keyof T];
8
+ type ValueOf<T> = T[keyof T];
9
9
  interface GenericEventListener<T extends Event = CustomEvent> {
10
10
  (evt: T): void;
11
11
  }
12
- export declare type MuxPlayerRefAttributes = MuxPlayerElement;
13
- declare type VideoApiAttributes = {
12
+ export type MuxPlayerRefAttributes = MuxPlayerElement;
13
+ type VideoApiAttributes = {
14
14
  currentTime: number;
15
15
  volume: number;
16
16
  paused: boolean;
@@ -25,7 +25,7 @@ declare type VideoApiAttributes = {
25
25
  muted: boolean;
26
26
  style: CSSProperties;
27
27
  };
28
- declare type MuxMediaPropTypes = {
28
+ type MuxMediaPropTypes = {
29
29
  audio: boolean;
30
30
  envKey: string;
31
31
  debug: boolean;
@@ -39,12 +39,13 @@ declare type MuxMediaPropTypes = {
39
39
  preferPlayback: ValueOf<PlaybackTypes> | undefined;
40
40
  streamType: ValueOf<StreamTypes> | 'vod';
41
41
  startTime: number;
42
+ storyboardSrc: string;
42
43
  preferCmcd: ValueOf<CmcdTypes> | undefined;
43
44
  children: never[];
44
45
  };
45
46
  interface MuxPlayerElementEventMap extends HTMLVideoElementEventMap {
46
47
  }
47
- export declare type MuxPlayerProps = {
48
+ export type MuxPlayerProps = {
48
49
  className?: string;
49
50
  hotkeys?: string;
50
51
  nohotkeys?: boolean;
@@ -1,8 +1,8 @@
1
1
  import type { MutableRefObject, ForwardedRef } from 'react';
2
- declare type Maybe<T> = T | null | undefined;
3
- declare type RefCb<T> = (instance: Maybe<T>) => void;
4
- declare type RefObj<T> = MutableRefObject<Maybe<T>>;
5
- declare type RefTypes<T> = RefObj<T> | RefCb<T> | ForwardedRef<T>;
2
+ type Maybe<T> = T | null | undefined;
3
+ type RefCb<T> = (instance: Maybe<T>) => void;
4
+ type RefObj<T> = MutableRefObject<Maybe<T>>;
5
+ type RefTypes<T> = RefObj<T> | RefCb<T> | ForwardedRef<T>;
6
6
  interface useCombinedRefs {
7
7
  <T>(...refs: Maybe<RefTypes<T>>[]): RefObj<T>;
8
8
  }
@@ -1,2 +1,2 @@
1
- declare const useIsIntersecting: (ref: React.RefObject<HTMLElement>, options?: IntersectionObserverInit | undefined) => boolean;
1
+ declare const useIsIntersecting: (ref: React.RefObject<HTMLElement>, options?: IntersectionObserverInit) => boolean;
2
2
  export default useIsIntersecting;
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- declare type Props = {
2
+ type Props = {
3
3
  fallback: React.ReactChild | React.ReactFragment | React.ReactPortal | null;
4
4
  condition: boolean;
5
5
  children: React.ReactNode;
@@ -1,6 +1,7 @@
1
- declare type KeyTypes = string | number | symbol;
1
+ type KeyTypes = string | number | symbol;
2
+ type Maybe<T> = T | null | undefined;
2
3
  export declare const isNil: (x: unknown) => x is null | undefined;
3
- export declare const isKeyOf: <T = unknown>(k: KeyTypes, o: T) => k is keyof T;
4
+ export declare const isKeyOf: <T extends {} = any>(k: KeyTypes, o: Maybe<T>) => k is keyof T;
4
5
  export declare const toNativeAttrName: (propName: string, propValue: any) => string | undefined;
5
6
  export declare const toStyleAttr: <T>(x: T) => T;
6
7
  export declare const toNativeAttrValue: (propValue: any, propName: string) => any;
@@ -5,12 +5,12 @@ import { MediaError } from '@mux/mux-player';
5
5
  import MuxPlayerElement from '@mux/mux-player';
6
6
  import { Tokens } from '@mux/mux-player';
7
7
  export { MediaError };
8
- declare type ValueOf<T> = T[keyof T];
8
+ type ValueOf<T> = T[keyof T];
9
9
  interface GenericEventListener<T extends Event = CustomEvent> {
10
10
  (evt: T): void;
11
11
  }
12
- export declare type MuxPlayerRefAttributes = MuxPlayerElement;
13
- declare type VideoApiAttributes = {
12
+ export type MuxPlayerRefAttributes = MuxPlayerElement;
13
+ type VideoApiAttributes = {
14
14
  currentTime: number;
15
15
  volume: number;
16
16
  paused: boolean;
@@ -25,7 +25,7 @@ declare type VideoApiAttributes = {
25
25
  muted: boolean;
26
26
  style: CSSProperties;
27
27
  };
28
- declare type MuxMediaPropTypes = {
28
+ type MuxMediaPropTypes = {
29
29
  audio: boolean;
30
30
  envKey: string;
31
31
  debug: boolean;
@@ -39,12 +39,13 @@ declare type MuxMediaPropTypes = {
39
39
  preferPlayback: ValueOf<PlaybackTypes> | undefined;
40
40
  streamType: ValueOf<StreamTypes> | 'vod';
41
41
  startTime: number;
42
+ storyboardSrc: string;
42
43
  preferCmcd: ValueOf<CmcdTypes> | undefined;
43
44
  children: never[];
44
45
  };
45
46
  interface MuxPlayerElementEventMap extends HTMLVideoElementEventMap {
46
47
  }
47
- export declare type MuxPlayerProps = {
48
+ export type MuxPlayerProps = {
48
49
  className?: string;
49
50
  hotkeys?: string;
50
51
  nohotkeys?: boolean;
@@ -1,8 +1,8 @@
1
1
  import { MutableRefObject, ForwardedRef } from 'react';
2
- declare type Maybe<T> = T | null | undefined;
3
- declare type RefCb<T> = (instance: Maybe<T>) => void;
4
- declare type RefObj<T> = MutableRefObject<Maybe<T>>;
5
- declare type RefTypes<T> = RefObj<T> | RefCb<T> | ForwardedRef<T>;
2
+ type Maybe<T> = T | null | undefined;
3
+ type RefCb<T> = (instance: Maybe<T>) => void;
4
+ type RefObj<T> = MutableRefObject<Maybe<T>>;
5
+ type RefTypes<T> = RefObj<T> | RefCb<T> | ForwardedRef<T>;
6
6
  interface useCombinedRefs {
7
7
  <T>(...refs: Maybe<RefTypes<T>>[]): RefObj<T>;
8
8
  }
@@ -1,2 +1,2 @@
1
- declare const useIsIntersecting: (ref: React.RefObject<HTMLElement>, options?: IntersectionObserverInit | undefined) => boolean;
1
+ declare const useIsIntersecting: (ref: React.RefObject<HTMLElement>, options?: IntersectionObserverInit) => boolean;
2
2
  export default useIsIntersecting;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mux/mux-player-react",
3
- "version": "1.5.1",
3
+ "version": "1.6.0",
4
4
  "description": "An open source Mux player for React that Just Works™",
5
5
  "main": "./dist/index.cjs.js",
6
6
  "module": "./dist/index.mjs",
@@ -65,20 +65,20 @@
65
65
  }
66
66
  },
67
67
  "dependencies": {
68
- "@mux/mux-player": "1.5.1",
69
- "@mux/playback-core": "0.15.0",
68
+ "@mux/mux-player": "1.6.0",
69
+ "@mux/playback-core": "0.15.1",
70
70
  "prop-types": "^15.7.2"
71
71
  },
72
72
  "devDependencies": {
73
73
  "@types/react": "^17.0.37",
74
74
  "@types/react-dom": "^17.0.11",
75
- "downlevel-dts": "^0.9.0",
75
+ "downlevel-dts": "^0.11.0",
76
76
  "esbuild": "^0.15.7",
77
77
  "npm-run-all": "^4.1.5",
78
78
  "react": "^17.0.2",
79
79
  "react-dom": "^17.0.2",
80
80
  "shx": "^0.3.4",
81
- "typescript": "^4.5.2"
81
+ "typescript": "^4.9.4"
82
82
  },
83
- "gitHead": "5c270598d31807c35a49f2eb49a5bf79f93f67e9"
83
+ "gitHead": "0b7863a5f730767283737f6c19410d354a230ced"
84
84
  }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../src/index.tsx", "../src/common/utils.ts", "../src/useCombinedRefs.ts", "../src/useObjectPropEffect.ts", "../src/env.ts"],
4
- "sourcesContent": ["import React, { useEffect } from 'react';\nimport type { CSSProperties } from 'react';\nimport type { StreamTypes, PlaybackTypes, CmcdTypes } from '@mux/playback-core';\nimport { MediaError } from '@mux/mux-player';\nimport type MuxPlayerElement from '@mux/mux-player';\nimport type { Tokens } from '@mux/mux-player';\nimport { toNativeProps } from './common/utils';\nimport { useRef } from 'react';\nimport { useCombinedRefs } from './useCombinedRefs';\nimport useObjectPropEffect, { defaultHasChanged } from './useObjectPropEffect';\nimport { getPlayerVersion } from './env';\n\nexport { MediaError };\n\ntype ValueOf<T> = T[keyof T];\ninterface GenericEventListener<T extends Event = CustomEvent> {\n (evt: T): void;\n}\n\nexport type MuxPlayerRefAttributes = MuxPlayerElement;\ntype VideoApiAttributes = {\n currentTime: number;\n volume: number;\n paused: boolean;\n src: string | null;\n poster: string;\n playbackRate: number;\n playsInline: boolean;\n preload: string;\n crossOrigin: string;\n autoPlay: boolean | string;\n loop: boolean;\n muted: boolean;\n style: CSSProperties;\n};\n\ntype MuxMediaPropTypes = {\n audio: boolean;\n // envKey: Options[\"data\"][\"env_key\"];\n envKey: string;\n // debug: Options[\"debug\"] & Hls[\"config\"][\"debug\"];\n debug: boolean;\n disableCookies: boolean;\n // metadata: Partial<Options[\"data\"]>;\n metadata: { [k: string]: any };\n beaconCollectionDomain: string;\n customDomain: string;\n playbackId: string;\n preferPlayback: ValueOf<PlaybackTypes> | undefined;\n streamType: ValueOf<StreamTypes> | 'vod';\n startTime: number;\n preferCmcd: ValueOf<CmcdTypes> | undefined;\n children: never[];\n};\n\ninterface MuxPlayerElementEventMap extends HTMLVideoElementEventMap {}\n\nexport type MuxPlayerProps = {\n className?: string;\n hotkeys?: string;\n nohotkeys?: boolean;\n defaultHiddenCaptions?: boolean;\n playerSoftwareVersion?: string;\n playerSoftwareName?: string;\n forwardSeekOffset?: number;\n backwardSeekOffset?: number;\n metadataVideoId?: string;\n metadataVideoTitle?: string;\n metadataViewerUserId?: string;\n primaryColor?: string;\n secondaryColor?: string;\n placeholder?: string;\n playbackRates?: number[];\n defaultShowRemainingTime?: boolean;\n thumbnailTime?: number;\n title?: string;\n tokens?: Tokens;\n onAbort?: GenericEventListener<MuxPlayerElementEventMap['abort']>;\n onCanPlay?: GenericEventListener<MuxPlayerElementEventMap['canplay']>;\n onCanPlayThrough?: GenericEventListener<MuxPlayerElementEventMap['canplaythrough']>;\n onEmptied?: GenericEventListener<MuxPlayerElementEventMap['emptied']>;\n onLoadStart?: GenericEventListener<MuxPlayerElementEventMap['loadstart']>;\n onLoadedData?: GenericEventListener<MuxPlayerElementEventMap['loadeddata']>;\n onLoadedMetadata?: GenericEventListener<MuxPlayerElementEventMap['loadedmetadata']>;\n onProgress?: GenericEventListener<MuxPlayerElementEventMap['progress']>;\n onDurationChange?: GenericEventListener<MuxPlayerElementEventMap['durationchange']>;\n onVolumeChange?: GenericEventListener<MuxPlayerElementEventMap['volumechange']>;\n onRateChange?: GenericEventListener<MuxPlayerElementEventMap['ratechange']>;\n onResize?: GenericEventListener<MuxPlayerElementEventMap['resize']>;\n onWaiting?: GenericEventListener<MuxPlayerElementEventMap['waiting']>;\n onPlay?: GenericEventListener<MuxPlayerElementEventMap['play']>;\n onPlaying?: GenericEventListener<MuxPlayerElementEventMap['playing']>;\n onTimeUpdate?: GenericEventListener<MuxPlayerElementEventMap['timeupdate']>;\n onPause?: GenericEventListener<MuxPlayerElementEventMap['pause']>;\n onSeeking?: GenericEventListener<MuxPlayerElementEventMap['seeking']>;\n onSeeked?: GenericEventListener<MuxPlayerElementEventMap['seeked']>;\n onStalled?: GenericEventListener<MuxPlayerElementEventMap['stalled']>;\n onSuspend?: GenericEventListener<MuxPlayerElementEventMap['suspend']>;\n onEnded?: GenericEventListener<MuxPlayerElementEventMap['ended']>;\n onError?: GenericEventListener<MuxPlayerElementEventMap['error']>;\n // onPlayerReady?: EventListener;\n} & Partial<MuxMediaPropTypes> &\n Partial<VideoApiAttributes>;\n\nconst MuxPlayerInternal = React.forwardRef<MuxPlayerRefAttributes, MuxPlayerProps>(({ children, ...props }, ref) => {\n return React.createElement('mux-player', toNativeProps({ ...props, ref }), children);\n});\n\nconst useEventCallbackEffect = <K extends keyof MuxPlayerElementEventMap>(\n type: K,\n ref: // | ((instance: EventTarget | null) => void)\n React.MutableRefObject<MuxPlayerElement | null> | null | undefined,\n callback: GenericEventListener<MuxPlayerElementEventMap[K]> | undefined\n) => {\n return useEffect(() => {\n const eventTarget = ref?.current;\n if (!eventTarget || !callback) return;\n eventTarget.addEventListener(type, callback);\n return () => {\n eventTarget.removeEventListener(type, callback);\n };\n }, [ref?.current, callback]);\n};\n\nconst usePlayer = (\n ref: // | ((instance: EventTarget | null) => void)\n React.MutableRefObject<MuxPlayerElement | null> | null | undefined,\n props: MuxPlayerProps\n) => {\n const {\n onAbort,\n onCanPlay,\n onCanPlayThrough,\n onEmptied,\n onLoadStart,\n onLoadedData,\n onLoadedMetadata,\n onProgress,\n onDurationChange,\n onVolumeChange,\n onRateChange,\n onResize,\n onWaiting,\n onPlay,\n onPlaying,\n onTimeUpdate,\n onPause,\n onSeeking,\n onSeeked,\n onStalled,\n onSuspend,\n onEnded,\n onError,\n // onPlayerReady,\n metadata,\n tokens,\n paused,\n playbackId,\n playbackRates,\n currentTime,\n ...remainingProps\n } = props;\n useObjectPropEffect('playbackRates', playbackRates, ref);\n useObjectPropEffect('metadata', metadata, ref);\n useObjectPropEffect('tokens', tokens, ref);\n useObjectPropEffect('playbackId', playbackId, ref);\n useObjectPropEffect(\n 'paused',\n paused,\n ref,\n (playerEl: HTMLMediaElement, pausedVal?: boolean) => {\n if (pausedVal == null) return;\n if (pausedVal) {\n playerEl.pause();\n } else {\n playerEl.play();\n }\n },\n (playerEl, value, propName) => {\n if (playerEl.hasAttribute('autoplay') && !playerEl.hasPlayed) {\n return false;\n }\n return defaultHasChanged(playerEl, value, propName);\n }\n );\n // NOTE: Somewhere in the codebase, `currentTime` is getting cast to a number, resulting in `NaN` + an error.\n // This is a bandaid solution for now. (CJP)\n useObjectPropEffect('currentTime', currentTime ?? 0, ref);\n useEventCallbackEffect('abort', ref, onAbort);\n useEventCallbackEffect('canplay', ref, onCanPlay);\n useEventCallbackEffect('canplaythrough', ref, onCanPlayThrough);\n useEventCallbackEffect('emptied', ref, onEmptied);\n useEventCallbackEffect('loadstart', ref, onLoadStart);\n useEventCallbackEffect('loadeddata', ref, onLoadedData);\n useEventCallbackEffect('loadedmetadata', ref, onLoadedMetadata);\n useEventCallbackEffect('progress', ref, onProgress);\n useEventCallbackEffect('durationchange', ref, onDurationChange);\n useEventCallbackEffect('volumechange', ref, onVolumeChange);\n useEventCallbackEffect('ratechange', ref, onRateChange);\n useEventCallbackEffect('resize', ref, onResize);\n useEventCallbackEffect('waiting', ref, onWaiting);\n useEventCallbackEffect('play', ref, onPlay);\n useEventCallbackEffect('playing', ref, onPlaying);\n useEventCallbackEffect('timeupdate', ref, onTimeUpdate);\n useEventCallbackEffect('pause', ref, onPause);\n useEventCallbackEffect('seeking', ref, onSeeking);\n useEventCallbackEffect('seeked', ref, onSeeked);\n useEventCallbackEffect('stalled', ref, onStalled);\n useEventCallbackEffect('suspend', ref, onSuspend);\n useEventCallbackEffect('ended', ref, onEnded);\n useEventCallbackEffect('error', ref, onError);\n // useEventCallbackEffect('playerready', ref, onPlayerReady);\n return [remainingProps];\n};\n\nconst playerSoftwareVersion = getPlayerVersion();\nconst playerSoftwareName = 'mux-player-react';\n\nconst MuxPlayer = React.forwardRef<\n MuxPlayerRefAttributes,\n Omit<MuxPlayerProps, 'playerSoftwareVersion' | 'playerSoftwareName'>\n>((props, ref) => {\n const innerPlayerRef = useRef<MuxPlayerElement>(null);\n const playerRef = useCombinedRefs(innerPlayerRef, ref);\n const [remainingProps] = usePlayer(innerPlayerRef, props);\n\n return (\n <MuxPlayerInternal\n /** @TODO Fix types relationships (CJP) */\n ref={playerRef as typeof innerPlayerRef}\n playerSoftwareName={playerSoftwareName}\n playerSoftwareVersion={playerSoftwareVersion}\n {...remainingProps}\n />\n );\n});\n\nexport default MuxPlayer;\n", "// NOTE: As a forward-looking implementation, we may want to assume\n// prop names -> attribute names is always a simple name.toLowerCase()\n// and provide a mechanism for passing in per-component overrides for\n// e.g. kebab cases, as that's the way React/Preact handles these. (CJP)\nconst ReactPropToAttrNameMap = {\n className: 'class',\n classname: 'class',\n htmlFor: 'for',\n crossOrigin: 'crossorigin',\n viewBox: 'viewBox',\n playsInline: 'playsinline',\n autoPlay: 'autoplay',\n playbackRate: 'playbackrate',\n};\n\ntype KeyTypes = string | number | symbol;\n\nexport const isNil = (x: unknown): x is null | undefined => x == undefined;\n\n// Type Guard to determine if a given key is actually a key of some object of type T\nexport const isKeyOf = <T = unknown>(k: KeyTypes, o: T): k is keyof T => {\n if (isNil(o)) return false;\n return k in o;\n};\n\nconst toKebabCase = (string: string) => string.replace(/[A-Z]/g, (match) => `-${match.toLowerCase()}`);\n\nexport const toNativeAttrName = (propName: string, propValue: any): string | undefined => {\n if (typeof propValue === 'boolean' && !propValue) return undefined;\n if (isKeyOf(propName, ReactPropToAttrNameMap)) return ReactPropToAttrNameMap[propName];\n if (typeof propValue == undefined) return undefined;\n if (/[A-Z]/.test(propName)) return toKebabCase(propName);\n return propName;\n};\nexport const toStyleAttr = <T>(x: T) => x;\n\nexport const toNativeAttrValue = (propValue: any, propName: string) => {\n if (typeof propValue === 'boolean') return '';\n return propValue;\n};\n\nexport const toNativeProps = (props = {}) => {\n return Object.entries(props).reduce<{ [k: string]: string }>((transformedProps, [propName, propValue]) => {\n const attrName = toNativeAttrName(propName, propValue);\n\n // prop was stripped. Don't add.\n if (!attrName) {\n return transformedProps;\n }\n\n const attrValue = toNativeAttrValue(propValue, propName);\n transformedProps[attrName] = attrValue;\n return transformedProps;\n }, {});\n};\n", "import { useEffect, useRef } from 'react';\nimport type { MutableRefObject, ForwardedRef } from 'react';\n\ntype Maybe<T> = T | null | undefined;\ntype RefCb<T> = (instance: Maybe<T>) => void;\ntype RefObj<T> = MutableRefObject<Maybe<T>>;\ntype RefTypes<T> = RefObj<T> | RefCb<T> | ForwardedRef<T>;\ninterface useCombinedRefs {\n <T>(...refs: Maybe<RefTypes<T>>[]): RefObj<T>;\n}\n\nexport const useCombinedRefs: useCombinedRefs = (...refs) => {\n const targetRef = useRef(null);\n\n useEffect(() => {\n refs.forEach((ref) => {\n if (!ref) return;\n\n if (typeof ref === 'function') {\n ref(targetRef.current);\n } else {\n ref.current = targetRef.current;\n }\n });\n }, [refs]);\n\n return targetRef;\n};\n\n// TS assumed default export was interface def instead of function value (CJP)\nconst defaultUseCombinedRefs = useCombinedRefs;\nexport default defaultUseCombinedRefs;\n", "import { useEffect } from 'react';\n\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\n\n/**\n * Slightly modified version of React's shallowEqual, with optimizations for Arrays\n * so we may treat them specifically as unequal if they are not a) both arrays\n * or b) don't contain the same (shallowly compared) elements.\n */\nconst shallowEqual = (objA: any, objB: any): boolean => {\n if (Object.is(objA, objB)) {\n return true;\n }\n\n if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {\n return false;\n }\n\n if (Array.isArray(objA)) {\n // Early \"cheap\" array compares\n if (!Array.isArray(objB) || objA.length !== objB.length) return false;\n // Shallow compare for arrays\n return objA.some((vVal, i) => objB[i] === vVal);\n }\n\n const keysA = Object.keys(objA);\n const keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n // Test for A's keys different from B.\n for (let i = 0; i < keysA.length; i++) {\n if (!hasOwnProperty.call(objB, keysA[i]) || !Object.is(objA[keysA[i]], objB[keysA[i]])) {\n return false;\n }\n }\n\n return true;\n};\n\nexport const defaultHasChanged = (obj: any, v: any, k: string) => {\n return !shallowEqual(v, obj[k]);\n};\n\nconst defaultUpdateValue = (obj: any, v: any, k: string) => {\n obj[k] = v;\n};\n\nexport const useObjectPropEffect = <T extends { [k: string]: any }, V>(\n propName: string,\n propValue: V | null | undefined,\n ref: React.MutableRefObject<T | null> | null | undefined,\n updateValue = defaultUpdateValue,\n hasChanged = defaultHasChanged\n) => {\n return useEffect(() => {\n const obj = ref?.current;\n if (!obj) return;\n if (!hasChanged(obj, propValue, propName)) return;\n updateValue(obj, propValue, propName);\n }, [ref?.current, propValue]);\n};\n\nexport default useObjectPropEffect;\n", "const getEnvPlayerVersion = () => {\n try {\n // @ts-ignore\n return PLAYER_VERSION as string;\n } catch {}\n return 'UNKNOWN';\n};\n\nconst player_version: string = getEnvPlayerVersion();\n\nexport const getPlayerVersion = () => player_version;\n"],
5
- "mappings": "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",
6
- "names": ["React", "useEffect", "MediaError", "ReactPropToAttrNameMap", "isNil", "x", "isKeyOf", "k", "o", "toKebabCase", "string", "match", "toNativeAttrName", "propName", "propValue", "toNativeAttrValue", "propValue", "propName", "toNativeProps", "props", "transformedProps", "attrName", "toNativeAttrName", "attrValue", "useRef", "useEffect", "useRef", "useCombinedRefs", "refs", "targetRef", "ref", "useEffect", "hasOwnProperty", "shallowEqual", "objA", "objB", "vVal", "keysA", "keysB", "i", "defaultHasChanged", "obj", "v", "k", "defaultUpdateValue", "useObjectPropEffect", "propName", "propValue", "ref", "updateValue", "hasChanged", "useObjectPropEffect_default", "getEnvPlayerVersion", "player_version", "getPlayerVersion", "MuxPlayerInternal", "React", "children", "props", "ref", "toNativeProps", "useEventCallbackEffect", "type", "callback", "useEffect", "eventTarget", "usePlayer", "onAbort", "onCanPlay", "onCanPlayThrough", "onEmptied", "onLoadStart", "onLoadedData", "onLoadedMetadata", "onProgress", "onDurationChange", "onVolumeChange", "onRateChange", "onResize", "onWaiting", "onPlay", "onPlaying", "onTimeUpdate", "onPause", "onSeeking", "onSeeked", "onStalled", "onSuspend", "onEnded", "onError", "metadata", "tokens", "paused", "playbackId", "playbackRates", "currentTime", "remainingProps", "useObjectPropEffect_default", "playerEl", "pausedVal", "value", "propName", "defaultHasChanged", "playerSoftwareVersion", "getPlayerVersion", "playerSoftwareName", "MuxPlayer", "innerPlayerRef", "useRef", "playerRef", "useCombinedRefs", "src_default"]
7
- }