diff --git a/httpdocs/theme/react/product-media-slider/app/product-media-slider.js b/httpdocs/theme/react/product-media-slider/app/product-media-slider.js index b3d664a5a..b781b3d1c 100644 --- a/httpdocs/theme/react/product-media-slider/app/product-media-slider.js +++ b/httpdocs/theme/react/product-media-slider/app/product-media-slider.js @@ -1,427 +1,439 @@ import React, { useState } from 'react'; import ReactDOM from 'react-dom'; import {isMobile} from 'react-device-detect'; import VideoPlayerWrapper from './video-player'; import BookReaderWrapper from './book-reader'; function ProductMediaSlider(){ /* Component */ const [ product, setProduct ] = useState(window.product); let galleryArray = [] if (window.galleryPicturesJson) window.galleryPicturesJson.forEach(function(gp,index){ galleryArray.push({url:gp,type:'image'}); }); else galleryArray = [{url:product.image_small,type:'image'} ]; if (product.embed_code !== null && product.embed_code.length > 0) galleryArray = [{url:product.embed_code,type:'embed'}, ... galleryArray ]; if (window.filesJson) { window.filesJson.forEach(function(f,index){ if (f.type.indexOf('video') > -1 || f.type.indexOf('audio') > -1 || f.type.indexOf('epub') > -1){ - let type; if (f.type.indexOf('video') > -1 || f.type.indexOf('audio') > -1 ) type = f.type.split('/')[0] else if (f.type.indexOf('epub') > -1 ) type = "book"; - let url_preview, url_thumb; if (f.url_thumb) url_thumb = f.url_thumb.replace(/%2F/g,'/').replace(/%3A/g,':'); if (f.url_preview) url_preview = f.url_preview.replace(/%2F/g,'/').replace(/%3A/g,':'); - const gItem = { url:f.url.replace(/%2F/g,'/').replace(/%3A/g,':'), collection_id:f.collection_id, type:type, file_id:f.id, title:f.title, url_thumb:url_thumb, url_preview:url_preview } galleryArray = [gItem, ... galleryArray] } }) } const [ gallery, setGallery ] = useState(galleryArray); const [ disableGallery, setDisableGallery ] = useState(gallery.length > 1 ? false : true) const parentContainerElement = document.getElementById('product-title-div'); const [ containerWidth, setContainerWidth ] = useState(parentContainerElement.offsetWidth); const [ currentSlide, setCurrentSlide ] = useState(0); const [ sliderHeight, setSliderHeight ] = useState(360); const [ cinemaMode, setCinemaMode ] = useState(false); const [ isFullScreen, setIsFullScreen] = useState(false) const [ showPlaylist, setShowPlaylist ] = useState(false); const [ showSliderArrows, setShowSliderArrows ] = useState(isMobile === true ? true : false); const [ sliderFadeControlsMode, setSliderFadeControlsMode ] = useState(true); let sliderFadeControlTimeOut; // use effects React.useEffect(() => { initProductMediaSlider(currentSlide) },[currentSlide]) React.useEffect((event) => { updateDimensions(event,currentSlide) },[currentSlide, cinemaMode]) React.useEffect(() => { handleMouseMovementEventListener(showPlaylist,isFullScreen) },[showPlaylist,isFullScreen]) // init product media slider function initProductMediaSlider(currentSlide){ window.addEventListener("resize", function(event){updateDimensions(event,currentSlide)}); window.addEventListener("orientationchange", function(event){updateDimensions(event,currentSlide)}); } // handle mouse movement event listener function handleMouseMovementEventListener(showPlaylist,isFullScreen){ window.removeEventListener("mousemove",function(event){ onMouseMovement(event,showPlaylist,isFullScreen)}) window.removeEventListener("mousedown",function(event){ onMouseMovement(event,showPlaylist,isFullScreen)}) window.addEventListener("mousemove",function(event){ onMouseMovement(event,showPlaylist,isFullScreen) }); window.addEventListener("mousedown",function(event){ onMouseMovement(event,showPlaylist,isFullScreen) }); } // update dimensions function updateDimensions(){ const newContainerWidth = parentContainerElement.offsetWidth; setContainerWidth(newContainerWidth) document.getElementById('product-page-content').removeEventListener("DOMNodeRemoved", updateDimensions); document.getElementById('product-page-content').removeEventListener("DOMNodeInserted", updateDimensions); // if (cinemaMode === false) setSliderHeight(360) } // on mouse movement function onMouseMovement(event,showPlaylist,isFullScreen){ const mediaSliderOffest = $('#media-slider').offset() const mediaSliderLeft = mediaSliderOffest.left; const mediaSliderRight = mediaSliderLeft + $('#media-slider').width(); const mediaSliderTop = mediaSliderOffest.top - window.pageYOffset; let mediaSliderBottom = mediaSliderTop + $('#media-slider').height(); if (showPlaylist) mediaSliderBottom += 110; else mediaSliderBottom += 30; let mouseIn = false; if (event.clientX > mediaSliderLeft && event.clientX < mediaSliderRight && event.clientY > mediaSliderTop && event.clientY < mediaSliderBottom ){ mouseIn = true; } if (isFullScreen) mouseIn = true; if (mouseIn) { setSliderFadeControlsMode(false) clearTimeout(sliderFadeControlTimeOut); sliderFadeControlTimeOut = setTimeout(function(){ setSliderFadeControlsMode(true) }, 2000); } else { setSliderFadeControlsMode(true) clearTimeout(sliderFadeControlTimeOut); } } // toggle cinema mode function toggleCinemaMode(){ document.getElementById('product-page-content').addEventListener("DOMNodeRemoved", updateDimensions); document.getElementById('product-page-content').addEventListener("DOMNodeInserted", updateDimensions); const newCinemaMode = cinemaMode === true ? false : true; const targetParentElement = cinemaMode === true ? $('#product-main') : $('#product-page-content'); const targetChildPrependedElement = cinemaMode === true ? $('#product-title-div') : $('#product-media-slider-container'); $('#product-main-img-container').prependTo(targetParentElement); $(targetChildPrependedElement).prependTo('#product-main-img'); $("#product-media-slider-container").toggleClass("imgsmall"); $("#product-media-slider-container").toggleClass("imgfull"); setCinemaMode(newCinemaMode) } // toggle show playlist function toggleShowPlaylist(){ const newShowPlaylistValue = showPlaylist === true ? false : true; setShowPlaylist(newShowPlaylistValue) } //handle full screen toggle function hanleFullScreenToggle(val){ setIsFullScreen(val); } // on finish slides render function onFinishedSlidesRender(){ $(document).ready(function() { window.mySwiper = new Swiper('.swiper-container', { speed: 400, initialSlide: 0, observer: true, observeParents: true, preloadImages: true, updateOnImagesReady: true, pagination: '.swiper-pagination', paginationClickable: '.swiper-pagination', threshold:50, onSlideChangeStart: function(swiper){ setCurrentSlide(swiper.activeIndex); } }); window.mySwiper.update() // if (isMobile) setShowPlaylist(true) }); } // on finished thumbs render function onfinishedThumbsRender(){ $(document).ready(function() { let slidesPerView = Math.ceil(containerWidth / 200); if (isMobile) slidesPerView = 2; window.galleryThumbs = new Swiper('.gallery-thumbs', { slidesPerView:slidesPerView, initialSlide: currentSlide, spaceBetween:10, freeMode: true, watchSlidesVisibility: true, watchSlidesProgress: true, activeIndex:currentSlide, scrollbar:'.swiper-scrollbar' }); window.galleryThumbs.update() }); } // on thumb item click function onThumbItemClick(slideIndex){ window.mySwiper.slideTo(slideIndex) } // go next function goNext(){ let nextSlide = window.mySwiper.activeIndex + 1; if (nextSlide > gallery.length - 1) nextSlide = 0; window.mySwiper.slideTo(nextSlide) } // go prev function goPrev(){ let prevSlide = window.mySwiper.activeIndex - 1; if (prevSlide < 0 ) prevSlide = gallery.length - 1; window.mySwiper.slideTo(prevSlide) } /* Render */ // media slider css class let mediaSliderCssClass = ""; if (disableGallery === true) mediaSliderCssClass += "disable-gallery "; if (cinemaMode === true) mediaSliderCssClass += "cinema-mode "; // if (showSliderArrows === false) mediaSliderCssClass += "hide-arrows "; if (showPlaylist === false) mediaSliderCssClass += "hide-playlist "; if (sliderFadeControlsMode === true) mediaSliderCssClass += "fade-controls "; if (isMobile === true) mediaSliderCssClass += "is-mobile "; // slides display const slidesDisplay = gallery.map((s,index) => ( setSliderHeight(height)} onUpdateDimensions={updateDimensions} onFullScreenToggle={hanleFullScreenToggle} /> )); let thumbnailNavigationDisplay; if (showPlaylist){ // thumbnail navigation const slidesThumbnailNavigationDisplay = gallery.map((g, index) => ( onThumbItemClick(slideIndex)} /> )) + + let thumbnailNavigationCss; + if (containerWidth > (gallery.length * 200)){ + thumbnailNavigationCss = { + paddingLeft: (containerWidth - (gallery.length * 200)) / 2 + } + } + thumbnailNavigationDisplay = ( -
-
{slidesThumbnailNavigationDisplay}
+
+
{slidesThumbnailNavigationDisplay}
) } return (
{slidesDisplay}
{thumbnailNavigationDisplay}
) } function SlideItem(props){ const [ mediaStyle, setMediaStyle ] = useState(); + const [ itemSetHeight, setItemSetHeight ] = useState(); React.useEffect(() => { if (props.gallery && props.gallery.length === props.slideIndex + 1){ props.onFinishedSlidesRender(); } }, [props.gallery]) React.useEffect(() => { getSlideContentHeight(props.cinemaMode) },[props.currentSlide, props.cinemaMode]); function getSlideContentHeight(cinemaMode){ if (props.currentSlide === props.slideIndex){ if (props.slide.type === "image"){ const imageEl = document.getElementById('slide-img-'+props.slideIndex); - if ( cinemaMode === true ){ - let imageHeight = imageEl.naturalHeight; - if (imageEl.naturalWidth > window.innerWidth){ - let dimensionsPercentage = window.innerWidth / imageEl.naturalWidth; - imageHeight = imageEl.naturalHeight * dimensionsPercentage; - } - setMediaStyle({height:imageHeight}) - props.onSetSliderHeight(imageHeight); + if ( cinemaMode === true ){ + let imageHeight = imageEl.naturalHeight; + if (imageEl.naturalWidth > window.innerWidth){ + let dimensionsPercentage = window.innerWidth / imageEl.naturalWidth; + imageHeight = imageEl.naturalHeight * dimensionsPercentage; + } + setMediaStyle({height:imageHeight}) + props.onSetSliderHeight(imageHeight); + } else { + if (imageEl.offsetHeight > 0) { + if (props.disableGallery){ + let imageHeight = itemSetHeight; + if (!itemSetHeight) setItemSetHeight(imageEl.offsetHeight) + setMediaStyle({maxHeight:itemSetHeight}) + props.onSetSliderHeight(itemSetHeight) + } else { + setMediaStyle({marginTop:(props.sliderHeight - imageEl.offsetHeight) / 2}) + props.onSetSliderHeight(360) + } } else { - if (imageEl.offsetHeight > 0) { - if (props.disableGallery) props.onSetSliderHeight(imageEl.offsetHeight) - else { - setMediaStyle({marginTop:(props.sliderHeight - imageEl.offsetHeight) / 2}) - props.onSetSliderHeight(360) - } - } + if (props.disableGallery) setMediaStyle({maxHeight:360}) } } + } else if (props.slide.type === "embed"){ if (cinemaMode === true) props.onSetSliderHeight(315) } else if (props.slide.type === "video" || props.slide.type === "audio" || props.slide.type === "book"){ if (cinemaMode === true){ props.onSetSliderHeight(screen.height * 0.7); } else { props.onSetSliderHeight(360) } } } } function onCinemaModeClick(){ let cinemaMode = props.cinemaMode === true ? false : true; getSlideContentHeight(cinemaMode); props.onCinemaModeClick() } let slideContentDisplay; if (props.slide.type === "embed"){ slideContentDisplay =
; } else if (props.slide.type === "image") { slideContentDisplay = ( ) } else if (props.slide.type === "video") { slideContentDisplay = ( ) } else if (props.slide.type === "book"){ slideContentDisplay = ( ) } return(
{slideContentDisplay}
) } function ThumbNavigationItem(props){ React.useEffect(() => { if (props.gallery && props.gallery.length === props.slideIndex + 1){ props.onfinishedThumbsRender() } }, [props.gallery]) React.useEffect(() => { if (window.galleryThumbs){ window.galleryThumbs.slideTo(props.currentSlide); } },[props.currentSlide]) let previewImageContainer; if (props.item.type === "book"){ previewImageContainer = (
{props.item.title}
) } else { let bgImage; if (props.item.type === "image"){ bgImage = props.item.url.split('/img')[0] + "/cache/120x80-1/img" + props.item.url.split('/img')[1]; } else if (props.item.type === "video"){ bgImage = props.item.url_thumb; } previewImageContainer =
} return (
props.onThumbItemClick(props.slideIndex)} onTouchEnd={() => props.onThumbItemClick(props.slideIndex)}> {previewImageContainer}
) } const rootElement = document.getElementById("product-media-slider-container"); ReactDOM.render(, rootElement); \ No newline at end of file diff --git a/httpdocs/theme/react/product-media-slider/product-media-slider.js b/httpdocs/theme/react/product-media-slider/product-media-slider.js index 2e7dffe81..01f34cddf 100644 --- a/httpdocs/theme/react/product-media-slider/product-media-slider.js +++ b/httpdocs/theme/react/product-media-slider/product-media-slider.js @@ -1,59 +1,1133 @@ -!function(e){var t={};function n(r){if(t[r])return t[r].exports;var a=t[r]={i:r,l:!1,exports:{}};return e[r].call(a.exports,a,a.exports,n),a.l=!0,a.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var a in e)n.d(r,a,function(t){return e[t]}.bind(null,a));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=81)}([function(e,t,n){"use strict";e.exports=n(55)},function(e,t){e.exports=function(e){return e&&e.__esModule?e:{default:e}}},function(e,t,n){e.exports=n(63)()},function(e,t,n){var r; -/*! - Copyright (c) 2017 Jed Watson. - Licensed under the MIT License (MIT), see - http://jedwatson.github.io/classnames -*/ -/*! - Copyright (c) 2017 Jed Watson. - Licensed under the MIT License (MIT), see - http://jedwatson.github.io/classnames -*/ -!function(){"use strict";var n={}.hasOwnProperty;function a(){for(var e=[],t=0;t0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e,n=Math.floor(e%60),r=Math.floor(e/60%60),a=Math.floor(e/3600),i=Math.floor(t/60%60),o=Math.floor(t/3600);(u(e)||e===1/0)&&(a="-",r="-",n="-");return a=a>0||o>0?"".concat(a,":"):"",r="".concat((a||i>=10)&&r<10?"0".concat(r):r,":"),n=n<10?"0".concat(n):n,a+r+n},t.isVideoChild=function(e){if(e.props&&e.props.isVideoChild)return!0;return"source"===e.type||"track"===e.type},t.mergeAndSortChildren=function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1,a=l.default.Children.toArray(t),u=(n.order,(0,o.default)(n,["order"]));return a.filter(function(e){return!e.props.disabled}).concat(e.filter(function(e){return!s(a,function(t){return c(t,e)})})).map(function(t){var n=s(e,function(e){return c(e,t)}),r=n?n.props:{},a=(0,i.default)({},u,r,t.props),o=l.default.cloneElement(t,a,t.props.children);return o}).sort(function(e,t){return(e.props.order||r)-(t.props.order||r)})},t.deprecatedWarning=function(e,t){console.warn("WARNING: ".concat(e," will be deprecated soon! Please use ").concat(t," instead."))},t.throttle=function(e,t){var n=arguments,r=!1;return function(){r||(e.apply(void 0,(0,a.default)(n)),r=!0,setTimeout(function(){r=!1},t))}},t.mediaProperties=void 0;var a=r(n(33)),i=r(n(12)),o=r(n(19)),l=r(n(0)),u=Number.isNaN||function(e){return e!=e};var s=function(e,t){return e.filter(t)[0]},c=function(e,t){var n=e.type,r=t.type;return"string"==typeof n||"string"==typeof r?n===r:"function"==typeof n&&"function"==typeof r&&n.displayName===r.displayName};t.mediaProperties=["error","src","srcObject","currentSrc","crossOrigin","networkState","preload","buffered","readyState","seeking","currentTime","duration","paused","defaultPlaybackRate","playbackRate","played","seekable","ended","autoplay","loop","mediaGroup","controller","controls","volume","muted","defaultMuted","audioTracks","videoTracks","textTracks","width","height","videoWidth","videoHeight","poster"]},function(e,t,n){var r=n(18);e.exports=function(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:{action:"play",source:""};return this.video.play(),{type:i,operation:e}},t.pause=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{action:"pause",source:""};return this.video.pause(),{type:i,operation:e}},t.togglePlay=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{action:"toggle-play",source:""};return this.video.togglePlay(),{type:i,operation:e}},t.seek=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{action:"seek",source:""};return this.video.seek(e),{type:i,operation:t}},t.forward=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{action:"forward-".concat(e),source:""};return this.video.forward(e),{type:i,operation:t}},t.replay=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{action:"replay-".concat(e),source:""};return this.video.replay(e),{type:i,operation:t}},t.changeRate=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{action:"change-rate",source:""};return this.video.playbackRate=e,{type:i,operation:t}},t.changeVolume=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{action:"change-volume",source:""},n=e;e<0&&(n=0);e>1&&(n=1);return this.video.volume=n,{type:i,operation:t}},t.mute=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{action:e?"muted":"unmuted",source:""};return this.video.muted=e,{type:i,operation:t}},t.toggleFullscreen=function(e){if(a.default.enabled)return a.default.isFullscreen?a.default.exit():a.default.request(this.rootElement),{type:i,operation:{action:"toggle-fullscreen",source:""}};return{type:o,isFullscreen:!e.isFullscreen}},t.USER_ACTIVATE=t.PLAYER_ACTIVATE=t.FULLSCREEN_CHANGE=t.OPERATE=void 0;var a=r(n(28)),i="video-react/OPERATE";t.OPERATE=i;var o="video-react/FULLSCREEN_CHANGE";t.FULLSCREEN_CHANGE=o;var l="video-react/PLAYER_ACTIVATE";t.PLAYER_ACTIVATE=l;var u="video-react/USER_ACTIVATE";t.USER_ACTIVATE=u},function(e,t,n){e.exports=function(e){var t={};function n(r){if(t[r])return t[r].exports;var a=t[r]={i:r,l:!1,exports:{}};return e[r].call(a.exports,a,a.exports,n),a.l=!0,a.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:r})},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=3)}([function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(6),a=t.UA=new r;t.browser=a.getBrowser(),t.cpu=a.getCPU(),t.device=a.getDevice(),t.engine=a.getEngine(),t.os=a.getOS(),t.ua=a.getUA(),t.setUA=function(e){return a.setUA(e)},t.mockUserAgent=function(e){window.navigator.__defineGetter__("userAgent",function(){return e})}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isYandex=t.isEdge=t.getUA=t.engineVersion=t.engineName=t.mobileModel=t.mobileVendor=t.browserName=t.browserVersion=t.fullBrowserVersion=t.osName=t.osVersion=t.isIE=t.isOpera=t.isSafari=t.isFirefox=t.isChrome=t.isIOS=t.isWinPhone=t.isAndroid=t.isBrowser=t.isTablet=t.isMobileOnly=t.isMobile=t.isChromium=t.isMobileSafari=t.isWearable=t.isConsole=t.isSmartTV=void 0;var r=n(0),a=n(2),i=a.BROWSER_TYPES.CHROME,o=a.BROWSER_TYPES.CHROMIUM,l=a.BROWSER_TYPES.IE,u=a.BROWSER_TYPES.INTERNET_EXPLORER,s=a.BROWSER_TYPES.OPERA,c=a.BROWSER_TYPES.FIREFOX,d=a.BROWSER_TYPES.SAFARI,f=a.BROWSER_TYPES.MOBILE_SAFARI,p=a.BROWSER_TYPES.EDGE,h=a.BROWSER_TYPES.YANDEX,m=a.DEVICE_TYPES.MOBILE,v=a.DEVICE_TYPES.TABLET,y=a.DEVICE_TYPES.SMART_TV,g=a.DEVICE_TYPES.BROWSER,b=a.DEVICE_TYPES.WEARABLE,w=a.DEVICE_TYPES.CONSOLE,k=a.OS_TYPES.ANDROID,E=a.OS_TYPES.WINDOWS_PHONE,S=a.OS_TYPES.IOS;t.isSmartTV=r.device.type===y,t.isConsole=r.device.type===w,t.isWearable=r.device.type===b,t.isMobileSafari=r.browser.name===f,t.isChromium=r.browser.name===o,t.isMobile=function(){switch(r.device.type){case m:case v:return!0;default:return!1}}(),t.isMobileOnly=r.device.type===m,t.isTablet=r.device.type===v,t.isBrowser=r.device.type===g,t.isAndroid=r.os.name===k,t.isWinPhone=r.os.name===E,t.isIOS=r.os.name===S,t.isChrome=r.browser.name===i,t.isFirefox=r.browser.name===c,t.isSafari=r.browser.name===d||r.browser.name===f,t.isOpera=r.browser.name===s,t.isIE=r.browser.name===u||r.browser.name===l,t.osVersion=r.os.version?r.os.version:"none",t.osName=r.os.name?r.os.name:"none",t.fullBrowserVersion=r.browser.major,t.browserVersion=r.browser.version,t.browserName=r.browser.name,t.mobileVendor=r.device.vendor?r.device.vendor:"none",t.mobileModel=r.device.model?r.device.model:"none",t.engineName=r.engine.name,t.engineVersion=r.engine.version,t.getUA=r.ua,t.isEdge=r.browser.name===p,t.isYandex=r.browser.name===h},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.wearPayload=t.consolePayload=t.stvPayload=t.mobilePayload=t.broPayload=t.getCurrentBrowser=t.checkType=t.OS_TYPES=t.BROWSER_TYPES=t.DEVICE_TYPES=void 0;var r=Object.assign||function(e){for(var t=1;t - * Dual licensed under GPLv2 or MIT - */ -/*! - * UAParser.js v0.7.18 - * Lightweight JavaScript-based User-Agent string parser - * https://github.com/faisalman/ua-parser-js - * - * Copyright © 2012-2016 Faisal Salman - * Dual licensed under GPLv2 or MIT - */ -!function(a,i){"use strict";var o="model",l="name",u="type",s="vendor",c="version",d="mobile",f="tablet",p={extend:function(e,t){var n={};for(var r in e)t[r]&&t[r].length%2==0?n[r]=t[r].concat(e[r]):n[r]=e[r];return n},has:function(e,t){return"string"==typeof e&&-1!==t.toLowerCase().indexOf(e.toLowerCase())},lowerize:function(e){return e.toLowerCase()},major:function(e){return"string"==typeof e?e.replace(/[^\d\.]/g,"").split(".")[0]:void 0},trim:function(e){return e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"")}},h={rgx:function(e,t){for(var n,r,a,i,o,l,u=0;u0?2==i.length?"function"==typeof i[1]?this[i[0]]=i[1].call(this,l):this[i[0]]=i[1]:3==i.length?"function"!=typeof i[1]||i[1].exec&&i[1].test?this[i[0]]=l?l.replace(i[1],i[2]):void 0:this[i[0]]=l?i[1].call(this,l,i[2]):void 0:4==i.length&&(this[i[0]]=l?i[3].call(this,l.replace(i[1],i[2])):void 0):this[i]=l||void 0;u+=2}},str:function(e,t){for(var n in t)if("object"==typeof t[n]&&t[n].length>0){for(var r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.handleLoadStart=function(e){return{type:r,videoProps:e}},t.handleCanPlay=function(e){return{type:a,videoProps:e}},t.handleWaiting=function(e){return{type:i,videoProps:e}},t.handleCanPlayThrough=function(e){return{type:o,videoProps:e}},t.handlePlaying=function(e){return{type:l,videoProps:e}},t.handlePlay=function(e){return{type:u,videoProps:e}},t.handlePause=function(e){return{type:s,videoProps:e}},t.handleEnd=function(e){return{type:c,videoProps:e}},t.handleSeeking=function(e){return{type:d,videoProps:e}},t.handleSeeked=function(e){return{type:f,videoProps:e}},t.handleDurationChange=function(e){return{type:m,videoProps:e}},t.handleTimeUpdate=function(e){return{type:v,videoProps:e}},t.handleVolumeChange=function(e){return{type:y,videoProps:e}},t.handleProgressChange=function(e){return{type:g,videoProps:e}},t.handleRateChange=function(e){return{type:b,videoProps:e}},t.handleSuspend=function(e){return{type:w,videoProps:e}},t.handleAbort=function(e){return{type:k,videoProps:e}},t.handleEmptied=function(e){return{type:E,videoProps:e}},t.handleStalled=function(e){return{type:S,videoProps:e}},t.handleLoadedMetaData=function(e){return{type:T,videoProps:e}},t.handleLoadedData=function(e){return{type:C,videoProps:e}},t.handleResize=function(e){return{type:P,videoProps:e}},t.handleError=function(e){return{type:x,videoProps:e}},t.handleSeekingTime=function(e){return{type:p,time:e}},t.handleEndSeeking=function(e){return{type:h,time:e}},t.ERROR=t.RESIZE=t.LOADED_DATA=t.LOADED_META_DATA=t.STALLED=t.EMPTIED=t.ABORT=t.SUSPEND=t.RATE_CHANGE=t.PROGRESS_CHANGE=t.VOLUME_CHANGE=t.TIME_UPDATE=t.DURATION_CHANGE=t.END_SEEKING=t.SEEKING_TIME=t.SEEKED=t.SEEKING=t.END=t.PAUSE=t.PLAY=t.PLAYING=t.CAN_PLAY_THROUGH=t.WAITING=t.CAN_PLAY=t.LOAD_START=void 0;var r="video-react/LOAD_START";t.LOAD_START=r;var a="video-react/CAN_PLAY";t.CAN_PLAY=a;var i="video-react/WAITING";t.WAITING=i;var o="video-react/CAN_PLAY_THROUGH";t.CAN_PLAY_THROUGH=o;var l="video-react/PLAYING";t.PLAYING=l;var u="video-react/PLAY";t.PLAY=u;var s="video-react/PAUSE";t.PAUSE=s;var c="video-react/END";t.END=c;var d="video-react/SEEKING";t.SEEKING=d;var f="video-react/SEEKED";t.SEEKED=f;var p="video-react/SEEKING_TIME";t.SEEKING_TIME=p;var h="video-react/END_SEEKING";t.END_SEEKING=h;var m="video-react/DURATION_CHANGE";t.DURATION_CHANGE=m;var v="video-react/TIME_UPDATE";t.TIME_UPDATE=v;var y="video-react/VOLUME_CHANGE";t.VOLUME_CHANGE=y;var g="video-react/PROGRESS_CHANGE";t.PROGRESS_CHANGE=g;var b="video-react/RATE_CHANGE";t.RATE_CHANGE=b;var w="video-react/SUSPEND";t.SUSPEND=w;var k="video-react/ABORT";t.ABORT=k;var E="video-react/EMPTIED";t.EMPTIED=E;var S="video-react/STALLED";t.STALLED=S;var T="video-react/LOADED_META_DATA";t.LOADED_META_DATA=T;var C="video-react/LOADED_DATA";t.LOADED_DATA=C;var P="video-react/RESIZE";t.RESIZE=P;var x="video-react/ERROR";t.ERROR=x},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.findElPosition=a,t.getPointerPosition=function(e,t){var n={},r=a(e),i=e.offsetWidth,o=e.offsetHeight,l=r.top,u=r.left,s=t.pageY,c=t.pageX;t.changedTouches&&(c=t.changedTouches[0].pageX,s=t.changedTouches[0].pageY);return n.y=Math.max(0,Math.min(1,(l-s+o)/o)),n.x=Math.max(0,Math.min(1,(c-u)/i)),n},t.blurNode=function(e){var t=(0,r.findDOMNode)(e);t&&t.blur&&t.blur()},t.hasClass=function(e,t){for(var n=e.className.split(" "),r=0;r=0&&e0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;return{player:(0,a.default)(e.player,t),operation:(0,i.default)(e.operation,t)}},t.operationReducer=t.playerReducer=void 0;var a=r(n(68)),i=r(n(69));var o=a.default;t.playerReducer=o;var l=i.default;t.operationReducer=l},function(e,t,n){"use strict";var r=n(1);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=r(n(4)),i=r(n(5)),o=new(function(){function e(){(0,a.default)(this,e)}return(0,i.default)(e,[{key:"request",value:function(e){e.requestFullscreen?e.requestFullscreen():e.webkitRequestFullscreen?e.webkitRequestFullscreen():e.mozRequestFullScreen?e.mozRequestFullScreen():e.msRequestFullscreen&&e.msRequestFullscreen()}},{key:"exit",value:function(){document.exitFullscreen?document.exitFullscreen():document.webkitExitFullscreen?document.webkitExitFullscreen():document.mozCancelFullScreen?document.mozCancelFullScreen():document.msExitFullscreen&&document.msExitFullscreen()}},{key:"addEventListener",value:function(e){document.addEventListener("fullscreenchange",e),document.addEventListener("webkitfullscreenchange",e),document.addEventListener("mozfullscreenchange",e),document.addEventListener("MSFullscreenChange",e)}},{key:"removeEventListener",value:function(e){document.removeEventListener("fullscreenchange",e),document.removeEventListener("webkitfullscreenchange",e),document.removeEventListener("mozfullscreenchange",e),document.removeEventListener("MSFullscreenChange",e)}},{key:"isFullscreen",get:function(){return document.fullscreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.msFullscreenElement}},{key:"enabled",get:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled||document.mozFullScreenEnabled||document.msFullscreenEnabled}}]),e}());t.default=o},function(e,t,n){"use strict";var r=n(6),a=n(1);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=a(n(4)),o=a(n(5)),l=a(n(7)),u=a(n(9)),s=a(n(10)),c=a(n(8)),d=a(n(2)),f=r(n(0)),p=a(n(3)),h={actions:d.default.object,player:d.default.object,position:d.default.string,className:d.default.string},m=function(e){function t(e,n){var r;return(0,i.default)(this,t),(r=(0,l.default)(this,(0,u.default)(t).call(this,e,n))).handleClick=r.handleClick.bind((0,c.default)((0,c.default)(r))),r}return(0,s.default)(t,e),(0,o.default)(t,[{key:"componentDidMount",value:function(){}},{key:"handleClick",value:function(){this.props.actions.play()}},{key:"render",value:function(){var e=this.props,t=e.player,n=e.position;return f.default.createElement("button",{className:(0,p.default)("video-react-big-play-button","video-react-big-play-button-".concat(n),this.props.className,{"big-play-button-hide":t.hasStarted||!t.currentSrc}),type:"button","aria-live":"polite",tabIndex:"0",onClick:this.handleClick},f.default.createElement("span",{className:"video-react-control-text"},"Play Video"))}}]),t}(f.Component);t.default=m,m.propTypes=h,m.defaultProps={position:"left"},m.displayName="BigPlayButton"},function(e,t,n){"use strict";var r=n(1);Object.defineProperty(t,"__esModule",{value:!0}),t.default=u;var a=r(n(2)),i=r(n(0)),o=r(n(3)),l={player:a.default.object,className:a.default.string};function u(e){var t=e.player,n=e.className;return t.error?null:i.default.createElement("div",{className:(0,o.default)("video-react-loading-spinner",n)})}u.propTypes=l,u.displayName="LoadingSpinner"},function(e,t,n){"use strict";var r=n(1);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=r(n(2)),i=r(n(0)),o=r(n(3)),l={poster:a.default.string,player:a.default.object,actions:a.default.object,className:a.default.string};function u(e){var t=e.poster,n=e.player,r=e.actions,a=e.className;return!t||n.hasStarted?null:i.default.createElement("div",{className:(0,o.default)("video-react-poster",a),style:{backgroundImage:'url("'.concat(t,'")')},onClick:function(){n.paused&&r.play()}})}u.propTypes=l,u.displayName="PosterImage";var s=u;t.default=s},function(e,t,n){"use strict";var r=n(6),a=n(1);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=a(n(12)),o=a(n(4)),l=a(n(5)),u=a(n(7)),s=a(n(9)),c=a(n(10)),d=a(n(8)),f=a(n(2)),p=r(n(0)),h=a(n(3)),m=n(11),v={actions:f.default.object,player:f.default.object,children:f.default.any,startTime:f.default.number,loop:f.default.bool,muted:f.default.bool,autoPlay:f.default.bool,playsInline:f.default.bool,src:f.default.string,poster:f.default.string,className:f.default.string,preload:f.default.oneOf(["auto","metadata","none"]),crossOrigin:f.default.string,onLoadStart:f.default.func,onWaiting:f.default.func,onCanPlay:f.default.func,onCanPlayThrough:f.default.func,onPlaying:f.default.func,onEnded:f.default.func,onSeeking:f.default.func,onSeeked:f.default.func,onPlay:f.default.func,onPause:f.default.func,onProgress:f.default.func,onDurationChange:f.default.func,onError:f.default.func,onSuspend:f.default.func,onAbort:f.default.func,onEmptied:f.default.func,onStalled:f.default.func,onLoadedMetadata:f.default.func,onLoadedData:f.default.func,onTimeUpdate:f.default.func,onRateChange:f.default.func,onVolumeChange:f.default.func,onResize:f.default.func},y=function(e){function t(e){var n;return(0,o.default)(this,t),(n=(0,u.default)(this,(0,s.default)(t).call(this,e))).video=null,n.play=n.play.bind((0,d.default)((0,d.default)(n))),n.pause=n.pause.bind((0,d.default)((0,d.default)(n))),n.seek=n.seek.bind((0,d.default)((0,d.default)(n))),n.forward=n.forward.bind((0,d.default)((0,d.default)(n))),n.replay=n.replay.bind((0,d.default)((0,d.default)(n))),n.toggleFullscreen=n.toggleFullscreen.bind((0,d.default)((0,d.default)(n))),n.getProperties=n.getProperties.bind((0,d.default)((0,d.default)(n))),n.renderChildren=n.renderChildren.bind((0,d.default)((0,d.default)(n))),n.handleLoadStart=n.handleLoadStart.bind((0,d.default)((0,d.default)(n))),n.handleCanPlay=n.handleCanPlay.bind((0,d.default)((0,d.default)(n))),n.handleCanPlayThrough=n.handleCanPlayThrough.bind((0,d.default)((0,d.default)(n))),n.handlePlay=n.handlePlay.bind((0,d.default)((0,d.default)(n))),n.handlePlaying=n.handlePlaying.bind((0,d.default)((0,d.default)(n))),n.handlePause=n.handlePause.bind((0,d.default)((0,d.default)(n))),n.handleEnded=n.handleEnded.bind((0,d.default)((0,d.default)(n))),n.handleWaiting=n.handleWaiting.bind((0,d.default)((0,d.default)(n))),n.handleSeeking=n.handleSeeking.bind((0,d.default)((0,d.default)(n))),n.handleSeeked=n.handleSeeked.bind((0,d.default)((0,d.default)(n))),n.handleFullscreenChange=n.handleFullscreenChange.bind((0,d.default)((0,d.default)(n))),n.handleError=n.handleError.bind((0,d.default)((0,d.default)(n))),n.handleSuspend=n.handleSuspend.bind((0,d.default)((0,d.default)(n))),n.handleAbort=n.handleAbort.bind((0,d.default)((0,d.default)(n))),n.handleEmptied=n.handleEmptied.bind((0,d.default)((0,d.default)(n))),n.handleStalled=n.handleStalled.bind((0,d.default)((0,d.default)(n))),n.handleLoadedMetaData=n.handleLoadedMetaData.bind((0,d.default)((0,d.default)(n))),n.handleLoadedData=n.handleLoadedData.bind((0,d.default)((0,d.default)(n))),n.handleTimeUpdate=n.handleTimeUpdate.bind((0,d.default)((0,d.default)(n))),n.handleRateChange=n.handleRateChange.bind((0,d.default)((0,d.default)(n))),n.handleVolumeChange=n.handleVolumeChange.bind((0,d.default)((0,d.default)(n))),n.handleDurationChange=n.handleDurationChange.bind((0,d.default)((0,d.default)(n))),n.handleProgress=(0,m.throttle)(n.handleProgress.bind((0,d.default)((0,d.default)(n))),250),n.handleKeypress=n.handleKeypress.bind((0,d.default)((0,d.default)(n))),n}return(0,c.default)(t,e),(0,l.default)(t,[{key:"componentDidMount",value:function(){this.forceUpdate()}},{key:"getProperties",value:function(){var e=this;return this.video?m.mediaProperties.reduce(function(t,n){return t[n]=e.video[n],t},{}):null}},{key:"play",value:function(){var e=this.video.play();void 0!==e&&e.catch(function(){}).then(function(){})}},{key:"pause",value:function(){var e=this.video.pause();void 0!==e&&e.catch(function(){}).then(function(){})}},{key:"load",value:function(){this.video.load()}},{key:"addTextTrack",value:function(){var e;(e=this.video).addTextTrack.apply(e,arguments)}},{key:"canPlayType",value:function(){var e;(e=this.video).canPlayType.apply(e,arguments)}},{key:"togglePlay",value:function(){this.video.paused?this.play():this.pause()}},{key:"seek",value:function(e){try{this.video.currentTime=e}catch(e){}}},{key:"forward",value:function(e){this.seek(this.video.currentTime+e)}},{key:"replay",value:function(e){this.forward(-e)}},{key:"toggleFullscreen",value:function(){var e=this.props,t=e.player;e.actions.toggleFullscreen(t)}},{key:"handleLoadStart",value:function(){var e=this.props,t=e.actions,n=e.onLoadStart;t.handleLoadStart(this.getProperties()),n&&n.apply(void 0,arguments)}},{key:"handleCanPlay",value:function(){var e=this.props,t=e.actions,n=e.onCanPlay;t.handleCanPlay(this.getProperties()),n&&n.apply(void 0,arguments)}},{key:"handleCanPlayThrough",value:function(){var e=this.props,t=e.actions,n=e.onCanPlayThrough;t.handleCanPlayThrough(this.getProperties()),n&&n.apply(void 0,arguments)}},{key:"handlePlaying",value:function(){var e=this.props,t=e.actions,n=e.onPlaying;t.handlePlaying(this.getProperties()),n&&n.apply(void 0,arguments)}},{key:"handlePlay",value:function(){var e=this.props,t=e.actions,n=e.onPlay;t.handlePlay(this.getProperties()),n&&n.apply(void 0,arguments)}},{key:"handlePause",value:function(){var e=this.props,t=e.actions,n=e.onPause;t.handlePause(this.getProperties()),n&&n.apply(void 0,arguments)}},{key:"handleDurationChange",value:function(){var e=this.props,t=e.actions,n=e.onDurationChange;t.handleDurationChange(this.getProperties()),n&&n.apply(void 0,arguments)}},{key:"handleProgress",value:function(){var e=this.props,t=e.actions,n=e.onProgress;this.video&&t.handleProgressChange(this.getProperties()),n&&n.apply(void 0,arguments)}},{key:"handleEnded",value:function(){var e=this.props,t=e.loop,n=e.player,r=e.actions,a=e.onEnded;t?(this.seek(0),this.play()):n.paused||this.pause(),r.handleEnd(this.getProperties()),a&&a.apply(void 0,arguments)}},{key:"handleWaiting",value:function(){var e=this.props,t=e.actions,n=e.onWaiting;t.handleWaiting(this.getProperties()),n&&n.apply(void 0,arguments)}},{key:"handleSeeking",value:function(){var e=this.props,t=e.actions,n=e.onSeeking;t.handleSeeking(this.getProperties()),n&&n.apply(void 0,arguments)}},{key:"handleSeeked",value:function(){var e=this.props,t=e.actions,n=e.onSeeked;t.handleSeeked(this.getProperties()),n&&n.apply(void 0,arguments)}},{key:"handleFullscreenChange",value:function(){}},{key:"handleSuspend",value:function(){var e=this.props,t=e.actions,n=e.onSuspend;t.handleSuspend(this.getProperties()),n&&n.apply(void 0,arguments)}},{key:"handleAbort",value:function(){var e=this.props,t=e.actions,n=e.onAbort;t.handleAbort(this.getProperties()),n&&n.apply(void 0,arguments)}},{key:"handleEmptied",value:function(){var e=this.props,t=e.actions,n=e.onEmptied;t.handleEmptied(this.getProperties()),n&&n.apply(void 0,arguments)}},{key:"handleStalled",value:function(){var e=this.props,t=e.actions,n=e.onStalled;t.handleStalled(this.getProperties()),n&&n.apply(void 0,arguments)}},{key:"handleLoadedMetaData",value:function(){var e=this.props,t=e.actions,n=e.onLoadedMetadata,r=e.startTime;r&&r>0&&(this.video.currentTime=r),t.handleLoadedMetaData(this.getProperties()),n&&n.apply(void 0,arguments)}},{key:"handleLoadedData",value:function(){var e=this.props,t=e.actions,n=e.onLoadedData;t.handleLoadedData(this.getProperties()),n&&n.apply(void 0,arguments)}},{key:"handleTimeUpdate",value:function(){var e=this.props,t=e.actions,n=e.onTimeUpdate;t.handleTimeUpdate(this.getProperties()),n&&n.apply(void 0,arguments)}},{key:"handleRateChange",value:function(){var e=this.props,t=e.actions,n=e.onRateChange;t.handleRateChange(this.getProperties()),n&&n.apply(void 0,arguments)}},{key:"handleVolumeChange",value:function(){var e=this.props,t=e.actions,n=e.onVolumeChange;t.handleVolumeChange(this.getProperties()),n&&n.apply(void 0,arguments)}},{key:"handleError",value:function(){var e=this.props,t=e.actions,n=e.onError;t.handleError(this.getProperties()),n&&n.apply(void 0,arguments)}},{key:"handleResize",value:function(){var e=this.props,t=e.actions,n=e.onResize;t.handleResize(this.getProperties()),n&&n.apply(void 0,arguments)}},{key:"handleKeypress",value:function(){}},{key:"renderChildren",value:function(){var e=this,t=(0,i.default)({},this.props,{video:this.video});return this.video?p.default.Children.toArray(this.props.children).filter(m.isVideoChild).map(function(n){var r;if("string"==typeof n.type){if("source"===n.type){var a=(r=(0,i.default)({},n.props)).onError;r.onError=function(){a&&a.apply(void 0,arguments),e.handleError.apply(e,arguments)}}}else r=t;return p.default.cloneElement(n,r)}):null}},{key:"render",value:function(){var e=this,t=this.props,n=t.loop,r=t.poster,a=t.preload,i=t.src,o=t.autoPlay,l=t.playsInline,u=t.muted,s=t.crossOrigin,c=t.videoId;return p.default.createElement("video",{className:(0,h.default)("video-react-video",this.props.className),id:c,crossOrigin:s,ref:function(t){e.video=t},muted:u,preload:a,loop:n,playsInline:l,autoPlay:o,poster:r,src:i,onLoadStart:this.handleLoadStart,onWaiting:this.handleWaiting,onCanPlay:this.handleCanPlay,onCanPlayThrough:this.handleCanPlayThrough,onPlaying:this.handlePlaying,onEnded:this.handleEnded,onSeeking:this.handleSeeking,onSeeked:this.handleSeeked,onPlay:this.handlePlay,onPause:this.handlePause,onProgress:this.handleProgress,onDurationChange:this.handleDurationChange,onError:this.handleError,onSuspend:this.handleSuspend,onAbort:this.handleAbort,onEmptied:this.handleEmptied,onStalled:this.handleStalled,onLoadedMetadata:this.handleLoadedMetaData,onLoadedData:this.handleLoadedData,onTimeUpdate:this.handleTimeUpdate,onRateChange:this.handleRateChange,onVolumeChange:this.handleVolumeChange,tabIndex:"-1"},this.renderChildren())}},{key:"playbackRate",get:function(){return this.video.playbackRate},set:function(e){this.video.playbackRate=e}},{key:"muted",get:function(){return this.video.muted},set:function(e){this.video.muted=e}},{key:"volume",get:function(){return this.video.volume},set:function(e){e>1&&(e=1),e<0&&(e=0),this.video.volume=e}},{key:"videoWidth",get:function(){return this.video.videoWidth}},{key:"videoHeight",get:function(){return this.video.videoHeight}}]),t}(p.Component);t.default=y,y.propTypes=v,y.displayName="Video"},function(e,t,n){var r=n(70),a=n(71),i=n(72);e.exports=function(e){return r(e)||a(e)||i()}},function(e,t,n){"use strict";var r=n(6),a=n(1);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=a(n(4)),o=a(n(5)),l=a(n(7)),u=a(n(9)),s=a(n(10)),c=a(n(8)),d=a(n(2)),f=r(n(0)),p=a(n(3)),h={manager:d.default.object,className:d.default.string},m=function(e){function t(e,n){var r;return(0,i.default)(this,t),(r=(0,l.default)(this,(0,u.default)(t).call(this,e,n))).timer=null,e.manager.subscribeToOperationStateChange(r.handleStateChange.bind((0,c.default)((0,c.default)(r)))),r.state={hidden:!0,operation:{}},r}return(0,s.default)(t,e),(0,o.default)(t,[{key:"handleStateChange",value:function(e,t){var n=this;e.count!==t.count&&"shortcut"===e.operation.source&&(this.timer&&(clearTimeout(this.timer),this.timer=null),this.setState({hidden:!1,count:e.count,operation:e.operation}),this.timer=setTimeout(function(){n.setState({hidden:!0}),n.timer=null},500))}},{key:"render",value:function(){if("shortcut"!==this.state.operation.source)return null;var e=this.state.hidden?{display:"none"}:null;return f.default.createElement("div",{className:(0,p.default)({"video-react-bezel":!0,"video-react-bezel-animation":this.state.count%2==0,"video-react-bezel-animation-alt":this.state.count%2==1},this.props.className),style:e,role:"status","aria-label":this.state.operation.action},f.default.createElement("div",{className:(0,p.default)("video-react-bezel-icon","video-react-bezel-icon-".concat(this.state.operation.action))}))}}]),t}(f.Component);t.default=m,m.propTypes=h,m.displayName="Bezel"},function(e,t,n){"use strict";var r=n(1);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=r(n(18)),i=r(n(33)),o=r(n(4)),l=r(n(5)),u=r(n(7)),s=r(n(9)),c=r(n(10)),d=r(n(8)),f=n(0),p=r(n(2)),h=n(21),m={clickable:p.default.bool,dblclickable:p.default.bool,manager:p.default.object,actions:p.default.object,player:p.default.object,shortcuts:p.default.array},v=function(e){function t(e,n){var r;return(0,o.default)(this,t),(r=(0,u.default)(this,(0,s.default)(t).call(this,e,n))).defaultShortcuts=[{keyCode:32,handle:r.togglePlay},{keyCode:75,handle:r.togglePlay},{keyCode:70,handle:r.toggleFullscreen},{keyCode:37,handle:function(e,t){e.hasStarted&&t.replay(5,{action:"replay-5",source:"shortcut"})}},{keyCode:74,handle:function(e,t){e.hasStarted&&t.replay(10,{action:"replay-10",source:"shortcut"})}},{keyCode:39,handle:function(e,t){e.hasStarted&&t.forward(5,{action:"forward-5",source:"shortcut"})}},{keyCode:76,handle:function(e,t){e.hasStarted&&t.forward(10,{action:"forward-10",source:"shortcut"})}},{keyCode:36,handle:function(e,t){e.hasStarted&&t.seek(0)}},{keyCode:35,handle:function(e,t){e.hasStarted&&t.seek(e.duration)}},{keyCode:38,handle:function(e,t){var n=e.volume+.05;n>1&&(n=1),t.changeVolume(n,{action:"volume-up",source:"shortcut"})}},{keyCode:40,handle:function(e,t){var n=e.volume-.05;n<0&&(n=0);var r=n>0?"volume-down":"volume-off";t.changeVolume(n,{action:r,source:"shortcut"})}},{keyCode:190,shift:!0,handle:function(e,t){var n=e.playbackRate;n>=1.5?n=2:n>=1.25?n=1.5:n>=1?n=1.25:n>=.5?n=1:n>=.25?n=.5:n>=0&&(n=.25),t.changeRate(n,{action:"fast-forward",source:"shortcut"})}},{keyCode:188,shift:!0,handle:function(e,t){var n=e.playbackRate;n<=.5?n=.25:n<=1?n=.5:n<=1.25?n=1:n<=1.5?n=1.25:n<=2&&(n=1.5),t.changeRate(n,{action:"fast-rewind",source:"shortcut"})}}],r.shortcuts=(0,i.default)(r.defaultShortcuts),r.mergeShortcuts=r.mergeShortcuts.bind((0,d.default)((0,d.default)(r))),r.handleKeyPress=r.handleKeyPress.bind((0,d.default)((0,d.default)(r))),r.handleClick=r.handleClick.bind((0,d.default)((0,d.default)(r))),r.handleDoubleClick=r.handleDoubleClick.bind((0,d.default)((0,d.default)(r))),r}return(0,c.default)(t,e),(0,l.default)(t,[{key:"componentDidMount",value:function(){this.mergeShortcuts(),document.addEventListener("keydown",this.handleKeyPress),document.addEventListener("click",this.handleClick),document.addEventListener("dblclick",this.handleDoubleClick)}},{key:"componentDidUpdate",value:function(e){e.shortcuts!==this.props.shortcuts&&this.mergeShortcuts()}},{key:"componentWillUnmount",value:function(){document.removeEventListener("keydown",this.handleKeyPress),document.removeEventListener("click",this.handleClick),document.removeEventListener("dblclick",this.handleDoubleClick)}},{key:"mergeShortcuts",value:function(){var e=function(e){var t=e.keyCode,n=void 0===t?0:t,r=e.ctrl,a=void 0!==r&&r,i=e.shift,o=void 0!==i&&i,l=e.alt,u=void 0!==l&&l;return"".concat(n,":").concat(a,":").concat(o,":").concat(u)},t=this.defaultShortcuts.reduce(function(t,n){return Object.assign(t,(0,a.default)({},e(n),n))},{}),n=(this.props.shortcuts||[]).reduce(function(t,n){var r=n.keyCode,i=n.handle;return r&&"function"==typeof i?Object.assign(t,(0,a.default)({},e(n),n)):t},t),r=function(e){var t=0;return["ctrl","shift","alt"].forEach(function(n){e[n]&&t++}),t};this.shortcuts=Object.keys(n).map(function(e){return n[e]}).sort(function(e,t){return r(t)-r(e)})}},{key:"togglePlay",value:function(e,t){e.paused?t.play({action:"play",source:"shortcut"}):t.pause({action:"pause",source:"shortcut"})}},{key:"toggleFullscreen",value:function(e,t){t.toggleFullscreen(e)}},{key:"handleKeyPress",value:function(e){var t=this.props,n=t.player,r=t.actions;if(n.isActive&&(!document.activeElement||!((0,h.hasClass)(document.activeElement,"video-react-control")||(0,h.hasClass)(document.activeElement,"video-react-menu-button-active")||(0,h.hasClass)(document.activeElement,"video-react-big-play-button")))){var a=e.keyCode||e.which,i=e.ctrlKey||e.metaKey,o=e.shiftKey,l=e.altKey,u=this.shortcuts.filter(function(e){return!(!e.keyCode||e.keyCode-a!=0)&&!(void 0!==e.ctrl&&e.ctrl!==i||void 0!==e.shift&&e.shift!==o||void 0!==e.alt&&e.alt!==l)})[0];u&&(u.handle(n,r),e.preventDefault())}}},{key:"canBeClicked",value:function(e,t){return!(!e.isActive||"VIDEO"!==t.target.nodeName||4!==e.readyState)}},{key:"handleClick",value:function(e){var t=this.props,n=t.player,r=t.actions,a=t.clickable;this.canBeClicked(n,e)&&a&&this.togglePlay(n,r)}},{key:"handleDoubleClick",value:function(e){var t=this.props,n=t.player,r=t.actions,a=t.dblclickable;this.canBeClicked(n,e)&&a&&this.toggleFullscreen(n,r)}},{key:"render",value:function(){return null}}]),t}(f.Component);t.default=v,v.propTypes=m,v.defaultProps={clickable:!0,dblclickable:!0},v.displayName="Shortcut"},function(e,t,n){"use strict";var r=n(6),a=n(1);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=a(n(19)),o=a(n(4)),l=a(n(5)),u=a(n(7)),s=a(n(9)),c=a(n(10)),d=a(n(8)),f=a(n(2)),p=r(n(0)),h=a(n(3)),m=a(n(37)),v=a(n(42)),y=a(n(43)),g=a(n(45)),b=a(n(46)),w=a(n(47)),k=a(n(48)),E=a(n(49)),S=a(n(50)),T=a(n(51)),C=a(n(23)),P=n(11),x={children:f.default.any,autoHide:f.default.bool,autoHideTime:f.default.number,disableDefaultControls:f.default.bool,disableCompletely:f.default.bool,className:f.default.string},_=function(e){function t(e){var n;return(0,o.default)(this,t),(n=(0,u.default)(this,(0,s.default)(t).call(this,e))).getDefaultChildren=n.getDefaultChildren.bind((0,d.default)((0,d.default)(n))),n.getFullChildren=n.getFullChildren.bind((0,d.default)((0,d.default)(n))),n}return(0,c.default)(t,e),(0,l.default)(t,[{key:"getDefaultChildren",value:function(){return[p.default.createElement(v.default,{key:"play-toggle",order:1}),p.default.createElement(T.default,{key:"volume-menu-button",order:4}),p.default.createElement(k.default,{key:"current-time-display",order:5.1}),p.default.createElement(S.default,{key:"time-divider",order:5.2}),p.default.createElement(E.default,{key:"duration-display",order:5.3}),p.default.createElement(m.default,{key:"progress-control",order:6}),p.default.createElement(b.default,{key:"fullscreen-toggle",order:8})]}},{key:"getFullChildren",value:function(){return[p.default.createElement(v.default,{key:"play-toggle",order:1}),p.default.createElement(g.default,{key:"replay-control",order:2}),p.default.createElement(y.default,{key:"forward-control",order:3}),p.default.createElement(T.default,{key:"volume-menu-button",order:4}),p.default.createElement(k.default,{key:"current-time-display",order:5}),p.default.createElement(S.default,{key:"time-divider",order:6}),p.default.createElement(E.default,{key:"duration-display",order:7}),p.default.createElement(m.default,{key:"progress-control",order:8}),p.default.createElement(w.default,{key:"remaining-time-display",order:9}),p.default.createElement(C.default,{rates:[1,1.25,1.5,2],key:"playback-rate",order:10}),p.default.createElement(b.default,{key:"fullscreen-toggle",order:11})]}},{key:"getChildren",value:function(){var e=p.default.Children.toArray(this.props.children),t=this.props.disableDefaultControls?[]:this.getDefaultChildren(),n=this.props,r=(n.className,(0,i.default)(n,["className"]));return(0,P.mergeAndSortChildren)(t,e,r)}},{key:"render",value:function(){var e=this.props,t=e.autoHide,n=e.className,r=e.disableCompletely,a=this.getChildren();return r?null:p.default.createElement("div",{className:(0,h.default)("video-react-control-bar",{"video-react-control-bar-auto-hide":t},n)},a)}}]),t}(p.Component);t.default=_,_.propTypes=x,_.defaultProps={autoHide:!0,disableCompletely:!1},_.displayName="ControlBar"},function(e,t,n){"use strict";var r=n(6),a=n(1);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=a(n(14)),o=a(n(4)),l=a(n(5)),u=a(n(7)),s=a(n(9)),c=a(n(10)),d=a(n(8)),f=a(n(2)),p=r(n(0)),h=n(15),m=a(n(3)),v=r(n(21)),y=a(n(38)),g={player:f.default.object,className:f.default.string},b=function(e){function t(e,n){var r;return(0,o.default)(this,t),(r=(0,u.default)(this,(0,s.default)(t).call(this,e,n))).state={mouseTime:{time:null,position:0}},r.handleMouseMoveThrottle=r.handleMouseMove.bind((0,d.default)((0,d.default)(r))),r}return(0,c.default)(t,e),(0,l.default)(t,[{key:"handleMouseMove",value:function(e){if(e.pageX){var t=this.props.player.duration,n=(0,h.findDOMNode)(this.seekBar),r=v.getPointerPosition(n,e).x*t,a=e.pageX-v.findElPosition(n).left;this.setState({mouseTime:{time:r,position:a}})}}},{key:"render",value:function(){var e=this,t=this.props.className;return p.default.createElement("div",{onMouseMove:this.handleMouseMoveThrottle,className:(0,m.default)("video-react-progress-control video-react-control",t)},p.default.createElement(y.default,(0,i.default)({mouseTime:this.state.mouseTime,ref:function(t){e.seekBar=t}},this.props)))}}]),t}(p.Component);t.default=b,b.propTypes=g,b.displayName="ProgressControl"},function(e,t,n){"use strict";var r=n(6),a=n(1);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=a(n(4)),o=a(n(5)),l=a(n(7)),u=a(n(9)),s=a(n(10)),c=a(n(8)),d=a(n(2)),f=r(n(0)),p=a(n(3)),h=a(n(22)),m=a(n(39)),v=a(n(40)),y=a(n(41)),g=n(11),b={player:d.default.object,mouseTime:d.default.object,actions:d.default.object,className:d.default.string},w=function(e){function t(e,n){var r;return(0,i.default)(this,t),(r=(0,l.default)(this,(0,u.default)(t).call(this,e,n))).getPercent=r.getPercent.bind((0,c.default)((0,c.default)(r))),r.getNewTime=r.getNewTime.bind((0,c.default)((0,c.default)(r))),r.stepForward=r.stepForward.bind((0,c.default)((0,c.default)(r))),r.stepBack=r.stepBack.bind((0,c.default)((0,c.default)(r))),r.handleMouseDown=r.handleMouseDown.bind((0,c.default)((0,c.default)(r))),r.handleMouseMove=r.handleMouseMove.bind((0,c.default)((0,c.default)(r))),r.handleMouseUp=r.handleMouseUp.bind((0,c.default)((0,c.default)(r))),r}return(0,s.default)(t,e),(0,o.default)(t,[{key:"componentDidMount",value:function(){}},{key:"componentDidUpdate",value:function(){}},{key:"getPercent",value:function(){var e=this.props.player,t=e.currentTime,n=(e.seekingTime||t)/e.duration;return n>=1?1:n}},{key:"getNewTime",value:function(e){var t=this.props.player.duration,n=this.slider.calculateDistance(e)*t;return n===t?n-.1:n}},{key:"handleMouseDown",value:function(){}},{key:"handleMouseUp",value:function(e){var t=this.props.actions,n=this.getNewTime(e);t.seek(n),t.handleEndSeeking(n)}},{key:"handleMouseMove",value:function(e){var t=this.props.actions,n=this.getNewTime(e);t.handleSeekingTime(n)}},{key:"stepForward",value:function(){this.props.actions.forward(5)}},{key:"stepBack",value:function(){this.props.actions.replay(5)}},{key:"render",value:function(){var e=this,t=this.props,n=t.player,r=n.currentTime,a=n.seekingTime,i=n.duration,o=n.buffered,l=t.mouseTime,u=a||r;return f.default.createElement(h.default,{ref:function(t){e.slider=t},label:"video progress bar",className:(0,p.default)("video-react-progress-holder",this.props.className),valuenow:(100*this.getPercent()).toFixed(2),valuetext:(0,g.formatTime)(u,i),onMouseDown:this.handleMouseDown,onMouseMove:this.handleMouseMove,onMouseUp:this.handleMouseUp,getPercent:this.getPercent,stepForward:this.stepForward,stepBack:this.stepBack},f.default.createElement(v.default,{buffered:o,currentTime:u,duration:i}),f.default.createElement(y.default,{duration:i,mouseTime:l}),f.default.createElement(m.default,{currentTime:u,duration:i}))}}]),t}(f.Component);t.default=w,w.propTypes=b,w.displayName="SeekBar"},function(e,t,n){"use strict";var r=n(1);Object.defineProperty(t,"__esModule",{value:!0}),t.default=s;var a=r(n(2)),i=r(n(0)),o=r(n(3)),l=n(11),u={currentTime:a.default.number,duration:a.default.number,percentage:a.default.string,className:a.default.string};function s(e){var t=e.currentTime,n=e.duration,r=e.percentage,a=e.className;return i.default.createElement("div",{"data-current-time":(0,l.formatTime)(t,n),className:(0,o.default)("video-react-play-progress video-react-slider-bar",a),style:{width:r}},i.default.createElement("span",{className:"video-react-control-text"},"Progress: ".concat(r)))}s.propTypes=u,s.displayName="PlayProgressBar"},function(e,t,n){"use strict";var r=n(1);Object.defineProperty(t,"__esModule",{value:!0}),t.default=u;var a=r(n(2)),i=r(n(0)),o=r(n(3)),l={duration:a.default.number,buffered:a.default.object,className:a.default.string};function u(e){var t=e.buffered,n=e.duration,r=e.className;if(!t||!t.length)return null;var a=t.end(t.length-1),l={};function u(e,t){var n=e/t||0;return"".concat(100*(n>=1?1:n),"%")}a>n&&(a=n),l.width=u(a,n);for(var s=[],c=0;c=t.length&&(n=0),this.activateMenuItem(n)}}},{key:"handleTab",value:function(e){this.state.active&&(e.preventDefault(),this.commitSelection(this.state.activateIndex))}},{key:"handleReturn",value:function(e){e.preventDefault(),this.state.active?this.commitSelection(this.state.activateIndex):this.setState({active:!0})}},{key:"handleEscape",value:function(){this.setState({active:!1,activateIndex:0})}},{key:"handleKeyPress",value:function(e){27===e.which?this.handleEscape(e):9===e.which?this.handleTab(e):13===e.which?this.handleReturn(e):38===e.which?this.handleUpArrow(e):40===e.which&&this.handleDownArrow(e)}},{key:"handleSelectItem",value:function(e){this.commitSelection(e)}},{key:"renderMenu",value:function(){var e=this;if(!this.state.active)return null;var t=this.props.items;return f.default.createElement(h.default,null,t.map(function(t,n){return f.default.createElement(m.default,{item:t,index:n,onSelectItem:e.handleSelectItem,activateIndex:e.state.activateIndex,key:"item-".concat(n++)})}))}},{key:"render",value:function(){var e=this,t=this.props,n=t.inline,r=t.className;return f.default.createElement(v.default,{className:(0,p.default)(r,{"video-react-menu-button-inline":!!n,"video-react-menu-button-popup":!n,"video-react-menu-button-active":this.state.active},"video-react-control video-react-button video-react-menu-button"),role:"button",tabIndex:"0",ref:function(t){e.menuButton=t},onClick:this.handleClick,onFocus:this.handleFocus,onBlur:this.handleBlur},this.props.children,this.renderMenu())}}]),t}(f.Component);t.default=g,g.propTypes=y,g.displayName="MenuButton"},function(e,t,n){"use strict";function r(e){var t,n=e.Symbol;return"function"==typeof n?n.observable?t=n.observable:(t=n("observable"),n.observable=t):t="@@observable",t}n.d(t,"a",function(){return r})},function(e,t,n){"use strict"; -/** @license React v16.8.6 - * react.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var r=n(25),a="function"==typeof Symbol&&Symbol.for,i=a?Symbol.for("react.element"):60103,o=a?Symbol.for("react.portal"):60106,l=a?Symbol.for("react.fragment"):60107,u=a?Symbol.for("react.strict_mode"):60108,s=a?Symbol.for("react.profiler"):60114,c=a?Symbol.for("react.provider"):60109,d=a?Symbol.for("react.context"):60110,f=a?Symbol.for("react.concurrent_mode"):60111,p=a?Symbol.for("react.forward_ref"):60112,h=a?Symbol.for("react.suspense"):60113,m=a?Symbol.for("react.memo"):60115,v=a?Symbol.for("react.lazy"):60116,y="function"==typeof Symbol&&Symbol.iterator;function g(e){for(var t=arguments.length-1,n="https://reactjs.org/docs/error-decoder.html?invariant="+e,r=0;rR.length&&R.push(e)}function D(e,t,n){return null==e?0:function e(t,n,r,a){var l=typeof t;"undefined"!==l&&"boolean"!==l||(t=null);var u=!1;if(null===t)u=!0;else switch(l){case"string":case"number":u=!0;break;case"object":switch(t.$$typeof){case i:case o:u=!0}}if(u)return r(a,t,""===n?"."+F(t,0):n),1;if(u=0,n=""===n?".":n+":",Array.isArray(t))for(var s=0;sthis.eventPool.length&&this.eventPool.push(e)}function de(e){e.eventPool=[],e.getPooled=se,e.release=ce}a(ue.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():"unknown"!=typeof e.returnValue&&(e.returnValue=!1),this.isDefaultPrevented=oe)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!=typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=oe)},persist:function(){this.isPersistent=oe},isPersistent:le,destructor:function(){var e,t=this.constructor.Interface;for(e in t)this[e]=null;this.nativeEvent=this._targetInst=this.dispatchConfig=null,this.isPropagationStopped=this.isDefaultPrevented=le,this._dispatchInstances=this._dispatchListeners=null}}),ue.Interface={type:null,target:null,currentTarget:function(){return null},eventPhase:null,bubbles:null,cancelable:null,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:null,isTrusted:null},ue.extend=function(e){function t(){}function n(){return r.apply(this,arguments)}var r=this;t.prototype=r.prototype;var i=new t;return a(i,n.prototype),n.prototype=i,n.prototype.constructor=n,n.Interface=a({},r.Interface,e),n.extend=r.extend,de(n),n},de(ue);var fe=ue.extend({data:null}),pe=ue.extend({data:null}),he=[9,13,27,32],me=K&&"CompositionEvent"in window,ve=null;K&&"documentMode"in document&&(ve=document.documentMode);var ye=K&&"TextEvent"in window&&!ve,ge=K&&(!me||ve&&8=ve),be=String.fromCharCode(32),we={beforeInput:{phasedRegistrationNames:{bubbled:"onBeforeInput",captured:"onBeforeInputCapture"},dependencies:["compositionend","keypress","textInput","paste"]},compositionEnd:{phasedRegistrationNames:{bubbled:"onCompositionEnd",captured:"onCompositionEndCapture"},dependencies:"blur compositionend keydown keypress keyup mousedown".split(" ")},compositionStart:{phasedRegistrationNames:{bubbled:"onCompositionStart",captured:"onCompositionStartCapture"},dependencies:"blur compositionstart keydown keypress keyup mousedown".split(" ")},compositionUpdate:{phasedRegistrationNames:{bubbled:"onCompositionUpdate",captured:"onCompositionUpdateCapture"},dependencies:"blur compositionupdate keydown keypress keyup mousedown".split(" ")}},ke=!1;function Ee(e,t){switch(e){case"keyup":return-1!==he.indexOf(t.keyCode);case"keydown":return 229!==t.keyCode;case"keypress":case"mousedown":case"blur":return!0;default:return!1}}function Se(e){return"object"==typeof(e=e.detail)&&"data"in e?e.data:null}var Te=!1;var Ce={eventTypes:we,extractEvents:function(e,t,n,r){var a=void 0,i=void 0;if(me)e:{switch(e){case"compositionstart":a=we.compositionStart;break e;case"compositionend":a=we.compositionEnd;break e;case"compositionupdate":a=we.compositionUpdate;break e}a=void 0}else Te?Ee(e,n)&&(a=we.compositionEnd):"keydown"===e&&229===n.keyCode&&(a=we.compositionStart);return a?(ge&&"ko"!==n.locale&&(Te||a!==we.compositionStart?a===we.compositionEnd&&Te&&(i=ie()):(re="value"in(ne=r)?ne.value:ne.textContent,Te=!0)),a=fe.getPooled(a,t,n,r),i?a.data=i:null!==(i=Se(n))&&(a.data=i),H(a),i=a):i=null,(e=ye?function(e,t){switch(e){case"compositionend":return Se(t);case"keypress":return 32!==t.which?null:(ke=!0,be);case"textInput":return(e=t.data)===be&&ke?null:e;default:return null}}(e,n):function(e,t){if(Te)return"compositionend"===e||!me&&Ee(e,t)?(e=ie(),ae=re=ne=null,Te=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1