UNPKG

react-jplayer

Version:

Html5 audio and video player library for React

1,913 lines (1,494 loc) 116 kB
var ReactJPlayer = /******/ (function(modules) { // webpackBootstrap /******/ // The module cache /******/ var installedModules = {}; /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ /******/ // Check if module is in cache /******/ if(installedModules[moduleId]) { /******/ return installedModules[moduleId].exports; /******/ } /******/ // Create a new module (and put it into the cache) /******/ var module = installedModules[moduleId] = { /******/ i: moduleId, /******/ l: false, /******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); /******/ /******/ // Flag the module as loaded /******/ module.l = true; /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /******/ /******/ // expose the modules object (__webpack_modules__) /******/ __webpack_require__.m = modules; /******/ /******/ // expose the module cache /******/ __webpack_require__.c = installedModules; /******/ /******/ // define getter function for harmony exports /******/ __webpack_require__.d = function(exports, name, getter) { /******/ if(!__webpack_require__.o(exports, name)) { /******/ Object.defineProperty(exports, name, { /******/ configurable: false, /******/ enumerable: true, /******/ get: getter /******/ }); /******/ } /******/ }; /******/ /******/ // getDefaultExport function for compatibility with non-harmony modules /******/ __webpack_require__.n = function(module) { /******/ var getter = module && module.__esModule ? /******/ function getDefault() { return module['default']; } : /******/ function getModuleExports() { return module; }; /******/ __webpack_require__.d(getter, 'a', getter); /******/ return getter; /******/ }; /******/ /******/ // Object.prototype.hasOwnProperty.call /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; /******/ /******/ // __webpack_public_path__ /******/ __webpack_require__.p = ""; /******/ /******/ // Load entry module and return exports /******/ return __webpack_require__(__webpack_require__.s = 34); /******/ }) /************************************************************************/ /******/ ([ /* 0 */ /***/ (function(module, exports) { module.exports = ReactJPlayerUtils; /***/ }), /* 1 */ /***/ (function(module, exports) { module.exports = PropTypes; /***/ }), /* 2 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var actionNames = exports.actionNames = { SET_MEDIA: 'JPLAYER_SET_MEDIA', CLEAR_MEDIA: 'JPLAYER_CLEAR_MEDIA', PLAY: 'JPLAYER_PLAY', PAUSE: 'JPLAYER_PAUSE', PLAY_HEAD: 'JPLAYER_PLAY_HEAD', VOLUME: 'JPLAYER_VOLUME', MUTE: 'JPLAYER_MUTE', FOCUS: 'JPLAYER_FOCUS', SET_OPTION: 'JPLAYER_SET_JPLAYER_OPTION' }; var errors = exports.errors = { FORMAT_NO_SUPPORT: 'It is not possible to play any media format ' + 'provided on this browser using your current defaultOptions.', URL_NO_SUPPORT: 'The media URL could not be loaded.', URL_NOT_SET: 'Attempted to issue media playback commands while no media url is set.', INVALID_GLOBAL_METHOD: 'You passed an invalid jPlayer method to the global array' }; var hints = exports.hints = { FORMAT_NO_SUPPORT: 'The browser may not support these file types.', URL_NO_SUPPORT: 'Check the media URL is valid.', URL_NOT_SET: 'Pass the media through the defaultOptions or use the setMedia() ' + 'action that is passed into the component props.', INVALID_GLOBAL_METHOD: 'Remove the invalid method from the "global" option' }; var classes = exports.classes = { MEDIA: 'jp-media', JPLAYER: 'jp-jplayer', MUTE: 'jp-mute', DOWNLOAD: 'jp-download', VOLUME_BAR: 'jp-volume-bar', VOLUME_BAR_VALUE: 'jp-volume-bar-value', PLAYBACK_RATE_BAR: 'jp-playback-rate-bar', PLAYBACK_RATE_BAR_VALUE: 'jp-playback-rate-bar-value', BUFFER_BAR: 'jp-buffer-bar', PROGRESS: 'jp-progress', SEEK_BAR: 'jp-seek-bar', PLAY_BAR: 'jp-play-bar', SEEKING: 'jp-seeking-bg', GUI: 'jp-gui', NO_BROWSER_SUPPORT: 'jp-no-browser-support', PLAY: 'jp-play', PAUSE: 'jp-pause', STOP: 'jp-stop', REPEAT: 'jp-repeat', FULL_SCREEN: 'jp-full-screen', CURRENT_TIME: 'jp-current-time', DURATION: 'jp-duration', DETAILS: 'jp-details', TITLE: 'jp-title', SHUFFLE: 'jp-shuffle', PREVIOUS: 'jp-previous', NEXT: 'jp-next', POSTER: 'jp-poster', states: { AUDIO: 'jp-state-audio', VIDEO: 'jp-state-video', PLAYING: 'jp-state-playing', IDLE: 'jp-state-idle', SEEKING: 'jp-state-seeking', MUTED: 'jp-state-muted', VOLUME_LOW: 'jp-state-volume-low', VOLUME_HIGH: 'jp-state-volume-high', LOOPED: 'jp-state-looped', FULL_SCREEN: 'jp-state-full-screen', SHUFFLED: 'jp-state-shuffled', NO_BROWSER_SUPPORT: 'jp-state-no-browser-support', NO_VOLUME_SUPPORT: 'jp-state-no-volume-support' } }; var keyIgnoredElementNames = exports.keyIgnoredElementNames = ['INPUT', 'TEXTAREA', 'SELECT']; var formats = exports.formats = { mp3: { CODEC: 'audio/mpeg', MEDIA: 'audio' }, m4a: { // AAC / MP4 CODEC: 'audio/mp4; codecs="mp4a.40.2"', MEDIA: 'audio' }, m3u8a: { // AAC / MP4 / Apple HLS CODEC: 'application/vnd.apple.mpegurl; codecs="mp4a.40.2"', MEDIA: 'audio' }, m3ua: { // M3U CODEC: 'audio/mpegurl', MEDIA: 'audio' }, oga: { // OGG CODEC: 'audio/ogg; codecs="vorbis, opus"', MEDIA: 'audio' }, flac: { // FLAC CODEC: 'audio/x-flac', MEDIA: 'audio' }, wav: { // PCM CODEC: 'audio/wav; codecs="1"', MEDIA: 'audio' }, webma: { // WEBM CODEC: 'audio/webm; codecs="vorbis"', MEDIA: 'audio' }, fla: { // FLV / F4A CODEC: 'audio/x-flv', MEDIA: 'audio' }, rtmpa: { // RTMP AUDIO CODEC: 'audio/rtmp; codecs="rtmp"', MEDIA: 'audio' }, m4v: { // H.264 / MP4 CODEC: 'video/mp4; codecs="avc1.42E01E, mp4a.40.2"', MEDIA: 'video' }, m3u8v: { // H.264 / AAC / MP4 / Apple HLS CODEC: 'application/vnd.apple.mpegurl; codecs="avc1.42E01E, mp4a.40.2"', MEDIA: 'video' }, m3uv: { // M3U CODEC: 'audio/mpegurl', MEDIA: 'video' }, ogv: { // OGG CODEC: 'video/ogg; codecs="theora, vorbis"', MEDIA: 'video' }, webmv: { // WEBM CODEC: 'video/webm; codecs="vorbis, vp8"', MEDIA: 'video' }, flv: { // FLV / F4V CODEC: 'video/x-flv', MEDIA: 'video' }, rtmpv: { // RTMP VIDEO CODEC: 'video/rtmp; codecs="rtmp"', MEDIA: 'video' } }; var defaultStatus = exports.defaultStatus = { newTime: null, // Needed to set a newTime as currentTime is auto updated by the audio guiFadeOut: false, playHeadPercent: 0, mediaSettings: { video: false, nonSupported: false, formats: [] }, paused: true, seeking: false, src: null, currentTimeText: '0:00', durationText: null, seekPercent: 0, currentPercentRelative: 0, currentPercentAbsolute: 0, currentTime: 0, duration: 0, bufferedTimeRanges: [], focused: false }; var defaultOptions = exports.defaultOptions = { preload: 'metadata', minPlaybackRate: 0.5, maxPlaybackRate: 4, playbackRate: 1.0, defaultPlaybackRate: 1.0, bufferColour: '#ddd', volume: 0.8, barDrag: true, pauseOthersOnPlay: true, startGuiFadeOut: false, guiFadeHoldTime: 2000, media: { sources: {}, tracks: [], title: null, artist: null, poster: null, free: false }, keyBindings: {}, showRemainingDuration: false, muted: false, loop: false, autoplay: false, smoothPlayBar: false, fullScreen: false, verticalPlaybackRate: false, verticalVolume: false, keyEnabled: true, timeFormats: { showHour: false, showMin: true, showSec: true, padHour: false, padMin: true, padSec: true, sepHour: ':', sepMin: ':', sepSec: '' } }; /***/ }), /* 3 */ /***/ (function(module, exports) { module.exports = React; /***/ }), /* 4 */ /***/ (function(module, exports) { module.exports = Recompose; /***/ }), /* 5 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.setOption = exports.focus = exports.setMute = exports.setVolume = exports.setPlayHead = exports.pause = exports.play = exports.clearMedia = exports.setMedia = undefined; var _constants = __webpack_require__(2); var setMedia = exports.setMedia = function setMedia(id, media) { return { type: _constants.actionNames.SET_MEDIA, id: id, media: media }; }; var clearMedia = exports.clearMedia = function clearMedia(id) { return { type: _constants.actionNames.CLEAR_MEDIA, id: id }; }; var play = exports.play = function play(id, time) { return { type: _constants.actionNames.PLAY, id: id, time: time }; }; var pause = exports.pause = function pause(id, time) { return { type: _constants.actionNames.PAUSE, id: id, time: time }; }; var setPlayHead = exports.setPlayHead = function setPlayHead(id, percent) { return { type: _constants.actionNames.PLAY_HEAD, id: id, percent: percent }; }; var setVolume = exports.setVolume = function setVolume(id, volume) { return { type: _constants.actionNames.VOLUME, id: id, volume: volume }; }; var setMute = exports.setMute = function setMute(id, mute) { return { type: _constants.actionNames.MUTE, id: id, mute: mute }; }; var focus = exports.focus = function focus(id) { return { type: _constants.actionNames.FOCUS, id: id }; }; var setOption = exports.setOption = function setOption(id, key, value) { return { type: _constants.actionNames.SET_OPTION, id: id, key: key, value: value }; }; /***/ }), /* 6 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _reactJplayerUtils = __webpack_require__(0); var _recompose = __webpack_require__(4); var _bar = __webpack_require__(65); var _bar2 = _interopRequireDefault(_bar); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var mapStateToProps = function mapStateToProps(_ref, _ref2) { var jPlayers = _ref.jPlayers; var id = _ref2.id; return { barDrag: jPlayers[id].barDrag }; }; var handlers = function handlers() { var bar = void 0; var dragging = void 0; return { setBar: function setBar() { return function (ref) { bar = ref; }; }, onClick: function onClick(props) { return function (e) { return props.clickMoveBar(bar, e); }; }, onTouchStart: function onTouchStart() { return function () { dragging = true; }; }, onTouchMove: function onTouchMove(props) { return function (e) { if (props.barDrag && dragging) { props.touchMoveBar(bar, e); } }; }, onTouchEnd: function onTouchEnd() { return function () { dragging = false; }; }, onMouseMove: function onMouseMove(props) { return function (e) { if (props.barDrag && dragging) { props.clickMoveBar(bar, e); } }; }, onMouseDown: function onMouseDown() { return function () { dragging = true; }; }, onMouseUp: function onMouseUp() { return function () { dragging = false; }; } }; }; var lifecycle = { componentDidMount: function componentDidMount() { document.addEventListener('mouseup', this.props.onMouseUp); document.addEventListener('mousemove', this.props.onMouseMove); document.addEventListener('touchmove', this.props.onTouchMove, { passive: false }); document.addEventListener('touchend', this.props.onTouchEnd); }, componentWillUnmount: function componentWillUnmount() { document.removeEventListener('mouseup', this.props.onMouseUp); document.removeEventListener('mousemove', this.props.onMouseMove); document.removeEventListener('touchmove', this.props.onTouchMove); document.removeEventListener('touchend', this.props.onTouchEnd); } }; exports.default = (0, _recompose.compose)((0, _reactJplayerUtils.connectWithId)(mapStateToProps), (0, _recompose.withHandlers)(handlers), (0, _recompose.lifecycle)(lifecycle))(_bar2.default); /***/ }), /* 7 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.initialState = undefined; var _lodash = __webpack_require__(8); var _lodash2 = _interopRequireDefault(_lodash); var _constants = __webpack_require__(2); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var initialState = exports.initialState = {}; var options = function options(jPlayerOptions) { initialState[jPlayerOptions.id] = (0, _lodash2.default)({}, _constants.defaultStatus, _constants.defaultOptions, jPlayerOptions); }; exports.default = options; /***/ }), /* 8 */ /***/ (function(module, exports) { module.exports = _.merge; /***/ }), /* 9 */ /***/ (function(module, exports) { module.exports = ReactMotion; /***/ }), /* 10 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _react = __webpack_require__(3); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _constants = __webpack_require__(2); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var Gui = function Gui(_ref) { var opacity = _ref.opacity, children = _ref.children, onMouseMove = _ref.onMouseMove; return _react2.default.createElement( 'div', { className: _constants.classes.GUI, onMouseMove: onMouseMove, style: { opacity: opacity } }, children ); }; Gui.propTypes = { opacity: _propTypes2.default.number.isRequired, onMouseMove: _propTypes2.default.func.isRequired, children: _propTypes2.default.oneOfType([_propTypes2.default.arrayOf(_propTypes2.default.element), _propTypes2.default.element]).isRequired }; exports.default = Gui; /***/ }), /* 11 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _react = __webpack_require__(3); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _recompose = __webpack_require__(4); var _mediaContainer = __webpack_require__(12); var _mediaContainer2 = _interopRequireDefault(_mediaContainer); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /* eslint-disable jsx-a11y/media-has-caption */ var Video = function Video(props) { return _react2.default.createElement( _mediaContainer2.default, { onAbort: props.onAbort, onCanPlay: props.onCanPlay, onCanPlayThrough: props.onCanPlayThrough, onDurationChange: props.onDurationChange, onEmptied: props.onEmptied, onEncrypted: props.onEncrypted, onEnded: props.onEnded, onError: props.onError, onLoadedData: props.onLoadedData, onLoadedMetadata: props.onLoadedMetadata, onLoadStart: props.onLoadStart, onPause: props.onPause, onPlay: props.onPlay, onPlaying: props.onPlaying, onProgress: props.onProgress, onRateChange: props.onRateChange, onSeeked: props.onSeeked, onSeeking: props.onSeeking, onStalled: props.onStalled, onSuspend: props.onSuspend, onTimeUpdate: props.onTimeUpdate, onVolumeChange: props.onVolumeChange, onWaiting: props.onWaiting }, _react2.default.createElement('video', null) ); }; Video.defaultProps = { onAbort: Function.prototype, onCanPlay: Function.prototype, onCanPlayThrough: Function.prototype, onDurationChange: Function.prototype, onEmptied: Function.prototype, onEncrypted: Function.prototype, onEnded: Function.prototype, onError: Function.prototype, onLoadedData: Function.prototype, onLoadedMetadata: Function.prototype, onLoadStart: Function.prototype, onPause: Function.prototype, onPlay: Function.prototype, onPlaying: Function.prototype, onProgress: Function.prototype, onRateChange: Function.prototype, onSeeked: Function.prototype, onSeeking: Function.prototype, onStalled: Function.prototype, onSuspend: Function.prototype, onTimeUpdate: Function.prototype, onVolumeChange: Function.prototype, onWaiting: Function.prototype }; Video.propTypes = { onAbort: _propTypes2.default.func, onCanPlay: _propTypes2.default.func, onCanPlayThrough: _propTypes2.default.func, onDurationChange: _propTypes2.default.func, onEmptied: _propTypes2.default.func, onEncrypted: _propTypes2.default.func, onEnded: _propTypes2.default.func, onError: _propTypes2.default.func, onLoadedData: _propTypes2.default.func, onLoadedMetadata: _propTypes2.default.func, onLoadStart: _propTypes2.default.func, onPause: _propTypes2.default.func, onPlay: _propTypes2.default.func, onPlaying: _propTypes2.default.func, onProgress: _propTypes2.default.func, onRateChange: _propTypes2.default.func, onSeeked: _propTypes2.default.func, onSeeking: _propTypes2.default.func, onStalled: _propTypes2.default.func, onSuspend: _propTypes2.default.func, onTimeUpdate: _propTypes2.default.func, onVolumeChange: _propTypes2.default.func, onWaiting: _propTypes2.default.func }; exports.default = (0, _recompose.compose)((0, _recompose.branch)(function (props) { return props.require; }, (0, _recompose.renderComponent)(Video)))((0, _recompose.renderNothing)(null)); /***/ }), /* 12 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _reactJplayerUtils = __webpack_require__(0); var _recompose = __webpack_require__(4); var _media = __webpack_require__(41); var _media2 = _interopRequireDefault(_media); var _actions = __webpack_require__(5); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var mapStateToProps = function mapStateToProps(_ref, _ref2) { var jPlayers = _ref.jPlayers; var id = _ref2.id; return { loop: jPlayers[id].loop, src: jPlayers[id].src, playHeadPercent: jPlayers[id].playHeadPercent, paused: jPlayers[id].paused, defaultPlaybackRate: jPlayers[id].defaultPlaybackRate, playbackRate: jPlayers[id].playbackRate, preload: jPlayers[id].preload, volume: jPlayers[id].volume, muted: jPlayers[id].muted, autoplay: jPlayers[id].autoplay, newTime: jPlayers[id].newTime, tracks: jPlayers[id].media.tracks }; }; var handlers = function handlers() { var currentMedia = void 0; var getSeekableEnd = function getSeekableEnd() { if (currentMedia.seekable.length > 0) { return currentMedia.seekable.end(currentMedia.seekable.length - 1); } return NaN; }; var getCurrentPercentRelative = function getCurrentPercentRelative() { return (0, _reactJplayerUtils.toPercentage)(currentMedia.currentTime, getSeekableEnd()); }; var getSeekPercent = function getSeekPercent() { return (0, _reactJplayerUtils.toPercentage)(getSeekableEnd(), currentMedia.duration); }; return { setCurrentMedia: function setCurrentMedia() { return function (ref) { currentMedia = ref; }; }, updateMediaStatus: function updateMediaStatus(props) { return function () { var currentPercentAbsolute = (0, _reactJplayerUtils.toPercentage)(currentMedia.currentTime, currentMedia.duration); // Is infinite when live streaming if (isFinite(currentMedia.duration)) { props.setOption(props.id, 'duration', currentMedia.duration); } props.setOption(props.id, 'currentPercentRelative', getCurrentPercentRelative()); props.setOption(props.id, 'seekPercent', getSeekPercent()); props.setOption(props.id, 'currentPercentAbsolute', currentPercentAbsolute); props.setOption(props.id, 'currentTime', currentMedia.currentTime); props.setOption(props.id, 'playbackRate', currentMedia.playbackRate); }; }, updateMediaSrc: function updateMediaSrc(props) { return function () { if (props.src !== null) { currentMedia.src = props.src; } }; }, updateMediaTime: function updateMediaTime(props) { return function () { currentMedia.currentTime = props.newTime; props.setOption(props.id, 'newTime', null); }; }, updateMediaTimeAfterSeeking: function updateMediaTimeAfterSeeking(props) { return function () { var seekableEnd = getSeekableEnd(); // TODO: Investigate why some .mp3 urls don't fire media events enough (http://www.davidgagne.net/m/song.mp3). // Hasn't fully loaded the song???? if (isFinite(seekableEnd)) { currentMedia.currentTime = (0, _reactJplayerUtils.toRelativePercentage)(props.playHeadPercent, seekableEnd); /* Media events don't fire fast enough to give a smooth animation when dragging so we update it here as well, same problem as above? */ props.setOption(props.id, 'currentPercentRelative', getCurrentPercentRelative()); } }; }, updateMediaPlayState: function updateMediaPlayState(props) { return function () { if (props.paused) { currentMedia.pause(); } else { currentMedia.play(); } }; }, updateOtherMediaValues: function updateOtherMediaValues(props) { return function () { currentMedia.defaultPlaybackRate = props.defaultPlaybackRate; currentMedia.playbackRate = props.playbackRate; currentMedia.preload = props.preload; currentMedia.volume = props.volume; currentMedia.muted = props.muted; currentMedia.autoplay = props.autoplay; currentMedia.loop = props.loop; }; } }; }; var lifecycle = { componentDidMount: function componentDidMount() { if (this.props.src !== null) { this.props.updateMediaSrc(); } this.props.updateOtherMediaValues(); }, componentDidUpdate: function componentDidUpdate(prevProps) { if (prevProps.src !== this.props.src) { this.props.updateMediaSrc(); } if (this.props.newTime !== null) { this.props.updateMediaTime(); } if (prevProps.playHeadPercent !== this.props.playHeadPercent) { this.props.updateMediaTimeAfterSeeking(); } this.props.updateMediaPlayState(); this.props.updateOtherMediaValues(); } }; exports.default = (0, _recompose.compose)((0, _reactJplayerUtils.connectWithId)(mapStateToProps, { setOption: _actions.setOption }), (0, _recompose.withHandlers)(handlers), (0, _recompose.lifecycle)(lifecycle))(_media2.default); /***/ }), /* 13 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _react = __webpack_require__(3); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _recompose = __webpack_require__(4); var _mediaContainer = __webpack_require__(12); var _mediaContainer2 = _interopRequireDefault(_mediaContainer); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /* eslint-disable jsx-a11y/media-has-caption */ var Audio = function Audio(props) { return _react2.default.createElement( _mediaContainer2.default, { onAbort: props.onAbort, onCanPlay: props.onCanPlay, onCanPlayThrough: props.onCanPlayThrough, onDurationChange: props.onDurationChange, onEmptied: props.onEmptied, onEncrypted: props.onEncrypted, onEnded: props.onEnded, onError: props.onError, onLoadedData: props.onLoadedData, onLoadedMetadata: props.onLoadedMetadata, onLoadStart: props.onLoadStart, onPause: props.onPause, onPlay: props.onPlay, onPlaying: props.onPlaying, onProgress: props.onProgress, onRateChange: props.onRateChange, onSeeked: props.onSeeked, onSeeking: props.onSeeking, onStalled: props.onStalled, onSuspend: props.onSuspend, onTimeUpdate: props.onTimeUpdate, onVolumeChange: props.onVolumeChange, onWaiting: props.onWaiting }, _react2.default.createElement('audio', null) ); }; Audio.defaultProps = { onAbort: Function.prototype, onCanPlay: Function.prototype, onCanPlayThrough: Function.prototype, onDurationChange: Function.prototype, onEmptied: Function.prototype, onEncrypted: Function.prototype, onEnded: Function.prototype, onError: Function.prototype, onLoadedData: Function.prototype, onLoadedMetadata: Function.prototype, onLoadStart: Function.prototype, onPause: Function.prototype, onPlay: Function.prototype, onPlaying: Function.prototype, onProgress: Function.prototype, onRateChange: Function.prototype, onSeeked: Function.prototype, onSeeking: Function.prototype, onStalled: Function.prototype, onSuspend: Function.prototype, onTimeUpdate: Function.prototype, onVolumeChange: Function.prototype, onWaiting: Function.prototype }; Audio.propTypes = { onAbort: _propTypes2.default.func, onCanPlay: _propTypes2.default.func, onCanPlayThrough: _propTypes2.default.func, onDurationChange: _propTypes2.default.func, onEmptied: _propTypes2.default.func, onEncrypted: _propTypes2.default.func, onEnded: _propTypes2.default.func, onError: _propTypes2.default.func, onLoadedData: _propTypes2.default.func, onLoadedMetadata: _propTypes2.default.func, onLoadStart: _propTypes2.default.func, onPause: _propTypes2.default.func, onPlay: _propTypes2.default.func, onPlaying: _propTypes2.default.func, onProgress: _propTypes2.default.func, onRateChange: _propTypes2.default.func, onSeeked: _propTypes2.default.func, onSeeking: _propTypes2.default.func, onStalled: _propTypes2.default.func, onSuspend: _propTypes2.default.func, onTimeUpdate: _propTypes2.default.func, onVolumeChange: _propTypes2.default.func, onWaiting: _propTypes2.default.func }; exports.default = (0, _recompose.compose)((0, _recompose.branch)(function (props) { return props.require; }, (0, _recompose.renderComponent)(Audio)))((0, _recompose.renderNothing)(null)); /***/ }), /* 14 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _react = __webpack_require__(3); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _keyControlContainer = __webpack_require__(50); var _keyControlContainer2 = _interopRequireDefault(_keyControlContainer); var _screenFullContainer = __webpack_require__(51); var _screenFullContainer2 = _interopRequireDefault(_screenFullContainer); var _errorLoggerContainer = __webpack_require__(53); var _errorLoggerContainer2 = _interopRequireDefault(_errorLoggerContainer); var _timeDisplayContainer = __webpack_require__(54); var _timeDisplayContainer2 = _interopRequireDefault(_timeDisplayContainer); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /* eslint-disable react/forbid-prop-types */ var JPlayer = function JPlayer(props) { var className = props.className, keyBindings = props.keyBindings, children = props.children, onMouseMoveCapture = props.onMouseMoveCapture, id = props.id; return _react2.default.createElement( 'div', { id: id, className: className, draggable: false, onMouseMoveCapture: onMouseMoveCapture }, _react2.default.createElement(_keyControlContainer2.default, { keyBindings: keyBindings }), _react2.default.createElement(_timeDisplayContainer2.default, null), _react2.default.createElement(_screenFullContainer2.default, null), _react2.default.createElement(_errorLoggerContainer2.default, null), children ); }; JPlayer.defaultProps = { keyBindings: null }; JPlayer.propTypes = { keyBindings: _propTypes2.default.object, onMouseMoveCapture: _propTypes2.default.func.isRequired, className: _propTypes2.default.string.isRequired, id: _propTypes2.default.string.isRequired, children: _propTypes2.default.oneOfType([_propTypes2.default.arrayOf(_propTypes2.default.element), _propTypes2.default.element]).isRequired }; exports.default = JPlayer; /***/ }), /* 15 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _react = __webpack_require__(3); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _constants = __webpack_require__(2); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var PlayBar = function PlayBar(props) { var width = props.smoothPlayBar ? props.smoothWidth + '%' : props.currentPercentRelative + '%'; return _react2.default.createElement('div', { className: _constants.classes.PLAY_BAR, style: { width: width } }); }; PlayBar.propTypes = { smoothPlayBar: _propTypes2.default.bool.isRequired, smoothWidth: _propTypes2.default.number.isRequired, currentPercentRelative: _propTypes2.default.number.isRequired }; exports.default = PlayBar; /***/ }), /* 16 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _react = __webpack_require__(3); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _constants = __webpack_require__(2); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var BufferBar = function BufferBar(_ref) { var setCanvas = _ref.setCanvas; return _react2.default.createElement('canvas', { ref: setCanvas, className: _constants.classes.BUFFER_BAR }); }; BufferBar.propTypes = { setCanvas: _propTypes2.default.func.isRequired }; exports.default = BufferBar; /***/ }), /* 17 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _react = __webpack_require__(3); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _recompose = __webpack_require__(4); var _constants = __webpack_require__(2); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var Poster = function Poster(_ref) { var src = _ref.src; return _react2.default.createElement('img', { className: _constants.classes.POSTER, alt: '', src: src }); }; Poster.defaultProps = { src: null }; Poster.propTypes = { src: _propTypes2.default.string }; exports.default = (0, _recompose.compose)((0, _recompose.branch)(function (props) { return props.src; }, (0, _recompose.renderComponent)(Poster)))((0, _recompose.renderNothing)(null)); /***/ }), /* 18 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _react = __webpack_require__(3); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _recompose = __webpack_require__(4); var _constants = __webpack_require__(2); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var Title = function Title(_ref) { var title = _ref.title; return _react2.default.createElement( 'div', { className: _constants.classes.TITLE }, title ); }; Title.propTypes = { title: _propTypes2.default.string.isRequired }; exports.default = (0, _recompose.compose)((0, _recompose.branch)(function (props) { return props.title; }, (0, _recompose.renderComponent)(Title)))((0, _recompose.renderNothing)(null)); /***/ }), /* 19 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _react = __webpack_require__(3); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _constants = __webpack_require__(2); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var FullScreen = function FullScreen(_ref) { var setFullScreen = _ref.setFullScreen, id = _ref.id, fullScreen = _ref.fullScreen, children = _ref.children; return _react2.default.createElement( 'button', { className: _constants.classes.FULL_SCREEN, onClick: function onClick() { return setFullScreen(id, !fullScreen); } }, children ); }; FullScreen.propTypes = { children: _propTypes2.default.node.isRequired, setFullScreen: _propTypes2.default.func.isRequired, id: _propTypes2.default.string.isRequired, fullScreen: _propTypes2.default.bool.isRequired }; exports.default = FullScreen; /***/ }), /* 20 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _react = __webpack_require__(3); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _constants = __webpack_require__(2); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var Mute = function Mute(_ref) { var setMute = _ref.setMute, id = _ref.id, muted = _ref.muted, children = _ref.children; return _react2.default.createElement( 'button', { className: _constants.classes.MUTE, onClick: function onClick() { return setMute(id, !muted); } }, children ); }; Mute.propTypes = { id: _propTypes2.default.string.isRequired, children: _propTypes2.default.node.isRequired, setMute: _propTypes2.default.func.isRequired, muted: _propTypes2.default.bool.isRequired }; exports.default = Mute; /***/ }), /* 21 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _react = __webpack_require__(3); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _constants = __webpack_require__(2); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var Play = function Play(_ref) { var play = _ref.play, id = _ref.id, paused = _ref.paused, children = _ref.children; return _react2.default.createElement( 'button', { className: _constants.classes.PLAY, onClick: function onClick() { return play(id, paused); } }, children ); }; Play.propTypes = { children: _propTypes2.default.node.isRequired, play: _propTypes2.default.func.isRequired, id: _propTypes2.default.string.isRequired, paused: _propTypes2.default.bool.isRequired }; exports.default = Play; /***/ }), /* 22 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _react = __webpack_require__(3); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _constants = __webpack_require__(2); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var Repeat = function Repeat(_ref) { var loop = _ref.loop, children = _ref.children; return _react2.default.createElement( 'button', { className: _constants.classes.REPEAT, onClick: loop }, children ); }; Repeat.propTypes = { children: _propTypes2.default.node.isRequired, loop: _propTypes2.default.func.isRequired }; exports.default = Repeat; /***/ }), /* 23 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _react = __webpack_require__(3); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _barContainer = __webpack_require__(6); var _barContainer2 = _interopRequireDefault(_barContainer); var _constants = __webpack_require__(2); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var SeekBar = function SeekBar(props) { return _react2.default.createElement( _barContainer2.default, { clickMoveBar: props.clickMoveBar, touchMoveBar: props.touchMoveBar }, _react2.default.createElement( 'div', { className: _constants.classes.SEEK_BAR, style: { width: props.seekPercent + '%' } }, props.children ) ); }; SeekBar.propTypes = { seekPercent: _propTypes2.default.number.isRequired, clickMoveBar: _propTypes2.default.func.isRequired, touchMoveBar: _propTypes2.default.func.isRequired, children: _propTypes2.default.oneOfType([_propTypes2.default.arrayOf(_propTypes2.default.element), _propTypes2.default.element]).isRequired }; exports.default = SeekBar; /***/ }), /* 24 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _react = __webpack_require__(3); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _barContainer = __webpack_require__(6); var _barContainer2 = _interopRequireDefault(_barContainer); var _playbackRateBarValueContainer = __webpack_require__(25); var _playbackRateBarValueContainer2 = _interopRequireDefault(_playbackRateBarValueContainer); var _constants = __webpack_require__(2); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var PlaybackRateBar = function PlaybackRateBar(props) { return _react2.default.createElement( _barContainer2.default, { clickMoveBar: props.clickMoveBar, touchMoveBar: props.touchMoveBar }, _react2.default.createElement( 'div', { className: _constants.classes.PLAYBACK_RATE_BAR }, props.children ) ); }; PlaybackRateBar.defaultProps = { children: _react2.default.createElement(_playbackRateBarValueContainer2.default, null) }; PlaybackRateBar.propTypes = { clickMoveBar: _propTypes2.default.func.isRequired, touchMoveBar: _propTypes2.default.func.isRequired, children: _propTypes2.default.node }; exports.default = PlaybackRateBar; /***/ }), /* 25 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _reactJplayerUtils = __webpack_require__(0); var _playbackRateBarValue = __webpack_require__(26); var _playbackRateBarValue2 = _interopRequireDefault(_playbackRateBarValue); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var mapStateToProps = function mapStateToProps(_ref, _ref2) { var jPlayers = _ref.jPlayers; var id = _ref2.id; return { verticalPlaybackRate: jPlayers[id].verticalPlaybackRate, minPlaybackRate: jPlayers[id].minPlaybackRate, maxPlaybackRate: jPlayers[id].maxPlaybackRate, playbackRate: jPlayers[id].playbackRate }; }; exports.default = (0, _reactJplayerUtils.connectWithId)(mapStateToProps)(_playbackRateBarValue2.default); /***/ }), /* 26 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _react = __webpack_require__(3); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _constants = __webpack_require__(2); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var PlaybackRateBarValue = function PlaybackRateBarValue(props) { var ratio = (props.playbackRate - props.minPlaybackRate) / (props.maxPlaybackRate - props.minPlaybackRate); var playbackRateBarPercentage = ratio * 100 + '%'; var style = { width: !props.verticalPlaybackRate ? playbackRateBarPercentage : null, height: props.verticalPlaybackRate ? playbackRateBarPercentage : null }; return _react2.default.createElement('div', { className: _constants.classes.PLAYBACK_RATE_BAR_VALUE, style: style }); }; PlaybackRateBarValue.propTypes = { verticalPlaybackRate: _propTypes2.default.bool.isRequired, minPlaybackRate: _propTypes2.default.number.isRequired, maxPlaybackRate: _propTypes2.default.number.isRequired, playbackRate: _propTypes2.default.number.isRequired }; exports.default = PlaybackRateBarValue; /***/ }), /* 27 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _react = __webpack_require__(3); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _barContainer = __webpack_require__(6); var _barContainer2 = _interopRequireDefault(_barContainer); var _volumeBarValueContainer = __webpack_require__(28); var _volumeBarValueContainer2 = _interopRequireDefault(_volumeBarValueContainer); var _constants = __webpack_require__(2); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var VolumeBar = function VolumeBar(props) { return _react2.default.createElement( _barContainer2.default, { clickMoveBar: props.clickMoveBar, touchMoveBar: props.touchMoveBar }, _react2.default.createElement( 'div', { className: _constants.classes.VOLUME_BAR }, props.children ) ); }; VolumeBar.defaultProps = { children: _react2.default.createElement(_volumeBarValueContainer2.default, null) }; VolumeBar.propTypes = { clickMoveBar: _propTypes2.default.func.isRequired, touchMoveBar: _propTypes2.default.func.isRequired, children: _propTypes2.default.node }; exports.default = VolumeBar; /***/ }), /* 28 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _reactJplayerUtils = __webpack_require__(0); var _volumeBarValue = __webpack_require__(29); var _volumeBarValue2 = _interopRequireDefault(_volumeBarValue); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var mapStateToProps = function mapStateToProps(_ref, _ref2) { var jPlayers = _ref.jPlayers; var id = _ref2.id; return { verticalVolume: jPlayers[id].verticalVolume, muted: jPlayers[id].muted, volume: jPlayers[id].volume }; }; exports.default = (0, _reactJplayerUtils.connectWithId)(mapStateToProps)(_volumeBarValue2.default); /***/ }), /* 29 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _react = __webpack_require__(3); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _constants = __webpack_require__(2); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var VolumeBarValue = function VolumeBarValue(_ref) { var muted = _ref.muted, volume = _ref.volume, verticalVolume = _ref.verticalVolume; var volumeBarValuePercentage = (muted ? 0 : volume * 100) + '%'; var style = { width: !verticalVolume ? volumeBarValuePercentage : null, height: verticalVolume ? volumeBarValuePercentage : null }; return _react2.default.createElement('div', { className: _constants.classes.VOLUME_BAR_VALUE, style: style }); }; VolumeBarValue.propTypes = { muted: _propTypes2.default.bool.isRequired, volume: _propTypes2.default.number.isRequired, verticalVolume: _propTypes2.default.bool.isRequired }; exports.default = VolumeBarValue; /***/ }), /* 30 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _react = __webpack_require__(3); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _recompose = __webpack_require__(4); var _constants = __webpack_require__(2); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var Download = function Download(_ref) { var url = _ref.url, children = _ref.children; return _react2.default.createElement( 'a', { className: _constants.classes.DOWNLOAD, href: url, download: true, target: '_blank', rel: 'noopener noreferrer' }, children ); }; Download.defaultProps = { url: null }; Download.propTypes = { children: _propTypes2.default.node.isRequired, url: _propTypes2.default.string }; exports.default = (0, _recompose.compose)((0, _recompose.branch)(function (props) { return props.free; }, (0, _recompose.renderComponent)(Download)))((0, _recompose.renderNothing)(null)); /***/ }), /* 31 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _react = __webpack_require__(3); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _recompose = __webpack_require__(4); var _constants = __webpack_require__(2); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var Duration = function Duration(_ref) { var durationText = _ref.durationText; return _react2.default.createElement( 'div', { className: _constants.classes.DURATION }, durationText ); }; Duration.propTypes = { durationText: _propTypes2.default.string.isRequired }; exports.default = (0, _recompose.compose)((0, _recompose.branch)(function (props) { return props.durationText; }, (0, _recompose.renderComponent)(Duration)))((0, _recompose.renderNothing)(null)); /***/ }), /* 32 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _react = __webpack_require__(3); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _constants = __webpack_require__(2); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var CurrentTime = function CurrentTime(_ref) { var currentTimeText = _ref.currentTimeText; return _react2.default.createElement( 'div', { className: _constants.classes.CURRENT_TIME }, currentTimeText ); }; CurrentTime.propTypes = { currentTimeText: _propTypes2.default.string.isRequired }; exports.default = CurrentTime; /***/ }), /* 33 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _react = __webpack_require__(3); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _recompose = __webpack_require__(4); var _constants = __webpack_require__(2); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var BrowserUnsupported = function BrowserUnsupported(_ref) { var children = _ref.children; return _react2.default.createElement( 'div', { className: _constants.classes.NO_BROWSER_SUPPORT }, children ); }; var defaultChildren = _react2.default.createElement( 'div', null, _react2.default.createElement( 'h4', null, 'Browser Unsupported' ), 'Your browser does not support this media file. To play the media you will need to update your browser to a more recent version.' ); BrowserUnsupported.defaultProps = { children: defaultChildren }; BrowserUnsupported.propTypes = { children: _propTypes2.default.node }; exports.default = (0, _recompose.compose)((0, _recompose.branch)(function (props) { return props.nonSupported; }, (0, _recompose.renderComponent)(BrowserUnsupported)))((0, _recompose.renderNothing)(null)); /***/ }), /* 34 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.BrowserUnsupportedComponent = exports.CurrentTimeComponent = exports.DurationComponent = exports.DownloadComponent = exports.VolumeBa