Файловый менеджер - Редактировать - /home/freeclou/app.optimyar.com/backend/node_modules/video-react/dist/video-react.full.min.js.map
Назад
{"version":3,"file":"video-react.full.min.js","sources":["../node_modules/object-assign/index.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/symbol-observable/es/ponyfill.js","../node_modules/redux/es/redux.js","../src/reducers/player.js","../src/reducers/operation.js","../src/reducers/index.js","../src/components/LoadingSpinner.js","../src/components/PosterImage.js","../src/utils/index.js","../src/utils/dom.js","../src/components/control-bar/PlayProgressBar.js","../src/components/control-bar/LoadProgressBar.js","../src/components/control-bar/MouseTimeDisplay.js","../src/components/time-controls/RemainingTimeDisplay.js","../src/components/time-controls/CurrentTimeDisplay.js","../src/components/time-controls/DurationDisplay.js","../src/components/time-controls/TimeDivider.js","../src/components/popup/PopupButton.js","../src/components/volume-control/VolumeLevel.js","../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-is/index.js","../node_modules/prop-types/factoryWithTypeCheckers.js","../node_modules/symbol-observable/es/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/prop-types/index.js","../node_modules/classnames/index.js","../src/actions/video.js","../src/utils/fullscreen.js","../src/actions/player.js","../src/Manager.js","../src/components/BigPlayButton.js","../src/components/Video.js","../src/components/Bezel.js","../src/components/Shortcut.js","../src/components/Slider.js","../src/components/control-bar/SeekBar.js","../src/components/control-bar/ProgressControl.js","../src/components/control-bar/PlayToggle.js","../src/components/control-bar/ForwardReplayControl.js","../src/components/control-bar/ForwardControl.js","../src/components/control-bar/ReplayControl.js","../src/components/control-bar/FullscreenToggle.js","../src/components/ClickableComponent.js","../src/components/popup/Popup.js","../src/components/volume-control/VolumeBar.js","../src/components/control-bar/VolumeMenuButton.js","../src/components/menu/Menu.js","../src/components/menu/MenuItem.js","../src/components/menu/MenuButton.js","../src/components/control-bar/PlaybackRateMenuButton.js","../src/components/control-bar/ControlBar.js","../src/utils/browser.js","../src/components/Player.js","../src/components/control-bar/PlaybackRate.js"],"sourcesContent":["/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\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","export default function symbolObservablePonyfill(root) {\n\tvar result;\n\tvar Symbol = root.Symbol;\n\n\tif (typeof Symbol === 'function') {\n\t\tif (Symbol.observable) {\n\t\t\tresult = Symbol.observable;\n\t\t} else {\n\t\t\tresult = Symbol('observable');\n\t\t\tSymbol.observable = result;\n\t\t}\n\t} else {\n\t\tresult = '@@observable';\n\t}\n\n\treturn result;\n};\n","import $$observable from 'symbol-observable';\n\n/**\n * These are private action types reserved by Redux.\n * For any unknown actions, you must return the current state.\n * If the current state is undefined, you must return the initial state.\n * Do not reference these action types directly in your code.\n */\nvar randomString = function randomString() {\n return Math.random().toString(36).substring(7).split('').join('.');\n};\n\nvar ActionTypes = {\n INIT: \"@@redux/INIT\" + randomString(),\n REPLACE: \"@@redux/REPLACE\" + randomString(),\n PROBE_UNKNOWN_ACTION: function PROBE_UNKNOWN_ACTION() {\n return \"@@redux/PROBE_UNKNOWN_ACTION\" + randomString();\n }\n};\n\n/**\n * @param {any} obj The object to inspect.\n * @returns {boolean} True if the argument appears to be a plain object.\n */\nfunction isPlainObject(obj) {\n if (typeof obj !== 'object' || obj === null) return false;\n var proto = obj;\n\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n\n return Object.getPrototypeOf(obj) === proto;\n}\n\n/**\n * Creates a Redux store that holds the state tree.\n * The only way to change the data in the store is to call `dispatch()` on it.\n *\n * There should only be a single store in your app. To specify how different\n * parts of the state tree respond to actions, you may combine several reducers\n * into a single reducer function by using `combineReducers`.\n *\n * @param {Function} reducer A function that returns the next state tree, given\n * the current state tree and the action to handle.\n *\n * @param {any} [preloadedState] The initial state. You may optionally specify it\n * to hydrate the state from the server in universal apps, or to restore a\n * previously serialized user session.\n * If you use `combineReducers` to produce the root reducer function, this must be\n * an object with the same shape as `combineReducers` keys.\n *\n * @param {Function} [enhancer] The store enhancer. You may optionally specify it\n * to enhance the store with third-party capabilities such as middleware,\n * time travel, persistence, etc. The only store enhancer that ships with Redux\n * is `applyMiddleware()`.\n *\n * @returns {Store} A Redux store that lets you read the state, dispatch actions\n * and subscribe to changes.\n */\n\nfunction createStore(reducer, preloadedState, enhancer) {\n var _ref2;\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'function' || typeof enhancer === 'function' && typeof arguments[3] === 'function') {\n throw new Error('It looks like you are passing several store enhancers to ' + 'createStore(). This is not supported. Instead, compose them ' + 'together to a single function');\n }\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') {\n enhancer = preloadedState;\n preloadedState = undefined;\n }\n\n if (typeof enhancer !== 'undefined') {\n if (typeof enhancer !== 'function') {\n throw new Error('Expected the enhancer to be a function.');\n }\n\n return enhancer(createStore)(reducer, preloadedState);\n }\n\n if (typeof reducer !== 'function') {\n throw new Error('Expected the reducer to be a function.');\n }\n\n var currentReducer = reducer;\n var currentState = preloadedState;\n var currentListeners = [];\n var nextListeners = currentListeners;\n var isDispatching = false;\n\n function ensureCanMutateNextListeners() {\n if (nextListeners === currentListeners) {\n nextListeners = currentListeners.slice();\n }\n }\n /**\n * Reads the state tree managed by the store.\n *\n * @returns {any} The current state tree of your application.\n */\n\n\n function getState() {\n if (isDispatching) {\n throw new Error('You may not call store.getState() while the reducer is executing. ' + 'The reducer has already received the state as an argument. ' + 'Pass it down from the top reducer instead of reading it from the store.');\n }\n\n return currentState;\n }\n /**\n * Adds a change listener. It will be called any time an action is dispatched,\n * and some part of the state tree may potentially have changed. You may then\n * call `getState()` to read the current state tree inside the callback.\n *\n * You may call `dispatch()` from a change listener, with the following\n * caveats:\n *\n * 1. The subscriptions are snapshotted just before every `dispatch()` call.\n * If you subscribe or unsubscribe while the listeners are being invoked, this\n * will not have any effect on the `dispatch()` that is currently in progress.\n * However, the next `dispatch()` call, whether nested or not, will use a more\n * recent snapshot of the subscription list.\n *\n * 2. The listener should not expect to see all state changes, as the state\n * might have been updated multiple times during a nested `dispatch()` before\n * the listener is called. It is, however, guaranteed that all subscribers\n * registered before the `dispatch()` started will be called with the latest\n * state by the time it exits.\n *\n * @param {Function} listener A callback to be invoked on every dispatch.\n * @returns {Function} A function to remove this change listener.\n */\n\n\n function subscribe(listener) {\n if (typeof listener !== 'function') {\n throw new Error('Expected the listener to be a function.');\n }\n\n if (isDispatching) {\n throw new Error('You may not call store.subscribe() while the reducer is executing. ' + 'If you would like to be notified after the store has been updated, subscribe from a ' + 'component and invoke store.getState() in the callback to access the latest state. ' + 'See https://redux.js.org/api-reference/store#subscribe(listener) for more details.');\n }\n\n var isSubscribed = true;\n ensureCanMutateNextListeners();\n nextListeners.push(listener);\n return function unsubscribe() {\n if (!isSubscribed) {\n return;\n }\n\n if (isDispatching) {\n throw new Error('You may not unsubscribe from a store listener while the reducer is executing. ' + 'See https://redux.js.org/api-reference/store#subscribe(listener) for more details.');\n }\n\n isSubscribed = false;\n ensureCanMutateNextListeners();\n var index = nextListeners.indexOf(listener);\n nextListeners.splice(index, 1);\n };\n }\n /**\n * Dispatches an action. It is the only way to trigger a state change.\n *\n * The `reducer` function, used to create the store, will be called with the\n * current state tree and the given `action`. Its return value will\n * be considered the **next** state of the tree, and the change listeners\n * will be notified.\n *\n * The base implementation only supports plain object actions. If you want to\n * dispatch a Promise, an Observable, a thunk, or something else, you need to\n * wrap your store creating function into the corresponding middleware. For\n * example, see the documentation for the `redux-thunk` package. Even the\n * middleware will eventually dispatch plain object actions using this method.\n *\n * @param {Object} action A plain object representing “what changed”. It is\n * a good idea to keep actions serializable so you can record and replay user\n * sessions, or use the time travelling `redux-devtools`. An action must have\n * a `type` property which may not be `undefined`. It is a good idea to use\n * string constants for action types.\n *\n * @returns {Object} For convenience, the same action object you dispatched.\n *\n * Note that, if you use a custom middleware, it may wrap `dispatch()` to\n * return something else (for example, a Promise you can await).\n */\n\n\n function dispatch(action) {\n if (!isPlainObject(action)) {\n throw new Error('Actions must be plain objects. ' + 'Use custom middleware for async actions.');\n }\n\n if (typeof action.type === 'undefined') {\n throw new Error('Actions may not have an undefined \"type\" property. ' + 'Have you misspelled a constant?');\n }\n\n if (isDispatching) {\n throw new Error('Reducers may not dispatch actions.');\n }\n\n try {\n isDispatching = true;\n currentState = currentReducer(currentState, action);\n } finally {\n isDispatching = false;\n }\n\n var listeners = currentListeners = nextListeners;\n\n for (var i = 0; i < listeners.length; i++) {\n var listener = listeners[i];\n listener();\n }\n\n return action;\n }\n /**\n * Replaces the reducer currently used by the store to calculate the state.\n *\n * You might need this if your app implements code splitting and you want to\n * load some of the reducers dynamically. You might also need this if you\n * implement a hot reloading mechanism for Redux.\n *\n * @param {Function} nextReducer The reducer for the store to use instead.\n * @returns {void}\n */\n\n\n function replaceReducer(nextReducer) {\n if (typeof nextReducer !== 'function') {\n throw new Error('Expected the nextReducer to be a function.');\n }\n\n currentReducer = nextReducer;\n dispatch({\n type: ActionTypes.REPLACE\n });\n }\n /**\n * Interoperability point for observable/reactive libraries.\n * @returns {observable} A minimal observable of state changes.\n * For more information, see the observable proposal:\n * https://github.com/tc39/proposal-observable\n */\n\n\n function observable() {\n var _ref;\n\n var outerSubscribe = subscribe;\n return _ref = {\n /**\n * The minimal observable subscription method.\n * @param {Object} observer Any object that can be used as an observer.\n * The observer object should have a `next` method.\n * @returns {subscription} An object with an `unsubscribe` method that can\n * be used to unsubscribe the observable from the store, and prevent further\n * emission of values from the observable.\n */\n subscribe: function subscribe(observer) {\n if (typeof observer !== 'object' || observer === null) {\n throw new TypeError('Expected the observer to be an object.');\n }\n\n function observeState() {\n if (observer.next) {\n observer.next(getState());\n }\n }\n\n observeState();\n var unsubscribe = outerSubscribe(observeState);\n return {\n unsubscribe: unsubscribe\n };\n }\n }, _ref[$$observable] = function () {\n return this;\n }, _ref;\n } // When a store is created, an \"INIT\" action is dispatched so that every\n // reducer returns their initial state. This effectively populates\n // the initial state tree.\n\n\n dispatch({\n type: ActionTypes.INIT\n });\n return _ref2 = {\n dispatch: dispatch,\n subscribe: subscribe,\n getState: getState,\n replaceReducer: replaceReducer\n }, _ref2[$$observable] = observable, _ref2;\n}\n\n/**\n * Prints a warning in the console if it exists.\n *\n * @param {String} message The warning message.\n * @returns {void}\n */\nfunction warning(message) {\n /* eslint-disable no-console */\n if (typeof console !== 'undefined' && typeof console.error === 'function') {\n console.error(message);\n }\n /* eslint-enable no-console */\n\n\n try {\n // This error was thrown as a convenience so that if you enable\n // \"break on all exceptions\" in your console,\n // it would pause the execution at this line.\n throw new Error(message);\n } catch (e) {} // eslint-disable-line no-empty\n\n}\n\nfunction getUndefinedStateErrorMessage(key, action) {\n var actionType = action && action.type;\n var actionDescription = actionType && \"action \\\"\" + String(actionType) + \"\\\"\" || 'an action';\n return \"Given \" + actionDescription + \", reducer \\\"\" + key + \"\\\" returned undefined. \" + \"To ignore an action, you must explicitly return the previous state. \" + \"If you want this reducer to hold no value, you can return null instead of undefined.\";\n}\n\nfunction getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) {\n var reducerKeys = Object.keys(reducers);\n var argumentName = action && action.type === ActionTypes.INIT ? 'preloadedState argument passed to createStore' : 'previous state received by the reducer';\n\n if (reducerKeys.length === 0) {\n return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.';\n }\n\n if (!isPlainObject(inputState)) {\n return \"The \" + argumentName + \" has unexpected type of \\\"\" + {}.toString.call(inputState).match(/\\s([a-z|A-Z]+)/)[1] + \"\\\". Expected argument to be an object with the following \" + (\"keys: \\\"\" + reducerKeys.join('\", \"') + \"\\\"\");\n }\n\n var unexpectedKeys = Object.keys(inputState).filter(function (key) {\n return !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key];\n });\n unexpectedKeys.forEach(function (key) {\n unexpectedKeyCache[key] = true;\n });\n if (action && action.type === ActionTypes.REPLACE) return;\n\n if (unexpectedKeys.length > 0) {\n return \"Unexpected \" + (unexpectedKeys.length > 1 ? 'keys' : 'key') + \" \" + (\"\\\"\" + unexpectedKeys.join('\", \"') + \"\\\" found in \" + argumentName + \". \") + \"Expected to find one of the known reducer keys instead: \" + (\"\\\"\" + reducerKeys.join('\", \"') + \"\\\". Unexpected keys will be ignored.\");\n }\n}\n\nfunction assertReducerShape(reducers) {\n Object.keys(reducers).forEach(function (key) {\n var reducer = reducers[key];\n var initialState = reducer(undefined, {\n type: ActionTypes.INIT\n });\n\n if (typeof initialState === 'undefined') {\n throw new Error(\"Reducer \\\"\" + key + \"\\\" returned undefined during initialization. \" + \"If the state passed to the reducer is undefined, you must \" + \"explicitly return the initial state. The initial state may \" + \"not be undefined. If you don't want to set a value for this reducer, \" + \"you can use null instead of undefined.\");\n }\n\n if (typeof reducer(undefined, {\n type: ActionTypes.PROBE_UNKNOWN_ACTION()\n }) === 'undefined') {\n throw new Error(\"Reducer \\\"\" + key + \"\\\" returned undefined when probed with a random type. \" + (\"Don't try to handle \" + ActionTypes.INIT + \" or other actions in \\\"redux/*\\\" \") + \"namespace. They are considered private. Instead, you must return the \" + \"current state for any unknown actions, unless it is undefined, \" + \"in which case you must return the initial state, regardless of the \" + \"action type. The initial state may not be undefined, but can be null.\");\n }\n });\n}\n/**\n * Turns an object whose values are different reducer functions, into a single\n * reducer function. It will call every child reducer, and gather their results\n * into a single state object, whose keys correspond to the keys of the passed\n * reducer functions.\n *\n * @param {Object} reducers An object whose values correspond to different\n * reducer functions that need to be combined into one. One handy way to obtain\n * it is to use ES6 `import * as reducers` syntax. The reducers may never return\n * undefined for any action. Instead, they should return their initial state\n * if the state passed to them was undefined, and the current state for any\n * unrecognized action.\n *\n * @returns {Function} A reducer function that invokes every reducer inside the\n * passed object, and builds a state object with the same shape.\n */\n\n\nfunction combineReducers(reducers) {\n var reducerKeys = Object.keys(reducers);\n var finalReducers = {};\n\n for (var i = 0; i < reducerKeys.length; i++) {\n var key = reducerKeys[i];\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof reducers[key] === 'undefined') {\n warning(\"No reducer provided for key \\\"\" + key + \"\\\"\");\n }\n }\n\n if (typeof reducers[key] === 'function') {\n finalReducers[key] = reducers[key];\n }\n }\n\n var finalReducerKeys = Object.keys(finalReducers);\n var unexpectedKeyCache;\n\n if (process.env.NODE_ENV !== 'production') {\n unexpectedKeyCache = {};\n }\n\n var shapeAssertionError;\n\n try {\n assertReducerShape(finalReducers);\n } catch (e) {\n shapeAssertionError = e;\n }\n\n return function combination(state, action) {\n if (state === void 0) {\n state = {};\n }\n\n if (shapeAssertionError) {\n throw shapeAssertionError;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n var warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache);\n\n if (warningMessage) {\n warning(warningMessage);\n }\n }\n\n var hasChanged = false;\n var nextState = {};\n\n for (var _i = 0; _i < finalReducerKeys.length; _i++) {\n var _key = finalReducerKeys[_i];\n var reducer = finalReducers[_key];\n var previousStateForKey = state[_key];\n var nextStateForKey = reducer(previousStateForKey, action);\n\n if (typeof nextStateForKey === 'undefined') {\n var errorMessage = getUndefinedStateErrorMessage(_key, action);\n throw new Error(errorMessage);\n }\n\n nextState[_key] = nextStateForKey;\n hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n }\n\n return hasChanged ? nextState : state;\n };\n}\n\nfunction bindActionCreator(actionCreator, dispatch) {\n return function () {\n return dispatch(actionCreator.apply(this, arguments));\n };\n}\n/**\n * Turns an object whose values are action creators, into an object with the\n * same keys, but with every function wrapped into a `dispatch` call so they\n * may be invoked directly. This is just a convenience method, as you can call\n * `store.dispatch(MyActionCreators.doSomething())` yourself just fine.\n *\n * For convenience, you can also pass a single function as the first argument,\n * and get a function in return.\n *\n * @param {Function|Object} actionCreators An object whose values are action\n * creator functions. One handy way to obtain it is to use ES6 `import * as`\n * syntax. You may also pass a single function.\n *\n * @param {Function} dispatch The `dispatch` function available on your Redux\n * store.\n *\n * @returns {Function|Object} The object mimicking the original object, but with\n * every action creator wrapped into the `dispatch` call. If you passed a\n * function as `actionCreators`, the return value will also be a single\n * function.\n */\n\n\nfunction bindActionCreators(actionCreators, dispatch) {\n if (typeof actionCreators === 'function') {\n return bindActionCreator(actionCreators, dispatch);\n }\n\n if (typeof actionCreators !== 'object' || actionCreators === null) {\n throw new Error(\"bindActionCreators expected an object or a function, instead received \" + (actionCreators === null ? 'null' : typeof actionCreators) + \". \" + \"Did you write \\\"import ActionCreators from\\\" instead of \\\"import * as ActionCreators from\\\"?\");\n }\n\n var keys = Object.keys(actionCreators);\n var boundActionCreators = {};\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n var actionCreator = actionCreators[key];\n\n if (typeof actionCreator === 'function') {\n boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);\n }\n }\n\n return boundActionCreators;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}\n\n/**\n * Composes single-argument functions from right to left. The rightmost\n * function can take multiple arguments as it provides the signature for\n * the resulting composite function.\n *\n * @param {...Function} funcs The functions to compose.\n * @returns {Function} A function obtained by composing the argument functions\n * from right to left. For example, compose(f, g, h) is identical to doing\n * (...args) => f(g(h(...args))).\n */\nfunction compose() {\n for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) {\n funcs[_key] = arguments[_key];\n }\n\n if (funcs.length === 0) {\n return function (arg) {\n return arg;\n };\n }\n\n if (funcs.length === 1) {\n return funcs[0];\n }\n\n return funcs.reduce(function (a, b) {\n return function () {\n return a(b.apply(void 0, arguments));\n };\n });\n}\n\n/**\n * Creates a store enhancer that applies middleware to the dispatch method\n * of the Redux store. This is handy for a variety of tasks, such as expressing\n * asynchronous actions in a concise manner, or logging every action payload.\n *\n * See `redux-thunk` package as an example of the Redux middleware.\n *\n * Because middleware is potentially asynchronous, this should be the first\n * store enhancer in the composition chain.\n *\n * Note that each middleware will be given the `dispatch` and `getState` functions\n * as named arguments.\n *\n * @param {...Function} middlewares The middleware chain to be applied.\n * @returns {Function} A store enhancer applying the middleware.\n */\n\nfunction applyMiddleware() {\n for (var _len = arguments.length, middlewares = new Array(_len), _key = 0; _key < _len; _key++) {\n middlewares[_key] = arguments[_key];\n }\n\n return function (createStore) {\n return function () {\n var store = createStore.apply(void 0, arguments);\n\n var _dispatch = function dispatch() {\n throw new Error(\"Dispatching while constructing your middleware is not allowed. \" + \"Other middleware would not be applied to this dispatch.\");\n };\n\n var middlewareAPI = {\n getState: store.getState,\n dispatch: function dispatch() {\n return _dispatch.apply(void 0, arguments);\n }\n };\n var chain = middlewares.map(function (middleware) {\n return middleware(middlewareAPI);\n });\n _dispatch = compose.apply(void 0, chain)(store.dispatch);\n return _objectSpread({}, store, {\n dispatch: _dispatch\n });\n };\n };\n}\n\n/*\n * This is a dummy function to check if the function name has been altered by minification.\n * If the function has been minified and NODE_ENV !== 'production', warn the user.\n */\n\nfunction isCrushed() {}\n\nif (process.env.NODE_ENV !== 'production' && typeof isCrushed.name === 'string' && isCrushed.name !== 'isCrushed') {\n warning('You are currently using minified code outside of NODE_ENV === \"production\". ' + 'This means that you are running a slower development build of Redux. ' + 'You can use loose-envify (https://github.com/zertosh/loose-envify) for browserify ' + 'or setting mode to production in webpack (https://webpack.js.org/concepts/mode/) ' + 'to ensure you have the correct code for your production build.');\n}\n\nexport { createStore, combineReducers, bindActionCreators, applyMiddleware, compose, ActionTypes as __DO_NOT_USE__ActionTypes };\n","import {\n LOAD_START,\n CAN_PLAY,\n WAITING,\n CAN_PLAY_THROUGH,\n PLAYING,\n PLAY,\n PAUSE,\n END,\n SEEKING,\n SEEKED,\n SEEKING_TIME,\n END_SEEKING,\n DURATION_CHANGE,\n TIME_UPDATE,\n VOLUME_CHANGE,\n PROGRESS_CHANGE,\n RATE_CHANGE,\n SUSPEND,\n ABORT,\n EMPTIED,\n STALLED,\n LOADED_META_DATA,\n LOADED_DATA,\n RESIZE,\n ERROR\n} from '../actions/video';\nimport {\n FULLSCREEN_CHANGE,\n PLAYER_ACTIVATE,\n USER_ACTIVATE\n} from '../actions/player';\n\nconst initialState = {\n currentSrc: null,\n duration: 0,\n currentTime: 0,\n seekingTime: 0,\n buffered: null,\n waiting: false,\n seeking: false,\n paused: true,\n autoPaused: false,\n ended: false,\n playbackRate: 1,\n muted: false,\n volume: 1,\n readyState: 0,\n networkState: 0,\n videoWidth: 0,\n videoHeight: 0,\n hasStarted: false,\n userActivity: true,\n isActive: false,\n isFullscreen: false\n};\n\nexport default function player(state = initialState, action) {\n switch (action.type) {\n case USER_ACTIVATE:\n return {\n ...state,\n userActivity: action.activity\n };\n case PLAYER_ACTIVATE:\n return {\n ...state,\n isActive: action.activity\n };\n case FULLSCREEN_CHANGE:\n return {\n ...state,\n isFullscreen: !!action.isFullscreen\n };\n case SEEKING_TIME:\n return {\n ...state,\n seekingTime: action.time\n };\n case END_SEEKING:\n return {\n ...state,\n seekingTime: 0\n };\n case LOAD_START:\n return {\n ...state,\n ...action.videoProps,\n hasStarted: false,\n ended: false\n };\n case CAN_PLAY:\n return {\n ...state,\n ...action.videoProps,\n waiting: false\n };\n case WAITING:\n return {\n ...state,\n ...action.videoProps,\n waiting: true\n };\n case CAN_PLAY_THROUGH:\n case PLAYING:\n return {\n ...state,\n ...action.videoProps,\n waiting: false\n };\n case PLAY:\n return {\n ...state,\n ...action.videoProps,\n ended: false,\n paused: false,\n autoPaused: false,\n waiting: false,\n hasStarted: true\n };\n case PAUSE:\n return {\n ...state,\n ...action.videoProps,\n paused: true\n };\n case END:\n return {\n ...state,\n ...action.videoProps,\n ended: true\n };\n case SEEKING:\n return {\n ...state,\n ...action.videoProps,\n seeking: true\n };\n case SEEKED:\n return {\n ...state,\n ...action.videoProps,\n seeking: false\n };\n case ERROR:\n return {\n ...state,\n ...action.videoProps,\n error: 'UNKNOWN ERROR',\n ended: true\n };\n case DURATION_CHANGE:\n case TIME_UPDATE:\n case VOLUME_CHANGE:\n case PROGRESS_CHANGE:\n case RATE_CHANGE:\n case SUSPEND:\n case ABORT:\n case EMPTIED:\n case STALLED:\n case LOADED_META_DATA:\n case LOADED_DATA:\n case RESIZE:\n return {\n ...state,\n ...action.videoProps\n };\n default:\n return state;\n }\n}\n","import { OPERATE } from '../actions/player';\n\nconst initialState = {\n count: 0,\n operation: {\n action: '',\n source: ''\n }\n};\n\nexport default function operation(state = initialState, action) {\n switch (action.type) {\n case OPERATE:\n return {\n ...state,\n count: state.count + 1,\n operation: {\n ...state.operation,\n ...action.operation\n }\n };\n default:\n return state;\n }\n}\n","import player from './player';\nimport operation from './operation';\n\nexport default function(state = {}, action) {\n return {\n player: player(state.player, action),\n operation: operation(state.operation, action)\n };\n}\n\nexport const playerReducer = player;\nexport const operationReducer = operation;\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport classNames from 'classnames';\n\nconst propTypes = {\n player: PropTypes.object,\n className: PropTypes.string\n};\n\nexport default function LoadingSpinner({ player, className }) {\n if (player.error) {\n return null;\n }\n return (\n <div className={classNames('video-react-loading-spinner', className)} />\n );\n}\n\nLoadingSpinner.propTypes = propTypes;\nLoadingSpinner.displayName = 'LoadingSpinner';\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport classNames from 'classnames';\n\nconst propTypes = {\n poster: PropTypes.string,\n player: PropTypes.object,\n actions: PropTypes.object,\n className: PropTypes.string\n};\n\nfunction PosterImage({ poster, player, actions, className }) {\n if (!poster || player.hasStarted) {\n return null;\n }\n\n return (\n <div\n className={classNames('video-react-poster', className)}\n style={{\n backgroundImage: `url(\"${poster}\")`\n }}\n onClick={() => {\n if (player.paused) {\n actions.play();\n }\n }}\n />\n );\n}\n\nPosterImage.propTypes = propTypes;\nPosterImage.displayName = 'PosterImage';\n\nexport default PosterImage;\n","import React from 'react';\n\n// NaN is the only value in javascript which is not equal to itself.\n// eslint-disable-next-line no-self-compare\nconst isNaN = Number.isNaN || (value => value !== value);\n\n/**\n * @file format-time.js\n *\n * Format seconds as a time string, H:MM:SS or M:SS\n * Supplying a guide (in seconds) will force a number of leading zeros\n * to cover the length of the guide\n *\n * @param {Number} seconds Number of seconds to be turned into a string\n * @param {Number} guide Number (in seconds) to model the string after\n * @return {String} Time formatted as H:MM:SS or M:SS\n * @private\n * @function formatTime\n */\nexport function formatTime(seconds = 0, guide = seconds) {\n let s = Math.floor(seconds % 60);\n let m = Math.floor((seconds / 60) % 60);\n let h = Math.floor(seconds / 3600);\n const gm = Math.floor((guide / 60) % 60);\n const gh = Math.floor(guide / 3600);\n\n // handle invalid times\n if (isNaN(seconds) || seconds === Infinity) {\n // '-' is false for all relational operators (e.g. <, >=) so this setting\n // will add the minimum number of fields specified by the guide\n h = '-';\n m = '-';\n s = '-';\n }\n\n // Check if we need to show hours\n h = h > 0 || gh > 0 ? `${h}:` : '';\n\n // If hours are showing, we may need to add a leading zero.\n // Always show at least one digit of minutes.\n m = `${(h || gm >= 10) && m < 10 ? `0${m}` : m}:`;\n\n // Check if leading zero is need for seconds\n s = s < 10 ? `0${s}` : s;\n\n return h + m + s;\n}\n\n// Check if the element belongs to a video element\n// only accept <source />, <track />,\n// <MyComponent isVideoChild />\n// elements\nexport function isVideoChild(c) {\n if (c.props && c.props.isVideoChild) {\n return true;\n }\n return c.type === 'source' || c.type === 'track';\n}\n\nconst find = (elements, func) => elements.filter(func)[0];\n\n// check if two components are the same type\nconst isTypeEqual = (component1, component2) => {\n const type1 = component1.type;\n const type2 = component2.type;\n\n if (typeof type1 === 'string' || typeof type2 === 'string') {\n return type1 === type2;\n }\n\n if (typeof type1 === 'function' && typeof type2 === 'function') {\n return type1.displayName === type2.displayName;\n }\n\n return false;\n};\n\n// merge default children\n// sort them by `order` property\n// filter them by `disabled` property\nexport function mergeAndSortChildren(\n defaultChildren,\n _children,\n _parentProps,\n defaultOrder = 1\n) {\n const children = React.Children.toArray(_children);\n const { order, ...parentProps } = _parentProps; // ignore order from parent\n return children\n .filter(e => !e.props.disabled) // filter the disabled components\n .concat(\n defaultChildren.filter(\n c => !find(children, component => isTypeEqual(component, c))\n )\n )\n .map(element => {\n const defaultComponent = find(defaultChildren, c =>\n isTypeEqual(c, element)\n );\n\n const defaultProps = defaultComponent ? defaultComponent.props : {};\n const props = {\n ...parentProps, // inherit from parent component\n ...defaultProps, // inherit from default component\n ...element.props // element's own props\n };\n const e = React.cloneElement(element, props, element.props.children);\n return e;\n })\n .sort(\n (a, b) =>\n (a.props.order || defaultOrder) - (b.props.order || defaultOrder)\n );\n}\n\n/**\n * Temporary utility for generating the warnings\n */\nexport function deprecatedWarning(oldMethodCall, newMethodCall) {\n // eslint-disable-next-line no-console\n console.warn(\n `WARNING: ${oldMethodCall} will be deprecated soon! Please use ${newMethodCall} instead.`\n );\n}\n\nexport function throttle(callback, limit) {\n let wait = false;\n return () => {\n if (!wait) {\n // eslint-disable-next-line prefer-rest-params\n callback(...arguments);\n wait = true;\n setTimeout(() => {\n wait = false;\n }, limit);\n }\n };\n}\n\nexport const mediaProperties = [\n 'error',\n 'src',\n 'srcObject',\n 'currentSrc',\n 'crossOrigin',\n 'networkState',\n 'preload',\n 'buffered',\n 'readyState',\n 'seeking',\n 'currentTime',\n 'duration',\n 'paused',\n 'defaultPlaybackRate',\n 'playbackRate',\n 'played',\n 'seekable',\n 'ended',\n 'autoplay',\n 'loop',\n 'mediaGroup',\n 'controller',\n 'controls',\n 'volume',\n 'muted',\n 'defaultMuted',\n 'audioTracks',\n 'videoTracks',\n 'textTracks',\n 'width',\n 'height',\n 'videoWidth',\n 'videoHeight',\n 'poster'\n];\n","import { findDOMNode } from 'react-dom';\n\n/**\n * Offset Left\n * getBoundingClientRect technique from\n * John Resig http://ejohn.org/blog/getboundingclientrect-is-awesome/\n *\n * @function findElPosition\n * @param {Element} el Element from which to get offset\n * @return {Object}\n */\nexport function findElPosition(el) {\n let box;\n\n if (el.getBoundingClientRect && el.parentNode) {\n box = el.getBoundingClientRect();\n }\n\n if (!box) {\n return {\n left: 0,\n top: 0\n };\n }\n\n const { body, documentElement: docEl } = document;\n\n const clientLeft = docEl.clientLeft || body.clientLeft || 0;\n const scrollLeft = window.pageXOffset || body.scrollLeft;\n const left = box.left + scrollLeft - clientLeft;\n\n const clientTop = docEl.clientTop || body.clientTop || 0;\n const scrollTop = window.pageYOffset || body.scrollTop;\n const top = box.top + scrollTop - clientTop;\n\n // Android sometimes returns slightly off decimal values, so need to round\n return {\n left: Math.round(left),\n top: Math.round(top)\n };\n}\n\n/**\n * Get pointer position in element\n * Returns an object with x and y coordinates.\n * The base on the coordinates are the bottom left of the element.\n *\n * @function getPointerPosition\n * @param {Element} el Element on which to get the pointer position on\n * @param {Event} event Event object\n * @return {Object} This object will have x and y coordinates corresponding to the mouse position\n */\nexport function getPointerPosition(el, event) {\n const position = {};\n const box = findElPosition(el);\n const boxW = el.offsetWidth;\n const boxH = el.offsetHeight;\n\n const boxY = box.top;\n const boxX = box.left;\n let evtPageY = event.pageY;\n let evtPageX = event.pageX;\n\n if (event.changedTouches) {\n evtPageX = event.changedTouches[0].pageX;\n evtPageY = event.changedTouches[0].pageY;\n }\n\n position.y = Math.max(0, Math.min(1, (boxY - evtPageY + boxH) / boxH));\n position.x = Math.max(0, Math.min(1, (evtPageX - boxX) / boxW));\n\n return position;\n}\n\n// blur an element\nexport function blurNode(reactNode) {\n const domNode = findDOMNode(reactNode);\n if (domNode && domNode.blur) {\n domNode.blur();\n }\n}\n\n// focus an element\nexport function focusNode(reactNode) {\n const domNode = findDOMNode(reactNode);\n if (domNode && domNode.focus) {\n domNode.focus();\n }\n}\n\n// check if an element has a class name\nexport function hasClass(elm, cls) {\n const classes = elm.className.split(' ');\n for (let i = 0; i < classes.length; i++) {\n if (classes[i].toLowerCase() === cls.toLowerCase()) {\n return true;\n }\n }\n return false;\n}\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport classNames from 'classnames';\n\nimport { formatTime } from '../../utils';\n\nconst propTypes = {\n currentTime: PropTypes.number,\n duration: PropTypes.number,\n percentage: PropTypes.string,\n className: PropTypes.string\n};\n\n// Shows play progress\nexport default function PlayProgressBar({\n currentTime,\n duration,\n percentage,\n className\n}) {\n return (\n <div\n data-current-time={formatTime(currentTime, duration)}\n className={classNames(\n 'video-react-play-progress video-react-slider-bar',\n className\n )}\n style={{\n width: percentage\n }}\n >\n <span className=\"video-react-control-text\">\n {`Progress: ${percentage}`}\n </span>\n </div>\n );\n}\n\nPlayProgressBar.propTypes = propTypes;\nPlayProgressBar.displayName = 'PlayProgressBar';\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport classNames from 'classnames';\n\nconst propTypes = {\n duration: PropTypes.number,\n buffered: PropTypes.object,\n className: PropTypes.string\n};\n\n// Shows load progress\nexport default function LoadProgressBar({ buffered, duration, className }) {\n if (!buffered || !buffered.length) {\n return null;\n }\n let bufferedEnd = buffered.end(buffered.length - 1);\n const style = {};\n\n if (bufferedEnd > duration) {\n bufferedEnd = duration;\n }\n\n // get the percent width of a time compared to the total end\n function percentify(time, end) {\n const percent = time / end || 0; // no NaN\n return `${(percent >= 1 ? 1 : percent) * 100}%`;\n }\n\n // the width of the progress bar\n style.width = percentify(bufferedEnd, duration);\n\n let parts = [];\n\n // add child elements to represent the individual buffered time ranges\n for (let i = 0; i < buffered.length; i++) {\n const start = buffered.start(i);\n const end = buffered.end(i);\n // set the percent based on the width of the progress bar (bufferedEnd)\n const part = (\n <div\n style={{\n left: percentify(start, bufferedEnd),\n width: percentify(end - start, bufferedEnd)\n }}\n key={`part-${i}`}\n />\n );\n parts.push(part);\n }\n\n if (parts.length === 0) {\n parts = null;\n }\n\n return (\n <div\n style={style}\n className={classNames('video-react-load-progress', className)}\n >\n <span className=\"video-react-control-text\">Loaded: 0%</span>\n {parts}\n </div>\n );\n}\n\nLoadProgressBar.propTypes = propTypes;\nLoadProgressBar.displayName = 'LoadProgressBar';\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport classNames from 'classnames';\n\nimport { formatTime } from '../../utils';\n\nfunction MouseTimeDisplay({ duration, mouseTime, className, text }) {\n if (!mouseTime.time) {\n return null;\n }\n\n const time = text || formatTime(mouseTime.time, duration);\n\n return (\n <div\n className={classNames('video-react-mouse-display', className)}\n style={{\n left: `${mouseTime.position}px`\n }}\n data-current-time={time}\n />\n );\n}\n\nMouseTimeDisplay.propTypes = {\n duration: PropTypes.number,\n mouseTime: PropTypes.object,\n className: PropTypes.string\n};\nMouseTimeDisplay.displayName = 'MouseTimeDisplay';\n\nexport default MouseTimeDisplay;\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport classNames from 'classnames';\n\nimport { formatTime } from '../../utils';\n\nconst propTypes = {\n player: PropTypes.object,\n className: PropTypes.string\n};\n\nfunction RemainingTimeDisplay({\n player: { currentTime, duration },\n className\n}) {\n const remainingTime = duration - currentTime;\n const formattedTime = formatTime(remainingTime);\n return (\n <div\n className={classNames(\n 'video-react-remaining-time video-react-time-control video-react-control',\n className\n )}\n >\n <div className=\"video-react-remaining-time-display\" aria-live=\"off\">\n <span className=\"video-react-control-text\">Remaining Time </span>\n {`-${formattedTime}`}\n </div>\n </div>\n );\n}\n\nRemainingTimeDisplay.propTypes = propTypes;\nRemainingTimeDisplay.displayName = 'RemainingTimeDisplay';\n\nexport default RemainingTimeDisplay;\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport classNames from 'classnames';\n\nimport { formatTime } from '../../utils';\n\nconst propTypes = {\n player: PropTypes.object,\n className: PropTypes.string\n};\n\nfunction CurrentTimeDisplay({ player: { currentTime, duration }, className }) {\n const formattedTime = formatTime(currentTime, duration);\n return (\n <div\n className={classNames(\n 'video-react-current-time video-react-time-control video-react-control',\n className\n )}\n >\n <div className=\"video-react-current-time-display\" aria-live=\"off\">\n <span className=\"video-react-control-text\">Current Time </span>\n {formattedTime}\n </div>\n </div>\n );\n}\n\nCurrentTimeDisplay.propTypes = propTypes;\nCurrentTimeDisplay.displayName = 'CurrentTimeDisplay';\n\nexport default CurrentTimeDisplay;\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport classNames from 'classnames';\n\nimport { formatTime } from '../../utils';\n\nconst propTypes = {\n player: PropTypes.object,\n className: PropTypes.string\n};\n\nfunction DurationDisplay({ player: { duration }, className }) {\n const formattedTime = formatTime(duration);\n return (\n <div\n className={classNames(\n className,\n 'video-react-duration video-react-time-control video-react-control'\n )}\n >\n <div className=\"video-react-duration-display\" aria-live=\"off\">\n <span className=\"video-react-control-text\">Duration Time </span>\n {formattedTime}\n </div>\n </div>\n );\n}\n\nDurationDisplay.propTypes = propTypes;\nDurationDisplay.displayName = 'DurationDisplay';\n\nexport default DurationDisplay;\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport classNames from 'classnames';\n\nconst propTypes = {\n separator: PropTypes.string,\n className: PropTypes.string\n};\n\nexport default function TimeDivider({ separator, className }) {\n const separatorText = separator || '/';\n return (\n <div\n className={classNames(\n 'video-react-time-control video-react-time-divider',\n className\n )}\n dir=\"ltr\"\n >\n <div>\n <span>{separatorText}</span>\n </div>\n </div>\n );\n}\n\nTimeDivider.propTypes = propTypes;\nTimeDivider.displayName = 'TimeDivider';\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport classNames from 'classnames';\nimport ClickableComponent from '../ClickableComponent';\nimport Popup from './Popup';\n\nconst propTypes = {\n inline: PropTypes.bool,\n onClick: PropTypes.func.isRequired,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n className: PropTypes.string\n};\n\nconst defaultProps = {\n inline: true\n};\n\nexport default function PopupButton(props) {\n const { inline, className } = props;\n const ps = { ...props };\n delete ps.children;\n delete ps.inline;\n delete ps.className;\n return (\n <ClickableComponent\n className={classNames(\n className,\n {\n 'video-react-menu-button-inline': !!inline,\n 'video-react-menu-button-popup': !inline\n },\n 'video-react-control video-react-button video-react-menu-button'\n )}\n {...ps}\n >\n <Popup {...props} />\n </ClickableComponent>\n );\n}\n\nPopupButton.propTypes = propTypes;\nPopupButton.defaultProps = defaultProps;\nPopupButton.displayName = 'PopupButton';\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport classNames from 'classnames';\n\nconst propTypes = {\n percentage: PropTypes.string,\n vertical: PropTypes.bool,\n className: PropTypes.string\n};\n\nconst defaultProps = {\n percentage: '100%',\n vertical: false\n};\n\nfunction VolumeLevel({ percentage, vertical, className }) {\n const style = {};\n if (vertical) {\n style.height = percentage;\n } else {\n style.width = percentage;\n }\n\n return (\n <div\n className={classNames(className, 'video-react-volume-level')}\n style={style}\n >\n <span className=\"video-react-control-text\" />\n </div>\n );\n}\n\nVolumeLevel.propTypes = propTypes;\nVolumeLevel.defaultProps = defaultProps;\nVolumeLevel.displayName = 'VolumeLevel';\nexport default VolumeLevel;\n","/** @license React v16.8.6\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\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';Object.defineProperty(exports,\"__esModule\",{value:!0});\nvar b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?Symbol.for(\"react.memo\"):\n60115,r=b?Symbol.for(\"react.lazy\"):60116;function t(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case h:return a;default:return u}}case r:case q:case d:return u}}}function v(a){return t(a)===m}exports.typeOf=t;exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;\nexports.Fragment=e;exports.Lazy=r;exports.Memo=q;exports.Portal=d;exports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||\"object\"===typeof a&&null!==a&&(a.$$typeof===r||a.$$typeof===q||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n)};exports.isAsyncMode=function(a){return v(a)||t(a)===l};exports.isConcurrentMode=v;exports.isContextConsumer=function(a){return t(a)===k};\nexports.isContextProvider=function(a){return t(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return t(a)===n};exports.isFragment=function(a){return t(a)===e};exports.isLazy=function(a){return t(a)===r};exports.isMemo=function(a){return t(a)===q};exports.isPortal=function(a){return t(a)===d};exports.isProfiler=function(a){return t(a)===g};exports.isStrictMode=function(a){return t(a)===f};\nexports.isSuspense=function(a){return t(a)===p};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\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 ReactIs = require('react-is');\nvar assign = require('object-assign');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar checkPropTypes = require('./checkPropTypes');\n\nvar has = Function.call.bind(Object.prototype.hasOwnProperty);\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\nfunction emptyFunctionThatReturnsNull() {\n return null;\n}\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<<anonymous>>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n elementType: createElementTypeTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message) {\n this.message = message;\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\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 } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n printWarning(\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunctionThatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!ReactIs.isValidElementType(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n if (process.env.NODE_ENV !== 'production') {\n if (arguments.length > 1) {\n printWarning(\n 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +\n 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'\n );\n } else {\n printWarning('Invalid argument supplied to oneOf, expected an array.');\n }\n }\n return emptyFunctionThatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {\n var type = getPreciseType(value);\n if (type === 'symbol') {\n return String(value);\n }\n return value;\n });\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (has(propValue, key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunctionThatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n printWarning(\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'\n );\n return emptyFunctionThatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {\n return null;\n }\n }\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (!checker) {\n continue;\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from\n // props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // falsy value can't be a Symbol\n if (!propValue) {\n return false;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/* global window */\nimport ponyfill from './ponyfill.js';\n\nvar root;\n\nif (typeof self !== 'undefined') {\n root = self;\n} else if (typeof window !== 'undefined') {\n root = window;\n} else if (typeof global !== 'undefined') {\n root = global;\n} else if (typeof module !== 'undefined') {\n root = module;\n} else {\n root = Function('return this')();\n}\n\nvar result = ponyfill(root);\nexport default result;\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","/**\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) 2017 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg) && arg.length) {\n\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\tif (inner) {\n\t\t\t\t\tclasses.push(inner);\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","export const LOAD_START = 'video-react/LOAD_START';\nexport const CAN_PLAY = 'video-react/CAN_PLAY';\nexport const WAITING = 'video-react/WAITING';\nexport const CAN_PLAY_THROUGH = 'video-react/CAN_PLAY_THROUGH';\nexport const PLAYING = 'video-react/PLAYING';\nexport const PLAY = 'video-react/PLAY';\nexport const PAUSE = 'video-react/PAUSE';\nexport const END = 'video-react/END';\nexport const SEEKING = 'video-react/SEEKING';\nexport const SEEKED = 'video-react/SEEKED';\nexport const SEEKING_TIME = 'video-react/SEEKING_TIME';\nexport const END_SEEKING = 'video-react/END_SEEKING';\nexport const DURATION_CHANGE = 'video-react/DURATION_CHANGE';\nexport const TIME_UPDATE = 'video-react/TIME_UPDATE';\nexport const VOLUME_CHANGE = 'video-react/VOLUME_CHANGE';\nexport const PROGRESS_CHANGE = 'video-react/PROGRESS_CHANGE';\nexport const RATE_CHANGE = 'video-react/RATE_CHANGE';\nexport const SUSPEND = 'video-react/SUSPEND';\nexport const ABORT = 'video-react/ABORT';\nexport const EMPTIED = 'video-react/EMPTIED';\nexport const STALLED = 'video-react/STALLED';\nexport const LOADED_META_DATA = 'video-react/LOADED_META_DATA';\nexport const LOADED_DATA = 'video-react/LOADED_DATA';\nexport const RESIZE = 'video-react/RESIZE';\nexport const ERROR = 'video-react/ERROR';\n\nexport function handleLoadStart(videoProps) {\n return {\n type: LOAD_START,\n videoProps\n };\n}\n\nexport function handleCanPlay(videoProps) {\n return {\n type: CAN_PLAY,\n videoProps\n };\n}\n\nexport function handleWaiting(videoProps) {\n return {\n type: WAITING,\n videoProps\n };\n}\n\nexport function handleCanPlayThrough(videoProps) {\n return {\n type: CAN_PLAY_THROUGH,\n videoProps\n };\n}\n\nexport function handlePlaying(videoProps) {\n return {\n type: PLAYING,\n videoProps\n };\n}\n\nexport function handlePlay(videoProps) {\n return {\n type: PLAY,\n videoProps\n };\n}\n\nexport function handlePause(videoProps) {\n return {\n type: PAUSE,\n videoProps\n };\n}\n\nexport function handleEnd(videoProps) {\n return {\n type: END,\n videoProps\n };\n}\n\nexport function handleSeeking(videoProps) {\n return {\n type: SEEKING,\n videoProps\n };\n}\n\nexport function handleSeeked(videoProps) {\n return {\n type: SEEKED,\n videoProps\n };\n}\n\nexport function handleDurationChange(videoProps) {\n return {\n type: DURATION_CHANGE,\n videoProps\n };\n}\n\nexport function handleTimeUpdate(videoProps) {\n return {\n type: TIME_UPDATE,\n videoProps\n };\n}\n\nexport function handleVolumeChange(videoProps) {\n return {\n type: VOLUME_CHANGE,\n videoProps\n };\n}\n\nexport function handleProgressChange(videoProps) {\n return {\n type: PROGRESS_CHANGE,\n videoProps\n };\n}\n\nexport function handleRateChange(videoProps) {\n return {\n type: RATE_CHANGE,\n videoProps\n };\n}\n\nexport function handleSuspend(videoProps) {\n return {\n type: SUSPEND,\n videoProps\n };\n}\n\nexport function handleAbort(videoProps) {\n return {\n type: ABORT,\n videoProps\n };\n}\n\nexport function handleEmptied(videoProps) {\n return {\n type: EMPTIED,\n videoProps\n };\n}\n\nexport function handleStalled(videoProps) {\n return {\n type: STALLED,\n videoProps\n };\n}\n\nexport function handleLoadedMetaData(videoProps) {\n return {\n type: LOADED_META_DATA,\n videoProps\n };\n}\n\nexport function handleLoadedData(videoProps) {\n return {\n type: LOADED_DATA,\n videoProps\n };\n}\n\nexport function handleResize(videoProps) {\n return {\n type: RESIZE,\n videoProps\n };\n}\n\nexport function handleError(videoProps) {\n return {\n type: ERROR,\n videoProps\n };\n}\n\nexport function handleSeekingTime(time) {\n return {\n type: SEEKING_TIME,\n time\n };\n}\n\nexport function handleEndSeeking(time) {\n return {\n type: END_SEEKING,\n time\n };\n}\n","class Fullscreen {\n request(elm) {\n if (elm.requestFullscreen) {\n elm.requestFullscreen();\n } else if (elm.webkitRequestFullscreen) {\n elm.webkitRequestFullscreen();\n } else if (elm.mozRequestFullScreen) {\n elm.mozRequestFullScreen();\n } else if (elm.msRequestFullscreen) {\n elm.msRequestFullscreen();\n }\n }\n\n exit() {\n if (document.exitFullscreen) {\n document.exitFullscreen();\n } else if (document.webkitExitFullscreen) {\n document.webkitExitFullscreen();\n } else if (document.mozCancelFullScreen) {\n document.mozCancelFullScreen();\n } else if (document.msExitFullscreen) {\n document.msExitFullscreen();\n }\n }\n\n get isFullscreen() {\n return (\n document.fullscreenElement ||\n document.webkitFullscreenElement ||\n document.mozFullScreenElement ||\n document.msFullscreenElement\n );\n }\n\n get enabled() {\n return (\n document.fullscreenEnabled ||\n document.webkitFullscreenEnabled ||\n document.mozFullScreenEnabled ||\n document.msFullscreenEnabled\n );\n }\n\n addEventListener(handler) {\n document.addEventListener('fullscreenchange', handler);\n document.addEventListener('webkitfullscreenchange', handler);\n document.addEventListener('mozfullscreenchange', handler);\n document.addEventListener('MSFullscreenChange', handler);\n }\n\n removeEventListener(handler) {\n document.removeEventListener('fullscreenchange', handler);\n document.removeEventListener('webkitfullscreenchange', handler);\n document.removeEventListener('mozfullscreenchange', handler);\n document.removeEventListener('MSFullscreenChange', handler);\n }\n}\n\nexport default new Fullscreen();\n","import fullscreen from '../utils/fullscreen';\n\nexport const OPERATE = 'video-react/OPERATE';\nexport const FULLSCREEN_CHANGE = 'video-react/FULLSCREEN_CHANGE';\nexport const PLAYER_ACTIVATE = 'video-react/PLAYER_ACTIVATE';\nexport const USER_ACTIVATE = 'video-react/USER_ACTIVATE';\n\nexport function handleFullscreenChange(isFullscreen) {\n return {\n type: FULLSCREEN_CHANGE,\n isFullscreen\n };\n}\n\nexport function activate(activity) {\n return {\n type: PLAYER_ACTIVATE,\n activity\n };\n}\n\nexport function userActivate(activity) {\n return {\n type: USER_ACTIVATE,\n activity\n };\n}\n\nexport function play(\n operation = {\n action: 'play',\n source: ''\n }\n) {\n this.video.play();\n\n return {\n type: OPERATE,\n operation\n };\n}\n\nexport function pause(\n operation = {\n action: 'pause',\n source: ''\n }\n) {\n this.video.pause();\n\n return {\n type: OPERATE,\n operation\n };\n}\n\nexport function togglePlay(\n operation = {\n action: 'toggle-play',\n source: ''\n }\n) {\n this.video.togglePlay();\n\n return {\n type: OPERATE,\n operation\n };\n}\n\n// seek video by time\nexport function seek(\n time,\n operation = {\n action: 'seek',\n source: ''\n }\n) {\n this.video.seek(time);\n\n return {\n type: OPERATE,\n operation\n };\n}\n\n// jump forward x seconds\nexport function forward(\n seconds,\n operation = {\n action: `forward-${seconds}`,\n source: ''\n }\n) {\n this.video.forward(seconds);\n\n return {\n type: OPERATE,\n operation\n };\n}\n\n// jump back x seconds\nexport function replay(\n seconds,\n operation = {\n action: `replay-${seconds}`,\n source: ''\n }\n) {\n this.video.replay(seconds);\n\n return {\n type: OPERATE,\n operation\n };\n}\n\nexport function changeRate(\n rate,\n operation = {\n action: 'change-rate',\n source: ''\n }\n) {\n this.video.playbackRate = rate;\n\n return {\n type: OPERATE,\n operation\n };\n}\n\nexport function changeVolume(\n volume,\n operation = {\n action: 'change-volume',\n source: ''\n }\n) {\n let v = volume;\n if (volume < 0) {\n v = 0;\n }\n if (volume > 1) {\n v = 1;\n }\n this.video.volume = v;\n\n return {\n type: OPERATE,\n operation\n };\n}\n\nexport function mute(\n muted,\n operation = {\n action: muted ? 'muted' : 'unmuted',\n source: ''\n }\n) {\n this.video.muted = muted;\n\n return {\n type: OPERATE,\n operation\n };\n}\n\nexport function toggleFullscreen(player) {\n if (fullscreen.enabled) {\n if (fullscreen.isFullscreen) {\n fullscreen.exit();\n } else {\n fullscreen.request(this.rootElement);\n }\n return {\n type: OPERATE,\n operation: {\n action: 'toggle-fullscreen',\n source: ''\n }\n };\n }\n\n return {\n type: FULLSCREEN_CHANGE,\n isFullscreen: !player.isFullscreen\n };\n}\n","import { createStore } from 'redux';\nimport reducer from './reducers';\nimport * as playerActions from './actions/player';\nimport * as videoActions from './actions/video';\n\nexport default class Manager {\n constructor(store) {\n this.store = store || createStore(reducer);\n\n this.video = null;\n this.rootElement = null;\n }\n\n getActions() {\n const manager = this;\n const { dispatch } = this.store;\n const actions = {\n ...playerActions,\n ...videoActions\n };\n\n function bindActionCreator(actionCreator) {\n return function bindAction() {\n // eslint-disable-next-line prefer-rest-params\n const action = actionCreator.apply(manager, arguments);\n if (typeof action !== 'undefined') {\n dispatch(action);\n }\n };\n }\n\n return Object.keys(actions)\n .filter(key => typeof actions[key] === 'function')\n .reduce((boundActions, key) => {\n boundActions[key] = bindActionCreator(actions[key]);\n return boundActions;\n }, {});\n }\n\n getState() {\n return this.store.getState();\n }\n\n // subscribe state change\n subscribeToStateChange(listener, getState) {\n if (!getState) {\n getState = this.getState.bind(this);\n }\n\n let prevState = getState();\n\n const handleChange = () => {\n const state = getState();\n if (state === prevState) {\n return;\n }\n const prevStateCopy = prevState;\n prevState = state;\n listener(state, prevStateCopy);\n };\n\n return this.store.subscribe(handleChange);\n }\n\n // subscribe to operation state change\n subscribeToOperationStateChange(listener) {\n return this.subscribeToStateChange(\n listener,\n () => this.getState().operation\n );\n }\n\n // subscribe to player state change\n subscribeToPlayerStateChange(listener) {\n return this.subscribeToStateChange(listener, () => this.getState().player);\n }\n}\n","import PropTypes from 'prop-types';\nimport React, { Component } from 'react';\nimport classNames from 'classnames';\n\nconst propTypes = {\n actions: PropTypes.object,\n player: PropTypes.object,\n position: PropTypes.string,\n className: PropTypes.string\n};\n\nconst defaultProps = {\n position: 'left'\n};\n\nexport default class BigPlayButton extends Component {\n constructor(props, context) {\n super(props, context);\n\n this.handleClick = this.handleClick.bind(this);\n }\n\n componentDidMount() {}\n\n handleClick() {\n const { actions } = this.props;\n actions.play();\n }\n\n render() {\n const { player, position } = this.props;\n return (\n <button\n className={classNames(\n 'video-react-big-play-button',\n `video-react-big-play-button-${position}`,\n this.props.className,\n {\n 'big-play-button-hide': player.hasStarted || !player.currentSrc\n }\n )}\n type=\"button\"\n aria-live=\"polite\"\n tabIndex=\"0\"\n onClick={this.handleClick}\n >\n <span className=\"video-react-control-text\">Play Video</span>\n </button>\n );\n }\n}\n\nBigPlayButton.propTypes = propTypes;\nBigPlayButton.defaultProps = defaultProps;\nBigPlayButton.displayName = 'BigPlayButton';\n","import PropTypes from 'prop-types';\nimport React, { Component } from 'react';\nimport classNames from 'classnames';\n\nimport { isVideoChild, mediaProperties, throttle } from '../utils';\n\nconst propTypes = {\n actions: PropTypes.object,\n player: PropTypes.object,\n children: PropTypes.any,\n startTime: PropTypes.number,\n loop: PropTypes.bool,\n muted: PropTypes.bool,\n autoPlay: PropTypes.bool,\n playsInline: PropTypes.bool,\n src: PropTypes.string,\n poster: PropTypes.string,\n className: PropTypes.string,\n preload: PropTypes.oneOf(['auto', 'metadata', 'none']),\n crossOrigin: PropTypes.string,\n\n onLoadStart: PropTypes.func,\n onWaiting: PropTypes.func,\n onCanPlay: PropTypes.func,\n onCanPlayThrough: PropTypes.func,\n onPlaying: PropTypes.func,\n onEnded: PropTypes.func,\n onSeeking: PropTypes.func,\n onSeeked: PropTypes.func,\n onPlay: PropTypes.func,\n onPause: PropTypes.func,\n onProgress: PropTypes.func,\n onDurationChange: PropTypes.func,\n onError: PropTypes.func,\n onSuspend: PropTypes.func,\n onAbort: PropTypes.func,\n onEmptied: PropTypes.func,\n onStalled: PropTypes.func,\n onLoadedMetadata: PropTypes.func,\n onLoadedData: PropTypes.func,\n onTimeUpdate: PropTypes.func,\n onRateChange: PropTypes.func,\n onVolumeChange: PropTypes.func,\n onResize: PropTypes.func\n};\n\nexport default class Video extends Component {\n constructor(props) {\n super(props);\n\n this.video = null; // the html5 video\n this.play = this.play.bind(this);\n this.pause = this.pause.bind(this);\n this.seek = this.seek.bind(this);\n this.forward = this.forward.bind(this);\n this.replay = this.replay.bind(this);\n this.toggleFullscreen = this.toggleFullscreen.bind(this);\n this.getProperties = this.getProperties.bind(this);\n this.renderChildren = this.renderChildren.bind(this);\n this.handleLoadStart = this.handleLoadStart.bind(this);\n this.handleCanPlay = this.handleCanPlay.bind(this);\n this.handleCanPlayThrough = this.handleCanPlayThrough.bind(this);\n this.handlePlay = this.handlePlay.bind(this);\n this.handlePlaying = this.handlePlaying.bind(this);\n this.handlePause = this.handlePause.bind(this);\n this.handleEnded = this.handleEnded.bind(this);\n this.handleWaiting = this.handleWaiting.bind(this);\n this.handleSeeking = this.handleSeeking.bind(this);\n this.handleSeeked = this.handleSeeked.bind(this);\n this.handleFullscreenChange = this.handleFullscreenChange.bind(this);\n this.handleError = this.handleError.bind(this);\n this.handleSuspend = this.handleSuspend.bind(this);\n this.handleAbort = this.handleAbort.bind(this);\n this.handleEmptied = this.handleEmptied.bind(this);\n this.handleStalled = this.handleStalled.bind(this);\n this.handleLoadedMetaData = this.handleLoadedMetaData.bind(this);\n this.handleLoadedData = this.handleLoadedData.bind(this);\n this.handleTimeUpdate = this.handleTimeUpdate.bind(this);\n this.handleRateChange = this.handleRateChange.bind(this);\n this.handleVolumeChange = this.handleVolumeChange.bind(this);\n this.handleDurationChange = this.handleDurationChange.bind(this);\n this.handleProgress = throttle(this.handleProgress.bind(this), 250);\n this.handleKeypress = this.handleKeypress.bind(this);\n }\n\n componentDidMount() {\n this.forceUpdate(); // make sure the children can get the video property\n }\n\n // get all video properties\n getProperties() {\n if (!this.video) {\n return null;\n }\n\n return mediaProperties.reduce((properties, key) => {\n properties[key] = this.video[key];\n return properties;\n }, {});\n }\n\n // get playback rate\n get playbackRate() {\n return this.video.playbackRate;\n }\n\n // set playback rate\n // speed of video\n set playbackRate(rate) {\n this.video.playbackRate = rate;\n }\n\n get muted() {\n return this.video.muted;\n }\n\n set muted(val) {\n this.video.muted = val;\n }\n\n get volume() {\n return this.video.volume;\n }\n\n set volume(val) {\n if (val > 1) {\n val = 1;\n }\n if (val < 0) {\n val = 0;\n }\n this.video.volume = val;\n }\n\n // video width\n get videoWidth() {\n return this.video.videoWidth;\n }\n\n // video height\n get videoHeight() {\n return this.video.videoHeight;\n }\n\n // play the video\n play() {\n const promise = this.video.play();\n if (promise !== undefined) {\n promise.catch(() => {}).then(() => {});\n }\n }\n\n // pause the video\n pause() {\n const promise = this.video.pause();\n if (promise !== undefined) {\n promise.catch(() => {}).then(() => {});\n }\n }\n\n // Change the video source and re-load the video:\n load() {\n this.video.load();\n }\n\n // Add a new text track to the video\n addTextTrack(...args) {\n this.video.addTextTrack(...args);\n }\n\n // Check if your browser can play different types of video:\n canPlayType(...args) {\n this.video.canPlayType(...args);\n }\n\n // toggle play\n togglePlay() {\n if (this.video.paused) {\n this.play();\n } else {\n this.pause();\n }\n }\n\n // seek video by time\n seek(time) {\n try {\n this.video.currentTime = time;\n } catch (e) {\n // console.log(e, 'Video is not ready.')\n }\n }\n\n // jump forward x seconds\n forward(seconds) {\n this.seek(this.video.currentTime + seconds);\n }\n\n // jump back x seconds\n replay(seconds) {\n this.forward(-seconds);\n }\n\n // enter or exist full screen\n toggleFullscreen() {\n const { player, actions } = this.props;\n actions.toggleFullscreen(player);\n }\n\n // Fired when the user agent\n // begins looking for media data\n handleLoadStart(...args) {\n const { actions, onLoadStart } = this.props;\n actions.handleLoadStart(this.getProperties());\n if (onLoadStart) {\n onLoadStart(...args);\n }\n }\n\n // A handler for events that\n // signal that waiting has ended\n handleCanPlay(...args) {\n const { actions, onCanPlay } = this.props;\n\n actions.handleCanPlay(this.getProperties());\n\n if (onCanPlay) {\n onCanPlay(...args);\n }\n }\n\n // A handler for events that\n // signal that waiting has ended\n handleCanPlayThrough(...args) {\n const { actions, onCanPlayThrough } = this.props;\n actions.handleCanPlayThrough(this.getProperties());\n\n if (onCanPlayThrough) {\n onCanPlayThrough(...args);\n }\n }\n\n // A handler for events that\n // signal that waiting has ended\n handlePlaying(...args) {\n const { actions, onPlaying } = this.props;\n actions.handlePlaying(this.getProperties());\n\n if (onPlaying) {\n onPlaying(...args);\n }\n }\n\n // Fired whenever the media has been started\n handlePlay(...args) {\n const { actions, onPlay } = this.props;\n actions.handlePlay(this.getProperties());\n\n if (onPlay) {\n onPlay(...args);\n }\n }\n\n // Fired whenever the media has been paused\n handlePause(...args) {\n const { actions, onPause } = this.props;\n actions.handlePause(this.getProperties());\n\n if (onPause) {\n onPause(...args);\n }\n }\n\n // Fired when the duration of\n // the media resource is first known or changed\n handleDurationChange(...args) {\n const { actions, onDurationChange } = this.props;\n actions.handleDurationChange(this.getProperties());\n\n if (onDurationChange) {\n onDurationChange(...args);\n }\n }\n\n // Fired while the user agent\n // is downloading media data\n handleProgress(...args) {\n const { actions, onProgress } = this.props;\n if (this.video) {\n actions.handleProgressChange(this.getProperties());\n }\n\n if (onProgress) {\n onProgress(...args);\n }\n }\n\n // Fired when the end of the media resource\n // is reached (currentTime == duration)\n handleEnded(...args) {\n const { loop, player, actions, onEnded } = this.props;\n if (loop) {\n this.seek(0);\n this.play();\n } else if (!player.paused) {\n this.pause();\n }\n actions.handleEnd(this.getProperties());\n\n if (onEnded) {\n onEnded(...args);\n }\n }\n\n // Fired whenever the media begins waiting\n handleWaiting(...args) {\n const { actions, onWaiting } = this.props;\n actions.handleWaiting(this.getProperties());\n\n if (onWaiting) {\n onWaiting(...args);\n }\n }\n\n // Fired whenever the player\n // is jumping to a new time\n handleSeeking(...args) {\n const { actions, onSeeking } = this.props;\n actions.handleSeeking(this.getProperties());\n\n if (onSeeking) {\n onSeeking(...args);\n }\n }\n\n // Fired when the player has\n // finished jumping to a new time\n handleSeeked(...args) {\n const { actions, onSeeked } = this.props;\n actions.handleSeeked(this.getProperties());\n\n if (onSeeked) {\n onSeeked(...args);\n }\n }\n\n // Handle Fullscreen Change\n handleFullscreenChange() {}\n\n // Fires when the browser is\n // intentionally not getting media data\n handleSuspend(...args) {\n const { actions, onSuspend } = this.props;\n actions.handleSuspend(this.getProperties());\n if (onSuspend) {\n onSuspend(...args);\n }\n }\n\n // Fires when the loading of an audio/video is aborted\n handleAbort(...args) {\n const { actions, onAbort } = this.props;\n actions.handleAbort(this.getProperties());\n if (onAbort) {\n onAbort(...args);\n }\n }\n\n // Fires when the current playlist is empty\n handleEmptied(...args) {\n const { actions, onEmptied } = this.props;\n actions.handleEmptied(this.getProperties());\n if (onEmptied) {\n onEmptied(...args);\n }\n }\n\n // Fires when the browser is trying to\n // get media data, but data is not available\n handleStalled(...args) {\n const { actions, onStalled } = this.props;\n actions.handleStalled(this.getProperties());\n\n if (onStalled) {\n onStalled(...args);\n }\n }\n\n // Fires when the browser has loaded\n // meta data for the audio/video\n handleLoadedMetaData(...args) {\n const { actions, onLoadedMetadata, startTime } = this.props;\n\n if (startTime && startTime > 0) {\n this.video.currentTime = startTime;\n }\n\n actions.handleLoadedMetaData(this.getProperties());\n\n if (onLoadedMetadata) {\n onLoadedMetadata(...args);\n }\n }\n\n // Fires when the browser has loaded\n // the current frame of the audio/video\n handleLoadedData(...args) {\n const { actions, onLoadedData } = this.props;\n actions.handleLoadedData(this.getProperties());\n\n if (onLoadedData) {\n onLoadedData(...args);\n }\n }\n\n // Fires when the current\n // playback position has changed\n handleTimeUpdate(...args) {\n const { actions, onTimeUpdate } = this.props;\n actions.handleTimeUpdate(this.getProperties());\n\n if (onTimeUpdate) {\n onTimeUpdate(...args);\n }\n }\n\n /**\n * Fires when the playing speed of the audio/video is changed\n */\n handleRateChange(...args) {\n const { actions, onRateChange } = this.props;\n actions.handleRateChange(this.getProperties());\n\n if (onRateChange) {\n onRateChange(...args);\n }\n }\n\n // Fires when the volume has been changed\n handleVolumeChange(...args) {\n const { actions, onVolumeChange } = this.props;\n actions.handleVolumeChange(this.getProperties());\n\n if (onVolumeChange) {\n onVolumeChange(...args);\n }\n }\n\n // Fires when an error occurred\n // during the loading of an audio/video\n handleError(...args) {\n const { actions, onError } = this.props;\n actions.handleError(this.getProperties());\n if (onError) {\n onError(...args);\n }\n }\n\n handleResize(...args) {\n const { actions, onResize } = this.props;\n actions.handleResize(this.getProperties());\n if (onResize) {\n onResize(...args);\n }\n }\n\n handleKeypress() {}\n\n renderChildren() {\n const props = {\n ...this.props,\n video: this.video\n };\n\n // to make sure the children can get video property\n if (!this.video) {\n return null;\n }\n\n // only keep <source />, <track />, <MyComponent isVideoChild /> elements\n return React.Children.toArray(this.props.children)\n .filter(isVideoChild)\n .map(c => {\n let cprops;\n if (typeof c.type === 'string') {\n // add onError to <source />\n if (c.type === 'source') {\n cprops = { ...c.props };\n const preOnError = cprops.onError;\n cprops.onError = (...args) => {\n if (preOnError) {\n preOnError(...args);\n }\n this.handleError(...args);\n };\n }\n } else {\n cprops = props;\n }\n return React.cloneElement(c, cprops);\n });\n }\n\n render() {\n const {\n loop,\n poster,\n preload,\n src,\n autoPlay,\n playsInline,\n muted,\n crossOrigin,\n videoId\n } = this.props;\n\n return (\n <video\n className={classNames('video-react-video', this.props.className)}\n id={videoId}\n crossOrigin={crossOrigin}\n ref={c => {\n this.video = c;\n }}\n muted={muted}\n preload={preload}\n loop={loop}\n playsInline={playsInline}\n autoPlay={autoPlay}\n poster={poster}\n src={src}\n onLoadStart={this.handleLoadStart}\n onWaiting={this.handleWaiting}\n onCanPlay={this.handleCanPlay}\n onCanPlayThrough={this.handleCanPlayThrough}\n onPlaying={this.handlePlaying}\n onEnded={this.handleEnded}\n onSeeking={this.handleSeeking}\n onSeeked={this.handleSeeked}\n onPlay={this.handlePlay}\n onPause={this.handlePause}\n onProgress={this.handleProgress}\n onDurationChange={this.handleDurationChange}\n onError={this.handleError}\n onSuspend={this.handleSuspend}\n onAbort={this.handleAbort}\n onEmptied={this.handleEmptied}\n onStalled={this.handleStalled}\n onLoadedMetadata={this.handleLoadedMetaData}\n onLoadedData={this.handleLoadedData}\n onTimeUpdate={this.handleTimeUpdate}\n onRateChange={this.handleRateChange}\n onVolumeChange={this.handleVolumeChange}\n tabIndex=\"-1\"\n >\n {this.renderChildren()}\n </video>\n );\n }\n}\n\nVideo.propTypes = propTypes;\nVideo.displayName = 'Video';\n","import PropTypes from 'prop-types';\nimport React, { Component } from 'react';\nimport classNames from 'classnames';\n\nconst propTypes = {\n manager: PropTypes.object,\n className: PropTypes.string\n};\n\nexport default class Bezel extends Component {\n constructor(props, context) {\n super(props, context);\n\n this.timer = null;\n props.manager.subscribeToOperationStateChange(\n this.handleStateChange.bind(this)\n );\n\n this.state = {\n hidden: true,\n operation: {}\n };\n }\n\n handleStateChange(state, prevState) {\n if (\n state.count !== prevState.count &&\n state.operation.source === 'shortcut'\n ) {\n if (this.timer) {\n // previous animation is not finished\n clearTimeout(this.timer); // cancel it\n this.timer = null;\n }\n\n // show it\n // update operation\n this.setState({\n hidden: false,\n count: state.count,\n operation: state.operation\n });\n\n // hide it after 0.5s\n this.timer = setTimeout(() => {\n this.setState({\n hidden: true\n });\n this.timer = null;\n }, 500);\n }\n }\n\n render() {\n // only displays for shortcut so far\n if (this.state.operation.source !== 'shortcut') {\n return null;\n }\n const style = this.state.hidden\n ? {\n display: 'none'\n }\n : null;\n\n return (\n <div\n className={classNames(\n {\n 'video-react-bezel': true,\n 'video-react-bezel-animation': this.state.count % 2 === 0,\n 'video-react-bezel-animation-alt': this.state.count % 2 === 1\n },\n this.props.className\n )}\n style={style}\n role=\"status\"\n aria-label={this.state.operation.action}\n >\n <div\n className={classNames(\n 'video-react-bezel-icon',\n `video-react-bezel-icon-${this.state.operation.action}`\n )}\n />\n </div>\n );\n }\n}\n\nBezel.propTypes = propTypes;\nBezel.displayName = 'Bezel';\n","import { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { hasClass } from '../utils/dom';\n\nconst propTypes = {\n clickable: PropTypes.bool,\n dblclickable: PropTypes.bool,\n manager: PropTypes.object,\n actions: PropTypes.object,\n player: PropTypes.object,\n shortcuts: PropTypes.array\n};\n\nconst defaultProps = {\n clickable: true,\n dblclickable: true\n};\n\nexport default class Shortcut extends Component {\n constructor(props, context) {\n super(props, context);\n\n this.defaultShortcuts = [\n {\n keyCode: 32, // spacebar\n handle: this.togglePlay\n },\n {\n keyCode: 75, // k\n handle: this.togglePlay\n },\n {\n keyCode: 70, // f\n handle: this.toggleFullscreen\n },\n {\n keyCode: 37, // Left arrow\n handle: (player, actions) => {\n if (!player.hasStarted) {\n return;\n }\n actions.replay(5, {\n action: 'replay-5',\n source: 'shortcut'\n }); // Go back 5 seconds\n }\n },\n {\n keyCode: 74, // j\n handle: (player, actions) => {\n if (!player.hasStarted) {\n return;\n }\n actions.replay(10, {\n action: 'replay-10',\n source: 'shortcut'\n }); // Go back 10 seconds\n }\n },\n {\n keyCode: 39, // Right arrow\n handle: (player, actions) => {\n if (!player.hasStarted) {\n return;\n }\n actions.forward(5, {\n action: 'forward-5',\n source: 'shortcut'\n }); // Go forward 5 seconds\n }\n },\n {\n keyCode: 76, // l\n handle: (player, actions) => {\n if (!player.hasStarted) {\n return;\n }\n actions.forward(10, {\n action: 'forward-10',\n source: 'shortcut'\n }); // Go forward 10 seconds\n }\n },\n {\n keyCode: 36, // Home\n handle: (player, actions) => {\n if (!player.hasStarted) {\n return;\n }\n actions.seek(0); // Go to beginning of video\n }\n },\n {\n keyCode: 35, // End\n handle: (player, actions) => {\n if (!player.hasStarted) {\n return;\n }\n // Go to end of video\n actions.seek(player.duration);\n }\n },\n {\n keyCode: 38, // Up arrow\n handle: (player, actions) => {\n // Increase volume 5%\n let v = player.volume + 0.05;\n if (v > 1) {\n v = 1;\n }\n actions.changeVolume(v, {\n action: 'volume-up',\n source: 'shortcut'\n });\n }\n },\n {\n keyCode: 40, // Down arrow\n handle: (player, actions) => {\n // Decrease volume 5%\n let v = player.volume - 0.05;\n if (v < 0) {\n v = 0;\n }\n const action = v > 0 ? 'volume-down' : 'volume-off';\n actions.changeVolume(v, {\n action,\n source: 'shortcut'\n });\n }\n },\n {\n keyCode: 190, // Shift + >\n shift: true,\n handle: (player, actions) => {\n // Increase speed\n let { playbackRate } = player;\n if (playbackRate >= 1.5) {\n playbackRate = 2;\n } else if (playbackRate >= 1.25) {\n playbackRate = 1.5;\n } else if (playbackRate >= 1.0) {\n playbackRate = 1.25;\n } else if (playbackRate >= 0.5) {\n playbackRate = 1.0;\n } else if (playbackRate >= 0.25) {\n playbackRate = 0.5;\n } else if (playbackRate >= 0) {\n playbackRate = 0.25;\n }\n actions.changeRate(playbackRate, {\n action: 'fast-forward',\n source: 'shortcut'\n });\n }\n },\n {\n keyCode: 188, // Shift + <\n shift: true,\n handle: (player, actions) => {\n // Decrease speed\n let { playbackRate } = player;\n if (playbackRate <= 0.5) {\n playbackRate = 0.25;\n } else if (playbackRate <= 1.0) {\n playbackRate = 0.5;\n } else if (playbackRate <= 1.25) {\n playbackRate = 1.0;\n } else if (playbackRate <= 1.5) {\n playbackRate = 1.25;\n } else if (playbackRate <= 2) {\n playbackRate = 1.5;\n }\n actions.changeRate(playbackRate, {\n action: 'fast-rewind',\n source: 'shortcut'\n });\n }\n }\n ];\n\n this.shortcuts = [...this.defaultShortcuts];\n\n this.mergeShortcuts = this.mergeShortcuts.bind(this);\n this.handleKeyPress = this.handleKeyPress.bind(this);\n this.handleClick = this.handleClick.bind(this);\n this.handleDoubleClick = this.handleDoubleClick.bind(this);\n }\n\n componentDidMount() {\n this.mergeShortcuts();\n document.addEventListener('keydown', this.handleKeyPress);\n document.addEventListener('click', this.handleClick);\n document.addEventListener('dblclick', this.handleDoubleClick);\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.shortcuts !== this.props.shortcuts) {\n this.mergeShortcuts();\n }\n }\n\n componentWillUnmount() {\n document.removeEventListener('keydown', this.handleKeyPress);\n document.removeEventListener('click', this.handleClick);\n document.removeEventListener('dblclick', this.handleDoubleClick);\n }\n\n // merge the shortcuts from props\n mergeShortcuts() {\n const getShortcutKey = ({\n keyCode = 0,\n ctrl = false,\n shift = false,\n alt = false\n }) => `${keyCode}:${ctrl}:${shift}:${alt}`;\n const defaultShortcuts = this.defaultShortcuts.reduce(\n (shortcuts, shortcut) =>\n Object.assign(shortcuts, {\n [getShortcutKey(shortcut)]: shortcut\n }),\n {}\n );\n const mergedShortcuts = (this.props.shortcuts || []).reduce(\n (shortcuts, shortcut) => {\n const { keyCode, handle } = shortcut;\n if (keyCode && typeof handle === 'function') {\n return Object.assign(shortcuts, {\n [getShortcutKey(shortcut)]: shortcut\n });\n }\n return shortcuts;\n },\n defaultShortcuts\n );\n\n const gradeShortcut = s => {\n let score = 0;\n const ps = ['ctrl', 'shift', 'alt'];\n ps.forEach(key => {\n if (s[key]) {\n score++;\n }\n });\n return score;\n };\n\n this.shortcuts = Object.keys(mergedShortcuts)\n .map(key => mergedShortcuts[key])\n .sort((a, b) => gradeShortcut(b) - gradeShortcut(a));\n }\n\n togglePlay(player, actions) {\n if (player.paused) {\n actions.play({\n action: 'play',\n source: 'shortcut'\n });\n } else {\n actions.pause({\n action: 'pause',\n source: 'shortcut'\n });\n }\n }\n\n toggleFullscreen(player, actions) {\n actions.toggleFullscreen(player);\n }\n\n handleKeyPress(e) {\n const { player, actions } = this.props;\n if (!player.isActive) {\n return;\n }\n if (\n document.activeElement &&\n (hasClass(document.activeElement, 'video-react-control') ||\n hasClass(document.activeElement, 'video-react-menu-button-active') ||\n // || hasClass(document.activeElement, 'video-react-slider')\n hasClass(document.activeElement, 'video-react-big-play-button'))\n ) {\n return;\n }\n\n const keyCode = e.keyCode || e.which;\n const ctrl = e.ctrlKey || e.metaKey;\n const shift = e.shiftKey;\n const alt = e.altKey;\n\n const shortcut = this.shortcuts.filter(s => {\n if (!s.keyCode || s.keyCode - keyCode !== 0) {\n return false;\n }\n if (\n (s.ctrl !== undefined && s.ctrl !== ctrl) ||\n (s.shift !== undefined && s.shift !== shift) ||\n (s.alt !== undefined && s.alt !== alt)\n ) {\n return false;\n }\n return true;\n })[0];\n\n if (shortcut) {\n shortcut.handle(player, actions);\n e.preventDefault();\n }\n }\n\n // only if player is active and player is ready\n canBeClicked(player, e) {\n if (\n !player.isActive ||\n e.target.nodeName !== 'VIDEO' ||\n player.readyState !== 4\n ) {\n return false;\n }\n return true;\n }\n\n handleClick(e) {\n const { player, actions, clickable } = this.props;\n if (!this.canBeClicked(player, e) || !clickable) {\n return;\n }\n this.togglePlay(player, actions);\n // e.preventDefault();\n }\n\n handleDoubleClick(e) {\n const { player, actions, dblclickable } = this.props;\n if (!this.canBeClicked(player, e) || !dblclickable) {\n return;\n }\n this.toggleFullscreen(player, actions);\n // e.preventDefault();\n }\n\n // this component dose not render anything\n // it's just for the key down event\n render() {\n return null;\n }\n}\n\nShortcut.propTypes = propTypes;\nShortcut.defaultProps = defaultProps;\nShortcut.displayName = 'Shortcut';\n","import PropTypes from 'prop-types';\nimport React, { Component } from 'react';\nimport { findDOMNode } from 'react-dom';\nimport classNames from 'classnames';\nimport * as Dom from '../utils/dom';\n\nconst propTypes = {\n className: PropTypes.string,\n onMouseDown: PropTypes.func,\n onMouseMove: PropTypes.func,\n stepForward: PropTypes.func,\n stepBack: PropTypes.func,\n sliderActive: PropTypes.func,\n sliderInactive: PropTypes.func,\n onMouseUp: PropTypes.func,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n onClick: PropTypes.func,\n getPercent: PropTypes.func,\n vertical: PropTypes.bool,\n children: PropTypes.node,\n label: PropTypes.string,\n valuenow: PropTypes.string,\n valuetext: PropTypes.string\n};\n\nexport default class Slider extends Component {\n constructor(props, context) {\n super(props, context);\n\n this.handleMouseDown = this.handleMouseDown.bind(this);\n this.handleMouseMove = this.handleMouseMove.bind(this);\n this.handleMouseUp = this.handleMouseUp.bind(this);\n this.handleFocus = this.handleFocus.bind(this);\n this.handleBlur = this.handleBlur.bind(this);\n this.handleClick = this.handleClick.bind(this);\n this.handleKeyPress = this.handleKeyPress.bind(this);\n this.stepForward = this.stepForward.bind(this);\n this.stepBack = this.stepBack.bind(this);\n this.calculateDistance = this.calculateDistance.bind(this);\n this.getProgress = this.getProgress.bind(this);\n this.renderChildren = this.renderChildren.bind(this);\n\n this.state = {\n active: false\n };\n }\n\n componentWillUnmount() {\n document.removeEventListener('mousemove', this.handleMouseMove, true);\n document.removeEventListener('mouseup', this.handleMouseUp, true);\n document.removeEventListener('touchmove', this.handleMouseMove, true);\n document.removeEventListener('touchend', this.handleMouseUp, true);\n document.removeEventListener('keydown', this.handleKeyPress, true);\n }\n\n getProgress() {\n const { getPercent } = this.props;\n if (!getPercent) {\n return 0;\n }\n let progress = getPercent();\n\n // Protect against no duration and other division issues\n if (typeof progress !== 'number' || progress < 0 || progress === Infinity) {\n progress = 0;\n }\n return progress;\n }\n\n handleMouseDown(event) {\n const { onMouseDown } = this.props;\n // event.preventDefault();\n // event.stopPropagation();\n\n document.addEventListener('mousemove', this.handleMouseMove, true);\n document.addEventListener('mouseup', this.handleMouseUp, true);\n document.addEventListener('touchmove', this.handleMouseMove, true);\n document.addEventListener('touchend', this.handleMouseUp, true);\n\n this.setState({\n active: true\n });\n\n if (this.props.sliderActive) {\n this.props.sliderActive(event);\n }\n\n this.handleMouseMove(event);\n\n if (onMouseDown) {\n onMouseDown(event);\n }\n }\n\n handleMouseMove(event) {\n const { onMouseMove } = this.props;\n\n if (onMouseMove) {\n onMouseMove(event);\n }\n }\n\n handleMouseUp(event) {\n const { onMouseUp } = this.props;\n\n document.removeEventListener('mousemove', this.handleMouseMove, true);\n document.removeEventListener('mouseup', this.handleMouseUp, true);\n document.removeEventListener('touchmove', this.handleMouseMove, true);\n document.removeEventListener('touchend', this.handleMouseUp, true);\n\n this.setState({\n active: false\n });\n\n if (this.props.sliderInactive) {\n this.props.sliderInactive(event);\n }\n\n if (onMouseUp) {\n onMouseUp(event);\n }\n }\n\n handleFocus(e) {\n document.addEventListener('keydown', this.handleKeyPress, true);\n if (this.props.onFocus) {\n this.props.onFocus(e);\n }\n }\n\n handleBlur(e) {\n document.removeEventListener('keydown', this.handleKeyPress, true);\n if (this.props.onBlur) {\n this.props.onBlur(e);\n }\n }\n\n handleClick(event) {\n event.preventDefault();\n // event.stopPropagation();\n if (this.props.onClick) {\n this.props.onClick(event);\n }\n }\n\n handleKeyPress(event) {\n if (event.which === 37 || event.which === 40) {\n // Left and Down Arrows\n event.preventDefault();\n event.stopPropagation();\n this.stepBack();\n } else if (event.which === 38 || event.which === 39) {\n // Up and Right Arrows\n event.preventDefault();\n event.stopPropagation();\n this.stepForward();\n }\n }\n\n stepForward() {\n if (this.props.stepForward) {\n this.props.stepForward();\n }\n }\n\n stepBack() {\n if (this.props.stepBack) {\n this.props.stepBack();\n }\n }\n\n calculateDistance(event) {\n const node = findDOMNode(this);\n const position = Dom.getPointerPosition(node, event);\n if (this.props.vertical) {\n return position.y;\n }\n return position.x;\n }\n\n renderChildren() {\n const progress = this.getProgress();\n const percentage = `${(progress * 100).toFixed(2)}%`;\n return React.Children.map(this.props.children, child =>\n React.cloneElement(child, { progress, percentage })\n );\n }\n\n render() {\n const { vertical, label, valuenow, valuetext } = this.props;\n\n return (\n <div\n className={classNames(\n this.props.className,\n {\n 'video-react-slider-vertical': vertical,\n 'video-react-slider-horizontal': !vertical,\n 'video-react-sliding': this.state.active\n },\n 'video-react-slider'\n )}\n tabIndex=\"0\"\n role=\"slider\"\n onMouseDown={this.handleMouseDown}\n onTouchStart={this.handleMouseDown}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n onClick={this.handleClick}\n aria-label={label || ''}\n aria-valuenow={valuenow || ''}\n aria-valuetext={valuetext || ''}\n aria-valuemin={0}\n aria-valuemax={100}\n >\n {this.renderChildren()}\n </div>\n );\n }\n}\n\nSlider.propTypes = propTypes;\nSlider.displayName = 'Slider';\n","import PropTypes from 'prop-types';\nimport React, { Component } from 'react';\nimport classNames from 'classnames';\n\nimport Slider from '../Slider';\nimport PlayProgressBar from './PlayProgressBar';\nimport LoadProgressBar from './LoadProgressBar';\nimport MouseTimeDisplay from './MouseTimeDisplay';\nimport { formatTime } from '../../utils';\n\nconst propTypes = {\n player: PropTypes.object,\n mouseTime: PropTypes.object,\n actions: PropTypes.object,\n className: PropTypes.string\n};\n\nexport default class SeekBar extends Component {\n constructor(props, context) {\n super(props, context);\n\n this.getPercent = this.getPercent.bind(this);\n this.getNewTime = this.getNewTime.bind(this);\n this.stepForward = this.stepForward.bind(this);\n this.stepBack = this.stepBack.bind(this);\n\n this.handleMouseDown = this.handleMouseDown.bind(this);\n this.handleMouseMove = this.handleMouseMove.bind(this);\n this.handleMouseUp = this.handleMouseUp.bind(this);\n }\n\n componentDidMount() {}\n\n componentDidUpdate() {}\n\n /**\n * Get percentage of video played\n *\n * @return {Number} Percentage played\n * @method getPercent\n */\n getPercent() {\n const { currentTime, seekingTime, duration } = this.props.player;\n const time = seekingTime || currentTime;\n const percent = time / duration;\n return percent >= 1 ? 1 : percent;\n }\n\n getNewTime(event) {\n const {\n player: { duration }\n } = this.props;\n const distance = this.slider.calculateDistance(event);\n const newTime = distance * duration;\n\n // Don't let video end while scrubbing.\n return newTime === duration ? newTime - 0.1 : newTime;\n }\n\n handleMouseDown() {}\n\n handleMouseUp(event) {\n const { actions } = this.props;\n const newTime = this.getNewTime(event);\n // Set new time (tell video to seek to new time)\n actions.seek(newTime);\n actions.handleEndSeeking(newTime);\n }\n\n handleMouseMove(event) {\n const { actions } = this.props;\n const newTime = this.getNewTime(event);\n actions.handleSeekingTime(newTime);\n }\n\n stepForward() {\n const { actions } = this.props;\n actions.forward(5);\n }\n\n stepBack() {\n const { actions } = this.props;\n actions.replay(5);\n }\n\n render() {\n const {\n player: { currentTime, seekingTime, duration, buffered },\n mouseTime\n } = this.props;\n const time = seekingTime || currentTime;\n\n return (\n <Slider\n ref={input => {\n this.slider = input;\n }}\n label=\"video progress bar\"\n className={classNames(\n 'video-react-progress-holder',\n this.props.className\n )}\n valuenow={(this.getPercent() * 100).toFixed(2)}\n valuetext={formatTime(time, duration)}\n onMouseDown={this.handleMouseDown}\n onMouseMove={this.handleMouseMove}\n onMouseUp={this.handleMouseUp}\n getPercent={this.getPercent}\n stepForward={this.stepForward}\n stepBack={this.stepBack}\n >\n <LoadProgressBar\n buffered={buffered}\n currentTime={time}\n duration={duration}\n />\n <MouseTimeDisplay duration={duration} mouseTime={mouseTime} />\n <PlayProgressBar currentTime={time} duration={duration} />\n </Slider>\n );\n }\n}\n\nSeekBar.propTypes = propTypes;\nSeekBar.displayName = 'SeekBar';\n","import PropTypes from 'prop-types';\nimport React, { Component } from 'react';\nimport { findDOMNode } from 'react-dom';\nimport classNames from 'classnames';\n\nimport * as Dom from '../../utils/dom';\nimport SeekBar from './SeekBar';\n\nconst propTypes = {\n player: PropTypes.object,\n className: PropTypes.string\n};\n\nexport default class ProgressControl extends Component {\n constructor(props, context) {\n super(props, context);\n\n this.state = {\n mouseTime: {\n time: null,\n position: 0\n }\n };\n\n this.handleMouseMoveThrottle = this.handleMouseMove.bind(this);\n }\n\n handleMouseMove(event) {\n if (!event.pageX) {\n return;\n }\n const {\n player: { duration }\n } = this.props;\n const node = findDOMNode(this.seekBar);\n const newTime = Dom.getPointerPosition(node, event).x * duration;\n const position = event.pageX - Dom.findElPosition(node).left;\n\n this.setState({\n mouseTime: {\n time: newTime,\n position\n }\n });\n }\n\n render() {\n const { className } = this.props;\n return (\n <div\n onMouseMove={this.handleMouseMoveThrottle}\n className={classNames(\n 'video-react-progress-control video-react-control',\n className\n )}\n >\n <SeekBar\n mouseTime={this.state.mouseTime}\n ref={c => {\n this.seekBar = c;\n }}\n {...this.props}\n />\n </div>\n );\n }\n}\n\nProgressControl.propTypes = propTypes;\nProgressControl.displayName = 'ProgressControl';\n","import PropTypes from 'prop-types';\nimport React, { Component } from 'react';\nimport classNames from 'classnames';\n\nconst propTypes = {\n actions: PropTypes.object,\n player: PropTypes.object,\n className: PropTypes.string\n};\n\nexport default class PlayToggle extends Component {\n constructor(props, context) {\n super(props, context);\n this.handleClick = this.handleClick.bind(this);\n }\n\n handleClick() {\n const { actions, player } = this.props;\n if (player.paused) {\n actions.play();\n } else {\n actions.pause();\n }\n }\n\n render() {\n const { player, className } = this.props;\n const controlText = player.paused ? 'Play' : 'Pause';\n\n return (\n <button\n ref={c => {\n this.button = c;\n }}\n className={classNames(className, {\n 'video-react-play-control': true,\n 'video-react-control': true,\n 'video-react-button': true,\n 'video-react-paused': player.paused,\n 'video-react-playing': !player.paused\n })}\n type=\"button\"\n tabIndex=\"0\"\n onClick={this.handleClick}\n >\n <span className=\"video-react-control-text\">{controlText}</span>\n </button>\n );\n }\n}\n\nPlayToggle.propTypes = propTypes;\nPlayToggle.displayName = 'PlayToggle';\n","import PropTypes from 'prop-types';\nimport React, { Component } from 'react';\n\nconst propTypes = {\n actions: PropTypes.object,\n className: PropTypes.string,\n seconds: PropTypes.oneOf([5, 10, 30])\n};\n\nconst defaultProps = {\n seconds: 10\n};\n\nexport default mode => {\n class ForwardReplayControl extends Component {\n constructor(props, context) {\n super(props, context);\n this.handleClick = this.handleClick.bind(this);\n }\n\n handleClick() {\n const { actions, seconds } = this.props;\n // Depends mode to implement different actions\n if (mode === 'forward') {\n actions.forward(seconds);\n } else {\n actions.replay(seconds);\n }\n }\n\n render() {\n const { seconds, className } = this.props;\n const classNames = [\n 'video-react-control',\n 'video-react-button',\n 'video-react-icon'\n ];\n classNames.push(\n `video-react-icon-${mode}-${seconds}`,\n `video-react-${mode}-control`\n );\n if (className) {\n classNames.push(className);\n }\n return (\n <button\n ref={c => {\n this.button = c;\n }}\n className={classNames.join(' ')}\n type=\"button\"\n onClick={this.handleClick}\n >\n <span className=\"video-react-control-text\">{`${mode} ${seconds} seconds`}</span>\n </button>\n );\n }\n }\n\n ForwardReplayControl.propTypes = propTypes;\n ForwardReplayControl.defaultProps = defaultProps;\n return ForwardReplayControl;\n};\n","import ForwardReplayControl from './ForwardReplayControl';\n\n// Pass mode into parent function\nconst ForwardControl = ForwardReplayControl('forward');\n\nForwardControl.displayName = 'ForwardControl';\nexport default ForwardControl;\n","import ForwardReplayControl from './ForwardReplayControl';\n\n// Pass mode into parent function\nconst ReplayControl = ForwardReplayControl('replay');\nReplayControl.displayName = 'ReplayControl';\n\nexport default ReplayControl;\n","import PropTypes from 'prop-types';\nimport React, { Component } from 'react';\nimport classNames from 'classnames';\n\nconst propTypes = {\n actions: PropTypes.object,\n player: PropTypes.object,\n className: PropTypes.string\n};\n\nexport default class FullscreenToggle extends Component {\n constructor(props, context) {\n super(props, context);\n\n this.handleClick = this.handleClick.bind(this);\n }\n\n handleClick() {\n const { player, actions } = this.props;\n actions.toggleFullscreen(player);\n }\n\n render() {\n const { player, className } = this.props;\n return (\n <button\n className={classNames(\n className,\n {\n 'video-react-icon-fullscreen-exit': player.isFullscreen,\n 'video-react-icon-fullscreen': !player.isFullscreen\n },\n 'video-react-fullscreen-control video-react-control video-react-button video-react-icon'\n )}\n ref={c => {\n this.button = c;\n }}\n type=\"button\"\n tabIndex=\"0\"\n onClick={this.handleClick}\n >\n <span className=\"video-react-control-text\">Non-Fullscreen</span>\n </button>\n );\n }\n}\n\nFullscreenToggle.propTypes = propTypes;\nFullscreenToggle.displayName = 'FullscreenToggle';\n","import PropTypes from 'prop-types';\nimport React, { Component } from 'react';\nimport classNames from 'classnames';\n\nconst propTypes = {\n tagName: PropTypes.string,\n onClick: PropTypes.func.isRequired,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n className: PropTypes.string\n};\n\nconst defaultProps = {\n tagName: 'div'\n};\n\nexport default class ClickableComponent extends Component {\n constructor(props, context) {\n super(props, context);\n\n this.handleClick = this.handleClick.bind(this);\n this.handleFocus = this.handleFocus.bind(this);\n this.handleBlur = this.handleBlur.bind(this);\n this.handleKeypress = this.handleKeypress.bind(this);\n }\n\n handleKeypress(event) {\n // Support Space (32) or Enter (13) key operation to fire a click event\n if (event.which === 32 || event.which === 13) {\n event.preventDefault();\n this.handleClick(event);\n }\n }\n\n handleClick(event) {\n const { onClick } = this.props;\n onClick(event);\n }\n\n handleFocus(e) {\n document.addEventListener('keydown', this.handleKeypress);\n if (this.props.onFocus) {\n this.props.onFocus(e);\n }\n }\n\n handleBlur(e) {\n document.removeEventListener('keydown', this.handleKeypress);\n if (this.props.onBlur) {\n this.props.onBlur(e);\n }\n }\n\n render() {\n const Tag = this.props.tagName;\n const props = { ...this.props };\n delete props.tagName;\n delete props.className;\n return (\n <Tag\n className={classNames(this.props.className)}\n role=\"button\"\n tabIndex=\"0\"\n onClick={this.handleClick}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n {...props}\n />\n );\n }\n}\n\nClickableComponent.propTypes = propTypes;\nClickableComponent.defaultProps = defaultProps;\nClickableComponent.displayName = 'ClickableComponent';\n","import PropTypes from 'prop-types';\nimport React, { Component } from 'react';\n\nconst propTypes = {\n player: PropTypes.object,\n children: PropTypes.any\n};\n\nexport default class Popup extends Component {\n constructor(props, context) {\n super(props, context);\n\n this.handleClick = this.handleClick.bind(this);\n }\n\n handleClick(event) {\n event.preventDefault();\n // event.stopPropagation();\n }\n\n render() {\n const { children } = this.props;\n return (\n <div className=\"video-react-menu\" onClick={this.handleClick}>\n <div className=\"video-react-menu-content\">{children}</div>\n </div>\n );\n }\n}\n\nPopup.propTypes = propTypes;\nPopup.displayName = 'Popup';\n","import PropTypes from 'prop-types';\nimport React, { Component } from 'react';\nimport classNames from 'classnames';\n\nimport Slider from '../Slider';\nimport VolumeLevel from './VolumeLevel';\n\nconst propTypes = {\n actions: PropTypes.object,\n player: PropTypes.object,\n className: PropTypes.string,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func\n};\n\nclass VolumeBar extends Component {\n constructor(props, context) {\n super(props, context);\n\n this.state = {\n percentage: '0%'\n };\n\n this.handleMouseMove = this.handleMouseMove.bind(this);\n this.handlePercentageChange = this.handlePercentageChange.bind(this);\n this.checkMuted = this.checkMuted.bind(this);\n this.getPercent = this.getPercent.bind(this);\n this.stepForward = this.stepForward.bind(this);\n this.stepBack = this.stepBack.bind(this);\n this.handleFocus = this.handleFocus.bind(this);\n this.handleBlur = this.handleBlur.bind(this);\n this.handleClick = this.handleClick.bind(this);\n }\n\n componentDidMount() {}\n\n getPercent() {\n const { player } = this.props;\n if (player.muted) {\n return 0;\n }\n return player.volume;\n }\n\n checkMuted() {\n const { player, actions } = this.props;\n if (player.muted) {\n actions.mute(false);\n }\n }\n\n handleMouseMove(event) {\n const { actions } = this.props;\n this.checkMuted();\n const distance = this.slider.calculateDistance(event);\n actions.changeVolume(distance);\n }\n\n stepForward() {\n const { player, actions } = this.props;\n this.checkMuted();\n actions.changeVolume(player.volume + 0.1);\n }\n\n stepBack() {\n const { player, actions } = this.props;\n this.checkMuted();\n actions.changeVolume(player.volume - 0.1);\n }\n\n handleFocus(e) {\n if (this.props.onFocus) {\n this.props.onFocus(e);\n }\n }\n\n handleBlur(e) {\n if (this.props.onBlur) {\n this.props.onBlur(e);\n }\n }\n\n handlePercentageChange(percentage) {\n if (percentage !== this.state.percentage) {\n this.setState({\n percentage\n });\n }\n }\n\n handleClick(event) {\n event.stopPropagation();\n }\n\n render() {\n const { player, className } = this.props;\n\n const volume = (player.volume * 100).toFixed(2);\n return (\n <Slider\n ref={c => {\n this.slider = c;\n }}\n label=\"volume level\"\n valuenow={volume}\n valuetext={`${volume}%`}\n onMouseMove={this.handleMouseMove}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n onClick={this.handleClick}\n sliderActive={this.handleFocus}\n sliderInactive={this.handleBlur}\n getPercent={this.getPercent}\n onPercentageChange={this.handlePercentageChange}\n stepForward={this.stepForward}\n stepBack={this.stepBack}\n {...this.props}\n className={classNames(\n className,\n 'video-react-volume-bar video-react-slider-bar'\n )}\n >\n <VolumeLevel {...this.props} />\n </Slider>\n );\n }\n}\n\nVolumeBar.propTypes = propTypes;\nVolumeBar.displayName = 'VolumeBar';\n\nexport default VolumeBar;\n","import PropTypes from 'prop-types';\nimport React, { Component } from 'react';\nimport classNames from 'classnames';\n\nimport PopupButton from '../popup/PopupButton';\nimport VolumeBar from '../volume-control/VolumeBar';\n\nconst propTypes = {\n player: PropTypes.object,\n actions: PropTypes.object,\n vertical: PropTypes.bool,\n className: PropTypes.string,\n alwaysShowVolume: PropTypes.bool\n};\n\nconst defaultProps = {\n vertical: false\n};\n\nclass VolumeMenuButton extends Component {\n constructor(props, context) {\n super(props, context);\n\n this.state = {\n active: false\n };\n\n this.handleClick = this.handleClick.bind(this);\n this.handleFocus = this.handleFocus.bind(this);\n this.handleBlur = this.handleBlur.bind(this);\n }\n\n get volumeLevel() {\n const {\n player: { volume, muted }\n } = this.props;\n let level = 3;\n if (volume === 0 || muted) {\n level = 0;\n } else if (volume < 0.33) {\n level = 1;\n } else if (volume < 0.67) {\n level = 2;\n }\n return level;\n }\n\n handleClick() {\n const { player, actions } = this.props;\n actions.mute(!player.muted);\n }\n\n handleFocus() {\n this.setState({\n active: true\n });\n }\n\n handleBlur() {\n this.setState({\n active: false\n });\n }\n\n render() {\n const { vertical, player, className } = this.props;\n const inline = !vertical;\n const level = this.volumeLevel;\n return (\n <PopupButton\n className={classNames(\n className,\n {\n 'video-react-volume-menu-button-vertical': vertical,\n 'video-react-volume-menu-button-horizontal': !vertical,\n 'video-react-vol-muted': player.muted,\n 'video-react-vol-0': level === 0 && !player.muted,\n 'video-react-vol-1': level === 1,\n 'video-react-vol-2': level === 2,\n 'video-react-vol-3': level === 3,\n 'video-react-slider-active':\n this.props.alwaysShowVolume || this.state.active,\n 'video-react-lock-showing':\n this.props.alwaysShowVolume || this.state.active\n },\n 'video-react-volume-menu-button'\n )}\n onClick={this.handleClick}\n inline={inline}\n >\n <VolumeBar\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n {...this.props}\n />\n </PopupButton>\n );\n }\n}\n\nVolumeMenuButton.propTypes = propTypes;\nVolumeMenuButton.defaultProps = defaultProps;\nVolumeMenuButton.displayName = 'VolumeMenuButton';\nexport default VolumeMenuButton;\n","import PropTypes from 'prop-types';\nimport React, { Component } from 'react';\n\nconst propTypes = {\n children: PropTypes.any\n};\n\nexport default class Menu extends Component {\n constructor(props, context) {\n super(props, context);\n\n this.handleClick = this.handleClick.bind(this);\n }\n\n handleClick(event) {\n event.preventDefault();\n // event.stopPropagation();\n }\n\n render() {\n return (\n <div\n className=\"video-react-menu video-react-lock-showing\"\n role=\"presentation\"\n onClick={this.handleClick}\n >\n <ul className=\"video-react-menu-content\">{this.props.children}</ul>\n </div>\n );\n }\n}\n\nMenu.propTypes = propTypes;\nMenu.displayName = 'Menu';\n","import PropTypes from 'prop-types';\nimport React, { Component } from 'react';\nimport classNames from 'classnames';\n\nconst propTypes = {\n item: PropTypes.object,\n index: PropTypes.number,\n activateIndex: PropTypes.number,\n onSelectItem: PropTypes.func\n};\n\nexport default class MenuItem extends Component {\n constructor(props, context) {\n super(props, context);\n\n this.handleClick = this.handleClick.bind(this);\n }\n\n handleClick() {\n const { index, onSelectItem } = this.props;\n onSelectItem(index);\n }\n\n render() {\n const { item, index, activateIndex } = this.props;\n return (\n <li\n className={classNames({\n 'video-react-menu-item': true,\n 'video-react-selected': index === activateIndex\n })}\n role=\"menuitem\"\n onClick={this.handleClick}\n >\n {item.label}\n <span className=\"video-react-control-text\" />\n </li>\n );\n }\n}\n\nMenuItem.propTypes = propTypes;\nMenuItem.displayName = 'MenuItem';\n","import PropTypes from 'prop-types';\nimport React, { Component } from 'react';\nimport classNames from 'classnames';\nimport Menu from './Menu';\nimport MenuItem from './MenuItem';\nimport ClickableComponent from '../ClickableComponent';\n\nconst propTypes = {\n inline: PropTypes.bool,\n items: PropTypes.array,\n className: PropTypes.string,\n onSelectItem: PropTypes.func,\n children: PropTypes.any,\n selectedIndex: PropTypes.number\n};\n\nexport default class MenuButton extends Component {\n constructor(props, context) {\n super(props, context);\n\n this.state = {\n active: false,\n activateIndex: props.selectedIndex || 0\n };\n\n this.commitSelection = this.commitSelection.bind(this);\n this.activateMenuItem = this.activateMenuItem.bind(this);\n this.handleClick = this.handleClick.bind(this);\n this.renderMenu = this.renderMenu.bind(this);\n this.handleFocus = this.handleFocus.bind(this);\n this.handleBlur = this.handleBlur.bind(this);\n this.handleUpArrow = this.handleUpArrow.bind(this);\n this.handleDownArrow = this.handleDownArrow.bind(this);\n this.handleEscape = this.handleEscape.bind(this);\n this.handleReturn = this.handleReturn.bind(this);\n this.handleTab = this.handleTab.bind(this);\n this.handleKeyPress = this.handleKeyPress.bind(this);\n this.handleSelectItem = this.handleSelectItem.bind(this);\n this.handleIndexChange = this.handleIndexChange.bind(this);\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.selectedIndex !== this.props.selectedIndex) {\n this.activateMenuItem(this.props.selectedIndex);\n }\n }\n\n commitSelection(index) {\n this.setState({\n activateIndex: index,\n active: false\n });\n this.handleIndexChange(index);\n }\n\n activateMenuItem(index) {\n this.setState({\n activateIndex: index\n });\n this.handleIndexChange(index);\n }\n\n handleIndexChange(index) {\n const { onSelectItem } = this.props;\n onSelectItem(index);\n }\n\n handleClick() {\n this.setState(prevState => ({\n active: !prevState.active\n }));\n }\n\n handleFocus() {\n document.addEventListener('keydown', this.handleKeyPress);\n }\n\n handleBlur() {\n this.setState({\n active: false\n });\n document.removeEventListener('keydown', this.handleKeyPress);\n }\n\n handleUpArrow(e) {\n const { items } = this.props;\n if (this.state.active) {\n e.preventDefault();\n let newIndex = this.state.activateIndex - 1;\n if (newIndex < 0) {\n newIndex = items.length ? items.length - 1 : 0;\n }\n this.activateMenuItem(newIndex);\n }\n }\n\n handleDownArrow(e) {\n const { items } = this.props;\n if (this.state.active) {\n e.preventDefault();\n let newIndex = this.state.activateIndex + 1;\n if (newIndex >= items.length) {\n newIndex = 0;\n }\n this.activateMenuItem(newIndex);\n }\n }\n\n handleTab(e) {\n if (this.state.active) {\n e.preventDefault();\n this.commitSelection(this.state.activateIndex);\n }\n }\n\n handleReturn(e) {\n e.preventDefault();\n if (this.state.active) {\n this.commitSelection(this.state.activateIndex);\n } else {\n this.setState({\n active: true\n });\n }\n }\n\n handleEscape() {\n this.setState({\n active: false,\n activateIndex: 0\n });\n }\n\n handleKeyPress(event) {\n // Escape (27) key\n if (event.which === 27) {\n this.handleEscape(event);\n } else if (event.which === 9) {\n // Tab (9) key\n this.handleTab(event);\n } else if (event.which === 13) {\n // Enter (13) key\n this.handleReturn(event);\n } else if (event.which === 38) {\n // Up (38) key\n this.handleUpArrow(event);\n } else if (event.which === 40) {\n // Down (40) key press\n this.handleDownArrow(event);\n }\n }\n\n handleSelectItem(i) {\n this.commitSelection(i);\n }\n\n renderMenu() {\n if (!this.state.active) {\n return null;\n }\n\n const { items } = this.props;\n return (\n <Menu>\n {items.map((item, i) => (\n <MenuItem\n item={item}\n index={i}\n onSelectItem={this.handleSelectItem}\n activateIndex={this.state.activateIndex}\n key={`item-${i++}`}\n />\n ))}\n </Menu>\n );\n }\n\n render() {\n const { inline, className } = this.props;\n\n return (\n <ClickableComponent\n className={classNames(\n className,\n {\n 'video-react-menu-button-inline': !!inline,\n 'video-react-menu-button-popup': !inline,\n 'video-react-menu-button-active': this.state.active\n },\n 'video-react-control video-react-button video-react-menu-button'\n )}\n role=\"button\"\n tabIndex=\"0\"\n ref={c => {\n this.menuButton = c;\n }}\n onClick={this.handleClick}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n >\n {this.props.children}\n {this.renderMenu()}\n </ClickableComponent>\n );\n }\n}\n\nMenuButton.propTypes = propTypes;\nMenuButton.displayName = 'MenuButton';\n","import PropTypes from 'prop-types';\nimport React, { Component } from 'react';\nimport classNames from 'classnames';\nimport MenuButton from '../menu/MenuButton';\n\nconst propTypes = {\n player: PropTypes.object,\n actions: PropTypes.object,\n rates: PropTypes.array,\n className: PropTypes.string\n};\n\nconst defaultProps = {\n rates: [2, 1.5, 1.25, 1, 0.5, 0.25]\n};\n\nclass PlaybackRateMenuButton extends Component {\n constructor(props, context) {\n super(props, context);\n\n this.handleSelectItem = this.handleSelectItem.bind(this);\n }\n\n handleSelectItem(index) {\n const { rates, actions } = this.props;\n if (index >= 0 && index < rates.length) {\n actions.changeRate(rates[index]);\n }\n }\n\n render() {\n const { rates, player } = this.props;\n const items = rates.map(rate => ({\n label: `${rate}x`,\n value: rate\n }));\n const selectedIndex = rates.indexOf(player.playbackRate) || 0;\n\n return (\n <MenuButton\n className={classNames(\n 'video-react-playback-rate',\n this.props.className\n )}\n onSelectItem={this.handleSelectItem}\n items={items}\n selectedIndex={selectedIndex}\n >\n <span className=\"video-react-control-text\">Playback Rate</span>\n <div className=\"video-react-playback-rate-value\">\n {`${player.playbackRate.toFixed(2)}x`}\n </div>\n </MenuButton>\n );\n }\n}\n\nPlaybackRateMenuButton.propTypes = propTypes;\nPlaybackRateMenuButton.defaultProps = defaultProps;\nPlaybackRateMenuButton.displayName = 'PlaybackRateMenuButton';\nexport default PlaybackRateMenuButton;\n","import PropTypes from 'prop-types';\nimport React, { Component } from 'react';\nimport classNames from 'classnames';\n\nimport ProgressControl from './ProgressControl';\nimport PlayToggle from './PlayToggle';\nimport ForwardControl from './ForwardControl';\nimport ReplayControl from './ReplayControl';\nimport FullscreenToggle from './FullscreenToggle';\nimport RemainingTimeDisplay from '../time-controls/RemainingTimeDisplay';\nimport CurrentTimeDisplay from '../time-controls/CurrentTimeDisplay';\nimport DurationDisplay from '../time-controls/DurationDisplay';\nimport TimeDivider from '../time-controls/TimeDivider';\nimport VolumeMenuButton from './VolumeMenuButton';\nimport PlaybackRateMenuButton from './PlaybackRateMenuButton';\nimport { mergeAndSortChildren } from '../../utils';\n\nconst propTypes = {\n children: PropTypes.any,\n autoHide: PropTypes.bool,\n autoHideTime: PropTypes.number, // used in Player\n disableDefaultControls: PropTypes.bool,\n disableCompletely: PropTypes.bool,\n className: PropTypes.string\n};\n\nconst defaultProps = {\n autoHide: true,\n disableCompletely: false\n};\n\nexport default class ControlBar extends Component {\n constructor(props) {\n super(props);\n\n this.getDefaultChildren = this.getDefaultChildren.bind(this);\n this.getFullChildren = this.getFullChildren.bind(this);\n }\n\n getDefaultChildren() {\n return [\n <PlayToggle key=\"play-toggle\" order={1} />,\n <VolumeMenuButton key=\"volume-menu-button\" order={4} />,\n <CurrentTimeDisplay key=\"current-time-display\" order={5.1} />,\n <TimeDivider key=\"time-divider\" order={5.2} />,\n <DurationDisplay key=\"duration-display\" order={5.3} />,\n <ProgressControl key=\"progress-control\" order={6} />,\n <FullscreenToggle key=\"fullscreen-toggle\" order={8} />\n ];\n }\n\n getFullChildren() {\n return [\n <PlayToggle key=\"play-toggle\" order={1} />,\n <ReplayControl key=\"replay-control\" order={2} />,\n <ForwardControl key=\"forward-control\" order={3} />,\n <VolumeMenuButton key=\"volume-menu-button\" order={4} />,\n <CurrentTimeDisplay key=\"current-time-display\" order={5} />,\n <TimeDivider key=\"time-divider\" order={6} />,\n <DurationDisplay key=\"duration-display\" order={7} />,\n <ProgressControl key=\"progress-control\" order={8} />,\n <RemainingTimeDisplay key=\"remaining-time-display\" order={9} />,\n <PlaybackRateMenuButton\n rates={[1, 1.25, 1.5, 2]}\n key=\"playback-rate\"\n order={10}\n />,\n <FullscreenToggle key=\"fullscreen-toggle\" order={11} />\n ];\n }\n\n getChildren() {\n const children = React.Children.toArray(this.props.children);\n const defaultChildren = this.props.disableDefaultControls\n ? []\n : this.getDefaultChildren();\n const { className, ...parentProps } = this.props; // remove className\n return mergeAndSortChildren(defaultChildren, children, parentProps);\n }\n\n render() {\n const { autoHide, className, disableCompletely } = this.props;\n const children = this.getChildren();\n\n return disableCompletely ? null : (\n <div\n className={classNames(\n 'video-react-control-bar',\n {\n 'video-react-control-bar-auto-hide': autoHide\n },\n className\n )}\n >\n {children}\n </div>\n );\n }\n}\n\nControlBar.propTypes = propTypes;\nControlBar.defaultProps = defaultProps;\nControlBar.displayName = 'ControlBar';\n","const USER_AGENT =\n typeof window !== 'undefined' && window.navigator\n ? window.navigator.userAgent\n : '';\n// const webkitVersionMap = (/AppleWebKit\\/([\\d.]+)/i).exec(USER_AGENT);\n// const appleWebkitVersion = webkitVersionMap ? parseFloat(webkitVersionMap.pop()) : null;\n\n/*\n * Device is an iPhone\n *\n * @type {Boolean}\n * @constant\n * @private\n */\nexport const IS_IPAD = /iPad/i.test(USER_AGENT);\n\n// The Facebook app's UIWebView identifies as both an iPhone and iPad, so\n// to identify iPhones, we need to exclude iPads.\n// http://artsy.github.io/blog/2012/10/18/the-perils-of-ios-user-agent-sniffing/\nexport const IS_IPHONE = /iPhone/i.test(USER_AGENT) && !IS_IPAD;\nexport const IS_IPOD = /iPod/i.test(USER_AGENT);\nexport const IS_IOS = IS_IPHONE || IS_IPAD || IS_IPOD;\n","import PropTypes from 'prop-types';\nimport React, { Component } from 'react';\nimport classNames from 'classnames';\n\nimport Manager from '../Manager';\n\nimport BigPlayButton from './BigPlayButton';\nimport LoadingSpinner from './LoadingSpinner';\nimport PosterImage from './PosterImage';\nimport Video from './Video';\nimport Bezel from './Bezel';\nimport Shortcut from './Shortcut';\nimport ControlBar from './control-bar/ControlBar';\n\nimport * as browser from '../utils/browser';\nimport { focusNode } from '../utils/dom';\nimport { mergeAndSortChildren, isVideoChild, throttle } from '../utils';\nimport fullscreen from '../utils/fullscreen';\n\nconst propTypes = {\n children: PropTypes.any,\n\n width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n height: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n fluid: PropTypes.bool,\n muted: PropTypes.bool,\n playsInline: PropTypes.bool,\n aspectRatio: PropTypes.string,\n className: PropTypes.string,\n videoId: PropTypes.string,\n\n startTime: PropTypes.number,\n loop: PropTypes.bool,\n autoPlay: PropTypes.bool,\n src: PropTypes.string,\n poster: PropTypes.string,\n preload: PropTypes.oneOf(['auto', 'metadata', 'none']),\n\n onLoadStart: PropTypes.func,\n onWaiting: PropTypes.func,\n onCanPlay: PropTypes.func,\n onCanPlayThrough: PropTypes.func,\n onPlaying: PropTypes.func,\n onEnded: PropTypes.func,\n onSeeking: PropTypes.func,\n onSeeked: PropTypes.func,\n onPlay: PropTypes.func,\n onPause: PropTypes.func,\n onProgress: PropTypes.func,\n onDurationChange: PropTypes.func,\n onError: PropTypes.func,\n onSuspend: PropTypes.func,\n onAbort: PropTypes.func,\n onEmptied: PropTypes.func,\n onStalled: PropTypes.func,\n onLoadedMetadata: PropTypes.func,\n onLoadedData: PropTypes.func,\n onTimeUpdate: PropTypes.func,\n onRateChange: PropTypes.func,\n onVolumeChange: PropTypes.func,\n\n store: PropTypes.object\n};\n\nconst defaultProps = {\n fluid: true,\n muted: false,\n playsInline: false,\n preload: 'auto',\n aspectRatio: 'auto'\n};\n\nexport default class Player extends Component {\n constructor(props) {\n super(props);\n\n this.controlsHideTimer = null;\n\n this.video = null; // the Video component\n this.manager = new Manager(props.store);\n this.actions = this.manager.getActions();\n this.manager.subscribeToPlayerStateChange(\n this.handleStateChange.bind(this)\n );\n\n this.getStyle = this.getStyle.bind(this);\n this.handleResize = this.handleResize.bind(this);\n this.getChildren = this.getChildren.bind(this);\n this.handleMouseMove = throttle(this.handleMouseMove.bind(this), 250);\n this.handleMouseDown = this.handleMouseDown.bind(this);\n this.startControlsTimer = this.startControlsTimer.bind(this);\n this.handleFullScreenChange = this.handleFullScreenChange.bind(this);\n this.handleKeyDown = this.handleKeyDown.bind(this);\n this.handleFocus = this.handleFocus.bind(this);\n this.handleBlur = this.handleBlur.bind(this);\n }\n\n componentDidMount() {\n this.handleResize();\n window.addEventListener('resize', this.handleResize);\n\n fullscreen.addEventListener(this.handleFullScreenChange);\n }\n\n componentWillUnmount() {\n // Remove event listener\n window.removeEventListener('resize', this.handleResize);\n fullscreen.removeEventListener(this.handleFullScreenChange);\n if (this.controlsHideTimer) {\n window.clearTimeout(this.controlsHideTimer);\n }\n }\n\n getDefaultChildren(originalChildren) {\n return [\n <Video\n ref={c => {\n this.video = c;\n this.manager.video = this.video;\n }}\n key=\"video\"\n order={0.0}\n >\n {originalChildren}\n </Video>,\n <PosterImage key=\"poster-image\" order={1.0} />,\n <LoadingSpinner key=\"loading-spinner\" order={2.0} />,\n <Bezel key=\"bezel\" order={3.0} />,\n <BigPlayButton key=\"big-play-button\" order={4.0} />,\n <ControlBar key=\"control-bar\" order={5.0} />,\n <Shortcut key=\"shortcut\" order={99.0} />\n ];\n }\n\n getChildren(props) {\n const {\n className: _, // remove className\n children: originalChildren,\n ...propsWithoutChildren\n } = props;\n const children = React.Children.toArray(this.props.children).filter(\n e => !isVideoChild(e)\n );\n const defaultChildren = this.getDefaultChildren(originalChildren);\n return mergeAndSortChildren(\n defaultChildren,\n children,\n propsWithoutChildren\n );\n }\n\n setWidthOrHeight(style, name, value) {\n let styleVal;\n if (typeof value === 'string') {\n if (value === 'auto') {\n styleVal = 'auto';\n } else if (value.match(/\\d+%/)) {\n styleVal = value;\n }\n } else if (typeof value === 'number') {\n styleVal = `${value}px`;\n }\n Object.assign(style, {\n [name]: styleVal\n });\n }\n\n getStyle() {\n const {\n fluid,\n aspectRatio: propsAspectRatio,\n height: propsHeight,\n width: propsWidth\n } = this.props;\n const { player } = this.manager.getState();\n const style = {};\n let width;\n let height;\n let aspectRatio;\n\n // The aspect ratio is either used directly or to calculate width and height.\n if (propsAspectRatio !== undefined && propsAspectRatio !== 'auto') {\n // Use any aspectRatio that's been specifically set\n aspectRatio = propsAspectRatio;\n } else if (player.videoWidth) {\n // Otherwise try to get the aspect ratio from the video metadata\n aspectRatio = `${player.videoWidth}:${player.videoHeight}`;\n } else {\n // Or use a default. The video element's is 2:1, but 16:9 is more common.\n aspectRatio = '16:9';\n }\n\n // Get the ratio as a decimal we can use to calculate dimensions\n const ratioParts = aspectRatio.split(':');\n const ratioMultiplier = ratioParts[1] / ratioParts[0];\n\n if (propsWidth !== undefined) {\n // Use any width that's been specifically set\n width = propsWidth;\n } else if (propsHeight !== undefined) {\n // Or calulate the width from the aspect ratio if a height has been set\n width = propsHeight / ratioMultiplier;\n } else {\n // Or use the video's metadata, or use the video el's default of 300\n width = player.videoWidth || 400;\n }\n\n if (propsHeight !== undefined) {\n // Use any height that's been specifically set\n height = propsHeight;\n } else {\n // Otherwise calculate the height from the ratio and the width\n height = width * ratioMultiplier;\n }\n\n if (fluid) {\n style.paddingTop = `${ratioMultiplier * 100}%`;\n } else {\n // If Width contains \"auto\", set \"auto\" in style\n this.setWidthOrHeight(style, 'width', width);\n this.setWidthOrHeight(style, 'height', height);\n }\n\n return style;\n }\n\n // get redux state\n // { player, operation }\n getState() {\n return this.manager.getState();\n }\n\n // get playback rate\n get playbackRate() {\n return this.video.playbackRate;\n }\n\n // set playback rate\n // speed of video\n set playbackRate(rate) {\n this.video.playbackRate = rate;\n }\n\n get muted() {\n return this.video.muted;\n }\n\n set muted(val) {\n this.video.muted = val;\n }\n\n get volume() {\n return this.video.volume;\n }\n\n set volume(val) {\n this.video.volume = val;\n }\n\n // video width\n get videoWidth() {\n return this.video.videoWidth;\n }\n\n // video height\n get videoHeight() {\n return this.video.videoHeight;\n }\n\n // play the video\n play() {\n this.video.play();\n }\n\n // pause the video\n pause() {\n this.video.pause();\n }\n\n // Change the video source and re-load the video:\n load() {\n this.video.load();\n }\n\n // Add a new text track to the video\n addTextTrack(...args) {\n this.video.addTextTrack(...args);\n }\n\n // Check if your browser can play different types of video:\n canPlayType(...args) {\n this.video.canPlayType(...args);\n }\n\n // seek video by time\n seek(time) {\n this.video.seek(time);\n }\n\n // jump forward x seconds\n forward(seconds) {\n this.video.forward(seconds);\n }\n\n // jump back x seconds\n replay(seconds) {\n this.video.replay(seconds);\n }\n\n // enter or exist full screen\n toggleFullscreen() {\n this.video.toggleFullscreen();\n }\n\n // subscribe to player state change\n subscribeToStateChange(listener) {\n return this.manager.subscribeToPlayerStateChange(listener);\n }\n\n // player resize\n handleResize() {}\n\n handleFullScreenChange(event) {\n if (event.target === this.manager.rootElement) {\n this.actions.handleFullscreenChange(fullscreen.isFullscreen);\n }\n }\n\n handleMouseDown() {\n this.startControlsTimer();\n }\n\n handleMouseMove() {\n this.startControlsTimer();\n }\n\n handleKeyDown() {\n this.startControlsTimer();\n }\n\n startControlsTimer() {\n let controlBarActiveTime = 3000;\n React.Children.forEach(this.props.children, element => {\n if (!React.isValidElement(element) || element.type !== ControlBar) {\n return;\n }\n\n const { autoHideTime } = element.props;\n if (typeof autoHideTime === 'number') {\n controlBarActiveTime = autoHideTime;\n }\n });\n\n this.actions.userActivate(true);\n clearTimeout(this.controlsHideTimer);\n this.controlsHideTimer = setTimeout(() => {\n this.actions.userActivate(false);\n }, controlBarActiveTime);\n }\n\n handleStateChange(state, prevState) {\n if (state.isFullscreen !== prevState.isFullscreen) {\n this.handleResize();\n // focus root when switching fullscreen mode to avoid confusion #276\n focusNode(this.manager.rootElement);\n }\n this.forceUpdate(); // re-render\n }\n\n handleFocus() {\n this.actions.activate(true);\n }\n\n handleBlur() {\n this.actions.activate(false);\n }\n\n render() {\n const { fluid } = this.props;\n const { player } = this.manager.getState();\n const {\n paused,\n hasStarted,\n waiting,\n seeking,\n isFullscreen,\n userActivity\n } = player;\n\n const props = {\n ...this.props,\n player,\n actions: this.actions,\n manager: this.manager,\n store: this.manager.store,\n video: this.video ? this.video.video : null\n };\n const children = this.getChildren(props);\n\n return (\n <div\n className={classNames(\n {\n 'video-react-controls-enabled': true,\n 'video-react-has-started': hasStarted,\n 'video-react-paused': paused,\n 'video-react-playing': !paused,\n 'video-react-waiting': waiting,\n 'video-react-seeking': seeking,\n 'video-react-fluid': fluid,\n 'video-react-fullscreen': isFullscreen,\n 'video-react-user-inactive': !userActivity,\n 'video-react-user-active': userActivity,\n 'video-react-workinghover': !browser.IS_IOS\n },\n 'video-react',\n this.props.className\n )}\n style={this.getStyle()}\n ref={c => {\n this.manager.rootElement = c;\n }}\n role=\"region\"\n onTouchStart={this.handleMouseDown}\n onMouseDown={this.handleMouseDown}\n onMouseMove={this.handleMouseMove}\n onKeyDown={this.handleKeyDown}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n tabIndex=\"-1\"\n >\n {children}\n </div>\n );\n }\n}\n\nPlayer.contextTypes = { store: PropTypes.object };\nPlayer.propTypes = propTypes;\nPlayer.defaultProps = defaultProps;\nPlayer.displayName = 'Player';\n","import React, { Component } from 'react';\nimport PlaybackRateMenuButton from './PlaybackRateMenuButton';\nimport { deprecatedWarning } from '../../utils';\n\nexport default class PlaybackRate extends Component {\n constructor(props, context) {\n super(props, context);\n\n deprecatedWarning('PlaybackRate', 'PlaybackRateMenuButton');\n }\n\n render() {\n return <PlaybackRateMenuButton {...this.props} />;\n }\n}\n\nPlaybackRate.displayName = 'PlaybackRate';\n"],"names":["toObject","val","TypeError","Object","emptyFunction","emptyFunctionWithReset","symbolObservablePonyfill","root","result","Symbol","observable","isPlainObject","obj","proto","getPrototypeOf","createStore","reducer","preloadedState","enhancer","ensureCanMutateNextListeners","nextListeners","currentListeners","slice","getState","isDispatching","Error","currentState","subscribe","listener","isSubscribed","push","index","indexOf","splice","dispatch","action","type","currentReducer","listeners","i","length","_ref2","arguments","ActionTypes","INIT","replaceReducer","nextReducer","REPLACE","$$observable","_ref","outerSubscribe","observer","observeState","next","unsubscribe","player","state","initialState","userActivity","activity","isActive","isFullscreen","seekingTime","time","videoProps","hasStarted","ended","waiting","paused","autoPaused","seeking","error","operation","count","LoadingSpinner","className","React","classNames","PosterImage","poster","actions","style","backgroundImage","onClick","play","formatTime","seconds","guide","Math","floor","s","m","h","gm","gh","isNaN","isVideoChild","c","props","mergeAndSortChildren","defaultChildren","_children","_parentProps","defaultOrder","children","Children","toArray","order","parentProps","filter","e","disabled","concat","find","component","isTypeEqual","map","element","defaultComponent","defaultProps","cloneElement","sort","a","b","deprecatedWarning","oldMethodCall","newMethodCall","console","warn","throttle","callback","limit","wait","setTimeout","findElPosition","el","box","round","getBoundingClientRect","parentNode","left","top","document","body","docEl","documentElement","clientLeft","scrollLeft","window","pageXOffset","clientTop","scrollTop","pageYOffset","getPointerPosition","event","max","min","position","boxW","offsetWidth","boxH","offsetHeight","boxY","boxX","evtPageY","pageY","evtPageX","pageX","changedTouches","y","x","focusNode","reactNode","domNode","findDOMNode","focus","hasClass","elm","cls","classes","split","toLowerCase","PlayProgressBar","currentTime","duration","percentage","width","LoadProgressBar","percentify","end","percent","buffered","bufferedEnd","parts","start","part","key","MouseTimeDisplay","mouseTime","text","RemainingTimeDisplay","formattedTime","CurrentTimeDisplay","DurationDisplay","TimeDivider","separator","dir","PopupButton","inline","ps","ClickableComponent","Popup","VolumeLevel","vertical","height","t","u","$$typeof","l","g","f","p","k","n","r","q","d","v","defineProperty","exports","value","for","module","require$$0","getOwnPropertySymbols","hasOwnProperty","prototype","propIsEnumerable","propertyIsEnumerable","String","fromCharCode","assign","test1","getOwnPropertyNames","test2","order2","join","test3","forEach","letter","keys","err","shouldUseNative","target","from","symbols","to","call","has","Function","bind","resetWarningCache","shim","propName","componentName","location","propFullName","secret","name","getShim","isRequired","ReactPropTypes","array","bool","func","number","object","string","symbol","any","arrayOf","elementType","instanceOf","node","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","PropTypes","require$$2","arg","argType","Array","isArray","inner","apply","hasOwn","default","self","global","ponyfill","randomString","random","toString","substring","PROBE_UNKNOWN_ACTION","Fullscreen","request","requestFullscreen","webkitRequestFullscreen","mozRequestFullScreen","msRequestFullscreen","exit","exitFullscreen","webkitExitFullscreen","mozCancelFullScreen","msExitFullscreen","addEventListener","handler","removeEventListener","fullscreenElement","webkitFullscreenElement","mozFullScreenElement","msFullscreenElement","fullscreenEnabled","webkitFullscreenEnabled","mozFullScreenEnabled","msFullscreenEnabled","source","video","pause","togglePlay","seek","forward","replay","rate","playbackRate","volume","muted","fullscreen","enabled","rootElement","currentSrc","readyState","networkState","videoWidth","videoHeight","Manager","store","getActions","bindActionCreator","actionCreator","manager","playerActions","videoActions","reduce","boundActions","subscribeToStateChange","prevState","handleChange","prevStateCopy","subscribeToOperationStateChange","_this","subscribeToPlayerStateChange","_this2","propTypes","BigPlayButton","context","handleClick","componentDidMount","render","tabIndex","Component","displayName","Number","elements","component1","component2","type1","type2","mediaProperties","startTime","loop","autoPlay","playsInline","src","preload","crossOrigin","onLoadStart","onWaiting","onCanPlay","onCanPlayThrough","onPlaying","onEnded","onSeeking","onSeeked","onPlay","onPause","onProgress","onDurationChange","onError","onSuspend","onAbort","onEmptied","onStalled","onLoadedMetadata","onLoadedData","onTimeUpdate","onRateChange","onVolumeChange","onResize","Video","toggleFullscreen","getProperties","renderChildren","handleLoadStart","handleCanPlay","handleCanPlayThrough","handlePlay","handlePlaying","handlePause","handleEnded","handleWaiting","handleSeeking","handleSeeked","handleFullscreenChange","handleError","handleSuspend","handleAbort","handleEmptied","handleStalled","handleLoadedMetaData","handleLoadedData","handleTimeUpdate","handleRateChange","handleVolumeChange","handleDurationChange","handleProgress","handleKeypress","forceUpdate","properties","promise","catch","then","load","addTextTrack","canPlayType","handleProgressChange","handleEnd","handleResize","cprops","preOnError","_this3","videoId","id","ref","_this4","Bezel","timer","handleStateChange","hidden","clearTimeout","setState","display","role","clickable","dblclickable","shortcuts","Shortcut","defaultShortcuts","keyCode","handle","changeVolume","shift","changeRate","mergeShortcuts","handleKeyPress","handleDoubleClick","componentDidUpdate","prevProps","componentWillUnmount","getShortcutKey","ctrl","alt","shortcut","mergedShortcuts","gradeShortcut","score","activeElement","which","ctrlKey","metaKey","shiftKey","altKey","preventDefault","canBeClicked","nodeName","onMouseDown","onMouseMove","stepForward","stepBack","sliderActive","sliderInactive","onMouseUp","onFocus","onBlur","getPercent","label","valuenow","valuetext","Slider","handleMouseDown","handleMouseMove","handleMouseUp","handleFocus","handleBlur","calculateDistance","getProgress","active","progress","stopPropagation","Dom","toFixed","child","onTouchStart","SeekBar","getNewTime","distance","slider","newTime","handleEndSeeking","handleSeekingTime","input","ProgressControl","handleMouseMoveThrottle","seekBar","PlayToggle","controlText","button","mode","ForwardReplayControl","ForwardControl","ReplayControl","FullscreenToggle","tagName","Tag","VolumeBar","handlePercentageChange","checkMuted","mute","onPercentageChange","alwaysShowVolume","VolumeMenuButton","level","volumeLevel","Menu","item","activateIndex","onSelectItem","MenuItem","items","selectedIndex","MenuButton","commitSelection","activateMenuItem","renderMenu","handleUpArrow","handleDownArrow","handleEscape","handleReturn","handleTab","handleSelectItem","handleIndexChange","newIndex","menuButton","rates","PlaybackRateMenuButton","autoHide","autoHideTime","disableDefaultControls","disableCompletely","ControlBar","getDefaultChildren","getFullChildren","getChildren","USER_AGENT","navigator","userAgent","IS_IPAD","test","IS_IPHONE","IS_IPOD","fluid","aspectRatio","Player","controlsHideTimer","getStyle","startControlsTimer","handleFullScreenChange","handleKeyDown","originalChildren","_","propsWithoutChildren","setWidthOrHeight","styleVal","match","propsAspectRatio","propsHeight","propsWidth","ratioParts","ratioMultiplier","paddingTop","controlBarActiveTime","isValidElement","userActivate","activate","onKeyDown","contextTypes","PlaybackRate"],"mappings":"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"}
| ver. 1.4 |
Github
|
.
| PHP 8.1.33 | Генерация страницы: 0.05 |
proxy
|
phpinfo
|
Настройка