{"version":3,"sources":["../card/style/index.jsx","../node_modules/lodash.throttle/index.js","assets/images/TradeIn.svg","assets/images/next-white.png","../affix/style/index.jsx","components/SendMsgModal/SendMsgModal.tsx","assets/svgs/location.svg","../node_modules/video-react/node_modules/@babel/runtime/helpers/defineProperty.js","../node_modules/video-react/node_modules/@babel/runtime/helpers/objectWithoutProperties.js","../node_modules/video-react/lib/actions/video.js","../node_modules/video-react/lib/components/Slider.js","../node_modules/video-react/lib/components/control-bar/PlaybackRateMenuButton.js","../node_modules/video-react/lib/components/menu/MenuButton.js","../node_modules/react-google-recaptcha/lib/esm/recaptcha.js","../node_modules/react-async-script/lib/esm/async-script-loader.js","../node_modules/react-google-recaptcha/lib/esm/recaptcha-wrapper.js","../node_modules/react-google-recaptcha/lib/esm/index.js","../_util/throttleByAnimationFrame.jsx","../affix/utils.js","../affix/index.jsx","../card/Grid.jsx","../card/Meta.jsx","../card/index.jsx","../node_modules/video-react/lib/reducers/index.js","../node_modules/video-react/lib/utils/fullscreen.js","../node_modules/video-react/lib/components/BigPlayButton.js","../node_modules/video-react/lib/components/LoadingSpinner.js","../node_modules/video-react/lib/components/PosterImage.js","../node_modules/video-react/lib/components/Video.js","../node_modules/video-react/node_modules/@babel/runtime/helpers/toConsumableArray.js","../node_modules/video-react/lib/components/Bezel.js","../node_modules/video-react/lib/components/Shortcut.js","../node_modules/video-react/lib/components/control-bar/ControlBar.js","../node_modules/video-react/lib/components/control-bar/ProgressControl.js","../node_modules/video-react/lib/components/control-bar/SeekBar.js","../node_modules/video-react/lib/components/control-bar/PlayProgressBar.js","../node_modules/video-react/lib/components/control-bar/LoadProgressBar.js","../node_modules/video-react/lib/components/control-bar/MouseTimeDisplay.js","../node_modules/video-react/lib/components/control-bar/PlayToggle.js","../node_modules/video-react/lib/components/control-bar/ForwardControl.js","../node_modules/video-react/lib/components/control-bar/ForwardReplayControl.js","../node_modules/video-react/lib/components/control-bar/ReplayControl.js","../node_modules/video-react/lib/components/control-bar/FullscreenToggle.js","../node_modules/video-react/lib/components/time-controls/RemainingTimeDisplay.js","../node_modules/video-react/lib/components/time-controls/CurrentTimeDisplay.js","../node_modules/video-react/lib/components/time-controls/DurationDisplay.js","../node_modules/video-react/lib/components/time-controls/TimeDivider.js","../node_modules/video-react/lib/components/control-bar/VolumeMenuButton.js","../node_modules/video-react/lib/components/ClickableComponent.js","../node_modules/video-react/lib/index.js","../node_modules/video-react/lib/components/Player.js","../node_modules/video-react/node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","../node_modules/video-react/node_modules/@babel/runtime/helpers/typeof.js","../node_modules/video-react/node_modules/@babel/runtime/helpers/setPrototypeOf.js","../node_modules/video-react/lib/Manager.js","../node_modules/video-react/lib/reducers/player.js","../node_modules/video-react/lib/reducers/operation.js","../node_modules/video-react/node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","../node_modules/video-react/node_modules/@babel/runtime/helpers/iterableToArray.js","../node_modules/video-react/node_modules/@babel/runtime/helpers/nonIterableSpread.js","../node_modules/video-react/lib/components/popup/PopupButton.js","../node_modules/video-react/lib/components/popup/Popup.js","../node_modules/video-react/lib/components/volume-control/VolumeBar.js","../node_modules/video-react/lib/components/volume-control/VolumeLevel.js","../node_modules/video-react/lib/components/menu/Menu.js","../node_modules/video-react/lib/components/menu/MenuItem.js","../node_modules/video-react/lib/utils/browser.js","../node_modules/video-react/lib/components/control-bar/PlaybackRate.js","../node_modules/video-react/lib/components/control-bar/ClosedCaptionButton.js","../node_modules/react-image-gallery/build/image-gallery.js","../node_modules/react-swipeable/es/index.js","components/VehicleImageGallery/images/play-button.png","assets/svgs/prev-white.svg","components/RequestInformationModal/components/RequestInfoForm.tsx","components/RequestInformationModal/RequestInformationModal.tsx","components/DealerInformation/DeallerInformation.tsx","assets/svgs/star-24px.svg","assets/svgs/star_outline-24px.svg","components/VehicleImageGallery/VehicleDetailPageImageGallery.tsx","components/LoadingPage/LoadingPage.tsx","../node_modules/rmc-feedback/es/TouchFeedback.js","../node_modules/rc-input-number/es/InputHandler.js","../node_modules/rc-input-number/es/index.js","../input-number/index.jsx","components/VehicleDetail/ModeratorView.tsx","assets/svgs/mileage.svg","assets/svgs/palette.svg","components/SellerInfoCard/SellerInfoCard.tsx","components/SimilarVehicles/components/ListingCardSim.tsx","components/LoadingCard/LoadingCard.tsx","components/SimilarVehicles/SimilarVehicle.tsx","assets/svgs/metrics.svg","components/TopFixedNavigation/TopFixedNavigation.tsx","components/TradeInExistingOffers/components/TradeInCard.tsx","components/TradeInExistingOffers/TradeInExistingOffers.tsx","components/TradeIn/Tradein.tsx","components/VehicleDetail/UserView.tsx","components/VehicleDetail/VehicleDetail.tsx","../node_modules/video-react/node_modules/@babel/runtime/helpers/interopRequireDefault.js","../divider/style/index.jsx","../divider/index.jsx","../node_modules/video-react/node_modules/@babel/runtime/helpers/classCallCheck.js","../node_modules/video-react/node_modules/@babel/runtime/helpers/createClass.js","../node_modules/video-react/node_modules/@babel/runtime/helpers/interopRequireWildcard.js","../node_modules/video-react/node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","../node_modules/video-react/node_modules/@babel/runtime/helpers/assertThisInitialized.js","../node_modules/video-react/node_modules/@babel/runtime/helpers/getPrototypeOf.js","../node_modules/video-react/node_modules/@babel/runtime/helpers/inherits.js","../dropdown/style/index.jsx","../node_modules/rc-dropdown/es/placements.js","../node_modules/rc-dropdown/es/Dropdown.js","../node_modules/rc-dropdown/es/index.js","../dropdown/dropdown.jsx","../skeleton/style/index.jsx","../node_modules/video-react/lib/utils/index.js","../skeleton/Avatar.jsx","../skeleton/Title.jsx","../skeleton/Paragraph.jsx","../skeleton/index.jsx","../node_modules/redux/node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/redux/node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/redux/es/redux.js","assets/svgs/phone.svg","../node_modules/video-react/node_modules/@babel/runtime/helpers/objectSpread.js","../breadcrumb/style/index.jsx","assets/svgs/sms.svg","../breadcrumb/BreadcrumbItem.jsx","../breadcrumb/Breadcrumb.jsx","../breadcrumb/BreadcrumbSeparator.jsx","../breadcrumb/index.jsx","../dropdown/dropdown-button.jsx","../dropdown/index.jsx","../node_modules/haversine/haversine.js","../node_modules/video-react/node_modules/@babel/runtime/helpers/extends.js","components/MyGarage/Components/Error.tsx","../node_modules/video-react/lib/actions/player.js","../node_modules/video-react/lib/utils/dom.js"],"names":["reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","parseInt","freeGlobal","global","Object","freeSelf","self","root","Function","objectToString","prototype","toString","nativeMax","Math","max","nativeMin","min","now","Date","debounce","func","wait","options","lastArgs","lastThis","maxWait","result","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","TypeError","invokeFunc","time","args","thisArg","undefined","apply","leadingEdge","setTimeout","timerExpired","shouldInvoke","timeSinceLastCall","trailingEdge","remainingWait","debounced","isInvoking","arguments","this","toNumber","isObject","cancel","clearTimeout","flush","value","type","isObjectLike","call","isSymbol","other","valueOf","replace","isBinary","test","slice","module","exports","SEND_MSG_MUTATION","create","name","form","listingId","recipientUserId","modalVisible","handleCancel","useMutation","onCompleted","data","SendMessage","success","message","description","onError","err","console","log","sendMsg","sendMsgResult","visible","onCancel","_","footer","spinning","loading","onSubmit","e","preventDefault","validateFieldsAndScroll","error","values","variables","ConversationThreadGuid","IsAttachment","ListingId","Message","RecipientUserId","resetFields","hideRequiredMark","colon","css","Item","getFieldDecorator","rules","required","TextArea","maxLength","autoSize","minRows","placeholder","size","htmlType","_extends","assign","bind","target","i","length","source","key","hasOwnProperty","_objectWithoutProperties","excluded","sourceKeys","keys","indexOf","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","_ref2","createElement","d","SvgLocation","_ref","svgRef","title","props","viewBox","ref","ForwardRef","forwardRef","obj","defineProperty","enumerable","configurable","writable","objectWithoutPropertiesLoose","handleLoadStart","videoProps","handleCanPlay","handleWaiting","handleCanPlayThrough","handlePlaying","handlePlay","PLAY","handlePause","PAUSE","handleEnd","END","handleSeeking","handleSeeked","handleDurationChange","handleTimeUpdate","handleVolumeChange","handleProgressChange","handleRateChange","handleSuspend","handleAbort","ABORT","handleEmptied","handleStalled","handleLoadedMetaData","handleLoadedData","handleResize","handleError","ERROR","handleSeekingTime","handleEndSeeking","activateTextTrack","textTrack","ACTIVATE_TEXT_TRACK","RESIZE","LOADED_DATA","LOADED_META_DATA","STALLED","EMPTIED","SUSPEND","RATE_CHANGE","PROGRESS_CHANGE","VOLUME_CHANGE","TIME_UPDATE","DURATION_CHANGE","END_SEEKING","SEEKING_TIME","SEEKED","SEEKING","PLAYING","CAN_PLAY_THROUGH","WAITING","CAN_PLAY","LOAD_START","_interopRequireWildcard","require","_interopRequireDefault","_classCallCheck2","_createClass2","_possibleConstructorReturn2","_getPrototypeOf2","_assertThisInitialized2","_inherits2","_propTypes","_react","_classnames","Dom","propTypes","className","string","onMouseDown","onMouseMove","stepForward","stepBack","sliderActive","sliderInactive","onMouseUp","onFocus","onBlur","onClick","getPercent","vertical","bool","children","node","label","valuenow","valuetext","Slider","_Component","context","_this","handleMouseDown","handleMouseMove","handleMouseUp","handleFocus","handleBlur","handleClick","handleKeyPress","calculateDistance","getProgress","renderChildren","state","active","document","removeEventListener","progress","Infinity","event","addEventListener","setState","which","stopPropagation","slider","position","getPointerPosition","y","x","percentage","concat","toFixed","Children","map","child","cloneElement","_this2","_this$props","c","tabIndex","role","onTouchStart","Component","displayName","_MenuButton","player","object","actions","rates","array","PlaybackRateMenuButton","handleSelectItem","index","changeRate","_this$props2","items","rate","selectedIndex","playbackRate","onSelectItem","defaultProps","_default","_Menu","_MenuItem","_ClickableComponent","inline","any","number","MenuButton","activateIndex","commitSelection","activateMenuItem","renderMenu","handleUpArrow","handleDownArrow","handleEscape","handleReturn","handleTab","handleIndexChange","prevProps","prevState","newIndex","item","_this3","menuButton","_assertThisInitialized","ReferenceError","ReCAPTCHA","_React$Component","subClass","superClass","handleExpired","handleErrored","handleChange","handleRecaptchaRef","constructor","__proto__","_proto","getValue","grecaptcha","_widgetId","getResponse","getWidgetId","execute","_executeRequested","executeAsync","Promise","resolve","reject","executionResolve","executionReject","reset","onExpired","onErrored","token","onChange","explicitRender","render","wrapper","sitekey","callback","theme","tabindex","stoken","hl","badge","captcha","appendChild","componentDidMount","componentDidUpdate","componentWillUnmount","delayOfCaptchaIframeRemoving","temporaryNode","body","style","display","firstChild","removeChild","elem","childProps","React","PropTypes","isRequired","oneOf","SCRIPT_MAP","idCount","makeAsyncScriptLoader","getScriptURL","window","recaptchaOptions","useRecaptchaNet","callbackName","globalName","WrappedComponent","wrappedComponentName","AsyncScriptLoader","__scriptURL","asyncScriptLoaderGetScriptLoaderID","__scriptLoaderID","setupScriptURL","asyncScriptLoaderHandleLoad","asyncScriptOnLoad","asyncScriptLoaderTriggerOnScriptLoaded","mapEntry","loaded","Error","obsKey","observers","scriptURL","_options","scriptId","entry","errored","script","attribute","src","async","attributes","setAttribute","id","callObserverFuncAndRemoveObserver","observersMap","onload","observer","onerror","removeOnUnmount","allScripts","getElementsByTagName","parentNode","forwardedRef","ForwardedComponent","hoistStatics","RecaptchaWrapper","throttleByAnimationFrameDecorator","descriptor","fn","definingProperty","get","boundFn","later","requestId","throttled","raf","throttleByAnimationFrame","getTargetRect","top","bottom","innerHeight","getFixedTop","placeholderReact","targetRect","offsetTop","getFixedBottom","offsetBottom","TRIGGER_EVENTS","observerEntities","addObserveTarget","affix","entity","affixList","eventHandlers","eventName","targetAffix","removeObserveTarget","observerEntity","oriObserverEntity","hasAffix","handler","AffixStatus","__decorate","decorators","desc","r","Reflect","Affix","status","lastAffix","prevTarget","offset","warning","targetNode","newState","None","fixedTop","fixedBottom","width","height","affixStyle","placeholderStyle","getPrefixCls","prefixCls","classNames","omit","onResize","savePlaceholderNode","aria-hidden","newTarget","polyfill","__rest","s","t","p","customizePrefixCls","hoverable","others","classString","avatar","avatarDom","titleDom","descriptionDom","MetaDetail","getAction","Card","_a","extra","headStyle","bodyStyle","bordered","cover","tabList","activeTabKey","defaultActiveTabKey","tabBarExtraContent","loadingBlockStyle","padding","loadingBlock","gutter","span","hasActiveTabKey","extraProps","tabs","onTabChange","tab","disabled","head","coverDom","actionDom","divProps","noHovering","element","containGrid","action","_player","operation","_operation","operationReducer","playerReducer","Fullscreen","elm","requestFullscreen","webkitRequestFullscreen","mozRequestFullScreen","msRequestFullscreen","exitFullscreen","webkitExitFullscreen","mozCancelFullScreen","msExitFullscreen","fullscreenElement","webkitFullscreenElement","mozFullScreenElement","msFullscreenElement","fullscreenEnabled","webkitFullscreenEnabled","mozFullScreenEnabled","msFullscreenEnabled","BigPlayButton","play","hasStarted","currentSrc","LoadingSpinner","poster","PosterImage","backgroundImage","paused","_objectSpread2","_utils","startTime","loop","muted","autoPlay","playsInline","preload","crossOrigin","onLoadStart","onWaiting","onCanPlay","onCanPlayThrough","onPlaying","onEnded","onSeeking","onSeeked","onPlay","onPause","onProgress","onDurationChange","onSuspend","onAbort","onEmptied","onStalled","onLoadedMetadata","onLoadedData","onTimeUpdate","onRateChange","onVolumeChange","Video","video","pause","seek","forward","replay","toggleFullscreen","getProperties","handleEnded","handleFullscreenChange","handleProgress","throttle","handleKeypress","handleTextTrackChange","forceUpdate","textTracks","onaddtrack","onremovetrack","mediaProperties","reduce","properties","activeTextTrack","Array","from","find","mode","promise","then","load","_this$video","addTextTrack","_this$video2","canPlayType","currentTime","seconds","_this$props3","_this$props4","_this$props5","_this$props6","_this$props7","_this$props8","_this$props9","_this$props10","_this$props11","_this$props12","_this$props13","_this$props14","_this$props15","_this$props16","_this$props17","_this$props18","_this$props19","_this$props20","_this$props21","_this$props22","_this$props23","_this$props24","_this$props25","toArray","filter","isVideoChild","cprops","preOnError","_this4","_this$props26","videoId","set","val","volume","videoWidth","videoHeight","arrayWithoutHoles","iterableToArray","nonIterableSpread","arr","manager","Bezel","timer","subscribeToOperationStateChange","handleStateChange","hidden","count","_defineProperty2","_toConsumableArray2","_dom","clickable","dblclickable","shortcuts","Shortcut","defaultShortcuts","keyCode","handle","togglePlay","duration","v","changeVolume","shift","mergeShortcuts","handleDoubleClick","getShortcutKey","_ref$keyCode","_ref$ctrl","ctrl","_ref$shift","_ref$alt","alt","shortcut","mergedShortcuts","gradeShortcut","score","forEach","sort","a","b","isActive","activeElement","hasClass","ctrlKey","metaKey","shiftKey","altKey","nodeName","readyState","canBeClicked","_objectWithoutProperties2","_ProgressControl","_PlayToggle","_ForwardControl","_ReplayControl","_FullscreenToggle","_RemainingTimeDisplay","_CurrentTimeDisplay","_DurationDisplay","_TimeDivider","_VolumeMenuButton","_PlaybackRateMenuButton","autoHide","autoHideTime","disableDefaultControls","disableCompletely","ControlBar","getDefaultChildren","getFullChildren","order","defaultChildren","parentProps","mergeAndSortChildren","getChildren","_extends2","_SeekBar","ProgressControl","mouseTime","handleMouseMoveThrottle","pageX","seekBar","newTime","findElPosition","left","_Slider","_PlayProgressBar","_LoadProgressBar","_MouseTimeDisplay","SeekBar","getNewTime","_this$props$player","percent","seekingTime","_this$props$player2","buffered","input","formatTime","PlayProgressBar","LoadProgressBar","bufferedEnd","end","percentify","parts","start","part","push","MouseTimeDisplay","text","PlayToggle","controlText","button","ForwardControl","ForwardReplayControl","join","ReplayControl","FullscreenToggle","isFullscreen","RemainingTimeDisplay","_ref$player","remainingTime","formattedTime","CurrentTimeDisplay","DurationDisplay","TimeDivider","separator","separatorText","dir","_PopupButton","_VolumeBar","alwaysShowVolume","VolumeMenuButton","mute","level","volumeLevel","tagName","ClickableComponent","Tag","_Player","_Video","_BigPlayButton","_LoadingSpinner","_PosterImage","_Bezel","_Shortcut","_ControlBar","_PlaybackRate","_ClosedCaptionButton","_reducers","videoActions","playerActions","_Manager","browser","_fullscreen","oneOfType","fluid","aspectRatio","store","Player","controlsHideTimer","getActions","subscribeToPlayerStateChange","getStyle","startControlsTimer","handleFullScreenChange","handleKeyDown","originalChildren","propsWithoutChildren","styleVal","match","propsAspectRatio","propsHeight","propsWidth","getState","ratioParts","split","ratioMultiplier","paddingTop","setWidthOrHeight","listener","rootElement","controlBarActiveTime","isValidElement","userActivate","focusNode","activate","waiting","seeking","userActivity","IS_IOS","onTouchMove","onKeyDown","contextTypes","_typeof2","Symbol","iterator","_typeof","_setPrototypeOf","o","setPrototypeOf","_redux","Manager","createStore","dispatch","boundActions","actionCreator","subscribe","prevStateCopy","subscribeToStateChange","initialState","USER_ACTIVATE","activity","PLAYER_ACTIVATE","FULLSCREEN_CHANGE","_video","ended","autoPaused","networkState","OPERATE","isArray","arr2","iter","PopupButton","_Popup","ps","Popup","_VolumeLevel","VolumeBar","handlePercentageChange","checkMuted","distance","onPercentageChange","VolumeLevel","Menu","MenuItem","IS_IPOD","IS_IPHONE","IS_IPAD","USER_AGENT","navigator","userAgent","PlaybackRate","deprecatedWarning","offMenuText","showOffMenu","kinds","ClosedCaptionButton","getTextTrackItems","updateState","textTrackItems","tracks","includes","kind","language","findIndex","textTrackItemsAreEqual","items1","items2","_this$state","_createClass","defineProperties","Constructor","protoProps","staticProps","_react2","_reactSwipeable","_lodash2","_lodash4","_resizeObserverPolyfill2","_propTypes2","__esModule","default","screenChangeEvents","ImageGallery","instance","_classCallCheck","_possibleConstructorReturn","getPrototypeOf","slideToIndex","currentIndex","isTransitioning","_intervalId","slideCount","nextIndex","previousIndex","offsetPercentage","transition","slideDuration","_onSliding","_transitionTimer","onSlide","_handleScreenChange","fullScreenElement","onScreenChange","_toggleFullScreen","exitFullScreen","fullScreen","_togglePlay","_initGalleryResizing","_imageGallerySlideWrapper","resizeObserver","_createResizeObserver","observe","entries","_handleResize","_imageGallery","galleryWidth","offsetWidth","gallerySlideWrapperHeight","offsetHeight","_thumbnailsWrapper","_isThumbnailVertical","thumbnailsWrapperHeight","thumbnailsWrapperWidth","_setThumbsTranslate","_getThumbsTranslate","_handleKeyDown","disableArrowKeys","_canSlideLeft","_slideLeft","_canSlideRight","_slideRight","useBrowserFullscreen","_handleImageError","defaultImage","_handleOnSwiped","velocity","disableSwipe","_this$state2","scrollingUpDown","scrollingLeftRight","isRTL","side","LEFT","isFlick","flickThreshold","_handleOnSwipedTo","_handleSwiping","absX","_this$state3","swipingTransitionDuration","_setScrollDirection","preventDefaultTouchmoveEvent","cancelable","RIGHT","abs","swipingTransition","_slideNext","_slidePrevious","_renderItem","onImageError","imageSet","onLoad","onImageLoad","media","srcSet","originalAlt","original","sizes","originalTitle","_renderThumbInner","onThumbnailError","thumbnail","thumbnailAlt","thumbnailTitle","thumbnailLabel","_onThumbnailClick","onThumbnailClick","_onThumbnailMouseOver","_thumbnailMouseOverTimer","_onThumbnailMouseLeave","startIndex","thumbsTranslate","isPlaying","_unthrottledSlideToIndex","lazyLoad","_lazyLoaded","_inherits","_onScreenChangeEvent","itemsSizeChanged","itemsChanged","JSON","stringify","startIndexUpdated","_slideThumbnailBar","_offScreenChangeEvent","clearInterval","unobserve","_props","slideInterval","setInterval","infinite","modalFullscreen","gallery","setModalFullscreen","thumbnailPosition","_state","_state2","slideTo","_sufficientSwipeOffset","swipeThreshold","_canSlideNext","_canSlidePrevious","_state3","indexDifference","scroll","disableThumbnailScroll","_state4","totalScroll","_thumbnails","scrollHeight","scrollWidth","alignment","_state5","totalSlides","_state6","_state7","translateX","direction","_slideIsTransitioning","_ignoreIsTransitioning","_isFirstOrLastSlide","_state8","_state9","_state10","_props2","useTranslate3D","baseTranslateX","_getTranslateXForTwoSlide","translate","WebkitTransform","MozTransform","msTransform","OTransform","transform","_props3","verticalTranslateValue","_this5","_state11","_props4","slideOnThumbnailOver","thumbnailStyle","_getThumbnailStyle","slideLeft","slideRight","slides","thumbnails","bullets","_getAlignmentClassName","originalClass","thumbnailClass","renderItem","renderThumbInner","showItem","slideStyle","_getSlideStyle","slide","onTouchEnd","onMouseOver","onMouseLeave","_shouldPushSlideOnInfiniteMode","showThumbnails","showBullets","bulletClass","bulletOnClick","itemIndex","slideWrapper","renderCustomControls","showFullscreenButton","renderFullscreenButton","showPlayButton","renderPlayPauseButton","_canNavigate","showNav","renderLeftNav","renderRightNav","Swipeable","delta","onSwiping","onSwiped","showIndex","indexSeparator","additionalClass","_getThumbnailBarHeight","rotationAngle","trackMouse","trackTouch","xy","swiping","eventData","UP","DOWN","rotateXYByAngle","pos","angle","angleInRadians","PI","cos","sin","getHandlers","handlerProps","onStart","touches","onMove","onUp","clientX","clientY","initial","timeStamp","_rotateXYByAngle","deltaX","deltaY","absY","sqrt","getDirection","cancelablePageSwipe","onEnd","cleanUpMouse","attachTouch","el","tls","_ref3","h","_ref4","output","addState","cleanUpTouch","updateTransientState","useSwipeable","transientState","useRef","transientProps","current","_React$useMemo","useMemo","cb","handlers","_React$PureComponent","_set","_this$props$nodeName","innerRef","_getHandlers","PureComponent","onSwipedUp","onSwipedRight","onSwipedDown","onSwipedLeft","SEND_BUY_LEAD","submitForm","privateVehicle","useModalFlowDispatch","useAuthPopupState","detailState","useDetailsFlowState","FirstName","LastName","Email","Mobile","make","model","listingYear","price","MESSAGE","useState","reCaptchaVerified","setReCaptchaVerified","handleReCaptcha","validateFields","firstName","lastName","email","phone","xs","lg","initialValue","formatCurrency","Number","showIcon","SEND_PRIVATE_SELLER_MESSAGE","RequestInformationModal","listingDetail","isRequested","close","useAuthPopupDispatch","isLoggedIn","sellerId","userId","setSubmitting","buyLeadMutationResult","sendMessageResult","HeaderMsg","toUpperCase","handleRequestForm","Phone","LeadTypeId","ActivityTypeId","notification","DealerInformation","userName","fill","rel","href","dealerAddress","listerLogo","listerPhone","formatPhoneNumber","dealerSite","dealerMessage","Status","total","isFullScreen","ExitFullScreen","image","breakpoints","sm","NavButton","icon","cssStyle","images","imageGalleryRef","itemId","setCurrentIndex","setIsFullScreen","getCurrentIndex","img","fileUrl","attachmentTypeId","embedUrl","VideoLogo","slideOnThumbnailHover","toIndex","full","LoadingPage","TouchFeedback","triggerEvent","onTouchCancel","ev","eventType","activeClassName","activeStyle","events","only","_child$props","InputHandler","otherProps","Touchable","noop","MAX_SAFE_INTEGER","pow","isValidProps","InputNumber","_initialiseProps","defaultValue","focused","autoFocus","validValue","getValidValue","inputValue","toPrecisionAsStep","nextInputValue","pressingUpOrDown","inputting","rawInput","nextValue","cursorStart","partRestoreByAfter","cursorAfter","currentValue","lastKeyCode","KeyCode","BACKSPACE","fixCaret","DELETE","focusOnUpDown","focus","stop","getCurrentValidValue","isNotCompleteNumber","parseFloat","getRatio","ratio","getValueFromEvent","trim","decimalSeparator","isNaN","setValue","precision","newValue","_state$value","_state$inputValue","newValueInString","changed","getPrecision","valueString","getMaxPrecision","step","ratioPrecision","stepPrecision","currentValuePrecision","getPrecisionFactor","currentStart","selectionStart","currentEnd","selectionEnd","setSelectionRange","recordCursorPosition","blur","formatWrapper","num","formatter","numberIsTooLarge","round","upStep","rat","precisionFactor","downStep","recursive","persist","outOfRange","autoStepTimer","_classNames","readOnly","useTouch","autoComplete","upHandler","downHandler","classes","upDisabledClass","downDisabledClass","dataOrAriaAttributeProps","substr","editable","inputDisplayValue","getInputDisplayValue","upEvents","downEvents","up","down","isUpDisabled","isDownDisabled","onMouseEnter","onMouseOut","saveUp","unselectable","saveDown","onKeyUp","saveInput","pattern","onPressEnter","parser","_len","_key","_ratio","ENTER","_len2","_key2","_len3","_key3","originValue","inputDisplayValueFormat","cursorEnd","cursorBefore","substring","restoreByAfter","str","fullStr","lastIndexOf","some","partStr","inputNumberClass","upIcon","downIcon","DENY_LISTING_MUTATION","REPORT_LISTINGS_LIST","APPROVE_LISTING","BAN_USER_MUTATION","RESOLVE_REPORT_MUTATION","MARK_SOLD_MUTATION","DELETE_LISTING_MUTATION","history","useHistory","denyMod","setdenyMod","ResolveMod","setResolveMod","BanMod","setBanMod","Edisable","setEdisable","Ddisable","setDdisable","Bdisable","setBdisable","Rdisable","setRdisable","Adisable","setAdisable","Sdisable","setSdisable","Deldisable","setdeldisable","butDisCon","disBut","menu","SoldListing","DenyListing","Moddeletelistings","onRemoveListing","onApproveListing","listingStatusId","reportListingList","useQuery","fetchPolicy","skip","displayMsg","graphQLErrors","TagManager","initialize","gtmId","environmentVariableList","REACT_APP_GTM_ID","dataLayer","eventCategory","eventAction","eventLabel","denyListing","denyListingResult","ModDeleteListing","deleteListingsMod","deleteListingsModResult","ResolveReport","resolvereport","resolvereportResult","useLazyQuery","ApproveListing","approveListing","approveListingResult","BanUser","banuser","banUserResult","markListingSold","markSold","markSoldResult","reasonId","noteToSeller","listingName","centered","closable","moderatorreport","vehicleDescriptionModerator","location","report","getReasonsList","list","rr","Option","ReasonId","ReasonName","autosize","reportId","noteToReporter","resolvedesModerator","moderatorId","reportType","inputnumber","banDuration","reportStatusId","xl","md","reportedReason","reason","reportee","reporter","to","block","overlay","formatDate","stopDate","moment","analysisDate","fromNow","USER_FAV_QUERY","REPORT_LISTING","GET_LOCATION_BY_CLIENT_IP_QUERY","reportModVis","reportMod","messageModalVisible","setMessageModalVisible","dealerVDP","setDealerVDP","loadingview","setLoadingView","reportModalVisible","setReportModalVisible","geoContext","useGeolocationContext","client","useApolloClient","showMore","setShowMore","Uuid","useLocation","handleGetDetails","UserUuid","url","REACT_APP_ES_LINK","REACT_APP_ES_APP","fetch","method","headers","Authorization","REACT_ES_BASIC_AUTH","query","term","vin","response","json","hits","_source","dealerVDPUrl","ReportListing","executeReportListing","getLocationFromThirdPartyService","getLocationByClientIp","latitude","longitude","getLocationFromBrowserApi","geolocation","permissions","getCurrentPosition","coords","enableHighAccuracy","maximumAge","getLocation","locationFromBrowserAPI","locationFromThirdPartyService","handleUpdateLocation","loc","SET_LOCATION","payload","note","vehicleDescription","reportreason","reporteeId","reporterId","SendMsgModal","favoriteCount","viewCount","justify","mileage","formatNumber","primaryColor","stockType","curLocation","listingLocation","milesFrom","haversine","unit","stockNo","listingDescription","backgroundColor","border","boxShadow","fontSize","color","ListingCardSim","vehicle","handleFavClick","fav","filteredUrl","isFav","l","pathname","itemYear","listingTypeId","imageUrl","miles","formatMileage","LoadingCard","USER_FAVORITE_QUERY","SimilarVehicle","similarListings","refetchQueries","addFavoriteMutation","deleteFavoriteMutation","UserId","typeId","autoplaySpeed","dots","arrows","slidesToShow","slidesToScroll","initialSlide","responsive","breakpoint","settings","getUserFavoriteById","favorites","TopFixedNavigation","attachments","TRADE","TradeCard","offer","setParentModal","AppraisalRefNo","Vin","OfferPrice","modal","setModal","setTradeSuccess","tradeInMutation","handleOk","cancelButtonProps","onOk","TradeVehicle","align","fontStyle","TradeForItemId","NO_ACTIVE_OFFER","TradeInExistingCashOffer","showOffers","setShowOffers","offerEmail","setOfferEmail","errorMessage","setErrorMessage","offersList","setOffersList","authState","setLoading","handleNewTradeInOffer","search","redirect","handleGetOffer","REACT_APP_CW_CASH_OFFER","Headers","Accept","useEffect","renderError","offers","renderOfferSection","paddingRight","spin","TradeIn","optedOutFromCO","TradeLogo","borderRadius","fontWeight","showRequestInfoModal","maskClosable","destroyOnClose","colors","blue","UserView","detailQuery","ADD_FAVORITES","REMOVE_FAVORITES","VehicleDetail","UserTypeId","useSellFlowDispatch","detailsDispatch","useDetailsFlowDispatch","authDispatch","showFixedBar","setShowFixedBar","vehicleDetailQueryResult","setVehicleDetailResponse","isInformationRequested","setIsRequested","scrollY","URLSearchParams","has","getVehicleDetails","vehicleDetailQuery","getListingDetail","refetch","isFavorite","setFavorite","userFavorites","isFlagged","favoritesMutationResult","itemTypeId","interiorColor","zip","userFavorite","thumbnailAttachmentId","listingAttachmentId","handleFavorites","placement","handleGoBackToBuyPage","goBack","mid","Helmet","content","property","zIndex","share","catch","previousPath","offerAccepted","optedOutFromFinance","appraisalRefNo","orientation","dashed","restProps","orientationPrefix","_defineProperties","_getRequireWildcardCache","WeakMap","cache","newObj","hasPropertyDescriptor","getOwnPropertyDescriptor","assertThisInitialized","_getPrototypeOf","autoAdjustOverflow","adjustX","adjustY","targetOffset","placements","topLeft","points","overflow","topCenter","topRight","bottomLeft","bottomCenter","bottomRight","Dropdown","defaultVisible","getDerivedStateFromProps","nextProps","getOverlayElement","getMenuElementOrLambda","getMenuElement","getPopupDomNode","trigger","getOpenClassName","openClassName","childrenProps","childClassName","transitionName","animation","getPopupContainer","showAction","hideAction","overlayClassName","overlayStyle","triggerHideAction","Trigger","saveTrigger","popupClassName","popupStyle","builtinPlacements","popupPlacement","popupAlign","popupTransitionName","popupAnimation","popupVisible","afterPopupVisibleChange","afterVisibleChange","popup","onPopupVisibleChange","onVisibleChange","minOverlayWidthMatchTrigger","onOverlayClick","alignPoint","overlayProps","getMinOverlayWidthMatchTrigger","overlayElement","extraOverlayProps","overlayNode","rootNode","ReactDOM","findDOMNode","minWidth","_component","alignInstance","forceAlign","tuple","selectable","focusable","expandIcon","getContextPopupContainer","dropdownTrigger","triggerActions","mouseEnterDelay","mouseLeaveDelay","guide","floor","m","gm","gh","_children","_parentProps","defaultOrder","component","isTypeEqual","defaultComponent","oldMethodCall","newMethodCall","warn","limit","_arguments","elements","component1","component2","type1","type2","SkeletonAvatar","shape","sizeCls","shapeCls","sizeStyle","lineHeight","rows","rowList","getComponentProps","prop","getAvatarBasicProps","hasTitle","hasParagraph","getTitleBasicProps","hasAvatar","getParagraphBasicProps","basicProps","Skeleton","paragraph","avatarProps","avatarNode","titleProps","$title","paragraphProps","paragraphNode","contentNode","cls","_defineProperty","ownKeys","enumerableOnly","symbols","sym","getOwnPropertyDescriptors","formatProdErrorMessage","code","$$observable","observable","randomString","random","ActionTypes","INIT","REPLACE","PROBE_UNKNOWN_ACTION","isPlainObject","proto","reducer","preloadedState","enhancer","currentReducer","currentState","currentListeners","nextListeners","isDispatching","ensureCanMutateNextListeners","isSubscribed","splice","listeners","replaceReducer","nextReducer","outerSubscribe","observeState","next","unsubscribe","legacy_createStore","combineReducers","reducers","reducerKeys","finalReducers","process","shapeAssertionError","finalReducerKeys","assertReducerShape","hasChanged","nextState","_i","previousStateForKey","nextStateForKey","bindActionCreator","bindActionCreators","actionCreators","boundActionCreators","compose","funcs","arg","applyMiddleware","middlewares","_dispatch","middlewareAPI","chain","middleware","_objectSpread","SvgPhone","SvgSms","BreadcrumbItem","link","defaultItemRender","route","params","routes","paths","isLastItem","paramsKeys","RegExp","getBreadcrumbName","filterFragment","Breadcrumb","path","childPath","originalPaths","itemRender","crumbs","BreadcrumbSeparator","ButtonGroup","Button","DropdownButton","dropdownProps","RADII","km","mile","meter","nmi","toRad","convertCoordinates","format","coordinates","lat","lon","lng","geometry","startCoordinates","endCoordinates","R","dLat","dLon","lat1","lat2","atan2","threshold","enabled","exit","request","box","getBoundingClientRect","_document","docEl","documentElement","clientLeft","scrollLeft","pageXOffset","clientTop","scrollTop","pageYOffset","boxW","boxH","boxY","boxX","evtPageY","pageY","evtPageX","changedTouches","blurNode","reactNode","toLowerCase"],"mappings":"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","file":"static/js/15.5131f695.chunk.js","sourcesContent":["import '../../style/index.less';\nimport './index.less';\n// style dependencies\nimport '../../tabs/style';\nimport '../../row/style';\nimport '../../col/style';\n","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n result = wait - timeSinceLastCall;\n\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = throttle;\n","module.exports = __webpack_public_path__ + \"static/media/TradeIn.129a1241.svg\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAb0lEQVRIDWNgGAWjIUCXEPj//38lENfTxDKgwZpADANVtLIkDmjDP6gtJUPakgh6+ARkyR9ig4uJwvDkoVA/qnagq5GDqBtVlkIe0HDklDS0DNeCRiiIaqUwILBrBxoMKiqoGyzYrRoVHQ0BLCEAAJtRkrtTVj+3AAAAAElFTkSuQmCC\"","import '../../style/index.less';\nimport './index.less';\n","import * as React from \"react\";\r\n\r\nimport { Button, Form, Input, Modal, Spin, notification } from \"antd\";\r\n\r\nimport { FormComponentProps } from \"antd/lib/form\";\r\nimport { Mutation } from \"../../generated/graphql\";\r\nimport { css } from \"@emotion/core\";\r\nimport { loader } from \"graphql.macro\";\r\nimport { useMutation } from \"@apollo/react-hooks\";\r\n\r\nconst SEND_MSG_MUTATION = loader(\"./msgMutation.graphql\");\r\n\r\ninterface Props extends FormComponentProps {\r\n modalVisible: boolean;\r\n handleCancel: (visible: boolean) => void;\r\n listingId: number;\r\n recipientUserId: number;\r\n}\r\n\r\nconst SendMsgModal: React.FC = ({\r\n form,\r\n listingId,\r\n recipientUserId,\r\n modalVisible,\r\n handleCancel,\r\n}) => {\r\n const [sendMsg, sendMsgResult] = useMutation(SEND_MSG_MUTATION, {\r\n onCompleted: data => {\r\n if (data && data.SendMessage && data.SendMessage.success) {\r\n notification[\"success\"]({\r\n message: \"Success\",\r\n description: \"Message sent successfully\",\r\n });\r\n handleCancel(false);\r\n \r\n } else {\r\n notification[\"error\"]({\r\n message: \"Error\",\r\n description: \"Sorry, we are not able to send the message\",\r\n });\r\n handleCancel(false);\r\n }\r\n },\r\n onError: err => {\r\n console.log(\"Error sending message: \", err);\r\n notification[\"error\"]({\r\n message: \"Error\",\r\n description: \"Sorry, we are not able to send the message\",\r\n });\r\n handleCancel(false);\r\n },\r\n });\r\n const handleSubmit = (e: React.FormEvent) => {\r\n e.preventDefault();\r\n form.validateFieldsAndScroll((error, values) => {\r\n if (!error) {\r\n sendMsg({\r\n variables: {\r\n ConversationThreadGuid: \"\",\r\n IsAttachment: false,\r\n ListingId: listingId,\r\n Message: values.message,\r\n RecipientUserId: recipientUserId,\r\n },\r\n });\r\n \r\n }\r\n });\r\n form.resetFields();\r\n };\r\n return (\r\n handleCancel(false)}\r\n footer={null}\r\n >\r\n

Message Seller

\r\n \r\n \r\n \r\n {form.getFieldDecorator(\"message\", {\r\n rules: [{ required: true, message: \"Please enter you message\" }],\r\n })(\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default Form.create({ name: \"send-message-form\" })(SendMsgModal);\r\n","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 =\n/*#__PURE__*/\n\n/*#__PURE__*/\nReact.createElement(\"path\", {\n d: \"M12 2C8.1 2 5 5.1 5 9c0 5.2 7 13 7 13s7-7.8 7-13c0-3.9-3.1-7-7-7zm0 9.5c-1.4 0-2.5-1.1-2.5-2.5s1.1-2.5 2.5-2.5 2.5 1.1 2.5 2.5-1.1 2.5-2.5 2.5z\"\n});\n\nvar SvgLocation = function SvgLocation(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"0 0 24 24\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgLocation, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/location.b741fbf9.svg\";\nexport { ForwardRef as ReactComponent };","function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nmodule.exports = _defineProperty;","var objectWithoutPropertiesLoose = require(\"./objectWithoutPropertiesLoose\");\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nmodule.exports = _objectWithoutProperties;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.handleLoadStart = handleLoadStart;\nexports.handleCanPlay = handleCanPlay;\nexports.handleWaiting = handleWaiting;\nexports.handleCanPlayThrough = handleCanPlayThrough;\nexports.handlePlaying = handlePlaying;\nexports.handlePlay = handlePlay;\nexports.handlePause = handlePause;\nexports.handleEnd = handleEnd;\nexports.handleSeeking = handleSeeking;\nexports.handleSeeked = handleSeeked;\nexports.handleDurationChange = handleDurationChange;\nexports.handleTimeUpdate = handleTimeUpdate;\nexports.handleVolumeChange = handleVolumeChange;\nexports.handleProgressChange = handleProgressChange;\nexports.handleRateChange = handleRateChange;\nexports.handleSuspend = handleSuspend;\nexports.handleAbort = handleAbort;\nexports.handleEmptied = handleEmptied;\nexports.handleStalled = handleStalled;\nexports.handleLoadedMetaData = handleLoadedMetaData;\nexports.handleLoadedData = handleLoadedData;\nexports.handleResize = handleResize;\nexports.handleError = handleError;\nexports.handleSeekingTime = handleSeekingTime;\nexports.handleEndSeeking = handleEndSeeking;\nexports.activateTextTrack = activateTextTrack;\nexports.ACTIVATE_TEXT_TRACK = exports.ERROR = exports.RESIZE = exports.LOADED_DATA = exports.LOADED_META_DATA = exports.STALLED = exports.EMPTIED = exports.ABORT = exports.SUSPEND = exports.RATE_CHANGE = exports.PROGRESS_CHANGE = exports.VOLUME_CHANGE = exports.TIME_UPDATE = exports.DURATION_CHANGE = exports.END_SEEKING = exports.SEEKING_TIME = exports.SEEKED = exports.SEEKING = exports.END = exports.PAUSE = exports.PLAY = exports.PLAYING = exports.CAN_PLAY_THROUGH = exports.WAITING = exports.CAN_PLAY = exports.LOAD_START = void 0;\nvar LOAD_START = 'video-react/LOAD_START';\nexports.LOAD_START = LOAD_START;\nvar CAN_PLAY = 'video-react/CAN_PLAY';\nexports.CAN_PLAY = CAN_PLAY;\nvar WAITING = 'video-react/WAITING';\nexports.WAITING = WAITING;\nvar CAN_PLAY_THROUGH = 'video-react/CAN_PLAY_THROUGH';\nexports.CAN_PLAY_THROUGH = CAN_PLAY_THROUGH;\nvar PLAYING = 'video-react/PLAYING';\nexports.PLAYING = PLAYING;\nvar PLAY = 'video-react/PLAY';\nexports.PLAY = PLAY;\nvar PAUSE = 'video-react/PAUSE';\nexports.PAUSE = PAUSE;\nvar END = 'video-react/END';\nexports.END = END;\nvar SEEKING = 'video-react/SEEKING';\nexports.SEEKING = SEEKING;\nvar SEEKED = 'video-react/SEEKED';\nexports.SEEKED = SEEKED;\nvar SEEKING_TIME = 'video-react/SEEKING_TIME';\nexports.SEEKING_TIME = SEEKING_TIME;\nvar END_SEEKING = 'video-react/END_SEEKING';\nexports.END_SEEKING = END_SEEKING;\nvar DURATION_CHANGE = 'video-react/DURATION_CHANGE';\nexports.DURATION_CHANGE = DURATION_CHANGE;\nvar TIME_UPDATE = 'video-react/TIME_UPDATE';\nexports.TIME_UPDATE = TIME_UPDATE;\nvar VOLUME_CHANGE = 'video-react/VOLUME_CHANGE';\nexports.VOLUME_CHANGE = VOLUME_CHANGE;\nvar PROGRESS_CHANGE = 'video-react/PROGRESS_CHANGE';\nexports.PROGRESS_CHANGE = PROGRESS_CHANGE;\nvar RATE_CHANGE = 'video-react/RATE_CHANGE';\nexports.RATE_CHANGE = RATE_CHANGE;\nvar SUSPEND = 'video-react/SUSPEND';\nexports.SUSPEND = SUSPEND;\nvar ABORT = 'video-react/ABORT';\nexports.ABORT = ABORT;\nvar EMPTIED = 'video-react/EMPTIED';\nexports.EMPTIED = EMPTIED;\nvar STALLED = 'video-react/STALLED';\nexports.STALLED = STALLED;\nvar LOADED_META_DATA = 'video-react/LOADED_META_DATA';\nexports.LOADED_META_DATA = LOADED_META_DATA;\nvar LOADED_DATA = 'video-react/LOADED_DATA';\nexports.LOADED_DATA = LOADED_DATA;\nvar RESIZE = 'video-react/RESIZE';\nexports.RESIZE = RESIZE;\nvar ERROR = 'video-react/ERROR';\nexports.ERROR = ERROR;\nvar ACTIVATE_TEXT_TRACK = 'video-react/ACTIVATE_TEXT_TRACK';\nexports.ACTIVATE_TEXT_TRACK = ACTIVATE_TEXT_TRACK;\n\nfunction handleLoadStart(videoProps) {\n return {\n type: LOAD_START,\n videoProps: videoProps\n };\n}\n\nfunction handleCanPlay(videoProps) {\n return {\n type: CAN_PLAY,\n videoProps: videoProps\n };\n}\n\nfunction handleWaiting(videoProps) {\n return {\n type: WAITING,\n videoProps: videoProps\n };\n}\n\nfunction handleCanPlayThrough(videoProps) {\n return {\n type: CAN_PLAY_THROUGH,\n videoProps: videoProps\n };\n}\n\nfunction handlePlaying(videoProps) {\n return {\n type: PLAYING,\n videoProps: videoProps\n };\n}\n\nfunction handlePlay(videoProps) {\n return {\n type: PLAY,\n videoProps: videoProps\n };\n}\n\nfunction handlePause(videoProps) {\n return {\n type: PAUSE,\n videoProps: videoProps\n };\n}\n\nfunction handleEnd(videoProps) {\n return {\n type: END,\n videoProps: videoProps\n };\n}\n\nfunction handleSeeking(videoProps) {\n return {\n type: SEEKING,\n videoProps: videoProps\n };\n}\n\nfunction handleSeeked(videoProps) {\n return {\n type: SEEKED,\n videoProps: videoProps\n };\n}\n\nfunction handleDurationChange(videoProps) {\n return {\n type: DURATION_CHANGE,\n videoProps: videoProps\n };\n}\n\nfunction handleTimeUpdate(videoProps) {\n return {\n type: TIME_UPDATE,\n videoProps: videoProps\n };\n}\n\nfunction handleVolumeChange(videoProps) {\n return {\n type: VOLUME_CHANGE,\n videoProps: videoProps\n };\n}\n\nfunction handleProgressChange(videoProps) {\n return {\n type: PROGRESS_CHANGE,\n videoProps: videoProps\n };\n}\n\nfunction handleRateChange(videoProps) {\n return {\n type: RATE_CHANGE,\n videoProps: videoProps\n };\n}\n\nfunction handleSuspend(videoProps) {\n return {\n type: SUSPEND,\n videoProps: videoProps\n };\n}\n\nfunction handleAbort(videoProps) {\n return {\n type: ABORT,\n videoProps: videoProps\n };\n}\n\nfunction handleEmptied(videoProps) {\n return {\n type: EMPTIED,\n videoProps: videoProps\n };\n}\n\nfunction handleStalled(videoProps) {\n return {\n type: STALLED,\n videoProps: videoProps\n };\n}\n\nfunction handleLoadedMetaData(videoProps) {\n return {\n type: LOADED_META_DATA,\n videoProps: videoProps\n };\n}\n\nfunction handleLoadedData(videoProps) {\n return {\n type: LOADED_DATA,\n videoProps: videoProps\n };\n}\n\nfunction handleResize(videoProps) {\n return {\n type: RESIZE,\n videoProps: videoProps\n };\n}\n\nfunction handleError(videoProps) {\n return {\n type: ERROR,\n videoProps: videoProps\n };\n}\n\nfunction handleSeekingTime(time) {\n return {\n type: SEEKING_TIME,\n time: time\n };\n}\n\nfunction handleEndSeeking(time) {\n return {\n type: END_SEEKING,\n time: time\n };\n}\n\nfunction activateTextTrack(textTrack) {\n return {\n type: ACTIVATE_TEXT_TRACK,\n textTrack: textTrack\n };\n}","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar Dom = _interopRequireWildcard(require(\"../utils/dom\"));\n\nvar propTypes = {\n className: _propTypes[\"default\"].string,\n onMouseDown: _propTypes[\"default\"].func,\n onMouseMove: _propTypes[\"default\"].func,\n stepForward: _propTypes[\"default\"].func,\n stepBack: _propTypes[\"default\"].func,\n sliderActive: _propTypes[\"default\"].func,\n sliderInactive: _propTypes[\"default\"].func,\n onMouseUp: _propTypes[\"default\"].func,\n onFocus: _propTypes[\"default\"].func,\n onBlur: _propTypes[\"default\"].func,\n onClick: _propTypes[\"default\"].func,\n getPercent: _propTypes[\"default\"].func,\n vertical: _propTypes[\"default\"].bool,\n children: _propTypes[\"default\"].node,\n label: _propTypes[\"default\"].string,\n valuenow: _propTypes[\"default\"].string,\n valuetext: _propTypes[\"default\"].string\n};\n\nvar Slider =\n/*#__PURE__*/\nfunction (_Component) {\n (0, _inherits2[\"default\"])(Slider, _Component);\n\n function Slider(props, context) {\n var _this;\n\n (0, _classCallCheck2[\"default\"])(this, Slider);\n _this = (0, _possibleConstructorReturn2[\"default\"])(this, (0, _getPrototypeOf2[\"default\"])(Slider).call(this, props, context));\n _this.handleMouseDown = _this.handleMouseDown.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleMouseMove = _this.handleMouseMove.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleMouseUp = _this.handleMouseUp.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleFocus = _this.handleFocus.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleBlur = _this.handleBlur.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleClick = _this.handleClick.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleKeyPress = _this.handleKeyPress.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.stepForward = _this.stepForward.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.stepBack = _this.stepBack.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.calculateDistance = _this.calculateDistance.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.getProgress = _this.getProgress.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.renderChildren = _this.renderChildren.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.state = {\n active: false\n };\n return _this;\n }\n\n (0, _createClass2[\"default\"])(Slider, [{\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n document.removeEventListener('mousemove', this.handleMouseMove, true);\n document.removeEventListener('mouseup', this.handleMouseUp, true);\n document.removeEventListener('touchmove', this.handleMouseMove, true);\n document.removeEventListener('touchend', this.handleMouseUp, true);\n document.removeEventListener('keydown', this.handleKeyPress, true);\n }\n }, {\n key: \"getProgress\",\n value: function getProgress() {\n var getPercent = this.props.getPercent;\n\n if (!getPercent) {\n return 0;\n }\n\n var progress = getPercent(); // Protect against no duration and other division issues\n\n if (typeof progress !== 'number' || progress < 0 || progress === Infinity) {\n progress = 0;\n }\n\n return progress;\n }\n }, {\n key: \"handleMouseDown\",\n value: function handleMouseDown(event) {\n var onMouseDown = this.props.onMouseDown; // event.preventDefault();\n // event.stopPropagation();\n\n document.addEventListener('mousemove', this.handleMouseMove, true);\n document.addEventListener('mouseup', this.handleMouseUp, true);\n document.addEventListener('touchmove', this.handleMouseMove, true);\n document.addEventListener('touchend', this.handleMouseUp, true);\n this.setState({\n active: true\n });\n\n if (this.props.sliderActive) {\n this.props.sliderActive(event);\n }\n\n this.handleMouseMove(event);\n\n if (onMouseDown) {\n onMouseDown(event);\n }\n }\n }, {\n key: \"handleMouseMove\",\n value: function handleMouseMove(event) {\n var onMouseMove = this.props.onMouseMove;\n\n if (onMouseMove) {\n onMouseMove(event);\n }\n }\n }, {\n key: \"handleMouseUp\",\n value: function handleMouseUp(event) {\n // On iOS safari, a subsequent mouseup event will be fired after touchend.\n // Its weird event positions make the player seek a wrong time.\n // calling preventDefault (at touchend phase) will prevent the mouseup event\n event.preventDefault();\n var onMouseUp = this.props.onMouseUp;\n document.removeEventListener('mousemove', this.handleMouseMove, true);\n document.removeEventListener('mouseup', this.handleMouseUp, true);\n document.removeEventListener('touchmove', this.handleMouseMove, true);\n document.removeEventListener('touchend', this.handleMouseUp, true);\n this.setState({\n active: false\n });\n\n if (this.props.sliderInactive) {\n this.props.sliderInactive(event);\n }\n\n if (onMouseUp) {\n onMouseUp(event);\n }\n }\n }, {\n key: \"handleFocus\",\n value: function handleFocus(e) {\n document.addEventListener('keydown', this.handleKeyPress, true);\n\n if (this.props.onFocus) {\n this.props.onFocus(e);\n }\n }\n }, {\n key: \"handleBlur\",\n value: function handleBlur(e) {\n document.removeEventListener('keydown', this.handleKeyPress, true);\n\n if (this.props.onBlur) {\n this.props.onBlur(e);\n }\n }\n }, {\n key: \"handleClick\",\n value: function handleClick(event) {\n event.preventDefault(); // event.stopPropagation();\n\n if (this.props.onClick) {\n this.props.onClick(event);\n }\n }\n }, {\n key: \"handleKeyPress\",\n value: function handleKeyPress(event) {\n if (event.which === 37 || event.which === 40) {\n // Left and Down Arrows\n event.preventDefault();\n event.stopPropagation();\n this.stepBack();\n } else if (event.which === 38 || event.which === 39) {\n // Up and Right Arrows\n event.preventDefault();\n event.stopPropagation();\n this.stepForward();\n }\n }\n }, {\n key: \"stepForward\",\n value: function stepForward() {\n if (this.props.stepForward) {\n this.props.stepForward();\n }\n }\n }, {\n key: \"stepBack\",\n value: function stepBack() {\n if (this.props.stepBack) {\n this.props.stepBack();\n }\n }\n }, {\n key: \"calculateDistance\",\n value: function calculateDistance(event) {\n var node = this.slider;\n var position = Dom.getPointerPosition(node, event);\n\n if (this.props.vertical) {\n return position.y;\n }\n\n return position.x;\n }\n }, {\n key: \"renderChildren\",\n value: function renderChildren() {\n var progress = this.getProgress();\n var percentage = \"\".concat((progress * 100).toFixed(2), \"%\");\n return _react[\"default\"].Children.map(this.props.children, function (child) {\n return _react[\"default\"].cloneElement(child, {\n progress: progress,\n percentage: percentage\n });\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$props = this.props,\n vertical = _this$props.vertical,\n label = _this$props.label,\n valuenow = _this$props.valuenow,\n valuetext = _this$props.valuetext;\n return _react[\"default\"].createElement(\"div\", {\n className: (0, _classnames[\"default\"])(this.props.className, {\n 'video-react-slider-vertical': vertical,\n 'video-react-slider-horizontal': !vertical,\n 'video-react-sliding': this.state.active\n }, 'video-react-slider'),\n ref: function ref(c) {\n _this2.slider = c;\n },\n tabIndex: \"0\",\n role: \"slider\",\n onMouseDown: this.handleMouseDown,\n onTouchStart: this.handleMouseDown,\n onFocus: this.handleFocus,\n onBlur: this.handleBlur,\n onClick: this.handleClick,\n \"aria-label\": label || '',\n \"aria-valuenow\": valuenow || '',\n \"aria-valuetext\": valuetext || '',\n \"aria-valuemin\": 0,\n \"aria-valuemax\": 100\n }, this.renderChildren());\n }\n }]);\n return Slider;\n}(_react.Component);\n\nexports[\"default\"] = Slider;\nSlider.propTypes = propTypes;\nSlider.displayName = 'Slider';","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _MenuButton = _interopRequireDefault(require(\"../menu/MenuButton\"));\n\nvar propTypes = {\n player: _propTypes[\"default\"].object,\n actions: _propTypes[\"default\"].object,\n rates: _propTypes[\"default\"].array,\n className: _propTypes[\"default\"].string\n};\nvar defaultProps = {\n rates: [2, 1.5, 1.25, 1, 0.5, 0.25]\n};\n\nvar PlaybackRateMenuButton =\n/*#__PURE__*/\nfunction (_Component) {\n (0, _inherits2[\"default\"])(PlaybackRateMenuButton, _Component);\n\n function PlaybackRateMenuButton(props, context) {\n var _this;\n\n (0, _classCallCheck2[\"default\"])(this, PlaybackRateMenuButton);\n _this = (0, _possibleConstructorReturn2[\"default\"])(this, (0, _getPrototypeOf2[\"default\"])(PlaybackRateMenuButton).call(this, props, context));\n _this.handleSelectItem = _this.handleSelectItem.bind((0, _assertThisInitialized2[\"default\"])(_this));\n return _this;\n }\n\n (0, _createClass2[\"default\"])(PlaybackRateMenuButton, [{\n key: \"handleSelectItem\",\n value: function handleSelectItem(index) {\n var _this$props = this.props,\n rates = _this$props.rates,\n actions = _this$props.actions;\n\n if (index >= 0 && index < rates.length) {\n actions.changeRate(rates[index]);\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n rates = _this$props2.rates,\n player = _this$props2.player;\n var items = rates.map(function (rate) {\n return {\n label: \"\".concat(rate, \"x\"),\n value: rate\n };\n });\n var selectedIndex = rates.indexOf(player.playbackRate) || 0;\n return _react[\"default\"].createElement(_MenuButton[\"default\"], {\n className: (0, _classnames[\"default\"])('video-react-playback-rate', this.props.className),\n onSelectItem: this.handleSelectItem,\n items: items,\n selectedIndex: selectedIndex\n }, _react[\"default\"].createElement(\"span\", {\n className: \"video-react-control-text\"\n }, \"Playback Rate\"), _react[\"default\"].createElement(\"div\", {\n className: \"video-react-playback-rate-value\"\n }, \"\".concat(player.playbackRate.toFixed(2), \"x\")));\n }\n }]);\n return PlaybackRateMenuButton;\n}(_react.Component);\n\nPlaybackRateMenuButton.propTypes = propTypes;\nPlaybackRateMenuButton.defaultProps = defaultProps;\nPlaybackRateMenuButton.displayName = 'PlaybackRateMenuButton';\nvar _default = PlaybackRateMenuButton;\nexports[\"default\"] = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _Menu = _interopRequireDefault(require(\"./Menu\"));\n\nvar _MenuItem = _interopRequireDefault(require(\"./MenuItem\"));\n\nvar _ClickableComponent = _interopRequireDefault(require(\"../ClickableComponent\"));\n\nvar propTypes = {\n inline: _propTypes[\"default\"].bool,\n items: _propTypes[\"default\"].array,\n className: _propTypes[\"default\"].string,\n onSelectItem: _propTypes[\"default\"].func,\n children: _propTypes[\"default\"].any,\n selectedIndex: _propTypes[\"default\"].number\n};\n\nvar MenuButton =\n/*#__PURE__*/\nfunction (_Component) {\n (0, _inherits2[\"default\"])(MenuButton, _Component);\n\n function MenuButton(props, context) {\n var _this;\n\n (0, _classCallCheck2[\"default\"])(this, MenuButton);\n _this = (0, _possibleConstructorReturn2[\"default\"])(this, (0, _getPrototypeOf2[\"default\"])(MenuButton).call(this, props, context));\n _this.state = {\n active: false,\n activateIndex: props.selectedIndex || 0\n };\n _this.commitSelection = _this.commitSelection.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.activateMenuItem = _this.activateMenuItem.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleClick = _this.handleClick.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.renderMenu = _this.renderMenu.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleFocus = _this.handleFocus.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleBlur = _this.handleBlur.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleUpArrow = _this.handleUpArrow.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleDownArrow = _this.handleDownArrow.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleEscape = _this.handleEscape.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleReturn = _this.handleReturn.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleTab = _this.handleTab.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleKeyPress = _this.handleKeyPress.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleSelectItem = _this.handleSelectItem.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleIndexChange = _this.handleIndexChange.bind((0, _assertThisInitialized2[\"default\"])(_this));\n return _this;\n }\n\n (0, _createClass2[\"default\"])(MenuButton, [{\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n if (prevProps.selectedIndex !== this.props.selectedIndex) {\n this.activateMenuItem(this.props.selectedIndex);\n }\n }\n }, {\n key: \"commitSelection\",\n value: function commitSelection(index) {\n this.setState({\n activateIndex: index\n });\n this.handleIndexChange(index);\n }\n }, {\n key: \"activateMenuItem\",\n value: function activateMenuItem(index) {\n this.setState({\n activateIndex: index\n });\n this.handleIndexChange(index);\n }\n }, {\n key: \"handleIndexChange\",\n value: function handleIndexChange(index) {\n var onSelectItem = this.props.onSelectItem;\n onSelectItem(index);\n }\n }, {\n key: \"handleClick\",\n value: function handleClick() {\n this.setState(function (prevState) {\n return {\n active: !prevState.active\n };\n });\n }\n }, {\n key: \"handleFocus\",\n value: function handleFocus() {\n document.addEventListener('keydown', this.handleKeyPress);\n }\n }, {\n key: \"handleBlur\",\n value: function handleBlur() {\n this.setState({\n active: false\n });\n document.removeEventListener('keydown', this.handleKeyPress);\n }\n }, {\n key: \"handleUpArrow\",\n value: function handleUpArrow(e) {\n var items = this.props.items;\n\n if (this.state.active) {\n e.preventDefault();\n var newIndex = this.state.activateIndex - 1;\n\n if (newIndex < 0) {\n newIndex = items.length ? items.length - 1 : 0;\n }\n\n this.activateMenuItem(newIndex);\n }\n }\n }, {\n key: \"handleDownArrow\",\n value: function handleDownArrow(e) {\n var items = this.props.items;\n\n if (this.state.active) {\n e.preventDefault();\n var newIndex = this.state.activateIndex + 1;\n\n if (newIndex >= items.length) {\n newIndex = 0;\n }\n\n this.activateMenuItem(newIndex);\n }\n }\n }, {\n key: \"handleTab\",\n value: function handleTab(e) {\n if (this.state.active) {\n e.preventDefault();\n this.commitSelection(this.state.activateIndex);\n }\n }\n }, {\n key: \"handleReturn\",\n value: function handleReturn(e) {\n e.preventDefault();\n\n if (this.state.active) {\n this.commitSelection(this.state.activateIndex);\n } else {\n this.setState({\n active: true\n });\n }\n }\n }, {\n key: \"handleEscape\",\n value: function handleEscape() {\n this.setState({\n active: false,\n activateIndex: 0\n });\n }\n }, {\n key: \"handleKeyPress\",\n value: function handleKeyPress(event) {\n // Escape (27) key\n if (event.which === 27) {\n this.handleEscape(event);\n } else if (event.which === 9) {\n // Tab (9) key\n this.handleTab(event);\n } else if (event.which === 13) {\n // Enter (13) key\n this.handleReturn(event);\n } else if (event.which === 38) {\n // Up (38) key\n this.handleUpArrow(event);\n } else if (event.which === 40) {\n // Down (40) key press\n this.handleDownArrow(event);\n }\n }\n }, {\n key: \"handleSelectItem\",\n value: function handleSelectItem(i) {\n this.commitSelection(i);\n }\n }, {\n key: \"renderMenu\",\n value: function renderMenu() {\n var _this2 = this;\n\n if (!this.state.active) {\n return null;\n }\n\n var items = this.props.items;\n return _react[\"default\"].createElement(_Menu[\"default\"], null, items.map(function (item, i) {\n return _react[\"default\"].createElement(_MenuItem[\"default\"], {\n item: item,\n index: i,\n onSelectItem: _this2.handleSelectItem,\n activateIndex: _this2.state.activateIndex,\n key: \"item-\".concat(i++)\n });\n }));\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this3 = this;\n\n var _this$props = this.props,\n inline = _this$props.inline,\n className = _this$props.className;\n return _react[\"default\"].createElement(_ClickableComponent[\"default\"], {\n className: (0, _classnames[\"default\"])(className, {\n 'video-react-menu-button-inline': !!inline,\n 'video-react-menu-button-popup': !inline,\n 'video-react-menu-button-active': this.state.active\n }, 'video-react-control video-react-button video-react-menu-button'),\n role: \"button\",\n tabIndex: \"0\",\n ref: function ref(c) {\n _this3.menuButton = c;\n },\n onClick: this.handleClick,\n onFocus: this.handleFocus,\n onBlur: this.handleBlur\n }, this.props.children, this.renderMenu());\n }\n }]);\n return MenuButton;\n}(_react.Component);\n\nexports[\"default\"] = MenuButton;\nMenuButton.propTypes = propTypes;\nMenuButton.displayName = 'MenuButton';","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nimport React from \"react\";\nimport PropTypes from \"prop-types\";\n\nvar ReCAPTCHA =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(ReCAPTCHA, _React$Component);\n\n function ReCAPTCHA() {\n var _this;\n\n _this = _React$Component.call(this) || this;\n _this.handleExpired = _this.handleExpired.bind(_assertThisInitialized(_this));\n _this.handleErrored = _this.handleErrored.bind(_assertThisInitialized(_this));\n _this.handleChange = _this.handleChange.bind(_assertThisInitialized(_this));\n _this.handleRecaptchaRef = _this.handleRecaptchaRef.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n var _proto = ReCAPTCHA.prototype;\n\n _proto.getValue = function getValue() {\n if (this.props.grecaptcha && this._widgetId !== undefined) {\n return this.props.grecaptcha.getResponse(this._widgetId);\n }\n\n return null;\n };\n\n _proto.getWidgetId = function getWidgetId() {\n if (this.props.grecaptcha && this._widgetId !== undefined) {\n return this._widgetId;\n }\n\n return null;\n };\n\n _proto.execute = function execute() {\n var grecaptcha = this.props.grecaptcha;\n\n if (grecaptcha && this._widgetId !== undefined) {\n return grecaptcha.execute(this._widgetId);\n } else {\n this._executeRequested = true;\n }\n };\n\n _proto.executeAsync = function executeAsync() {\n var _this2 = this;\n\n return new Promise(function (resolve, reject) {\n _this2.executionResolve = resolve;\n _this2.executionReject = reject;\n\n _this2.execute();\n });\n };\n\n _proto.reset = function reset() {\n if (this.props.grecaptcha && this._widgetId !== undefined) {\n this.props.grecaptcha.reset(this._widgetId);\n }\n };\n\n _proto.handleExpired = function handleExpired() {\n if (this.props.onExpired) {\n this.props.onExpired();\n } else {\n this.handleChange(null);\n }\n };\n\n _proto.handleErrored = function handleErrored() {\n if (this.props.onErrored) {\n this.props.onErrored();\n }\n\n if (this.executionReject) {\n this.executionReject();\n delete this.executionResolve;\n delete this.executionReject;\n }\n };\n\n _proto.handleChange = function handleChange(token) {\n if (this.props.onChange) {\n this.props.onChange(token);\n }\n\n if (this.executionResolve) {\n this.executionResolve(token);\n delete this.executionReject;\n delete this.executionResolve;\n }\n };\n\n _proto.explicitRender = function explicitRender() {\n if (this.props.grecaptcha && this.props.grecaptcha.render && this._widgetId === undefined) {\n var wrapper = document.createElement(\"div\");\n this._widgetId = this.props.grecaptcha.render(wrapper, {\n sitekey: this.props.sitekey,\n callback: this.handleChange,\n theme: this.props.theme,\n type: this.props.type,\n tabindex: this.props.tabindex,\n \"expired-callback\": this.handleExpired,\n \"error-callback\": this.handleErrored,\n size: this.props.size,\n stoken: this.props.stoken,\n hl: this.props.hl,\n badge: this.props.badge\n });\n this.captcha.appendChild(wrapper);\n }\n\n if (this._executeRequested && this.props.grecaptcha && this._widgetId !== undefined) {\n this._executeRequested = false;\n this.execute();\n }\n };\n\n _proto.componentDidMount = function componentDidMount() {\n this.explicitRender();\n };\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n this.explicitRender();\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (this._widgetId !== undefined) {\n this.delayOfCaptchaIframeRemoving();\n this.reset();\n }\n };\n\n _proto.delayOfCaptchaIframeRemoving = function delayOfCaptchaIframeRemoving() {\n var temporaryNode = document.createElement(\"div\");\n document.body.appendChild(temporaryNode);\n temporaryNode.style.display = \"none\"; // move of the recaptcha to a temporary node\n\n while (this.captcha.firstChild) {\n temporaryNode.appendChild(this.captcha.firstChild);\n } // delete the temporary node after reset will be done\n\n\n setTimeout(function () {\n document.body.removeChild(temporaryNode);\n }, 5000);\n };\n\n _proto.handleRecaptchaRef = function handleRecaptchaRef(elem) {\n this.captcha = elem;\n };\n\n _proto.render = function render() {\n // consume properties owned by the reCATPCHA, pass the rest to the div so the user can style it.\n\n /* eslint-disable no-unused-vars */\n var _this$props = this.props,\n sitekey = _this$props.sitekey,\n onChange = _this$props.onChange,\n theme = _this$props.theme,\n type = _this$props.type,\n tabindex = _this$props.tabindex,\n onExpired = _this$props.onExpired,\n onErrored = _this$props.onErrored,\n size = _this$props.size,\n stoken = _this$props.stoken,\n grecaptcha = _this$props.grecaptcha,\n badge = _this$props.badge,\n hl = _this$props.hl,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"sitekey\", \"onChange\", \"theme\", \"type\", \"tabindex\", \"onExpired\", \"onErrored\", \"size\", \"stoken\", \"grecaptcha\", \"badge\", \"hl\"]);\n /* eslint-enable no-unused-vars */\n\n\n return React.createElement(\"div\", _extends({}, childProps, {\n ref: this.handleRecaptchaRef\n }));\n };\n\n return ReCAPTCHA;\n}(React.Component);\n\nexport { ReCAPTCHA as default };\nReCAPTCHA.displayName = \"ReCAPTCHA\";\nReCAPTCHA.propTypes = {\n sitekey: PropTypes.string.isRequired,\n onChange: PropTypes.func,\n grecaptcha: PropTypes.object,\n theme: PropTypes.oneOf([\"dark\", \"light\"]),\n type: PropTypes.oneOf([\"image\", \"audio\"]),\n tabindex: PropTypes.number,\n onExpired: PropTypes.func,\n onErrored: PropTypes.func,\n size: PropTypes.oneOf([\"compact\", \"normal\", \"invisible\"]),\n stoken: PropTypes.string,\n hl: PropTypes.string,\n badge: PropTypes.oneOf([\"bottomright\", \"bottomleft\", \"inline\"])\n};\nReCAPTCHA.defaultProps = {\n onChange: function onChange() {},\n theme: \"light\",\n type: \"image\",\n tabindex: 0,\n size: \"normal\",\n badge: \"bottomright\"\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nimport { Component, createElement, forwardRef } from \"react\";\nimport PropTypes from \"prop-types\";\nimport hoistStatics from \"hoist-non-react-statics\";\nvar SCRIPT_MAP = {}; // A counter used to generate a unique id for each component that uses the function\n\nvar idCount = 0;\nexport default function makeAsyncScript(getScriptURL, options) {\n options = options || {};\n return function wrapWithAsyncScript(WrappedComponent) {\n var wrappedComponentName = WrappedComponent.displayName || WrappedComponent.name || \"Component\";\n\n var AsyncScriptLoader =\n /*#__PURE__*/\n function (_Component) {\n _inheritsLoose(AsyncScriptLoader, _Component);\n\n function AsyncScriptLoader(props, context) {\n var _this;\n\n _this = _Component.call(this, props, context) || this;\n _this.state = {};\n _this.__scriptURL = \"\";\n return _this;\n }\n\n var _proto = AsyncScriptLoader.prototype;\n\n _proto.asyncScriptLoaderGetScriptLoaderID = function asyncScriptLoaderGetScriptLoaderID() {\n if (!this.__scriptLoaderID) {\n this.__scriptLoaderID = \"async-script-loader-\" + idCount++;\n }\n\n return this.__scriptLoaderID;\n };\n\n _proto.setupScriptURL = function setupScriptURL() {\n this.__scriptURL = typeof getScriptURL === \"function\" ? getScriptURL() : getScriptURL;\n return this.__scriptURL;\n };\n\n _proto.asyncScriptLoaderHandleLoad = function asyncScriptLoaderHandleLoad(state) {\n var _this2 = this;\n\n // use reacts setState callback to fire props.asyncScriptOnLoad with new state/entry\n this.setState(state, function () {\n return _this2.props.asyncScriptOnLoad && _this2.props.asyncScriptOnLoad(_this2.state);\n });\n };\n\n _proto.asyncScriptLoaderTriggerOnScriptLoaded = function asyncScriptLoaderTriggerOnScriptLoaded() {\n var mapEntry = SCRIPT_MAP[this.__scriptURL];\n\n if (!mapEntry || !mapEntry.loaded) {\n throw new Error(\"Script is not loaded.\");\n }\n\n for (var obsKey in mapEntry.observers) {\n mapEntry.observers[obsKey](mapEntry);\n }\n\n delete window[options.callbackName];\n };\n\n _proto.componentDidMount = function componentDidMount() {\n var _this3 = this;\n\n var scriptURL = this.setupScriptURL();\n var key = this.asyncScriptLoaderGetScriptLoaderID();\n var _options = options,\n globalName = _options.globalName,\n callbackName = _options.callbackName,\n scriptId = _options.scriptId; // check if global object already attached to window\n\n if (globalName && typeof window[globalName] !== \"undefined\") {\n SCRIPT_MAP[scriptURL] = {\n loaded: true,\n observers: {}\n };\n } // check if script loading already\n\n\n if (SCRIPT_MAP[scriptURL]) {\n var entry = SCRIPT_MAP[scriptURL]; // if loaded or errored then \"finish\"\n\n if (entry && (entry.loaded || entry.errored)) {\n this.asyncScriptLoaderHandleLoad(entry);\n return;\n } // if still loading then callback to observer queue\n\n\n entry.observers[key] = function (entry) {\n return _this3.asyncScriptLoaderHandleLoad(entry);\n };\n\n return;\n }\n /*\n * hasn't started loading\n * start the \"magic\"\n * setup script to load and observers\n */\n\n\n var observers = {};\n\n observers[key] = function (entry) {\n return _this3.asyncScriptLoaderHandleLoad(entry);\n };\n\n SCRIPT_MAP[scriptURL] = {\n loaded: false,\n observers: observers\n };\n var script = document.createElement(\"script\");\n script.src = scriptURL;\n script.async = true;\n\n for (var attribute in options.attributes) {\n script.setAttribute(attribute, options.attributes[attribute]);\n }\n\n if (scriptId) {\n script.id = scriptId;\n }\n\n var callObserverFuncAndRemoveObserver = function callObserverFuncAndRemoveObserver(func) {\n if (SCRIPT_MAP[scriptURL]) {\n var mapEntry = SCRIPT_MAP[scriptURL];\n var observersMap = mapEntry.observers;\n\n for (var obsKey in observersMap) {\n if (func(observersMap[obsKey])) {\n delete observersMap[obsKey];\n }\n }\n }\n };\n\n if (callbackName && typeof window !== \"undefined\") {\n window[callbackName] = function () {\n return _this3.asyncScriptLoaderTriggerOnScriptLoaded();\n };\n }\n\n script.onload = function () {\n var mapEntry = SCRIPT_MAP[scriptURL];\n\n if (mapEntry) {\n mapEntry.loaded = true;\n callObserverFuncAndRemoveObserver(function (observer) {\n if (callbackName) {\n return false;\n }\n\n observer(mapEntry);\n return true;\n });\n }\n };\n\n script.onerror = function () {\n var mapEntry = SCRIPT_MAP[scriptURL];\n\n if (mapEntry) {\n mapEntry.errored = true;\n callObserverFuncAndRemoveObserver(function (observer) {\n observer(mapEntry);\n return true;\n });\n }\n };\n\n document.body.appendChild(script);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n // Remove tag script\n var scriptURL = this.__scriptURL;\n\n if (options.removeOnUnmount === true) {\n var allScripts = document.getElementsByTagName(\"script\");\n\n for (var i = 0; i < allScripts.length; i += 1) {\n if (allScripts[i].src.indexOf(scriptURL) > -1) {\n if (allScripts[i].parentNode) {\n allScripts[i].parentNode.removeChild(allScripts[i]);\n }\n }\n }\n } // Clean the observer entry\n\n\n var mapEntry = SCRIPT_MAP[scriptURL];\n\n if (mapEntry) {\n delete mapEntry.observers[this.asyncScriptLoaderGetScriptLoaderID()];\n\n if (options.removeOnUnmount === true) {\n delete SCRIPT_MAP[scriptURL];\n }\n }\n };\n\n _proto.render = function render() {\n var globalName = options.globalName; // remove asyncScriptOnLoad from childProps\n\n var _this$props = this.props,\n asyncScriptOnLoad = _this$props.asyncScriptOnLoad,\n forwardedRef = _this$props.forwardedRef,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"asyncScriptOnLoad\", \"forwardedRef\"]); // eslint-disable-line no-unused-vars\n\n\n if (globalName && typeof window !== \"undefined\") {\n childProps[globalName] = typeof window[globalName] !== \"undefined\" ? window[globalName] : undefined;\n }\n\n childProps.ref = forwardedRef;\n return createElement(WrappedComponent, childProps);\n };\n\n return AsyncScriptLoader;\n }(Component); // Note the second param \"ref\" provided by React.forwardRef.\n // We can pass it along to AsyncScriptLoader as a regular prop, e.g. \"forwardedRef\"\n // And it can then be attached to the Component.\n\n\n var ForwardedComponent = forwardRef(function (props, ref) {\n return createElement(AsyncScriptLoader, _extends({}, props, {\n forwardedRef: ref\n }));\n });\n ForwardedComponent.displayName = \"AsyncScriptLoader(\" + wrappedComponentName + \")\";\n ForwardedComponent.propTypes = {\n asyncScriptOnLoad: PropTypes.func\n };\n return hoistStatics(ForwardedComponent, WrappedComponent);\n };\n}","import ReCAPTCHA from \"./recaptcha\";\nimport makeAsyncScriptLoader from \"react-async-script\";\nvar callbackName = \"onloadcallback\";\nvar globalName = \"grecaptcha\";\n\nfunction getOptions() {\n return typeof window !== \"undefined\" && window.recaptchaOptions || {};\n}\n\nfunction getURL() {\n var dynamicOptions = getOptions();\n var hostname = dynamicOptions.useRecaptchaNet ? \"recaptcha.net\" : \"www.google.com\";\n return \"https://\" + hostname + \"/recaptcha/api.js?onload=\" + callbackName + \"&render=explicit\";\n}\n\nexport default makeAsyncScriptLoader(getURL, {\n callbackName: callbackName,\n globalName: globalName\n})(ReCAPTCHA);","import RecaptchaWrapper from \"./recaptcha-wrapper\";\nimport ReCAPTCHA from \"./recaptcha\";\nexport default RecaptchaWrapper;\nexport { ReCAPTCHA };","import raf from 'raf';\nexport default function throttleByAnimationFrame(fn) {\n let requestId;\n const later = (args) => () => {\n requestId = null;\n fn(...args);\n };\n const throttled = (...args) => {\n if (requestId == null) {\n requestId = raf(later(args));\n }\n };\n throttled.cancel = () => raf.cancel(requestId);\n return throttled;\n}\nexport function throttleByAnimationFrameDecorator() {\n // eslint-disable-next-line func-names\n return function (target, key, descriptor) {\n const fn = descriptor.value;\n let definingProperty = false;\n return {\n configurable: true,\n get() {\n // eslint-disable-next-line no-prototype-builtins\n if (definingProperty || this === target.prototype || this.hasOwnProperty(key)) {\n return fn;\n }\n const boundFn = throttleByAnimationFrame(fn.bind(this));\n definingProperty = true;\n Object.defineProperty(this, key, {\n value: boundFn,\n configurable: true,\n writable: true,\n });\n definingProperty = false;\n return boundFn;\n },\n };\n };\n}\n","import addEventListener from 'rc-util/lib/Dom/addEventListener';\nexport function getTargetRect(target) {\n return target !== window\n ? target.getBoundingClientRect()\n : { top: 0, bottom: window.innerHeight };\n}\nexport function getFixedTop(placeholderReact, targetRect, offsetTop) {\n if (offsetTop !== undefined && targetRect.top > placeholderReact.top - offsetTop) {\n return offsetTop + targetRect.top;\n }\n return undefined;\n}\nexport function getFixedBottom(placeholderReact, targetRect, offsetBottom) {\n if (offsetBottom !== undefined && targetRect.bottom < placeholderReact.bottom + offsetBottom) {\n const targetBottomOffset = window.innerHeight - targetRect.bottom;\n return offsetBottom + targetBottomOffset;\n }\n return undefined;\n}\n// ======================== Observer ========================\nconst TRIGGER_EVENTS = [\n 'resize',\n 'scroll',\n 'touchstart',\n 'touchmove',\n 'touchend',\n 'pageshow',\n 'load',\n];\nlet observerEntities = [];\nexport function getObserverEntities() {\n // Only used in test env. Can be removed if refactor.\n return observerEntities;\n}\nexport function addObserveTarget(target, affix) {\n if (!target)\n return;\n let entity = observerEntities.find(item => item.target === target);\n if (entity) {\n entity.affixList.push(affix);\n }\n else {\n entity = {\n target,\n affixList: [affix],\n eventHandlers: {},\n };\n observerEntities.push(entity);\n // Add listener\n TRIGGER_EVENTS.forEach(eventName => {\n entity.eventHandlers[eventName] = addEventListener(target, eventName, () => {\n entity.affixList.forEach(targetAffix => {\n targetAffix.lazyUpdatePosition();\n });\n });\n });\n }\n}\nexport function removeObserveTarget(affix) {\n const observerEntity = observerEntities.find(oriObserverEntity => {\n const hasAffix = oriObserverEntity.affixList.some(item => item === affix);\n if (hasAffix) {\n oriObserverEntity.affixList = oriObserverEntity.affixList.filter(item => item !== affix);\n }\n return hasAffix;\n });\n if (observerEntity && observerEntity.affixList.length === 0) {\n observerEntities = observerEntities.filter(item => item !== observerEntity);\n // Remove listener\n TRIGGER_EVENTS.forEach(eventName => {\n const handler = observerEntity.eventHandlers[eventName];\n if (handler && handler.remove) {\n handler.remove();\n }\n });\n }\n}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport * as React from 'react';\nimport { polyfill } from 'react-lifecycles-compat';\nimport classNames from 'classnames';\nimport omit from 'omit.js';\nimport ResizeObserver from 'rc-resize-observer';\nimport { ConfigConsumer } from '../config-provider';\nimport { throttleByAnimationFrameDecorator } from '../_util/throttleByAnimationFrame';\nimport warning from '../_util/warning';\nimport { addObserveTarget, removeObserveTarget, getTargetRect, getFixedTop, getFixedBottom, } from './utils';\nfunction getDefaultTarget() {\n return typeof window !== 'undefined' ? window : null;\n}\nvar AffixStatus;\n(function (AffixStatus) {\n AffixStatus[AffixStatus[\"None\"] = 0] = \"None\";\n AffixStatus[AffixStatus[\"Prepare\"] = 1] = \"Prepare\";\n})(AffixStatus || (AffixStatus = {}));\nclass Affix extends React.Component {\n constructor() {\n super(...arguments);\n this.state = {\n status: AffixStatus.None,\n lastAffix: false,\n prevTarget: null,\n };\n this.getOffsetTop = () => {\n const { offset, offsetBottom } = this.props;\n let { offsetTop } = this.props;\n if (typeof offsetTop === 'undefined') {\n offsetTop = offset;\n warning(typeof offset === 'undefined', 'Affix', '`offset` is deprecated. Please use `offsetTop` instead.');\n }\n if (offsetBottom === undefined && offsetTop === undefined) {\n offsetTop = 0;\n }\n return offsetTop;\n };\n this.getOffsetBottom = () => {\n return this.props.offsetBottom;\n };\n this.savePlaceholderNode = (node) => {\n this.placeholderNode = node;\n };\n this.saveFixedNode = (node) => {\n this.fixedNode = node;\n };\n // =================== Measure ===================\n this.measure = () => {\n const { status, lastAffix } = this.state;\n const { target, onChange } = this.props;\n if (status !== AffixStatus.Prepare || !this.fixedNode || !this.placeholderNode || !target) {\n return;\n }\n const offsetTop = this.getOffsetTop();\n const offsetBottom = this.getOffsetBottom();\n const targetNode = target();\n if (!targetNode) {\n return;\n }\n const newState = {\n status: AffixStatus.None,\n };\n const targetRect = getTargetRect(targetNode);\n const placeholderReact = getTargetRect(this.placeholderNode);\n const fixedTop = getFixedTop(placeholderReact, targetRect, offsetTop);\n const fixedBottom = getFixedBottom(placeholderReact, targetRect, offsetBottom);\n if (fixedTop !== undefined) {\n newState.affixStyle = {\n position: 'fixed',\n top: fixedTop,\n width: placeholderReact.width,\n height: placeholderReact.height,\n };\n newState.placeholderStyle = {\n width: placeholderReact.width,\n height: placeholderReact.height,\n };\n }\n else if (fixedBottom !== undefined) {\n newState.affixStyle = {\n position: 'fixed',\n bottom: fixedBottom,\n width: placeholderReact.width,\n height: placeholderReact.height,\n };\n newState.placeholderStyle = {\n width: placeholderReact.width,\n height: placeholderReact.height,\n };\n }\n newState.lastAffix = !!newState.affixStyle;\n if (onChange && lastAffix !== newState.lastAffix) {\n onChange(newState.lastAffix);\n }\n this.setState(newState);\n };\n // @ts-ignore TS6133\n this.prepareMeasure = () => {\n // event param is used before. Keep compatible ts define here.\n this.setState({\n status: AffixStatus.Prepare,\n affixStyle: undefined,\n placeholderStyle: undefined,\n });\n // Test if `updatePosition` called\n if (process.env.NODE_ENV === 'test') {\n const { onTestUpdatePosition } = this.props;\n if (onTestUpdatePosition) {\n onTestUpdatePosition();\n }\n }\n };\n // =================== Render ===================\n this.renderAffix = ({ getPrefixCls }) => {\n const { affixStyle, placeholderStyle } = this.state;\n const { prefixCls, children } = this.props;\n const className = classNames({\n [getPrefixCls('affix', prefixCls)]: affixStyle,\n });\n let props = omit(this.props, ['prefixCls', 'offsetTop', 'offsetBottom', 'target', 'onChange']);\n // Omit this since `onTestUpdatePosition` only works on test.\n if (process.env.NODE_ENV === 'test') {\n props = omit(props, ['onTestUpdatePosition']);\n }\n return ( {\n this.updatePosition();\n }}>\n
\n {affixStyle &&
}\n
\n {\n this.updatePosition();\n }}>\n {children}\n \n
\n
\n );\n };\n }\n // Event handler\n componentDidMount() {\n const { target } = this.props;\n if (target) {\n // [Legacy] Wait for parent component ref has its value.\n // We should use target as directly element instead of function which makes element check hard.\n this.timeout = setTimeout(() => {\n addObserveTarget(target(), this);\n // Mock Event object.\n this.updatePosition();\n });\n }\n }\n componentDidUpdate(prevProps) {\n const { prevTarget } = this.state;\n const { target } = this.props;\n let newTarget = null;\n if (target) {\n newTarget = target() || null;\n }\n if (prevTarget !== newTarget) {\n removeObserveTarget(this);\n if (newTarget) {\n addObserveTarget(newTarget, this);\n // Mock Event object.\n this.updatePosition();\n }\n this.setState({ prevTarget: newTarget });\n }\n if (prevProps.offsetTop !== this.props.offsetTop ||\n prevProps.offsetBottom !== this.props.offsetBottom) {\n this.updatePosition();\n }\n this.measure();\n }\n componentWillUnmount() {\n clearTimeout(this.timeout);\n removeObserveTarget(this);\n this.updatePosition.cancel();\n }\n // Handle realign logic\n updatePosition() {\n this.prepareMeasure();\n }\n lazyUpdatePosition() {\n const { target } = this.props;\n const { affixStyle } = this.state;\n // Check position change before measure to make Safari smooth\n if (target && affixStyle) {\n const offsetTop = this.getOffsetTop();\n const offsetBottom = this.getOffsetBottom();\n const targetNode = target();\n if (targetNode) {\n const targetRect = getTargetRect(targetNode);\n const placeholderReact = getTargetRect(this.placeholderNode);\n const fixedTop = getFixedTop(placeholderReact, targetRect, offsetTop);\n const fixedBottom = getFixedBottom(placeholderReact, targetRect, offsetBottom);\n if ((fixedTop !== undefined && affixStyle.top === fixedTop) ||\n (fixedBottom !== undefined && affixStyle.bottom === fixedBottom)) {\n return;\n }\n }\n }\n // Directly call prepare measure since it's already throttled.\n this.prepareMeasure();\n }\n render() {\n return {this.renderAffix};\n }\n}\nAffix.defaultProps = {\n target: getDefaultTarget,\n};\n__decorate([\n throttleByAnimationFrameDecorator()\n], Affix.prototype, \"updatePosition\", null);\n__decorate([\n throttleByAnimationFrameDecorator()\n], Affix.prototype, \"lazyUpdatePosition\", null);\npolyfill(Affix);\nexport default Affix;\n","var __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { ConfigConsumer } from '../config-provider';\nconst Grid = props => (\n {({ getPrefixCls }) => {\n const { prefixCls: customizePrefixCls, className, hoverable = true } = props, others = __rest(props, [\"prefixCls\", \"className\", \"hoverable\"]);\n const prefixCls = getPrefixCls('card', customizePrefixCls);\n const classString = classNames(`${prefixCls}-grid`, className, {\n [`${prefixCls}-grid-hoverable`]: hoverable,\n });\n return
;\n}}\n );\nexport default Grid;\n","var __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { ConfigConsumer } from '../config-provider';\nconst Meta = props => (\n {({ getPrefixCls }) => {\n const { prefixCls: customizePrefixCls, className, avatar, title, description } = props, others = __rest(props, [\"prefixCls\", \"className\", \"avatar\", \"title\", \"description\"]);\n const prefixCls = getPrefixCls('card', customizePrefixCls);\n const classString = classNames(`${prefixCls}-meta`, className);\n const avatarDom = avatar ?
{avatar}
: null;\n const titleDom = title ?
{title}
: null;\n const descriptionDom = description ? (
{description}
) : null;\n const MetaDetail = titleDom || descriptionDom ? (
\n {titleDom}\n {descriptionDom}\n
) : null;\n return (
\n {avatarDom}\n {MetaDetail}\n
);\n}}\n
);\nexport default Meta;\n","var __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport omit from 'omit.js';\nimport Grid from './Grid';\nimport Meta from './Meta';\nimport Tabs from '../tabs';\nimport Row from '../row';\nimport Col from '../col';\nimport { ConfigConsumer } from '../config-provider';\nimport warning from '../_util/warning';\nfunction getAction(actions) {\n const actionList = actions.map((action, index) => (\n // eslint-disable-next-line react/no-array-index-key\n
  • \n {action}\n
  • ));\n return actionList;\n}\nexport default class Card extends React.Component {\n constructor() {\n super(...arguments);\n this.onTabChange = (key) => {\n if (this.props.onTabChange) {\n this.props.onTabChange(key);\n }\n };\n this.renderCard = ({ getPrefixCls }) => {\n const _a = this.props, { prefixCls: customizePrefixCls, className, extra, headStyle = {}, bodyStyle = {}, title, loading, bordered = true, size = 'default', type, cover, actions, tabList, children, activeTabKey, defaultActiveTabKey, tabBarExtraContent } = _a, others = __rest(_a, [\"prefixCls\", \"className\", \"extra\", \"headStyle\", \"bodyStyle\", \"title\", \"loading\", \"bordered\", \"size\", \"type\", \"cover\", \"actions\", \"tabList\", \"children\", \"activeTabKey\", \"defaultActiveTabKey\", \"tabBarExtraContent\"]);\n const prefixCls = getPrefixCls('card', customizePrefixCls);\n const classString = classNames(prefixCls, className, {\n [`${prefixCls}-loading`]: loading,\n [`${prefixCls}-bordered`]: bordered,\n [`${prefixCls}-hoverable`]: this.getCompatibleHoverable(),\n [`${prefixCls}-contain-grid`]: this.isContainGrid(),\n [`${prefixCls}-contain-tabs`]: tabList && tabList.length,\n [`${prefixCls}-${size}`]: size !== 'default',\n [`${prefixCls}-type-${type}`]: !!type,\n });\n const loadingBlockStyle = bodyStyle.padding === 0 || bodyStyle.padding === '0px' ? { padding: 24 } : undefined;\n const loadingBlock = (
    \n \n \n
    \n \n \n \n \n
    \n \n \n
    \n \n \n \n \n
    \n \n \n
    \n \n \n \n \n
    \n \n \n
    \n \n \n \n \n
    \n \n \n
    \n \n \n
    \n \n \n
    );\n const hasActiveTabKey = activeTabKey !== undefined;\n const extraProps = {\n [hasActiveTabKey ? 'activeKey' : 'defaultActiveKey']: hasActiveTabKey\n ? activeTabKey\n : defaultActiveTabKey,\n tabBarExtraContent,\n };\n let head;\n const tabs = tabList && tabList.length ? (\n {tabList.map(item => ())}\n ) : null;\n if (title || extra || tabs) {\n head = (
    \n
    \n {title &&
    {title}
    }\n {extra &&
    {extra}
    }\n
    \n {tabs}\n
    );\n }\n const coverDom = cover ?
    {cover}
    : null;\n const body = (
    \n {loading ? loadingBlock : children}\n
    );\n const actionDom = actions && actions.length ? (
      {getAction(actions)}
    ) : null;\n const divProps = omit(others, ['onTabChange', 'noHovering', 'hoverable']);\n return (
    \n {head}\n {coverDom}\n {body}\n {actionDom}\n
    );\n };\n }\n componentDidMount() {\n if ('noHovering' in this.props) {\n warning(!this.props.noHovering, 'Card', '`noHovering` is deprecated, you can remove it safely or use `hoverable` instead.');\n warning(!!this.props.noHovering, 'Card', '`noHovering={false}` is deprecated, use `hoverable` instead.');\n }\n }\n // For 2.x compatible\n getCompatibleHoverable() {\n const { noHovering, hoverable } = this.props;\n if ('noHovering' in this.props) {\n return !noHovering || hoverable;\n }\n return !!hoverable;\n }\n isContainGrid() {\n let containGrid;\n React.Children.forEach(this.props.children, (element) => {\n if (element && element.type && element.type === Grid) {\n containGrid = true;\n }\n });\n return containGrid;\n }\n render() {\n return {this.renderCard};\n }\n}\nCard.Grid = Grid;\nCard.Meta = Meta;\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = _default;\nexports.operationReducer = exports.playerReducer = void 0;\n\nvar _player = _interopRequireDefault(require(\"./player\"));\n\nvar _operation = _interopRequireDefault(require(\"./operation\"));\n\nfunction _default() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var action = arguments.length > 1 ? arguments[1] : undefined;\n return {\n player: (0, _player[\"default\"])(state.player, action),\n operation: (0, _operation[\"default\"])(state.operation, action)\n };\n}\n\nvar playerReducer = _player[\"default\"];\nexports.playerReducer = playerReducer;\nvar operationReducer = _operation[\"default\"];\nexports.operationReducer = operationReducer;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar Fullscreen =\n/*#__PURE__*/\nfunction () {\n function Fullscreen() {\n (0, _classCallCheck2[\"default\"])(this, Fullscreen);\n }\n\n (0, _createClass2[\"default\"])(Fullscreen, [{\n key: \"request\",\n value: function request(elm) {\n if (elm.requestFullscreen) {\n elm.requestFullscreen();\n } else if (elm.webkitRequestFullscreen) {\n elm.webkitRequestFullscreen();\n } else if (elm.mozRequestFullScreen) {\n elm.mozRequestFullScreen();\n } else if (elm.msRequestFullscreen) {\n elm.msRequestFullscreen();\n }\n }\n }, {\n key: \"exit\",\n value: function exit() {\n if (document.exitFullscreen) {\n document.exitFullscreen();\n } else if (document.webkitExitFullscreen) {\n document.webkitExitFullscreen();\n } else if (document.mozCancelFullScreen) {\n document.mozCancelFullScreen();\n } else if (document.msExitFullscreen) {\n document.msExitFullscreen();\n }\n }\n }, {\n key: \"addEventListener\",\n value: function addEventListener(handler) {\n document.addEventListener('fullscreenchange', handler);\n document.addEventListener('webkitfullscreenchange', handler);\n document.addEventListener('mozfullscreenchange', handler);\n document.addEventListener('MSFullscreenChange', handler);\n }\n }, {\n key: \"removeEventListener\",\n value: function removeEventListener(handler) {\n document.removeEventListener('fullscreenchange', handler);\n document.removeEventListener('webkitfullscreenchange', handler);\n document.removeEventListener('mozfullscreenchange', handler);\n document.removeEventListener('MSFullscreenChange', handler);\n }\n }, {\n key: \"isFullscreen\",\n get: function get() {\n return document.fullscreenElement || document.webkitFullscreenElement || document.mozFullScreenElement || document.msFullscreenElement;\n }\n }, {\n key: \"enabled\",\n get: function get() {\n return document.fullscreenEnabled || document.webkitFullscreenEnabled || document.mozFullScreenEnabled || document.msFullscreenEnabled;\n }\n }]);\n return Fullscreen;\n}();\n\nvar _default = new Fullscreen();\n\nexports[\"default\"] = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar propTypes = {\n actions: _propTypes[\"default\"].object,\n player: _propTypes[\"default\"].object,\n position: _propTypes[\"default\"].string,\n className: _propTypes[\"default\"].string\n};\nvar defaultProps = {\n position: 'left'\n};\n\nvar BigPlayButton =\n/*#__PURE__*/\nfunction (_Component) {\n (0, _inherits2[\"default\"])(BigPlayButton, _Component);\n\n function BigPlayButton(props, context) {\n var _this;\n\n (0, _classCallCheck2[\"default\"])(this, BigPlayButton);\n _this = (0, _possibleConstructorReturn2[\"default\"])(this, (0, _getPrototypeOf2[\"default\"])(BigPlayButton).call(this, props, context));\n _this.handleClick = _this.handleClick.bind((0, _assertThisInitialized2[\"default\"])(_this));\n return _this;\n }\n\n (0, _createClass2[\"default\"])(BigPlayButton, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {}\n }, {\n key: \"handleClick\",\n value: function handleClick() {\n var actions = this.props.actions;\n actions.play();\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n player = _this$props.player,\n position = _this$props.position;\n return _react[\"default\"].createElement(\"button\", {\n className: (0, _classnames[\"default\"])('video-react-big-play-button', \"video-react-big-play-button-\".concat(position), this.props.className, {\n 'big-play-button-hide': player.hasStarted || !player.currentSrc\n }),\n type: \"button\",\n \"aria-live\": \"polite\",\n tabIndex: \"0\",\n onClick: this.handleClick\n }, _react[\"default\"].createElement(\"span\", {\n className: \"video-react-control-text\"\n }, \"Play Video\"));\n }\n }]);\n return BigPlayButton;\n}(_react.Component);\n\nexports[\"default\"] = BigPlayButton;\nBigPlayButton.propTypes = propTypes;\nBigPlayButton.defaultProps = defaultProps;\nBigPlayButton.displayName = 'BigPlayButton';","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = LoadingSpinner;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar propTypes = {\n player: _propTypes[\"default\"].object,\n className: _propTypes[\"default\"].string\n};\n\nfunction LoadingSpinner(_ref) {\n var player = _ref.player,\n className = _ref.className;\n\n if (player.error) {\n return null;\n }\n\n return _react[\"default\"].createElement(\"div\", {\n className: (0, _classnames[\"default\"])('video-react-loading-spinner', className)\n });\n}\n\nLoadingSpinner.propTypes = propTypes;\nLoadingSpinner.displayName = 'LoadingSpinner';","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar propTypes = {\n poster: _propTypes[\"default\"].string,\n player: _propTypes[\"default\"].object,\n actions: _propTypes[\"default\"].object,\n className: _propTypes[\"default\"].string\n};\n\nfunction PosterImage(_ref) {\n var poster = _ref.poster,\n player = _ref.player,\n actions = _ref.actions,\n className = _ref.className;\n\n if (!poster || player.hasStarted) {\n return null;\n }\n\n return _react[\"default\"].createElement(\"div\", {\n className: (0, _classnames[\"default\"])('video-react-poster', className),\n style: {\n backgroundImage: \"url(\\\"\".concat(poster, \"\\\")\")\n },\n onClick: function onClick() {\n if (player.paused) {\n actions.play();\n }\n }\n });\n}\n\nPosterImage.propTypes = propTypes;\nPosterImage.displayName = 'PosterImage';\nvar _default = PosterImage;\nexports[\"default\"] = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _objectSpread2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectSpread\"));\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _utils = require(\"../utils\");\n\nvar propTypes = {\n actions: _propTypes[\"default\"].object,\n player: _propTypes[\"default\"].object,\n children: _propTypes[\"default\"].any,\n startTime: _propTypes[\"default\"].number,\n loop: _propTypes[\"default\"].bool,\n muted: _propTypes[\"default\"].bool,\n autoPlay: _propTypes[\"default\"].bool,\n playsInline: _propTypes[\"default\"].bool,\n src: _propTypes[\"default\"].string,\n poster: _propTypes[\"default\"].string,\n className: _propTypes[\"default\"].string,\n preload: _propTypes[\"default\"].oneOf(['auto', 'metadata', 'none']),\n crossOrigin: _propTypes[\"default\"].string,\n onLoadStart: _propTypes[\"default\"].func,\n onWaiting: _propTypes[\"default\"].func,\n onCanPlay: _propTypes[\"default\"].func,\n onCanPlayThrough: _propTypes[\"default\"].func,\n onPlaying: _propTypes[\"default\"].func,\n onEnded: _propTypes[\"default\"].func,\n onSeeking: _propTypes[\"default\"].func,\n onSeeked: _propTypes[\"default\"].func,\n onPlay: _propTypes[\"default\"].func,\n onPause: _propTypes[\"default\"].func,\n onProgress: _propTypes[\"default\"].func,\n onDurationChange: _propTypes[\"default\"].func,\n onError: _propTypes[\"default\"].func,\n onSuspend: _propTypes[\"default\"].func,\n onAbort: _propTypes[\"default\"].func,\n onEmptied: _propTypes[\"default\"].func,\n onStalled: _propTypes[\"default\"].func,\n onLoadedMetadata: _propTypes[\"default\"].func,\n onLoadedData: _propTypes[\"default\"].func,\n onTimeUpdate: _propTypes[\"default\"].func,\n onRateChange: _propTypes[\"default\"].func,\n onVolumeChange: _propTypes[\"default\"].func,\n onResize: _propTypes[\"default\"].func\n};\n\nvar Video =\n/*#__PURE__*/\nfunction (_Component) {\n (0, _inherits2[\"default\"])(Video, _Component);\n\n function Video(props) {\n var _this;\n\n (0, _classCallCheck2[\"default\"])(this, Video);\n _this = (0, _possibleConstructorReturn2[\"default\"])(this, (0, _getPrototypeOf2[\"default\"])(Video).call(this, props));\n _this.video = null; // the html5 video\n\n _this.play = _this.play.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.pause = _this.pause.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.seek = _this.seek.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.forward = _this.forward.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.replay = _this.replay.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.toggleFullscreen = _this.toggleFullscreen.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.getProperties = _this.getProperties.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.renderChildren = _this.renderChildren.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleLoadStart = _this.handleLoadStart.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleCanPlay = _this.handleCanPlay.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleCanPlayThrough = _this.handleCanPlayThrough.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handlePlay = _this.handlePlay.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handlePlaying = _this.handlePlaying.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handlePause = _this.handlePause.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleEnded = _this.handleEnded.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleWaiting = _this.handleWaiting.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleSeeking = _this.handleSeeking.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleSeeked = _this.handleSeeked.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleFullscreenChange = _this.handleFullscreenChange.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleError = _this.handleError.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleSuspend = _this.handleSuspend.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleAbort = _this.handleAbort.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleEmptied = _this.handleEmptied.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleStalled = _this.handleStalled.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleLoadedMetaData = _this.handleLoadedMetaData.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleLoadedData = _this.handleLoadedData.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleTimeUpdate = _this.handleTimeUpdate.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleRateChange = _this.handleRateChange.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleVolumeChange = _this.handleVolumeChange.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleDurationChange = _this.handleDurationChange.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleProgress = (0, _utils.throttle)(_this.handleProgress.bind((0, _assertThisInitialized2[\"default\"])(_this)), 250);\n _this.handleKeypress = _this.handleKeypress.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleTextTrackChange = _this.handleTextTrackChange.bind((0, _assertThisInitialized2[\"default\"])(_this));\n return _this;\n }\n\n (0, _createClass2[\"default\"])(Video, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.forceUpdate(); // make sure the children can get the video property\n\n if (this.video && this.video.textTracks) {\n this.video.textTracks.onaddtrack = this.handleTextTrackChange;\n this.video.textTracks.onremovetrack = this.handleTextTrackChange;\n }\n } // get all video properties\n\n }, {\n key: \"getProperties\",\n value: function getProperties() {\n var _this2 = this;\n\n if (!this.video) {\n return null;\n }\n\n return _utils.mediaProperties.reduce(function (properties, key) {\n properties[key] = _this2.video[key];\n return properties;\n }, {});\n } // get playback rate\n\n }, {\n key: \"handleTextTrackChange\",\n value: function handleTextTrackChange() {\n var _this$props = this.props,\n actions = _this$props.actions,\n player = _this$props.player;\n\n if (this.video && this.video.textTracks) {\n var activeTextTrack = Array.from(this.video.textTracks).find(function (textTrack) {\n return textTrack.mode === 'showing';\n });\n\n if (activeTextTrack !== player.activeTextTrack) {\n actions.activateTextTrack(activeTextTrack);\n }\n }\n } // play the video\n\n }, {\n key: \"play\",\n value: function play() {\n var promise = this.video.play();\n\n if (promise !== undefined) {\n promise[\"catch\"](function () {}).then(function () {});\n }\n } // pause the video\n\n }, {\n key: \"pause\",\n value: function pause() {\n var promise = this.video.pause();\n\n if (promise !== undefined) {\n promise[\"catch\"](function () {}).then(function () {});\n }\n } // Change the video source and re-load the video:\n\n }, {\n key: \"load\",\n value: function load() {\n this.video.load();\n } // Add a new text track to the video\n\n }, {\n key: \"addTextTrack\",\n value: function addTextTrack() {\n var _this$video;\n\n (_this$video = this.video).addTextTrack.apply(_this$video, arguments);\n } // Check if your browser can play different types of video:\n\n }, {\n key: \"canPlayType\",\n value: function canPlayType() {\n var _this$video2;\n\n (_this$video2 = this.video).canPlayType.apply(_this$video2, arguments);\n } // toggle play\n\n }, {\n key: \"togglePlay\",\n value: function togglePlay() {\n if (this.video.paused) {\n this.play();\n } else {\n this.pause();\n }\n } // seek video by time\n\n }, {\n key: \"seek\",\n value: function seek(time) {\n try {\n this.video.currentTime = time;\n } catch (e) {// console.log(e, 'Video is not ready.')\n }\n } // jump forward x seconds\n\n }, {\n key: \"forward\",\n value: function forward(seconds) {\n this.seek(this.video.currentTime + seconds);\n } // jump back x seconds\n\n }, {\n key: \"replay\",\n value: function replay(seconds) {\n this.forward(-seconds);\n } // enter or exist full screen\n\n }, {\n key: \"toggleFullscreen\",\n value: function toggleFullscreen() {\n var _this$props2 = this.props,\n player = _this$props2.player,\n actions = _this$props2.actions;\n actions.toggleFullscreen(player);\n } // Fired when the user agent\n // begins looking for media data\n\n }, {\n key: \"handleLoadStart\",\n value: function handleLoadStart() {\n var _this$props3 = this.props,\n actions = _this$props3.actions,\n onLoadStart = _this$props3.onLoadStart;\n actions.handleLoadStart(this.getProperties());\n\n if (onLoadStart) {\n onLoadStart.apply(void 0, arguments);\n }\n } // A handler for events that\n // signal that waiting has ended\n\n }, {\n key: \"handleCanPlay\",\n value: function handleCanPlay() {\n var _this$props4 = this.props,\n actions = _this$props4.actions,\n onCanPlay = _this$props4.onCanPlay;\n actions.handleCanPlay(this.getProperties());\n\n if (onCanPlay) {\n onCanPlay.apply(void 0, arguments);\n }\n } // A handler for events that\n // signal that waiting has ended\n\n }, {\n key: \"handleCanPlayThrough\",\n value: function handleCanPlayThrough() {\n var _this$props5 = this.props,\n actions = _this$props5.actions,\n onCanPlayThrough = _this$props5.onCanPlayThrough;\n actions.handleCanPlayThrough(this.getProperties());\n\n if (onCanPlayThrough) {\n onCanPlayThrough.apply(void 0, arguments);\n }\n } // A handler for events that\n // signal that waiting has ended\n\n }, {\n key: \"handlePlaying\",\n value: function handlePlaying() {\n var _this$props6 = this.props,\n actions = _this$props6.actions,\n onPlaying = _this$props6.onPlaying;\n actions.handlePlaying(this.getProperties());\n\n if (onPlaying) {\n onPlaying.apply(void 0, arguments);\n }\n } // Fired whenever the media has been started\n\n }, {\n key: \"handlePlay\",\n value: function handlePlay() {\n var _this$props7 = this.props,\n actions = _this$props7.actions,\n onPlay = _this$props7.onPlay;\n actions.handlePlay(this.getProperties());\n\n if (onPlay) {\n onPlay.apply(void 0, arguments);\n }\n } // Fired whenever the media has been paused\n\n }, {\n key: \"handlePause\",\n value: function handlePause() {\n var _this$props8 = this.props,\n actions = _this$props8.actions,\n onPause = _this$props8.onPause;\n actions.handlePause(this.getProperties());\n\n if (onPause) {\n onPause.apply(void 0, arguments);\n }\n } // Fired when the duration of\n // the media resource is first known or changed\n\n }, {\n key: \"handleDurationChange\",\n value: function handleDurationChange() {\n var _this$props9 = this.props,\n actions = _this$props9.actions,\n onDurationChange = _this$props9.onDurationChange;\n actions.handleDurationChange(this.getProperties());\n\n if (onDurationChange) {\n onDurationChange.apply(void 0, arguments);\n }\n } // Fired while the user agent\n // is downloading media data\n\n }, {\n key: \"handleProgress\",\n value: function handleProgress() {\n var _this$props10 = this.props,\n actions = _this$props10.actions,\n onProgress = _this$props10.onProgress;\n\n if (this.video) {\n actions.handleProgressChange(this.getProperties());\n }\n\n if (onProgress) {\n onProgress.apply(void 0, arguments);\n }\n } // Fired when the end of the media resource\n // is reached (currentTime == duration)\n\n }, {\n key: \"handleEnded\",\n value: function handleEnded() {\n var _this$props11 = this.props,\n loop = _this$props11.loop,\n player = _this$props11.player,\n actions = _this$props11.actions,\n onEnded = _this$props11.onEnded;\n\n if (loop) {\n this.seek(0);\n this.play();\n } else if (!player.paused) {\n this.pause();\n }\n\n actions.handleEnd(this.getProperties());\n\n if (onEnded) {\n onEnded.apply(void 0, arguments);\n }\n } // Fired whenever the media begins waiting\n\n }, {\n key: \"handleWaiting\",\n value: function handleWaiting() {\n var _this$props12 = this.props,\n actions = _this$props12.actions,\n onWaiting = _this$props12.onWaiting;\n actions.handleWaiting(this.getProperties());\n\n if (onWaiting) {\n onWaiting.apply(void 0, arguments);\n }\n } // Fired whenever the player\n // is jumping to a new time\n\n }, {\n key: \"handleSeeking\",\n value: function handleSeeking() {\n var _this$props13 = this.props,\n actions = _this$props13.actions,\n onSeeking = _this$props13.onSeeking;\n actions.handleSeeking(this.getProperties());\n\n if (onSeeking) {\n onSeeking.apply(void 0, arguments);\n }\n } // Fired when the player has\n // finished jumping to a new time\n\n }, {\n key: \"handleSeeked\",\n value: function handleSeeked() {\n var _this$props14 = this.props,\n actions = _this$props14.actions,\n onSeeked = _this$props14.onSeeked;\n actions.handleSeeked(this.getProperties());\n\n if (onSeeked) {\n onSeeked.apply(void 0, arguments);\n }\n } // Handle Fullscreen Change\n\n }, {\n key: \"handleFullscreenChange\",\n value: function handleFullscreenChange() {} // Fires when the browser is\n // intentionally not getting media data\n\n }, {\n key: \"handleSuspend\",\n value: function handleSuspend() {\n var _this$props15 = this.props,\n actions = _this$props15.actions,\n onSuspend = _this$props15.onSuspend;\n actions.handleSuspend(this.getProperties());\n\n if (onSuspend) {\n onSuspend.apply(void 0, arguments);\n }\n } // Fires when the loading of an audio/video is aborted\n\n }, {\n key: \"handleAbort\",\n value: function handleAbort() {\n var _this$props16 = this.props,\n actions = _this$props16.actions,\n onAbort = _this$props16.onAbort;\n actions.handleAbort(this.getProperties());\n\n if (onAbort) {\n onAbort.apply(void 0, arguments);\n }\n } // Fires when the current playlist is empty\n\n }, {\n key: \"handleEmptied\",\n value: function handleEmptied() {\n var _this$props17 = this.props,\n actions = _this$props17.actions,\n onEmptied = _this$props17.onEmptied;\n actions.handleEmptied(this.getProperties());\n\n if (onEmptied) {\n onEmptied.apply(void 0, arguments);\n }\n } // Fires when the browser is trying to\n // get media data, but data is not available\n\n }, {\n key: \"handleStalled\",\n value: function handleStalled() {\n var _this$props18 = this.props,\n actions = _this$props18.actions,\n onStalled = _this$props18.onStalled;\n actions.handleStalled(this.getProperties());\n\n if (onStalled) {\n onStalled.apply(void 0, arguments);\n }\n } // Fires when the browser has loaded\n // meta data for the audio/video\n\n }, {\n key: \"handleLoadedMetaData\",\n value: function handleLoadedMetaData() {\n var _this$props19 = this.props,\n actions = _this$props19.actions,\n onLoadedMetadata = _this$props19.onLoadedMetadata,\n startTime = _this$props19.startTime;\n\n if (startTime && startTime > 0) {\n this.video.currentTime = startTime;\n }\n\n actions.handleLoadedMetaData(this.getProperties());\n\n if (onLoadedMetadata) {\n onLoadedMetadata.apply(void 0, arguments);\n }\n } // Fires when the browser has loaded\n // the current frame of the audio/video\n\n }, {\n key: \"handleLoadedData\",\n value: function handleLoadedData() {\n var _this$props20 = this.props,\n actions = _this$props20.actions,\n onLoadedData = _this$props20.onLoadedData;\n actions.handleLoadedData(this.getProperties());\n\n if (onLoadedData) {\n onLoadedData.apply(void 0, arguments);\n }\n } // Fires when the current\n // playback position has changed\n\n }, {\n key: \"handleTimeUpdate\",\n value: function handleTimeUpdate() {\n var _this$props21 = this.props,\n actions = _this$props21.actions,\n onTimeUpdate = _this$props21.onTimeUpdate;\n actions.handleTimeUpdate(this.getProperties());\n\n if (onTimeUpdate) {\n onTimeUpdate.apply(void 0, arguments);\n }\n }\n /**\n * Fires when the playing speed of the audio/video is changed\n */\n\n }, {\n key: \"handleRateChange\",\n value: function handleRateChange() {\n var _this$props22 = this.props,\n actions = _this$props22.actions,\n onRateChange = _this$props22.onRateChange;\n actions.handleRateChange(this.getProperties());\n\n if (onRateChange) {\n onRateChange.apply(void 0, arguments);\n }\n } // Fires when the volume has been changed\n\n }, {\n key: \"handleVolumeChange\",\n value: function handleVolumeChange() {\n var _this$props23 = this.props,\n actions = _this$props23.actions,\n onVolumeChange = _this$props23.onVolumeChange;\n actions.handleVolumeChange(this.getProperties());\n\n if (onVolumeChange) {\n onVolumeChange.apply(void 0, arguments);\n }\n } // Fires when an error occurred\n // during the loading of an audio/video\n\n }, {\n key: \"handleError\",\n value: function handleError() {\n var _this$props24 = this.props,\n actions = _this$props24.actions,\n onError = _this$props24.onError;\n actions.handleError(this.getProperties());\n\n if (onError) {\n onError.apply(void 0, arguments);\n }\n }\n }, {\n key: \"handleResize\",\n value: function handleResize() {\n var _this$props25 = this.props,\n actions = _this$props25.actions,\n onResize = _this$props25.onResize;\n actions.handleResize(this.getProperties());\n\n if (onResize) {\n onResize.apply(void 0, arguments);\n }\n }\n }, {\n key: \"handleKeypress\",\n value: function handleKeypress() {}\n }, {\n key: \"renderChildren\",\n value: function renderChildren() {\n var _this3 = this;\n\n var props = (0, _objectSpread2[\"default\"])({}, this.props, {\n video: this.video\n }); // to make sure the children can get video property\n\n if (!this.video) {\n return null;\n } // only keep , , elements\n\n\n return _react[\"default\"].Children.toArray(this.props.children).filter(_utils.isVideoChild).map(function (c) {\n var cprops;\n\n if (typeof c.type === 'string') {\n // add onError to \n if (c.type === 'source') {\n cprops = (0, _objectSpread2[\"default\"])({}, c.props);\n var preOnError = cprops.onError;\n\n cprops.onError = function () {\n if (preOnError) {\n preOnError.apply(void 0, arguments);\n }\n\n _this3.handleError.apply(_this3, arguments);\n };\n }\n } else {\n cprops = props;\n }\n\n return _react[\"default\"].cloneElement(c, cprops);\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this4 = this;\n\n var _this$props26 = this.props,\n loop = _this$props26.loop,\n poster = _this$props26.poster,\n preload = _this$props26.preload,\n src = _this$props26.src,\n autoPlay = _this$props26.autoPlay,\n playsInline = _this$props26.playsInline,\n muted = _this$props26.muted,\n crossOrigin = _this$props26.crossOrigin,\n videoId = _this$props26.videoId;\n return _react[\"default\"].createElement(\"video\", {\n className: (0, _classnames[\"default\"])('video-react-video', this.props.className),\n id: videoId,\n crossOrigin: crossOrigin,\n ref: function ref(c) {\n _this4.video = c;\n },\n muted: muted,\n preload: preload,\n loop: loop,\n playsInline: playsInline,\n autoPlay: autoPlay,\n poster: poster,\n src: src,\n onLoadStart: this.handleLoadStart,\n onWaiting: this.handleWaiting,\n onCanPlay: this.handleCanPlay,\n onCanPlayThrough: this.handleCanPlayThrough,\n onPlaying: this.handlePlaying,\n onEnded: this.handleEnded,\n onSeeking: this.handleSeeking,\n onSeeked: this.handleSeeked,\n onPlay: this.handlePlay,\n onPause: this.handlePause,\n onProgress: this.handleProgress,\n onDurationChange: this.handleDurationChange,\n onError: this.handleError,\n onSuspend: this.handleSuspend,\n onAbort: this.handleAbort,\n onEmptied: this.handleEmptied,\n onStalled: this.handleStalled,\n onLoadedMetadata: this.handleLoadedMetaData,\n onLoadedData: this.handleLoadedData,\n onTimeUpdate: this.handleTimeUpdate,\n onRateChange: this.handleRateChange,\n onVolumeChange: this.handleVolumeChange,\n tabIndex: \"-1\"\n }, this.renderChildren());\n }\n }, {\n key: \"playbackRate\",\n get: function get() {\n return this.video.playbackRate;\n } // set playback rate\n // speed of video\n ,\n set: function set(rate) {\n this.video.playbackRate = rate;\n }\n }, {\n key: \"muted\",\n get: function get() {\n return this.video.muted;\n },\n set: function set(val) {\n this.video.muted = val;\n }\n }, {\n key: \"volume\",\n get: function get() {\n return this.video.volume;\n },\n set: function set(val) {\n if (val > 1) {\n val = 1;\n }\n\n if (val < 0) {\n val = 0;\n }\n\n this.video.volume = val;\n } // video width\n\n }, {\n key: \"videoWidth\",\n get: function get() {\n return this.video.videoWidth;\n } // video height\n\n }, {\n key: \"videoHeight\",\n get: function get() {\n return this.video.videoHeight;\n }\n }]);\n return Video;\n}(_react.Component);\n\nexports[\"default\"] = Video;\nVideo.propTypes = propTypes;\nVideo.displayName = 'Video';","var arrayWithoutHoles = require(\"./arrayWithoutHoles\");\n\nvar iterableToArray = require(\"./iterableToArray\");\n\nvar nonIterableSpread = require(\"./nonIterableSpread\");\n\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || nonIterableSpread();\n}\n\nmodule.exports = _toConsumableArray;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar propTypes = {\n manager: _propTypes[\"default\"].object,\n className: _propTypes[\"default\"].string\n};\n\nvar Bezel =\n/*#__PURE__*/\nfunction (_Component) {\n (0, _inherits2[\"default\"])(Bezel, _Component);\n\n function Bezel(props, context) {\n var _this;\n\n (0, _classCallCheck2[\"default\"])(this, Bezel);\n _this = (0, _possibleConstructorReturn2[\"default\"])(this, (0, _getPrototypeOf2[\"default\"])(Bezel).call(this, props, context));\n _this.timer = null;\n props.manager.subscribeToOperationStateChange(_this.handleStateChange.bind((0, _assertThisInitialized2[\"default\"])(_this)));\n _this.state = {\n hidden: true,\n operation: {}\n };\n return _this;\n }\n\n (0, _createClass2[\"default\"])(Bezel, [{\n key: \"handleStateChange\",\n value: function handleStateChange(state, prevState) {\n var _this2 = this;\n\n if (state.count !== prevState.count && state.operation.source === 'shortcut') {\n if (this.timer) {\n // previous animation is not finished\n clearTimeout(this.timer); // cancel it\n\n this.timer = null;\n } // show it\n // update operation\n\n\n this.setState({\n hidden: false,\n count: state.count,\n operation: state.operation\n }); // hide it after 0.5s\n\n this.timer = setTimeout(function () {\n _this2.setState({\n hidden: true\n });\n\n _this2.timer = null;\n }, 500);\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n // only displays for shortcut so far\n if (this.state.operation.source !== 'shortcut') {\n return null;\n }\n\n var style = this.state.hidden ? {\n display: 'none'\n } : null;\n return _react[\"default\"].createElement(\"div\", {\n className: (0, _classnames[\"default\"])({\n 'video-react-bezel': true,\n 'video-react-bezel-animation': this.state.count % 2 === 0,\n 'video-react-bezel-animation-alt': this.state.count % 2 === 1\n }, this.props.className),\n style: style,\n role: \"status\",\n \"aria-label\": this.state.operation.action\n }, _react[\"default\"].createElement(\"div\", {\n className: (0, _classnames[\"default\"])('video-react-bezel-icon', \"video-react-bezel-icon-\".concat(this.state.operation.action))\n }));\n }\n }]);\n return Bezel;\n}(_react.Component);\n\nexports[\"default\"] = Bezel;\nBezel.propTypes = propTypes;\nBezel.displayName = 'Bezel';","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar _toConsumableArray2 = _interopRequireDefault(require(\"@babel/runtime/helpers/toConsumableArray\"));\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _react = require(\"react\");\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _dom = require(\"../utils/dom\");\n\nvar propTypes = {\n clickable: _propTypes[\"default\"].bool,\n dblclickable: _propTypes[\"default\"].bool,\n manager: _propTypes[\"default\"].object,\n actions: _propTypes[\"default\"].object,\n player: _propTypes[\"default\"].object,\n shortcuts: _propTypes[\"default\"].array\n};\nvar defaultProps = {\n clickable: true,\n dblclickable: true\n};\n\nvar Shortcut =\n/*#__PURE__*/\nfunction (_Component) {\n (0, _inherits2[\"default\"])(Shortcut, _Component);\n\n function Shortcut(props, context) {\n var _this;\n\n (0, _classCallCheck2[\"default\"])(this, Shortcut);\n _this = (0, _possibleConstructorReturn2[\"default\"])(this, (0, _getPrototypeOf2[\"default\"])(Shortcut).call(this, props, context));\n _this.defaultShortcuts = [{\n keyCode: 32,\n // spacebar\n handle: _this.togglePlay\n }, {\n keyCode: 75,\n // k\n handle: _this.togglePlay\n }, {\n keyCode: 70,\n // f\n handle: _this.toggleFullscreen\n }, {\n keyCode: 37,\n // Left arrow\n handle: function handle(player, actions) {\n if (!player.hasStarted) {\n return;\n }\n\n actions.replay(5, {\n action: 'replay-5',\n source: 'shortcut'\n }); // Go back 5 seconds\n }\n }, {\n keyCode: 74,\n // j\n handle: function handle(player, actions) {\n if (!player.hasStarted) {\n return;\n }\n\n actions.replay(10, {\n action: 'replay-10',\n source: 'shortcut'\n }); // Go back 10 seconds\n }\n }, {\n keyCode: 39,\n // Right arrow\n handle: function handle(player, actions) {\n if (!player.hasStarted) {\n return;\n }\n\n actions.forward(5, {\n action: 'forward-5',\n source: 'shortcut'\n }); // Go forward 5 seconds\n }\n }, {\n keyCode: 76,\n // l\n handle: function handle(player, actions) {\n if (!player.hasStarted) {\n return;\n }\n\n actions.forward(10, {\n action: 'forward-10',\n source: 'shortcut'\n }); // Go forward 10 seconds\n }\n }, {\n keyCode: 36,\n // Home\n handle: function handle(player, actions) {\n if (!player.hasStarted) {\n return;\n }\n\n actions.seek(0); // Go to beginning of video\n }\n }, {\n keyCode: 35,\n // End\n handle: function handle(player, actions) {\n if (!player.hasStarted) {\n return;\n } // Go to end of video\n\n\n actions.seek(player.duration);\n }\n }, {\n keyCode: 38,\n // Up arrow\n handle: function handle(player, actions) {\n // Increase volume 5%\n var v = player.volume + 0.05;\n\n if (v > 1) {\n v = 1;\n }\n\n actions.changeVolume(v, {\n action: 'volume-up',\n source: 'shortcut'\n });\n }\n }, {\n keyCode: 40,\n // Down arrow\n handle: function handle(player, actions) {\n // Decrease volume 5%\n var v = player.volume - 0.05;\n\n if (v < 0) {\n v = 0;\n }\n\n var action = v > 0 ? 'volume-down' : 'volume-off';\n actions.changeVolume(v, {\n action: action,\n source: 'shortcut'\n });\n }\n }, {\n keyCode: 190,\n // Shift + >\n shift: true,\n handle: function handle(player, actions) {\n // Increase speed\n var playbackRate = player.playbackRate;\n\n if (playbackRate >= 1.5) {\n playbackRate = 2;\n } else if (playbackRate >= 1.25) {\n playbackRate = 1.5;\n } else if (playbackRate >= 1.0) {\n playbackRate = 1.25;\n } else if (playbackRate >= 0.5) {\n playbackRate = 1.0;\n } else if (playbackRate >= 0.25) {\n playbackRate = 0.5;\n } else if (playbackRate >= 0) {\n playbackRate = 0.25;\n }\n\n actions.changeRate(playbackRate, {\n action: 'fast-forward',\n source: 'shortcut'\n });\n }\n }, {\n keyCode: 188,\n // Shift + <\n shift: true,\n handle: function handle(player, actions) {\n // Decrease speed\n var playbackRate = player.playbackRate;\n\n if (playbackRate <= 0.5) {\n playbackRate = 0.25;\n } else if (playbackRate <= 1.0) {\n playbackRate = 0.5;\n } else if (playbackRate <= 1.25) {\n playbackRate = 1.0;\n } else if (playbackRate <= 1.5) {\n playbackRate = 1.25;\n } else if (playbackRate <= 2) {\n playbackRate = 1.5;\n }\n\n actions.changeRate(playbackRate, {\n action: 'fast-rewind',\n source: 'shortcut'\n });\n }\n }];\n _this.shortcuts = (0, _toConsumableArray2[\"default\"])(_this.defaultShortcuts);\n _this.mergeShortcuts = _this.mergeShortcuts.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleKeyPress = _this.handleKeyPress.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleClick = _this.handleClick.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleDoubleClick = _this.handleDoubleClick.bind((0, _assertThisInitialized2[\"default\"])(_this));\n return _this;\n }\n\n (0, _createClass2[\"default\"])(Shortcut, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.mergeShortcuts();\n document.addEventListener('keydown', this.handleKeyPress);\n document.addEventListener('click', this.handleClick);\n document.addEventListener('dblclick', this.handleDoubleClick);\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n if (prevProps.shortcuts !== this.props.shortcuts) {\n this.mergeShortcuts();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n document.removeEventListener('keydown', this.handleKeyPress);\n document.removeEventListener('click', this.handleClick);\n document.removeEventListener('dblclick', this.handleDoubleClick);\n } // merge the shortcuts from props\n\n }, {\n key: \"mergeShortcuts\",\n value: function mergeShortcuts() {\n var getShortcutKey = function getShortcutKey(_ref) {\n var _ref$keyCode = _ref.keyCode,\n keyCode = _ref$keyCode === void 0 ? 0 : _ref$keyCode,\n _ref$ctrl = _ref.ctrl,\n ctrl = _ref$ctrl === void 0 ? false : _ref$ctrl,\n _ref$shift = _ref.shift,\n shift = _ref$shift === void 0 ? false : _ref$shift,\n _ref$alt = _ref.alt,\n alt = _ref$alt === void 0 ? false : _ref$alt;\n return \"\".concat(keyCode, \":\").concat(ctrl, \":\").concat(shift, \":\").concat(alt);\n };\n\n var defaultShortcuts = this.defaultShortcuts.reduce(function (shortcuts, shortcut) {\n return Object.assign(shortcuts, (0, _defineProperty2[\"default\"])({}, getShortcutKey(shortcut), shortcut));\n }, {});\n var mergedShortcuts = (this.props.shortcuts || []).reduce(function (shortcuts, shortcut) {\n var keyCode = shortcut.keyCode,\n handle = shortcut.handle;\n\n if (keyCode && typeof handle === 'function') {\n return Object.assign(shortcuts, (0, _defineProperty2[\"default\"])({}, getShortcutKey(shortcut), shortcut));\n }\n\n return shortcuts;\n }, defaultShortcuts);\n\n var gradeShortcut = function gradeShortcut(s) {\n var score = 0;\n var ps = ['ctrl', 'shift', 'alt'];\n ps.forEach(function (key) {\n if (s[key]) {\n score++;\n }\n });\n return score;\n };\n\n this.shortcuts = Object.keys(mergedShortcuts).map(function (key) {\n return mergedShortcuts[key];\n }).sort(function (a, b) {\n return gradeShortcut(b) - gradeShortcut(a);\n });\n }\n }, {\n key: \"togglePlay\",\n value: function togglePlay(player, actions) {\n if (player.paused) {\n actions.play({\n action: 'play',\n source: 'shortcut'\n });\n } else {\n actions.pause({\n action: 'pause',\n source: 'shortcut'\n });\n }\n }\n }, {\n key: \"toggleFullscreen\",\n value: function toggleFullscreen(player, actions) {\n actions.toggleFullscreen(player);\n }\n }, {\n key: \"handleKeyPress\",\n value: function handleKeyPress(e) {\n var _this$props = this.props,\n player = _this$props.player,\n actions = _this$props.actions;\n\n if (!player.isActive) {\n return;\n }\n\n if (document.activeElement && ((0, _dom.hasClass)(document.activeElement, 'video-react-control') || (0, _dom.hasClass)(document.activeElement, 'video-react-menu-button-active') // || hasClass(document.activeElement, 'video-react-slider')\n || (0, _dom.hasClass)(document.activeElement, 'video-react-big-play-button'))) {\n return;\n }\n\n var keyCode = e.keyCode || e.which;\n var ctrl = e.ctrlKey || e.metaKey;\n var shift = e.shiftKey;\n var alt = e.altKey;\n var shortcut = this.shortcuts.filter(function (s) {\n if (!s.keyCode || s.keyCode - keyCode !== 0) {\n return false;\n }\n\n if (s.ctrl !== undefined && s.ctrl !== ctrl || s.shift !== undefined && s.shift !== shift || s.alt !== undefined && s.alt !== alt) {\n return false;\n }\n\n return true;\n })[0];\n\n if (shortcut) {\n shortcut.handle(player, actions);\n e.preventDefault();\n }\n } // only if player is active and player is ready\n\n }, {\n key: \"canBeClicked\",\n value: function canBeClicked(player, e) {\n if (!player.isActive || e.target.nodeName !== 'VIDEO' || player.readyState !== 4) {\n return false;\n }\n\n return true;\n }\n }, {\n key: \"handleClick\",\n value: function handleClick(e) {\n var _this$props2 = this.props,\n player = _this$props2.player,\n actions = _this$props2.actions,\n clickable = _this$props2.clickable;\n\n if (!this.canBeClicked(player, e) || !clickable) {\n return;\n }\n\n this.togglePlay(player, actions); // e.preventDefault();\n }\n }, {\n key: \"handleDoubleClick\",\n value: function handleDoubleClick(e) {\n var _this$props3 = this.props,\n player = _this$props3.player,\n actions = _this$props3.actions,\n dblclickable = _this$props3.dblclickable;\n\n if (!this.canBeClicked(player, e) || !dblclickable) {\n return;\n }\n\n this.toggleFullscreen(player, actions); // e.preventDefault();\n } // this component dose not render anything\n // it's just for the key down event\n\n }, {\n key: \"render\",\n value: function render() {\n return null;\n }\n }]);\n return Shortcut;\n}(_react.Component);\n\nexports[\"default\"] = Shortcut;\nShortcut.propTypes = propTypes;\nShortcut.defaultProps = defaultProps;\nShortcut.displayName = 'Shortcut';","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _ProgressControl = _interopRequireDefault(require(\"./ProgressControl\"));\n\nvar _PlayToggle = _interopRequireDefault(require(\"./PlayToggle\"));\n\nvar _ForwardControl = _interopRequireDefault(require(\"./ForwardControl\"));\n\nvar _ReplayControl = _interopRequireDefault(require(\"./ReplayControl\"));\n\nvar _FullscreenToggle = _interopRequireDefault(require(\"./FullscreenToggle\"));\n\nvar _RemainingTimeDisplay = _interopRequireDefault(require(\"../time-controls/RemainingTimeDisplay\"));\n\nvar _CurrentTimeDisplay = _interopRequireDefault(require(\"../time-controls/CurrentTimeDisplay\"));\n\nvar _DurationDisplay = _interopRequireDefault(require(\"../time-controls/DurationDisplay\"));\n\nvar _TimeDivider = _interopRequireDefault(require(\"../time-controls/TimeDivider\"));\n\nvar _VolumeMenuButton = _interopRequireDefault(require(\"./VolumeMenuButton\"));\n\nvar _PlaybackRateMenuButton = _interopRequireDefault(require(\"./PlaybackRateMenuButton\"));\n\nvar _utils = require(\"../../utils\");\n\nvar propTypes = {\n children: _propTypes[\"default\"].any,\n autoHide: _propTypes[\"default\"].bool,\n autoHideTime: _propTypes[\"default\"].number,\n // used in Player\n disableDefaultControls: _propTypes[\"default\"].bool,\n disableCompletely: _propTypes[\"default\"].bool,\n className: _propTypes[\"default\"].string\n};\nvar defaultProps = {\n autoHide: true,\n disableCompletely: false\n};\n\nvar ControlBar =\n/*#__PURE__*/\nfunction (_Component) {\n (0, _inherits2[\"default\"])(ControlBar, _Component);\n\n function ControlBar(props) {\n var _this;\n\n (0, _classCallCheck2[\"default\"])(this, ControlBar);\n _this = (0, _possibleConstructorReturn2[\"default\"])(this, (0, _getPrototypeOf2[\"default\"])(ControlBar).call(this, props));\n _this.getDefaultChildren = _this.getDefaultChildren.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.getFullChildren = _this.getFullChildren.bind((0, _assertThisInitialized2[\"default\"])(_this));\n return _this;\n }\n\n (0, _createClass2[\"default\"])(ControlBar, [{\n key: \"getDefaultChildren\",\n value: function getDefaultChildren() {\n return [_react[\"default\"].createElement(_PlayToggle[\"default\"], {\n key: \"play-toggle\",\n order: 1\n }), _react[\"default\"].createElement(_VolumeMenuButton[\"default\"], {\n key: \"volume-menu-button\",\n order: 4\n }), _react[\"default\"].createElement(_CurrentTimeDisplay[\"default\"], {\n key: \"current-time-display\",\n order: 5.1\n }), _react[\"default\"].createElement(_TimeDivider[\"default\"], {\n key: \"time-divider\",\n order: 5.2\n }), _react[\"default\"].createElement(_DurationDisplay[\"default\"], {\n key: \"duration-display\",\n order: 5.3\n }), _react[\"default\"].createElement(_ProgressControl[\"default\"], {\n key: \"progress-control\",\n order: 6\n }), _react[\"default\"].createElement(_FullscreenToggle[\"default\"], {\n key: \"fullscreen-toggle\",\n order: 8\n })];\n }\n }, {\n key: \"getFullChildren\",\n value: function getFullChildren() {\n return [_react[\"default\"].createElement(_PlayToggle[\"default\"], {\n key: \"play-toggle\",\n order: 1\n }), _react[\"default\"].createElement(_ReplayControl[\"default\"], {\n key: \"replay-control\",\n order: 2\n }), _react[\"default\"].createElement(_ForwardControl[\"default\"], {\n key: \"forward-control\",\n order: 3\n }), _react[\"default\"].createElement(_VolumeMenuButton[\"default\"], {\n key: \"volume-menu-button\",\n order: 4\n }), _react[\"default\"].createElement(_CurrentTimeDisplay[\"default\"], {\n key: \"current-time-display\",\n order: 5\n }), _react[\"default\"].createElement(_TimeDivider[\"default\"], {\n key: \"time-divider\",\n order: 6\n }), _react[\"default\"].createElement(_DurationDisplay[\"default\"], {\n key: \"duration-display\",\n order: 7\n }), _react[\"default\"].createElement(_ProgressControl[\"default\"], {\n key: \"progress-control\",\n order: 8\n }), _react[\"default\"].createElement(_RemainingTimeDisplay[\"default\"], {\n key: \"remaining-time-display\",\n order: 9\n }), _react[\"default\"].createElement(_PlaybackRateMenuButton[\"default\"], {\n rates: [1, 1.25, 1.5, 2],\n key: \"playback-rate\",\n order: 10\n }), _react[\"default\"].createElement(_FullscreenToggle[\"default\"], {\n key: \"fullscreen-toggle\",\n order: 11\n })];\n }\n }, {\n key: \"getChildren\",\n value: function getChildren() {\n var children = _react[\"default\"].Children.toArray(this.props.children);\n\n var defaultChildren = this.props.disableDefaultControls ? [] : this.getDefaultChildren();\n var _this$props = this.props,\n className = _this$props.className,\n parentProps = (0, _objectWithoutProperties2[\"default\"])(_this$props, [\"className\"]); // remove className\n\n return (0, _utils.mergeAndSortChildren)(defaultChildren, children, parentProps);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n autoHide = _this$props2.autoHide,\n className = _this$props2.className,\n disableCompletely = _this$props2.disableCompletely;\n var children = this.getChildren();\n return disableCompletely ? null : _react[\"default\"].createElement(\"div\", {\n className: (0, _classnames[\"default\"])('video-react-control-bar', {\n 'video-react-control-bar-auto-hide': autoHide\n }, className)\n }, children);\n }\n }]);\n return ControlBar;\n}(_react.Component);\n\nexports[\"default\"] = ControlBar;\nControlBar.propTypes = propTypes;\nControlBar.defaultProps = defaultProps;\nControlBar.displayName = 'ControlBar';","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar Dom = _interopRequireWildcard(require(\"../../utils/dom\"));\n\nvar _SeekBar = _interopRequireDefault(require(\"./SeekBar\"));\n\nvar propTypes = {\n player: _propTypes[\"default\"].object,\n className: _propTypes[\"default\"].string\n};\n\nvar ProgressControl =\n/*#__PURE__*/\nfunction (_Component) {\n (0, _inherits2[\"default\"])(ProgressControl, _Component);\n\n function ProgressControl(props, context) {\n var _this;\n\n (0, _classCallCheck2[\"default\"])(this, ProgressControl);\n _this = (0, _possibleConstructorReturn2[\"default\"])(this, (0, _getPrototypeOf2[\"default\"])(ProgressControl).call(this, props, context));\n _this.state = {\n mouseTime: {\n time: null,\n position: 0\n }\n };\n _this.handleMouseMoveThrottle = _this.handleMouseMove.bind((0, _assertThisInitialized2[\"default\"])(_this));\n return _this;\n }\n\n (0, _createClass2[\"default\"])(ProgressControl, [{\n key: \"handleMouseMove\",\n value: function handleMouseMove(event) {\n if (!event.pageX) {\n return;\n }\n\n var duration = this.props.player.duration;\n var node = this.seekBar;\n var newTime = Dom.getPointerPosition(node, event).x * duration;\n var position = event.pageX - Dom.findElPosition(node).left;\n this.setState({\n mouseTime: {\n time: newTime,\n position: position\n }\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var className = this.props.className;\n return _react[\"default\"].createElement(\"div\", {\n onMouseMove: this.handleMouseMoveThrottle,\n className: (0, _classnames[\"default\"])('video-react-progress-control video-react-control', className)\n }, _react[\"default\"].createElement(_SeekBar[\"default\"], (0, _extends2[\"default\"])({\n mouseTime: this.state.mouseTime,\n ref: function ref(c) {\n _this2.seekBar = c;\n }\n }, this.props)));\n }\n }]);\n return ProgressControl;\n}(_react.Component);\n\nexports[\"default\"] = ProgressControl;\nProgressControl.propTypes = propTypes;\nProgressControl.displayName = 'ProgressControl';","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _Slider = _interopRequireDefault(require(\"../Slider\"));\n\nvar _PlayProgressBar = _interopRequireDefault(require(\"./PlayProgressBar\"));\n\nvar _LoadProgressBar = _interopRequireDefault(require(\"./LoadProgressBar\"));\n\nvar _MouseTimeDisplay = _interopRequireDefault(require(\"./MouseTimeDisplay\"));\n\nvar _utils = require(\"../../utils\");\n\nvar propTypes = {\n player: _propTypes[\"default\"].object,\n mouseTime: _propTypes[\"default\"].object,\n actions: _propTypes[\"default\"].object,\n className: _propTypes[\"default\"].string\n};\n\nvar SeekBar =\n/*#__PURE__*/\nfunction (_Component) {\n (0, _inherits2[\"default\"])(SeekBar, _Component);\n\n function SeekBar(props, context) {\n var _this;\n\n (0, _classCallCheck2[\"default\"])(this, SeekBar);\n _this = (0, _possibleConstructorReturn2[\"default\"])(this, (0, _getPrototypeOf2[\"default\"])(SeekBar).call(this, props, context));\n _this.getPercent = _this.getPercent.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.getNewTime = _this.getNewTime.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.stepForward = _this.stepForward.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.stepBack = _this.stepBack.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleMouseDown = _this.handleMouseDown.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleMouseMove = _this.handleMouseMove.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleMouseUp = _this.handleMouseUp.bind((0, _assertThisInitialized2[\"default\"])(_this));\n return _this;\n }\n\n (0, _createClass2[\"default\"])(SeekBar, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {}\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {}\n /**\n * Get percentage of video played\n *\n * @return {Number} Percentage played\n * @method getPercent\n */\n\n }, {\n key: \"getPercent\",\n value: function getPercent() {\n var _this$props$player = this.props.player,\n currentTime = _this$props$player.currentTime,\n seekingTime = _this$props$player.seekingTime,\n duration = _this$props$player.duration;\n var time = seekingTime || currentTime;\n var percent = time / duration;\n return percent >= 1 ? 1 : percent;\n }\n }, {\n key: \"getNewTime\",\n value: function getNewTime(event) {\n var duration = this.props.player.duration;\n var distance = this.slider.calculateDistance(event);\n var newTime = distance * duration; // Don't let video end while scrubbing.\n\n return newTime === duration ? newTime - 0.1 : newTime;\n }\n }, {\n key: \"handleMouseDown\",\n value: function handleMouseDown() {}\n }, {\n key: \"handleMouseUp\",\n value: function handleMouseUp(event) {\n var actions = this.props.actions;\n var newTime = this.getNewTime(event); // Set new time (tell video to seek to new time)\n\n actions.seek(newTime);\n actions.handleEndSeeking(newTime);\n }\n }, {\n key: \"handleMouseMove\",\n value: function handleMouseMove(event) {\n var actions = this.props.actions;\n var newTime = this.getNewTime(event);\n actions.handleSeekingTime(newTime);\n }\n }, {\n key: \"stepForward\",\n value: function stepForward() {\n var actions = this.props.actions;\n actions.forward(5);\n }\n }, {\n key: \"stepBack\",\n value: function stepBack() {\n var actions = this.props.actions;\n actions.replay(5);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$props = this.props,\n _this$props$player2 = _this$props.player,\n currentTime = _this$props$player2.currentTime,\n seekingTime = _this$props$player2.seekingTime,\n duration = _this$props$player2.duration,\n buffered = _this$props$player2.buffered,\n mouseTime = _this$props.mouseTime;\n var time = seekingTime || currentTime;\n return _react[\"default\"].createElement(_Slider[\"default\"], {\n ref: function ref(input) {\n _this2.slider = input;\n },\n label: \"video progress bar\",\n className: (0, _classnames[\"default\"])('video-react-progress-holder', this.props.className),\n valuenow: (this.getPercent() * 100).toFixed(2),\n valuetext: (0, _utils.formatTime)(time, duration),\n onMouseDown: this.handleMouseDown,\n onMouseMove: this.handleMouseMove,\n onMouseUp: this.handleMouseUp,\n getPercent: this.getPercent,\n stepForward: this.stepForward,\n stepBack: this.stepBack\n }, _react[\"default\"].createElement(_LoadProgressBar[\"default\"], {\n buffered: buffered,\n currentTime: time,\n duration: duration\n }), _react[\"default\"].createElement(_MouseTimeDisplay[\"default\"], {\n duration: duration,\n mouseTime: mouseTime\n }), _react[\"default\"].createElement(_PlayProgressBar[\"default\"], {\n currentTime: time,\n duration: duration\n }));\n }\n }]);\n return SeekBar;\n}(_react.Component);\n\nexports[\"default\"] = SeekBar;\nSeekBar.propTypes = propTypes;\nSeekBar.displayName = 'SeekBar';","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = PlayProgressBar;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _utils = require(\"../../utils\");\n\nvar propTypes = {\n currentTime: _propTypes[\"default\"].number,\n duration: _propTypes[\"default\"].number,\n percentage: _propTypes[\"default\"].string,\n className: _propTypes[\"default\"].string\n}; // Shows play progress\n\nfunction PlayProgressBar(_ref) {\n var currentTime = _ref.currentTime,\n duration = _ref.duration,\n percentage = _ref.percentage,\n className = _ref.className;\n return _react[\"default\"].createElement(\"div\", {\n \"data-current-time\": (0, _utils.formatTime)(currentTime, duration),\n className: (0, _classnames[\"default\"])('video-react-play-progress video-react-slider-bar', className),\n style: {\n width: percentage\n }\n }, _react[\"default\"].createElement(\"span\", {\n className: \"video-react-control-text\"\n }, \"Progress: \".concat(percentage)));\n}\n\nPlayProgressBar.propTypes = propTypes;\nPlayProgressBar.displayName = 'PlayProgressBar';","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = LoadProgressBar;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar propTypes = {\n duration: _propTypes[\"default\"].number,\n buffered: _propTypes[\"default\"].object,\n className: _propTypes[\"default\"].string\n}; // Shows load progress\n\nfunction LoadProgressBar(_ref) {\n var buffered = _ref.buffered,\n duration = _ref.duration,\n className = _ref.className;\n\n if (!buffered || !buffered.length) {\n return null;\n }\n\n var bufferedEnd = buffered.end(buffered.length - 1);\n var style = {};\n\n if (bufferedEnd > duration) {\n bufferedEnd = duration;\n } // get the percent width of a time compared to the total end\n\n\n function percentify(time, end) {\n var percent = time / end || 0; // no NaN\n\n return \"\".concat((percent >= 1 ? 1 : percent) * 100, \"%\");\n } // the width of the progress bar\n\n\n style.width = percentify(bufferedEnd, duration);\n var parts = []; // add child elements to represent the individual buffered time ranges\n\n for (var i = 0; i < buffered.length; i++) {\n var start = buffered.start(i);\n var end = buffered.end(i); // set the percent based on the width of the progress bar (bufferedEnd)\n\n var part = _react[\"default\"].createElement(\"div\", {\n style: {\n left: percentify(start, bufferedEnd),\n width: percentify(end - start, bufferedEnd)\n },\n key: \"part-\".concat(i)\n });\n\n parts.push(part);\n }\n\n if (parts.length === 0) {\n parts = null;\n }\n\n return _react[\"default\"].createElement(\"div\", {\n style: style,\n className: (0, _classnames[\"default\"])('video-react-load-progress', className)\n }, _react[\"default\"].createElement(\"span\", {\n className: \"video-react-control-text\"\n }, \"Loaded: 0%\"), parts);\n}\n\nLoadProgressBar.propTypes = propTypes;\nLoadProgressBar.displayName = 'LoadProgressBar';","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _utils = require(\"../../utils\");\n\nfunction MouseTimeDisplay(_ref) {\n var duration = _ref.duration,\n mouseTime = _ref.mouseTime,\n className = _ref.className,\n text = _ref.text;\n\n if (!mouseTime.time) {\n return null;\n }\n\n var time = text || (0, _utils.formatTime)(mouseTime.time, duration);\n return _react[\"default\"].createElement(\"div\", {\n className: (0, _classnames[\"default\"])('video-react-mouse-display', className),\n style: {\n left: \"\".concat(mouseTime.position, \"px\")\n },\n \"data-current-time\": time\n });\n}\n\nMouseTimeDisplay.propTypes = {\n duration: _propTypes[\"default\"].number,\n mouseTime: _propTypes[\"default\"].object,\n className: _propTypes[\"default\"].string\n};\nMouseTimeDisplay.displayName = 'MouseTimeDisplay';\nvar _default = MouseTimeDisplay;\nexports[\"default\"] = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar propTypes = {\n actions: _propTypes[\"default\"].object,\n player: _propTypes[\"default\"].object,\n className: _propTypes[\"default\"].string\n};\n\nvar PlayToggle =\n/*#__PURE__*/\nfunction (_Component) {\n (0, _inherits2[\"default\"])(PlayToggle, _Component);\n\n function PlayToggle(props, context) {\n var _this;\n\n (0, _classCallCheck2[\"default\"])(this, PlayToggle);\n _this = (0, _possibleConstructorReturn2[\"default\"])(this, (0, _getPrototypeOf2[\"default\"])(PlayToggle).call(this, props, context));\n _this.handleClick = _this.handleClick.bind((0, _assertThisInitialized2[\"default\"])(_this));\n return _this;\n }\n\n (0, _createClass2[\"default\"])(PlayToggle, [{\n key: \"handleClick\",\n value: function handleClick() {\n var _this$props = this.props,\n actions = _this$props.actions,\n player = _this$props.player;\n\n if (player.paused) {\n actions.play();\n } else {\n actions.pause();\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$props2 = this.props,\n player = _this$props2.player,\n className = _this$props2.className;\n var controlText = player.paused ? 'Play' : 'Pause';\n return _react[\"default\"].createElement(\"button\", {\n ref: function ref(c) {\n _this2.button = c;\n },\n className: (0, _classnames[\"default\"])(className, {\n 'video-react-play-control': true,\n 'video-react-control': true,\n 'video-react-button': true,\n 'video-react-paused': player.paused,\n 'video-react-playing': !player.paused\n }),\n type: \"button\",\n tabIndex: \"0\",\n onClick: this.handleClick\n }, _react[\"default\"].createElement(\"span\", {\n className: \"video-react-control-text\"\n }, controlText));\n }\n }]);\n return PlayToggle;\n}(_react.Component);\n\nexports[\"default\"] = PlayToggle;\nPlayToggle.propTypes = propTypes;\nPlayToggle.displayName = 'PlayToggle';","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _ForwardReplayControl = _interopRequireDefault(require(\"./ForwardReplayControl\"));\n\n// Pass mode into parent function\nvar ForwardControl = (0, _ForwardReplayControl[\"default\"])('forward');\nForwardControl.displayName = 'ForwardControl';\nvar _default = ForwardControl;\nexports[\"default\"] = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar propTypes = {\n actions: _propTypes[\"default\"].object,\n className: _propTypes[\"default\"].string,\n seconds: _propTypes[\"default\"].oneOf([5, 10, 30])\n};\nvar defaultProps = {\n seconds: 10\n};\n\nvar _default = function _default(mode) {\n var ForwardReplayControl =\n /*#__PURE__*/\n function (_Component) {\n (0, _inherits2[\"default\"])(ForwardReplayControl, _Component);\n\n function ForwardReplayControl(props, context) {\n var _this;\n\n (0, _classCallCheck2[\"default\"])(this, ForwardReplayControl);\n _this = (0, _possibleConstructorReturn2[\"default\"])(this, (0, _getPrototypeOf2[\"default\"])(ForwardReplayControl).call(this, props, context));\n _this.handleClick = _this.handleClick.bind((0, _assertThisInitialized2[\"default\"])(_this));\n return _this;\n }\n\n (0, _createClass2[\"default\"])(ForwardReplayControl, [{\n key: \"handleClick\",\n value: function handleClick() {\n var _this$props = this.props,\n actions = _this$props.actions,\n seconds = _this$props.seconds; // Depends mode to implement different actions\n\n if (mode === 'forward') {\n actions.forward(seconds);\n } else {\n actions.replay(seconds);\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$props2 = this.props,\n seconds = _this$props2.seconds,\n className = _this$props2.className;\n var classNames = ['video-react-control', 'video-react-button', 'video-react-icon'];\n classNames.push(\"video-react-icon-\".concat(mode, \"-\").concat(seconds), \"video-react-\".concat(mode, \"-control\"));\n\n if (className) {\n classNames.push(className);\n }\n\n return _react[\"default\"].createElement(\"button\", {\n ref: function ref(c) {\n _this2.button = c;\n },\n className: classNames.join(' '),\n type: \"button\",\n onClick: this.handleClick\n }, _react[\"default\"].createElement(\"span\", {\n className: \"video-react-control-text\"\n }, \"\".concat(mode, \" \").concat(seconds, \" seconds\")));\n }\n }]);\n return ForwardReplayControl;\n }(_react.Component);\n\n ForwardReplayControl.propTypes = propTypes;\n ForwardReplayControl.defaultProps = defaultProps;\n return ForwardReplayControl;\n};\n\nexports[\"default\"] = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _ForwardReplayControl = _interopRequireDefault(require(\"./ForwardReplayControl\"));\n\n// Pass mode into parent function\nvar ReplayControl = (0, _ForwardReplayControl[\"default\"])('replay');\nReplayControl.displayName = 'ReplayControl';\nvar _default = ReplayControl;\nexports[\"default\"] = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar propTypes = {\n actions: _propTypes[\"default\"].object,\n player: _propTypes[\"default\"].object,\n className: _propTypes[\"default\"].string\n};\n\nvar FullscreenToggle =\n/*#__PURE__*/\nfunction (_Component) {\n (0, _inherits2[\"default\"])(FullscreenToggle, _Component);\n\n function FullscreenToggle(props, context) {\n var _this;\n\n (0, _classCallCheck2[\"default\"])(this, FullscreenToggle);\n _this = (0, _possibleConstructorReturn2[\"default\"])(this, (0, _getPrototypeOf2[\"default\"])(FullscreenToggle).call(this, props, context));\n _this.handleClick = _this.handleClick.bind((0, _assertThisInitialized2[\"default\"])(_this));\n return _this;\n }\n\n (0, _createClass2[\"default\"])(FullscreenToggle, [{\n key: \"handleClick\",\n value: function handleClick() {\n var _this$props = this.props,\n player = _this$props.player,\n actions = _this$props.actions;\n actions.toggleFullscreen(player);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$props2 = this.props,\n player = _this$props2.player,\n className = _this$props2.className;\n return _react[\"default\"].createElement(\"button\", {\n className: (0, _classnames[\"default\"])(className, {\n 'video-react-icon-fullscreen-exit': player.isFullscreen,\n 'video-react-icon-fullscreen': !player.isFullscreen\n }, 'video-react-fullscreen-control video-react-control video-react-button video-react-icon'),\n ref: function ref(c) {\n _this2.button = c;\n },\n type: \"button\",\n tabIndex: \"0\",\n onClick: this.handleClick\n }, _react[\"default\"].createElement(\"span\", {\n className: \"video-react-control-text\"\n }, \"Non-Fullscreen\"));\n }\n }]);\n return FullscreenToggle;\n}(_react.Component);\n\nexports[\"default\"] = FullscreenToggle;\nFullscreenToggle.propTypes = propTypes;\nFullscreenToggle.displayName = 'FullscreenToggle';","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _utils = require(\"../../utils\");\n\nvar propTypes = {\n player: _propTypes[\"default\"].object,\n className: _propTypes[\"default\"].string\n};\n\nfunction RemainingTimeDisplay(_ref) {\n var _ref$player = _ref.player,\n currentTime = _ref$player.currentTime,\n duration = _ref$player.duration,\n className = _ref.className;\n var remainingTime = duration - currentTime;\n var formattedTime = (0, _utils.formatTime)(remainingTime);\n return _react[\"default\"].createElement(\"div\", {\n className: (0, _classnames[\"default\"])('video-react-remaining-time video-react-time-control video-react-control', className)\n }, _react[\"default\"].createElement(\"div\", {\n className: \"video-react-remaining-time-display\",\n \"aria-live\": \"off\"\n }, _react[\"default\"].createElement(\"span\", {\n className: \"video-react-control-text\"\n }, \"Remaining Time \"), \"-\".concat(formattedTime)));\n}\n\nRemainingTimeDisplay.propTypes = propTypes;\nRemainingTimeDisplay.displayName = 'RemainingTimeDisplay';\nvar _default = RemainingTimeDisplay;\nexports[\"default\"] = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _utils = require(\"../../utils\");\n\nvar propTypes = {\n player: _propTypes[\"default\"].object,\n className: _propTypes[\"default\"].string\n};\n\nfunction CurrentTimeDisplay(_ref) {\n var _ref$player = _ref.player,\n currentTime = _ref$player.currentTime,\n duration = _ref$player.duration,\n className = _ref.className;\n var formattedTime = (0, _utils.formatTime)(currentTime, duration);\n return _react[\"default\"].createElement(\"div\", {\n className: (0, _classnames[\"default\"])('video-react-current-time video-react-time-control video-react-control', className)\n }, _react[\"default\"].createElement(\"div\", {\n className: \"video-react-current-time-display\",\n \"aria-live\": \"off\"\n }, _react[\"default\"].createElement(\"span\", {\n className: \"video-react-control-text\"\n }, \"Current Time \"), formattedTime));\n}\n\nCurrentTimeDisplay.propTypes = propTypes;\nCurrentTimeDisplay.displayName = 'CurrentTimeDisplay';\nvar _default = CurrentTimeDisplay;\nexports[\"default\"] = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _utils = require(\"../../utils\");\n\nvar propTypes = {\n player: _propTypes[\"default\"].object,\n className: _propTypes[\"default\"].string\n};\n\nfunction DurationDisplay(_ref) {\n var duration = _ref.player.duration,\n className = _ref.className;\n var formattedTime = (0, _utils.formatTime)(duration);\n return _react[\"default\"].createElement(\"div\", {\n className: (0, _classnames[\"default\"])(className, 'video-react-duration video-react-time-control video-react-control')\n }, _react[\"default\"].createElement(\"div\", {\n className: \"video-react-duration-display\",\n \"aria-live\": \"off\"\n }, _react[\"default\"].createElement(\"span\", {\n className: \"video-react-control-text\"\n }, \"Duration Time \"), formattedTime));\n}\n\nDurationDisplay.propTypes = propTypes;\nDurationDisplay.displayName = 'DurationDisplay';\nvar _default = DurationDisplay;\nexports[\"default\"] = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = TimeDivider;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar propTypes = {\n separator: _propTypes[\"default\"].string,\n className: _propTypes[\"default\"].string\n};\n\nfunction TimeDivider(_ref) {\n var separator = _ref.separator,\n className = _ref.className;\n var separatorText = separator || '/';\n return _react[\"default\"].createElement(\"div\", {\n className: (0, _classnames[\"default\"])('video-react-time-control video-react-time-divider', className),\n dir: \"ltr\"\n }, _react[\"default\"].createElement(\"div\", null, _react[\"default\"].createElement(\"span\", null, separatorText)));\n}\n\nTimeDivider.propTypes = propTypes;\nTimeDivider.displayName = 'TimeDivider';","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _PopupButton = _interopRequireDefault(require(\"../popup/PopupButton\"));\n\nvar _VolumeBar = _interopRequireDefault(require(\"../volume-control/VolumeBar\"));\n\nvar propTypes = {\n player: _propTypes[\"default\"].object,\n actions: _propTypes[\"default\"].object,\n vertical: _propTypes[\"default\"].bool,\n className: _propTypes[\"default\"].string,\n alwaysShowVolume: _propTypes[\"default\"].bool\n};\nvar defaultProps = {\n vertical: false\n};\n\nvar VolumeMenuButton =\n/*#__PURE__*/\nfunction (_Component) {\n (0, _inherits2[\"default\"])(VolumeMenuButton, _Component);\n\n function VolumeMenuButton(props, context) {\n var _this;\n\n (0, _classCallCheck2[\"default\"])(this, VolumeMenuButton);\n _this = (0, _possibleConstructorReturn2[\"default\"])(this, (0, _getPrototypeOf2[\"default\"])(VolumeMenuButton).call(this, props, context));\n _this.state = {\n active: false\n };\n _this.handleClick = _this.handleClick.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleFocus = _this.handleFocus.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleBlur = _this.handleBlur.bind((0, _assertThisInitialized2[\"default\"])(_this));\n return _this;\n }\n\n (0, _createClass2[\"default\"])(VolumeMenuButton, [{\n key: \"handleClick\",\n value: function handleClick() {\n var _this$props = this.props,\n player = _this$props.player,\n actions = _this$props.actions;\n actions.mute(!player.muted);\n }\n }, {\n key: \"handleFocus\",\n value: function handleFocus() {\n this.setState({\n active: true\n });\n }\n }, {\n key: \"handleBlur\",\n value: function handleBlur() {\n this.setState({\n active: false\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n vertical = _this$props2.vertical,\n player = _this$props2.player,\n className = _this$props2.className;\n var inline = !vertical;\n var level = this.volumeLevel;\n return _react[\"default\"].createElement(_PopupButton[\"default\"], {\n className: (0, _classnames[\"default\"])(className, {\n 'video-react-volume-menu-button-vertical': vertical,\n 'video-react-volume-menu-button-horizontal': !vertical,\n 'video-react-vol-muted': player.muted,\n 'video-react-vol-0': level === 0 && !player.muted,\n 'video-react-vol-1': level === 1,\n 'video-react-vol-2': level === 2,\n 'video-react-vol-3': level === 3,\n 'video-react-slider-active': this.props.alwaysShowVolume || this.state.active,\n 'video-react-lock-showing': this.props.alwaysShowVolume || this.state.active\n }, 'video-react-volume-menu-button'),\n onClick: this.handleClick,\n inline: inline\n }, _react[\"default\"].createElement(_VolumeBar[\"default\"], (0, _extends2[\"default\"])({\n onFocus: this.handleFocus,\n onBlur: this.handleBlur\n }, this.props)));\n }\n }, {\n key: \"volumeLevel\",\n get: function get() {\n var _this$props$player = this.props.player,\n volume = _this$props$player.volume,\n muted = _this$props$player.muted;\n var level = 3;\n\n if (volume === 0 || muted) {\n level = 0;\n } else if (volume < 0.33) {\n level = 1;\n } else if (volume < 0.67) {\n level = 2;\n }\n\n return level;\n }\n }]);\n return VolumeMenuButton;\n}(_react.Component);\n\nVolumeMenuButton.propTypes = propTypes;\nVolumeMenuButton.defaultProps = defaultProps;\nVolumeMenuButton.displayName = 'VolumeMenuButton';\nvar _default = VolumeMenuButton;\nexports[\"default\"] = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _objectSpread2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectSpread\"));\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar propTypes = {\n tagName: _propTypes[\"default\"].string,\n onClick: _propTypes[\"default\"].func.isRequired,\n onFocus: _propTypes[\"default\"].func,\n onBlur: _propTypes[\"default\"].func,\n className: _propTypes[\"default\"].string\n};\nvar defaultProps = {\n tagName: 'div'\n};\n\nvar ClickableComponent =\n/*#__PURE__*/\nfunction (_Component) {\n (0, _inherits2[\"default\"])(ClickableComponent, _Component);\n\n function ClickableComponent(props, context) {\n var _this;\n\n (0, _classCallCheck2[\"default\"])(this, ClickableComponent);\n _this = (0, _possibleConstructorReturn2[\"default\"])(this, (0, _getPrototypeOf2[\"default\"])(ClickableComponent).call(this, props, context));\n _this.handleClick = _this.handleClick.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleFocus = _this.handleFocus.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleBlur = _this.handleBlur.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleKeypress = _this.handleKeypress.bind((0, _assertThisInitialized2[\"default\"])(_this));\n return _this;\n }\n\n (0, _createClass2[\"default\"])(ClickableComponent, [{\n key: \"handleKeypress\",\n value: function handleKeypress(event) {\n // Support Space (32) or Enter (13) key operation to fire a click event\n if (event.which === 32 || event.which === 13) {\n event.preventDefault();\n this.handleClick(event);\n }\n }\n }, {\n key: \"handleClick\",\n value: function handleClick(event) {\n var onClick = this.props.onClick;\n onClick(event);\n }\n }, {\n key: \"handleFocus\",\n value: function handleFocus(e) {\n document.addEventListener('keydown', this.handleKeypress);\n\n if (this.props.onFocus) {\n this.props.onFocus(e);\n }\n }\n }, {\n key: \"handleBlur\",\n value: function handleBlur(e) {\n document.removeEventListener('keydown', this.handleKeypress);\n\n if (this.props.onBlur) {\n this.props.onBlur(e);\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var Tag = this.props.tagName;\n var props = (0, _objectSpread2[\"default\"])({}, this.props);\n delete props.tagName;\n delete props.className;\n return _react[\"default\"].createElement(Tag, (0, _extends2[\"default\"])({\n className: (0, _classnames[\"default\"])(this.props.className),\n role: \"button\",\n tabIndex: \"0\",\n onClick: this.handleClick,\n onFocus: this.handleFocus,\n onBlur: this.handleBlur\n }, props));\n }\n }]);\n return ClickableComponent;\n}(_react.Component);\n\nexports[\"default\"] = ClickableComponent;\nClickableComponent.propTypes = propTypes;\nClickableComponent.defaultProps = defaultProps;\nClickableComponent.displayName = 'ClickableComponent';","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"Player\", {\n enumerable: true,\n get: function get() {\n return _Player[\"default\"];\n }\n});\nObject.defineProperty(exports, \"Video\", {\n enumerable: true,\n get: function get() {\n return _Video[\"default\"];\n }\n});\nObject.defineProperty(exports, \"BigPlayButton\", {\n enumerable: true,\n get: function get() {\n return _BigPlayButton[\"default\"];\n }\n});\nObject.defineProperty(exports, \"LoadingSpinner\", {\n enumerable: true,\n get: function get() {\n return _LoadingSpinner[\"default\"];\n }\n});\nObject.defineProperty(exports, \"PosterImage\", {\n enumerable: true,\n get: function get() {\n return _PosterImage[\"default\"];\n }\n});\nObject.defineProperty(exports, \"Slider\", {\n enumerable: true,\n get: function get() {\n return _Slider[\"default\"];\n }\n});\nObject.defineProperty(exports, \"Bezel\", {\n enumerable: true,\n get: function get() {\n return _Bezel[\"default\"];\n }\n});\nObject.defineProperty(exports, \"Shortcut\", {\n enumerable: true,\n get: function get() {\n return _Shortcut[\"default\"];\n }\n});\nObject.defineProperty(exports, \"ControlBar\", {\n enumerable: true,\n get: function get() {\n return _ControlBar[\"default\"];\n }\n});\nObject.defineProperty(exports, \"PlayToggle\", {\n enumerable: true,\n get: function get() {\n return _PlayToggle[\"default\"];\n }\n});\nObject.defineProperty(exports, \"ForwardControl\", {\n enumerable: true,\n get: function get() {\n return _ForwardControl[\"default\"];\n }\n});\nObject.defineProperty(exports, \"ReplayControl\", {\n enumerable: true,\n get: function get() {\n return _ReplayControl[\"default\"];\n }\n});\nObject.defineProperty(exports, \"FullscreenToggle\", {\n enumerable: true,\n get: function get() {\n return _FullscreenToggle[\"default\"];\n }\n});\nObject.defineProperty(exports, \"ProgressControl\", {\n enumerable: true,\n get: function get() {\n return _ProgressControl[\"default\"];\n }\n});\nObject.defineProperty(exports, \"SeekBar\", {\n enumerable: true,\n get: function get() {\n return _SeekBar[\"default\"];\n }\n});\nObject.defineProperty(exports, \"PlayProgressBar\", {\n enumerable: true,\n get: function get() {\n return _PlayProgressBar[\"default\"];\n }\n});\nObject.defineProperty(exports, \"LoadProgressBar\", {\n enumerable: true,\n get: function get() {\n return _LoadProgressBar[\"default\"];\n }\n});\nObject.defineProperty(exports, \"MouseTimeDisplay\", {\n enumerable: true,\n get: function get() {\n return _MouseTimeDisplay[\"default\"];\n }\n});\nObject.defineProperty(exports, \"VolumeMenuButton\", {\n enumerable: true,\n get: function get() {\n return _VolumeMenuButton[\"default\"];\n }\n});\nObject.defineProperty(exports, \"PlaybackRateMenuButton\", {\n enumerable: true,\n get: function get() {\n return _PlaybackRateMenuButton[\"default\"];\n }\n});\nObject.defineProperty(exports, \"PlaybackRate\", {\n enumerable: true,\n get: function get() {\n return _PlaybackRate[\"default\"];\n }\n});\nObject.defineProperty(exports, \"ClosedCaptionButton\", {\n enumerable: true,\n get: function get() {\n return _ClosedCaptionButton[\"default\"];\n }\n});\nObject.defineProperty(exports, \"RemainingTimeDisplay\", {\n enumerable: true,\n get: function get() {\n return _RemainingTimeDisplay[\"default\"];\n }\n});\nObject.defineProperty(exports, \"CurrentTimeDisplay\", {\n enumerable: true,\n get: function get() {\n return _CurrentTimeDisplay[\"default\"];\n }\n});\nObject.defineProperty(exports, \"DurationDisplay\", {\n enumerable: true,\n get: function get() {\n return _DurationDisplay[\"default\"];\n }\n});\nObject.defineProperty(exports, \"TimeDivider\", {\n enumerable: true,\n get: function get() {\n return _TimeDivider[\"default\"];\n }\n});\nObject.defineProperty(exports, \"MenuButton\", {\n enumerable: true,\n get: function get() {\n return _MenuButton[\"default\"];\n }\n});\nObject.defineProperty(exports, \"playerReducer\", {\n enumerable: true,\n get: function get() {\n return _reducers.playerReducer;\n }\n});\nObject.defineProperty(exports, \"operationReducer\", {\n enumerable: true,\n get: function get() {\n return _reducers.operationReducer;\n }\n});\nexports.videoActions = exports.playerActions = void 0;\n\nvar _Player = _interopRequireDefault(require(\"./components/Player\"));\n\nvar _Video = _interopRequireDefault(require(\"./components/Video\"));\n\nvar _BigPlayButton = _interopRequireDefault(require(\"./components/BigPlayButton\"));\n\nvar _LoadingSpinner = _interopRequireDefault(require(\"./components/LoadingSpinner\"));\n\nvar _PosterImage = _interopRequireDefault(require(\"./components/PosterImage\"));\n\nvar _Slider = _interopRequireDefault(require(\"./components/Slider\"));\n\nvar _Bezel = _interopRequireDefault(require(\"./components/Bezel\"));\n\nvar _Shortcut = _interopRequireDefault(require(\"./components/Shortcut\"));\n\nvar _ControlBar = _interopRequireDefault(require(\"./components/control-bar/ControlBar\"));\n\nvar _PlayToggle = _interopRequireDefault(require(\"./components/control-bar/PlayToggle\"));\n\nvar _ForwardControl = _interopRequireDefault(require(\"./components/control-bar/ForwardControl\"));\n\nvar _ReplayControl = _interopRequireDefault(require(\"./components/control-bar/ReplayControl\"));\n\nvar _FullscreenToggle = _interopRequireDefault(require(\"./components/control-bar/FullscreenToggle\"));\n\nvar _ProgressControl = _interopRequireDefault(require(\"./components/control-bar/ProgressControl\"));\n\nvar _SeekBar = _interopRequireDefault(require(\"./components/control-bar/SeekBar\"));\n\nvar _PlayProgressBar = _interopRequireDefault(require(\"./components/control-bar/PlayProgressBar\"));\n\nvar _LoadProgressBar = _interopRequireDefault(require(\"./components/control-bar/LoadProgressBar\"));\n\nvar _MouseTimeDisplay = _interopRequireDefault(require(\"./components/control-bar/MouseTimeDisplay\"));\n\nvar _VolumeMenuButton = _interopRequireDefault(require(\"./components/control-bar/VolumeMenuButton\"));\n\nvar _PlaybackRateMenuButton = _interopRequireDefault(require(\"./components/control-bar/PlaybackRateMenuButton\"));\n\nvar _PlaybackRate = _interopRequireDefault(require(\"./components/control-bar/PlaybackRate\"));\n\nvar _ClosedCaptionButton = _interopRequireDefault(require(\"./components/control-bar/ClosedCaptionButton\"));\n\nvar _RemainingTimeDisplay = _interopRequireDefault(require(\"./components/time-controls/RemainingTimeDisplay\"));\n\nvar _CurrentTimeDisplay = _interopRequireDefault(require(\"./components/time-controls/CurrentTimeDisplay\"));\n\nvar _DurationDisplay = _interopRequireDefault(require(\"./components/time-controls/DurationDisplay\"));\n\nvar _TimeDivider = _interopRequireDefault(require(\"./components/time-controls/TimeDivider\"));\n\nvar _MenuButton = _interopRequireDefault(require(\"./components/menu/MenuButton\"));\n\nvar playerActions = _interopRequireWildcard(require(\"./actions/player\"));\n\nexports.playerActions = playerActions;\n\nvar videoActions = _interopRequireWildcard(require(\"./actions/video\"));\n\nexports.videoActions = videoActions;\n\nvar _reducers = require(\"./reducers\");","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _objectSpread2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectSpread\"));\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _Manager = _interopRequireDefault(require(\"../Manager\"));\n\nvar _BigPlayButton = _interopRequireDefault(require(\"./BigPlayButton\"));\n\nvar _LoadingSpinner = _interopRequireDefault(require(\"./LoadingSpinner\"));\n\nvar _PosterImage = _interopRequireDefault(require(\"./PosterImage\"));\n\nvar _Video = _interopRequireDefault(require(\"./Video\"));\n\nvar _Bezel = _interopRequireDefault(require(\"./Bezel\"));\n\nvar _Shortcut = _interopRequireDefault(require(\"./Shortcut\"));\n\nvar _ControlBar = _interopRequireDefault(require(\"./control-bar/ControlBar\"));\n\nvar browser = _interopRequireWildcard(require(\"../utils/browser\"));\n\nvar _dom = require(\"../utils/dom\");\n\nvar _utils = require(\"../utils\");\n\nvar _fullscreen = _interopRequireDefault(require(\"../utils/fullscreen\"));\n\nvar propTypes = {\n children: _propTypes[\"default\"].any,\n width: _propTypes[\"default\"].oneOfType([_propTypes[\"default\"].string, _propTypes[\"default\"].number]),\n height: _propTypes[\"default\"].oneOfType([_propTypes[\"default\"].string, _propTypes[\"default\"].number]),\n fluid: _propTypes[\"default\"].bool,\n muted: _propTypes[\"default\"].bool,\n playsInline: _propTypes[\"default\"].bool,\n aspectRatio: _propTypes[\"default\"].string,\n className: _propTypes[\"default\"].string,\n videoId: _propTypes[\"default\"].string,\n startTime: _propTypes[\"default\"].number,\n loop: _propTypes[\"default\"].bool,\n autoPlay: _propTypes[\"default\"].bool,\n src: _propTypes[\"default\"].string,\n poster: _propTypes[\"default\"].string,\n preload: _propTypes[\"default\"].oneOf(['auto', 'metadata', 'none']),\n onLoadStart: _propTypes[\"default\"].func,\n onWaiting: _propTypes[\"default\"].func,\n onCanPlay: _propTypes[\"default\"].func,\n onCanPlayThrough: _propTypes[\"default\"].func,\n onPlaying: _propTypes[\"default\"].func,\n onEnded: _propTypes[\"default\"].func,\n onSeeking: _propTypes[\"default\"].func,\n onSeeked: _propTypes[\"default\"].func,\n onPlay: _propTypes[\"default\"].func,\n onPause: _propTypes[\"default\"].func,\n onProgress: _propTypes[\"default\"].func,\n onDurationChange: _propTypes[\"default\"].func,\n onError: _propTypes[\"default\"].func,\n onSuspend: _propTypes[\"default\"].func,\n onAbort: _propTypes[\"default\"].func,\n onEmptied: _propTypes[\"default\"].func,\n onStalled: _propTypes[\"default\"].func,\n onLoadedMetadata: _propTypes[\"default\"].func,\n onLoadedData: _propTypes[\"default\"].func,\n onTimeUpdate: _propTypes[\"default\"].func,\n onRateChange: _propTypes[\"default\"].func,\n onVolumeChange: _propTypes[\"default\"].func,\n store: _propTypes[\"default\"].object\n};\nvar defaultProps = {\n fluid: true,\n muted: false,\n playsInline: false,\n preload: 'auto',\n aspectRatio: 'auto'\n};\n\nvar Player =\n/*#__PURE__*/\nfunction (_Component) {\n (0, _inherits2[\"default\"])(Player, _Component);\n\n function Player(props) {\n var _this;\n\n (0, _classCallCheck2[\"default\"])(this, Player);\n _this = (0, _possibleConstructorReturn2[\"default\"])(this, (0, _getPrototypeOf2[\"default\"])(Player).call(this, props));\n _this.controlsHideTimer = null;\n _this.video = null; // the Video component\n\n _this.manager = new _Manager[\"default\"](props.store);\n _this.actions = _this.manager.getActions();\n\n _this.manager.subscribeToPlayerStateChange(_this.handleStateChange.bind((0, _assertThisInitialized2[\"default\"])(_this)));\n\n _this.getStyle = _this.getStyle.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleResize = _this.handleResize.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.getChildren = _this.getChildren.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleMouseMove = (0, _utils.throttle)(_this.handleMouseMove.bind((0, _assertThisInitialized2[\"default\"])(_this)), 250);\n _this.handleMouseDown = _this.handleMouseDown.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.startControlsTimer = _this.startControlsTimer.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleFullScreenChange = _this.handleFullScreenChange.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleKeyDown = _this.handleKeyDown.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleFocus = _this.handleFocus.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleBlur = _this.handleBlur.bind((0, _assertThisInitialized2[\"default\"])(_this));\n return _this;\n }\n\n (0, _createClass2[\"default\"])(Player, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.handleResize();\n window.addEventListener('resize', this.handleResize);\n\n _fullscreen[\"default\"].addEventListener(this.handleFullScreenChange);\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n // Remove event listener\n window.removeEventListener('resize', this.handleResize);\n\n _fullscreen[\"default\"].removeEventListener(this.handleFullScreenChange);\n\n if (this.controlsHideTimer) {\n window.clearTimeout(this.controlsHideTimer);\n }\n }\n }, {\n key: \"getDefaultChildren\",\n value: function getDefaultChildren(originalChildren) {\n var _this2 = this;\n\n return [_react[\"default\"].createElement(_Video[\"default\"], {\n ref: function ref(c) {\n _this2.video = c;\n _this2.manager.video = _this2.video;\n },\n key: \"video\",\n order: 0.0\n }, originalChildren), _react[\"default\"].createElement(_PosterImage[\"default\"], {\n key: \"poster-image\",\n order: 1.0\n }), _react[\"default\"].createElement(_LoadingSpinner[\"default\"], {\n key: \"loading-spinner\",\n order: 2.0\n }), _react[\"default\"].createElement(_Bezel[\"default\"], {\n key: \"bezel\",\n order: 3.0\n }), _react[\"default\"].createElement(_BigPlayButton[\"default\"], {\n key: \"big-play-button\",\n order: 4.0\n }), _react[\"default\"].createElement(_ControlBar[\"default\"], {\n key: \"control-bar\",\n order: 5.0\n }), _react[\"default\"].createElement(_Shortcut[\"default\"], {\n key: \"shortcut\",\n order: 99.0\n })];\n }\n }, {\n key: \"getChildren\",\n value: function getChildren(props) {\n var _ = props.className,\n originalChildren = props.children,\n propsWithoutChildren = (0, _objectWithoutProperties2[\"default\"])(props, [\"className\", \"children\"]);\n\n var children = _react[\"default\"].Children.toArray(this.props.children).filter(function (e) {\n return !(0, _utils.isVideoChild)(e);\n });\n\n var defaultChildren = this.getDefaultChildren(originalChildren);\n return (0, _utils.mergeAndSortChildren)(defaultChildren, children, propsWithoutChildren);\n }\n }, {\n key: \"setWidthOrHeight\",\n value: function setWidthOrHeight(style, name, value) {\n var styleVal;\n\n if (typeof value === 'string') {\n if (value === 'auto') {\n styleVal = 'auto';\n } else if (value.match(/\\d+%/)) {\n styleVal = value;\n }\n } else if (typeof value === 'number') {\n styleVal = \"\".concat(value, \"px\");\n }\n\n Object.assign(style, (0, _defineProperty2[\"default\"])({}, name, styleVal));\n }\n }, {\n key: \"getStyle\",\n value: function getStyle() {\n var _this$props = this.props,\n fluid = _this$props.fluid,\n propsAspectRatio = _this$props.aspectRatio,\n propsHeight = _this$props.height,\n propsWidth = _this$props.width;\n\n var _this$manager$getStat = this.manager.getState(),\n player = _this$manager$getStat.player;\n\n var style = {};\n var width;\n var height;\n var aspectRatio; // The aspect ratio is either used directly or to calculate width and height.\n\n if (propsAspectRatio !== undefined && propsAspectRatio !== 'auto') {\n // Use any aspectRatio that's been specifically set\n aspectRatio = propsAspectRatio;\n } else if (player.videoWidth) {\n // Otherwise try to get the aspect ratio from the video metadata\n aspectRatio = \"\".concat(player.videoWidth, \":\").concat(player.videoHeight);\n } else {\n // Or use a default. The video element's is 2:1, but 16:9 is more common.\n aspectRatio = '16:9';\n } // Get the ratio as a decimal we can use to calculate dimensions\n\n\n var ratioParts = aspectRatio.split(':');\n var ratioMultiplier = ratioParts[1] / ratioParts[0];\n\n if (propsWidth !== undefined) {\n // Use any width that's been specifically set\n width = propsWidth;\n } else if (propsHeight !== undefined) {\n // Or calulate the width from the aspect ratio if a height has been set\n width = propsHeight / ratioMultiplier;\n } else {\n // Or use the video's metadata, or use the video el's default of 300\n width = player.videoWidth || 400;\n }\n\n if (propsHeight !== undefined) {\n // Use any height that's been specifically set\n height = propsHeight;\n } else {\n // Otherwise calculate the height from the ratio and the width\n height = width * ratioMultiplier;\n }\n\n if (fluid) {\n style.paddingTop = \"\".concat(ratioMultiplier * 100, \"%\");\n } else {\n // If Width contains \"auto\", set \"auto\" in style\n this.setWidthOrHeight(style, 'width', width);\n this.setWidthOrHeight(style, 'height', height);\n }\n\n return style;\n } // get redux state\n // { player, operation }\n\n }, {\n key: \"getState\",\n value: function getState() {\n return this.manager.getState();\n } // get playback rate\n\n }, {\n key: \"play\",\n // play the video\n value: function play() {\n this.video.play();\n } // pause the video\n\n }, {\n key: \"pause\",\n value: function pause() {\n this.video.pause();\n } // Change the video source and re-load the video:\n\n }, {\n key: \"load\",\n value: function load() {\n this.video.load();\n } // Add a new text track to the video\n\n }, {\n key: \"addTextTrack\",\n value: function addTextTrack() {\n var _this$video;\n\n (_this$video = this.video).addTextTrack.apply(_this$video, arguments);\n } // Check if your browser can play different types of video:\n\n }, {\n key: \"canPlayType\",\n value: function canPlayType() {\n var _this$video2;\n\n (_this$video2 = this.video).canPlayType.apply(_this$video2, arguments);\n } // seek video by time\n\n }, {\n key: \"seek\",\n value: function seek(time) {\n this.video.seek(time);\n } // jump forward x seconds\n\n }, {\n key: \"forward\",\n value: function forward(seconds) {\n this.video.forward(seconds);\n } // jump back x seconds\n\n }, {\n key: \"replay\",\n value: function replay(seconds) {\n this.video.replay(seconds);\n } // enter or exist full screen\n\n }, {\n key: \"toggleFullscreen\",\n value: function toggleFullscreen() {\n this.video.toggleFullscreen();\n } // subscribe to player state change\n\n }, {\n key: \"subscribeToStateChange\",\n value: function subscribeToStateChange(listener) {\n return this.manager.subscribeToPlayerStateChange(listener);\n } // player resize\n\n }, {\n key: \"handleResize\",\n value: function handleResize() {}\n }, {\n key: \"handleFullScreenChange\",\n value: function handleFullScreenChange(event) {\n if (event.target === this.manager.rootElement) {\n this.actions.handleFullscreenChange(_fullscreen[\"default\"].isFullscreen);\n }\n }\n }, {\n key: \"handleMouseDown\",\n value: function handleMouseDown() {\n this.startControlsTimer();\n }\n }, {\n key: \"handleMouseMove\",\n value: function handleMouseMove() {\n this.startControlsTimer();\n }\n }, {\n key: \"handleKeyDown\",\n value: function handleKeyDown() {\n this.startControlsTimer();\n }\n }, {\n key: \"startControlsTimer\",\n value: function startControlsTimer() {\n var _this3 = this;\n\n var controlBarActiveTime = 3000;\n\n _react[\"default\"].Children.forEach(this.props.children, function (element) {\n if (!_react[\"default\"].isValidElement(element) || element.type !== _ControlBar[\"default\"]) {\n return;\n }\n\n var autoHideTime = element.props.autoHideTime;\n\n if (typeof autoHideTime === 'number') {\n controlBarActiveTime = autoHideTime;\n }\n });\n\n this.actions.userActivate(true);\n clearTimeout(this.controlsHideTimer);\n this.controlsHideTimer = setTimeout(function () {\n _this3.actions.userActivate(false);\n }, controlBarActiveTime);\n }\n }, {\n key: \"handleStateChange\",\n value: function handleStateChange(state, prevState) {\n if (state.isFullscreen !== prevState.isFullscreen) {\n this.handleResize(); // focus root when switching fullscreen mode to avoid confusion #276\n\n (0, _dom.focusNode)(this.manager.rootElement);\n }\n\n this.forceUpdate(); // re-render\n }\n }, {\n key: \"handleFocus\",\n value: function handleFocus() {\n this.actions.activate(true);\n }\n }, {\n key: \"handleBlur\",\n value: function handleBlur() {\n this.actions.activate(false);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this4 = this;\n\n var fluid = this.props.fluid;\n\n var _this$manager$getStat2 = this.manager.getState(),\n player = _this$manager$getStat2.player;\n\n var paused = player.paused,\n hasStarted = player.hasStarted,\n waiting = player.waiting,\n seeking = player.seeking,\n isFullscreen = player.isFullscreen,\n userActivity = player.userActivity;\n var props = (0, _objectSpread2[\"default\"])({}, this.props, {\n player: player,\n actions: this.actions,\n manager: this.manager,\n store: this.manager.store,\n video: this.video ? this.video.video : null\n });\n var children = this.getChildren(props);\n return _react[\"default\"].createElement(\"div\", {\n className: (0, _classnames[\"default\"])({\n 'video-react-controls-enabled': true,\n 'video-react-has-started': hasStarted,\n 'video-react-paused': paused,\n 'video-react-playing': !paused,\n 'video-react-waiting': waiting,\n 'video-react-seeking': seeking,\n 'video-react-fluid': fluid,\n 'video-react-fullscreen': isFullscreen,\n 'video-react-user-inactive': !userActivity,\n 'video-react-user-active': userActivity,\n 'video-react-workinghover': !browser.IS_IOS\n }, 'video-react', this.props.className),\n style: this.getStyle(),\n ref: function ref(c) {\n _this4.manager.rootElement = c;\n },\n role: \"region\",\n onTouchStart: this.handleMouseDown,\n onMouseDown: this.handleMouseDown,\n onTouchMove: this.handleMouseMove,\n onMouseMove: this.handleMouseMove,\n onKeyDown: this.handleKeyDown,\n onFocus: this.handleFocus,\n onBlur: this.handleBlur,\n tabIndex: \"-1\"\n }, children);\n }\n }, {\n key: \"playbackRate\",\n get: function get() {\n return this.video.playbackRate;\n } // set playback rate\n // speed of video\n ,\n set: function set(rate) {\n this.video.playbackRate = rate;\n }\n }, {\n key: \"muted\",\n get: function get() {\n return this.video.muted;\n },\n set: function set(val) {\n this.video.muted = val;\n }\n }, {\n key: \"volume\",\n get: function get() {\n return this.video.volume;\n },\n set: function set(val) {\n this.video.volume = val;\n } // video width\n\n }, {\n key: \"videoWidth\",\n get: function get() {\n return this.video.videoWidth;\n } // video height\n\n }, {\n key: \"videoHeight\",\n get: function get() {\n return this.video.videoHeight;\n }\n }]);\n return Player;\n}(_react.Component);\n\nexports[\"default\"] = Player;\nPlayer.contextTypes = {\n store: _propTypes[\"default\"].object\n};\nPlayer.propTypes = propTypes;\nPlayer.defaultProps = defaultProps;\nPlayer.displayName = 'Player';","function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nmodule.exports = _objectWithoutPropertiesLoose;","function _typeof2(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof2(obj); }\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return _typeof2(obj);\n };\n } else {\n module.exports = _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\n };\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _objectSpread2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectSpread\"));\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _redux = require(\"redux\");\n\nvar _reducers = _interopRequireDefault(require(\"./reducers\"));\n\nvar playerActions = _interopRequireWildcard(require(\"./actions/player\"));\n\nvar videoActions = _interopRequireWildcard(require(\"./actions/video\"));\n\nvar Manager =\n/*#__PURE__*/\nfunction () {\n function Manager(store) {\n (0, _classCallCheck2[\"default\"])(this, Manager);\n this.store = store || (0, _redux.createStore)(_reducers[\"default\"]);\n this.video = null;\n this.rootElement = null;\n }\n\n (0, _createClass2[\"default\"])(Manager, [{\n key: \"getActions\",\n value: function getActions() {\n var manager = this;\n var dispatch = this.store.dispatch;\n var actions = (0, _objectSpread2[\"default\"])({}, playerActions, videoActions);\n\n function bindActionCreator(actionCreator) {\n return function bindAction() {\n // eslint-disable-next-line prefer-rest-params\n var action = actionCreator.apply(manager, arguments);\n\n if (typeof action !== 'undefined') {\n dispatch(action);\n }\n };\n }\n\n return Object.keys(actions).filter(function (key) {\n return typeof actions[key] === 'function';\n }).reduce(function (boundActions, key) {\n boundActions[key] = bindActionCreator(actions[key]);\n return boundActions;\n }, {});\n }\n }, {\n key: \"getState\",\n value: function getState() {\n return this.store.getState();\n } // subscribe state change\n\n }, {\n key: \"subscribeToStateChange\",\n value: function subscribeToStateChange(listener, getState) {\n if (!getState) {\n getState = this.getState.bind(this);\n }\n\n var prevState = getState();\n\n var handleChange = function handleChange() {\n var state = getState();\n\n if (state === prevState) {\n return;\n }\n\n var prevStateCopy = prevState;\n prevState = state;\n listener(state, prevStateCopy);\n };\n\n return this.store.subscribe(handleChange);\n } // subscribe to operation state change\n\n }, {\n key: \"subscribeToOperationStateChange\",\n value: function subscribeToOperationStateChange(listener) {\n var _this = this;\n\n return this.subscribeToStateChange(listener, function () {\n return _this.getState().operation;\n });\n } // subscribe to player state change\n\n }, {\n key: \"subscribeToPlayerStateChange\",\n value: function subscribeToPlayerStateChange(listener) {\n var _this2 = this;\n\n return this.subscribeToStateChange(listener, function () {\n return _this2.getState().player;\n });\n }\n }]);\n return Manager;\n}();\n\nexports[\"default\"] = Manager;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = player;\n\nvar _objectSpread2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectSpread\"));\n\nvar _video = require(\"../actions/video\");\n\nvar _player = require(\"../actions/player\");\n\nvar initialState = {\n currentSrc: null,\n duration: 0,\n currentTime: 0,\n seekingTime: 0,\n buffered: null,\n waiting: false,\n seeking: false,\n paused: true,\n autoPaused: false,\n ended: false,\n playbackRate: 1,\n muted: false,\n volume: 1,\n readyState: 0,\n networkState: 0,\n videoWidth: 0,\n videoHeight: 0,\n hasStarted: false,\n userActivity: true,\n isActive: false,\n isFullscreen: false,\n activeTextTrack: null\n};\n\nfunction player() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState;\n var action = arguments.length > 1 ? arguments[1] : undefined;\n\n switch (action.type) {\n case _player.USER_ACTIVATE:\n return (0, _objectSpread2[\"default\"])({}, state, {\n userActivity: action.activity\n });\n\n case _player.PLAYER_ACTIVATE:\n return (0, _objectSpread2[\"default\"])({}, state, {\n isActive: action.activity\n });\n\n case _player.FULLSCREEN_CHANGE:\n return (0, _objectSpread2[\"default\"])({}, state, {\n isFullscreen: !!action.isFullscreen\n });\n\n case _video.SEEKING_TIME:\n return (0, _objectSpread2[\"default\"])({}, state, {\n seekingTime: action.time\n });\n\n case _video.END_SEEKING:\n return (0, _objectSpread2[\"default\"])({}, state, {\n seekingTime: 0\n });\n\n case _video.LOAD_START:\n return (0, _objectSpread2[\"default\"])({}, state, action.videoProps, {\n hasStarted: false,\n ended: false\n });\n\n case _video.CAN_PLAY:\n return (0, _objectSpread2[\"default\"])({}, state, action.videoProps, {\n waiting: false\n });\n\n case _video.WAITING:\n return (0, _objectSpread2[\"default\"])({}, state, action.videoProps, {\n waiting: true\n });\n\n case _video.CAN_PLAY_THROUGH:\n case _video.PLAYING:\n return (0, _objectSpread2[\"default\"])({}, state, action.videoProps, {\n waiting: false\n });\n\n case _video.PLAY:\n return (0, _objectSpread2[\"default\"])({}, state, action.videoProps, {\n ended: false,\n paused: false,\n autoPaused: false,\n waiting: false,\n hasStarted: true\n });\n\n case _video.PAUSE:\n return (0, _objectSpread2[\"default\"])({}, state, action.videoProps, {\n paused: true\n });\n\n case _video.END:\n return (0, _objectSpread2[\"default\"])({}, state, action.videoProps, {\n ended: true\n });\n\n case _video.SEEKING:\n return (0, _objectSpread2[\"default\"])({}, state, action.videoProps, {\n seeking: true\n });\n\n case _video.SEEKED:\n return (0, _objectSpread2[\"default\"])({}, state, action.videoProps, {\n seeking: false\n });\n\n case _video.ERROR:\n return (0, _objectSpread2[\"default\"])({}, state, action.videoProps, {\n error: 'UNKNOWN ERROR',\n ended: true\n });\n\n case _video.DURATION_CHANGE:\n case _video.TIME_UPDATE:\n case _video.VOLUME_CHANGE:\n case _video.PROGRESS_CHANGE:\n case _video.RATE_CHANGE:\n case _video.SUSPEND:\n case _video.ABORT:\n case _video.EMPTIED:\n case _video.STALLED:\n case _video.LOADED_META_DATA:\n case _video.LOADED_DATA:\n case _video.RESIZE:\n return (0, _objectSpread2[\"default\"])({}, state, action.videoProps);\n\n case _video.ACTIVATE_TEXT_TRACK:\n return (0, _objectSpread2[\"default\"])({}, state, {\n activeTextTrack: action.textTrack\n });\n\n default:\n return state;\n }\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = operation;\n\nvar _objectSpread2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectSpread\"));\n\nvar _player = require(\"../actions/player\");\n\nvar initialState = {\n count: 0,\n operation: {\n action: '',\n source: ''\n }\n};\n\nfunction operation() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState;\n var action = arguments.length > 1 ? arguments[1] : undefined;\n\n switch (action.type) {\n case _player.OPERATE:\n return (0, _objectSpread2[\"default\"])({}, state, {\n count: state.count + 1,\n operation: (0, _objectSpread2[\"default\"])({}, state.operation, action.operation)\n });\n\n default:\n return state;\n }\n}","function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n }\n}\n\nmodule.exports = _arrayWithoutHoles;","function _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nmodule.exports = _iterableToArray;","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\nmodule.exports = _nonIterableSpread;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = PopupButton;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _objectSpread2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectSpread\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _ClickableComponent = _interopRequireDefault(require(\"../ClickableComponent\"));\n\nvar _Popup = _interopRequireDefault(require(\"./Popup\"));\n\nvar propTypes = {\n inline: _propTypes[\"default\"].bool,\n onClick: _propTypes[\"default\"].func.isRequired,\n onFocus: _propTypes[\"default\"].func,\n onBlur: _propTypes[\"default\"].func,\n className: _propTypes[\"default\"].string\n};\nvar defaultProps = {\n inline: true\n};\n\nfunction PopupButton(props) {\n var inline = props.inline,\n className = props.className;\n var ps = (0, _objectSpread2[\"default\"])({}, props);\n delete ps.children;\n delete ps.inline;\n delete ps.className;\n return _react[\"default\"].createElement(_ClickableComponent[\"default\"], (0, _extends2[\"default\"])({\n className: (0, _classnames[\"default\"])(className, {\n 'video-react-menu-button-inline': !!inline,\n 'video-react-menu-button-popup': !inline\n }, 'video-react-control video-react-button video-react-menu-button')\n }, ps), _react[\"default\"].createElement(_Popup[\"default\"], props));\n}\n\nPopupButton.propTypes = propTypes;\nPopupButton.defaultProps = defaultProps;\nPopupButton.displayName = 'PopupButton';","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar propTypes = {\n player: _propTypes[\"default\"].object,\n children: _propTypes[\"default\"].any\n};\n\nvar Popup =\n/*#__PURE__*/\nfunction (_Component) {\n (0, _inherits2[\"default\"])(Popup, _Component);\n\n function Popup(props, context) {\n var _this;\n\n (0, _classCallCheck2[\"default\"])(this, Popup);\n _this = (0, _possibleConstructorReturn2[\"default\"])(this, (0, _getPrototypeOf2[\"default\"])(Popup).call(this, props, context));\n _this.handleClick = _this.handleClick.bind((0, _assertThisInitialized2[\"default\"])(_this));\n return _this;\n }\n\n (0, _createClass2[\"default\"])(Popup, [{\n key: \"handleClick\",\n value: function handleClick(event) {\n event.preventDefault(); // event.stopPropagation();\n }\n }, {\n key: \"render\",\n value: function render() {\n var children = this.props.children;\n return _react[\"default\"].createElement(\"div\", {\n className: \"video-react-menu\",\n onClick: this.handleClick\n }, _react[\"default\"].createElement(\"div\", {\n className: \"video-react-menu-content\"\n }, children));\n }\n }]);\n return Popup;\n}(_react.Component);\n\nexports[\"default\"] = Popup;\nPopup.propTypes = propTypes;\nPopup.displayName = 'Popup';","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _Slider = _interopRequireDefault(require(\"../Slider\"));\n\nvar _VolumeLevel = _interopRequireDefault(require(\"./VolumeLevel\"));\n\nvar propTypes = {\n actions: _propTypes[\"default\"].object,\n player: _propTypes[\"default\"].object,\n className: _propTypes[\"default\"].string,\n onFocus: _propTypes[\"default\"].func,\n onBlur: _propTypes[\"default\"].func\n};\n\nvar VolumeBar =\n/*#__PURE__*/\nfunction (_Component) {\n (0, _inherits2[\"default\"])(VolumeBar, _Component);\n\n function VolumeBar(props, context) {\n var _this;\n\n (0, _classCallCheck2[\"default\"])(this, VolumeBar);\n _this = (0, _possibleConstructorReturn2[\"default\"])(this, (0, _getPrototypeOf2[\"default\"])(VolumeBar).call(this, props, context));\n _this.state = {\n percentage: '0%'\n };\n _this.handleMouseMove = _this.handleMouseMove.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handlePercentageChange = _this.handlePercentageChange.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.checkMuted = _this.checkMuted.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.getPercent = _this.getPercent.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.stepForward = _this.stepForward.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.stepBack = _this.stepBack.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleFocus = _this.handleFocus.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleBlur = _this.handleBlur.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleClick = _this.handleClick.bind((0, _assertThisInitialized2[\"default\"])(_this));\n return _this;\n }\n\n (0, _createClass2[\"default\"])(VolumeBar, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {}\n }, {\n key: \"getPercent\",\n value: function getPercent() {\n var player = this.props.player;\n\n if (player.muted) {\n return 0;\n }\n\n return player.volume;\n }\n }, {\n key: \"checkMuted\",\n value: function checkMuted() {\n var _this$props = this.props,\n player = _this$props.player,\n actions = _this$props.actions;\n\n if (player.muted) {\n actions.mute(false);\n }\n }\n }, {\n key: \"handleMouseMove\",\n value: function handleMouseMove(event) {\n var actions = this.props.actions;\n this.checkMuted();\n var distance = this.slider.calculateDistance(event);\n actions.changeVolume(distance);\n }\n }, {\n key: \"stepForward\",\n value: function stepForward() {\n var _this$props2 = this.props,\n player = _this$props2.player,\n actions = _this$props2.actions;\n this.checkMuted();\n actions.changeVolume(player.volume + 0.1);\n }\n }, {\n key: \"stepBack\",\n value: function stepBack() {\n var _this$props3 = this.props,\n player = _this$props3.player,\n actions = _this$props3.actions;\n this.checkMuted();\n actions.changeVolume(player.volume - 0.1);\n }\n }, {\n key: \"handleFocus\",\n value: function handleFocus(e) {\n if (this.props.onFocus) {\n this.props.onFocus(e);\n }\n }\n }, {\n key: \"handleBlur\",\n value: function handleBlur(e) {\n if (this.props.onBlur) {\n this.props.onBlur(e);\n }\n }\n }, {\n key: \"handlePercentageChange\",\n value: function handlePercentageChange(percentage) {\n if (percentage !== this.state.percentage) {\n this.setState({\n percentage: percentage\n });\n }\n }\n }, {\n key: \"handleClick\",\n value: function handleClick(event) {\n event.stopPropagation();\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$props4 = this.props,\n player = _this$props4.player,\n className = _this$props4.className;\n var volume = (player.volume * 100).toFixed(2);\n return _react[\"default\"].createElement(_Slider[\"default\"], (0, _extends2[\"default\"])({\n ref: function ref(c) {\n _this2.slider = c;\n },\n label: \"volume level\",\n valuenow: volume,\n valuetext: \"\".concat(volume, \"%\"),\n onMouseMove: this.handleMouseMove,\n onFocus: this.handleFocus,\n onBlur: this.handleBlur,\n onClick: this.handleClick,\n sliderActive: this.handleFocus,\n sliderInactive: this.handleBlur,\n getPercent: this.getPercent,\n onPercentageChange: this.handlePercentageChange,\n stepForward: this.stepForward,\n stepBack: this.stepBack\n }, this.props, {\n className: (0, _classnames[\"default\"])(className, 'video-react-volume-bar video-react-slider-bar')\n }), _react[\"default\"].createElement(_VolumeLevel[\"default\"], this.props));\n }\n }]);\n return VolumeBar;\n}(_react.Component);\n\nVolumeBar.propTypes = propTypes;\nVolumeBar.displayName = 'VolumeBar';\nvar _default = VolumeBar;\nexports[\"default\"] = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar propTypes = {\n percentage: _propTypes[\"default\"].string,\n vertical: _propTypes[\"default\"].bool,\n className: _propTypes[\"default\"].string\n};\nvar defaultProps = {\n percentage: '100%',\n vertical: false\n};\n\nfunction VolumeLevel(_ref) {\n var percentage = _ref.percentage,\n vertical = _ref.vertical,\n className = _ref.className;\n var style = {};\n\n if (vertical) {\n style.height = percentage;\n } else {\n style.width = percentage;\n }\n\n return _react[\"default\"].createElement(\"div\", {\n className: (0, _classnames[\"default\"])(className, 'video-react-volume-level'),\n style: style\n }, _react[\"default\"].createElement(\"span\", {\n className: \"video-react-control-text\"\n }));\n}\n\nVolumeLevel.propTypes = propTypes;\nVolumeLevel.defaultProps = defaultProps;\nVolumeLevel.displayName = 'VolumeLevel';\nvar _default = VolumeLevel;\nexports[\"default\"] = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar propTypes = {\n children: _propTypes[\"default\"].any\n};\n\nvar Menu =\n/*#__PURE__*/\nfunction (_Component) {\n (0, _inherits2[\"default\"])(Menu, _Component);\n\n function Menu(props, context) {\n var _this;\n\n (0, _classCallCheck2[\"default\"])(this, Menu);\n _this = (0, _possibleConstructorReturn2[\"default\"])(this, (0, _getPrototypeOf2[\"default\"])(Menu).call(this, props, context));\n _this.handleClick = _this.handleClick.bind((0, _assertThisInitialized2[\"default\"])(_this));\n return _this;\n }\n\n (0, _createClass2[\"default\"])(Menu, [{\n key: \"handleClick\",\n value: function handleClick(event) {\n event.preventDefault(); // event.stopPropagation();\n }\n }, {\n key: \"render\",\n value: function render() {\n return _react[\"default\"].createElement(\"div\", {\n className: \"video-react-menu video-react-lock-showing\",\n role: \"presentation\",\n onClick: this.handleClick\n }, _react[\"default\"].createElement(\"ul\", {\n className: \"video-react-menu-content\"\n }, this.props.children));\n }\n }]);\n return Menu;\n}(_react.Component);\n\nexports[\"default\"] = Menu;\nMenu.propTypes = propTypes;\nMenu.displayName = 'Menu';","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar propTypes = {\n item: _propTypes[\"default\"].object,\n index: _propTypes[\"default\"].number,\n activateIndex: _propTypes[\"default\"].number,\n onSelectItem: _propTypes[\"default\"].func\n};\n\nvar MenuItem =\n/*#__PURE__*/\nfunction (_Component) {\n (0, _inherits2[\"default\"])(MenuItem, _Component);\n\n function MenuItem(props, context) {\n var _this;\n\n (0, _classCallCheck2[\"default\"])(this, MenuItem);\n _this = (0, _possibleConstructorReturn2[\"default\"])(this, (0, _getPrototypeOf2[\"default\"])(MenuItem).call(this, props, context));\n _this.handleClick = _this.handleClick.bind((0, _assertThisInitialized2[\"default\"])(_this));\n return _this;\n }\n\n (0, _createClass2[\"default\"])(MenuItem, [{\n key: \"handleClick\",\n value: function handleClick() {\n var _this$props = this.props,\n index = _this$props.index,\n onSelectItem = _this$props.onSelectItem;\n onSelectItem(index);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n item = _this$props2.item,\n index = _this$props2.index,\n activateIndex = _this$props2.activateIndex;\n return _react[\"default\"].createElement(\"li\", {\n className: (0, _classnames[\"default\"])({\n 'video-react-menu-item': true,\n 'video-react-selected': index === activateIndex\n }),\n role: \"menuitem\",\n onClick: this.handleClick\n }, item.label, _react[\"default\"].createElement(\"span\", {\n className: \"video-react-control-text\"\n }));\n }\n }]);\n return MenuItem;\n}(_react.Component);\n\nexports[\"default\"] = MenuItem;\nMenuItem.propTypes = propTypes;\nMenuItem.displayName = 'MenuItem';","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.IS_IOS = exports.IS_IPOD = exports.IS_IPHONE = exports.IS_IPAD = void 0;\nvar USER_AGENT = typeof window !== 'undefined' && window.navigator ? window.navigator.userAgent : ''; // const webkitVersionMap = (/AppleWebKit\\/([\\d.]+)/i).exec(USER_AGENT);\n// const appleWebkitVersion = webkitVersionMap ? parseFloat(webkitVersionMap.pop()) : null;\n\n/*\n * Device is an iPhone\n *\n * @type {Boolean}\n * @constant\n * @private\n */\n\nvar IS_IPAD = /iPad/i.test(USER_AGENT); // The Facebook app's UIWebView identifies as both an iPhone and iPad, so\n// to identify iPhones, we need to exclude iPads.\n// http://artsy.github.io/blog/2012/10/18/the-perils-of-ios-user-agent-sniffing/\n\nexports.IS_IPAD = IS_IPAD;\nvar IS_IPHONE = /iPhone/i.test(USER_AGENT) && !IS_IPAD;\nexports.IS_IPHONE = IS_IPHONE;\nvar IS_IPOD = /iPod/i.test(USER_AGENT);\nexports.IS_IPOD = IS_IPOD;\nvar IS_IOS = IS_IPHONE || IS_IPAD || IS_IPOD;\nexports.IS_IOS = IS_IOS;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _PlaybackRateMenuButton = _interopRequireDefault(require(\"./PlaybackRateMenuButton\"));\n\nvar _utils = require(\"../../utils\");\n\nvar PlaybackRate =\n/*#__PURE__*/\nfunction (_Component) {\n (0, _inherits2[\"default\"])(PlaybackRate, _Component);\n\n function PlaybackRate(props, context) {\n var _this;\n\n (0, _classCallCheck2[\"default\"])(this, PlaybackRate);\n _this = (0, _possibleConstructorReturn2[\"default\"])(this, (0, _getPrototypeOf2[\"default\"])(PlaybackRate).call(this, props, context));\n (0, _utils.deprecatedWarning)('PlaybackRate', 'PlaybackRateMenuButton');\n return _this;\n }\n\n (0, _createClass2[\"default\"])(PlaybackRate, [{\n key: \"render\",\n value: function render() {\n return _react[\"default\"].createElement(_PlaybackRateMenuButton[\"default\"], this.props);\n }\n }]);\n return PlaybackRate;\n}(_react.Component);\n\nexports[\"default\"] = PlaybackRate;\nPlaybackRate.displayName = 'PlaybackRate';","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _MenuButton = _interopRequireDefault(require(\"../menu/MenuButton\"));\n\nvar propTypes = {\n player: _propTypes[\"default\"].object,\n actions: _propTypes[\"default\"].object,\n className: _propTypes[\"default\"].string,\n offMenuText: _propTypes[\"default\"].string,\n showOffMenu: _propTypes[\"default\"].bool,\n kinds: _propTypes[\"default\"].array\n};\nvar defaultProps = {\n offMenuText: 'Off',\n showOffMenu: true,\n kinds: ['captions', 'subtitles'] // `kind`s of TextTrack to look for to associate it with this menu.\n\n};\n\nvar ClosedCaptionButton =\n/*#__PURE__*/\nfunction (_Component) {\n (0, _inherits2[\"default\"])(ClosedCaptionButton, _Component);\n\n function ClosedCaptionButton(props, context) {\n var _this;\n\n (0, _classCallCheck2[\"default\"])(this, ClosedCaptionButton);\n _this = (0, _possibleConstructorReturn2[\"default\"])(this, (0, _getPrototypeOf2[\"default\"])(ClosedCaptionButton).call(this, props, context));\n _this.getTextTrackItems = _this.getTextTrackItems.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.updateState = _this.updateState.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleSelectItem = _this.handleSelectItem.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.state = _this.getTextTrackItems();\n return _this;\n }\n\n (0, _createClass2[\"default\"])(ClosedCaptionButton, [{\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.updateState();\n }\n }, {\n key: \"getTextTrackItems\",\n value: function getTextTrackItems() {\n var _this$props = this.props,\n kinds = _this$props.kinds,\n player = _this$props.player,\n offMenuText = _this$props.offMenuText,\n showOffMenu = _this$props.showOffMenu;\n var textTracks = player.textTracks,\n activeTextTrack = player.activeTextTrack;\n var textTrackItems = {\n items: [],\n selectedIndex: 0\n };\n var tracks = Array.from(textTracks || []);\n\n if (tracks.length === 0) {\n return textTrackItems;\n }\n\n if (showOffMenu) {\n textTrackItems.items.push({\n label: offMenuText || 'Off',\n value: null\n });\n }\n\n tracks.forEach(function (textTrack) {\n // ignore invalid text track kind\n if (kinds.length && !kinds.includes(textTrack.kind)) {\n return;\n }\n\n textTrackItems.items.push({\n label: textTrack.label,\n value: textTrack.language\n });\n });\n textTrackItems.selectedIndex = textTrackItems.items.findIndex(function (item) {\n return activeTextTrack && activeTextTrack.language === item.value;\n });\n\n if (textTrackItems.selectedIndex === -1) {\n textTrackItems.selectedIndex = 0;\n }\n\n return textTrackItems;\n }\n }, {\n key: \"updateState\",\n value: function updateState() {\n var textTrackItems = this.getTextTrackItems();\n\n if (textTrackItems.selectedIndex !== this.state.selectedIndex || !this.textTrackItemsAreEqual(textTrackItems.items, this.state.items)) {\n this.setState(textTrackItems);\n }\n }\n }, {\n key: \"textTrackItemsAreEqual\",\n value: function textTrackItemsAreEqual(items1, items2) {\n if (items1.length !== items2.length) {\n return false;\n }\n\n for (var i = 0; i < items1.length; i++) {\n if (!items2[i] || items1[i].label !== items2[i].label || items1[i].value !== items2[i].value) {\n return false;\n }\n }\n\n return true;\n }\n }, {\n key: \"handleSelectItem\",\n value: function handleSelectItem(index) {\n var _this$props2 = this.props,\n player = _this$props2.player,\n actions = _this$props2.actions,\n showOffMenu = _this$props2.showOffMenu;\n var textTracks = player.textTracks; // For the 'subtitles-off' button, the first condition will never match\n // so all subtitles will be turned off\n\n Array.from(textTracks).forEach(function (textTrack, i) {\n // if it shows the `Off` menu, the first item is `Off`\n if (index === (showOffMenu ? i + 1 : i)) {\n textTrack.mode = 'showing';\n actions.activateTextTrack(textTrack);\n } else {\n textTrack.mode = 'hidden';\n }\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$state = this.state,\n items = _this$state.items,\n selectedIndex = _this$state.selectedIndex;\n return _react[\"default\"].createElement(_MenuButton[\"default\"], {\n className: (0, _classnames[\"default\"])('video-react-closed-caption', this.props.className),\n onSelectItem: this.handleSelectItem,\n items: items,\n selectedIndex: selectedIndex\n }, _react[\"default\"].createElement(\"span\", {\n className: \"video-react-control-text\"\n }, \"Closed Caption\"));\n }\n }]);\n return ClosedCaptionButton;\n}(_react.Component);\n\nClosedCaptionButton.propTypes = propTypes;\nClosedCaptionButton.defaultProps = defaultProps;\nClosedCaptionButton.displayName = 'ClosedCaptionButton';\nvar _default = ClosedCaptionButton;\nexports[\"default\"] = _default;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactSwipeable = require('react-swipeable');\n\nvar _lodash = require('lodash.throttle');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nvar _lodash3 = require('lodash.debounce');\n\nvar _lodash4 = _interopRequireDefault(_lodash3);\n\nvar _resizeObserverPolyfill = require('resize-observer-polyfill');\n\nvar _resizeObserverPolyfill2 = _interopRequireDefault(_resizeObserverPolyfill);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar screenChangeEvents = ['fullscreenchange', 'MSFullscreenChange', 'mozfullscreenchange', 'webkitfullscreenchange'];\n\nvar ImageGallery = function (_React$Component) {\n _inherits(ImageGallery, _React$Component);\n\n function ImageGallery(props) {\n _classCallCheck(this, ImageGallery);\n\n var _this = _possibleConstructorReturn(this, (ImageGallery.__proto__ || Object.getPrototypeOf(ImageGallery)).call(this, props));\n\n _this.slideToIndex = function (index, event) {\n var _this$state = _this.state,\n currentIndex = _this$state.currentIndex,\n isTransitioning = _this$state.isTransitioning;\n\n\n if (!isTransitioning) {\n if (event) {\n if (_this._intervalId) {\n // user triggered event while ImageGallery is playing, reset interval\n _this.pause(false);\n _this.play(false);\n }\n }\n\n var slideCount = _this.props.items.length - 1;\n var nextIndex = index;\n\n if (index < 0) {\n nextIndex = slideCount;\n } else if (index > slideCount) {\n nextIndex = 0;\n }\n\n _this.setState({\n previousIndex: currentIndex,\n currentIndex: nextIndex,\n isTransitioning: nextIndex !== currentIndex,\n offsetPercentage: 0,\n style: {\n transition: 'all ' + _this.props.slideDuration + 'ms ease-out'\n }\n }, _this._onSliding);\n }\n };\n\n _this._onSliding = function () {\n var isTransitioning = _this.state.isTransitioning;\n\n _this._transitionTimer = window.setTimeout(function () {\n if (isTransitioning) {\n _this.setState({ isTransitioning: !isTransitioning });\n if (_this.props.onSlide) {\n _this.props.onSlide(_this.state.currentIndex);\n }\n }\n }, _this.props.slideDuration + 50);\n };\n\n _this._handleScreenChange = function () {\n /*\n handles screen change events that the browser triggers e.g. esc key\n */\n var fullScreenElement = document.fullscreenElement || document.msFullscreenElement || document.mozFullScreenElement || document.webkitFullscreenElement;\n\n if (_this.props.onScreenChange) {\n _this.props.onScreenChange(fullScreenElement);\n }\n\n _this.setState({ isFullscreen: !!fullScreenElement });\n };\n\n _this._toggleFullScreen = function () {\n if (_this.state.isFullscreen) {\n _this.exitFullScreen();\n } else {\n _this.fullScreen();\n }\n };\n\n _this._togglePlay = function () {\n if (_this._intervalId) {\n _this.pause();\n } else {\n _this.play();\n }\n };\n\n _this._initGalleryResizing = function (element) {\n /*\n When image-gallery-slide-wrapper unmounts and mounts when thumbnail bar position is changed\n ref is called twice, once with null and another with the element.\n Make sure element is available before calling observe.\n */\n if (element) {\n _this._imageGallerySlideWrapper = element;\n _this.resizeObserver = new _resizeObserverPolyfill2.default(_this._createResizeObserver);\n _this.resizeObserver.observe(element);\n }\n };\n\n _this._createResizeObserver = (0, _lodash4.default)(function (entries) {\n if (!entries) return;\n entries.forEach(function () {\n _this._handleResize();\n });\n }, 300);\n\n _this._handleResize = function () {\n var currentIndex = _this.state.currentIndex;\n\n if (_this._imageGallery) {\n _this.setState({\n galleryWidth: _this._imageGallery.offsetWidth\n });\n }\n\n if (_this._imageGallerySlideWrapper) {\n _this.setState({\n gallerySlideWrapperHeight: _this._imageGallerySlideWrapper.offsetHeight\n });\n }\n\n if (_this._thumbnailsWrapper) {\n if (_this._isThumbnailVertical()) {\n _this.setState({ thumbnailsWrapperHeight: _this._thumbnailsWrapper.offsetHeight });\n } else {\n _this.setState({ thumbnailsWrapperWidth: _this._thumbnailsWrapper.offsetWidth });\n }\n }\n\n // Adjust thumbnail container when thumbnail width or height is adjusted\n _this._setThumbsTranslate(-_this._getThumbsTranslate(currentIndex));\n };\n\n _this._handleKeyDown = function (event) {\n if (_this.props.disableArrowKeys) {\n return;\n }\n var LEFT_ARROW = 37;\n var RIGHT_ARROW = 39;\n var ESC_KEY = 27;\n var key = parseInt(event.keyCode || event.which || 0);\n\n switch (key) {\n case LEFT_ARROW:\n if (_this._canSlideLeft() && !_this._intervalId) {\n _this._slideLeft();\n }\n break;\n case RIGHT_ARROW:\n if (_this._canSlideRight() && !_this._intervalId) {\n _this._slideRight();\n }\n break;\n case ESC_KEY:\n if (_this.state.isFullscreen && !_this.props.useBrowserFullscreen) {\n _this.exitFullScreen();\n }\n }\n };\n\n _this._handleImageError = function (event) {\n if (_this.props.defaultImage && event.target.src.indexOf(_this.props.defaultImage) === -1) {\n event.target.src = _this.props.defaultImage;\n }\n };\n\n _this._handleOnSwiped = function (_ref) {\n var event = _ref.event,\n dir = _ref.dir,\n velocity = _ref.velocity;\n\n if (_this.props.disableSwipe) return;\n var _this$state2 = _this.state,\n scrollingUpDown = _this$state2.scrollingUpDown,\n scrollingLeftRight = _this$state2.scrollingLeftRight;\n var isRTL = _this.props.isRTL;\n\n if (_this.props.stopPropagation) event.stopPropagation();\n if (scrollingUpDown) {\n // user stopped scrollingUpDown\n _this.setState({ scrollingUpDown: false });\n }\n\n if (scrollingLeftRight) {\n // user stopped scrollingLeftRight\n _this.setState({ scrollingLeftRight: false });\n }\n\n if (!scrollingUpDown) {\n // don't swipe if user is scrolling\n var side = (dir === _reactSwipeable.LEFT ? 1 : -1) * (isRTL ? -1 : 1); // if it is RTL the direction is reversed\n var isFlick = velocity > _this.props.flickThreshold;\n _this._handleOnSwipedTo(side, isFlick);\n }\n };\n\n _this._handleSwiping = function (_ref2) {\n var event = _ref2.event,\n absX = _ref2.absX,\n dir = _ref2.dir;\n\n if (_this.props.disableSwipe) return;\n var _this$state3 = _this.state,\n galleryWidth = _this$state3.galleryWidth,\n isTransitioning = _this$state3.isTransitioning,\n scrollingUpDown = _this$state3.scrollingUpDown,\n scrollingLeftRight = _this$state3.scrollingLeftRight;\n var swipingTransitionDuration = _this.props.swipingTransitionDuration;\n\n _this._setScrollDirection(dir);\n if (_this.props.stopPropagation) event.stopPropagation();\n if ((_this.props.preventDefaultTouchmoveEvent || scrollingLeftRight) && event.cancelable) event.preventDefault();\n if (!isTransitioning && !scrollingUpDown) {\n var side = dir === _reactSwipeable.RIGHT ? 1 : -1;\n\n var offsetPercentage = absX / galleryWidth * 100;\n if (Math.abs(offsetPercentage) >= 100) {\n offsetPercentage = 100;\n }\n\n var swipingTransition = {\n transition: 'transform ' + swipingTransitionDuration + 'ms ease-out'\n };\n\n _this.setState({\n offsetPercentage: side * offsetPercentage,\n style: swipingTransition\n });\n } else {\n // don't move the slide\n _this.setState({ offsetPercentage: 0 });\n }\n };\n\n _this._slideLeft = function () {\n _this.props.isRTL ? _this._slideNext() : _this._slidePrevious();\n };\n\n _this._slideRight = function () {\n _this.props.isRTL ? _this._slidePrevious() : _this._slideNext();\n };\n\n _this._slidePrevious = function (event) {\n _this.slideToIndex(_this.state.currentIndex - 1, event);\n };\n\n _this._slideNext = function (event) {\n _this.slideToIndex(_this.state.currentIndex + 1, event);\n };\n\n _this._renderItem = function (item) {\n var onImageError = _this.props.onImageError || _this._handleImageError;\n\n return _react2.default.createElement(\n 'div',\n { className: 'image-gallery-image' },\n item.imageSet ? _react2.default.createElement(\n 'picture',\n {\n onLoad: _this.props.onImageLoad,\n onError: onImageError\n },\n item.imageSet.map(function (source, index) {\n return _react2.default.createElement('source', {\n key: index,\n media: source.media,\n srcSet: source.srcSet,\n type: source.type\n });\n }),\n _react2.default.createElement('img', {\n alt: item.originalAlt,\n src: item.original\n })\n ) : _react2.default.createElement('img', {\n src: item.original,\n alt: item.originalAlt,\n srcSet: item.srcSet,\n sizes: item.sizes,\n title: item.originalTitle,\n onLoad: _this.props.onImageLoad,\n onError: onImageError\n }),\n item.description && _react2.default.createElement(\n 'span',\n { className: 'image-gallery-description' },\n item.description\n )\n );\n };\n\n _this._renderThumbInner = function (item) {\n var onThumbnailError = _this.props.onThumbnailError || _this._handleImageError;\n\n return _react2.default.createElement(\n 'div',\n { className: 'image-gallery-thumbnail-inner' },\n _react2.default.createElement('img', {\n src: item.thumbnail,\n alt: item.thumbnailAlt,\n title: item.thumbnailTitle,\n onError: onThumbnailError\n }),\n item.thumbnailLabel && _react2.default.createElement(\n 'div',\n { className: 'image-gallery-thumbnail-label' },\n item.thumbnailLabel\n )\n );\n };\n\n _this._onThumbnailClick = function (event, index) {\n _this.slideToIndex(index, event);\n if (_this.props.onThumbnailClick) {\n _this.props.onThumbnailClick(event, index);\n }\n };\n\n _this._onThumbnailMouseOver = function (event, index) {\n if (_this._thumbnailMouseOverTimer) {\n window.clearTimeout(_this._thumbnailMouseOverTimer);\n _this._thumbnailMouseOverTimer = null;\n }\n _this._thumbnailMouseOverTimer = window.setTimeout(function () {\n _this.slideToIndex(index);\n _this.pause();\n }, 300);\n };\n\n _this._onThumbnailMouseLeave = function () {\n if (_this._thumbnailMouseOverTimer) {\n window.clearTimeout(_this._thumbnailMouseOverTimer);\n _this._thumbnailMouseOverTimer = null;\n if (_this.props.autoPlay) {\n _this.play();\n }\n }\n };\n\n _this.state = {\n currentIndex: props.startIndex,\n thumbsTranslate: 0,\n offsetPercentage: 0,\n galleryWidth: 0,\n thumbnailsWrapperWidth: 0,\n thumbnailsWrapperHeight: 0,\n isFullscreen: false,\n isPlaying: false\n };\n\n // Used to update the throttle if slideDuration changes\n _this._unthrottledSlideToIndex = _this.slideToIndex;\n _this.slideToIndex = (0, _lodash2.default)(_this._unthrottledSlideToIndex, props.slideDuration, { trailing: false });\n\n if (props.lazyLoad) {\n _this._lazyLoaded = [];\n }\n return _this;\n }\n\n _createClass(ImageGallery, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n if (this.props.autoPlay) {\n this.play();\n }\n window.addEventListener('keydown', this._handleKeyDown);\n this._onScreenChangeEvent();\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate(prevProps, prevState) {\n var itemsSizeChanged = prevProps.items.length !== this.props.items.length;\n var itemsChanged = JSON.stringify(prevProps.items) !== JSON.stringify(this.props.items);\n var startIndexUpdated = prevProps.startIndex !== this.props.startIndex;\n if (itemsSizeChanged) {\n this._handleResize();\n }\n if (prevState.currentIndex !== this.state.currentIndex) {\n this._slideThumbnailBar(prevState.currentIndex);\n }\n // if slideDuration changes, update slideToIndex throttle\n if (prevProps.slideDuration !== this.props.slideDuration) {\n this.slideToIndex = (0, _lodash2.default)(this._unthrottledSlideToIndex, this.props.slideDuration, { trailing: false });\n }\n if (this.props.lazyLoad && (!prevProps.lazyLoad || itemsChanged)) {\n this._lazyLoaded = [];\n }\n\n if (startIndexUpdated || itemsChanged) {\n this.setState({ currentIndex: this.props.startIndex });\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n window.removeEventListener('keydown', this._handleKeyDown);\n\n this._offScreenChangeEvent();\n\n if (this._intervalId) {\n window.clearInterval(this._intervalId);\n this._intervalId = null;\n }\n\n if (this.resizeObserver && this._imageGallerySlideWrapper) {\n this.resizeObserver.unobserve(this._imageGallerySlideWrapper);\n }\n\n if (this._transitionTimer) {\n window.clearTimeout(this._transitionTimer);\n }\n\n if (this._createResizeObserver) {\n this._createResizeObserver();\n }\n }\n }, {\n key: 'play',\n value: function play() {\n var _this2 = this;\n\n var callback = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n\n if (!this._intervalId) {\n var _props = this.props,\n slideInterval = _props.slideInterval,\n slideDuration = _props.slideDuration;\n\n this.setState({ isPlaying: true });\n this._intervalId = window.setInterval(function () {\n if (!_this2.props.infinite && !_this2._canSlideRight()) {\n _this2.pause();\n } else {\n _this2.slideToIndex(_this2.state.currentIndex + 1);\n }\n }, Math.max(slideInterval, slideDuration));\n\n if (this.props.onPlay && callback) {\n this.props.onPlay(this.state.currentIndex);\n }\n }\n }\n }, {\n key: 'pause',\n value: function pause() {\n var callback = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n\n if (this._intervalId) {\n window.clearInterval(this._intervalId);\n this._intervalId = null;\n this.setState({ isPlaying: false });\n\n if (this.props.onPause && callback) {\n this.props.onPause(this.state.currentIndex);\n }\n }\n }\n }, {\n key: 'setModalFullscreen',\n value: function setModalFullscreen(state) {\n this.setState({ modalFullscreen: state });\n // manually call because browser does not support screenchange events\n if (this.props.onScreenChange) {\n this.props.onScreenChange(state);\n }\n }\n }, {\n key: 'fullScreen',\n value: function fullScreen() {\n var gallery = this._imageGallery;\n\n if (this.props.useBrowserFullscreen) {\n if (gallery.requestFullscreen) {\n gallery.requestFullscreen();\n } else if (gallery.msRequestFullscreen) {\n gallery.msRequestFullscreen();\n } else if (gallery.mozRequestFullScreen) {\n gallery.mozRequestFullScreen();\n } else if (gallery.webkitRequestFullscreen) {\n gallery.webkitRequestFullscreen();\n } else {\n // fallback to fullscreen modal for unsupported browsers\n this.setModalFullscreen(true);\n }\n } else {\n this.setModalFullscreen(true);\n }\n\n this.setState({ isFullscreen: true });\n }\n }, {\n key: 'exitFullScreen',\n value: function exitFullScreen() {\n if (this.state.isFullscreen) {\n if (this.props.useBrowserFullscreen) {\n if (document.exitFullscreen) {\n document.exitFullscreen();\n } else if (document.webkitExitFullscreen) {\n document.webkitExitFullscreen();\n } else if (document.mozCancelFullScreen) {\n document.mozCancelFullScreen();\n } else if (document.msExitFullscreen) {\n document.msExitFullscreen();\n } else {\n // fallback to fullscreen modal for unsupported browsers\n this.setModalFullscreen(false);\n }\n } else {\n this.setModalFullscreen(false);\n }\n\n this.setState({ isFullscreen: false });\n }\n }\n }, {\n key: 'getCurrentIndex',\n value: function getCurrentIndex() {\n return this.state.currentIndex;\n }\n }, {\n key: '_onScreenChangeEvent',\n value: function _onScreenChangeEvent() {\n var _this3 = this;\n\n screenChangeEvents.map(function (eventName) {\n document.addEventListener(eventName, _this3._handleScreenChange);\n });\n }\n }, {\n key: '_offScreenChangeEvent',\n value: function _offScreenChangeEvent() {\n var _this4 = this;\n\n screenChangeEvents.map(function (eventName) {\n document.removeEventListener(eventName, _this4._handleScreenChange);\n });\n }\n }, {\n key: '_isThumbnailVertical',\n value: function _isThumbnailVertical() {\n var thumbnailPosition = this.props.thumbnailPosition;\n\n return thumbnailPosition === 'left' || thumbnailPosition === 'right';\n }\n }, {\n key: '_setScrollDirection',\n value: function _setScrollDirection(dir) {\n var _state = this.state,\n scrollingUpDown = _state.scrollingUpDown,\n scrollingLeftRight = _state.scrollingLeftRight;\n\n\n if (!scrollingUpDown && !scrollingLeftRight) {\n if (dir === _reactSwipeable.LEFT || dir === _reactSwipeable.RIGHT) {\n this.setState({ scrollingLeftRight: true });\n } else {\n this.setState({ scrollingUpDown: true });\n }\n }\n }\n }, {\n key: '_handleOnSwipedTo',\n value: function _handleOnSwipedTo(side, isFlick) {\n var _state2 = this.state,\n currentIndex = _state2.currentIndex,\n isTransitioning = _state2.isTransitioning;\n\n var slideTo = currentIndex;\n\n if ((this._sufficientSwipeOffset() || isFlick) && !isTransitioning) {\n slideTo += side;\n }\n\n if (side < 0) {\n if (!this._canSlideLeft()) {\n slideTo = currentIndex;\n }\n } else {\n if (!this._canSlideRight()) {\n slideTo = currentIndex;\n }\n }\n\n this._unthrottledSlideToIndex(slideTo);\n }\n }, {\n key: '_sufficientSwipeOffset',\n value: function _sufficientSwipeOffset() {\n return Math.abs(this.state.offsetPercentage) > this.props.swipeThreshold;\n }\n }, {\n key: '_canNavigate',\n value: function _canNavigate() {\n return this.props.items.length >= 2;\n }\n }, {\n key: '_canSlideLeft',\n value: function _canSlideLeft() {\n return this.props.infinite || (this.props.isRTL ? this._canSlideNext() : this._canSlidePrevious());\n }\n }, {\n key: '_canSlideRight',\n value: function _canSlideRight() {\n return this.props.infinite || (this.props.isRTL ? this._canSlidePrevious() : this._canSlideNext());\n }\n }, {\n key: '_canSlidePrevious',\n value: function _canSlidePrevious() {\n return this.state.currentIndex > 0;\n }\n }, {\n key: '_canSlideNext',\n value: function _canSlideNext() {\n return this.state.currentIndex < this.props.items.length - 1;\n }\n }, {\n key: '_slideThumbnailBar',\n value: function _slideThumbnailBar(previousIndex) {\n var _state3 = this.state,\n thumbsTranslate = _state3.thumbsTranslate,\n currentIndex = _state3.currentIndex;\n\n if (this.state.currentIndex === 0) {\n this._setThumbsTranslate(0);\n } else {\n var indexDifference = Math.abs(previousIndex - currentIndex);\n var scroll = this._getThumbsTranslate(indexDifference);\n if (scroll > 0) {\n if (previousIndex < currentIndex) {\n this._setThumbsTranslate(thumbsTranslate - scroll);\n } else if (previousIndex > currentIndex) {\n this._setThumbsTranslate(thumbsTranslate + scroll);\n }\n }\n }\n }\n }, {\n key: '_setThumbsTranslate',\n value: function _setThumbsTranslate(thumbsTranslate) {\n this.setState({ thumbsTranslate: thumbsTranslate });\n }\n }, {\n key: '_getThumbsTranslate',\n value: function _getThumbsTranslate(indexDifference) {\n if (this.props.disableThumbnailScroll) {\n return 0;\n }\n\n var _state4 = this.state,\n thumbnailsWrapperWidth = _state4.thumbnailsWrapperWidth,\n thumbnailsWrapperHeight = _state4.thumbnailsWrapperHeight;\n\n var totalScroll = void 0;\n\n if (this._thumbnails) {\n // total scroll required to see the last thumbnail\n if (this._isThumbnailVertical()) {\n if (this._thumbnails.scrollHeight <= thumbnailsWrapperHeight) {\n return 0;\n }\n totalScroll = this._thumbnails.scrollHeight - thumbnailsWrapperHeight;\n } else {\n if (this._thumbnails.scrollWidth <= thumbnailsWrapperWidth || thumbnailsWrapperWidth <= 0) {\n return 0;\n }\n totalScroll = this._thumbnails.scrollWidth - thumbnailsWrapperWidth;\n }\n\n var totalThumbnails = this._thumbnails.children.length;\n // scroll-x required per index change\n var perIndexScroll = totalScroll / (totalThumbnails - 1);\n\n return indexDifference * perIndexScroll;\n }\n }\n }, {\n key: '_getAlignmentClassName',\n value: function _getAlignmentClassName(index) {\n /*\n Necessary for lazing loading\n */\n var currentIndex = this.state.currentIndex;\n\n var alignment = '';\n var leftClassName = 'left';\n var centerClassName = 'center';\n var rightClassName = 'right';\n\n switch (index) {\n case currentIndex - 1:\n alignment = ' ' + leftClassName;\n break;\n case currentIndex:\n alignment = ' ' + centerClassName;\n break;\n case currentIndex + 1:\n alignment = ' ' + rightClassName;\n break;\n }\n\n if (this.props.items.length >= 3 && this.props.infinite) {\n if (index === 0 && currentIndex === this.props.items.length - 1) {\n // set first slide as right slide if were sliding right from last slide\n alignment = ' ' + rightClassName;\n } else if (index === this.props.items.length - 1 && currentIndex === 0) {\n // set last slide as left slide if were sliding left from first slide\n alignment = ' ' + leftClassName;\n }\n }\n\n return alignment;\n }\n }, {\n key: '_isGoingFromFirstToLast',\n value: function _isGoingFromFirstToLast() {\n var _state5 = this.state,\n currentIndex = _state5.currentIndex,\n previousIndex = _state5.previousIndex;\n\n var totalSlides = this.props.items.length - 1;\n return previousIndex === 0 && currentIndex === totalSlides;\n }\n }, {\n key: '_isGoingFromLastToFirst',\n value: function _isGoingFromLastToFirst() {\n var _state6 = this.state,\n currentIndex = _state6.currentIndex,\n previousIndex = _state6.previousIndex;\n\n var totalSlides = this.props.items.length - 1;\n return previousIndex === totalSlides && currentIndex === 0;\n }\n }, {\n key: '_getTranslateXForTwoSlide',\n value: function _getTranslateXForTwoSlide(index) {\n // For taking care of infinite swipe when there are only two slides\n var _state7 = this.state,\n currentIndex = _state7.currentIndex,\n offsetPercentage = _state7.offsetPercentage,\n previousIndex = _state7.previousIndex;\n\n var baseTranslateX = -100 * currentIndex;\n var translateX = baseTranslateX + index * 100 + offsetPercentage;\n\n // keep track of user swiping direction\n if (offsetPercentage > 0) {\n this.direction = 'left';\n } else if (offsetPercentage < 0) {\n this.direction = 'right';\n }\n\n // when swiping make sure the slides are on the correct side\n if (currentIndex === 0 && index === 1 && offsetPercentage > 0) {\n translateX = -100 + offsetPercentage;\n } else if (currentIndex === 1 && index === 0 && offsetPercentage < 0) {\n translateX = 100 + offsetPercentage;\n }\n\n if (currentIndex !== previousIndex) {\n // when swiped move the slide to the correct side\n if (previousIndex === 0 && index === 0 && offsetPercentage === 0 && this.direction === 'left') {\n translateX = 100;\n } else if (previousIndex === 1 && index === 1 && offsetPercentage === 0 && this.direction === 'right') {\n translateX = -100;\n }\n } else {\n // keep the slide on the correct slide even when not a swipe\n if (currentIndex === 0 && index === 1 && offsetPercentage === 0 && this.direction === 'left') {\n translateX = -100;\n } else if (currentIndex === 1 && index === 0 && offsetPercentage === 0 && this.direction === 'right') {\n translateX = 100;\n }\n }\n\n return translateX;\n }\n }, {\n key: '_getThumbnailBarHeight',\n value: function _getThumbnailBarHeight() {\n if (this._isThumbnailVertical()) {\n return {\n height: this.state.gallerySlideWrapperHeight\n };\n }\n return {};\n }\n }, {\n key: '_shouldPushSlideOnInfiniteMode',\n value: function _shouldPushSlideOnInfiniteMode(index) {\n /*\n Push(show) slide if slide is the current slide, and the next slide\n OR\n The slide is going more than 1 slide left, or right, but not going from\n first to last and not going from last to first\n There is an edge case where if you go to the first or last slide, when they're\n not left, or right of each other they will try to catch up in the background\n so unless were going from first to last or vice versa we don't want the first\n or last slide to show up during our transition\n */\n return !this._slideIsTransitioning(index) || this._ignoreIsTransitioning() && !this._isFirstOrLastSlide(index);\n }\n }, {\n key: '_slideIsTransitioning',\n value: function _slideIsTransitioning(index) {\n /*\n returns true if the gallery is transitioning and the index is not the\n previous or currentIndex\n */\n var _state8 = this.state,\n isTransitioning = _state8.isTransitioning,\n previousIndex = _state8.previousIndex,\n currentIndex = _state8.currentIndex;\n\n var indexIsNotPreviousOrNextSlide = !(index === previousIndex || index === currentIndex);\n return isTransitioning && indexIsNotPreviousOrNextSlide;\n }\n }, {\n key: '_isFirstOrLastSlide',\n value: function _isFirstOrLastSlide(index) {\n var totalSlides = this.props.items.length - 1;\n var isLastSlide = index === totalSlides;\n var isFirstSlide = index === 0;\n return isLastSlide || isFirstSlide;\n }\n }, {\n key: '_ignoreIsTransitioning',\n value: function _ignoreIsTransitioning() {\n /*\n Ignore isTransitioning because were not going to sibling slides\n e.g. center to left or center to right\n */\n var _state9 = this.state,\n previousIndex = _state9.previousIndex,\n currentIndex = _state9.currentIndex;\n\n var totalSlides = this.props.items.length - 1;\n // we want to show the in between slides transition\n var slidingMoreThanOneSlideLeftOrRight = Math.abs(previousIndex - currentIndex) > 1;\n var notGoingFromFirstToLast = !(previousIndex === 0 && currentIndex === totalSlides);\n var notGoingFromLastToFirst = !(previousIndex === totalSlides && currentIndex === 0);\n\n return slidingMoreThanOneSlideLeftOrRight && notGoingFromFirstToLast && notGoingFromLastToFirst;\n }\n }, {\n key: '_getSlideStyle',\n value: function _getSlideStyle(index) {\n var _state10 = this.state,\n currentIndex = _state10.currentIndex,\n offsetPercentage = _state10.offsetPercentage;\n var _props2 = this.props,\n infinite = _props2.infinite,\n items = _props2.items,\n useTranslate3D = _props2.useTranslate3D,\n isRTL = _props2.isRTL;\n\n var baseTranslateX = -100 * currentIndex;\n var totalSlides = items.length - 1;\n\n // calculates where the other slides belong based on currentIndex\n // if it is RTL the base line should be reversed\n var translateX = (baseTranslateX + index * 100) * (isRTL ? -1 : 1) + offsetPercentage;\n\n if (infinite && items.length > 2) {\n if (currentIndex === 0 && index === totalSlides) {\n // make the last slide the slide before the first\n // if it is RTL the base line should be reversed\n translateX = -100 * (isRTL ? -1 : 1) + offsetPercentage;\n } else if (currentIndex === totalSlides && index === 0) {\n // make the first slide the slide after the last\n // if it is RTL the base line should be reversed\n translateX = 100 * (isRTL ? -1 : 1) + offsetPercentage;\n }\n }\n\n // Special case when there are only 2 items with infinite on\n if (infinite && items.length === 2) {\n translateX = this._getTranslateXForTwoSlide(index);\n }\n\n var translate = 'translate(' + translateX + '%, 0)';\n\n if (useTranslate3D) {\n translate = 'translate3d(' + translateX + '%, 0, 0)';\n }\n\n return {\n WebkitTransform: translate,\n MozTransform: translate,\n msTransform: translate,\n OTransform: translate,\n transform: translate\n };\n }\n }, {\n key: '_getThumbnailStyle',\n value: function _getThumbnailStyle() {\n var translate = void 0;\n var _props3 = this.props,\n useTranslate3D = _props3.useTranslate3D,\n isRTL = _props3.isRTL;\n var thumbsTranslate = this.state.thumbsTranslate;\n\n var verticalTranslateValue = isRTL ? thumbsTranslate * -1 : thumbsTranslate;\n\n if (this._isThumbnailVertical()) {\n translate = 'translate(0, ' + thumbsTranslate + 'px)';\n if (useTranslate3D) {\n translate = 'translate3d(0, ' + thumbsTranslate + 'px, 0)';\n }\n } else {\n translate = 'translate(' + verticalTranslateValue + 'px, 0)';\n if (useTranslate3D) {\n translate = 'translate3d(' + verticalTranslateValue + 'px, 0, 0)';\n }\n }\n return {\n WebkitTransform: translate,\n MozTransform: translate,\n msTransform: translate,\n OTransform: translate,\n transform: translate\n };\n }\n }, {\n key: 'render',\n value: function render() {\n var _this5 = this;\n\n var _state11 = this.state,\n currentIndex = _state11.currentIndex,\n isFullscreen = _state11.isFullscreen,\n modalFullscreen = _state11.modalFullscreen,\n isPlaying = _state11.isPlaying;\n var _props4 = this.props,\n infinite = _props4.infinite,\n slideOnThumbnailOver = _props4.slideOnThumbnailOver,\n isRTL = _props4.isRTL,\n lazyLoad = _props4.lazyLoad;\n\n\n var thumbnailStyle = this._getThumbnailStyle();\n var thumbnailPosition = this.props.thumbnailPosition;\n\n var slideLeft = this._slideLeft;\n var slideRight = this._slideRight;\n\n var slides = [];\n var thumbnails = [];\n var bullets = [];\n\n this.props.items.forEach(function (item, index) {\n var alignment = _this5._getAlignmentClassName(index);\n var originalClass = item.originalClass ? ' ' + item.originalClass : '';\n var thumbnailClass = item.thumbnailClass ? ' ' + item.thumbnailClass : '';\n\n var renderItem = item.renderItem || _this5.props.renderItem || _this5._renderItem;\n\n var renderThumbInner = item.renderThumbInner || _this5.props.renderThumbInner || _this5._renderThumbInner;\n\n var showItem = !lazyLoad || alignment || _this5._lazyLoaded[index];\n if (showItem && lazyLoad && !_this5._lazyLoaded[index]) {\n _this5._lazyLoaded[index] = true;\n }\n\n var slideStyle = _this5._getSlideStyle(index);\n\n var slide = _react2.default.createElement(\n 'div',\n {\n key: index,\n className: 'image-gallery-slide' + alignment + originalClass,\n style: _extends(slideStyle, _this5.state.style),\n onClick: _this5.props.onClick,\n onTouchMove: _this5.props.onTouchMove,\n onTouchEnd: _this5.props.onTouchEnd,\n onTouchStart: _this5.props.onTouchStart,\n onMouseOver: _this5.props.onMouseOver,\n onMouseLeave: _this5.props.onMouseLeave,\n role: _this5.props.onClick && 'button'\n },\n showItem ? renderItem(item) : _react2.default.createElement('div', { style: { height: '100%' } })\n );\n\n if (infinite) {\n // don't add some slides while transitioning to avoid background transitions\n if (_this5._shouldPushSlideOnInfiniteMode(index)) {\n slides.push(slide);\n }\n } else {\n slides.push(slide);\n }\n\n if (_this5.props.showThumbnails) {\n thumbnails.push(_react2.default.createElement(\n 'a',\n {\n key: index,\n role: 'button',\n 'aria-pressed': currentIndex === index ? 'true' : 'false',\n 'aria-label': 'Go to Slide ' + (index + 1),\n className: 'image-gallery-thumbnail' + (currentIndex === index ? ' active' : '') + thumbnailClass,\n onMouseLeave: slideOnThumbnailOver ? _this5._onThumbnailMouseLeave : undefined,\n onMouseOver: function onMouseOver(event) {\n return slideOnThumbnailOver ? _this5._onThumbnailMouseOver(event, index) : undefined;\n },\n onClick: function onClick(event) {\n return _this5._onThumbnailClick(event, index);\n }\n },\n renderThumbInner(item)\n ));\n }\n\n if (_this5.props.showBullets) {\n var bulletOnClick = function bulletOnClick(event) {\n if (item.bulletOnClick) {\n item.bulletOnClick({ item: item, itemIndex: index, currentIndex: currentIndex });\n }\n return _this5.slideToIndex.call(_this5, index, event);\n };\n bullets.push(_react2.default.createElement('button', {\n key: index,\n type: 'button',\n className: ['image-gallery-bullet', currentIndex === index ? 'active' : '', item.bulletClass || ''].join(' '),\n onClick: bulletOnClick,\n 'aria-pressed': currentIndex === index ? 'true' : 'false',\n 'aria-label': 'Go to Slide ' + (index + 1)\n }));\n }\n });\n\n var slideWrapper = _react2.default.createElement(\n 'div',\n {\n ref: this._initGalleryResizing,\n className: 'image-gallery-slide-wrapper ' + thumbnailPosition + ' ' + (isRTL ? 'image-gallery-rtl' : '')\n },\n this.props.renderCustomControls && this.props.renderCustomControls(),\n this.props.showFullscreenButton && this.props.renderFullscreenButton(this._toggleFullScreen, isFullscreen),\n this.props.showPlayButton && this.props.renderPlayPauseButton(this._togglePlay, isPlaying),\n this._canNavigate() ? [this.props.showNav && _react2.default.createElement(\n 'span',\n { key: 'navigation' },\n this.props.renderLeftNav(slideLeft, !this._canSlideLeft()),\n this.props.renderRightNav(slideRight, !this._canSlideRight())\n ), _react2.default.createElement(\n _reactSwipeable.Swipeable,\n {\n className: 'image-gallery-swipe',\n key: 'swipeable',\n delta: 0,\n onSwiping: this._handleSwiping,\n onSwiped: this._handleOnSwiped\n },\n _react2.default.createElement(\n 'div',\n { className: 'image-gallery-slides' },\n slides\n )\n )] : _react2.default.createElement(\n 'div',\n { className: 'image-gallery-slides' },\n slides\n ),\n this.props.showBullets && _react2.default.createElement(\n 'div',\n { className: 'image-gallery-bullets' },\n _react2.default.createElement(\n 'div',\n {\n className: 'image-gallery-bullets-container',\n role: 'navigation',\n 'aria-label': 'Bullet Navigation'\n },\n bullets\n )\n ),\n this.props.showIndex && _react2.default.createElement(\n 'div',\n { className: 'image-gallery-index' },\n _react2.default.createElement(\n 'span',\n { className: 'image-gallery-index-current' },\n this.state.currentIndex + 1\n ),\n _react2.default.createElement(\n 'span',\n { className: 'image-gallery-index-separator' },\n this.props.indexSeparator\n ),\n _react2.default.createElement(\n 'span',\n { className: 'image-gallery-index-total' },\n this.props.items.length\n )\n )\n );\n\n var classNames = ['image-gallery', this.props.additionalClass, modalFullscreen ? 'fullscreen-modal' : ''].filter(function (name) {\n return typeof name === 'string';\n }).join(' ');\n\n return _react2.default.createElement(\n 'div',\n {\n ref: function ref(i) {\n return _this5._imageGallery = i;\n },\n className: classNames,\n 'aria-live': 'polite'\n },\n _react2.default.createElement(\n 'div',\n {\n className: 'image-gallery-content' + (isFullscreen ? ' fullscreen' : '')\n },\n (thumbnailPosition === 'bottom' || thumbnailPosition === 'right') && slideWrapper,\n this.props.showThumbnails && _react2.default.createElement(\n 'div',\n {\n className: 'image-gallery-thumbnails-wrapper ' + thumbnailPosition + ' ' + (!this._isThumbnailVertical() && isRTL ? 'thumbnails-wrapper-rtl' : ''),\n style: this._getThumbnailBarHeight()\n },\n _react2.default.createElement(\n 'div',\n {\n className: 'image-gallery-thumbnails',\n ref: function ref(i) {\n return _this5._thumbnailsWrapper = i;\n }\n },\n _react2.default.createElement(\n 'div',\n {\n ref: function ref(t) {\n return _this5._thumbnails = t;\n },\n className: 'image-gallery-thumbnails-container',\n style: thumbnailStyle,\n 'aria-label': 'Thumbnail Navigation'\n },\n thumbnails\n )\n )\n ),\n (thumbnailPosition === 'top' || thumbnailPosition === 'left') && slideWrapper\n )\n );\n }\n }]);\n\n return ImageGallery;\n}(_react2.default.Component);\n\nImageGallery.propTypes = {\n flickThreshold: _propTypes2.default.number,\n items: _propTypes2.default.array.isRequired,\n showNav: _propTypes2.default.bool,\n autoPlay: _propTypes2.default.bool,\n lazyLoad: _propTypes2.default.bool,\n infinite: _propTypes2.default.bool,\n showIndex: _propTypes2.default.bool,\n showBullets: _propTypes2.default.bool,\n showThumbnails: _propTypes2.default.bool,\n showPlayButton: _propTypes2.default.bool,\n showFullscreenButton: _propTypes2.default.bool,\n disableThumbnailScroll: _propTypes2.default.bool,\n disableArrowKeys: _propTypes2.default.bool,\n disableSwipe: _propTypes2.default.bool,\n useBrowserFullscreen: _propTypes2.default.bool,\n preventDefaultTouchmoveEvent: _propTypes2.default.bool,\n defaultImage: _propTypes2.default.string,\n indexSeparator: _propTypes2.default.string,\n thumbnailPosition: _propTypes2.default.string,\n startIndex: _propTypes2.default.number,\n slideDuration: _propTypes2.default.number,\n slideInterval: _propTypes2.default.number,\n slideOnThumbnailOver: _propTypes2.default.bool,\n swipeThreshold: _propTypes2.default.number,\n swipingTransitionDuration: _propTypes2.default.number,\n onSlide: _propTypes2.default.func,\n onScreenChange: _propTypes2.default.func,\n onPause: _propTypes2.default.func,\n onPlay: _propTypes2.default.func,\n onClick: _propTypes2.default.func,\n onImageLoad: _propTypes2.default.func,\n onImageError: _propTypes2.default.func,\n onTouchMove: _propTypes2.default.func,\n onTouchEnd: _propTypes2.default.func,\n onTouchStart: _propTypes2.default.func,\n onMouseOver: _propTypes2.default.func,\n onMouseLeave: _propTypes2.default.func,\n onThumbnailError: _propTypes2.default.func,\n onThumbnailClick: _propTypes2.default.func,\n renderCustomControls: _propTypes2.default.func,\n renderLeftNav: _propTypes2.default.func,\n renderRightNav: _propTypes2.default.func,\n renderPlayPauseButton: _propTypes2.default.func,\n renderFullscreenButton: _propTypes2.default.func,\n renderItem: _propTypes2.default.func,\n stopPropagation: _propTypes2.default.bool,\n additionalClass: _propTypes2.default.string,\n useTranslate3D: _propTypes2.default.bool,\n isRTL: _propTypes2.default.bool\n};\nImageGallery.defaultProps = {\n items: [],\n showNav: true,\n autoPlay: false,\n lazyLoad: false,\n infinite: true,\n showIndex: false,\n showBullets: false,\n showThumbnails: true,\n showPlayButton: true,\n showFullscreenButton: true,\n disableThumbnailScroll: false,\n disableArrowKeys: false,\n disableSwipe: false,\n useTranslate3D: true,\n isRTL: false,\n useBrowserFullscreen: true,\n preventDefaultTouchmoveEvent: false,\n flickThreshold: 0.4,\n stopPropagation: false,\n indexSeparator: ' / ',\n thumbnailPosition: 'bottom',\n startIndex: 0,\n slideDuration: 450,\n swipingTransitionDuration: 0,\n slideInterval: 3000,\n swipeThreshold: 30,\n renderLeftNav: function renderLeftNav(onClick, disabled) {\n return _react2.default.createElement('button', {\n type: 'button',\n className: 'image-gallery-left-nav',\n disabled: disabled,\n onClick: onClick,\n 'aria-label': 'Previous Slide'\n });\n },\n renderRightNav: function renderRightNav(onClick, disabled) {\n return _react2.default.createElement('button', {\n type: 'button',\n className: 'image-gallery-right-nav',\n disabled: disabled,\n onClick: onClick,\n 'aria-label': 'Next Slide'\n });\n },\n renderPlayPauseButton: function renderPlayPauseButton(onClick, isPlaying) {\n return _react2.default.createElement('button', {\n type: 'button',\n className: 'image-gallery-play-button' + (isPlaying ? ' active' : ''),\n onClick: onClick,\n 'aria-label': 'Play or Pause Slideshow'\n });\n },\n renderFullscreenButton: function renderFullscreenButton(onClick, isFullscreen) {\n return _react2.default.createElement('button', {\n type: 'button',\n className: 'image-gallery-fullscreen-button' + (isFullscreen ? ' active' : ''),\n onClick: onClick,\n 'aria-label': 'Open Fullscreen'\n });\n }\n};\nexports.default = ImageGallery;","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nvar defaultProps = {\n preventDefaultTouchmoveEvent: false,\n delta: 10,\n rotationAngle: 0,\n trackMouse: false,\n trackTouch: true\n};\nvar initialState = {\n xy: [0, 0],\n swiping: false,\n eventData: undefined,\n start: undefined\n};\nvar LEFT = 'Left';\nvar RIGHT = 'Right';\nvar UP = 'Up';\nvar DOWN = 'Down';\nvar touchStart = 'touchstart';\nvar touchMove = 'touchmove';\nvar touchEnd = 'touchend';\nvar mouseMove = 'mousemove';\nvar mouseUp = 'mouseup';\n\nfunction getDirection(absX, absY, deltaX, deltaY) {\n if (absX > absY) {\n if (deltaX > 0) {\n return LEFT;\n }\n\n return RIGHT;\n } else if (deltaY > 0) {\n return UP;\n }\n\n return DOWN;\n}\n\nfunction rotateXYByAngle(pos, angle) {\n if (angle === 0) return pos;\n var angleInRadians = Math.PI / 180 * angle;\n var x = pos[0] * Math.cos(angleInRadians) + pos[1] * Math.sin(angleInRadians);\n var y = pos[1] * Math.cos(angleInRadians) - pos[0] * Math.sin(angleInRadians);\n return [x, y];\n}\n\nfunction getHandlers(set, handlerProps) {\n var onStart = function onStart(event) {\n // if more than a single touch don't track, for now...\n if (event.touches && event.touches.length > 1) return;\n set(function (state, props) {\n // setup mouse listeners on document to track swipe since swipe can leave container\n if (props.trackMouse) {\n document.addEventListener(mouseMove, onMove);\n document.addEventListener(mouseUp, onUp);\n }\n\n var _ref = event.touches ? event.touches[0] : event,\n clientX = _ref.clientX,\n clientY = _ref.clientY;\n\n var xy = rotateXYByAngle([clientX, clientY], props.rotationAngle);\n return _extends({}, state, initialState, {\n eventData: {\n initial: [].concat(xy)\n },\n xy: xy,\n start: event.timeStamp || 0\n });\n });\n };\n\n var onMove = function onMove(event) {\n set(function (state, props) {\n if (!state.xy[0] || !state.xy[1] || event.touches && event.touches.length > 1) {\n return state;\n }\n\n var _ref2 = event.touches ? event.touches[0] : event,\n clientX = _ref2.clientX,\n clientY = _ref2.clientY;\n\n var _rotateXYByAngle = rotateXYByAngle([clientX, clientY], props.rotationAngle),\n x = _rotateXYByAngle[0],\n y = _rotateXYByAngle[1];\n\n var deltaX = state.xy[0] - x;\n var deltaY = state.xy[1] - y;\n var absX = Math.abs(deltaX);\n var absY = Math.abs(deltaY);\n var time = (event.timeStamp || 0) - state.start;\n var velocity = Math.sqrt(absX * absX + absY * absY) / (time || 1); // if swipe is under delta and we have not started to track a swipe: skip update\n\n if (absX < props.delta && absY < props.delta && !state.swiping) return state;\n var dir = getDirection(absX, absY, deltaX, deltaY);\n\n var eventData = _extends({}, state.eventData, {\n event: event,\n absX: absX,\n absY: absY,\n deltaX: deltaX,\n deltaY: deltaY,\n velocity: velocity,\n dir: dir\n });\n\n props.onSwiping && props.onSwiping(eventData); // track if a swipe is cancelable(handler for swiping or swiped(dir) exists)\n // so we can call preventDefault if needed\n\n var cancelablePageSwipe = false;\n\n if (props.onSwiping || props.onSwiped || props[\"onSwiped\" + dir]) {\n cancelablePageSwipe = true;\n }\n\n if (cancelablePageSwipe && props.preventDefaultTouchmoveEvent && props.trackTouch && event.cancelable) event.preventDefault();\n return _extends({}, state, {\n eventData: eventData,\n swiping: true\n });\n });\n };\n\n var onEnd = function onEnd(event) {\n set(function (state, props) {\n var eventData;\n\n if (state.swiping) {\n eventData = _extends({}, state.eventData, {\n event: event\n });\n props.onSwiped && props.onSwiped(eventData);\n props[\"onSwiped\" + eventData.dir] && props[\"onSwiped\" + eventData.dir](eventData);\n }\n\n return _extends({}, state, initialState, {\n eventData: eventData\n });\n });\n };\n\n var cleanUpMouse = function cleanUpMouse() {\n // safe to just call removeEventListener\n document.removeEventListener(mouseMove, onMove);\n document.removeEventListener(mouseUp, onUp);\n };\n\n var onUp = function onUp(e) {\n cleanUpMouse();\n onEnd(e);\n };\n\n var attachTouch = function attachTouch(el) {\n if (el && el.addEventListener) {\n // attach touch event listeners and handlers\n var tls = [[touchStart, onStart], [touchMove, onMove], [touchEnd, onEnd]];\n tls.forEach(function (_ref3) {\n var e = _ref3[0],\n h = _ref3[1];\n return el.addEventListener(e, h);\n }); // return properly scoped cleanup method for removing listeners\n\n return function () {\n return tls.forEach(function (_ref4) {\n var e = _ref4[0],\n h = _ref4[1];\n return el.removeEventListener(e, h);\n });\n };\n }\n };\n\n var onRef = function onRef(el) {\n // \"inline\" ref functions are called twice on render, once with null then again with DOM element\n // ignore null here\n if (el === null) return;\n set(function (state, props) {\n // if the same DOM el as previous just return state\n if (state.el === el) return state;\n var addState = {}; // if new DOM el clean up old DOM and reset cleanUpTouch\n\n if (state.el && state.el !== el && state.cleanUpTouch) {\n state.cleanUpTouch();\n addState.cleanUpTouch = null;\n } // only attach if we want to track touch\n\n\n if (props.trackTouch && el) {\n addState.cleanUpTouch = attachTouch(el);\n } // store event attached DOM el for comparison, clean up, and re-attachment\n\n\n return _extends({}, state, {\n el: el\n }, addState);\n });\n }; // set ref callback to attach touch event listeners\n\n\n var output = {\n ref: onRef // if track mouse attach mouse down listener\n\n };\n\n if (handlerProps.trackMouse) {\n output.onMouseDown = onStart;\n }\n\n return [output, attachTouch];\n}\n\nfunction updateTransientState(state, props, attachTouch) {\n var addState = {}; // clean up touch handlers if no longer tracking touches\n\n if (!props.trackTouch && state.cleanUpTouch) {\n state.cleanUpTouch();\n addState.cleanUpTouch = null;\n } else if (props.trackTouch && !state.cleanUpTouch) {\n // attach/re-attach touch handlers\n if (state.el) {\n addState.cleanUpTouch = attachTouch(state.el);\n }\n }\n\n return _extends({}, state, addState);\n}\n\nfunction useSwipeable(props) {\n var trackMouse = props.trackMouse;\n var transientState = React.useRef(_extends({}, initialState, {\n type: 'hook'\n }));\n var transientProps = React.useRef();\n transientProps.current = _extends({}, defaultProps, props);\n\n var _React$useMemo = React.useMemo(function () {\n return getHandlers(function (cb) {\n return transientState.current = cb(transientState.current, transientProps.current);\n }, {\n trackMouse: trackMouse\n });\n }, [trackMouse]),\n handlers = _React$useMemo[0],\n attachTouch = _React$useMemo[1];\n\n transientState.current = updateTransientState(transientState.current, transientProps.current, attachTouch);\n return handlers;\n}\nvar Swipeable =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n _inheritsLoose(Swipeable, _React$PureComponent);\n\n function Swipeable(props) {\n var _this;\n\n _this = _React$PureComponent.call(this, props) || this;\n\n _this._set = function (cb) {\n _this.transientState = cb(_this.transientState, _this.props);\n };\n\n _this.transientState = _extends({}, initialState, {\n type: 'class'\n });\n return _this;\n }\n\n var _proto = Swipeable.prototype;\n\n _proto.render = function render() {\n var _this$props = this.props,\n className = _this$props.className,\n style = _this$props.style,\n _this$props$nodeName = _this$props.nodeName,\n nodeName = _this$props$nodeName === void 0 ? 'div' : _this$props$nodeName,\n innerRef = _this$props.innerRef,\n children = _this$props.children,\n trackMouse = _this$props.trackMouse;\n\n var _getHandlers = getHandlers(this._set, {\n trackMouse: trackMouse\n }),\n handlers = _getHandlers[0],\n attachTouch = _getHandlers[1];\n\n this.transientState = updateTransientState(this.transientState, this.props, attachTouch);\n var ref = innerRef ? function (el) {\n return innerRef(el), handlers.ref(el);\n } : handlers.ref;\n return React.createElement(nodeName, _extends({}, handlers, {\n className: className,\n style: style,\n ref: ref\n }), children);\n };\n\n return Swipeable;\n}(React.PureComponent);\nSwipeable.propTypes = {\n onSwiped: PropTypes.func,\n onSwiping: PropTypes.func,\n onSwipedUp: PropTypes.func,\n onSwipedRight: PropTypes.func,\n onSwipedDown: PropTypes.func,\n onSwipedLeft: PropTypes.func,\n delta: PropTypes.number,\n preventDefaultTouchmoveEvent: PropTypes.bool,\n nodeName: PropTypes.string,\n trackMouse: PropTypes.bool,\n trackTouch: PropTypes.bool,\n innerRef: PropTypes.func,\n rotationAngle: PropTypes.number\n};\nSwipeable.defaultProps = defaultProps;\n\nexport { DOWN, LEFT, RIGHT, Swipeable, UP, useSwipeable };\n","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/prev-white.2d46f7a8.svg\";","import {\r\n Alert,\r\n Button,\r\n Col,\r\n Divider,\r\n Form,\r\n Input,\r\n Row,\r\n notification,\r\n} from \"antd\";\r\n\r\nimport { FormComponentProps } from \"antd/lib/form\";\r\nimport { Mutation } from \"../../../generated/graphql\";\r\nimport ReCAPTCHA from \"react-google-recaptcha\";\r\nimport React from \"react\";\r\nimport TextArea from \"antd/lib/input/TextArea\";\r\nimport { css } from \"@emotion/core\";\r\nimport { formatCurrency } from \"../../../utils/format\";\r\nimport { loader } from \"graphql.macro\";\r\nimport { useAuthPopupState } from \"../../../context/AuthPopupContext\";\r\nimport { useDetailsFlowState } from \"../../../context/DetailsFlowContext\";\r\nimport { useModalFlowDispatch } from \"../../../context/ModalContext\";\r\nimport { useMutation } from \"react-apollo\";\r\n\r\nconst SEND_BUY_LEAD = loader(\"../../RequestInformation/buyLead.graphql\");\r\n// const SEND_PRIVATE_SELLER_MESSAGE = loader(\r\n// \"../RequestInformation/sellerMessage.graphql\"\r\n// );\r\n\r\ninterface Props extends FormComponentProps {\r\n submitForm: Function;\r\n privateVehicle: any;\r\n}\r\n\r\nconst RequestInfoForm: React.FC = ({\r\n form,\r\n submitForm,\r\n privateVehicle,\r\n}) => {\r\n const dispatch = useModalFlowDispatch();\r\n const state = useAuthPopupState();\r\n const detailState = useDetailsFlowState();\r\n const { FirstName, LastName, Email, Mobile } = state;\r\n\r\n const { make, model, listingYear, price, listingId } = detailState;\r\n const MESSAGE = `I am interested in your ${listingYear} ${make} ${model}`;\r\n\r\n const [buyLeadMutationResult, { data: buyLeadResponse, error }] = useMutation<\r\n Mutation\r\n >(SEND_BUY_LEAD);\r\n\r\n const [reCaptchaVerified, setReCaptchaVerified] = React.useState(\r\n false\r\n );\r\n\r\n const handleRequest = (e: React.FormEvent) => {\r\n e.preventDefault();\r\n form.validateFields(async (error, values) => {\r\n console.log(values);\r\n if (!error) {\r\n const { firstName, lastName, email, phone, message } = values;\r\n // try {\r\n // const { data } = await buyLeadMutationResult({\r\n // variables: {\r\n // FirstName: firstName,\r\n // LastName: lastName,\r\n // Email: email,\r\n // Phone: phone,\r\n // Message: message,\r\n // ListingId: Number(listingId),\r\n // LeadTypeId: 4,\r\n // ActivityTypeId: 1,\r\n // },\r\n // });\r\n\r\n // console.log(data);\r\n // if (data?.sendLead?.success === true) {\r\n // dispatch({\r\n // type: \"HIDE_REQUEST_INFO_MODAL\",\r\n // args: {\r\n // showRequestInfoModal: false,\r\n // },\r\n // });\r\n\r\n // notification.success({\r\n // message: \"We have sent your message to the Dealer\",\r\n // placement: \"bottomLeft\",\r\n // });\r\n // }\r\n // } catch (error) {\r\n // // notification.error({ message: \"Could not send your message\" });\r\n // }\r\n\r\n submitForm(values);\r\n }\r\n });\r\n };\r\n\r\n const handleReCaptcha = () => {\r\n setReCaptchaVerified(false);\r\n // setSubmitting(undefined);\r\n };\r\n\r\n return (\r\n \r\n
    \r\n {/* \r\n

    Send a message about Trade-In on this vehicle

    \r\n
    */}\r\n \r\n {privateVehicle === false && (\r\n <>\r\n \r\n \r\n {form.getFieldDecorator(\"firstName\", {\r\n initialValue: FirstName,\r\n rules: [\r\n {\r\n required: true,\r\n },\r\n ],\r\n })(\r\n \r\n )}\r\n \r\n \r\n\r\n \r\n \r\n {form.getFieldDecorator(\"lastName\", {\r\n initialValue: LastName,\r\n rules: [\r\n {\r\n required: true,\r\n },\r\n ],\r\n })(\r\n \r\n )}\r\n \r\n \r\n\r\n \r\n \r\n {form.getFieldDecorator(\"email\", {\r\n initialValue: Email,\r\n rules: [\r\n {\r\n type: \"email\",\r\n required: true,\r\n },\r\n ],\r\n })(\r\n \r\n )}\r\n \r\n \r\n\r\n \r\n \r\n {form.getFieldDecorator(\"phone\", {\r\n initialValue: Mobile,\r\n rules: [\r\n {\r\n required: false,\r\n },\r\n ],\r\n })(\r\n \r\n )}\r\n \r\n \r\n \r\n )}\r\n\r\n \r\n \r\n {form.getFieldDecorator(\"message\", {\r\n initialValue:\r\n price && price > 0\r\n ? MESSAGE +\r\n \" \" +\r\n `listed for ${formatCurrency(Number(price))}.`\r\n : MESSAGE,\r\n rules: [\r\n {\r\n required: false,\r\n },\r\n ],\r\n })(\r\n \r\n )}\r\n \r\n\r\n \r\n setReCaptchaVerified(true)}\r\n onErrored={handleReCaptcha}\r\n onExpired={handleReCaptcha}\r\n />\r\n \r\n \r\n\r\n {error && (\r\n \r\n \r\n \r\n )}\r\n\r\n \r\n\r\n \r\n \r\n {privateVehicle === false\r\n ? \"Request Information\"\r\n : \"Send Message\"}\r\n \r\n \r\n \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default Form.create()(RequestInfoForm);\r\n","import {\r\n Alert,\r\n Button,\r\n Col,\r\n Divider,\r\n Icon,\r\n Modal,\r\n Row,\r\n notification,\r\n} from \"antd\";\r\nimport { ListingDetail, Mutation } from \"../../generated/graphql\";\r\nimport {\r\n useAuthPopupDispatch,\r\n useAuthPopupState,\r\n} from \"../../context/AuthPopupContext\";\r\n\r\nimport ReCAPTCHA from \"react-google-recaptcha\";\r\nimport React from \"react\";\r\nimport RequestInfoForm from \"./components/RequestInfoForm\";\r\nimport Text from \"antd/lib/typography/Text\";\r\nimport { css } from \"@emotion/core\";\r\nimport { formatCurrency } from \"../../utils/format\";\r\nimport { loader } from \"graphql.macro\";\r\nimport { useMutation } from \"react-apollo\";\r\n\r\nconst SEND_BUY_LEAD = loader(\"../RequestInformation/buyLead.graphql\");\r\nconst SEND_PRIVATE_SELLER_MESSAGE = loader(\r\n \"../RequestInformation/sellerMessage.graphql\"\r\n);\r\n\r\ninterface Props {\r\n listingDetail: ListingDetail;\r\n isRequested: boolean;\r\n close: Function;\r\n}\r\nconst RequestInformationModal: React.FC = ({\r\n listingDetail,\r\n isRequested,\r\n close,\r\n}) => {\r\n const dispatch = useAuthPopupDispatch();\r\n const state = useAuthPopupState();\r\n\r\n const { isLoggedIn, FirstName, LastName, Email, Mobile } = state;\r\n const {\r\n make,\r\n model,\r\n listingYear,\r\n price,\r\n privateVehicle,\r\n listingId,\r\n userId: sellerId,\r\n } = listingDetail;\r\n\r\n const verifyFields = () => {\r\n if (privateVehicle !== false) {\r\n if (description && description.length > 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n } else {\r\n if (\r\n firstName &&\r\n firstName.replace(\" \", \"\").length > 0 &&\r\n lastName &&\r\n lastName.replace(\" \", \"\").length > 0 &&\r\n email &&\r\n email.replace(\" \", \"\") &&\r\n // phone &&\r\n // phone.replace(\" \", \"\") &&\r\n description &&\r\n description.length > 0\r\n ) {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n };\r\n\r\n const handleReCaptcha = () => {\r\n setReCaptchaVerified(false);\r\n setSubmitting(undefined);\r\n };\r\n\r\n const [firstName, setFirstName] = React.useState(FirstName);\r\n const [lastName, setLastName] = React.useState(LastName);\r\n const [email, setEmail] = React.useState(Email);\r\n const [phone, setPhone] = React.useState(Mobile);\r\n const [description, setDescription] = React.useState(\r\n `I am interested in your ${listingYear} ${make} ${model}`\r\n );\r\n\r\n const [isSubmitting, setSubmitting] = React.useState(false);\r\n\r\n const [reCaptchaVerified, setReCaptchaVerified] = React.useState(\r\n false\r\n );\r\n\r\n const [buyLeadMutationResult] = useMutation(SEND_BUY_LEAD);\r\n const [sendMessageResult] = useMutation(\r\n SEND_PRIVATE_SELLER_MESSAGE\r\n );\r\n\r\n const HeaderMsg =\r\n privateVehicle === false\r\n ? `Contact dealer`.toUpperCase()\r\n : `Contact Seller`.toUpperCase();\r\n\r\n const handleRequestForm = async (values: any) => {\r\n setSubmitting(true);\r\n if (!isLoggedIn) {\r\n dispatch({ type: \"SHOW_LOGIN\" });\r\n } else {\r\n const { firstName, lastName, email, phone, message } = values;\r\n try {\r\n switch (privateVehicle) {\r\n case false:\r\n await buyLeadMutationResult({\r\n variables: {\r\n FirstName: firstName,\r\n LastName: lastName,\r\n Email: email,\r\n Phone: Mobile,\r\n Message: message,\r\n ListingId: listingId,\r\n LeadTypeId: 3,\r\n ActivityTypeId: 1,\r\n },\r\n });\r\n break;\r\n\r\n default:\r\n await sendMessageResult({\r\n variables: {\r\n ListingId: listingId.toString(),\r\n Message: message,\r\n RecipientUserId: sellerId,\r\n },\r\n });\r\n break;\r\n }\r\n\r\n notification.success({\r\n message:\r\n \"Thank you for submitting your request. You will be contacted via email/phone you provided.\",\r\n });\r\n } catch (error) {\r\n notification.error({\r\n message: \"Oops, There was some error ending your Request\",\r\n });\r\n }\r\n console.log(\"form\", firstName, lastName, email, phone, description);\r\n }\r\n\r\n setSubmitting(false);\r\n close();\r\n };\r\n\r\n // if (\r\n // isSubmitting === false &&\r\n // sendMessageResponse?.SendMessageToSeller.success === false\r\n // ) {\r\n // notification.error({\r\n // message: \"Oops, There was some error ending your Request\",\r\n // });\r\n // }\r\n\r\n return (\r\n // \r\n // close()}\r\n // css={css`\r\n // @media (max-width: 768px) {\r\n // height: 100vh;\r\n // margin: 0;\r\n // top: 0;\r\n // min-width: 100%;\r\n // .ant-modal-body {\r\n // height: 100% !important;\r\n // // overflow: hidden;\r\n // }\r\n // }\r\n // .ant-modal-close-x {\r\n // color: gray;\r\n // }\r\n // .ant-modal-close {\r\n // display: none;\r\n // }\r\n // `}\r\n // >\r\n // \r\n // \r\n //
    \r\n\r\n
    \r\n close()}\r\n css={css`\r\n .ant-modal-close-x {\r\n color: gray;\r\n }\r\n .ant-modal-close {\r\n display: none;\r\n }\r\n @media (max-width: 768px) {\r\n // height: 80vh;\r\n margin: 0;\r\n // top: 0;\r\n bottom: 0;\r\n max-width: 100%;\r\n .ant-modal-body {\r\n height: fit-content !important;\r\n overflow: hidden;\r\n }\r\n }\r\n `}\r\n style={{}}\r\n // visible={state.showRequestInfoModal}\r\n // footer={null}\r\n // closable\r\n // onCancel={() =>\r\n // dispatch({\r\n // type: \"HIDE_REQUEST_INFO_MODAL\",\r\n // args: {\r\n // showRequestInfoModal: false,\r\n // },\r\n // })\r\n // }\r\n >\r\n {/* */}\r\n \r\n

    {HeaderMsg}

    \r\n \r\n\r\n \r\n close()} />\r\n \r\n {/* */}\r\n\r\n \r\n\r\n \r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default RequestInformationModal;\r\n","import { Col, Icon, Row } from \"antd\";\r\n\r\nimport { ReactComponent as Call } from \"../../assets/svgs/phone.svg\";\r\nimport { ReactComponent as Edit } from \"../../assets/svgs/open_site.svg\";\r\nimport { ListingDetail } from \"../../generated/graphql\";\r\nimport { ReactComponent as Location } from \"../../assets/svgs/location.svg\";\r\nimport { ReactComponent as Message } from \"../../assets/svgs/sms.svg\";\r\nimport React from \"react\";\r\nimport { css } from \"@emotion/core\";\r\nimport { formatPhoneNumber } from \"../../utils/format\";\r\n\r\ninterface Props {\r\n listingDetail: ListingDetail;\r\n}\r\n\r\nconst DealerInformation: React.FC = ({ listingDetail }) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n See this ride and more at:\r\n \r\n \r\n {listingDetail.userName || \"N/A\"}\r\n \r\n
    \r\n\r\n \r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n {listingDetail.dealerAddress || \"N/A\"}\r\n \r\n
    \r\n \r\n
    \r\n \r\n\r\n {/* Dealer Name and Logo */}\r\n \r\n \r\n {listingDetail.listerLogo && (\r\n
    \r\n \r\n
    \r\n )}\r\n
    \r\n \r\n
    \r\n\r\n \r\n {listingDetail.listerPhone && listingDetail.listerPhone.length >= 10 && (\r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n \r\n \r\n {formatPhoneNumber(listingDetail.listerPhone) || \"N/A\"}\r\n \r\n
    \r\n
    \r\n \r\n\r\n \r\n \r\n
    \r\n \r\n
    \r\n \r\n \r\n {formatPhoneNumber(listingDetail.listerPhone) || \"N/A\"}\r\n \r\n
    \r\n
    \r\n \r\n \r\n )}\r\n\r\n \r\n \r\n \r\n {/* \r\n window.open(listingDetail.dealerSite?.toString(), \"_blank\")\r\n }\r\n > */}\r\n {/* */}\r\n \r\n \r\n Visit website\r\n \r\n {/* */}\r\n
    \r\n \r\n\r\n {/* \r\n \r\n \r\n \r\n Visit Inventory\r\n \r\n
    \r\n */}\r\n \r\n \r\n\r\n \r\n {listingDetail.dealerMessage !== \"\" && (\r\n <>\r\n \r\n \r\n About our location\r\n \r\n \r\n\r\n \r\n {listingDetail?.dealerMessage}\r\n

    \r\n \r\n )}\r\n\r\n \r\n \r\n \r\n {/* \r\n window.open(listingDetail.dealerSite?.toString(), \"_blank\")\r\n }\r\n > */}\r\n \r\n \r\n Visit website\r\n \r\n {/* */}\r\n \r\n \r\n\r\n {listingDetail.listerPhone && (\r\n \r\n \r\n {\" \"}\r\n \r\n\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default DealerInformation;\r\n","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 =\n/*#__PURE__*/\n\n/*#__PURE__*/\nReact.createElement(\"path\", {\n d: \"M0 0h24v24H0V0z\",\n fill: \"none\"\n});\n\nvar _ref3 =\n/*#__PURE__*/\n\n/*#__PURE__*/\nReact.createElement(\"path\", {\n d: \"M12 17.3l6.2 3.7-1.6-7L22 9.2l-7.2-.6L12 2 9.2 8.6 2 9.2 7.5 14l-1.6 7 6.1-3.7z\"\n});\n\nvar SvgStar24Px = function SvgStar24Px(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"0 0 24 24\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3);\n};\n\nvar ForwardRef = React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgStar24Px, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/star-24px.17d52911.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 =\n/*#__PURE__*/\n\n/*#__PURE__*/\nReact.createElement(\"path\", {\n d: \"M22 9.24l-7.19-.62L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21 12 17.27 18.18 21l-1.63-7.03L22 9.24zM12 15.4l-3.76 2.27 1-4.28-3.32-2.88 4.38-.38L12 6.1l1.71 4.04 4.38.38-3.32 2.88 1 4.28L12 15.4z\"\n});\n\nvar SvgStarOutline24Px = function SvgStarOutline24Px(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n height: 24,\n viewBox: \"0 0 24 24\",\n width: 24,\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgStarOutline24Px, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/star_outline-24px.1352fd55.svg\";\nexport { ForwardRef as ReactComponent };","import \"react-image-gallery/styles/css/image-gallery.css\";\r\n\r\nimport {\r\n BigPlayButton,\r\n ControlBar,\r\n CurrentTimeDisplay,\r\n ForwardControl,\r\n PlaybackRateMenuButton,\r\n Player,\r\n ReplayControl,\r\n TimeDivider,\r\n VolumeMenuButton,\r\n} from \"video-react\";\r\nimport { SerializedStyles, css } from \"@emotion/core\";\r\n\r\nimport { Icon } from \"antd\";\r\nimport React from \"react\";\r\nimport ReactImageGallery from \"react-image-gallery\";\r\nimport VideoLogo from \"./images/play-button.png\";\r\n// import WatchListButton from \"../VehicleCard/WatchListButton\";\r\nimport { breakpoints } from \"../../constants\";\r\n\r\nconst JUMP_INDEX = 1;\r\ninterface Props {\r\n images: any;\r\n itemId: number;\r\n}\r\n\r\nconst Status: React.FC<{\r\n currentIndex: number;\r\n isFullScreen: boolean;\r\n total: number;\r\n}> = ({ currentIndex, total, isFullScreen }) => {\r\n if (total === 0) {\r\n return null;\r\n }\r\n return (\r\n \r\n {currentIndex + 1} of {total}\r\n \r\n );\r\n};\r\n\r\nconst ExitFullScreen: React.FC<{\r\n image: string;\r\n onClick: () => void;\r\n}> = ({ image, onClick }) => {\r\n return (\r\n onClick()}\r\n css={css`\r\n position: absolute;\r\n z-index: 9;\r\n padding: 10px;\r\n border: none;\r\n top: 10px !important;\r\n color: white;\r\n right: 10px;\r\n font-size: 31px;\r\n cursor: pointer;\r\n @media (min-width: ${breakpoints.sm}) {\r\n top: 12rem;\r\n }\r\n `}\r\n >\r\n \r\n \r\n );\r\n};\r\n\r\nconst NavButton: React.FC<{\r\n // disabled: boolean;\r\n onClick: (e: any) => void;\r\n icon: any;\r\n cssStyle?: SerializedStyles;\r\n isFullScreen: boolean;\r\n // add disabled bellow in next line before onclickto disable the scroll uncomment all disable.\r\n}> = ({ onClick, icon, cssStyle, isFullScreen }) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst ImageGallery: React.FC = ({ images, itemId }) => {\r\n const imageGalleryRef = React.useRef();\r\n const [currentIndex, setCurrentIndex] = React.useState(0);\r\n const [isFullScreen, setIsFullScreen] = React.useState(false);\r\n\r\n if (images.length === 0) {\r\n images = [\"https://i.imgur.com/CKh5twL.png\"];\r\n }\r\n\r\n const getCurrentIndex = () => {\r\n if (imageGalleryRef && imageGalleryRef.current) {\r\n return imageGalleryRef.current.getCurrentIndex();\r\n }\r\n return 0;\r\n };\r\n const slideToIndex = (index: number) => {\r\n if (imageGalleryRef && imageGalleryRef.current) {\r\n return imageGalleryRef.current.slideToIndex(index);\r\n }\r\n };\r\n\r\n const exitFullScreen = () => {\r\n if (imageGalleryRef && imageGalleryRef.current) {\r\n imageGalleryRef.current.exitFullScreen();\r\n }\r\n };\r\n\r\n const pause = () => {\r\n if (imageGalleryRef && imageGalleryRef.current) {\r\n imageGalleryRef.current.pause();\r\n }\r\n };\r\n const source = images\r\n .filter((img: any) => !/webp/gi.test(img.fileUrl))\r\n .filter((img: any) => !/heic/gi.test(img.fileUrl))\r\n .filter((img: any) => !/wmv/gi.test(img.fileUrl))\r\n .filter((img: any) => !/mov/gi.test(img.fileUrl))\r\n .sort((a: any, b: any) => {\r\n return b.attachmentTypeId - a.attachmentTypeId;\r\n })\r\n .map((item: any) => {\r\n if (item.attachmentTypeId === 1) {\r\n // render image\r\n return {\r\n original: item.fileUrl,\r\n thumbnail: item.fileUrl,\r\n };\r\n }\r\n return {\r\n embedUrl: item.fileUrl,\r\n thumbnail: VideoLogo,\r\n renderItem: (data: any) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ),\r\n };\r\n });\r\n\r\n return (\r\n \r\n {/* {isFullScreen ? null : (\r\n */}\r\n {/* */}\r\n {/* hello\r\n \r\n )} */}\r\n \r\n {\r\n if (ref) {\r\n imageGalleryRef.current = ref;\r\n }\r\n }}\r\n slideOnThumbnailHover={true}\r\n // items={images.map((item: any) => {\r\n // return {\r\n // original: item.fileUrl,\r\n // thumbnail: item.fileUrl,\r\n // };\r\n // })}\r\n items={source}\r\n onSlide={(index) => {\r\n setCurrentIndex(index);\r\n }}\r\n // to make ,disabled add disabled below\r\n renderRightNav={(onClick) => {\r\n const currentIndex = getCurrentIndex();\r\n let toIndex = images.length - 1;\r\n if (currentIndex + JUMP_INDEX < images.length) {\r\n toIndex = currentIndex + JUMP_INDEX;\r\n }\r\n // to make infinite scroll\r\n if (currentIndex + JUMP_INDEX === images.length) {\r\n toIndex = 0;\r\n }\r\n setCurrentIndex(toIndex);\r\n\r\n return (\r\n slideToIndex(toIndex)}\r\n // disabled={disabled || currentIndex == images.length - 1}\r\n icon={require(\"../../assets/images/next-white.png\")}\r\n />\r\n );\r\n }}\r\n // to make ,disabled add disabled below\r\n renderLeftNav={(onClick) => {\r\n const currentIndex = getCurrentIndex();\r\n let toIndex = 0;\r\n if (currentIndex - JUMP_INDEX >= 0) {\r\n toIndex = currentIndex - JUMP_INDEX;\r\n }\r\n // to make infinite scroll\r\n if (currentIndex - JUMP_INDEX < 0) {\r\n toIndex = images.length - 1;\r\n }\r\n setCurrentIndex(toIndex);\r\n return (\r\n slideToIndex(toIndex)}\r\n // disabled={disabled || currentIndex == 0}\r\n icon={require(\"../../assets/svgs/prev-white.svg\")}\r\n />\r\n );\r\n }}\r\n renderFullscreenButton={(onClick, isFullScreen) => {\r\n if (isFullScreen) {\r\n return (\r\n exitFullScreen()}\r\n />\r\n );\r\n }\r\n return (\r\n {\r\n setIsFullScreen(true);\r\n pause();\r\n onClick(e);\r\n }}\r\n >\r\n \r\n \r\n );\r\n }}\r\n onScreenChange={(full) => {\r\n if (typeof full === \"boolean\") {\r\n setIsFullScreen(full);\r\n }\r\n }}\r\n renderPlayPauseButton={(onClick, isPlaying) => {\r\n if (images.length <= 1) {\r\n return null;\r\n }\r\n return (\r\n {\r\n onClick(e);\r\n }}\r\n >\r\n {isPlaying ? : }\r\n \r\n );\r\n }}\r\n />\r\n \r\n );\r\n};\r\n\r\nexport default ImageGallery;\r\n","import * as React from \"react\";\r\n\r\nimport { Spin } from \"antd\";\r\nimport { css } from \"@emotion/core\";\r\n\r\nconst LoadingPage: React.FC = () => (\r\n \r\n \r\n \r\n);\r\n\r\nexport default LoadingPage;\r\n","import _extends from 'babel-runtime/helpers/extends';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport React from 'react';\nimport classNames from 'classnames';\n\nvar TouchFeedback = function (_React$Component) {\n _inherits(TouchFeedback, _React$Component);\n\n function TouchFeedback() {\n _classCallCheck(this, TouchFeedback);\n\n var _this = _possibleConstructorReturn(this, (TouchFeedback.__proto__ || Object.getPrototypeOf(TouchFeedback)).apply(this, arguments));\n\n _this.state = {\n active: false\n };\n _this.onTouchStart = function (e) {\n _this.triggerEvent('TouchStart', true, e);\n };\n _this.onTouchMove = function (e) {\n _this.triggerEvent('TouchMove', false, e);\n };\n _this.onTouchEnd = function (e) {\n _this.triggerEvent('TouchEnd', false, e);\n };\n _this.onTouchCancel = function (e) {\n _this.triggerEvent('TouchCancel', false, e);\n };\n _this.onMouseDown = function (e) {\n // pc simulate mobile\n _this.triggerEvent('MouseDown', true, e);\n };\n _this.onMouseUp = function (e) {\n _this.triggerEvent('MouseUp', false, e);\n };\n _this.onMouseLeave = function (e) {\n _this.triggerEvent('MouseLeave', false, e);\n };\n return _this;\n }\n\n _createClass(TouchFeedback, [{\n key: 'componentDidUpdate',\n value: function componentDidUpdate() {\n if (this.props.disabled && this.state.active) {\n this.setState({\n active: false\n });\n }\n }\n }, {\n key: 'triggerEvent',\n value: function triggerEvent(type, isActive, ev) {\n var eventType = 'on' + type;\n var children = this.props.children;\n\n if (children.props[eventType]) {\n children.props[eventType](ev);\n }\n if (isActive !== this.state.active) {\n this.setState({\n active: isActive\n });\n }\n }\n }, {\n key: 'render',\n value: function render() {\n var _props = this.props,\n children = _props.children,\n disabled = _props.disabled,\n activeClassName = _props.activeClassName,\n activeStyle = _props.activeStyle;\n\n var events = disabled ? undefined : {\n onTouchStart: this.onTouchStart,\n onTouchMove: this.onTouchMove,\n onTouchEnd: this.onTouchEnd,\n onTouchCancel: this.onTouchCancel,\n onMouseDown: this.onMouseDown,\n onMouseUp: this.onMouseUp,\n onMouseLeave: this.onMouseLeave\n };\n var child = React.Children.only(children);\n if (!disabled && this.state.active) {\n var _child$props = child.props,\n style = _child$props.style,\n className = _child$props.className;\n\n if (activeStyle !== false) {\n if (activeStyle) {\n style = _extends({}, style, activeStyle);\n }\n className = classNames(className, activeClassName);\n }\n return React.cloneElement(child, _extends({ className: className,\n style: style }, events));\n }\n return React.cloneElement(child, events);\n }\n }]);\n\n return TouchFeedback;\n}(React.Component);\n\nexport default TouchFeedback;\n\nTouchFeedback.defaultProps = {\n disabled: false\n};","import _objectWithoutProperties from 'babel-runtime/helpers/objectWithoutProperties';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport Touchable from 'rmc-feedback';\n\nvar InputHandler = function (_Component) {\n _inherits(InputHandler, _Component);\n\n function InputHandler() {\n _classCallCheck(this, InputHandler);\n\n return _possibleConstructorReturn(this, _Component.apply(this, arguments));\n }\n\n InputHandler.prototype.render = function render() {\n var _props = this.props,\n prefixCls = _props.prefixCls,\n disabled = _props.disabled,\n otherProps = _objectWithoutProperties(_props, ['prefixCls', 'disabled']);\n\n return React.createElement(\n Touchable,\n {\n disabled: disabled,\n activeClassName: prefixCls + '-handler-active'\n },\n React.createElement('span', otherProps)\n );\n };\n\n return InputHandler;\n}(Component);\n\nInputHandler.propTypes = {\n prefixCls: PropTypes.string,\n disabled: PropTypes.bool,\n onTouchStart: PropTypes.func,\n onTouchEnd: PropTypes.func,\n onMouseDown: PropTypes.func,\n onMouseUp: PropTypes.func,\n onMouseLeave: PropTypes.func\n};\n\nexport default InputHandler;","import _objectWithoutProperties from 'babel-runtime/helpers/objectWithoutProperties';\nimport _extends from 'babel-runtime/helpers/extends';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport KeyCode from 'rc-util/es/KeyCode';\nimport InputHandler from './InputHandler';\n\nfunction noop() {}\n\nfunction preventDefault(e) {\n e.preventDefault();\n}\n\nfunction defaultParser(input) {\n return input.replace(/[^\\w\\.-]+/g, '');\n}\n\n/**\n * When click and hold on a button - the speed of auto changin the value.\n */\nvar SPEED = 200;\n\n/**\n * When click and hold on a button - the delay before auto changin the value.\n */\nvar DELAY = 600;\n\n/**\n * Max Safe Integer -- on IE this is not available, so manually set the number in that case.\n * The reason this is used, instead of Infinity is because numbers above the MSI are unstable\n */\nvar MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || Math.pow(2, 53) - 1;\n\nvar isValidProps = function isValidProps(value) {\n return value !== undefined && value !== null;\n};\n\nvar InputNumber = function (_React$Component) {\n _inherits(InputNumber, _React$Component);\n\n function InputNumber(props) {\n _classCallCheck(this, InputNumber);\n\n var _this = _possibleConstructorReturn(this, _React$Component.call(this, props));\n\n _initialiseProps.call(_this);\n\n var value = void 0;\n if ('value' in props) {\n value = props.value;\n } else {\n value = props.defaultValue;\n }\n _this.state = {\n focused: props.autoFocus\n };\n var validValue = _this.getValidValue(_this.toNumber(value));\n _this.state = _extends({}, _this.state, {\n inputValue: _this.toPrecisionAsStep(validValue),\n value: validValue\n });\n return _this;\n }\n\n InputNumber.prototype.componentDidMount = function componentDidMount() {\n this.componentDidUpdate();\n };\n\n InputNumber.prototype.componentDidUpdate = function componentDidUpdate(prevProps) {\n var _props = this.props,\n value = _props.value,\n onChange = _props.onChange,\n max = _props.max,\n min = _props.min;\n var focused = this.state.focused;\n\n // Don't trigger in componentDidMount\n\n if (prevProps) {\n if (prevProps.value !== value || prevProps.max !== max || prevProps.min !== min) {\n var validValue = focused ? value : this.getValidValue(value);\n var nextInputValue = void 0;\n if (this.pressingUpOrDown) {\n nextInputValue = validValue;\n } else if (this.inputting) {\n nextInputValue = this.rawInput;\n } else {\n nextInputValue = this.toPrecisionAsStep(validValue);\n }\n this.setState({ // eslint-disable-line\n value: validValue,\n inputValue: nextInputValue\n });\n }\n\n // Trigger onChange when max or min change\n // https://github.com/ant-design/ant-design/issues/11574\n var nextValue = 'value' in this.props ? value : this.state.value;\n // ref: null < 20 === true\n // https://github.com/ant-design/ant-design/issues/14277\n if ('max' in this.props && prevProps.max !== max && typeof nextValue === 'number' && nextValue > max && onChange) {\n onChange(max);\n }\n if ('min' in this.props && prevProps.min !== min && typeof nextValue === 'number' && nextValue < min && onChange) {\n onChange(min);\n }\n }\n\n // Restore cursor\n try {\n // Firefox set the input cursor after it get focused.\n // This caused that if an input didn't init with the selection,\n // set will cause cursor not correct when first focus.\n // Safari will focus input if set selection. We need skip this.\n if (this.cursorStart !== undefined && this.state.focused) {\n // In most cases, the string after cursor is stable.\n // We can move the cursor before it\n\n if (\n // If not match full str, try to match part of str\n !this.partRestoreByAfter(this.cursorAfter) && this.state.value !== this.props.value) {\n // If not match any of then, let's just keep the position\n // TODO: Logic should not reach here, need check if happens\n var pos = this.cursorStart + 1;\n\n // If not have last string, just position to the end\n if (!this.cursorAfter) {\n pos = this.input.value.length;\n } else if (this.lastKeyCode === KeyCode.BACKSPACE) {\n pos = this.cursorStart - 1;\n } else if (this.lastKeyCode === KeyCode.DELETE) {\n pos = this.cursorStart;\n }\n this.fixCaret(pos, pos);\n } else if (this.currentValue === this.input.value) {\n // Handle some special key code\n switch (this.lastKeyCode) {\n case KeyCode.BACKSPACE:\n this.fixCaret(this.cursorStart - 1, this.cursorStart - 1);\n break;\n case KeyCode.DELETE:\n this.fixCaret(this.cursorStart + 1, this.cursorStart + 1);\n break;\n default:\n // Do nothing\n }\n }\n }\n } catch (e) {}\n // Do nothing\n\n\n // Reset last key\n this.lastKeyCode = null;\n\n // pressingUpOrDown is true means that someone just click up or down button\n if (!this.pressingUpOrDown) {\n return;\n }\n if (this.props.focusOnUpDown && this.state.focused) {\n if (document.activeElement !== this.input) {\n this.focus();\n }\n }\n\n this.pressingUpOrDown = false;\n };\n\n InputNumber.prototype.componentWillUnmount = function componentWillUnmount() {\n this.stop();\n };\n\n InputNumber.prototype.getCurrentValidValue = function getCurrentValidValue(value) {\n var val = value;\n if (val === '') {\n val = '';\n } else if (!this.isNotCompleteNumber(parseFloat(val, 10))) {\n val = this.getValidValue(val);\n } else {\n val = this.state.value;\n }\n return this.toNumber(val);\n };\n\n InputNumber.prototype.getRatio = function getRatio(e) {\n var ratio = 1;\n if (e.metaKey || e.ctrlKey) {\n ratio = 0.1;\n } else if (e.shiftKey) {\n ratio = 10;\n }\n return ratio;\n };\n\n InputNumber.prototype.getValueFromEvent = function getValueFromEvent(e) {\n // optimize for chinese input expierence\n // https://github.com/ant-design/ant-design/issues/8196\n var value = e.target.value.trim().replace(/。/g, '.');\n\n if (isValidProps(this.props.decimalSeparator)) {\n value = value.replace(this.props.decimalSeparator, '.');\n }\n\n return value;\n };\n\n InputNumber.prototype.getValidValue = function getValidValue(value) {\n var min = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.props.min;\n var max = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : this.props.max;\n\n var val = parseFloat(value, 10);\n // https://github.com/ant-design/ant-design/issues/7358\n if (isNaN(val)) {\n return value;\n }\n if (val < min) {\n val = min;\n }\n if (val > max) {\n val = max;\n }\n return val;\n };\n\n InputNumber.prototype.setValue = function setValue(v, callback) {\n // trigger onChange\n var precision = this.props.precision;\n\n var newValue = this.isNotCompleteNumber(parseFloat(v, 10)) ? null : parseFloat(v, 10);\n var _state = this.state,\n _state$value = _state.value,\n value = _state$value === undefined ? null : _state$value,\n _state$inputValue = _state.inputValue,\n inputValue = _state$inputValue === undefined ? null : _state$inputValue;\n // https://github.com/ant-design/ant-design/issues/7363\n // https://github.com/ant-design/ant-design/issues/16622\n\n var newValueInString = typeof newValue === 'number' ? newValue.toFixed(precision) : '' + newValue;\n var changed = newValue !== value || newValueInString !== '' + inputValue;\n if (!('value' in this.props)) {\n this.setState({\n value: newValue,\n inputValue: this.toPrecisionAsStep(v)\n }, callback);\n } else {\n // always set input value same as value\n this.setState({\n inputValue: this.toPrecisionAsStep(this.state.value)\n }, callback);\n }\n if (changed) {\n this.props.onChange(newValue);\n }\n\n return newValue;\n };\n\n InputNumber.prototype.getPrecision = function getPrecision(value) {\n if (isValidProps(this.props.precision)) {\n return this.props.precision;\n }\n var valueString = value.toString();\n if (valueString.indexOf('e-') >= 0) {\n return parseInt(valueString.slice(valueString.indexOf('e-') + 2), 10);\n }\n var precision = 0;\n if (valueString.indexOf('.') >= 0) {\n precision = valueString.length - valueString.indexOf('.') - 1;\n }\n return precision;\n };\n\n // step={1.0} value={1.51}\n // press +\n // then value should be 2.51, rather than 2.5\n // if this.props.precision is undefined\n // https://github.com/react-component/input-number/issues/39\n\n\n InputNumber.prototype.getMaxPrecision = function getMaxPrecision(currentValue) {\n var ratio = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n var _props2 = this.props,\n precision = _props2.precision,\n step = _props2.step;\n\n if (isValidProps(precision)) {\n return precision;\n }\n var ratioPrecision = this.getPrecision(ratio);\n var stepPrecision = this.getPrecision(step);\n var currentValuePrecision = this.getPrecision(currentValue);\n if (!currentValue) {\n return ratioPrecision + stepPrecision;\n }\n return Math.max(currentValuePrecision, ratioPrecision + stepPrecision);\n };\n\n InputNumber.prototype.getPrecisionFactor = function getPrecisionFactor(currentValue) {\n var ratio = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n\n var precision = this.getMaxPrecision(currentValue, ratio);\n return Math.pow(10, precision);\n };\n\n InputNumber.prototype.fixCaret = function fixCaret(start, end) {\n if (start === undefined || end === undefined || !this.input || !this.input.value) {\n return;\n }\n\n try {\n var currentStart = this.input.selectionStart;\n var currentEnd = this.input.selectionEnd;\n\n if (start !== currentStart || end !== currentEnd) {\n this.input.setSelectionRange(start, end);\n }\n } catch (e) {\n // Fix error in Chrome:\n // Failed to read the 'selectionStart' property from 'HTMLInputElement'\n // http://stackoverflow.com/q/21177489/3040605\n }\n };\n\n InputNumber.prototype.focus = function focus() {\n this.input.focus();\n this.recordCursorPosition();\n };\n\n InputNumber.prototype.blur = function blur() {\n this.input.blur();\n };\n\n InputNumber.prototype.formatWrapper = function formatWrapper(num) {\n // http://2ality.com/2012/03/signedzero.html\n // https://github.com/ant-design/ant-design/issues/9439\n if (this.props.formatter) {\n return this.props.formatter(num);\n }\n return num;\n };\n\n InputNumber.prototype.toPrecisionAsStep = function toPrecisionAsStep(num) {\n if (this.isNotCompleteNumber(num) || num === '') {\n return num;\n }\n var precision = Math.abs(this.getMaxPrecision(num));\n if (!isNaN(precision)) {\n return Number(num).toFixed(precision);\n }\n return num.toString();\n };\n\n // '1.' '1x' 'xx' '' => are not complete numbers\n\n\n InputNumber.prototype.isNotCompleteNumber = function isNotCompleteNumber(num) {\n return isNaN(num) || num === '' || num === null || num && num.toString().indexOf('.') === num.toString().length - 1;\n };\n\n InputNumber.prototype.toNumber = function toNumber(num) {\n var precision = this.props.precision;\n var focused = this.state.focused;\n // num.length > 16 => This is to prevent input of large numbers\n\n var numberIsTooLarge = num && num.length > 16 && focused;\n if (this.isNotCompleteNumber(num) || numberIsTooLarge) {\n return num;\n }\n if (isValidProps(precision)) {\n return Math.round(num * Math.pow(10, precision)) / Math.pow(10, precision);\n }\n return Number(num);\n };\n\n InputNumber.prototype.upStep = function upStep(val, rat) {\n var step = this.props.step;\n\n var precisionFactor = this.getPrecisionFactor(val, rat);\n var precision = Math.abs(this.getMaxPrecision(val, rat));\n var result = ((precisionFactor * val + precisionFactor * step * rat) / precisionFactor).toFixed(precision);\n return this.toNumber(result);\n };\n\n InputNumber.prototype.downStep = function downStep(val, rat) {\n var step = this.props.step;\n\n var precisionFactor = this.getPrecisionFactor(val, rat);\n var precision = Math.abs(this.getMaxPrecision(val, rat));\n var result = ((precisionFactor * val - precisionFactor * step * rat) / precisionFactor).toFixed(precision);\n return this.toNumber(result);\n };\n\n InputNumber.prototype.step = function step(type, e) {\n var _this2 = this;\n\n var ratio = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n var recursive = arguments[3];\n\n this.stop();\n if (e) {\n e.persist();\n e.preventDefault();\n }\n var props = this.props;\n if (props.disabled) {\n return;\n }\n var value = this.getCurrentValidValue(this.state.inputValue) || 0;\n if (this.isNotCompleteNumber(value)) {\n return;\n }\n var val = this[type + 'Step'](value, ratio);\n var outOfRange = val > props.max || val < props.min;\n if (val > props.max) {\n val = props.max;\n } else if (val < props.min) {\n val = props.min;\n }\n this.setValue(val);\n this.setState({\n focused: true\n });\n if (outOfRange) {\n return;\n }\n this.autoStepTimer = setTimeout(function () {\n _this2[type](e, ratio, true);\n }, recursive ? SPEED : DELAY);\n };\n\n InputNumber.prototype.render = function render() {\n var _classNames;\n\n var props = _extends({}, this.props);\n\n var prefixCls = props.prefixCls,\n disabled = props.disabled,\n readOnly = props.readOnly,\n useTouch = props.useTouch,\n autoComplete = props.autoComplete,\n upHandler = props.upHandler,\n downHandler = props.downHandler,\n rest = _objectWithoutProperties(props, ['prefixCls', 'disabled', 'readOnly', 'useTouch', 'autoComplete', 'upHandler', 'downHandler']);\n\n var classes = classNames((_classNames = {}, _classNames[prefixCls] = true, _classNames[props.className] = !!props.className, _classNames[prefixCls + '-disabled'] = disabled, _classNames[prefixCls + '-focused'] = this.state.focused, _classNames));\n var upDisabledClass = '';\n var downDisabledClass = '';\n var value = this.state.value;\n\n if (value || value === 0) {\n if (!isNaN(value)) {\n var val = Number(value);\n if (val >= props.max) {\n upDisabledClass = prefixCls + '-handler-up-disabled';\n }\n if (val <= props.min) {\n downDisabledClass = prefixCls + '-handler-down-disabled';\n }\n } else {\n upDisabledClass = prefixCls + '-handler-up-disabled';\n downDisabledClass = prefixCls + '-handler-down-disabled';\n }\n }\n\n var dataOrAriaAttributeProps = {};\n for (var key in props) {\n if (props.hasOwnProperty(key) && (key.substr(0, 5) === 'data-' || key.substr(0, 5) === 'aria-' || key === 'role')) {\n dataOrAriaAttributeProps[key] = props[key];\n }\n }\n\n var editable = !props.readOnly && !props.disabled;\n\n // focus state, show input value\n // unfocus state, show valid value\n var inputDisplayValue = this.getInputDisplayValue();\n\n var upEvents = void 0;\n var downEvents = void 0;\n if (useTouch) {\n upEvents = {\n onTouchStart: editable && !upDisabledClass ? this.up : noop,\n onTouchEnd: this.stop\n };\n downEvents = {\n onTouchStart: editable && !downDisabledClass ? this.down : noop,\n onTouchEnd: this.stop\n };\n } else {\n upEvents = {\n onMouseDown: editable && !upDisabledClass ? this.up : noop,\n onMouseUp: this.stop,\n onMouseLeave: this.stop\n };\n downEvents = {\n onMouseDown: editable && !downDisabledClass ? this.down : noop,\n onMouseUp: this.stop,\n onMouseLeave: this.stop\n };\n }\n\n var isUpDisabled = !!upDisabledClass || disabled || readOnly;\n var isDownDisabled = !!downDisabledClass || disabled || readOnly;\n // ref for test\n return React.createElement(\n 'div',\n {\n className: classes,\n style: props.style,\n title: props.title,\n onMouseEnter: props.onMouseEnter,\n onMouseLeave: props.onMouseLeave,\n onMouseOver: props.onMouseOver,\n onMouseOut: props.onMouseOut\n },\n React.createElement(\n 'div',\n { className: prefixCls + '-handler-wrap' },\n React.createElement(\n InputHandler,\n _extends({\n ref: this.saveUp,\n disabled: isUpDisabled,\n prefixCls: prefixCls,\n unselectable: 'unselectable'\n }, upEvents, {\n role: 'button',\n 'aria-label': 'Increase Value',\n 'aria-disabled': !!isUpDisabled,\n className: prefixCls + '-handler ' + prefixCls + '-handler-up ' + upDisabledClass\n }),\n upHandler || React.createElement('span', {\n unselectable: 'unselectable',\n className: prefixCls + '-handler-up-inner',\n onClick: preventDefault\n })\n ),\n React.createElement(\n InputHandler,\n _extends({\n ref: this.saveDown,\n disabled: isDownDisabled,\n prefixCls: prefixCls,\n unselectable: 'unselectable'\n }, downEvents, {\n role: 'button',\n 'aria-label': 'Decrease Value',\n 'aria-disabled': !!isDownDisabled,\n className: prefixCls + '-handler ' + prefixCls + '-handler-down ' + downDisabledClass\n }),\n downHandler || React.createElement('span', {\n unselectable: 'unselectable',\n className: prefixCls + '-handler-down-inner',\n onClick: preventDefault\n })\n )\n ),\n React.createElement(\n 'div',\n {\n className: prefixCls + '-input-wrap'\n },\n React.createElement('input', _extends({\n role: 'spinbutton',\n 'aria-valuemin': props.min,\n 'aria-valuemax': props.max,\n 'aria-valuenow': value,\n required: props.required,\n type: props.type,\n placeholder: props.placeholder,\n onClick: props.onClick,\n onMouseUp: this.onMouseUp,\n className: prefixCls + '-input',\n tabIndex: props.tabIndex,\n autoComplete: autoComplete,\n onFocus: this.onFocus,\n onBlur: this.onBlur,\n onKeyDown: editable ? this.onKeyDown : noop,\n onKeyUp: editable ? this.onKeyUp : noop,\n autoFocus: props.autoFocus,\n maxLength: props.maxLength,\n readOnly: props.readOnly,\n disabled: props.disabled,\n max: props.max,\n min: props.min,\n step: props.step,\n name: props.name,\n id: props.id,\n onChange: this.onChange,\n ref: this.saveInput,\n value: inputDisplayValue,\n pattern: props.pattern\n }, dataOrAriaAttributeProps))\n )\n );\n };\n\n return InputNumber;\n}(React.Component);\n\nInputNumber.propTypes = {\n value: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n defaultValue: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n focusOnUpDown: PropTypes.bool,\n autoFocus: PropTypes.bool,\n onChange: PropTypes.func,\n onPressEnter: PropTypes.func,\n onKeyDown: PropTypes.func,\n onKeyUp: PropTypes.func,\n prefixCls: PropTypes.string,\n tabIndex: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n disabled: PropTypes.bool,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n readOnly: PropTypes.bool,\n max: PropTypes.number,\n min: PropTypes.number,\n step: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n upHandler: PropTypes.node,\n downHandler: PropTypes.node,\n useTouch: PropTypes.bool,\n formatter: PropTypes.func,\n parser: PropTypes.func,\n onMouseEnter: PropTypes.func,\n onMouseLeave: PropTypes.func,\n onMouseOver: PropTypes.func,\n onMouseOut: PropTypes.func,\n onMouseUp: PropTypes.func,\n precision: PropTypes.number,\n required: PropTypes.bool,\n pattern: PropTypes.string,\n decimalSeparator: PropTypes.string\n};\nInputNumber.defaultProps = {\n focusOnUpDown: true,\n useTouch: false,\n prefixCls: 'rc-input-number',\n min: -MAX_SAFE_INTEGER,\n step: 1,\n style: {},\n onChange: noop,\n onKeyDown: noop,\n onPressEnter: noop,\n onFocus: noop,\n onBlur: noop,\n parser: defaultParser,\n required: false,\n autoComplete: 'off'\n};\n\nvar _initialiseProps = function _initialiseProps() {\n var _this3 = this;\n\n this.onKeyDown = function (e) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var _props3 = _this3.props,\n onKeyDown = _props3.onKeyDown,\n onPressEnter = _props3.onPressEnter;\n\n\n if (e.keyCode === KeyCode.UP) {\n var ratio = _this3.getRatio(e);\n _this3.up(e, ratio);\n _this3.stop();\n } else if (e.keyCode === KeyCode.DOWN) {\n var _ratio = _this3.getRatio(e);\n _this3.down(e, _ratio);\n _this3.stop();\n } else if (e.keyCode === KeyCode.ENTER && onPressEnter) {\n onPressEnter(e);\n }\n\n // Trigger user key down\n _this3.recordCursorPosition();\n _this3.lastKeyCode = e.keyCode;\n if (onKeyDown) {\n onKeyDown.apply(undefined, [e].concat(args));\n }\n };\n\n this.onKeyUp = function (e) {\n for (var _len2 = arguments.length, args = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n var onKeyUp = _this3.props.onKeyUp;\n\n\n _this3.stop();\n\n _this3.recordCursorPosition();\n\n // Trigger user key up\n if (onKeyUp) {\n onKeyUp.apply(undefined, [e].concat(args));\n }\n };\n\n this.onChange = function (e) {\n var onChange = _this3.props.onChange;\n\n\n if (_this3.state.focused) {\n _this3.inputting = true;\n }\n _this3.rawInput = _this3.props.parser(_this3.getValueFromEvent(e));\n _this3.setState({ inputValue: _this3.rawInput });\n onChange(_this3.toNumber(_this3.rawInput)); // valid number or invalid string\n };\n\n this.onMouseUp = function () {\n var onMouseUp = _this3.props.onMouseUp;\n\n\n _this3.recordCursorPosition();\n\n if (onMouseUp) {\n onMouseUp.apply(undefined, arguments);\n }\n };\n\n this.onFocus = function () {\n var _props4;\n\n _this3.setState({\n focused: true\n });\n (_props4 = _this3.props).onFocus.apply(_props4, arguments);\n };\n\n this.onBlur = function (e) {\n for (var _len3 = arguments.length, args = Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {\n args[_key3 - 1] = arguments[_key3];\n }\n\n var onBlur = _this3.props.onBlur;\n\n _this3.inputting = false;\n _this3.setState({\n focused: false\n });\n var value = _this3.getCurrentValidValue(_this3.state.inputValue);\n e.persist(); // fix https://github.com/react-component/input-number/issues/51\n var newValue = _this3.setValue(value);\n\n if (onBlur) {\n var originValue = _this3.input.value;\n var inputValue = _this3.getInputDisplayValue({ focus: false, value: newValue });\n _this3.input.value = inputValue;\n onBlur.apply(undefined, [e].concat(args));\n _this3.input.value = originValue;\n }\n };\n\n this.getInputDisplayValue = function (state) {\n var _ref = state || _this3.state,\n focused = _ref.focused,\n inputValue = _ref.inputValue,\n value = _ref.value;\n\n var inputDisplayValue = void 0;\n if (focused) {\n inputDisplayValue = inputValue;\n } else {\n inputDisplayValue = _this3.toPrecisionAsStep(value);\n }\n\n if (inputDisplayValue === undefined || inputDisplayValue === null) {\n inputDisplayValue = '';\n }\n\n var inputDisplayValueFormat = _this3.formatWrapper(inputDisplayValue);\n if (isValidProps(_this3.props.decimalSeparator)) {\n inputDisplayValueFormat = inputDisplayValueFormat.toString().replace('.', _this3.props.decimalSeparator);\n }\n\n return inputDisplayValueFormat;\n };\n\n this.recordCursorPosition = function () {\n // Record position\n try {\n _this3.cursorStart = _this3.input.selectionStart;\n _this3.cursorEnd = _this3.input.selectionEnd;\n _this3.currentValue = _this3.input.value;\n _this3.cursorBefore = _this3.input.value.substring(0, _this3.cursorStart);\n _this3.cursorAfter = _this3.input.value.substring(_this3.cursorEnd);\n } catch (e) {\n // Fix error in Chrome:\n // Failed to read the 'selectionStart' property from 'HTMLInputElement'\n // http://stackoverflow.com/q/21177489/3040605\n }\n };\n\n this.restoreByAfter = function (str) {\n if (str === undefined) return false;\n\n var fullStr = _this3.input.value;\n var index = fullStr.lastIndexOf(str);\n\n if (index === -1) return false;\n\n if (index + str.length === fullStr.length) {\n _this3.fixCaret(index, index);\n\n return true;\n }\n return false;\n };\n\n this.partRestoreByAfter = function (str) {\n if (str === undefined) return false;\n\n // For loop from full str to the str with last char to map. e.g. 123\n // -> 123\n // -> 23\n // -> 3\n return Array.prototype.some.call(str, function (_, start) {\n var partStr = str.substring(start);\n\n return _this3.restoreByAfter(partStr);\n });\n };\n\n this.stop = function () {\n if (_this3.autoStepTimer) {\n clearTimeout(_this3.autoStepTimer);\n }\n };\n\n this.down = function (e, ratio, recursive) {\n _this3.pressingUpOrDown = true;\n _this3.step('down', e, ratio, recursive);\n };\n\n this.up = function (e, ratio, recursive) {\n _this3.pressingUpOrDown = true;\n _this3.step('up', e, ratio, recursive);\n };\n\n this.saveUp = function (node) {\n _this3.upHandler = node;\n };\n\n this.saveDown = function (node) {\n _this3.downHandler = node;\n };\n\n this.saveInput = function (node) {\n _this3.input = node;\n };\n};\n\nexport default InputNumber;","var __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport RcInputNumber from 'rc-input-number';\nimport Icon from '../icon';\nimport { ConfigConsumer } from '../config-provider';\nexport default class InputNumber extends React.Component {\n constructor() {\n super(...arguments);\n this.saveInputNumber = (inputNumberRef) => {\n this.inputNumberRef = inputNumberRef;\n };\n this.renderInputNumber = ({ getPrefixCls }) => {\n const _a = this.props, { className, size, prefixCls: customizePrefixCls } = _a, others = __rest(_a, [\"className\", \"size\", \"prefixCls\"]);\n const prefixCls = getPrefixCls('input-number', customizePrefixCls);\n const inputNumberClass = classNames({\n [`${prefixCls}-lg`]: size === 'large',\n [`${prefixCls}-sm`]: size === 'small',\n }, className);\n const upIcon = ;\n const downIcon = ;\n return ();\n };\n }\n focus() {\n this.inputNumberRef.focus();\n }\n blur() {\n this.inputNumberRef.blur();\n }\n render() {\n return {this.renderInputNumber};\n }\n}\nInputNumber.defaultProps = {\n step: 1,\n};\n","import * as React from \"react\";\r\n\r\nimport {\r\n Button,\r\n Col,\r\n Dropdown,\r\n Form,\r\n Icon,\r\n Input,\r\n InputNumber,\r\n Menu,\r\n Modal,\r\n Row,\r\n Select,\r\n Spin,\r\n notification,\r\n} from \"antd\";\r\nimport { Link, useHistory } from \"react-router-dom\";\r\nimport { Mutation, Query } from \"../../generated/graphql\";\r\nimport { useLazyQuery, useMutation, useQuery } from \"@apollo/react-hooks\";\r\n\r\nimport { FormComponentProps } from \"antd/lib/form\";\r\nimport { ListingDetail } from \"../../generated/graphql\";\r\nimport TagManager from \"react-gtm-module\";\r\nimport { css } from \"@emotion/core\";\r\nimport { environmentVariableList } from \"../../config/env\";\r\nimport { formatDate } from \"../../utils/format\";\r\nimport { loader } from \"graphql.macro\";\r\nimport moment from \"moment\";\r\nimport { useAuthPopupState } from \"../../context/AuthPopupContext\";\r\n\r\nconst DENY_LISTING_MUTATION = loader(\"./moderatorDenyMutation.graphql\");\r\nconst REPORT_LISTINGS_LIST = loader(\"./reportListingModeratorQuery.graphql\");\r\nconst APPROVE_LISTING = loader(\"./approveListingsModerator.graphql\");\r\nconst BAN_USER_MUTATION = loader(\"./banUserMutation.graphql\");\r\nconst RESOLVE_REPORT_MUTATION = loader(\"./resolvereportMutation.graphql\");\r\nconst MARK_SOLD_MUTATION = loader(\"./markSoldMutationModerator.graphql\");\r\nconst DELETE_LISTING_MUTATION = loader(\"./modDeletelisting.graphql\");\r\ninterface Props extends FormComponentProps {\r\n listingDetail: ListingDetail;\r\n}\r\n// UserTypeId,\r\nconst ModeratorView: React.FC = ({ form, listingDetail }) => {\r\n const history = useHistory();\r\n console.log(\"History:\", history);\r\n const { isLoggedIn, userId } = useAuthPopupState();\r\n const [denyMod, setdenyMod] = React.useState(false);\r\n const [ResolveMod, setResolveMod] = React.useState(false);\r\n const [BanMod, setBanMod] = React.useState(false);\r\n const [Edisable, setEdisable] = React.useState(false);\r\n const [Ddisable, setDdisable] = React.useState(false);\r\n const [Bdisable, setBdisable] = React.useState(false);\r\n const [Rdisable, setRdisable] = React.useState(false);\r\n const [Adisable, setAdisable] = React.useState(false);\r\n const [Sdisable, setSdisable] = React.useState(false);\r\n const [Deldisable, setdeldisable] = React.useState(false);\r\n const butDisCon = (disBut: number) => {\r\n switch (disBut) {\r\n case 0:\r\n setEdisable(false);\r\n setBdisable(false);\r\n setDdisable(false);\r\n setRdisable(false);\r\n setAdisable(false);\r\n setSdisable(false);\r\n break;\r\n case 1:\r\n setEdisable(true);\r\n break;\r\n case 2:\r\n setDdisable(true);\r\n break;\r\n case 3:\r\n setBdisable(true);\r\n break;\r\n case 4:\r\n setRdisable(true);\r\n break;\r\n case 5:\r\n setAdisable(true);\r\n break;\r\n case 6:\r\n setSdisable(true);\r\n break;\r\n case 7:\r\n setdeldisable(true);\r\n setEdisable(true);\r\n setBdisable(true);\r\n setDdisable(true);\r\n setRdisable(true);\r\n setAdisable(true);\r\n setSdisable(true);\r\n break;\r\n }\r\n };\r\n const handleMenuClick = (e: any) => {\r\n console.log(\"click\", e.key);\r\n if (e.key === \"1\") {\r\n SoldListing();\r\n }\r\n if (e.key === \"2\") {\r\n DenyListing();\r\n }\r\n if (e.key === \"3\") {\r\n Moddeletelistings();\r\n }\r\n if (e.key === \"4\") {\r\n onRemoveListing();\r\n }\r\n if (e.key === \"5\") {\r\n onApproveListing();\r\n }\r\n };\r\n\r\n const menu = (\r\n \r\n \r\n \r\n Mark as Sold\r\n \r\n \r\n \r\n Deny Listing\r\n \r\n \r\n \r\n Delete Listing\r\n \r\n \r\n \r\n Remove Listing\r\n \r\n \r\n \r\n Approve Listing\r\n \r\n \r\n );\r\n\r\n const clear = () => {\r\n history.replace(`/my-garage/moderator`);\r\n butDisCon(0);\r\n };\r\n const duration = [\r\n { value: \"Day\", key: 1 },\r\n { value: \"Week\", key: 2 },\r\n { value: \"Month\", key: 3 },\r\n { value: \"Year\", key: 4 },\r\n ];\r\n\r\n const reportListingList = useQuery(REPORT_LISTINGS_LIST, {\r\n fetchPolicy: \"network-only\",\r\n skip: !isLoggedIn,\r\n onError: (err) => {\r\n try {\r\n const displayMsg = err.graphQLErrors[0].message;\r\n notification[\"error\"]({\r\n message: \"Error\",\r\n description: displayMsg,\r\n });\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n },\r\n });\r\n // denyListingResult\r\n const [denyListing, denyListingResult] = useMutation(\r\n DENY_LISTING_MUTATION,\r\n {\r\n onCompleted: (data) => {\r\n if (data && data.DenyListing) {\r\n const displayMsg = data.DenyListing.message;\r\n TagManager.initialize({\r\n gtmId: environmentVariableList.REACT_APP_GTM_ID || \"\",\r\n dataLayer: {\r\n event: \"GAEvent\",\r\n eventCategory: \"Listing\",\r\n eventAction: \"DELETED\",\r\n eventLabel: \"Removed Listing\",\r\n },\r\n });\r\n // window.analytics.track(\"Listing Ended by Moderator\", {\r\n // reason: \"Rejected\",\r\n // });\r\n notification[\"success\"]({\r\n message: \"Success\",\r\n description: displayMsg,\r\n });\r\n }\r\n setdenyMod(false);\r\n butDisCon(2);\r\n },\r\n onError: (err) => {\r\n try {\r\n const displayMsg = err.graphQLErrors[0].message;\r\n notification[\"error\"]({\r\n message: \"Error\",\r\n description: displayMsg || \"Could not report Listing.\",\r\n });\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n setdenyMod(false);\r\n },\r\n }\r\n );\r\n // Delete listings\r\n const [deleteListingsMod, deleteListingsModResult] = useMutation(\r\n DELETE_LISTING_MUTATION,\r\n {\r\n onCompleted: (data) => {\r\n if (data && data.ModDeleteListing) {\r\n const displayMsg = data.ModDeleteListing.message;\r\n notification[\"success\"]({\r\n message: \"Success\",\r\n description: displayMsg,\r\n });\r\n }\r\n // setResolveMod(false);\r\n butDisCon(7);\r\n },\r\n onError: (err) => {\r\n try {\r\n const displayMsg = err.graphQLErrors[0].message;\r\n notification[\"error\"]({\r\n message: \"Error\",\r\n description: displayMsg || \"Could not resolve Listing.\",\r\n });\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n // setResolveMod(false);\r\n },\r\n }\r\n );\r\n\r\n // Resolvereport\r\n const [resolvereport, resolvereportResult] = useMutation(\r\n RESOLVE_REPORT_MUTATION,\r\n {\r\n onCompleted: (data) => {\r\n if (data && data.ResolveReport) {\r\n const displayMsg = data.ResolveReport.message;\r\n notification[\"success\"]({\r\n message: \"Success\",\r\n description: displayMsg,\r\n });\r\n }\r\n setResolveMod(false);\r\n butDisCon(4);\r\n },\r\n onError: (err) => {\r\n try {\r\n const displayMsg = err.graphQLErrors[0].message;\r\n notification[\"error\"]({\r\n message: \"Error\",\r\n description: displayMsg || \"Could not resolve Listing.\",\r\n });\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n setResolveMod(false);\r\n },\r\n }\r\n );\r\n\r\n //Approve listing\r\n const [approveListing, approveListingResult] = useLazyQuery(\r\n APPROVE_LISTING,\r\n {\r\n fetchPolicy: \"network-only\",\r\n onCompleted: (data) => {\r\n if (data && data.ApproveListing) {\r\n const displayMsg = data.ApproveListing.message;\r\n notification[\"success\"]({\r\n message: \"Success\",\r\n description: displayMsg,\r\n });\r\n }\r\n butDisCon(5);\r\n },\r\n onError: (err) => {\r\n try {\r\n const displayMsg = err.graphQLErrors[0].message;\r\n notification[\"error\"]({\r\n message: \"Error\",\r\n description: displayMsg,\r\n });\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n },\r\n }\r\n );\r\n // ban User\r\n const [banuser, banUserResult] = useMutation(BAN_USER_MUTATION, {\r\n onCompleted: (data) => {\r\n if (data && data.BanUser) {\r\n const displayMsg = data.BanUser.message;\r\n notification[\"success\"]({\r\n message: \"Success\",\r\n description: displayMsg,\r\n });\r\n }\r\n setBanMod(false);\r\n butDisCon(3);\r\n },\r\n onError: (err) => {\r\n try {\r\n const displayMsg = err.graphQLErrors[0].message;\r\n notification[\"error\"]({\r\n message: \"Error\",\r\n description: displayMsg || \"Could not report Listing.\",\r\n });\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n setBanMod(false);\r\n },\r\n });\r\n //Mark sold\r\n const [markSold, markSoldResult] = useMutation(MARK_SOLD_MUTATION, {\r\n onCompleted: (data) => {\r\n if (data && data.markListingSold) {\r\n // window.analytics.track(\"Listing Ended by Moderator\", {\r\n // reason: \"Sold\",\r\n // });\r\n TagManager.initialize({\r\n gtmId: environmentVariableList.REACT_APP_GTM_ID || \"\",\r\n dataLayer: {\r\n event: \"GAEvent\",\r\n eventCategory: \"Listing\",\r\n eventAction: \"SOLD\",\r\n eventLabel: \"Removed Listing\",\r\n },\r\n });\r\n notification[\"success\"]({\r\n message: \"Success\",\r\n description: \"Listing has been marked sold successfully\",\r\n });\r\n butDisCon(6);\r\n } else {\r\n notification[\"error\"]({\r\n message: \"Error\",\r\n description:\r\n \"Sorry, we are not able to mark the listing sold at the moment\",\r\n });\r\n }\r\n },\r\n });\r\n const SoldListing = () => {\r\n markSold({\r\n variables: {\r\n id: listingDetail.listingId,\r\n },\r\n });\r\n };\r\n\r\n const Moddeletelistings = () => {\r\n deleteListingsMod({\r\n variables: {\r\n listingId: listingDetail.listingId,\r\n reasonId: 1,\r\n noteToSeller: \"\",\r\n },\r\n });\r\n };\r\n const DenyListing = () => {\r\n setdenyMod(true);\r\n };\r\n const BanUser = () => {\r\n setBanMod(true);\r\n };\r\n const ResolveListing = () => {\r\n setResolveMod(true);\r\n };\r\n const onCancel = () => {\r\n setdenyMod(false);\r\n setResolveMod(false);\r\n setBanMod(false);\r\n };\r\n const onDenyListing = (e: React.FormEvent) => {\r\n e.preventDefault();\r\n form.validateFieldsAndScroll((error, values) => {\r\n // console.log(\"reson\", values.moderatorreport);\r\n if (!error) {\r\n denyListing({\r\n variables: {\r\n listingId: listingDetail.listingId,\r\n reasonId: values.moderatorreport,\r\n noteToSeller: values.vehicleDescriptionModerator,\r\n },\r\n });\r\n }\r\n });\r\n };\r\n const onRemoveListing = () => {\r\n denyListing({\r\n variables: {\r\n listingId: listingDetail.listingId,\r\n reasonId: 4,\r\n noteToSeller: \"QA Listing\",\r\n },\r\n });\r\n };\r\n\r\n const onResolveReport = (e: React.FormEvent) => {\r\n e.preventDefault();\r\n form.validateFieldsAndScroll((error, values) => {\r\n // console.log(\"reson\", values.moderatorreport);\r\n if (!error) {\r\n resolvereport({\r\n variables: {\r\n reportId: history.location.state.report.reportId,\r\n noteToReporter: values.resolvedesModerator,\r\n },\r\n });\r\n }\r\n });\r\n };\r\n\r\n const onBanuser = (e: React.FormEvent) => {\r\n e.preventDefault();\r\n form.validateFieldsAndScroll((error, values) => {\r\n if (!error) {\r\n banuser({\r\n variables: {\r\n userId: listingDetail.userId,\r\n // listingDetail.userId,\r\n moderatorId: Number.parseInt(userId || \"\", 10),\r\n reportId: history.location.state.report.reportId,\r\n reportType: 2,\r\n count: values.inputnumber,\r\n duration: values.banDuration,\r\n },\r\n });\r\n }\r\n });\r\n };\r\n\r\n const onApproveListing = () => {\r\n if (isLoggedIn) {\r\n approveListing({\r\n variables: {\r\n id: listingDetail.listingId,\r\n },\r\n });\r\n }\r\n };\r\n return (\r\n \r\n \r\n \r\n \r\n {ResolveMod === true || denyMod === true ? (\r\n ResolveMod !== true ? (\r\n
    \r\n \r\n {form.getFieldDecorator(\"moderatorreport\", {\r\n initialValue: history.location.state.report.reasonId,\r\n rules: [\r\n {\r\n required: true,\r\n message: \"Please select the reason.\",\r\n },\r\n ],\r\n })(\r\n \r\n )}\r\n \r\n \r\n {form.getFieldDecorator(\r\n \"vehicleDescriptionModerator\",\r\n {}\r\n )(\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n ) : (\r\n
    \r\n
    \r\n Are you sure you would like to resolve this report without\r\n banning the user or removing the listing Notes to Reporter.\r\n
    \r\n \r\n {form.getFieldDecorator(\"resolvedesModerator\", {\r\n // rules: [\r\n // {\r\n // required: true,\r\n // message: \"Please enter the reason.\"\r\n // }\r\n // ]\r\n })(\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n ) : (\r\n
    \r\n
    \r\n Banning this user will remove all of their active listings and\r\n deny them access to RumbleOn Classifieds. How long you want to\r\n ban {`${listingDetail.userName.slice(0, 7)}****`}\r\n
    \r\n \r\n \r\n {form.getFieldDecorator(\"inputnumber\", {\r\n initialValue: 1,\r\n rules: [\r\n {\r\n required: true,\r\n message: \"Please select the duration\",\r\n },\r\n ],\r\n })()}\r\n \r\n \r\n {form.getFieldDecorator(\"banDuration\", {\r\n rules: [\r\n {\r\n required: true,\r\n message: \"Please select the duration\",\r\n },\r\n ],\r\n })(\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Reason:\r\n {history.location.state.report.listingStatusId\r\n ? history.location.state.report.reportedReason !== null\r\n ? history.location.state.report.reportedReason\r\n : \"No Reason Available\"\r\n : history.location.state.report.reason}\r\n \r\n {history.location.state.report.reportee !== null &&\r\n history.location.state.report.reportee !== undefined && (\r\n \r\n Reporter: {history.location.state.report.reportee}\r\n \r\n )}\r\n {history.location.state.report.reporter !== null &&\r\n history.location.state.report.reporter !== undefined && (\r\n \r\n Reported User: {history.location.state.report.reporter}\r\n \r\n )}\r\n \r\n\r\n \r\n {history.location.state.report.reportStatusId === 1 ? (\r\n
    \r\n \r\n \r\n \r\n \r\n Edit Listing\r\n \r\n \r\n \r\n \r\n \r\n \r\n {listingDetail.listingStatusId === 9\r\n ? \" Remove Listing\"\r\n : \"Deny Listing\"}\r\n \r\n \r\n \r\n \r\n \r\n Ban User\r\n \r\n \r\n \r\n \r\n \r\n Resolve Issue\r\n \r\n \r\n
    \r\n ) : (\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n Edit Listing\r\n \r\n \r\n \r\n \r\n \r\n \r\n MODERATOR ACTIONS \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n )}\r\n \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n BACK TO DASHBOARD\r\n \r\n \r\n\r\n \r\n \r\n {listingDetail &&\r\n (listingDetail.listingStatusId === 2 ||\r\n listingDetail.listingStatusId === 11)\r\n ? `Pending Since ${moment(\r\n listingDetail.analysisDate || \"\"\r\n ).fromNow()}`\r\n : `This listing ${formatDate(\r\n listingDetail.stopDate || \"\"\r\n )}`}\r\n

    \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default Form.create({ name: \"moderator-form\" })(ModeratorView);\r\n","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 =\n/*#__PURE__*/\n\n/*#__PURE__*/\nReact.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"style\", null, \".b{fill:#4c4c4c}\"));\n\nvar _ref3 =\n/*#__PURE__*/\n\n/*#__PURE__*/\nReact.createElement(\"path\", {\n fill: \"none\",\n d: \"M0 .089h18v18H0z\"\n});\n\nvar _ref4 =\n/*#__PURE__*/\n\n/*#__PURE__*/\nReact.createElement(\"path\", {\n className: \"b\",\n d: \"M3.456 0h-.652v1.3h.652a11.753 11.753 0 0111.739 11.743v.657h1.3v-.652A13.058 13.058 0 003.456 0zm-.652 2.609h1.3v2.609h-1.3z\"\n});\n\nvar _ref5 =\n/*#__PURE__*/\n\n/*#__PURE__*/\nReact.createElement(\"path\", {\n className: \"b\",\n d: \"M8.53 7.049l1.844-1.845.922.923L9.45 7.971zm2.753 5.342h2.609v1.3h-2.609zm-9.21-.731c.764-.764 5.949-3.182 5.949-3.182S5.6 13.663 4.84 14.426a1.957 1.957 0 11-2.767-2.767z\"\n});\n\nvar SvgMileage = function SvgMileage(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 18,\n height: 18.089,\n viewBox: \"0 0 18 18.089\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3, _ref4, _ref5);\n};\n\nvar ForwardRef = React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgMileage, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/mileage.ab9469d2.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 =\n/*#__PURE__*/\n\n/*#__PURE__*/\nReact.createElement(\"path\", {\n d: \"M12 3c-5 0-9 4-9 9s4 9 9 9c.8 0 1.5-.7 1.5-1.5 0-.4-.1-.7-.4-1-.2-.3-.4-.6-.4-1 0-.8.7-1.5 1.5-1.5H16c2.8 0 5-2.2 5-5 0-4.4-4-8-9-8zm-5.5 9c-.8 0-1.5-.7-1.5-1.5S5.7 9 6.5 9 8 9.7 8 10.5 7.3 12 6.5 12zm3-4C8.7 8 8 7.3 8 6.5S8.7 5 9.5 5s1.5.7 1.5 1.5S10.3 8 9.5 8zm5 0c-.8 0-1.5-.7-1.5-1.5S13.7 5 14.5 5s1.5.7 1.5 1.5S15.3 8 14.5 8zm3 4c-.8 0-1.5-.7-1.5-1.5S16.7 9 17.5 9s1.5.7 1.5 1.5-.7 1.5-1.5 1.5z\"\n});\n\nvar SvgPalette = function SvgPalette(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"0 0 24 24\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgPalette, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/palette.460fea0a.svg\";\nexport { ForwardRef as ReactComponent };","import \"./style.css\";\r\n\r\nimport * as React from \"react\";\r\n\r\nimport {\r\n Button,\r\n Col,\r\n Form,\r\n Icon,\r\n Input,\r\n Modal,\r\n Row,\r\n Select,\r\n notification,\r\n} from \"antd\";\r\nimport { Link, useLocation } from \"react-router-dom\";\r\nimport { Mutation, Query } from \"../../generated/graphql\";\r\nimport {\r\n SET_LOCATION,\r\n useGeolocationContext,\r\n} from \"../../context/GeolocationContext\";\r\nimport { formatCurrency, formatNumber } from \"../../utils/format\";\r\nimport { useApolloClient, useMutation, useQuery } from \"@apollo/react-hooks\";\r\nimport {\r\n useAuthPopupDispatch,\r\n useAuthPopupState,\r\n} from \"../../context/AuthPopupContext\";\r\n\r\nimport { FormComponentProps } from \"antd/lib/form\";\r\nimport { ListingDetail } from \"../../generated/graphql\";\r\nimport { ReactComponent as Mileage } from \"../../assets/svgs/mileage.svg\";\r\nimport { ReactComponent as Pallet } from \"../../assets/svgs/palette.svg\";\r\nimport SendMsgModal from \"../SendMsgModal/SendMsgModal\";\r\nimport _ from \"lodash\";\r\nimport { css } from \"@emotion/core\";\r\nimport { environmentVariableList } from \"../../config/env\";\r\nimport haversine from \"haversine\";\r\nimport { loader } from \"graphql.macro\";\r\n\r\n// import moment from \"moment\";\r\n\r\nconst REPORT_LISTINGS_LIST = loader(\"./reportListingQuery.graphql\");\r\n// const ADD_FAVORITE_MUTATION = loader(\"./addFavoriteMutation.graphql\");\r\n// const REMOVE_FAVORITE_MUTATION = loader(\"./removeFavoriteMutation.graphql\");\r\n// const USER_FAVORITE_QUERY = loader(\"../ElasticSearch/userFavQuery.graphql\");\r\nconst USER_FAV_QUERY = loader(\"./userFavQuery.graphql\");\r\nconst REPORT_LISTING = loader(\"./reportListingsMutation.graphql\");\r\nconst GET_LOCATION_BY_CLIENT_IP_QUERY = loader(\r\n \"./getLocationByClientIp.graphql\"\r\n);\r\n\r\ninterface Props extends FormComponentProps {\r\n listingDetail: ListingDetail;\r\n reportModVis: boolean;\r\n reportMod: (visible: boolean) => void;\r\n}\r\n\r\nconst SellerInfoCard: React.FC = ({\r\n form,\r\n listingDetail,\r\n reportModVis,\r\n reportMod,\r\n}) => {\r\n const [messageModalVisible, setMessageModalVisible] = React.useState(false);\r\n const [currLocation, setCurrLocation] = React.useState();\r\n const [dealerVDP, setDealerVDP] = React.useState();\r\n const [loadingview, setLoadingView] = React.useState(false);\r\n const [reportModalVisible, setReportModalVisible] =\r\n React.useState(false) || reportModVis;\r\n const geoContext = useGeolocationContext();\r\n const client = useApolloClient();\r\n const [showMore, setShowMore] = React.useState(false);\r\n const { userId, isLoggedIn, Uuid } = useAuthPopupState();\r\n const location = useLocation();\r\n const dispatch = useAuthPopupDispatch();\r\n const { data } = useQuery(USER_FAV_QUERY, {\r\n variables: {\r\n UserUuid: Uuid,\r\n },\r\n skip: !isLoggedIn,\r\n });\r\n // console.log(listingDetail, \"details\")\r\n const handleGetDetails = async () => {\r\n const url = `${environmentVariableList.REACT_APP_ES_LINK}/${environmentVariableList.REACT_APP_ES_APP}/_search`;\r\n const response = await fetch(url, {\r\n method: \"POST\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n Authorization: `${environmentVariableList.REACT_ES_BASIC_AUTH}`,\r\n },\r\n body: JSON.stringify({\r\n query: {\r\n term: {\r\n \"vin.keyword\": `${listingDetail?.vin}`,\r\n },\r\n },\r\n }),\r\n });\r\n\r\n const result = await response.json();\r\n\r\n setDealerVDP(result.hits.hits[0]._source.dealerVDPUrl);\r\n };\r\n\r\n React.useEffect(() => {\r\n handleGetDetails();\r\n }, [listingDetail]);\r\n React.useEffect(() => {\r\n setReportModalVisible(reportModVis);\r\n }, [reportModVis]);\r\n React.useEffect(() => {\r\n reportMod(reportModalVisible);\r\n }, [reportModalVisible]);\r\n\r\n // const userFavorite: any = _.filter(\r\n // data?.getUserFavoriteById.favorites,\r\n // (o) => {\r\n // console.log(o.listingId, listingDetail.listingId);\r\n // return o.listingId === listingDetail.listingId;\r\n // }\r\n // );\r\n\r\n // console.log(userFavorite.length > 0);\r\n\r\n // const isVehicleAddedToFav =\r\n // data &&\r\n // data.getUserFavoriteById &&\r\n // data.getUserFavoriteById.favorites\r\n // .map(l => `${l.listingId}`)\r\n // .includes(`${listingDetail.listingId}`);\r\n // const [addFavoriteMutation] = useMutation(ADD_FAVORITE_MUTATION, {\r\n // refetchQueries: [\r\n // {\r\n // query: USER_FAVORITE_QUERY,\r\n // variables: { UserId: Number.parseInt(userId || \"\", 10) },\r\n // },\r\n // ],\r\n // onCompleted: () => {\r\n // notification.open({\r\n // message: \"Success\",\r\n // description: \"The vehicle has been added successfully\",\r\n // icon: ,\r\n // });\r\n // },\r\n // });\r\n // const [deleteFavoriteMutation] = useMutation(REMOVE_FAVORITE_MUTATION, {\r\n // refetchQueries: [\r\n // {\r\n // query: USER_FAVORITE_QUERY,\r\n // variables: { UserId: Number.parseInt(userId || \"\", 10) },\r\n // },\r\n // ],\r\n // onCompleted: () => {\r\n // notification.open({\r\n // message: \"Success\",\r\n // description: \"The vehicle has been removed successfully\",\r\n // icon: ,\r\n // });\r\n // },\r\n // });\r\n\r\n const handleReportListingClick = (e: React.MouseEvent) => {\r\n e.preventDefault();\r\n console.log(\"buttonClicked\");\r\n if (isLoggedIn) {\r\n setReportModalVisible(true);\r\n } else {\r\n dispatch({\r\n type: \"SHOW_LOGIN\",\r\n });\r\n }\r\n };\r\n\r\n const reportListingList = useQuery(REPORT_LISTINGS_LIST, {\r\n fetchPolicy: \"network-only\",\r\n skip: !isLoggedIn,\r\n onError: (err) => {\r\n try {\r\n const displayMsg = err.graphQLErrors[0].message;\r\n notification[\"error\"]({\r\n message: \"Error\",\r\n description:\r\n displayMsg ||\r\n \"Sorry, we are not able to retrieve the data at the moment\",\r\n });\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n },\r\n });\r\n const [executeReportListing] = useMutation(REPORT_LISTING, {\r\n onCompleted: (data) => {\r\n if (data && data.ReportListing) {\r\n if (data.ReportListing.success === false) {\r\n const displayMsg = data.ReportListing.message;\r\n notification[\"error\"]({\r\n message: \"error\",\r\n description: displayMsg,\r\n });\r\n } else {\r\n const displayMsg = data.ReportListing.message;\r\n notification[\"success\"]({\r\n message: \"Success\",\r\n description: displayMsg,\r\n });\r\n }\r\n setLoadingView(false);\r\n setReportModalVisible(false);\r\n reportMod(reportModalVisible);\r\n form.resetFields();\r\n }\r\n },\r\n onError: (err) => {\r\n try {\r\n const displayMsg = err.graphQLErrors[0].message;\r\n notification[\"error\"]({\r\n message: \"Error\",\r\n description: displayMsg || \"Could not report Listing.\",\r\n });\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n setLoadingView(false);\r\n setReportModalVisible(false);\r\n\r\n form.resetFields();\r\n },\r\n });\r\n const getLocationFromThirdPartyService = async () => {\r\n try {\r\n const { data } = await client.query({\r\n query: GET_LOCATION_BY_CLIENT_IP_QUERY,\r\n });\r\n const { latitude, longitude } = data.getLocationByClientIp;\r\n return {\r\n latitude,\r\n longitude,\r\n };\r\n } catch (e) {\r\n console.error(e);\r\n }\r\n };\r\n\r\n const getLocationFromBrowserApi = async (): Promise<{\r\n latitude: number;\r\n longitude: number;\r\n } | null> => {\r\n //check browser support\r\n\r\n if (navigator.geolocation) {\r\n try {\r\n const { state } = await navigator.permissions.query({\r\n name: \"geolocation\",\r\n });\r\n\r\n if (state === \"prompt\" || state === \"granted\") {\r\n return new Promise((resolve, reject) => {\r\n navigator.geolocation.getCurrentPosition(\r\n ({ coords: { latitude, longitude } }) => {\r\n resolve({ latitude, longitude });\r\n },\r\n (error) => {\r\n if (error.message !== \"User denied Geolocation\") {\r\n console.error(error);\r\n }\r\n reject(null);\r\n },\r\n { enableHighAccuracy: false, maximumAge: 0 } //prevent caching as user can move around\r\n );\r\n });\r\n } else {\r\n return null;\r\n }\r\n } catch (e) {\r\n console.error(e);\r\n return null;\r\n }\r\n }\r\n return null;\r\n };\r\n const getLocation = async () => {\r\n // console.log(\"location1:\",geoContext)\r\n // if (\r\n // geoContext.state &&\r\n // geoContext.state.location &&\r\n // geoContext.state.location.length\r\n // ) {\r\n // console.log(\"location2:\",geoContext.state.location)\r\n // return geoContext.state.location;\r\n\r\n // }\r\n\r\n const locationFromBrowserAPI = await getLocationFromBrowserApi();\r\n // console.log(\"distance:\",locationFromBrowserAPI)\r\n if (locationFromBrowserAPI) {\r\n return [\r\n locationFromBrowserAPI.latitude,\r\n locationFromBrowserAPI.longitude,\r\n ];\r\n }\r\n\r\n const locationFromThirdPartyService = await getLocationFromThirdPartyService();\r\n // console.log(\"distance2:\",locationFromThirdPartyService)\r\n if (locationFromThirdPartyService) {\r\n return [\r\n locationFromThirdPartyService!.latitude,\r\n locationFromThirdPartyService!.longitude,\r\n ];\r\n }\r\n return null;\r\n };\r\n const calculateDistance = () => {\r\n const curLocation = geoContext && geoContext?.state?.location;\r\n // console.log(\"Current location:\", curLocation);\r\n\r\n const start = {\r\n latitude: (curLocation && curLocation[0]) || 0,\r\n longitude: (curLocation && curLocation[1]) || 0,\r\n };\r\n\r\n const listingLocation = {\r\n latitude: listingDetail.location?.latitude || 0,\r\n longitude: listingDetail.location?.longitude || 0,\r\n };\r\n if (start.latitude === 0) {\r\n return \"N/A\";\r\n }\r\n const milesFrom = haversine(\r\n { ...start },\r\n { ...listingLocation },\r\n { unit: \"mile\" }\r\n ).toFixed(1);\r\n // console.log(milesFrom, listingDetail.location);\r\n\r\n if (listingDetail.location !== null) {\r\n return milesFrom || \"N/A\";\r\n } else return \"N/A\";\r\n };\r\n const handleUpdateLocation = async () => {\r\n // console.log(\"curloc:\",geoContext)\r\n // if (geoContext.state && geoContext.state.location) {\r\n\r\n // if ( !geoContext.state.location.length) {\r\n let loc = await getLocation();\r\n // console.log(\"loc:\",loc)\r\n\r\n if (loc) {\r\n geoContext.dispatch &&\r\n geoContext.dispatch({\r\n type: SET_LOCATION,\r\n payload: loc,\r\n });\r\n\r\n // }\r\n // }\r\n }\r\n // console.log(\"\")\r\n };\r\n React.useEffect(() => {\r\n // console.log(\"location3:\",geoContext)\r\n handleUpdateLocation();\r\n console.log(location?.state?.data);\r\n }, []);\r\n\r\n // React.useEffect(() => {\r\n // const position = (position: any) => {\r\n // console.log(position.coords);\r\n // setCurrLocation(position.coords);\r\n // };\r\n // window.navigator.geolocation.getCurrentPosition(position, position);\r\n // }, []);\r\n\r\n const REPORT_REASON = [\r\n {\r\n id: 1,\r\n value: \"Inappropriate Content\",\r\n },\r\n {\r\n id: 2,\r\n value: \"Fake Profile/Listing\",\r\n },\r\n {\r\n id: 3,\r\n value: \"Spam\",\r\n },\r\n ];\r\n\r\n // Enter the values for the report listing api\r\n // const handleSubmit = (e: React.FormEvent) => {\r\n // e.preventDefault();\r\n // form.validateFieldsAndScroll((error, values) => {\r\n // if (!error && vehicleDetailFormQueryResult.data) {\r\n // const listingInput = {\r\n // listingId: listingId,\r\n // listingDescription: values.vehicleDescription,\r\n\r\n // };\r\n // };\r\n\r\n // const handleSetFavorite = (e: React.MouseEvent) => {\r\n // e.preventDefault();\r\n // if (isLoggedIn && userId) {\r\n // const variables = {\r\n // ListingId: `${listingDetail.listingId}`,\r\n // UserId: Number.parseInt(userId || \"\", 10),\r\n // };\r\n // if (isVehicleAddedToFav) {\r\n // deleteFavoriteMutation({ variables });\r\n // } else {\r\n // addFavoriteMutation({\r\n // variables,\r\n // });\r\n // }\r\n // } else {\r\n // dispatch({\r\n // type: \"SHOW_LOGIN\",\r\n // });\r\n // }\r\n // };\r\n\r\n // const handleSendMessageClick = (e: React.MouseEvent) => {\r\n // e.preventDefault();\r\n // if (isLoggedIn && userId) {\r\n // setMessageModalVisible(true);\r\n // } else {\r\n // dispatch({\r\n // type: \"SHOW_LOGIN\",\r\n // });\r\n // }\r\n // };\r\n\r\n // const handleReportListingClick = (e: React.MouseEvent) => {\r\n // e.preventDefault();\r\n // if (isLoggedIn && userId) {\r\n // setReportModalVisible(true);\r\n // } else {\r\n // dispatch({\r\n // type: \"SHOW_LOGIN\",\r\n // });\r\n // }\r\n // };\r\n const onCancel = () => {\r\n setReportModalVisible(false);\r\n reportMod(reportModVis);\r\n };\r\n const onReportListing = (e: React.FormEvent) => {\r\n e.preventDefault();\r\n setLoadingView(true);\r\n form.validateFieldsAndScroll((error, values) => {\r\n if (!error) {\r\n executeReportListing({\r\n variables: {\r\n listingId: listingDetail.listingId,\r\n note: values.vehicleDescription,\r\n reasonId: values.reportreason,\r\n reporteeId: Number.parseInt(userId || \"\", 10),\r\n reporterId: listingDetail.userId,\r\n },\r\n });\r\n }\r\n });\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n {form.getFieldDecorator(\"reportreason\", {\r\n rules: [\r\n {\r\n required: true,\r\n message: \"Please select the reason.\",\r\n },\r\n ],\r\n })(\r\n reportListingList.data &&\r\n reportListingList.data.getReasonsList &&\r\n reportListingList.data.getReasonsList.list !== undefined &&\r\n reportListingList.data.getReasonsList.list !== null ? (\r\n \r\n {reportListingList.data &&\r\n reportListingList.data.getReasonsList &&\r\n reportListingList.data.getReasonsList.list &&\r\n reportListingList.data.getReasonsList.list.map((rr) => (\r\n \r\n {rr.ReasonName}\r\n \r\n ))}\r\n \r\n ) : (\r\n \r\n )\r\n )}\r\n \r\n \r\n {form.getFieldDecorator(\r\n \"vehicleDescription\",\r\n {}\r\n )(\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n SUBMIT\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n Report Listing\r\n \r\n \r\n\r\n \r\n {listingDetail.price && listingDetail.price > 0\r\n ? formatCurrency(Number(listingDetail.price))\r\n : \"Call for Price\"}\r\n \r\n\r\n \r\n \r\n
    \r\n \r\n
    \r\n\r\n \r\n \r\n {listingDetail.favoriteCount || \"0\"}\r\n \r\n \r\n TIMES FAVORITED\r\n \r\n \r\n \r\n\r\n \r\n
    \r\n \r\n
    \r\n\r\n \r\n \r\n {listingDetail.viewCount}\r\n \r\n \r\n {`Views this week`.toUpperCase()}\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n {listingDetail.userName || \"Private Seller\"}\r\n \r\n {listingDetail.listerLogo && (\r\n \r\n \r\n \r\n )}\r\n \r\n {listingDetail.listingYear} {listingDetail.make}{\" \"}\r\n {listingDetail.model}\r\n \r\n \r\n \r\n\r\n {/* Miles and Color */}\r\n \r\n \r\n \r\n \r\n {listingDetail.mileage !== null &&\r\n listingDetail.mileage !== undefined\r\n ? `${formatNumber(listingDetail.mileage)} Miles`\r\n : \"N/A\"}\r\n \r\n \r\n\r\n \r\n \r\n \r\n {listingDetail.primaryColor || \"N/A\"}\r\n \r\n \r\n \r\n\r\n {/* Condition & Style */}\r\n \r\n \r\n \r\n \r\n {(!listingDetail.stockType ||\r\n listingDetail.stockType === \"N\" ||\r\n listingDetail.privateVehicle === true\r\n ? \"Used\"\r\n : \"New\") || \"N/A\"}\r\n \r\n \r\n CONDITION\r\n \r\n \r\n\r\n \r\n \r\n {listingDetail.bodyStyle || \"N/A\"}\r\n \r\n \r\n BODY STYLE\r\n \r\n \r\n \r\n\r\n {/* Miles AWAY AND STOCK NUMBER */}\r\n \r\n \r\n \r\n {calculateDistance() || \"N/A\"}\r\n \r\n \r\n MILES AWAY\r\n \r\n \r\n\r\n \r\n \r\n {listingDetail.stockNo || \"N/A\"}\r\n \r\n \r\n STOCK NUMBER\r\n \r\n \r\n \r\n \r\n \r\n See More Information\r\n \r\n \r\n \r\n \r\n\r\n {listingDetail && listingDetail.listingDescription && (\r\n \r\n \r\n Seller's Description\r\n \r\n \r\n {listingDetail.listingDescription.slice(\r\n 0,\r\n showMore ? listingDetail.listingDescription.length : 200\r\n ) || \"No Description Available\"}\r\n \r\n\r\n {listingDetail.listingDescription.length > 200 && (\r\n \r\n setShowMore(!showMore)}\r\n >\r\n {showMore ? \"Show less\" : \" Show more\"}\r\n \r\n \r\n )}\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\n// export default SellerInfoCard;\r\nexport default Form.create({ name: \"report-reason-form\" })(\r\n SellerInfoCard\r\n);\r\n","import * as React from \"react\";\r\n\r\nimport { Col, Icon, Row } from \"antd\";\r\nimport { Link, BrowserRouter as Router, useHistory } from \"react-router-dom\";\r\nimport { formatCurrency, formatMileage } from \"../../../utils/format\";\r\n\r\nimport { SimilarListingResult } from \"../../../generated/graphql\";\r\nimport { breakpoints } from \"../../../constants\";\r\nimport { css } from \"@emotion/core\";\r\n\r\ninterface Props {\r\n vehicle: any;\r\n filteredUrl: any;\r\n handleFavClick: (\r\n e: any,\r\n isFav: boolean,\r\n listingId: number,\r\n listingTypeId: number\r\n ) => void;\r\n fav: any | undefined;\r\n}\r\n\r\nconst ListingCardSim: React.FC = ({\r\n vehicle,\r\n handleFavClick,\r\n fav,\r\n filteredUrl,\r\n}) => {\r\n const history = useHistory();\r\n const isFav =\r\n (fav && fav.map((l: any) => l.listingId).includes(vehicle.listingId)) ||\r\n false;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {(vehicle.price > 0 && formatCurrency(vehicle.price)) ||\r\n (!vehicle.imageUrl && \"Call for Price\") ||\r\n null}\r\n \r\n \r\n
    \r\n \r\n handleFavClick(\r\n e,\r\n isFav,\r\n vehicle.listingId,\r\n vehicle.listingTypeId\r\n )\r\n }\r\n // ${isAdded ? \"green\" : \"black\"}; add after connecting the fav listings\r\n />\r\n
    \r\n \r\n \r\n \r\n \r\n {vehicle.itemYear} {vehicle.make}\r\n \r\n \r\n {vehicle.model}\r\n {/* .slice(0, 12) */}\r\n \r\n \r\n {vehicle.miles && formatMileage(vehicle.miles)} Miles\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ListingCardSim;\r\n","import * as React from \"react\";\r\n\r\nimport { Card, Skeleton } from \"antd\";\r\n\r\nimport { css } from \"@emotion/core\";\r\n\r\nconst LoadingCard: React.FC = () => {\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default LoadingCard;\r\n","import * as React from \"react\";\r\n\r\nimport { Button, Carousel, notification } from \"antd\";\r\nimport { ListingDetail, Mutation, Query } from \"../../generated/graphql\";\r\nimport {\r\n useAuthPopupDispatch,\r\n useAuthPopupState,\r\n} from \"../../context/AuthPopupContext\";\r\nimport { useMutation, useQuery } from \"@apollo/react-hooks\";\r\n\r\nimport ListingCardSim from \"./components/ListingCardSim\";\r\nimport LoadingCard from \"../LoadingCard/LoadingCard\";\r\nimport { breakpoints } from \"../../constants\";\r\nimport { css } from \"@emotion/core\";\r\nimport { loader } from \"graphql.macro\";\r\nimport { useHistory } from \"react-router-dom\";\r\n\r\n// import { formatCurrency, formatNumber } from '../../../utils/format';\r\n\r\n// import { breakpoints } from \"../../constants\";\r\nconst USER_FAVORITE_QUERY = loader(\"../VehicleDetail/userFavQuery.graphql\");\r\n\r\ninterface Props {\r\n listingDetail: ListingDetail;\r\n filteredUrl: any;\r\n}\r\nconst SEE_SIMILAR_LISTINGS = loader(\"./seeSimilarQuery.graphql\");\r\n// ../recentListingQuery.graphql\r\nexport const SimilarVehicle: React.FC = ({\r\n listingDetail,\r\n filteredUrl,\r\n}) => {\r\n // const SimilarVehicle = useQuery(SEE_SIMILAR_LISTINGS, {\r\n // variables: { vin: listingDetail.vin },\r\n // });\r\n\r\n const SimilarVehicle = listingDetail.similarListings;\r\n\r\n const ADD_FAVORITE_MUTATION = loader(\"./addFavoriteMutation.graphql\");\r\n const REMOVE_FAVORITE_MUTATION = loader(\"./removeFavoriteMutation.graphql\");\r\n const { userId, isLoggedIn, Uuid } = useAuthPopupState();\r\n const history = useHistory();\r\n const dispatch = useAuthPopupDispatch();\r\n const { data } = useQuery(USER_FAVORITE_QUERY, {\r\n variables: {\r\n UserUuid: Uuid,\r\n },\r\n skip: !isLoggedIn,\r\n });\r\n // const isVehicleAddedToFav =\r\n // data &&\r\n // data.getUserFavoriteById &&\r\n // data.getUserFavoriteById.favorites\r\n // .map(l => `${l.listingId}`)\r\n // .includes(`${listingDetail.listingId}`);\r\n const [addFavoriteMutation] = useMutation(ADD_FAVORITE_MUTATION, {\r\n refetchQueries: [\r\n {\r\n query: USER_FAVORITE_QUERY,\r\n variables: {\r\n UserUuid: Uuid,\r\n },\r\n },\r\n ],\r\n onCompleted: () => {\r\n notification.success({\r\n message: \"Success\",\r\n description: \"The vehicle has been added successfully\",\r\n });\r\n },\r\n onError: () => {\r\n notification.error({\r\n message: \"There was an error adding your favorite\",\r\n });\r\n },\r\n });\r\n const [deleteFavoriteMutation] = useMutation(REMOVE_FAVORITE_MUTATION, {\r\n refetchQueries: [\r\n {\r\n query: USER_FAVORITE_QUERY,\r\n variables: {\r\n UserUuid: Uuid,\r\n },\r\n },\r\n ],\r\n onCompleted: () => {\r\n notification.error({\r\n message: \"Success\",\r\n description: \"The vehicle has been removed successfully\",\r\n });\r\n },\r\n onError: () => {\r\n notification.error({\r\n message: \"There was an error removing your favorite\",\r\n });\r\n },\r\n });\r\n\r\n if (!SimilarVehicle || SimilarVehicle?.length <= 0) {\r\n return
    ;\r\n }\r\n\r\n const handleFavClick = (\r\n e: any,\r\n isFav: boolean,\r\n listingId: number,\r\n listingTypeId: number\r\n ) => {\r\n e.preventDefault();\r\n if (isLoggedIn && userId) {\r\n const variables = {\r\n UserUuid: Uuid,\r\n ListingId: `${listingId}`,\r\n UserId: Number.parseInt(userId || \"\", 10),\r\n typeId: listingTypeId,\r\n };\r\n if (isFav) {\r\n deleteFavoriteMutation({ variables });\r\n } else {\r\n addFavoriteMutation({\r\n variables,\r\n });\r\n }\r\n } else {\r\n dispatch({\r\n type: \"SHOW_LOGIN\",\r\n });\r\n }\r\n };\r\n\r\n if (SimilarVehicle && SimilarVehicle.length > 0) {\r\n const similarListings = SimilarVehicle;\r\n const carouselSettings = {\r\n dots: false,\r\n arrows: true,\r\n slidesToShow: 3,\r\n slidesToScroll: 3,\r\n initialSlide: 0,\r\n responsive: [\r\n {\r\n breakpoint: 2000,\r\n settings: {\r\n slidesToShow: 2,\r\n slidesToScroll: 2,\r\n },\r\n },\r\n // {\r\n // breakpoint: 576,\r\n // settings: {\r\n // // slidesToShow: 2,\r\n // slidesToScroll: 1,\r\n // swipeToSlide: true,\r\n // },\r\n // },\r\n ],\r\n };\r\n return (\r\n
    \r\n {similarListings && similarListings.length > 0 && (\r\n \r\n \r\n Similar Listings\r\n \r\n \r\n \r\n {similarListings &&\r\n similarListings.length > 0 &&\r\n similarListings.map((l, index) => (\r\n handleFavClick(e, isFav, listingId, listingTypeId)}\r\n fav={\r\n data &&\r\n data.getUserFavoriteById &&\r\n data.getUserFavoriteById.favorites\r\n }\r\n />\r\n ))}\r\n \r\n \r\n {similarListings &&\r\n similarListings.map((l, index) => (\r\n handleFavClick(e, isFav, listingId, listingTypeId)}\r\n fav={\r\n data &&\r\n data.getUserFavoriteById &&\r\n data.getUserFavoriteById.favorites\r\n }\r\n />\r\n ))}\r\n
    \r\n \r\n {listingDetail.privateVehicle === false && (\r\n
    \r\n \r\n history.push(`/buy?dealer=${listingDetail.userId}`)\r\n }\r\n // onClick={history.goBack}\r\n >\r\n View vehicles at this location\r\n \r\n
    \r\n )}\r\n \r\n )}\r\n \r\n );\r\n }\r\n return (\r\n
    \r\n \r\n {[...Array(4)].map((_, index) => (\r\n \r\n ))}\r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default SimilarVehicle;\r\n","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 =\n/*#__PURE__*/\n\n/*#__PURE__*/\nReact.createElement(\"path\", {\n d: \"M0 0h18v18H0z\",\n fill: \"none\"\n});\n\nvar _ref3 =\n/*#__PURE__*/\n\n/*#__PURE__*/\nReact.createElement(\"g\", {\n fill: \"#fff\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3.456 1.911h-.652v1.3h.652a11.753 11.753 0 0111.739 11.743v.657h1.3v-.652A13.058 13.058 0 003.456 1.911zM2.804 4.52h1.3v2.609h-1.3z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8.53 8.96l1.844-1.845.922.923L9.45 9.882zm2.753 5.342h2.609v1.3h-2.609zm-9.21-.731c.764-.764 5.949-3.182 5.949-3.182S5.6 15.574 4.84 16.337a1.957 1.957 0 11-2.767-2.767z\"\n}));\n\nvar SvgMetrics = function SvgMetrics(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n height: 18,\n viewBox: \"0 0 18 18\",\n width: 18,\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3);\n};\n\nvar ForwardRef = React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgMetrics, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/metrics.41f5d5a1.svg\";\nexport { ForwardRef as ReactComponent };","import React, { Fragment } from \"react\";\r\n\r\nimport { Button } from \"antd\";\r\nimport { ReactComponent as Call } from \"../../assets/svgs/phone.svg\";\r\nimport { ListingDetail } from \"../../generated/graphql\";\r\nimport { ReactComponent as Message } from \"../../assets/svgs/sms.svg\";\r\nimport { ReactComponent as Mileage } from \"../../assets/svgs/metrics.svg\";\r\nimport { ReactComponent as Pallet } from \"../../assets/svgs/palette.svg\";\r\nimport { breakpoints } from \"../../constants\";\r\nimport { css } from \"@emotion/core\";\r\nimport { formatCurrency } from \"../../utils/format\";\r\n\r\ninterface Props {\r\n listingDetail: ListingDetail;\r\n}\r\n\r\nconst TopFixedNavigation: React.FC = ({ listingDetail }) => {\r\n const {\r\n listingYear,\r\n make,\r\n model,\r\n trim = \"\",\r\n primaryColor,\r\n // dealerName = \"Dealer Name\",\r\n mileage,\r\n price,\r\n attachments,\r\n } = listingDetail;\r\n\r\n const handleRequestClicked = () => {\r\n window.parent.scrollTo(0, 0);\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n

    {listingDetail.userName.toUpperCase()}

    \r\n\r\n

    \r\n {listingYear} {make.toUpperCase()} {model.toUpperCase()}{\" \"}\r\n {trim && trim.toUpperCase()}\r\n

    \r\n\r\n \r\n {mileage && (\r\n \r\n \r\n {mileage}\r\n \r\n )}\r\n\r\n {primaryColor && (\r\n \r\n \r\n {primaryColor}\r\n \r\n )}\r\n \r\n \r\n\r\n \r\n \r\n {(price && formatCurrency(Number(price))) || \"Call for Price\"}\r\n \r\n \r\n {listingDetail.privateVehicle === false &&\r\n listingDetail.listerPhone && (\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n )}\r\n {/* \r\n Request Information\r\n */}\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default TopFixedNavigation;\r\n","import { Button, Col, Modal, Row, notification } from \"antd\";\r\nimport { CashOffers, Mutation, Query } from \"../../../generated/graphql\";\r\nimport React, { Dispatch, useState } from \"react\";\r\nimport { useMutation, useQuery } from \"react-apollo\";\r\n\r\nimport { css } from \"@emotion/core\";\r\nimport { formatCurrency } from \"../../../utils/format\";\r\nimport { loader } from \"graphql.macro\";\r\nimport { useHistory } from \"react-router-dom\";\r\n\r\ninterface Props {\r\n offer: CashOffers;\r\n email: any;\r\n listingId: Number;\r\n setParentModal: Dispatch;\r\n}\r\n\r\nconst TRADE = loader(\"../tradeIn.graphql\");\r\n\r\nconst TradeCard: React.FC = ({\r\n offer,\r\n email,\r\n listingId,\r\n setParentModal,\r\n}) => {\r\n const { AppraisalRefNo, Vin, OfferPrice } = offer;\r\n const [modal, setModal] = useState(false);\r\n const [tradeSuccess, setTradeSuccess] = React.useState(false);\r\n\r\n const history = useHistory();\r\n\r\n const [tradeInMutation, { data, loading, error }] = useMutation(\r\n TRADE\r\n );\r\n\r\n const handleTradeIn = () => {\r\n setModal(true);\r\n try {\r\n tradeInMutation({\r\n variables: {\r\n AppraisalRefNo,\r\n Email: email,\r\n TradeForItemId: listingId,\r\n },\r\n });\r\n\r\n setTradeSuccess(true);\r\n } catch (error) {\r\n notification.error({ message: error.message });\r\n }\r\n };\r\n\r\n const handleOk = () => {\r\n if (loading) return;\r\n setModal(false);\r\n setParentModal(false);\r\n };\r\n\r\n return (\r\n \r\n setLoading(false)}\r\n onOk={handleOk}\r\n footer={[\r\n null,\r\n \r\n Ok\r\n ,\r\n ]}\r\n >\r\n {data?.TradeVehicle.success === true ? (\r\n
    Your Trade was a success
    \r\n ) : (\r\n
    Applying your Trade In
    \r\n )}\r\n \r\n \r\n \r\n \r\n

    {Vin}

    \r\n

    \r\n {formatCurrency(Number(OfferPrice))}\r\n

    \r\n \r\n \r\n\r\n \r\n \r\n \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default TradeCard;\r\n","import { Alert, Button, Col, Divider, Icon, Input, Row } from \"antd\";\r\nimport React, { Dispatch, FC, useEffect, useState } from \"react\";\r\n\r\nimport { TradeCard } from \"./components\";\r\nimport { css } from \"@emotion/core\";\r\nimport { environmentVariableList } from \"../../config/env\";\r\nimport { useAuthPopupState } from \"../../context/AuthPopupContext\";\r\nimport { useDetailsFlowState } from \"../../context/DetailsFlowContext\";\r\nimport { useHistory } from \"react-router-dom\";\r\n\r\ntype Offer = {\r\n AppraisalRefNo: string;\r\n Vin: string;\r\n Model: string;\r\n ItemMake: string;\r\n ItemYear: number;\r\n Mileage: number;\r\n OfferPrice: number | null;\r\n OfferExpiryDate: number | null;\r\n OfferAcceptedDt: number | null;\r\n OfferReleasedDt: number | null;\r\n Status: string;\r\n ImageURL: string;\r\n CreatedDate: string;\r\n AppraisalStatusId: number;\r\n};\r\n\r\nconst NO_ACTIVE_OFFER = \"No Active cash offers exists for this email address\";\r\n\r\nconst TradeInExistingCashOffer: FC<{\r\n setModal: Dispatch;\r\n}> = ({ setModal }) => {\r\n const [showOffers, setShowOffers] = useState(false);\r\n const [offerEmail, setOfferEmail] = useState(\"\");\r\n const [errorMessage, setErrorMessage] = useState(\"\");\r\n\r\n const [offersList, setOffersList] = useState([]);\r\n const detailState = useDetailsFlowState();\r\n const authState = useAuthPopupState();\r\n const { listingId } = detailState;\r\n const { isLoggedIn, Email } = authState;\r\n const history = useHistory();\r\n const [loading, setLoading] = useState(false);\r\n\r\n const handleNewTradeInOffer = () =>\r\n history.push({\r\n pathname: \"/how-to/sell-your-vehicle\",\r\n search: \"?trade=true\",\r\n state: {\r\n redirect: history.location.pathname,\r\n },\r\n });\r\n\r\n const handleGetOffer = async () => {\r\n try {\r\n setLoading(true);\r\n setErrorMessage(\"\");\r\n const response = await fetch(\r\n `${environmentVariableList.REACT_APP_CW_CASH_OFFER}/Services/CashOffer/AprAppraisal/GetMyOffers`,\r\n {\r\n method: \"POST\",\r\n headers: new Headers({\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n }),\r\n\r\n body: JSON.stringify({\r\n email: Email || offerEmail,\r\n }),\r\n }\r\n );\r\n\r\n if (response.status >= 200 && response.status <= 299) {\r\n const data = await response.json();\r\n\r\n const list = data.offersList.filter(\r\n (i: Offer) => i.Status === \"Released\"\r\n );\r\n\r\n if (!list.length) {\r\n throw new Error(NO_ACTIVE_OFFER);\r\n }\r\n\r\n setOffersList(list);\r\n } else {\r\n const data = await response.json();\r\n\r\n throw new Error(data?.Message);\r\n }\r\n } catch (error) {\r\n console.error(error);\r\n let message = error.message || \"Something went wrong. Please try again.\";\r\n\r\n if (\r\n error.message ===\r\n \"Unable to get MyOffers details. Error: Invalid User ID\"\r\n ) {\r\n message = \"Invalid user email.\";\r\n }\r\n\r\n setErrorMessage(message);\r\n } finally {\r\n setLoading(false);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (isLoggedIn) {\r\n handleGetOffer();\r\n }\r\n }, [isLoggedIn]);\r\n\r\n const handleOfferEmail = (e: any) => {\r\n setOfferEmail(e.target.value);\r\n };\r\n\r\n const renderOfferList = (offers: any) => {\r\n return (\r\n
    \r\n {offers &&\r\n offers.map((offer: any, index: number) => {\r\n return (\r\n
    \r\n \r\n
    \r\n );\r\n })}\r\n
    \r\n );\r\n };\r\n\r\n const renderOfferSection = () => (\r\n \r\n

    You have an Offer with us, You can Trade In your Offer

    \r\n \r\n {showOffers === true && renderOfferList(offersList)}\r\n \r\n OR\r\n \r\n

    \r\n \r\n \r\n );\r\n\r\n const renderNoOffer = () => (\r\n \r\n \r\n \r\n You don't have an Offer with us\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n\r\n const renderError = () => (\r\n \r\n \r\n \r\n );\r\n\r\n return (\r\n <>\r\n {offersList.length ? (\r\n renderOfferSection()\r\n ) : isLoggedIn ? (\r\n loading ? (\r\n \r\n \r\n Loading\r\n \r\n ) : errorMessage && errorMessage !== NO_ACTIVE_OFFER ? (\r\n renderError()\r\n ) : (\r\n renderNoOffer()\r\n )\r\n ) : (\r\n \r\n \r\n \r\n

    You might already have an offer for Trade

    \r\n \r\n You can search by Email or Login\r\n \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n Look for Offer\r\n \r\n \r\n {errorMessage && renderError()}\r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default TradeInExistingCashOffer;\r\n","import { Button, Modal, Row } from \"antd\";\r\nimport React, { useState } from \"react\";\r\n\r\nimport TradeInExistingCashOffer from \"../TradeInExistingOffers/TradeInExistingOffers\";\r\nimport TradeLogo from \"../../assets/images/TradeIn.svg\";\r\nimport { colors } from \"../../constants/styles\";\r\nimport { css } from \"@emotion/core\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { useModalFlowDispatch } from \"../../context/ModalContext\";\r\n\r\nconst TRADE_MESSAGE = `Find your Trade-in Value`;\r\n\r\ninterface Props {\r\n optedOutFromCO: boolean;\r\n}\r\n\r\nconst TradeIn: React.FC = ({ optedOutFromCO }) => {\r\n const history = useHistory();\r\n const dispatch = useModalFlowDispatch();\r\n const [modal, setModal] = useState(false);\r\n\r\n return (\r\n \r\n \r\n \"\"\r\n \r\n\r\n \r\n {TRADE_MESSAGE.toUpperCase()}\r\n \r\n\r\n \r\n Turn your powersports vehicle into cash or trade up with RumbleOn's\r\n instant cash offers. Use the cash voucher towards a trade-in or trade-up\r\n on any of our vehicles at any of our 50+ RideNow locations nationwide.\r\n Discover the power of RumbleOn today!\r\n

    \r\n\r\n \r\n {\r\n if (optedOutFromCO === true) {\r\n dispatch({\r\n type: \"SHOW_REQUEST_INFO_MODAL\",\r\n args: {\r\n showRequestInfoModal: true,\r\n },\r\n });\r\n } else {\r\n setModal(true);\r\n }\r\n }}\r\n css={css`\r\n font-size: 16px;\r\n width: 100%;\r\n @media (max-width: 786px) {\r\n font-size: 22px;\r\n }\r\n `}\r\n >\r\n Get my trade-in value\r\n \r\n \r\n setModal(false)}\r\n >\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default TradeIn;\r\n","import * as React from \"react\";\r\n\r\nimport { Button, Col, Icon, Row } from \"antd\";\r\n\r\nimport { Link } from \"react-router-dom\";\r\n// import { breakpoints } from \"../../constants\";\r\nimport { ListingDetail } from \"../../generated/graphql\";\r\nimport { css } from \"@emotion/core\";\r\n// import moment from \"moment\";\r\n//import { formatDate } from \"../../utils/format\";\r\nimport { useAuthPopupState } from \"../../context/AuthPopupContext\";\r\n\r\ninterface Props {\r\n listingDetail: ListingDetail;\r\n}\r\n\r\nconst UserView: React.FC = ({ listingDetail }) => {\r\n const { isLoggedIn, userId } = useAuthPopupState();\r\n\r\n return (\r\n \r\n \r\n {isLoggedIn && listingDetail.userId?.toString() === userId && (\r\n <>\r\n {/* {(listingDetail.listingStatusId === 1 ||\r\n listingDetail.listingStatusId === 3 ||\r\n listingDetail.listingStatusId === 8 ||\r\n listingDetail.listingStatusId === 10 ||\r\n listingDetail.listingStatusId === 12 ||\r\n listingDetail.listingStatusId === 9) && ( */}\r\n \r\n

    This Listing belongs to you.

    \r\n
    \r\n {/* {(listingDetail.listingStatusId === 1 ||\r\n listingDetail.listingStatusId === 3 ||\r\n // listingDetail.listingStatusId === 8 ||\r\n listingDetail.listingStatusId === 9 ||\r\n listingDetail.listingStatusId === 10 ||\r\n listingDetail.listingStatusId === 12) && ( */}\r\n \r\n \r\n Edit Listing\r\n \r\n \r\n {/* )} */}\r\n \r\n )}\r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default UserView;\r\n","import * as React from \"react\";\r\n\r\nimport { Affix, Breadcrumb, Button, Col, Empty, Row, notification } from \"antd\";\r\nimport { Link, useHistory } from \"react-router-dom\";\r\nimport { Mutation, Query } from \"../../generated/graphql\";\r\nimport {\r\n useAuthPopupDispatch,\r\n useAuthPopupState,\r\n} from \"../../context/AuthPopupContext\";\r\nimport { useMutation, useQuery } from \"@apollo/react-hooks\";\r\n\r\nimport { ReactComponent as Call } from \"../../assets/svgs/phone.svg\";\r\nimport CashOffer from \"../CashOffer/Cashoffer\";\r\nimport ContactForInformation from \"../RequestInformation/RequestInformation\";\r\nimport ContactInformationModal from \"../RequestInformationModal/RequestInformationModal\";\r\nimport DealerInfo from \"../DealerInformation/DeallerInformation\";\r\nimport Error from \"../MyGarage/Components/Error\";\r\nimport { ReactComponent as FavoriteIcon } from \"../../assets/svgs/star-24px.svg\";\r\nimport { ReactComponent as FavoriteIconOutline } from \"../../assets/svgs/star_outline-24px.svg\";\r\nimport Financing from \"../Financing/Financing\";\r\nimport { Helmet } from \"react-helmet\";\r\nimport ImageGallery from \"../VehicleImageGallery/VehicleDetailPageImageGallery\";\r\nimport LoadingPage from \"../LoadingPage/LoadingPage\";\r\nimport { ReactComponent as Message } from \"../../assets/svgs/sms.svg\";\r\nimport ModeratorView from \"./ModeratorView\";\r\nimport PaymentCalculator from \"../PaymentCalculator/PaymentCalculator\";\r\nimport SellerInfoCard from \"../SellerInfoCard/SellerInfoCard\";\r\nimport SimilarVehicle from \"../SimilarVehicles/SimilarVehicle\";\r\nimport TopFixedNavigation from \"../TopFixedNavigation/TopFixedNavigation\";\r\nimport TradeIn from \"../TradeIn/Tradein\";\r\nimport UserView from \"./UserView\";\r\nimport VehicleImageGallery from \"../VehicleImageGallery/VehicleImageGallery\";\r\nimport VehicleImages from \"../ThumbnailsGallery/ThumbnailsGallery\";\r\nimport _ from \"lodash\";\r\nimport { breakpoints } from \"../../constants\";\r\nimport { css } from \"@emotion/core\";\r\nimport { fetInventoryDetails } from \"../../utils/api/fetchInventoryDetails\";\r\nimport { formatCurrency } from \"../../utils/format\";\r\nimport { loader } from \"graphql.macro\";\r\nimport { useDetailsFlowDispatch } from \"../../context/DetailsFlowContext\";\r\nimport { useParams } from \"react-router-dom\";\r\nimport { useSellFlowDispatch } from \"../../context/SellFlowContext\";\r\n\r\n// import { LazyImage } from \"react-lazy-images\";\r\n\r\nconst detailQuery = loader(\"./detailQuery.graphql\");\r\nconst ADD_FAVORITES = loader(\"./addFavoriteMutation.graphql\");\r\nconst REMOVE_FAVORITES = loader(\"./removeFavoriteMutation.graphql\");\r\nconst USER_FAVORITE_QUERY = loader(\"./userFavQuery.graphql\");\r\n\r\nconst VehicleDetail: React.FC = () => {\r\n const { isLoggedIn, userId, UserTypeId, Uuid } = useAuthPopupState();\r\n const dispatch = useSellFlowDispatch();\r\n dispatch({\r\n type: \"RESET_LISTING\",\r\n });\r\n const detailsDispatch = useDetailsFlowDispatch();\r\n detailsDispatch({ type: \"RESET_DETAILS\" });\r\n\r\n const authDispatch = useAuthPopupDispatch();\r\n\r\n const topNavRef = React.useRef(null);\r\n // console.log( topNavRef.current, window.innerHeight );\r\n const [showFixedBar, setShowFixedBar] = React.useState(false);\r\n const [vehicleDetailQueryResult, setVehicleDetailResponse] = React.useState<\r\n any\r\n >();\r\n const [isInformationRequested, setIsRequested] = React.useState(\r\n false\r\n );\r\n\r\n const [loading, setLoading] = React.useState(false);\r\n const [reportModalVisible, setReportModalVisible] = React.useState(false);\r\n window.addEventListener(\"scroll\", () => {\r\n // To Test\r\n\r\n // const bounding = window.document?.getElementById(\"top-navigation\")\r\n // ?.getBoundingClientRect();\r\n\r\n // console.log( bounding );\r\n // if (\r\n // bounding &&\r\n // bounding.top >= 0 &&\r\n // bounding.left >= 0 &&\r\n // bounding.right <= (window.innerWidth || document.documentElement.clientWidth) &&\r\n // bounding.bottom <= (window.innerHeight || document.documentElement.clientHeight)\r\n // ) {\r\n // console.log('In the viewport!');\r\n // } else {\r\n // console.log('Not in the viewport... whomp whomp');\r\n // }\r\n if (window.scrollY > 770) {\r\n setShowFixedBar(true);\r\n } else {\r\n setShowFixedBar(false);\r\n }\r\n });\r\n\r\n // let { listingId } = useParams();\r\n let listingId: any = \"\";\r\n let typeId = 1;\r\n // if (\r\n // !listingId ||\r\n // listingId === null ||\r\n // listingId === undefined ||\r\n // !/^\\d+$/.test(listingId)\r\n // ) {\r\n const query = new URLSearchParams(window.location.search);\r\n const id = query.has(\"listingId\");\r\n const listingTypeId = query.has(\"typeId\");\r\n if (id === true && listingTypeId === true) {\r\n listingId = (id && query.get(\"listingId\")) || \"\";\r\n typeId = Number(listingTypeId && query.get(\"typeId\"));\r\n } else {\r\n listingId = window.location.pathname.split(\"/\")[3].toString();\r\n typeId = Number(window.location.pathname.split(\"/\")[4].toString());\r\n }\r\n // }\r\n React.useEffect(() => {\r\n getVehicleDetails();\r\n console.log(history.location, \"back button\");\r\n }, []);\r\n const handleReportListingClick = (e: React.MouseEvent) => {\r\n e.preventDefault();\r\n console.log(\"buttonClicked\");\r\n if (isLoggedIn) {\r\n setReportModalVisible(true);\r\n } else {\r\n authDispatch({\r\n type: \"SHOW_LOGIN\",\r\n });\r\n }\r\n };\r\n\r\n const getVehicleDetails = async () => {\r\n setLoading(true);\r\n try {\r\n const { data } = await vehicleDetailQuery({\r\n listingId: listingId,\r\n typeId: typeId,\r\n });\r\n setVehicleDetailResponse(data.getListingDetail);\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n\r\n setLoading(false);\r\n };\r\n\r\n // const pathname = window.location.pathname + window.location.search;\r\n\r\n const history = useHistory();\r\n const { refetch: vehicleDetailQuery, error } = useQuery(detailQuery, {\r\n // variables: { listingId: listingId, typeId: typeId },\r\n fetchPolicy: \"network-only\",\r\n skip: true,\r\n });\r\n\r\n // console.log(_.includes(userFavorites?.getUserFavoriteById.favorites, 1));\r\n\r\n const [isFavorite, setFavorite] = React.useState(\r\n undefined\r\n );\r\n const { data: userFavorites } = useQuery(USER_FAVORITE_QUERY, {\r\n variables: {\r\n UserUuid: Uuid,\r\n },\r\n fetchPolicy: \"network-only\",\r\n skip: !isLoggedIn || isFavorite !== undefined,\r\n });\r\n const [favoritesMutationResult] = useMutation(\r\n !isFavorite || vehicleDetailQueryResult?.data?.getListingDetail?.isFlagged\r\n ? ADD_FAVORITES\r\n : REMOVE_FAVORITES\r\n );\r\n\r\n if (loading) {\r\n return ;\r\n }\r\n\r\n if (error || !vehicleDetailQueryResult) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n\r\n if (listingId === \"\") {\r\n history.push(\"/\");\r\n }\r\n\r\n // const userFavorite: any = _.includes(\r\n // userFavorites?.getUserFavoriteById.favorites,\r\n // listingId\r\n // );\r\n\r\n // console.log(userFavorite);\r\n if (loading === false && vehicleDetailQueryResult) {\r\n console.log(vehicleDetailQueryResult);\r\n const listingDetail = vehicleDetailQueryResult;\r\n const {\r\n vin,\r\n listingYear,\r\n make,\r\n model,\r\n trim,\r\n itemTypeId,\r\n interiorColor,\r\n zip,\r\n mileage,\r\n price,\r\n attachments,\r\n privateVehicle,\r\n } = listingDetail;\r\n\r\n console.log(listingDetail);\r\n\r\n const userFavorite =\r\n _.filter(userFavorites?.getUserFavoriteById.favorites, (o) => {\r\n console.log(o.listingId, listingId);\r\n return o.listingId === Number(listingId);\r\n }).length > 0;\r\n\r\n if (userFavorite === true) {\r\n console.log(userFavorite);\r\n setFavorite(userFavorite);\r\n }\r\n\r\n detailsDispatch({\r\n type: \"ADD_DETAILS\",\r\n args: {\r\n listingId,\r\n vin,\r\n listingYear,\r\n make,\r\n model,\r\n trim,\r\n itemTypeId,\r\n interiorColor,\r\n zip,\r\n mileage,\r\n price,\r\n attachments,\r\n thumbnailAttachmentId: attachments[0].listingAttachmentId,\r\n },\r\n });\r\n\r\n const handleFavorites = async () => {\r\n if (!isLoggedIn) {\r\n authDispatch({ type: \"SHOW_LOGIN\" });\r\n return;\r\n }\r\n\r\n try {\r\n console.log(\"uuid\", Uuid);\r\n await favoritesMutationResult({\r\n variables: {\r\n ListingId: listingDetail.listingId.toString(),\r\n UserId: Number(userId),\r\n UserUuid: Uuid,\r\n typeId: typeId,\r\n },\r\n });\r\n\r\n setFavorite(!isFavorite);\r\n } catch (error) {\r\n notification.error({\r\n message:\r\n \"Oops, this is our error, There was some issue with adding your favorites\",\r\n placement: \"bottomLeft\",\r\n // style: {\r\n // backgroundColor: \"gray\",\r\n // },\r\n duration: 1,\r\n });\r\n }\r\n };\r\n\r\n const handleContactModal = (e: React.FormEvent) => {\r\n e.preventDefault();\r\n if (privateVehicle !== false && !isLoggedIn) {\r\n authDispatch({ type: \"SHOW_LOGIN\" });\r\n } else {\r\n setIsRequested(true);\r\n }\r\n };\r\n\r\n const handleShare = () => {\r\n if (navigator.share) {\r\n navigator\r\n .share({\r\n title: \"Share Vehicle\",\r\n url: window.location.href,\r\n })\r\n .then(() => {\r\n console.log(\"Thanks for sharing!\");\r\n })\r\n .catch(console.error);\r\n } else {\r\n }\r\n };\r\n\r\n const handleGoBackToBuyPage = () => {\r\n const { state } = history.location;\r\n if (state && state.from && state.from === \"buyPage\") {\r\n history.goBack(); //preserve filters query\r\n } else if (state && state.from && state.from === \"similar\") {\r\n history.push(state?.filteredUrl); //preserve filters query if going to similar vehicles\r\n } else {\r\n history.push(\"/buy\");\r\n }\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n {`Explore ${vehicleDetailQueryResult.make} ${vehicleDetailQueryResult.model} | Detailed Vehicle Listings`}\r\n \r\n \r\n \r\n \r\n \r\n\r\n {/* Top Fixed Navbar for Request Information */}\r\n {showFixedBar && (\r\n \r\n \r\n \r\n )}\r\n\r\n \r\n \r\n \r\n {/* */}\r\n \r\n {(listingDetail.price &&\r\n formatCurrency(listingDetail.price)) ||\r\n \"Call for Price\"}\r\n \r\n {/* */}\r\n\r\n {typeId === 2 && (\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n\r\n {/* \r\n Request Information\r\n */}\r\n \r\n \r\n\r\n setIsRequested(false)}\r\n />\r\n\r\n \r\n \r\n {/* {history.location.state === undefined && ( */}\r\n \r\n Back to search results\r\n \r\n \r\n {/* )} */}\r\n \r\n \r\n {isLoggedIn && userId === listingDetail.userId.toString() ? (\r\n \r\n \r\n {/* */}\r\n Edit Listing {/* */}\r\n \r\n \r\n ) : (\r\n \r\n \r\n Report Listing\r\n \r\n \r\n )}\r\n \r\n {/* {isLoggedIn && userId !== listingDetail.userId.toString() && ( */}\r\n \r\n {/* )} */}\r\n {/* */}\r\n {isFavorite || vehicleDetailQueryResult.isFlagged ? (\r\n \r\n ) : (\r\n \r\n )}\r\n {/* */}\r\n \r\n \r\n \r\n\r\n {/* \r\n {isLoggedIn && (\r\n \r\n
    \r\n {listingDetail.userId.toString() === userId && (\r\n // UserTypeId !== 3 &&\r\n \r\n )}\r\n {(\r\n (listingDetail && listingDetail.userId) ||\r\n \"\"\r\n ).toString() === userId &&\r\n UserTypeId === 3 &&\r\n listingDetail.offerAccepted &&\r\n listingDetail.offerAccepted !== true &&\r\n listingDetail.listingStatusId === 4 && (\r\n \r\n )}\r\n
    \r\n \r\n )}\r\n
    */}\r\n \r\n {isLoggedIn && (\r\n
    \r\n {history.location.state !== undefined &&\r\n history.location.state !== null &&\r\n history.location.state.previousPath ===\r\n \"/my-garage/moderator\" && (\r\n \r\n )}\r\n
    \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n {/* Banners */}\r\n {(listingDetail.listingStatusId === 5 ||\r\n listingDetail.listingStatusId === 6 ||\r\n listingDetail.listingStatusId === 7) && (\r\n \r\n Removed Listing\r\n \r\n )}\r\n {listingDetail.listingStatusId === 4 && (\r\n \r\n Sold\r\n \r\n )}\r\n {listingDetail &&\r\n listingDetail.offerAccepted &&\r\n listingDetail.offerAccepted === true && (\r\n \r\n CASH OFFER ACCEPTED\r\n \r\n )}\r\n {/* VehicleImageGallery */}\r\n \r\n {/* */}\r\n \r\n \r\n \r\n \r\n\r\n {!privateVehicle && privateVehicle !== null && (\r\n <>\r\n {listingDetail.optedOutFromFinance === false &&\r\n listingDetail.price > 0 && (\r\n
    \r\n \r\n
    \r\n )}\r\n \r\n \r\n \r\n \r\n )}\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/* */}\r\n {/* */}\r\n \r\n\r\n \r\n {isLoggedIn && (\r\n
    \r\n {listingDetail.userId.toString() === userId && (\r\n // UserTypeId !== 3 &&\r\n \r\n )}\r\n {(\r\n (listingDetail && listingDetail.userId) ||\r\n \"\"\r\n ).toString() === userId &&\r\n UserTypeId === 3 &&\r\n listingDetail.offerAccepted &&\r\n listingDetail.offerAccepted !== true &&\r\n listingDetail.listingStatusId === 4 && (\r\n \r\n )}\r\n
    \r\n )}\r\n
    \r\n \r\n \r\n \r\n\r\n {userId !== listingDetail.userId.toString() && (\r\n <>\r\n {/* \r\n \r\n */}\r\n\r\n {!privateVehicle && privateVehicle !== null && (\r\n <>\r\n \r\n {/* */}\r\n \r\n \r\n\r\n {/* {listingDetail.price > 0 && (\r\n \r\n \r\n \r\n )} */}\r\n \r\n )}\r\n \r\n )}\r\n {/* CashOffer */}\r\n {isLoggedIn &&\r\n (vehicleDetailQueryResult.userId || \"\").toString() ===\r\n userId &&\r\n (vehicleDetailQueryResult.listingStatusId === 9 ||\r\n vehicleDetailQueryResult.listingStatusId === 8) &&\r\n vehicleDetailQueryResult.appraisalRefNo !== null &&\r\n vehicleDetailQueryResult.appraisalRefNo !== null && (\r\n \r\n {/* */}\r\n \r\n )}\r\n {/* \r\n
    }\r\n actual={() => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n />\r\n */}\r\n \r\n \r\n
    \r\n \r\n
    \r\n );\r\n }\r\n // return ;\r\n return null;\r\n};\r\nexport default VehicleDetail;\r\n","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nmodule.exports = _interopRequireDefault;","import '../../style/index.less';\nimport './index.less';\n","var __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { ConfigConsumer } from '../config-provider';\nconst Divider = props => (\n {({ getPrefixCls }) => {\n const { prefixCls: customizePrefixCls, type = 'horizontal', orientation = 'center', className, children, dashed } = props, restProps = __rest(props, [\"prefixCls\", \"type\", \"orientation\", \"className\", \"children\", \"dashed\"]);\n const prefixCls = getPrefixCls('divider', customizePrefixCls);\n const orientationPrefix = orientation.length > 0 ? `-${orientation}` : orientation;\n const classString = classNames(className, prefixCls, `${prefixCls}-${type}`, {\n [`${prefixCls}-with-text${orientationPrefix}`]: children,\n [`${prefixCls}-dashed`]: !!dashed,\n });\n return (
    \n {children && {children}}\n
    );\n}}\n
    );\nexport default Divider;\n","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nmodule.exports = _classCallCheck;","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nmodule.exports = _createClass;","function _getRequireWildcardCache() {\n if (typeof WeakMap !== \"function\") return null;\n var cache = new WeakMap();\n\n _getRequireWildcardCache = function _getRequireWildcardCache() {\n return cache;\n };\n\n return cache;\n}\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n }\n\n var cache = _getRequireWildcardCache();\n\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n\n var newObj = {};\n\n if (obj != null) {\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n }\n\n newObj[\"default\"] = obj;\n\n if (cache) {\n cache.set(obj, newObj);\n }\n\n return newObj;\n}\n\nmodule.exports = _interopRequireWildcard;","var _typeof = require(\"../helpers/typeof\");\n\nvar assertThisInitialized = require(\"./assertThisInitialized\");\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}\n\nmodule.exports = _possibleConstructorReturn;","function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nmodule.exports = _assertThisInitialized;","function _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nmodule.exports = _getPrototypeOf;","var setPrototypeOf = require(\"./setPrototypeOf\");\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inherits;","import '../../style/index.less';\nimport './index.less';\n// style dependencies\nimport '../../button/style';\n","var autoAdjustOverflow = {\n adjustX: 1,\n adjustY: 1\n};\n\nvar targetOffset = [0, 0];\n\nexport var placements = {\n topLeft: {\n points: ['bl', 'tl'],\n overflow: autoAdjustOverflow,\n offset: [0, -4],\n targetOffset: targetOffset\n },\n topCenter: {\n points: ['bc', 'tc'],\n overflow: autoAdjustOverflow,\n offset: [0, -4],\n targetOffset: targetOffset\n },\n topRight: {\n points: ['br', 'tr'],\n overflow: autoAdjustOverflow,\n offset: [0, -4],\n targetOffset: targetOffset\n },\n bottomLeft: {\n points: ['tl', 'bl'],\n overflow: autoAdjustOverflow,\n offset: [0, 4],\n targetOffset: targetOffset\n },\n bottomCenter: {\n points: ['tc', 'bc'],\n overflow: autoAdjustOverflow,\n offset: [0, 4],\n targetOffset: targetOffset\n },\n bottomRight: {\n points: ['tr', 'br'],\n overflow: autoAdjustOverflow,\n offset: [0, 4],\n targetOffset: targetOffset\n }\n};\n\nexport default placements;","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nimport React, { Component, cloneElement } from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport Trigger from 'rc-trigger';\nimport classNames from 'classnames';\nimport placements from './placements';\nimport { polyfill } from 'react-lifecycles-compat';\n\nvar Dropdown = function (_Component) {\n _inherits(Dropdown, _Component);\n\n function Dropdown(props) {\n _classCallCheck(this, Dropdown);\n\n var _this = _possibleConstructorReturn(this, _Component.call(this, props));\n\n _initialiseProps.call(_this);\n\n if ('visible' in props) {\n _this.state = {\n visible: props.visible\n };\n } else {\n _this.state = {\n visible: props.defaultVisible\n };\n }\n return _this;\n }\n\n Dropdown.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps) {\n if ('visible' in nextProps) {\n return {\n visible: nextProps.visible\n };\n }\n return null;\n };\n\n Dropdown.prototype.getOverlayElement = function getOverlayElement() {\n var overlay = this.props.overlay;\n\n var overlayElement = void 0;\n if (typeof overlay === 'function') {\n overlayElement = overlay();\n } else {\n overlayElement = overlay;\n }\n return overlayElement;\n };\n\n Dropdown.prototype.getMenuElementOrLambda = function getMenuElementOrLambda() {\n var overlay = this.props.overlay;\n\n if (typeof overlay === 'function') {\n return this.getMenuElement;\n }\n return this.getMenuElement();\n };\n\n Dropdown.prototype.getPopupDomNode = function getPopupDomNode() {\n return this.trigger.getPopupDomNode();\n };\n\n Dropdown.prototype.getOpenClassName = function getOpenClassName() {\n var _props = this.props,\n openClassName = _props.openClassName,\n prefixCls = _props.prefixCls;\n\n if (openClassName !== undefined) {\n return openClassName;\n }\n return prefixCls + '-open';\n };\n\n Dropdown.prototype.renderChildren = function renderChildren() {\n var children = this.props.children;\n var visible = this.state.visible;\n\n var childrenProps = children.props ? children.props : {};\n var childClassName = classNames(childrenProps.className, this.getOpenClassName());\n return visible && children ? cloneElement(children, { className: childClassName }) : children;\n };\n\n Dropdown.prototype.render = function render() {\n var _props2 = this.props,\n prefixCls = _props2.prefixCls,\n transitionName = _props2.transitionName,\n animation = _props2.animation,\n align = _props2.align,\n placement = _props2.placement,\n getPopupContainer = _props2.getPopupContainer,\n showAction = _props2.showAction,\n hideAction = _props2.hideAction,\n overlayClassName = _props2.overlayClassName,\n overlayStyle = _props2.overlayStyle,\n trigger = _props2.trigger,\n otherProps = _objectWithoutProperties(_props2, ['prefixCls', 'transitionName', 'animation', 'align', 'placement', 'getPopupContainer', 'showAction', 'hideAction', 'overlayClassName', 'overlayStyle', 'trigger']);\n\n var triggerHideAction = hideAction;\n if (!triggerHideAction && trigger.indexOf('contextMenu') !== -1) {\n triggerHideAction = ['click'];\n }\n\n return React.createElement(\n Trigger,\n _extends({}, otherProps, {\n prefixCls: prefixCls,\n ref: this.saveTrigger,\n popupClassName: overlayClassName,\n popupStyle: overlayStyle,\n builtinPlacements: placements,\n action: trigger,\n showAction: showAction,\n hideAction: triggerHideAction || [],\n popupPlacement: placement,\n popupAlign: align,\n popupTransitionName: transitionName,\n popupAnimation: animation,\n popupVisible: this.state.visible,\n afterPopupVisibleChange: this.afterVisibleChange,\n popup: this.getMenuElementOrLambda(),\n onPopupVisibleChange: this.onVisibleChange,\n getPopupContainer: getPopupContainer\n }),\n this.renderChildren()\n );\n };\n\n return Dropdown;\n}(Component);\n\nDropdown.propTypes = {\n minOverlayWidthMatchTrigger: PropTypes.bool,\n onVisibleChange: PropTypes.func,\n onOverlayClick: PropTypes.func,\n prefixCls: PropTypes.string,\n children: PropTypes.any,\n transitionName: PropTypes.string,\n overlayClassName: PropTypes.string,\n openClassName: PropTypes.string,\n animation: PropTypes.any,\n align: PropTypes.object,\n overlayStyle: PropTypes.object,\n placement: PropTypes.string,\n overlay: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),\n trigger: PropTypes.array,\n alignPoint: PropTypes.bool,\n showAction: PropTypes.array,\n hideAction: PropTypes.array,\n getPopupContainer: PropTypes.func,\n visible: PropTypes.bool,\n defaultVisible: PropTypes.bool\n};\nDropdown.defaultProps = {\n prefixCls: 'rc-dropdown',\n trigger: ['hover'],\n showAction: [],\n overlayClassName: '',\n overlayStyle: {},\n defaultVisible: false,\n onVisibleChange: function onVisibleChange() {},\n\n placement: 'bottomLeft'\n};\n\nvar _initialiseProps = function _initialiseProps() {\n var _this2 = this;\n\n this.onClick = function (e) {\n var props = _this2.props;\n var overlayProps = _this2.getOverlayElement().props;\n // do no call onVisibleChange, if you need click to hide, use onClick and control visible\n if (!('visible' in props)) {\n _this2.setState({\n visible: false\n });\n }\n if (props.onOverlayClick) {\n props.onOverlayClick(e);\n }\n if (overlayProps.onClick) {\n overlayProps.onClick(e);\n }\n };\n\n this.onVisibleChange = function (visible) {\n var props = _this2.props;\n if (!('visible' in props)) {\n _this2.setState({\n visible: visible\n });\n }\n props.onVisibleChange(visible);\n };\n\n this.getMinOverlayWidthMatchTrigger = function () {\n var _props3 = _this2.props,\n minOverlayWidthMatchTrigger = _props3.minOverlayWidthMatchTrigger,\n alignPoint = _props3.alignPoint;\n\n if ('minOverlayWidthMatchTrigger' in _this2.props) {\n return minOverlayWidthMatchTrigger;\n }\n\n return !alignPoint;\n };\n\n this.getMenuElement = function () {\n var prefixCls = _this2.props.prefixCls;\n\n var overlayElement = _this2.getOverlayElement();\n var extraOverlayProps = {\n prefixCls: prefixCls + '-menu',\n onClick: _this2.onClick\n };\n if (typeof overlayElement.type === 'string') {\n delete extraOverlayProps.prefixCls;\n }\n return React.cloneElement(overlayElement, extraOverlayProps);\n };\n\n this.afterVisibleChange = function (visible) {\n if (visible && _this2.getMinOverlayWidthMatchTrigger()) {\n var overlayNode = _this2.getPopupDomNode();\n var rootNode = ReactDOM.findDOMNode(_this2);\n if (rootNode && overlayNode && rootNode.offsetWidth > overlayNode.offsetWidth) {\n overlayNode.style.minWidth = rootNode.offsetWidth + 'px';\n if (_this2.trigger && _this2.trigger._component && _this2.trigger._component.alignInstance) {\n _this2.trigger._component.alignInstance.forceAlign();\n }\n }\n }\n };\n\n this.saveTrigger = function (node) {\n _this2.trigger = node;\n };\n};\n\npolyfill(Dropdown);\n\nexport default Dropdown;","import Dropdown from './Dropdown';\nexport default Dropdown;","import * as React from 'react';\nimport RcDropdown from 'rc-dropdown';\nimport classNames from 'classnames';\nimport { ConfigConsumer } from '../config-provider';\nimport warning from '../_util/warning';\nimport Icon from '../icon';\nimport { tuple } from '../_util/type';\nconst Placements = tuple('topLeft', 'topCenter', 'topRight', 'bottomLeft', 'bottomCenter', 'bottomRight');\nexport default class Dropdown extends React.Component {\n constructor() {\n super(...arguments);\n this.renderOverlay = (prefixCls) => {\n // rc-dropdown already can process the function of overlay, but we have check logic here.\n // So we need render the element to check and pass back to rc-dropdown.\n const { overlay } = this.props;\n let overlayNode;\n if (typeof overlay === 'function') {\n overlayNode = overlay();\n }\n else {\n overlayNode = overlay;\n }\n overlayNode = React.Children.only(overlayNode);\n const overlayProps = overlayNode.props;\n // Warning if use other mode\n warning(!overlayProps.mode || overlayProps.mode === 'vertical', 'Dropdown', `mode=\"${overlayProps.mode}\" is not supported for Dropdown's Menu.`);\n // menu cannot be selectable in dropdown defaultly\n // menu should be focusable in dropdown defaultly\n const { selectable = false, focusable = true } = overlayProps;\n const expandIcon = (\n \n );\n const fixedModeOverlay = typeof overlayNode.type === 'string'\n ? overlay\n : React.cloneElement(overlayNode, {\n mode: 'vertical',\n selectable,\n focusable,\n expandIcon,\n });\n return fixedModeOverlay;\n };\n this.renderDropDown = ({ getPopupContainer: getContextPopupContainer, getPrefixCls, }) => {\n const { prefixCls: customizePrefixCls, children, trigger, disabled, getPopupContainer, } = this.props;\n const prefixCls = getPrefixCls('dropdown', customizePrefixCls);\n const child = React.Children.only(children);\n const dropdownTrigger = React.cloneElement(child, {\n className: classNames(child.props.className, `${prefixCls}-trigger`),\n disabled,\n });\n const triggerActions = disabled ? [] : trigger;\n let alignPoint;\n if (triggerActions && triggerActions.indexOf('contextMenu') !== -1) {\n alignPoint = true;\n }\n return ( this.renderOverlay(prefixCls)}>\n {dropdownTrigger}\n );\n };\n }\n getTransitionName() {\n const { placement = '', transitionName } = this.props;\n if (transitionName !== undefined) {\n return transitionName;\n }\n if (placement.indexOf('top') >= 0) {\n return 'slide-down';\n }\n return 'slide-up';\n }\n render() {\n return {this.renderDropDown};\n }\n}\nDropdown.defaultProps = {\n mouseEnterDelay: 0.15,\n mouseLeaveDelay: 0.1,\n placement: 'bottomLeft',\n};\n","import '../../style/index.less';\nimport './index.less';\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.formatTime = formatTime;\nexports.isVideoChild = isVideoChild;\nexports.mergeAndSortChildren = mergeAndSortChildren;\nexports.deprecatedWarning = deprecatedWarning;\nexports.throttle = throttle;\nexports.mediaProperties = void 0;\n\nvar _toConsumableArray2 = _interopRequireDefault(require(\"@babel/runtime/helpers/toConsumableArray\"));\n\nvar _objectSpread2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectSpread\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\n// NaN is the only value in javascript which is not equal to itself.\n// eslint-disable-next-line no-self-compare\nvar isNaN = Number.isNaN || function (value) {\n return value !== value;\n};\n/**\n * @file format-time.js\n *\n * Format seconds as a time string, H:MM:SS or M:SS\n * Supplying a guide (in seconds) will force a number of leading zeros\n * to cover the length of the guide\n *\n * @param {Number} seconds Number of seconds to be turned into a string\n * @param {Number} guide Number (in seconds) to model the string after\n * @return {String} Time formatted as H:MM:SS or M:SS\n * @private\n * @function formatTime\n */\n\n\nfunction formatTime() {\n var seconds = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var guide = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : seconds;\n var s = Math.floor(seconds % 60);\n var m = Math.floor(seconds / 60 % 60);\n var h = Math.floor(seconds / 3600);\n var gm = Math.floor(guide / 60 % 60);\n var gh = Math.floor(guide / 3600); // handle invalid times\n\n if (isNaN(seconds) || seconds === Infinity) {\n // '-' is false for all relational operators (e.g. <, >=) so this setting\n // will add the minimum number of fields specified by the guide\n h = '-';\n m = '-';\n s = '-';\n } // Check if we need to show hours\n\n\n h = h > 0 || gh > 0 ? \"\".concat(h, \":\") : ''; // If hours are showing, we may need to add a leading zero.\n // Always show at least one digit of minutes.\n\n m = \"\".concat((h || gm >= 10) && m < 10 ? \"0\".concat(m) : m, \":\"); // Check if leading zero is need for seconds\n\n s = s < 10 ? \"0\".concat(s) : s;\n return h + m + s;\n} // Check if the element belongs to a video element\n// only accept , ,\n// \n// elements\n\n\nfunction isVideoChild(c) {\n if (c.props && c.props.isVideoChild) {\n return true;\n }\n\n return c.type === 'source' || c.type === 'track';\n}\n\nvar find = function find(elements, func) {\n return elements.filter(func)[0];\n}; // check if two components are the same type\n\n\nvar isTypeEqual = function isTypeEqual(component1, component2) {\n var type1 = component1.type;\n var type2 = component2.type;\n\n if (typeof type1 === 'string' || typeof type2 === 'string') {\n return type1 === type2;\n }\n\n if (typeof type1 === 'function' && typeof type2 === 'function') {\n return type1.displayName === type2.displayName;\n }\n\n return false;\n}; // merge default children\n// sort them by `order` property\n// filter them by `disabled` property\n\n\nfunction mergeAndSortChildren(defaultChildren, _children, _parentProps) {\n var defaultOrder = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;\n\n var children = _react[\"default\"].Children.toArray(_children);\n\n var order = _parentProps.order,\n parentProps = (0, _objectWithoutProperties2[\"default\"])(_parentProps, [\"order\"]); // ignore order from parent\n\n return children.filter(function (e) {\n return !e.props.disabled;\n }) // filter the disabled components\n .concat(defaultChildren.filter(function (c) {\n return !find(children, function (component) {\n return isTypeEqual(component, c);\n });\n })).map(function (element) {\n var defaultComponent = find(defaultChildren, function (c) {\n return isTypeEqual(c, element);\n });\n var defaultProps = defaultComponent ? defaultComponent.props : {};\n var props = (0, _objectSpread2[\"default\"])({}, parentProps, defaultProps, element.props);\n\n var e = _react[\"default\"].cloneElement(element, props, element.props.children);\n\n return e;\n }).sort(function (a, b) {\n return (a.props.order || defaultOrder) - (b.props.order || defaultOrder);\n });\n}\n/**\n * Temporary utility for generating the warnings\n */\n\n\nfunction deprecatedWarning(oldMethodCall, newMethodCall) {\n // eslint-disable-next-line no-console\n console.warn(\"WARNING: \".concat(oldMethodCall, \" will be deprecated soon! Please use \").concat(newMethodCall, \" instead.\"));\n}\n\nfunction throttle(callback, limit) {\n var _arguments = arguments;\n var wait = false;\n return function () {\n if (!wait) {\n // eslint-disable-next-line prefer-rest-params\n callback.apply(void 0, (0, _toConsumableArray2[\"default\"])(_arguments));\n wait = true;\n setTimeout(function () {\n wait = false;\n }, limit);\n }\n };\n}\n\nvar 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'];\nexports.mediaProperties = mediaProperties;","import * as React from 'react';\nimport classNames from 'classnames';\n// eslint-disable-next-line react/prefer-stateless-function\nclass SkeletonAvatar extends React.Component {\n render() {\n const { prefixCls, className, style, size, shape } = this.props;\n const sizeCls = classNames({\n [`${prefixCls}-lg`]: size === 'large',\n [`${prefixCls}-sm`]: size === 'small',\n });\n const shapeCls = classNames({\n [`${prefixCls}-circle`]: shape === 'circle',\n [`${prefixCls}-square`]: shape === 'square',\n });\n const sizeStyle = typeof size === 'number'\n ? {\n width: size,\n height: size,\n lineHeight: `${size}px`,\n }\n : {};\n return ();\n }\n}\nSkeletonAvatar.defaultProps = {\n size: 'large',\n};\nexport default SkeletonAvatar;\n","/* eslint-disable jsx-a11y/heading-has-content */\nimport * as React from 'react';\nimport classNames from 'classnames';\nconst Title = ({ prefixCls, className, width, style }) => (

    );\nexport default Title;\n","import * as React from 'react';\nimport classNames from 'classnames';\nclass Paragraph extends React.Component {\n getWidth(index) {\n const { width, rows = 2 } = this.props;\n if (Array.isArray(width)) {\n return width[index];\n }\n // last paragraph\n if (rows - 1 === index) {\n return width;\n }\n return undefined;\n }\n render() {\n const { prefixCls, className, style, rows } = this.props;\n const rowList = [...Array(rows)].map((_, index) => (\n // eslint-disable-next-line react/no-array-index-key\n
  • ));\n return (
      \n {rowList}\n
    );\n }\n}\nexport default Paragraph;\n","import * as React from 'react';\nimport classNames from 'classnames';\nimport Avatar from './Avatar';\nimport Title from './Title';\nimport Paragraph from './Paragraph';\nimport { ConfigConsumer } from '../config-provider';\nfunction getComponentProps(prop) {\n if (prop && typeof prop === 'object') {\n return prop;\n }\n return {};\n}\nfunction getAvatarBasicProps(hasTitle, hasParagraph) {\n if (hasTitle && !hasParagraph) {\n return { shape: 'square' };\n }\n return { shape: 'circle' };\n}\nfunction getTitleBasicProps(hasAvatar, hasParagraph) {\n if (!hasAvatar && hasParagraph) {\n return { width: '38%' };\n }\n if (hasAvatar && hasParagraph) {\n return { width: '50%' };\n }\n return {};\n}\nfunction getParagraphBasicProps(hasAvatar, hasTitle) {\n const basicProps = {};\n // Width\n if (!hasAvatar || !hasTitle) {\n basicProps.width = '61%';\n }\n // Rows\n if (!hasAvatar && hasTitle) {\n basicProps.rows = 3;\n }\n else {\n basicProps.rows = 2;\n }\n return basicProps;\n}\nclass Skeleton extends React.Component {\n constructor() {\n super(...arguments);\n this.renderSkeleton = ({ getPrefixCls }) => {\n const { prefixCls: customizePrefixCls, loading, className, children, avatar, title, paragraph, active, } = this.props;\n const prefixCls = getPrefixCls('skeleton', customizePrefixCls);\n if (loading || !('loading' in this.props)) {\n const hasAvatar = !!avatar;\n const hasTitle = !!title;\n const hasParagraph = !!paragraph;\n // Avatar\n let avatarNode;\n if (hasAvatar) {\n const avatarProps = Object.assign(Object.assign({ prefixCls: `${prefixCls}-avatar` }, getAvatarBasicProps(hasTitle, hasParagraph)), getComponentProps(avatar));\n avatarNode = (
    \n \n
    );\n }\n let contentNode;\n if (hasTitle || hasParagraph) {\n // Title\n let $title;\n if (hasTitle) {\n const titleProps = Object.assign(Object.assign({ prefixCls: `${prefixCls}-title` }, getTitleBasicProps(hasAvatar, hasParagraph)), getComponentProps(title));\n $title = ;\n }\n // Paragraph\n let paragraphNode;\n if (hasParagraph) {\n const paragraphProps = Object.assign(Object.assign({ prefixCls: `${prefixCls}-paragraph` }, getParagraphBasicProps(hasAvatar, hasTitle)), getComponentProps(paragraph));\n paragraphNode = <Paragraph {...paragraphProps}/>;\n }\n contentNode = (<div className={`${prefixCls}-content`}>\n {$title}\n {paragraphNode}\n </div>);\n }\n const cls = classNames(prefixCls, className, {\n [`${prefixCls}-with-avatar`]: hasAvatar,\n [`${prefixCls}-active`]: active,\n });\n return (<div className={cls}>\n {avatarNode}\n {contentNode}\n </div>);\n }\n return children;\n };\n }\n render() {\n return <ConfigConsumer>{this.renderSkeleton}</ConfigConsumer>;\n }\n}\nSkeleton.defaultProps = {\n avatar: false,\n title: true,\n paragraph: true,\n};\nexport default Skeleton;\n","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","import defineProperty from \"./defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nexport default function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}","import _objectSpread from '@babel/runtime/helpers/esm/objectSpread2';\n\n/**\n * Adapted from React: https://github.com/facebook/react/blob/master/packages/shared/formatProdErrorMessage.js\n *\n * Do not require this module directly! Use normal throw error calls. These messages will be replaced with error codes\n * during build.\n * @param {number} code\n */\nfunction formatProdErrorMessage(code) {\n return \"Minified Redux error #\" + code + \"; visit https://redux.js.org/Errors?code=\" + code + \" for the full message or \" + 'use the non-minified dev environment for full errors. ';\n}\n\n// Inlined version of the `symbol-observable` polyfill\nvar $$observable = (function () {\n return typeof Symbol === 'function' && Symbol.observable || '@@observable';\n})();\n\n/**\n * These are private action types reserved by Redux.\n * For any unknown actions, you must return the current state.\n * If the current state is undefined, you must return the initial state.\n * Do not reference these action types directly in your code.\n */\nvar randomString = function randomString() {\n return Math.random().toString(36).substring(7).split('').join('.');\n};\n\nvar ActionTypes = {\n INIT: \"@@redux/INIT\" + randomString(),\n REPLACE: \"@@redux/REPLACE\" + randomString(),\n PROBE_UNKNOWN_ACTION: function PROBE_UNKNOWN_ACTION() {\n return \"@@redux/PROBE_UNKNOWN_ACTION\" + randomString();\n }\n};\n\n/**\n * @param {any} obj The object to inspect.\n * @returns {boolean} True if the argument appears to be a plain object.\n */\nfunction isPlainObject(obj) {\n if (typeof obj !== 'object' || obj === null) return false;\n var proto = obj;\n\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n\n return Object.getPrototypeOf(obj) === proto;\n}\n\n// Inlined / shortened version of `kindOf` from https://github.com/jonschlinkert/kind-of\nfunction miniKindOf(val) {\n if (val === void 0) return 'undefined';\n if (val === null) return 'null';\n var type = typeof val;\n\n switch (type) {\n case 'boolean':\n case 'string':\n case 'number':\n case 'symbol':\n case 'function':\n {\n return type;\n }\n }\n\n if (Array.isArray(val)) return 'array';\n if (isDate(val)) return 'date';\n if (isError(val)) return 'error';\n var constructorName = ctorName(val);\n\n switch (constructorName) {\n case 'Symbol':\n case 'Promise':\n case 'WeakMap':\n case 'WeakSet':\n case 'Map':\n case 'Set':\n return constructorName;\n } // other\n\n\n return type.slice(8, -1).toLowerCase().replace(/\\s/g, '');\n}\n\nfunction ctorName(val) {\n return typeof val.constructor === 'function' ? val.constructor.name : null;\n}\n\nfunction isError(val) {\n return val instanceof Error || typeof val.message === 'string' && val.constructor && typeof val.constructor.stackTraceLimit === 'number';\n}\n\nfunction isDate(val) {\n if (val instanceof Date) return true;\n return typeof val.toDateString === 'function' && typeof val.getDate === 'function' && typeof val.setDate === 'function';\n}\n\nfunction kindOf(val) {\n var typeOfVal = typeof val;\n\n if (process.env.NODE_ENV !== 'production') {\n typeOfVal = miniKindOf(val);\n }\n\n return typeOfVal;\n}\n\n/**\n * @deprecated\n *\n * **We recommend using the `configureStore` method\n * of the `@reduxjs/toolkit` package**, which replaces `createStore`.\n *\n * Redux Toolkit is our recommended approach for writing Redux logic today,\n * including store setup, reducers, data fetching, and more.\n *\n * **For more details, please read this Redux docs page:**\n * **https://redux.js.org/introduction/why-rtk-is-redux-today**\n *\n * `configureStore` from Redux Toolkit is an improved version of `createStore` that\n * simplifies setup and helps avoid common bugs.\n *\n * You should not be using the `redux` core package by itself today, except for learning purposes.\n * The `createStore` method from the core `redux` package will not be removed, but we encourage\n * all users to migrate to using Redux Toolkit for all Redux code.\n *\n * If you want to use `createStore` without this visual deprecation warning, use\n * the `legacy_createStore` import instead:\n *\n * `import { legacy_createStore as createStore} from 'redux'`\n *\n */\n\nfunction createStore(reducer, preloadedState, enhancer) {\n var _ref2;\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'function' || typeof enhancer === 'function' && typeof arguments[3] === 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(0) : 'It looks like you are passing several store enhancers to ' + 'createStore(). This is not supported. Instead, compose them ' + 'together to a single function. See https://redux.js.org/tutorials/fundamentals/part-4-store#creating-a-store-with-enhancers for an example.');\n }\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') {\n enhancer = preloadedState;\n preloadedState = undefined;\n }\n\n if (typeof enhancer !== 'undefined') {\n if (typeof enhancer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(1) : \"Expected the enhancer to be a function. Instead, received: '\" + kindOf(enhancer) + \"'\");\n }\n\n return enhancer(createStore)(reducer, preloadedState);\n }\n\n if (typeof reducer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(2) : \"Expected the root reducer to be a function. Instead, received: '\" + kindOf(reducer) + \"'\");\n }\n\n var currentReducer = reducer;\n var currentState = preloadedState;\n var currentListeners = [];\n var nextListeners = currentListeners;\n var isDispatching = false;\n /**\n * This makes a shallow copy of currentListeners so we can use\n * nextListeners as a temporary list while dispatching.\n *\n * This prevents any bugs around consumers calling\n * subscribe/unsubscribe in the middle of a dispatch.\n */\n\n function ensureCanMutateNextListeners() {\n if (nextListeners === currentListeners) {\n nextListeners = currentListeners.slice();\n }\n }\n /**\n * Reads the state tree managed by the store.\n *\n * @returns {any} The current state tree of your application.\n */\n\n\n function getState() {\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(3) : 'You may not call store.getState() while the reducer is executing. ' + 'The reducer has already received the state as an argument. ' + 'Pass it down from the top reducer instead of reading it from the store.');\n }\n\n return currentState;\n }\n /**\n * Adds a change listener. It will be called any time an action is dispatched,\n * and some part of the state tree may potentially have changed. You may then\n * call `getState()` to read the current state tree inside the callback.\n *\n * You may call `dispatch()` from a change listener, with the following\n * caveats:\n *\n * 1. The subscriptions are snapshotted just before every `dispatch()` call.\n * If you subscribe or unsubscribe while the listeners are being invoked, this\n * will not have any effect on the `dispatch()` that is currently in progress.\n * However, the next `dispatch()` call, whether nested or not, will use a more\n * recent snapshot of the subscription list.\n *\n * 2. The listener should not expect to see all state changes, as the state\n * might have been updated multiple times during a nested `dispatch()` before\n * the listener is called. It is, however, guaranteed that all subscribers\n * registered before the `dispatch()` started will be called with the latest\n * state by the time it exits.\n *\n * @param {Function} listener A callback to be invoked on every dispatch.\n * @returns {Function} A function to remove this change listener.\n */\n\n\n function subscribe(listener) {\n if (typeof listener !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(4) : \"Expected the listener to be a function. Instead, received: '\" + kindOf(listener) + \"'\");\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(5) : 'You may not call store.subscribe() while the reducer is executing. ' + 'If you would like to be notified after the store has been updated, subscribe from a ' + 'component and invoke store.getState() in the callback to access the latest state. ' + 'See https://redux.js.org/api/store#subscribelistener for more details.');\n }\n\n var isSubscribed = true;\n ensureCanMutateNextListeners();\n nextListeners.push(listener);\n return function unsubscribe() {\n if (!isSubscribed) {\n return;\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(6) : 'You may not unsubscribe from a store listener while the reducer is executing. ' + 'See https://redux.js.org/api/store#subscribelistener for more details.');\n }\n\n isSubscribed = false;\n ensureCanMutateNextListeners();\n var index = nextListeners.indexOf(listener);\n nextListeners.splice(index, 1);\n currentListeners = null;\n };\n }\n /**\n * Dispatches an action. It is the only way to trigger a state change.\n *\n * The `reducer` function, used to create the store, will be called with the\n * current state tree and the given `action`. Its return value will\n * be considered the **next** state of the tree, and the change listeners\n * will be notified.\n *\n * The base implementation only supports plain object actions. If you want to\n * dispatch a Promise, an Observable, a thunk, or something else, you need to\n * wrap your store creating function into the corresponding middleware. For\n * example, see the documentation for the `redux-thunk` package. Even the\n * middleware will eventually dispatch plain object actions using this method.\n *\n * @param {Object} action A plain object representing “what changed”. It is\n * a good idea to keep actions serializable so you can record and replay user\n * sessions, or use the time travelling `redux-devtools`. An action must have\n * a `type` property which may not be `undefined`. It is a good idea to use\n * string constants for action types.\n *\n * @returns {Object} For convenience, the same action object you dispatched.\n *\n * Note that, if you use a custom middleware, it may wrap `dispatch()` to\n * return something else (for example, a Promise you can await).\n */\n\n\n function dispatch(action) {\n if (!isPlainObject(action)) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(7) : \"Actions must be plain objects. Instead, the actual type was: '\" + kindOf(action) + \"'. You may need to add middleware to your store setup to handle dispatching other values, such as 'redux-thunk' to handle dispatching functions. See https://redux.js.org/tutorials/fundamentals/part-4-store#middleware and https://redux.js.org/tutorials/fundamentals/part-6-async-logic#using-the-redux-thunk-middleware for examples.\");\n }\n\n if (typeof action.type === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(8) : 'Actions may not have an undefined \"type\" property. You may have misspelled an action type string constant.');\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(9) : 'Reducers may not dispatch actions.');\n }\n\n try {\n isDispatching = true;\n currentState = currentReducer(currentState, action);\n } finally {\n isDispatching = false;\n }\n\n var listeners = currentListeners = nextListeners;\n\n for (var i = 0; i < listeners.length; i++) {\n var listener = listeners[i];\n listener();\n }\n\n return action;\n }\n /**\n * Replaces the reducer currently used by the store to calculate the state.\n *\n * You might need this if your app implements code splitting and you want to\n * load some of the reducers dynamically. You might also need this if you\n * implement a hot reloading mechanism for Redux.\n *\n * @param {Function} nextReducer The reducer for the store to use instead.\n * @returns {void}\n */\n\n\n function replaceReducer(nextReducer) {\n if (typeof nextReducer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(10) : \"Expected the nextReducer to be a function. Instead, received: '\" + kindOf(nextReducer));\n }\n\n currentReducer = nextReducer; // This action has a similiar effect to ActionTypes.INIT.\n // Any reducers that existed in both the new and old rootReducer\n // will receive the previous state. This effectively populates\n // the new state tree with any relevant data from the old one.\n\n dispatch({\n type: ActionTypes.REPLACE\n });\n }\n /**\n * Interoperability point for observable/reactive libraries.\n * @returns {observable} A minimal observable of state changes.\n * For more information, see the observable proposal:\n * https://github.com/tc39/proposal-observable\n */\n\n\n function observable() {\n var _ref;\n\n var outerSubscribe = subscribe;\n return _ref = {\n /**\n * The minimal observable subscription method.\n * @param {Object} observer Any object that can be used as an observer.\n * The observer object should have a `next` method.\n * @returns {subscription} An object with an `unsubscribe` method that can\n * be used to unsubscribe the observable from the store, and prevent further\n * emission of values from the observable.\n */\n subscribe: function subscribe(observer) {\n if (typeof observer !== 'object' || observer === null) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(11) : \"Expected the observer to be an object. Instead, received: '\" + kindOf(observer) + \"'\");\n }\n\n function observeState() {\n if (observer.next) {\n observer.next(getState());\n }\n }\n\n observeState();\n var unsubscribe = outerSubscribe(observeState);\n return {\n unsubscribe: unsubscribe\n };\n }\n }, _ref[$$observable] = function () {\n return this;\n }, _ref;\n } // When a store is created, an \"INIT\" action is dispatched so that every\n // reducer returns their initial state. This effectively populates\n // the initial state tree.\n\n\n dispatch({\n type: ActionTypes.INIT\n });\n return _ref2 = {\n dispatch: dispatch,\n subscribe: subscribe,\n getState: getState,\n replaceReducer: replaceReducer\n }, _ref2[$$observable] = observable, _ref2;\n}\n/**\n * Creates a Redux store that holds the state tree.\n *\n * **We recommend using `configureStore` from the\n * `@reduxjs/toolkit` package**, which replaces `createStore`:\n * **https://redux.js.org/introduction/why-rtk-is-redux-today**\n *\n * The only way to change the data in the store is to call `dispatch()` on it.\n *\n * There should only be a single store in your app. To specify how different\n * parts of the state tree respond to actions, you may combine several reducers\n * into a single reducer function by using `combineReducers`.\n *\n * @param {Function} reducer A function that returns the next state tree, given\n * the current state tree and the action to handle.\n *\n * @param {any} [preloadedState] The initial state. You may optionally specify it\n * to hydrate the state from the server in universal apps, or to restore a\n * previously serialized user session.\n * If you use `combineReducers` to produce the root reducer function, this must be\n * an object with the same shape as `combineReducers` keys.\n *\n * @param {Function} [enhancer] The store enhancer. You may optionally specify it\n * to enhance the store with third-party capabilities such as middleware,\n * time travel, persistence, etc. The only store enhancer that ships with Redux\n * is `applyMiddleware()`.\n *\n * @returns {Store} A Redux store that lets you read the state, dispatch actions\n * and subscribe to changes.\n */\n\nvar legacy_createStore = createStore;\n\n/**\n * Prints a warning in the console if it exists.\n *\n * @param {String} message The warning message.\n * @returns {void}\n */\nfunction warning(message) {\n /* eslint-disable no-console */\n if (typeof console !== 'undefined' && typeof console.error === 'function') {\n console.error(message);\n }\n /* eslint-enable no-console */\n\n\n try {\n // This error was thrown as a convenience so that if you enable\n // \"break on all exceptions\" in your console,\n // it would pause the execution at this line.\n throw new Error(message);\n } catch (e) {} // eslint-disable-line no-empty\n\n}\n\nfunction getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) {\n var reducerKeys = Object.keys(reducers);\n var argumentName = action && action.type === ActionTypes.INIT ? 'preloadedState argument passed to createStore' : 'previous state received by the reducer';\n\n if (reducerKeys.length === 0) {\n return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.';\n }\n\n if (!isPlainObject(inputState)) {\n return \"The \" + argumentName + \" has unexpected type of \\\"\" + kindOf(inputState) + \"\\\". Expected argument to be an object with the following \" + (\"keys: \\\"\" + reducerKeys.join('\", \"') + \"\\\"\");\n }\n\n var unexpectedKeys = Object.keys(inputState).filter(function (key) {\n return !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key];\n });\n unexpectedKeys.forEach(function (key) {\n unexpectedKeyCache[key] = true;\n });\n if (action && action.type === ActionTypes.REPLACE) return;\n\n if (unexpectedKeys.length > 0) {\n return \"Unexpected \" + (unexpectedKeys.length > 1 ? 'keys' : 'key') + \" \" + (\"\\\"\" + unexpectedKeys.join('\", \"') + \"\\\" found in \" + argumentName + \". \") + \"Expected to find one of the known reducer keys instead: \" + (\"\\\"\" + reducerKeys.join('\", \"') + \"\\\". Unexpected keys will be ignored.\");\n }\n}\n\nfunction assertReducerShape(reducers) {\n Object.keys(reducers).forEach(function (key) {\n var reducer = reducers[key];\n var initialState = reducer(undefined, {\n type: ActionTypes.INIT\n });\n\n if (typeof initialState === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(12) : \"The slice reducer for key \\\"\" + key + \"\\\" returned undefined during initialization. \" + \"If the state passed to the reducer is undefined, you must \" + \"explicitly return the initial state. The initial state may \" + \"not be undefined. If you don't want to set a value for this reducer, \" + \"you can use null instead of undefined.\");\n }\n\n if (typeof reducer(undefined, {\n type: ActionTypes.PROBE_UNKNOWN_ACTION()\n }) === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(13) : \"The slice reducer for key \\\"\" + key + \"\\\" returned undefined when probed with a random type. \" + (\"Don't try to handle '\" + ActionTypes.INIT + \"' or other actions in \\\"redux/*\\\" \") + \"namespace. They are considered private. Instead, you must return the \" + \"current state for any unknown actions, unless it is undefined, \" + \"in which case you must return the initial state, regardless of the \" + \"action type. The initial state may not be undefined, but can be null.\");\n }\n });\n}\n/**\n * Turns an object whose values are different reducer functions, into a single\n * reducer function. It will call every child reducer, and gather their results\n * into a single state object, whose keys correspond to the keys of the passed\n * reducer functions.\n *\n * @param {Object} reducers An object whose values correspond to different\n * reducer functions that need to be combined into one. One handy way to obtain\n * it is to use ES6 `import * as reducers` syntax. The reducers may never return\n * undefined for any action. Instead, they should return their initial state\n * if the state passed to them was undefined, and the current state for any\n * unrecognized action.\n *\n * @returns {Function} A reducer function that invokes every reducer inside the\n * passed object, and builds a state object with the same shape.\n */\n\n\nfunction combineReducers(reducers) {\n var reducerKeys = Object.keys(reducers);\n var finalReducers = {};\n\n for (var i = 0; i < reducerKeys.length; i++) {\n var key = reducerKeys[i];\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof reducers[key] === 'undefined') {\n warning(\"No reducer provided for key \\\"\" + key + \"\\\"\");\n }\n }\n\n if (typeof reducers[key] === 'function') {\n finalReducers[key] = reducers[key];\n }\n }\n\n var finalReducerKeys = Object.keys(finalReducers); // This is used to make sure we don't warn about the same\n // keys multiple times.\n\n var unexpectedKeyCache;\n\n if (process.env.NODE_ENV !== 'production') {\n unexpectedKeyCache = {};\n }\n\n var shapeAssertionError;\n\n try {\n assertReducerShape(finalReducers);\n } catch (e) {\n shapeAssertionError = e;\n }\n\n return function combination(state, action) {\n if (state === void 0) {\n state = {};\n }\n\n if (shapeAssertionError) {\n throw shapeAssertionError;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n var warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache);\n\n if (warningMessage) {\n warning(warningMessage);\n }\n }\n\n var hasChanged = false;\n var nextState = {};\n\n for (var _i = 0; _i < finalReducerKeys.length; _i++) {\n var _key = finalReducerKeys[_i];\n var reducer = finalReducers[_key];\n var previousStateForKey = state[_key];\n var nextStateForKey = reducer(previousStateForKey, action);\n\n if (typeof nextStateForKey === 'undefined') {\n var actionType = action && action.type;\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(14) : \"When called with an action of type \" + (actionType ? \"\\\"\" + String(actionType) + \"\\\"\" : '(unknown type)') + \", the slice reducer for key \\\"\" + _key + \"\\\" returned undefined. \" + \"To ignore an action, you must explicitly return the previous state. \" + \"If you want this reducer to hold no value, you can return null instead of undefined.\");\n }\n\n nextState[_key] = nextStateForKey;\n hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n }\n\n hasChanged = hasChanged || finalReducerKeys.length !== Object.keys(state).length;\n return hasChanged ? nextState : state;\n };\n}\n\nfunction bindActionCreator(actionCreator, dispatch) {\n return function () {\n return dispatch(actionCreator.apply(this, arguments));\n };\n}\n/**\n * Turns an object whose values are action creators, into an object with the\n * same keys, but with every function wrapped into a `dispatch` call so they\n * may be invoked directly. This is just a convenience method, as you can call\n * `store.dispatch(MyActionCreators.doSomething())` yourself just fine.\n *\n * For convenience, you can also pass an action creator as the first argument,\n * and get a dispatch wrapped function in return.\n *\n * @param {Function|Object} actionCreators An object whose values are action\n * creator functions. One handy way to obtain it is to use ES6 `import * as`\n * syntax. You may also pass a single function.\n *\n * @param {Function} dispatch The `dispatch` function available on your Redux\n * store.\n *\n * @returns {Function|Object} The object mimicking the original object, but with\n * every action creator wrapped into the `dispatch` call. If you passed a\n * function as `actionCreators`, the return value will also be a single\n * function.\n */\n\n\nfunction bindActionCreators(actionCreators, dispatch) {\n if (typeof actionCreators === 'function') {\n return bindActionCreator(actionCreators, dispatch);\n }\n\n if (typeof actionCreators !== 'object' || actionCreators === null) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(16) : \"bindActionCreators expected an object or a function, but instead received: '\" + kindOf(actionCreators) + \"'. \" + \"Did you write \\\"import ActionCreators from\\\" instead of \\\"import * as ActionCreators from\\\"?\");\n }\n\n var boundActionCreators = {};\n\n for (var key in actionCreators) {\n var actionCreator = actionCreators[key];\n\n if (typeof actionCreator === 'function') {\n boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);\n }\n }\n\n return boundActionCreators;\n}\n\n/**\n * Composes single-argument functions from right to left. The rightmost\n * function can take multiple arguments as it provides the signature for\n * the resulting composite function.\n *\n * @param {...Function} funcs The functions to compose.\n * @returns {Function} A function obtained by composing the argument functions\n * from right to left. For example, compose(f, g, h) is identical to doing\n * (...args) => f(g(h(...args))).\n */\nfunction compose() {\n for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) {\n funcs[_key] = arguments[_key];\n }\n\n if (funcs.length === 0) {\n return function (arg) {\n return arg;\n };\n }\n\n if (funcs.length === 1) {\n return funcs[0];\n }\n\n return funcs.reduce(function (a, b) {\n return function () {\n return a(b.apply(void 0, arguments));\n };\n });\n}\n\n/**\n * Creates a store enhancer that applies middleware to the dispatch method\n * of the Redux store. This is handy for a variety of tasks, such as expressing\n * asynchronous actions in a concise manner, or logging every action payload.\n *\n * See `redux-thunk` package as an example of the Redux middleware.\n *\n * Because middleware is potentially asynchronous, this should be the first\n * store enhancer in the composition chain.\n *\n * Note that each middleware will be given the `dispatch` and `getState` functions\n * as named arguments.\n *\n * @param {...Function} middlewares The middleware chain to be applied.\n * @returns {Function} A store enhancer applying the middleware.\n */\n\nfunction applyMiddleware() {\n for (var _len = arguments.length, middlewares = new Array(_len), _key = 0; _key < _len; _key++) {\n middlewares[_key] = arguments[_key];\n }\n\n return function (createStore) {\n return function () {\n var store = createStore.apply(void 0, arguments);\n\n var _dispatch = function dispatch() {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(15) : 'Dispatching while constructing your middleware is not allowed. ' + 'Other middleware would not be applied to this dispatch.');\n };\n\n var middlewareAPI = {\n getState: store.getState,\n dispatch: function dispatch() {\n return _dispatch.apply(void 0, arguments);\n }\n };\n var chain = middlewares.map(function (middleware) {\n return middleware(middlewareAPI);\n });\n _dispatch = compose.apply(void 0, chain)(store.dispatch);\n return _objectSpread(_objectSpread({}, store), {}, {\n dispatch: _dispatch\n });\n };\n };\n}\n\n/*\n * This is a dummy function to check if the function name has been altered by minification.\n * If the function has been minified and NODE_ENV !== 'production', warn the user.\n */\n\nfunction isCrushed() {}\n\nif (process.env.NODE_ENV !== 'production' && typeof isCrushed.name === 'string' && isCrushed.name !== 'isCrushed') {\n warning('You are currently using minified code outside of NODE_ENV === \"production\". ' + 'This means that you are running a slower development build of Redux. ' + 'You can use loose-envify (https://github.com/zertosh/loose-envify) for browserify ' + 'or setting mode to production in webpack (https://webpack.js.org/concepts/mode/) ' + 'to ensure you have the correct code for your production build.');\n}\n\nexport { ActionTypes as __DO_NOT_USE__ActionTypes, applyMiddleware, bindActionCreators, combineReducers, compose, createStore, legacy_createStore };\n","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 =\n/*#__PURE__*/\n\n/*#__PURE__*/\nReact.createElement(\"path\", {\n d: \"M0 0h24v24H0z\",\n fill: \"none\"\n});\n\nvar _ref3 =\n/*#__PURE__*/\n\n/*#__PURE__*/\nReact.createElement(\"path\", {\n d: \"M20.01 15.38c-1.23 0-2.42-.2-3.53-.56a.977.977 0 00-1.01.24l-1.57 1.97c-2.83-1.35-5.48-3.9-6.89-6.83l1.95-1.66c.27-.28.35-.67.24-1.02-.37-1.11-.56-2.3-.56-3.53 0-.54-.45-.99-.99-.99H4.19C3.65 3 3 3.24 3 3.99 3 13.28 10.73 21 20.01 21c.71 0 .99-.63.99-1.18v-3.45c0-.54-.45-.99-.99-.99z\"\n});\n\nvar SvgPhone = function SvgPhone(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n height: 24,\n viewBox: \"0 0 24 24\",\n width: 24,\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3);\n};\n\nvar ForwardRef = React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgPhone, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/phone.ec4ab726.svg\";\nexport { ForwardRef as ReactComponent };","var defineProperty = require(\"./defineProperty\");\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nmodule.exports = _objectSpread;","import '../../style/index.less';\nimport './index.less';\nimport '../../menu/style';\nimport '../../dropdown/style';\n","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 =\n/*#__PURE__*/\n\n/*#__PURE__*/\nReact.createElement(\"path\", {\n d: \"M0 0h24v24H0z\",\n fill: \"none\"\n});\n\nvar _ref3 =\n/*#__PURE__*/\n\n/*#__PURE__*/\nReact.createElement(\"path\", {\n d: \"M20 2H4c-1.1 0-1.99.9-1.99 2L2 22l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zM9 11H7V9h2v2zm4 0h-2V9h2v2zm4 0h-2V9h2v2z\"\n});\n\nvar SvgSms = function SvgSms(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n height: 24,\n viewBox: \"0 0 24 24\",\n width: 24,\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3);\n};\n\nvar ForwardRef = React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgSms, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/sms.a7f1ae45.svg\";\nexport { ForwardRef as ReactComponent };","var __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport omit from 'omit.js';\nimport DropDown from '../dropdown/dropdown';\nimport Icon from '../icon';\nimport { ConfigConsumer } from '../config-provider';\nexport default class BreadcrumbItem extends React.Component {\n constructor() {\n super(...arguments);\n this.renderBreadcrumbItem = ({ getPrefixCls }) => {\n const _a = this.props, { prefixCls: customizePrefixCls, separator, children } = _a, restProps = __rest(_a, [\"prefixCls\", \"separator\", \"children\"]);\n const prefixCls = getPrefixCls('breadcrumb', customizePrefixCls);\n let link;\n if ('href' in this.props) {\n link = (<a className={`${prefixCls}-link`} {...omit(restProps, ['overlay'])}>\n {children}\n </a>);\n }\n else {\n link = (<span className={`${prefixCls}-link`} {...omit(restProps, ['overlay'])}>\n {children}\n </span>);\n }\n // wrap to dropDown\n link = this.renderBreadcrumbNode(link, prefixCls);\n if (children) {\n return (<span>\n {link}\n {separator && separator !== '' && (<span className={`${prefixCls}-separator`}>{separator}</span>)}\n </span>);\n }\n return null;\n };\n /**\n * if overlay is have\n * Wrap a DropDown\n */\n this.renderBreadcrumbNode = (breadcrumbItem, prefixCls) => {\n const { overlay } = this.props;\n if (overlay) {\n return (<DropDown overlay={overlay} placement=\"bottomCenter\">\n <span className={`${prefixCls}-overlay-link`}>\n {breadcrumbItem}\n <Icon type=\"down\"/>\n </span>\n </DropDown>);\n }\n return breadcrumbItem;\n };\n }\n render() {\n return <ConfigConsumer>{this.renderBreadcrumbItem}</ConfigConsumer>;\n }\n}\nBreadcrumbItem.__ANT_BREADCRUMB_ITEM = true;\nBreadcrumbItem.defaultProps = {\n separator: '/',\n};\nBreadcrumbItem.propTypes = {\n prefixCls: PropTypes.string,\n separator: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\n href: PropTypes.string,\n};\n","var __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport toArray from 'rc-util/lib/Children/toArray';\nimport omit from 'omit.js';\nimport BreadcrumbItem from './BreadcrumbItem';\nimport Menu from '../menu';\nimport { ConfigConsumer } from '../config-provider';\nimport warning from '../_util/warning';\nfunction getBreadcrumbName(route, params) {\n if (!route.breadcrumbName) {\n return null;\n }\n const paramsKeys = Object.keys(params).join('|');\n const name = route.breadcrumbName.replace(new RegExp(`:(${paramsKeys})`, 'g'), (replacement, key) => params[key] || replacement);\n return name;\n}\nfunction defaultItemRender(route, params, routes, paths) {\n const isLastItem = routes.indexOf(route) === routes.length - 1;\n const name = getBreadcrumbName(route, params);\n return isLastItem ? <span>{name}</span> : <a href={`#/${paths.join('/')}`}>{name}</a>;\n}\nfunction filterFragment(children) {\n return toArray(children).map((element) => {\n if (React.isValidElement(element) && element.type === React.Fragment) {\n const props = element.props;\n return props.children;\n }\n return element;\n });\n}\nexport default class Breadcrumb extends React.Component {\n constructor() {\n super(...arguments);\n this.getPath = (path, params) => {\n path = (path || '').replace(/^\\//, '');\n Object.keys(params).forEach(key => {\n path = path.replace(`:${key}`, params[key]);\n });\n return path;\n };\n this.addChildPath = (paths, childPath = '', params) => {\n const originalPaths = [...paths];\n const path = this.getPath(childPath, params);\n if (path) {\n originalPaths.push(path);\n }\n return originalPaths;\n };\n this.genForRoutes = ({ routes = [], params = {}, separator, itemRender = defaultItemRender, }) => {\n const paths = [];\n return routes.map(route => {\n const path = this.getPath(route.path, params);\n if (path) {\n paths.push(path);\n }\n // generated overlay by route.children\n let overlay = null;\n if (route.children && route.children.length) {\n overlay = (<Menu>\n {route.children.map(child => (<Menu.Item key={child.breadcrumbName || child.path}>\n {itemRender(child, params, routes, this.addChildPath(paths, child.path, params))}\n </Menu.Item>))}\n </Menu>);\n }\n return (<BreadcrumbItem overlay={overlay} separator={separator} key={route.breadcrumbName || path}>\n {itemRender(route, params, routes, paths)}\n </BreadcrumbItem>);\n });\n };\n this.renderBreadcrumb = ({ getPrefixCls }) => {\n let crumbs;\n const _a = this.props, { prefixCls: customizePrefixCls, separator, style, className, routes, children } = _a, restProps = __rest(_a, [\"prefixCls\", \"separator\", \"style\", \"className\", \"routes\", \"children\"]);\n const prefixCls = getPrefixCls('breadcrumb', customizePrefixCls);\n if (routes && routes.length > 0) {\n // generated by route\n crumbs = this.genForRoutes(this.props);\n }\n else if (children) {\n crumbs = React.Children.map(filterFragment(children), (element, index) => {\n if (!element) {\n return element;\n }\n warning(element.type &&\n (element.type.__ANT_BREADCRUMB_ITEM || element.type.__ANT_BREADCRUMB_SEPARATOR), 'Breadcrumb', \"Only accepts Breadcrumb.Item and Breadcrumb.Separator as it's children\");\n return React.cloneElement(element, {\n separator,\n key: index,\n });\n });\n }\n return (<div className={classNames(className, prefixCls)} style={style} {...omit(restProps, ['itemRender', 'params'])}>\n {crumbs}\n </div>);\n };\n }\n componentDidMount() {\n const { props } = this;\n warning(!('linkRender' in props || 'nameRender' in props), 'Breadcrumb', '`linkRender` and `nameRender` are removed, please use `itemRender` instead, ' +\n 'see: https://u.ant.design/item-render.');\n }\n render() {\n return <ConfigConsumer>{this.renderBreadcrumb}</ConfigConsumer>;\n }\n}\nBreadcrumb.defaultProps = {\n separator: '/',\n};\nBreadcrumb.propTypes = {\n prefixCls: PropTypes.string,\n separator: PropTypes.node,\n routes: PropTypes.array,\n};\n","import * as React from 'react';\nimport { ConfigConsumer } from '../config-provider';\nexport default class BreadcrumbSeparator extends React.Component {\n constructor() {\n super(...arguments);\n this.renderSeparator = ({ getPrefixCls }) => {\n const { children } = this.props;\n const prefixCls = getPrefixCls('breadcrumb');\n return <span className={`${prefixCls}-separator`}>{children || '/'}</span>;\n };\n }\n render() {\n return <ConfigConsumer>{this.renderSeparator}</ConfigConsumer>;\n }\n}\nBreadcrumbSeparator.__ANT_BREADCRUMB_SEPARATOR = true;\n","import Breadcrumb from './Breadcrumb';\nimport BreadcrumbItem from './BreadcrumbItem';\nimport BreadcrumbSeparator from './BreadcrumbSeparator';\nBreadcrumb.Item = BreadcrumbItem;\nBreadcrumb.Separator = BreadcrumbSeparator;\nexport default Breadcrumb;\n","var __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport Button from '../button';\nimport { ConfigConsumer } from '../config-provider';\nimport Dropdown from './dropdown';\nimport Icon from '../icon';\nconst ButtonGroup = Button.Group;\nexport default class DropdownButton extends React.Component {\n constructor() {\n super(...arguments);\n this.renderButton = ({ getPopupContainer: getContextPopupContainer, getPrefixCls, }) => {\n const _a = this.props, { prefixCls: customizePrefixCls, type, disabled, onClick, htmlType, children, className, overlay, trigger, align, visible, onVisibleChange, placement, getPopupContainer, href, icon = <Icon type=\"ellipsis\"/>, title } = _a, restProps = __rest(_a, [\"prefixCls\", \"type\", \"disabled\", \"onClick\", \"htmlType\", \"children\", \"className\", \"overlay\", \"trigger\", \"align\", \"visible\", \"onVisibleChange\", \"placement\", \"getPopupContainer\", \"href\", \"icon\", \"title\"]);\n const prefixCls = getPrefixCls('dropdown-button', customizePrefixCls);\n const dropdownProps = {\n align,\n overlay,\n disabled,\n trigger: disabled ? [] : trigger,\n onVisibleChange,\n placement,\n getPopupContainer: getPopupContainer || getContextPopupContainer,\n };\n if ('visible' in this.props) {\n dropdownProps.visible = visible;\n }\n return (<ButtonGroup {...restProps} className={classNames(prefixCls, className)}>\n <Button type={type} disabled={disabled} onClick={onClick} htmlType={htmlType} href={href} title={title}>\n {children}\n </Button>\n <Dropdown {...dropdownProps}>\n <Button type={type}>{icon}</Button>\n </Dropdown>\n </ButtonGroup>);\n };\n }\n render() {\n return <ConfigConsumer>{this.renderButton}</ConfigConsumer>;\n }\n}\nDropdownButton.defaultProps = {\n placement: 'bottomRight',\n type: 'default',\n};\n","import Dropdown from './dropdown';\nimport DropdownButton from './dropdown-button';\nDropdown.Button = DropdownButton;\nexport default Dropdown;\n","var haversine = (function () {\n var RADII = {\n km: 6371,\n mile: 3960,\n meter: 6371000,\n nmi: 3440\n }\n\n // convert to radians\n var toRad = function (num) {\n return num * Math.PI / 180\n }\n\n // convert coordinates to standard format based on the passed format option\n var convertCoordinates = function (format, coordinates) {\n switch (format) {\n case '[lat,lon]':\n return { latitude: coordinates[0], longitude: coordinates[1] }\n case '[lon,lat]':\n return { latitude: coordinates[1], longitude: coordinates[0] }\n case '{lon,lat}':\n return { latitude: coordinates.lat, longitude: coordinates.lon }\n case '{lat,lng}':\n return { latitude: coordinates.lat, longitude: coordinates.lng }\n case 'geojson':\n return { latitude: coordinates.geometry.coordinates[1], longitude: coordinates.geometry.coordinates[0] }\n default:\n return coordinates\n }\n }\n\n return function haversine (startCoordinates, endCoordinates, options) {\n options = options || {}\n\n var R = options.unit in RADII\n ? RADII[options.unit]\n : RADII.km\n\n var start = convertCoordinates(options.format, startCoordinates)\n var end = convertCoordinates(options.format, endCoordinates)\n\n var dLat = toRad(end.latitude - start.latitude)\n var dLon = toRad(end.longitude - start.longitude)\n var lat1 = toRad(start.latitude)\n var lat2 = toRad(end.latitude)\n\n var a = Math.sin(dLat/2) * Math.sin(dLat/2) +\n Math.sin(dLon/2) * Math.sin(dLon/2) * Math.cos(lat1) * Math.cos(lat2)\n var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a))\n\n if (options.threshold) {\n return options.threshold > (R * c)\n }\n\n return R * c\n }\n\n})()\n\nif (typeof module !== 'undefined' && module.exports) {\n module.exports = haversine\n}\n","function _extends() {\n module.exports = _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nmodule.exports = _extends;","import { Col, Row } from \"antd\";\r\n\r\nimport React from \"react\";\r\nimport { css } from \"@emotion/core\";\r\n\r\ninterface Props {\r\n title: string;\r\n}\r\n\r\nconst Error: React.FC<Props> = ({ title }) => {\r\n return (\r\n <div\r\n css={css`\r\n width: 100%;\r\n padding: 2%;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n text-align: center;\r\n `}\r\n >\r\n <Row>\r\n <Col>\r\n <h3\r\n css={css`\r\n font-size: 22px;\r\n `}\r\n >\r\n Oops, Looks like there is an Issue\r\n </h3>\r\n </Col>\r\n\r\n <Col>\r\n <h4\r\n css={css`\r\n font-size: 14px;\r\n color: gray;\r\n `}\r\n >{`There was an error pulling your ${title}`}</h4>\r\n </Col>\r\n </Row>\r\n </div>\r\n );\r\n};\r\n\r\nexport default Error;\r\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.handleFullscreenChange = handleFullscreenChange;\nexports.activate = activate;\nexports.userActivate = userActivate;\nexports.play = play;\nexports.pause = pause;\nexports.togglePlay = togglePlay;\nexports.seek = seek;\nexports.forward = forward;\nexports.replay = replay;\nexports.changeRate = changeRate;\nexports.changeVolume = changeVolume;\nexports.mute = mute;\nexports.toggleFullscreen = toggleFullscreen;\nexports.USER_ACTIVATE = exports.PLAYER_ACTIVATE = exports.FULLSCREEN_CHANGE = exports.OPERATE = void 0;\n\nvar _fullscreen = _interopRequireDefault(require(\"../utils/fullscreen\"));\n\nvar OPERATE = 'video-react/OPERATE';\nexports.OPERATE = OPERATE;\nvar FULLSCREEN_CHANGE = 'video-react/FULLSCREEN_CHANGE';\nexports.FULLSCREEN_CHANGE = FULLSCREEN_CHANGE;\nvar PLAYER_ACTIVATE = 'video-react/PLAYER_ACTIVATE';\nexports.PLAYER_ACTIVATE = PLAYER_ACTIVATE;\nvar USER_ACTIVATE = 'video-react/USER_ACTIVATE';\nexports.USER_ACTIVATE = USER_ACTIVATE;\n\nfunction handleFullscreenChange(isFullscreen) {\n return {\n type: FULLSCREEN_CHANGE,\n isFullscreen: isFullscreen\n };\n}\n\nfunction activate(activity) {\n return {\n type: PLAYER_ACTIVATE,\n activity: activity\n };\n}\n\nfunction userActivate(activity) {\n return {\n type: USER_ACTIVATE,\n activity: activity\n };\n}\n\nfunction play() {\n var operation = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {\n action: 'play',\n source: ''\n };\n this.video.play();\n return {\n type: OPERATE,\n operation: operation\n };\n}\n\nfunction pause() {\n var operation = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {\n action: 'pause',\n source: ''\n };\n this.video.pause();\n return {\n type: OPERATE,\n operation: operation\n };\n}\n\nfunction togglePlay() {\n var operation = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {\n action: 'toggle-play',\n source: ''\n };\n this.video.togglePlay();\n return {\n type: OPERATE,\n operation: operation\n };\n} // seek video by time\n\n\nfunction seek(time) {\n var operation = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n action: 'seek',\n source: ''\n };\n this.video.seek(time);\n return {\n type: OPERATE,\n operation: operation\n };\n} // jump forward x seconds\n\n\nfunction forward(seconds) {\n var operation = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n action: \"forward-\".concat(seconds),\n source: ''\n };\n this.video.forward(seconds);\n return {\n type: OPERATE,\n operation: operation\n };\n} // jump back x seconds\n\n\nfunction replay(seconds) {\n var operation = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n action: \"replay-\".concat(seconds),\n source: ''\n };\n this.video.replay(seconds);\n return {\n type: OPERATE,\n operation: operation\n };\n}\n\nfunction changeRate(rate) {\n var operation = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n action: 'change-rate',\n source: ''\n };\n this.video.playbackRate = rate;\n return {\n type: OPERATE,\n operation: operation\n };\n}\n\nfunction changeVolume(volume) {\n var operation = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n action: 'change-volume',\n source: ''\n };\n var v = volume;\n\n if (volume < 0) {\n v = 0;\n }\n\n if (volume > 1) {\n v = 1;\n }\n\n this.video.volume = v;\n return {\n type: OPERATE,\n operation: operation\n };\n}\n\nfunction mute(muted) {\n var operation = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n action: muted ? 'muted' : 'unmuted',\n source: ''\n };\n this.video.muted = muted;\n return {\n type: OPERATE,\n operation: operation\n };\n}\n\nfunction toggleFullscreen(player) {\n if (_fullscreen[\"default\"].enabled) {\n if (_fullscreen[\"default\"].isFullscreen) {\n _fullscreen[\"default\"].exit();\n } else {\n _fullscreen[\"default\"].request(this.rootElement);\n }\n\n return {\n type: OPERATE,\n operation: {\n action: 'toggle-fullscreen',\n source: ''\n }\n };\n }\n\n return {\n type: FULLSCREEN_CHANGE,\n isFullscreen: !player.isFullscreen\n };\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.findElPosition = findElPosition;\nexports.getPointerPosition = getPointerPosition;\nexports.blurNode = blurNode;\nexports.focusNode = focusNode;\nexports.hasClass = hasClass;\n\n/**\n * Offset Left\n * getBoundingClientRect technique from\n * John Resig http://ejohn.org/blog/getboundingclientrect-is-awesome/\n *\n * @function findElPosition\n * @param {ReactNodeRef} el React Node ref from which to get offset\n * @return {Object}\n */\nfunction findElPosition(el) {\n var box;\n\n if (el.getBoundingClientRect && el.parentNode) {\n box = el.getBoundingClientRect();\n }\n\n if (!box) {\n return {\n left: 0,\n top: 0\n };\n }\n\n var _document = document,\n body = _document.body,\n docEl = _document.documentElement;\n var clientLeft = docEl.clientLeft || body.clientLeft || 0;\n var scrollLeft = window.pageXOffset || body.scrollLeft;\n var left = box.left + scrollLeft - clientLeft;\n var clientTop = docEl.clientTop || body.clientTop || 0;\n var scrollTop = window.pageYOffset || body.scrollTop;\n var top = box.top + scrollTop - clientTop; // Android sometimes returns slightly off decimal values, so need to round\n\n return {\n left: Math.round(left),\n top: Math.round(top)\n };\n}\n/**\n * Get pointer position in a React Node ref\n * Returns an object with x and y coordinates.\n * The base on the coordinates are the bottom left of the element.\n *\n * @function getPointerPosition\n * @param {ReactNodeRef} el React Node ref on which to get the pointer position on\n * @param {Event} event Event object\n * @return {Object} This object will have x and y coordinates corresponding to the mouse position\n */\n\n\nfunction getPointerPosition(el, event) {\n var position = {};\n var box = findElPosition(el);\n var boxW = el.offsetWidth;\n var boxH = el.offsetHeight;\n var boxY = box.top;\n var boxX = box.left;\n var evtPageY = event.pageY;\n var evtPageX = event.pageX;\n\n if (event.changedTouches) {\n evtPageX = event.changedTouches[0].pageX;\n evtPageY = event.changedTouches[0].pageY;\n }\n\n position.y = Math.max(0, Math.min(1, (boxY - evtPageY + boxH) / boxH));\n position.x = Math.max(0, Math.min(1, (evtPageX - boxX) / boxW));\n return position;\n} // blur an element\n\n\nfunction blurNode(reactNode) {\n if (reactNode && reactNode.blur) {\n reactNode.blur();\n }\n} // focus an element\n\n\nfunction focusNode(reactNode) {\n if (reactNode && reactNode.focus) {\n reactNode.focus();\n }\n} // check if an element has a class name\n\n\nfunction hasClass(elm, cls) {\n var classes = elm.className.split(' ');\n\n for (var i = 0; i < classes.length; i++) {\n if (classes[i].toLowerCase() === cls.toLowerCase()) {\n return true;\n }\n }\n\n return false;\n}"],"sourceRoot":""}