Файловый менеджер - Редактировать - /home/freeclou/app.optimyar.com/backend/node_modules/video-react/dist/video-react.js.map
Назад
{"version":3,"file":"video-react.js","sources":["../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-is/cjs/react-is.development.js","../node_modules/react-is/index.js","../node_modules/object-assign/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/prop-types/factoryWithTypeCheckers.js","../node_modules/prop-types/factoryWithThrowingShims.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/reducers/player.js","../src/reducers/operation.js","../src/reducers/index.js","../src/Manager.js","../src/components/BigPlayButton.js","../src/components/LoadingSpinner.js","../src/components/PosterImage.js","../src/utils/index.js","../src/components/Video.js","../src/components/Bezel.js","../src/utils/dom.js","../src/components/Shortcut.js","../src/components/Slider.js","../src/components/control-bar/PlayProgressBar.js","../src/components/control-bar/LoadProgressBar.js","../src/components/control-bar/MouseTimeDisplay.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/time-controls/RemainingTimeDisplay.js","../src/components/time-controls/CurrentTimeDisplay.js","../src/components/time-controls/DurationDisplay.js","../src/components/time-controls/TimeDivider.js","../src/components/ClickableComponent.js","../src/components/popup/Popup.js","../src/components/popup/PopupButton.js","../src/components/volume-control/VolumeLevel.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":["/** @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","/** @license React v16.8.6\n * react-is.development.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';\n\n\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\n\nvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\nvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\nvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\nvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\nvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace;\nvar REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\nvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\nvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\nvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\n\nfunction isValidElementType(type) {\n return typeof type === 'string' || typeof type === 'function' ||\n // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE);\n}\n\n/**\n * Forked from fbjs/warning:\n * https://github.com/facebook/fbjs/blob/e66ba20ad5be433eb54423f2b097d829324d9de6/packages/fbjs/src/__forks__/warning.js\n *\n * Only change is we use console.warn instead of console.error,\n * and do nothing when 'console' is not supported.\n * This really simplifies the code.\n * ---\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar lowPriorityWarning = function () {};\n\n{\n var printWarning = function (format) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.warn(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 lowPriorityWarning = function (condition, format) {\n if (format === undefined) {\n throw new Error('`lowPriorityWarning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n if (!condition) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(undefined, [format].concat(args));\n }\n };\n}\n\nvar lowPriorityWarning$1 = lowPriorityWarning;\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_ASYNC_MODE_TYPE:\n case REACT_CONCURRENT_MODE_TYPE:\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n return type;\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n default:\n return $$typeof;\n }\n }\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n}\n\n// AsyncMode is deprecated along with isAsyncMode\nvar AsyncMode = REACT_ASYNC_MODE_TYPE;\nvar ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\n\nvar hasWarnedAboutDeprecatedIsAsyncMode = false;\n\n// AsyncMode should be deprecated\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true;\n lowPriorityWarning$1(false, 'The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n }\n }\n return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n}\nfunction isConcurrentMode(object) {\n return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\n\nexports.typeOf = typeOf;\nexports.AsyncMode = AsyncMode;\nexports.ConcurrentMode = ConcurrentMode;\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.isValidElementType = isValidElementType;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\n })();\n}\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","/*\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 = '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\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","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\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 {\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 { 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 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 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 { 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 { 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 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, { 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 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, { 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 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","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":["Object","defineProperty","exports","value","b","Symbol","for","c","d","e","f","g","h","k","l","m","n","p","q","r","t","a","u","$$typeof","type","v","module","require$$0","getOwnPropertySymbols","hasOwnProperty","prototype","propIsEnumerable","propertyIsEnumerable","toObject","val","undefined","TypeError","shouldUseNative","assign","test1","String","getOwnPropertyNames","test2","i","fromCharCode","order2","map","join","test3","split","forEach","letter","keys","err","target","source","from","to","symbols","s","arguments","length","key","call","ReactPropTypesSecret","has","Function","bind","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","props","propName","componentName","location","propFullName","secret","Error","name","isRequired","getShim","ReactPropTypes","array","bool","func","number","object","string","symbol","any","arrayOf","element","elementType","instanceOf","node","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","PropTypes","require$$2","hasOwn","classNames","classes","arg","argType","push","Array","isArray","inner","apply","default","window","LOAD_START","CAN_PLAY","WAITING","CAN_PLAY_THROUGH","PLAYING","PLAY","PAUSE","END","SEEKING","SEEKED","SEEKING_TIME","END_SEEKING","DURATION_CHANGE","TIME_UPDATE","VOLUME_CHANGE","PROGRESS_CHANGE","RATE_CHANGE","SUSPEND","ABORT","EMPTIED","STALLED","LOADED_META_DATA","LOADED_DATA","RESIZE","ERROR","handleLoadStart","videoProps","handleCanPlay","handleWaiting","handleCanPlayThrough","handlePlaying","handlePlay","handlePause","handleEnd","handleSeeking","handleSeeked","handleDurationChange","handleTimeUpdate","handleVolumeChange","handleProgressChange","handleRateChange","handleSuspend","handleAbort","handleEmptied","handleStalled","handleLoadedMetaData","handleLoadedData","handleResize","handleError","handleSeekingTime","time","handleEndSeeking","Fullscreen","request","elm","requestFullscreen","webkitRequestFullscreen","mozRequestFullScreen","msRequestFullscreen","exit","document","exitFullscreen","webkitExitFullscreen","mozCancelFullScreen","msExitFullscreen","addEventListener","handler","removeEventListener","fullscreenElement","webkitFullscreenElement","mozFullScreenElement","msFullscreenElement","fullscreenEnabled","webkitFullscreenEnabled","mozFullScreenEnabled","msFullscreenEnabled","OPERATE","FULLSCREEN_CHANGE","PLAYER_ACTIVATE","USER_ACTIVATE","handleFullscreenChange","isFullscreen","activate","activity","userActivate","play","operation","action","video","pause","togglePlay","seek","forward","seconds","replay","changeRate","rate","playbackRate","changeVolume","volume","mute","muted","toggleFullscreen","player","fullscreen","enabled","rootElement","initialState","currentSrc","duration","currentTime","seekingTime","buffered","waiting","seeking","paused","autoPaused","ended","readyState","networkState","videoWidth","videoHeight","hasStarted","userActivity","isActive","state","error","count","playerReducer","operationReducer","Manager","store","createStore","reducer","getActions","manager","dispatch","actions","playerActions","videoActions","bindActionCreator","actionCreator","bindAction","filter","reduce","boundActions","getState","subscribeToStateChange","listener","prevState","handleChange","prevStateCopy","subscribe","subscribeToOperationStateChange","subscribeToPlayerStateChange","propTypes","position","className","defaultProps","BigPlayButton","context","handleClick","componentDidMount","render","React","Component","displayName","LoadingSpinner","poster","PosterImage","backgroundImage","isNaN","Number","formatTime","guide","Math","floor","gm","gh","Infinity","isVideoChild","find","elements","isTypeEqual","component1","component2","type1","type2","mergeAndSortChildren","defaultChildren","_children","_parentProps","defaultOrder","children","Children","toArray","order","parentProps","disabled","concat","component","defaultComponent","cloneElement","sort","deprecatedWarning","oldMethodCall","newMethodCall","console","warn","throttle","callback","limit","wait","setTimeout","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","getProperties","renderChildren","handleEnded","handleProgress","handleKeypress","forceUpdate","properties","promise","catch","then","load","addTextTrack","canPlayType","cprops","preOnError","videoId","Bezel","timer","handleStateChange","hidden","clearTimeout","setState","style","display","findElPosition","el","box","getBoundingClientRect","parentNode","left","top","body","docEl","documentElement","clientLeft","scrollLeft","pageXOffset","clientTop","scrollTop","pageYOffset","round","getPointerPosition","event","boxW","offsetWidth","boxH","offsetHeight","boxY","boxX","evtPageY","pageY","evtPageX","pageX","changedTouches","y","max","min","x","focusNode","reactNode","domNode","findDOMNode","focus","hasClass","cls","toLowerCase","clickable","dblclickable","shortcuts","Shortcut","defaultShortcuts","keyCode","handle","shift","mergeShortcuts","handleKeyPress","handleDoubleClick","componentDidUpdate","prevProps","componentWillUnmount","getShortcutKey","ctrl","alt","shortcut","mergedShortcuts","gradeShortcut","score","ps","activeElement","which","ctrlKey","metaKey","shiftKey","altKey","preventDefault","canBeClicked","nodeName","onMouseDown","onMouseMove","stepForward","stepBack","sliderActive","sliderInactive","onMouseUp","onFocus","onBlur","onClick","getPercent","vertical","label","valuenow","valuetext","Slider","handleMouseDown","handleMouseMove","handleMouseUp","handleFocus","handleBlur","calculateDistance","getProgress","active","progress","stopPropagation","Dom","percentage","toFixed","child","PlayProgressBar","width","LoadProgressBar","bufferedEnd","end","percentify","percent","parts","start","part","MouseTimeDisplay","mouseTime","text","SeekBar","getNewTime","distance","slider","newTime","input","ProgressControl","handleMouseMoveThrottle","seekBar","PlayToggle","controlText","button","mode","ForwardReplayControl","ForwardControl","ReplayControl","FullscreenToggle","RemainingTimeDisplay","remainingTime","formattedTime","CurrentTimeDisplay","DurationDisplay","separator","TimeDivider","separatorText","tagName","ClickableComponent","Tag","Popup","inline","PopupButton","VolumeLevel","height","VolumeBar","handlePercentageChange","checkMuted","alwaysShowVolume","VolumeMenuButton","level","volumeLevel","Menu","item","index","activateIndex","onSelectItem","MenuItem","items","selectedIndex","MenuButton","commitSelection","activateMenuItem","renderMenu","handleUpArrow","handleDownArrow","handleEscape","handleReturn","handleTab","handleSelectItem","handleIndexChange","newIndex","menuButton","rates","PlaybackRateMenuButton","indexOf","autoHide","autoHideTime","disableDefaultControls","disableCompletely","ControlBar","getDefaultChildren","getFullChildren","getChildren","USER_AGENT","navigator","userAgent","IS_IPAD","test","IS_IPHONE","IS_IPOD","IS_IOS","fluid","aspectRatio","Player","controlsHideTimer","getStyle","startControlsTimer","handleFullScreenChange","handleKeyDown","originalChildren","_","propsWithoutChildren","setWidthOrHeight","styleVal","match","propsAspectRatio","propsHeight","propsWidth","ratioParts","ratioMultiplier","paddingTop","controlBarActiveTime","isValidElement","browser","contextTypes","PlaybackRate"],"mappings":"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"}
| ver. 1.4 |
Github
|
.
| PHP 8.1.33 | Генерация страницы: 0.07 |
proxy
|
phpinfo
|
Настройка