Файловый менеджер - Редактировать - /home/freeclou/app.optimyar.com/backend/node_modules/video-react/dist/video-react.full.js.map
Назад
{"version":3,"file":"video-react.full.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","../node_modules/symbol-observable/es/ponyfill.js","../node_modules/symbol-observable/es/index.js","../node_modules/redux/es/redux.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 default function symbolObservablePonyfill(root) {\n\tvar result;\n\tvar Symbol = root.Symbol;\n\n\tif (typeof Symbol === 'function') {\n\t\tif (Symbol.observable) {\n\t\t\tresult = Symbol.observable;\n\t\t} else {\n\t\t\tresult = Symbol('observable');\n\t\t\tSymbol.observable = result;\n\t\t}\n\t} else {\n\t\tresult = '@@observable';\n\t}\n\n\treturn result;\n};\n","/* global window */\nimport ponyfill from './ponyfill.js';\n\nvar root;\n\nif (typeof self !== 'undefined') {\n root = self;\n} else if (typeof window !== 'undefined') {\n root = window;\n} else if (typeof global !== 'undefined') {\n root = global;\n} else if (typeof module !== 'undefined') {\n root = module;\n} else {\n root = Function('return this')();\n}\n\nvar result = ponyfill(root);\nexport default result;\n","import $$observable from 'symbol-observable';\n\n/**\n * These are private action types reserved by Redux.\n * For any unknown actions, you must return the current state.\n * If the current state is undefined, you must return the initial state.\n * Do not reference these action types directly in your code.\n */\nvar randomString = function randomString() {\n return Math.random().toString(36).substring(7).split('').join('.');\n};\n\nvar ActionTypes = {\n INIT: \"@@redux/INIT\" + randomString(),\n REPLACE: \"@@redux/REPLACE\" + randomString(),\n PROBE_UNKNOWN_ACTION: function PROBE_UNKNOWN_ACTION() {\n return \"@@redux/PROBE_UNKNOWN_ACTION\" + randomString();\n }\n};\n\n/**\n * @param {any} obj The object to inspect.\n * @returns {boolean} True if the argument appears to be a plain object.\n */\nfunction isPlainObject(obj) {\n if (typeof obj !== 'object' || obj === null) return false;\n var proto = obj;\n\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n\n return Object.getPrototypeOf(obj) === proto;\n}\n\n/**\n * Creates a Redux store that holds the state tree.\n * The only way to change the data in the store is to call `dispatch()` on it.\n *\n * There should only be a single store in your app. To specify how different\n * parts of the state tree respond to actions, you may combine several reducers\n * into a single reducer function by using `combineReducers`.\n *\n * @param {Function} reducer A function that returns the next state tree, given\n * the current state tree and the action to handle.\n *\n * @param {any} [preloadedState] The initial state. You may optionally specify it\n * to hydrate the state from the server in universal apps, or to restore a\n * previously serialized user session.\n * If you use `combineReducers` to produce the root reducer function, this must be\n * an object with the same shape as `combineReducers` keys.\n *\n * @param {Function} [enhancer] The store enhancer. You may optionally specify it\n * to enhance the store with third-party capabilities such as middleware,\n * time travel, persistence, etc. The only store enhancer that ships with Redux\n * is `applyMiddleware()`.\n *\n * @returns {Store} A Redux store that lets you read the state, dispatch actions\n * and subscribe to changes.\n */\n\nfunction createStore(reducer, preloadedState, enhancer) {\n var _ref2;\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'function' || typeof enhancer === 'function' && typeof arguments[3] === 'function') {\n throw new Error('It looks like you are passing several store enhancers to ' + 'createStore(). This is not supported. Instead, compose them ' + 'together to a single function');\n }\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') {\n enhancer = preloadedState;\n preloadedState = undefined;\n }\n\n if (typeof enhancer !== 'undefined') {\n if (typeof enhancer !== 'function') {\n throw new Error('Expected the enhancer to be a function.');\n }\n\n return enhancer(createStore)(reducer, preloadedState);\n }\n\n if (typeof reducer !== 'function') {\n throw new Error('Expected the reducer to be a function.');\n }\n\n var currentReducer = reducer;\n var currentState = preloadedState;\n var currentListeners = [];\n var nextListeners = currentListeners;\n var isDispatching = false;\n\n function ensureCanMutateNextListeners() {\n if (nextListeners === currentListeners) {\n nextListeners = currentListeners.slice();\n }\n }\n /**\n * Reads the state tree managed by the store.\n *\n * @returns {any} The current state tree of your application.\n */\n\n\n function getState() {\n if (isDispatching) {\n throw new Error('You may not call store.getState() while the reducer is executing. ' + 'The reducer has already received the state as an argument. ' + 'Pass it down from the top reducer instead of reading it from the store.');\n }\n\n return currentState;\n }\n /**\n * Adds a change listener. It will be called any time an action is dispatched,\n * and some part of the state tree may potentially have changed. You may then\n * call `getState()` to read the current state tree inside the callback.\n *\n * You may call `dispatch()` from a change listener, with the following\n * caveats:\n *\n * 1. The subscriptions are snapshotted just before every `dispatch()` call.\n * If you subscribe or unsubscribe while the listeners are being invoked, this\n * will not have any effect on the `dispatch()` that is currently in progress.\n * However, the next `dispatch()` call, whether nested or not, will use a more\n * recent snapshot of the subscription list.\n *\n * 2. The listener should not expect to see all state changes, as the state\n * might have been updated multiple times during a nested `dispatch()` before\n * the listener is called. It is, however, guaranteed that all subscribers\n * registered before the `dispatch()` started will be called with the latest\n * state by the time it exits.\n *\n * @param {Function} listener A callback to be invoked on every dispatch.\n * @returns {Function} A function to remove this change listener.\n */\n\n\n function subscribe(listener) {\n if (typeof listener !== 'function') {\n throw new Error('Expected the listener to be a function.');\n }\n\n if (isDispatching) {\n throw new Error('You may not call store.subscribe() while the reducer is executing. ' + 'If you would like to be notified after the store has been updated, subscribe from a ' + 'component and invoke store.getState() in the callback to access the latest state. ' + 'See https://redux.js.org/api-reference/store#subscribe(listener) for more details.');\n }\n\n var isSubscribed = true;\n ensureCanMutateNextListeners();\n nextListeners.push(listener);\n return function unsubscribe() {\n if (!isSubscribed) {\n return;\n }\n\n if (isDispatching) {\n throw new Error('You may not unsubscribe from a store listener while the reducer is executing. ' + 'See https://redux.js.org/api-reference/store#subscribe(listener) for more details.');\n }\n\n isSubscribed = false;\n ensureCanMutateNextListeners();\n var index = nextListeners.indexOf(listener);\n nextListeners.splice(index, 1);\n };\n }\n /**\n * Dispatches an action. It is the only way to trigger a state change.\n *\n * The `reducer` function, used to create the store, will be called with the\n * current state tree and the given `action`. Its return value will\n * be considered the **next** state of the tree, and the change listeners\n * will be notified.\n *\n * The base implementation only supports plain object actions. If you want to\n * dispatch a Promise, an Observable, a thunk, or something else, you need to\n * wrap your store creating function into the corresponding middleware. For\n * example, see the documentation for the `redux-thunk` package. Even the\n * middleware will eventually dispatch plain object actions using this method.\n *\n * @param {Object} action A plain object representing “what changed”. It is\n * a good idea to keep actions serializable so you can record and replay user\n * sessions, or use the time travelling `redux-devtools`. An action must have\n * a `type` property which may not be `undefined`. It is a good idea to use\n * string constants for action types.\n *\n * @returns {Object} For convenience, the same action object you dispatched.\n *\n * Note that, if you use a custom middleware, it may wrap `dispatch()` to\n * return something else (for example, a Promise you can await).\n */\n\n\n function dispatch(action) {\n if (!isPlainObject(action)) {\n throw new Error('Actions must be plain objects. ' + 'Use custom middleware for async actions.');\n }\n\n if (typeof action.type === 'undefined') {\n throw new Error('Actions may not have an undefined \"type\" property. ' + 'Have you misspelled a constant?');\n }\n\n if (isDispatching) {\n throw new Error('Reducers may not dispatch actions.');\n }\n\n try {\n isDispatching = true;\n currentState = currentReducer(currentState, action);\n } finally {\n isDispatching = false;\n }\n\n var listeners = currentListeners = nextListeners;\n\n for (var i = 0; i < listeners.length; i++) {\n var listener = listeners[i];\n listener();\n }\n\n return action;\n }\n /**\n * Replaces the reducer currently used by the store to calculate the state.\n *\n * You might need this if your app implements code splitting and you want to\n * load some of the reducers dynamically. You might also need this if you\n * implement a hot reloading mechanism for Redux.\n *\n * @param {Function} nextReducer The reducer for the store to use instead.\n * @returns {void}\n */\n\n\n function replaceReducer(nextReducer) {\n if (typeof nextReducer !== 'function') {\n throw new Error('Expected the nextReducer to be a function.');\n }\n\n currentReducer = nextReducer;\n dispatch({\n type: ActionTypes.REPLACE\n });\n }\n /**\n * Interoperability point for observable/reactive libraries.\n * @returns {observable} A minimal observable of state changes.\n * For more information, see the observable proposal:\n * https://github.com/tc39/proposal-observable\n */\n\n\n function observable() {\n var _ref;\n\n var outerSubscribe = subscribe;\n return _ref = {\n /**\n * The minimal observable subscription method.\n * @param {Object} observer Any object that can be used as an observer.\n * The observer object should have a `next` method.\n * @returns {subscription} An object with an `unsubscribe` method that can\n * be used to unsubscribe the observable from the store, and prevent further\n * emission of values from the observable.\n */\n subscribe: function subscribe(observer) {\n if (typeof observer !== 'object' || observer === null) {\n throw new TypeError('Expected the observer to be an object.');\n }\n\n function observeState() {\n if (observer.next) {\n observer.next(getState());\n }\n }\n\n observeState();\n var unsubscribe = outerSubscribe(observeState);\n return {\n unsubscribe: unsubscribe\n };\n }\n }, _ref[$$observable] = function () {\n return this;\n }, _ref;\n } // When a store is created, an \"INIT\" action is dispatched so that every\n // reducer returns their initial state. This effectively populates\n // the initial state tree.\n\n\n dispatch({\n type: ActionTypes.INIT\n });\n return _ref2 = {\n dispatch: dispatch,\n subscribe: subscribe,\n getState: getState,\n replaceReducer: replaceReducer\n }, _ref2[$$observable] = observable, _ref2;\n}\n\n/**\n * Prints a warning in the console if it exists.\n *\n * @param {String} message The warning message.\n * @returns {void}\n */\nfunction warning(message) {\n /* eslint-disable no-console */\n if (typeof console !== 'undefined' && typeof console.error === 'function') {\n console.error(message);\n }\n /* eslint-enable no-console */\n\n\n try {\n // This error was thrown as a convenience so that if you enable\n // \"break on all exceptions\" in your console,\n // it would pause the execution at this line.\n throw new Error(message);\n } catch (e) {} // eslint-disable-line no-empty\n\n}\n\nfunction getUndefinedStateErrorMessage(key, action) {\n var actionType = action && action.type;\n var actionDescription = actionType && \"action \\\"\" + String(actionType) + \"\\\"\" || 'an action';\n return \"Given \" + actionDescription + \", reducer \\\"\" + key + \"\\\" returned undefined. \" + \"To ignore an action, you must explicitly return the previous state. \" + \"If you want this reducer to hold no value, you can return null instead of undefined.\";\n}\n\nfunction getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) {\n var reducerKeys = Object.keys(reducers);\n var argumentName = action && action.type === ActionTypes.INIT ? 'preloadedState argument passed to createStore' : 'previous state received by the reducer';\n\n if (reducerKeys.length === 0) {\n return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.';\n }\n\n if (!isPlainObject(inputState)) {\n return \"The \" + argumentName + \" has unexpected type of \\\"\" + {}.toString.call(inputState).match(/\\s([a-z|A-Z]+)/)[1] + \"\\\". Expected argument to be an object with the following \" + (\"keys: \\\"\" + reducerKeys.join('\", \"') + \"\\\"\");\n }\n\n var unexpectedKeys = Object.keys(inputState).filter(function (key) {\n return !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key];\n });\n unexpectedKeys.forEach(function (key) {\n unexpectedKeyCache[key] = true;\n });\n if (action && action.type === ActionTypes.REPLACE) return;\n\n if (unexpectedKeys.length > 0) {\n return \"Unexpected \" + (unexpectedKeys.length > 1 ? 'keys' : 'key') + \" \" + (\"\\\"\" + unexpectedKeys.join('\", \"') + \"\\\" found in \" + argumentName + \". \") + \"Expected to find one of the known reducer keys instead: \" + (\"\\\"\" + reducerKeys.join('\", \"') + \"\\\". Unexpected keys will be ignored.\");\n }\n}\n\nfunction assertReducerShape(reducers) {\n Object.keys(reducers).forEach(function (key) {\n var reducer = reducers[key];\n var initialState = reducer(undefined, {\n type: ActionTypes.INIT\n });\n\n if (typeof initialState === 'undefined') {\n throw new Error(\"Reducer \\\"\" + key + \"\\\" returned undefined during initialization. \" + \"If the state passed to the reducer is undefined, you must \" + \"explicitly return the initial state. The initial state may \" + \"not be undefined. If you don't want to set a value for this reducer, \" + \"you can use null instead of undefined.\");\n }\n\n if (typeof reducer(undefined, {\n type: ActionTypes.PROBE_UNKNOWN_ACTION()\n }) === 'undefined') {\n throw new Error(\"Reducer \\\"\" + key + \"\\\" returned undefined when probed with a random type. \" + (\"Don't try to handle \" + ActionTypes.INIT + \" or other actions in \\\"redux/*\\\" \") + \"namespace. They are considered private. Instead, you must return the \" + \"current state for any unknown actions, unless it is undefined, \" + \"in which case you must return the initial state, regardless of the \" + \"action type. The initial state may not be undefined, but can be null.\");\n }\n });\n}\n/**\n * Turns an object whose values are different reducer functions, into a single\n * reducer function. It will call every child reducer, and gather their results\n * into a single state object, whose keys correspond to the keys of the passed\n * reducer functions.\n *\n * @param {Object} reducers An object whose values correspond to different\n * reducer functions that need to be combined into one. One handy way to obtain\n * it is to use ES6 `import * as reducers` syntax. The reducers may never return\n * undefined for any action. Instead, they should return their initial state\n * if the state passed to them was undefined, and the current state for any\n * unrecognized action.\n *\n * @returns {Function} A reducer function that invokes every reducer inside the\n * passed object, and builds a state object with the same shape.\n */\n\n\nfunction combineReducers(reducers) {\n var reducerKeys = Object.keys(reducers);\n var finalReducers = {};\n\n for (var i = 0; i < reducerKeys.length; i++) {\n var key = reducerKeys[i];\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof reducers[key] === 'undefined') {\n warning(\"No reducer provided for key \\\"\" + key + \"\\\"\");\n }\n }\n\n if (typeof reducers[key] === 'function') {\n finalReducers[key] = reducers[key];\n }\n }\n\n var finalReducerKeys = Object.keys(finalReducers);\n var unexpectedKeyCache;\n\n if (process.env.NODE_ENV !== 'production') {\n unexpectedKeyCache = {};\n }\n\n var shapeAssertionError;\n\n try {\n assertReducerShape(finalReducers);\n } catch (e) {\n shapeAssertionError = e;\n }\n\n return function combination(state, action) {\n if (state === void 0) {\n state = {};\n }\n\n if (shapeAssertionError) {\n throw shapeAssertionError;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n var warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache);\n\n if (warningMessage) {\n warning(warningMessage);\n }\n }\n\n var hasChanged = false;\n var nextState = {};\n\n for (var _i = 0; _i < finalReducerKeys.length; _i++) {\n var _key = finalReducerKeys[_i];\n var reducer = finalReducers[_key];\n var previousStateForKey = state[_key];\n var nextStateForKey = reducer(previousStateForKey, action);\n\n if (typeof nextStateForKey === 'undefined') {\n var errorMessage = getUndefinedStateErrorMessage(_key, action);\n throw new Error(errorMessage);\n }\n\n nextState[_key] = nextStateForKey;\n hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n }\n\n return hasChanged ? nextState : state;\n };\n}\n\nfunction bindActionCreator(actionCreator, dispatch) {\n return function () {\n return dispatch(actionCreator.apply(this, arguments));\n };\n}\n/**\n * Turns an object whose values are action creators, into an object with the\n * same keys, but with every function wrapped into a `dispatch` call so they\n * may be invoked directly. This is just a convenience method, as you can call\n * `store.dispatch(MyActionCreators.doSomething())` yourself just fine.\n *\n * For convenience, you can also pass a single function as the first argument,\n * and get a function in return.\n *\n * @param {Function|Object} actionCreators An object whose values are action\n * creator functions. One handy way to obtain it is to use ES6 `import * as`\n * syntax. You may also pass a single function.\n *\n * @param {Function} dispatch The `dispatch` function available on your Redux\n * store.\n *\n * @returns {Function|Object} The object mimicking the original object, but with\n * every action creator wrapped into the `dispatch` call. If you passed a\n * function as `actionCreators`, the return value will also be a single\n * function.\n */\n\n\nfunction bindActionCreators(actionCreators, dispatch) {\n if (typeof actionCreators === 'function') {\n return bindActionCreator(actionCreators, dispatch);\n }\n\n if (typeof actionCreators !== 'object' || actionCreators === null) {\n throw new Error(\"bindActionCreators expected an object or a function, instead received \" + (actionCreators === null ? 'null' : typeof actionCreators) + \". \" + \"Did you write \\\"import ActionCreators from\\\" instead of \\\"import * as ActionCreators from\\\"?\");\n }\n\n var keys = Object.keys(actionCreators);\n var boundActionCreators = {};\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n var actionCreator = actionCreators[key];\n\n if (typeof actionCreator === 'function') {\n boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);\n }\n }\n\n return boundActionCreators;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}\n\n/**\n * Composes single-argument functions from right to left. The rightmost\n * function can take multiple arguments as it provides the signature for\n * the resulting composite function.\n *\n * @param {...Function} funcs The functions to compose.\n * @returns {Function} A function obtained by composing the argument functions\n * from right to left. For example, compose(f, g, h) is identical to doing\n * (...args) => f(g(h(...args))).\n */\nfunction compose() {\n for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) {\n funcs[_key] = arguments[_key];\n }\n\n if (funcs.length === 0) {\n return function (arg) {\n return arg;\n };\n }\n\n if (funcs.length === 1) {\n return funcs[0];\n }\n\n return funcs.reduce(function (a, b) {\n return function () {\n return a(b.apply(void 0, arguments));\n };\n });\n}\n\n/**\n * Creates a store enhancer that applies middleware to the dispatch method\n * of the Redux store. This is handy for a variety of tasks, such as expressing\n * asynchronous actions in a concise manner, or logging every action payload.\n *\n * See `redux-thunk` package as an example of the Redux middleware.\n *\n * Because middleware is potentially asynchronous, this should be the first\n * store enhancer in the composition chain.\n *\n * Note that each middleware will be given the `dispatch` and `getState` functions\n * as named arguments.\n *\n * @param {...Function} middlewares The middleware chain to be applied.\n * @returns {Function} A store enhancer applying the middleware.\n */\n\nfunction applyMiddleware() {\n for (var _len = arguments.length, middlewares = new Array(_len), _key = 0; _key < _len; _key++) {\n middlewares[_key] = arguments[_key];\n }\n\n return function (createStore) {\n return function () {\n var store = createStore.apply(void 0, arguments);\n\n var _dispatch = function dispatch() {\n throw new Error(\"Dispatching while constructing your middleware is not allowed. \" + \"Other middleware would not be applied to this dispatch.\");\n };\n\n var middlewareAPI = {\n getState: store.getState,\n dispatch: function dispatch() {\n return _dispatch.apply(void 0, arguments);\n }\n };\n var chain = middlewares.map(function (middleware) {\n return middleware(middlewareAPI);\n });\n _dispatch = compose.apply(void 0, chain)(store.dispatch);\n return _objectSpread({}, store, {\n dispatch: _dispatch\n });\n };\n };\n}\n\n/*\n * This is a dummy function to check if the function name has been altered by minification.\n * If the function has been minified and NODE_ENV !== 'production', warn the user.\n */\n\nfunction isCrushed() {}\n\nif (process.env.NODE_ENV !== 'production' && typeof isCrushed.name === 'string' && isCrushed.name !== 'isCrushed') {\n warning('You are currently using minified code outside of NODE_ENV === \"production\". ' + 'This means that you are running a slower development build of Redux. ' + 'You can use loose-envify (https://github.com/zertosh/loose-envify) for browserify ' + 'or setting mode to production in webpack (https://webpack.js.org/concepts/mode/) ' + 'to ensure you have the correct code for your production build.');\n}\n\nexport { createStore, combineReducers, bindActionCreators, applyMiddleware, compose, ActionTypes as __DO_NOT_USE__ActionTypes };\n","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","symbolObservablePonyfill","root","result","observable","self","global","ponyfill","randomString","Math","random","toString","substring","ActionTypes","INIT","REPLACE","PROBE_UNKNOWN_ACTION","isPlainObject","obj","proto","getPrototypeOf","createStore","reducer","preloadedState","enhancer","_ref2","currentReducer","currentState","currentListeners","nextListeners","isDispatching","ensureCanMutateNextListeners","slice","getState","subscribe","listener","isSubscribed","unsubscribe","index","indexOf","splice","dispatch","action","listeners","replaceReducer","nextReducer","_ref","outerSubscribe","observer","observeState","next","$$observable","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","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","getActions","manager","actions","playerActions","videoActions","bindActionCreator","actionCreator","bindAction","filter","reduce","boundActions","subscribeToStateChange","prevState","handleChange","prevStateCopy","subscribeToOperationStateChange","subscribeToPlayerStateChange","propTypes","position","className","defaultProps","BigPlayButton","context","handleClick","componentDidMount","render","React","Component","displayName","LoadingSpinner","poster","PosterImage","backgroundImage","isNaN","Number","formatTime","guide","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","activateIndex","onSelectItem","MenuItem","items","selectedIndex","MenuButton","commitSelection","activateMenuItem","renderMenu","handleUpArrow","handleDownArrow","handleEscape","handleReturn","handleTab","handleSelectItem","handleIndexChange","newIndex","menuButton","rates","PlaybackRateMenuButton","autoHide","autoHideTime","disableDefaultControls","disableCompletely","ControlBar","getDefaultChildren","getFullChildren","getChildren","USER_AGENT","navigator","userAgent","IS_IPAD","test","IS_IPHONE","IS_IPOD","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.03 |
proxy
|
phpinfo
|
Настройка