{"version":3,"sources":["../node_modules/youtube-player/dist/loadYouTubeIframeApi.js","../node_modules/load-script/index.js","../node_modules/youtube-player/dist/YouTubePlayer.js","../node_modules/youtube-player/node_modules/debug/src/browser.js","../node_modules/youtube-player/node_modules/debug/src/debug.js","../node_modules/youtube-player/node_modules/ms/index.js","../node_modules/youtube-player/dist/functionNames.js","../node_modules/youtube-player/dist/eventNames.js","../node_modules/youtube-player/dist/FunctionStateMap.js","../node_modules/youtube-player/dist/constants/PlayerStates.js","../node_modules/react-youtube/dist/index.esm.js","../node_modules/fast-deep-equal/index.js","../node_modules/react-youtube/node_modules/prop-types/index.js","../node_modules/react-youtube/node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/react-youtube/node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/youtube-player/dist/index.js","../node_modules/sister/src/sister.js"],"names":["Object","defineProperty","exports","value","obj","_loadScript","require","_loadScript2","__esModule","default","emitter","Promise","resolve","window","YT","Player","Function","protocol","location","error","trigger","previous","onYouTubeIframeAPIReady","module","stdOnEnd","script","cb","onload","this","onerror","Error","src","ieOnEnd","onreadystatechange","readyState","opts","head","document","getElementsByTagName","createElement","type","charset","async","attrs","attr","setAttribute","setAttributes","text","appendChild","_debug2","_interopRequireDefault","_functionNames2","_eventNames2","_FunctionStateMap2","debug","YouTubePlayer","events","_loop","eventName","onEventName","slice","toUpperCase","event","_iteratorNormalCompletion","_didIteratorError","_iteratorError","undefined","_step","_iterator","Symbol","iterator","next","done","err","playerAPIReady","strictState","arguments","length","functions","_loop2","functionName","_len","args","Array","_key","then","player","stateInfo","playerState","getPlayerState","apply","stateChangeRequired","isArray","acceptableStates","indexOf","addEventListener","onPlayerStateChange","playerStateAfterChange","timeout","setTimeout","removeEventListener","clearTimeout","_len2","_key2","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_step2","_iterator2","load","r","storage","e","process","DEBUG","log","console","prototype","call","formatArgs","useColors","namespace","humanize","diff","c","color","splice","index","lastC","replace","match","save","namespaces","removeItem","documentElement","style","WebkitAppearance","firebug","exception","table","navigator","userAgent","toLowerCase","parseInt","RegExp","$1","chrome","local","localStorage","localstorage","colors","formatters","j","v","JSON","stringify","message","enable","prevTime","createDebug","enabled","self","curr","Date","ms","prev","i","coerce","unshift","format","formatter","val","logFn","bind","hash","charCodeAt","Math","abs","selectColor","init","stack","disable","names","skips","split","len","push","substr","name","test","s","m","h","d","y","plural","n","floor","ceil","options","str","String","exec","parseFloat","parse","isNaN","round","fmtShort","_PlayerStates","_PlayerStates2","pauseVideo","ENDED","PAUSED","playVideo","PLAYING","seekTo","BUFFERING","UNSTARTED","VIDEO_CUED","_typeof","constructor","_defineProperties","target","props","descriptor","enumerable","configurable","writable","key","_setPrototypeOf","o","p","setPrototypeOf","__proto__","_createSuper","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","toString","_isNativeReflectConstruct","result","Super","_getPrototypeOf","NewTarget","_possibleConstructorReturn","_assertThisInitialized","ReferenceError","getPrototypeOf","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","_objectSpread","source","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","filterResetOptions","height","width","playerVars","autoplay","start","end","YouTube","_React$Component","subClass","superClass","TypeError","create","_inherits","Constructor","protoProps","staticProps","_super","_this","instance","_classCallCheck","onReady","onError","onStateChange","data","PlayerState","onEnd","onPlay","onPause","onPlaybackRateChange","onPlaybackQualityChange","playerOpts","videoId","internalPlayer","youTubePlayer","container","on","onPlayerReady","onPlayerError","onPlayerPlaybackRateChange","onPlayerPlaybackQualityChange","destroy","createPlayer","getIframe","iframe","id","removeAttribute","className","title","startSeconds","endSeconds","loadVideoById","cueVideoById","stopVideo","prevProps","shouldUpdatePlayer","updatePlayer","isEqual","shouldResetPlayer","resetPlayer","prevVars","vars","shouldUpdateVideo","updateVideo","React","containerClassName","ref","refContainer","loading","Component","CUED","propTypes","PropTypes","string","oneOf","objectOf","any","func","defaultProps","equal","a","b","flags","valueOf","hasOwnProperty","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","propName","componentName","propFullName","secret","getShim","isRequired","ReactPropTypes","array","bool","number","symbol","arrayOf","element","elementType","instanceOf","node","oneOfType","shape","exact","checkPropTypes","_sister2","_loadYouTubeIframeApi2","_YouTubePlayer2","youtubeIframeAPI","maybeElementId","getElementById","proxyEvents","playerApi","promisifyPlayer","off","Sister","sister","handler","listener","listeners"],"mappings":"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","file":"static/js/2.4780f48e.chunk.js","sourcesContent":["'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _loadScript = require('load-script');\n\nvar _loadScript2 = _interopRequireDefault(_loadScript);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (emitter) {\n /**\n * A promise that is resolved when window.onYouTubeIframeAPIReady is called.\n * The promise is resolved with a reference to window.YT object.\n */\n var iframeAPIReady = new Promise(function (resolve) {\n if (window.YT && window.YT.Player && window.YT.Player instanceof Function) {\n resolve(window.YT);\n\n return;\n } else {\n var protocol = window.location.protocol === 'http:' ? 'http:' : 'https:';\n\n (0, _loadScript2.default)(protocol + '//www.youtube.com/iframe_api', function (error) {\n if (error) {\n emitter.trigger('error', error);\n }\n });\n }\n\n var previous = window.onYouTubeIframeAPIReady;\n\n // The API will call this function when page has finished downloading\n // the JavaScript for the player API.\n window.onYouTubeIframeAPIReady = function () {\n if (previous) {\n previous();\n }\n\n resolve(window.YT);\n };\n });\n\n return iframeAPIReady;\n};\n\nmodule.exports = exports['default'];","\nmodule.exports = function load (src, opts, cb) {\n var head = document.head || document.getElementsByTagName('head')[0]\n var script = document.createElement('script')\n\n if (typeof opts === 'function') {\n cb = opts\n opts = {}\n }\n\n opts = opts || {}\n cb = cb || function() {}\n\n script.type = opts.type || 'text/javascript'\n script.charset = opts.charset || 'utf8';\n script.async = 'async' in opts ? !!opts.async : true\n script.src = src\n\n if (opts.attrs) {\n setAttributes(script, opts.attrs)\n }\n\n if (opts.text) {\n script.text = '' + opts.text\n }\n\n var onend = 'onload' in script ? stdOnEnd : ieOnEnd\n onend(script, cb)\n\n // some good legacy browsers (firefox) fail the 'in' detection above\n // so as a fallback we always set onload\n // old IE will ignore this and new IE will set onload\n if (!script.onload) {\n stdOnEnd(script, cb);\n }\n\n head.appendChild(script)\n}\n\nfunction setAttributes(script, attrs) {\n for (var attr in attrs) {\n script.setAttribute(attr, attrs[attr]);\n }\n}\n\nfunction stdOnEnd (script, cb) {\n script.onload = function () {\n this.onerror = this.onload = null\n cb(null, script)\n }\n script.onerror = function () {\n // this.onload = null here is necessary\n // because even IE9 works not like others\n this.onerror = this.onload = null\n cb(new Error('Failed to load ' + this.src), script)\n }\n}\n\nfunction ieOnEnd (script, cb) {\n script.onreadystatechange = function () {\n if (this.readyState != 'complete' && this.readyState != 'loaded') return\n this.onreadystatechange = null\n cb(null, script) // there is no way to catch loading errors in IE8\n }\n}\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _debug = require('debug');\n\nvar _debug2 = _interopRequireDefault(_debug);\n\nvar _functionNames = require('./functionNames');\n\nvar _functionNames2 = _interopRequireDefault(_functionNames);\n\nvar _eventNames = require('./eventNames');\n\nvar _eventNames2 = _interopRequireDefault(_eventNames);\n\nvar _FunctionStateMap = require('./FunctionStateMap');\n\nvar _FunctionStateMap2 = _interopRequireDefault(_FunctionStateMap);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* eslint-disable promise/prefer-await-to-then */\n\nvar debug = (0, _debug2.default)('youtube-player');\n\nvar YouTubePlayer = {};\n\n/**\n * Construct an object that defines an event handler for all of the YouTube\n * player events. Proxy captured events through an event emitter.\n *\n * @todo Capture event parameters.\n * @see https://developers.google.com/youtube/iframe_api_reference#Events\n */\nYouTubePlayer.proxyEvents = function (emitter) {\n var events = {};\n\n var _loop = function _loop(eventName) {\n var onEventName = 'on' + eventName.slice(0, 1).toUpperCase() + eventName.slice(1);\n\n events[onEventName] = function (event) {\n debug('event \"%s\"', onEventName, event);\n\n emitter.trigger(eventName, event);\n };\n };\n\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = _eventNames2.default[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var eventName = _step.value;\n\n _loop(eventName);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n return events;\n};\n\n/**\n * Delays player API method execution until player state is ready.\n *\n * @todo Proxy all of the methods using Object.keys.\n * @todo See TRICKY below.\n * @param playerAPIReady Promise that resolves when player is ready.\n * @param strictState A flag designating whether or not to wait for\n * an acceptable state when calling supported functions.\n * @returns {Object}\n */\nYouTubePlayer.promisifyPlayer = function (playerAPIReady) {\n var strictState = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var functions = {};\n\n var _loop2 = function _loop2(functionName) {\n if (strictState && _FunctionStateMap2.default[functionName]) {\n functions[functionName] = function () {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return playerAPIReady.then(function (player) {\n var stateInfo = _FunctionStateMap2.default[functionName];\n var playerState = player.getPlayerState();\n\n // eslint-disable-next-line no-warning-comments\n // TODO: Just spread the args into the function once Babel is fixed:\n // https://github.com/babel/babel/issues/4270\n //\n // eslint-disable-next-line prefer-spread\n var value = player[functionName].apply(player, args);\n\n // TRICKY: For functions like `seekTo`, a change in state must be\n // triggered given that the resulting state could match the initial\n // state.\n if (stateInfo.stateChangeRequired ||\n\n // eslint-disable-next-line no-extra-parens\n Array.isArray(stateInfo.acceptableStates) && stateInfo.acceptableStates.indexOf(playerState) === -1) {\n return new Promise(function (resolve) {\n var onPlayerStateChange = function onPlayerStateChange() {\n var playerStateAfterChange = player.getPlayerState();\n\n var timeout = void 0;\n\n if (typeof stateInfo.timeout === 'number') {\n timeout = setTimeout(function () {\n player.removeEventListener('onStateChange', onPlayerStateChange);\n\n resolve();\n }, stateInfo.timeout);\n }\n\n if (Array.isArray(stateInfo.acceptableStates) && stateInfo.acceptableStates.indexOf(playerStateAfterChange) !== -1) {\n player.removeEventListener('onStateChange', onPlayerStateChange);\n\n clearTimeout(timeout);\n\n resolve();\n }\n };\n\n player.addEventListener('onStateChange', onPlayerStateChange);\n }).then(function () {\n return value;\n });\n }\n\n return value;\n });\n };\n } else {\n functions[functionName] = function () {\n for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return playerAPIReady.then(function (player) {\n // eslint-disable-next-line no-warning-comments\n // TODO: Just spread the args into the function once Babel is fixed:\n // https://github.com/babel/babel/issues/4270\n //\n // eslint-disable-next-line prefer-spread\n return player[functionName].apply(player, args);\n });\n };\n }\n };\n\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = _functionNames2.default[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var functionName = _step2.value;\n\n _loop2(functionName);\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n\n return functions;\n};\n\nexports.default = YouTubePlayer;\nmodule.exports = exports['default'];","/**\n * This is the web browser implementation of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = require('./debug');\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = 'undefined' != typeof chrome\n && 'undefined' != typeof chrome.storage\n ? chrome.storage.local\n : localstorage();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n 'lightseagreen',\n 'forestgreen',\n 'goldenrod',\n 'dodgerblue',\n 'darkorchid',\n 'crimson'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\nfunction useColors() {\n // NB: In an Electron preload script, document will be defined but not fully\n // initialized. Since we know we're in Chrome, we'll just detect this case\n // explicitly\n if (typeof window !== 'undefined' && window.process && window.process.type === 'renderer') {\n return true;\n }\n\n // is webkit? http://stackoverflow.com/a/16459606/376773\n // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n // is firebug? http://stackoverflow.com/a/398120/376773\n (typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n // is firefox >= v31?\n // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||\n // double check webkit in userAgent just in case we are in a worker\n (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nexports.formatters.j = function(v) {\n try {\n return JSON.stringify(v);\n } catch (err) {\n return '[UnexpectedJSONParseError]: ' + err.message;\n }\n};\n\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n var useColors = this.useColors;\n\n args[0] = (useColors ? '%c' : '')\n + this.namespace\n + (useColors ? ' %c' : ' ')\n + args[0]\n + (useColors ? '%c ' : ' ')\n + '+' + exports.humanize(this.diff);\n\n if (!useColors) return;\n\n var c = 'color: ' + this.color;\n args.splice(1, 0, c, 'color: inherit')\n\n // the final \"%c\" is somewhat tricky, because there could be other\n // arguments passed either before or after the %c, so we need to\n // figure out the correct index to insert the CSS into\n var index = 0;\n var lastC = 0;\n args[0].replace(/%[a-zA-Z%]/g, function(match) {\n if ('%%' === match) return;\n index++;\n if ('%c' === match) {\n // we only are interested in the *last* %c\n // (the user may have provided their own)\n lastC = index;\n }\n });\n\n args.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.log()` when available.\n * No-op when `console.log` is not a \"function\".\n *\n * @api public\n */\n\nfunction log() {\n // this hackery is required for IE8/9, where\n // the `console.log` function doesn't have 'apply'\n return 'object' === typeof console\n && console.log\n && Function.prototype.apply.call(console.log, console, arguments);\n}\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\n\nfunction save(namespaces) {\n try {\n if (null == namespaces) {\n exports.storage.removeItem('debug');\n } else {\n exports.storage.debug = namespaces;\n }\n } catch(e) {}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\nfunction load() {\n var r;\n try {\n r = exports.storage.debug;\n } catch(e) {}\n\n // If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n if (!r && typeof process !== 'undefined' && 'env' in process) {\n r = process.env.DEBUG;\n }\n\n return r;\n}\n\n/**\n * Enable namespaces listed in `localStorage.debug` initially.\n */\n\nexports.enable(load());\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n try {\n return window.localStorage;\n } catch (e) {}\n}\n","\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = createDebug.debug = createDebug['default'] = createDebug;\nexports.coerce = coerce;\nexports.disable = disable;\nexports.enable = enable;\nexports.enabled = enabled;\nexports.humanize = require('ms');\n\n/**\n * The currently active debug mode names, and names to skip.\n */\n\nexports.names = [];\nexports.skips = [];\n\n/**\n * Map of special \"%n\" handling functions, for the debug \"format\" argument.\n *\n * Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n */\n\nexports.formatters = {};\n\n/**\n * Previous log timestamp.\n */\n\nvar prevTime;\n\n/**\n * Select a color.\n * @param {String} namespace\n * @return {Number}\n * @api private\n */\n\nfunction selectColor(namespace) {\n var hash = 0, i;\n\n for (i in namespace) {\n hash = ((hash << 5) - hash) + namespace.charCodeAt(i);\n hash |= 0; // Convert to 32bit integer\n }\n\n return exports.colors[Math.abs(hash) % exports.colors.length];\n}\n\n/**\n * Create a debugger with the given `namespace`.\n *\n * @param {String} namespace\n * @return {Function}\n * @api public\n */\n\nfunction createDebug(namespace) {\n\n function debug() {\n // disabled?\n if (!debug.enabled) return;\n\n var self = debug;\n\n // set `diff` timestamp\n var curr = +new Date();\n var ms = curr - (prevTime || curr);\n self.diff = ms;\n self.prev = prevTime;\n self.curr = curr;\n prevTime = curr;\n\n // turn the `arguments` into a proper Array\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n\n args[0] = exports.coerce(args[0]);\n\n if ('string' !== typeof args[0]) {\n // anything else let's inspect with %O\n args.unshift('%O');\n }\n\n // apply any `formatters` transformations\n var index = 0;\n args[0] = args[0].replace(/%([a-zA-Z%])/g, function(match, format) {\n // if we encounter an escaped % then don't increase the array index\n if (match === '%%') return match;\n index++;\n var formatter = exports.formatters[format];\n if ('function' === typeof formatter) {\n var val = args[index];\n match = formatter.call(self, val);\n\n // now we need to remove `args[index]` since it's inlined in the `format`\n args.splice(index, 1);\n index--;\n }\n return match;\n });\n\n // apply env-specific formatting (colors, etc.)\n exports.formatArgs.call(self, args);\n\n var logFn = debug.log || exports.log || console.log.bind(console);\n logFn.apply(self, args);\n }\n\n debug.namespace = namespace;\n debug.enabled = exports.enabled(namespace);\n debug.useColors = exports.useColors();\n debug.color = selectColor(namespace);\n\n // env-specific initialization logic for debug instances\n if ('function' === typeof exports.init) {\n exports.init(debug);\n }\n\n return debug;\n}\n\n/**\n * Enables a debug mode by namespaces. This can include modes\n * separated by a colon and wildcards.\n *\n * @param {String} namespaces\n * @api public\n */\n\nfunction enable(namespaces) {\n exports.save(namespaces);\n\n exports.names = [];\n exports.skips = [];\n\n var split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n var len = split.length;\n\n for (var i = 0; i < len; i++) {\n if (!split[i]) continue; // ignore empty strings\n namespaces = split[i].replace(/\\*/g, '.*?');\n if (namespaces[0] === '-') {\n exports.skips.push(new RegExp('^' + namespaces.substr(1) + '$'));\n } else {\n exports.names.push(new RegExp('^' + namespaces + '$'));\n }\n }\n}\n\n/**\n * Disable debug output.\n *\n * @api public\n */\n\nfunction disable() {\n exports.enable('');\n}\n\n/**\n * Returns true if the given mode name is enabled, false otherwise.\n *\n * @param {String} name\n * @return {Boolean}\n * @api public\n */\n\nfunction enabled(name) {\n var i, len;\n for (i = 0, len = exports.skips.length; i < len; i++) {\n if (exports.skips[i].test(name)) {\n return false;\n }\n }\n for (i = 0, len = exports.names.length; i < len; i++) {\n if (exports.names[i].test(name)) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * Coerce `val`.\n *\n * @param {Mixed} val\n * @return {Mixed}\n * @api private\n */\n\nfunction coerce(val) {\n if (val instanceof Error) return val.stack || val.message;\n return val;\n}\n","/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function(val, options) {\n options = options || {};\n var type = typeof val;\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isNaN(val) === false) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error(\n 'val is not a non-empty string or a valid number. val=' +\n JSON.stringify(val)\n );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^((?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(\n str\n );\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n if (ms >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (ms >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (ms >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (ms >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n return plural(ms, d, 'day') ||\n plural(ms, h, 'hour') ||\n plural(ms, m, 'minute') ||\n plural(ms, s, 'second') ||\n ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, n, name) {\n if (ms < n) {\n return;\n }\n if (ms < n * 1.5) {\n return Math.floor(ms / n) + ' ' + name;\n }\n return Math.ceil(ms / n) + ' ' + name + 's';\n}\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\n\n/**\n * @see https://developers.google.com/youtube/iframe_api_reference#Functions\n */\nexports.default = ['cueVideoById', 'loadVideoById', 'cueVideoByUrl', 'loadVideoByUrl', 'playVideo', 'pauseVideo', 'stopVideo', 'getVideoLoadedFraction', 'cuePlaylist', 'loadPlaylist', 'nextVideo', 'previousVideo', 'playVideoAt', 'setShuffle', 'setLoop', 'getPlaylist', 'getPlaylistIndex', 'setOption', 'mute', 'unMute', 'isMuted', 'setVolume', 'getVolume', 'seekTo', 'getPlayerState', 'getPlaybackRate', 'setPlaybackRate', 'getAvailablePlaybackRates', 'getPlaybackQuality', 'setPlaybackQuality', 'getAvailableQualityLevels', 'getCurrentTime', 'getDuration', 'removeEventListener', 'getVideoUrl', 'getVideoEmbedCode', 'getOptions', 'getOption', 'addEventListener', 'destroy', 'setSize', 'getIframe'];\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\n\n/**\n * @see https://developers.google.com/youtube/iframe_api_reference#Events\n * `volumeChange` is not officially supported but seems to work\n * it emits an object: `{volume: 82.6923076923077, muted: false}`\n */\nexports.default = ['ready', 'stateChange', 'playbackQualityChange', 'playbackRateChange', 'error', 'apiChange', 'volumeChange'];\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _PlayerStates = require('./constants/PlayerStates');\n\nvar _PlayerStates2 = _interopRequireDefault(_PlayerStates);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n pauseVideo: {\n acceptableStates: [_PlayerStates2.default.ENDED, _PlayerStates2.default.PAUSED],\n stateChangeRequired: false\n },\n playVideo: {\n acceptableStates: [_PlayerStates2.default.ENDED, _PlayerStates2.default.PLAYING],\n stateChangeRequired: false\n },\n seekTo: {\n acceptableStates: [_PlayerStates2.default.ENDED, _PlayerStates2.default.PLAYING, _PlayerStates2.default.PAUSED],\n stateChangeRequired: true,\n\n // TRICKY: `seekTo` may not cause a state change if no buffering is\n // required.\n timeout: 3000\n }\n};\nmodule.exports = exports['default'];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n BUFFERING: 3,\n ENDED: 0,\n PAUSED: 2,\n PLAYING: 1,\n UNSTARTED: -1,\n VIDEO_CUED: 5\n};\nmodule.exports = exports[\"default\"];","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport isEqual from 'fast-deep-equal';\nimport youTubePlayer from 'youtube-player';\n/**\n * Check whether a `props` change should result in the video being updated.\n *\n * @param {Object} prevProps\n * @param {Object} props\n */\n\nfunction shouldUpdateVideo(prevProps, props) {\n // A changing video should always trigger an update\n if (prevProps.videoId !== props.videoId) {\n return true;\n } // Otherwise, a change in the start/end time playerVars also requires a player\n // update.\n\n\n var prevVars = prevProps.opts.playerVars || {};\n var vars = props.opts.playerVars || {};\n return prevVars.start !== vars.start || prevVars.end !== vars.end;\n}\n/**\n * Neutralize API options that only require a video update, leaving only options\n * that require a player reset. The results can then be compared to see if a\n * player reset is necessary.\n *\n * @param {Object} opts\n */\n\n\nfunction filterResetOptions(opts) {\n return _objectSpread(_objectSpread({}, opts), {}, {\n height: 0,\n width: 0,\n playerVars: _objectSpread(_objectSpread({}, opts.playerVars), {}, {\n autoplay: 0,\n start: 0,\n end: 0\n })\n });\n}\n/**\n * Check whether a `props` change should result in the player being reset.\n * The player is reset when the `props.opts` change, except if the only change\n * is in the `start` and `end` playerVars, because a video update can deal with\n * those.\n *\n * @param {Object} prevProps\n * @param {Object} props\n */\n\n\nfunction shouldResetPlayer(prevProps, props) {\n return prevProps.videoId !== props.videoId || !isEqual(filterResetOptions(prevProps.opts), filterResetOptions(props.opts));\n}\n/**\n * Check whether a props change should result in an id or className update.\n *\n * @param {Object} prevProps\n * @param {Object} props\n */\n\n\nfunction shouldUpdatePlayer(prevProps, props) {\n return prevProps.id !== props.id || prevProps.className !== props.className || prevProps.opts.width !== props.opts.width || prevProps.opts.height !== props.opts.height || prevProps.title !== props.title;\n}\n\nvar YouTube = /*#__PURE__*/function (_React$Component) {\n _inherits(YouTube, _React$Component);\n\n var _super = _createSuper(YouTube);\n\n /**\n * Expose PlayerState constants for convenience. These constants can also be\n * accessed through the global YT object after the YouTube IFrame API is instantiated.\n * https://developers.google.com/youtube/iframe_api_reference#onStateChange\n */\n function YouTube(props) {\n var _this;\n\n _classCallCheck(this, YouTube);\n\n _this = _super.call(this, props);\n\n _defineProperty(_assertThisInitialized(_this), \"onPlayerReady\", function (event) {\n return _this.props.onReady(event);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onPlayerError\", function (event) {\n return _this.props.onError(event);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onPlayerStateChange\", function (event) {\n _this.props.onStateChange(event);\n\n switch (event.data) {\n case YouTube.PlayerState.ENDED:\n _this.props.onEnd(event);\n\n break;\n\n case YouTube.PlayerState.PLAYING:\n _this.props.onPlay(event);\n\n break;\n\n case YouTube.PlayerState.PAUSED:\n _this.props.onPause(event);\n\n break;\n\n default:\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onPlayerPlaybackRateChange\", function (event) {\n return _this.props.onPlaybackRateChange(event);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onPlayerPlaybackQualityChange\", function (event) {\n return _this.props.onPlaybackQualityChange(event);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"createPlayer\", function () {\n // do not attempt to create a player server-side, it won't work\n if (typeof document === 'undefined') return; // create player\n\n var playerOpts = _objectSpread(_objectSpread({}, _this.props.opts), {}, {\n // preload the `videoId` video if one is already given\n videoId: _this.props.videoId\n });\n\n _this.internalPlayer = youTubePlayer(_this.container, playerOpts); // attach event handlers\n\n _this.internalPlayer.on('ready', _this.onPlayerReady);\n\n _this.internalPlayer.on('error', _this.onPlayerError);\n\n _this.internalPlayer.on('stateChange', _this.onPlayerStateChange);\n\n _this.internalPlayer.on('playbackRateChange', _this.onPlayerPlaybackRateChange);\n\n _this.internalPlayer.on('playbackQualityChange', _this.onPlayerPlaybackQualityChange);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"resetPlayer\", function () {\n return _this.internalPlayer.destroy().then(_this.createPlayer);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"updatePlayer\", function () {\n _this.internalPlayer.getIframe().then(function (iframe) {\n if (_this.props.id) iframe.setAttribute('id', _this.props.id);else iframe.removeAttribute('id');\n if (_this.props.className) iframe.setAttribute('class', _this.props.className);else iframe.removeAttribute('class');\n if (_this.props.opts && _this.props.opts.width) iframe.setAttribute('width', _this.props.opts.width);else iframe.removeAttribute('width');\n if (_this.props.opts && _this.props.opts.height) iframe.setAttribute('height', _this.props.opts.height);else iframe.removeAttribute('height');\n if (typeof _this.props.title === 'string') iframe.setAttribute('title', _this.props.title);else iframe.setAttribute('title', 'YouTube video player');\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getInternalPlayer\", function () {\n return _this.internalPlayer;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"updateVideo\", function () {\n if (typeof _this.props.videoId === 'undefined' || _this.props.videoId === null) {\n _this.internalPlayer.stopVideo();\n\n return;\n } // set queueing options\n\n\n var autoplay = false;\n var opts = {\n videoId: _this.props.videoId\n };\n\n if ('playerVars' in _this.props.opts) {\n autoplay = _this.props.opts.playerVars.autoplay === 1;\n\n if ('start' in _this.props.opts.playerVars) {\n opts.startSeconds = _this.props.opts.playerVars.start;\n }\n\n if ('end' in _this.props.opts.playerVars) {\n opts.endSeconds = _this.props.opts.playerVars.end;\n }\n } // if autoplay is enabled loadVideoById\n\n\n if (autoplay) {\n _this.internalPlayer.loadVideoById(opts);\n\n return;\n } // default behaviour just cues the video\n\n\n _this.internalPlayer.cueVideoById(opts);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"refContainer\", function (container) {\n _this.container = container;\n });\n\n _this.container = null;\n _this.internalPlayer = null;\n return _this;\n }\n\n _createClass(YouTube, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.createPlayer();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n if (shouldUpdatePlayer(prevProps, this.props)) {\n this.updatePlayer();\n }\n\n if (shouldResetPlayer(prevProps, this.props)) {\n this.resetPlayer();\n }\n\n if (shouldUpdateVideo(prevProps, this.props)) {\n this.updateVideo();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n /**\n * Note: The `youtube-player` package that is used promisifies all YouTube\n * Player API calls, which introduces a delay of a tick before it actually\n * gets destroyed. Since React attempts to remove the element instantly\n * this method isn't quick enough to reset the container element.\n */\n this.internalPlayer.destroy();\n }\n /**\n * https://developers.google.com/youtube/iframe_api_reference#onReady\n *\n * @param {Object} event\n * @param {Object} target - player object\n */\n\n }, {\n key: \"render\",\n value: function render() {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: this.props.containerClassName\n }, /*#__PURE__*/React.createElement(\"div\", {\n id: this.props.id,\n className: this.props.className,\n ref: this.refContainer,\n loading: this.props.loading\n }));\n }\n }]);\n\n return YouTube;\n}(React.Component);\n\n_defineProperty(YouTube, \"PlayerState\", {\n UNSTARTED: -1,\n ENDED: 0,\n PLAYING: 1,\n PAUSED: 2,\n BUFFERING: 3,\n CUED: 5\n});\n\nYouTube.propTypes = {\n videoId: PropTypes.string,\n // custom ID for player element\n id: PropTypes.string,\n // custom class name for player element\n className: PropTypes.string,\n // custom class name for player container element\n containerClassName: PropTypes.string,\n // custom title for the iFrame, see https://www.w3.org/TR/WCAG20-TECHS/H64.html\n title: PropTypes.string,\n // custom loading for player element\n loading: PropTypes.oneOf(['lazy', 'eager', 'auto']),\n // https://developers.google.com/youtube/iframe_api_reference#Loading_a_Video_Player\n opts: PropTypes.objectOf(PropTypes.any),\n // event subscriptions\n onReady: PropTypes.func,\n onError: PropTypes.func,\n onPlay: PropTypes.func,\n onPause: PropTypes.func,\n onEnd: PropTypes.func,\n onStateChange: PropTypes.func,\n onPlaybackRateChange: PropTypes.func,\n onPlaybackQualityChange: PropTypes.func\n};\nYouTube.defaultProps = {\n videoId: null,\n id: null,\n className: null,\n loading: null,\n opts: {},\n containerClassName: '',\n onReady: function onReady() {},\n onError: function onError() {},\n onPlay: function onPlay() {},\n onPause: function onPause() {},\n onEnd: function onEnd() {},\n onStateChange: function onStateChange() {},\n onPlaybackRateChange: function onPlaybackRateChange() {},\n onPlaybackQualityChange: function onPlaybackQualityChange() {},\n title: null\n};\nexport default YouTube;\n","'use strict';\n\n// do not edit .js files directly - edit src/index.jst\n\n\n\nmodule.exports = function equal(a, b) {\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n\n if (!equal(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n // true if both NaN, false otherwise\n return a!==a && b!==b;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _sister = require('sister');\n\nvar _sister2 = _interopRequireDefault(_sister);\n\nvar _loadYouTubeIframeApi = require('./loadYouTubeIframeApi');\n\nvar _loadYouTubeIframeApi2 = _interopRequireDefault(_loadYouTubeIframeApi);\n\nvar _YouTubePlayer = require('./YouTubePlayer');\n\nvar _YouTubePlayer2 = _interopRequireDefault(_YouTubePlayer);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @typedef YT.Player\n * @see https://developers.google.com/youtube/iframe_api_reference\n * */\n\n/**\n * @see https://developers.google.com/youtube/iframe_api_reference#Loading_a_Video_Player\n */\nvar youtubeIframeAPI = void 0;\n\n/**\n * A factory function used to produce an instance of YT.Player and queue function calls and proxy events of the resulting object.\n *\n * @param maybeElementId Either An existing YT.Player instance,\n * the DOM element or the id of the HTML element where the API will insert an