{
  "version": 3,
  "sources": ["../src/index.tsx", "../src/common/utils.ts", "../src/useCombinedRefs.ts", "../src/useObjectPropEffect.ts", "../src/env.ts"],
  "sourcesContent": ["import React, { useEffect } from 'react';\nimport type { CSSProperties } from 'react';\nimport type { CmcdTypes, PlaybackTypes, StreamTypes } from '@mux/playback-core';\nimport { MediaError } from '@imgix/ix-player';\nimport type IxPlayerElement from '@imgix/ix-player';\nimport type { Tokens } from '@imgix/ix-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 IxPlayerRefAttributes = IxPlayerElement;\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  type: string;\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\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\ninterface IxPlayerElementEventMap extends HTMLVideoElementEventMap {}\n\nexport type IxPlayerProps = {\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  gifPreview?: boolean;\n  posterParams?: string;\n  tokens?: Tokens;\n  onAbort?: GenericEventListener<IxPlayerElementEventMap['abort']>;\n  onCanPlay?: GenericEventListener<IxPlayerElementEventMap['canplay']>;\n  onCanPlayThrough?: GenericEventListener<IxPlayerElementEventMap['canplaythrough']>;\n  onEmptied?: GenericEventListener<IxPlayerElementEventMap['emptied']>;\n  onLoadStart?: GenericEventListener<IxPlayerElementEventMap['loadstart']>;\n  onLoadedData?: GenericEventListener<IxPlayerElementEventMap['loadeddata']>;\n  onLoadedMetadata?: GenericEventListener<IxPlayerElementEventMap['loadedmetadata']>;\n  onProgress?: GenericEventListener<IxPlayerElementEventMap['progress']>;\n  onDurationChange?: GenericEventListener<IxPlayerElementEventMap['durationchange']>;\n  onVolumeChange?: GenericEventListener<IxPlayerElementEventMap['volumechange']>;\n  onRateChange?: GenericEventListener<IxPlayerElementEventMap['ratechange']>;\n  onResize?: GenericEventListener<IxPlayerElementEventMap['resize']>;\n  onWaiting?: GenericEventListener<IxPlayerElementEventMap['waiting']>;\n  onPlay?: GenericEventListener<IxPlayerElementEventMap['play']>;\n  onPlaying?: GenericEventListener<IxPlayerElementEventMap['playing']>;\n  onTimeUpdate?: GenericEventListener<IxPlayerElementEventMap['timeupdate']>;\n  onPause?: GenericEventListener<IxPlayerElementEventMap['pause']>;\n  onSeeking?: GenericEventListener<IxPlayerElementEventMap['seeking']>;\n  onSeeked?: GenericEventListener<IxPlayerElementEventMap['seeked']>;\n  onStalled?: GenericEventListener<IxPlayerElementEventMap['stalled']>;\n  onSuspend?: GenericEventListener<IxPlayerElementEventMap['suspend']>;\n  onEnded?: GenericEventListener<IxPlayerElementEventMap['ended']>;\n  onError?: GenericEventListener<IxPlayerElementEventMap['error']>;\n  // onPlayerReady?: EventListener;\n} & Partial<MuxMediaPropTypes> &\n  Partial<VideoApiAttributes>;\n\nconst IxPlayerInternal = React.forwardRef<IxPlayerRefAttributes, IxPlayerProps>(({ children, ...props }, ref) => {\n  return React.createElement('ix-player', toNativeProps({ ...props, ref }), children);\n});\n\nconst useEventCallbackEffect = <K extends keyof IxPlayerElementEventMap>(\n  type: K,\n  ref: // | ((instance: EventTarget | null) => void)\n  React.MutableRefObject<IxPlayerElement | null> | null | undefined,\n  callback: GenericEventListener<IxPlayerElementEventMap[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<IxPlayerElement | null> | null | undefined,\n  props: IxPlayerProps\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 = 'ix-player-react';\n\nconst IxPlayer = React.forwardRef<\n  IxPlayerRefAttributes,\n  Omit<IxPlayerProps, 'playerSoftwareVersion' | 'playerSoftwareName'>\n>((props, ref) => {\n  const innerPlayerRef = useRef<IxPlayerElement>(null);\n  const playerRef = useCombinedRefs(innerPlayerRef, ref);\n  const [remainingProps] = usePlayer(innerPlayerRef, props);\n\n  return (\n    <IxPlayerInternal\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 IxPlayer;\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"],
  "mappings": "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",
  "names": ["useEffect", "useRef", "useEffect", "useEffect", "useRef"]
}
