{"version":3,"sources":["../node_modules/react/index.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createSuper.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/prop-types/index.js","../node_modules/react-animate-on-scroll/dist/scrollAnimation.min.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../../modules/HistoryContext.js","../../modules/createNameContext.js","../../modules/RouterContext.js","../../modules/Router.js","../../modules/MemoryRouter.js","../../modules/Lifecycle.js","../../modules/generatePath.js","../../modules/Redirect.js","../../modules/matchPath.js","../../modules/Route.js","../../modules/StaticRouter.js","../../modules/Switch.js","../../modules/hooks.js","../node_modules/immutability-helper/index.js","../../modules/BrowserRouter.js","../../modules/HashRouter.js","../../modules/utils/locationUtils.js","../../modules/Link.js","../../modules/NavLink.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/tiny-invariant/dist/tiny-invariant.esm.js","../node_modules/react-share/es/utils/assert.js","../node_modules/resolve-pathname/esm/resolve-pathname.js","../node_modules/value-equal/esm/value-equal.js","../node_modules/history/esm/history.js","../node_modules/react-share/es/utils/objectToGetParams.js","../node_modules/react-share/es/ShareButton.js","../node_modules/react-share/es/hocs/createShareButton.js","../node_modules/classnames/index.js","../node_modules/react-bootstrap/esm/ThemeProvider.js","../node_modules/webpack/buildin/global.js","../node_modules/mini-create-react-context/dist/esm/index.js","../node_modules/react-router/node_modules/path-to-regexp/index.js","../node_modules/object-assign/index.js","../node_modules/react-is/index.js","../node_modules/react-dom/index.js","../node_modules/@restart/context/forwardRef.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/react-photo-gallery/dist/react-photo-gallery.esm.js","../node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js","../../../dist/lightgallery.es5.js","../../../../src/plugins/video/lg-video-settings.ts","../../../../src/lg-events.ts","../../../../src/plugins/video/lg-video-utils.ts","../../../../src/plugins/video/lg-video.ts","../../../../src/plugins/thumbnail/lg-thumbnail-settings.ts","../../../../src/plugins/thumbnail/lg-thumbnail.ts","../../../../src/plugins/zoom/lg-zoom-settings.ts","../../../../src/plugins/zoom/lg-zoom.ts","../node_modules/react/cjs/react.production.min.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/scheduler/index.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/process/browser.js","../node_modules/lodash.throttle/index.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/react-router/node_modules/isarray/index.js","../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-bootstrap/esm/Container.js","../node_modules/react-bootstrap/esm/Row.js","../node_modules/react-bootstrap/esm/Col.js","../node_modules/react-share/es/FacebookShareButton.js","../node_modules/react-share/es/TwitterShareButton.js","../node_modules/react-share/es/RedditShareButton.js","../node_modules/react-share/es/LinkedinShareButton.js","../node_modules/react-share/es/WhatsappShareButton.js"],"names":["module","exports","require","_classCallCheck","instance","Constructor","TypeError","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_createClass","protoProps","staticProps","prototype","_getPrototypeOf","o","setPrototypeOf","getPrototypeOf","__proto__","_typeof","obj","Symbol","iterator","constructor","_possibleConstructorReturn","self","call","ReferenceError","_createSuper","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","Date","toString","e","result","Super","NewTarget","this","arguments","apply","_setPrototypeOf","p","_inherits","subClass","superClass","create","value","defineProperties","_interopRequireDefault","__esModule","_react","_react2","_lodashThrottle2","_propTypes2","ScrollAnimation","_Component","_x","_x2","_x3","_again","object","property","receiver","Function","desc","getOwnPropertyDescriptor","undefined","getter","get","parent","_get","serverSide","window","listener","handleScroll","bind","visibility","onScreen","inViewport","state","classes","style","animationDuration","duration","opacity","initiallyVisible","elm","yPos","offsetTop","clientTop","offsetParent","scrollableParent","pageYOffset","scrollTop","innerHeight","clientHeight","getScrollPos","offset","getScrollableParentHeight","y","getViewportTop","getViewportBottom","elementTop","elementBottom","isInViewport","isAboveViewport","isBelowViewport","isAboveScreen","isBelowScreen","getElementTop","node","parentSelector","scrollableParentSelector","document","querySelector","addEventListener","console","warn","animatePreScroll","clearTimeout","delayedAnimationTimeout","callbackTimeout","removeEventListener","previousVis","currentVis","animation","callback","_this","setTimeout","animating","setState","delay","_this2","animate","animateIn","animateOnce","vis","getVisibility","_this3","animateOut","afterAnimatedIn","visibilityHasChanged","afterAnimatedOut","_this4","className","createElement","ref","assign","children","Component","defaultProps","propTypes","string","number","bool","_extends","source","hasOwnProperty","historyContext","name","context","createContext","createNamedContext","Router","location","computeRootMatch","path","url","params","isExact","pathname","componentDidMount","_pendingLocation","componentWillUnmount","unlisten","render","RouterContext","history","match","staticContext","HistoryContext","React","Lifecycle","onMount","componentDidUpdate","onUpdate","prevProps","onUnmount","cache","cacheCount","generatePath","generator","pathToRegexp","compilePath","pretty","Redirect","computedMatch","to","push","method","createLocation","prevLocation","locationsAreEqual","matchPath","options","Array","exact","strict","sensitive","concat","matched","cacheKey","pathCache","keys","regexp","end","values","memo","Route","component","addLeadingSlash","stripBasename","basename","base","createURL","createPath","staticHandler","methodName","invariant","noop","Switch","child","element","stringifiable","slice","isProduction","process","condition","message","Error","splice","type","getAllKeys","forEach","getOwnPropertySymbols","copy","isArray","Map","Set","Context","commands","defaultCommands","update","extend","isEquals","x","newContext","set","directive","fn","$spec","spec","$apply","join","nextObject","objectWasNextObject","nextValueForKey","nextObjectValue","$push","invariantPushAndUnshift","$unshift","$splice","originalObject","invariantSplice","invariantSplices","args","$set","_nextObject","invariantSet","$toggle","targets","invariantSpecArray","nextObjectCopy","$unset","_spec","$add","invariantMapOrSet","_a","has","add","$remove","delete","$merge","specValue","original","defaultContext","command","typeOfTarget","default","BrowserRouter","createHistory","resolveToLocation","currentLocation","normalizeToLocation","forwardRefShim","C","forwardRef","LinkAnchor","innerRef","navigate","onClick","rest","event","ex","isModifiedEvent","forwardedRef","Link","replace","href","ariaCurrent","activeClassName","activeStyle","classNameProp","isActiveProp","isActive","locationProp","styleProp","toLocation","escapedPath","classnames","joinClassnames","_objectWithoutPropertiesLoose","excluded","sourceKeys","indexOf","_inheritsLoose","prefix","__extends","extendStatics","d","b","__","AssertionError","_super","assert","isAbsolute","charAt","spliceOne","list","index","k","n","pop","resolvePathname","from","hasTrailingSlash","toParts","split","fromParts","isToAbs","isFromAbs","mustEndAbs","last","up","part","unshift","substr","valueOf","valueEqual","a","every","item","aValue","bValue","stripLeadingSlash","toLowerCase","hasBasename","stripTrailingSlash","search","hash","hashIndex","searchIndex","parsePath","decodeURI","URIError","createTransitionManager","prompt","listeners","setPrompt","nextPrompt","confirmTransitionTo","action","getUserConfirmation","appendListener","filter","notifyListeners","_len","_key","canUseDOM","getConfirmation","confirm","PopStateEvent","HashChangeEvent","getHistoryState","createBrowserHistory","globalHistory","canUseHistory","ua","navigator","userAgent","supportsHistory","needsHashChangeListener","_props","_props$forceRefresh","forceRefresh","_props$getUserConfirm","_props$keyLength","keyLength","getDOMLocation","historyState","_ref","_window$location","createKey","Math","random","transitionManager","nextState","handlePopState","isExtraneousPopstateEvent","handlePop","handleHashChange","forceNextPop","ok","fromLocation","toIndex","allKeys","fromIndex","delta","go","revertPop","initialLocation","createHref","listenerCount","checkDOMListeners","isBlocked","pushState","prevIndex","nextKeys","replaceState","goBack","goForward","block","unblock","listen","HashChangeEvent$1","HashPathCoders","hashbang","encodePath","decodePath","noslash","slash","stripHash","getHashPath","substring","replaceHashPath","createHashHistory","_props$hashType","hashType","_HashPathCoders$hashT","ignorePath","encodedPath","allPaths","lastIndexOf","baseTag","getAttribute","pushHashPath","nextPaths","clamp","lowerBound","upperBound","min","max","createMemoryHistory","_props$initialEntries","initialEntries","_props$initialIndex","initialIndex","entries","map","entry","nextIndex","nextEntries","canGo","objectToGetParams","encodeURIComponent","String","__assign","t","s","__awaiter","thisArg","_arguments","P","Promise","resolve","reject","fulfilled","step","next","rejected","done","then","__generator","body","f","g","_","label","sent","trys","ops","verb","v","op","__rest","propertyIsEnumerable","isPromise","getBoxPositionOnWindowCenter","width","height","left","outerWidth","screenX","screenLeft","top","outerHeight","screenY","screenTop","getBoxPositionOnScreenCenter","screen","windowOpen","onClose","configRest","config","toolbar","status","directories","menubar","scrollbars","resizable","centerscreen","chrome","shareDialog","open","interval_1","setInterval","closed","clearInterval","error","ShareButton","openShareDialog","link","onShareWindowClose","_b","windowHeight","_c","windowPosition","_d","windowWidth","handleClick","beforeOnClick","disabled","networkLink","openShareDialogOnClick","opts","returnVal","preventDefault","disabledStyle","networkName","resetButtonStyle","newClassName","cx","newStyle","backgroundColor","border","padding","font","color","cursor","createShareButton","optsMap","CreatedButton","passedProps","displayName","hasOwn","classNames","arg","argType","inner","ThemeContext","Consumer","Provider","useBootstrapPrefix","defaultPrefix","prefixes","useContext","MAX_SIGNED_31_BIT_INT","commonjsGlobal","globalThis","global","createEventEmitter","handlers","on","handler","off","h","newValue","changedBits","defaultValue","calculateChangedBits","_Provider$childContex","_Consumer$contextType","contextProp","getUniqueId","emitter","_proto","getChildContext","componentWillReceiveProps","nextProps","oldValue","childContextTypes","PropTypes","isRequired","_Component2","getValue","observedBits","_proto2","contextTypes","isarray","parse","compile","str","tokensToFunction","tokensToRegExp","PATH_REGEXP","RegExp","res","tokens","defaultDelimiter","delimiter","exec","m","escaped","capture","group","modifier","asterisk","partial","repeat","optional","pattern","escapeGroup","escapeString","encodeURIComponentPretty","encodeURI","c","charCodeAt","toUpperCase","matches","flags","data","encode","token","segment","JSON","stringify","j","test","attachKeys","re","route","endsWithDelimiter","groups","regexpToRegexp","parts","arrayToRegexp","stringToRegexp","propIsEnumerable","toObject","val","test1","getOwnPropertyNames","test2","fromCharCode","test3","letter","err","shouldUseNative","symbols","checkDCE","__REACT_DEVTOOLS_GLOBAL_HOOK__","renderFn","_temp","_ref$allowFallback","allowFallback","_ref$displayName","reactIs","REACT_STATICS","contextType","getDefaultProps","getDerivedStateFromError","getDerivedStateFromProps","mixins","KNOWN_STATICS","caller","callee","arity","MEMO_STATICS","compare","TYPE_STATICS","getStatics","isMemo","ForwardRef","Memo","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","targetStatics","sourceStatics","_defineProperty","_objectSpread","ownKeys","sym","_objectWithoutProperties","sourceSymbolKeys","_slicedToArray","arr","_arrayWithHoles","_arr","_n","_e","_s","_i","_iterableToArrayLimit","_nonIterableRest","imgWithClick","Photo","photo","margin","direction","imgStyle","display","position","photoPropType","shape","src","alt","title","srcSet","oneOfType","array","sizes","func","round","decimals","Number","ratio","BinaryHeap","scoreFunction","content","bubbleUp","sinkDown","remove","size","score","parentN","floor","elemScore","child2N","child1N","swap","child1","child1Score","child2","findShortestPath","graph","startNode","endNode","precedentsMap","nodes","reverse","getPathFromPrecedentsMap","visited","storedShortestPaths","pQueue","weight","id","shortestNode","shortestNodeId","neighboringNodes","neighbor","newTotalWeight","buildPrecedentsMap","getCommonHeight","row","containerWidth","reduce","acc","cost","photos","targetHeight","commonHeight","pow","abs","computeRowLayout","limitNodeSearch","targetRowHeight","getNeighbors","start","results","makeGetNeighbors","Gallery","columns","renderImage","_useState2","useState","setContainerWidth","galleryEl","useRef","useLayoutEffect","animationFrameID","observer","ResizeObserver","newWidth","contentRect","requestAnimationFrame","observe","current","disconnect","cancelAnimationFrame","_ref2","previous","galleryStyle","thumbs","findIdealNodeSearch","flexWrap","flexDirection","colWidth","photosWithSizes","newHeight","colLeftPositions","colCurrTopPositions","smallestCol","tallestCol","containerHeight","computeColumnLayout","renderComponent","thumb","arrayOf","MapShim","getIndex","some","class_1","__entries__","clear","ctx","isBrowser","global$1","requestAnimationFrame$1","now","transitionKeys","mutationObserverSupported","MutationObserver","ResizeObserverController","connected_","mutationEventsAdded_","mutationsObserver_","observers_","onTransitionEnd_","refresh","leadingCall","trailingCall","lastCallTime","resolvePending","proxy","timeoutCallback","timeStamp","throttle","addObserver","connect_","removeObserver","observers","disconnect_","updateObservers_","activeObservers","gatherActive","hasActive","broadcastActive","attributes","childList","characterData","subtree","propertyName","getInstance","instance_","defineConfigurable","getWindowOf","ownerDocument","defaultView","emptyRect","createRectInit","toFloat","parseFloat","getBordersSize","styles","positions","getHTMLElementContentRect","clientWidth","getComputedStyle","paddings","positions_1","getPaddings","horizPad","right","vertPad","bottom","boxSizing","documentElement","isDocumentElement","vertScrollbar","horizScrollbar","isSVGGraphicsElement","SVGGraphicsElement","SVGElement","getBBox","getContentRect","bbox","getSVGContentRect","ResizeObservation","broadcastWidth","broadcastHeight","contentRect_","rect","broadcastRect","ResizeObserverEntry","rectInit","Constr","DOMRectReadOnly","createReadOnlyRect","ResizeObserverSPI","controller","callbackCtx","activeObservations_","observations_","callback_","controller_","callbackCtx_","Element","observations","unobserve","clearActive","observation","WeakMap","lGEvents","lightGalleryCoreSettings","mode","easing","speed","licenseKey","addClass","startClass","backdropDuration","container","startAnimationDuration","zoomFromOrigin","hideBarsDelay","showBarsAfter","slideDelay","supportLegacyBrowser","allowMediaOverlap","videoMaxSize","loadYouTubePoster","defaultCaptionHeight","ariaLabelledby","ariaDescribedby","resetScrollPosition","hideScrollbar","closable","swipeToClose","closeOnTap","showCloseIcon","showMaximizeIcon","loop","escKey","keyPress","trapFocus","controls","slideEndAnimation","hideControlOnEnd","mousewheel","getCaptionFromTitleOrAlt","appendSubHtmlTo","subHtmlSelectorRelative","preload","numberOfSlideItemsInDom","selector","selectWithin","nextHtml","prevHtml","iframeWidth","iframeHeight","iframeMaxWidth","iframeMaxHeight","download","counter","appendCounterTo","swipeThreshold","enableSwipe","enableDrag","dynamic","dynamicEl","extraProps","exThumbImage","isMobile","mobileSettings","plugins","strings","closeGallery","toggleMaximize","previousSlide","nextSlide","playVideo","mediaLoadingFailed","lgQuery","cssVenderPrefixes","_getSelector","firstElement","_getFirstEl","generateUUID","r","querySelectorAll","_each","_setCssVendorPrefix","el","cssProperty","group1","isEventMatched","eventName","eventNamespace","attr","setAttribute","find","$LG","first","eq","parentElement","removeAttr","attrs","removeAttribute","wrap","wrapper","parentNode","insertBefore","removeChild","appendChild","classList","removeClass","hasClass","contains","hasAttribute","attribute","toggleClass","css","events","eventListeners","once","trigger","detail","customEvent","CustomEvent","dispatchEvent","load","fetch","text","html","innerHTML","append","insertAdjacentHTML","prepend","empty","scrollLeft","pageXOffset","getBoundingClientRect","bodyMarginLeft","marginLeft","currentStyle","paddingLeft","paddingRight","paddingTop","paddingBottom","bubbles","cancelable","evt","createEvent","initCustomEvent","msMatchesSelector","webkitMatchesSelector","defaultDynamicOptions","convertToData","utils","spacing","defaultLgSize","lgSize","isResponsiveSizes","wWidth","innerWidth","size_1","parseInt","cWidth","cHeight","maxWidth","maxHeight","imageSize","LGel","containerRect","wHeight","elWidth","elHeight","elStyle","borderLeft","borderTop","iframeTitle","altAttr","srcset","sources","imgMarkup","sourceTag","srcItms","rsWidth","rsSrc","_src","img","complete","naturalWidth","_poster","dummyImg","videoContStyle","playVideoString","_isVideo","youtube","vimeo","elements","items","dynamicElements","availableDynamicOptions","il","jl","__spreadArrays","specified","dynamicAttr","currentItem","subHtml","isHTML5VIdeo","html5","wistia","lgId","LightGallery","lgOpened","lGalleryOn","lgBusy","currentItemsInDom","prevScrollTop","bodyPaddingRight","isDummyImageRemoved","dragOrSwipeEnabled","mediaContainerPosition","generateSettings","buildModules","settings","galleryItems","getItems","normalizeSettings","init","validateLicense","addSlideVideoInfo","buildStructure","triggerPosterClick","arrow","openGalleryOnItemClick","_loop_1","this_1","$element","uuid","currentItemIndex","openGallery","plugin","getSlideItem","getSlideItemId","getIdName","getElementById","manageSingleSlideClassName","outer","$container","subHtmlCont","addClasses","containerClassName","closeIcon","maximizeIcon","template","$lgComponents","$backdrop","$inner","$content","$toolbar","outerClassNames","refreshOnResize","hideBars","manageCloseGallery","initModules","__slideVideoInfo","getMediaContainerPosition","top_1","currentImageSize","resizeVideoSlide","getDummyImgStyles","lgVideoStyle","getVideoContStyle","updateSlides","currentSrc","updateControls","_index","galleryItem","itemIndex","organizeSlideItems","loadContent","updateCurrentCounter","shouldHideScrollbar","bodyRect","scrollbarWidth","resetScrollBar","itemsToBeInsertedToDom","getItemsToBeInsertedToDom","addHtml","transform","setMediaContainerPosition","timeout","currentSlide_1","slide","captionHeight","thumbContainer","hideBarTimeout","initPictureFill","$img","picturefill","counterHtml","subHtmlUrl","fL","currentSlide","getDummyImageContent","$currentSlide","$currentItem","_dummyImgSrc","dummyImgContent","setImgMarkup","currentGalleryItem","isFirstSlideWithZoomAnimation","onSlideObjectLoad","$slide","isHTML5VideoWithoutPoster","onLoad","onError","mediaObject","onLgObjectLoad","isFirstSlide","triggerSlideItemLoad","_speed","getSlideType","poster","video","rec","_html5Video","responsive","srcDyItms","videoInfo","iframe","top_2","videoSize","markup","html5Video","hasPoster","loadContentOnFirstSlideLoad","numberOfItems","possibleNumberOfItems","prevIndexItem","_element","idx","numberOfExistingItems","getPreviousSlideIndex","currentItemId","setDownloadValue","downloadUrl","$download","makeSlideAnimation","currentSlideItem","previousSlideItem","fromTouch","fromThumb","numberOfGalleryItems","previousSlideItem_1","top_3","arrowDisable","touchPrev","touchNext","updateCounterTotal","touchMove","startCoords","endCoords","distanceX","pageX","distanceY","pageY","allowSwipe","swipeDirection","setTranslate","offsetWidth","gutter","scale","touchEnd","distance","triggerClick","distanceAbs","goToNextSlide","goToPrevSlide","isPosterElement","isMoved","isSwiping","$item","touches","touchAction","manageSwipeClass","isDraging","_touchNext","_touchPrev","_loop","keyCode","$prev","$next","$el","xValue","yValue","scaleX","scaleY","lastCall","deltaY","getTime","isSlideElement","playButton","invalidateItems","focus","preventScroll","focusableEls","firstFocusableEl","lastFocusableEl","shiftKey","activeElement","mousedown","force","top_4","destroyModules","removeTimeout","blur","destroy","destroyGallery","closeTimeout","videoSettings","autoplayFirstVideo","youTubePlayerParams","vimeoPlayerParams","wistiaPlayerParams","gotoNextSlideOnVideoEnd","autoplayVideoOnSlide","videojs","videojsTheme","videojsOptions","param","getYouTubeParams","youTubePlayerParamsSettings","slideUrlParams","pair","decodeURIComponent","playerParamsSettings","wmode","autoplay","mute","enablejsapi","core","onHasVideo","loadVideoOnPosterClick","onSlideItemLoad","onBeforeSlide","onAfterSlide","loadAndPlayVideo","appendVideos","pauseVideo","controlVideo","getVideoHtml","videoTitle","commonIframeProps","videoId","youTubeParams","includes","playerParams","defaultParams","urlParams","defaultPlayerParams","isPrivate","getVimeoURLParams","wistiaId","html5VideoMarkup","tracks","trackAttributes","track","videoParams","videoHtml","$videoElement","stopPropagation","Vimeo","Player","_wq","onReady","contentWindow","postMessage","forcePlay","_html","$tempImg","ready","onVideoLoadAfterPosterClick","thumbnailsSettings","thumbnail","animateThumb","currentPagerPosition","alignThumbnails","thumbWidth","thumbHeight","thumbMargin","appendThumbnailsTo","toggleThumb","enableThumbDrag","enableThumbSwipe","thumbnailSwipeThreshold","loadYouTubeThumbnail","youTubeThumbSize","thumbnailPluginStrings","toggleThumbnails","thumbOuterWidth","thumbTotalWidth","translateX","thumbClickable","setAnimateThumbStyles","build","toggleThumbBar","thumbKeyPress","setThumbMarkup","manageActiveClassOnSlideChange","$lgThumb","$target","rebuildThumbnails","thumbOuterClassNames","$thumbOuter","setThumbItemHtml","thumbDragUtils","cords","startX","endX","newTranslateX","startTime","endTime","touchMoveTime","isDragging","onThumbTouchMove","onThumbTouchEnd","targetTouches","getPossibleTransformX","touchDuration","distanceXnew","speedX","getThumbHtml","thumbImg","slideVideoInfo","getThumbItemHtml","thumbList","$thumb","zoomSettings","zoom","infiniteZoom","actualSize","showZoomInOutIcons","actualSizeIcons","zoomIn","zoomOut","enableZoomAfter","zoomPluginStrings","viewActualSize","buildTemplates","zoomIcons","enableZoom","zoomableTimeout","isImageSlide","setZoomEssentials","enableZoomOnSlideItemLoad","getDragCords","getSwipeCords","getDragAllowedAxises","scaleDiff","$image","offsetHeight","allowY","allowX","zoomImage","reposition","resetToMax","originalX","originalY","offsetX","offsetY","positionChanged","dragAllowedAxises","possibleSwipeCords","getPossibleSwipeDragCords","_y","scaleVal","isBeyondPossibleLeft","minX","isBeyondPossibleRight","maxX","isBeyondPossibleTop","minY","isBeyondPossibleBottom","maxY","setZoomStyles","setZoomImageSize","resetImageTranslate","imageReset","actualSizeScale","getCurrentImageActualSizeScale","naturalHeight","ZOOM_TRANSITION_DURATION","$imageWrap","$dummyImage","setActualSize","zoomInProgress","prevScale","getScale","setPageCords","beginZoom","getNaturalWidth","getActualSizeScale","getPageCords","pageCords","manageActualPixelClassNames","resetZoom","tapped","_LGel","setZoomSwipeStyles","zoomDrag","pinchZoom","zoomSwipe","$actualSize","getTouchDistance","sqrt","startDist","pinchStarted","initScale","endDist","_scale","EPSILON","diff","touchendZoom","distanceYnew","speedY","getZoomSwipeCords","diffMinY","diffMaxY","diffMinX","difMaxX","imgRect","imageHeight","imageWidth","l","for","q","u","w","z","A","B","D","isMounted","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","E","F","refs","updater","G","H","isReactComponent","forceUpdate","I","isPureReactComponent","J","K","L","__self","__source","M","$$typeof","_owner","O","Q","R","keyPrefix","count","S","T","U","V","escape","W","aa","X","N","Y","Z","ba","ReactCurrentDispatcher","ReactCurrentBatchConfig","suspense","ReactCurrentOwner","IsSomeRendererActing","Children","toArray","only","Fragment","Profiler","PureComponent","StrictMode","Suspense","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","cloneElement","_calculateChangedBits","_currentValue","_currentValue2","_threadCount","_context","createFactory","createRef","isValidElement","lazy","_ctor","_status","_result","useCallback","useDebugValue","useEffect","useImperativeHandle","useMemo","useReducer","version","da","ea","fa","ha","ia","ja","la","ma","na","oa","currentTarget","ka","pa","qa","ra","sa","extractEvents","eventTypes","ta","phasedRegistrationNames","registrationName","va","wa","dependencies","xa","ya","za","Aa","Ba","Ca","stateNode","Da","Ea","Fa","Ga","Ha","Ia","Ja","Ka","La","Ma","Na","Oa","Pa","Qa","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","sanitizeURL","Ua","Va","xlinkHref","Wa","Xa","Sa","isNaN","Ta","Ra","setAttributeNS","Ya","Za","$a","ab","bb","cb","db","eb","fb","gb","hb","ib","jb","kb","lb","mb","nb","pb","qb","tag","_debugOwner","_debugSource","fileName","lineNumber","return","rb","sb","nodeName","xb","_valueTracker","setValue","stopTracking","tb","yb","checked","zb","defaultChecked","_wrapperState","initialChecked","Ab","initialValue","controlled","Bb","Cb","Db","Eb","Gb","Fb","Hb","selected","defaultSelected","Ib","dangerouslySetInnerHTML","Jb","Kb","Lb","textContent","Mb","Nb","Ob","Pb","Qb","namespaceURI","firstChild","MSApp","execUnsafeLocalFunction","Rb","lastChild","nodeType","nodeValue","Sb","Tb","animationend","animationiteration","animationstart","transitionend","Ub","Vb","Wb","transition","Xb","Yb","Zb","$b","ac","bc","cc","dc","alternate","effectTag","ec","memoizedState","dehydrated","fc","hc","sibling","gc","ic","jc","kc","lc","_dispatchListeners","_dispatchInstances","isPropagationStopped","isPersistent","release","mc","nc","srcElement","correspondingUseElement","oc","pc","qc","topLevelType","nativeEvent","targetInst","ancestors","rc","eventSystemFlags","sc","containerInfo","tc","uc","vc","wc","xc","yc","zc","Ac","Bc","Cc","Dc","Ec","Fc","Gc","Hc","Ic","Kc","blockedOn","Lc","pointerId","Mc","Nc","Pc","unstable_runWithPriority","priority","hydrate","Qc","Rc","Sc","Tc","shift","Uc","unstable_scheduleCallback","unstable_NormalPriority","Vc","Wc","Yc","Zc","$c","ad","bubbled","captured","eventPriority","bd","cd","dd","unstable_UserBlockingPriority","ed","fd","gd","hd","Oc","jd","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","fontWeight","lineClamp","lineHeight","order","orphans","tabSize","widows","zIndex","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","kd","ld","trim","md","setProperty","nd","menuitem","area","br","col","embed","hr","input","keygen","meta","wbr","od","pd","is","qd","rd","sd","td","ud","vd","nextSibling","wd","compareDocumentPosition","xd","HTMLIFrameElement","yd","contentEditable","Bd","Cd","Dd","Ed","Fd","autoFocus","Gd","__html","Hd","Id","Jd","Kd","previousSibling","Ld","Md","Nd","Od","Pd","Qd","Rd","Sd","Td","dispatchConfig","Ud","_targetInst","Vd","Wd","Xd","Yd","Zd","$d","ae","be","ce","Interface","isDefaultPrevented","defaultPrevented","returnValue","ee","eventPool","fe","destructor","de","getPooled","cancelBubble","persist","eventPhase","isTrusted","ge","he","ie","je","ke","documentMode","le","me","ne","oe","beforeInput","compositionEnd","compositionStart","compositionUpdate","pe","qe","se","ve","locale","which","te","ctrlKey","altKey","metaKey","char","ue","we","date","datetime","email","month","password","range","tel","time","week","xe","ye","change","ze","Ae","Be","Ce","De","Ee","Fe","Ge","detachEvent","He","Ie","attachEvent","Je","Ke","Le","Me","_isInputEventSupported","Ne","view","Oe","Alt","Control","Meta","Shift","Pe","getModifierState","Qe","Re","Se","Te","Ue","Ve","clientX","clientY","button","buttons","relatedTarget","fromElement","toElement","movementX","movementY","We","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","Xe","mouseEnter","mouseLeave","pointerEnter","pointerLeave","Ye","parentWindow","$e","af","bf","cf","df","select","ef","ff","gf","hf","jf","selectionStart","selectionEnd","anchorNode","getSelection","anchorOffset","focusNode","focusOffset","kf","onSelect","lf","animationName","elapsedTime","pseudoElement","mf","clipboardData","nf","of","charCode","pf","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","qf","rf","sf","dataTransfer","tf","changedTouches","uf","vf","deltaX","wheelDeltaX","wheelDeltaY","wheelDelta","deltaZ","deltaMode","wf","SimpleEventPlugin","EnterLeaveEventPlugin","ChangeEventPlugin","SelectEventPlugin","BeforeInputEventPlugin","yf","zf","Af","Bf","Cf","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Df","Ef","Ff","Gf","__reactInternalMemoizedMergedChildContext","Hf","If","Jf","Kf","unstable_cancelCallback","Lf","unstable_requestPaint","Mf","unstable_now","Nf","unstable_getCurrentPriorityLevel","Of","unstable_ImmediatePriority","Pf","Qf","Rf","unstable_LowPriority","Sf","unstable_IdlePriority","Tf","Uf","unstable_shouldYield","Vf","Wf","Xf","Yf","Zf","$f","ag","bg","cg","dg","eg","fg","gg","hg","ig","jg","kg","lg","mg","ng","og","pg","childExpirationTime","qg","firstContext","expirationTime","rg","sg","responders","tg","ug","updateQueue","baseState","baseQueue","shared","pending","effects","vg","wg","suspenseConfig","payload","xg","yg","zg","ca","Ag","Bg","Cg","Dg","Eg","Fg","Jg","_reactInternalFiber","Gg","Hg","Ig","Kg","shouldComponentUpdate","Lg","Mg","UNSAFE_componentWillReceiveProps","Ng","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","Og","Pg","_stringRef","Qg","Rg","lastEffect","nextEffect","firstEffect","Sg","Tg","elementType","Ug","implementation","Vg","Wg","Xg","Yg","Zg","$g","ah","bh","ch","dh","tagName","eh","fh","gh","hh","memoizedProps","revealOrder","ih","responder","jh","kh","lh","mh","nh","oh","ph","qh","rh","sh","th","queue","uh","vh","wh","lastRenderedReducer","eagerReducer","eagerState","lastRenderedState","dispatch","xh","yh","zh","Ah","deps","Bh","Ch","Dh","Eh","Fh","Gh","Hh","Ih","Jh","Kh","Lh","Mh","Nh","readContext","useResponder","useDeferredValue","useTransition","Oh","Ph","Qh","Rh","Sh","Th","pendingProps","Uh","Vh","Wh","Xh","Yh","Zh","$h","ai","bi","ci","di","ei","fi","UNSAFE_componentWillUpdate","componentWillUpdate","gi","hi","pendingContext","ni","pi","qi","ii","retryTime","ji","fallback","unstable_avoidThisFallback","ki","li","isBackwards","rendering","renderingStartTime","tail","tailExpiration","tailMode","mi","ri","si","wasMultiple","multiple","onclick","createElementNS","createTextNode","ti","ui","vi","wi","xi","yi","zi","Ai","stack","Bi","WeakSet","Ci","Fi","Ei","Gi","__reactInternalSnapshotBeforeUpdate","Hi","Ii","Ji","Ki","Li","Di","Mi","Ni","Oi","Pi","Qi","Ri","_reactRootContainer","Si","Ti","Ui","Vi","Wi","Xi","Yi","Zi","$i","componentDidCatch","aj","componentStack","Rj","bj","ceil","cj","dj","fj","gj","kj","lj","mj","nj","oj","qj","rj","sj","tj","uj","vj","wj","timeoutMs","xj","yj","zj","lastExpiredTime","Aj","firstPendingTime","lastPingedTime","nextKnownPendingLevel","callbackExpirationTime","callbackPriority","callbackNode","Bj","Cj","Dj","Ej","Fj","Gj","Hj","finishedWork","finishedExpirationTime","lastSuspendedTime","Ij","timeoutHandle","Jj","busyMinDurationMs","busyDelayMs","Kj","Mj","Nj","pingCache","Oj","ub","Pj","Xc","Qj","Sj","firstSuspendedTime","rangeCount","wb","activeElementDetached","focusedElem","selectionRange","Tj","createRange","setStart","removeAllRanges","addRange","setEnd","vb","Uj","Vj","Wj","hidden","ob","Xj","unstable_observedBits","Zj","pendingChildren","ak","bk","ck","dk","ek","fk","Jc","_internalRoot","gk","ik","hk","jk","kk","unmount","form","Lj","lk","Events","findFiberByHostInstance","isDisabled","supportsFiber","inject","onCommitFiberRoot","onCommitFiberUnmount","Yj","overrideHookState","overrideProps","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","bundleType","rendererPackageName","createPortal","findDOMNode","flushSync","unmountComponentAtNode","unstable_batchedUpdates","unstable_createPortal","unstable_renderSubtreeIntoContainer","MessageChannel","unstable_forceFrameRate","performance","port2","port1","onmessage","sortIndex","priorityLevel","unstable_Profiling","unstable_continueExecution","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_wrapCallback","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","currentQueue","draining","queueIndex","cleanUpNextTick","drainQueue","len","run","marker","runClearTimeout","Item","nextTick","browser","env","argv","versions","addListener","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","binding","cwd","chdir","dir","umask","FUNC_ERROR_TEXT","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","freeGlobal","freeSelf","root","objectToString","nativeMax","nativeMin","debounce","wait","lastArgs","lastThis","maxWait","timerId","lastInvokeTime","leading","maxing","trailing","invokeFunc","leadingEdge","timerExpired","shouldInvoke","timeSinceLastCall","trailingEdge","remainingWait","debounced","isInvoking","toNumber","isObject","cancel","flush","isObjectLike","isSymbol","other","isBinary","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","propName","componentName","propFullName","secret","getShim","ReactPropTypes","symbol","any","instanceOf","objectOf","oneOf","checkPropTypes","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Lazy","Portal","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","typeOf","Container","bsPrefix","fluid","_ref$as","as","suffix","DEVICE_SIZES","Row","noGutters","decoratedBsPrefix","sizePrefix","brkPoint","cols","propValue","infix","Col","spans","span","_propValue$span","FacebookShareButton","quote","hashtag","TwitterShareButton","via","hashtags","related","RedditShareButton","LinkedinShareButton","summary","mini","WhatsappShareButton","separator"],"mappings":"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","file":"static/js/2.b1313c4b.chunk.js","sourcesContent":["'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","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\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}","export default 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}","import getPrototypeOf from \"@babel/runtime/helpers/esm/getPrototypeOf\";\nimport isNativeReflectConstruct from \"@babel/runtime/helpers/esm/isNativeReflectConstruct\";\nimport possibleConstructorReturn from \"@babel/runtime/helpers/esm/possibleConstructorReturn\";\nexport default function _createSuper(Derived) {\n var hasNativeReflectConstruct = isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return possibleConstructorReturn(this, result);\n };\n}","export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"@babel/runtime/helpers/esm/setPrototypeOf\";\nexport default function _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 * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\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 _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };\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 _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 _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _lodashThrottle = require(\"lodash.throttle\");\n\nvar _lodashThrottle2 = _interopRequireDefault(_lodashThrottle);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar ScrollAnimation = (function (_Component) {\n _inherits(ScrollAnimation, _Component);\n\n function ScrollAnimation(props) {\n _classCallCheck(this, ScrollAnimation);\n\n _get(Object.getPrototypeOf(ScrollAnimation.prototype), \"constructor\", this).call(this, props);\n this.serverSide = typeof window === \"undefined\";\n this.listener = (0, _lodashThrottle2[\"default\"])(this.handleScroll.bind(this), 50);\n this.visibility = {\n onScreen: false,\n inViewport: false\n };\n\n this.state = {\n classes: \"animated\",\n style: {\n animationDuration: this.props.duration + \"s\",\n opacity: this.props.initiallyVisible ? 1 : 0\n }\n };\n }\n\n _createClass(ScrollAnimation, [{\n key: \"getElementTop\",\n value: function getElementTop(elm) {\n var yPos = 0;\n while (elm && elm.offsetTop !== undefined && elm.clientTop !== undefined) {\n yPos += elm.offsetTop + elm.clientTop;\n elm = elm.offsetParent;\n }\n return yPos;\n }\n }, {\n key: \"getScrollPos\",\n value: function getScrollPos() {\n if (this.scrollableParent.pageYOffset !== undefined) {\n return this.scrollableParent.pageYOffset;\n }\n return this.scrollableParent.scrollTop;\n }\n }, {\n key: \"getScrollableParentHeight\",\n value: function getScrollableParentHeight() {\n if (this.scrollableParent.innerHeight !== undefined) {\n return this.scrollableParent.innerHeight;\n }\n return this.scrollableParent.clientHeight;\n }\n }, {\n key: \"getViewportTop\",\n value: function getViewportTop() {\n return this.getScrollPos() + this.props.offset;\n }\n }, {\n key: \"getViewportBottom\",\n value: function getViewportBottom() {\n return this.getScrollPos() + this.getScrollableParentHeight() - this.props.offset;\n }\n }, {\n key: \"isInViewport\",\n value: function isInViewport(y) {\n return y >= this.getViewportTop() && y <= this.getViewportBottom();\n }\n }, {\n key: \"isAboveViewport\",\n value: function isAboveViewport(y) {\n return y < this.getViewportTop();\n }\n }, {\n key: \"isBelowViewport\",\n value: function isBelowViewport(y) {\n return y > this.getViewportBottom();\n }\n }, {\n key: \"inViewport\",\n value: function inViewport(elementTop, elementBottom) {\n return this.isInViewport(elementTop) || this.isInViewport(elementBottom) || this.isAboveViewport(elementTop) && this.isBelowViewport(elementBottom);\n }\n }, {\n key: \"onScreen\",\n value: function onScreen(elementTop, elementBottom) {\n return !this.isAboveScreen(elementBottom) && !this.isBelowScreen(elementTop);\n }\n }, {\n key: \"isAboveScreen\",\n value: function isAboveScreen(y) {\n return y < this.getScrollPos();\n }\n }, {\n key: \"isBelowScreen\",\n value: function isBelowScreen(y) {\n return y > this.getScrollPos() + this.getScrollableParentHeight();\n }\n }, {\n key: \"getVisibility\",\n value: function getVisibility() {\n var elementTop = this.getElementTop(this.node) - this.getElementTop(this.scrollableParent);\n var elementBottom = elementTop + this.node.clientHeight;\n return {\n inViewport: this.inViewport(elementTop, elementBottom),\n onScreen: this.onScreen(elementTop, elementBottom)\n };\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (!this.serverSide) {\n var parentSelector = this.props.scrollableParentSelector;\n this.scrollableParent = parentSelector ? document.querySelector(parentSelector) : window;\n if (this.scrollableParent && this.scrollableParent.addEventListener) {\n this.scrollableParent.addEventListener(\"scroll\", this.listener);\n } else {\n console.warn(\"Cannot find element by locator: \" + this.props.scrollableParentSelector);\n }\n if (this.props.animatePreScroll) {\n this.handleScroll();\n }\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n clearTimeout(this.delayedAnimationTimeout);\n clearTimeout(this.callbackTimeout);\n if (window && window.removeEventListener) {\n window.removeEventListener(\"scroll\", this.listener);\n }\n }\n }, {\n key: \"visibilityHasChanged\",\n value: function visibilityHasChanged(previousVis, currentVis) {\n return previousVis.inViewport !== currentVis.inViewport || previousVis.onScreen !== currentVis.onScreen;\n }\n }, {\n key: \"animate\",\n value: function animate(animation, callback) {\n var _this = this;\n\n this.delayedAnimationTimeout = setTimeout(function () {\n _this.animating = true;\n _this.setState({\n classes: \"animated \" + animation,\n style: {\n animationDuration: _this.props.duration + \"s\"\n }\n });\n _this.callbackTimeout = setTimeout(callback, _this.props.duration * 1000);\n }, this.props.delay);\n }\n }, {\n key: \"animateIn\",\n value: function animateIn(callback) {\n var _this2 = this;\n\n this.animate(this.props.animateIn, function () {\n if (!_this2.props.animateOnce) {\n _this2.setState({\n style: {\n animationDuration: _this2.props.duration + \"s\",\n opacity: 1\n }\n });\n _this2.animating = false;\n }\n var vis = _this2.getVisibility();\n if (callback) {\n callback(vis);\n }\n });\n }\n }, {\n key: \"animateOut\",\n value: function animateOut(callback) {\n var _this3 = this;\n\n this.animate(this.props.animateOut, function () {\n _this3.setState({\n classes: \"animated\",\n style: {\n animationDuration: _this3.props.duration + \"s\",\n opacity: 0\n }\n });\n var vis = _this3.getVisibility();\n if (vis.inViewport && _this3.props.animateIn) {\n _this3.animateIn(_this3.props.afterAnimatedIn);\n } else {\n _this3.animating = false;\n }\n\n if (callback) {\n callback(vis);\n }\n });\n }\n }, {\n key: \"handleScroll\",\n value: function handleScroll() {\n if (!this.animating) {\n var currentVis = this.getVisibility();\n if (this.visibilityHasChanged(this.visibility, currentVis)) {\n clearTimeout(this.delayedAnimationTimeout);\n if (!currentVis.onScreen) {\n this.setState({\n classes: \"animated\",\n style: {\n animationDuration: this.props.duration + \"s\",\n opacity: this.props.initiallyVisible ? 1 : 0\n }\n });\n } else if (currentVis.inViewport && this.props.animateIn) {\n this.animateIn(this.props.afterAnimatedIn);\n } else if (currentVis.onScreen && this.visibility.inViewport && this.props.animateOut && this.state.style.opacity === 1) {\n this.animateOut(this.props.afterAnimatedOut);\n }\n this.visibility = currentVis;\n }\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this4 = this;\n\n var classes = this.props.className ? this.props.className + \" \" + this.state.classes : this.state.classes;\n return _react2[\"default\"].createElement(\n \"div\",\n { ref: function (node) {\n _this4.node = node;\n }, className: classes, style: Object.assign({}, this.state.style, this.props.style) },\n this.props.children\n );\n }\n }]);\n\n return ScrollAnimation;\n})(_react.Component);\n\nexports[\"default\"] = ScrollAnimation;\n\nScrollAnimation.defaultProps = {\n offset: 150,\n duration: 1,\n initiallyVisible: false,\n delay: 0,\n animateOnce: false,\n animatePreScroll: true\n};\n\nScrollAnimation.propTypes = {\n animateIn: _propTypes2[\"default\"].string,\n animateOut: _propTypes2[\"default\"].string,\n offset: _propTypes2[\"default\"].number,\n duration: _propTypes2[\"default\"].number,\n delay: _propTypes2[\"default\"].number,\n initiallyVisible: _propTypes2[\"default\"].bool,\n animateOnce: _propTypes2[\"default\"].bool,\n style: _propTypes2[\"default\"].object,\n scrollableParentSelector: _propTypes2[\"default\"].string,\n className: _propTypes2[\"default\"].string,\n animatePreScroll: _propTypes2[\"default\"].bool\n};\nmodule.exports = exports[\"default\"];","export default function _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}","import createNamedContext from \"./createNameContext\";\n\nconst historyContext = /*#__PURE__*/ createNamedContext(\"Router-History\");\nexport default historyContext;\n","// TODO: Replace with React.createContext once we can assume React 16+\nimport createContext from \"mini-create-react-context\";\n\nconst createNamedContext = name => {\n const context = createContext();\n context.displayName = name;\n\n return context;\n};\n\nexport default createNamedContext;\n","// TODO: Replace with React.createContext once we can assume React 16+\nimport createContext from \"mini-create-react-context\";\n\nconst createNamedContext = name => {\n const context = createContext();\n context.displayName = name;\n\n return context;\n};\n\nconst context = /*#__PURE__*/ createNamedContext(\"Router\");\nexport default context;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\nimport HistoryContext from \"./HistoryContext.js\";\nimport RouterContext from \"./RouterContext.js\";\n\n/**\n * The public API for putting history on context.\n */\nclass Router extends React.Component {\n static computeRootMatch(pathname) {\n return { path: \"/\", url: \"/\", params: {}, isExact: pathname === \"/\" };\n }\n\n constructor(props) {\n super(props);\n\n this.state = {\n location: props.history.location\n };\n\n // This is a bit of a hack. We have to start listening for location\n // changes here in the constructor in case there are any s\n // on the initial render. If there are, they will replace/push when\n // they mount and since cDM fires in children before parents, we may\n // get a new location before the is mounted.\n this._isMounted = false;\n this._pendingLocation = null;\n\n if (!props.staticContext) {\n this.unlisten = props.history.listen(location => {\n if (this._isMounted) {\n this.setState({ location });\n } else {\n this._pendingLocation = location;\n }\n });\n }\n }\n\n componentDidMount() {\n this._isMounted = true;\n\n if (this._pendingLocation) {\n this.setState({ location: this._pendingLocation });\n }\n }\n\n componentWillUnmount() {\n if (this.unlisten) this.unlisten();\n }\n\n render() {\n return (\n \n \n \n );\n }\n}\n\nif (__DEV__) {\n Router.propTypes = {\n children: PropTypes.node,\n history: PropTypes.object.isRequired,\n staticContext: PropTypes.object\n };\n\n Router.prototype.componentDidUpdate = function(prevProps) {\n warning(\n prevProps.history === this.props.history,\n \"You cannot change \"\n );\n };\n}\n\nexport default Router;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createMemoryHistory as createHistory } from \"history\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router.js\";\n\n/**\n * The public API for a that stores location in memory.\n */\nclass MemoryRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n MemoryRouter.propTypes = {\n initialEntries: PropTypes.array,\n initialIndex: PropTypes.number,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number,\n children: PropTypes.node\n };\n\n MemoryRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { MemoryRouter as Router }`.\"\n );\n };\n}\n\nexport default MemoryRouter;\n","import React from \"react\";\n\nclass Lifecycle extends React.Component {\n componentDidMount() {\n if (this.props.onMount) this.props.onMount.call(this, this);\n }\n\n componentDidUpdate(prevProps) {\n if (this.props.onUpdate) this.props.onUpdate.call(this, this, prevProps);\n }\n\n componentWillUnmount() {\n if (this.props.onUnmount) this.props.onUnmount.call(this, this);\n }\n\n render() {\n return null;\n }\n}\n\nexport default Lifecycle;\n","import pathToRegexp from \"path-to-regexp\";\n\nconst cache = {};\nconst cacheLimit = 10000;\nlet cacheCount = 0;\n\nfunction compilePath(path) {\n if (cache[path]) return cache[path];\n\n const generator = pathToRegexp.compile(path);\n\n if (cacheCount < cacheLimit) {\n cache[path] = generator;\n cacheCount++;\n }\n\n return generator;\n}\n\n/**\n * Public API for generating a URL pathname from a path and parameters.\n */\nfunction generatePath(path = \"/\", params = {}) {\n return path === \"/\" ? path : compilePath(path)(params, { pretty: true });\n}\n\nexport default generatePath;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createLocation, locationsAreEqual } from \"history\";\nimport invariant from \"tiny-invariant\";\n\nimport Lifecycle from \"./Lifecycle.js\";\nimport RouterContext from \"./RouterContext.js\";\nimport generatePath from \"./generatePath.js\";\n\n/**\n * The public API for navigating programmatically with a component.\n */\nfunction Redirect({ computedMatch, to, push = false }) {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const { history, staticContext } = context;\n\n const method = push ? history.push : history.replace;\n const location = createLocation(\n computedMatch\n ? typeof to === \"string\"\n ? generatePath(to, computedMatch.params)\n : {\n ...to,\n pathname: generatePath(to.pathname, computedMatch.params)\n }\n : to\n );\n\n // When rendering in a static context,\n // set the new location immediately.\n if (staticContext) {\n method(location);\n return null;\n }\n\n return (\n {\n method(location);\n }}\n onUpdate={(self, prevProps) => {\n const prevLocation = createLocation(prevProps.to);\n if (\n !locationsAreEqual(prevLocation, {\n ...location,\n key: prevLocation.key\n })\n ) {\n method(location);\n }\n }}\n to={to}\n />\n );\n }}\n \n );\n}\n\nif (__DEV__) {\n Redirect.propTypes = {\n push: PropTypes.bool,\n from: PropTypes.string,\n to: PropTypes.oneOfType([PropTypes.string, PropTypes.object]).isRequired\n };\n}\n\nexport default Redirect;\n","import pathToRegexp from \"path-to-regexp\";\n\nconst cache = {};\nconst cacheLimit = 10000;\nlet cacheCount = 0;\n\nfunction compilePath(path, options) {\n const cacheKey = `${options.end}${options.strict}${options.sensitive}`;\n const pathCache = cache[cacheKey] || (cache[cacheKey] = {});\n\n if (pathCache[path]) return pathCache[path];\n\n const keys = [];\n const regexp = pathToRegexp(path, keys, options);\n const result = { regexp, keys };\n\n if (cacheCount < cacheLimit) {\n pathCache[path] = result;\n cacheCount++;\n }\n\n return result;\n}\n\n/**\n * Public API for matching a URL pathname to a path.\n */\nfunction matchPath(pathname, options = {}) {\n if (typeof options === \"string\" || Array.isArray(options)) {\n options = { path: options };\n }\n\n const { path, exact = false, strict = false, sensitive = false } = options;\n\n const paths = [].concat(path);\n\n return paths.reduce((matched, path) => {\n if (!path && path !== \"\") return null;\n if (matched) return matched;\n\n const { regexp, keys } = compilePath(path, {\n end: exact,\n strict,\n sensitive\n });\n const match = regexp.exec(pathname);\n\n if (!match) return null;\n\n const [url, ...values] = match;\n const isExact = pathname === url;\n\n if (exact && !isExact) return null;\n\n return {\n path, // the path used to match\n url: path === \"/\" && url === \"\" ? \"/\" : url, // the matched portion of the URL\n isExact, // whether or not we matched exactly\n params: keys.reduce((memo, key, index) => {\n memo[key.name] = values[index];\n return memo;\n }, {})\n };\n }, null);\n}\n\nexport default matchPath;\n","import React from \"react\";\nimport { isValidElementType } from \"react-is\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport matchPath from \"./matchPath.js\";\n\nfunction isEmptyChildren(children) {\n return React.Children.count(children) === 0;\n}\n\nfunction evalChildrenDev(children, props, path) {\n const value = children(props);\n\n warning(\n value !== undefined,\n \"You returned `undefined` from the `children` function of \" +\n `, but you ` +\n \"should have returned a React element or `null`\"\n );\n\n return value || null;\n}\n\n/**\n * The public API for matching a single path and rendering.\n */\nclass Route extends React.Component {\n render() {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const location = this.props.location || context.location;\n const match = this.props.computedMatch\n ? this.props.computedMatch // already computed the match for us\n : this.props.path\n ? matchPath(location.pathname, this.props)\n : context.match;\n\n const props = { ...context, location, match };\n\n let { children, component, render } = this.props;\n\n // Preact uses an empty array as children by\n // default, so use null if that's the case.\n if (Array.isArray(children) && children.length === 0) {\n children = null;\n }\n\n return (\n \n {props.match\n ? children\n ? typeof children === \"function\"\n ? __DEV__\n ? evalChildrenDev(children, props, this.props.path)\n : children(props)\n : children\n : component\n ? React.createElement(component, props)\n : render\n ? render(props)\n : null\n : typeof children === \"function\"\n ? __DEV__\n ? evalChildrenDev(children, props, this.props.path)\n : children(props)\n : null}\n \n );\n }}\n \n );\n }\n}\n\nif (__DEV__) {\n Route.propTypes = {\n children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n component: (props, propName) => {\n if (props[propName] && !isValidElementType(props[propName])) {\n return new Error(\n `Invalid prop 'component' supplied to 'Route': the prop is not a valid React component`\n );\n }\n },\n exact: PropTypes.bool,\n location: PropTypes.object,\n path: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string)\n ]),\n render: PropTypes.func,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool\n };\n\n Route.prototype.componentDidMount = function() {\n warning(\n !(\n this.props.children &&\n !isEmptyChildren(this.props.children) &&\n this.props.component\n ),\n \"You should not use and in the same route; will be ignored\"\n );\n\n warning(\n !(\n this.props.children &&\n !isEmptyChildren(this.props.children) &&\n this.props.render\n ),\n \"You should not use and in the same route; will be ignored\"\n );\n\n warning(\n !(this.props.component && this.props.render),\n \"You should not use and in the same route; will be ignored\"\n );\n };\n\n Route.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Route;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createLocation, createPath } from \"history\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router.js\";\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === \"/\" ? path : \"/\" + path;\n}\n\nfunction addBasename(basename, location) {\n if (!basename) return location;\n\n return {\n ...location,\n pathname: addLeadingSlash(basename) + location.pathname\n };\n}\n\nfunction stripBasename(basename, location) {\n if (!basename) return location;\n\n const base = addLeadingSlash(basename);\n\n if (location.pathname.indexOf(base) !== 0) return location;\n\n return {\n ...location,\n pathname: location.pathname.substr(base.length)\n };\n}\n\nfunction createURL(location) {\n return typeof location === \"string\" ? location : createPath(location);\n}\n\nfunction staticHandler(methodName) {\n return () => {\n invariant(false, \"You cannot %s with \", methodName);\n };\n}\n\nfunction noop() {}\n\n/**\n * The public top-level API for a \"static\" , so-called because it\n * can't actually change the current location. Instead, it just records\n * location changes in a context object. Useful mainly in testing and\n * server-rendering scenarios.\n */\nclass StaticRouter extends React.Component {\n navigateTo(location, action) {\n const { basename = \"\", context = {} } = this.props;\n context.action = action;\n context.location = addBasename(basename, createLocation(location));\n context.url = createURL(context.location);\n }\n\n handlePush = location => this.navigateTo(location, \"PUSH\");\n handleReplace = location => this.navigateTo(location, \"REPLACE\");\n handleListen = () => noop;\n handleBlock = () => noop;\n\n render() {\n const { basename = \"\", context = {}, location = \"/\", ...rest } = this.props;\n\n const history = {\n createHref: path => addLeadingSlash(basename + createURL(path)),\n action: \"POP\",\n location: stripBasename(basename, createLocation(location)),\n push: this.handlePush,\n replace: this.handleReplace,\n go: staticHandler(\"go\"),\n goBack: staticHandler(\"goBack\"),\n goForward: staticHandler(\"goForward\"),\n listen: this.handleListen,\n block: this.handleBlock\n };\n\n return ;\n }\n}\n\nif (__DEV__) {\n StaticRouter.propTypes = {\n basename: PropTypes.string,\n context: PropTypes.object,\n location: PropTypes.oneOfType([PropTypes.string, PropTypes.object])\n };\n\n StaticRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { StaticRouter as Router }`.\"\n );\n };\n}\n\nexport default StaticRouter;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport matchPath from \"./matchPath.js\";\n\n/**\n * The public API for rendering the first that matches.\n */\nclass Switch extends React.Component {\n render() {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const location = this.props.location || context.location;\n\n let element, match;\n\n // We use React.Children.forEach instead of React.Children.toArray().find()\n // here because toArray adds keys to all child elements and we do not want\n // to trigger an unmount/remount for two s that render the same\n // component at different URLs.\n React.Children.forEach(this.props.children, child => {\n if (match == null && React.isValidElement(child)) {\n element = child;\n\n const path = child.props.path || child.props.from;\n\n match = path\n ? matchPath(location.pathname, { ...child.props, path })\n : context.match;\n }\n });\n\n return match\n ? React.cloneElement(element, { location, computedMatch: match })\n : null;\n }}\n \n );\n }\n}\n\nif (__DEV__) {\n Switch.propTypes = {\n children: PropTypes.node,\n location: PropTypes.object\n };\n\n Switch.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Switch;\n","import React from \"react\";\nimport invariant from \"tiny-invariant\";\n\nimport Context from \"./RouterContext.js\";\nimport HistoryContext from \"./HistoryContext.js\";\nimport matchPath from \"./matchPath.js\";\n\nconst useContext = React.useContext;\n\nexport function useHistory() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useHistory()\"\n );\n }\n\n return useContext(HistoryContext);\n}\n\nexport function useLocation() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useLocation()\"\n );\n }\n\n return useContext(Context).location;\n}\n\nexport function useParams() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useParams()\"\n );\n }\n\n const match = useContext(Context).match;\n return match ? match.params : {};\n}\n\nexport function useRouteMatch(path) {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useRouteMatch()\"\n );\n }\n\n const location = useLocation();\n const match = useContext(Context).match;\n\n return path ? matchPath(location.pathname, path) : match;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction stringifiable(obj) {\n // Safely stringify Object.create(null)\n /* istanbul ignore next */\n return typeof obj === 'object' && !('toString' in obj) ?\n Object.prototype.toString.call(obj).slice(8, -1) :\n obj;\n}\nvar isProduction = typeof process === 'object' && process.env.NODE_ENV === 'production';\nfunction invariant(condition, message) {\n if (!condition) {\n /* istanbul ignore next */\n if (isProduction) {\n throw new Error('Invariant failed');\n }\n throw new Error(message());\n }\n}\nexports.invariant = invariant;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar splice = Array.prototype.splice;\nvar toString = Object.prototype.toString;\nfunction type(obj) {\n return toString.call(obj).slice(8, -1);\n}\nvar assign = Object.assign || /* istanbul ignore next */ (function (target, source) {\n getAllKeys(source).forEach(function (key) {\n if (hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n });\n return target;\n});\nvar getAllKeys = typeof Object.getOwnPropertySymbols === 'function'\n ? function (obj) { return Object.keys(obj).concat(Object.getOwnPropertySymbols(obj)); }\n /* istanbul ignore next */\n : function (obj) { return Object.keys(obj); };\nfunction copy(object) {\n return Array.isArray(object)\n ? assign(object.constructor(object.length), object)\n : (type(object) === 'Map')\n ? new Map(object)\n : (type(object) === 'Set')\n ? new Set(object)\n : (object && typeof object === 'object')\n ? assign(Object.create(Object.getPrototypeOf(object)), object)\n /* istanbul ignore next */\n : object;\n}\nvar Context = /** @class */ (function () {\n function Context() {\n this.commands = assign({}, defaultCommands);\n this.update = this.update.bind(this);\n // Deprecated: update.extend, update.isEquals and update.newContext\n this.update.extend = this.extend = this.extend.bind(this);\n this.update.isEquals = function (x, y) { return x === y; };\n this.update.newContext = function () { return new Context().update; };\n }\n Object.defineProperty(Context.prototype, \"isEquals\", {\n get: function () {\n return this.update.isEquals;\n },\n set: function (value) {\n this.update.isEquals = value;\n },\n enumerable: true,\n configurable: true\n });\n Context.prototype.extend = function (directive, fn) {\n this.commands[directive] = fn;\n };\n Context.prototype.update = function (object, $spec) {\n var _this = this;\n var spec = (typeof $spec === 'function') ? { $apply: $spec } : $spec;\n if (!(Array.isArray(object) && Array.isArray(spec))) {\n invariant(!Array.isArray(spec), function () { return \"update(): You provided an invalid spec to update(). The spec may \" +\n \"not contain an array except as the value of $set, $push, $unshift, \" +\n \"$splice or any custom command allowing an array value.\"; });\n }\n invariant(typeof spec === 'object' && spec !== null, function () { return \"update(): You provided an invalid spec to update(). The spec and \" +\n \"every included key path must be plain objects containing one of the \" +\n (\"following commands: \" + Object.keys(_this.commands).join(', ') + \".\"); });\n var nextObject = object;\n getAllKeys(spec).forEach(function (key) {\n if (hasOwnProperty.call(_this.commands, key)) {\n var objectWasNextObject = object === nextObject;\n nextObject = _this.commands[key](spec[key], nextObject, spec, object);\n if (objectWasNextObject && _this.isEquals(nextObject, object)) {\n nextObject = object;\n }\n }\n else {\n var nextValueForKey = type(object) === 'Map'\n ? _this.update(object.get(key), spec[key])\n : _this.update(object[key], spec[key]);\n var nextObjectValue = type(nextObject) === 'Map'\n ? nextObject.get(key)\n : nextObject[key];\n if (!_this.isEquals(nextValueForKey, nextObjectValue)\n || typeof nextValueForKey === 'undefined'\n && !hasOwnProperty.call(object, key)) {\n if (nextObject === object) {\n nextObject = copy(object);\n }\n if (type(nextObject) === 'Map') {\n nextObject.set(key, nextValueForKey);\n }\n else {\n nextObject[key] = nextValueForKey;\n }\n }\n }\n });\n return nextObject;\n };\n return Context;\n}());\nexports.Context = Context;\nvar defaultCommands = {\n $push: function (value, nextObject, spec) {\n invariantPushAndUnshift(nextObject, spec, '$push');\n return value.length ? nextObject.concat(value) : nextObject;\n },\n $unshift: function (value, nextObject, spec) {\n invariantPushAndUnshift(nextObject, spec, '$unshift');\n return value.length ? value.concat(nextObject) : nextObject;\n },\n $splice: function (value, nextObject, spec, originalObject) {\n invariantSplices(nextObject, spec);\n value.forEach(function (args) {\n invariantSplice(args);\n if (nextObject === originalObject && args.length) {\n nextObject = copy(originalObject);\n }\n splice.apply(nextObject, args);\n });\n return nextObject;\n },\n $set: function (value, _nextObject, spec) {\n invariantSet(spec);\n return value;\n },\n $toggle: function (targets, nextObject) {\n invariantSpecArray(targets, '$toggle');\n var nextObjectCopy = targets.length ? copy(nextObject) : nextObject;\n targets.forEach(function (target) {\n nextObjectCopy[target] = !nextObject[target];\n });\n return nextObjectCopy;\n },\n $unset: function (value, nextObject, _spec, originalObject) {\n invariantSpecArray(value, '$unset');\n value.forEach(function (key) {\n if (Object.hasOwnProperty.call(nextObject, key)) {\n if (nextObject === originalObject) {\n nextObject = copy(originalObject);\n }\n delete nextObject[key];\n }\n });\n return nextObject;\n },\n $add: function (values, nextObject, _spec, originalObject) {\n invariantMapOrSet(nextObject, '$add');\n invariantSpecArray(values, '$add');\n if (type(nextObject) === 'Map') {\n values.forEach(function (_a) {\n var key = _a[0], value = _a[1];\n if (nextObject === originalObject && nextObject.get(key) !== value) {\n nextObject = copy(originalObject);\n }\n nextObject.set(key, value);\n });\n }\n else {\n values.forEach(function (value) {\n if (nextObject === originalObject && !nextObject.has(value)) {\n nextObject = copy(originalObject);\n }\n nextObject.add(value);\n });\n }\n return nextObject;\n },\n $remove: function (value, nextObject, _spec, originalObject) {\n invariantMapOrSet(nextObject, '$remove');\n invariantSpecArray(value, '$remove');\n value.forEach(function (key) {\n if (nextObject === originalObject && nextObject.has(key)) {\n nextObject = copy(originalObject);\n }\n nextObject.delete(key);\n });\n return nextObject;\n },\n $merge: function (value, nextObject, _spec, originalObject) {\n invariantMerge(nextObject, value);\n getAllKeys(value).forEach(function (key) {\n if (value[key] !== nextObject[key]) {\n if (nextObject === originalObject) {\n nextObject = copy(originalObject);\n }\n nextObject[key] = value[key];\n }\n });\n return nextObject;\n },\n $apply: function (value, original) {\n invariantApply(value);\n return value(original);\n },\n};\nvar defaultContext = new Context();\nexports.isEquals = defaultContext.update.isEquals;\nexports.extend = defaultContext.extend;\nexports.default = defaultContext.update;\n// @ts-ignore\nexports.default.default = module.exports = assign(exports.default, exports);\n// invariants\nfunction invariantPushAndUnshift(value, spec, command) {\n invariant(Array.isArray(value), function () { return \"update(): expected target of \" + stringifiable(command) + \" to be an array; got \" + stringifiable(value) + \".\"; });\n invariantSpecArray(spec[command], command);\n}\nfunction invariantSpecArray(spec, command) {\n invariant(Array.isArray(spec), function () { return \"update(): expected spec of \" + stringifiable(command) + \" to be an array; got \" + stringifiable(spec) + \". \" +\n \"Did you forget to wrap your parameter in an array?\"; });\n}\nfunction invariantSplices(value, spec) {\n invariant(Array.isArray(value), function () { return \"Expected $splice target to be an array; got \" + stringifiable(value); });\n invariantSplice(spec.$splice);\n}\nfunction invariantSplice(value) {\n invariant(Array.isArray(value), function () { return \"update(): expected spec of $splice to be an array of arrays; got \" + stringifiable(value) + \". \" +\n \"Did you forget to wrap your parameters in an array?\"; });\n}\nfunction invariantApply(fn) {\n invariant(typeof fn === 'function', function () { return \"update(): expected spec of $apply to be a function; got \" + stringifiable(fn) + \".\"; });\n}\nfunction invariantSet(spec) {\n invariant(Object.keys(spec).length === 1, function () { return \"Cannot have more than one key in an object with $set\"; });\n}\nfunction invariantMerge(target, specValue) {\n invariant(specValue && typeof specValue === 'object', function () { return \"update(): $merge expects a spec of type 'object'; got \" + stringifiable(specValue); });\n invariant(target && typeof target === 'object', function () { return \"update(): $merge expects a target of type 'object'; got \" + stringifiable(target); });\n}\nfunction invariantMapOrSet(target, command) {\n var typeOfTarget = type(target);\n invariant(typeOfTarget === 'Map' || typeOfTarget === 'Set', function () { return \"update(): \" + stringifiable(command) + \" expects a target of type Set or Map; got \" + stringifiable(typeOfTarget); });\n}\n","import React from \"react\";\nimport { Router } from \"react-router\";\nimport { createBrowserHistory as createHistory } from \"history\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\n/**\n * The public API for a that uses HTML5 history.\n */\nclass BrowserRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n BrowserRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n forceRefresh: PropTypes.bool,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number\n };\n\n BrowserRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { BrowserRouter as Router }`.\"\n );\n };\n}\n\nexport default BrowserRouter;\n","import React from \"react\";\nimport { Router } from \"react-router\";\nimport { createHashHistory as createHistory } from \"history\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\n/**\n * The public API for a that uses window.location.hash.\n */\nclass HashRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n HashRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n getUserConfirmation: PropTypes.func,\n hashType: PropTypes.oneOf([\"hashbang\", \"noslash\", \"slash\"])\n };\n\n HashRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { HashRouter as Router }`.\"\n );\n };\n}\n\nexport default HashRouter;\n","import { createLocation } from \"history\";\n\nexport const resolveToLocation = (to, currentLocation) =>\n typeof to === \"function\" ? to(currentLocation) : to;\n\nexport const normalizeToLocation = (to, currentLocation) => {\n return typeof to === \"string\"\n ? createLocation(to, null, null, currentLocation)\n : to;\n};\n","import React from \"react\";\nimport { __RouterContext as RouterContext } from \"react-router\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport {\n resolveToLocation,\n normalizeToLocation\n} from \"./utils/locationUtils.js\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction isModifiedEvent(event) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nconst LinkAnchor = forwardRef(\n (\n {\n innerRef, // TODO: deprecate\n navigate,\n onClick,\n ...rest\n },\n forwardedRef\n ) => {\n const { target } = rest;\n\n let props = {\n ...rest,\n onClick: event => {\n try {\n if (onClick) onClick(event);\n } catch (ex) {\n event.preventDefault();\n throw ex;\n }\n\n if (\n !event.defaultPrevented && // onClick prevented default\n event.button === 0 && // ignore everything but left clicks\n (!target || target === \"_self\") && // let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // ignore clicks with modifier keys\n ) {\n event.preventDefault();\n navigate();\n }\n }\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.ref = innerRef;\n }\n\n /* eslint-disable-next-line jsx-a11y/anchor-has-content */\n return ;\n }\n);\n\nif (__DEV__) {\n LinkAnchor.displayName = \"LinkAnchor\";\n}\n\n/**\n * The public API for rendering a history-aware .\n */\nconst Link = forwardRef(\n (\n {\n component = LinkAnchor,\n replace,\n to,\n innerRef, // TODO: deprecate\n ...rest\n },\n forwardedRef\n ) => {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const { history } = context;\n\n const location = normalizeToLocation(\n resolveToLocation(to, context.location),\n context.location\n );\n\n const href = location ? history.createHref(location) : \"\";\n const props = {\n ...rest,\n href,\n navigate() {\n const location = resolveToLocation(to, context.location);\n const method = replace ? history.replace : history.push;\n\n method(location);\n }\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return React.createElement(component, props);\n }}\n \n );\n }\n);\n\nif (__DEV__) {\n const toType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.object,\n PropTypes.func\n ]);\n const refType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.shape({ current: PropTypes.any })\n ]);\n\n Link.displayName = \"Link\";\n\n Link.propTypes = {\n innerRef: refType,\n onClick: PropTypes.func,\n replace: PropTypes.bool,\n target: PropTypes.string,\n to: toType.isRequired\n };\n}\n\nexport default Link;\n","import React from \"react\";\nimport { __RouterContext as RouterContext, matchPath } from \"react-router\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport Link from \"./Link.js\";\nimport {\n resolveToLocation,\n normalizeToLocation\n} from \"./utils/locationUtils.js\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction joinClassnames(...classnames) {\n return classnames.filter(i => i).join(\" \");\n}\n\n/**\n * A wrapper that knows if it's \"active\" or not.\n */\nconst NavLink = forwardRef(\n (\n {\n \"aria-current\": ariaCurrent = \"page\",\n activeClassName = \"active\",\n activeStyle,\n className: classNameProp,\n exact,\n isActive: isActiveProp,\n location: locationProp,\n sensitive,\n strict,\n style: styleProp,\n to,\n innerRef, // TODO: deprecate\n ...rest\n },\n forwardedRef\n ) => {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const currentLocation = locationProp || context.location;\n const toLocation = normalizeToLocation(\n resolveToLocation(to, currentLocation),\n currentLocation\n );\n const { pathname: path } = toLocation;\n // Regex taken from: https://github.com/pillarjs/path-to-regexp/blob/master/index.js#L202\n const escapedPath =\n path && path.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, \"\\\\$1\");\n\n const match = escapedPath\n ? matchPath(currentLocation.pathname, {\n path: escapedPath,\n exact,\n sensitive,\n strict\n })\n : null;\n const isActive = !!(isActiveProp\n ? isActiveProp(match, currentLocation)\n : match);\n\n const className = isActive\n ? joinClassnames(classNameProp, activeClassName)\n : classNameProp;\n const style = isActive ? { ...styleProp, ...activeStyle } : styleProp;\n\n const props = {\n \"aria-current\": (isActive && ariaCurrent) || null,\n className,\n style,\n to: toLocation,\n ...rest\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return ;\n }}\n \n );\n }\n);\n\nif (__DEV__) {\n NavLink.displayName = \"NavLink\";\n\n const ariaCurrentType = PropTypes.oneOf([\n \"page\",\n \"step\",\n \"location\",\n \"date\",\n \"time\",\n \"true\"\n ]);\n\n NavLink.propTypes = {\n ...Link.propTypes,\n \"aria-current\": ariaCurrentType,\n activeClassName: PropTypes.string,\n activeStyle: PropTypes.object,\n className: PropTypes.string,\n exact: PropTypes.bool,\n isActive: PropTypes.func,\n location: PropTypes.object,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool,\n style: PropTypes.object\n };\n}\n\nexport default NavLink;\n","export default 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}","export default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}","var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n if (isProduction) {\n throw new Error(prefix);\n }\n throw new Error(prefix + \": \" + (message || ''));\n}\n\nexport default invariant;\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar AssertionError = /** @class */ (function (_super) {\n __extends(AssertionError, _super);\n function AssertionError(message) {\n var _this = _super.call(this, message) || this;\n _this.name = 'AssertionError';\n return _this;\n }\n return AssertionError;\n}(Error));\nexport default function assert(value, message) {\n if (!value) {\n throw new AssertionError(message);\n }\n}\n","function isAbsolute(pathname) {\n return pathname.charAt(0) === '/';\n}\n\n// About 1.5x faster than the two-arg version of Array#splice()\nfunction spliceOne(list, index) {\n for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1) {\n list[i] = list[k];\n }\n\n list.pop();\n}\n\n// This implementation is based heavily on node's url.parse\nfunction resolvePathname(to, from) {\n if (from === undefined) from = '';\n\n var toParts = (to && to.split('/')) || [];\n var fromParts = (from && from.split('/')) || [];\n\n var isToAbs = to && isAbsolute(to);\n var isFromAbs = from && isAbsolute(from);\n var mustEndAbs = isToAbs || isFromAbs;\n\n if (to && isAbsolute(to)) {\n // to is absolute\n fromParts = toParts;\n } else if (toParts.length) {\n // to is relative, drop the filename\n fromParts.pop();\n fromParts = fromParts.concat(toParts);\n }\n\n if (!fromParts.length) return '/';\n\n var hasTrailingSlash;\n if (fromParts.length) {\n var last = fromParts[fromParts.length - 1];\n hasTrailingSlash = last === '.' || last === '..' || last === '';\n } else {\n hasTrailingSlash = false;\n }\n\n var up = 0;\n for (var i = fromParts.length; i >= 0; i--) {\n var part = fromParts[i];\n\n if (part === '.') {\n spliceOne(fromParts, i);\n } else if (part === '..') {\n spliceOne(fromParts, i);\n up++;\n } else if (up) {\n spliceOne(fromParts, i);\n up--;\n }\n }\n\n if (!mustEndAbs) for (; up--; up) fromParts.unshift('..');\n\n if (\n mustEndAbs &&\n fromParts[0] !== '' &&\n (!fromParts[0] || !isAbsolute(fromParts[0]))\n )\n fromParts.unshift('');\n\n var result = fromParts.join('/');\n\n if (hasTrailingSlash && result.substr(-1) !== '/') result += '/';\n\n return result;\n}\n\nexport default resolvePathname;\n","function valueOf(obj) {\n return obj.valueOf ? obj.valueOf() : Object.prototype.valueOf.call(obj);\n}\n\nfunction valueEqual(a, b) {\n // Test for strict equality first.\n if (a === b) return true;\n\n // Otherwise, if either of them == null they are not equal.\n if (a == null || b == null) return false;\n\n if (Array.isArray(a)) {\n return (\n Array.isArray(b) &&\n a.length === b.length &&\n a.every(function(item, index) {\n return valueEqual(item, b[index]);\n })\n );\n }\n\n if (typeof a === 'object' || typeof b === 'object') {\n var aValue = valueOf(a);\n var bValue = valueOf(b);\n\n if (aValue !== a || bValue !== b) return valueEqual(aValue, bValue);\n\n return Object.keys(Object.assign({}, a, b)).every(function(key) {\n return valueEqual(a[key], b[key]);\n });\n }\n\n return false;\n}\n\nexport default valueEqual;\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport resolvePathname from 'resolve-pathname';\nimport valueEqual from 'value-equal';\nimport warning from 'tiny-warning';\nimport invariant from 'tiny-invariant';\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === '/' ? path : '/' + path;\n}\nfunction stripLeadingSlash(path) {\n return path.charAt(0) === '/' ? path.substr(1) : path;\n}\nfunction hasBasename(path, prefix) {\n return path.toLowerCase().indexOf(prefix.toLowerCase()) === 0 && '/?#'.indexOf(path.charAt(prefix.length)) !== -1;\n}\nfunction stripBasename(path, prefix) {\n return hasBasename(path, prefix) ? path.substr(prefix.length) : path;\n}\nfunction stripTrailingSlash(path) {\n return path.charAt(path.length - 1) === '/' ? path.slice(0, -1) : path;\n}\nfunction parsePath(path) {\n var pathname = path || '/';\n var search = '';\n var hash = '';\n var hashIndex = pathname.indexOf('#');\n\n if (hashIndex !== -1) {\n hash = pathname.substr(hashIndex);\n pathname = pathname.substr(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf('?');\n\n if (searchIndex !== -1) {\n search = pathname.substr(searchIndex);\n pathname = pathname.substr(0, searchIndex);\n }\n\n return {\n pathname: pathname,\n search: search === '?' ? '' : search,\n hash: hash === '#' ? '' : hash\n };\n}\nfunction createPath(location) {\n var pathname = location.pathname,\n search = location.search,\n hash = location.hash;\n var path = pathname || '/';\n if (search && search !== '?') path += search.charAt(0) === '?' ? search : \"?\" + search;\n if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : \"#\" + hash;\n return path;\n}\n\nfunction createLocation(path, state, key, currentLocation) {\n var location;\n\n if (typeof path === 'string') {\n // Two-arg form: push(path, state)\n location = parsePath(path);\n location.state = state;\n } else {\n // One-arg form: push(location)\n location = _extends({}, path);\n if (location.pathname === undefined) location.pathname = '';\n\n if (location.search) {\n if (location.search.charAt(0) !== '?') location.search = '?' + location.search;\n } else {\n location.search = '';\n }\n\n if (location.hash) {\n if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash;\n } else {\n location.hash = '';\n }\n\n if (state !== undefined && location.state === undefined) location.state = state;\n }\n\n try {\n location.pathname = decodeURI(location.pathname);\n } catch (e) {\n if (e instanceof URIError) {\n throw new URIError('Pathname \"' + location.pathname + '\" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.');\n } else {\n throw e;\n }\n }\n\n if (key) location.key = key;\n\n if (currentLocation) {\n // Resolve incomplete/relative pathname relative to current location.\n if (!location.pathname) {\n location.pathname = currentLocation.pathname;\n } else if (location.pathname.charAt(0) !== '/') {\n location.pathname = resolvePathname(location.pathname, currentLocation.pathname);\n }\n } else {\n // When there is no prior location and pathname is empty, set it to /\n if (!location.pathname) {\n location.pathname = '/';\n }\n }\n\n return location;\n}\nfunction locationsAreEqual(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && valueEqual(a.state, b.state);\n}\n\nfunction createTransitionManager() {\n var prompt = null;\n\n function setPrompt(nextPrompt) {\n process.env.NODE_ENV !== \"production\" ? warning(prompt == null, 'A history supports only one prompt at a time') : void 0;\n prompt = nextPrompt;\n return function () {\n if (prompt === nextPrompt) prompt = null;\n };\n }\n\n function confirmTransitionTo(location, action, getUserConfirmation, callback) {\n // TODO: If another transition starts while we're still confirming\n // the previous one, we may end up in a weird state. Figure out the\n // best way to handle this.\n if (prompt != null) {\n var result = typeof prompt === 'function' ? prompt(location, action) : prompt;\n\n if (typeof result === 'string') {\n if (typeof getUserConfirmation === 'function') {\n getUserConfirmation(result, callback);\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'A history needs a getUserConfirmation function in order to use a prompt message') : void 0;\n callback(true);\n }\n } else {\n // Return false from a transition hook to cancel the transition.\n callback(result !== false);\n }\n } else {\n callback(true);\n }\n }\n\n var listeners = [];\n\n function appendListener(fn) {\n var isActive = true;\n\n function listener() {\n if (isActive) fn.apply(void 0, arguments);\n }\n\n listeners.push(listener);\n return function () {\n isActive = false;\n listeners = listeners.filter(function (item) {\n return item !== listener;\n });\n };\n }\n\n function notifyListeners() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n listeners.forEach(function (listener) {\n return listener.apply(void 0, args);\n });\n }\n\n return {\n setPrompt: setPrompt,\n confirmTransitionTo: confirmTransitionTo,\n appendListener: appendListener,\n notifyListeners: notifyListeners\n };\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nfunction getConfirmation(message, callback) {\n callback(window.confirm(message)); // eslint-disable-line no-alert\n}\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n */\n\nfunction supportsHistory() {\n var ua = window.navigator.userAgent;\n if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n return window.history && 'pushState' in window.history;\n}\n/**\n * Returns true if browser fires popstate on hash change.\n * IE10 and IE11 do not.\n */\n\nfunction supportsPopStateOnHashChange() {\n return window.navigator.userAgent.indexOf('Trident') === -1;\n}\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\n\nfunction supportsGoWithoutReloadUsingHash() {\n return window.navigator.userAgent.indexOf('Firefox') === -1;\n}\n/**\n * Returns true if a given popstate event is an extraneous WebKit event.\n * Accounts for the fact that Chrome on iOS fires real popstate events\n * containing undefined state when pressing the back button.\n */\n\nfunction isExtraneousPopstateEvent(event) {\n return event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1;\n}\n\nvar PopStateEvent = 'popstate';\nvar HashChangeEvent = 'hashchange';\n\nfunction getHistoryState() {\n try {\n return window.history.state || {};\n } catch (e) {\n // IE 11 sometimes throws when accessing window.history.state\n // See https://github.com/ReactTraining/history/pull/289\n return {};\n }\n}\n/**\n * Creates a history object that uses the HTML5 history API including\n * pushState, replaceState, and the popstate event.\n */\n\n\nfunction createBrowserHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Browser history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canUseHistory = supportsHistory();\n var needsHashChangeListener = !supportsPopStateOnHashChange();\n var _props = props,\n _props$forceRefresh = _props.forceRefresh,\n forceRefresh = _props$forceRefresh === void 0 ? false : _props$forceRefresh,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n\n function getDOMLocation(historyState) {\n var _ref = historyState || {},\n key = _ref.key,\n state = _ref.state;\n\n var _window$location = window.location,\n pathname = _window$location.pathname,\n search = _window$location.search,\n hash = _window$location.hash;\n var path = pathname + search + hash;\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path, state, key);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function handlePopState(event) {\n // Ignore extraneous popstate events in WebKit.\n if (isExtraneousPopstateEvent(event)) return;\n handlePop(getDOMLocation(event.state));\n }\n\n function handleHashChange() {\n handlePop(getDOMLocation(getHistoryState()));\n }\n\n var forceNextPop = false;\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of keys we've seen in sessionStorage.\n // Instead, we just default to 0 for keys we don't know.\n\n var toIndex = allKeys.indexOf(toLocation.key);\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allKeys.indexOf(fromLocation.key);\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n }\n\n var initialLocation = getDOMLocation(getHistoryState());\n var allKeys = [initialLocation.key]; // Public interface\n\n function createHref(location) {\n return basename + createPath(location);\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.pushState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.href = href;\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n var nextKeys = allKeys.slice(0, prevIndex + 1);\n nextKeys.push(location.key);\n allKeys = nextKeys;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot push state in browsers that do not support HTML5 history') : void 0;\n window.location.href = href;\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.replaceState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.replace(href);\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n if (prevIndex !== -1) allKeys[prevIndex] = location.key;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot replace state in browsers that do not support HTML5 history') : void 0;\n window.location.replace(href);\n }\n });\n }\n\n function go(n) {\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.addEventListener(HashChangeEvent, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.removeEventListener(HashChangeEvent, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nvar HashChangeEvent$1 = 'hashchange';\nvar HashPathCoders = {\n hashbang: {\n encodePath: function encodePath(path) {\n return path.charAt(0) === '!' ? path : '!/' + stripLeadingSlash(path);\n },\n decodePath: function decodePath(path) {\n return path.charAt(0) === '!' ? path.substr(1) : path;\n }\n },\n noslash: {\n encodePath: stripLeadingSlash,\n decodePath: addLeadingSlash\n },\n slash: {\n encodePath: addLeadingSlash,\n decodePath: addLeadingSlash\n }\n};\n\nfunction stripHash(url) {\n var hashIndex = url.indexOf('#');\n return hashIndex === -1 ? url : url.slice(0, hashIndex);\n}\n\nfunction getHashPath() {\n // We can't use window.location.hash here because it's not\n // consistent across browsers - Firefox will pre-decode it!\n var href = window.location.href;\n var hashIndex = href.indexOf('#');\n return hashIndex === -1 ? '' : href.substring(hashIndex + 1);\n}\n\nfunction pushHashPath(path) {\n window.location.hash = path;\n}\n\nfunction replaceHashPath(path) {\n window.location.replace(stripHash(window.location.href) + '#' + path);\n}\n\nfunction createHashHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Hash history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canGoWithoutReload = supportsGoWithoutReloadUsingHash();\n var _props = props,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$hashType = _props.hashType,\n hashType = _props$hashType === void 0 ? 'slash' : _props$hashType;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n var _HashPathCoders$hashT = HashPathCoders[hashType],\n encodePath = _HashPathCoders$hashT.encodePath,\n decodePath = _HashPathCoders$hashT.decodePath;\n\n function getDOMLocation() {\n var path = decodePath(getHashPath());\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n var forceNextPop = false;\n var ignorePath = null;\n\n function locationsAreEqual$$1(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash;\n }\n\n function handleHashChange() {\n var path = getHashPath();\n var encodedPath = encodePath(path);\n\n if (path !== encodedPath) {\n // Ensure we always have a properly-encoded hash.\n replaceHashPath(encodedPath);\n } else {\n var location = getDOMLocation();\n var prevLocation = history.location;\n if (!forceNextPop && locationsAreEqual$$1(prevLocation, location)) return; // A hashchange doesn't always == location change.\n\n if (ignorePath === createPath(location)) return; // Ignore this change; we already setState in push/replace.\n\n ignorePath = null;\n handlePop(location);\n }\n }\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of paths we've seen in sessionStorage.\n // Instead, we just default to 0 for paths we don't know.\n\n var toIndex = allPaths.lastIndexOf(createPath(toLocation));\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allPaths.lastIndexOf(createPath(fromLocation));\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n } // Ensure the hash is encoded properly before doing anything else.\n\n\n var path = getHashPath();\n var encodedPath = encodePath(path);\n if (path !== encodedPath) replaceHashPath(encodedPath);\n var initialLocation = getDOMLocation();\n var allPaths = [createPath(initialLocation)]; // Public interface\n\n function createHref(location) {\n var baseTag = document.querySelector('base');\n var href = '';\n\n if (baseTag && baseTag.getAttribute('href')) {\n href = stripHash(window.location.href);\n }\n\n return href + '#' + encodePath(basename + createPath(location));\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot push state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a PUSH, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n pushHashPath(encodedPath);\n var prevIndex = allPaths.lastIndexOf(createPath(history.location));\n var nextPaths = allPaths.slice(0, prevIndex + 1);\n nextPaths.push(path);\n allPaths = nextPaths;\n setState({\n action: action,\n location: location\n });\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Hash history cannot PUSH the same path; a new entry will not be added to the history stack') : void 0;\n setState();\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot replace state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a REPLACE, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n replaceHashPath(encodedPath);\n }\n\n var prevIndex = allPaths.indexOf(createPath(history.location));\n if (prevIndex !== -1) allPaths[prevIndex] = path;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n process.env.NODE_ENV !== \"production\" ? warning(canGoWithoutReload, 'Hash history go(n) causes a full page reload in this browser') : void 0;\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(HashChangeEvent$1, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(HashChangeEvent$1, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nfunction clamp(n, lowerBound, upperBound) {\n return Math.min(Math.max(n, lowerBound), upperBound);\n}\n/**\n * Creates a history object that stores locations in memory.\n */\n\n\nfunction createMemoryHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n var _props = props,\n getUserConfirmation = _props.getUserConfirmation,\n _props$initialEntries = _props.initialEntries,\n initialEntries = _props$initialEntries === void 0 ? ['/'] : _props$initialEntries,\n _props$initialIndex = _props.initialIndex,\n initialIndex = _props$initialIndex === void 0 ? 0 : _props$initialIndex,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = history.entries.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var index = clamp(initialIndex, 0, initialEntries.length - 1);\n var entries = initialEntries.map(function (entry) {\n return typeof entry === 'string' ? createLocation(entry, undefined, createKey()) : createLocation(entry, undefined, entry.key || createKey());\n }); // Public interface\n\n var createHref = createPath;\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var prevIndex = history.index;\n var nextIndex = prevIndex + 1;\n var nextEntries = history.entries.slice(0);\n\n if (nextEntries.length > nextIndex) {\n nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location);\n } else {\n nextEntries.push(location);\n }\n\n setState({\n action: action,\n location: location,\n index: nextIndex,\n entries: nextEntries\n });\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n history.entries[history.index] = location;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n var nextIndex = clamp(history.index + n, 0, history.entries.length - 1);\n var action = 'POP';\n var location = history.entries[nextIndex];\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location,\n index: nextIndex\n });\n } else {\n // Mimic the behavior of DOM histories by\n // causing a render after a cancelled POP.\n setState();\n }\n });\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n function canGo(n) {\n var nextIndex = history.index + n;\n return nextIndex >= 0 && nextIndex < history.entries.length;\n }\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n return transitionManager.setPrompt(prompt);\n }\n\n function listen(listener) {\n return transitionManager.appendListener(listener);\n }\n\n var history = {\n length: entries.length,\n action: 'POP',\n location: entries[index],\n index: index,\n entries: entries,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n canGo: canGo,\n block: block,\n listen: listen\n };\n return history;\n}\n\nexport { createBrowserHistory, createHashHistory, createMemoryHistory, createLocation, locationsAreEqual, parsePath, createPath };\n","export default function objectToGetParams(object) {\n var params = Object.entries(object)\n .filter(function (_a) {\n var value = _a[1];\n return value !== undefined && value !== null;\n })\n .map(function (_a) {\n var key = _a[0], value = _a[1];\n return encodeURIComponent(key) + \"=\" + encodeURIComponent(String(value));\n });\n return params.length > 0 ? \"?\" + params.join('&') : '';\n}\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __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 React, { Component } from 'react';\nimport cx from 'classnames';\nvar isPromise = function (obj) {\n return !!obj && (typeof obj === 'object' || typeof obj === 'function') && typeof obj.then === 'function';\n};\nvar getBoxPositionOnWindowCenter = function (width, height) { return ({\n left: window.outerWidth / 2 + (window.screenX || window.screenLeft || 0) - width / 2,\n top: window.outerHeight / 2 + (window.screenY || window.screenTop || 0) - height / 2,\n}); };\nvar getBoxPositionOnScreenCenter = function (width, height) { return ({\n top: (window.screen.height - height) / 2,\n left: (window.screen.width - width) / 2,\n}); };\nfunction windowOpen(url, _a, onClose) {\n var height = _a.height, width = _a.width, configRest = __rest(_a, [\"height\", \"width\"]);\n var config = __assign({ height: height,\n width: width, location: 'no', toolbar: 'no', status: 'no', directories: 'no', menubar: 'no', scrollbars: 'yes', resizable: 'no', centerscreen: 'yes', chrome: 'yes' }, configRest);\n var shareDialog = window.open(url, '', Object.keys(config)\n .map(function (key) { return key + \"=\" + config[key]; })\n .join(', '));\n if (onClose) {\n var interval_1 = window.setInterval(function () {\n try {\n if (shareDialog === null || shareDialog.closed) {\n window.clearInterval(interval_1);\n onClose(shareDialog);\n }\n }\n catch (e) {\n /* eslint-disable no-console */\n console.error(e);\n /* eslint-enable no-console */\n }\n }, 1000);\n }\n return shareDialog;\n}\nvar ShareButton = /** @class */ (function (_super) {\n __extends(ShareButton, _super);\n function ShareButton() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.openShareDialog = function (link) {\n var _a = _this.props, onShareWindowClose = _a.onShareWindowClose, _b = _a.windowHeight, windowHeight = _b === void 0 ? 400 : _b, _c = _a.windowPosition, windowPosition = _c === void 0 ? 'windowCenter' : _c, _d = _a.windowWidth, windowWidth = _d === void 0 ? 550 : _d;\n var windowConfig = __assign({ height: windowHeight, width: windowWidth }, (windowPosition === 'windowCenter'\n ? getBoxPositionOnWindowCenter(windowWidth, windowHeight)\n : getBoxPositionOnScreenCenter(windowWidth, windowHeight)));\n windowOpen(link, windowConfig, onShareWindowClose);\n };\n _this.handleClick = function (event) { return __awaiter(_this, void 0, void 0, function () {\n var _a, beforeOnClick, disabled, networkLink, onClick, url, openShareDialogOnClick, opts, link, returnVal;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n _a = this.props, beforeOnClick = _a.beforeOnClick, disabled = _a.disabled, networkLink = _a.networkLink, onClick = _a.onClick, url = _a.url, openShareDialogOnClick = _a.openShareDialogOnClick, opts = _a.opts;\n link = networkLink(url, opts);\n if (disabled) {\n return [2 /*return*/];\n }\n event.preventDefault();\n if (!beforeOnClick) return [3 /*break*/, 2];\n returnVal = beforeOnClick();\n if (!isPromise(returnVal)) return [3 /*break*/, 2];\n return [4 /*yield*/, returnVal];\n case 1:\n _b.sent();\n _b.label = 2;\n case 2:\n if (openShareDialogOnClick) {\n this.openShareDialog(link);\n }\n if (onClick) {\n onClick(event, link);\n }\n return [2 /*return*/];\n }\n });\n }); };\n return _this;\n }\n ShareButton.prototype.render = function () {\n var _a = this.props, beforeOnClick = _a.beforeOnClick, children = _a.children, className = _a.className, disabled = _a.disabled, disabledStyle = _a.disabledStyle, forwardedRef = _a.forwardedRef, networkLink = _a.networkLink, networkName = _a.networkName, onShareWindowClose = _a.onShareWindowClose, openShareDialogOnClick = _a.openShareDialogOnClick, opts = _a.opts, resetButtonStyle = _a.resetButtonStyle, style = _a.style, url = _a.url, windowHeight = _a.windowHeight, windowPosition = _a.windowPosition, windowWidth = _a.windowWidth, rest = __rest(_a, [\"beforeOnClick\", \"children\", \"className\", \"disabled\", \"disabledStyle\", \"forwardedRef\", \"networkLink\", \"networkName\", \"onShareWindowClose\", \"openShareDialogOnClick\", \"opts\", \"resetButtonStyle\", \"style\", \"url\", \"windowHeight\", \"windowPosition\", \"windowWidth\"]);\n var newClassName = cx('react-share__ShareButton', {\n 'react-share__ShareButton--disabled': !!disabled,\n disabled: !!disabled,\n }, className);\n var newStyle = resetButtonStyle\n ? __assign(__assign({ backgroundColor: 'transparent', border: 'none', padding: 0, font: 'inherit', color: 'inherit', cursor: 'pointer' }, style), (disabled && disabledStyle)) : __assign(__assign({}, style), (disabled && disabledStyle));\n return (React.createElement(\"button\", __assign({}, rest, { \"aria-label\": rest['aria-label'] || networkName, className: newClassName, onClick: this.handleClick, ref: forwardedRef, style: newStyle }), children));\n };\n ShareButton.defaultProps = {\n disabledStyle: { opacity: 0.6 },\n openShareDialogOnClick: true,\n resetButtonStyle: true,\n };\n return ShareButton;\n}(Component));\nexport default ShareButton;\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport React, { forwardRef } from 'react';\nimport ShareButton from '../ShareButton';\nfunction createShareButton(networkName, link, optsMap, defaultProps) {\n function CreatedButton(props, ref) {\n var opts = optsMap(props);\n var passedProps = __assign({}, props);\n // remove keys from passed props that are passed as opts\n var optsKeys = Object.keys(opts);\n optsKeys.forEach(function (key) {\n delete passedProps[key];\n });\n return (React.createElement(ShareButton, __assign({}, defaultProps, passedProps, { forwardedRef: ref, networkName: networkName, networkLink: link, opts: optsMap(props) })));\n }\n CreatedButton.displayName = \"ShareButton-\" + networkName;\n return forwardRef(CreatedButton);\n}\nexport default createShareButton;\n","/*!\n Copyright (c) 2017 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg) && arg.length) {\n\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\tif (inner) {\n\t\t\t\t\tclasses.push(inner);\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport forwardRef from '@restart/context/forwardRef';\nimport React, { useContext, useMemo } from 'react';\nvar ThemeContext = React.createContext({});\nvar Consumer = ThemeContext.Consumer,\n Provider = ThemeContext.Provider;\n\nfunction ThemeProvider(_ref) {\n var prefixes = _ref.prefixes,\n children = _ref.children;\n var copiedPrefixes = useMemo(function () {\n return _extends({}, prefixes);\n }, [prefixes]);\n return /*#__PURE__*/React.createElement(Provider, {\n value: copiedPrefixes\n }, children);\n}\n\nexport function useBootstrapPrefix(prefix, defaultPrefix) {\n var prefixes = useContext(ThemeContext);\n return prefix || prefixes[defaultPrefix] || defaultPrefix;\n}\n\nfunction createBootstrapComponent(Component, opts) {\n if (typeof opts === 'string') opts = {\n prefix: opts\n };\n var isClassy = Component.prototype && Component.prototype.isReactComponent; // If it's a functional component make sure we don't break it with a ref\n\n var _opts = opts,\n prefix = _opts.prefix,\n _opts$forwardRefAs = _opts.forwardRefAs,\n forwardRefAs = _opts$forwardRefAs === void 0 ? isClassy ? 'ref' : 'innerRef' : _opts$forwardRefAs;\n return forwardRef(function (_ref2, ref) {\n var props = _extends({}, _ref2);\n\n props[forwardRefAs] = ref; // eslint-disable-next-line react/prop-types\n\n var bsPrefix = useBootstrapPrefix(props.bsPrefix, prefix);\n return /*#__PURE__*/React.createElement(Component, _extends({}, props, {\n bsPrefix: bsPrefix\n }));\n }, {\n displayName: \"Bootstrap(\" + (Component.displayName || Component.name) + \")\"\n });\n}\n\nexport { createBootstrapComponent, Consumer as ThemeConsumer };\nexport default ThemeProvider;","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","import React, { Component } from 'react';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport PropTypes from 'prop-types';\nimport warning from 'tiny-warning';\n\nvar MAX_SIGNED_31_BIT_INT = 1073741823;\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : {};\n\nfunction getUniqueId() {\n var key = '__global_unique_id__';\n return commonjsGlobal[key] = (commonjsGlobal[key] || 0) + 1;\n}\n\nfunction objectIs(x, y) {\n if (x === y) {\n return x !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\n\nfunction createEventEmitter(value) {\n var handlers = [];\n return {\n on: function on(handler) {\n handlers.push(handler);\n },\n off: function off(handler) {\n handlers = handlers.filter(function (h) {\n return h !== handler;\n });\n },\n get: function get() {\n return value;\n },\n set: function set(newValue, changedBits) {\n value = newValue;\n handlers.forEach(function (handler) {\n return handler(value, changedBits);\n });\n }\n };\n}\n\nfunction onlyChild(children) {\n return Array.isArray(children) ? children[0] : children;\n}\n\nfunction createReactContext(defaultValue, calculateChangedBits) {\n var _Provider$childContex, _Consumer$contextType;\n\n var contextProp = '__create-react-context-' + getUniqueId() + '__';\n\n var Provider = /*#__PURE__*/function (_Component) {\n _inheritsLoose(Provider, _Component);\n\n function Provider() {\n var _this;\n\n _this = _Component.apply(this, arguments) || this;\n _this.emitter = createEventEmitter(_this.props.value);\n return _this;\n }\n\n var _proto = Provider.prototype;\n\n _proto.getChildContext = function getChildContext() {\n var _ref;\n\n return _ref = {}, _ref[contextProp] = this.emitter, _ref;\n };\n\n _proto.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n if (this.props.value !== nextProps.value) {\n var oldValue = this.props.value;\n var newValue = nextProps.value;\n var changedBits;\n\n if (objectIs(oldValue, newValue)) {\n changedBits = 0;\n } else {\n changedBits = typeof calculateChangedBits === 'function' ? calculateChangedBits(oldValue, newValue) : MAX_SIGNED_31_BIT_INT;\n\n if (process.env.NODE_ENV !== 'production') {\n warning((changedBits & MAX_SIGNED_31_BIT_INT) === changedBits, 'calculateChangedBits: Expected the return value to be a ' + '31-bit integer. Instead received: ' + changedBits);\n }\n\n changedBits |= 0;\n\n if (changedBits !== 0) {\n this.emitter.set(nextProps.value, changedBits);\n }\n }\n }\n };\n\n _proto.render = function render() {\n return this.props.children;\n };\n\n return Provider;\n }(Component);\n\n Provider.childContextTypes = (_Provider$childContex = {}, _Provider$childContex[contextProp] = PropTypes.object.isRequired, _Provider$childContex);\n\n var Consumer = /*#__PURE__*/function (_Component2) {\n _inheritsLoose(Consumer, _Component2);\n\n function Consumer() {\n var _this2;\n\n _this2 = _Component2.apply(this, arguments) || this;\n _this2.state = {\n value: _this2.getValue()\n };\n\n _this2.onUpdate = function (newValue, changedBits) {\n var observedBits = _this2.observedBits | 0;\n\n if ((observedBits & changedBits) !== 0) {\n _this2.setState({\n value: _this2.getValue()\n });\n }\n };\n\n return _this2;\n }\n\n var _proto2 = Consumer.prototype;\n\n _proto2.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n var observedBits = nextProps.observedBits;\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits;\n };\n\n _proto2.componentDidMount = function componentDidMount() {\n if (this.context[contextProp]) {\n this.context[contextProp].on(this.onUpdate);\n }\n\n var observedBits = this.props.observedBits;\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits;\n };\n\n _proto2.componentWillUnmount = function componentWillUnmount() {\n if (this.context[contextProp]) {\n this.context[contextProp].off(this.onUpdate);\n }\n };\n\n _proto2.getValue = function getValue() {\n if (this.context[contextProp]) {\n return this.context[contextProp].get();\n } else {\n return defaultValue;\n }\n };\n\n _proto2.render = function render() {\n return onlyChild(this.props.children)(this.state.value);\n };\n\n return Consumer;\n }(Component);\n\n Consumer.contextTypes = (_Consumer$contextType = {}, _Consumer$contextType[contextProp] = PropTypes.object, _Consumer$contextType);\n return {\n Provider: Provider,\n Consumer: Consumer\n };\n}\n\nvar index = React.createContext || createReactContext;\n\nexport default index;\n","var isarray = require('isarray')\n\n/**\n * Expose `pathToRegexp`.\n */\nmodule.exports = pathToRegexp\nmodule.exports.parse = parse\nmodule.exports.compile = compile\nmodule.exports.tokensToFunction = tokensToFunction\nmodule.exports.tokensToRegExp = tokensToRegExp\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n // Match escaped characters that would otherwise appear in future matches.\n // This allows the user to escape special characters that won't transform.\n '(\\\\\\\\.)',\n // Match Express-style parameters and un-named parameters with a prefix\n // and optional suffixes. Matches appear as:\n //\n // \"/:test(\\\\d+)?\" => [\"/\", \"test\", \"\\d+\", undefined, \"?\", undefined]\n // \"/route(\\\\d+)\" => [undefined, undefined, undefined, \"\\d+\", undefined, undefined]\n // \"/*\" => [\"/\", undefined, undefined, undefined, undefined, \"*\"]\n '([\\\\/.])?(?:(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?|(\\\\*))'\n].join('|'), 'g')\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n var tokens = []\n var key = 0\n var index = 0\n var path = ''\n var defaultDelimiter = options && options.delimiter || '/'\n var res\n\n while ((res = PATH_REGEXP.exec(str)) != null) {\n var m = res[0]\n var escaped = res[1]\n var offset = res.index\n path += str.slice(index, offset)\n index = offset + m.length\n\n // Ignore already escaped sequences.\n if (escaped) {\n path += escaped[1]\n continue\n }\n\n var next = str[index]\n var prefix = res[2]\n var name = res[3]\n var capture = res[4]\n var group = res[5]\n var modifier = res[6]\n var asterisk = res[7]\n\n // Push the current path onto the tokens.\n if (path) {\n tokens.push(path)\n path = ''\n }\n\n var partial = prefix != null && next != null && next !== prefix\n var repeat = modifier === '+' || modifier === '*'\n var optional = modifier === '?' || modifier === '*'\n var delimiter = res[2] || defaultDelimiter\n var pattern = capture || group\n\n tokens.push({\n name: name || key++,\n prefix: prefix || '',\n delimiter: delimiter,\n optional: optional,\n repeat: repeat,\n partial: partial,\n asterisk: !!asterisk,\n pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?')\n })\n }\n\n // Match any characters still remaining.\n if (index < str.length) {\n path += str.substr(index)\n }\n\n // If the path exists, push it onto the end.\n if (path) {\n tokens.push(path)\n }\n\n return tokens\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n return tokensToFunction(parse(str, options), options)\n}\n\n/**\n * Prettier encoding of URI path segments.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeURIComponentPretty (str) {\n return encodeURI(str).replace(/[\\/?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Encode the asterisk parameter. Similar to `pretty`, but allows slashes.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeAsterisk (str) {\n return encodeURI(str).replace(/[?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens, options) {\n // Compile all the tokens into regexps.\n var matches = new Array(tokens.length)\n\n // Compile all the patterns before compilation.\n for (var i = 0; i < tokens.length; i++) {\n if (typeof tokens[i] === 'object') {\n matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$', flags(options))\n }\n }\n\n return function (obj, opts) {\n var path = ''\n var data = obj || {}\n var options = opts || {}\n var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n path += token\n\n continue\n }\n\n var value = data[token.name]\n var segment\n\n if (value == null) {\n if (token.optional) {\n // Prepend partial segment prefixes.\n if (token.partial) {\n path += token.prefix\n }\n\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to be defined')\n }\n }\n\n if (isarray(value)) {\n if (!token.repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but received `' + JSON.stringify(value) + '`')\n }\n\n if (value.length === 0) {\n if (token.optional) {\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n }\n }\n\n for (var j = 0; j < value.length; j++) {\n segment = encode(value[j])\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\", but received `' + JSON.stringify(segment) + '`')\n }\n\n path += (j === 0 ? token.prefix : token.delimiter) + segment\n }\n\n continue\n }\n\n segment = token.asterisk ? encodeAsterisk(value) : encode(value)\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but received \"' + segment + '\"')\n }\n\n path += token.prefix + segment\n }\n\n return path\n }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n return str.replace(/([.+*?=^!:${}()[\\]|\\/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n return group.replace(/([=!:$\\/()])/g, '\\\\$1')\n}\n\n/**\n * Attach the keys as a property of the regexp.\n *\n * @param {!RegExp} re\n * @param {Array} keys\n * @return {!RegExp}\n */\nfunction attachKeys (re, keys) {\n re.keys = keys\n return re\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param {Object} options\n * @return {string}\n */\nfunction flags (options) {\n return options && options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param {!RegExp} path\n * @param {!Array} keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g)\n\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: null,\n delimiter: null,\n optional: false,\n repeat: false,\n partial: false,\n asterisk: false,\n pattern: null\n })\n }\n }\n\n return attachKeys(path, keys)\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param {!Array} path\n * @param {Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n var parts = []\n\n for (var i = 0; i < path.length; i++) {\n parts.push(pathToRegexp(path[i], keys, options).source)\n }\n\n var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options))\n\n return attachKeys(regexp, keys)\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param {string} path\n * @param {!Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param {!Array} tokens\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n var strict = options.strict\n var end = options.end !== false\n var route = ''\n\n // Iterate over the tokens and create our regexp string.\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n route += escapeString(token)\n } else {\n var prefix = escapeString(token.prefix)\n var capture = '(?:' + token.pattern + ')'\n\n keys.push(token)\n\n if (token.repeat) {\n capture += '(?:' + prefix + capture + ')*'\n }\n\n if (token.optional) {\n if (!token.partial) {\n capture = '(?:' + prefix + '(' + capture + '))?'\n } else {\n capture = prefix + '(' + capture + ')?'\n }\n } else {\n capture = prefix + '(' + capture + ')'\n }\n\n route += capture\n }\n }\n\n var delimiter = escapeString(options.delimiter || '/')\n var endsWithDelimiter = route.slice(-delimiter.length) === delimiter\n\n // In non-strict mode we allow a slash at the end of match. If the path to\n // match already ends with a slash, we remove it for consistency. The slash\n // is valid at the end of a path match, not in the middle. This is important\n // in non-ending mode, where \"/test/\" shouldn't match \"/test//route\".\n if (!strict) {\n route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?'\n }\n\n if (end) {\n route += '$'\n } else {\n // In non-ending mode, we need the capturing groups to match as much as\n // possible by using a positive lookahead to the end or next path segment.\n route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)'\n }\n\n return attachKeys(new RegExp('^' + route, flags(options)), keys)\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param {(string|RegExp|Array)} path\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n if (path instanceof RegExp) {\n return regexpToRegexp(path, /** @type {!Array} */ (keys))\n }\n\n if (isarray(path)) {\n return arrayToRegexp(/** @type {!Array} */ (path), /** @type {!Array} */ (keys), options)\n }\n\n return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options)\n}\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}\n","\"use strict\";\n\nexports.__esModule = true;\nexports.default = forwardRef;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction forwardRef(renderFn, _temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n propTypes = _ref.propTypes,\n defaultProps = _ref.defaultProps,\n _ref$allowFallback = _ref.allowFallback,\n allowFallback = _ref$allowFallback === void 0 ? false : _ref$allowFallback,\n _ref$displayName = _ref.displayName,\n displayName = _ref$displayName === void 0 ? renderFn.name || renderFn.displayName : _ref$displayName;\n\n var render = function render(props, ref) {\n return renderFn(props, ref);\n };\n\n return Object.assign(_react.default.forwardRef || !allowFallback ? _react.default.forwardRef(render) : function (props) {\n return render(props, null);\n }, {\n displayName: displayName,\n propTypes: propTypes,\n defaultProps: defaultProps\n });\n}","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","import React, { useState, useRef, useLayoutEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport ResizeObserver from 'resize-observer-polyfill';\n\nfunction _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\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 _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\nfunction _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\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\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\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest();\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n}\n\nvar imgWithClick = {\n cursor: 'pointer'\n};\n\nvar Photo = function Photo(_ref) {\n var index = _ref.index,\n onClick = _ref.onClick,\n photo = _ref.photo,\n margin = _ref.margin,\n direction = _ref.direction,\n top = _ref.top,\n left = _ref.left,\n key = _ref.key;\n var imgStyle = {\n margin: margin,\n display: 'block'\n };\n\n if (direction === 'column') {\n imgStyle.position = 'absolute';\n imgStyle.left = left;\n imgStyle.top = top;\n }\n\n var handleClick = function handleClick(event) {\n onClick(event, {\n photo: photo,\n index: index\n });\n };\n\n return React.createElement(\"img\", _extends({\n key: key,\n style: onClick ? _objectSpread({}, imgStyle, imgWithClick) : imgStyle\n }, photo, {\n onClick: onClick ? handleClick : null\n }));\n};\n\nvar photoPropType = PropTypes.shape({\n key: PropTypes.string,\n src: PropTypes.string.isRequired,\n width: PropTypes.number.isRequired,\n height: PropTypes.number.isRequired,\n alt: PropTypes.string,\n title: PropTypes.string,\n srcSet: PropTypes.oneOfType([PropTypes.string, PropTypes.array]),\n sizes: PropTypes.oneOfType([PropTypes.string, PropTypes.array])\n});\nPhoto.propTypes = {\n index: PropTypes.number.isRequired,\n onClick: PropTypes.func,\n photo: photoPropType.isRequired,\n margin: PropTypes.number,\n top: function top(props) {\n if (props.direction === 'column' && typeof props.top !== 'number') {\n return new Error('top is a required number when direction is set to `column`');\n }\n },\n left: function left(props) {\n if (props.direction === 'column' && typeof props.left !== 'number') {\n return new Error('left is a required number when direction is set to `column`');\n }\n },\n direction: PropTypes.string\n};\n\nvar round = function round(value, decimals) {\n if (!decimals) decimals = 0;\n return Number(Math.round(value + 'e' + decimals) + 'e-' + decimals);\n};\n\nvar computeColumnLayout = function computeColumnLayout(_ref) {\n var photos = _ref.photos,\n columns = _ref.columns,\n containerWidth = _ref.containerWidth,\n margin = _ref.margin;\n // calculate each colWidth based on total width and column amount\n var colWidth = (containerWidth - margin * 2 * columns) / columns; // map through each photo to assign adjusted height and width based on colWidth\n\n var photosWithSizes = photos.map(function (photo) {\n var newHeight = photo.height / photo.width * colWidth;\n return _objectSpread({}, photo, {\n width: round(colWidth, 1),\n height: round(newHeight, 1)\n });\n }); // store all possible left positions\n // and current top positions for each column\n\n var colLeftPositions = [];\n var colCurrTopPositions = [];\n\n for (var i = 0; i < columns; i++) {\n colLeftPositions[i] = round(i * (colWidth + margin * 2), 1);\n colCurrTopPositions[i] = 0;\n } // map through each photo, then reduce thru each \"column\"\n // find column with the smallest height and assign to photo's 'top'\n // update that column's height with this photo's height\n\n\n var photosPositioned = photosWithSizes.map(function (photo) {\n var smallestCol = colCurrTopPositions.reduce(function (acc, item, i) {\n acc = item < colCurrTopPositions[acc] ? i : acc;\n return acc;\n }, 0);\n photo.top = colCurrTopPositions[smallestCol];\n photo.left = colLeftPositions[smallestCol];\n colCurrTopPositions[smallestCol] = colCurrTopPositions[smallestCol] + photo.height + margin * 2; // store the tallest col to use for gallery height because of abs positioned elements\n\n var tallestCol = colCurrTopPositions.reduce(function (acc, item, i) {\n acc = item > colCurrTopPositions[acc] ? i : acc;\n return acc;\n }, 0);\n photo.containerHeight = colCurrTopPositions[tallestCol];\n return photo;\n });\n return photosPositioned;\n};\n\nvar ratio = function ratio(_ref) {\n var width = _ref.width,\n height = _ref.height;\n return round(width / height, 2);\n};\n\n/*\nCopyright 2007-2013 Marijn Haverbeke frin \"Eloquent Javascript, 1st Edition\"\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n*/\nfunction BinaryHeap(scoreFunction) {\n this.content = [];\n this.scoreFunction = scoreFunction;\n}\nBinaryHeap.prototype = {\n push: function push(element) {\n // Add the new element to the end of the array.\n this.content.push(element); // Allow it to bubble up.\n\n this.bubbleUp(this.content.length - 1);\n },\n pop: function pop() {\n // Store the first element so we can return it later.\n var result = this.content[0]; // Get the element at the end of the array.\n\n var end = this.content.pop(); // If there are any elements left, put the end element at the\n // start, and let it sink down.\n\n if (this.content.length > 0) {\n this.content[0] = end;\n this.sinkDown(0);\n }\n\n return result;\n },\n remove: function remove(node) {\n var length = this.content.length; // To remove a value, we must search through the array to find\n // it.\n\n for (var i = 0; i < length; i++) {\n if (this.content[i] != node) continue; // When it is found, the process seen in 'pop' is repeated\n // to fill up the hole.\n\n var end = this.content.pop(); // If the element we popped was the one we needed to remove,\n // we're done.\n\n if (i == length - 1) break; // Otherwise, we replace the removed element with the popped\n // one, and allow it to float up or sink down as appropriate.\n\n this.content[i] = end;\n this.bubbleUp(i);\n this.sinkDown(i);\n break;\n }\n },\n size: function size() {\n return this.content.length;\n },\n bubbleUp: function bubbleUp(n) {\n // Fetch the element that has to be moved.\n var element = this.content[n],\n score = this.scoreFunction(element); // When at 0, an element can not go up any further.\n\n while (n > 0) {\n // Compute the parent element's index, and fetch it.\n var parentN = Math.floor((n + 1) / 2) - 1,\n parent = this.content[parentN]; // If the parent has a lesser score, things are in order and we\n // are done.\n\n if (score >= this.scoreFunction(parent)) break; // Otherwise, swap the parent with the current element and\n // continue.\n\n this.content[parentN] = element;\n this.content[n] = parent;\n n = parentN;\n }\n },\n sinkDown: function sinkDown(n) {\n // Look up the target element and its score.\n var length = this.content.length,\n element = this.content[n],\n elemScore = this.scoreFunction(element);\n\n while (true) {\n // Compute the indices of the child elements.\n var child2N = (n + 1) * 2,\n child1N = child2N - 1; // This is used to store the new position of the element,\n // if any.\n\n var swap = null; // If the first child exists (is inside the array)...\n\n if (child1N < length) {\n // Look it up and compute its score.\n var child1 = this.content[child1N],\n child1Score = this.scoreFunction(child1); // If the score is less than our element's, we need to swap.\n\n if (child1Score < elemScore) swap = child1N;\n } // Do the same checks for the other child.\n\n\n if (child2N < length) {\n var child2 = this.content[child2N],\n child2Score = this.scoreFunction(child2);\n if (child2Score < (swap == null ? elemScore : child1Score)) swap = child2N;\n } // No need to swap further, we are done.\n\n\n if (swap == null) break; // Otherwise, swap and continue.\n\n this.content[n] = this.content[swap];\n this.content[swap] = element;\n n = swap;\n }\n }\n};\n\nvar buildPrecedentsMap = function buildPrecedentsMap(graph, startNode, endNode) {\n // store the previous vertex of the shortest path of arrival\n var precedentsMap = {}; // store nodes already visited\n\n var visited = {}; // store/update only the shortest edge weights measured\n // the purpose of this is object is constant time lookup vs. binary heap lookup O(n)\n\n var storedShortestPaths = {};\n storedShortestPaths[startNode] = 0; // priority queue of ALL nodes and storedShortestPaths\n // don't bother to delete them because it's faster to look at visited?\n\n var pQueue = new BinaryHeap(function (n) {\n return n.weight;\n });\n pQueue.push({\n id: startNode,\n weight: 0\n });\n\n while (pQueue.size()) {\n // pop node with shortest total weight from start node\n var shortestNode = pQueue.pop();\n var shortestNodeId = shortestNode.id; // if already visited, continue\n\n if (visited[shortestNodeId]) continue; // visit neighboring nodes\n\n var neighboringNodes = graph(shortestNodeId) || {};\n visited[shortestNodeId] = 1; // meet the neighbors, looking for shorter paths\n\n for (var neighbor in neighboringNodes) {\n // weight of path from startNode to this neighbor\n var newTotalWeight = shortestNode.weight + neighboringNodes[neighbor]; // if this is the first time meeting the neighbor OR if the new total weight from\n // start node to this neighbor node is greater than the old weight path, update it,\n // and update precedent node\n\n if (typeof storedShortestPaths[neighbor] === 'undefined' || storedShortestPaths[neighbor] > newTotalWeight) {\n storedShortestPaths[neighbor] = newTotalWeight;\n pQueue.push({\n id: neighbor,\n weight: newTotalWeight\n });\n precedentsMap[neighbor] = shortestNodeId;\n }\n }\n }\n\n if (typeof storedShortestPaths[endNode] === 'undefined') {\n throw new Error(\"There is no path from \".concat(startNode, \" to \").concat(endNode));\n }\n\n return precedentsMap;\n}; // build the route from precedent node vertices\n\n\nvar getPathFromPrecedentsMap = function getPathFromPrecedentsMap(precedentsMap, endNode) {\n var nodes = [];\n var n = endNode;\n var precedent;\n\n while (n) {\n nodes.push(n);\n precedent = precedentsMap[n];\n n = precedentsMap[n];\n }\n\n return nodes.reverse();\n}; // build the precedentsMap and find the shortest path from it\n\n\nvar findShortestPath = function findShortestPath(graph, startNode, endNode) {\n var precedentsMap = buildPrecedentsMap(graph, startNode, endNode);\n return getPathFromPrecedentsMap(precedentsMap, endNode);\n};\n\n// to calculate the single best layout using Dijkstra's findShortestPat\n// get the height for a set of photos in a potential row\n\nvar getCommonHeight = function getCommonHeight(row, containerWidth, margin) {\n var rowWidth = containerWidth - row.length * (margin * 2);\n var totalAspectRatio = row.reduce(function (acc, photo) {\n return acc + ratio(photo);\n }, 0);\n return rowWidth / totalAspectRatio;\n}; // calculate the cost of breaking at this node (edge weight)\n\n\nvar cost = function cost(photos, i, j, width, targetHeight, margin) {\n var row = photos.slice(i, j);\n var commonHeight = getCommonHeight(row, width, margin);\n return Math.pow(Math.abs(commonHeight - targetHeight), 2);\n}; // return function that gets the neighboring nodes of node and returns costs\n\n\nvar makeGetNeighbors = function makeGetNeighbors(targetHeight, containerWidth, photos, limitNodeSearch, margin) {\n return function (start) {\n var results = {};\n start = +start;\n results[+start] = 0;\n\n for (var i = start + 1; i < photos.length + 1; ++i) {\n if (i - start > limitNodeSearch) break;\n results[i.toString()] = cost(photos, start, i, containerWidth, targetHeight, margin);\n }\n\n return results;\n };\n};\n\nvar computeRowLayout = function computeRowLayout(_ref) {\n var containerWidth = _ref.containerWidth,\n limitNodeSearch = _ref.limitNodeSearch,\n targetRowHeight = _ref.targetRowHeight,\n margin = _ref.margin,\n photos = _ref.photos;\n // const t = +new Date();\n var getNeighbors = makeGetNeighbors(targetRowHeight, containerWidth, photos, limitNodeSearch, margin);\n var path = findShortestPath(getNeighbors, '0', photos.length);\n path = path.map(function (node) {\n return +node;\n }); // console.log(`time to find the shortest path: ${(+new Date() - t)} ms`);\n\n for (var i = 1; i < path.length; ++i) {\n var row = photos.slice(path[i - 1], path[i]);\n var height = getCommonHeight(row, containerWidth, margin);\n\n for (var j = path[i - 1]; j < path[i]; ++j) {\n photos[j].width = round(height * ratio(photos[j]), 1);\n photos[j].height = height;\n }\n }\n\n return photos;\n};\n\n// the aspect ratio of the container with images having an avg AR of 1.5\n// as the minimum amount of photos per row, plus some nodes\n\nvar findIdealNodeSearch = function findIdealNodeSearch(_ref) {\n var targetRowHeight = _ref.targetRowHeight,\n containerWidth = _ref.containerWidth;\n var rowAR = containerWidth / targetRowHeight;\n return round(rowAR / 1.5) + 8;\n};\n\nvar Gallery = React.memo(function Gallery(_ref) {\n var photos = _ref.photos,\n onClick = _ref.onClick,\n direction = _ref.direction,\n margin = _ref.margin,\n limitNodeSearch = _ref.limitNodeSearch,\n targetRowHeight = _ref.targetRowHeight,\n columns = _ref.columns,\n renderImage = _ref.renderImage;\n\n var _useState = useState(0),\n _useState2 = _slicedToArray(_useState, 2),\n containerWidth = _useState2[0],\n setContainerWidth = _useState2[1];\n\n var galleryEl = useRef(null);\n useLayoutEffect(function () {\n var animationFrameID = null;\n var observer = new ResizeObserver(function (entries) {\n // only do something if width changes\n var newWidth = entries[0].contentRect.width;\n\n if (containerWidth !== newWidth) {\n // put in an animation frame to stop \"benign errors\" from\n // ResizObserver https://stackoverflow.com/questions/49384120/resizeobserver-loop-limit-exceeded\n animationFrameID = window.requestAnimationFrame(function () {\n setContainerWidth(Math.floor(newWidth));\n });\n }\n });\n observer.observe(galleryEl.current);\n return function () {\n observer.disconnect();\n window.cancelAnimationFrame(animationFrameID);\n };\n });\n\n var handleClick = function handleClick(event, _ref2) {\n var index = _ref2.index;\n onClick(event, {\n index: index,\n photo: photos[index],\n previous: photos[index - 1] || null,\n next: photos[index + 1] || null\n });\n }; // no containerWidth until after first render with refs, skip calculations and render nothing\n\n\n if (!containerWidth) return React.createElement(\"div\", {\n ref: galleryEl\n }, \"\\xA0\"); // subtract 1 pixel because the browser may round up a pixel\n\n var width = containerWidth - 1;\n var galleryStyle, thumbs;\n\n if (direction === 'row') {\n // allow user to calculate limitNodeSearch from containerWidth\n if (typeof limitNodeSearch === 'function') {\n limitNodeSearch = limitNodeSearch(containerWidth);\n }\n\n if (typeof targetRowHeight === 'function') {\n targetRowHeight = targetRowHeight(containerWidth);\n } // set how many neighboring nodes the graph will visit\n\n\n if (limitNodeSearch === undefined) {\n limitNodeSearch = 2;\n\n if (containerWidth >= 450) {\n limitNodeSearch = findIdealNodeSearch({\n containerWidth: containerWidth,\n targetRowHeight: targetRowHeight\n });\n }\n }\n\n galleryStyle = {\n display: 'flex',\n flexWrap: 'wrap',\n flexDirection: 'row'\n };\n thumbs = computeRowLayout({\n containerWidth: width,\n limitNodeSearch: limitNodeSearch,\n targetRowHeight: targetRowHeight,\n margin: margin,\n photos: photos\n });\n }\n\n if (direction === 'column') {\n // allow user to calculate columns from containerWidth\n if (typeof columns === 'function') {\n columns = columns(containerWidth);\n } // set default breakpoints if user doesn't specify columns prop\n\n\n if (columns === undefined) {\n columns = 1;\n if (containerWidth >= 500) columns = 2;\n if (containerWidth >= 900) columns = 3;\n if (containerWidth >= 1500) columns = 4;\n }\n\n galleryStyle = {\n position: 'relative'\n };\n thumbs = computeColumnLayout({\n containerWidth: width,\n columns: columns,\n margin: margin,\n photos: photos\n });\n galleryStyle.height = thumbs[thumbs.length - 1].containerHeight;\n }\n\n var renderComponent = renderImage || Photo;\n return React.createElement(\"div\", {\n className: \"react-photo-gallery--gallery\"\n }, React.createElement(\"div\", {\n ref: galleryEl,\n style: galleryStyle\n }, thumbs.map(function (thumb, index) {\n var left = thumb.left,\n top = thumb.top,\n containerHeight = thumb.containerHeight,\n photo = _objectWithoutProperties(thumb, [\"left\", \"top\", \"containerHeight\"]);\n\n return renderComponent({\n left: left,\n top: top,\n key: thumb.key || thumb.src,\n containerHeight: containerHeight,\n index: index,\n margin: margin,\n direction: direction,\n onClick: onClick ? handleClick : null,\n photo: photo\n });\n })));\n});\nGallery.propTypes = {\n photos: PropTypes.arrayOf(photoPropType).isRequired,\n direction: PropTypes.string,\n onClick: PropTypes.func,\n columns: PropTypes.oneOfType([PropTypes.func, PropTypes.number]),\n targetRowHeight: PropTypes.oneOfType([PropTypes.func, PropTypes.number]),\n limitNodeSearch: PropTypes.oneOfType([PropTypes.func, PropTypes.number]),\n margin: PropTypes.number,\n renderImage: PropTypes.func\n};\nGallery.defaultProps = {\n margin: 2,\n direction: 'row',\n targetRowHeight: 300\n};\n\nexport default Gallery;\nexport { Photo };\n","/**\r\n * A collection of shims that provide minimal functionality of the ES6 collections.\r\n *\r\n * These implementations are not meant to be used outside of the ResizeObserver\r\n * modules as they cover only a limited range of use cases.\r\n */\r\n/* eslint-disable require-jsdoc, valid-jsdoc */\r\nvar MapShim = (function () {\r\n if (typeof Map !== 'undefined') {\r\n return Map;\r\n }\r\n /**\r\n * Returns index in provided array that matches the specified key.\r\n *\r\n * @param {Array} arr\r\n * @param {*} key\r\n * @returns {number}\r\n */\r\n function getIndex(arr, key) {\r\n var result = -1;\r\n arr.some(function (entry, index) {\r\n if (entry[0] === key) {\r\n result = index;\r\n return true;\r\n }\r\n return false;\r\n });\r\n return result;\r\n }\r\n return /** @class */ (function () {\r\n function class_1() {\r\n this.__entries__ = [];\r\n }\r\n Object.defineProperty(class_1.prototype, \"size\", {\r\n /**\r\n * @returns {boolean}\r\n */\r\n get: function () {\r\n return this.__entries__.length;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * @param {*} key\r\n * @returns {*}\r\n */\r\n class_1.prototype.get = function (key) {\r\n var index = getIndex(this.__entries__, key);\r\n var entry = this.__entries__[index];\r\n return entry && entry[1];\r\n };\r\n /**\r\n * @param {*} key\r\n * @param {*} value\r\n * @returns {void}\r\n */\r\n class_1.prototype.set = function (key, value) {\r\n var index = getIndex(this.__entries__, key);\r\n if (~index) {\r\n this.__entries__[index][1] = value;\r\n }\r\n else {\r\n this.__entries__.push([key, value]);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.delete = function (key) {\r\n var entries = this.__entries__;\r\n var index = getIndex(entries, key);\r\n if (~index) {\r\n entries.splice(index, 1);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.has = function (key) {\r\n return !!~getIndex(this.__entries__, key);\r\n };\r\n /**\r\n * @returns {void}\r\n */\r\n class_1.prototype.clear = function () {\r\n this.__entries__.splice(0);\r\n };\r\n /**\r\n * @param {Function} callback\r\n * @param {*} [ctx=null]\r\n * @returns {void}\r\n */\r\n class_1.prototype.forEach = function (callback, ctx) {\r\n if (ctx === void 0) { ctx = null; }\r\n for (var _i = 0, _a = this.__entries__; _i < _a.length; _i++) {\r\n var entry = _a[_i];\r\n callback.call(ctx, entry[1], entry[0]);\r\n }\r\n };\r\n return class_1;\r\n }());\r\n})();\n\n/**\r\n * Detects whether window and document objects are available in current environment.\r\n */\r\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document;\n\n// Returns global object of a current environment.\r\nvar global$1 = (function () {\r\n if (typeof global !== 'undefined' && global.Math === Math) {\r\n return global;\r\n }\r\n if (typeof self !== 'undefined' && self.Math === Math) {\r\n return self;\r\n }\r\n if (typeof window !== 'undefined' && window.Math === Math) {\r\n return window;\r\n }\r\n // eslint-disable-next-line no-new-func\r\n return Function('return this')();\r\n})();\n\n/**\r\n * A shim for the requestAnimationFrame which falls back to the setTimeout if\r\n * first one is not supported.\r\n *\r\n * @returns {number} Requests' identifier.\r\n */\r\nvar requestAnimationFrame$1 = (function () {\r\n if (typeof requestAnimationFrame === 'function') {\r\n // It's required to use a bounded function because IE sometimes throws\r\n // an \"Invalid calling object\" error if rAF is invoked without the global\r\n // object on the left hand side.\r\n return requestAnimationFrame.bind(global$1);\r\n }\r\n return function (callback) { return setTimeout(function () { return callback(Date.now()); }, 1000 / 60); };\r\n})();\n\n// Defines minimum timeout before adding a trailing call.\r\nvar trailingTimeout = 2;\r\n/**\r\n * Creates a wrapper function which ensures that provided callback will be\r\n * invoked only once during the specified delay period.\r\n *\r\n * @param {Function} callback - Function to be invoked after the delay period.\r\n * @param {number} delay - Delay after which to invoke callback.\r\n * @returns {Function}\r\n */\r\nfunction throttle (callback, delay) {\r\n var leadingCall = false, trailingCall = false, lastCallTime = 0;\r\n /**\r\n * Invokes the original callback function and schedules new invocation if\r\n * the \"proxy\" was called during current request.\r\n *\r\n * @returns {void}\r\n */\r\n function resolvePending() {\r\n if (leadingCall) {\r\n leadingCall = false;\r\n callback();\r\n }\r\n if (trailingCall) {\r\n proxy();\r\n }\r\n }\r\n /**\r\n * Callback invoked after the specified delay. It will further postpone\r\n * invocation of the original function delegating it to the\r\n * requestAnimationFrame.\r\n *\r\n * @returns {void}\r\n */\r\n function timeoutCallback() {\r\n requestAnimationFrame$1(resolvePending);\r\n }\r\n /**\r\n * Schedules invocation of the original function.\r\n *\r\n * @returns {void}\r\n */\r\n function proxy() {\r\n var timeStamp = Date.now();\r\n if (leadingCall) {\r\n // Reject immediately following calls.\r\n if (timeStamp - lastCallTime < trailingTimeout) {\r\n return;\r\n }\r\n // Schedule new call to be in invoked when the pending one is resolved.\r\n // This is important for \"transitions\" which never actually start\r\n // immediately so there is a chance that we might miss one if change\r\n // happens amids the pending invocation.\r\n trailingCall = true;\r\n }\r\n else {\r\n leadingCall = true;\r\n trailingCall = false;\r\n setTimeout(timeoutCallback, delay);\r\n }\r\n lastCallTime = timeStamp;\r\n }\r\n return proxy;\r\n}\n\n// Minimum delay before invoking the update of observers.\r\nvar REFRESH_DELAY = 20;\r\n// A list of substrings of CSS properties used to find transition events that\r\n// might affect dimensions of observed elements.\r\nvar transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight'];\r\n// Check if MutationObserver is available.\r\nvar mutationObserverSupported = typeof MutationObserver !== 'undefined';\r\n/**\r\n * Singleton controller class which handles updates of ResizeObserver instances.\r\n */\r\nvar ResizeObserverController = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserverController.\r\n *\r\n * @private\r\n */\r\n function ResizeObserverController() {\r\n /**\r\n * Indicates whether DOM listeners have been added.\r\n *\r\n * @private {boolean}\r\n */\r\n this.connected_ = false;\r\n /**\r\n * Tells that controller has subscribed for Mutation Events.\r\n *\r\n * @private {boolean}\r\n */\r\n this.mutationEventsAdded_ = false;\r\n /**\r\n * Keeps reference to the instance of MutationObserver.\r\n *\r\n * @private {MutationObserver}\r\n */\r\n this.mutationsObserver_ = null;\r\n /**\r\n * A list of connected observers.\r\n *\r\n * @private {Array}\r\n */\r\n this.observers_ = [];\r\n this.onTransitionEnd_ = this.onTransitionEnd_.bind(this);\r\n this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY);\r\n }\r\n /**\r\n * Adds observer to observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be added.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.addObserver = function (observer) {\r\n if (!~this.observers_.indexOf(observer)) {\r\n this.observers_.push(observer);\r\n }\r\n // Add listeners if they haven't been added yet.\r\n if (!this.connected_) {\r\n this.connect_();\r\n }\r\n };\r\n /**\r\n * Removes observer from observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be removed.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.removeObserver = function (observer) {\r\n var observers = this.observers_;\r\n var index = observers.indexOf(observer);\r\n // Remove observer if it's present in registry.\r\n if (~index) {\r\n observers.splice(index, 1);\r\n }\r\n // Remove listeners if controller has no connected observers.\r\n if (!observers.length && this.connected_) {\r\n this.disconnect_();\r\n }\r\n };\r\n /**\r\n * Invokes the update of observers. It will continue running updates insofar\r\n * it detects changes.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.refresh = function () {\r\n var changesDetected = this.updateObservers_();\r\n // Continue running updates if changes have been detected as there might\r\n // be future ones caused by CSS transitions.\r\n if (changesDetected) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Updates every observer from observers list and notifies them of queued\r\n * entries.\r\n *\r\n * @private\r\n * @returns {boolean} Returns \"true\" if any observer has detected changes in\r\n * dimensions of it's elements.\r\n */\r\n ResizeObserverController.prototype.updateObservers_ = function () {\r\n // Collect observers that have active observations.\r\n var activeObservers = this.observers_.filter(function (observer) {\r\n return observer.gatherActive(), observer.hasActive();\r\n });\r\n // Deliver notifications in a separate cycle in order to avoid any\r\n // collisions between observers, e.g. when multiple instances of\r\n // ResizeObserver are tracking the same element and the callback of one\r\n // of them changes content dimensions of the observed target. Sometimes\r\n // this may result in notifications being blocked for the rest of observers.\r\n activeObservers.forEach(function (observer) { return observer.broadcastActive(); });\r\n return activeObservers.length > 0;\r\n };\r\n /**\r\n * Initializes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.connect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already added.\r\n if (!isBrowser || this.connected_) {\r\n return;\r\n }\r\n // Subscription to the \"Transitionend\" event is used as a workaround for\r\n // delayed transitions. This way it's possible to capture at least the\r\n // final state of an element.\r\n document.addEventListener('transitionend', this.onTransitionEnd_);\r\n window.addEventListener('resize', this.refresh);\r\n if (mutationObserverSupported) {\r\n this.mutationsObserver_ = new MutationObserver(this.refresh);\r\n this.mutationsObserver_.observe(document, {\r\n attributes: true,\r\n childList: true,\r\n characterData: true,\r\n subtree: true\r\n });\r\n }\r\n else {\r\n document.addEventListener('DOMSubtreeModified', this.refresh);\r\n this.mutationEventsAdded_ = true;\r\n }\r\n this.connected_ = true;\r\n };\r\n /**\r\n * Removes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.disconnect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already removed.\r\n if (!isBrowser || !this.connected_) {\r\n return;\r\n }\r\n document.removeEventListener('transitionend', this.onTransitionEnd_);\r\n window.removeEventListener('resize', this.refresh);\r\n if (this.mutationsObserver_) {\r\n this.mutationsObserver_.disconnect();\r\n }\r\n if (this.mutationEventsAdded_) {\r\n document.removeEventListener('DOMSubtreeModified', this.refresh);\r\n }\r\n this.mutationsObserver_ = null;\r\n this.mutationEventsAdded_ = false;\r\n this.connected_ = false;\r\n };\r\n /**\r\n * \"Transitionend\" event handler.\r\n *\r\n * @private\r\n * @param {TransitionEvent} event\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.onTransitionEnd_ = function (_a) {\r\n var _b = _a.propertyName, propertyName = _b === void 0 ? '' : _b;\r\n // Detect whether transition may affect dimensions of an element.\r\n var isReflowProperty = transitionKeys.some(function (key) {\r\n return !!~propertyName.indexOf(key);\r\n });\r\n if (isReflowProperty) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Returns instance of the ResizeObserverController.\r\n *\r\n * @returns {ResizeObserverController}\r\n */\r\n ResizeObserverController.getInstance = function () {\r\n if (!this.instance_) {\r\n this.instance_ = new ResizeObserverController();\r\n }\r\n return this.instance_;\r\n };\r\n /**\r\n * Holds reference to the controller's instance.\r\n *\r\n * @private {ResizeObserverController}\r\n */\r\n ResizeObserverController.instance_ = null;\r\n return ResizeObserverController;\r\n}());\n\n/**\r\n * Defines non-writable/enumerable properties of the provided target object.\r\n *\r\n * @param {Object} target - Object for which to define properties.\r\n * @param {Object} props - Properties to be defined.\r\n * @returns {Object} Target object.\r\n */\r\nvar defineConfigurable = (function (target, props) {\r\n for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\r\n var key = _a[_i];\r\n Object.defineProperty(target, key, {\r\n value: props[key],\r\n enumerable: false,\r\n writable: false,\r\n configurable: true\r\n });\r\n }\r\n return target;\r\n});\n\n/**\r\n * Returns the global object associated with provided element.\r\n *\r\n * @param {Object} target\r\n * @returns {Object}\r\n */\r\nvar getWindowOf = (function (target) {\r\n // Assume that the element is an instance of Node, which means that it\r\n // has the \"ownerDocument\" property from which we can retrieve a\r\n // corresponding global object.\r\n var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView;\r\n // Return the local global object if it's not possible extract one from\r\n // provided element.\r\n return ownerGlobal || global$1;\r\n});\n\n// Placeholder of an empty content rectangle.\r\nvar emptyRect = createRectInit(0, 0, 0, 0);\r\n/**\r\n * Converts provided string to a number.\r\n *\r\n * @param {number|string} value\r\n * @returns {number}\r\n */\r\nfunction toFloat(value) {\r\n return parseFloat(value) || 0;\r\n}\r\n/**\r\n * Extracts borders size from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @param {...string} positions - Borders positions (top, right, ...)\r\n * @returns {number}\r\n */\r\nfunction getBordersSize(styles) {\r\n var positions = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n positions[_i - 1] = arguments[_i];\r\n }\r\n return positions.reduce(function (size, position) {\r\n var value = styles['border-' + position + '-width'];\r\n return size + toFloat(value);\r\n }, 0);\r\n}\r\n/**\r\n * Extracts paddings sizes from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @returns {Object} Paddings box.\r\n */\r\nfunction getPaddings(styles) {\r\n var positions = ['top', 'right', 'bottom', 'left'];\r\n var paddings = {};\r\n for (var _i = 0, positions_1 = positions; _i < positions_1.length; _i++) {\r\n var position = positions_1[_i];\r\n var value = styles['padding-' + position];\r\n paddings[position] = toFloat(value);\r\n }\r\n return paddings;\r\n}\r\n/**\r\n * Calculates content rectangle of provided SVG element.\r\n *\r\n * @param {SVGGraphicsElement} target - Element content rectangle of which needs\r\n * to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getSVGContentRect(target) {\r\n var bbox = target.getBBox();\r\n return createRectInit(0, 0, bbox.width, bbox.height);\r\n}\r\n/**\r\n * Calculates content rectangle of provided HTMLElement.\r\n *\r\n * @param {HTMLElement} target - Element for which to calculate the content rectangle.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getHTMLElementContentRect(target) {\r\n // Client width & height properties can't be\r\n // used exclusively as they provide rounded values.\r\n var clientWidth = target.clientWidth, clientHeight = target.clientHeight;\r\n // By this condition we can catch all non-replaced inline, hidden and\r\n // detached elements. Though elements with width & height properties less\r\n // than 0.5 will be discarded as well.\r\n //\r\n // Without it we would need to implement separate methods for each of\r\n // those cases and it's not possible to perform a precise and performance\r\n // effective test for hidden elements. E.g. even jQuery's ':visible' filter\r\n // gives wrong results for elements with width & height less than 0.5.\r\n if (!clientWidth && !clientHeight) {\r\n return emptyRect;\r\n }\r\n var styles = getWindowOf(target).getComputedStyle(target);\r\n var paddings = getPaddings(styles);\r\n var horizPad = paddings.left + paddings.right;\r\n var vertPad = paddings.top + paddings.bottom;\r\n // Computed styles of width & height are being used because they are the\r\n // only dimensions available to JS that contain non-rounded values. It could\r\n // be possible to utilize the getBoundingClientRect if only it's data wasn't\r\n // affected by CSS transformations let alone paddings, borders and scroll bars.\r\n var width = toFloat(styles.width), height = toFloat(styles.height);\r\n // Width & height include paddings and borders when the 'border-box' box\r\n // model is applied (except for IE).\r\n if (styles.boxSizing === 'border-box') {\r\n // Following conditions are required to handle Internet Explorer which\r\n // doesn't include paddings and borders to computed CSS dimensions.\r\n //\r\n // We can say that if CSS dimensions + paddings are equal to the \"client\"\r\n // properties then it's either IE, and thus we don't need to subtract\r\n // anything, or an element merely doesn't have paddings/borders styles.\r\n if (Math.round(width + horizPad) !== clientWidth) {\r\n width -= getBordersSize(styles, 'left', 'right') + horizPad;\r\n }\r\n if (Math.round(height + vertPad) !== clientHeight) {\r\n height -= getBordersSize(styles, 'top', 'bottom') + vertPad;\r\n }\r\n }\r\n // Following steps can't be applied to the document's root element as its\r\n // client[Width/Height] properties represent viewport area of the window.\r\n // Besides, it's as well not necessary as the itself neither has\r\n // rendered scroll bars nor it can be clipped.\r\n if (!isDocumentElement(target)) {\r\n // In some browsers (only in Firefox, actually) CSS width & height\r\n // include scroll bars size which can be removed at this step as scroll\r\n // bars are the only difference between rounded dimensions + paddings\r\n // and \"client\" properties, though that is not always true in Chrome.\r\n var vertScrollbar = Math.round(width + horizPad) - clientWidth;\r\n var horizScrollbar = Math.round(height + vertPad) - clientHeight;\r\n // Chrome has a rather weird rounding of \"client\" properties.\r\n // E.g. for an element with content width of 314.2px it sometimes gives\r\n // the client width of 315px and for the width of 314.7px it may give\r\n // 314px. And it doesn't happen all the time. So just ignore this delta\r\n // as a non-relevant.\r\n if (Math.abs(vertScrollbar) !== 1) {\r\n width -= vertScrollbar;\r\n }\r\n if (Math.abs(horizScrollbar) !== 1) {\r\n height -= horizScrollbar;\r\n }\r\n }\r\n return createRectInit(paddings.left, paddings.top, width, height);\r\n}\r\n/**\r\n * Checks whether provided element is an instance of the SVGGraphicsElement.\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nvar isSVGGraphicsElement = (function () {\r\n // Some browsers, namely IE and Edge, don't have the SVGGraphicsElement\r\n // interface.\r\n if (typeof SVGGraphicsElement !== 'undefined') {\r\n return function (target) { return target instanceof getWindowOf(target).SVGGraphicsElement; };\r\n }\r\n // If it's so, then check that element is at least an instance of the\r\n // SVGElement and that it has the \"getBBox\" method.\r\n // eslint-disable-next-line no-extra-parens\r\n return function (target) { return (target instanceof getWindowOf(target).SVGElement &&\r\n typeof target.getBBox === 'function'); };\r\n})();\r\n/**\r\n * Checks whether provided element is a document element ().\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nfunction isDocumentElement(target) {\r\n return target === getWindowOf(target).document.documentElement;\r\n}\r\n/**\r\n * Calculates an appropriate content rectangle for provided html or svg element.\r\n *\r\n * @param {Element} target - Element content rectangle of which needs to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getContentRect(target) {\r\n if (!isBrowser) {\r\n return emptyRect;\r\n }\r\n if (isSVGGraphicsElement(target)) {\r\n return getSVGContentRect(target);\r\n }\r\n return getHTMLElementContentRect(target);\r\n}\r\n/**\r\n * Creates rectangle with an interface of the DOMRectReadOnly.\r\n * Spec: https://drafts.fxtf.org/geometry/#domrectreadonly\r\n *\r\n * @param {DOMRectInit} rectInit - Object with rectangle's x/y coordinates and dimensions.\r\n * @returns {DOMRectReadOnly}\r\n */\r\nfunction createReadOnlyRect(_a) {\r\n var x = _a.x, y = _a.y, width = _a.width, height = _a.height;\r\n // If DOMRectReadOnly is available use it as a prototype for the rectangle.\r\n var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object;\r\n var rect = Object.create(Constr.prototype);\r\n // Rectangle's properties are not writable and non-enumerable.\r\n defineConfigurable(rect, {\r\n x: x, y: y, width: width, height: height,\r\n top: y,\r\n right: x + width,\r\n bottom: height + y,\r\n left: x\r\n });\r\n return rect;\r\n}\r\n/**\r\n * Creates DOMRectInit object based on the provided dimensions and the x/y coordinates.\r\n * Spec: https://drafts.fxtf.org/geometry/#dictdef-domrectinit\r\n *\r\n * @param {number} x - X coordinate.\r\n * @param {number} y - Y coordinate.\r\n * @param {number} width - Rectangle's width.\r\n * @param {number} height - Rectangle's height.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction createRectInit(x, y, width, height) {\r\n return { x: x, y: y, width: width, height: height };\r\n}\n\n/**\r\n * Class that is responsible for computations of the content rectangle of\r\n * provided DOM element and for keeping track of it's changes.\r\n */\r\nvar ResizeObservation = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObservation.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n */\r\n function ResizeObservation(target) {\r\n /**\r\n * Broadcasted width of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastWidth = 0;\r\n /**\r\n * Broadcasted height of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastHeight = 0;\r\n /**\r\n * Reference to the last observed content rectangle.\r\n *\r\n * @private {DOMRectInit}\r\n */\r\n this.contentRect_ = createRectInit(0, 0, 0, 0);\r\n this.target = target;\r\n }\r\n /**\r\n * Updates content rectangle and tells whether it's width or height properties\r\n * have changed since the last broadcast.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObservation.prototype.isActive = function () {\r\n var rect = getContentRect(this.target);\r\n this.contentRect_ = rect;\r\n return (rect.width !== this.broadcastWidth ||\r\n rect.height !== this.broadcastHeight);\r\n };\r\n /**\r\n * Updates 'broadcastWidth' and 'broadcastHeight' properties with a data\r\n * from the corresponding properties of the last observed content rectangle.\r\n *\r\n * @returns {DOMRectInit} Last observed content rectangle.\r\n */\r\n ResizeObservation.prototype.broadcastRect = function () {\r\n var rect = this.contentRect_;\r\n this.broadcastWidth = rect.width;\r\n this.broadcastHeight = rect.height;\r\n return rect;\r\n };\r\n return ResizeObservation;\r\n}());\n\nvar ResizeObserverEntry = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObserverEntry.\r\n *\r\n * @param {Element} target - Element that is being observed.\r\n * @param {DOMRectInit} rectInit - Data of the element's content rectangle.\r\n */\r\n function ResizeObserverEntry(target, rectInit) {\r\n var contentRect = createReadOnlyRect(rectInit);\r\n // According to the specification following properties are not writable\r\n // and are also not enumerable in the native implementation.\r\n //\r\n // Property accessors are not being used as they'd require to define a\r\n // private WeakMap storage which may cause memory leaks in browsers that\r\n // don't support this type of collections.\r\n defineConfigurable(this, { target: target, contentRect: contentRect });\r\n }\r\n return ResizeObserverEntry;\r\n}());\n\nvar ResizeObserverSPI = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback function that is invoked\r\n * when one of the observed elements changes it's content dimensions.\r\n * @param {ResizeObserverController} controller - Controller instance which\r\n * is responsible for the updates of observer.\r\n * @param {ResizeObserver} callbackCtx - Reference to the public\r\n * ResizeObserver instance which will be passed to callback function.\r\n */\r\n function ResizeObserverSPI(callback, controller, callbackCtx) {\r\n /**\r\n * Collection of resize observations that have detected changes in dimensions\r\n * of elements.\r\n *\r\n * @private {Array}\r\n */\r\n this.activeObservations_ = [];\r\n /**\r\n * Registry of the ResizeObservation instances.\r\n *\r\n * @private {Map}\r\n */\r\n this.observations_ = new MapShim();\r\n if (typeof callback !== 'function') {\r\n throw new TypeError('The callback provided as parameter 1 is not a function.');\r\n }\r\n this.callback_ = callback;\r\n this.controller_ = controller;\r\n this.callbackCtx_ = callbackCtx;\r\n }\r\n /**\r\n * Starts observing provided element.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.observe = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is already being observed.\r\n if (observations.has(target)) {\r\n return;\r\n }\r\n observations.set(target, new ResizeObservation(target));\r\n this.controller_.addObserver(this);\r\n // Force the update of observations.\r\n this.controller_.refresh();\r\n };\r\n /**\r\n * Stops observing provided element.\r\n *\r\n * @param {Element} target - Element to stop observing.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.unobserve = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is not being observed.\r\n if (!observations.has(target)) {\r\n return;\r\n }\r\n observations.delete(target);\r\n if (!observations.size) {\r\n this.controller_.removeObserver(this);\r\n }\r\n };\r\n /**\r\n * Stops observing all elements.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.disconnect = function () {\r\n this.clearActive();\r\n this.observations_.clear();\r\n this.controller_.removeObserver(this);\r\n };\r\n /**\r\n * Collects observation instances the associated element of which has changed\r\n * it's content rectangle.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.gatherActive = function () {\r\n var _this = this;\r\n this.clearActive();\r\n this.observations_.forEach(function (observation) {\r\n if (observation.isActive()) {\r\n _this.activeObservations_.push(observation);\r\n }\r\n });\r\n };\r\n /**\r\n * Invokes initial callback function with a list of ResizeObserverEntry\r\n * instances collected from active resize observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.broadcastActive = function () {\r\n // Do nothing if observer doesn't have active observations.\r\n if (!this.hasActive()) {\r\n return;\r\n }\r\n var ctx = this.callbackCtx_;\r\n // Create ResizeObserverEntry instance for every active observation.\r\n var entries = this.activeObservations_.map(function (observation) {\r\n return new ResizeObserverEntry(observation.target, observation.broadcastRect());\r\n });\r\n this.callback_.call(ctx, entries, ctx);\r\n this.clearActive();\r\n };\r\n /**\r\n * Clears the collection of active observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.clearActive = function () {\r\n this.activeObservations_.splice(0);\r\n };\r\n /**\r\n * Tells whether observer has active observations.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObserverSPI.prototype.hasActive = function () {\r\n return this.activeObservations_.length > 0;\r\n };\r\n return ResizeObserverSPI;\r\n}());\n\n// Registry of internal observers. If WeakMap is not available use current shim\r\n// for the Map collection as it has all required methods and because WeakMap\r\n// can't be fully polyfilled anyway.\r\nvar observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim();\r\n/**\r\n * ResizeObserver API. Encapsulates the ResizeObserver SPI implementation\r\n * exposing only those methods and properties that are defined in the spec.\r\n */\r\nvar ResizeObserver = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback that is invoked when\r\n * dimensions of the observed elements change.\r\n */\r\n function ResizeObserver(callback) {\r\n if (!(this instanceof ResizeObserver)) {\r\n throw new TypeError('Cannot call a class as a function.');\r\n }\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n var controller = ResizeObserverController.getInstance();\r\n var observer = new ResizeObserverSPI(callback, controller, this);\r\n observers.set(this, observer);\r\n }\r\n return ResizeObserver;\r\n}());\r\n// Expose public methods of ResizeObserver.\r\n[\r\n 'observe',\r\n 'unobserve',\r\n 'disconnect'\r\n].forEach(function (method) {\r\n ResizeObserver.prototype[method] = function () {\r\n var _a;\r\n return (_a = observers.get(this))[method].apply(_a, arguments);\r\n };\r\n});\n\nvar index = (function () {\r\n // Export existing implementation if available.\r\n if (typeof global$1.ResizeObserver !== 'undefined') {\r\n return global$1.ResizeObserver;\r\n }\r\n return ResizeObserver;\r\n})();\n\nexport default index;\n","/*!\n * lightgallery | 2.7.2 | September 20th 2023\n * http://www.lightgalleryjs.com/\n * Copyright (c) 2020 Sachin Neravath;\n * @license GPLv3\n */\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\n\r\nfunction __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\n\n/**\r\n * List of lightGallery events\r\n * All events should be documented here\r\n * Below interfaces are used to build the website documentations\r\n * */\r\nvar lGEvents = {\r\n afterAppendSlide: 'lgAfterAppendSlide',\r\n init: 'lgInit',\r\n hasVideo: 'lgHasVideo',\r\n containerResize: 'lgContainerResize',\r\n updateSlides: 'lgUpdateSlides',\r\n afterAppendSubHtml: 'lgAfterAppendSubHtml',\r\n beforeOpen: 'lgBeforeOpen',\r\n afterOpen: 'lgAfterOpen',\r\n slideItemLoad: 'lgSlideItemLoad',\r\n beforeSlide: 'lgBeforeSlide',\r\n afterSlide: 'lgAfterSlide',\r\n posterClick: 'lgPosterClick',\r\n dragStart: 'lgDragStart',\r\n dragMove: 'lgDragMove',\r\n dragEnd: 'lgDragEnd',\r\n beforeNextSlide: 'lgBeforeNextSlide',\r\n beforePrevSlide: 'lgBeforePrevSlide',\r\n beforeClose: 'lgBeforeClose',\r\n afterClose: 'lgAfterClose',\r\n rotateLeft: 'lgRotateLeft',\r\n rotateRight: 'lgRotateRight',\r\n flipHorizontal: 'lgFlipHorizontal',\r\n flipVertical: 'lgFlipVertical',\r\n autoplay: 'lgAutoplay',\r\n autoplayStart: 'lgAutoplayStart',\r\n autoplayStop: 'lgAutoplayStop',\r\n};\n\nvar lightGalleryCoreSettings = {\r\n mode: 'lg-slide',\r\n easing: 'ease',\r\n speed: 400,\r\n licenseKey: '0000-0000-000-0000',\r\n height: '100%',\r\n width: '100%',\r\n addClass: '',\r\n startClass: 'lg-start-zoom',\r\n backdropDuration: 300,\r\n container: '',\r\n startAnimationDuration: 400,\r\n zoomFromOrigin: true,\r\n hideBarsDelay: 0,\r\n showBarsAfter: 10000,\r\n slideDelay: 0,\r\n supportLegacyBrowser: true,\r\n allowMediaOverlap: false,\r\n videoMaxSize: '1280-720',\r\n loadYouTubePoster: true,\r\n defaultCaptionHeight: 0,\r\n ariaLabelledby: '',\r\n ariaDescribedby: '',\r\n resetScrollPosition: true,\r\n hideScrollbar: false,\r\n closable: true,\r\n swipeToClose: true,\r\n closeOnTap: true,\r\n showCloseIcon: true,\r\n showMaximizeIcon: false,\r\n loop: true,\r\n escKey: true,\r\n keyPress: true,\r\n trapFocus: true,\r\n controls: true,\r\n slideEndAnimation: true,\r\n hideControlOnEnd: false,\r\n mousewheel: false,\r\n getCaptionFromTitleOrAlt: true,\r\n appendSubHtmlTo: '.lg-sub-html',\r\n subHtmlSelectorRelative: false,\r\n preload: 2,\r\n numberOfSlideItemsInDom: 10,\r\n selector: '',\r\n selectWithin: '',\r\n nextHtml: '',\r\n prevHtml: '',\r\n index: 0,\r\n iframeWidth: '100%',\r\n iframeHeight: '100%',\r\n iframeMaxWidth: '100%',\r\n iframeMaxHeight: '100%',\r\n download: true,\r\n counter: true,\r\n appendCounterTo: '.lg-toolbar',\r\n swipeThreshold: 50,\r\n enableSwipe: true,\r\n enableDrag: true,\r\n dynamic: false,\r\n dynamicEl: [],\r\n extraProps: [],\r\n exThumbImage: '',\r\n isMobile: undefined,\r\n mobileSettings: {\r\n controls: false,\r\n showCloseIcon: false,\r\n download: false,\r\n },\r\n plugins: [],\r\n strings: {\r\n closeGallery: 'Close gallery',\r\n toggleMaximize: 'Toggle maximize',\r\n previousSlide: 'Previous slide',\r\n nextSlide: 'Next slide',\r\n download: 'Download',\r\n playVideo: 'Play video',\r\n mediaLoadingFailed: 'Oops... Failed to load content...',\r\n },\r\n};\n\nfunction initLgPolyfills() {\r\n (function () {\r\n if (typeof window.CustomEvent === 'function')\r\n return false;\r\n function CustomEvent(event, params) {\r\n params = params || {\r\n bubbles: false,\r\n cancelable: false,\r\n detail: null,\r\n };\r\n var evt = document.createEvent('CustomEvent');\r\n evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\r\n return evt;\r\n }\r\n window.CustomEvent = CustomEvent;\r\n })();\r\n (function () {\r\n if (!Element.prototype.matches) {\r\n Element.prototype.matches =\r\n Element.prototype.msMatchesSelector ||\r\n Element.prototype.webkitMatchesSelector;\r\n }\r\n })();\r\n}\r\nvar lgQuery = /** @class */ (function () {\r\n function lgQuery(selector) {\r\n this.cssVenderPrefixes = [\r\n 'TransitionDuration',\r\n 'TransitionTimingFunction',\r\n 'Transform',\r\n 'Transition',\r\n ];\r\n this.selector = this._getSelector(selector);\r\n this.firstElement = this._getFirstEl();\r\n return this;\r\n }\r\n lgQuery.generateUUID = function () {\r\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\r\n var r = (Math.random() * 16) | 0, v = c == 'x' ? r : (r & 0x3) | 0x8;\r\n return v.toString(16);\r\n });\r\n };\r\n lgQuery.prototype._getSelector = function (selector, context) {\r\n if (context === void 0) { context = document; }\r\n if (typeof selector !== 'string') {\r\n return selector;\r\n }\r\n context = context || document;\r\n var fl = selector.substring(0, 1);\r\n if (fl === '#') {\r\n return context.querySelector(selector);\r\n }\r\n else {\r\n return context.querySelectorAll(selector);\r\n }\r\n };\r\n lgQuery.prototype._each = function (func) {\r\n if (!this.selector) {\r\n return this;\r\n }\r\n if (this.selector.length !== undefined) {\r\n [].forEach.call(this.selector, func);\r\n }\r\n else {\r\n func(this.selector, 0);\r\n }\r\n return this;\r\n };\r\n lgQuery.prototype._setCssVendorPrefix = function (el, cssProperty, value) {\r\n // prettier-ignore\r\n var property = cssProperty.replace(/-([a-z])/gi, function (s, group1) {\r\n return group1.toUpperCase();\r\n });\r\n if (this.cssVenderPrefixes.indexOf(property) !== -1) {\r\n el.style[property.charAt(0).toLowerCase() + property.slice(1)] = value;\r\n el.style['webkit' + property] = value;\r\n el.style['moz' + property] = value;\r\n el.style['ms' + property] = value;\r\n el.style['o' + property] = value;\r\n }\r\n else {\r\n el.style[property] = value;\r\n }\r\n };\r\n lgQuery.prototype._getFirstEl = function () {\r\n if (this.selector && this.selector.length !== undefined) {\r\n return this.selector[0];\r\n }\r\n else {\r\n return this.selector;\r\n }\r\n };\r\n lgQuery.prototype.isEventMatched = function (event, eventName) {\r\n var eventNamespace = eventName.split('.');\r\n return event\r\n .split('.')\r\n .filter(function (e) { return e; })\r\n .every(function (e) {\r\n return eventNamespace.indexOf(e) !== -1;\r\n });\r\n };\r\n lgQuery.prototype.attr = function (attr, value) {\r\n if (value === undefined) {\r\n if (!this.firstElement) {\r\n return '';\r\n }\r\n return this.firstElement.getAttribute(attr);\r\n }\r\n this._each(function (el) {\r\n el.setAttribute(attr, value);\r\n });\r\n return this;\r\n };\r\n lgQuery.prototype.find = function (selector) {\r\n return $LG(this._getSelector(selector, this.selector));\r\n };\r\n lgQuery.prototype.first = function () {\r\n if (this.selector && this.selector.length !== undefined) {\r\n return $LG(this.selector[0]);\r\n }\r\n else {\r\n return $LG(this.selector);\r\n }\r\n };\r\n lgQuery.prototype.eq = function (index) {\r\n return $LG(this.selector[index]);\r\n };\r\n lgQuery.prototype.parent = function () {\r\n return $LG(this.selector.parentElement);\r\n };\r\n lgQuery.prototype.get = function () {\r\n return this._getFirstEl();\r\n };\r\n lgQuery.prototype.removeAttr = function (attributes) {\r\n var attrs = attributes.split(' ');\r\n this._each(function (el) {\r\n attrs.forEach(function (attr) { return el.removeAttribute(attr); });\r\n });\r\n return this;\r\n };\r\n lgQuery.prototype.wrap = function (className) {\r\n if (!this.firstElement) {\r\n return this;\r\n }\r\n var wrapper = document.createElement('div');\r\n wrapper.className = className;\r\n this.firstElement.parentNode.insertBefore(wrapper, this.firstElement);\r\n this.firstElement.parentNode.removeChild(this.firstElement);\r\n wrapper.appendChild(this.firstElement);\r\n return this;\r\n };\r\n lgQuery.prototype.addClass = function (classNames) {\r\n if (classNames === void 0) { classNames = ''; }\r\n this._each(function (el) {\r\n // IE doesn't support multiple arguments\r\n classNames.split(' ').forEach(function (className) {\r\n if (className) {\r\n el.classList.add(className);\r\n }\r\n });\r\n });\r\n return this;\r\n };\r\n lgQuery.prototype.removeClass = function (classNames) {\r\n this._each(function (el) {\r\n // IE doesn't support multiple arguments\r\n classNames.split(' ').forEach(function (className) {\r\n if (className) {\r\n el.classList.remove(className);\r\n }\r\n });\r\n });\r\n return this;\r\n };\r\n lgQuery.prototype.hasClass = function (className) {\r\n if (!this.firstElement) {\r\n return false;\r\n }\r\n return this.firstElement.classList.contains(className);\r\n };\r\n lgQuery.prototype.hasAttribute = function (attribute) {\r\n if (!this.firstElement) {\r\n return false;\r\n }\r\n return this.firstElement.hasAttribute(attribute);\r\n };\r\n lgQuery.prototype.toggleClass = function (className) {\r\n if (!this.firstElement) {\r\n return this;\r\n }\r\n if (this.hasClass(className)) {\r\n this.removeClass(className);\r\n }\r\n else {\r\n this.addClass(className);\r\n }\r\n return this;\r\n };\r\n lgQuery.prototype.css = function (property, value) {\r\n var _this = this;\r\n this._each(function (el) {\r\n _this._setCssVendorPrefix(el, property, value);\r\n });\r\n return this;\r\n };\r\n // Need to pass separate namespaces for separate elements\r\n lgQuery.prototype.on = function (events, listener) {\r\n var _this = this;\r\n if (!this.selector) {\r\n return this;\r\n }\r\n events.split(' ').forEach(function (event) {\r\n if (!Array.isArray(lgQuery.eventListeners[event])) {\r\n lgQuery.eventListeners[event] = [];\r\n }\r\n lgQuery.eventListeners[event].push(listener);\r\n _this.selector.addEventListener(event.split('.')[0], listener);\r\n });\r\n return this;\r\n };\r\n // @todo - test this\r\n lgQuery.prototype.once = function (event, listener) {\r\n var _this = this;\r\n this.on(event, function () {\r\n _this.off(event);\r\n listener(event);\r\n });\r\n return this;\r\n };\r\n lgQuery.prototype.off = function (event) {\r\n var _this = this;\r\n if (!this.selector) {\r\n return this;\r\n }\r\n Object.keys(lgQuery.eventListeners).forEach(function (eventName) {\r\n if (_this.isEventMatched(event, eventName)) {\r\n lgQuery.eventListeners[eventName].forEach(function (listener) {\r\n _this.selector.removeEventListener(eventName.split('.')[0], listener);\r\n });\r\n lgQuery.eventListeners[eventName] = [];\r\n }\r\n });\r\n return this;\r\n };\r\n lgQuery.prototype.trigger = function (event, detail) {\r\n if (!this.firstElement) {\r\n return this;\r\n }\r\n var customEvent = new CustomEvent(event.split('.')[0], {\r\n detail: detail || null,\r\n });\r\n this.firstElement.dispatchEvent(customEvent);\r\n return this;\r\n };\r\n // Does not support IE\r\n lgQuery.prototype.load = function (url) {\r\n var _this = this;\r\n fetch(url)\r\n .then(function (res) { return res.text(); })\r\n .then(function (html) {\r\n _this.selector.innerHTML = html;\r\n });\r\n return this;\r\n };\r\n lgQuery.prototype.html = function (html) {\r\n if (html === undefined) {\r\n if (!this.firstElement) {\r\n return '';\r\n }\r\n return this.firstElement.innerHTML;\r\n }\r\n this._each(function (el) {\r\n el.innerHTML = html;\r\n });\r\n return this;\r\n };\r\n lgQuery.prototype.append = function (html) {\r\n this._each(function (el) {\r\n if (typeof html === 'string') {\r\n el.insertAdjacentHTML('beforeend', html);\r\n }\r\n else {\r\n el.appendChild(html);\r\n }\r\n });\r\n return this;\r\n };\r\n lgQuery.prototype.prepend = function (html) {\r\n this._each(function (el) {\r\n el.insertAdjacentHTML('afterbegin', html);\r\n });\r\n return this;\r\n };\r\n lgQuery.prototype.remove = function () {\r\n this._each(function (el) {\r\n el.parentNode.removeChild(el);\r\n });\r\n return this;\r\n };\r\n lgQuery.prototype.empty = function () {\r\n this._each(function (el) {\r\n el.innerHTML = '';\r\n });\r\n return this;\r\n };\r\n lgQuery.prototype.scrollTop = function (scrollTop) {\r\n if (scrollTop !== undefined) {\r\n document.body.scrollTop = scrollTop;\r\n document.documentElement.scrollTop = scrollTop;\r\n return this;\r\n }\r\n else {\r\n return (window.pageYOffset ||\r\n document.documentElement.scrollTop ||\r\n document.body.scrollTop ||\r\n 0);\r\n }\r\n };\r\n lgQuery.prototype.scrollLeft = function (scrollLeft) {\r\n if (scrollLeft !== undefined) {\r\n document.body.scrollLeft = scrollLeft;\r\n document.documentElement.scrollLeft = scrollLeft;\r\n return this;\r\n }\r\n else {\r\n return (window.pageXOffset ||\r\n document.documentElement.scrollLeft ||\r\n document.body.scrollLeft ||\r\n 0);\r\n }\r\n };\r\n lgQuery.prototype.offset = function () {\r\n if (!this.firstElement) {\r\n return {\r\n left: 0,\r\n top: 0,\r\n };\r\n }\r\n var rect = this.firstElement.getBoundingClientRect();\r\n var bodyMarginLeft = $LG('body').style().marginLeft;\r\n // Minus body margin - https://stackoverflow.com/questions/30711548/is-getboundingclientrect-left-returning-a-wrong-value\r\n return {\r\n left: rect.left - parseFloat(bodyMarginLeft) + this.scrollLeft(),\r\n top: rect.top + this.scrollTop(),\r\n };\r\n };\r\n lgQuery.prototype.style = function () {\r\n if (!this.firstElement) {\r\n return {};\r\n }\r\n return (this.firstElement.currentStyle ||\r\n window.getComputedStyle(this.firstElement));\r\n };\r\n // Width without padding and border even if box-sizing is used.\r\n lgQuery.prototype.width = function () {\r\n var style = this.style();\r\n return (this.firstElement.clientWidth -\r\n parseFloat(style.paddingLeft) -\r\n parseFloat(style.paddingRight));\r\n };\r\n // Height without padding and border even if box-sizing is used.\r\n lgQuery.prototype.height = function () {\r\n var style = this.style();\r\n return (this.firstElement.clientHeight -\r\n parseFloat(style.paddingTop) -\r\n parseFloat(style.paddingBottom));\r\n };\r\n lgQuery.eventListeners = {};\r\n return lgQuery;\r\n}());\r\nfunction $LG(selector) {\r\n initLgPolyfills();\r\n return new lgQuery(selector);\r\n}\n\nvar defaultDynamicOptions = [\r\n 'src',\r\n 'sources',\r\n 'subHtml',\r\n 'subHtmlUrl',\r\n 'html',\r\n 'video',\r\n 'poster',\r\n 'slideName',\r\n 'responsive',\r\n 'srcset',\r\n 'sizes',\r\n 'iframe',\r\n 'downloadUrl',\r\n 'download',\r\n 'width',\r\n 'facebookShareUrl',\r\n 'tweetText',\r\n 'iframeTitle',\r\n 'twitterShareUrl',\r\n 'pinterestShareUrl',\r\n 'pinterestText',\r\n 'fbHtml',\r\n 'disqusIdentifier',\r\n 'disqusUrl',\r\n];\r\n// Convert html data-attribute to camalcase\r\nfunction convertToData(attr) {\r\n // FInd a way for lgsize\r\n if (attr === 'href') {\r\n return 'src';\r\n }\r\n attr = attr.replace('data-', '');\r\n attr = attr.charAt(0).toLowerCase() + attr.slice(1);\r\n attr = attr.replace(/-([a-z])/g, function (g) { return g[1].toUpperCase(); });\r\n return attr;\r\n}\r\nvar utils = {\r\n /**\r\n * get possible width and height from the lgSize attribute. Used for ZoomFromOrigin option\r\n */\r\n getSize: function (el, container, spacing, defaultLgSize) {\r\n if (spacing === void 0) { spacing = 0; }\r\n var LGel = $LG(el);\r\n var lgSize = LGel.attr('data-lg-size') || defaultLgSize;\r\n if (!lgSize) {\r\n return;\r\n }\r\n var isResponsiveSizes = lgSize.split(',');\r\n // if at-least two viewport sizes are available\r\n if (isResponsiveSizes[1]) {\r\n var wWidth = window.innerWidth;\r\n for (var i = 0; i < isResponsiveSizes.length; i++) {\r\n var size_1 = isResponsiveSizes[i];\r\n var responsiveWidth = parseInt(size_1.split('-')[2], 10);\r\n if (responsiveWidth > wWidth) {\r\n lgSize = size_1;\r\n break;\r\n }\r\n // take last item as last option\r\n if (i === isResponsiveSizes.length - 1) {\r\n lgSize = size_1;\r\n }\r\n }\r\n }\r\n var size = lgSize.split('-');\r\n var width = parseInt(size[0], 10);\r\n var height = parseInt(size[1], 10);\r\n var cWidth = container.width();\r\n var cHeight = container.height() - spacing;\r\n var maxWidth = Math.min(cWidth, width);\r\n var maxHeight = Math.min(cHeight, height);\r\n var ratio = Math.min(maxWidth / width, maxHeight / height);\r\n return { width: width * ratio, height: height * ratio };\r\n },\r\n /**\r\n * @desc Get transform value based on the imageSize. Used for ZoomFromOrigin option\r\n * @param {jQuery Element}\r\n * @returns {String} Transform CSS string\r\n */\r\n getTransform: function (el, container, top, bottom, imageSize) {\r\n if (!imageSize) {\r\n return;\r\n }\r\n var LGel = $LG(el).find('img').first();\r\n if (!LGel.get()) {\r\n return;\r\n }\r\n var containerRect = container.get().getBoundingClientRect();\r\n var wWidth = containerRect.width;\r\n // using innerWidth to include mobile safari bottom bar\r\n var wHeight = container.height() - (top + bottom);\r\n var elWidth = LGel.width();\r\n var elHeight = LGel.height();\r\n var elStyle = LGel.style();\r\n var x = (wWidth - elWidth) / 2 -\r\n LGel.offset().left +\r\n (parseFloat(elStyle.paddingLeft) || 0) +\r\n (parseFloat(elStyle.borderLeft) || 0) +\r\n $LG(window).scrollLeft() +\r\n containerRect.left;\r\n var y = (wHeight - elHeight) / 2 -\r\n LGel.offset().top +\r\n (parseFloat(elStyle.paddingTop) || 0) +\r\n (parseFloat(elStyle.borderTop) || 0) +\r\n $LG(window).scrollTop() +\r\n top;\r\n var scX = elWidth / imageSize.width;\r\n var scY = elHeight / imageSize.height;\r\n var transform = 'translate3d(' +\r\n (x *= -1) +\r\n 'px, ' +\r\n (y *= -1) +\r\n 'px, 0) scale3d(' +\r\n scX +\r\n ', ' +\r\n scY +\r\n ', 1)';\r\n return transform;\r\n },\r\n getIframeMarkup: function (iframeWidth, iframeHeight, iframeMaxWidth, iframeMaxHeight, src, iframeTitle) {\r\n var title = iframeTitle ? 'title=\"' + iframeTitle + '\"' : '';\r\n return \"
\\n \\n
\";\r\n },\r\n getImgMarkup: function (index, src, altAttr, srcset, sizes, sources) {\r\n var srcsetAttr = srcset ? \"srcset=\\\"\" + srcset + \"\\\"\" : '';\r\n var sizesAttr = sizes ? \"sizes=\\\"\" + sizes + \"\\\"\" : '';\r\n var imgMarkup = \"\";\r\n var sourceTag = '';\r\n if (sources) {\r\n var sourceObj = typeof sources === 'string' ? JSON.parse(sources) : sources;\r\n sourceTag = sourceObj.map(function (source) {\r\n var attrs = '';\r\n Object.keys(source).forEach(function (key) {\r\n // Do not remove the first space as it is required to separate the attributes\r\n attrs += \" \" + key + \"=\\\"\" + source[key] + \"\\\"\";\r\n });\r\n return \"\";\r\n });\r\n }\r\n return \"\" + sourceTag + imgMarkup;\r\n },\r\n // Get src from responsive src\r\n getResponsiveSrc: function (srcItms) {\r\n var rsWidth = [];\r\n var rsSrc = [];\r\n var src = '';\r\n for (var i = 0; i < srcItms.length; i++) {\r\n var _src = srcItms[i].split(' ');\r\n // Manage empty space\r\n if (_src[0] === '') {\r\n _src.splice(0, 1);\r\n }\r\n rsSrc.push(_src[0]);\r\n rsWidth.push(_src[1]);\r\n }\r\n var wWidth = window.innerWidth;\r\n for (var j = 0; j < rsWidth.length; j++) {\r\n if (parseInt(rsWidth[j], 10) > wWidth) {\r\n src = rsSrc[j];\r\n break;\r\n }\r\n }\r\n return src;\r\n },\r\n isImageLoaded: function (img) {\r\n if (!img)\r\n return false;\r\n // During the onload event, IE correctly identifies any images that\r\n // weren’t downloaded as not complete. Others should too. Gecko-based\r\n // browsers act like NS4 in that they report this incorrectly.\r\n if (!img.complete) {\r\n return false;\r\n }\r\n // However, they do have two very useful properties: naturalWidth and\r\n // naturalHeight. These give the true size of the image. If it failed\r\n // to load, either of these should be zero.\r\n if (img.naturalWidth === 0) {\r\n return false;\r\n }\r\n // No other way of checking: assume it’s ok.\r\n return true;\r\n },\r\n getVideoPosterMarkup: function (_poster, dummyImg, videoContStyle, playVideoString, _isVideo) {\r\n var videoClass = '';\r\n if (_isVideo && _isVideo.youtube) {\r\n videoClass = 'lg-has-youtube';\r\n }\r\n else if (_isVideo && _isVideo.vimeo) {\r\n videoClass = 'lg-has-vimeo';\r\n }\r\n else {\r\n videoClass = 'lg-has-html5';\r\n }\r\n return \"
\\n
\\n \\n \" + playVideoString + \"\\n \\n \\n \\n \\n \\n \\n \\n
\\n \" + (dummyImg || '') + \"\\n \\n
\";\r\n },\r\n getFocusableElements: function (container) {\r\n var elements = container.querySelectorAll('a[href]:not([disabled]), button:not([disabled]), textarea:not([disabled]), input[type=\"text\"]:not([disabled]), input[type=\"radio\"]:not([disabled]), input[type=\"checkbox\"]:not([disabled]), select:not([disabled])');\r\n var visibleElements = [].filter.call(elements, function (element) {\r\n var style = window.getComputedStyle(element);\r\n return style.display !== 'none' && style.visibility !== 'hidden';\r\n });\r\n return visibleElements;\r\n },\r\n /**\r\n * @desc Create dynamic elements array from gallery items when dynamic option is false\r\n * It helps to avoid frequent DOM interaction\r\n * and avoid multiple checks for dynamic elments\r\n *\r\n * @returns {Array} dynamicEl\r\n */\r\n getDynamicOptions: function (items, extraProps, getCaptionFromTitleOrAlt, exThumbImage) {\r\n var dynamicElements = [];\r\n var availableDynamicOptions = __spreadArrays(defaultDynamicOptions, extraProps);\r\n [].forEach.call(items, function (item) {\r\n var dynamicEl = {};\r\n for (var i = 0; i < item.attributes.length; i++) {\r\n var attr = item.attributes[i];\r\n if (attr.specified) {\r\n var dynamicAttr = convertToData(attr.name);\r\n var label = '';\r\n if (availableDynamicOptions.indexOf(dynamicAttr) > -1) {\r\n label = dynamicAttr;\r\n }\r\n if (label) {\r\n dynamicEl[label] = attr.value;\r\n }\r\n }\r\n }\r\n var currentItem = $LG(item);\r\n var alt = currentItem.find('img').first().attr('alt');\r\n var title = currentItem.attr('title');\r\n var thumb = exThumbImage\r\n ? currentItem.attr(exThumbImage)\r\n : currentItem.find('img').first().attr('src');\r\n dynamicEl.thumb = thumb;\r\n if (getCaptionFromTitleOrAlt && !dynamicEl.subHtml) {\r\n dynamicEl.subHtml = title || alt || '';\r\n }\r\n dynamicEl.alt = alt || title || '';\r\n dynamicElements.push(dynamicEl);\r\n });\r\n return dynamicElements;\r\n },\r\n isMobile: function () {\r\n return /iPhone|iPad|iPod|Android/i.test(navigator.userAgent);\r\n },\r\n /**\r\n * @desc Check the given src is video\r\n * @param {String} src\r\n * @return {Object} video type\r\n * Ex:{ youtube : [\"//www.youtube.com/watch?v=c0asJgSyxcY\", \"c0asJgSyxcY\"] }\r\n *\r\n * @todo - this information can be moved to dynamicEl to avoid frequent calls\r\n */\r\n isVideo: function (src, isHTML5VIdeo, index) {\r\n if (!src) {\r\n if (isHTML5VIdeo) {\r\n return {\r\n html5: true,\r\n };\r\n }\r\n else {\r\n console.error('lightGallery :- data-src is not provided on slide item ' +\r\n (index + 1) +\r\n '. Please make sure the selector property is properly configured. More info - https://www.lightgalleryjs.com/demos/html-markup/');\r\n return;\r\n }\r\n }\r\n var youtube = src.match(/\\/\\/(?:www\\.)?youtu(?:\\.be|be\\.com|be-nocookie\\.com)\\/(?:watch\\?v=|embed\\/)?([a-z0-9\\-\\_\\%]+)([\\&|?][\\S]*)*/i);\r\n var vimeo = src.match(/\\/\\/(?:www\\.)?(?:player\\.)?vimeo.com\\/(?:video\\/)?([0-9a-z\\-_]+)(.*)?/i);\r\n var wistia = src.match(/https?:\\/\\/(.+)?(wistia\\.com|wi\\.st)\\/(medias|embed)\\/([0-9a-z\\-_]+)(.*)/);\r\n if (youtube) {\r\n return {\r\n youtube: youtube,\r\n };\r\n }\r\n else if (vimeo) {\r\n return {\r\n vimeo: vimeo,\r\n };\r\n }\r\n else if (wistia) {\r\n return {\r\n wistia: wistia,\r\n };\r\n }\r\n },\r\n};\n\n// @ref - https://stackoverflow.com/questions/3971841/how-to-resize-images-proportionally-keeping-the-aspect-ratio\r\n// @ref - https://2ality.com/2017/04/setting-up-multi-platform-packages.html\r\n// Unique id for each gallery\r\nvar lgId = 0;\r\nvar LightGallery = /** @class */ (function () {\r\n function LightGallery(element, options) {\r\n this.lgOpened = false;\r\n this.index = 0;\r\n // lightGallery modules\r\n this.plugins = [];\r\n // false when lightGallery load first slide content;\r\n this.lGalleryOn = false;\r\n // True when a slide animation is in progress\r\n this.lgBusy = false;\r\n this.currentItemsInDom = [];\r\n // Scroll top value before lightGallery is opened\r\n this.prevScrollTop = 0;\r\n this.bodyPaddingRight = 0;\r\n this.isDummyImageRemoved = false;\r\n this.dragOrSwipeEnabled = false;\r\n this.mediaContainerPosition = {\r\n top: 0,\r\n bottom: 0,\r\n };\r\n if (!element) {\r\n return this;\r\n }\r\n lgId++;\r\n this.lgId = lgId;\r\n this.el = element;\r\n this.LGel = $LG(element);\r\n this.generateSettings(options);\r\n this.buildModules();\r\n // When using dynamic mode, ensure dynamicEl is an array\r\n if (this.settings.dynamic &&\r\n this.settings.dynamicEl !== undefined &&\r\n !Array.isArray(this.settings.dynamicEl)) {\r\n throw 'When using dynamic mode, you must also define dynamicEl as an Array.';\r\n }\r\n this.galleryItems = this.getItems();\r\n this.normalizeSettings();\r\n // Gallery items\r\n this.init();\r\n this.validateLicense();\r\n return this;\r\n }\r\n LightGallery.prototype.generateSettings = function (options) {\r\n // lightGallery settings\r\n this.settings = __assign(__assign({}, lightGalleryCoreSettings), options);\r\n if (this.settings.isMobile &&\r\n typeof this.settings.isMobile === 'function'\r\n ? this.settings.isMobile()\r\n : utils.isMobile()) {\r\n var mobileSettings = __assign(__assign({}, this.settings.mobileSettings), this.settings.mobileSettings);\r\n this.settings = __assign(__assign({}, this.settings), mobileSettings);\r\n }\r\n };\r\n LightGallery.prototype.normalizeSettings = function () {\r\n if (this.settings.slideEndAnimation) {\r\n this.settings.hideControlOnEnd = false;\r\n }\r\n if (!this.settings.closable) {\r\n this.settings.swipeToClose = false;\r\n }\r\n // And reset it on close to get the correct value next time\r\n this.zoomFromOrigin = this.settings.zoomFromOrigin;\r\n // At the moment, Zoom from image doesn't support dynamic options\r\n // @todo add zoomFromOrigin support for dynamic images\r\n if (this.settings.dynamic) {\r\n this.zoomFromOrigin = false;\r\n }\r\n if (!this.settings.container) {\r\n this.settings.container = document.body;\r\n }\r\n // settings.preload should not be grater than $item.length\r\n this.settings.preload = Math.min(this.settings.preload, this.galleryItems.length);\r\n };\r\n LightGallery.prototype.init = function () {\r\n var _this = this;\r\n this.addSlideVideoInfo(this.galleryItems);\r\n this.buildStructure();\r\n this.LGel.trigger(lGEvents.init, {\r\n instance: this,\r\n });\r\n if (this.settings.keyPress) {\r\n this.keyPress();\r\n }\r\n setTimeout(function () {\r\n _this.enableDrag();\r\n _this.enableSwipe();\r\n _this.triggerPosterClick();\r\n }, 50);\r\n this.arrow();\r\n if (this.settings.mousewheel) {\r\n this.mousewheel();\r\n }\r\n if (!this.settings.dynamic) {\r\n this.openGalleryOnItemClick();\r\n }\r\n };\r\n LightGallery.prototype.openGalleryOnItemClick = function () {\r\n var _this = this;\r\n var _loop_1 = function (index) {\r\n var element = this_1.items[index];\r\n var $element = $LG(element);\r\n // Using different namespace for click because click event should not unbind if selector is same object('this')\r\n // @todo manage all event listners - should have namespace that represent element\r\n var uuid = lgQuery.generateUUID();\r\n $element\r\n .attr('data-lg-id', uuid)\r\n .on(\"click.lgcustom-item-\" + uuid, function (e) {\r\n e.preventDefault();\r\n var currentItemIndex = _this.settings.index || index;\r\n _this.openGallery(currentItemIndex, element);\r\n });\r\n };\r\n var this_1 = this;\r\n // Using for loop instead of using bubbling as the items can be any html element.\r\n for (var index = 0; index < this.items.length; index++) {\r\n _loop_1(index);\r\n }\r\n };\r\n /**\r\n * Module constructor\r\n * Modules are build incrementally.\r\n * Gallery should be opened only once all the modules are initialized.\r\n * use moduleBuildTimeout to make sure this\r\n */\r\n LightGallery.prototype.buildModules = function () {\r\n var _this = this;\r\n this.settings.plugins.forEach(function (plugin) {\r\n _this.plugins.push(new plugin(_this, $LG));\r\n });\r\n };\r\n LightGallery.prototype.validateLicense = function () {\r\n if (!this.settings.licenseKey) {\r\n console.error('Please provide a valid license key');\r\n }\r\n else if (this.settings.licenseKey === '0000-0000-000-0000') {\r\n console.warn(\"lightGallery: \" + this.settings.licenseKey + \" license key is not valid for production use\");\r\n }\r\n };\r\n LightGallery.prototype.getSlideItem = function (index) {\r\n return $LG(this.getSlideItemId(index));\r\n };\r\n LightGallery.prototype.getSlideItemId = function (index) {\r\n return \"#lg-item-\" + this.lgId + \"-\" + index;\r\n };\r\n LightGallery.prototype.getIdName = function (id) {\r\n return id + \"-\" + this.lgId;\r\n };\r\n LightGallery.prototype.getElementById = function (id) {\r\n return $LG(\"#\" + this.getIdName(id));\r\n };\r\n LightGallery.prototype.manageSingleSlideClassName = function () {\r\n if (this.galleryItems.length < 2) {\r\n this.outer.addClass('lg-single-item');\r\n }\r\n else {\r\n this.outer.removeClass('lg-single-item');\r\n }\r\n };\r\n LightGallery.prototype.buildStructure = function () {\r\n var _this = this;\r\n var container = this.$container && this.$container.get();\r\n if (container) {\r\n return;\r\n }\r\n var controls = '';\r\n var subHtmlCont = '';\r\n // Create controls\r\n if (this.settings.controls) {\r\n controls = \"\\n \";\r\n }\r\n if (this.settings.appendSubHtmlTo !== '.lg-item') {\r\n subHtmlCont =\r\n '
';\r\n }\r\n var addClasses = '';\r\n if (this.settings.allowMediaOverlap) {\r\n // Do not remove space before last single quote\r\n addClasses += 'lg-media-overlap ';\r\n }\r\n var ariaLabelledby = this.settings.ariaLabelledby\r\n ? 'aria-labelledby=\"' + this.settings.ariaLabelledby + '\"'\r\n : '';\r\n var ariaDescribedby = this.settings.ariaDescribedby\r\n ? 'aria-describedby=\"' + this.settings.ariaDescribedby + '\"'\r\n : '';\r\n var containerClassName = \"lg-container \" + this.settings.addClass + \" \" + (document.body !== this.settings.container ? 'lg-inline' : '');\r\n var closeIcon = this.settings.closable && this.settings.showCloseIcon\r\n ? \"\"\r\n : '';\r\n var maximizeIcon = this.settings.showMaximizeIcon\r\n ? \"\"\r\n : '';\r\n var template = \"\\n
\\n
\\n\\n
\\n\\n
\\n
\\n
\\n \" + controls + \"\\n
\\n
\\n \" + maximizeIcon + \"\\n \" + closeIcon + \"\\n
\\n \" + (this.settings.appendSubHtmlTo === '.lg-outer'\r\n ? subHtmlCont\r\n : '') + \"\\n
\\n \" + (this.settings.appendSubHtmlTo === '.lg-sub-html'\r\n ? subHtmlCont\r\n : '') + \"\\n
\\n
\\n
\\n \";\r\n $LG(this.settings.container).append(template);\r\n if (document.body !== this.settings.container) {\r\n $LG(this.settings.container).css('position', 'relative');\r\n }\r\n this.outer = this.getElementById('lg-outer');\r\n this.$lgComponents = this.getElementById('lg-components');\r\n this.$backdrop = this.getElementById('lg-backdrop');\r\n this.$container = this.getElementById('lg-container');\r\n this.$inner = this.getElementById('lg-inner');\r\n this.$content = this.getElementById('lg-content');\r\n this.$toolbar = this.getElementById('lg-toolbar');\r\n this.$backdrop.css('transition-duration', this.settings.backdropDuration + 'ms');\r\n var outerClassNames = this.settings.mode + \" \";\r\n this.manageSingleSlideClassName();\r\n if (this.settings.enableDrag) {\r\n outerClassNames += 'lg-grab ';\r\n }\r\n this.outer.addClass(outerClassNames);\r\n this.$inner.css('transition-timing-function', this.settings.easing);\r\n this.$inner.css('transition-duration', this.settings.speed + 'ms');\r\n if (this.settings.download) {\r\n this.$toolbar.append(\"
\");\r\n }\r\n this.counter();\r\n $LG(window).on(\"resize.lg.global\" + this.lgId + \" orientationchange.lg.global\" + this.lgId, function () {\r\n _this.refreshOnResize();\r\n });\r\n this.hideBars();\r\n this.manageCloseGallery();\r\n this.toggleMaximize();\r\n this.initModules();\r\n };\r\n LightGallery.prototype.refreshOnResize = function () {\r\n if (this.lgOpened) {\r\n var currentGalleryItem = this.galleryItems[this.index];\r\n var __slideVideoInfo = currentGalleryItem.__slideVideoInfo;\r\n this.mediaContainerPosition = this.getMediaContainerPosition();\r\n var _a = this.mediaContainerPosition, top_1 = _a.top, bottom = _a.bottom;\r\n this.currentImageSize = utils.getSize(this.items[this.index], this.outer, top_1 + bottom, __slideVideoInfo && this.settings.videoMaxSize);\r\n if (__slideVideoInfo) {\r\n this.resizeVideoSlide(this.index, this.currentImageSize);\r\n }\r\n if (this.zoomFromOrigin && !this.isDummyImageRemoved) {\r\n var imgStyle = this.getDummyImgStyles(this.currentImageSize);\r\n this.outer\r\n .find('.lg-current .lg-dummy-img')\r\n .first()\r\n .attr('style', imgStyle);\r\n }\r\n this.LGel.trigger(lGEvents.containerResize);\r\n }\r\n };\r\n LightGallery.prototype.resizeVideoSlide = function (index, imageSize) {\r\n var lgVideoStyle = this.getVideoContStyle(imageSize);\r\n var currentSlide = this.getSlideItem(index);\r\n currentSlide.find('.lg-video-cont').attr('style', lgVideoStyle);\r\n };\r\n /**\r\n * Update slides dynamically.\r\n * Add, edit or delete slides dynamically when lightGallery is opened.\r\n * Modify the current gallery items and pass it via updateSlides method\r\n * @note\r\n * - Do not mutate existing lightGallery items directly.\r\n * - Always pass new list of gallery items\r\n * - You need to take care of thumbnails outside the gallery if any\r\n * - user this method only if you want to update slides when the gallery is opened. Otherwise, use `refresh()` method.\r\n * @param items Gallery items\r\n * @param index After the update operation, which slide gallery should navigate to\r\n * @category lGPublicMethods\r\n * @example\r\n * const plugin = lightGallery();\r\n *\r\n * // Adding slides dynamically\r\n * let galleryItems = [\r\n * // Access existing lightGallery items\r\n * // galleryItems are automatically generated internally from the gallery HTML markup\r\n * // or directly from galleryItems when dynamic gallery is used\r\n * ...plugin.galleryItems,\r\n * ...[\r\n * {\r\n * src: 'img/img-1.png',\r\n * thumb: 'img/thumb1.png',\r\n * },\r\n * ],\r\n * ];\r\n * plugin.updateSlides(\r\n * galleryItems,\r\n * plugin.index,\r\n * );\r\n *\r\n *\r\n * // Remove slides dynamically\r\n * galleryItems = JSON.parse(\r\n * JSON.stringify(updateSlideInstance.galleryItems),\r\n * );\r\n * galleryItems.shift();\r\n * updateSlideInstance.updateSlides(galleryItems, 1);\r\n * @see Demo\r\n */\r\n LightGallery.prototype.updateSlides = function (items, index) {\r\n if (this.index > items.length - 1) {\r\n this.index = items.length - 1;\r\n }\r\n if (items.length === 1) {\r\n this.index = 0;\r\n }\r\n if (!items.length) {\r\n this.closeGallery();\r\n return;\r\n }\r\n var currentSrc = this.galleryItems[index].src;\r\n this.galleryItems = items;\r\n this.updateControls();\r\n this.$inner.empty();\r\n this.currentItemsInDom = [];\r\n var _index = 0;\r\n // Find the current index based on source value of the slide\r\n this.galleryItems.some(function (galleryItem, itemIndex) {\r\n if (galleryItem.src === currentSrc) {\r\n _index = itemIndex;\r\n return true;\r\n }\r\n return false;\r\n });\r\n this.currentItemsInDom = this.organizeSlideItems(_index, -1);\r\n this.loadContent(_index, true);\r\n this.getSlideItem(_index).addClass('lg-current');\r\n this.index = _index;\r\n this.updateCurrentCounter(_index);\r\n this.LGel.trigger(lGEvents.updateSlides);\r\n };\r\n // Get gallery items based on multiple conditions\r\n LightGallery.prototype.getItems = function () {\r\n // Gallery items\r\n this.items = [];\r\n if (!this.settings.dynamic) {\r\n if (this.settings.selector === 'this') {\r\n this.items.push(this.el);\r\n }\r\n else if (this.settings.selector) {\r\n if (typeof this.settings.selector === 'string') {\r\n if (this.settings.selectWithin) {\r\n var selectWithin = $LG(this.settings.selectWithin);\r\n this.items = selectWithin\r\n .find(this.settings.selector)\r\n .get();\r\n }\r\n else {\r\n this.items = this.el.querySelectorAll(this.settings.selector);\r\n }\r\n }\r\n else {\r\n this.items = this.settings.selector;\r\n }\r\n }\r\n else {\r\n this.items = this.el.children;\r\n }\r\n return utils.getDynamicOptions(this.items, this.settings.extraProps, this.settings.getCaptionFromTitleOrAlt, this.settings.exThumbImage);\r\n }\r\n else {\r\n return this.settings.dynamicEl || [];\r\n }\r\n };\r\n LightGallery.prototype.shouldHideScrollbar = function () {\r\n return (this.settings.hideScrollbar &&\r\n document.body === this.settings.container);\r\n };\r\n LightGallery.prototype.hideScrollbar = function () {\r\n if (!this.shouldHideScrollbar()) {\r\n return;\r\n }\r\n this.bodyPaddingRight = parseFloat($LG('body').style().paddingRight);\r\n var bodyRect = document.documentElement.getBoundingClientRect();\r\n var scrollbarWidth = window.innerWidth - bodyRect.width;\r\n $LG(document.body).css('padding-right', scrollbarWidth + this.bodyPaddingRight + 'px');\r\n $LG(document.body).addClass('lg-overlay-open');\r\n };\r\n LightGallery.prototype.resetScrollBar = function () {\r\n if (!this.shouldHideScrollbar()) {\r\n return;\r\n }\r\n $LG(document.body).css('padding-right', this.bodyPaddingRight + 'px');\r\n $LG(document.body).removeClass('lg-overlay-open');\r\n };\r\n /**\r\n * Open lightGallery.\r\n * Open gallery with specific slide by passing index of the slide as parameter.\r\n * @category lGPublicMethods\r\n * @param {Number} index - index of the slide\r\n * @param {HTMLElement} element - Which image lightGallery should zoom from\r\n *\r\n * @example\r\n * const $dynamicGallery = document.getElementById('dynamic-gallery-demo');\r\n * const dynamicGallery = lightGallery($dynamicGallery, {\r\n * dynamic: true,\r\n * dynamicEl: [\r\n * {\r\n * src: 'img/1.jpg',\r\n * thumb: 'img/thumb-1.jpg',\r\n * subHtml: '

Image 1 title

Image 1 descriptions.

',\r\n * },\r\n * ...\r\n * ],\r\n * });\r\n * $dynamicGallery.addEventListener('click', function () {\r\n * // Starts with third item.(Optional).\r\n * // This is useful if you want use dynamic mode with\r\n * // custom thumbnails (thumbnails outside gallery),\r\n * dynamicGallery.openGallery(2);\r\n * });\r\n *\r\n */\r\n LightGallery.prototype.openGallery = function (index, element) {\r\n var _this = this;\r\n if (index === void 0) { index = this.settings.index; }\r\n // prevent accidental double execution\r\n if (this.lgOpened)\r\n return;\r\n this.lgOpened = true;\r\n this.outer.removeClass('lg-hide-items');\r\n this.hideScrollbar();\r\n // Add display block, but still has opacity 0\r\n this.$container.addClass('lg-show');\r\n var itemsToBeInsertedToDom = this.getItemsToBeInsertedToDom(index, index);\r\n this.currentItemsInDom = itemsToBeInsertedToDom;\r\n var items = '';\r\n itemsToBeInsertedToDom.forEach(function (item) {\r\n items = items + (\"
\");\r\n });\r\n this.$inner.append(items);\r\n this.addHtml(index);\r\n var transform = '';\r\n this.mediaContainerPosition = this.getMediaContainerPosition();\r\n var _a = this.mediaContainerPosition, top = _a.top, bottom = _a.bottom;\r\n if (!this.settings.allowMediaOverlap) {\r\n this.setMediaContainerPosition(top, bottom);\r\n }\r\n var __slideVideoInfo = this.galleryItems[index].__slideVideoInfo;\r\n if (this.zoomFromOrigin && element) {\r\n this.currentImageSize = utils.getSize(element, this.outer, top + bottom, __slideVideoInfo && this.settings.videoMaxSize);\r\n transform = utils.getTransform(element, this.outer, top, bottom, this.currentImageSize);\r\n }\r\n if (!this.zoomFromOrigin || !transform) {\r\n this.outer.addClass(this.settings.startClass);\r\n this.getSlideItem(index).removeClass('lg-complete');\r\n }\r\n var timeout = this.settings.zoomFromOrigin\r\n ? 100\r\n : this.settings.backdropDuration;\r\n setTimeout(function () {\r\n _this.outer.addClass('lg-components-open');\r\n }, timeout);\r\n this.index = index;\r\n this.LGel.trigger(lGEvents.beforeOpen);\r\n // add class lg-current to remove initial transition\r\n this.getSlideItem(index).addClass('lg-current');\r\n this.lGalleryOn = false;\r\n // Store the current scroll top value to scroll back after closing the gallery..\r\n this.prevScrollTop = $LG(window).scrollTop();\r\n setTimeout(function () {\r\n // Need to check both zoomFromOrigin and transform values as we need to set set the\r\n // default opening animation if user missed to add the lg-size attribute\r\n if (_this.zoomFromOrigin && transform) {\r\n var currentSlide_1 = _this.getSlideItem(index);\r\n currentSlide_1.css('transform', transform);\r\n setTimeout(function () {\r\n currentSlide_1\r\n .addClass('lg-start-progress lg-start-end-progress')\r\n .css('transition-duration', _this.settings.startAnimationDuration + 'ms');\r\n _this.outer.addClass('lg-zoom-from-image');\r\n });\r\n setTimeout(function () {\r\n currentSlide_1.css('transform', 'translate3d(0, 0, 0)');\r\n }, 100);\r\n }\r\n setTimeout(function () {\r\n _this.$backdrop.addClass('in');\r\n _this.$container.addClass('lg-show-in');\r\n }, 10);\r\n setTimeout(function () {\r\n if (_this.settings.trapFocus &&\r\n document.body === _this.settings.container) {\r\n _this.trapFocus();\r\n }\r\n }, _this.settings.backdropDuration + 50);\r\n // lg-visible class resets gallery opacity to 1\r\n if (!_this.zoomFromOrigin || !transform) {\r\n setTimeout(function () {\r\n _this.outer.addClass('lg-visible');\r\n }, _this.settings.backdropDuration);\r\n }\r\n // initiate slide function\r\n _this.slide(index, false, false, false);\r\n _this.LGel.trigger(lGEvents.afterOpen);\r\n });\r\n if (document.body === this.settings.container) {\r\n $LG('html').addClass('lg-on');\r\n }\r\n };\r\n /**\r\n * Note - Changing the position of the media on every slide transition creates a flickering effect.\r\n * Therefore, The height of the caption is calculated dynamically, only once based on the first slide caption.\r\n * if you have dynamic captions for each media,\r\n * you can provide an appropriate height for the captions via allowMediaOverlap option\r\n */\r\n LightGallery.prototype.getMediaContainerPosition = function () {\r\n if (this.settings.allowMediaOverlap) {\r\n return {\r\n top: 0,\r\n bottom: 0,\r\n };\r\n }\r\n var top = this.$toolbar.get().clientHeight || 0;\r\n var subHtml = this.outer.find('.lg-components .lg-sub-html').get();\r\n var captionHeight = this.settings.defaultCaptionHeight ||\r\n (subHtml && subHtml.clientHeight) ||\r\n 0;\r\n var thumbContainer = this.outer.find('.lg-thumb-outer').get();\r\n var thumbHeight = thumbContainer ? thumbContainer.clientHeight : 0;\r\n var bottom = thumbHeight + captionHeight;\r\n return {\r\n top: top,\r\n bottom: bottom,\r\n };\r\n };\r\n LightGallery.prototype.setMediaContainerPosition = function (top, bottom) {\r\n if (top === void 0) { top = 0; }\r\n if (bottom === void 0) { bottom = 0; }\r\n this.$content.css('top', top + 'px').css('bottom', bottom + 'px');\r\n };\r\n LightGallery.prototype.hideBars = function () {\r\n var _this = this;\r\n // Hide controllers if mouse doesn't move for some period\r\n setTimeout(function () {\r\n _this.outer.removeClass('lg-hide-items');\r\n if (_this.settings.hideBarsDelay > 0) {\r\n _this.outer.on('mousemove.lg click.lg touchstart.lg', function () {\r\n _this.outer.removeClass('lg-hide-items');\r\n clearTimeout(_this.hideBarTimeout);\r\n // Timeout will be cleared on each slide movement also\r\n _this.hideBarTimeout = setTimeout(function () {\r\n _this.outer.addClass('lg-hide-items');\r\n }, _this.settings.hideBarsDelay);\r\n });\r\n _this.outer.trigger('mousemove.lg');\r\n }\r\n }, this.settings.showBarsAfter);\r\n };\r\n LightGallery.prototype.initPictureFill = function ($img) {\r\n if (this.settings.supportLegacyBrowser) {\r\n try {\r\n picturefill({\r\n elements: [$img.get()],\r\n });\r\n }\r\n catch (e) {\r\n console.warn('lightGallery :- If you want srcset or picture tag to be supported for older browser please include picturefil javascript library in your document.');\r\n }\r\n }\r\n };\r\n /**\r\n * @desc Create image counter\r\n * Ex: 1/10\r\n */\r\n LightGallery.prototype.counter = function () {\r\n if (this.settings.counter) {\r\n var counterHtml = \"
\\n \" + (this.index + 1) + \" /\\n \" + this.galleryItems.length + \"
\";\r\n this.outer.find(this.settings.appendCounterTo).append(counterHtml);\r\n }\r\n };\r\n /**\r\n * @desc add sub-html into the slide\r\n * @param {Number} index - index of the slide\r\n */\r\n LightGallery.prototype.addHtml = function (index) {\r\n var subHtml;\r\n var subHtmlUrl;\r\n if (this.galleryItems[index].subHtmlUrl) {\r\n subHtmlUrl = this.galleryItems[index].subHtmlUrl;\r\n }\r\n else {\r\n subHtml = this.galleryItems[index].subHtml;\r\n }\r\n if (!subHtmlUrl) {\r\n if (subHtml) {\r\n // get first letter of sub-html\r\n // if first letter starts with . or # get the html form the jQuery object\r\n var fL = subHtml.substring(0, 1);\r\n if (fL === '.' || fL === '#') {\r\n if (this.settings.subHtmlSelectorRelative &&\r\n !this.settings.dynamic) {\r\n subHtml = $LG(this.items)\r\n .eq(index)\r\n .find(subHtml)\r\n .first()\r\n .html();\r\n }\r\n else {\r\n subHtml = $LG(subHtml).first().html();\r\n }\r\n }\r\n }\r\n else {\r\n subHtml = '';\r\n }\r\n }\r\n if (this.settings.appendSubHtmlTo !== '.lg-item') {\r\n if (subHtmlUrl) {\r\n this.outer.find('.lg-sub-html').load(subHtmlUrl);\r\n }\r\n else {\r\n this.outer.find('.lg-sub-html').html(subHtml);\r\n }\r\n }\r\n else {\r\n var currentSlide = $LG(this.getSlideItemId(index));\r\n if (subHtmlUrl) {\r\n currentSlide.load(subHtmlUrl);\r\n }\r\n else {\r\n currentSlide.append(\"
\" + subHtml + \"
\");\r\n }\r\n }\r\n // Add lg-empty-html class if title doesn't exist\r\n if (typeof subHtml !== 'undefined' && subHtml !== null) {\r\n if (subHtml === '') {\r\n this.outer\r\n .find(this.settings.appendSubHtmlTo)\r\n .addClass('lg-empty-html');\r\n }\r\n else {\r\n this.outer\r\n .find(this.settings.appendSubHtmlTo)\r\n .removeClass('lg-empty-html');\r\n }\r\n }\r\n this.LGel.trigger(lGEvents.afterAppendSubHtml, {\r\n index: index,\r\n });\r\n };\r\n /**\r\n * @desc Preload slides\r\n * @param {Number} index - index of the slide\r\n * @todo preload not working for the first slide, Also, should work for the first and last slide as well\r\n */\r\n LightGallery.prototype.preload = function (index) {\r\n for (var i = 1; i <= this.settings.preload; i++) {\r\n if (i >= this.galleryItems.length - index) {\r\n break;\r\n }\r\n this.loadContent(index + i, false);\r\n }\r\n for (var j = 1; j <= this.settings.preload; j++) {\r\n if (index - j < 0) {\r\n break;\r\n }\r\n this.loadContent(index - j, false);\r\n }\r\n };\r\n LightGallery.prototype.getDummyImgStyles = function (imageSize) {\r\n if (!imageSize)\r\n return '';\r\n return \"width:\" + imageSize.width + \"px;\\n margin-left: -\" + imageSize.width / 2 + \"px;\\n margin-top: -\" + imageSize.height / 2 + \"px;\\n height:\" + imageSize.height + \"px\";\r\n };\r\n LightGallery.prototype.getVideoContStyle = function (imageSize) {\r\n if (!imageSize)\r\n return '';\r\n return \"width:\" + imageSize.width + \"px;\\n height:\" + imageSize.height + \"px\";\r\n };\r\n LightGallery.prototype.getDummyImageContent = function ($currentSlide, index, alt) {\r\n var $currentItem;\r\n if (!this.settings.dynamic) {\r\n $currentItem = $LG(this.items).eq(index);\r\n }\r\n if ($currentItem) {\r\n var _dummyImgSrc = void 0;\r\n if (!this.settings.exThumbImage) {\r\n _dummyImgSrc = $currentItem.find('img').first().attr('src');\r\n }\r\n else {\r\n _dummyImgSrc = $currentItem.attr(this.settings.exThumbImage);\r\n }\r\n if (!_dummyImgSrc)\r\n return '';\r\n var imgStyle = this.getDummyImgStyles(this.currentImageSize);\r\n var dummyImgContent = \"\";\r\n $currentSlide.addClass('lg-first-slide');\r\n this.outer.addClass('lg-first-slide-loading');\r\n return dummyImgContent;\r\n }\r\n return '';\r\n };\r\n LightGallery.prototype.setImgMarkup = function (src, $currentSlide, index) {\r\n var currentGalleryItem = this.galleryItems[index];\r\n var alt = currentGalleryItem.alt, srcset = currentGalleryItem.srcset, sizes = currentGalleryItem.sizes, sources = currentGalleryItem.sources;\r\n // Use the thumbnail as dummy image which will be resized to actual image size and\r\n // displayed on top of actual image\r\n var imgContent = '';\r\n var altAttr = alt ? 'alt=\"' + alt + '\"' : '';\r\n if (this.isFirstSlideWithZoomAnimation()) {\r\n imgContent = this.getDummyImageContent($currentSlide, index, altAttr);\r\n }\r\n else {\r\n imgContent = utils.getImgMarkup(index, src, altAttr, srcset, sizes, sources);\r\n }\r\n var imgMarkup = \" \" + imgContent + \"\";\r\n $currentSlide.prepend(imgMarkup);\r\n };\r\n LightGallery.prototype.onSlideObjectLoad = function ($slide, isHTML5VideoWithoutPoster, onLoad, onError) {\r\n var mediaObject = $slide.find('.lg-object').first();\r\n if (utils.isImageLoaded(mediaObject.get()) ||\r\n isHTML5VideoWithoutPoster) {\r\n onLoad();\r\n }\r\n else {\r\n mediaObject.on('load.lg error.lg', function () {\r\n onLoad && onLoad();\r\n });\r\n mediaObject.on('error.lg', function () {\r\n onError && onError();\r\n });\r\n }\r\n };\r\n /**\r\n *\r\n * @param $el Current slide item\r\n * @param index\r\n * @param delay Delay is 0 except first time\r\n * @param speed Speed is same as delay, except it is 0 if gallery is opened via hash plugin\r\n * @param isFirstSlide\r\n */\r\n LightGallery.prototype.onLgObjectLoad = function (currentSlide, index, delay, speed, isFirstSlide, isHTML5VideoWithoutPoster) {\r\n var _this = this;\r\n this.onSlideObjectLoad(currentSlide, isHTML5VideoWithoutPoster, function () {\r\n _this.triggerSlideItemLoad(currentSlide, index, delay, speed, isFirstSlide);\r\n }, function () {\r\n currentSlide.addClass('lg-complete lg-complete_');\r\n currentSlide.html('' +\r\n _this.settings.strings['mediaLoadingFailed'] +\r\n '');\r\n });\r\n };\r\n LightGallery.prototype.triggerSlideItemLoad = function ($currentSlide, index, delay, speed, isFirstSlide) {\r\n var _this = this;\r\n var currentGalleryItem = this.galleryItems[index];\r\n // Adding delay for video slides without poster for better performance and user experience\r\n // Videos should start playing once once the gallery is completely loaded\r\n var _speed = isFirstSlide &&\r\n this.getSlideType(currentGalleryItem) === 'video' &&\r\n !currentGalleryItem.poster\r\n ? speed\r\n : 0;\r\n setTimeout(function () {\r\n $currentSlide.addClass('lg-complete lg-complete_');\r\n _this.LGel.trigger(lGEvents.slideItemLoad, {\r\n index: index,\r\n delay: delay || 0,\r\n isFirstSlide: isFirstSlide,\r\n });\r\n }, _speed);\r\n };\r\n LightGallery.prototype.isFirstSlideWithZoomAnimation = function () {\r\n return !!(!this.lGalleryOn &&\r\n this.zoomFromOrigin &&\r\n this.currentImageSize);\r\n };\r\n // Add video slideInfo\r\n LightGallery.prototype.addSlideVideoInfo = function (items) {\r\n var _this = this;\r\n items.forEach(function (element, index) {\r\n element.__slideVideoInfo = utils.isVideo(element.src, !!element.video, index);\r\n if (element.__slideVideoInfo &&\r\n _this.settings.loadYouTubePoster &&\r\n !element.poster &&\r\n element.__slideVideoInfo.youtube) {\r\n element.poster = \"//img.youtube.com/vi/\" + element.__slideVideoInfo.youtube[1] + \"/maxresdefault.jpg\";\r\n }\r\n });\r\n };\r\n /**\r\n * Load slide content into slide.\r\n * This is used to load content into slides that is not visible too\r\n * @param {Number} index - index of the slide.\r\n * @param {Boolean} rec - if true call loadcontent() function again.\r\n */\r\n LightGallery.prototype.loadContent = function (index, rec) {\r\n var _this = this;\r\n var currentGalleryItem = this.galleryItems[index];\r\n var $currentSlide = $LG(this.getSlideItemId(index));\r\n var poster = currentGalleryItem.poster, srcset = currentGalleryItem.srcset, sizes = currentGalleryItem.sizes, sources = currentGalleryItem.sources;\r\n var src = currentGalleryItem.src;\r\n var video = currentGalleryItem.video;\r\n var _html5Video = video && typeof video === 'string' ? JSON.parse(video) : video;\r\n if (currentGalleryItem.responsive) {\r\n var srcDyItms = currentGalleryItem.responsive.split(',');\r\n src = utils.getResponsiveSrc(srcDyItms) || src;\r\n }\r\n var videoInfo = currentGalleryItem.__slideVideoInfo;\r\n var lgVideoStyle = '';\r\n var iframe = !!currentGalleryItem.iframe;\r\n var isFirstSlide = !this.lGalleryOn;\r\n // delay for adding complete class. it is 0 except first time.\r\n var delay = 0;\r\n if (isFirstSlide) {\r\n if (this.zoomFromOrigin && this.currentImageSize) {\r\n delay = this.settings.startAnimationDuration + 10;\r\n }\r\n else {\r\n delay = this.settings.backdropDuration + 10;\r\n }\r\n }\r\n if (!$currentSlide.hasClass('lg-loaded')) {\r\n if (videoInfo) {\r\n var _a = this.mediaContainerPosition, top_2 = _a.top, bottom = _a.bottom;\r\n var videoSize = utils.getSize(this.items[index], this.outer, top_2 + bottom, videoInfo && this.settings.videoMaxSize);\r\n lgVideoStyle = this.getVideoContStyle(videoSize);\r\n }\r\n if (iframe) {\r\n var markup = utils.getIframeMarkup(this.settings.iframeWidth, this.settings.iframeHeight, this.settings.iframeMaxWidth, this.settings.iframeMaxHeight, src, currentGalleryItem.iframeTitle);\r\n $currentSlide.prepend(markup);\r\n }\r\n else if (poster) {\r\n var dummyImg = '';\r\n var hasStartAnimation = isFirstSlide &&\r\n this.zoomFromOrigin &&\r\n this.currentImageSize;\r\n if (hasStartAnimation) {\r\n dummyImg = this.getDummyImageContent($currentSlide, index, '');\r\n }\r\n var markup = utils.getVideoPosterMarkup(poster, dummyImg || '', lgVideoStyle, this.settings.strings['playVideo'], videoInfo);\r\n $currentSlide.prepend(markup);\r\n }\r\n else if (videoInfo) {\r\n var markup = \"
\";\r\n $currentSlide.prepend(markup);\r\n }\r\n else {\r\n this.setImgMarkup(src, $currentSlide, index);\r\n if (srcset || sources) {\r\n var $img = $currentSlide.find('.lg-object');\r\n this.initPictureFill($img);\r\n }\r\n }\r\n if (poster || videoInfo) {\r\n this.LGel.trigger(lGEvents.hasVideo, {\r\n index: index,\r\n src: src,\r\n html5Video: _html5Video,\r\n hasPoster: !!poster,\r\n });\r\n }\r\n this.LGel.trigger(lGEvents.afterAppendSlide, { index: index });\r\n if (this.lGalleryOn &&\r\n this.settings.appendSubHtmlTo === '.lg-item') {\r\n this.addHtml(index);\r\n }\r\n }\r\n // For first time add some delay for displaying the start animation.\r\n var _speed = 0;\r\n // Do not change the delay value because it is required for zoom plugin.\r\n // If gallery opened from direct url (hash) speed value should be 0\r\n if (delay && !$LG(document.body).hasClass('lg-from-hash')) {\r\n _speed = delay;\r\n }\r\n // Only for first slide and zoomFromOrigin is enabled\r\n if (this.isFirstSlideWithZoomAnimation()) {\r\n setTimeout(function () {\r\n $currentSlide\r\n .removeClass('lg-start-end-progress lg-start-progress')\r\n .removeAttr('style');\r\n }, this.settings.startAnimationDuration + 100);\r\n if (!$currentSlide.hasClass('lg-loaded')) {\r\n setTimeout(function () {\r\n if (_this.getSlideType(currentGalleryItem) === 'image') {\r\n var alt = currentGalleryItem.alt;\r\n var altAttr = alt ? 'alt=\"' + alt + '\"' : '';\r\n $currentSlide\r\n .find('.lg-img-wrap')\r\n .append(utils.getImgMarkup(index, src, altAttr, srcset, sizes, currentGalleryItem.sources));\r\n if (srcset || sources) {\r\n var $img = $currentSlide.find('.lg-object');\r\n _this.initPictureFill($img);\r\n }\r\n }\r\n if (_this.getSlideType(currentGalleryItem) === 'image' ||\r\n (_this.getSlideType(currentGalleryItem) === 'video' &&\r\n poster)) {\r\n _this.onLgObjectLoad($currentSlide, index, delay, _speed, true, false);\r\n // load remaining slides once the slide is completely loaded\r\n _this.onSlideObjectLoad($currentSlide, !!(videoInfo && videoInfo.html5 && !poster), function () {\r\n _this.loadContentOnFirstSlideLoad(index, $currentSlide, _speed);\r\n }, function () {\r\n _this.loadContentOnFirstSlideLoad(index, $currentSlide, _speed);\r\n });\r\n }\r\n }, this.settings.startAnimationDuration + 100);\r\n }\r\n }\r\n // SLide content has been added to dom\r\n $currentSlide.addClass('lg-loaded');\r\n if (!this.isFirstSlideWithZoomAnimation() ||\r\n (this.getSlideType(currentGalleryItem) === 'video' && !poster)) {\r\n this.onLgObjectLoad($currentSlide, index, delay, _speed, isFirstSlide, !!(videoInfo && videoInfo.html5 && !poster));\r\n }\r\n // When gallery is opened once content is loaded (second time) need to add lg-complete class for css styling\r\n if ((!this.zoomFromOrigin || !this.currentImageSize) &&\r\n $currentSlide.hasClass('lg-complete_') &&\r\n !this.lGalleryOn) {\r\n setTimeout(function () {\r\n $currentSlide.addClass('lg-complete');\r\n }, this.settings.backdropDuration);\r\n }\r\n // Content loaded\r\n // Need to set lGalleryOn before calling preload function\r\n this.lGalleryOn = true;\r\n if (rec === true) {\r\n if (!$currentSlide.hasClass('lg-complete_')) {\r\n $currentSlide\r\n .find('.lg-object')\r\n .first()\r\n .on('load.lg error.lg', function () {\r\n _this.preload(index);\r\n });\r\n }\r\n else {\r\n this.preload(index);\r\n }\r\n }\r\n };\r\n /**\r\n * @desc Remove dummy image content and load next slides\r\n * Called only for the first time if zoomFromOrigin animation is enabled\r\n * @param index\r\n * @param $currentSlide\r\n * @param speed\r\n */\r\n LightGallery.prototype.loadContentOnFirstSlideLoad = function (index, $currentSlide, speed) {\r\n var _this = this;\r\n setTimeout(function () {\r\n $currentSlide.find('.lg-dummy-img').remove();\r\n $currentSlide.removeClass('lg-first-slide');\r\n _this.outer.removeClass('lg-first-slide-loading');\r\n _this.isDummyImageRemoved = true;\r\n _this.preload(index);\r\n }, speed + 300);\r\n };\r\n LightGallery.prototype.getItemsToBeInsertedToDom = function (index, prevIndex, numberOfItems) {\r\n var _this = this;\r\n if (numberOfItems === void 0) { numberOfItems = 0; }\r\n var itemsToBeInsertedToDom = [];\r\n // Minimum 2 items should be there\r\n var possibleNumberOfItems = Math.max(numberOfItems, 3);\r\n possibleNumberOfItems = Math.min(possibleNumberOfItems, this.galleryItems.length);\r\n var prevIndexItem = \"lg-item-\" + this.lgId + \"-\" + prevIndex;\r\n if (this.galleryItems.length <= 3) {\r\n this.galleryItems.forEach(function (_element, index) {\r\n itemsToBeInsertedToDom.push(\"lg-item-\" + _this.lgId + \"-\" + index);\r\n });\r\n return itemsToBeInsertedToDom;\r\n }\r\n if (index < (this.galleryItems.length - 1) / 2) {\r\n for (var idx = index; idx > index - possibleNumberOfItems / 2 && idx >= 0; idx--) {\r\n itemsToBeInsertedToDom.push(\"lg-item-\" + this.lgId + \"-\" + idx);\r\n }\r\n var numberOfExistingItems = itemsToBeInsertedToDom.length;\r\n for (var idx = 0; idx < possibleNumberOfItems - numberOfExistingItems; idx++) {\r\n itemsToBeInsertedToDom.push(\"lg-item-\" + this.lgId + \"-\" + (index + idx + 1));\r\n }\r\n }\r\n else {\r\n for (var idx = index; idx <= this.galleryItems.length - 1 &&\r\n idx < index + possibleNumberOfItems / 2; idx++) {\r\n itemsToBeInsertedToDom.push(\"lg-item-\" + this.lgId + \"-\" + idx);\r\n }\r\n var numberOfExistingItems = itemsToBeInsertedToDom.length;\r\n for (var idx = 0; idx < possibleNumberOfItems - numberOfExistingItems; idx++) {\r\n itemsToBeInsertedToDom.push(\"lg-item-\" + this.lgId + \"-\" + (index - idx - 1));\r\n }\r\n }\r\n if (this.settings.loop) {\r\n if (index === this.galleryItems.length - 1) {\r\n itemsToBeInsertedToDom.push(\"lg-item-\" + this.lgId + \"-\" + 0);\r\n }\r\n else if (index === 0) {\r\n itemsToBeInsertedToDom.push(\"lg-item-\" + this.lgId + \"-\" + (this.galleryItems.length - 1));\r\n }\r\n }\r\n if (itemsToBeInsertedToDom.indexOf(prevIndexItem) === -1) {\r\n itemsToBeInsertedToDom.push(\"lg-item-\" + this.lgId + \"-\" + prevIndex);\r\n }\r\n return itemsToBeInsertedToDom;\r\n };\r\n LightGallery.prototype.organizeSlideItems = function (index, prevIndex) {\r\n var _this = this;\r\n var itemsToBeInsertedToDom = this.getItemsToBeInsertedToDom(index, prevIndex, this.settings.numberOfSlideItemsInDom);\r\n itemsToBeInsertedToDom.forEach(function (item) {\r\n if (_this.currentItemsInDom.indexOf(item) === -1) {\r\n _this.$inner.append(\"
\");\r\n }\r\n });\r\n this.currentItemsInDom.forEach(function (item) {\r\n if (itemsToBeInsertedToDom.indexOf(item) === -1) {\r\n $LG(\"#\" + item).remove();\r\n }\r\n });\r\n return itemsToBeInsertedToDom;\r\n };\r\n /**\r\n * Get previous index of the slide\r\n */\r\n LightGallery.prototype.getPreviousSlideIndex = function () {\r\n var prevIndex = 0;\r\n try {\r\n var currentItemId = this.outer\r\n .find('.lg-current')\r\n .first()\r\n .attr('id');\r\n prevIndex = parseInt(currentItemId.split('-')[3]) || 0;\r\n }\r\n catch (error) {\r\n prevIndex = 0;\r\n }\r\n return prevIndex;\r\n };\r\n LightGallery.prototype.setDownloadValue = function (index) {\r\n if (this.settings.download) {\r\n var currentGalleryItem = this.galleryItems[index];\r\n var hideDownloadBtn = currentGalleryItem.downloadUrl === false ||\r\n currentGalleryItem.downloadUrl === 'false';\r\n if (hideDownloadBtn) {\r\n this.outer.addClass('lg-hide-download');\r\n }\r\n else {\r\n var $download = this.getElementById('lg-download');\r\n this.outer.removeClass('lg-hide-download');\r\n $download.attr('href', currentGalleryItem.downloadUrl ||\r\n currentGalleryItem.src);\r\n if (currentGalleryItem.download) {\r\n $download.attr('download', currentGalleryItem.download);\r\n }\r\n }\r\n }\r\n };\r\n LightGallery.prototype.makeSlideAnimation = function (direction, currentSlideItem, previousSlideItem) {\r\n var _this = this;\r\n if (this.lGalleryOn) {\r\n previousSlideItem.addClass('lg-slide-progress');\r\n }\r\n setTimeout(function () {\r\n // remove all transitions\r\n _this.outer.addClass('lg-no-trans');\r\n _this.outer\r\n .find('.lg-item')\r\n .removeClass('lg-prev-slide lg-next-slide');\r\n if (direction === 'prev') {\r\n //prevslide\r\n currentSlideItem.addClass('lg-prev-slide');\r\n previousSlideItem.addClass('lg-next-slide');\r\n }\r\n else {\r\n // next slide\r\n currentSlideItem.addClass('lg-next-slide');\r\n previousSlideItem.addClass('lg-prev-slide');\r\n }\r\n // give 50 ms for browser to add/remove class\r\n setTimeout(function () {\r\n _this.outer.find('.lg-item').removeClass('lg-current');\r\n currentSlideItem.addClass('lg-current');\r\n // reset all transitions\r\n _this.outer.removeClass('lg-no-trans');\r\n }, 50);\r\n }, this.lGalleryOn ? this.settings.slideDelay : 0);\r\n };\r\n /**\r\n * Goto a specific slide.\r\n * @param {Number} index - index of the slide\r\n * @param {Boolean} fromTouch - true if slide function called via touch event or mouse drag\r\n * @param {Boolean} fromThumb - true if slide function called via thumbnail click\r\n * @param {String} direction - Direction of the slide(next/prev)\r\n * @category lGPublicMethods\r\n * @example\r\n * const plugin = lightGallery();\r\n * // to go to 3rd slide\r\n * plugin.slide(2);\r\n *\r\n */\r\n LightGallery.prototype.slide = function (index, fromTouch, fromThumb, direction) {\r\n var _this = this;\r\n var prevIndex = this.getPreviousSlideIndex();\r\n this.currentItemsInDom = this.organizeSlideItems(index, prevIndex);\r\n // Prevent multiple call, Required for hsh plugin\r\n if (this.lGalleryOn && prevIndex === index) {\r\n return;\r\n }\r\n var numberOfGalleryItems = this.galleryItems.length;\r\n if (!this.lgBusy) {\r\n if (this.settings.counter) {\r\n this.updateCurrentCounter(index);\r\n }\r\n var currentSlideItem = this.getSlideItem(index);\r\n var previousSlideItem_1 = this.getSlideItem(prevIndex);\r\n var currentGalleryItem = this.galleryItems[index];\r\n var videoInfo = currentGalleryItem.__slideVideoInfo;\r\n this.outer.attr('data-lg-slide-type', this.getSlideType(currentGalleryItem));\r\n this.setDownloadValue(index);\r\n if (videoInfo) {\r\n var _a = this.mediaContainerPosition, top_3 = _a.top, bottom = _a.bottom;\r\n var videoSize = utils.getSize(this.items[index], this.outer, top_3 + bottom, videoInfo && this.settings.videoMaxSize);\r\n this.resizeVideoSlide(index, videoSize);\r\n }\r\n this.LGel.trigger(lGEvents.beforeSlide, {\r\n prevIndex: prevIndex,\r\n index: index,\r\n fromTouch: !!fromTouch,\r\n fromThumb: !!fromThumb,\r\n });\r\n this.lgBusy = true;\r\n clearTimeout(this.hideBarTimeout);\r\n this.arrowDisable(index);\r\n if (!direction) {\r\n if (index < prevIndex) {\r\n direction = 'prev';\r\n }\r\n else if (index > prevIndex) {\r\n direction = 'next';\r\n }\r\n }\r\n if (!fromTouch) {\r\n this.makeSlideAnimation(direction, currentSlideItem, previousSlideItem_1);\r\n }\r\n else {\r\n this.outer\r\n .find('.lg-item')\r\n .removeClass('lg-prev-slide lg-current lg-next-slide');\r\n var touchPrev = void 0;\r\n var touchNext = void 0;\r\n if (numberOfGalleryItems > 2) {\r\n touchPrev = index - 1;\r\n touchNext = index + 1;\r\n if (index === 0 && prevIndex === numberOfGalleryItems - 1) {\r\n // next slide\r\n touchNext = 0;\r\n touchPrev = numberOfGalleryItems - 1;\r\n }\r\n else if (index === numberOfGalleryItems - 1 &&\r\n prevIndex === 0) {\r\n // prev slide\r\n touchNext = 0;\r\n touchPrev = numberOfGalleryItems - 1;\r\n }\r\n }\r\n else {\r\n touchPrev = 0;\r\n touchNext = 1;\r\n }\r\n if (direction === 'prev') {\r\n this.getSlideItem(touchNext).addClass('lg-next-slide');\r\n }\r\n else {\r\n this.getSlideItem(touchPrev).addClass('lg-prev-slide');\r\n }\r\n currentSlideItem.addClass('lg-current');\r\n }\r\n // Do not put load content in set timeout as it needs to load immediately when the gallery is opened\r\n if (!this.lGalleryOn) {\r\n this.loadContent(index, true);\r\n }\r\n else {\r\n setTimeout(function () {\r\n _this.loadContent(index, true);\r\n // Add title if this.settings.appendSubHtmlTo === lg-sub-html\r\n if (_this.settings.appendSubHtmlTo !== '.lg-item') {\r\n _this.addHtml(index);\r\n }\r\n }, this.settings.speed + 50 + (fromTouch ? 0 : this.settings.slideDelay));\r\n }\r\n setTimeout(function () {\r\n _this.lgBusy = false;\r\n previousSlideItem_1.removeClass('lg-slide-progress');\r\n _this.LGel.trigger(lGEvents.afterSlide, {\r\n prevIndex: prevIndex,\r\n index: index,\r\n fromTouch: fromTouch,\r\n fromThumb: fromThumb,\r\n });\r\n }, (this.lGalleryOn ? this.settings.speed + 100 : 100) + (fromTouch ? 0 : this.settings.slideDelay));\r\n }\r\n this.index = index;\r\n };\r\n LightGallery.prototype.updateCurrentCounter = function (index) {\r\n this.getElementById('lg-counter-current').html(index + 1 + '');\r\n };\r\n LightGallery.prototype.updateCounterTotal = function () {\r\n this.getElementById('lg-counter-all').html(this.galleryItems.length + '');\r\n };\r\n LightGallery.prototype.getSlideType = function (item) {\r\n if (item.__slideVideoInfo) {\r\n return 'video';\r\n }\r\n else if (item.iframe) {\r\n return 'iframe';\r\n }\r\n else {\r\n return 'image';\r\n }\r\n };\r\n LightGallery.prototype.touchMove = function (startCoords, endCoords, e) {\r\n var distanceX = endCoords.pageX - startCoords.pageX;\r\n var distanceY = endCoords.pageY - startCoords.pageY;\r\n var allowSwipe = false;\r\n if (this.swipeDirection) {\r\n allowSwipe = true;\r\n }\r\n else {\r\n if (Math.abs(distanceX) > 15) {\r\n this.swipeDirection = 'horizontal';\r\n allowSwipe = true;\r\n }\r\n else if (Math.abs(distanceY) > 15) {\r\n this.swipeDirection = 'vertical';\r\n allowSwipe = true;\r\n }\r\n }\r\n if (!allowSwipe) {\r\n return;\r\n }\r\n var $currentSlide = this.getSlideItem(this.index);\r\n if (this.swipeDirection === 'horizontal') {\r\n e === null || e === void 0 ? void 0 : e.preventDefault();\r\n // reset opacity and transition duration\r\n this.outer.addClass('lg-dragging');\r\n // move current slide\r\n this.setTranslate($currentSlide, distanceX, 0);\r\n // move next and prev slide with current slide\r\n var width = $currentSlide.get().offsetWidth;\r\n var slideWidthAmount = (width * 15) / 100;\r\n var gutter = slideWidthAmount - Math.abs((distanceX * 10) / 100);\r\n this.setTranslate(this.outer.find('.lg-prev-slide').first(), -width + distanceX - gutter, 0);\r\n this.setTranslate(this.outer.find('.lg-next-slide').first(), width + distanceX + gutter, 0);\r\n }\r\n else if (this.swipeDirection === 'vertical') {\r\n if (this.settings.swipeToClose) {\r\n e === null || e === void 0 ? void 0 : e.preventDefault();\r\n this.$container.addClass('lg-dragging-vertical');\r\n var opacity = 1 - Math.abs(distanceY) / window.innerHeight;\r\n this.$backdrop.css('opacity', opacity);\r\n var scale = 1 - Math.abs(distanceY) / (window.innerWidth * 2);\r\n this.setTranslate($currentSlide, 0, distanceY, scale, scale);\r\n if (Math.abs(distanceY) > 100) {\r\n this.outer\r\n .addClass('lg-hide-items')\r\n .removeClass('lg-components-open');\r\n }\r\n }\r\n }\r\n };\r\n LightGallery.prototype.touchEnd = function (endCoords, startCoords, event) {\r\n var _this = this;\r\n var distance;\r\n // keep slide animation for any mode while dragg/swipe\r\n if (this.settings.mode !== 'lg-slide') {\r\n this.outer.addClass('lg-slide');\r\n }\r\n // set transition duration\r\n setTimeout(function () {\r\n _this.$container.removeClass('lg-dragging-vertical');\r\n _this.outer\r\n .removeClass('lg-dragging lg-hide-items')\r\n .addClass('lg-components-open');\r\n var triggerClick = true;\r\n if (_this.swipeDirection === 'horizontal') {\r\n distance = endCoords.pageX - startCoords.pageX;\r\n var distanceAbs = Math.abs(endCoords.pageX - startCoords.pageX);\r\n if (distance < 0 &&\r\n distanceAbs > _this.settings.swipeThreshold) {\r\n _this.goToNextSlide(true);\r\n triggerClick = false;\r\n }\r\n else if (distance > 0 &&\r\n distanceAbs > _this.settings.swipeThreshold) {\r\n _this.goToPrevSlide(true);\r\n triggerClick = false;\r\n }\r\n }\r\n else if (_this.swipeDirection === 'vertical') {\r\n distance = Math.abs(endCoords.pageY - startCoords.pageY);\r\n if (_this.settings.closable &&\r\n _this.settings.swipeToClose &&\r\n distance > 100) {\r\n _this.closeGallery();\r\n return;\r\n }\r\n else {\r\n _this.$backdrop.css('opacity', 1);\r\n }\r\n }\r\n _this.outer.find('.lg-item').removeAttr('style');\r\n if (triggerClick &&\r\n Math.abs(endCoords.pageX - startCoords.pageX) < 5) {\r\n // Trigger click if distance is less than 5 pix\r\n var target = $LG(event.target);\r\n if (_this.isPosterElement(target)) {\r\n _this.LGel.trigger(lGEvents.posterClick);\r\n }\r\n }\r\n _this.swipeDirection = undefined;\r\n });\r\n // remove slide class once drag/swipe is completed if mode is not slide\r\n setTimeout(function () {\r\n if (!_this.outer.hasClass('lg-dragging') &&\r\n _this.settings.mode !== 'lg-slide') {\r\n _this.outer.removeClass('lg-slide');\r\n }\r\n }, this.settings.speed + 100);\r\n };\r\n LightGallery.prototype.enableSwipe = function () {\r\n var _this = this;\r\n var startCoords = {};\r\n var endCoords = {};\r\n var isMoved = false;\r\n var isSwiping = false;\r\n if (this.settings.enableSwipe) {\r\n this.$inner.on('touchstart.lg', function (e) {\r\n _this.dragOrSwipeEnabled = true;\r\n var $item = _this.getSlideItem(_this.index);\r\n if (($LG(e.target).hasClass('lg-item') ||\r\n $item.get().contains(e.target)) &&\r\n !_this.outer.hasClass('lg-zoomed') &&\r\n !_this.lgBusy &&\r\n e.touches.length === 1) {\r\n isSwiping = true;\r\n _this.touchAction = 'swipe';\r\n _this.manageSwipeClass();\r\n startCoords = {\r\n pageX: e.touches[0].pageX,\r\n pageY: e.touches[0].pageY,\r\n };\r\n }\r\n });\r\n this.$inner.on('touchmove.lg', function (e) {\r\n if (isSwiping &&\r\n _this.touchAction === 'swipe' &&\r\n e.touches.length === 1) {\r\n endCoords = {\r\n pageX: e.touches[0].pageX,\r\n pageY: e.touches[0].pageY,\r\n };\r\n _this.touchMove(startCoords, endCoords, e);\r\n isMoved = true;\r\n }\r\n });\r\n this.$inner.on('touchend.lg', function (event) {\r\n if (_this.touchAction === 'swipe') {\r\n if (isMoved) {\r\n isMoved = false;\r\n _this.touchEnd(endCoords, startCoords, event);\r\n }\r\n else if (isSwiping) {\r\n var target = $LG(event.target);\r\n if (_this.isPosterElement(target)) {\r\n _this.LGel.trigger(lGEvents.posterClick);\r\n }\r\n }\r\n _this.touchAction = undefined;\r\n isSwiping = false;\r\n }\r\n });\r\n }\r\n };\r\n LightGallery.prototype.enableDrag = function () {\r\n var _this = this;\r\n var startCoords = {};\r\n var endCoords = {};\r\n var isDraging = false;\r\n var isMoved = false;\r\n if (this.settings.enableDrag) {\r\n this.outer.on('mousedown.lg', function (e) {\r\n _this.dragOrSwipeEnabled = true;\r\n var $item = _this.getSlideItem(_this.index);\r\n if ($LG(e.target).hasClass('lg-item') ||\r\n $item.get().contains(e.target)) {\r\n if (!_this.outer.hasClass('lg-zoomed') && !_this.lgBusy) {\r\n e.preventDefault();\r\n if (!_this.lgBusy) {\r\n _this.manageSwipeClass();\r\n startCoords = {\r\n pageX: e.pageX,\r\n pageY: e.pageY,\r\n };\r\n isDraging = true;\r\n // ** Fix for webkit cursor issue https://code.google.com/p/chromium/issues/detail?id=26723\r\n _this.outer.get().scrollLeft += 1;\r\n _this.outer.get().scrollLeft -= 1;\r\n // *\r\n _this.outer\r\n .removeClass('lg-grab')\r\n .addClass('lg-grabbing');\r\n _this.LGel.trigger(lGEvents.dragStart);\r\n }\r\n }\r\n }\r\n });\r\n $LG(window).on(\"mousemove.lg.global\" + this.lgId, function (e) {\r\n if (isDraging && _this.lgOpened) {\r\n isMoved = true;\r\n endCoords = {\r\n pageX: e.pageX,\r\n pageY: e.pageY,\r\n };\r\n _this.touchMove(startCoords, endCoords);\r\n _this.LGel.trigger(lGEvents.dragMove);\r\n }\r\n });\r\n $LG(window).on(\"mouseup.lg.global\" + this.lgId, function (event) {\r\n if (!_this.lgOpened) {\r\n return;\r\n }\r\n var target = $LG(event.target);\r\n if (isMoved) {\r\n isMoved = false;\r\n _this.touchEnd(endCoords, startCoords, event);\r\n _this.LGel.trigger(lGEvents.dragEnd);\r\n }\r\n else if (_this.isPosterElement(target)) {\r\n _this.LGel.trigger(lGEvents.posterClick);\r\n }\r\n // Prevent execution on click\r\n if (isDraging) {\r\n isDraging = false;\r\n _this.outer.removeClass('lg-grabbing').addClass('lg-grab');\r\n }\r\n });\r\n }\r\n };\r\n LightGallery.prototype.triggerPosterClick = function () {\r\n var _this = this;\r\n this.$inner.on('click.lg', function (event) {\r\n if (!_this.dragOrSwipeEnabled &&\r\n _this.isPosterElement($LG(event.target))) {\r\n _this.LGel.trigger(lGEvents.posterClick);\r\n }\r\n });\r\n };\r\n LightGallery.prototype.manageSwipeClass = function () {\r\n var _touchNext = this.index + 1;\r\n var _touchPrev = this.index - 1;\r\n if (this.settings.loop && this.galleryItems.length > 2) {\r\n if (this.index === 0) {\r\n _touchPrev = this.galleryItems.length - 1;\r\n }\r\n else if (this.index === this.galleryItems.length - 1) {\r\n _touchNext = 0;\r\n }\r\n }\r\n this.outer.find('.lg-item').removeClass('lg-next-slide lg-prev-slide');\r\n if (_touchPrev > -1) {\r\n this.getSlideItem(_touchPrev).addClass('lg-prev-slide');\r\n }\r\n this.getSlideItem(_touchNext).addClass('lg-next-slide');\r\n };\r\n /**\r\n * Go to next slide\r\n * @param {Boolean} fromTouch - true if slide function called via touch event\r\n * @category lGPublicMethods\r\n * @example\r\n * const plugin = lightGallery();\r\n * plugin.goToNextSlide();\r\n * @see Demo\r\n */\r\n LightGallery.prototype.goToNextSlide = function (fromTouch) {\r\n var _this = this;\r\n var _loop = this.settings.loop;\r\n if (fromTouch && this.galleryItems.length < 3) {\r\n _loop = false;\r\n }\r\n if (!this.lgBusy) {\r\n if (this.index + 1 < this.galleryItems.length) {\r\n this.index++;\r\n this.LGel.trigger(lGEvents.beforeNextSlide, {\r\n index: this.index,\r\n });\r\n this.slide(this.index, !!fromTouch, false, 'next');\r\n }\r\n else {\r\n if (_loop) {\r\n this.index = 0;\r\n this.LGel.trigger(lGEvents.beforeNextSlide, {\r\n index: this.index,\r\n });\r\n this.slide(this.index, !!fromTouch, false, 'next');\r\n }\r\n else if (this.settings.slideEndAnimation && !fromTouch) {\r\n this.outer.addClass('lg-right-end');\r\n setTimeout(function () {\r\n _this.outer.removeClass('lg-right-end');\r\n }, 400);\r\n }\r\n }\r\n }\r\n };\r\n /**\r\n * Go to previous slides\r\n * @param {Boolean} fromTouch - true if slide function called via touch event\r\n * @category lGPublicMethods\r\n * @example\r\n * const plugin = lightGallery({});\r\n * plugin.goToPrevSlide();\r\n * @see Demo\r\n *\r\n */\r\n LightGallery.prototype.goToPrevSlide = function (fromTouch) {\r\n var _this = this;\r\n var _loop = this.settings.loop;\r\n if (fromTouch && this.galleryItems.length < 3) {\r\n _loop = false;\r\n }\r\n if (!this.lgBusy) {\r\n if (this.index > 0) {\r\n this.index--;\r\n this.LGel.trigger(lGEvents.beforePrevSlide, {\r\n index: this.index,\r\n fromTouch: fromTouch,\r\n });\r\n this.slide(this.index, !!fromTouch, false, 'prev');\r\n }\r\n else {\r\n if (_loop) {\r\n this.index = this.galleryItems.length - 1;\r\n this.LGel.trigger(lGEvents.beforePrevSlide, {\r\n index: this.index,\r\n fromTouch: fromTouch,\r\n });\r\n this.slide(this.index, !!fromTouch, false, 'prev');\r\n }\r\n else if (this.settings.slideEndAnimation && !fromTouch) {\r\n this.outer.addClass('lg-left-end');\r\n setTimeout(function () {\r\n _this.outer.removeClass('lg-left-end');\r\n }, 400);\r\n }\r\n }\r\n }\r\n };\r\n LightGallery.prototype.keyPress = function () {\r\n var _this = this;\r\n $LG(window).on(\"keydown.lg.global\" + this.lgId, function (e) {\r\n if (_this.lgOpened &&\r\n _this.settings.escKey === true &&\r\n e.keyCode === 27) {\r\n e.preventDefault();\r\n if (_this.settings.allowMediaOverlap &&\r\n _this.outer.hasClass('lg-can-toggle') &&\r\n _this.outer.hasClass('lg-components-open')) {\r\n _this.outer.removeClass('lg-components-open');\r\n }\r\n else {\r\n _this.closeGallery();\r\n }\r\n }\r\n if (_this.lgOpened && _this.galleryItems.length > 1) {\r\n if (e.keyCode === 37) {\r\n e.preventDefault();\r\n _this.goToPrevSlide();\r\n }\r\n if (e.keyCode === 39) {\r\n e.preventDefault();\r\n _this.goToNextSlide();\r\n }\r\n }\r\n });\r\n };\r\n LightGallery.prototype.arrow = function () {\r\n var _this = this;\r\n this.getElementById('lg-prev').on('click.lg', function () {\r\n _this.goToPrevSlide();\r\n });\r\n this.getElementById('lg-next').on('click.lg', function () {\r\n _this.goToNextSlide();\r\n });\r\n };\r\n LightGallery.prototype.arrowDisable = function (index) {\r\n // Disable arrows if settings.hideControlOnEnd is true\r\n if (!this.settings.loop && this.settings.hideControlOnEnd) {\r\n var $prev = this.getElementById('lg-prev');\r\n var $next = this.getElementById('lg-next');\r\n if (index + 1 === this.galleryItems.length) {\r\n $next.attr('disabled', 'disabled').addClass('disabled');\r\n }\r\n else {\r\n $next.removeAttr('disabled').removeClass('disabled');\r\n }\r\n if (index === 0) {\r\n $prev.attr('disabled', 'disabled').addClass('disabled');\r\n }\r\n else {\r\n $prev.removeAttr('disabled').removeClass('disabled');\r\n }\r\n }\r\n };\r\n LightGallery.prototype.setTranslate = function ($el, xValue, yValue, scaleX, scaleY) {\r\n if (scaleX === void 0) { scaleX = 1; }\r\n if (scaleY === void 0) { scaleY = 1; }\r\n $el.css('transform', 'translate3d(' +\r\n xValue +\r\n 'px, ' +\r\n yValue +\r\n 'px, 0px) scale3d(' +\r\n scaleX +\r\n ', ' +\r\n scaleY +\r\n ', 1)');\r\n };\r\n LightGallery.prototype.mousewheel = function () {\r\n var _this = this;\r\n var lastCall = 0;\r\n this.outer.on('wheel.lg', function (e) {\r\n if (!e.deltaY || _this.galleryItems.length < 2) {\r\n return;\r\n }\r\n e.preventDefault();\r\n var now = new Date().getTime();\r\n if (now - lastCall < 1000) {\r\n return;\r\n }\r\n lastCall = now;\r\n if (e.deltaY > 0) {\r\n _this.goToNextSlide();\r\n }\r\n else if (e.deltaY < 0) {\r\n _this.goToPrevSlide();\r\n }\r\n });\r\n };\r\n LightGallery.prototype.isSlideElement = function (target) {\r\n return (target.hasClass('lg-outer') ||\r\n target.hasClass('lg-item') ||\r\n target.hasClass('lg-img-wrap'));\r\n };\r\n LightGallery.prototype.isPosterElement = function (target) {\r\n var playButton = this.getSlideItem(this.index)\r\n .find('.lg-video-play-button')\r\n .get();\r\n return (target.hasClass('lg-video-poster') ||\r\n target.hasClass('lg-video-play-button') ||\r\n (playButton && playButton.contains(target.get())));\r\n };\r\n /**\r\n * Maximize minimize inline gallery.\r\n * @category lGPublicMethods\r\n */\r\n LightGallery.prototype.toggleMaximize = function () {\r\n var _this = this;\r\n this.getElementById('lg-maximize').on('click.lg', function () {\r\n _this.$container.toggleClass('lg-inline');\r\n _this.refreshOnResize();\r\n });\r\n };\r\n LightGallery.prototype.invalidateItems = function () {\r\n for (var index = 0; index < this.items.length; index++) {\r\n var element = this.items[index];\r\n var $element = $LG(element);\r\n $element.off(\"click.lgcustom-item-\" + $element.attr('data-lg-id'));\r\n }\r\n };\r\n LightGallery.prototype.trapFocus = function () {\r\n var _this = this;\r\n this.$container.get().focus({\r\n preventScroll: true,\r\n });\r\n $LG(window).on(\"keydown.lg.global\" + this.lgId, function (e) {\r\n if (!_this.lgOpened) {\r\n return;\r\n }\r\n var isTabPressed = e.key === 'Tab' || e.keyCode === 9;\r\n if (!isTabPressed) {\r\n return;\r\n }\r\n var focusableEls = utils.getFocusableElements(_this.$container.get());\r\n var firstFocusableEl = focusableEls[0];\r\n var lastFocusableEl = focusableEls[focusableEls.length - 1];\r\n if (e.shiftKey) {\r\n if (document.activeElement === firstFocusableEl) {\r\n lastFocusableEl.focus();\r\n e.preventDefault();\r\n }\r\n }\r\n else {\r\n if (document.activeElement === lastFocusableEl) {\r\n firstFocusableEl.focus();\r\n e.preventDefault();\r\n }\r\n }\r\n });\r\n };\r\n LightGallery.prototype.manageCloseGallery = function () {\r\n var _this = this;\r\n if (!this.settings.closable)\r\n return;\r\n var mousedown = false;\r\n this.getElementById('lg-close').on('click.lg', function () {\r\n _this.closeGallery();\r\n });\r\n if (this.settings.closeOnTap) {\r\n // If you drag the slide and release outside gallery gets close on chrome\r\n // for preventing this check mousedown and mouseup happened on .lg-item or lg-outer\r\n this.outer.on('mousedown.lg', function (e) {\r\n var target = $LG(e.target);\r\n if (_this.isSlideElement(target)) {\r\n mousedown = true;\r\n }\r\n else {\r\n mousedown = false;\r\n }\r\n });\r\n this.outer.on('mousemove.lg', function () {\r\n mousedown = false;\r\n });\r\n this.outer.on('mouseup.lg', function (e) {\r\n var target = $LG(e.target);\r\n if (_this.isSlideElement(target) && mousedown) {\r\n if (!_this.outer.hasClass('lg-dragging')) {\r\n _this.closeGallery();\r\n }\r\n }\r\n });\r\n }\r\n };\r\n /**\r\n * Close lightGallery if it is opened.\r\n *\r\n * @description If closable is false in the settings, you need to pass true via closeGallery method to force close gallery\r\n * @return returns the estimated time to close gallery completely including the close animation duration\r\n * @category lGPublicMethods\r\n * @example\r\n * const plugin = lightGallery();\r\n * plugin.closeGallery();\r\n *\r\n */\r\n LightGallery.prototype.closeGallery = function (force) {\r\n var _this = this;\r\n if (!this.lgOpened || (!this.settings.closable && !force)) {\r\n return 0;\r\n }\r\n this.LGel.trigger(lGEvents.beforeClose);\r\n if (this.settings.resetScrollPosition && !this.settings.hideScrollbar) {\r\n $LG(window).scrollTop(this.prevScrollTop);\r\n }\r\n var currentItem = this.items[this.index];\r\n var transform;\r\n if (this.zoomFromOrigin && currentItem) {\r\n var _a = this.mediaContainerPosition, top_4 = _a.top, bottom = _a.bottom;\r\n var _b = this.galleryItems[this.index], __slideVideoInfo = _b.__slideVideoInfo, poster = _b.poster;\r\n var imageSize = utils.getSize(currentItem, this.outer, top_4 + bottom, __slideVideoInfo && poster && this.settings.videoMaxSize);\r\n transform = utils.getTransform(currentItem, this.outer, top_4, bottom, imageSize);\r\n }\r\n if (this.zoomFromOrigin && transform) {\r\n this.outer.addClass('lg-closing lg-zoom-from-image');\r\n this.getSlideItem(this.index)\r\n .addClass('lg-start-end-progress')\r\n .css('transition-duration', this.settings.startAnimationDuration + 'ms')\r\n .css('transform', transform);\r\n }\r\n else {\r\n this.outer.addClass('lg-hide-items');\r\n // lg-zoom-from-image is used for setting the opacity to 1 if zoomFromOrigin is true\r\n // If the closing item doesn't have the lg-size attribute, remove this class to avoid the closing css conflicts\r\n this.outer.removeClass('lg-zoom-from-image');\r\n }\r\n // Unbind all events added by lightGallery\r\n // @todo\r\n //this.$el.off('.lg.tm');\r\n this.destroyModules();\r\n this.lGalleryOn = false;\r\n this.isDummyImageRemoved = false;\r\n this.zoomFromOrigin = this.settings.zoomFromOrigin;\r\n clearTimeout(this.hideBarTimeout);\r\n this.hideBarTimeout = false;\r\n $LG('html').removeClass('lg-on');\r\n this.outer.removeClass('lg-visible lg-components-open');\r\n // Resetting opacity to 0 isd required as vertical swipe to close function adds inline opacity.\r\n this.$backdrop.removeClass('in').css('opacity', 0);\r\n var removeTimeout = this.zoomFromOrigin && transform\r\n ? Math.max(this.settings.startAnimationDuration, this.settings.backdropDuration)\r\n : this.settings.backdropDuration;\r\n this.$container.removeClass('lg-show-in');\r\n // Once the closign animation is completed and gallery is invisible\r\n setTimeout(function () {\r\n if (_this.zoomFromOrigin && transform) {\r\n _this.outer.removeClass('lg-zoom-from-image');\r\n }\r\n _this.$container.removeClass('lg-show');\r\n // Reset scrollbar\r\n _this.resetScrollBar();\r\n // Need to remove inline opacity as it is used in the stylesheet as well\r\n _this.$backdrop\r\n .removeAttr('style')\r\n .css('transition-duration', _this.settings.backdropDuration + 'ms');\r\n _this.outer.removeClass(\"lg-closing \" + _this.settings.startClass);\r\n _this.getSlideItem(_this.index).removeClass('lg-start-end-progress');\r\n _this.$inner.empty();\r\n if (_this.lgOpened) {\r\n _this.LGel.trigger(lGEvents.afterClose, {\r\n instance: _this,\r\n });\r\n }\r\n if (_this.$container.get()) {\r\n _this.$container.get().blur();\r\n }\r\n _this.lgOpened = false;\r\n }, removeTimeout + 100);\r\n return removeTimeout + 100;\r\n };\r\n LightGallery.prototype.initModules = function () {\r\n this.plugins.forEach(function (module) {\r\n try {\r\n module.init();\r\n }\r\n catch (err) {\r\n console.warn(\"lightGallery:- make sure lightGallery module is properly initiated\");\r\n }\r\n });\r\n };\r\n LightGallery.prototype.destroyModules = function (destroy) {\r\n this.plugins.forEach(function (module) {\r\n try {\r\n if (destroy) {\r\n module.destroy();\r\n }\r\n else {\r\n module.closeGallery && module.closeGallery();\r\n }\r\n }\r\n catch (err) {\r\n console.warn(\"lightGallery:- make sure lightGallery module is properly destroyed\");\r\n }\r\n });\r\n };\r\n /**\r\n * Refresh lightGallery with new set of children.\r\n *\r\n * @description This is useful to update the gallery when the child elements are changed without calling destroy method.\r\n *\r\n * If you are using dynamic mode, you can pass the modified array of dynamicEl as the first parameter to refresh the dynamic gallery\r\n * @see Demo\r\n * @category lGPublicMethods\r\n * @example\r\n * const plugin = lightGallery();\r\n * // Delete or add children, then call\r\n * plugin.refresh();\r\n *\r\n */\r\n LightGallery.prototype.refresh = function (galleryItems) {\r\n if (!this.settings.dynamic) {\r\n this.invalidateItems();\r\n }\r\n if (galleryItems) {\r\n this.galleryItems = galleryItems;\r\n }\r\n else {\r\n this.galleryItems = this.getItems();\r\n }\r\n this.updateControls();\r\n this.openGalleryOnItemClick();\r\n this.LGel.trigger(lGEvents.updateSlides);\r\n };\r\n LightGallery.prototype.updateControls = function () {\r\n this.addSlideVideoInfo(this.galleryItems);\r\n this.updateCounterTotal();\r\n this.manageSingleSlideClassName();\r\n };\r\n LightGallery.prototype.destroyGallery = function () {\r\n this.destroyModules(true);\r\n if (!this.settings.dynamic) {\r\n this.invalidateItems();\r\n }\r\n $LG(window).off(\".lg.global\" + this.lgId);\r\n this.LGel.off('.lg');\r\n this.$container.remove();\r\n };\r\n /**\r\n * Destroy lightGallery.\r\n * Destroy lightGallery and its plugin instances completely\r\n *\r\n * @description This method also calls CloseGallery function internally. Returns the time takes to completely close and destroy the instance.\r\n * In case if you want to re-initialize lightGallery right after destroying it, initialize it only once the destroy process is completed.\r\n * You can use refresh method most of the times.\r\n * @category lGPublicMethods\r\n * @example\r\n * const plugin = lightGallery();\r\n * plugin.destroy();\r\n *\r\n */\r\n LightGallery.prototype.destroy = function () {\r\n var closeTimeout = this.closeGallery(true);\r\n if (closeTimeout) {\r\n setTimeout(this.destroyGallery.bind(this), closeTimeout);\r\n }\r\n else {\r\n this.destroyGallery();\r\n }\r\n return closeTimeout;\r\n };\r\n return LightGallery;\r\n}());\n\nfunction lightGallery(el, options) {\r\n return new LightGallery(el, options);\r\n}\n\nexport default lightGallery;\n//# sourceMappingURL=lightgallery.es5.js.map\n","import { PlayerParams } from './lg-video-utils';\n\nexport interface VideoSettings {\n /**\n * Enable/DIsable first video autoplay.\n * @description Autoplay has to be managed using this setting.\n * Autoplay in PlayerParams doesn't have any effect.\n */\n autoplayFirstVideo: boolean;\n\n /**\n * Change YouTube player parameters.\n * You can find the list of YouTube player parameters from the following link\n * YouTube player parameters\n * @example\n * lightGallery(document.getElementById('lightGallery'), {\n * youTubePlayerParams: {\n * modestbranding : 1,\n * showinfo : 0,\n * controls : 0\n * }\n * })\n */\n youTubePlayerParams: any;\n\n /**\n * Change Vimeo player parameters.\n * You can find the list of vimeo player parameters from the following link\n * Vimeo player parameters\n * @example\n * lightGallery(document.getElementById('lightGallery'), {\n * vimeoPlayerParams: {\n * byline : 0,\n * portrait : 0,\n * color : 'CCCCCC'\n * }\n * })\n */\n vimeoPlayerParams: PlayerParams;\n\n /**\n * Change Wistia player parameters.\n * You can find the list of Wistia player parameters from the following link\n * Vimeo player parameters\n */\n wistiaPlayerParams: any;\n\n /**\n * Go to next slide when video is ended\n * Note - this doesn't work with YouTube videos at the moment\n */\n gotoNextSlideOnVideoEnd: boolean;\n\n /**\n * Autoplay video on slide change\n * @description Make sure you set preload:\"none\"\n */\n autoplayVideoOnSlide: boolean;\n\n /**\n * Enbale videojs custom video player\n *
\n * Dependency - You need to include videoJs on your document to enable videojs player\n *
\n */\n videojs: boolean;\n\n /**\n * Class name of the videojs theme\n * You need to include the theme stylesheet on your document. More info\n * @version V2.5.0\n */\n videojsTheme: string;\n\n /**\n * Videojs player options\n */\n videojsOptions: any;\n}\nexport const videoSettings: VideoSettings = {\n autoplayFirstVideo: true,\n youTubePlayerParams: false,\n vimeoPlayerParams: false,\n wistiaPlayerParams: false,\n gotoNextSlideOnVideoEnd: true,\n autoplayVideoOnSlide: false,\n videojs: false,\n videojsTheme: '',\n videojsOptions: {},\n};\n","import { LightGallery } from './lightgallery';\nimport { VideoSource } from './plugins/video/types';\n\n/**\n * List of lightGallery events\n * All events should be documented here\n * Below interfaces are used to build the website documentations\n * */\nexport const lGEvents: {\n [key: string]: string;\n} = {\n afterAppendSlide: 'lgAfterAppendSlide',\n init: 'lgInit',\n hasVideo: 'lgHasVideo',\n containerResize: 'lgContainerResize',\n updateSlides: 'lgUpdateSlides',\n afterAppendSubHtml: 'lgAfterAppendSubHtml',\n beforeOpen: 'lgBeforeOpen',\n afterOpen: 'lgAfterOpen',\n slideItemLoad: 'lgSlideItemLoad',\n beforeSlide: 'lgBeforeSlide',\n afterSlide: 'lgAfterSlide',\n posterClick: 'lgPosterClick',\n dragStart: 'lgDragStart',\n dragMove: 'lgDragMove',\n dragEnd: 'lgDragEnd',\n beforeNextSlide: 'lgBeforeNextSlide',\n beforePrevSlide: 'lgBeforePrevSlide',\n beforeClose: 'lgBeforeClose',\n afterClose: 'lgAfterClose',\n rotateLeft: 'lgRotateLeft',\n rotateRight: 'lgRotateRight',\n flipHorizontal: 'lgFlipHorizontal',\n flipVertical: 'lgFlipVertical',\n autoplay: 'lgAutoplay',\n autoplayStart: 'lgAutoplayStart',\n autoplayStop: 'lgAutoplayStop',\n};\n\n// Follow the below format for the event documentation\n// @method is the method name when event is used with Angular/React components\n\n/**\n * Fired only once when lightGallery is initialized\n * @name lgInit\n * @method onInit\n * @example\n * const lg = document.getElementById('custom-events-demo');\n * // Perform any action on lightGallery initialization.\n * // Init event returns the plugin instance that can be used to call any lightGalley public method\n * let pluginInstance = null;\n * lg.addEventListener('lgInit', (event) => {\n * pluginInstance = event.detail.instance;\n * });\n * lightGallery(lg);\n * @see Methods\n */\nexport interface InitDetail {\n /**\n * lightGallery plugin instance\n */\n instance: LightGallery;\n}\n\n/**\n * Fired when the slide content has been inserted into it's slide container.\n * @name lgAfterAppendSlide\n * @method onAfterAppendSlide\n */\nexport interface AfterAppendSlideEventDetail {\n /**\n * Index of the slide\n */\n index: number;\n}\n\n/**\n * Fired immediately before opening the gallery\n * @name lgBeforeOpen\n * @method onBeforeOpen\n */\nexport interface BeforeOpenDetail {}\n\n/**\n * Fired immediately after opening the gallery\n * @name lgAfterOpen\n * @method onAfterOpen\n */\nexport interface AfterOpenDetail {}\n\n/**\n * Fired once the media inside the slide has been completely loaded .\n * @name lgSlideItemLoad\n * @method onSlideItemLoad\n */\nexport interface SlideItemLoadDetail {\n /**\n * Index of the slide\n */\n index: number;\n /**\n * For the first slide, lightGallery adds some delay for displaying the loaded slide item.\n * This delay is required for the transition effect when the slide item is displayed\n * Respect the delay when you use this event\n */\n delay: number;\n\n // Will be true for the first slide\n isFirstSlide: boolean;\n}\n\n/**\n * Fired immediately before each slide transition.\n * @name lgBeforeSlide\n * @method onBeforeSlide\n * @example\n * const lg = document.getElementById('custom-events-demo');\n * // Perform any action before each slide transition\n * lg.addEventListener('lgBeforeSlide', (event) => {\n * const { index, prevIndex } = event.detail;\n * alert(index, prevIndex);\n * });\n * lightGallery(lg);\n */\nexport interface BeforeSlideDetail {\n /**\n * Index of the previous slide\n */\n prevIndex: number;\n /**\n * Index of the slide\n */\n index: number;\n /**\n * true if slide function called via touch event or mouse drag\n */\n fromTouch: boolean;\n /**\n * true if slide function called via thumbnail click\n */\n fromThumb: boolean;\n}\n\n/**\n * Fired immediately after each slide transition.\n * @name lgAfterSlide\n * @method onAfterSlide\n */\nexport interface AfterSlideDetail {\n /**\n * Index of the previous slide\n */\n prevIndex: number;\n /**\n * Index of the slide\n */\n index: number;\n /**\n * true if slide function called via touch event or mouse drag\n */\n fromTouch: boolean;\n /**\n * true if slide function called via thumbnail click\n */\n fromThumb: boolean;\n}\n\n/**\n * Fired when the video poster is clicked.\n * @name lgPosterClick\n * @method onPosterClick\n */\nexport interface PosterClickDetail {}\n\n/**\n * Fired when the drag event to move to different slide starts.\n * @name lgDragStart\n * @method onDragStart\n */\nexport interface DragStartDetail {}\n\n/**\n * Fired periodically during the drag operation.\n * @name lgDragMove\n * @method onDragMove\n */\nexport interface DragMoveDetail {}\n\n/**\n * Fired when the user has finished the drag operation\n * @name lgDragEnd\n * @method onDragEnd\n */\nexport interface DragEndDetail {}\n\n/**\n * Fired immediately before the start of the close process.\n * @name lgBeforeClose\n * @method onBeforeClose\n */\nexport interface BeforeCloseDetail {}\n\n/**\n * Fired immediately once lightGallery is closed.\n * @name lgAfterClose\n * @method onAfterClose\n */\nexport interface AfterCloseDetail {\n /**\n * lightGallery plugin instance\n */\n instance: LightGallery;\n}\n\n/**\n * Fired immediately before each \"next\" slide transition\n * @name lgBeforeNextSlide\n * @method onBeforeNextSlide\n */\nexport interface BeforeNextSlideDetail {\n /**\n * Index of the slide\n */\n index: number;\n /**\n * true if slide function called via touch event or mouse drag\n */\n fromTouch: boolean;\n}\n\n/**\n * Fired immediately before each \"prev\" slide transition\n * @name lgBeforePrevSlide\n * @method onBeforePrevSlide\n */\nexport interface BeforePrevSlideDetail {\n /**\n * Index of the slide\n */\n index: number;\n /**\n * true if slide function called via touch event or mouse drag\n */\n fromTouch: boolean;\n}\n\n/**\n * Fired when the sub-html content (ex : title/ description) has been appended into the slide.\n * @name lgAfterAppendSubHtml\n * @method onAfterAppendSubHtml\n */\nexport interface AfterAppendSubHtmlDetail {\n /**\n * Index of the slide\n */\n index: number;\n}\n\n/**\n * Fired when the lightGallery container has been resized.\n * @name lgContainerResize\n * @method onContainerResize\n */\nexport interface ContainerResizeDetail {\n /**\n * Index of the slide\n */\n index: number;\n}\n\n/**\n * Fired when lightGallery detects video slide\n * @name lgHasVideo\n * @method onHasVideo\n */\nexport interface HasVideoDetail {\n /**\n * Index of the slide,\n */\n index: number;\n /**\n * Video source\n */\n src: string;\n /**\n * HTML5 video source if available\n *

\n HTML5 video source = source: {\n src: string;\n type: string;\n }[];\n attributes: HTMLVideoElement;\n *

\n */\n html5Video: VideoSource;\n /**\n * True if video has poster\n */\n hasPoster: boolean;\n}\n\n/**\n * Fired when the image is rotated in anticlockwise direction\n * @name lgRotateLeft\n * @method onRotateLeft\n */\nexport interface RotateLeftDetail {\n /**\n * Index of the slide\n */\n index: number;\n}\n\n/**\n * Fired when the image is rotated in clockwise direction\n * @name lgRotateRight\n * @method onRotateRight\n */\nexport interface RotateRightDetail {\n /**\n * Index of the slide\n */\n index: number;\n}\n\n/**\n * Fired when the image is flipped horizontally\n * @name lgFlipHorizontal\n * @method onFlipHorizontal\n */\nexport interface FlipHorizontalDetail {\n /**\n * Index of the slide\n */\n index: number;\n}\n\n/**\n * Fired when the image is flipped vertically\n * @name lgFlipVertical\n * @method onFlipVertical\n */\nexport interface FlipVerticalDetail {\n /**\n * Index of the slide\n */\n index: number;\n}\n","import { VideoInfo } from '../../types';\nexport type PlayerParams = Record | boolean;\n\nexport type YouTubeParams = {\n [x: string]: string | number | boolean;\n};\n\nexport const param = (obj: YouTubeParams): string => {\n return Object.keys(obj)\n .map(function (k) {\n return encodeURIComponent(k) + '=' + encodeURIComponent(obj[k]);\n })\n .join('&');\n};\nexport const paramsToObject = (url: string): YouTubeParams => {\n const paramas = url\n .slice(1)\n .split('&')\n .map((p) => p.split('='))\n .reduce((obj: any, pair) => {\n const [key, value] = pair.map(decodeURIComponent);\n obj[key] = value;\n return obj;\n }, {});\n return paramas;\n};\n\nexport const getYouTubeParams = (\n videoInfo: VideoInfo,\n youTubePlayerParamsSettings: YouTubeParams | false,\n): string => {\n if (!videoInfo.youtube) return '';\n const slideUrlParams = videoInfo.youtube[2]\n ? paramsToObject(videoInfo.youtube[2])\n : '';\n\n // For youtube first params gets priority if duplicates found\n const defaultYouTubePlayerParams = {\n wmode: 'opaque',\n autoplay: 0,\n mute: 1,\n enablejsapi: 1,\n };\n\n const playerParamsSettings = youTubePlayerParamsSettings || {};\n\n const youTubePlayerParams = {\n ...defaultYouTubePlayerParams,\n ...playerParamsSettings,\n ...slideUrlParams,\n };\n\n const youTubeParams = `?${param(youTubePlayerParams)}`;\n return youTubeParams;\n};\n\nexport const isYouTubeNoCookie = (url: string): boolean => {\n return url.includes('youtube-nocookie.com');\n};\n\nexport const getVimeoURLParams = (\n defaultParams: PlayerParams,\n videoInfo?: VideoInfo,\n): string => {\n if (!videoInfo || !videoInfo.vimeo) return '';\n let urlParams = videoInfo.vimeo[2] || '';\n\n const defaultPlayerParams =\n defaultParams && Object.keys(defaultParams).length !== 0\n ? '&' + param(defaultParams as any)\n : '';\n\n // Support private video\n const urlWithHash = videoInfo.vimeo[0].split('/').pop() || '';\n const urlWithHashWithParams = urlWithHash.split('?')[0] || '';\n const hash = urlWithHashWithParams.split('#')[0];\n\n const isPrivate = videoInfo.vimeo[1] !== hash;\n if (isPrivate) {\n urlParams = urlParams.replace(`/${hash}`, '');\n }\n\n urlParams =\n urlParams[0] == '?' ? '&' + urlParams.slice(1) : urlParams || '';\n\n // For vimeo last params gets priority if duplicates found\n const vimeoPlayerParams = `?autoplay=0&muted=1${\n isPrivate ? `&h=${hash}` : ''\n }${defaultPlayerParams}${urlParams}`;\n return vimeoPlayerParams;\n};\n","/**\n * Video module for lightGallery\n * Supports HTML5, YouTube, Vimeo, wistia videos\n *\n *\n * @ref Wistia\n * https://wistia.com/support/integrations/wordpress(How to get url)\n * https://wistia.com/support/developers/embed-options#using-embed-options\n * https://wistia.com/support/developers/player-api\n * https://wistia.com/support/developers/construct-an-embed-code\n * http://jsfiddle.net/xvnm7xLm/\n * https://developer.mozilla.org/en-US/docs/Web/HTML/Element/video\n * https://wistia.com/support/embed-and-share/sharing-videos\n * https://private-sharing.wistia.com/medias/mwhrulrucj\n *\n * @ref Youtube\n * https://developers.google.com/youtube/player_parameters#enablejsapi\n * https://developers.google.com/youtube/iframe_api_reference\n * https://developer.chrome.com/blog/autoplay/#iframe-delegation\n *\n * @ref Vimeo\n * https://stackoverflow.com/questions/10488943/easy-way-to-get-vimeo-id-from-a-vimeo-url\n * https://vimeo.zendesk.com/hc/en-us/articles/360000121668-Starting-playback-at-a-specific-timecode\n * https://vimeo.zendesk.com/hc/en-us/articles/360001494447-Using-Player-Parameters\n */\n\nimport { VideoSettings, videoSettings } from './lg-video-settings';\nimport { LightGallery } from '../../lightgallery';\nimport { lgQuery } from '../../lgQuery';\nimport {\n CustomEventAfterSlide,\n CustomEventHasVideo,\n CustomEventSlideItemLoad,\n VideoInfo,\n} from '../../types';\nimport { lGEvents } from '../../lg-events';\nimport { VideoSource } from './types';\nimport {\n getVimeoURLParams,\n getYouTubeParams,\n isYouTubeNoCookie,\n param,\n} from './lg-video-utils';\n\ndeclare let Vimeo: any;\ndeclare let videojs: any;\ndeclare global {\n interface Window {\n _wq: any;\n Vimeo: any;\n }\n}\nexport default class Video {\n private core: LightGallery;\n private settings: VideoSettings;\n constructor(instance: LightGallery) {\n // get lightGallery core plugin instance\n this.core = instance;\n this.settings = { ...videoSettings, ...this.core.settings };\n\n return this;\n }\n init() {\n /**\n * Event triggered when video url found without poster\n * Append video HTML\n * Play if autoplayFirstVideo is true\n */\n this.core.LGel.on(\n `${lGEvents.hasVideo}.video`,\n this.onHasVideo.bind(this),\n );\n\n this.core.LGel.on(`${lGEvents.posterClick}.video`, () => {\n const $el = this.core.getSlideItem(this.core.index);\n this.loadVideoOnPosterClick($el);\n });\n this.core.LGel.on(\n `${lGEvents.slideItemLoad}.video`,\n this.onSlideItemLoad.bind(this),\n );\n\n // @desc fired immediately before each slide transition.\n this.core.LGel.on(\n `${lGEvents.beforeSlide}.video`,\n this.onBeforeSlide.bind(this),\n );\n\n // @desc fired immediately after each slide transition.\n this.core.LGel.on(\n `${lGEvents.afterSlide}.video`,\n this.onAfterSlide.bind(this),\n );\n }\n\n /**\n * @desc Event triggered when a slide is completely loaded\n *\n * @param {Event} event - lightGalley custom event\n */\n onSlideItemLoad(event: CustomEventSlideItemLoad): void {\n const { isFirstSlide, index } = event.detail;\n\n // Should check the active slide as well as user may have moved to different slide before the first slide is loaded\n if (\n this.settings.autoplayFirstVideo &&\n isFirstSlide &&\n index === this.core.index\n ) {\n // Delay is just for the transition effect on video load\n setTimeout(() => {\n this.loadAndPlayVideo(index);\n }, 200);\n }\n\n // Should not call on first slide. should check only if the slide is active\n if (\n !isFirstSlide &&\n this.settings.autoplayVideoOnSlide &&\n index === this.core.index\n ) {\n this.loadAndPlayVideo(index);\n }\n }\n\n /**\n * @desc Event triggered when video url or poster found\n * Append video HTML is poster is not given\n * Play if autoplayFirstVideo is true\n *\n * @param {Event} event - Javascript Event object.\n */\n onHasVideo(event: CustomEventHasVideo): void {\n const { index, src, html5Video, hasPoster } = event.detail;\n if (!hasPoster) {\n // All functions are called separately if poster exist in loadVideoOnPosterClick function\n\n this.appendVideos(this.core.getSlideItem(index), {\n src,\n addClass: 'lg-object',\n index,\n html5Video,\n });\n\n // Automatically navigate to next slide once video reaches the end.\n this.gotoNextSlideOnVideoEnd(src, index);\n }\n }\n\n /**\n * @desc fired immediately before each slide transition.\n * Pause the previous video\n * Hide the download button if the slide contains YouTube, Vimeo, or Wistia videos.\n *\n * @param {Event} event - Javascript Event object.\n * @param {number} prevIndex - Previous index of the slide.\n * @param {number} index - Current index of the slide\n */\n onBeforeSlide(event: CustomEvent): void {\n if (this.core.lGalleryOn) {\n const { prevIndex } = event.detail;\n this.pauseVideo(prevIndex);\n }\n }\n\n /**\n * @desc fired immediately after each slide transition.\n * Play video if autoplayVideoOnSlide option is enabled.\n *\n * @param {Event} event - Javascript Event object.\n * @param {number} prevIndex - Previous index of the slide.\n * @param {number} index - Current index of the slide\n * @todo should check on onSlideLoad as well if video is not loaded on after slide\n */\n onAfterSlide(event: CustomEventAfterSlide): void {\n const { index, prevIndex } = event.detail;\n // Do not call on first slide\n const $slide = this.core.getSlideItem(index);\n if (this.settings.autoplayVideoOnSlide && index !== prevIndex) {\n if ($slide.hasClass('lg-complete')) {\n setTimeout(() => {\n this.loadAndPlayVideo(index);\n }, 100);\n }\n }\n }\n\n loadAndPlayVideo(index: number): void {\n const $slide = this.core.getSlideItem(index);\n const currentGalleryItem = this.core.galleryItems[index];\n if (currentGalleryItem.poster) {\n this.loadVideoOnPosterClick($slide, true);\n } else {\n this.playVideo(index);\n }\n }\n\n /**\n * Play HTML5, Youtube, Vimeo or Wistia videos in a particular slide.\n * @param {number} index - Index of the slide\n */\n playVideo(index: number) {\n this.controlVideo(index, 'play');\n }\n\n /**\n * Pause HTML5, Youtube, Vimeo or Wistia videos in a particular slide.\n * @param {number} index - Index of the slide\n */\n pauseVideo(index: number) {\n this.controlVideo(index, 'pause');\n }\n\n getVideoHtml(\n src: any,\n addClass: any,\n index: number,\n html5Video: VideoSource,\n ): string {\n let video = '';\n const videoInfo =\n this.core.galleryItems[(index as unknown) as number]\n .__slideVideoInfo || {};\n const currentGalleryItem = this.core.galleryItems[index];\n let videoTitle = currentGalleryItem.title || currentGalleryItem.alt;\n videoTitle = videoTitle ? 'title=\"' + videoTitle + '\"' : '';\n const commonIframeProps = `allowtransparency=\"true\"\n frameborder=\"0\"\n scrolling=\"no\"\n allowfullscreen\n mozallowfullscreen\n webkitallowfullscreen\n oallowfullscreen\n msallowfullscreen`;\n\n if (videoInfo.youtube) {\n const videoId = 'lg-youtube' + index;\n\n const youTubeParams = getYouTubeParams(\n videoInfo,\n this.settings.youTubePlayerParams,\n );\n\n const isYouTubeNoCookieURL = isYouTubeNoCookie(src);\n\n const youtubeURL = isYouTubeNoCookieURL\n ? '//www.youtube-nocookie.com/'\n : '//www.youtube.com/';\n\n video = ``;\n } else if (videoInfo.vimeo) {\n const videoId = 'lg-vimeo' + index;\n const playerParams = getVimeoURLParams(\n this.settings.vimeoPlayerParams,\n videoInfo,\n );\n video = ``;\n } else if (videoInfo.wistia) {\n const wistiaId = 'lg-wistia' + index;\n let playerParams = param(this.settings.wistiaPlayerParams);\n playerParams = playerParams ? '?' + playerParams : '';\n video = ``;\n } else if (videoInfo.html5) {\n let html5VideoMarkup = '';\n for (let i = 0; i < html5Video.source.length; i++) {\n html5VideoMarkup += ``;\n }\n if (html5Video.tracks) {\n for (let i = 0; i < html5Video.tracks.length; i++) {\n let trackAttributes = '';\n const track = html5Video.tracks[i];\n Object.keys(track || {}).forEach(function (key) {\n trackAttributes += `${key}=\"${(track as any)[key]}\" `;\n });\n html5VideoMarkup += ``;\n }\n }\n\n let html5VideoAttrs = '';\n const videoAttributes = html5Video.attributes || {};\n Object.keys(videoAttributes || {}).forEach(function (key) {\n html5VideoAttrs += `${key}=\"${(videoAttributes as any)[key]}\" `;\n });\n video = ``;\n }\n\n return video;\n }\n\n /**\n * @desc - Append videos to the slide\n *\n * @param {HTMLElement} el - slide element\n * @param {Object} videoParams - Video parameters, Contains src, class, index, htmlVideo\n */\n appendVideos(\n el: lgQuery,\n videoParams: {\n src: string;\n addClass: string;\n index: number;\n html5Video: any;\n },\n ): any {\n const videoHtml = this.getVideoHtml(\n videoParams.src,\n videoParams.addClass,\n videoParams.index,\n videoParams.html5Video,\n );\n el.find('.lg-video-cont').append(videoHtml);\n const $videoElement = el.find('.lg-video-object').first();\n if (videoParams.html5Video) {\n $videoElement.on('mousedown.lg.video', (e) => {\n e.stopPropagation();\n });\n }\n if (\n this.settings.videojs &&\n this.core.galleryItems[videoParams.index].__slideVideoInfo?.html5\n ) {\n try {\n return videojs(\n $videoElement.get(),\n this.settings.videojsOptions,\n );\n } catch (e) {\n console.error(\n 'lightGallery:- Make sure you have included videojs',\n );\n }\n }\n }\n\n gotoNextSlideOnVideoEnd(src: any, index: number) {\n const $videoElement = this.core\n .getSlideItem(index)\n .find('.lg-video-object')\n .first();\n const videoInfo = this.core.galleryItems[index].__slideVideoInfo || {};\n if (this.settings.gotoNextSlideOnVideoEnd) {\n if (videoInfo.html5) {\n $videoElement.on('ended', () => {\n this.core.goToNextSlide();\n });\n } else if (videoInfo.vimeo) {\n try {\n // https://github.com/vimeo/player.js/#ended\n new Vimeo.Player($videoElement.get()).on('ended', () => {\n this.core.goToNextSlide();\n });\n } catch (e) {\n console.error(\n 'lightGallery:- Make sure you have included //github.com/vimeo/player.js',\n );\n }\n } else if (videoInfo.wistia) {\n try {\n window._wq = window._wq || [];\n\n // @todo Event is gettign triggered multiple times\n window._wq.push({\n id: $videoElement.attr('id'),\n onReady: (video: {\n bind: (arg0: string, arg1: () => void) => void;\n }) => {\n video.bind('end', () => {\n this.core.goToNextSlide();\n });\n },\n });\n } catch (e) {\n console.error(\n 'lightGallery:- Make sure you have included //fast.wistia.com/assets/external/E-v1.js',\n );\n }\n }\n }\n }\n\n controlVideo(index: number, action: string) {\n const $videoElement = this.core\n .getSlideItem(index)\n .find('.lg-video-object')\n .first();\n const videoInfo = this.core.galleryItems[index].__slideVideoInfo || {};\n\n if (!$videoElement.get()) return;\n\n if (videoInfo.youtube) {\n try {\n ($videoElement.get() as any).contentWindow.postMessage(\n `{\"event\":\"command\",\"func\":\"${action}Video\",\"args\":\"\"}`,\n '*',\n );\n } catch (e) {\n console.error(`lightGallery:- ${e}`);\n }\n } else if (videoInfo.vimeo) {\n try {\n new Vimeo.Player($videoElement.get())[action]();\n } catch (e) {\n console.error(\n 'lightGallery:- Make sure you have included //github.com/vimeo/player.js',\n );\n }\n } else if (videoInfo.html5) {\n if (this.settings.videojs) {\n try {\n (videojs($videoElement.get()) as any)[action as any]();\n } catch (e) {\n console.error(\n 'lightGallery:- Make sure you have included videojs',\n );\n }\n } else {\n ($videoElement.get() as any)[action]();\n }\n } else if (videoInfo.wistia) {\n try {\n window._wq = window._wq || [];\n\n // @todo Find a way to destroy wistia player instance\n window._wq.push({\n id: $videoElement.attr('id'),\n onReady: (video: any) => {\n video[action]();\n },\n });\n } catch (e) {\n console.error(\n 'lightGallery:- Make sure you have included //fast.wistia.com/assets/external/E-v1.js',\n );\n }\n }\n }\n\n loadVideoOnPosterClick($el: lgQuery, forcePlay?: boolean): void {\n // check slide has poster\n if (!$el.hasClass('lg-video-loaded')) {\n // check already video element present\n if (!$el.hasClass('lg-has-video')) {\n $el.addClass('lg-has-video');\n\n let _html;\n\n const _src = this.core.galleryItems[this.core.index].src;\n const video = this.core.galleryItems[this.core.index].video;\n if (video) {\n _html =\n typeof video === 'string' ? JSON.parse(video) : video;\n }\n\n const videoJsPlayer = this.appendVideos($el, {\n src: _src as string,\n addClass: '',\n index: this.core.index,\n html5Video: _html,\n });\n\n this.gotoNextSlideOnVideoEnd(_src, this.core.index);\n\n const $tempImg = $el.find('.lg-object').first().get();\n\n // @todo make sure it is working\n $el.find('.lg-video-cont').first().append($tempImg);\n $el.addClass('lg-video-loading');\n\n videoJsPlayer &&\n videoJsPlayer.ready(() => {\n videoJsPlayer.on('loadedmetadata', () => {\n this.onVideoLoadAfterPosterClick(\n $el,\n this.core.index,\n );\n });\n });\n\n $el.find('.lg-video-object')\n .first()\n .on('load.lg error.lg loadedmetadata.lg', () => {\n setTimeout(() => {\n this.onVideoLoadAfterPosterClick(\n $el,\n this.core.index,\n );\n }, 50);\n });\n } else {\n this.playVideo(this.core.index);\n }\n } else if (forcePlay) {\n this.playVideo(this.core.index);\n }\n }\n onVideoLoadAfterPosterClick($el: lgQuery, index: number): void {\n $el.addClass('lg-video-loaded');\n this.playVideo(index);\n }\n destroy(): void {\n this.core.LGel.off('.lg.video');\n this.core.LGel.off('.video');\n }\n}\n","interface ThumbnailStrings {\n toggleThumbnails: string;\n}\n\nexport interface ThumbnailsSettings {\n /**\n * Enable thumbnails for the gallery\n */\n thumbnail: boolean;\n\n /*\n * Enable thumbnail animation.\n */\n animateThumb: boolean;\n\n /**\n * Position of selected thumbnail.\n */\n currentPagerPosition: 'left' | 'middle' | 'right';\n\n /**\n * Position of thumbnails when the width of all thumbnails combined is less than the gallery's width.\n *\n */\n alignThumbnails: 'left' | 'middle' | 'right';\n\n /**\n * Width of each thumbnails.\n */\n thumbWidth: number;\n\n /**\n * Height of each thumbnails.\n */\n thumbHeight: string;\n\n /**\n * Spacing between each thumbnails\n */\n thumbMargin: number;\n\n /**\n * control where the thumbnails should be appended.\n * By default, thumbnails are appended to '.lg-components' which has inbuilt open close transitions\n * If you don't want initial thumbnails transitions, or want to do more customization,\n * you can append thumbnails to the lightGalley outer div -\n *
Demo\n */\n appendThumbnailsTo: '.lg-outer' | '.lg-components';\n\n /**\n * Enable toggle captions and thumbnails.\n * @description not applicable if allowMediaOverlap is false\n */\n toggleThumb: boolean;\n\n /**\n * Enables desktop mouse drag support for thumbnails.\n */\n enableThumbDrag: boolean;\n\n /**\n * Enables thumbnail touch/swipe support for touch devices\n */\n enableThumbSwipe: boolean;\n\n /**\n * By setting the thumbnailSwipeThreshold (in px) you can set how far the user must swipe for the next/prev slide.\n */\n thumbnailSwipeThreshold: number;\n\n /**\n * You can automatically load thumbnails for YouTube videos from YouTube by setting loadYouTubeThumbnail true\n */\n loadYouTubeThumbnail: boolean;\n\n /**\n * You can specify the thumbnail size by setting respective number.\n */\n //@todo add demo\n youTubeThumbSize: number;\n\n /**\n * Custom translation strings for aria-labels\n */\n thumbnailPluginStrings: ThumbnailStrings;\n}\n\nexport const thumbnailsSettings: ThumbnailsSettings = {\n thumbnail: true,\n\n animateThumb: true,\n currentPagerPosition: 'middle',\n alignThumbnails: 'middle',\n\n thumbWidth: 100,\n thumbHeight: '80px',\n thumbMargin: 5,\n\n appendThumbnailsTo: '.lg-components',\n toggleThumb: false,\n\n enableThumbDrag: true,\n enableThumbSwipe: true,\n thumbnailSwipeThreshold: 10,\n\n loadYouTubeThumbnail: true,\n youTubeThumbSize: 1,\n\n thumbnailPluginStrings: {\n toggleThumbnails: 'Toggle thumbnails',\n } as ThumbnailStrings,\n};\n","import {\n ThumbnailsSettings,\n thumbnailsSettings,\n} from './lg-thumbnail-settings';\nimport { LgQuery, lgQuery } from '../../lgQuery';\nimport { LightGallery } from '../../lightgallery';\nimport { GalleryItem } from '../../lg-utils';\nimport { lGEvents } from '../../lg-events';\n\ninterface ThumbDragUtils {\n cords: {\n startX: number;\n endX: number;\n };\n isMoved: boolean;\n newTranslateX: number;\n startTime: Date;\n endTime: Date;\n touchMoveTime: number;\n}\ninterface ThumbnailGalleryItem extends GalleryItem {\n thumb: string;\n}\nexport default class Thumbnail {\n private core: LightGallery;\n private $thumbOuter!: lgQuery;\n private $lgThumb!: lgQuery;\n private thumbOuterWidth = 0;\n private thumbTotalWidth = 0;\n private translateX = 0;\n private thumbClickable = false;\n private settings!: ThumbnailsSettings;\n private $LG!: LgQuery;\n constructor(instance: LightGallery, $LG: LgQuery) {\n // get lightGallery core plugin instance\n this.core = instance;\n this.$LG = $LG;\n\n return this;\n }\n\n init(): void {\n // extend module default settings with lightGallery core settings\n this.settings = {\n ...thumbnailsSettings,\n ...this.core.settings,\n };\n this.thumbOuterWidth = 0;\n this.thumbTotalWidth =\n this.core.galleryItems.length *\n (this.settings.thumbWidth + this.settings.thumbMargin);\n\n // Thumbnail animation value\n this.translateX = 0;\n\n this.setAnimateThumbStyles();\n\n if (!this.core.settings.allowMediaOverlap) {\n this.settings.toggleThumb = false;\n }\n\n if (this.settings.thumbnail) {\n this.build();\n if (this.settings.animateThumb) {\n if (this.settings.enableThumbDrag) {\n this.enableThumbDrag();\n }\n\n if (this.settings.enableThumbSwipe) {\n this.enableThumbSwipe();\n }\n\n this.thumbClickable = false;\n } else {\n this.thumbClickable = true;\n }\n\n this.toggleThumbBar();\n this.thumbKeyPress();\n }\n }\n\n build(): void {\n this.setThumbMarkup();\n this.manageActiveClassOnSlideChange();\n this.$lgThumb.first().on('click.lg touchend.lg', (e: CustomEvent) => {\n const $target = this.$LG(e.target);\n if (!$target.hasAttribute('data-lg-item-id')) {\n return;\n }\n setTimeout(() => {\n // In IE9 and bellow touch does not support\n // Go to slide if browser does not support css transitions\n if (this.thumbClickable && !this.core.lgBusy) {\n const index = parseInt($target.attr('data-lg-item-id'));\n this.core.slide(index, false, true, false);\n }\n }, 50);\n });\n\n this.core.LGel.on(`${lGEvents.beforeSlide}.thumb`, (event) => {\n const { index } = event.detail;\n this.animateThumb(index);\n });\n this.core.LGel.on(`${lGEvents.beforeOpen}.thumb`, () => {\n this.thumbOuterWidth = this.core.outer.get().offsetWidth;\n });\n\n this.core.LGel.on(`${lGEvents.updateSlides}.thumb`, () => {\n this.rebuildThumbnails();\n });\n this.core.LGel.on(`${lGEvents.containerResize}.thumb`, () => {\n if (!this.core.lgOpened) return;\n setTimeout(() => {\n this.thumbOuterWidth = this.core.outer.get().offsetWidth;\n this.animateThumb(this.core.index);\n this.thumbOuterWidth = this.core.outer.get().offsetWidth;\n }, 50);\n });\n }\n\n setThumbMarkup(): void {\n let thumbOuterClassNames = 'lg-thumb-outer ';\n\n if (this.settings.alignThumbnails) {\n thumbOuterClassNames += `lg-thumb-align-${this.settings.alignThumbnails}`;\n }\n\n const html = `
\n
\n
\n
`;\n\n this.core.outer.addClass('lg-has-thumb');\n\n if (this.settings.appendThumbnailsTo === '.lg-components') {\n this.core.$lgComponents.append(html);\n } else {\n this.core.outer.append(html);\n }\n\n this.$thumbOuter = this.core.outer.find('.lg-thumb-outer').first();\n this.$lgThumb = this.core.outer.find('.lg-thumb').first();\n\n if (this.settings.animateThumb) {\n this.core.outer\n .find('.lg-thumb')\n .css('transition-duration', this.core.settings.speed + 'ms')\n .css('width', this.thumbTotalWidth + 'px')\n .css('position', 'relative');\n }\n\n this.setThumbItemHtml(\n (this.core.galleryItems as unknown) as ThumbnailGalleryItem[],\n );\n }\n\n enableThumbDrag(): void {\n let thumbDragUtils: ThumbDragUtils = {\n cords: {\n startX: 0,\n endX: 0,\n },\n isMoved: false,\n newTranslateX: 0,\n startTime: new Date(),\n endTime: new Date(),\n touchMoveTime: 0,\n };\n\n let isDragging = false;\n\n this.$thumbOuter.addClass('lg-grab');\n\n this.core.outer\n .find('.lg-thumb')\n .first()\n .on('mousedown.lg.thumb', (e) => {\n if (this.thumbTotalWidth > this.thumbOuterWidth) {\n // execute only on .lg-object\n e.preventDefault();\n thumbDragUtils.cords.startX = e.pageX;\n\n thumbDragUtils.startTime = new Date();\n this.thumbClickable = false;\n\n isDragging = true;\n\n // ** Fix for webkit cursor issue https://code.google.com/p/chromium/issues/detail?id=26723\n this.core.outer.get().scrollLeft += 1;\n this.core.outer.get().scrollLeft -= 1;\n\n // *\n this.$thumbOuter\n .removeClass('lg-grab')\n .addClass('lg-grabbing');\n }\n });\n\n this.$LG(window).on(\n `mousemove.lg.thumb.global${this.core.lgId}`,\n (e) => {\n if (!this.core.lgOpened) return;\n if (isDragging) {\n thumbDragUtils.cords.endX = e.pageX;\n\n thumbDragUtils = this.onThumbTouchMove(thumbDragUtils);\n }\n },\n );\n\n this.$LG(window).on(`mouseup.lg.thumb.global${this.core.lgId}`, () => {\n if (!this.core.lgOpened) return;\n if (thumbDragUtils.isMoved) {\n thumbDragUtils = this.onThumbTouchEnd(thumbDragUtils);\n } else {\n this.thumbClickable = true;\n }\n\n if (isDragging) {\n isDragging = false;\n this.$thumbOuter.removeClass('lg-grabbing').addClass('lg-grab');\n }\n });\n }\n\n enableThumbSwipe(): void {\n let thumbDragUtils: ThumbDragUtils = {\n cords: {\n startX: 0,\n endX: 0,\n },\n isMoved: false,\n newTranslateX: 0,\n startTime: new Date(),\n endTime: new Date(),\n touchMoveTime: 0,\n };\n\n this.$lgThumb.on('touchstart.lg', (e: TouchEvent) => {\n if (this.thumbTotalWidth > this.thumbOuterWidth) {\n e.preventDefault();\n thumbDragUtils.cords.startX = e.targetTouches[0].pageX;\n this.thumbClickable = false;\n thumbDragUtils.startTime = new Date();\n }\n });\n\n this.$lgThumb.on('touchmove.lg', (e: TouchEvent) => {\n if (this.thumbTotalWidth > this.thumbOuterWidth) {\n e.preventDefault();\n thumbDragUtils.cords.endX = e.targetTouches[0].pageX;\n thumbDragUtils = this.onThumbTouchMove(thumbDragUtils);\n }\n });\n\n this.$lgThumb.on('touchend.lg', () => {\n if (thumbDragUtils.isMoved) {\n thumbDragUtils = this.onThumbTouchEnd(thumbDragUtils);\n } else {\n this.thumbClickable = true;\n }\n });\n }\n\n // Rebuild thumbnails\n rebuildThumbnails(): void {\n // Remove transitions\n this.$thumbOuter.addClass('lg-rebuilding-thumbnails');\n setTimeout(() => {\n this.thumbTotalWidth =\n this.core.galleryItems.length *\n (this.settings.thumbWidth + this.settings.thumbMargin);\n this.$lgThumb.css('width', this.thumbTotalWidth + 'px');\n this.$lgThumb.empty();\n this.setThumbItemHtml(\n (this.core.galleryItems as unknown) as ThumbnailGalleryItem[],\n );\n this.animateThumb(this.core.index);\n }, 50);\n setTimeout(() => {\n this.$thumbOuter.removeClass('lg-rebuilding-thumbnails');\n }, 200);\n }\n\n // @ts-check\n\n setTranslate(value: number): void {\n this.$lgThumb.css(\n 'transform',\n 'translate3d(-' + value + 'px, 0px, 0px)',\n );\n }\n\n getPossibleTransformX(left: number): number {\n if (left > this.thumbTotalWidth - this.thumbOuterWidth) {\n left = this.thumbTotalWidth - this.thumbOuterWidth;\n }\n\n if (left < 0) {\n left = 0;\n }\n return left;\n }\n\n animateThumb(index: number): void {\n this.$lgThumb.css(\n 'transition-duration',\n this.core.settings.speed + 'ms',\n );\n if (this.settings.animateThumb) {\n let position = 0;\n switch (this.settings.currentPagerPosition) {\n case 'left':\n position = 0;\n break;\n case 'middle':\n position =\n this.thumbOuterWidth / 2 - this.settings.thumbWidth / 2;\n break;\n case 'right':\n position = this.thumbOuterWidth - this.settings.thumbWidth;\n }\n this.translateX =\n (this.settings.thumbWidth + this.settings.thumbMargin) * index -\n 1 -\n position;\n if (this.translateX > this.thumbTotalWidth - this.thumbOuterWidth) {\n this.translateX = this.thumbTotalWidth - this.thumbOuterWidth;\n }\n\n if (this.translateX < 0) {\n this.translateX = 0;\n }\n\n this.setTranslate(this.translateX);\n }\n }\n\n onThumbTouchMove(thumbDragUtils: ThumbDragUtils): ThumbDragUtils {\n thumbDragUtils.newTranslateX = this.translateX;\n thumbDragUtils.isMoved = true;\n\n thumbDragUtils.touchMoveTime = new Date().valueOf();\n\n thumbDragUtils.newTranslateX -=\n thumbDragUtils.cords.endX - thumbDragUtils.cords.startX;\n\n thumbDragUtils.newTranslateX = this.getPossibleTransformX(\n thumbDragUtils.newTranslateX,\n );\n\n // move current slide\n this.setTranslate(thumbDragUtils.newTranslateX);\n this.$thumbOuter.addClass('lg-dragging');\n\n return thumbDragUtils;\n }\n\n onThumbTouchEnd(thumbDragUtils: ThumbDragUtils): ThumbDragUtils {\n thumbDragUtils.isMoved = false;\n thumbDragUtils.endTime = new Date();\n this.$thumbOuter.removeClass('lg-dragging');\n\n const touchDuration =\n thumbDragUtils.endTime.valueOf() -\n thumbDragUtils.startTime.valueOf();\n let distanceXnew =\n thumbDragUtils.cords.endX - thumbDragUtils.cords.startX;\n let speedX = Math.abs(distanceXnew) / touchDuration;\n // Some magical numbers\n // Can be improved\n if (\n speedX > 0.15 &&\n thumbDragUtils.endTime.valueOf() - thumbDragUtils.touchMoveTime < 30\n ) {\n speedX += 1;\n\n if (speedX > 2) {\n speedX += 1;\n }\n speedX =\n speedX +\n speedX * (Math.abs(distanceXnew) / this.thumbOuterWidth);\n this.$lgThumb.css(\n 'transition-duration',\n Math.min(speedX - 1, 2) + 'settings',\n );\n\n distanceXnew = distanceXnew * speedX;\n\n this.translateX = this.getPossibleTransformX(\n this.translateX - distanceXnew,\n );\n this.setTranslate(this.translateX);\n } else {\n this.translateX = thumbDragUtils.newTranslateX;\n }\n if (\n Math.abs(thumbDragUtils.cords.endX - thumbDragUtils.cords.startX) <\n this.settings.thumbnailSwipeThreshold\n ) {\n this.thumbClickable = true;\n }\n\n return thumbDragUtils;\n }\n\n getThumbHtml(thumb: string, index: number, alt?: string): string {\n const slideVideoInfo =\n this.core.galleryItems[index].__slideVideoInfo || {};\n let thumbImg;\n\n if (slideVideoInfo.youtube) {\n if (this.settings.loadYouTubeThumbnail) {\n thumbImg =\n '//img.youtube.com/vi/' +\n slideVideoInfo.youtube[1] +\n '/' +\n this.settings.youTubeThumbSize +\n '.jpg';\n } else {\n thumbImg = thumb;\n }\n } else {\n thumbImg = thumb;\n }\n\n const altAttr = alt ? 'alt=\"' + alt + '\"' : '';\n\n return `
\n \n
`;\n }\n\n getThumbItemHtml(items: ThumbnailGalleryItem[]): string {\n let thumbList = '';\n for (let i = 0; i < items.length; i++) {\n thumbList += this.getThumbHtml(items[i].thumb, i, items[i].alt);\n }\n\n return thumbList;\n }\n\n setThumbItemHtml(items: ThumbnailGalleryItem[]): void {\n const thumbList = this.getThumbItemHtml(items);\n this.$lgThumb.html(thumbList);\n }\n\n setAnimateThumbStyles(): void {\n if (this.settings.animateThumb) {\n this.core.outer.addClass('lg-animate-thumb');\n }\n }\n\n // Manage thumbnail active calss\n manageActiveClassOnSlideChange(): void {\n // manage active class for thumbnail\n this.core.LGel.on(\n `${lGEvents.beforeSlide}.thumb`,\n (event: CustomEvent) => {\n const $thumb = this.core.outer.find('.lg-thumb-item');\n const { index } = event.detail;\n $thumb.removeClass('active');\n $thumb.eq(index).addClass('active');\n },\n );\n }\n\n // Toggle thumbnail bar\n toggleThumbBar(): void {\n if (this.settings.toggleThumb) {\n this.core.outer.addClass('lg-can-toggle');\n this.core.$toolbar.append(\n '',\n );\n this.core.outer\n .find('.lg-toggle-thumb')\n .first()\n .on('click.lg', () => {\n this.core.outer.toggleClass('lg-components-open');\n });\n }\n }\n\n thumbKeyPress(): void {\n this.$LG(window).on(`keydown.lg.thumb.global${this.core.lgId}`, (e) => {\n if (!this.core.lgOpened || !this.settings.toggleThumb) return;\n\n if (e.keyCode === 38) {\n e.preventDefault();\n this.core.outer.addClass('lg-components-open');\n } else if (e.keyCode === 40) {\n e.preventDefault();\n this.core.outer.removeClass('lg-components-open');\n }\n });\n }\n\n destroy(): void {\n if (this.settings.thumbnail) {\n this.$LG(window).off(`.lg.thumb.global${this.core.lgId}`);\n this.core.LGel.off('.lg.thumb');\n this.core.LGel.off('.thumb');\n this.$thumbOuter.remove();\n this.core.outer.removeClass('lg-has-thumb');\n }\n }\n}\n","export interface ActualSizeIcons {\n zoomIn: 'lg-zoom-in' | 'lg-actual-size';\n zoomOut: 'lg-zoom-out' | 'lg-actual-size';\n}\n\nexport interface ZoomStrings {\n zoomIn: string;\n zoomOut: string;\n viewActualSize: string;\n}\n\nexport interface ZoomSettings {\n /**\n * Value of zoom should be incremented/decremented\n */\n scale: number;\n\n /**\n * Enable/Disable zoom option\n */\n zoom: boolean;\n\n /**\n * Enable/Disable infinite zoom\n * @description If you set this to true, you can zoom in more than the original size of the image.\n */\n infiniteZoom: boolean;\n\n /**\n * Enable actual size icon.\n */\n actualSize: boolean;\n\n /**\n * Once the slide transition is completed, how much time should take zoom plugin to activate\n * @description Some css styles will be added to the images if zoom is enabled.\n * So it might conflict if you add any custom styles to the images such as the initial transition while opening the gallery.\n * So you can delay adding zoom related styles to the images by changing the value of enableZoomAfter.\n */\n enableZoomAfter: number;\n\n /**\n * Show zoom in, zoom out icons\n */\n showZoomInOutIcons: boolean;\n\n /**\n * Actual size icons classnames.\n * Specify classnames for both ZoomIn and ZoomOut states\n * You can use `actualSizeIcons: { zoomIn: 'lg-actual-size', zoomOut: 'lg-zoom-out' }`\n * to show actual size icons instead of zoom in and zoom out icons.\n */\n actualSizeIcons: ActualSizeIcons;\n\n /**\n * Custom translation strings for aria-labels\n */\n zoomPluginStrings: ZoomStrings;\n}\n\nexport const zoomSettings: ZoomSettings = {\n scale: 1,\n zoom: true,\n infiniteZoom: true,\n actualSize: true,\n showZoomInOutIcons: false,\n actualSizeIcons: {\n zoomIn: 'lg-zoom-in',\n zoomOut: 'lg-zoom-out',\n } as ActualSizeIcons,\n enableZoomAfter: 300,\n zoomPluginStrings: {\n zoomIn: 'Zoom in',\n zoomOut: 'Zoom out',\n viewActualSize: 'View actual size',\n } as ZoomStrings,\n};\n","import { ZoomSettings, zoomSettings } from './lg-zoom-settings';\nimport { LgQuery, lgQuery } from '../../lgQuery';\nimport { LightGallery } from '../../lightgallery';\nimport { lGEvents } from '../../lg-events';\n\ninterface Coords {\n x: number;\n y: number;\n}\n\ninterface DragAllowedAxises {\n allowX: boolean;\n allowY: boolean;\n}\ninterface ZoomTouchEvent {\n pageX: number;\n touches: { pageY: number; pageX: number }[];\n pageY: number;\n}\ninterface PossibleCords {\n minX: number;\n minY: number;\n maxX: number;\n maxY: number;\n}\n\nconst ZOOM_TRANSITION_DURATION = 500;\n\nexport default class Zoom {\n private core: LightGallery;\n private settings: ZoomSettings;\n private $LG!: LgQuery;\n private imageReset!: number | boolean;\n zoomableTimeout: any;\n positionChanged!: boolean;\n zoomInProgress!: boolean;\n pageX!: number;\n pageY!: number;\n scale!: number;\n\n containerRect!: ClientRect;\n dragAllowedAxises!: DragAllowedAxises;\n top!: number;\n left!: number;\n scrollTop!: number;\n constructor(instance: LightGallery, $LG: LgQuery) {\n // get lightGallery core plugin instance\n this.core = instance;\n this.$LG = $LG;\n\n this.settings = { ...zoomSettings, ...this.core.settings };\n\n return this;\n }\n\n // Append Zoom controls. Actual size, Zoom-in, Zoom-out\n buildTemplates(): void {\n let zoomIcons = this.settings.showZoomInOutIcons\n ? ``\n : '';\n\n if (this.settings.actualSize) {\n zoomIcons += ``;\n }\n\n this.core.outer.addClass('lg-use-transition-for-zoom');\n\n this.core.$toolbar.first().append(zoomIcons);\n }\n\n /**\n * @desc Enable zoom option only once the image is completely loaded\n * If zoomFromOrigin is true, Zoom is enabled once the dummy image has been inserted\n *\n * Zoom styles are defined under lg-zoomable CSS class.\n */\n enableZoom(event: CustomEvent): void {\n // delay will be 0 except first time\n let _speed = this.settings.enableZoomAfter + event.detail.delay;\n\n // set _speed value 0 if gallery opened from direct url and if it is first slide\n if (\n this.$LG('body').first().hasClass('lg-from-hash') &&\n event.detail.delay\n ) {\n // will execute only once\n _speed = 0;\n } else {\n // Remove lg-from-hash to enable starting animation.\n this.$LG('body').first().removeClass('lg-from-hash');\n }\n\n this.zoomableTimeout = setTimeout(() => {\n if (!this.isImageSlide(this.core.index)) {\n return;\n }\n this.core.getSlideItem(event.detail.index).addClass('lg-zoomable');\n if (event.detail.index === this.core.index) {\n this.setZoomEssentials();\n }\n }, _speed + 30);\n }\n\n enableZoomOnSlideItemLoad(): void {\n // Add zoomable class\n this.core.LGel.on(\n `${lGEvents.slideItemLoad}.zoom`,\n this.enableZoom.bind(this),\n );\n }\n\n getDragCords(e: MouseEvent): Coords {\n return {\n x: e.pageX,\n y: e.pageY,\n };\n }\n getSwipeCords(e: TouchEvent): Coords {\n const x = e.touches[0].pageX;\n const y = e.touches[0].pageY;\n return {\n x,\n y,\n };\n }\n\n getDragAllowedAxises(scale: number, scaleDiff?: number): DragAllowedAxises {\n const $image = this.core\n .getSlideItem(this.core.index)\n .find('.lg-image')\n .first()\n .get();\n\n let height = 0;\n let width = 0;\n const rect = $image.getBoundingClientRect();\n if (scale) {\n height = $image.offsetHeight * scale;\n width = $image.offsetWidth * scale;\n } else if (scaleDiff) {\n height = rect.height + scaleDiff * rect.height;\n width = rect.width + scaleDiff * rect.width;\n } else {\n height = rect.height;\n width = rect.width;\n }\n const allowY = height > this.containerRect.height;\n const allowX = width > this.containerRect.width;\n return {\n allowX,\n allowY,\n };\n }\n\n setZoomEssentials(): void {\n this.containerRect = this.core.$content.get().getBoundingClientRect();\n }\n\n /**\n * @desc Image zoom\n * Translate the wrap and scale the image to get better user experience\n *\n * @param {String} scale - Zoom decrement/increment value\n */\n zoomImage(\n scale: number,\n scaleDiff: number,\n reposition: boolean,\n resetToMax: boolean,\n ): void {\n if (Math.abs(scaleDiff) <= 0) return;\n\n const offsetX = this.containerRect.width / 2 + this.containerRect.left;\n\n const offsetY =\n this.containerRect.height / 2 +\n this.containerRect.top +\n this.scrollTop;\n\n let originalX;\n let originalY;\n\n if (scale === 1) {\n this.positionChanged = false;\n }\n\n const dragAllowedAxises = this.getDragAllowedAxises(0, scaleDiff);\n\n const { allowY, allowX } = dragAllowedAxises;\n if (this.positionChanged) {\n originalX = this.left / (this.scale - scaleDiff);\n originalY = this.top / (this.scale - scaleDiff);\n this.pageX = offsetX - originalX;\n this.pageY = offsetY - originalY;\n\n this.positionChanged = false;\n }\n\n const possibleSwipeCords = this.getPossibleSwipeDragCords(scaleDiff);\n\n let x;\n let y;\n let _x = offsetX - this.pageX;\n let _y = offsetY - this.pageY;\n\n if (scale - scaleDiff > 1) {\n const scaleVal = (scale - scaleDiff) / Math.abs(scaleDiff);\n _x =\n (scaleDiff < 0 ? -_x : _x) +\n this.left * (scaleVal + (scaleDiff < 0 ? -1 : 1));\n _y =\n (scaleDiff < 0 ? -_y : _y) +\n this.top * (scaleVal + (scaleDiff < 0 ? -1 : 1));\n x = _x / scaleVal;\n y = _y / scaleVal;\n } else {\n const scaleVal = (scale - scaleDiff) * scaleDiff;\n x = _x * scaleVal;\n y = _y * scaleVal;\n }\n\n if (reposition) {\n if (allowX) {\n if (this.isBeyondPossibleLeft(x, possibleSwipeCords.minX)) {\n x = possibleSwipeCords.minX;\n } else if (\n this.isBeyondPossibleRight(x, possibleSwipeCords.maxX)\n ) {\n x = possibleSwipeCords.maxX;\n }\n } else {\n if (scale > 1) {\n if (x < possibleSwipeCords.minX) {\n x = possibleSwipeCords.minX;\n } else if (x > possibleSwipeCords.maxX) {\n x = possibleSwipeCords.maxX;\n }\n }\n }\n // @todo fix this\n if (allowY) {\n if (this.isBeyondPossibleTop(y, possibleSwipeCords.minY)) {\n y = possibleSwipeCords.minY;\n } else if (\n this.isBeyondPossibleBottom(y, possibleSwipeCords.maxY)\n ) {\n y = possibleSwipeCords.maxY;\n }\n } else {\n // If the translate value based on index of beyond the viewport, utilize the available space to prevent image being cut out\n if (scale > 1) {\n //If image goes beyond viewport top, use the minim possible translate value\n if (y < possibleSwipeCords.minY) {\n y = possibleSwipeCords.minY;\n } else if (y > possibleSwipeCords.maxY) {\n y = possibleSwipeCords.maxY;\n }\n }\n }\n }\n\n this.setZoomStyles({\n x: x,\n y: y,\n scale,\n });\n\n this.left = x;\n this.top = y;\n\n if (resetToMax) {\n this.setZoomImageSize();\n }\n }\n\n resetImageTranslate(index: number): void {\n if (!this.isImageSlide(index)) {\n return;\n }\n const $image = this.core.getSlideItem(index).find('.lg-image').first();\n this.imageReset = false;\n $image.removeClass(\n 'reset-transition reset-transition-y reset-transition-x',\n );\n this.core.outer.removeClass('lg-actual-size');\n $image.css('width', 'auto').css('height', 'auto');\n setTimeout(() => {\n $image.removeClass('no-transition');\n }, 10);\n }\n\n setZoomImageSize(): void {\n const $image = this.core\n .getSlideItem(this.core.index)\n .find('.lg-image')\n .first();\n\n setTimeout(() => {\n const actualSizeScale = this.getCurrentImageActualSizeScale();\n\n if (this.scale >= actualSizeScale) {\n $image.addClass('no-transition');\n this.imageReset = true;\n }\n }, ZOOM_TRANSITION_DURATION);\n\n setTimeout(() => {\n const actualSizeScale = this.getCurrentImageActualSizeScale();\n\n if (this.scale >= actualSizeScale) {\n const dragAllowedAxises = this.getDragAllowedAxises(this.scale);\n\n $image\n .css(\n 'width',\n ($image.get() as HTMLImageElement).naturalWidth + 'px',\n )\n .css(\n 'height',\n ($image.get() as HTMLImageElement).naturalHeight + 'px',\n );\n\n this.core.outer.addClass('lg-actual-size');\n\n if (dragAllowedAxises.allowX && dragAllowedAxises.allowY) {\n $image.addClass('reset-transition');\n } else if (\n dragAllowedAxises.allowX &&\n !dragAllowedAxises.allowY\n ) {\n $image.addClass('reset-transition-x');\n } else if (\n !dragAllowedAxises.allowX &&\n dragAllowedAxises.allowY\n ) {\n $image.addClass('reset-transition-y');\n }\n }\n }, ZOOM_TRANSITION_DURATION + 50);\n }\n\n /**\n * @desc apply scale3d to image and translate to image wrap\n * @param {style} X,Y and scale\n */\n setZoomStyles(style: { x: number; y: number; scale: number }): void {\n const $imageWrap = this.core\n .getSlideItem(this.core.index)\n .find('.lg-img-wrap')\n .first();\n const $image = this.core\n .getSlideItem(this.core.index)\n .find('.lg-image')\n .first();\n const $dummyImage = this.core.outer\n .find('.lg-current .lg-dummy-img')\n .first();\n this.scale = style.scale;\n $image.css(\n 'transform',\n 'scale3d(' + style.scale + ', ' + style.scale + ', 1)',\n );\n\n $dummyImage.css(\n 'transform',\n 'scale3d(' + style.scale + ', ' + style.scale + ', 1)',\n );\n\n const transform =\n 'translate3d(' + style.x + 'px, ' + style.y + 'px, 0)';\n $imageWrap.css('transform', transform);\n }\n\n /**\n * @param index - Index of the current slide\n * @param event - event will be available only if the function is called on clicking/taping the imags\n */\n setActualSize(index: number, event?: ZoomTouchEvent): void {\n if (this.zoomInProgress) {\n return;\n }\n this.zoomInProgress = true;\n const currentItem = this.core.galleryItems[this.core.index];\n this.resetImageTranslate(index);\n setTimeout(() => {\n // Allow zoom only on image\n if (\n !currentItem.src ||\n this.core.outer.hasClass('lg-first-slide-loading')\n ) {\n return;\n }\n const scale = this.getCurrentImageActualSizeScale();\n const prevScale = this.scale;\n if (this.core.outer.hasClass('lg-zoomed')) {\n this.scale = 1;\n } else {\n this.scale = this.getScale(scale);\n }\n this.setPageCords(event);\n\n this.beginZoom(this.scale);\n this.zoomImage(this.scale, this.scale - prevScale, true, true);\n }, 50);\n setTimeout(() => {\n this.core.outer.removeClass('lg-grabbing').addClass('lg-grab');\n }, 60);\n setTimeout(() => {\n this.zoomInProgress = false;\n }, ZOOM_TRANSITION_DURATION + 110);\n }\n\n getNaturalWidth(index: number): number {\n const $image = this.core.getSlideItem(index).find('.lg-image').first();\n\n const naturalWidth = this.core.galleryItems[index].width;\n return naturalWidth\n ? parseFloat(naturalWidth)\n : undefined || ($image.get() as any).naturalWidth;\n }\n\n getActualSizeScale(naturalWidth: number, width: number): number {\n let _scale;\n let scale;\n if (naturalWidth >= width) {\n _scale = naturalWidth / width;\n scale = _scale || 2;\n } else {\n scale = 1;\n }\n return scale;\n }\n\n getCurrentImageActualSizeScale(): number {\n const $image = this.core\n .getSlideItem(this.core.index)\n .find('.lg-image')\n .first();\n const width = $image.get().offsetWidth;\n const naturalWidth = this.getNaturalWidth(this.core.index) || width;\n return this.getActualSizeScale(naturalWidth, width);\n }\n\n getPageCords(event?: ZoomTouchEvent): Coords {\n const cords: Coords = {} as Coords;\n if (event) {\n cords.x = event.pageX || event.touches[0].pageX;\n cords.y = event.pageY || event.touches[0].pageY;\n } else {\n const containerRect = this.core.$content\n .get()\n .getBoundingClientRect();\n cords.x = containerRect.width / 2 + containerRect.left;\n cords.y =\n containerRect.height / 2 + this.scrollTop + containerRect.top;\n }\n return cords;\n }\n\n setPageCords(event?: ZoomTouchEvent): void {\n const pageCords = this.getPageCords(event);\n\n this.pageX = pageCords.x;\n this.pageY = pageCords.y;\n }\n\n manageActualPixelClassNames(): void {\n const $actualSize = this.core.getElementById('lg-actual-size');\n $actualSize\n .removeClass(this.settings.actualSizeIcons.zoomIn)\n .addClass(this.settings.actualSizeIcons.zoomOut);\n }\n\n // If true, zoomed - in else zoomed out\n beginZoom(scale: number): boolean {\n this.core.outer.removeClass('lg-zoom-drag-transition lg-zoom-dragging');\n if (scale > 1) {\n this.core.outer.addClass('lg-zoomed');\n this.manageActualPixelClassNames();\n } else {\n this.resetZoom();\n }\n return scale > 1;\n }\n\n getScale(scale: number): number {\n const actualSizeScale = this.getCurrentImageActualSizeScale();\n if (scale < 1) {\n scale = 1;\n } else if (scale > actualSizeScale) {\n scale = actualSizeScale;\n }\n return scale;\n }\n\n init(): void {\n if (!this.settings.zoom) {\n return;\n }\n this.buildTemplates();\n this.enableZoomOnSlideItemLoad();\n\n let tapped: ReturnType | null = null;\n\n this.core.outer.on('dblclick.lg', (event) => {\n if (!this.$LG(event.target).hasClass('lg-image')) {\n return;\n }\n this.setActualSize(this.core.index, event);\n });\n\n this.core.outer.on('touchstart.lg', (event) => {\n const $target = this.$LG(event.target);\n if (event.touches.length === 1 && $target.hasClass('lg-image')) {\n if (!tapped) {\n tapped = setTimeout(() => {\n tapped = null;\n }, 300);\n } else {\n clearTimeout(tapped);\n tapped = null;\n event.preventDefault();\n this.setActualSize(this.core.index, event);\n }\n }\n });\n\n this.core.LGel.on(\n `${lGEvents.containerResize}.zoom ${lGEvents.rotateRight}.zoom ${lGEvents.rotateLeft}.zoom ${lGEvents.flipHorizontal}.zoom ${lGEvents.flipVertical}.zoom`,\n () => {\n if (\n !this.core.lgOpened ||\n !this.isImageSlide(this.core.index) ||\n this.core.touchAction\n ) {\n return;\n }\n const _LGel = this.core\n .getSlideItem(this.core.index)\n .find('.lg-img-wrap')\n .first();\n this.top = 0;\n this.left = 0;\n this.setZoomEssentials();\n this.setZoomSwipeStyles(_LGel, { x: 0, y: 0 });\n this.positionChanged = true;\n },\n );\n // Update zoom on resize and orientationchange\n this.$LG(window).on(`scroll.lg.zoom.global${this.core.lgId}`, () => {\n if (!this.core.lgOpened) return;\n this.scrollTop = this.$LG(window).scrollTop();\n });\n\n this.core.getElementById('lg-zoom-out').on('click.lg', () => {\n // Allow zoom only on image\n if (!this.isImageSlide(this.core.index)) {\n return;\n }\n\n let timeout = 0;\n if (this.imageReset) {\n this.resetImageTranslate(this.core.index);\n timeout = 50;\n }\n setTimeout(() => {\n let scale = this.scale - this.settings.scale;\n\n if (scale < 1) {\n scale = 1;\n }\n this.beginZoom(scale);\n this.zoomImage(\n scale,\n -this.settings.scale,\n true,\n !this.settings.infiniteZoom,\n );\n }, timeout);\n });\n\n this.core.getElementById('lg-zoom-in').on('click.lg', () => {\n this.zoomIn();\n });\n\n this.core.getElementById('lg-actual-size').on('click.lg', () => {\n this.setActualSize(this.core.index);\n });\n\n this.core.LGel.on(`${lGEvents.beforeOpen}.zoom`, () => {\n this.core.outer.find('.lg-item').removeClass('lg-zoomable');\n });\n this.core.LGel.on(`${lGEvents.afterOpen}.zoom`, () => {\n this.scrollTop = this.$LG(window).scrollTop();\n\n // Set the initial value center\n this.pageX = this.core.outer.width() / 2;\n this.pageY = this.core.outer.height() / 2 + this.scrollTop;\n\n this.scale = 1;\n });\n\n // Reset zoom on slide change\n this.core.LGel.on(\n `${lGEvents.afterSlide}.zoom`,\n (event: CustomEvent) => {\n const { prevIndex } = event.detail;\n this.scale = 1;\n this.positionChanged = false;\n this.zoomInProgress = false;\n this.resetZoom(prevIndex);\n this.resetImageTranslate(prevIndex);\n if (this.isImageSlide(this.core.index)) {\n this.setZoomEssentials();\n }\n },\n );\n\n // Drag option after zoom\n this.zoomDrag();\n\n this.pinchZoom();\n\n this.zoomSwipe();\n\n // Store the zoomable timeout value just to clear it while closing\n this.zoomableTimeout = false;\n this.positionChanged = false;\n this.zoomInProgress = false;\n }\n\n zoomIn(): void {\n // Allow zoom only on image\n if (!this.isImageSlide(this.core.index)) {\n return;\n }\n\n let scale = this.scale + this.settings.scale;\n\n if (!this.settings.infiniteZoom) {\n scale = this.getScale(scale);\n }\n this.beginZoom(scale);\n this.zoomImage(\n scale,\n Math.min(this.settings.scale, scale - this.scale),\n true,\n !this.settings.infiniteZoom,\n );\n }\n\n // Reset zoom effect\n resetZoom(index?: number): void {\n this.core.outer.removeClass('lg-zoomed lg-zoom-drag-transition');\n const $actualSize = this.core.getElementById('lg-actual-size');\n const $item = this.core.getSlideItem(\n index !== undefined ? index : this.core.index,\n );\n $actualSize\n .removeClass(this.settings.actualSizeIcons.zoomOut)\n .addClass(this.settings.actualSizeIcons.zoomIn);\n $item.find('.lg-img-wrap').first().removeAttr('style');\n $item.find('.lg-image').first().removeAttr('style');\n this.scale = 1;\n this.left = 0;\n this.top = 0;\n\n // Reset pagx pagy values to center\n this.setPageCords();\n }\n\n getTouchDistance(e: TouchEvent): number {\n return Math.sqrt(\n (e.touches[0].pageX - e.touches[1].pageX) *\n (e.touches[0].pageX - e.touches[1].pageX) +\n (e.touches[0].pageY - e.touches[1].pageY) *\n (e.touches[0].pageY - e.touches[1].pageY),\n );\n }\n\n pinchZoom(): void {\n let startDist = 0;\n let pinchStarted = false;\n let initScale = 1;\n let prevScale = 0;\n\n let $item = this.core.getSlideItem(this.core.index);\n\n this.core.outer.on('touchstart.lg', (e) => {\n $item = this.core.getSlideItem(this.core.index);\n if (!this.isImageSlide(this.core.index)) {\n return;\n }\n if (e.touches.length === 2) {\n e.preventDefault();\n if (this.core.outer.hasClass('lg-first-slide-loading')) {\n return;\n }\n initScale = this.scale || 1;\n this.core.outer.removeClass(\n 'lg-zoom-drag-transition lg-zoom-dragging',\n );\n\n this.setPageCords(e);\n this.resetImageTranslate(this.core.index);\n\n this.core.touchAction = 'pinch';\n\n startDist = this.getTouchDistance(e);\n }\n });\n\n this.core.$inner.on('touchmove.lg', (e) => {\n if (\n e.touches.length === 2 &&\n this.core.touchAction === 'pinch' &&\n (this.$LG(e.target).hasClass('lg-item') ||\n $item.get().contains(e.target))\n ) {\n e.preventDefault();\n const endDist = this.getTouchDistance(e);\n\n const distance = startDist - endDist;\n if (!pinchStarted && Math.abs(distance) > 5) {\n pinchStarted = true;\n }\n if (pinchStarted) {\n prevScale = this.scale;\n const _scale = Math.max(1, initScale + -distance * 0.02);\n this.scale =\n Math.round((_scale + Number.EPSILON) * 100) / 100;\n const diff = this.scale - prevScale;\n this.zoomImage(\n this.scale,\n Math.round((diff + Number.EPSILON) * 100) / 100,\n false,\n false,\n );\n }\n }\n });\n\n this.core.$inner.on('touchend.lg', (e) => {\n if (\n this.core.touchAction === 'pinch' &&\n (this.$LG(e.target).hasClass('lg-item') ||\n $item.get().contains(e.target))\n ) {\n pinchStarted = false;\n startDist = 0;\n if (this.scale <= 1) {\n this.resetZoom();\n } else {\n const actualSizeScale = this.getCurrentImageActualSizeScale();\n\n if (this.scale >= actualSizeScale) {\n let scaleDiff = actualSizeScale - this.scale;\n if (scaleDiff === 0) {\n scaleDiff = 0.01;\n }\n this.zoomImage(actualSizeScale, scaleDiff, false, true);\n }\n this.manageActualPixelClassNames();\n\n this.core.outer.addClass('lg-zoomed');\n }\n this.core.touchAction = undefined;\n }\n });\n }\n\n touchendZoom(\n startCoords: Coords,\n endCoords: Coords,\n allowX: boolean,\n allowY: boolean,\n touchDuration: number,\n ): void {\n let distanceXnew = endCoords.x - startCoords.x;\n let distanceYnew = endCoords.y - startCoords.y;\n\n let speedX = Math.abs(distanceXnew) / touchDuration + 1;\n let speedY = Math.abs(distanceYnew) / touchDuration + 1;\n\n if (speedX > 2) {\n speedX += 1;\n }\n\n if (speedY > 2) {\n speedY += 1;\n }\n\n distanceXnew = distanceXnew * speedX;\n distanceYnew = distanceYnew * speedY;\n\n const _LGel = this.core\n .getSlideItem(this.core.index)\n .find('.lg-img-wrap')\n .first();\n const distance: Coords = {} as Coords;\n\n distance.x = this.left + distanceXnew;\n distance.y = this.top + distanceYnew;\n\n const possibleSwipeCords = this.getPossibleSwipeDragCords();\n\n if (Math.abs(distanceXnew) > 15 || Math.abs(distanceYnew) > 15) {\n if (allowY) {\n if (\n this.isBeyondPossibleTop(\n distance.y,\n possibleSwipeCords.minY,\n )\n ) {\n distance.y = possibleSwipeCords.minY;\n } else if (\n this.isBeyondPossibleBottom(\n distance.y,\n possibleSwipeCords.maxY,\n )\n ) {\n distance.y = possibleSwipeCords.maxY;\n }\n }\n\n if (allowX) {\n if (\n this.isBeyondPossibleLeft(\n distance.x,\n possibleSwipeCords.minX,\n )\n ) {\n distance.x = possibleSwipeCords.minX;\n } else if (\n this.isBeyondPossibleRight(\n distance.x,\n possibleSwipeCords.maxX,\n )\n ) {\n distance.x = possibleSwipeCords.maxX;\n }\n }\n\n if (allowY) {\n this.top = distance.y;\n } else {\n distance.y = this.top;\n }\n\n if (allowX) {\n this.left = distance.x;\n } else {\n distance.x = this.left;\n }\n\n this.setZoomSwipeStyles(_LGel, distance);\n\n this.positionChanged = true;\n }\n }\n\n getZoomSwipeCords(\n startCoords: Coords,\n endCoords: Coords,\n allowX: boolean,\n allowY: boolean,\n possibleSwipeCords: PossibleCords,\n ): Coords {\n const distance: Coords = {} as Coords;\n if (allowY) {\n distance.y = this.top + (endCoords.y - startCoords.y);\n if (this.isBeyondPossibleTop(distance.y, possibleSwipeCords.minY)) {\n const diffMinY = possibleSwipeCords.minY - distance.y;\n distance.y = possibleSwipeCords.minY - diffMinY / 6;\n } else if (\n this.isBeyondPossibleBottom(distance.y, possibleSwipeCords.maxY)\n ) {\n const diffMaxY = distance.y - possibleSwipeCords.maxY;\n distance.y = possibleSwipeCords.maxY + diffMaxY / 6;\n }\n } else {\n distance.y = this.top;\n }\n\n if (allowX) {\n distance.x = this.left + (endCoords.x - startCoords.x);\n if (\n this.isBeyondPossibleLeft(distance.x, possibleSwipeCords.minX)\n ) {\n const diffMinX = possibleSwipeCords.minX - distance.x;\n distance.x = possibleSwipeCords.minX - diffMinX / 6;\n } else if (\n this.isBeyondPossibleRight(distance.x, possibleSwipeCords.maxX)\n ) {\n const difMaxX = distance.x - possibleSwipeCords.maxX;\n distance.x = possibleSwipeCords.maxX + difMaxX / 6;\n }\n } else {\n distance.x = this.left;\n }\n\n return distance;\n }\n\n private isBeyondPossibleLeft(x: number, minX: number) {\n return x >= minX;\n }\n private isBeyondPossibleRight(x: number, maxX: number) {\n return x <= maxX;\n }\n private isBeyondPossibleTop(y: number, minY: number) {\n return y >= minY;\n }\n private isBeyondPossibleBottom(y: number, maxY: number) {\n return y <= maxY;\n }\n\n isImageSlide(index: number): boolean {\n const currentItem = this.core.galleryItems[index];\n return this.core.getSlideType(currentItem) === 'image';\n }\n\n getPossibleSwipeDragCords(scale?: number): PossibleCords {\n const $image = this.core\n .getSlideItem(this.core.index)\n .find('.lg-image')\n .first();\n\n const { bottom } = this.core.mediaContainerPosition;\n\n const imgRect = $image.get().getBoundingClientRect();\n\n let imageHeight = imgRect.height;\n let imageWidth = imgRect.width;\n\n if (scale) {\n imageHeight = imageHeight + scale * imageHeight;\n imageWidth = imageWidth + scale * imageWidth;\n }\n\n const minY = (imageHeight - this.containerRect.height) / 2;\n const maxY = (this.containerRect.height - imageHeight) / 2 + bottom;\n\n const minX = (imageWidth - this.containerRect.width) / 2;\n\n const maxX = (this.containerRect.width - imageWidth) / 2;\n\n const possibleSwipeCords = {\n minY: minY,\n maxY: maxY,\n minX: minX,\n maxX: maxX,\n };\n return possibleSwipeCords;\n }\n\n setZoomSwipeStyles(\n LGel: lgQuery,\n distance: { x: number; y: number },\n ): void {\n LGel.css(\n 'transform',\n 'translate3d(' + distance.x + 'px, ' + distance.y + 'px, 0)',\n );\n }\n\n zoomSwipe(): void {\n let startCoords = {} as Coords;\n let endCoords = {} as Coords;\n let isMoved = false;\n\n // Allow x direction drag\n let allowX = false;\n\n // Allow Y direction drag\n let allowY = false;\n\n let startTime: Date = new Date();\n let endTime: Date = new Date();\n let possibleSwipeCords: PossibleCords;\n\n let _LGel: lgQuery;\n\n let $item = this.core.getSlideItem(this.core.index);\n\n this.core.$inner.on('touchstart.lg', (e) => {\n // Allow zoom only on image\n if (!this.isImageSlide(this.core.index)) {\n return;\n }\n $item = this.core.getSlideItem(this.core.index);\n if (\n (this.$LG(e.target).hasClass('lg-item') ||\n $item.get().contains(e.target)) &&\n e.touches.length === 1 &&\n this.core.outer.hasClass('lg-zoomed')\n ) {\n e.preventDefault();\n startTime = new Date();\n this.core.touchAction = 'zoomSwipe';\n _LGel = this.core\n .getSlideItem(this.core.index)\n .find('.lg-img-wrap')\n .first();\n\n const dragAllowedAxises = this.getDragAllowedAxises(0);\n\n allowY = dragAllowedAxises.allowY;\n allowX = dragAllowedAxises.allowX;\n if (allowX || allowY) {\n startCoords = this.getSwipeCords(e);\n }\n\n possibleSwipeCords = this.getPossibleSwipeDragCords();\n\n // reset opacity and transition duration\n this.core.outer.addClass(\n 'lg-zoom-dragging lg-zoom-drag-transition',\n );\n }\n });\n\n this.core.$inner.on('touchmove.lg', (e) => {\n if (\n e.touches.length === 1 &&\n this.core.touchAction === 'zoomSwipe' &&\n (this.$LG(e.target).hasClass('lg-item') ||\n $item.get().contains(e.target))\n ) {\n e.preventDefault();\n this.core.touchAction = 'zoomSwipe';\n\n endCoords = this.getSwipeCords(e);\n\n const distance = this.getZoomSwipeCords(\n startCoords,\n endCoords,\n allowX,\n allowY,\n possibleSwipeCords,\n );\n\n if (\n Math.abs(endCoords.x - startCoords.x) > 15 ||\n Math.abs(endCoords.y - startCoords.y) > 15\n ) {\n isMoved = true;\n this.setZoomSwipeStyles(_LGel, distance);\n }\n }\n });\n\n this.core.$inner.on('touchend.lg', (e) => {\n if (\n this.core.touchAction === 'zoomSwipe' &&\n (this.$LG(e.target).hasClass('lg-item') ||\n $item.get().contains(e.target))\n ) {\n e.preventDefault();\n this.core.touchAction = undefined;\n this.core.outer.removeClass('lg-zoom-dragging');\n if (!isMoved) {\n return;\n }\n isMoved = false;\n endTime = new Date();\n const touchDuration = endTime.valueOf() - startTime.valueOf();\n this.touchendZoom(\n startCoords,\n endCoords,\n allowX,\n allowY,\n touchDuration,\n );\n }\n });\n }\n\n zoomDrag(): void {\n let startCoords: Coords = {} as Coords;\n let endCoords: Coords = {} as Coords;\n let isDragging = false;\n let isMoved = false;\n\n // Allow x direction drag\n let allowX = false;\n\n // Allow Y direction drag\n let allowY = false;\n\n let startTime: number | Date;\n let endTime;\n\n let possibleSwipeCords: PossibleCords;\n\n let _LGel: lgQuery;\n\n this.core.outer.on('mousedown.lg.zoom', (e) => {\n // Allow zoom only on image\n if (!this.isImageSlide(this.core.index)) {\n return;\n }\n const $item = this.core.getSlideItem(this.core.index);\n if (\n this.$LG(e.target).hasClass('lg-item') ||\n $item.get().contains(e.target)\n ) {\n startTime = new Date();\n _LGel = this.core\n .getSlideItem(this.core.index)\n .find('.lg-img-wrap')\n .first();\n\n const dragAllowedAxises = this.getDragAllowedAxises(0);\n\n allowY = dragAllowedAxises.allowY;\n allowX = dragAllowedAxises.allowX;\n\n if (this.core.outer.hasClass('lg-zoomed')) {\n if (\n this.$LG(e.target).hasClass('lg-object') &&\n (allowX || allowY)\n ) {\n e.preventDefault();\n startCoords = this.getDragCords(e);\n\n possibleSwipeCords = this.getPossibleSwipeDragCords();\n\n isDragging = true;\n\n this.core.outer\n .removeClass('lg-grab')\n .addClass(\n 'lg-grabbing lg-zoom-drag-transition lg-zoom-dragging',\n );\n // reset opacity and transition duration\n }\n }\n }\n });\n\n this.$LG(window).on(\n `mousemove.lg.zoom.global${this.core.lgId}`,\n (e) => {\n if (isDragging) {\n isMoved = true;\n endCoords = this.getDragCords(e);\n\n const distance = this.getZoomSwipeCords(\n startCoords,\n endCoords,\n allowX,\n allowY,\n possibleSwipeCords,\n );\n\n this.setZoomSwipeStyles(_LGel, distance);\n }\n },\n );\n\n this.$LG(window).on(`mouseup.lg.zoom.global${this.core.lgId}`, (e) => {\n if (isDragging) {\n endTime = new Date();\n isDragging = false;\n this.core.outer.removeClass('lg-zoom-dragging');\n\n // Fix for chrome mouse move on click\n if (\n isMoved &&\n (startCoords.x !== endCoords.x ||\n startCoords.y !== endCoords.y)\n ) {\n endCoords = this.getDragCords(e);\n\n const touchDuration =\n endTime.valueOf() - startTime.valueOf();\n this.touchendZoom(\n startCoords,\n endCoords,\n allowX,\n allowY,\n touchDuration,\n );\n }\n\n isMoved = false;\n }\n\n this.core.outer.removeClass('lg-grabbing').addClass('lg-grab');\n });\n }\n\n closeGallery(): void {\n this.resetZoom();\n this.zoomInProgress = false;\n }\n\n destroy(): void {\n // Unbind all events added by lightGallery zoom plugin\n this.$LG(window).off(`.lg.zoom.global${this.core.lgId}`);\n this.core.LGel.off('.lg.zoom');\n this.core.LGel.off('.zoom');\n clearTimeout(this.zoomableTimeout);\n this.zoomableTimeout = false;\n }\n}\n","/** @license React v16.13.1\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var l=require(\"object-assign\"),n=\"function\"===typeof Symbol&&Symbol.for,p=n?Symbol.for(\"react.element\"):60103,q=n?Symbol.for(\"react.portal\"):60106,r=n?Symbol.for(\"react.fragment\"):60107,t=n?Symbol.for(\"react.strict_mode\"):60108,u=n?Symbol.for(\"react.profiler\"):60114,v=n?Symbol.for(\"react.provider\"):60109,w=n?Symbol.for(\"react.context\"):60110,x=n?Symbol.for(\"react.forward_ref\"):60112,y=n?Symbol.for(\"react.suspense\"):60113,z=n?Symbol.for(\"react.memo\"):60115,A=n?Symbol.for(\"react.lazy\"):\n60116,B=\"function\"===typeof Symbol&&Symbol.iterator;function C(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cQ.length&&Q.push(a)}\nfunction T(a,b,c,e){var d=typeof a;if(\"undefined\"===d||\"boolean\"===d)a=null;var g=!1;if(null===a)g=!0;else switch(d){case \"string\":case \"number\":g=!0;break;case \"object\":switch(a.$$typeof){case p:case q:g=!0}}if(g)return c(e,a,\"\"===b?\".\"+U(a,0):b),1;g=0;b=\"\"===b?\".\":b+\":\";if(Array.isArray(a))for(var k=0;kb}return!1}function v(a,b,c,d,e,f){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f}var C={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){C[a]=new v(a,0,!1,a,null,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];C[b]=new v(b,1,!1,a[1],null,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){C[a]=new v(a,2,!1,a.toLowerCase(),null,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){C[a]=new v(a,2,!1,a,null,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){C[a]=new v(a,3,!1,a.toLowerCase(),null,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){C[a]=new v(a,3,!0,a,null,!1)});[\"capture\",\"download\"].forEach(function(a){C[a]=new v(a,4,!1,a,null,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){C[a]=new v(a,6,!1,a,null,!1)});[\"rowSpan\",\"start\"].forEach(function(a){C[a]=new v(a,5,!1,a.toLowerCase(),null,!1)});var Ua=/[\\-:]([a-z])/g;function Va(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(Ua,\nVa);C[b]=new v(b,1,!1,a,null,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(Ua,Va);C[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(Ua,Va);C[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){C[a]=new v(a,1,!1,a.toLowerCase(),null,!1)});\nC.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){C[a]=new v(a,1,!1,a.toLowerCase(),null,!0)});var Wa=aa.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;Wa.hasOwnProperty(\"ReactCurrentDispatcher\")||(Wa.ReactCurrentDispatcher={current:null});Wa.hasOwnProperty(\"ReactCurrentBatchConfig\")||(Wa.ReactCurrentBatchConfig={suspense:null});\nfunction Xa(a,b,c,d){var e=C.hasOwnProperty(b)?C[b]:null;var f=null!==e?0===e.type:d?!1:!(2=c.length))throw Error(u(93));c=c[0]}b=c}null==b&&(b=\"\");c=b}a._wrapperState={initialValue:rb(c)}}\nfunction Kb(a,b){var c=rb(b.value),d=rb(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function Lb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b)}var Mb={html:\"http://www.w3.org/1999/xhtml\",mathml:\"http://www.w3.org/1998/Math/MathML\",svg:\"http://www.w3.org/2000/svg\"};\nfunction Nb(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}function Ob(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?Nb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar Pb,Qb=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(a.namespaceURI!==Mb.svg||\"innerHTML\"in a)a.innerHTML=b;else{Pb=Pb||document.createElement(\"div\");Pb.innerHTML=\"\"+b.valueOf().toString()+\"\";for(b=Pb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction Rb(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}function Sb(a,b){var c={};c[a.toLowerCase()]=b.toLowerCase();c[\"Webkit\"+a]=\"webkit\"+b;c[\"Moz\"+a]=\"moz\"+b;return c}var Tb={animationend:Sb(\"Animation\",\"AnimationEnd\"),animationiteration:Sb(\"Animation\",\"AnimationIteration\"),animationstart:Sb(\"Animation\",\"AnimationStart\"),transitionend:Sb(\"Transition\",\"TransitionEnd\")},Ub={},Vb={};\nya&&(Vb=document.createElement(\"div\").style,\"AnimationEvent\"in window||(delete Tb.animationend.animation,delete Tb.animationiteration.animation,delete Tb.animationstart.animation),\"TransitionEvent\"in window||delete Tb.transitionend.transition);function Wb(a){if(Ub[a])return Ub[a];if(!Tb[a])return a;var b=Tb[a],c;for(c in b)if(b.hasOwnProperty(c)&&c in Vb)return Ub[a]=b[c];return a}\nvar Xb=Wb(\"animationend\"),Yb=Wb(\"animationiteration\"),Zb=Wb(\"animationstart\"),$b=Wb(\"transitionend\"),ac=\"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting\".split(\" \"),bc=new (\"function\"===typeof WeakMap?WeakMap:Map);function cc(a){var b=bc.get(a);void 0===b&&(b=new Map,bc.set(a,b));return b}\nfunction dc(a){var b=a,c=a;if(a.alternate)for(;b.return;)b=b.return;else{a=b;do b=a,0!==(b.effectTag&1026)&&(c=b.return),a=b.return;while(a)}return 3===b.tag?c:null}function ec(a){if(13===a.tag){var b=a.memoizedState;null===b&&(a=a.alternate,null!==a&&(b=a.memoizedState));if(null!==b)return b.dehydrated}return null}function fc(a){if(dc(a)!==a)throw Error(u(188));}\nfunction gc(a){var b=a.alternate;if(!b){b=dc(a);if(null===b)throw Error(u(188));return b!==a?null:a}for(var c=a,d=b;;){var e=c.return;if(null===e)break;var f=e.alternate;if(null===f){d=e.return;if(null!==d){c=d;continue}break}if(e.child===f.child){for(f=e.child;f;){if(f===c)return fc(e),a;if(f===d)return fc(e),b;f=f.sibling}throw Error(u(188));}if(c.return!==d.return)c=e,d=f;else{for(var g=!1,h=e.child;h;){if(h===c){g=!0;c=e;d=f;break}if(h===d){g=!0;d=e;c=f;break}h=h.sibling}if(!g){for(h=f.child;h;){if(h===\nc){g=!0;c=f;d=e;break}if(h===d){g=!0;d=f;c=e;break}h=h.sibling}if(!g)throw Error(u(189));}}if(c.alternate!==d)throw Error(u(190));}if(3!==c.tag)throw Error(u(188));return c.stateNode.current===c?a:b}function hc(a){a=gc(a);if(!a)return null;for(var b=a;;){if(5===b.tag||6===b.tag)return b;if(b.child)b.child.return=b,b=b.child;else{if(b===a)break;for(;!b.sibling;){if(!b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}}return null}\nfunction ic(a,b){if(null==b)throw Error(u(30));if(null==a)return b;if(Array.isArray(a)){if(Array.isArray(b))return a.push.apply(a,b),a;a.push(b);return a}return Array.isArray(b)?[a].concat(b):[a,b]}function jc(a,b,c){Array.isArray(a)?a.forEach(b,c):a&&b.call(c,a)}var kc=null;\nfunction lc(a){if(a){var b=a._dispatchListeners,c=a._dispatchInstances;if(Array.isArray(b))for(var d=0;dpc.length&&pc.push(a)}\nfunction rc(a,b,c,d){if(pc.length){var e=pc.pop();e.topLevelType=a;e.eventSystemFlags=d;e.nativeEvent=b;e.targetInst=c;return e}return{topLevelType:a,eventSystemFlags:d,nativeEvent:b,targetInst:c,ancestors:[]}}\nfunction sc(a){var b=a.targetInst,c=b;do{if(!c){a.ancestors.push(c);break}var d=c;if(3===d.tag)d=d.stateNode.containerInfo;else{for(;d.return;)d=d.return;d=3!==d.tag?null:d.stateNode.containerInfo}if(!d)break;b=c.tag;5!==b&&6!==b||a.ancestors.push(c);c=tc(d)}while(c);for(c=0;c=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=ud(c)}}\nfunction wd(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?wd(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}function xd(){for(var a=window,b=td();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=td(a.document)}return b}\nfunction yd(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}var zd=\"$\",Ad=\"/$\",Bd=\"$?\",Cd=\"$!\",Dd=null,Ed=null;function Fd(a,b){switch(a){case \"button\":case \"input\":case \"select\":case \"textarea\":return!!b.autoFocus}return!1}\nfunction Gd(a,b){return\"textarea\"===a||\"option\"===a||\"noscript\"===a||\"string\"===typeof b.children||\"number\"===typeof b.children||\"object\"===typeof b.dangerouslySetInnerHTML&&null!==b.dangerouslySetInnerHTML&&null!=b.dangerouslySetInnerHTML.__html}var Hd=\"function\"===typeof setTimeout?setTimeout:void 0,Id=\"function\"===typeof clearTimeout?clearTimeout:void 0;function Jd(a){for(;null!=a;a=a.nextSibling){var b=a.nodeType;if(1===b||3===b)break}return a}\nfunction Kd(a){a=a.previousSibling;for(var b=0;a;){if(8===a.nodeType){var c=a.data;if(c===zd||c===Cd||c===Bd){if(0===b)return a;b--}else c===Ad&&b++}a=a.previousSibling}return null}var Ld=Math.random().toString(36).slice(2),Md=\"__reactInternalInstance$\"+Ld,Nd=\"__reactEventHandlers$\"+Ld,Od=\"__reactContainere$\"+Ld;\nfunction tc(a){var b=a[Md];if(b)return b;for(var c=a.parentNode;c;){if(b=c[Od]||c[Md]){c=b.alternate;if(null!==b.child||null!==c&&null!==c.child)for(a=Kd(a);null!==a;){if(c=a[Md])return c;a=Kd(a)}return b}a=c;c=a.parentNode}return null}function Nc(a){a=a[Md]||a[Od];return!a||5!==a.tag&&6!==a.tag&&13!==a.tag&&3!==a.tag?null:a}function Pd(a){if(5===a.tag||6===a.tag)return a.stateNode;throw Error(u(33));}function Qd(a){return a[Nd]||null}\nfunction Rd(a){do a=a.return;while(a&&5!==a.tag);return a?a:null}\nfunction Sd(a,b){var c=a.stateNode;if(!c)return null;var d=la(c);if(!d)return null;c=d[b];a:switch(b){case \"onClick\":case \"onClickCapture\":case \"onDoubleClick\":case \"onDoubleClickCapture\":case \"onMouseDown\":case \"onMouseDownCapture\":case \"onMouseMove\":case \"onMouseMoveCapture\":case \"onMouseUp\":case \"onMouseUpCapture\":case \"onMouseEnter\":(d=!d.disabled)||(a=a.type,d=!(\"button\"===a||\"input\"===a||\"select\"===a||\"textarea\"===a));a=!d;break a;default:a=!1}if(a)return null;if(c&&\"function\"!==typeof c)throw Error(u(231,\nb,typeof c));return c}function Td(a,b,c){if(b=Sd(a,c.dispatchConfig.phasedRegistrationNames[b]))c._dispatchListeners=ic(c._dispatchListeners,b),c._dispatchInstances=ic(c._dispatchInstances,a)}function Ud(a){if(a&&a.dispatchConfig.phasedRegistrationNames){for(var b=a._targetInst,c=[];b;)c.push(b),b=Rd(b);for(b=c.length;0this.eventPool.length&&this.eventPool.push(a)}function de(a){a.eventPool=[];a.getPooled=ee;a.release=fe}var ge=G.extend({data:null}),he=G.extend({data:null}),ie=[9,13,27,32],je=ya&&\"CompositionEvent\"in window,ke=null;ya&&\"documentMode\"in document&&(ke=document.documentMode);\nvar le=ya&&\"TextEvent\"in window&&!ke,me=ya&&(!je||ke&&8=ke),ne=String.fromCharCode(32),oe={beforeInput:{phasedRegistrationNames:{bubbled:\"onBeforeInput\",captured:\"onBeforeInputCapture\"},dependencies:[\"compositionend\",\"keypress\",\"textInput\",\"paste\"]},compositionEnd:{phasedRegistrationNames:{bubbled:\"onCompositionEnd\",captured:\"onCompositionEndCapture\"},dependencies:\"blur compositionend keydown keypress keyup mousedown\".split(\" \")},compositionStart:{phasedRegistrationNames:{bubbled:\"onCompositionStart\",\ncaptured:\"onCompositionStartCapture\"},dependencies:\"blur compositionstart keydown keypress keyup mousedown\".split(\" \")},compositionUpdate:{phasedRegistrationNames:{bubbled:\"onCompositionUpdate\",captured:\"onCompositionUpdateCapture\"},dependencies:\"blur compositionupdate keydown keypress keyup mousedown\".split(\" \")}},pe=!1;\nfunction qe(a,b){switch(a){case \"keyup\":return-1!==ie.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"blur\":return!0;default:return!1}}function re(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var se=!1;function te(a,b){switch(a){case \"compositionend\":return re(b);case \"keypress\":if(32!==b.which)return null;pe=!0;return ne;case \"textInput\":return a=b.data,a===ne&&pe?null:a;default:return null}}\nfunction ue(a,b){if(se)return\"compositionend\"===a||!je&&qe(a,b)?(a=ae(),$d=Zd=Yd=null,se=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=document.documentMode,df={select:{phasedRegistrationNames:{bubbled:\"onSelect\",captured:\"onSelectCapture\"},dependencies:\"blur contextmenu dragend focus keydown keyup mousedown mouseup selectionchange\".split(\" \")}},ef=null,ff=null,gf=null,hf=!1;\nfunction jf(a,b){var c=b.window===b?b.document:9===b.nodeType?b:b.ownerDocument;if(hf||null==ef||ef!==td(c))return null;c=ef;\"selectionStart\"in c&&yd(c)?c={start:c.selectionStart,end:c.selectionEnd}:(c=(c.ownerDocument&&c.ownerDocument.defaultView||window).getSelection(),c={anchorNode:c.anchorNode,anchorOffset:c.anchorOffset,focusNode:c.focusNode,focusOffset:c.focusOffset});return gf&&bf(gf,c)?null:(gf=c,a=G.getPooled(df.select,ff,a,b),a.type=\"select\",a.target=ef,Xd(a),a)}\nvar kf={eventTypes:df,extractEvents:function(a,b,c,d,e,f){e=f||(d.window===d?d.document:9===d.nodeType?d:d.ownerDocument);if(!(f=!e)){a:{e=cc(e);f=wa.onSelect;for(var g=0;gzf||(a.current=yf[zf],yf[zf]=null,zf--)}\nfunction I(a,b){zf++;yf[zf]=a.current;a.current=b}var Af={},J={current:Af},K={current:!1},Bf=Af;function Cf(a,b){var c=a.type.contextTypes;if(!c)return Af;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}function L(a){a=a.childContextTypes;return null!==a&&void 0!==a}\nfunction Df(){H(K);H(J)}function Ef(a,b,c){if(J.current!==Af)throw Error(u(168));I(J,b);I(K,c)}function Ff(a,b,c){var d=a.stateNode;a=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in a))throw Error(u(108,pb(b)||\"Unknown\",e));return n({},c,{},d)}function Gf(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Af;Bf=J.current;I(J,a);I(K,K.current);return!0}\nfunction Hf(a,b,c){var d=a.stateNode;if(!d)throw Error(u(169));c?(a=Ff(a,b,Bf),d.__reactInternalMemoizedMergedChildContext=a,H(K),H(J),I(J,a)):H(K);I(K,c)}\nvar If=r.unstable_runWithPriority,Jf=r.unstable_scheduleCallback,Kf=r.unstable_cancelCallback,Lf=r.unstable_requestPaint,Mf=r.unstable_now,Nf=r.unstable_getCurrentPriorityLevel,Of=r.unstable_ImmediatePriority,Pf=r.unstable_UserBlockingPriority,Qf=r.unstable_NormalPriority,Rf=r.unstable_LowPriority,Sf=r.unstable_IdlePriority,Tf={},Uf=r.unstable_shouldYield,Vf=void 0!==Lf?Lf:function(){},Wf=null,Xf=null,Yf=!1,Zf=Mf(),$f=1E4>Zf?Mf:function(){return Mf()-Zf};\nfunction ag(){switch(Nf()){case Of:return 99;case Pf:return 98;case Qf:return 97;case Rf:return 96;case Sf:return 95;default:throw Error(u(332));}}function bg(a){switch(a){case 99:return Of;case 98:return Pf;case 97:return Qf;case 96:return Rf;case 95:return Sf;default:throw Error(u(332));}}function cg(a,b){a=bg(a);return If(a,b)}function dg(a,b,c){a=bg(a);return Jf(a,b,c)}function eg(a){null===Wf?(Wf=[a],Xf=Jf(Of,fg)):Wf.push(a);return Tf}function gg(){if(null!==Xf){var a=Xf;Xf=null;Kf(a)}fg()}\nfunction fg(){if(!Yf&&null!==Wf){Yf=!0;var a=0;try{var b=Wf;cg(99,function(){for(;a=b&&(rg=!0),a.firstContext=null)}\nfunction sg(a,b){if(mg!==a&&!1!==b&&0!==b){if(\"number\"!==typeof b||1073741823===b)mg=a,b=1073741823;b={context:a,observedBits:b,next:null};if(null===lg){if(null===kg)throw Error(u(308));lg=b;kg.dependencies={expirationTime:0,firstContext:b,responders:null}}else lg=lg.next=b}return a._currentValue}var tg=!1;function ug(a){a.updateQueue={baseState:a.memoizedState,baseQueue:null,shared:{pending:null},effects:null}}\nfunction vg(a,b){a=a.updateQueue;b.updateQueue===a&&(b.updateQueue={baseState:a.baseState,baseQueue:a.baseQueue,shared:a.shared,effects:a.effects})}function wg(a,b){a={expirationTime:a,suspenseConfig:b,tag:0,payload:null,callback:null,next:null};return a.next=a}function xg(a,b){a=a.updateQueue;if(null!==a){a=a.shared;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}}\nfunction yg(a,b){var c=a.alternate;null!==c&&vg(c,a);a=a.updateQueue;c=a.baseQueue;null===c?(a.baseQueue=b.next=b,b.next=b):(b.next=c.next,c.next=b)}\nfunction zg(a,b,c,d){var e=a.updateQueue;tg=!1;var f=e.baseQueue,g=e.shared.pending;if(null!==g){if(null!==f){var h=f.next;f.next=g.next;g.next=h}f=g;e.shared.pending=null;h=a.alternate;null!==h&&(h=h.updateQueue,null!==h&&(h.baseQueue=g))}if(null!==f){h=f.next;var k=e.baseState,l=0,m=null,p=null,x=null;if(null!==h){var z=h;do{g=z.expirationTime;if(gl&&(l=g)}else{null!==x&&(x=x.next={expirationTime:1073741823,suspenseConfig:z.suspenseConfig,tag:z.tag,payload:z.payload,callback:z.callback,next:null});Ag(g,z.suspenseConfig);a:{var D=a,t=z;g=b;ca=c;switch(t.tag){case 1:D=t.payload;if(\"function\"===typeof D){k=D.call(ca,k,g);break a}k=D;break a;case 3:D.effectTag=D.effectTag&-4097|64;case 0:D=t.payload;g=\"function\"===typeof D?D.call(ca,k,g):D;if(null===g||void 0===g)break a;k=n({},k,g);break a;case 2:tg=!0}}null!==z.callback&&\n(a.effectTag|=32,g=e.effects,null===g?e.effects=[z]:g.push(z))}z=z.next;if(null===z||z===h)if(g=e.shared.pending,null===g)break;else z=f.next=g.next,g.next=h,e.baseQueue=f=g,e.shared.pending=null}while(1)}null===x?m=k:x.next=p;e.baseState=m;e.baseQueue=x;Bg(l);a.expirationTime=l;a.memoizedState=k}}\nfunction Cg(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;by?(A=m,m=null):A=m.sibling;var q=x(e,m,h[y],k);if(null===q){null===m&&(m=A);break}a&&\nm&&null===q.alternate&&b(e,m);g=f(q,g,y);null===t?l=q:t.sibling=q;t=q;m=A}if(y===h.length)return c(e,m),l;if(null===m){for(;yy?(A=t,t=null):A=t.sibling;var D=x(e,t,q.value,l);if(null===D){null===t&&(t=A);break}a&&t&&null===D.alternate&&b(e,t);g=f(D,g,y);null===m?k=D:m.sibling=D;m=D;t=A}if(q.done)return c(e,t),k;if(null===t){for(;!q.done;y++,q=h.next())q=p(e,q.value,l),null!==q&&(g=f(q,g,y),null===m?k=q:m.sibling=q,m=q);return k}for(t=d(e,t);!q.done;y++,q=h.next())q=z(t,e,y,q.value,l),null!==q&&(a&&null!==\nq.alternate&&t.delete(null===q.key?y:q.key),g=f(q,g,y),null===m?k=q:m.sibling=q,m=q);a&&t.forEach(function(a){return b(e,a)});return k}return function(a,d,f,h){var k=\"object\"===typeof f&&null!==f&&f.type===ab&&null===f.key;k&&(f=f.props.children);var l=\"object\"===typeof f&&null!==f;if(l)switch(f.$$typeof){case Za:a:{l=f.key;for(k=d;null!==k;){if(k.key===l){switch(k.tag){case 7:if(f.type===ab){c(a,k.sibling);d=e(k,f.props.children);d.return=a;a=d;break a}break;default:if(k.elementType===f.type){c(a,\nk.sibling);d=e(k,f.props);d.ref=Pg(a,k,f);d.return=a;a=d;break a}}c(a,k);break}else b(a,k);k=k.sibling}f.type===ab?(d=Wg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Ug(f.type,f.key,f.props,null,a.mode,h),h.ref=Pg(a,d,f),h.return=a,a=h)}return g(a);case $a:a:{for(k=f.key;null!==d;){if(d.key===k)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=\nd.sibling}d=Vg(f,a.mode,h);d.return=a;a=d}return g(a)}if(\"string\"===typeof f||\"number\"===typeof f)return f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):(c(a,d),d=Tg(f,a.mode,h),d.return=a,a=d),g(a);if(Og(f))return ca(a,d,f,h);if(nb(f))return D(a,d,f,h);l&&Qg(a,f);if(\"undefined\"===typeof f&&!k)switch(a.tag){case 1:case 0:throw a=a.type,Error(u(152,a.displayName||a.name||\"Component\"));}return c(a,d)}}var Xg=Rg(!0),Yg=Rg(!1),Zg={},$g={current:Zg},ah={current:Zg},bh={current:Zg};\nfunction ch(a){if(a===Zg)throw Error(u(174));return a}function dh(a,b){I(bh,b);I(ah,a);I($g,Zg);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:Ob(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=Ob(b,a)}H($g);I($g,b)}function eh(){H($g);H(ah);H(bh)}function fh(a){ch(bh.current);var b=ch($g.current);var c=Ob(b,a.type);b!==c&&(I(ah,a),I($g,c))}function gh(a){ah.current===a&&(H($g),H(ah))}var M={current:0};\nfunction hh(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||c.data===Bd||c.data===Cd))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.effectTag&64))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}function ih(a,b){return{responder:a,props:b}}\nvar jh=Wa.ReactCurrentDispatcher,kh=Wa.ReactCurrentBatchConfig,lh=0,N=null,O=null,P=null,mh=!1;function Q(){throw Error(u(321));}function nh(a,b){if(null===b)return!1;for(var c=0;cf))throw Error(u(301));f+=1;P=O=null;b.updateQueue=null;jh.current=rh;a=c(d,e)}while(b.expirationTime===lh)}jh.current=sh;b=null!==O&&null!==O.next;lh=0;P=O=N=null;mh=!1;if(b)throw Error(u(300));return a}\nfunction th(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===P?N.memoizedState=P=a:P=P.next=a;return P}function uh(){if(null===O){var a=N.alternate;a=null!==a?a.memoizedState:null}else a=O.next;var b=null===P?N.memoizedState:P.next;if(null!==b)P=b,O=a;else{if(null===a)throw Error(u(310));O=a;a={memoizedState:O.memoizedState,baseState:O.baseState,baseQueue:O.baseQueue,queue:O.queue,next:null};null===P?N.memoizedState=P=a:P=P.next=a}return P}\nfunction vh(a,b){return\"function\"===typeof b?b(a):b}\nfunction wh(a){var b=uh(),c=b.queue;if(null===c)throw Error(u(311));c.lastRenderedReducer=a;var d=O,e=d.baseQueue,f=c.pending;if(null!==f){if(null!==e){var g=e.next;e.next=f.next;f.next=g}d.baseQueue=e=f;c.pending=null}if(null!==e){e=e.next;d=d.baseState;var h=g=f=null,k=e;do{var l=k.expirationTime;if(lN.expirationTime&&\n(N.expirationTime=l,Bg(l))}else null!==h&&(h=h.next={expirationTime:1073741823,suspenseConfig:k.suspenseConfig,action:k.action,eagerReducer:k.eagerReducer,eagerState:k.eagerState,next:null}),Ag(l,k.suspenseConfig),d=k.eagerReducer===a?k.eagerState:a(d,k.action);k=k.next}while(null!==k&&k!==e);null===h?f=d:h.next=g;$e(d,b.memoizedState)||(rg=!0);b.memoizedState=d;b.baseState=f;b.baseQueue=h;c.lastRenderedState=d}return[b.memoizedState,c.dispatch]}\nfunction xh(a){var b=uh(),c=b.queue;if(null===c)throw Error(u(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);$e(f,b.memoizedState)||(rg=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}\nfunction yh(a){var b=th();\"function\"===typeof a&&(a=a());b.memoizedState=b.baseState=a;a=b.queue={pending:null,dispatch:null,lastRenderedReducer:vh,lastRenderedState:a};a=a.dispatch=zh.bind(null,N,a);return[b.memoizedState,a]}function Ah(a,b,c,d){a={tag:a,create:b,destroy:c,deps:d,next:null};b=N.updateQueue;null===b?(b={lastEffect:null},N.updateQueue=b,b.lastEffect=a.next=a):(c=b.lastEffect,null===c?b.lastEffect=a.next=a:(d=c.next,c.next=a,a.next=d,b.lastEffect=a));return a}\nfunction Bh(){return uh().memoizedState}function Ch(a,b,c,d){var e=th();N.effectTag|=a;e.memoizedState=Ah(1|b,c,void 0,void 0===d?null:d)}function Dh(a,b,c,d){var e=uh();d=void 0===d?null:d;var f=void 0;if(null!==O){var g=O.memoizedState;f=g.destroy;if(null!==d&&nh(d,g.deps)){Ah(b,c,f,d);return}}N.effectTag|=a;e.memoizedState=Ah(1|b,c,f,d)}function Eh(a,b){return Ch(516,4,a,b)}function Fh(a,b){return Dh(516,4,a,b)}function Gh(a,b){return Dh(4,2,a,b)}\nfunction Hh(a,b){if(\"function\"===typeof b)return a=a(),b(a),function(){b(null)};if(null!==b&&void 0!==b)return a=a(),b.current=a,function(){b.current=null}}function Ih(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return Dh(4,2,Hh.bind(null,b,a),c)}function Jh(){}function Kh(a,b){th().memoizedState=[a,void 0===b?null:b];return a}function Lh(a,b){var c=uh();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&nh(b,d[1]))return d[0];c.memoizedState=[a,b];return a}\nfunction Mh(a,b){var c=uh();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&nh(b,d[1]))return d[0];a=a();c.memoizedState=[a,b];return a}function Nh(a,b,c){var d=ag();cg(98>d?98:d,function(){a(!0)});cg(97\\x3c/script>\",a=a.removeChild(a.firstChild)):\"string\"===typeof d.is?a=g.createElement(e,{is:d.is}):(a=g.createElement(e),\"select\"===e&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,e);a[Md]=b;a[Nd]=d;ni(a,b,!1,!1);b.stateNode=a;g=pd(e,d);switch(e){case \"iframe\":case \"object\":case \"embed\":F(\"load\",\na);h=d;break;case \"video\":case \"audio\":for(h=0;hd.tailExpiration&&1b)&&tj.set(a,b)))}}\nfunction xj(a,b){a.expirationTimea?c:a;return 2>=a&&b!==a?0:a}\nfunction Z(a){if(0!==a.lastExpiredTime)a.callbackExpirationTime=1073741823,a.callbackPriority=99,a.callbackNode=eg(yj.bind(null,a));else{var b=zj(a),c=a.callbackNode;if(0===b)null!==c&&(a.callbackNode=null,a.callbackExpirationTime=0,a.callbackPriority=90);else{var d=Gg();1073741823===b?d=99:1===b||2===b?d=95:(d=10*(1073741821-b)-10*(1073741821-d),d=0>=d?99:250>=d?98:5250>=d?97:95);if(null!==c){var e=a.callbackPriority;if(a.callbackExpirationTime===b&&e>=d)return;c!==Tf&&Kf(c)}a.callbackExpirationTime=\nb;a.callbackPriority=d;b=1073741823===b?eg(yj.bind(null,a)):dg(d,Bj.bind(null,a),{timeout:10*(1073741821-b)-$f()});a.callbackNode=b}}}\nfunction Bj(a,b){wj=0;if(b)return b=Gg(),Cj(a,b),Z(a),null;var c=zj(a);if(0!==c){b=a.callbackNode;if((W&(fj|gj))!==V)throw Error(u(327));Dj();a===T&&c===U||Ej(a,c);if(null!==X){var d=W;W|=fj;var e=Fj();do try{Gj();break}catch(h){Hj(a,h)}while(1);ng();W=d;cj.current=e;if(S===hj)throw b=kj,Ej(a,c),xi(a,c),Z(a),b;if(null===X)switch(e=a.finishedWork=a.current.alternate,a.finishedExpirationTime=c,d=S,T=null,d){case ti:case hj:throw Error(u(345));case ij:Cj(a,2=c){a.lastPingedTime=c;Ej(a,c);break}}f=zj(a);if(0!==f&&f!==c)break;if(0!==d&&d!==c){a.lastPingedTime=d;break}a.timeoutHandle=Hd(Jj.bind(null,a),e);break}Jj(a);break;case vi:xi(a,c);d=a.lastSuspendedTime;c===d&&(a.nextKnownPendingLevel=Ij(e));if(oj&&(e=a.lastPingedTime,0===e||e>=c)){a.lastPingedTime=c;Ej(a,c);break}e=zj(a);if(0!==e&&e!==c)break;if(0!==d&&d!==c){a.lastPingedTime=\nd;break}1073741823!==mj?d=10*(1073741821-mj)-$f():1073741823===lj?d=0:(d=10*(1073741821-lj)-5E3,e=$f(),c=10*(1073741821-c)-e,d=e-d,0>d&&(d=0),d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*bj(d/1960))-d,c=d?d=0:(e=g.busyDelayMs|0,f=$f()-(10*(1073741821-f)-(g.timeoutMs|0||5E3)),d=f<=e?0:e+d-f);if(10 component higher in the tree to provide a loading indicator or placeholder to display.\"+qb(g))}S!==\njj&&(S=ij);h=Ai(h,g);p=f;do{switch(p.tag){case 3:k=h;p.effectTag|=4096;p.expirationTime=b;var B=Xi(p,k,b);yg(p,B);break a;case 1:k=h;var w=p.type,ub=p.stateNode;if(0===(p.effectTag&64)&&(\"function\"===typeof w.getDerivedStateFromError||null!==ub&&\"function\"===typeof ub.componentDidCatch&&(null===aj||!aj.has(ub)))){p.effectTag|=4096;p.expirationTime=b;var vb=$i(p,k,b);yg(p,vb);break a}}p=p.return}while(null!==p)}X=Pj(X)}catch(Xc){b=Xc;continue}break}while(1)}\nfunction Fj(){var a=cj.current;cj.current=sh;return null===a?sh:a}function Ag(a,b){awi&&(wi=a)}function Kj(){for(;null!==X;)X=Qj(X)}function Gj(){for(;null!==X&&!Uf();)X=Qj(X)}function Qj(a){var b=Rj(a.alternate,a,U);a.memoizedProps=a.pendingProps;null===b&&(b=Pj(a));dj.current=null;return b}\nfunction Pj(a){X=a;do{var b=X.alternate;a=X.return;if(0===(X.effectTag&2048)){b=si(b,X,U);if(1===U||1!==X.childExpirationTime){for(var c=0,d=X.child;null!==d;){var e=d.expirationTime,f=d.childExpirationTime;e>c&&(c=e);f>c&&(c=f);d=d.sibling}X.childExpirationTime=c}if(null!==b)return b;null!==a&&0===(a.effectTag&2048)&&(null===a.firstEffect&&(a.firstEffect=X.firstEffect),null!==X.lastEffect&&(null!==a.lastEffect&&(a.lastEffect.nextEffect=X.firstEffect),a.lastEffect=X.lastEffect),1a?b:a}function Jj(a){var b=ag();cg(99,Sj.bind(null,a,b));return null}\nfunction Sj(a,b){do Dj();while(null!==rj);if((W&(fj|gj))!==V)throw Error(u(327));var c=a.finishedWork,d=a.finishedExpirationTime;if(null===c)return null;a.finishedWork=null;a.finishedExpirationTime=0;if(c===a.current)throw Error(u(177));a.callbackNode=null;a.callbackExpirationTime=0;a.callbackPriority=90;a.nextKnownPendingLevel=0;var e=Ij(c);a.firstPendingTime=e;d<=a.lastSuspendedTime?a.firstSuspendedTime=a.lastSuspendedTime=a.nextKnownPendingLevel=0:d<=a.firstSuspendedTime&&(a.firstSuspendedTime=\nd-1);d<=a.lastPingedTime&&(a.lastPingedTime=0);d<=a.lastExpiredTime&&(a.lastExpiredTime=0);a===T&&(X=T=null,U=0);1h&&(l=h,h=g,g=l),l=vd(q,g),m=vd(q,h),l&&m&&(1!==w.rangeCount||w.anchorNode!==l.node||w.anchorOffset!==l.offset||w.focusNode!==m.node||w.focusOffset!==m.offset)&&(B=B.createRange(),B.setStart(l.node,l.offset),w.removeAllRanges(),g>h?(w.addRange(B),w.extend(m.node,m.offset)):(B.setEnd(m.node,m.offset),w.addRange(B))))));B=[];for(w=q;w=w.parentNode;)1===w.nodeType&&B.push({element:w,left:w.scrollLeft,\ntop:w.scrollTop});\"function\"===typeof q.focus&&q.focus();for(q=0;q=c)return ji(a,b,c);I(M,M.current&1);b=$h(a,b,c);return null!==b?b.sibling:null}I(M,M.current&1);break;case 19:d=b.childExpirationTime>=c;if(0!==(a.effectTag&64)){if(d)return mi(a,b,c);b.effectTag|=64}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null);I(M,M.current);if(!d)return null}return $h(a,b,c)}rg=!1}}else rg=!1;b.expirationTime=0;switch(b.tag){case 2:d=b.type;null!==a&&(a.alternate=null,b.alternate=null,b.effectTag|=2);a=b.pendingProps;e=Cf(b,J.current);qg(b,c);e=oh(null,\nb,d,a,e,c);b.effectTag|=1;if(\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof){b.tag=1;b.memoizedState=null;b.updateQueue=null;if(L(d)){var f=!0;Gf(b)}else f=!1;b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null;ug(b);var g=d.getDerivedStateFromProps;\"function\"===typeof g&&Fg(b,d,g,a);e.updater=Jg;b.stateNode=e;e._reactInternalFiber=b;Ng(b,d,a,c);b=gi(null,b,d,!0,f,c)}else b.tag=0,R(null,b,e,c),b=b.child;return b;case 16:a:{e=b.elementType;null!==a&&(a.alternate=\nnull,b.alternate=null,b.effectTag|=2);a=b.pendingProps;ob(e);if(1!==e._status)throw e._result;e=e._result;b.type=e;f=b.tag=Xj(e);a=ig(e,a);switch(f){case 0:b=di(null,b,e,a,c);break a;case 1:b=fi(null,b,e,a,c);break a;case 11:b=Zh(null,b,e,a,c);break a;case 14:b=ai(null,b,e,ig(e.type,a),d,c);break a}throw Error(u(306,e,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:ig(d,e),di(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:ig(d,e),fi(a,b,d,e,c);\ncase 3:hi(b);d=b.updateQueue;if(null===a||null===d)throw Error(u(282));d=b.pendingProps;e=b.memoizedState;e=null!==e?e.element:null;vg(a,b);zg(b,d,null,c);d=b.memoizedState.element;if(d===e)Xh(),b=$h(a,b,c);else{if(e=b.stateNode.hydrate)Ph=Jd(b.stateNode.containerInfo.firstChild),Oh=b,e=Qh=!0;if(e)for(c=Yg(b,null,d,c),b.child=c;c;)c.effectTag=c.effectTag&-3|1024,c=c.sibling;else R(a,b,d,c),Xh();b=b.child}return b;case 5:return fh(b),null===a&&Uh(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:\nnull,g=e.children,Gd(d,e)?g=null:null!==f&&Gd(d,f)&&(b.effectTag|=16),ei(a,b),b.mode&4&&1!==c&&e.hidden?(b.expirationTime=b.childExpirationTime=1,b=null):(R(a,b,g,c),b=b.child),b;case 6:return null===a&&Uh(b),null;case 13:return ji(a,b,c);case 4:return dh(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Xg(b,null,d,c):R(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:ig(d,e),Zh(a,b,d,e,c);case 7:return R(a,b,b.pendingProps,c),b.child;case 8:return R(a,\nb,b.pendingProps.children,c),b.child;case 12:return R(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;g=b.memoizedProps;f=e.value;var h=b.type._context;I(jg,h._currentValue);h._currentValue=f;if(null!==g)if(h=g.value,f=$e(h,f)?0:(\"function\"===typeof d._calculateChangedBits?d._calculateChangedBits(h,f):1073741823)|0,0===f){if(g.children===e.children&&!K.current){b=$h(a,b,c);break a}}else for(h=b.child,null!==h&&(h.return=b);null!==h;){var k=h.dependencies;if(null!==\nk){g=h.child;for(var l=k.firstContext;null!==l;){if(l.context===d&&0!==(l.observedBits&f)){1===h.tag&&(l=wg(c,null),l.tag=2,xg(h,l));h.expirationTime=b&&a<=b}function xi(a,b){var c=a.firstSuspendedTime,d=a.lastSuspendedTime;cb||0===c)a.lastSuspendedTime=b;b<=a.lastPingedTime&&(a.lastPingedTime=0);b<=a.lastExpiredTime&&(a.lastExpiredTime=0)}\nfunction yi(a,b){b>a.firstPendingTime&&(a.firstPendingTime=b);var c=a.firstSuspendedTime;0!==c&&(b>=c?a.firstSuspendedTime=a.lastSuspendedTime=a.nextKnownPendingLevel=0:b>=a.lastSuspendedTime&&(a.lastSuspendedTime=b+1),b>a.nextKnownPendingLevel&&(a.nextKnownPendingLevel=b))}function Cj(a,b){var c=a.lastExpiredTime;if(0===c||c>b)a.lastExpiredTime=b}\nfunction bk(a,b,c,d){var e=b.current,f=Gg(),g=Dg.suspense;f=Hg(f,e,g);a:if(c){c=c._reactInternalFiber;b:{if(dc(c)!==c||1!==c.tag)throw Error(u(170));var h=c;do{switch(h.tag){case 3:h=h.stateNode.context;break b;case 1:if(L(h.type)){h=h.stateNode.__reactInternalMemoizedMergedChildContext;break b}}h=h.return}while(null!==h);throw Error(u(171));}if(1===c.tag){var k=c.type;if(L(k)){c=Ff(c,k,h);break a}}c=h}else c=Af;null===b.context?b.context=c:b.pendingContext=c;b=wg(f,g);b.payload={element:a};d=void 0===\nd?null:d;null!==d&&(b.callback=d);xg(e,b);Ig(e,f);return f}function ck(a){a=a.current;if(!a.child)return null;switch(a.child.tag){case 5:return a.child.stateNode;default:return a.child.stateNode}}function dk(a,b){a=a.memoizedState;null!==a&&null!==a.dehydrated&&a.retryTime=G};l=function(){};exports.unstable_forceFrameRate=function(a){0>a||125>>1,e=a[d];if(void 0!==e&&0K(n,c))void 0!==r&&0>K(r,n)?(a[d]=r,a[v]=c,d=v):(a[d]=n,a[m]=c,d=m);else if(void 0!==r&&0>K(r,c))a[d]=r,a[v]=c,d=v;else break a}}return b}return null}function K(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}var N=[],O=[],P=1,Q=null,R=3,S=!1,T=!1,U=!1;\nfunction V(a){for(var b=L(O);null!==b;){if(null===b.callback)M(O);else if(b.startTime<=a)M(O),b.sortIndex=b.expirationTime,J(N,b);else break;b=L(O)}}function W(a){U=!1;V(a);if(!T)if(null!==L(N))T=!0,f(X);else{var b=L(O);null!==b&&g(W,b.startTime-a)}}\nfunction X(a,b){T=!1;U&&(U=!1,h());S=!0;var c=R;try{V(b);for(Q=L(N);null!==Q&&(!(Q.expirationTime>b)||a&&!k());){var d=Q.callback;if(null!==d){Q.callback=null;R=Q.priorityLevel;var e=d(Q.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?Q.callback=e:Q===L(N)&&M(N);V(b)}else M(N);Q=L(N)}if(null!==Q)var m=!0;else{var n=L(O);null!==n&&g(W,n.startTime-b);m=!1}return m}finally{Q=null,R=c,S=!1}}\nfunction Y(a){switch(a){case 1:return-1;case 2:return 250;case 5:return 1073741823;case 4:return 1E4;default:return 5E3}}var Z=l;exports.unstable_IdlePriority=5;exports.unstable_ImmediatePriority=1;exports.unstable_LowPriority=4;exports.unstable_NormalPriority=3;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=2;exports.unstable_cancelCallback=function(a){a.callback=null};exports.unstable_continueExecution=function(){T||S||(T=!0,f(X))};\nexports.unstable_getCurrentPriorityLevel=function(){return R};exports.unstable_getFirstCallbackNode=function(){return L(N)};exports.unstable_next=function(a){switch(R){case 1:case 2:case 3:var b=3;break;default:b=R}var c=R;R=b;try{return a()}finally{R=c}};exports.unstable_pauseExecution=function(){};exports.unstable_requestPaint=Z;exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=R;R=a;try{return b()}finally{R=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();if(\"object\"===typeof c&&null!==c){var e=c.delay;e=\"number\"===typeof e&&0d?(a.sortIndex=e,J(O,a),null===L(N)&&a===L(O)&&(U?h():U=!0,g(W,e-d))):(a.sortIndex=c,J(N,a),T||S||(T=!0,f(X)));return a};\nexports.unstable_shouldYield=function(){var a=exports.unstable_now();V(a);var b=L(N);return b!==Q&&null!==Q&&null!==b&&null!==b.callback&&b.startTime<=a&&b.expirationTime 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\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","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","module.exports = Array.isArray || function (arr) {\n return Object.prototype.toString.call(arr) == '[object Array]';\n};\n","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport classNames from 'classnames';\nimport React from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nvar defaultProps = {\n fluid: false\n};\nvar Container = React.forwardRef(function (_ref, ref) {\n var bsPrefix = _ref.bsPrefix,\n fluid = _ref.fluid,\n _ref$as = _ref.as,\n Component = _ref$as === void 0 ? 'div' : _ref$as,\n className = _ref.className,\n props = _objectWithoutPropertiesLoose(_ref, [\"bsPrefix\", \"fluid\", \"as\", \"className\"]);\n\n var prefix = useBootstrapPrefix(bsPrefix, 'container');\n var suffix = typeof fluid === 'string' ? \"-\" + fluid : '-fluid';\n return /*#__PURE__*/React.createElement(Component, _extends({\n ref: ref\n }, props, {\n className: classNames(className, fluid ? \"\" + prefix + suffix : prefix)\n }));\n});\nContainer.displayName = 'Container';\nContainer.defaultProps = defaultProps;\nexport default Container;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport classNames from 'classnames';\nimport React from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nvar DEVICE_SIZES = ['xl', 'lg', 'md', 'sm', 'xs'];\nvar defaultProps = {\n noGutters: false\n};\nvar Row = React.forwardRef(function (_ref, ref) {\n var bsPrefix = _ref.bsPrefix,\n className = _ref.className,\n noGutters = _ref.noGutters,\n _ref$as = _ref.as,\n Component = _ref$as === void 0 ? 'div' : _ref$as,\n props = _objectWithoutPropertiesLoose(_ref, [\"bsPrefix\", \"className\", \"noGutters\", \"as\"]);\n\n var decoratedBsPrefix = useBootstrapPrefix(bsPrefix, 'row');\n var sizePrefix = decoratedBsPrefix + \"-cols\";\n var classes = [];\n DEVICE_SIZES.forEach(function (brkPoint) {\n var propValue = props[brkPoint];\n delete props[brkPoint];\n var cols;\n\n if (propValue != null && typeof propValue === 'object') {\n cols = propValue.cols;\n } else {\n cols = propValue;\n }\n\n var infix = brkPoint !== 'xs' ? \"-\" + brkPoint : '';\n if (cols != null) classes.push(\"\" + sizePrefix + infix + \"-\" + cols);\n });\n return /*#__PURE__*/React.createElement(Component, _extends({\n ref: ref\n }, props, {\n className: classNames.apply(void 0, [className, decoratedBsPrefix, noGutters && 'no-gutters'].concat(classes))\n }));\n});\nRow.displayName = 'Row';\nRow.defaultProps = defaultProps;\nexport default Row;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport classNames from 'classnames';\nimport React from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nvar DEVICE_SIZES = ['xl', 'lg', 'md', 'sm', 'xs'];\nvar Col = React.forwardRef( // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\nfunction (_ref, ref) {\n var bsPrefix = _ref.bsPrefix,\n className = _ref.className,\n _ref$as = _ref.as,\n Component = _ref$as === void 0 ? 'div' : _ref$as,\n props = _objectWithoutPropertiesLoose(_ref, [\"bsPrefix\", \"className\", \"as\"]);\n\n var prefix = useBootstrapPrefix(bsPrefix, 'col');\n var spans = [];\n var classes = [];\n DEVICE_SIZES.forEach(function (brkPoint) {\n var propValue = props[brkPoint];\n delete props[brkPoint];\n var span, offset, order;\n\n if (propValue != null && typeof propValue === 'object') {\n var _propValue$span = propValue.span;\n span = _propValue$span === void 0 ? true : _propValue$span;\n offset = propValue.offset;\n order = propValue.order;\n } else {\n span = propValue;\n }\n\n var infix = brkPoint !== 'xs' ? \"-\" + brkPoint : '';\n if (span != null) spans.push(span === true ? \"\" + prefix + infix : \"\" + prefix + infix + \"-\" + span);\n if (order != null) classes.push(\"order\" + infix + \"-\" + order);\n if (offset != null) classes.push(\"offset\" + infix + \"-\" + offset);\n });\n\n if (!spans.length) {\n spans.push(prefix); // plain 'col'\n }\n\n return /*#__PURE__*/React.createElement(Component, _extends({}, props, {\n ref: ref,\n className: classNames.apply(void 0, [className].concat(spans, classes))\n }));\n});\nCol.displayName = 'Col';\nexport default Col;","import assert from './utils/assert';\nimport objectToGetParams from './utils/objectToGetParams';\nimport createShareButton from './hocs/createShareButton';\nfunction facebookLink(url, _a) {\n var quote = _a.quote, hashtag = _a.hashtag;\n assert(url, 'facebook.url');\n return ('https://www.facebook.com/sharer/sharer.php' +\n objectToGetParams({\n u: url,\n quote: quote,\n hashtag: hashtag,\n }));\n}\nvar FacebookShareButton = createShareButton('facebook', facebookLink, function (props) { return ({\n quote: props.quote,\n hashtag: props.hashtag,\n}); }, {\n windowWidth: 550,\n windowHeight: 400,\n});\nexport default FacebookShareButton;\n","import assert from './utils/assert';\nimport objectToGetParams from './utils/objectToGetParams';\nimport createShareButton from './hocs/createShareButton';\nfunction twitterLink(url, _a) {\n var title = _a.title, via = _a.via, _b = _a.hashtags, hashtags = _b === void 0 ? [] : _b, _c = _a.related, related = _c === void 0 ? [] : _c;\n assert(url, 'twitter.url');\n assert(Array.isArray(hashtags), 'twitter.hashtags is not an array');\n assert(Array.isArray(related), 'twitter.related is not an array');\n return ('https://twitter.com/share' +\n objectToGetParams({\n url: url,\n text: title,\n via: via,\n hashtags: hashtags.length > 0 ? hashtags.join(',') : undefined,\n related: related.length > 0 ? related.join(',') : undefined,\n }));\n}\nvar TwitterShareButton = createShareButton('twitter', twitterLink, function (props) { return ({\n hashtags: props.hashtags,\n title: props.title,\n via: props.via,\n related: props.related,\n}); }, {\n windowWidth: 550,\n windowHeight: 400,\n});\nexport default TwitterShareButton;\n","import assert from './utils/assert';\nimport objectToGetParams from './utils/objectToGetParams';\nimport createShareButton from './hocs/createShareButton';\nfunction redditLink(url, _a) {\n var title = _a.title;\n assert(url, 'reddit.url');\n return ('https://www.reddit.com/submit' +\n objectToGetParams({\n url: url,\n title: title,\n }));\n}\nvar RedditShareButton = createShareButton('reddit', redditLink, function (props) { return ({\n title: props.title,\n}); }, {\n windowWidth: 660,\n windowHeight: 460,\n windowPosition: 'windowCenter',\n});\nexport default RedditShareButton;\n","import assert from './utils/assert';\nimport objectToGetParams from './utils/objectToGetParams';\nimport createShareButton from './hocs/createShareButton';\nfunction linkedinLink(url, _a) {\n var title = _a.title, summary = _a.summary, source = _a.source;\n assert(url, 'linkedin.url');\n return ('https://linkedin.com/shareArticle' +\n objectToGetParams({ url: url, mini: 'true', title: title, summary: summary, source: source }));\n}\nvar LinkedinShareButton = createShareButton('linkedin', linkedinLink, function (_a) {\n var title = _a.title, summary = _a.summary, source = _a.source;\n return ({ title: title, summary: summary, source: source });\n}, {\n windowWidth: 750,\n windowHeight: 600,\n});\nexport default LinkedinShareButton;\n","import assert from './utils/assert';\nimport objectToGetParams from './utils/objectToGetParams';\nimport createShareButton from './hocs/createShareButton';\nfunction isMobileOrTablet() {\n return /(android|iphone|ipad|mobile)/i.test(navigator.userAgent);\n}\nfunction whatsappLink(url, _a) {\n var title = _a.title, separator = _a.separator;\n assert(url, 'whatsapp.url');\n return ('https://' +\n (isMobileOrTablet() ? 'api' : 'web') +\n '.whatsapp.com/send' +\n objectToGetParams({\n text: title ? title + separator + url : url,\n }));\n}\nvar WhatsappShareButton = createShareButton('whatsapp', whatsappLink, function (props) { return ({\n title: props.title,\n separator: props.separator || ' ',\n}); }, {\n windowWidth: 550,\n windowHeight: 400,\n});\nexport default WhatsappShareButton;\n"],"sourceRoot":""}