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