react-player
Advanced tools
Comparing version 1.0.0-beta.0 to 1.0.0-beta.1
626
CHANGELOG.md
@@ -1,565 +0,499 @@ | ||
# Change Log | ||
All notable changes to this project will be documented in this file. This project adheres to [Semantic Versioning](http://semver.org/). | ||
### Changelog | ||
All notable changes to this project will be documented in this file. | ||
Generated by [auto-changelog](https://github.com/CookPete/auto-changelog) | ||
Generated by [auto-changelog](https://github.com/CookPete/auto-changelog). | ||
#### [v1.0.0-beta.1](https://github.com/CookPete/react-player/compare/v1.0.0-beta.0...v1.0.0-beta.1) | ||
> 28 October 2017 | ||
- Use latest auto-changelog [`d3401dc`](https://github.com/CookPete/react-player/commit/d3401dcb4d9b613bfb6c5413f808243061c9ee25) | ||
- Bump packages [`c381cc2`](https://github.com/CookPete/react-player/commit/c381cc2f17fffc9ecd6c6ac664e419d2f67453ab) | ||
- Prevent errors when unmounting before SDK loads [`979e639`](https://github.com/CookPete/react-player/commit/979e639b8f8faca50509c692d1688e7eb39fef50) | ||
#### [v1.0.0-beta.0](https://github.com/CookPete/react-player/compare/v0.25.3...v1.0.0-beta.0) | ||
> 26 October 2017 | ||
- Refactor player rendering [`91d1542`](https://github.com/CookPete/react-player/commit/91d15424065575d759885e9b0f8969c8b1f4a7b4) | ||
- Update tests [`9b4d1c4`](https://github.com/CookPete/react-player/commit/9b4d1c4da466010e0d9f8a99f725b4e0c96db615) | ||
* Refactor player rendering [`91d1542`](https://github.com/CookPete/react-player/commit/91d15424065575d759885e9b0f8969c8b1f4a7b4) | ||
* Update tests [`9b4d1c4`](https://github.com/CookPete/react-player/commit/9b4d1c4da466010e0d9f8a99f725b4e0c96db615) | ||
#### [v0.25.3](https://github.com/CookPete/react-player/compare/v0.25.2...v0.25.3) | ||
> 26 October 2017 | ||
- Loop when player is running [`#257`](https://github.com/CookPete/react-player/pulls/257) | ||
- properly destroy HLS.JS and / or DASH.JS instances [`#254`](https://github.com/CookPete/react-player/pulls/254) | ||
- Fix preloading [`6dd81ba`](https://github.com/CookPete/react-player/commit/6dd81ba4f8e9335e1bd2d15b47cd8d6403b35a3b) | ||
- Update readme [`d5ba064`](https://github.com/CookPete/react-player/commit/d5ba064a42f3b0abfa4c0d78324305ef20120f54) | ||
* Loop when player is running [`#257`](https://github.com/CookPete/react-player/pull/257) | ||
* properly destroy HLS.JS and / or DASH.JS instances [`#254`](https://github.com/CookPete/react-player/pull/254) | ||
* Fix preloading [`6dd81ba`](https://github.com/CookPete/react-player/commit/6dd81ba4f8e9335e1bd2d15b47cd8d6403b35a3b) | ||
#### [v0.25.2](https://github.com/CookPete/react-player/compare/v0.25.1...v0.25.2) | ||
> 17 October 2017 | ||
- tweak Vimeo duration logic [`#251`](https://github.com/CookPete/react-player/pulls/251) | ||
- Bump packages [`bf40e5f`](https://github.com/CookPete/react-player/commit/bf40e5fce5653df79f245588440f7b2f20f9a6cb) | ||
- Fix dash autoplay logic [`4e3545e`](https://github.com/CookPete/react-player/commit/4e3545ef8f0e1b46b4a1dcab0c4881c4e507b7f8) | ||
* tweak Vimeo duration logic [`#251`](https://github.com/CookPete/react-player/pull/251) | ||
* Bump packages [`bf40e5f`](https://github.com/CookPete/react-player/commit/bf40e5fce5653df79f245588440f7b2f20f9a6cb) | ||
* Fix dash autoplay logic [`4e3545e`](https://github.com/CookPete/react-player/commit/4e3545ef8f0e1b46b4a1dcab0c4881c4e507b7f8) | ||
#### [v0.25.1](https://github.com/CookPete/react-player/compare/v0.25.0...v0.25.1) | ||
> 17 October 2017 | ||
- Update typings for onProgress callback [`#246`](https://github.com/CookPete/react-player/pulls/246) | ||
- Fix parameter name for Vimeo player configuration [`#243`](https://github.com/CookPete/react-player/pulls/243) | ||
- Add passthrough prop support to typings [`#247`](https://github.com/CookPete/react-player/issues/247) | ||
- Fix Vimeo duration logic [`#250`](https://github.com/CookPete/react-player/issues/250) | ||
- fix parameter name for Vimeo player configuration [`f810221`](https://github.com/CookPete/react-player/commit/f8102218dd901e0e49a0d8301f5f38d73b92af92) | ||
* Update typings for onProgress callback [`#246`](https://github.com/CookPete/react-player/pull/246) | ||
* Fix parameter name for Vimeo player configuration [`#243`](https://github.com/CookPete/react-player/pull/243) | ||
* Add passthrough prop support to typings [`#247`](https://github.com/CookPete/react-player/issues/247) | ||
* Fix Vimeo duration logic [`#250`](https://github.com/CookPete/react-player/issues/250) | ||
#### [v0.25.0](https://github.com/CookPete/react-player/compare/v0.24.6...v0.25.0) | ||
> 4 October 2017 | ||
- Update polyfill info [`#239`](https://github.com/CookPete/react-player/issues/239) | ||
- Use React 16 for demo [`#241`](https://github.com/CookPete/react-player/issues/241) | ||
- Tweak vimeo player logic [`#240`](https://github.com/CookPete/react-player/issues/240) | ||
- Bump packages [`a31ab1c`](https://github.com/CookPete/react-player/commit/a31ab1c4d7f2e783c129db938367fb7a44da4d8f) | ||
- Update scripts and config file names [`920c602`](https://github.com/CookPete/react-player/commit/920c6024ec1a2ed703f557e2d71ccc406026053b) | ||
- Remove promise and fetch polyfills from browser build [`a33238c`](https://github.com/CookPete/react-player/commit/a33238cb83493fefc83d01b38551ef5df9d33783) | ||
* Update polyfill info [`#239`](https://github.com/CookPete/react-player/issues/239) | ||
* Use React 16 for demo [`#241`](https://github.com/CookPete/react-player/issues/241) | ||
* Tweak vimeo player logic [`#240`](https://github.com/CookPete/react-player/issues/240) | ||
#### [v0.24.6](https://github.com/CookPete/react-player/compare/v0.24.5...v0.24.6) | ||
> 28 September 2017 | ||
- Make getInternalPlayer more flexible [`#238`](https://github.com/CookPete/react-player/issues/238) | ||
* Make getInternalPlayer more flexible [`#238`](https://github.com/CookPete/react-player/issues/238) | ||
#### [v0.24.5](https://github.com/CookPete/react-player/compare/v0.24.4...v0.24.5) | ||
> 16 September 2017 | ||
- Update Streamable player to use player.js [`#237`](https://github.com/CookPete/react-player/issues/237) | ||
- Bump auto-changelog [`84ad345`](https://github.com/CookPete/react-player/commit/84ad345c926bf7fc47b0c61e77aea4c517cbd028) | ||
- Remove unnecessary stop logic from soundcloud [`f478f1a`](https://github.com/CookPete/react-player/commit/f478f1a3c29cfd8c95c4f49a17ddd05b1b042bc7) | ||
- Skip Streamable tests [`f210f93`](https://github.com/CookPete/react-player/commit/f210f93f5670d605b95887d4f44a8a22c9e42eee) | ||
* Update Streamable player to use player.js [`#237`](https://github.com/CookPete/react-player/issues/237) | ||
* Bump auto-changelog [`84ad345`](https://github.com/CookPete/react-player/commit/84ad345c926bf7fc47b0c61e77aea4c517cbd028) | ||
* Remove unnecessary stop logic from soundcloud [`f478f1a`](https://github.com/CookPete/react-player/commit/f478f1a3c29cfd8c95c4f49a17ddd05b1b042bc7) | ||
#### [v0.24.4](https://github.com/CookPete/react-player/compare/v0.24.3...v0.24.4) | ||
> 14 September 2017 | ||
- Updated TypeScript typings [`#235`](https://github.com/CookPete/react-player/pulls/235) | ||
- Prevent warnings when unmounting preloading players [`4c4d2ec`](https://github.com/CookPete/react-player/commit/4c4d2ecb2ba624bffe211cb041a97b1c42da9cc1) | ||
* Updated TypeScript typings [`#235`](https://github.com/CookPete/react-player/pull/235) | ||
* Prevent warnings when unmounting preloading players [`4c4d2ec`](https://github.com/CookPete/react-player/commit/4c4d2ecb2ba624bffe211cb041a97b1c42da9cc1) | ||
#### [v0.24.3](https://github.com/CookPete/react-player/compare/v0.24.2...v0.24.3) | ||
> 14 September 2017 | ||
- update of DOM listeners in FilePlayer when audio/video tags was switched [`#234`](https://github.com/CookPete/react-player/pulls/234) | ||
- Rename test files folder [`463b94c`](https://github.com/CookPete/react-player/commit/463b94c8e8815c12ded214e25c4baeb7d9d42ce1) | ||
- Use callPlayer util for player methods [`c760655`](https://github.com/CookPete/react-player/commit/c760655b26fbf3c01a129665861dc25661d91f7d) | ||
- Clean up tests [`717397e`](https://github.com/CookPete/react-player/commit/717397e2010a7c2a9d2bbb543e3390ee9be94e9c) | ||
* update of DOM listeners in FilePlayer when audio/video tags was switched [`#234`](https://github.com/CookPete/react-player/pull/234) | ||
* Clean up tests [`717397e`](https://github.com/CookPete/react-player/commit/717397e2010a7c2a9d2bbb543e3390ee9be94e9c) | ||
* Bump packages [`aa2c174`](https://github.com/CookPete/react-player/commit/aa2c1746774266502031d10aff5331ecb6cc491a) | ||
#### [v0.24.2](https://github.com/CookPete/react-player/compare/v0.24.1...v0.24.2) | ||
> 11 September 2017 | ||
- Add codecov support [`bc30340`](https://github.com/CookPete/react-player/commit/bc30340ce5da9299635bda0a1ad8560af9214516) | ||
- Add getConfig tests [`f7eb2b5`](https://github.com/CookPete/react-player/commit/f7eb2b55929842523377bda20d80b62eb6c9a7d1) | ||
- Player test tweaks [`c0ee179`](https://github.com/CookPete/react-player/commit/c0ee179cc61e316ca2f1f705bf53c65b304206a0) | ||
* Add codecov support [`bc30340`](https://github.com/CookPete/react-player/commit/bc30340ce5da9299635bda0a1ad8560af9214516) | ||
* Add getConfig tests [`f7eb2b5`](https://github.com/CookPete/react-player/commit/f7eb2b55929842523377bda20d80b62eb6c9a7d1) | ||
* Player test tweaks [`c0ee179`](https://github.com/CookPete/react-player/commit/c0ee179cc61e316ca2f1f705bf53c65b304206a0) | ||
#### [v0.24.1](https://github.com/CookPete/react-player/compare/v0.24.0...v0.24.1) | ||
> 9 September 2017 | ||
- Refactor player tests [`4551f25`](https://github.com/CookPete/react-player/commit/4551f25041a24b9efdc7587ec2a3c98a2fc26094) | ||
- Add util tests [`586f179`](https://github.com/CookPete/react-player/commit/586f1794d14fc2acb5760ed0f123447def4cf69c) | ||
- Refactor player rendering logic [`2b62811`](https://github.com/CookPete/react-player/commit/2b62811bbb00333e52b93c4d1635cb78fbc67c51) | ||
* Refactor player rendering logic [`2b62811`](https://github.com/CookPete/react-player/commit/2b62811bbb00333e52b93c4d1635cb78fbc67c51) | ||
* Refactor player tests [`4551f25`](https://github.com/CookPete/react-player/commit/4551f25041a24b9efdc7587ec2a3c98a2fc26094) | ||
* Add util tests [`586f179`](https://github.com/CookPete/react-player/commit/586f1794d14fc2acb5760ed0f123447def4cf69c) | ||
#### [v0.24.0](https://github.com/CookPete/react-player/compare/v0.23.0...v0.24.0) | ||
> 9 September 2017 | ||
- Use single config prop [`#71`](https://github.com/CookPete/react-player/issues/71) | ||
- Fix webpack production config [`#231`](https://github.com/CookPete/react-player/issues/231) | ||
- Remove legacy Soundcloud player [`a55ef3c`](https://github.com/CookPete/react-player/commit/a55ef3c963d46a2cb1b1a7d71ba0d66ef3edcb20) | ||
- Readme tweaks [`c0071f2`](https://github.com/CookPete/react-player/commit/c0071f2f987384ff4a8d188bf98a54f03eb42ea8) | ||
- Bring back static canPlay util [`f4861d7`](https://github.com/CookPete/react-player/commit/f4861d714da0be1ec9f8c10c00342a6f9efdef41) | ||
* Use single config prop [`#71`](https://github.com/CookPete/react-player/issues/71) | ||
* Fix webpack production config [`#231`](https://github.com/CookPete/react-player/issues/231) | ||
* Remove legacy Soundcloud player [`a55ef3c`](https://github.com/CookPete/react-player/commit/a55ef3c963d46a2cb1b1a7d71ba0d66ef3edcb20) | ||
#### [v0.23.0](https://github.com/CookPete/react-player/compare/v0.22.0...v0.23.0) | ||
> 8 September 2017 | ||
- Soundcloud: use Widget API instead of HTTP API [`#199`](https://github.com/CookPete/react-player/pulls/199) | ||
- Fixed broken TypeScript type definitions [`#230`](https://github.com/CookPete/react-player/pulls/230) | ||
- Refactor development setup [`81df2a8`](https://github.com/CookPete/react-player/commit/81df2a8c929e4a7d4c10d5c6606964d6d7bf5f1e) | ||
- Use Widget instead of Soundcloud API [`4ea29f9`](https://github.com/CookPete/react-player/commit/4ea29f95c642b56b05464a5baab5cbe1fdb28e5a) | ||
- Tidy up Soundcloud player [`d0947e2`](https://github.com/CookPete/react-player/commit/d0947e256a7998a76820239eca5fabc28783bc91) | ||
* Soundcloud: use Widget API instead of HTTP API [`#199`](https://github.com/CookPete/react-player/pull/199) | ||
* Fixed broken TypeScript type definitions [`#230`](https://github.com/CookPete/react-player/pull/230) | ||
* Refactor development setup [`81df2a8`](https://github.com/CookPete/react-player/commit/81df2a8c929e4a7d4c10d5c6606964d6d7bf5f1e) | ||
#### [v0.22.0](https://github.com/CookPete/react-player/compare/v0.21.0...v0.22.0) | ||
> 3 September 2017 | ||
- Move SDK loading logic into getSDK util [`318c9e9`](https://github.com/CookPete/react-player/commit/318c9e93cc55b00d939ab28ecaefce3467ef8440) | ||
- Add Twitch player [`288c18d`](https://github.com/CookPete/react-player/commit/288c18ddd582a9cd8b629216041a0166d4c23987) | ||
- Add sourcemap config to uglify plugin [`901dfbf`](https://github.com/CookPete/react-player/commit/901dfbf101e0d26f9c685088ad9a9b4d318d9950) | ||
* Add Twitch player [`288c18d`](https://github.com/CookPete/react-player/commit/288c18ddd582a9cd8b629216041a0166d4c23987) | ||
* Add sourcemap config to uglify plugin [`901dfbf`](https://github.com/CookPete/react-player/commit/901dfbf101e0d26f9c685088ad9a9b4d318d9950) | ||
* Update vidme example URL [`ad7b335`](https://github.com/CookPete/react-player/commit/ad7b3356ec85ba68d6696e867512177efc33beba) | ||
#### [v0.21.0](https://github.com/CookPete/react-player/compare/v0.20.0...v0.21.0) | ||
> 2 September 2017 | ||
- Add muted prop [`#221`](https://github.com/CookPete/react-player/issues/221) | ||
- Add onSeek prop [`#222`](https://github.com/CookPete/react-player/issues/222) | ||
- Tweak Wistia player load logic [`b0e725c`](https://github.com/CookPete/react-player/commit/b0e725cc7a5c964ba17f3422ebf7406f409f0a60) | ||
- Add missing typings [`8d1295e`](https://github.com/CookPete/react-player/commit/8d1295e6796ec31b66cfe5f6ef1694d8cafdad9e) | ||
- Update demo videos [`26411b9`](https://github.com/CookPete/react-player/commit/26411b9a29ddcdbb8fec9f8e244860d59f23601b) | ||
* Add muted prop [`#221`](https://github.com/CookPete/react-player/issues/221) | ||
* Add onSeek prop [`#222`](https://github.com/CookPete/react-player/issues/222) | ||
* Tweak Wistia player load logic [`b0e725c`](https://github.com/CookPete/react-player/commit/b0e725cc7a5c964ba17f3422ebf7406f409f0a60) | ||
#### [v0.20.0](https://github.com/CookPete/react-player/compare/v0.19.1...v0.20.0) | ||
> 27 July 2017 | ||
- Allow seekTo to accept number of seconds [`#75`](https://github.com/CookPete/react-player/issues/75) | ||
- Pass errors when playing files through to onError callback [`#200`](https://github.com/CookPete/react-player/issues/200) | ||
- Add support for subtitle tracks in FilePlayer [`#214`](https://github.com/CookPete/react-player/issues/214) | ||
- Unmute facebook video when setting volume [`#215`](https://github.com/CookPete/react-player/issues/215) | ||
- Bump packages [`8e9e57b`](https://github.com/CookPete/react-player/commit/8e9e57b37f18ec4358bc5bc940f5f7aed2f59a19) | ||
* Allow seekTo to accept number of seconds [`#75`](https://github.com/CookPete/react-player/issues/75) | ||
* Pass errors when playing files through to onError callback [`#200`](https://github.com/CookPete/react-player/issues/200) | ||
* Add support for subtitle tracks in FilePlayer [`#214`](https://github.com/CookPete/react-player/issues/214) | ||
* Unmute facebook video when setting volume [`#215`](https://github.com/CookPete/react-player/issues/215) | ||
#### [v0.19.1](https://github.com/CookPete/react-player/compare/v0.19.0...v0.19.1) | ||
> 17 July 2017 | ||
- More accurate played fraction for Wistia [`#201`](https://github.com/CookPete/react-player/pulls/201) | ||
* More accurate played fraction for Wistia [`#201`](https://github.com/CookPete/react-player/pull/201) | ||
#### [v0.19.0](https://github.com/CookPete/react-player/compare/v0.18.0...v0.19.0) | ||
> 13 July 2017 | ||
- Detatch HLS media when stopping [`#212`](https://github.com/CookPete/react-player/issues/212) | ||
- Pass through auto or falsey width and height to FilePlayer [`#211`](https://github.com/CookPete/react-player/issues/211) | ||
- Only use add-module-exports plugin for bower build [`#193`](https://github.com/CookPete/react-player/issues/193) | ||
- Bump packages [`7372bcb`](https://github.com/CookPete/react-player/commit/7372bcba6c737e195a3df1d772622f5324cff619) | ||
- Add wistia player options [`d447a32`](https://github.com/CookPete/react-player/commit/d447a32c05549ff738cce6bee0853a90b74a273e) | ||
- Remove need for findDOMNode in Vimeo player [`f6abc06`](https://github.com/CookPete/react-player/commit/f6abc065deb0d526706170c91436f344de8ddc88) | ||
* Detatch HLS media when stopping [`#212`](https://github.com/CookPete/react-player/issues/212) | ||
* Pass through auto or falsey width and height to FilePlayer [`#211`](https://github.com/CookPete/react-player/issues/211) | ||
* Only use add-module-exports plugin for bower build [`#193`](https://github.com/CookPete/react-player/issues/193) | ||
#### [v0.18.0](https://github.com/CookPete/react-player/compare/v0.17.2...v0.18.0) | ||
> 9 May 2017 | ||
- Add support for HLS and DASH streams [`c28c7ff`](https://github.com/CookPete/react-player/commit/c28c7ff637298e6d9ecee588741980b9e0481bfc) | ||
- Bump packages [`6f8da1f`](https://github.com/CookPete/react-player/commit/6f8da1f1f6f643953d0e5c97635addf320c80da7) | ||
* Add support for HLS and DASH streams [`c28c7ff`](https://github.com/CookPete/react-player/commit/c28c7ff637298e6d9ecee588741980b9e0481bfc) | ||
* Bump packages [`6f8da1f`](https://github.com/CookPete/react-player/commit/6f8da1f1f6f643953d0e5c97635addf320c80da7) | ||
#### [v0.17.2](https://github.com/CookPete/react-player/compare/v0.17.1...v0.17.2) | ||
> 7 May 2017 | ||
- Add forceAudio to fileConfig [`#188`](https://github.com/CookPete/react-player/issues/188) | ||
* Add forceAudio to fileConfig [`#188`](https://github.com/CookPete/react-player/issues/188) | ||
#### [v0.17.1](https://github.com/CookPete/react-player/compare/v0.17.0...v0.17.1) | ||
> 5 May 2017 | ||
- Fix initial loading bug for Private Vimeo videos [`#187`](https://github.com/CookPete/react-player/pulls/187) | ||
- Fix initial loading bug for Private Vimeo videos [`ff8a449`](https://github.com/CookPete/react-player/commit/ff8a449546121be7bfd6f3bb357d9dc06a94fcaa) | ||
* Fix initial loading bug for Private Vimeo videos [`#187`](https://github.com/CookPete/react-player/pull/187) | ||
* Fix initial loading bug for Private Vimeo videos [`ff8a449`](https://github.com/CookPete/react-player/commit/ff8a449546121be7bfd6f3bb357d9dc06a94fcaa) | ||
#### [v0.17.0](https://github.com/CookPete/react-player/compare/v0.16.0...v0.17.0) | ||
> 30 April 2017 | ||
- Add support for m.youtube.com [`#186`](https://github.com/CookPete/react-player/issues/186) | ||
- Add support for multiple file sources [`#81`](https://github.com/CookPete/react-player/issues/81) | ||
- Remove need for Vimeo player IDs [`214a7af`](https://github.com/CookPete/react-player/commit/214a7afebaf00cd3c5b0af06cc63efb0786bd439) | ||
* Add support for m.youtube.com [`#186`](https://github.com/CookPete/react-player/issues/186) | ||
* Add support for multiple file sources [`#81`](https://github.com/CookPete/react-player/issues/81) | ||
* Remove need for Vimeo player IDs [`214a7af`](https://github.com/CookPete/react-player/commit/214a7afebaf00cd3c5b0af06cc63efb0786bd439) | ||
#### [v0.16.0](https://github.com/CookPete/react-player/compare/v0.15.0...v0.16.0) | ||
> 27 April 2017 | ||
- Apply all non-valid props to the wrapper element [`#183`](https://github.com/CookPete/react-player/pulls/183) | ||
- Add Facebook player [`#109`](https://github.com/CookPete/react-player/issues/109) | ||
- Apply all non-valid props to the wrapper element [`#167`](https://github.com/CookPete/react-player/issues/167) | ||
- Added DailyMotion support. [`71dcda6`](https://github.com/CookPete/react-player/commit/71dcda6c3d0d1705760f3196fd28810be5e86109) | ||
- Use new Vimeo player API [`f262c1e`](https://github.com/CookPete/react-player/commit/f262c1e87be887d06c01217bc86a6f55dc90085e) | ||
- DailyMotion tweaks [`64f3cd3`](https://github.com/CookPete/react-player/commit/64f3cd3add0ec6dcea3a0980963676e3b8aa12f0) | ||
* Apply all non-valid props to the wrapper element [`#183`](https://github.com/CookPete/react-player/pull/183) | ||
* Add Facebook player [`#109`](https://github.com/CookPete/react-player/issues/109) | ||
* Apply all non-valid props to the wrapper element [`#167`](https://github.com/CookPete/react-player/issues/167) | ||
#### [v0.15.0](https://github.com/CookPete/react-player/compare/v0.14.3...v0.15.0) | ||
> 14 April 2017 | ||
- Add vidmeConfig with choice of video format [`#162`](https://github.com/CookPete/react-player/issues/162) | ||
- Call player.load() when loading files [`#177`](https://github.com/CookPete/react-player/issues/177) | ||
- Add getCurrentTime and getDuration methods [`#178`](https://github.com/CookPete/react-player/issues/178) | ||
- Use prop-types library [`#179`](https://github.com/CookPete/react-player/issues/179) | ||
- Add loadedSeconds and playedSeconds to onProgress [`#164`](https://github.com/CookPete/react-player/issues/164) | ||
- Add playsinline prop [`#148`](https://github.com/CookPete/react-player/issues/148) | ||
- Bump packages [`41aac30`](https://github.com/CookPete/react-player/commit/41aac30d82255e2a530c0e131c5a615f2ca6e394) | ||
- Update to standard 10 [`1371cbc`](https://github.com/CookPete/react-player/commit/1371cbc344b7b932a4579de23c188dad02f2bdcb) | ||
- Bump snazzy [`90c60b3`](https://github.com/CookPete/react-player/commit/90c60b3722b81f15bfab3cc926153b7bb66631af) | ||
* Add vidmeConfig with choice of video format [`#162`](https://github.com/CookPete/react-player/issues/162) | ||
* Call player.load() when loading files [`#177`](https://github.com/CookPete/react-player/issues/177) | ||
* Add getCurrentTime and getDuration methods [`#178`](https://github.com/CookPete/react-player/issues/178) | ||
* Use prop-types library [`#179`](https://github.com/CookPete/react-player/issues/179) | ||
* Add loadedSeconds and playedSeconds to onProgress [`#164`](https://github.com/CookPete/react-player/issues/164) | ||
* Add playsinline prop [`#148`](https://github.com/CookPete/react-player/issues/148) | ||
#### [v0.14.3](https://github.com/CookPete/react-player/compare/v0.14.2...v0.14.3) | ||
> 21 February 2017 | ||
- Add assertion for canPlay with https://vimeo [`#141`](https://github.com/CookPete/react-player/pulls/141) | ||
- Use npm 4.x on travis [`#143`](https://github.com/CookPete/react-player/pulls/143) | ||
- Use ubuntu 14.04 for travis [`#144`](https://github.com/CookPete/react-player/pulls/144) | ||
- fixed width & height of video when it is in fullscreen mode [`#151`](https://github.com/CookPete/react-player/pulls/151) | ||
- update webpack to 2.2.1 [`#156`](https://github.com/CookPete/react-player/pulls/156) | ||
- Fix vidme url regex [`#158`](https://github.com/CookPete/react-player/issues/158) | ||
- Bump packages [`92b9315`](https://github.com/CookPete/react-player/commit/92b9315f02f2b364b6cd59146e5c03587464cc5a) | ||
- Minor code style fixes [`b39b1ec`](https://github.com/CookPete/react-player/commit/b39b1ec05690610a091bdf229de03d71782ea059) | ||
- Add assertion for making sure canPlay is valid for https://vimeo [`0f55002`](https://github.com/CookPete/react-player/commit/0f550029c92754c193cb5b4adb835d960c2af1fe) | ||
* Add assertion for canPlay with https://vimeo [`#141`](https://github.com/CookPete/react-player/pull/141) | ||
* Use npm 4.x on travis [`#143`](https://github.com/CookPete/react-player/pull/143) | ||
* Use ubuntu 14.04 for travis [`#144`](https://github.com/CookPete/react-player/pull/144) | ||
* fixed width & height of video when it is in fullscreen mode [`#151`](https://github.com/CookPete/react-player/pull/151) | ||
* update webpack to 2.2.1 [`#156`](https://github.com/CookPete/react-player/pull/156) | ||
* Fix vidme url regex [`#158`](https://github.com/CookPete/react-player/issues/158) | ||
#### [v0.14.2](https://github.com/CookPete/react-player/compare/v0.14.1...v0.14.2) | ||
> 14 February 2017 | ||
- Fix youtube player vars config usage [`#152`](https://github.com/CookPete/react-player/issues/152) | ||
- Fix npm prepublish script on windows [`#139`](https://github.com/CookPete/react-player/issues/139) | ||
- fixed width & height of video when it is in fullscreen mode [`f966a15`](https://github.com/CookPete/react-player/commit/f966a15c2e2221359eee54e0753e8f0906e670fd) | ||
- Use cross-env for build scripts [`a6191cf`](https://github.com/CookPete/react-player/commit/a6191cf1d0c14453c88deccfc81db63a60a3a1e0) | ||
* Fix youtube player vars config usage [`#152`](https://github.com/CookPete/react-player/issues/152) | ||
* Fix npm prepublish script on windows [`#139`](https://github.com/CookPete/react-player/issues/139) | ||
* fixed width & height of video when it is in fullscreen mode [`f966a15`](https://github.com/CookPete/react-player/commit/f966a15c2e2221359eee54e0753e8f0906e670fd) | ||
#### [v0.14.1](https://github.com/CookPete/react-player/compare/v0.14.0...v0.14.1) | ||
> 1 January 2017 | ||
- Use video element for ogg files [`#137`](https://github.com/CookPete/react-player/issues/137) | ||
* Use video element for ogg files [`#137`](https://github.com/CookPete/react-player/issues/137) | ||
#### [v0.14.0](https://github.com/CookPete/react-player/compare/v0.13.0...v0.14.0) | ||
> 26 December 2016 | ||
- Wistia support [`#133`](https://github.com/CookPete/react-player/pulls/133) | ||
- Add yarn.lock [`690d031`](https://github.com/CookPete/react-player/commit/690d031a72a9057ee9313a05892f92343845593e) | ||
- Tidy up Wistia player [`9c82bfd`](https://github.com/CookPete/react-player/commit/9c82bfd332076fabb5e549e6e2c97cc7d6666a03) | ||
- Bump node-sass [`9d4689e`](https://github.com/CookPete/react-player/commit/9d4689ee8da2016d942b23e5a2b74d9df0d4e19c) | ||
* Wistia support [`#133`](https://github.com/CookPete/react-player/pull/133) | ||
* Add yarn.lock [`690d031`](https://github.com/CookPete/react-player/commit/690d031a72a9057ee9313a05892f92343845593e) | ||
* Tidy up Wistia player [`9c82bfd`](https://github.com/CookPete/react-player/commit/9c82bfd332076fabb5e549e6e2c97cc7d6666a03) | ||
#### [v0.13.0](https://github.com/CookPete/react-player/compare/v0.12.1...v0.13.0) | ||
> 12 December 2016 | ||
- PlaybackRate change feature [`#123`](https://github.com/CookPete/react-player/pulls/123) | ||
- Fix onProgress non-reporting if playing prop is not set. [`#127`](https://github.com/CookPete/react-player/pulls/127) | ||
- Add additional audio file extensions to regex [`#131`](https://github.com/CookPete/react-player/pulls/131) | ||
- Use node 6 on travis [`#130`](https://github.com/CookPete/react-player/pulls/130) | ||
- Add typescript definition file [`#134`](https://github.com/CookPete/react-player/issues/134) | ||
- [feature] Change PlaybackRate [`d28c309`](https://github.com/CookPete/react-player/commit/d28c309529f59d961238d549c3391af7ea08a44f) | ||
- Fix incorrect duration calculation in demo app. [`4114677`](https://github.com/CookPete/react-player/commit/411467726be66f7f5d7fdba826da76323ef6883f) | ||
- Remove unnecessary escape characters [`ec078d1`](https://github.com/CookPete/react-player/commit/ec078d12a06730f5665b5e1786eb60751817a4f0) | ||
* PlaybackRate change feature [`#123`](https://github.com/CookPete/react-player/pull/123) | ||
* Fix onProgress non-reporting if playing prop is not set. [`#127`](https://github.com/CookPete/react-player/pull/127) | ||
* Add additional audio file extensions to regex [`#131`](https://github.com/CookPete/react-player/pull/131) | ||
* Use node 6 on travis [`#130`](https://github.com/CookPete/react-player/pull/130) | ||
* Add typescript definition file [`#134`](https://github.com/CookPete/react-player/issues/134) | ||
#### [v0.12.1](https://github.com/CookPete/react-player/compare/v0.12.0...v0.12.1) | ||
> 19 November 2016 | ||
- Add fullscreen example to demo [`563252b`](https://github.com/CookPete/react-player/commit/563252be94cafd5d973271f56c91fda4b1f87e4f) | ||
- Fullscreen youtube player fix [`83e8e60`](https://github.com/CookPete/react-player/commit/83e8e60a018e85bb27aa907360142f0a63761d54) | ||
* Add fullscreen example to demo [`563252b`](https://github.com/CookPete/react-player/commit/563252be94cafd5d973271f56c91fda4b1f87e4f) | ||
* Fullscreen youtube player fix [`83e8e60`](https://github.com/CookPete/react-player/commit/83e8e60a018e85bb27aa907360142f0a63761d54) | ||
#### [v0.12.0](https://github.com/CookPete/react-player/compare/v0.11.0...v0.12.0) | ||
> 10 October 2016 | ||
- Pass DOM node to YouTube Player instead of ID [`#111`](https://github.com/CookPete/react-player/pulls/111) | ||
- update all dependencies [`#107`](https://github.com/CookPete/react-player/pulls/107) | ||
- Add showArtwork option to soundcloud config [`#108`](https://github.com/CookPete/react-player/issues/108) | ||
- Tidy up code [`0f18e71`](https://github.com/CookPete/react-player/commit/0f18e712935dfe50dafb4f40b3794e7150c4b476) | ||
- Add Vidme support [`609ee08`](https://github.com/CookPete/react-player/commit/609ee0845199879141dd89b20d3fbc996c20fdee) | ||
- Remove anonymous ref callback functions [`26aec63`](https://github.com/CookPete/react-player/commit/26aec63f05bfeba28536645dba5f0cbf0c5891a8) | ||
* Pass DOM node to YouTube Player instead of ID [`#111`](https://github.com/CookPete/react-player/pull/111) | ||
* update all dependencies [`#107`](https://github.com/CookPete/react-player/pull/107) | ||
* Add showArtwork option to soundcloud config [`#108`](https://github.com/CookPete/react-player/issues/108) | ||
#### [v0.11.0](https://github.com/CookPete/react-player/compare/v0.10.0...v0.11.0) | ||
> 26 September 2016 | ||
- Add onReady prop [`#106`](https://github.com/CookPete/react-player/issues/106) | ||
* Add onReady prop [`#106`](https://github.com/CookPete/react-player/issues/106) | ||
#### [v0.10.0](https://github.com/CookPete/react-player/compare/v0.9.0...v0.10.0) | ||
> 25 September 2016 | ||
- Add `hidden` prop to ReactPlayer [`#102`](https://github.com/CookPete/react-player/pulls/102) | ||
- Use mounted property to prevent setting state when unmounted [`#105`](https://github.com/CookPete/react-player/issues/105) | ||
- Update onProgress logic to still report loaded amounts when paused [`#94`](https://github.com/CookPete/react-player/issues/94) | ||
- Remove brackets from single param arrow functions [`ab24d08`](https://github.com/CookPete/react-player/commit/ab24d085b4ad72bb6e0c9ea43ca59e69be0d88f3) | ||
- Add Streamable player [`ff6a300`](https://github.com/CookPete/react-player/commit/ff6a3006ec8960d51a884762ce2f767857ec01cf) | ||
- Use ref callbacks instead of ref strings [`6c16ba0`](https://github.com/CookPete/react-player/commit/6c16ba0f44d0403ae3e089ca1dafed0077b095e7) | ||
* Add `hidden` prop to ReactPlayer [`#102`](https://github.com/CookPete/react-player/pull/102) | ||
* Use mounted property to prevent setting state when unmounted [`#105`](https://github.com/CookPete/react-player/issues/105) | ||
* Update onProgress logic to still report loaded amounts when paused [`#94`](https://github.com/CookPete/react-player/issues/94) | ||
#### [v0.9.0](https://github.com/CookPete/react-player/compare/v0.8.0...v0.9.0) | ||
> 9 August 2016 | ||
- Ensure YouTube SDK is loaded before resolving promise [`#88`](https://github.com/CookPete/react-player/issues/88) | ||
- Fix looping behaviour [`#91`](https://github.com/CookPete/react-player/issues/91) | ||
- Add style prop [`#92`](https://github.com/CookPete/react-player/issues/92) | ||
- Skip tests before versioning [`ed6cab0`](https://github.com/CookPete/react-player/commit/ed6cab0cc983efaf0ef8813b77a0a3a407091726) | ||
* Ensure YouTube SDK is loaded before resolving promise [`#88`](https://github.com/CookPete/react-player/issues/88) | ||
* Fix looping behaviour [`#91`](https://github.com/CookPete/react-player/issues/91) | ||
* Add style prop [`#92`](https://github.com/CookPete/react-player/issues/92) | ||
#### [v0.8.0](https://github.com/CookPete/react-player/compare/v0.7.5...v0.8.0) | ||
> 29 July 2016 | ||
- Add support for non-es5 compatible browsers [`#87`](https://github.com/CookPete/react-player/pulls/87) | ||
- Render FilePlayer by default [`8d249ce`](https://github.com/CookPete/react-player/commit/8d249cedb234f63e59858840a5ea40b899632177) | ||
- Bump packages [`2d43659`](https://github.com/CookPete/react-player/commit/2d436592fedbba4b92653e1f929d5a31ccf3b14d) | ||
* Add support for non-es5 compatible browsers [`#87`](https://github.com/CookPete/react-player/pull/87) | ||
* Render FilePlayer by default [`8d249ce`](https://github.com/CookPete/react-player/commit/8d249cedb234f63e59858840a5ea40b899632177) | ||
* Bump packages [`2d43659`](https://github.com/CookPete/react-player/commit/2d436592fedbba4b92653e1f929d5a31ccf3b14d) | ||
#### [v0.7.5](https://github.com/CookPete/react-player/compare/v0.7.4...v0.7.5) | ||
> 27 July 2016 | ||
- Always send both played and loaded values in progress events [`#79`](https://github.com/CookPete/react-player/issues/79) | ||
- Add RTSP stream support to FilePlayer [`#83`](https://github.com/CookPete/react-player/issues/83) | ||
- Move initial setVolume to onStart [`#82`](https://github.com/CookPete/react-player/issues/82) | ||
- Update player when width or height changes [`#84`](https://github.com/CookPete/react-player/issues/84) | ||
- Stop progress loop on pause [`180039b`](https://github.com/CookPete/react-player/commit/180039b19b3975e7e0ecae1202ccb304d829fba7) | ||
- Add babel es3 plugins [`26abe2c`](https://github.com/CookPete/react-player/commit/26abe2ccb66e9677a20baa5f6a0da64262f53ef8) | ||
* Always send both played and loaded values in progress events [`#79`](https://github.com/CookPete/react-player/issues/79) | ||
* Add RTSP stream support to FilePlayer [`#83`](https://github.com/CookPete/react-player/issues/83) | ||
* Move initial setVolume to onStart [`#82`](https://github.com/CookPete/react-player/issues/82) | ||
* Update player when width or height changes [`#84`](https://github.com/CookPete/react-player/issues/84) | ||
#### [v0.7.4](https://github.com/CookPete/react-player/compare/v0.7.3...v0.7.4) | ||
> 23 June 2016 | ||
- Pause FilePlayer when stopping [`#78`](https://github.com/CookPete/react-player/issues/78) | ||
* Pause FilePlayer when stopping [`#78`](https://github.com/CookPete/react-player/issues/78) | ||
#### [v0.7.3](https://github.com/CookPete/react-player/compare/v0.7.2...v0.7.3) | ||
> 21 June 2016 | ||
- Pass fileConfig down correctly [`1dffcca`](https://github.com/CookPete/react-player/commit/1dffccafca1f3440068a66e661a1fced9cde1593) | ||
* Pass fileConfig down correctly [`1dffcca`](https://github.com/CookPete/react-player/commit/1dffccafca1f3440068a66e661a1fced9cde1593) | ||
#### [v0.7.2](https://github.com/CookPete/react-player/compare/v0.7.1...v0.7.2) | ||
> 3 June 2016 | ||
- Add m4v and m4a extensions to filePlayer [`#72`](https://github.com/CookPete/react-player/issues/72) | ||
- Fix onDuration being called with null [`#52`](https://github.com/CookPete/react-player/issues/52) | ||
- Rename seekOnReady to seekOnPlay [`91f7344`](https://github.com/CookPete/react-player/commit/91f73449e835c5e7bda30889e909510118f8c84f) | ||
- Add failing onDuration test [`564243e`](https://github.com/CookPete/react-player/commit/564243e19449326eab30c163f9ffb82678fcf502) | ||
- Nest media switching test in a describe block [`2fe8806`](https://github.com/CookPete/react-player/commit/2fe8806996b915f59d5105b2f304018152c75a0b) | ||
* Add m4v and m4a extensions to filePlayer [`#72`](https://github.com/CookPete/react-player/issues/72) | ||
* Fix onDuration being called with null [`#52`](https://github.com/CookPete/react-player/issues/52) | ||
* Add failing onDuration test [`564243e`](https://github.com/CookPete/react-player/commit/564243e19449326eab30c163f9ffb82678fcf502) | ||
#### [v0.7.1](https://github.com/CookPete/react-player/compare/v0.7.0...v0.7.1) | ||
> 1 June 2016 | ||
- Update supported file type regex [`#68`](https://github.com/CookPete/react-player/pulls/68) | ||
- Update README.md links [`#66`](https://github.com/CookPete/react-player/pulls/66) | ||
- Tweak example usage [`eff2623`](https://github.com/CookPete/react-player/commit/eff2623b302312116ff0a6bd2e60aca04f2473e6) | ||
- make file extensions case insensitive [`6f0f346`](https://github.com/CookPete/react-player/commit/6f0f34682106bafa40b9a68de2d77d4f9425b1f5) | ||
- Update supported media readme [`c37e87e`](https://github.com/CookPete/react-player/commit/c37e87ee92665facf96e0d9c08ca5dfc654b99ec) | ||
* Update supported file type regex [`#68`](https://github.com/CookPete/react-player/pull/68) | ||
* Update README.md links [`#66`](https://github.com/CookPete/react-player/pull/66) | ||
* Update supported media readme [`c37e87e`](https://github.com/CookPete/react-player/commit/c37e87ee92665facf96e0d9c08ca5dfc654b99ec) | ||
#### [v0.7.0](https://github.com/CookPete/react-player/compare/v0.6.0...v0.7.0) | ||
> 21 May 2016 | ||
- Use filePlayer for SoundCloud tracks [`#64`](https://github.com/CookPete/react-player/issues/64) | ||
- Add controls prop [`9a2ae22`](https://github.com/CookPete/react-player/commit/9a2ae229283e0c41ceea62ba01cdac243cf2bb82) | ||
- Tidy up filePlayer [`79c2d5a`](https://github.com/CookPete/react-player/commit/79c2d5a16f999628493c3ac7ce052960ae5be67a) | ||
- Skip FilePlayer onError test [`c4ed490`](https://github.com/CookPete/react-player/commit/c4ed49093f307ea7c844987d1f9e398a4dea5596) | ||
* Use filePlayer for SoundCloud tracks [`#64`](https://github.com/CookPete/react-player/issues/64) | ||
* Tidy up filePlayer [`79c2d5a`](https://github.com/CookPete/react-player/commit/79c2d5a16f999628493c3ac7ce052960ae5be67a) | ||
* Add controls prop [`9a2ae22`](https://github.com/CookPete/react-player/commit/9a2ae229283e0c41ceea62ba01cdac243cf2bb82) | ||
#### [v0.6.0](https://github.com/CookPete/react-player/compare/v0.5.8...v0.6.0) | ||
> 19 May 2016 | ||
- Add filePlayer config prop [`#62`](https://github.com/CookPete/react-player/issues/62) | ||
- Add loop prop [`#57`](https://github.com/CookPete/react-player/issues/57) | ||
- Add onStart prop [`#61`](https://github.com/CookPete/react-player/issues/61) | ||
- Use fetch-jsonp for SoundCloud resolve endpoint [`#24`](https://github.com/CookPete/react-player/issues/24) [`#47`](https://github.com/CookPete/react-player/issues/47) | ||
- Remove class property semicolons [`0c8070d`](https://github.com/CookPete/react-player/commit/0c8070dbac394d40268b2df505672fbbd8befc2a) | ||
- Remove arrow function brackets [`cb71f30`](https://github.com/CookPete/react-player/commit/cb71f30975407638445e1038a1ee45edce73b021) | ||
- Add contribution guidelines [`16f515d`](https://github.com/CookPete/react-player/commit/16f515ddf693c18d5b5916b3f85ffb0cca551e3c) | ||
* Add filePlayer config prop [`#62`](https://github.com/CookPete/react-player/issues/62) | ||
* Add loop prop [`#57`](https://github.com/CookPete/react-player/issues/57) | ||
* Add onStart prop [`#61`](https://github.com/CookPete/react-player/issues/61) | ||
* Use fetch-jsonp for SoundCloud resolve endpoint [`#24`](https://github.com/CookPete/react-player/issues/24), [`#47`](https://github.com/CookPete/react-player/issues/47) | ||
#### [v0.5.8](https://github.com/CookPete/react-player/compare/v0.5.7...v0.5.8) | ||
> 19 April 2016 | ||
- Bump packages [`#56`](https://github.com/CookPete/react-player/issues/56) | ||
- Move all tests to Karma [`bbefce0`](https://github.com/CookPete/react-player/commit/bbefce019a8620829c6f663d6536a15caa587ea1) | ||
- Better canPlay test grouping [`f528ade`](https://github.com/CookPete/react-player/commit/f528ade2ef7a8403c3a517fa52818dce6f07f6f7) | ||
- Add footer to demo [`546678c`](https://github.com/CookPete/react-player/commit/546678c33c2ea1331ed7f63712f40687c83b73be) | ||
* Bump packages [`#56`](https://github.com/CookPete/react-player/issues/56) | ||
* Add footer to demo [`546678c`](https://github.com/CookPete/react-player/commit/546678c33c2ea1331ed7f63712f40687c83b73be) | ||
* Fix Youtube rendering issue with React 15 [`8eb2dc0`](https://github.com/CookPete/react-player/commit/8eb2dc053bbae17ebe79a7da491e4ba048c6c48a) | ||
#### [v0.5.7](https://github.com/CookPete/react-player/compare/v0.5.6...v0.5.7) | ||
> 13 April 2016 | ||
- Pass on error event [`#48`](https://github.com/CookPete/react-player/pulls/48) | ||
- Add FilePlayer support for urls with query string [`#45`](https://github.com/CookPete/react-player/pulls/45) | ||
- Add progressFrequency prop [`#50`](https://github.com/CookPete/react-player/issues/50) | ||
- Only include played amount in onProgress when playing [`#51`](https://github.com/CookPete/react-player/issues/51) | ||
- Pass on event including error message and code onError [`#44`](https://github.com/CookPete/react-player/issues/44) | ||
- Add default props to readme [`2abb25e`](https://github.com/CookPete/react-player/commit/2abb25e68b6e5caa7d68e3cbfeab63789add2728) | ||
- Ignore dist when linting [`1740ca6`](https://github.com/CookPete/react-player/commit/1740ca6cb58d8b6f274074f364e385f2b107292b) | ||
- Specify https in YouTube SDK location [`c05bd9d`](https://github.com/CookPete/react-player/commit/c05bd9dff3a8595c5bb2e53c33ddaf8db8c894de) | ||
* Pass on error event [`#48`](https://github.com/CookPete/react-player/pull/48) | ||
* Add FilePlayer support for urls with query string [`#45`](https://github.com/CookPete/react-player/pull/45) | ||
* Add progressFrequency prop [`#50`](https://github.com/CookPete/react-player/issues/50) | ||
* Only include played amount in onProgress when playing [`#51`](https://github.com/CookPete/react-player/issues/51) | ||
* Pass on event including error message and code onError [`#44`](https://github.com/CookPete/react-player/issues/44) | ||
#### [v0.5.6](https://github.com/CookPete/react-player/compare/v0.5.5...v0.5.6) | ||
> 8 March 2016 | ||
- Fix bower support [`#42`](https://github.com/CookPete/react-player/issues/42) | ||
- Update readme with mobile considerations [`#41`](https://github.com/CookPete/react-player/issues/41) | ||
- Remove comments from production builds [`03a4e22`](https://github.com/CookPete/react-player/commit/03a4e22a80f8c64fdc31acc33829b88ac15c85d5) | ||
- Fix browser build [`78463b2`](https://github.com/CookPete/react-player/commit/78463b2592a12eac990673a991aada66f86b1434) | ||
- Bump karma-mocha-reporter [`98bc28a`](https://github.com/CookPete/react-player/commit/98bc28a9d9200f6ce0d4545abc352481701839cd) | ||
* Fix bower support [`#42`](https://github.com/CookPete/react-player/issues/42) | ||
* Update readme with mobile considerations [`#41`](https://github.com/CookPete/react-player/issues/41) | ||
* Fix browser build [`78463b2`](https://github.com/CookPete/react-player/commit/78463b2592a12eac990673a991aada66f86b1434) | ||
#### [v0.5.5](https://github.com/CookPete/react-player/compare/v0.5.4...v0.5.5) | ||
> 29 February 2016 | ||
- Add browser build [`#35`](https://github.com/CookPete/react-player/issues/35) [`#38`](https://github.com/CookPete/react-player/issues/38) | ||
- Add promise and fetch polyfills to build [`#39`](https://github.com/CookPete/react-player/issues/39) | ||
- Update standard code style [`7231c45`](https://github.com/CookPete/react-player/commit/7231c458fb0af80370f308d3d77aab71c226aac6) | ||
- Add bower.json [`e95ee66`](https://github.com/CookPete/react-player/commit/e95ee66ffeeeb50bcf2e7666c1b90fa2676d6688) | ||
- Add react-component keyword [`fb50625`](https://github.com/CookPete/react-player/commit/fb506250f35efaa228f34d49ad67f2a0a1a36d44) | ||
* Add browser build [`#35`](https://github.com/CookPete/react-player/issues/35), [`#38`](https://github.com/CookPete/react-player/issues/38) | ||
* Add promise and fetch polyfills to build [`#39`](https://github.com/CookPete/react-player/issues/39) | ||
* Update standard code style [`7231c45`](https://github.com/CookPete/react-player/commit/7231c458fb0af80370f308d3d77aab71c226aac6) | ||
#### [v0.5.4](https://github.com/CookPete/react-player/compare/v0.5.3...v0.5.4) | ||
> 3 February 2016 | ||
- Remove the need for array.find polyfill [`7aa4719`](https://github.com/CookPete/react-player/commit/7aa471943def19d9e9b0abab3cf1172cb1db1cb1) | ||
- Add demo deployment to travis build [`60bcaf6`](https://github.com/CookPete/react-player/commit/60bcaf6aa7c0b100a514c495ff521a42cdfe1235) | ||
- Tweak YouTube default playerVars [`b99e6d9`](https://github.com/CookPete/react-player/commit/b99e6d94e7534e7a8d8e434eaf4473b4ca480601) | ||
* Add demo deployment to travis build [`60bcaf6`](https://github.com/CookPete/react-player/commit/60bcaf6aa7c0b100a514c495ff521a42cdfe1235) | ||
* Tweak YouTube default playerVars [`b99e6d9`](https://github.com/CookPete/react-player/commit/b99e6d94e7534e7a8d8e434eaf4473b4ca480601) | ||
* Add sshpass to travis [`84f889e`](https://github.com/CookPete/react-player/commit/84f889e861348db36577685be608e66fa4c2ad12) | ||
#### [v0.5.3](https://github.com/CookPete/react-player/compare/v0.5.2...v0.5.3) | ||
> 26 January 2016 | ||
- Support YouTube start time param [`7908463`](https://github.com/CookPete/react-player/commit/7908463d2dc1d3f59910432edd45460da152d426) | ||
- Better karma test grouping [`8a3d4e8`](https://github.com/CookPete/react-player/commit/8a3d4e83944466945002634c84a1c1bfa5035fd9) | ||
- Better SoundCloud error handling [`bce57af`](https://github.com/CookPete/react-player/commit/bce57af06f3296587f75dea7e5a87d4da2c8e6a9) | ||
* Support YouTube start time param [`7908463`](https://github.com/CookPete/react-player/commit/7908463d2dc1d3f59910432edd45460da152d426) | ||
* Add onError tests [`9626ccb`](https://github.com/CookPete/react-player/commit/9626ccbcb5b5b22496c1e02cb702e633e65b803b) | ||
* Better karma test grouping [`8a3d4e8`](https://github.com/CookPete/react-player/commit/8a3d4e83944466945002634c84a1c1bfa5035fd9) | ||
#### [v0.5.2](https://github.com/CookPete/react-player/compare/v0.5.1...v0.5.2) | ||
> 25 January 2016 | ||
- Vimeo fullscreen support [`#33`](https://github.com/CookPete/react-player/issues/33) | ||
- Tweak readme [`a741b2c`](https://github.com/CookPete/react-player/commit/a741b2c381dae449916895ce13f81e14dccf3afa) | ||
- Add preload to propTypes [`ad05a91`](https://github.com/CookPete/react-player/commit/ad05a91622fd050b69f290720a7a7fe9b8881df7) | ||
* Vimeo fullscreen support [`#33`](https://github.com/CookPete/react-player/issues/33) | ||
* Tweak readme [`a741b2c`](https://github.com/CookPete/react-player/commit/a741b2c381dae449916895ce13f81e14dccf3afa) | ||
* Add preload to propTypes [`ad05a91`](https://github.com/CookPete/react-player/commit/ad05a91622fd050b69f290720a7a7fe9b8881df7) | ||
#### [v0.5.1](https://github.com/CookPete/react-player/compare/v0.5.0...v0.5.1) | ||
> 21 January 2016 | ||
- Move onDuration callback from onReady to onPlay [`#31`](https://github.com/CookPete/react-player/issues/31) | ||
- Destructure state in demo render method [`6ed327d`](https://github.com/CookPete/react-player/commit/6ed327db830a9b0ea98acf111b94122b6f4c8418) | ||
- Add simple Duration component to improve demo [`d42c6d3`](https://github.com/CookPete/react-player/commit/d42c6d3c4c1e323e8d856b0a2b2c95e526d55e81) | ||
- Change onProgress frequency to 1 second [`45746d9`](https://github.com/CookPete/react-player/commit/45746d96ebef9a290fca4a88deaeaa83843ca4ad) | ||
* Move onDuration callback from onReady to onPlay [`#31`](https://github.com/CookPete/react-player/issues/31) | ||
* Destructure state in demo render method [`6ed327d`](https://github.com/CookPete/react-player/commit/6ed327db830a9b0ea98acf111b94122b6f4c8418) | ||
* Add simple Duration component to improve demo [`d42c6d3`](https://github.com/CookPete/react-player/commit/d42c6d3c4c1e323e8d856b0a2b2c95e526d55e81) | ||
#### [v0.5.0](https://github.com/CookPete/react-player/compare/v0.4.2...v0.5.0) | ||
> 14 January 2016 | ||
- Add onDuration prop [`#28`](https://github.com/CookPete/react-player/issues/28) | ||
- Ensure YouTube player calls onReady on subsequent loads [`3a997bb`](https://github.com/CookPete/react-player/commit/3a997bb63878ccff551a12e8e076f63b8cf208a3) | ||
- Ensure vimeo player has duration before calling onReady [`8b31a8f`](https://github.com/CookPete/react-player/commit/8b31a8ff77aa57b611996670b9b09d2d9b9aeae8) | ||
- Add live demo to readme [`4aa8a29`](https://github.com/CookPete/react-player/commit/4aa8a292f2e3ee20f79e4a815d09f353da6a553d) | ||
* Add onDuration prop [`#28`](https://github.com/CookPete/react-player/issues/28) | ||
* Add live demo to readme [`4aa8a29`](https://github.com/CookPete/react-player/commit/4aa8a292f2e3ee20f79e4a815d09f353da6a553d) | ||
* Ensure vimeo player has duration before calling onReady [`8b31a8f`](https://github.com/CookPete/react-player/commit/8b31a8ff77aa57b611996670b9b09d2d9b9aeae8) | ||
#### [v0.4.2](https://github.com/CookPete/react-player/compare/v0.4.1...v0.4.2) | ||
> 11 January 2016 | ||
- Add semicolons to class properties [`#27`](https://github.com/CookPete/react-player/issues/27) | ||
- Limit Travis to just basic tests [`#26`](https://github.com/CookPete/react-player/issues/26) | ||
- Bump packages [`21f03b2`](https://github.com/CookPete/react-player/commit/21f03b2309951456c86567c1ff254628814af224) | ||
* Add semicolons to class properties [`#27`](https://github.com/CookPete/react-player/issues/27) | ||
* Limit Travis to just basic tests [`#26`](https://github.com/CookPete/react-player/issues/26) | ||
* Bump packages [`21f03b2`](https://github.com/CookPete/react-player/commit/21f03b2309951456c86567c1ff254628814af224) | ||
#### [v0.4.1](https://github.com/CookPete/react-player/compare/v0.4.0...v0.4.1) | ||
> 11 January 2016 | ||
- Add more files to .npmignore [`1cd8052`](https://github.com/CookPete/react-player/commit/1cd80526d32a5b060208b3d1e7883adcfcd7cfe6) | ||
- Update auto-changelog [`1cebd28`](https://github.com/CookPete/react-player/commit/1cebd28b25d66713204b5920052c8979d84c234d) | ||
- Fix npm badge link [`f6a146b`](https://github.com/CookPete/react-player/commit/f6a146b3904934dcd10287100400e54aeeb50541) | ||
* Add more files to .npmignore [`1cd8052`](https://github.com/CookPete/react-player/commit/1cd80526d32a5b060208b3d1e7883adcfcd7cfe6) | ||
* Fix npm badge link [`f6a146b`](https://github.com/CookPete/react-player/commit/f6a146b3904934dcd10287100400e54aeeb50541) | ||
* Update auto-changelog [`1cebd28`](https://github.com/CookPete/react-player/commit/1cebd28b25d66713204b5920052c8979d84c234d) | ||
#### [v0.4.0](https://github.com/CookPete/react-player/compare/v0.3.7...v0.4.0) | ||
> 9 January 2016 | ||
- Use react-transform development setup [`#25`](https://github.com/CookPete/react-player/pulls/25) | ||
- Add basic karma testing [`#22`](https://github.com/CookPete/react-player/issues/22) | ||
- Rebase on react-transform-boilerplate [`#8`](https://github.com/CookPete/react-player/issues/8) | ||
- Add styles and various fixes to the demo app [`0b16606`](https://github.com/CookPete/react-player/commit/0b16606615252a2584f6380912208b11b1df81c4) | ||
- Separate demo files [`c7230e7`](https://github.com/CookPete/react-player/commit/c7230e71d69d4e06b4de266c692b457e7a7c421f) | ||
- Use a partial shrinkwrap to limit babel packages to 6.3 [`e9bcd72`](https://github.com/CookPete/react-player/commit/e9bcd72a16554231d0b9079944b3b99934011fbc) | ||
* Use react-transform development setup [`#25`](https://github.com/CookPete/react-player/pull/25) | ||
* Add basic karma testing [`#22`](https://github.com/CookPete/react-player/issues/22) | ||
* Rebase on react-transform-boilerplate [`#8`](https://github.com/CookPete/react-player/issues/8) | ||
#### [v0.3.7](https://github.com/CookPete/react-player/compare/v0.3.6...v0.3.7) | ||
> 4 January 2016 | ||
- When seeking before player is ready, store value and seek later [`#19`](https://github.com/CookPete/react-player/issues/19) | ||
- Remove redundant soundcloud player options [`647fa9e`](https://github.com/CookPete/react-player/commit/647fa9ef1eb0150dd322614ad74b339439830b50) | ||
- Prevent IndexSizeError in FilePlayer [`ba31958`](https://github.com/CookPete/react-player/commit/ba31958aeaf11da9a0ef56915db311b3c5881181) | ||
- Fix FilePlayer not loading on mount [`00f9671`](https://github.com/CookPete/react-player/commit/00f9671a12bf09d0160653391a680165d6098adf) | ||
* When seeking before player is ready, store value and seek later [`#19`](https://github.com/CookPete/react-player/issues/19) | ||
* Fix FilePlayer not loading on mount [`00f9671`](https://github.com/CookPete/react-player/commit/00f9671a12bf09d0160653391a680165d6098adf) | ||
* Nullify loadOnReady after use [`5dd60c6`](https://github.com/CookPete/react-player/commit/5dd60c6215d994b8efbf2ea5c46434166a382357) | ||
#### [v0.3.6](https://github.com/CookPete/react-player/compare/v0.3.5...v0.3.6) | ||
> 4 January 2016 | ||
- Ensure volume on subsequent youtube loads [`5895663`](https://github.com/CookPete/react-player/commit/58956633754073e0c3d9316da9cadfd4a49a823c) | ||
* Ensure volume on subsequent youtube loads [`5895663`](https://github.com/CookPete/react-player/commit/58956633754073e0c3d9316da9cadfd4a49a823c) | ||
#### [v0.3.5](https://github.com/CookPete/react-player/compare/v0.3.4...v0.3.5) | ||
> 4 January 2016 | ||
- Fix YouTube onReady bugs [`#21`](https://github.com/CookPete/react-player/pulls/21) | ||
- Set isReady before setVolume in onReady [`#23`](https://github.com/CookPete/react-player/issues/23) | ||
- Handle YouTube URL change during SDK load [`#20`](https://github.com/CookPete/react-player/issues/20) | ||
- Tidy up YouTube code [`64c952f`](https://github.com/CookPete/react-player/commit/64c952f31ca5397a13fbdbd35e3485dd2dbfc466) | ||
- Lint and test before versioning [`fdf2fa3`](https://github.com/CookPete/react-player/commit/fdf2fa39136b1286d0859af9b86cc253b9354743) | ||
* Fix YouTube onReady bugs [`#21`](https://github.com/CookPete/react-player/pull/21) | ||
* Set isReady before setVolume in onReady [`#23`](https://github.com/CookPete/react-player/issues/23) | ||
* Handle YouTube URL change during SDK load [`#20`](https://github.com/CookPete/react-player/issues/20) | ||
#### [v0.3.4](https://github.com/CookPete/react-player/compare/v0.3.3...v0.3.4) | ||
> 3 January 2016 | ||
- Update readme badges [`6d0503c`](https://github.com/CookPete/react-player/commit/6d0503c7d6706063394301af61db342caeff9272) | ||
- Fix YouTube pause guard [`1f8d372`](https://github.com/CookPete/react-player/commit/1f8d3720239353c496db3076b306cc52e99607dd) | ||
* Update readme badges [`6d0503c`](https://github.com/CookPete/react-player/commit/6d0503c7d6706063394301af61db342caeff9272) | ||
* Fix YouTube pause guard [`1f8d372`](https://github.com/CookPete/react-player/commit/1f8d3720239353c496db3076b306cc52e99607dd) | ||
#### [v0.3.3](https://github.com/CookPete/react-player/compare/v0.3.2...v0.3.3) | ||
> 2 January 2016 | ||
- Stronger guards for YouTube player methods [`f18792a`](https://github.com/CookPete/react-player/commit/f18792a2da3167f775d48481aa8eae150b747d4d) | ||
* Stronger guards for YouTube player methods [`f18792a`](https://github.com/CookPete/react-player/commit/f18792a2da3167f775d48481aa8eae150b747d4d) | ||
#### [v0.3.2](https://github.com/CookPete/react-player/compare/v0.3.1...v0.3.2) | ||
> 2 January 2016 | ||
- Use explicit isReady property to guard player methods [`#18`](https://github.com/CookPete/react-player/issues/18) | ||
- Improve progress logic [`b0b3040`](https://github.com/CookPete/react-player/commit/b0b304049847d9568585bc11399fa6cfa4cab5dc) | ||
- Remove propTypes and defaultProps from players [`796edd1`](https://github.com/CookPete/react-player/commit/796edd129a6aaea148dcd72ea897321e66cae0c1) | ||
- Start using auto-changelog [`373b698`](https://github.com/CookPete/react-player/commit/373b698a49f2f35a37084fa3e59e4d0a7af971db) | ||
* Use explicit isReady property to guard player methods [`#18`](https://github.com/CookPete/react-player/issues/18) | ||
* Remove propTypes and defaultProps from players [`796edd1`](https://github.com/CookPete/react-player/commit/796edd129a6aaea148dcd72ea897321e66cae0c1) | ||
* Add onProgress propType [`3f22681`](https://github.com/CookPete/react-player/commit/3f22681bcba3ad5c10ed1516abdcfb3bf6b8bad8) | ||
#### [v0.3.1](https://github.com/CookPete/react-player/compare/v0.3.0...v0.3.1) | ||
> 27 December 2015 | ||
- Use displayNames for players [`#17`](https://github.com/CookPete/react-player/issues/17) | ||
- Fix changelog link [`f82b351`](https://github.com/CookPete/react-player/commit/f82b351aa6008d2cbb2e3bd95859d8a90a8e49d9) | ||
* Use displayNames for players [`#17`](https://github.com/CookPete/react-player/issues/17) | ||
* Fix changelog link [`f82b351`](https://github.com/CookPete/react-player/commit/f82b351aa6008d2cbb2e3bd95859d8a90a8e49d9) | ||
#### [v0.3.0](https://github.com/CookPete/react-player/compare/v0.2.1...v0.3.0) | ||
> 24 December 2015 | ||
- Prime players to enable autoplay when out of focus [`#13`](https://github.com/CookPete/react-player/pulls/13) | ||
- Enable multiple YouTube players [`#15`](https://github.com/CookPete/react-player/issues/15) | ||
- Prime Youtube and Vimeo players with a blank video [`#7`](https://github.com/CookPete/react-player/issues/7) | ||
- Move defaultProps to separate props file [`90ef334`](https://github.com/CookPete/react-player/commit/90ef33485369fc7892d11b2e4da04ffb64df1e99) | ||
- Always render every player [`158fdde`](https://github.com/CookPete/react-player/commit/158fdde54b6188c9f9ca3034e9cb5bcc3fe3ff69) | ||
- Move progress logic from players to top level component [`17fbef8`](https://github.com/CookPete/react-player/commit/17fbef87e82889f01d8257900f7edc55b05918a2) | ||
* Prime players to enable autoplay when out of focus [`#13`](https://github.com/CookPete/react-player/pull/13) | ||
* Enable multiple YouTube players [`#15`](https://github.com/CookPete/react-player/issues/15) | ||
* Prime Youtube and Vimeo players with a blank video [`#7`](https://github.com/CookPete/react-player/issues/7) | ||
#### [v0.2.1](https://github.com/CookPete/react-player/compare/v0.2.0...v0.2.1) | ||
> 13 November 2015 | ||
- Remove autoplay and only play if props.playing is true when ready [`#10`](https://github.com/CookPete/react-player/issues/10) | ||
- Be a bit more const-friendly [`a15700a`](https://github.com/CookPete/react-player/commit/a15700ac95349037ea6f4d9f52fddeff9530bbf5) | ||
- Better npm publish cleanup scripts [`821be95`](https://github.com/CookPete/react-player/commit/821be95265fb774e904c24ff553997b94b7b2e42) | ||
- Add onError support to FilePlayer [`63f1660`](https://github.com/CookPete/react-player/commit/63f1660890c8d4f6ce8912537167bc4fdf621020) | ||
* Remove autoplay and only play if props.playing is true when ready [`#10`](https://github.com/CookPete/react-player/issues/10) | ||
* Be a bit more const-friendly [`a15700a`](https://github.com/CookPete/react-player/commit/a15700ac95349037ea6f4d9f52fddeff9530bbf5) | ||
* Better npm publish cleanup scripts [`821be95`](https://github.com/CookPete/react-player/commit/821be95265fb774e904c24ff553997b94b7b2e42) | ||
#### [v0.2.0](https://github.com/CookPete/react-player/compare/v0.1.0...v0.2.0) | ||
> 6 November 2015 | ||
- Configuration [`#4`](https://github.com/CookPete/react-player/pulls/4) | ||
- Abort SoundCloud streaming if url changes during requests [`#6`](https://github.com/CookPete/react-player/issues/6) | ||
- pass configuration options to players via props [`f1395d1`](https://github.com/CookPete/react-player/commit/f1395d134a05b36db1736179e0b58ac9bc6bd76c) | ||
- Add change log [`28dfdad`](https://github.com/CookPete/react-player/commit/28dfdad7983f51a1c5271cbcfc6971d43fd78108) | ||
- Update readme [`e99df95`](https://github.com/CookPete/react-player/commit/e99df95a0aea6cd0ad151fa063678244b10f05af) | ||
* Configuration [`#4`](https://github.com/CookPete/react-player/pull/4) | ||
* Abort SoundCloud streaming if url changes during requests [`#6`](https://github.com/CookPete/react-player/issues/6) | ||
* pass configuration options to players via props [`f1395d1`](https://github.com/CookPete/react-player/commit/f1395d134a05b36db1736179e0b58ac9bc6bd76c) | ||
#### [v0.1.0](https://github.com/CookPete/react-player/compare/v0.0.8...v0.1.0) | ||
> 19 October 2015 | ||
- Add FilePlayer for HTML5 media files [`66482d5`](https://github.com/CookPete/react-player/commit/66482d51c38f3967c378160e31fcd29a28ec4616) | ||
- Add very basic shallow rendering tests [`7beccbe`](https://github.com/CookPete/react-player/commit/7beccbec2746029ef068d3f990fcc349257092f6) | ||
- Vimeo player improvements [`d308aa6`](https://github.com/CookPete/react-player/commit/d308aa62c70d902f95c1184d704f54ee1fcc98d3) | ||
* Add FilePlayer for HTML5 media files [`66482d5`](https://github.com/CookPete/react-player/commit/66482d51c38f3967c378160e31fcd29a28ec4616) | ||
* Add very basic shallow rendering tests [`7beccbe`](https://github.com/CookPete/react-player/commit/7beccbec2746029ef068d3f990fcc349257092f6) | ||
* Update readme and package description [`237c51a`](https://github.com/CookPete/react-player/commit/237c51a9ed2f49d8eba6c6b2900ce94c4ed3e9c5) | ||
#### [v0.0.8](https://github.com/CookPete/react-player/compare/v0.0.7...v0.0.8) | ||
> 20 September 2015 | ||
- Use findDOMNode [`#3`](https://github.com/CookPete/react-player/issues/3) | ||
- Add basic unit tests for static canPlay method [`f1cde2c`](https://github.com/CookPete/react-player/commit/f1cde2c4fd6a939e944e82621908c26814a4b88b) | ||
- Improve SoundCloud URL regex [`3c4c5fa`](https://github.com/CookPete/react-player/commit/3c4c5fabc4f7440cd9931bd984174baf0f62dcce) | ||
* Use findDOMNode [`#3`](https://github.com/CookPete/react-player/issues/3) | ||
* Add basic unit tests for static canPlay method [`f1cde2c`](https://github.com/CookPete/react-player/commit/f1cde2c4fd6a939e944e82621908c26814a4b88b) | ||
* Improve SoundCloud URL regex [`3c4c5fa`](https://github.com/CookPete/react-player/commit/3c4c5fabc4f7440cd9931bd984174baf0f62dcce) | ||
#### [v0.0.7](https://github.com/CookPete/react-player/compare/v0.0.6...v0.0.7) | ||
> 10 September 2015 | ||
- Set correct initial state in ReactPlayer [`f912f13`](https://github.com/CookPete/react-player/commit/f912f13f322633cb8c0b4908edf4caf1b02ec589) | ||
- Guard against no iframe contentWindow in Vimeo player [`da15b0a`](https://github.com/CookPete/react-player/commit/da15b0ade7f8401566cfc64de5f80396556be30b) | ||
- Stop soundcloud track before playing another [`61bc61e`](https://github.com/CookPete/react-player/commit/61bc61e56fc5c7c2550d2a5e36bc072ae447329b) | ||
* Set correct initial state in ReactPlayer [`f912f13`](https://github.com/CookPete/react-player/commit/f912f13f322633cb8c0b4908edf4caf1b02ec589) | ||
* Stop soundcloud track before playing another [`61bc61e`](https://github.com/CookPete/react-player/commit/61bc61e56fc5c7c2550d2a5e36bc072ae447329b) | ||
* Guard against no iframe contentWindow in Vimeo player [`da15b0a`](https://github.com/CookPete/react-player/commit/da15b0ade7f8401566cfc64de5f80396556be30b) | ||
#### [v0.0.6](https://github.com/CookPete/react-player/compare/v0.0.5...v0.0.6) | ||
> 31 August 2015 | ||
- Use shouldComponentUpdate to prevent unnecessary rendering [`b7ca5a6`](https://github.com/CookPete/react-player/commit/b7ca5a66ff91578a49da76c5efeac5ddd45959db) | ||
- Fix onProgress bug [`1bf018e`](https://github.com/CookPete/react-player/commit/1bf018ed5db4474ee9ba1f103e6df77983565875) | ||
* Use shouldComponentUpdate to prevent unnecessary rendering [`b7ca5a6`](https://github.com/CookPete/react-player/commit/b7ca5a66ff91578a49da76c5efeac5ddd45959db) | ||
* Fix onProgress bug [`1bf018e`](https://github.com/CookPete/react-player/commit/1bf018ed5db4474ee9ba1f103e6df77983565875) | ||
#### [v0.0.5](https://github.com/CookPete/react-player/compare/v0.0.4...v0.0.5) | ||
> 27 August 2015 | ||
- Use external propTypes file [`225dfa0`](https://github.com/CookPete/react-player/commit/225dfa073e63206dca65202ce3cf4f23e56c84db) | ||
- Add onError support [`df8dc61`](https://github.com/CookPete/react-player/commit/df8dc61582af5202e3eeb8d6141465be5ed1bf84) | ||
- Add .npmignore [`81adedc`](https://github.com/CookPete/react-player/commit/81adedc585e4cf0b6380ccb08f3ff613e7eed6c6) | ||
* Add onError support [`df8dc61`](https://github.com/CookPete/react-player/commit/df8dc61582af5202e3eeb8d6141465be5ed1bf84) | ||
* Use external propTypes file [`225dfa0`](https://github.com/CookPete/react-player/commit/225dfa073e63206dca65202ce3cf4f23e56c84db) | ||
* Add .npmignore [`81adedc`](https://github.com/CookPete/react-player/commit/81adedc585e4cf0b6380ccb08f3ff613e7eed6c6) | ||
#### [v0.0.4](https://github.com/CookPete/react-player/compare/v0.0.3...v0.0.4) | ||
> 27 August 2015 | ||
- Add Array.find() polyfill [`#1`](https://github.com/CookPete/react-player/issues/1) | ||
- Add fetch polyfill libraries to package.json [`#1`](https://github.com/CookPete/react-player/issues/1) | ||
* Add Array.find() polyfill [`#1`](https://github.com/CookPete/react-player/issues/1) | ||
* Add fetch polyfill libraries to package.json [`#1`](https://github.com/CookPete/react-player/issues/1) | ||
#### [v0.0.3](https://github.com/CookPete/react-player/compare/v0.0.2...v0.0.3) | ||
> 26 August 2015 | ||
- Update build script [`c9b627f`](https://github.com/CookPete/react-player/commit/c9b627ff9a2e146822d169c89b4ea265f2296f8e) | ||
- Update readme [`2ec1b86`](https://github.com/CookPete/react-player/commit/2ec1b86aad52e8bf3080d607e140762e4e268216) | ||
* Update build script [`c9b627f`](https://github.com/CookPete/react-player/commit/c9b627ff9a2e146822d169c89b4ea265f2296f8e) | ||
* Update readme [`2ec1b86`](https://github.com/CookPete/react-player/commit/2ec1b86aad52e8bf3080d607e140762e4e268216) | ||
#### v0.0.2 | ||
> 24 August 2015 | ||
- Move react package to dev and peer dependencies [`f42ea0c`](https://github.com/CookPete/react-player/commit/f42ea0c73683d4c6e486a89684b4d6bb633a6969) | ||
- First commit [`a4deecf`](https://github.com/CookPete/react-player/commit/a4deecfa421645e8e79ac9e33debe64d5b028dae) | ||
* First commit [`a4deecf`](https://github.com/CookPete/react-player/commit/a4deecfa421645e8e79ac9e33debe64d5b028dae) | ||
* Move react package to dev and peer dependencies [`f42ea0c`](https://github.com/CookPete/react-player/commit/f42ea0c73683d4c6e486a89684b4d6bb633a6969) |
@@ -1,2 +0,2 @@ | ||
var ReactPlayer=function(e){function t(r){if(n[r])return n[r].exports;var o=n[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var n={};return t.m=e,t.c=n,t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=8)}([function(e,t){e.exports=React},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e){var t=e.match(P);if(t){var n=t[1];if(n.match(w))return i(n);if(k.test(n))return parseInt(n,10)}return 0}function i(e){for(var t=0,n=w.exec(e);null!==n;){var r=n,o=d(r,3),a=o[1],i=o[2];"h"===i&&(t+=60*parseInt(a,10)*60),"m"===i&&(t+=60*parseInt(a,10)),"s"===i&&(t+=parseInt(a,10)),n=w.exec(e)}return t}function l(){return Math.random().toString(36).substr(2,5)}function u(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:function(){return!0};return window[t]&&r(window[t])?Promise.resolve(window[t]):new Promise(function(r,o){if(n){var a=window[n];window[n]=function(){a&&a(),r(window[t])}}(0,v.default)(e,function(e){e&&o(e),n||r(window[t])})})}function s(e,t,n){var r=(0,b.default)(t.config,e.config),a=!0,i=!1,l=void 0;try{for(var u,s=g.DEPRECATED_CONFIG_PROPS[Symbol.iterator]();!(a=(u=s.next()).done);a=!0){var c=u.value;if(e[c]){var f=c.replace(/Config$/,"");if(r=(0,b.default)(r,o({},f,e[c])),n){var p="ReactPlayer: %c"+c+" %cis deprecated, please use the config prop instead – https://github.com/CookPete/react-player#config-prop";console.warn(p,"font-weight: bold","")}}}}catch(e){i=!0,l=e}finally{try{!a&&s.return&&s.return()}finally{if(i)throw l}}return r}function c(e){for(var t,n=arguments.length,r=Array(n>1?n-1:0),o=1;o<n;o++)r[o-1]=arguments[o];var a=(t=[]).concat.apply(t,r),i={},l=Object.keys(e),u=!0,s=!1,c=void 0;try{for(var f,p=l[Symbol.iterator]();!(u=(f=p.next()).done);u=!0){var y=f.value;-1===a.indexOf(y)&&(i[y]=e[y])}}catch(e){s=!0,c=e}finally{try{!u&&p.return&&p.return()}finally{if(s)throw c}}return i}function f(e){var t;if(!this.player||!this.player[e]){var n="ReactPlayer: "+this.constructor.displayName+" player could not call %c"+e+"%c – ";return this.player?this.player[e]||(n+="The method was not available"):n+="The player was not available",console.warn(n,"font-weight: bold",""),null}for(var r=arguments.length,o=Array(r>1?r-1:0),a=1;a<r;a++)o[a-1]=arguments[a];return(t=this.player)[e].apply(t,o)}function p(e){return null!==e&&("function"==typeof e||"object"===(void 0===e?"undefined":y(e)))}Object.defineProperty(t,"__esModule",{value:!0});var y="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},d=function(){function e(e,t){var n=[],r=!0,o=!1,a=void 0;try{for(var i,l=e[Symbol.iterator]();!(r=(i=l.next()).done)&&(n.push(i.value),!t||n.length!==t);r=!0);}catch(e){o=!0,a=e}finally{try{!r&&l.return&&l.return()}finally{if(o)throw a}}return n}return function(t,n){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t))return e(t,n);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}();t.parseStartTime=a,t.randomString=l,t.getSDK=u,t.getConfig=s,t.omit=c,t.callPlayer=f,t.isObject=p;var h=n(14),v=r(h),m=n(15),b=r(m),g=n(2),P=/[?&#](?:start|t)=([0-9hms]+)/,w=/(\d+)(h|m|s)/g,k=/^\d+$/},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DEPRECATED_CONFIG_PROPS=t.defaultProps=t.propTypes=void 0;var r=n(9),o=function(e){return e&&e.__esModule?e:{default:e}}(r),a=o.default.string,i=o.default.bool,l=o.default.number,u=o.default.array,s=o.default.oneOfType,c=o.default.shape,f=o.default.object,p=o.default.func;t.propTypes={url:s([a,u]),playing:i,loop:i,controls:i,volume:l,muted:i,playbackRate:l,width:s([a,l]),height:s([a,l]),style:f,progressFrequency:l,playsinline:i,config:c({soundcloud:c({options:f}),youtube:c({playerVars:f,preload:i}),facebook:c({appId:a}),dailymotion:c({params:f,preload:i}),vimeo:c({iframeParams:f,preload:i}),vidme:c({format:a}),file:c({attributes:f,tracks:u,forceAudio:i,forceHLS:i,forceDASH:i}),wistia:c({options:f})}),onReady:p,onStart:p,onPlay:p,onPause:p,onBuffer:p,onEnded:p,onError:p,onDuration:p,onSeek:p,onProgress:p},t.defaultProps={playing:!1,loop:!1,controls:!1,volume:.8,muted:!1,playbackRate:1,width:640,height:360,style:{},progressFrequency:1e3,playsinline:!1,config:{soundcloud:{options:{visual:!0,buying:!1,liking:!1,download:!1,sharing:!1,show_comments:!1,show_playcount:!1}},youtube:{playerVars:{autoplay:0,playsinline:1,showinfo:0,rel:0,iv_load_policy:3},preload:!1},facebook:{appId:"1309697205772819"},dailymotion:{params:{api:1,"endscreen-enable":!1},preload:!1},vimeo:{playerOptions:{autopause:!1,autoplay:!1,byline:!1,portrait:!1,title:!1},preload:!1},vidme:{format:null},file:{attributes:{},tracks:[],forceAudio:!1,forceHLS:!1,forceDASH:!1},wistia:{options:{}}},onReady:function(){},onStart:function(){},onPlay:function(){},onPause:function(){},onBuffer:function(){},onEnded:function(){},onError:function(){},onDuration:function(){},onSeek:function(){},onProgress:function(){}},t.DEPRECATED_CONFIG_PROPS=["soundcloudConfig","youtubeConfig","facebookConfig","dailymotionConfig","vimeoConfig","vidmeConfig","fileConfig","wistiaConfig"]},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function i(e){if(e instanceof Array){var t=!0,n=!1,r=void 0;try{for(var o,a=e[Symbol.iterator]();!(t=(o=a.next()).done);t=!0){var l=o.value;if("string"==typeof l&&i(l))return!0;if(i(l.src))return!0}}catch(e){n=!0,r=e}finally{try{!t&&a.return&&a.return()}finally{if(n)throw r}}return!1}return p.test(e)||y.test(e)||d.test(e)||h.test(e)}Object.defineProperty(t,"__esModule",{value:!0});var l=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},u=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),s=n(0),c=function(e){return e&&e.__esModule?e:{default:e}}(s),f=n(1),p=/\.(m4a|mp4a|mpga|mp2|mp2a|mp3|m2a|m3a|wav|weba|aac|oga|spx)($|\?)/i,y=/\.(mp4|og[gv]|webm|mov|m4v)($|\?)/i,d=/\.(m3u8)($|\?)/i,h=/\.(mpd)($|\?)/i,v=function(e){function t(){var e,n,a,i;r(this,t);for(var u=arguments.length,s=Array(u),f=0;f<u;f++)s[f]=arguments[f];return n=a=o(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(s))),a.onSeek=function(e){a.props.onSeek(e.target.currentTime)},a.renderSource=function(e){if("string"==typeof e)return c.default.createElement("source",{key:e,src:e});var t=e.src,n=e.type;return c.default.createElement("source",{key:t,src:t,type:n})},a.renderTrack=function(e,t){return c.default.createElement("track",l({key:t},e))},a.ref=function(e){a.player=e},i=n,o(a,i)}return a(t,e),u(t,[{key:"componentDidMount",value:function(){this.addListeners()}},{key:"componentWillReceiveProps",value:function(e){this.shouldUseAudio(this.props)!==this.shouldUseAudio(e)&&this.removeListeners()}},{key:"componentDidUpdate",value:function(e){this.shouldUseAudio(this.props)!==this.shouldUseAudio(e)&&this.addListeners()}},{key:"componentWillUnmount",value:function(){this.removeListeners()}},{key:"addListeners",value:function(){var e=this.props,t=e.onReady,n=e.onPlay,r=e.onPause,o=e.onEnded,a=e.onError,i=e.playsinline;this.player.addEventListener("canplay",t),this.player.addEventListener("play",n),this.player.addEventListener("pause",r),this.player.addEventListener("seeked",this.onSeek),this.player.addEventListener("ended",o),this.player.addEventListener("error",a),i&&(this.player.setAttribute("playsinline",""),this.player.setAttribute("webkit-playsinline",""))}},{key:"removeListeners",value:function(){var e=this.props,t=e.onReady,n=e.onPlay,r=e.onPause,o=e.onEnded,a=e.onError;this.player.removeEventListener("canplay",t),this.player.removeEventListener("play",n),this.player.removeEventListener("pause",r),this.player.removeEventListener("seeked",this.onSeek),this.player.removeEventListener("ended",o),this.player.removeEventListener("error",a)}},{key:"shouldUseAudio",value:function(e){return p.test(e.url)||e.config.file.forceAudio}},{key:"shouldUseHLS",value:function(e){return d.test(e)||this.props.config.file.forceHLS}},{key:"shouldUseDASH",value:function(e){return h.test(e)||this.props.config.file.forceDASH}},{key:"load",value:function(e){var t=this;this.shouldUseHLS(e)&&(0,f.getSDK)("https://cdn.jsdelivr.net/hls.js/latest/hls.min.js","Hls").then(function(n){t.hls=new n,t.hls.loadSource(e),t.hls.attachMedia(t.player)}),this.shouldUseDASH(e)&&(0,f.getSDK)("https://cdnjs.cloudflare.com/ajax/libs/dashjs/2.5.0/dash.all.min.js","dashjs").then(function(n){t.dash=n.MediaPlayer().create(),t.dash.initialize(t.player,e,t.props.playing),t.dash.getDebug().setLogToBrowserConsole(!1)})}},{key:"play",value:function(){var e=this.player.play();e&&e.catch(this.props.onError)}},{key:"pause",value:function(){this.player.pause()}},{key:"stop",value:function(){this.player.removeAttribute("src"),this.hls&&this.hls.destroy(),this.dash&&this.dash.reset()}},{key:"seekTo",value:function(e){this.player.currentTime=e}},{key:"setVolume",value:function(e){this.player.volume=e}},{key:"setPlaybackRate",value:function(e){this.player.playbackRate=e}},{key:"getDuration",value:function(){return this.player.duration}},{key:"getCurrentTime",value:function(){return this.player.currentTime}},{key:"getSecondsLoaded",value:function(){return 0===this.player.buffered.length?0:this.player.buffered.end(0)}},{key:"render",value:function(){var e=this.props,t=e.url,n=e.loop,r=e.controls,o=e.config,a=e.width,i=e.height,u=this.shouldUseAudio(this.props),s=this.shouldUseHLS(t),f=this.shouldUseDASH(t),p=u?"audio":"video",y=t instanceof Array||s||f?void 0:t,d={width:a&&"auto"!==a?"100%":a,height:i&&"auto"!==i?"100%":i};return c.default.createElement(p,l({ref:this.ref,src:y,style:d,preload:"auto",controls:r,loop:n},o.file.attributes),t instanceof Array&&t.map(this.renderSource),o.file.tracks.map(this.renderTrack))}}]),t}(s.Component);v.displayName="FilePlayer",v.canPlay=i,t.default=v,e.exports=t.default},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},l=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),u=n(0),s=function(e){return e&&e.__esModule?e:{default:e}}(u),c=n(1),f="YT",p=/^(?:https?:\/\/)?(?:www\.|m\.)?(?:youtu\.be\/|youtube\.com\/(?:embed\/|v\/|watch\?v=|watch\?.+&v=))((\w|-){11})(?:\S+)?$/,y=function(e){function t(){var e,n,a,i;r(this,t);for(var l=arguments.length,u=Array(l),s=0;s<l;s++)u[s]=arguments[s];return n=a=o(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(u))),a.callPlayer=c.callPlayer,a.onStateChange=function(e){var t=e.data,n=a.props,r=n.onPlay,o=n.onPause,i=n.onBuffer,l=n.onEnded,u=n.onReady,s=window[f].PlayerState,c=s.PLAYING,p=s.PAUSED,y=s.BUFFERING,d=s.ENDED,h=s.CUED;t===c&&r(),t===p&&o(),t===y&&i(),t===d&&l(),t===h&&u()},a.ref=function(e){a.container=e},i=n,o(a,i)}return a(t,e),l(t,[{key:"load",value:function(e,t){var n=this,r=this.props,o=r.playsinline,a=r.controls,l=r.config,u=r.onError,s=e&&e.match(p)[1];if(t)return void this.player.cueVideoById({videoId:s,startSeconds:(0,c.parseStartTime)(e)});(0,c.getSDK)("https://www.youtube.com/iframe_api",f,"onYouTubeIframeAPIReady",function(e){return e.loaded}).then(function(t){n.player=new t.Player(n.container,{width:"100%",height:"100%",videoId:s,playerVars:i({controls:a?1:0,start:(0,c.parseStartTime)(e),origin:window.location.origin,playsinline:o},l.youtube.playerVars),events:{onReady:n.props.onReady,onStateChange:n.onStateChange,onError:function(e){return u(e.data)}}})},u)}},{key:"play",value:function(){this.callPlayer("playVideo")}},{key:"pause",value:function(){this.callPlayer("pauseVideo")}},{key:"stop",value:function(){document.body.contains(this.callPlayer("getIframe"))&&this.callPlayer("stopVideo")}},{key:"seekTo",value:function(e){this.callPlayer("seekTo",e)}},{key:"setVolume",value:function(e){this.callPlayer("setVolume",100*e)}},{key:"setPlaybackRate",value:function(e){this.callPlayer("setPlaybackRate",e)}},{key:"getDuration",value:function(){return this.callPlayer("getDuration")}},{key:"getCurrentTime",value:function(){return this.callPlayer("getCurrentTime")}},{key:"getSecondsLoaded",value:function(){return this.callPlayer("getVideoLoadedFraction")*this.getDuration()}},{key:"render",value:function(){var e=i({width:"100%",height:"100%"},this.props.style);return s.default.createElement("div",{style:e},s.default.createElement("div",{ref:this.ref}))}}]),t}(u.Component);y.displayName="YouTube",y.canPlay=function(e){return p.test(e)},y.loopOnEnded=!0,t.default=y,e.exports=t.default},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},l=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),u=n(0),s=function(e){return e&&e.__esModule?e:{default:e}}(u),c=n(1),f=/https?:\/\/(?:www\.|player\.)?vimeo.com\/(?:channels\/(?:\w+\/)?|groups\/([^\/]*)\/videos\/|album\/(\d+)\/video\/|video\/|)(\d+)(?:$|\/|\?)/,p=function(e){function t(){var e,n,a,i;r(this,t);for(var l=arguments.length,u=Array(l),s=0;s<l;s++)u[s]=arguments[s];return n=a=o(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(u))),a.callPlayer=c.callPlayer,a.duration=null,a.currentTime=null,a.secondsLoaded=null,a.ref=function(e){a.container=e},i=n,o(a,i)}return a(t,e),l(t,[{key:"load",value:function(e,t){var n=this,r=e.match(f)[3];if(this.duration=null,t)return void this.player.loadVideo(r).catch(this.props.onError);(0,c.getSDK)("https://player.vimeo.com/api/player.js","Vimeo").then(function(t){n.player=new t.Player(n.container,i({},n.props.config.vimeo.playerOptions,{url:e,loop:n.props.loop})),n.player.ready().then(function(){var e=n.container.querySelector("iframe");e.style.width="100%",e.style.height="100%"}).catch(n.props.onError),n.player.on("loaded",function(){n.props.onReady(),n.player.getDuration().then(function(e){n.duration=e})}),n.player.on("play",n.props.onPlay),n.player.on("pause",n.props.onPause),n.player.on("seeked",function(e){return n.props.onSeek(e.seconds)}),n.player.on("ended",n.props.onEnded),n.player.on("error",n.props.onError),n.player.on("timeupdate",function(e){var t=e.seconds;n.currentTime=t}),n.player.on("progress",function(e){var t=e.seconds;n.secondsLoaded=t})},this.props.onError)}},{key:"play",value:function(){this.callPlayer("play")}},{key:"pause",value:function(){this.callPlayer("pause")}},{key:"stop",value:function(){this.callPlayer("unload")}},{key:"seekTo",value:function(e){this.callPlayer("setCurrentTime",e)}},{key:"setVolume",value:function(e){this.callPlayer("setVolume",e)}},{key:"getDuration",value:function(){return this.duration}},{key:"getCurrentTime",value:function(){return this.currentTime}},{key:"getSecondsLoaded",value:function(){return this.secondsLoaded}},{key:"render",value:function(){var e=i({width:"100%",height:"100%",overflow:"hidden",backgroundColor:"black"},this.props.style);return s.default.createElement("div",{style:e,ref:this.ref})}}]),t}(u.Component);p.displayName="Vimeo",p.canPlay=function(e){return f.test(e)},t.default=p,e.exports=t.default},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},l=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),u=n(0),s=function(e){return e&&e.__esModule?e:{default:e}}(u),c=n(1),f=/^.+dailymotion.com\/(video|hub)\/([^_]+)[^#]*(#video=([^_&]+))?/,p=function(e){function t(){var e,n,a,i;r(this,t);for(var l=arguments.length,u=Array(l),s=0;s<l;s++)u[s]=arguments[s];return n=a=o(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(u))),a.callPlayer=c.callPlayer,a.onDurationChange=function(){var e=a.getDuration();a.props.onDuration(e)},a.ref=function(e){a.container=e},i=n,o(a,i)}return a(t,e),l(t,[{key:"parseId",value:function(e){var t=e.match(f);return t[4]||t[2]}},{key:"load",value:function(e){var t=this,n=this.props,r=n.controls,o=n.config,a=n.onError,l=n.playing,u=this.parseId(e);if(this.player)return void this.player.load(u,{start:(0,c.parseStartTime)(e),autoplay:l});(0,c.getSDK)("https://api.dmcdn.net/all.js","DM","dmAsyncInit",function(e){return e.player}).then(function(n){var l=n.player;t.player=new l(t.container,{width:"100%",height:"100%",video:u,params:i({controls:r,autoplay:t.props.playing,start:(0,c.parseStartTime)(e),origin:window.location.origin},o.dailymotion.params),events:{apiready:t.props.onReady,seeked:function(){return t.props.onSeek(t.player.currentTime)},video_end:t.props.onEnded,durationchange:t.onDurationChange,pause:t.props.onPause,playing:t.props.onPlay,waiting:t.props.onBuffer,error:function(e){return a(e)}}})},a)}},{key:"play",value:function(){this.callPlayer("play")}},{key:"pause",value:function(){this.callPlayer("pause")}},{key:"stop",value:function(){}},{key:"seekTo",value:function(e){this.callPlayer("seek",e)}},{key:"setVolume",value:function(e){this.callPlayer("setVolume",e)}},{key:"getDuration",value:function(){return this.player.duration||null}},{key:"getCurrentTime",value:function(){return this.player.currentTime}},{key:"getSecondsLoaded",value:function(){return this.player.bufferedTime}},{key:"render",value:function(){var e=i({width:"100%",height:"100%",backgroundColor:"black"},this.props.style);return s.default.createElement("div",{style:e},s.default.createElement("div",{ref:this.ref}))}}]),t}(u.Component);p.displayName="DailyMotion",p.canPlay=function(e){return f.test(e)},p.loopOnEnded=!0,t.default=p,e.exports=t.default},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},l=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),u=n(0),s=function(e){return e&&e.__esModule?e:{default:e}}(u),c=n(2),f=function(e){function t(){var e,n,a,i;r(this,t);for(var l=arguments.length,u=Array(l),s=0;s<l;s++)u[s]=arguments[s];return n=a=o(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(u))),a.mounted=!1,a.isReady=!1,a.isPlaying=!1,a.startOnPlay=!0,a.seekOnPlay=null,a.onReady=function(){if(a.mounted){var e=a.props,t=e.onReady,n=e.playing;a.isReady=!0,a.loadingSDK=!1,t(),n&&(a.loadOnReady?(a.player.load(a.loadOnReady),a.loadOnReady=null):a.player.play()),a.onDurationCheck()}},a.onPlay=function(){a.isPlaying=!0;var e=a.props,t=e.volume,n=e.muted,r=e.onStart,o=e.onPlay,i=e.playbackRate;a.startOnPlay&&(a.player.setPlaybackRate&&a.player.setPlaybackRate(i),a.player.setVolume(n?0:t),r(),a.startOnPlay=!1),o(),a.seekOnPlay&&(a.seekTo(a.seekOnPlay),a.seekOnPlay=null),a.onDurationCheck()},a.onPause=function(){a.isPlaying=!1,a.props.onPause()},a.onEnded=function(){var e=a.props,t=e.activePlayer,n=e.loop,r=e.onEnded;t.loopOnEnded&&n&&a.seekTo(0),r()},a.onDurationCheck=function(){clearTimeout(a.durationCheckTimeout);var e=a.getDuration();e?a.props.onDuration(e):a.durationCheckTimeout=setTimeout(a.onDurationCheck,100)},a.ref=function(e){e&&(a.player=e)},i=n,o(a,i)}return a(t,e),l(t,[{key:"componentDidMount",value:function(){this.mounted=!0,this.player.load(this.props.url)}},{key:"componentWillUnmount",value:function(){this.isReady&&this.player.stop(),this.mounted=!1}},{key:"componentDidUpdate",value:function(e){var t=this.props,n=t.activePlayer,r=t.url;e.activePlayer!==n&&(this.isReady=!1,this.seekOnPlay=null,this.startOnPlay=!0,this.player.load(r,this.isReady))}},{key:"componentWillReceiveProps",value:function(e){var t=this.props,n=t.activePlayer,r=t.url,o=t.playing,a=t.volume,i=t.muted,l=t.playbackRate;if(n!==e.activePlayer)return void this.player.stop();r!==e.url&&this.player.load(e.url,this.isReady),r&&!e.url&&this.player.stop(),o||!e.playing||this.isPlaying||this.player.play(),o&&!e.playing&&this.isPlaying&&this.player.pause(),a===e.volume||e.muted||this.player.setVolume(e.volume),i!==e.muted&&this.player.setVolume(e.muted?0:e.volume),l!==e.playbackRate&&this.player.setPlaybackRate&&this.player.setPlaybackRate(e.playbackRate)}},{key:"getCurrentTime",value:function(){return this.isReady?this.player.getCurrentTime():null}},{key:"getSecondsLoaded",value:function(){return this.isReady?this.player.getSecondsLoaded():null}},{key:"getDuration",value:function(){return this.isReady?this.player.getDuration():null}},{key:"seekTo",value:function(e){var t=this;if(!this.isReady&&0!==e)return this.seekOnPlay=e,void setTimeout(function(){t.seekOnPlay=null},5e3);if(e>0&&e<1){var n=this.player.getDuration();return n?void this.player.seekTo(n*e):void console.warn("ReactPlayer: could not seek using fraction – duration not yet available")}this.player.seekTo(e)}},{key:"render",value:function(){var e=this.props.activePlayer;return s.default.createElement(e,i({},this.props,{ref:this.ref,onReady:this.onReady,onPlay:this.onPlay,onEnded:this.onEnded}))}}]),t}(u.Component);f.displayName="Player",f.propTypes=c.propTypes,f.defaultProps=c.defaultProps,t.default=f,e.exports=t.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t<e.length;t++)n[t]=e[t];return n}return Array.from(e)}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var u=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},s=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),c=n(0),f=r(c),p=n(2),y=n(1),d=n(16),h=r(d),v=n(7),m=r(v),b=n(3),g=r(b),P=n(23),w=r(P),k=Object.keys(p.propTypes),ReactPlayer=function(e){function ReactPlayer(){var e,t,n,r;a(this,ReactPlayer);for(var o=arguments.length,l=Array(o),u=0;u<o;u++)l[u]=arguments[u];return t=n=i(this,(e=ReactPlayer.__proto__||Object.getPrototypeOf(ReactPlayer)).call.apply(e,[this].concat(l))),n.config=(0,y.getConfig)(n.props,p.defaultProps,!0),n.seekTo=function(e){if(!n.player)return null;n.player.seekTo(e)},n.getDuration=function(){return n.player?n.player.getDuration():null},n.getCurrentTime=function(){return n.player?n.player.getCurrentTime():null},n.getInternalPlayer=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"player";return n.player?n.player[e]:null},n.progress=function(){if(n.props.url&&n.player&&n.player.isReady){var e=n.player.getCurrentTime()||0,t=n.player.getSecondsLoaded(),r=n.player.getDuration();if(r){var o={playedSeconds:e,played:e/r};null!==t&&(o.loadedSeconds=t,o.loaded=t/r),o.played===n.prevPlayed&&o.loaded===n.prevLoaded||n.props.onProgress(o),n.prevPlayed=o.played,n.prevLoaded=o.loaded}}n.progressTimeout=setTimeout(n.progress,n.props.progressFrequency)},n.wrapperRef=function(e){n.wrapper=e},n.activePlayerRef=function(e){n.player=e},r=t,i(n,r)}return l(ReactPlayer,e),s(ReactPlayer,[{key:"componentDidMount",value:function(){this.progress()}},{key:"componentWillUnmount",value:function(){clearTimeout(this.progressTimeout)}},{key:"shouldComponentUpdate",value:function(e){var t=!0,n=!1,r=void 0;try{for(var o,a=Object.keys(this.props)[Symbol.iterator]();!(t=(o=a.next()).done);t=!0){var i=o.value,l=this.props[i];if(!(0,y.isObject)(l)&&l!==e[i])return!0}}catch(e){n=!0,r=e}finally{try{!t&&a.return&&a.return()}finally{if(n)throw r}}return!1}},{key:"getActivePlayer",value:function(e){var t=!0,n=!1,r=void 0;try{for(var o,a=h.default[Symbol.iterator]();!(t=(o=a.next()).done);t=!0){var i=o.value;if(i.canPlay(e))return i}}catch(e){n=!0,r=e}finally{try{!t&&a.return&&a.return()}finally{if(n)throw r}}return g.default}},{key:"renderActivePlayer",value:function(e){if(!e)return null;var t=this.getActivePlayer(e);return f.default.createElement(m.default,u({},this.props,{key:t.displayName,ref:this.activePlayerRef,config:this.config,activePlayer:t}))}},{key:"render",value:function(){var e=this.props,t=e.url,n=e.style,r=e.width,a=e.height,i=(0,y.omit)(this.props,k,p.DEPRECATED_CONFIG_PROPS),l=this.renderActivePlayer(t),s=(0,w.default)(t,this.config);return f.default.createElement("div",u({ref:this.wrapperRef,style:u({},n,{width:r,height:a})},i),[l].concat(o(s)))}}]),ReactPlayer}(c.Component);ReactPlayer.displayName="ReactPlayer",ReactPlayer.propTypes=p.propTypes,ReactPlayer.defaultProps=p.defaultProps,ReactPlayer.canPlay=function(e){var t=!0,n=!1,r=void 0;try{for(var o,a=h.default[Symbol.iterator]();!(t=(o=a.next()).done);t=!0){if(o.value.canPlay(e))return!0}}catch(e){n=!0,r=e}finally{try{!t&&a.return&&a.return()}finally{if(n)throw r}}return!1},t.default=ReactPlayer,e.exports=t.default},function(e,t,n){"use strict";"function"==typeof Symbol&&Symbol.iterator;e.exports=n(10)()},function(e,t,n){"use strict";var r=n(11),o=n(12),a=n(13);e.exports=function(){function e(e,t,n,r,i,l){l!==a&&o(!1,"Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types")}function t(){return e}e.isRequired=e;var n={array:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t};return n.checkPropTypes=r,n.PropTypes=n,n}},function(e,t,n){"use strict";function r(e){return function(){return e}}var o=function(){};o.thatReturns=r,o.thatReturnsFalse=r(!1),o.thatReturnsTrue=r(!0),o.thatReturnsNull=r(null),o.thatReturnsThis=function(){return this},o.thatReturnsArgument=function(e){return e},e.exports=o},function(e,t,n){"use strict";function r(e,t,n,r,a,i,l,u){if(o(t),!e){var s;if(void 0===t)s=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var c=[n,r,a,i,l,u],f=0;s=new Error(t.replace(/%s/g,function(){return c[f++]})),s.name="Invariant Violation"}throw s.framesToPop=1,s}}var o=function(e){};e.exports=r},function(e,t,n){"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},function(e,t,n){"use strict";function r(e,t){for(var n in t)e.setAttribute(n,t[n])}function o(e,t){e.onload=function(){this.onerror=this.onload=null,t(null,e)},e.onerror=function(){this.onerror=this.onload=null,t(new Error("Failed to load "+this.src),e)}}function a(e,t){e.onreadystatechange=function(){"complete"!=this.readyState&&"loaded"!=this.readyState||(this.onreadystatechange=null,t(null,e))}}e.exports=function(e,t,n){var i=document.head||document.getElementsByTagName("head")[0],l=document.createElement("script");"function"==typeof t&&(n=t,t={}),t=t||{},n=n||function(){},l.type=t.type||"text/javascript",l.charset=t.charset||"utf8",l.async=!("async"in t)||!!t.async,l.src=e,t.attrs&&r(l,t.attrs),t.text&&(l.text=""+t.text),("onload"in l?o:a)(l,n),l.onload||o(l,n),i.appendChild(l)}},function(e,t,n){"use strict";function r(e){return!!e&&"object"===(void 0===e?"undefined":f(e))}function o(e){var t=Object.prototype.toString.call(e);return"[object RegExp]"===t||"[object Date]"===t||a(e)}function a(e){return e.$$typeof===d}function i(e){return Array.isArray(e)?[]:{}}function l(e,t){return t&&!1===t.clone||!p(e)?e:c(i(e),e,t)}function u(e,t,n){return e.concat(t).map(function(e){return l(e,n)})}function s(e,t,n){var r={};return p(e)&&Object.keys(e).forEach(function(t){r[t]=l(e[t],n)}),Object.keys(t).forEach(function(o){p(t[o])&&e[o]?r[o]=c(e[o],t[o],n):r[o]=l(t[o],n)}),r}function c(e,t,n){var r=Array.isArray(t),o=Array.isArray(e),a=n||{arrayMerge:u};if(r===o)return r?(a.arrayMerge||u)(e,t,n):s(e,t,n);return l(t,n)}Object.defineProperty(t,"__esModule",{value:!0});var f="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},p=function(e){return r(e)&&!o(e)},y="function"==typeof Symbol&&Symbol.for,d=y?Symbol.for("react.element"):60103;c.all=function(e,t){if(!Array.isArray(e))throw new Error("first argument should be an array");return e.reduce(function(e,n){return c(e,n,t)},{})};var h=c;t.default=h,e.exports=t.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var o=n(4),a=r(o),i=n(17),l=r(i),u=n(5),s=r(u),c=n(18),f=r(c),p=n(19),y=r(p),d=n(20),h=r(d),v=n(21),m=r(v),b=n(22),g=r(b),P=n(6),w=r(P),k=n(3),_=r(k);t.default=[a.default,l.default,s.default,f.default,y.default,h.default,m.default,g.default,w.default,_.default],e.exports=t.default},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},l=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),u=n(0),s=function(e){return e&&e.__esModule?e:{default:e}}(u),c=n(1),f=/^https?:\/\/(soundcloud.com|snd.sc)\/([a-z0-9-_]+\/[a-z0-9-_]+)$/,p=function(e){function t(){var e,n,a,i;r(this,t);for(var l=arguments.length,u=Array(l),s=0;s<l;s++)u[s]=arguments[s];return n=a=o(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(u))),a.callPlayer=c.callPlayer,a.duration=null,a.currentTime=null,a.fractionLoaded=null,a.ref=function(e){a.iframe=e},i=n,o(a,i)}return a(t,e),l(t,[{key:"load",value:function(e,t){var n=this;(0,c.getSDK)("https://w.soundcloud.com/player/api.js","SC").then(function(r){var o=r.Widget.Events,a=o.PLAY,l=o.PLAY_PROGRESS,u=o.PAUSE,s=o.FINISH,c=o.ERROR;t||(n.player=r.Widget(n.iframe),n.player.bind(a,n.props.onPlay),n.player.bind(u,n.props.onPause),n.player.bind(l,function(e){n.currentTime=e.currentPosition/1e3,n.fractionLoaded=e.loadedProgress}),n.player.bind(s,function(){return n.props.onEnded()}),n.player.bind(c,function(e){return n.props.onError(e)})),n.player.load(e,i({},n.props.config.soundcloud.options,{callback:function(){n.player.getDuration(function(e){n.duration=e/1e3,n.props.onReady()})}}))})}},{key:"play",value:function(){this.callPlayer("play")}},{key:"pause",value:function(){this.callPlayer("pause")}},{key:"stop",value:function(){}},{key:"seekTo",value:function(e){this.callPlayer("seekTo",1e3*e)}},{key:"setVolume",value:function(e){this.callPlayer("setVolume",100*e)}},{key:"getDuration",value:function(){return this.duration}},{key:"getCurrentTime",value:function(){return this.currentTime}},{key:"getSecondsLoaded",value:function(){return this.fractionLoaded*this.duration}},{key:"render",value:function(){var e={width:"100%",height:"100%"};return s.default.createElement("iframe",{ref:this.ref,src:"https://w.soundcloud.com/player/?url="+encodeURIComponent(this.props.url),style:e,frameBorder:0})}}]),t}(u.Component);p.displayName="SoundCloud",p.canPlay=function(e){return f.test(e)},p.loopOnEnded=!0,t.default=p,e.exports=t.default},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),l=n(0),u=function(e){return e&&e.__esModule?e:{default:e}}(l),s=n(1),c="//connect.facebook.net/en_US/sdk.js",f=/^https:\/\/www\.facebook\.com\/([^\/?].+\/)?video(s|\.php)[\/?].*$/,p="facebook-player-",y=function(e){function t(){var e,n,a,i;r(this,t);for(var l=arguments.length,u=Array(l),c=0;c<l;c++)u[c]=arguments[c];return n=a=o(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(u))),a.callPlayer=s.callPlayer,a.playerID=p+(0,s.randomString)(),i=n,o(a,i)}return a(t,e),i(t,[{key:"load",value:function(e,t){var n=this;if(t)return void(0,s.getSDK)(c,"FB","fbAsyncInit").then(function(e){return e.XFBML.parse()});(0,s.getSDK)(c,"FB","fbAsyncInit").then(function(e){e.init({appId:n.props.config.facebook.appId,xfbml:!0,version:"v2.5"}),e.Event.subscribe("xfbml.ready",function(e){"video"===e.type&&e.id===n.playerID&&(n.player=e.instance,n.player.subscribe("startedPlaying",n.props.onPlay),n.player.subscribe("paused",n.props.onPause),n.player.subscribe("finishedPlaying",n.props.onEnded),n.player.subscribe("startedBuffering",n.props.onBuffer),n.player.subscribe("error",n.props.onError),n.props.onReady())})})}},{key:"play",value:function(){this.callPlayer("play")}},{key:"pause",value:function(){this.callPlayer("pause")}},{key:"stop",value:function(){}},{key:"seekTo",value:function(e){this.callPlayer("seek",e)}},{key:"setVolume",value:function(e){0!==e&&this.callPlayer("unmute"),this.callPlayer("setVolume",e)}},{key:"getDuration",value:function(){return this.callPlayer("getDuration")}},{key:"getCurrentTime",value:function(){return this.callPlayer("getCurrentPosition")}},{key:"getSecondsLoaded",value:function(){return null}},{key:"render",value:function(){var e={width:"100%",height:"100%",backgroundColor:"black"};return u.default.createElement("div",{style:e,id:this.playerID,className:"fb-video","data-href":this.props.url,"data-allowfullscreen":"true","data-controls":this.props.controls?void 0:"false"})}}]),t}(l.Component);y.displayName="Facebook",y.canPlay=function(e){return f.test(e)},y.loopOnEnded=!0,t.default=y,e.exports=t.default},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),l=n(0),u=function(e){return e&&e.__esModule?e:{default:e}}(l),s=n(1),c=/^https?:\/\/streamable.com\/([a-z0-9]+)$/,f=function(e){function t(){var e,n,a,i;r(this,t);for(var l=arguments.length,u=Array(l),c=0;c<l;c++)u[c]=arguments[c];return n=a=o(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(u))),a.callPlayer=s.callPlayer,a.duration=null,a.currentTime=null,a.secondsLoaded=null,a.ref=function(e){a.iframe=e},i=n,o(a,i)}return a(t,e),i(t,[{key:"load",value:function(e){var t=this;(0,s.getSDK)("//cdn.embed.ly/player-0.0.12.min.js","playerjs").then(function(e){t.player=new e.Player(t.iframe),t.player.on("ready",t.props.onReady),t.player.on("play",t.props.onPlay),t.player.on("pause",t.props.onPause),t.player.on("seeked",t.props.onSeek),t.player.on("ended",t.props.onEnded),t.player.on("error",t.props.onError),t.player.on("timeupdate",function(e){var n=e.duration,r=e.seconds;t.duration=n,t.currentTime=r}),t.player.on("progress",function(e){var n=e.percent;t.duration&&(t.secondsLoaded=t.duration*n)})},this.props.onError)}},{key:"play",value:function(){this.callPlayer("play")}},{key:"pause",value:function(){this.callPlayer("pause")}},{key:"stop",value:function(){}},{key:"seekTo",value:function(e){this.callPlayer("setCurrentTime",e)}},{key:"setVolume",value:function(e){this.callPlayer("setVolume",100*e)}},{key:"getDuration",value:function(){return this.duration}},{key:"getCurrentTime",value:function(){return this.currentTime}},{key:"getSecondsLoaded",value:function(){return this.secondsLoaded}},{key:"render",value:function(){var e=this.props.url.match(c)[1],t={width:"100%",height:"100%"};return u.default.createElement("iframe",{ref:this.ref,src:"https://streamable.com/o/"+e,frameBorder:"0",scrolling:"no",style:t,allowFullScreen:!0})}}]),t}(l.Component);f.displayName="Streamable",f.canPlay=function(e){return c.test(e)},t.default=f,e.exports=t.default},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),l=n(3),u=function(e){return e&&e.__esModule?e:{default:e}}(l),s=/^https?:\/\/vid.me\/([a-z0-9]+)$/i,c={},f=function(e){function t(){return r(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return a(t,e),i(t,[{key:"getData",value:function(e){var t=this.props.onError,n=e.match(s)[1];return c[n]?Promise.resolve(c[n]):window.fetch("https://api.vid.me/videoByUrl/"+n).then(function(e){if(200===e.status)return c[n]=e.json(),c[n];t(new Error("Vidme track could not be resolved"))})}},{key:"getURL",value:function(e){var t=e.video,n=this.props.config;if(n.vidme.format&&t.formats&&0!==t.formats.length){var r=t.formats.findIndex(function(e){return e.type===n.vidme.format});if(-1!==r)return t.formats[r].uri;console.warn('Vidme format "'+n.vidme.format+'" was not found for '+t.full_url)}return t.complete_url}},{key:"load",value:function(e){var t=this,n=this.props.onError;this.stop(),this.getData(e).then(function(e){t.player.src=t.getURL(e)},n)}}]),t}(u.default);f.displayName="Vidme",f.canPlay=function(e){return s.test(e)},t.default=f,e.exports=t.default},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},l=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),u=n(0),s=function(e){return e&&e.__esModule?e:{default:e}}(u),c=n(1),f=/^https?:\/\/(.+)?(wistia.com|wi.st)\/(medias|embed)\/(.*)$/,p=function(e){function t(){var e,n,a,i;r(this,t);for(var l=arguments.length,u=Array(l),s=0;s<l;s++)u[s]=arguments[s];return n=a=o(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(u))),a.callPlayer=c.callPlayer,i=n,o(a,i)}return a(t,e),l(t,[{key:"getID",value:function(e){return e&&e.match(f)[4]}},{key:"load",value:function(e){var t=this,n=this.props,r=n.controls,o=n.onReady,a=n.onPlay,l=n.onPause,u=n.onSeek,s=n.onEnded,f=n.config;(0,c.getSDK)("//fast.wistia.com/assets/external/E-v1.js","Wistia").then(function(){window._wq=window._wq||[],window._wq.push({id:t.getID(e),options:i({controlsVisibleOnLoad:r},f.wistia.options),onReady:function(e){t.player=e,t.player.bind("play",a),t.player.bind("pause",l),t.player.bind("seek",u),t.player.bind("end",s),o()}})})}},{key:"play",value:function(){this.callPlayer("play")}},{key:"pause",value:function(){this.callPlayer("pause")}},{key:"stop",value:function(){this.callPlayer("remove")}},{key:"seekTo",value:function(e){this.callPlayer("time",e)}},{key:"setVolume",value:function(e){this.callPlayer("volume",e)}},{key:"setPlaybackRate",value:function(e){this.callPlayer("playbackRate",e)}},{key:"getDuration",value:function(){return this.callPlayer("duration")}},{key:"getCurrentTime",value:function(){return this.callPlayer("time")}},{key:"getSecondsLoaded",value:function(){return null}},{key:"render",value:function(){var e=this.getID(this.props.url),t="wistia_embed wistia_async_"+e,n={width:"100%",height:"100%"};return s.default.createElement("div",{key:e,className:t,style:n})}}]),t}(u.Component);p.displayName="Wistia",p.canPlay=function(e){return f.test(e)},p.loopOnEnded=!0,t.default=p,e.exports=t.default},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),l=n(0),u=function(e){return e&&e.__esModule?e:{default:e}}(l),s=n(1),c=/^(?:https?:\/\/)?(?:www\.)twitch\.tv\/videos\/(\d+)($|\?)/,f=/^(?:https?:\/\/)?(?:www\.)twitch\.tv\/([a-z0-9_]+)($|\?)/,p="twitch-player-",y=function(e){function t(){var e,n,a,i;r(this,t);for(var l=arguments.length,u=Array(l),c=0;c<l;c++)u[c]=arguments[c];return n=a=o(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(u))),a.callPlayer=s.callPlayer,a.playerID=p+(0,s.randomString)(),i=n,o(a,i)}return a(t,e),i(t,[{key:"load",value:function(e,t){var n=this,r=this.props,o=r.playsinline,a=r.onError,i=f.test(e),l=i?e.match(f)[1]:e.match(c)[1];if(t)return void(i?this.player.setChannel(l):this.player.setVideo("v"+l));(0,s.getSDK)("//player.twitch.tv/js/embed/v1.js","Twitch").then(function(e){n.player=new e.Player(n.playerID,{video:i?"":l,channel:i?l:"",height:"100%",width:"100%",playsinline:o});var t=e.Player,r=t.READY,a=t.PLAY,u=t.PAUSE,s=t.ENDED;n.player.addEventListener(r,n.props.onReady),n.player.addEventListener(a,n.props.onPlay),n.player.addEventListener(u,n.props.onPause),n.player.addEventListener(s,n.props.onEnded)},a)}},{key:"play",value:function(){this.callPlayer("play")}},{key:"pause",value:function(){this.callPlayer("pause")}},{key:"stop",value:function(){this.callPlayer("pause")}},{key:"seekTo",value:function(e){this.callPlayer("seek",e)}},{key:"setVolume",value:function(e){this.callPlayer("setVolume",e)}},{key:"getDuration",value:function(){return this.callPlayer("getDuration")}},{key:"getCurrentTime",value:function(){return this.callPlayer("getCurrentTime")}},{key:"getSecondsLoaded",value:function(){return null}},{key:"render",value:function(){var e={width:"100%",height:"100%"};return u.default.createElement("div",{style:e,id:this.playerID})}}]),t}(l.Component);y.displayName="Twitch",y.canPlay=function(e){return c.test(e)||f.test(e)},y.loopOnEnded=!0,t.default=y,e.exports=t.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e,t){var n=[],r=!0,o=!1,a=void 0;try{for(var l,s=h[Symbol.iterator]();!(r=(l=s.next()).done);r=!0){var c=l.value;!c.Player.canPlay(e)&&t[c.configKey].preload&&n.push(i.default.createElement(u.default,{key:c.Player.displayName,activePlayer:c.Player,url:c.url,playing:!0,style:{display:"none"}}))}}catch(e){o=!0,a=e}finally{try{!r&&s.return&&s.return()}finally{if(o)throw a}}return n}Object.defineProperty(t,"__esModule",{value:!0}),t.default=o;var a=n(0),i=r(a),l=n(7),u=r(l),s=n(4),c=r(s),f=n(5),p=r(f),y=n(6),d=r(y),h=[{Player:c.default,configKey:"youtube",url:"https://www.youtube.com/watch?v=GlCmAC4MHek"},{Player:p.default,configKey:"vimeo",url:"https://vimeo.com/127250231"},{Player:d.default,configKey:"dailymotion",url:"http://www.dailymotion.com/video/xqdpyk"}];e.exports=t.default}]); | ||
var ReactPlayer=function(e){function t(r){if(n[r])return n[r].exports;var o=n[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var n={};return t.m=e,t.c=n,t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=8)}([function(e,t){e.exports=React},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e){var t=e.match(P);if(t){var n=t[1];if(n.match(w))return i(n);if(k.test(n))return parseInt(n,10)}return 0}function i(e){for(var t=0,n=w.exec(e);null!==n;){var r=n,o=d(r,3),a=o[1],i=o[2];"h"===i&&(t+=60*parseInt(a,10)*60),"m"===i&&(t+=60*parseInt(a,10)),"s"===i&&(t+=parseInt(a,10)),n=w.exec(e)}return t}function l(){return Math.random().toString(36).substr(2,5)}function u(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:function(){return!0};return window[t]&&r(window[t])?Promise.resolve(window[t]):new Promise(function(r,o){if(n){var a=window[n];window[n]=function(){a&&a(),r(window[t])}}(0,v.default)(e,function(e){e&&o(e),n||r(window[t])})})}function s(e,t,n){var r=(0,b.default)(t.config,e.config),a=!0,i=!1,l=void 0;try{for(var u,s=g.DEPRECATED_CONFIG_PROPS[Symbol.iterator]();!(a=(u=s.next()).done);a=!0){var c=u.value;if(e[c]){var f=c.replace(/Config$/,"");if(r=(0,b.default)(r,o({},f,e[c])),n){var p="ReactPlayer: %c"+c+" %cis deprecated, please use the config prop instead – https://github.com/CookPete/react-player#config-prop";console.warn(p,"font-weight: bold","")}}}}catch(e){i=!0,l=e}finally{try{!a&&s.return&&s.return()}finally{if(i)throw l}}return r}function c(e){for(var t,n=arguments.length,r=Array(n>1?n-1:0),o=1;o<n;o++)r[o-1]=arguments[o];var a=(t=[]).concat.apply(t,r),i={},l=Object.keys(e),u=!0,s=!1,c=void 0;try{for(var f,p=l[Symbol.iterator]();!(u=(f=p.next()).done);u=!0){var y=f.value;-1===a.indexOf(y)&&(i[y]=e[y])}}catch(e){s=!0,c=e}finally{try{!u&&p.return&&p.return()}finally{if(s)throw c}}return i}function f(e){var t;if(!this.player||!this.player[e]){var n="ReactPlayer: "+this.constructor.displayName+" player could not call %c"+e+"%c – ";return this.player?this.player[e]||(n+="The method was not available"):n+="The player was not available",console.warn(n,"font-weight: bold",""),null}for(var r=arguments.length,o=Array(r>1?r-1:0),a=1;a<r;a++)o[a-1]=arguments[a];return(t=this.player)[e].apply(t,o)}function p(e){return null!==e&&("function"==typeof e||"object"===(void 0===e?"undefined":y(e)))}Object.defineProperty(t,"__esModule",{value:!0});var y="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},d=function(){function e(e,t){var n=[],r=!0,o=!1,a=void 0;try{for(var i,l=e[Symbol.iterator]();!(r=(i=l.next()).done)&&(n.push(i.value),!t||n.length!==t);r=!0);}catch(e){o=!0,a=e}finally{try{!r&&l.return&&l.return()}finally{if(o)throw a}}return n}return function(t,n){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t))return e(t,n);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}();t.parseStartTime=a,t.randomString=l,t.getSDK=u,t.getConfig=s,t.omit=c,t.callPlayer=f,t.isObject=p;var h=n(14),v=r(h),m=n(15),b=r(m),g=n(2),P=/[?&#](?:start|t)=([0-9hms]+)/,w=/(\d+)(h|m|s)/g,k=/^\d+$/},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DEPRECATED_CONFIG_PROPS=t.defaultProps=t.propTypes=void 0;var r=n(9),o=function(e){return e&&e.__esModule?e:{default:e}}(r),a=o.default.string,i=o.default.bool,l=o.default.number,u=o.default.array,s=o.default.oneOfType,c=o.default.shape,f=o.default.object,p=o.default.func;t.propTypes={url:s([a,u]),playing:i,loop:i,controls:i,volume:l,muted:i,playbackRate:l,width:s([a,l]),height:s([a,l]),style:f,progressFrequency:l,playsinline:i,config:c({soundcloud:c({options:f}),youtube:c({playerVars:f,preload:i}),facebook:c({appId:a}),dailymotion:c({params:f,preload:i}),vimeo:c({iframeParams:f,preload:i}),vidme:c({format:a}),file:c({attributes:f,tracks:u,forceAudio:i,forceHLS:i,forceDASH:i}),wistia:c({options:f})}),onReady:p,onStart:p,onPlay:p,onPause:p,onBuffer:p,onEnded:p,onError:p,onDuration:p,onSeek:p,onProgress:p},t.defaultProps={playing:!1,loop:!1,controls:!1,volume:.8,muted:!1,playbackRate:1,width:640,height:360,style:{},progressFrequency:1e3,playsinline:!1,config:{soundcloud:{options:{visual:!0,buying:!1,liking:!1,download:!1,sharing:!1,show_comments:!1,show_playcount:!1}},youtube:{playerVars:{autoplay:0,playsinline:1,showinfo:0,rel:0,iv_load_policy:3},preload:!1},facebook:{appId:"1309697205772819"},dailymotion:{params:{api:1,"endscreen-enable":!1},preload:!1},vimeo:{playerOptions:{autopause:!1,autoplay:!1,byline:!1,portrait:!1,title:!1},preload:!1},vidme:{format:null},file:{attributes:{},tracks:[],forceAudio:!1,forceHLS:!1,forceDASH:!1},wistia:{options:{}}},onReady:function(){},onStart:function(){},onPlay:function(){},onPause:function(){},onBuffer:function(){},onEnded:function(){},onError:function(){},onDuration:function(){},onSeek:function(){},onProgress:function(){}},t.DEPRECATED_CONFIG_PROPS=["soundcloudConfig","youtubeConfig","facebookConfig","dailymotionConfig","vimeoConfig","vidmeConfig","fileConfig","wistiaConfig"]},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function i(e){if(e instanceof Array){var t=!0,n=!1,r=void 0;try{for(var o,a=e[Symbol.iterator]();!(t=(o=a.next()).done);t=!0){var l=o.value;if("string"==typeof l&&i(l))return!0;if(i(l.src))return!0}}catch(e){n=!0,r=e}finally{try{!t&&a.return&&a.return()}finally{if(n)throw r}}return!1}return p.test(e)||y.test(e)||d.test(e)||h.test(e)}Object.defineProperty(t,"__esModule",{value:!0});var l=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},u=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),s=n(0),c=function(e){return e&&e.__esModule?e:{default:e}}(s),f=n(1),p=/\.(m4a|mp4a|mpga|mp2|mp2a|mp3|m2a|m3a|wav|weba|aac|oga|spx)($|\?)/i,y=/\.(mp4|og[gv]|webm|mov|m4v)($|\?)/i,d=/\.(m3u8)($|\?)/i,h=/\.(mpd)($|\?)/i,v=function(e){function t(){var e,n,a,i;r(this,t);for(var u=arguments.length,s=Array(u),f=0;f<u;f++)s[f]=arguments[f];return n=a=o(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(s))),a.onSeek=function(e){a.props.onSeek(e.target.currentTime)},a.renderSource=function(e){if("string"==typeof e)return c.default.createElement("source",{key:e,src:e});var t=e.src,n=e.type;return c.default.createElement("source",{key:t,src:t,type:n})},a.renderTrack=function(e,t){return c.default.createElement("track",l({key:t},e))},a.ref=function(e){a.player=e},i=n,o(a,i)}return a(t,e),u(t,[{key:"componentDidMount",value:function(){this.addListeners()}},{key:"componentWillReceiveProps",value:function(e){this.shouldUseAudio(this.props)!==this.shouldUseAudio(e)&&this.removeListeners()}},{key:"componentDidUpdate",value:function(e){this.shouldUseAudio(this.props)!==this.shouldUseAudio(e)&&this.addListeners()}},{key:"componentWillUnmount",value:function(){this.removeListeners()}},{key:"addListeners",value:function(){var e=this.props,t=e.onReady,n=e.onPlay,r=e.onPause,o=e.onEnded,a=e.onError,i=e.playsinline;this.player.addEventListener("canplay",t),this.player.addEventListener("play",n),this.player.addEventListener("pause",r),this.player.addEventListener("seeked",this.onSeek),this.player.addEventListener("ended",o),this.player.addEventListener("error",a),i&&(this.player.setAttribute("playsinline",""),this.player.setAttribute("webkit-playsinline",""))}},{key:"removeListeners",value:function(){var e=this.props,t=e.onReady,n=e.onPlay,r=e.onPause,o=e.onEnded,a=e.onError;this.player.removeEventListener("canplay",t),this.player.removeEventListener("play",n),this.player.removeEventListener("pause",r),this.player.removeEventListener("seeked",this.onSeek),this.player.removeEventListener("ended",o),this.player.removeEventListener("error",a)}},{key:"shouldUseAudio",value:function(e){return p.test(e.url)||e.config.file.forceAudio}},{key:"shouldUseHLS",value:function(e){return d.test(e)||this.props.config.file.forceHLS}},{key:"shouldUseDASH",value:function(e){return h.test(e)||this.props.config.file.forceDASH}},{key:"load",value:function(e){var t=this;this.shouldUseHLS(e)&&(0,f.getSDK)("https://cdn.jsdelivr.net/hls.js/latest/hls.min.js","Hls").then(function(n){t.hls=new n,t.hls.loadSource(e),t.hls.attachMedia(t.player)}),this.shouldUseDASH(e)&&(0,f.getSDK)("https://cdnjs.cloudflare.com/ajax/libs/dashjs/2.5.0/dash.all.min.js","dashjs").then(function(n){t.dash=n.MediaPlayer().create(),t.dash.initialize(t.player,e,t.props.playing),t.dash.getDebug().setLogToBrowserConsole(!1)})}},{key:"play",value:function(){var e=this.player.play();e&&e.catch(this.props.onError)}},{key:"pause",value:function(){this.player.pause()}},{key:"stop",value:function(){this.player.removeAttribute("src"),this.hls&&this.hls.destroy(),this.dash&&this.dash.reset()}},{key:"seekTo",value:function(e){this.player.currentTime=e}},{key:"setVolume",value:function(e){this.player.volume=e}},{key:"setPlaybackRate",value:function(e){this.player.playbackRate=e}},{key:"getDuration",value:function(){return this.player.duration}},{key:"getCurrentTime",value:function(){return this.player.currentTime}},{key:"getSecondsLoaded",value:function(){return 0===this.player.buffered.length?0:this.player.buffered.end(0)}},{key:"render",value:function(){var e=this.props,t=e.url,n=e.loop,r=e.controls,o=e.config,a=e.width,i=e.height,u=this.shouldUseAudio(this.props),s=this.shouldUseHLS(t),f=this.shouldUseDASH(t),p=u?"audio":"video",y=t instanceof Array||s||f?void 0:t,d={width:a&&"auto"!==a?"100%":a,height:i&&"auto"!==i?"100%":i};return c.default.createElement(p,l({ref:this.ref,src:y,style:d,preload:"auto",controls:r,loop:n},o.file.attributes),t instanceof Array&&t.map(this.renderSource),o.file.tracks.map(this.renderTrack))}}]),t}(s.Component);v.displayName="FilePlayer",v.canPlay=i,t.default=v,e.exports=t.default},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},l=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),u=n(0),s=function(e){return e&&e.__esModule?e:{default:e}}(u),c=n(1),f="YT",p=/^(?:https?:\/\/)?(?:www\.|m\.)?(?:youtu\.be\/|youtube\.com\/(?:embed\/|v\/|watch\?v=|watch\?.+&v=))((\w|-){11})(?:\S+)?$/,y=function(e){function t(){var e,n,a,i;r(this,t);for(var l=arguments.length,u=Array(l),s=0;s<l;s++)u[s]=arguments[s];return n=a=o(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(u))),a.callPlayer=c.callPlayer,a.onStateChange=function(e){var t=e.data,n=a.props,r=n.onPlay,o=n.onPause,i=n.onBuffer,l=n.onEnded,u=n.onReady,s=window[f].PlayerState,c=s.PLAYING,p=s.PAUSED,y=s.BUFFERING,d=s.ENDED,h=s.CUED;t===c&&r(),t===p&&o(),t===y&&i(),t===d&&l(),t===h&&u()},a.ref=function(e){a.container=e},i=n,o(a,i)}return a(t,e),l(t,[{key:"load",value:function(e,t){var n=this,r=this.props,o=r.playsinline,a=r.controls,l=r.config,u=r.onError,s=e&&e.match(p)[1];if(t)return void this.player.cueVideoById({videoId:s,startSeconds:(0,c.parseStartTime)(e)});(0,c.getSDK)("https://www.youtube.com/iframe_api",f,"onYouTubeIframeAPIReady",function(e){return e.loaded}).then(function(t){n.container&&(n.player=new t.Player(n.container,{width:"100%",height:"100%",videoId:s,playerVars:i({controls:a?1:0,start:(0,c.parseStartTime)(e),origin:window.location.origin,playsinline:o},l.youtube.playerVars),events:{onReady:n.props.onReady,onStateChange:n.onStateChange,onError:function(e){return u(e.data)}}}))},u)}},{key:"play",value:function(){this.callPlayer("playVideo")}},{key:"pause",value:function(){this.callPlayer("pauseVideo")}},{key:"stop",value:function(){document.body.contains(this.callPlayer("getIframe"))&&this.callPlayer("stopVideo")}},{key:"seekTo",value:function(e){this.callPlayer("seekTo",e)}},{key:"setVolume",value:function(e){this.callPlayer("setVolume",100*e)}},{key:"setPlaybackRate",value:function(e){this.callPlayer("setPlaybackRate",e)}},{key:"getDuration",value:function(){return this.callPlayer("getDuration")}},{key:"getCurrentTime",value:function(){return this.callPlayer("getCurrentTime")}},{key:"getSecondsLoaded",value:function(){return this.callPlayer("getVideoLoadedFraction")*this.getDuration()}},{key:"render",value:function(){var e=i({width:"100%",height:"100%"},this.props.style);return s.default.createElement("div",{style:e},s.default.createElement("div",{ref:this.ref}))}}]),t}(u.Component);y.displayName="YouTube",y.canPlay=function(e){return p.test(e)},y.loopOnEnded=!0,t.default=y,e.exports=t.default},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},l=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),u=n(0),s=function(e){return e&&e.__esModule?e:{default:e}}(u),c=n(1),f=/https?:\/\/(?:www\.|player\.)?vimeo.com\/(?:channels\/(?:\w+\/)?|groups\/([^\/]*)\/videos\/|album\/(\d+)\/video\/|video\/|)(\d+)(?:$|\/|\?)/,p=function(e){function t(){var e,n,a,i;r(this,t);for(var l=arguments.length,u=Array(l),s=0;s<l;s++)u[s]=arguments[s];return n=a=o(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(u))),a.callPlayer=c.callPlayer,a.duration=null,a.currentTime=null,a.secondsLoaded=null,a.ref=function(e){a.container=e},i=n,o(a,i)}return a(t,e),l(t,[{key:"load",value:function(e,t){var n=this,r=e.match(f)[3];if(this.duration=null,t)return void this.player.loadVideo(r).catch(this.props.onError);(0,c.getSDK)("https://player.vimeo.com/api/player.js","Vimeo").then(function(t){n.container&&(n.player=new t.Player(n.container,i({},n.props.config.vimeo.playerOptions,{url:e,loop:n.props.loop})),n.player.ready().then(function(){var e=n.container.querySelector("iframe");e.style.width="100%",e.style.height="100%"}).catch(n.props.onError),n.player.on("loaded",function(){n.props.onReady(),n.player.getDuration().then(function(e){n.duration=e})}),n.player.on("play",n.props.onPlay),n.player.on("pause",n.props.onPause),n.player.on("seeked",function(e){return n.props.onSeek(e.seconds)}),n.player.on("ended",n.props.onEnded),n.player.on("error",n.props.onError),n.player.on("timeupdate",function(e){var t=e.seconds;n.currentTime=t}),n.player.on("progress",function(e){var t=e.seconds;n.secondsLoaded=t}))},this.props.onError)}},{key:"play",value:function(){this.callPlayer("play")}},{key:"pause",value:function(){this.callPlayer("pause")}},{key:"stop",value:function(){this.callPlayer("unload")}},{key:"seekTo",value:function(e){this.callPlayer("setCurrentTime",e)}},{key:"setVolume",value:function(e){this.callPlayer("setVolume",e)}},{key:"getDuration",value:function(){return this.duration}},{key:"getCurrentTime",value:function(){return this.currentTime}},{key:"getSecondsLoaded",value:function(){return this.secondsLoaded}},{key:"render",value:function(){var e=i({width:"100%",height:"100%",overflow:"hidden",backgroundColor:"black"},this.props.style);return s.default.createElement("div",{style:e,ref:this.ref})}}]),t}(u.Component);p.displayName="Vimeo",p.canPlay=function(e){return f.test(e)},t.default=p,e.exports=t.default},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},l=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),u=n(0),s=function(e){return e&&e.__esModule?e:{default:e}}(u),c=n(1),f=/^.+dailymotion.com\/(video|hub)\/([^_]+)[^#]*(#video=([^_&]+))?/,p=function(e){function t(){var e,n,a,i;r(this,t);for(var l=arguments.length,u=Array(l),s=0;s<l;s++)u[s]=arguments[s];return n=a=o(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(u))),a.callPlayer=c.callPlayer,a.onDurationChange=function(){var e=a.getDuration();a.props.onDuration(e)},a.ref=function(e){a.container=e},i=n,o(a,i)}return a(t,e),l(t,[{key:"parseId",value:function(e){var t=e.match(f);return t[4]||t[2]}},{key:"load",value:function(e){var t=this,n=this.props,r=n.controls,o=n.config,a=n.onError,l=n.playing,u=this.parseId(e);if(this.player)return void this.player.load(u,{start:(0,c.parseStartTime)(e),autoplay:l});(0,c.getSDK)("https://api.dmcdn.net/all.js","DM","dmAsyncInit",function(e){return e.player}).then(function(n){if(t.container){var l=n.player;t.player=new l(t.container,{width:"100%",height:"100%",video:u,params:i({controls:r,autoplay:t.props.playing,start:(0,c.parseStartTime)(e),origin:window.location.origin},o.dailymotion.params),events:{apiready:t.props.onReady,seeked:function(){return t.props.onSeek(t.player.currentTime)},video_end:t.props.onEnded,durationchange:t.onDurationChange,pause:t.props.onPause,playing:t.props.onPlay,waiting:t.props.onBuffer,error:function(e){return a(e)}}})}},a)}},{key:"play",value:function(){this.callPlayer("play")}},{key:"pause",value:function(){this.callPlayer("pause")}},{key:"stop",value:function(){}},{key:"seekTo",value:function(e){this.callPlayer("seek",e)}},{key:"setVolume",value:function(e){this.callPlayer("setVolume",e)}},{key:"getDuration",value:function(){return this.player.duration||null}},{key:"getCurrentTime",value:function(){return this.player.currentTime}},{key:"getSecondsLoaded",value:function(){return this.player.bufferedTime}},{key:"render",value:function(){var e=i({width:"100%",height:"100%",backgroundColor:"black"},this.props.style);return s.default.createElement("div",{style:e},s.default.createElement("div",{ref:this.ref}))}}]),t}(u.Component);p.displayName="DailyMotion",p.canPlay=function(e){return f.test(e)},p.loopOnEnded=!0,t.default=p,e.exports=t.default},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},l=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),u=n(0),s=function(e){return e&&e.__esModule?e:{default:e}}(u),c=n(2),f=function(e){function t(){var e,n,a,i;r(this,t);for(var l=arguments.length,u=Array(l),s=0;s<l;s++)u[s]=arguments[s];return n=a=o(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(u))),a.mounted=!1,a.isReady=!1,a.isPlaying=!1,a.startOnPlay=!0,a.seekOnPlay=null,a.onReady=function(){if(a.mounted){var e=a.props,t=e.onReady,n=e.playing;a.isReady=!0,a.loadingSDK=!1,t(),n&&(a.loadOnReady?(a.player.load(a.loadOnReady),a.loadOnReady=null):a.player.play()),a.onDurationCheck()}},a.onPlay=function(){a.isPlaying=!0;var e=a.props,t=e.volume,n=e.muted,r=e.onStart,o=e.onPlay,i=e.playbackRate;a.startOnPlay&&(a.player.setPlaybackRate&&a.player.setPlaybackRate(i),a.player.setVolume(n?0:t),r(),a.startOnPlay=!1),o(),a.seekOnPlay&&(a.seekTo(a.seekOnPlay),a.seekOnPlay=null),a.onDurationCheck()},a.onPause=function(){a.isPlaying=!1,a.props.onPause()},a.onEnded=function(){var e=a.props,t=e.activePlayer,n=e.loop,r=e.onEnded;t.loopOnEnded&&n&&a.seekTo(0),r()},a.onDurationCheck=function(){clearTimeout(a.durationCheckTimeout);var e=a.getDuration();e?a.props.onDuration(e):a.durationCheckTimeout=setTimeout(a.onDurationCheck,100)},a.ref=function(e){e&&(a.player=e)},i=n,o(a,i)}return a(t,e),l(t,[{key:"componentDidMount",value:function(){this.mounted=!0,this.player.load(this.props.url)}},{key:"componentWillUnmount",value:function(){this.isReady&&this.player.stop(),this.mounted=!1}},{key:"componentDidUpdate",value:function(e){var t=this.props,n=t.activePlayer,r=t.url;e.activePlayer!==n&&(this.isReady=!1,this.seekOnPlay=null,this.startOnPlay=!0,this.player.load(r,this.isReady))}},{key:"componentWillReceiveProps",value:function(e){var t=this.props,n=t.activePlayer,r=t.url,o=t.playing,a=t.volume,i=t.muted,l=t.playbackRate;if(n!==e.activePlayer)return void this.player.stop();r!==e.url&&this.player.load(e.url,this.isReady),r&&!e.url&&this.player.stop(),o||!e.playing||this.isPlaying||this.player.play(),o&&!e.playing&&this.isPlaying&&this.player.pause(),a===e.volume||e.muted||this.player.setVolume(e.volume),i!==e.muted&&this.player.setVolume(e.muted?0:e.volume),l!==e.playbackRate&&this.player.setPlaybackRate&&this.player.setPlaybackRate(e.playbackRate)}},{key:"getCurrentTime",value:function(){return this.isReady?this.player.getCurrentTime():null}},{key:"getSecondsLoaded",value:function(){return this.isReady?this.player.getSecondsLoaded():null}},{key:"getDuration",value:function(){return this.isReady?this.player.getDuration():null}},{key:"seekTo",value:function(e){var t=this;if(!this.isReady&&0!==e)return this.seekOnPlay=e,void setTimeout(function(){t.seekOnPlay=null},5e3);if(e>0&&e<1){var n=this.player.getDuration();return n?void this.player.seekTo(n*e):void console.warn("ReactPlayer: could not seek using fraction – duration not yet available")}this.player.seekTo(e)}},{key:"render",value:function(){var e=this.props.activePlayer;return s.default.createElement(e,i({},this.props,{ref:this.ref,onReady:this.onReady,onPlay:this.onPlay,onEnded:this.onEnded}))}}]),t}(u.Component);f.displayName="Player",f.propTypes=c.propTypes,f.defaultProps=c.defaultProps,t.default=f,e.exports=t.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t<e.length;t++)n[t]=e[t];return n}return Array.from(e)}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var u=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},s=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),c=n(0),f=r(c),p=n(2),y=n(1),d=n(16),h=r(d),v=n(7),m=r(v),b=n(3),g=r(b),P=n(23),w=r(P),k=Object.keys(p.propTypes),ReactPlayer=function(e){function ReactPlayer(){var e,t,n,r;a(this,ReactPlayer);for(var o=arguments.length,l=Array(o),u=0;u<o;u++)l[u]=arguments[u];return t=n=i(this,(e=ReactPlayer.__proto__||Object.getPrototypeOf(ReactPlayer)).call.apply(e,[this].concat(l))),n.config=(0,y.getConfig)(n.props,p.defaultProps,!0),n.seekTo=function(e){if(!n.player)return null;n.player.seekTo(e)},n.getDuration=function(){return n.player?n.player.getDuration():null},n.getCurrentTime=function(){return n.player?n.player.getCurrentTime():null},n.getInternalPlayer=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"player";return n.player?n.player[e]:null},n.progress=function(){if(n.props.url&&n.player&&n.player.isReady){var e=n.player.getCurrentTime()||0,t=n.player.getSecondsLoaded(),r=n.player.getDuration();if(r){var o={playedSeconds:e,played:e/r};null!==t&&(o.loadedSeconds=t,o.loaded=t/r),o.played===n.prevPlayed&&o.loaded===n.prevLoaded||n.props.onProgress(o),n.prevPlayed=o.played,n.prevLoaded=o.loaded}}n.progressTimeout=setTimeout(n.progress,n.props.progressFrequency)},n.wrapperRef=function(e){n.wrapper=e},n.activePlayerRef=function(e){n.player=e},r=t,i(n,r)}return l(ReactPlayer,e),s(ReactPlayer,[{key:"componentDidMount",value:function(){this.progress()}},{key:"componentWillUnmount",value:function(){clearTimeout(this.progressTimeout)}},{key:"shouldComponentUpdate",value:function(e){var t=!0,n=!1,r=void 0;try{for(var o,a=Object.keys(this.props)[Symbol.iterator]();!(t=(o=a.next()).done);t=!0){var i=o.value,l=this.props[i];if(!(0,y.isObject)(l)&&l!==e[i])return!0}}catch(e){n=!0,r=e}finally{try{!t&&a.return&&a.return()}finally{if(n)throw r}}return!1}},{key:"getActivePlayer",value:function(e){var t=!0,n=!1,r=void 0;try{for(var o,a=h.default[Symbol.iterator]();!(t=(o=a.next()).done);t=!0){var i=o.value;if(i.canPlay(e))return i}}catch(e){n=!0,r=e}finally{try{!t&&a.return&&a.return()}finally{if(n)throw r}}return g.default}},{key:"renderActivePlayer",value:function(e){if(!e)return null;var t=this.getActivePlayer(e);return f.default.createElement(m.default,u({},this.props,{key:t.displayName,ref:this.activePlayerRef,config:this.config,activePlayer:t}))}},{key:"render",value:function(){var e=this.props,t=e.url,n=e.style,r=e.width,a=e.height,i=(0,y.omit)(this.props,k,p.DEPRECATED_CONFIG_PROPS),l=this.renderActivePlayer(t),s=(0,w.default)(t,this.config);return f.default.createElement("div",u({ref:this.wrapperRef,style:u({},n,{width:r,height:a})},i),[l].concat(o(s)))}}]),ReactPlayer}(c.Component);ReactPlayer.displayName="ReactPlayer",ReactPlayer.propTypes=p.propTypes,ReactPlayer.defaultProps=p.defaultProps,ReactPlayer.canPlay=function(e){var t=!0,n=!1,r=void 0;try{for(var o,a=h.default[Symbol.iterator]();!(t=(o=a.next()).done);t=!0){if(o.value.canPlay(e))return!0}}catch(e){n=!0,r=e}finally{try{!t&&a.return&&a.return()}finally{if(n)throw r}}return!1},t.default=ReactPlayer,e.exports=t.default},function(e,t,n){"use strict";"function"==typeof Symbol&&Symbol.iterator;e.exports=n(10)()},function(e,t,n){"use strict";var r=n(11),o=n(12),a=n(13);e.exports=function(){function e(e,t,n,r,i,l){l!==a&&o(!1,"Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types")}function t(){return e}e.isRequired=e;var n={array:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t};return n.checkPropTypes=r,n.PropTypes=n,n}},function(e,t,n){"use strict";function r(e){return function(){return e}}var o=function(){};o.thatReturns=r,o.thatReturnsFalse=r(!1),o.thatReturnsTrue=r(!0),o.thatReturnsNull=r(null),o.thatReturnsThis=function(){return this},o.thatReturnsArgument=function(e){return e},e.exports=o},function(e,t,n){"use strict";function r(e,t,n,r,a,i,l,u){if(o(t),!e){var s;if(void 0===t)s=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var c=[n,r,a,i,l,u],f=0;s=new Error(t.replace(/%s/g,function(){return c[f++]})),s.name="Invariant Violation"}throw s.framesToPop=1,s}}var o=function(e){};e.exports=r},function(e,t,n){"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},function(e,t,n){"use strict";function r(e,t){for(var n in t)e.setAttribute(n,t[n])}function o(e,t){e.onload=function(){this.onerror=this.onload=null,t(null,e)},e.onerror=function(){this.onerror=this.onload=null,t(new Error("Failed to load "+this.src),e)}}function a(e,t){e.onreadystatechange=function(){"complete"!=this.readyState&&"loaded"!=this.readyState||(this.onreadystatechange=null,t(null,e))}}e.exports=function(e,t,n){var i=document.head||document.getElementsByTagName("head")[0],l=document.createElement("script");"function"==typeof t&&(n=t,t={}),t=t||{},n=n||function(){},l.type=t.type||"text/javascript",l.charset=t.charset||"utf8",l.async=!("async"in t)||!!t.async,l.src=e,t.attrs&&r(l,t.attrs),t.text&&(l.text=""+t.text),("onload"in l?o:a)(l,n),l.onload||o(l,n),i.appendChild(l)}},function(e,t,n){"use strict";function r(e){return!!e&&"object"===(void 0===e?"undefined":f(e))}function o(e){var t=Object.prototype.toString.call(e);return"[object RegExp]"===t||"[object Date]"===t||a(e)}function a(e){return e.$$typeof===d}function i(e){return Array.isArray(e)?[]:{}}function l(e,t){return t&&!1===t.clone||!p(e)?e:c(i(e),e,t)}function u(e,t,n){return e.concat(t).map(function(e){return l(e,n)})}function s(e,t,n){var r={};return p(e)&&Object.keys(e).forEach(function(t){r[t]=l(e[t],n)}),Object.keys(t).forEach(function(o){p(t[o])&&e[o]?r[o]=c(e[o],t[o],n):r[o]=l(t[o],n)}),r}function c(e,t,n){var r=Array.isArray(t),o=Array.isArray(e),a=n||{arrayMerge:u};if(r===o)return r?(a.arrayMerge||u)(e,t,n):s(e,t,n);return l(t,n)}Object.defineProperty(t,"__esModule",{value:!0});var f="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},p=function(e){return r(e)&&!o(e)},y="function"==typeof Symbol&&Symbol.for,d=y?Symbol.for("react.element"):60103;c.all=function(e,t){if(!Array.isArray(e))throw new Error("first argument should be an array");return e.reduce(function(e,n){return c(e,n,t)},{})};var h=c;t.default=h,e.exports=t.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var o=n(4),a=r(o),i=n(17),l=r(i),u=n(5),s=r(u),c=n(18),f=r(c),p=n(19),y=r(p),d=n(20),h=r(d),v=n(21),m=r(v),b=n(22),g=r(b),P=n(6),w=r(P),k=n(3),_=r(k);t.default=[a.default,l.default,s.default,f.default,y.default,h.default,m.default,g.default,w.default,_.default],e.exports=t.default},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},l=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),u=n(0),s=function(e){return e&&e.__esModule?e:{default:e}}(u),c=n(1),f=/^https?:\/\/(soundcloud.com|snd.sc)\/([a-z0-9-_]+\/[a-z0-9-_]+)$/,p=function(e){function t(){var e,n,a,i;r(this,t);for(var l=arguments.length,u=Array(l),s=0;s<l;s++)u[s]=arguments[s];return n=a=o(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(u))),a.callPlayer=c.callPlayer,a.duration=null,a.currentTime=null,a.fractionLoaded=null,a.ref=function(e){a.iframe=e},i=n,o(a,i)}return a(t,e),l(t,[{key:"load",value:function(e,t){var n=this;(0,c.getSDK)("https://w.soundcloud.com/player/api.js","SC").then(function(r){if(n.iframe){var o=r.Widget.Events,a=o.PLAY,l=o.PLAY_PROGRESS,u=o.PAUSE,s=o.FINISH,c=o.ERROR;t||(n.player=r.Widget(n.iframe),n.player.bind(a,n.props.onPlay),n.player.bind(u,n.props.onPause),n.player.bind(l,function(e){n.currentTime=e.currentPosition/1e3,n.fractionLoaded=e.loadedProgress}),n.player.bind(s,function(){return n.props.onEnded()}),n.player.bind(c,function(e){return n.props.onError(e)})),n.player.load(e,i({},n.props.config.soundcloud.options,{callback:function(){n.player.getDuration(function(e){n.duration=e/1e3,n.props.onReady()})}}))}})}},{key:"play",value:function(){this.callPlayer("play")}},{key:"pause",value:function(){this.callPlayer("pause")}},{key:"stop",value:function(){}},{key:"seekTo",value:function(e){this.callPlayer("seekTo",1e3*e)}},{key:"setVolume",value:function(e){this.callPlayer("setVolume",100*e)}},{key:"getDuration",value:function(){return this.duration}},{key:"getCurrentTime",value:function(){return this.currentTime}},{key:"getSecondsLoaded",value:function(){return this.fractionLoaded*this.duration}},{key:"render",value:function(){var e={width:"100%",height:"100%"};return s.default.createElement("iframe",{ref:this.ref,src:"https://w.soundcloud.com/player/?url="+encodeURIComponent(this.props.url),style:e,frameBorder:0})}}]),t}(u.Component);p.displayName="SoundCloud",p.canPlay=function(e){return f.test(e)},p.loopOnEnded=!0,t.default=p,e.exports=t.default},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),l=n(0),u=function(e){return e&&e.__esModule?e:{default:e}}(l),s=n(1),c="//connect.facebook.net/en_US/sdk.js",f=/^https:\/\/www\.facebook\.com\/([^\/?].+\/)?video(s|\.php)[\/?].*$/,p="facebook-player-",y=function(e){function t(){var e,n,a,i;r(this,t);for(var l=arguments.length,u=Array(l),c=0;c<l;c++)u[c]=arguments[c];return n=a=o(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(u))),a.callPlayer=s.callPlayer,a.playerID=p+(0,s.randomString)(),i=n,o(a,i)}return a(t,e),i(t,[{key:"load",value:function(e,t){var n=this;if(t)return void(0,s.getSDK)(c,"FB","fbAsyncInit").then(function(e){return e.XFBML.parse()});(0,s.getSDK)(c,"FB","fbAsyncInit").then(function(e){e.init({appId:n.props.config.facebook.appId,xfbml:!0,version:"v2.5"}),e.Event.subscribe("xfbml.ready",function(e){"video"===e.type&&e.id===n.playerID&&(n.player=e.instance,n.player.subscribe("startedPlaying",n.props.onPlay),n.player.subscribe("paused",n.props.onPause),n.player.subscribe("finishedPlaying",n.props.onEnded),n.player.subscribe("startedBuffering",n.props.onBuffer),n.player.subscribe("error",n.props.onError),n.props.onReady())})})}},{key:"play",value:function(){this.callPlayer("play")}},{key:"pause",value:function(){this.callPlayer("pause")}},{key:"stop",value:function(){}},{key:"seekTo",value:function(e){this.callPlayer("seek",e)}},{key:"setVolume",value:function(e){0!==e&&this.callPlayer("unmute"),this.callPlayer("setVolume",e)}},{key:"getDuration",value:function(){return this.callPlayer("getDuration")}},{key:"getCurrentTime",value:function(){return this.callPlayer("getCurrentPosition")}},{key:"getSecondsLoaded",value:function(){return null}},{key:"render",value:function(){var e={width:"100%",height:"100%",backgroundColor:"black"};return u.default.createElement("div",{style:e,id:this.playerID,className:"fb-video","data-href":this.props.url,"data-allowfullscreen":"true","data-controls":this.props.controls?void 0:"false"})}}]),t}(l.Component);y.displayName="Facebook",y.canPlay=function(e){return f.test(e)},y.loopOnEnded=!0,t.default=y,e.exports=t.default},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),l=n(0),u=function(e){return e&&e.__esModule?e:{default:e}}(l),s=n(1),c=/^https?:\/\/streamable.com\/([a-z0-9]+)$/,f=function(e){function t(){var e,n,a,i;r(this,t);for(var l=arguments.length,u=Array(l),c=0;c<l;c++)u[c]=arguments[c];return n=a=o(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(u))),a.callPlayer=s.callPlayer,a.duration=null,a.currentTime=null,a.secondsLoaded=null,a.ref=function(e){a.iframe=e},i=n,o(a,i)}return a(t,e),i(t,[{key:"load",value:function(e){var t=this;(0,s.getSDK)("//cdn.embed.ly/player-0.0.12.min.js","playerjs").then(function(e){t.iframe&&(t.player=new e.Player(t.iframe),t.player.on("ready",t.props.onReady),t.player.on("play",t.props.onPlay),t.player.on("pause",t.props.onPause),t.player.on("seeked",t.props.onSeek),t.player.on("ended",t.props.onEnded),t.player.on("error",t.props.onError),t.player.on("timeupdate",function(e){var n=e.duration,r=e.seconds;t.duration=n,t.currentTime=r}),t.player.on("progress",function(e){var n=e.percent;t.duration&&(t.secondsLoaded=t.duration*n)}))},this.props.onError)}},{key:"play",value:function(){this.callPlayer("play")}},{key:"pause",value:function(){this.callPlayer("pause")}},{key:"stop",value:function(){}},{key:"seekTo",value:function(e){this.callPlayer("setCurrentTime",e)}},{key:"setVolume",value:function(e){this.callPlayer("setVolume",100*e)}},{key:"getDuration",value:function(){return this.duration}},{key:"getCurrentTime",value:function(){return this.currentTime}},{key:"getSecondsLoaded",value:function(){return this.secondsLoaded}},{key:"render",value:function(){var e=this.props.url.match(c)[1],t={width:"100%",height:"100%"};return u.default.createElement("iframe",{ref:this.ref,src:"https://streamable.com/o/"+e,frameBorder:"0",scrolling:"no",style:t,allowFullScreen:!0})}}]),t}(l.Component);f.displayName="Streamable",f.canPlay=function(e){return c.test(e)},t.default=f,e.exports=t.default},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),l=n(3),u=function(e){return e&&e.__esModule?e:{default:e}}(l),s=/^https?:\/\/vid.me\/([a-z0-9]+)$/i,c={},f=function(e){function t(){return r(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return a(t,e),i(t,[{key:"getData",value:function(e){var t=this.props.onError,n=e.match(s)[1];return c[n]?Promise.resolve(c[n]):window.fetch("https://api.vid.me/videoByUrl/"+n).then(function(e){if(200===e.status)return c[n]=e.json(),c[n];t(new Error("Vidme track could not be resolved"))})}},{key:"getURL",value:function(e){var t=e.video,n=this.props.config;if(n.vidme.format&&t.formats&&0!==t.formats.length){var r=t.formats.findIndex(function(e){return e.type===n.vidme.format});if(-1!==r)return t.formats[r].uri;console.warn('Vidme format "'+n.vidme.format+'" was not found for '+t.full_url)}return t.complete_url}},{key:"load",value:function(e){var t=this,n=this.props.onError;this.stop(),this.getData(e).then(function(e){t.player&&(t.player.src=t.getURL(e))},n)}}]),t}(u.default);f.displayName="Vidme",f.canPlay=function(e){return s.test(e)},t.default=f,e.exports=t.default},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},l=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),u=n(0),s=function(e){return e&&e.__esModule?e:{default:e}}(u),c=n(1),f=/^https?:\/\/(.+)?(wistia.com|wi.st)\/(medias|embed)\/(.*)$/,p=function(e){function t(){var e,n,a,i;r(this,t);for(var l=arguments.length,u=Array(l),s=0;s<l;s++)u[s]=arguments[s];return n=a=o(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(u))),a.callPlayer=c.callPlayer,i=n,o(a,i)}return a(t,e),l(t,[{key:"getID",value:function(e){return e&&e.match(f)[4]}},{key:"load",value:function(e){var t=this,n=this.props,r=n.controls,o=n.onReady,a=n.onPlay,l=n.onPause,u=n.onSeek,s=n.onEnded,f=n.config;(0,c.getSDK)("//fast.wistia.com/assets/external/E-v1.js","Wistia").then(function(){window._wq=window._wq||[],window._wq.push({id:t.getID(e),options:i({controlsVisibleOnLoad:r},f.wistia.options),onReady:function(e){t.player=e,t.player.bind("play",a),t.player.bind("pause",l),t.player.bind("seek",u),t.player.bind("end",s),o()}})})}},{key:"play",value:function(){this.callPlayer("play")}},{key:"pause",value:function(){this.callPlayer("pause")}},{key:"stop",value:function(){this.callPlayer("remove")}},{key:"seekTo",value:function(e){this.callPlayer("time",e)}},{key:"setVolume",value:function(e){this.callPlayer("volume",e)}},{key:"setPlaybackRate",value:function(e){this.callPlayer("playbackRate",e)}},{key:"getDuration",value:function(){return this.callPlayer("duration")}},{key:"getCurrentTime",value:function(){return this.callPlayer("time")}},{key:"getSecondsLoaded",value:function(){return null}},{key:"render",value:function(){var e=this.getID(this.props.url),t="wistia_embed wistia_async_"+e,n={width:"100%",height:"100%"};return s.default.createElement("div",{key:e,className:t,style:n})}}]),t}(u.Component);p.displayName="Wistia",p.canPlay=function(e){return f.test(e)},p.loopOnEnded=!0,t.default=p,e.exports=t.default},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),l=n(0),u=function(e){return e&&e.__esModule?e:{default:e}}(l),s=n(1),c=/^(?:https?:\/\/)?(?:www\.)twitch\.tv\/videos\/(\d+)($|\?)/,f=/^(?:https?:\/\/)?(?:www\.)twitch\.tv\/([a-z0-9_]+)($|\?)/,p="twitch-player-",y=function(e){function t(){var e,n,a,i;r(this,t);for(var l=arguments.length,u=Array(l),c=0;c<l;c++)u[c]=arguments[c];return n=a=o(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(u))),a.callPlayer=s.callPlayer,a.playerID=p+(0,s.randomString)(),i=n,o(a,i)}return a(t,e),i(t,[{key:"load",value:function(e,t){var n=this,r=this.props,o=r.playsinline,a=r.onError,i=f.test(e),l=i?e.match(f)[1]:e.match(c)[1];if(t)return void(i?this.player.setChannel(l):this.player.setVideo("v"+l));(0,s.getSDK)("//player.twitch.tv/js/embed/v1.js","Twitch").then(function(e){n.player=new e.Player(n.playerID,{video:i?"":l,channel:i?l:"",height:"100%",width:"100%",playsinline:o});var t=e.Player,r=t.READY,a=t.PLAY,u=t.PAUSE,s=t.ENDED;n.player.addEventListener(r,n.props.onReady),n.player.addEventListener(a,n.props.onPlay),n.player.addEventListener(u,n.props.onPause),n.player.addEventListener(s,n.props.onEnded)},a)}},{key:"play",value:function(){this.callPlayer("play")}},{key:"pause",value:function(){this.callPlayer("pause")}},{key:"stop",value:function(){this.callPlayer("pause")}},{key:"seekTo",value:function(e){this.callPlayer("seek",e)}},{key:"setVolume",value:function(e){this.callPlayer("setVolume",e)}},{key:"getDuration",value:function(){return this.callPlayer("getDuration")}},{key:"getCurrentTime",value:function(){return this.callPlayer("getCurrentTime")}},{key:"getSecondsLoaded",value:function(){return null}},{key:"render",value:function(){var e={width:"100%",height:"100%"};return u.default.createElement("div",{style:e,id:this.playerID})}}]),t}(l.Component);y.displayName="Twitch",y.canPlay=function(e){return c.test(e)||f.test(e)},y.loopOnEnded=!0,t.default=y,e.exports=t.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e,t){var n=[],r=!0,o=!1,a=void 0;try{for(var l,s=h[Symbol.iterator]();!(r=(l=s.next()).done);r=!0){var c=l.value;!c.Player.canPlay(e)&&t[c.configKey].preload&&n.push(i.default.createElement(u.default,{key:c.Player.displayName,activePlayer:c.Player,url:c.url,playing:!0,style:{display:"none"}}))}}catch(e){o=!0,a=e}finally{try{!r&&s.return&&s.return()}finally{if(o)throw a}}return n}Object.defineProperty(t,"__esModule",{value:!0}),t.default=o;var a=n(0),i=r(a),l=n(7),u=r(l),s=n(4),c=r(s),f=n(5),p=r(f),y=n(6),d=r(y),h=[{Player:c.default,configKey:"youtube",url:"https://www.youtube.com/watch?v=GlCmAC4MHek"},{Player:p.default,configKey:"vimeo",url:"https://vimeo.com/127250231"},{Player:d.default,configKey:"dailymotion",url:"http://www.dailymotion.com/video/xqdpyk"}];e.exports=t.default}]); | ||
//# sourceMappingURL=ReactPlayer.js.map |
@@ -80,2 +80,3 @@ 'use strict'; | ||
}).then(function (DM) { | ||
if (!_this2.container) return; | ||
var Player = DM.player; | ||
@@ -82,0 +83,0 @@ _this2.player = new Player(_this2.container, { |
@@ -54,2 +54,3 @@ 'use strict'; | ||
(0, _utils.getSDK)(SDK_URL, SDK_GLOBAL).then(function (SC) { | ||
if (!_this2.iframe) return; | ||
var _SC$Widget$Events = SC.Widget.Events, | ||
@@ -56,0 +57,0 @@ PLAY = _SC$Widget$Events.PLAY, |
@@ -52,2 +52,3 @@ 'use strict'; | ||
(0, _utils.getSDK)(SDK_URL, SDK_GLOBAL).then(function (playerjs) { | ||
if (!_this2.iframe) return; | ||
_this2.player = new playerjs.Player(_this2.iframe); | ||
@@ -54,0 +55,0 @@ _this2.player.on('ready', _this2.props.onReady); |
@@ -80,2 +80,3 @@ 'use strict'; | ||
this.getData(url).then(function (data) { | ||
if (!_this2.player) return; | ||
_this2.player.src = _this2.getURL(data); | ||
@@ -82,0 +83,0 @@ }, onError); |
@@ -60,2 +60,3 @@ 'use strict'; | ||
(0, _utils.getSDK)(SDK_URL, SDK_GLOBAL).then(function (Vimeo) { | ||
if (!_this2.container) return; | ||
_this2.player = new Vimeo.Player(_this2.container, _extends({}, _this2.props.config.vimeo.playerOptions, { | ||
@@ -62,0 +63,0 @@ url: url, |
@@ -91,2 +91,3 @@ 'use strict'; | ||
}).then(function (YT) { | ||
if (!_this2.container) return; | ||
_this2.player = new YT.Player(_this2.container, { | ||
@@ -93,0 +94,0 @@ width: '100%', |
{ | ||
"name": "react-player", | ||
"version": "1.0.0-beta.0", | ||
"version": "1.0.0-beta.1", | ||
"description": "A react component for playing a variety of URLs, including file paths, YouTube, Facebook, SoundCloud, Streamable, Vidme, Vimeo and Wistia", | ||
@@ -49,3 +49,3 @@ "main": "lib/ReactPlayer.js", | ||
"devDependencies": { | ||
"auto-changelog": "^0.3.2", | ||
"auto-changelog": "^1.0.1", | ||
"babel-cli": "^6.26.0", | ||
@@ -64,7 +64,7 @@ "babel-core": "^6.16.0", | ||
"chai": "^4.0.2", | ||
"codecov": "^2.3.0", | ||
"codecov": "^3.0.0", | ||
"cross-env": "^5.0.1", | ||
"css-loader": "^0.28.0", | ||
"exports-loader": "^0.6.3", | ||
"extract-text-webpack-plugin": "^3.0.0", | ||
"extract-text-webpack-plugin": "^3.0.2", | ||
"html-webpack-plugin": "^2.30.1", | ||
@@ -91,4 +91,4 @@ "karma": "^1.3.0", | ||
"style-loader": "^0.19.0", | ||
"webpack": "^3.3.0", | ||
"webpack-dev-server": "^2.7.1", | ||
"webpack": "^3.8.1", | ||
"webpack-dev-server": "^2.9.3", | ||
"whatwg-fetch": "^2.0.1" | ||
@@ -95,0 +95,0 @@ }, |
@@ -5,2 +5,3 @@ ReactPlayer | ||
[![Latest npm version](https://img.shields.io/npm/v/react-player.svg)](https://www.npmjs.com/package/react-player) | ||
[![Next npm version](https://img.shields.io/npm/v/react-player/next.svg)](https://www.npmjs.com/package/react-player) | ||
[![Build Status](https://img.shields.io/travis/CookPete/react-player/master.svg)](https://travis-ci.org/CookPete/react-player) | ||
@@ -10,3 +11,3 @@ [![Dependency Status](https://img.shields.io/david/CookPete/react-player.svg)](https://david-dm.org/CookPete/react-player) | ||
[![Test Coverage](https://img.shields.io/codecov/c/github/cookpete/react-player.svg)](https://codecov.io/gh/CookPete/react-player) | ||
[![Donate](https://img.shields.io/badge/Donate-PayPal-blue.svg)](https://paypal.me/ckpt) | ||
[![Donate](https://img.shields.io/badge/donate-PayPal-blue.svg)](https://paypal.me/ckpt) | ||
@@ -13,0 +14,0 @@ A react component for playing a variety of URLs, including file paths, YouTube, Facebook, Twitch, SoundCloud, Streamable, Vidme, Vimeo, Wistia and DailyMotion. |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
678028
2642
239