{"version":3,"sources":["webpack:///./node_modules/exenv/index.js","webpack:///./node_modules/focus-trap-react/dist/focus-trap-react.js","webpack:///./node_modules/focus-trap/index.js","webpack:///./node_modules/is-lite/lib/index.js","webpack:///./node_modules/json2mq/index.js","webpack:///./node_modules/lodash.debounce/index.js","webpack:///./node_modules/nested-property/index.js","webpack:///./node_modules/no-scroll/index.js","webpack:///./node_modules/popper.js/dist/esm/popper.js","webpack:///./node_modules/prop-types/factoryWithThrowingShims.js","webpack:///./node_modules/prop-types/index.js","webpack:///./node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack:///./node_modules/react-aria-modal/dist/react-aria-modal.js","webpack:///./node_modules/react-displace/dist/displace.js","webpack:///./node_modules/react-floater/es/index.js","webpack:///./node_modules/react-minimal-pie-chart/es/index.js","webpack:///./node_modules/react-proptype-conditional-require/dist/isRequiredIf.js","webpack:///./node_modules/react-responsive/dist/react-responsive.js","webpack:///./node_modules/react-slick/lib/arrows.js","webpack:///./node_modules/react-slick/lib/default-props.js","webpack:///./node_modules/react-slick/lib/dots.js","webpack:///./node_modules/react-slick/lib/index.js","webpack:///./node_modules/react-slick/lib/initial-state.js","webpack:///./node_modules/react-slick/lib/inner-slider.js","webpack:///./node_modules/react-slick/lib/slider.js","webpack:///./node_modules/react-slick/lib/track.js","webpack:///./node_modules/react-slick/lib/utils/innerSliderUtils.js","webpack:///./node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js","webpack:///./node_modules/string-convert/camel2hyphen.js","webpack:///./node_modules/styled-components-breakpoint/dist/esm/core.js","webpack:///./node_modules/styled-components-breakpoint/dist/esm/index.js","webpack:///./node_modules/tabbable/index.js","webpack:///./node_modules/tree-changes/es/index.js","webpack:///./node_modules/xtend/immutable.js"],"names":["canUseDOM","window","document","createElement","ExecutionEnvironment","canUseWorkers","Worker","canUseEventListeners","addEventListener","attachEvent","canUseViewport","screen","_createClass","defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","Constructor","protoProps","staticProps","prototype","_classCallCheck","instance","TypeError","_possibleConstructorReturn","self","call","ReferenceError","_inherits","subClass","superClass","create","constructor","value","setPrototypeOf","__proto__","React","ReactDOM","createFocusTrap","FocusTrap","_React$Component","this","_this","getPrototypeOf","setFocusTrapElement","element","focusTrapElement","previouslyFocusedElement","activeElement","specifiedFocusTrapOptions","focusTrapOptions","tailoredFocusTrapOptions","returnFocusOnDeactivate","optionName","hasOwnProperty","focusTrapElementDOMNode","findDOMNode","focusTrap","_createFocusTrap","active","activate","paused","pause","prevProps","config","returnFocus","deactivate","unpause","focus","_this2","child","Children","only","children","composedRefCallback","ref","cloneElement","Component","defaultProps","module","exports","trapQueue","tabbable","xtend","activeFocusTraps","activateTrap","trap","activeTrap","trapIndex","indexOf","splice","push","deactivateTrap","userOptions","doc","container","querySelector","escapeDeactivates","state","firstTabbableNode","lastTabbableNode","nodeFocusedBeforeActivation","mostRecentlyFocusedNode","activateOptions","updateTabbableNodes","onActivate","addListeners","deactivateOptions","removeListeners","onDeactivate","undefined","delay","tryFocus","getInitialFocusNode","checkFocusIn","checkPointerDown","checkClick","checkKey","removeEventListener","getNodeForOption","optionValue","node","Error","contains","e","clickOutsideDeactivates","isFocusable","preventDefault","Document","stopImmediatePropagation","isEscapeEvent","isTabEvent","checkTab","shiftKey","tabbableNodes","isSelectableInput","select","tagName","toLowerCase","keyCode","fn","setTimeout","isObject","getObjectType","toString","slice","isObjectOfType","type","default","array","Array","isArray","boolean","date","domElement","DOM_PROPERTIES_TO_CHECK","object","plainObject","nodeType","string","nodeName","every","property","function","generator","iterable","next","throw","nullOrUndefined","Symbol","iterator","map","nan","Number","isNaN","null","number","numericString","promise","regexp","set","symbol","weakMap","weakSet","camel2hyphen","isDimension","feature","test","obj2mq","obj","mq","features","keys","forEach","index","json2mq","query","q","FUNC_ERROR_TEXT","NAN","symbolTag","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","parseInt","freeGlobal","global","freeSelf","root","Function","objectToString","nativeMax","Math","max","nativeMin","min","now","Date","debounce","func","wait","options","lastArgs","lastThis","maxWait","result","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","invokeFunc","time","args","thisArg","apply","leadingEdge","timerExpired","remainingWait","shouldInvoke","timeSinceLastCall","trailingEdge","cancel","clearTimeout","flush","debounced","isInvoking","arguments","toNumber","isObjectLike","isSymbol","other","valueOf","replace","isBinary","getNestedProperty","split","reduce","prop","hasNestedProperty","idx","own","setNestedProperty","isInNestedProperty","objectInPath","pathExists","isIn","validPath","get","has","hasOwn","scrollbarSize","scrollTop","isOn","getScrollbarSize","documentElement","dummyScroller","setAttribute","appendChild","offsetWidth","clientWidth","removeChild","hasScrollbar","scrollHeight","innerHeight","on","pageYOffset","style","width","position","top","overflow","off","scroll","toggle","noScroll","isBrowser","navigator","timeoutDuration","longerTimeoutBrowsers","userAgent","microtaskDebounce","called","Promise","resolve","then","taskDebounce","scheduled","isFunction","functionToCheck","getStyleComputedProperty","css","ownerDocument","defaultView","getComputedStyle","getParentNode","parentNode","host","getScrollParent","body","_getStyleComputedProp","overflowX","overflowY","getReferenceNode","reference","referenceNode","isIE11","MSInputMethodContext","documentMode","isIE10","isIE","version","getOffsetParent","noOffsetParent","offsetParent","nextElementSibling","isOffsetContainer","firstElementChild","getRoot","findCommonOffsetParent","element1","element2","order","compareDocumentPosition","Node","DOCUMENT_POSITION_FOLLOWING","start","end","range","createRange","setStart","setEnd","commonAncestorContainer","element1root","getScroll","upperSide","html","scrollingElement","includeScroll","rect","subtract","scrollLeft","modifier","bottom","left","right","getBordersSize","styles","axis","sideA","sideB","parseFloat","getSize","computedStyle","getWindowSizes","height","classCallCheck","createClass","_extends","assign","source","getClientRect","offsets","getBoundingClientRect","sizes","clientHeight","horizScrollbar","vertScrollbar","offsetHeight","getOffsetRectRelativeToArbitraryNode","parent","fixedPosition","isHTML","childrenRect","parentRect","scrollParent","borderTopWidth","borderLeftWidth","marginTop","marginLeft","getViewportOffsetRectRelativeToArtbitraryNode","excludeScroll","relativeOffset","innerWidth","isFixed","getFixedPositionOffsetParent","parentElement","el","getBoundaries","popper","padding","boundariesElement","boundaries","boundariesNode","_getWindowSizes","isPaddingNumber","getArea","_ref","computeAutoPlacement","placement","refRect","rects","sortedAreas","area","sort","a","b","filteredAreas","filter","_ref2","computedPlacement","variation","getReferenceOffsets","getOuterSizes","x","marginBottom","y","marginRight","getOppositePlacement","hash","matched","getPopperOffsets","referenceOffsets","popperRect","popperOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","find","arr","check","findIndex","cur","match","runModifiers","modifiers","data","ends","console","warn","enabled","update","isDestroyed","arrowStyles","attributes","flipped","positionFixed","flip","originalPlacement","isCreated","onUpdate","onCreate","isModifierEnabled","modifierName","some","name","getSupportedPropertyName","prefixes","upperProp","charAt","toUpperCase","prefix","toCheck","destroy","removeAttribute","willChange","disableEventListeners","removeOnDestroy","getWindow","attachToScrollParents","event","callback","scrollParents","isBody","passive","setupEventListeners","updateBound","scrollElement","eventsEnabled","enableEventListeners","scheduleUpdate","removeEventListeners","cancelAnimationFrame","isNumeric","n","isFinite","setStyles","unit","setAttributes","applyStyle","arrowElement","applyStyleOnLoad","modifierOptions","getRoundedOffsets","shouldRound","_data$offsets","round","floor","noRound","v","referenceWidth","popperWidth","isVertical","isVariation","horizontalToInteger","verticalToInteger","isFirefox","computeStyle","legacyGpuAccelerationOption","gpuAcceleration","offsetParentRect","devicePixelRatio","prefixedProperty","invertTop","invertLeft","arrow","isModifierRequired","requestingName","requestedName","requesting","isRequired","_requesting","requested","_data$offsets$arrow","len","sideCapitalized","side","altSide","opSide","arrowElementSize","center","popperMarginSide","popperBorderSide","sideValue","getOppositeVariation","placements","validPlacements","clockwise","counter","concat","reverse","BEHAVIORS","FLIP","CLOCKWISE","COUNTERCLOCKWISE","placementOpposite","flipOrder","behavior","step","refOffsets","overlapsRef","overflowsLeft","overflowsRight","overflowsTop","overflowsBottom","overflowsBoundaries","flippedVariationByRef","flipVariations","flippedVariationByContent","flipVariationsByContent","flippedVariation","keepTogether","toValue","str","parseOffset","offset","basePlacement","useHeight","fragments","frag","trim","divider","search","splitRegex","ops","op","mergeWithPrevious","index2","preventOverflow","transformProp","popperStyles","transform","priority","primary","escapeWithReference","secondary","shift","shiftvariation","shiftOffsets","hide","bound","inner","subtractLength","Defaults","onLoad","Popper","requestAnimationFrame","bind","jquery","Utils","PopperUtils","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","propName","componentName","location","propFullName","secret","err","getShim","ReactPropTypes","bool","any","arrayOf","elementType","instanceOf","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","PropTypes","_typeof","_defineProperties","_assertThisInitialized","_getPrototypeOf","o","_setPrototypeOf","p","_defineProperty","displace","Modal","_getPrototypeOf2","_len","_key","getApplicationNode","applicationNode","dialogNode","pageX","pageY","exit","escapeExits","onExit","titleText","titleId","onEnter","addKeyDownListener","scrollDisabled","removeKeyDownListener","checkDocumentKeyDown","_this3","includeDefaultStyles","zIndex","WebkitOverflowScrolling","textAlign","underlayColor","background","underlayClickExits","cursor","underlayStyle","underlayProps","className","underlayClass","onMouseDown","checkUnderlayClick","verticalCenterStyle","display","verticalAlign","verticalCenterHelperProps","dialogStyle","maxWidth","outline","focusDialog","verticallyCenter","_key2","dialogProps","role","alert","id","dialogId","dialogClass","_key3","tabIndex","childrenArray","unshift","initialFocus","focusTrapPaused","DisplacedModal","renderTo","input","canUsePortals","createPortal","WrappedComponent","EmptyDisplace","Displaced","_React$Component2","_temp","renderDisplaced","unstable_renderSubtreeIntoContainer","removeDisplaced","unmountComponentAtNode","mounted","ownKeys","enumerableOnly","getOwnPropertySymbols","sym","getOwnPropertyDescriptor","_objectSpread2","getOwnPropertyDescriptors","_objectWithoutPropertiesLoose","excluded","sourceKeys","_objectWithoutProperties","sourceSymbolKeys","propertyIsEnumerable","DEFAULTS","STATUS","INIT","IDLE","OPENING","OPEN","CLOSING","ERROR","isReact16","isMobile","log","title","_ref$warn","_ref$debug","debug","logFn","error","groupCollapsed","d","groupEnd","cb","capture","once","_nextCB","noop","ReactFloaterPortal","renderPortal","_this$props","setRef","_this$props2","hasChildren","renderReact16","FloaterArrow","points","setArrowRef","_styles$arrow","color","margin","spread","startsWith","parentStyle","xmlns","fill","FloaterCloseBtn","handleClick","onClick","viewBox","preserveAspectRatio","propTypes","FloaterContainer","content","footer","open","positionWrapper","showCloseButton","output","isValidElement","close","Floater","component","closeFn","hideArrow","setFloaterRef","status","classes","join","disableAnimation","isPositioned","floater","floaterCentered","floaterClosing","floaterOpening","floaterWithAnimation","floaterWithComponent","includes","ReactFloaterWrapper","handleMouseEnter","handleMouseLeave","setChildRef","setWrapperRef","count","refProp","onMouseEnter","onMouseLeave","defaultOptions","getStyles","wrapper","flexDirection","wrapperPosition","visibility","opacity","transition","backgroundColor","minHeight","minWidth","borderBottom","fontSize","paddingBottom","paddingRight","border","borderRadius","WebkitAppearance","borderTop","paddingTop","POSITIONING_PROPS","ReactFloater","arrowRef","childRef","floaterRef","wrapperRef","wrapperPopper","setState","newStatus","_this$state","eventDelayTimeout","_this$props3","eventDelay","_this$state2","currentPlacement","wrapperOptions","statusWrapper","_isMounted","_this$props5","hasTarget","isControlled","initPopper","prevState","forceStatus","_this$props6","autoOpen","_treeChanges","changedFrom","changedTo","changeWrapperPosition","handleTransitionEnd","_this$props7","disableFlip","getPopper","flipBehavior","wrapperOffset","nextStatus","_this$state3","_this$props8","wrapperInPortal","wrapperAsChildren","ReactFloaterDebug","_this$props9","disableHoverToClick","wrapperStyles","_this$state4","nextStyles","targetStyles","svgPartialCircle","cx","cy","r","fromX","cos","fromY","sin","toX","toY","abs","PI","degreesToRadians","degrees","evaluateViewBoxSize","ratio","baseSize","evaluateLabelTextAnchor","labelPosition","lineWidth","labelHorizontalShift","valueBetween","extractPercentage","percentage","inherits","objectWithoutProperties","possibleConstructorReturn","makePathCommands","startAngle","lengthAngle","radius","patchedLengthAngle","command","ReactMinimalPieChartPath","reveal","actualRadio","pathCommands","strokeDasharray","strokeDashoffset","strokeWidth","displayName","dataPropType","stylePropType","ReactMinimalPieChartLabel","dataIndex","textAnchor","alignmentBaseline","VIEWBOX_SIZE","VIEWBOX_HALF_SIZE","sumValues","acc","dataEntry","evaluateDegreesFromValues","totalAngle","totalValue","total","normalizedTotalAngle","valueInPercentage","makeSegmentTransitionStyle","duration","easing","Boolean","makeSegments","lastSegmentAngle","paddingAngle","sign","segmentsStyle","animate","transitionStyle","animationDuration","animationEasing","stroke","strokeLinecap","rounded","onMouseOver","onMouseOut","renderLabelItem","option","label","makeLabels","halfAngleRadians","dx","dy","labelProps","labelStyle","ReactMinimalPieChart","_PureComponent","hideSegments","componentDidMount","initialAnimationTimerId","initialAnimationRAFId","startAnimation","componentWillUnmount","forceUpdate","render","normalizedData","injectSvg","VALIDATOR_ARG_ERROR_MESSAGE","MESSAGE_ARG_ERROR_MESSAGE","propIsRequired","c","propExists","missingPropError","guardAgainstInvalidArgTypes","isRequiredIf","f","g","factory","__WEBPACK_EXTERNAL_MODULE_1__","modules","__webpack_require__","moduleId","installedModules","l","m","getter","__esModule","s","__webpack_exports__","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","_arr","_n","_d","_e","_s","_i","done","return","__WEBPACK_IMPORTED_MODULE_0_react__","__WEBPACK_IMPORTED_MODULE_0_react___default","__WEBPACK_IMPORTED_MODULE_1_matchmediaquery__","__WEBPACK_IMPORTED_MODULE_1_matchmediaquery___default","__WEBPACK_IMPORTED_MODULE_2_hyphenate_style_name__","__WEBPACK_IMPORTED_MODULE_3_shallow_equal_objects__","__WEBPACK_IMPORTED_MODULE_3_shallow_equal_objects___default","__WEBPACK_IMPORTED_MODULE_4__toQuery__","__WEBPACK_IMPORTED_MODULE_5__Context__","makeQuery","settings","hyphenateKeys","useIsUpdate","useRef","useEffect","current","useDevice","deviceFromProps","deviceFromContext","useContext","getDevice","_React$useState2","useState","device","setDevice","newDevice","useQuery","getQuery","_React$useState4","setQuery","newQuery","useMatchMedia","getMatchMedia","_React$useState6","setMq","isUpdate","dispose","useMatches","mediaQuery","_React$useState8","matches","setMatches","updateMatches","addListener","removeListener","useMediaQuery","onChange","deviceSettings","toHyphenLower","hyphenateStyleName","cache","hName","uppercasePattern","msPattern","Context","createContext","__WEBPACK_IMPORTED_MODULE_0__useMediaQuery__","__WEBPACK_IMPORTED_MODULE_1__Component__","__WEBPACK_IMPORTED_MODULE_2__Context__","Mql","values","forceStatic","listener","mql","evt","media","dynamicMatch","staticMatch","matchMedia","matchQuery","parseQuery","inverse","typeMatch","expressionsMatch","expressions","expression","expValue","toPx","toDpi","toDecimal","captures","RE_MEDIA_QUERY","parsed","RE_MQ_EXPRESSION","RE_MQ_FEATURE","numbers","decimal","resolution","String","RE_RESOLUTION_UNIT","RE_LENGTH_UNIT","parse","shallowEqualObjects","objA","objB","aKeys","bKeys","__WEBPACK_IMPORTED_MODULE_0_hyphenate_style_name__","__WEBPACK_IMPORTED_MODULE_1__mediaQuery__","negate","cond","keyVal","k","realKey","conds","rules","all","symbols","_objectSpread","__WEBPACK_IMPORTED_MODULE_0_prop_types__","__WEBPACK_IMPORTED_MODULE_0_prop_types___default","stringOrNumber","matchers","orientation","scan","aspectRatio","deviceAspectRatio","deviceHeight","deviceWidth","colorIndex","monochrome","minAspectRatio","maxAspectRatio","minDeviceAspectRatio","maxDeviceAspectRatio","maxHeight","minDeviceHeight","maxDeviceHeight","minDeviceWidth","maxDeviceWidth","minColor","maxColor","minColorIndex","maxColorIndex","minMonochrome","maxMonochrome","minResolution","maxResolution","types","grid","aural","braille","handheld","print","projection","tty","tv","embossed","ReactIs","isElement","isValidElementType","REACT_FRAGMENT_TYPE","REACT_CONCURRENT_MODE_TYPE","REACT_PROFILER_TYPE","REACT_STRICT_MODE_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","$$typeof","REACT_LAZY_TYPE","REACT_MEMO_TYPE","REACT_PROVIDER_TYPE","REACT_CONTEXT_TYPE","REACT_FORWARD_REF_TYPE","REACT_FUNDAMENTAL_TYPE","REACT_RESPONDER_TYPE","typeOf","REACT_ELEMENT_TYPE","REACT_ASYNC_MODE_TYPE","$$typeofType","REACT_PORTAL_TYPE","isAsyncMode","hasWarnedAboutDeprecatedIsAsyncMode","lowPriorityWarning$1","isConcurrentMode","isContextConsumer","isContextProvider","isForwardRef","isFragment","isLazy","isMemo","isPortal","isProfiler","isStrictMode","isSuspense","hasSymbol","for","printWarning","format","argIndex","message","condition","_len2","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Element","ForwardRef","Fragment","Lazy","Memo","Portal","Profiler","StrictMode","Suspense","emptyFunctionThatReturnsNull","text","throwOnDirectAccess","getIteratorFn","maybeIterable","iteratorFn","ITERATOR_SYMBOL","FAUX_ITERATOR_SYMBOL","is","PropTypeError","stack","createChainableTypeChecker","validate","checkType","ANONYMOUS","cacheKey","manualPropTypeCallCache","manualPropTypeWarningCount","chainedCheckType","createPrimitiveTypeChecker","expectedType","propValue","getPropType","getPreciseType","createArrayOfTypeChecker","typeChecker","createInstanceTypeChecker","expectedClass","expectedClassName","getClassName","createEnumTypeChecker","expectedValues","valuesString","JSON","stringify","createObjectOfTypeChecker","propType","createUnionTypeChecker","arrayOfTypeCheckers","checker","getPostfixForTypeWarning","createShapeTypeChecker","shapeTypes","createStrictShapeTypeChecker","allKeys","isNode","entries","entry","RegExp","toObject","val","propIsEnumerable","test1","getOwnPropertyNames","test2","fromCharCode","test3","letter","from","to","typeSpecs","getStack","typeSpecName","ex","loggedTypeFailures","MediaQuery","NextArrow","PrevArrow","_react","_interopRequireDefault","_classnames","_innerSliderUtils","_React$PureComponent","clickHandler","prevClasses","prevHandler","infinite","currentSlide","slideCount","slidesToShow","prevArrowProps","customProps","prevArrow","PureComponent","_React$PureComponent2","nextClasses","nextHandler","canGoNext","nextArrowProps","nextArrow","_default","accessibility","adaptiveHeight","afterChange","appendDots","dots","arrows","autoplay","autoplaySpeed","beforeChange","centerMode","centerPadding","cssEase","customPaging","dotsClass","draggable","edgeFriction","fade","focusOnSelect","initialSlide","lazyLoad","onEdge","onInit","onLazyLoadError","onReInit","pauseOnDotsHover","pauseOnFocus","pauseOnHover","responsive","rows","rtl","slide","slidesPerRow","slidesToScroll","speed","swipe","swipeEvent","swipeToSlide","touchMove","touchThreshold","useCSS","useTransform","variableWidth","vertical","waitForAnimate","Dots","getDotCount","spec","ceil","dotCount","mouseEvents","leftBound","rightBound","dotOptions","animating","autoplaying","currentDirection","currentLeft","direction","dragging","edgeDragged","initialized","lazyLoadedList","listHeight","listWidth","scrolling","slideHeight","slideWidth","swipeLeft","swiped","swiping","touchObject","startX","startY","curX","curY","trackStyle","trackWidth","InnerSlider","_reactDom","_initialState","_lodash","_track","_dots","_arrows","_resizeObserverPolyfill","list","track","elem","getHeight","ssrInit","slidesToLoad","getOnDemandLazySlides","onLazyLoad","listRef","trackRef","updateState","adaptHeight","autoPlay","lazyLoadTimer","setInterval","progressiveLazyLoad","ro","onWindowResized","callbackTimers","observe","querySelectorAll","onfocus","onSlideFocus","onblur","onSlideBlur","animationEndCallback","clearInterval","timer","detachEvent","autoplayTimer","nextProps","setTrackStyle","_Object$keys","changeSlide","checkImagesLoad","debouncedResize","resizeWindow","updatedState","initializedState","slideIndex","getTrackLeft","getTrackCSS","_trackWidth","_trackLeft","childrenWidths","preClones","getPreClones","postClones","getPostClones","_i2","_i3","_trackStyle","currentWidth","childrenCount","trackLeft","images","imagesCount","loadedCount","image","handler","onclick","prevClickHandler","onload","onerror","_index","dontAnimate","asNavFor","_slideHandler","slideHandler","nextState","innerSlider","firstBatch","targetSlide","clickable","stopPropagation","dir","keyHandler","returnValue","ontouchmove","verticalSwiping","disableBodyScroll","swipeStart","swipeMove","swipeEnd","triggerSlideHandler","enableBodyScroll","nextIndex","playType","play","pauseType","trackProps","extractObject","onTrackOver","onTrackLeave","selectHandler","dotProps","onDotsLeave","onDotsOver","arrowProps","verticalHeightStyle","centerPaddingStyle","listStyle","listProps","onMouseMove","onMouseUp","onTouchStart","onTouchMove","onTouchEnd","onTouchCancel","onKeyDown","innerSliderProps","unslick","listRefHandler","Track","trackRefHandler","_innerSlider","_json2mq","_defaultProps","enquire","Slider","slickPrev","slickNext","slickGoTo","breakpoint","_responsiveMediaHandlers","register","breakpoints","breakpt","bQuery","unregister","newProps","resp","toArray","newChildren","newSlide","j","row","innerSliderRefHandler","getSlideClasses","slickActive","slickCenter","slickCloned","centerOffset","getSlideStyle","getKey","fallbackKey","renderSlides","slides","preCloneSlides","postCloneSlides","startIndex","lazyStartIndex","endIndex","lazyEndIndex","childOnClickOptions","childStyle","slideClass","slideClasses","preCloneNo","slidesOnLeft","slidesOnRight","siblingDirection","getTotalSlides","getTrackAnimateCSS","checkSpecKeys","getSlideCount","checkNavigable","getNavigableIndexes","getSwipeDirection","getWidth","lazySlidesOnRight","lazySlidesOnLeft","getRequiredLazySlides","onDemandSlides","requiredSlides","xDist","yDist","swipeAngle","atan2","canGo","newObject","centerPaddingAdj","finalSlide","animationLeft","finalLeft","animationSlide","indexOffset","previousInt","slideOffset","touches","clientX","clientY","curLeft","swipeLength","sqrt","pow","verticalSwipeLength","positionOffset","swipeDirection","touchSwipeLength","onSwipe","minSwipe","indexes","navigables","prevNavigable","swipedSlide","offsetTop","offsetLeft","currentIndex","dataset","keysArray","trackHeight","trackChildren","WebkitTransition","WebkitTransform","msTransform","targetLeft","slidesToOffset","targetSlideIndex","trackElem","childNodes","MapShim","Map","getIndex","class_1","__entries__","delete","clear","ctx","_a","global$1","requestAnimationFrame$1","trailingTimeout","throttle","leadingCall","trailingCall","resolvePending","proxy","timeoutCallback","timeStamp","REFRESH_DELAY","transitionKeys","mutationObserverSupported","MutationObserver","ResizeObserverController","connected_","mutationEventsAdded_","mutationsObserver_","observers_","onTransitionEnd_","refresh","addObserver","observer","connect_","removeObserver","observers","disconnect_","updateObservers_","activeObservers","gatherActive","hasActive","broadcastActive","childList","characterData","subtree","disconnect","_b","propertyName","getInstance","instance_","defineConfigurable","getWindowOf","emptyRect","createRectInit","toFloat","positions","size","getPaddings","paddings","positions_1","getSVGContentRect","bbox","getBBox","getHTMLElementContentRect","horizPad","vertPad","boxSizing","isDocumentElement","isSVGGraphicsElement","SVGGraphicsElement","SVGElement","getContentRect","createReadOnlyRect","Constr","DOMRectReadOnly","ResizeObservation","broadcastWidth","broadcastHeight","contentRect_","isActive","broadcastRect","ResizeObserverEntry","rectInit","contentRect","ResizeObserverSPI","controller","callbackCtx","activeObservations_","observations_","callback_","controller_","callbackCtx_","observations","unobserve","clearActive","observation","WeakMap","ResizeObserver","method","_templateObject","_taggedTemplateLiteral","_templateObject2","strings","raw","freeze","_toConsumableArray","arr2","convertPxToEm","pixels","getValueFromName","withSingleCriteria","operator","interpolations","_gte","_between","gte","lt","gteValue","ltValue","_len3","_breakpoint","defaultBreakpoints","mobile","tablet","desktop","_ref$theme","theme","candidateSelectors","candidateSelector","msMatchesSelector","webkitMatchesSelector","candidate","candidateTabindex","regularTabbables","orderedTabbables","untouchabilityChecker","UntouchabilityChecker","candidates","includeContainer","isNodeMatchingSelectorTabbable","getTabindex","documentOrder","sortOrderedTabbables","isNodeMatchingSelectorFocusable","isNonTabbableRadio","isTabbable","disabled","isHiddenInput","isUntouchable","focusableCandidateSelector","tabindexAttr","getAttribute","isContentEditable","predicate","contentEditable","isInput","isRadio","isTabbableRadio","getCheckedRadio","nodes","checked","elementDocument","hasDisplayNone","nodeComputedStyle","ELEMENT_NODE","cached","item","isPlainObj","isNumber","treeChanges","nextData","changed","diff","previous","actual","useActual","leftComparator","rightComparator","increased","decreased","extend"],"mappings":"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","file":"common~db300d2f.dd08085a18ecf841649b.bundle.js","sourcesContent":["/*!\n Copyright (c) 2015 Jed Watson.\n Based on code that is Copyright 2013-2015, Facebook, Inc.\n All rights reserved.\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar canUseDOM = !!(\n\t\ttypeof window !== 'undefined' &&\n\t\twindow.document &&\n\t\twindow.document.createElement\n\t);\n\n\tvar ExecutionEnvironment = {\n\n\t\tcanUseDOM: canUseDOM,\n\n\t\tcanUseWorkers: typeof Worker !== 'undefined',\n\n\t\tcanUseEventListeners:\n\t\t\tcanUseDOM && !!(window.addEventListener || window.attachEvent),\n\n\t\tcanUseViewport: canUseDOM && !!window.screen\n\n\t};\n\n\tif (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\tdefine(function () {\n\t\t\treturn ExecutionEnvironment;\n\t\t});\n\t} else if (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = ExecutionEnvironment;\n\t} else {\n\t\twindow.ExecutionEnvironment = ExecutionEnvironment;\n\t}\n\n}());\n","'use strict';\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\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar React = require('react');\nvar ReactDOM = require('react-dom');\nvar createFocusTrap = require('focus-trap');\n\nvar FocusTrap = function (_React$Component) {\n _inherits(FocusTrap, _React$Component);\n\n function FocusTrap(props) {\n _classCallCheck(this, FocusTrap);\n\n var _this = _possibleConstructorReturn(this, (FocusTrap.__proto__ || Object.getPrototypeOf(FocusTrap)).call(this, props));\n\n _this.setFocusTrapElement = function (element) {\n _this.focusTrapElement = element;\n };\n\n if (typeof document !== 'undefined') {\n _this.previouslyFocusedElement = document.activeElement;\n }\n return _this;\n }\n\n _createClass(FocusTrap, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n // We need to hijack the returnFocusOnDeactivate option,\n // because React can move focus into the element before we arrived at\n // this lifecycle hook (e.g. with autoFocus inputs). So the component\n // captures the previouslyFocusedElement in componentWillMount,\n // then (optionally) returns focus to it in componentWillUnmount.\n var specifiedFocusTrapOptions = this.props.focusTrapOptions;\n var tailoredFocusTrapOptions = {\n returnFocusOnDeactivate: false\n };\n for (var optionName in specifiedFocusTrapOptions) {\n if (!specifiedFocusTrapOptions.hasOwnProperty(optionName)) continue;\n if (optionName === 'returnFocusOnDeactivate') continue;\n tailoredFocusTrapOptions[optionName] = specifiedFocusTrapOptions[optionName];\n }\n\n var focusTrapElementDOMNode = ReactDOM.findDOMNode(this.focusTrapElement);\n\n this.focusTrap = this.props._createFocusTrap(focusTrapElementDOMNode, tailoredFocusTrapOptions);\n if (this.props.active) {\n this.focusTrap.activate();\n }\n if (this.props.paused) {\n this.focusTrap.pause();\n }\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate(prevProps) {\n if (prevProps.active && !this.props.active) {\n var returnFocusOnDeactivate = this.props.focusTrapOptions.returnFocusOnDeactivate;\n\n var returnFocus = returnFocusOnDeactivate || false;\n var config = { returnFocus: returnFocus };\n this.focusTrap.deactivate(config);\n } else if (!prevProps.active && this.props.active) {\n this.focusTrap.activate();\n }\n\n if (prevProps.paused && !this.props.paused) {\n this.focusTrap.unpause();\n } else if (!prevProps.paused && this.props.paused) {\n this.focusTrap.pause();\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.focusTrap.deactivate();\n if (this.props.focusTrapOptions.returnFocusOnDeactivate !== false && this.previouslyFocusedElement && this.previouslyFocusedElement.focus) {\n this.previouslyFocusedElement.focus();\n }\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var child = React.Children.only(this.props.children);\n\n var composedRefCallback = function composedRefCallback(element) {\n _this2.setFocusTrapElement(element);\n if (typeof child.ref === 'function') {\n child.ref(element);\n }\n };\n\n var childWithRef = React.cloneElement(child, { ref: composedRefCallback });\n\n return childWithRef;\n }\n }]);\n\n return FocusTrap;\n}(React.Component);\n\nFocusTrap.defaultProps = {\n active: true,\n paused: false,\n focusTrapOptions: {},\n _createFocusTrap: createFocusTrap\n};\n\nmodule.exports = FocusTrap;","var tabbable = require('tabbable');\nvar xtend = require('xtend');\n\nvar activeFocusTraps = (function() {\n var trapQueue = [];\n return {\n activateTrap: function(trap) {\n if (trapQueue.length > 0) {\n var activeTrap = trapQueue[trapQueue.length - 1];\n if (activeTrap !== trap) {\n activeTrap.pause();\n }\n }\n\n var trapIndex = trapQueue.indexOf(trap);\n if (trapIndex === -1) {\n trapQueue.push(trap);\n } else {\n // move this existing trap to the front of the queue\n trapQueue.splice(trapIndex, 1);\n trapQueue.push(trap);\n }\n },\n\n deactivateTrap: function(trap) {\n var trapIndex = trapQueue.indexOf(trap);\n if (trapIndex !== -1) {\n trapQueue.splice(trapIndex, 1);\n }\n\n if (trapQueue.length > 0) {\n trapQueue[trapQueue.length - 1].unpause();\n }\n }\n };\n})();\n\nfunction focusTrap(element, userOptions) {\n var doc = document;\n var container =\n typeof element === 'string' ? doc.querySelector(element) : element;\n\n var config = xtend(\n {\n returnFocusOnDeactivate: true,\n escapeDeactivates: true\n },\n userOptions\n );\n\n var state = {\n firstTabbableNode: null,\n lastTabbableNode: null,\n nodeFocusedBeforeActivation: null,\n mostRecentlyFocusedNode: null,\n active: false,\n paused: false\n };\n\n var trap = {\n activate: activate,\n deactivate: deactivate,\n pause: pause,\n unpause: unpause\n };\n\n return trap;\n\n function activate(activateOptions) {\n if (state.active) return;\n\n updateTabbableNodes();\n\n state.active = true;\n state.paused = false;\n state.nodeFocusedBeforeActivation = doc.activeElement;\n\n var onActivate =\n activateOptions && activateOptions.onActivate\n ? activateOptions.onActivate\n : config.onActivate;\n if (onActivate) {\n onActivate();\n }\n\n addListeners();\n return trap;\n }\n\n function deactivate(deactivateOptions) {\n if (!state.active) return;\n\n removeListeners();\n state.active = false;\n state.paused = false;\n\n activeFocusTraps.deactivateTrap(trap);\n\n var onDeactivate =\n deactivateOptions && deactivateOptions.onDeactivate !== undefined\n ? deactivateOptions.onDeactivate\n : config.onDeactivate;\n if (onDeactivate) {\n onDeactivate();\n }\n\n var returnFocus =\n deactivateOptions && deactivateOptions.returnFocus !== undefined\n ? deactivateOptions.returnFocus\n : config.returnFocusOnDeactivate;\n if (returnFocus) {\n delay(function() {\n tryFocus(state.nodeFocusedBeforeActivation);\n });\n }\n\n return trap;\n }\n\n function pause() {\n if (state.paused || !state.active) return;\n state.paused = true;\n removeListeners();\n }\n\n function unpause() {\n if (!state.paused || !state.active) return;\n state.paused = false;\n addListeners();\n }\n\n function addListeners() {\n if (!state.active) return;\n\n // There can be only one listening focus trap at a time\n activeFocusTraps.activateTrap(trap);\n\n updateTabbableNodes();\n\n // Delay ensures that the focused element doesn't capture the event\n // that caused the focus trap activation.\n delay(function() {\n tryFocus(getInitialFocusNode());\n });\n doc.addEventListener('focusin', checkFocusIn, true);\n doc.addEventListener('mousedown', checkPointerDown, true);\n doc.addEventListener('touchstart', checkPointerDown, true);\n doc.addEventListener('click', checkClick, true);\n doc.addEventListener('keydown', checkKey, true);\n\n return trap;\n }\n\n function removeListeners() {\n if (!state.active) return;\n\n doc.removeEventListener('focusin', checkFocusIn, true);\n doc.removeEventListener('mousedown', checkPointerDown, true);\n doc.removeEventListener('touchstart', checkPointerDown, true);\n doc.removeEventListener('click', checkClick, true);\n doc.removeEventListener('keydown', checkKey, true);\n\n return trap;\n }\n\n function getNodeForOption(optionName) {\n var optionValue = config[optionName];\n var node = optionValue;\n if (!optionValue) {\n return null;\n }\n if (typeof optionValue === 'string') {\n node = doc.querySelector(optionValue);\n if (!node) {\n throw new Error('`' + optionName + '` refers to no known node');\n }\n }\n if (typeof optionValue === 'function') {\n node = optionValue();\n if (!node) {\n throw new Error('`' + optionName + '` did not return a node');\n }\n }\n return node;\n }\n\n function getInitialFocusNode() {\n var node;\n if (getNodeForOption('initialFocus') !== null) {\n node = getNodeForOption('initialFocus');\n } else if (container.contains(doc.activeElement)) {\n node = doc.activeElement;\n } else {\n node = state.firstTabbableNode || getNodeForOption('fallbackFocus');\n }\n\n if (!node) {\n throw new Error(\n \"You can't have a focus-trap without at least one focusable element\"\n );\n }\n\n return node;\n }\n\n // This needs to be done on mousedown and touchstart instead of click\n // so that it precedes the focus event.\n function checkPointerDown(e) {\n if (container.contains(e.target)) return;\n if (config.clickOutsideDeactivates) {\n deactivate({\n returnFocus: !tabbable.isFocusable(e.target)\n });\n } else {\n e.preventDefault();\n }\n }\n\n // In case focus escapes the trap for some strange reason, pull it back in.\n function checkFocusIn(e) {\n // In Firefox when you Tab out of an iframe the Document is briefly focused.\n if (container.contains(e.target) || e.target instanceof Document) {\n return;\n }\n e.stopImmediatePropagation();\n tryFocus(state.mostRecentlyFocusedNode || getInitialFocusNode());\n }\n\n function checkKey(e) {\n if (config.escapeDeactivates !== false && isEscapeEvent(e)) {\n e.preventDefault();\n deactivate();\n return;\n }\n if (isTabEvent(e)) {\n checkTab(e);\n return;\n }\n }\n\n // Hijack Tab events on the first and last focusable nodes of the trap,\n // in order to prevent focus from escaping. If it escapes for even a\n // moment it can end up scrolling the page and causing confusion so we\n // kind of need to capture the action at the keydown phase.\n function checkTab(e) {\n updateTabbableNodes();\n if (e.shiftKey && e.target === state.firstTabbableNode) {\n e.preventDefault();\n tryFocus(state.lastTabbableNode);\n return;\n }\n if (!e.shiftKey && e.target === state.lastTabbableNode) {\n e.preventDefault();\n tryFocus(state.firstTabbableNode);\n return;\n }\n }\n\n function checkClick(e) {\n if (config.clickOutsideDeactivates) return;\n if (container.contains(e.target)) return;\n e.preventDefault();\n e.stopImmediatePropagation();\n }\n\n function updateTabbableNodes() {\n var tabbableNodes = tabbable(container);\n state.firstTabbableNode = tabbableNodes[0] || getInitialFocusNode();\n state.lastTabbableNode =\n tabbableNodes[tabbableNodes.length - 1] || getInitialFocusNode();\n }\n\n function tryFocus(node) {\n if (node === doc.activeElement) return;\n if (!node || !node.focus) {\n tryFocus(getInitialFocusNode());\n return;\n }\n\n node.focus();\n state.mostRecentlyFocusedNode = node;\n if (isSelectableInput(node)) {\n node.select();\n }\n }\n}\n\nfunction isSelectableInput(node) {\n return (\n node.tagName &&\n node.tagName.toLowerCase() === 'input' &&\n typeof node.select === 'function'\n );\n}\n\nfunction isEscapeEvent(e) {\n return e.key === 'Escape' || e.key === 'Esc' || e.keyCode === 27;\n}\n\nfunction isTabEvent(e) {\n return e.key === 'Tab' || e.keyCode === 9;\n}\n\nfunction delay(fn) {\n return setTimeout(fn, 0);\n}\n\nmodule.exports = focusTrap;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar isObject = function (value) { return typeof value === 'object'; };\nexports.getObjectType = function (value) {\n return Object.prototype.toString.call(value).slice(8, -1);\n};\nvar isObjectOfType = function (value, type) {\n return exports.getObjectType(value) === type;\n};\nexports.default = {\n array: Array.isArray,\n boolean: function (value) {\n return value === true || value === false;\n },\n date: function (value) {\n return isObjectOfType(value, 'Date');\n },\n domElement: function (value) {\n var DOM_PROPERTIES_TO_CHECK = [\n 'innerHTML',\n 'ownerDocument',\n 'style',\n 'attributes',\n 'nodeValue',\n ];\n return (this.object(value) &&\n !this.plainObject(value) &&\n value.nodeType === 1 &&\n this.string(value.nodeName) &&\n DOM_PROPERTIES_TO_CHECK.every(function (property) { return property in value; }));\n },\n function: function (value) {\n return typeof value === 'function';\n },\n generator: function (value) {\n return (this.iterable(value) &&\n this.function(value.next) &&\n this.function(value.throw));\n },\n iterable: function (value) {\n return (!this.nullOrUndefined(value) && this.function(value[Symbol.iterator]));\n },\n map: function (value) {\n return isObjectOfType(value, 'Map');\n },\n nan: function (value) {\n return Number.isNaN(value);\n },\n null: function (value) {\n return value === null;\n },\n nullOrUndefined: function (value) {\n return this.null(value) || this.undefined(value);\n },\n number: function (value) {\n return typeof value === 'number';\n },\n numericString: function (value) {\n return (typeof value === 'string' &&\n value.length > 0 &&\n !Number.isNaN(Number(value)));\n },\n object: function (value) {\n return (!this.nullOrUndefined(value) && (this.function(value) || isObject(value)));\n },\n plainObject: function (value) {\n var prototype;\n return (isObjectOfType(value, 'Object') &&\n ((prototype = Object.getPrototypeOf(value)),\n prototype === null || prototype === Object.getPrototypeOf({})));\n },\n promise: function (value) {\n return isObjectOfType(value, 'Promise');\n },\n regexp: function (value) {\n return isObjectOfType(value, 'RegExp');\n },\n set: function (value) {\n return isObjectOfType(value, 'Set');\n },\n string: function (value) {\n return typeof value === 'string';\n },\n symbol: function (value) {\n return isObjectOfType(value, 'Symbol');\n },\n undefined: function (value) {\n return typeof value === 'undefined';\n },\n weakMap: function (value) {\n return isObjectOfType(value, 'WeakMap');\n },\n weakSet: function (value) {\n return isObjectOfType(value, 'WeakSet');\n },\n};\n","var camel2hyphen = require('string-convert/camel2hyphen');\n\nvar isDimension = function (feature) {\n var re = /[height|width]$/;\n return re.test(feature);\n};\n\nvar obj2mq = function (obj) {\n var mq = '';\n var features = Object.keys(obj);\n features.forEach(function (feature, index) {\n var value = obj[feature];\n feature = camel2hyphen(feature);\n // Add px to dimension features\n if (isDimension(feature) && typeof value === 'number') {\n value = value + 'px';\n }\n if (value === true) {\n mq += feature;\n } else if (value === false) {\n mq += 'not ' + feature;\n } else {\n mq += '(' + feature + ': ' + value + ')';\n }\n if (index < features.length-1) {\n mq += ' and '\n }\n });\n return mq;\n};\n\nvar json2mq = function (query) {\n var mq = '';\n if (typeof query === 'string') {\n return query;\n }\n // Handling array of media queries\n if (query instanceof Array) {\n query.forEach(function (q, index) {\n mq += obj2mq(q);\n if (index < query.length-1) {\n mq += ', '\n }\n });\n return mq;\n }\n // Handling single media query\n return obj2mq(query);\n};\n\nmodule.exports = json2mq;","/**\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 * 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 = debounce;\n","/**\n* @license nested-property https://github.com/cosmosio/nested-property\n*\n* The MIT License (MIT)\n*\n* Copyright (c) 2014-2015 Olivier Scherrer \n*/\n\"use strict\";\n\nmodule.exports = {\n set: setNestedProperty,\n get: getNestedProperty,\n has: hasNestedProperty,\n hasOwn: function (object, property, options) {\n return this.has(object, property, options || {own: true});\n },\n isIn: isInNestedProperty\n};\n\n/**\n * Get the property of an object nested in one or more objects\n * given an object such as a.b.c.d = 5, getNestedProperty(a, \"b.c.d\") will return 5.\n * @param {Object} object the object to get the property from\n * @param {String} property the path to the property as a string\n * @returns the object or the the property value if found\n */\nfunction getNestedProperty(object, property) {\n if (object && typeof object == \"object\") {\n if (typeof property == \"string\" && property !== \"\") {\n var split = property.split(\".\");\n return split.reduce(function (obj, prop) {\n return obj && obj[prop];\n }, object);\n } else if (typeof property == \"number\") {\n return object[property];\n } else {\n return object;\n }\n } else {\n return object;\n }\n}\n\n/**\n * Tell if a nested object has a given property (or array a given index)\n * given an object such as a.b.c.d = 5, hasNestedProperty(a, \"b.c.d\") will return true.\n * It also returns true if the property is in the prototype chain.\n * @param {Object} object the object to get the property from\n * @param {String} property the path to the property as a string\n * @param {Object} options:\n * - own: set to reject properties from the prototype\n * @returns true if has (property in object), false otherwise\n */\nfunction hasNestedProperty(object, property, options) {\n options = options || {};\n\n if (object && typeof object == \"object\") {\n if (typeof property == \"string\" && property !== \"\") {\n var split = property.split(\".\");\n return split.reduce(function (obj, prop, idx, array) {\n if (idx == array.length - 1) {\n if (options.own) {\n return !!(obj && obj.hasOwnProperty(prop));\n } else {\n return !!(obj !== null && typeof obj == \"object\" && prop in obj);\n }\n }\n return obj && obj[prop];\n }, object);\n } else if (typeof property == \"number\") {\n return property in object;\n } else {\n return false;\n }\n } else {\n return false;\n }\n}\n\n/**\n * Set the property of an object nested in one or more objects\n * If the property doesn't exist, it gets created.\n * @param {Object} object\n * @param {String} property\n * @param value the value to set\n * @returns object if no assignment was made or the value if the assignment was made\n */\nfunction setNestedProperty(object, property, value) {\n if (object && typeof object == \"object\") {\n if (typeof property == \"string\" && property !== \"\") {\n var split = property.split(\".\");\n return split.reduce(function (obj, prop, idx) {\n obj[prop] = obj[prop] || {};\n if (split.length == (idx + 1)) {\n obj[prop] = value;\n }\n return obj[prop];\n }, object);\n } else if (typeof property == \"number\") {\n object[property] = value;\n return object[property];\n } else {\n return object;\n }\n } else {\n return object;\n }\n}\n\n/**\n * Tell if an object is on the path to a nested property\n * If the object is on the path, and the path exists, it returns true, and false otherwise.\n * @param {Object} object to get the nested property from\n * @param {String} property name of the nested property\n * @param {Object} objectInPath the object to check\n * @param {Object} options:\n * - validPath: return false if the path is invalid, even if the object is in the path\n * @returns {boolean} true if the object is on the path\n */\nfunction isInNestedProperty(object, property, objectInPath, options) {\n options = options || {};\n\n if (object && typeof object == \"object\") {\n if (typeof property == \"string\" && property !== \"\") {\n var split = property.split(\".\"),\n isIn = false,\n pathExists;\n\n pathExists = !!split.reduce(function (obj, prop) {\n isIn = isIn || obj === objectInPath || (!!obj && obj[prop] === objectInPath);\n return obj && obj[prop];\n }, object);\n\n if (options.validPath) {\n return isIn && pathExists;\n } else {\n return isIn;\n }\n } else {\n return false;\n }\n } else {\n return false;\n }\n}\n","(function(root) {\n var isOn = false;\n var scrollbarSize;\n var scrollTop;\n\n function getScrollbarSize() {\n if (typeof scrollbarSize !== 'undefined') return scrollbarSize;\n\n var doc = document.documentElement;\n var dummyScroller = document.createElement('div');\n dummyScroller.setAttribute('style', 'width:99px;height:99px;' + 'position:absolute;top:-9999px;overflow:scroll;');\n doc.appendChild(dummyScroller);\n scrollbarSize = dummyScroller.offsetWidth - dummyScroller.clientWidth;\n doc.removeChild(dummyScroller);\n return scrollbarSize;\n }\n\n function hasScrollbar() {\n return document.documentElement.scrollHeight > window.innerHeight;\n }\n\n function on(options) {\n if (typeof document === 'undefined' || isOn) return;\n var doc = document.documentElement;\n scrollTop = window.pageYOffset;\n if (hasScrollbar()) {\n doc.style.width = 'calc(100% - '+ getScrollbarSize() +'px)';\n } else {\n doc.style.width = '100%';\n }\n doc.style.position = 'fixed';\n doc.style.top = -scrollTop + 'px';\n doc.style.overflow = 'hidden';\n isOn = true;\n }\n\n function off() {\n if (typeof document === 'undefined' || !isOn) return;\n var doc = document.documentElement;\n doc.style.width = '';\n doc.style.position = '';\n doc.style.top = '';\n doc.style.overflow = '';\n window.scroll(0, scrollTop);\n isOn = false;\n }\n\n function toggle() {\n if (isOn) {\n off();\n return;\n }\n on();\n }\n\n var noScroll = {\n on: on,\n off: off,\n toggle: toggle,\n };\n\n if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {\n module.exports = noScroll;\n } else {\n root.noScroll = noScroll;\n }\n})(this);\n","/**!\n * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version 1.16.1\n * @license\n * Copyright (c) 2016 Federico Zivolo and contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && typeof navigator !== 'undefined';\n\nvar timeoutDuration = function () {\n var longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\n for (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n return 1;\n }\n }\n return 0;\n}();\n\nfunction microtaskDebounce(fn) {\n var called = false;\n return function () {\n if (called) {\n return;\n }\n called = true;\n window.Promise.resolve().then(function () {\n called = false;\n fn();\n });\n };\n}\n\nfunction taskDebounce(fn) {\n var scheduled = false;\n return function () {\n if (!scheduled) {\n scheduled = true;\n setTimeout(function () {\n scheduled = false;\n fn();\n }, timeoutDuration);\n }\n };\n}\n\nvar supportsMicroTasks = isBrowser && window.Promise;\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nvar debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;\n\n/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nfunction isFunction(functionToCheck) {\n var getType = {};\n return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n}\n\n/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nfunction getStyleComputedProperty(element, property) {\n if (element.nodeType !== 1) {\n return [];\n }\n // NOTE: 1 DOM access here\n var window = element.ownerDocument.defaultView;\n var css = window.getComputedStyle(element, null);\n return property ? css[property] : css;\n}\n\n/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nfunction getParentNode(element) {\n if (element.nodeName === 'HTML') {\n return element;\n }\n return element.parentNode || element.host;\n}\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nfunction getScrollParent(element) {\n // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n if (!element) {\n return document.body;\n }\n\n switch (element.nodeName) {\n case 'HTML':\n case 'BODY':\n return element.ownerDocument.body;\n case '#document':\n return element.body;\n }\n\n // Firefox want us to check `-x` and `-y` variations as well\n\n var _getStyleComputedProp = getStyleComputedProperty(element),\n overflow = _getStyleComputedProp.overflow,\n overflowX = _getStyleComputedProp.overflowX,\n overflowY = _getStyleComputedProp.overflowY;\n\n if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n return element;\n }\n\n return getScrollParent(getParentNode(element));\n}\n\n/**\n * Returns the reference node of the reference object, or the reference object itself.\n * @method\n * @memberof Popper.Utils\n * @param {Element|Object} reference - the reference element (the popper will be relative to this)\n * @returns {Element} parent\n */\nfunction getReferenceNode(reference) {\n return reference && reference.referenceNode ? reference.referenceNode : reference;\n}\n\nvar isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nvar isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n\n/**\n * Determines if the browser is Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @param {Number} version to check\n * @returns {Boolean} isIE\n */\nfunction isIE(version) {\n if (version === 11) {\n return isIE11;\n }\n if (version === 10) {\n return isIE10;\n }\n return isIE11 || isIE10;\n}\n\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nfunction getOffsetParent(element) {\n if (!element) {\n return document.documentElement;\n }\n\n var noOffsetParent = isIE(10) ? document.body : null;\n\n // NOTE: 1 DOM access here\n var offsetParent = element.offsetParent || null;\n // Skip hidden elements which don't have an offsetParent\n while (offsetParent === noOffsetParent && element.nextElementSibling) {\n offsetParent = (element = element.nextElementSibling).offsetParent;\n }\n\n var nodeName = offsetParent && offsetParent.nodeName;\n\n if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n return element ? element.ownerDocument.documentElement : document.documentElement;\n }\n\n // .offsetParent will return the closest TH, TD or TABLE in case\n // no offsetParent is present, I hate this job...\n if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {\n return getOffsetParent(offsetParent);\n }\n\n return offsetParent;\n}\n\nfunction isOffsetContainer(element) {\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY') {\n return false;\n }\n return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\n}\n\n/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nfunction getRoot(node) {\n if (node.parentNode !== null) {\n return getRoot(node.parentNode);\n }\n\n return node;\n}\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nfunction findCommonOffsetParent(element1, element2) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n return document.documentElement;\n }\n\n // Here we make sure to give as \"start\" the element that comes first in the DOM\n var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n var start = order ? element1 : element2;\n var end = order ? element2 : element1;\n\n // Get common ancestor container\n var range = document.createRange();\n range.setStart(start, 0);\n range.setEnd(end, 0);\n var commonAncestorContainer = range.commonAncestorContainer;\n\n // Both nodes are inside #document\n\n if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\n if (isOffsetContainer(commonAncestorContainer)) {\n return commonAncestorContainer;\n }\n\n return getOffsetParent(commonAncestorContainer);\n }\n\n // one of the nodes is inside shadowDOM, find which one\n var element1root = getRoot(element1);\n if (element1root.host) {\n return findCommonOffsetParent(element1root.host, element2);\n } else {\n return findCommonOffsetParent(element1, getRoot(element2).host);\n }\n}\n\n/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nfunction getScroll(element) {\n var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\n\n var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n var html = element.ownerDocument.documentElement;\n var scrollingElement = element.ownerDocument.scrollingElement || html;\n return scrollingElement[upperSide];\n }\n\n return element[upperSide];\n}\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nfunction includeScroll(rect, element) {\n var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n var modifier = subtract ? -1 : 1;\n rect.top += scrollTop * modifier;\n rect.bottom += scrollTop * modifier;\n rect.left += scrollLeft * modifier;\n rect.right += scrollLeft * modifier;\n return rect;\n}\n\n/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nfunction getBordersSize(styles, axis) {\n var sideA = axis === 'x' ? 'Left' : 'Top';\n var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n return parseFloat(styles['border' + sideA + 'Width']) + parseFloat(styles['border' + sideB + 'Width']);\n}\n\nfunction getSize(axis, body, html, computedStyle) {\n return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? parseInt(html['offset' + axis]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')]) : 0);\n}\n\nfunction getWindowSizes(document) {\n var body = document.body;\n var html = document.documentElement;\n var computedStyle = isIE(10) && getComputedStyle(html);\n\n return {\n height: getSize('Height', body, html, computedStyle),\n width: getSize('Width', body, html, computedStyle)\n };\n}\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\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\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\n\n\n\n\nvar defineProperty = function (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\nvar _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/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nfunction getClientRect(offsets) {\n return _extends({}, offsets, {\n right: offsets.left + offsets.width,\n bottom: offsets.top + offsets.height\n });\n}\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nfunction getBoundingClientRect(element) {\n var rect = {};\n\n // IE10 10 FIX: Please, don't ask, the element isn't\n // considered in DOM in some circumstances...\n // This isn't reproducible in IE10 compatibility mode of IE11\n try {\n if (isIE(10)) {\n rect = element.getBoundingClientRect();\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n rect.top += scrollTop;\n rect.left += scrollLeft;\n rect.bottom += scrollTop;\n rect.right += scrollLeft;\n } else {\n rect = element.getBoundingClientRect();\n }\n } catch (e) {}\n\n var result = {\n left: rect.left,\n top: rect.top,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top\n };\n\n // subtract scrollbar size from sizes\n var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n var width = sizes.width || element.clientWidth || result.width;\n var height = sizes.height || element.clientHeight || result.height;\n\n var horizScrollbar = element.offsetWidth - width;\n var vertScrollbar = element.offsetHeight - height;\n\n // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n // we make this check conditional for performance reasons\n if (horizScrollbar || vertScrollbar) {\n var styles = getStyleComputedProperty(element);\n horizScrollbar -= getBordersSize(styles, 'x');\n vertScrollbar -= getBordersSize(styles, 'y');\n\n result.width -= horizScrollbar;\n result.height -= vertScrollbar;\n }\n\n return getClientRect(result);\n}\n\nfunction getOffsetRectRelativeToArbitraryNode(children, parent) {\n var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var isIE10 = isIE(10);\n var isHTML = parent.nodeName === 'HTML';\n var childrenRect = getBoundingClientRect(children);\n var parentRect = getBoundingClientRect(parent);\n var scrollParent = getScrollParent(children);\n\n var styles = getStyleComputedProperty(parent);\n var borderTopWidth = parseFloat(styles.borderTopWidth);\n var borderLeftWidth = parseFloat(styles.borderLeftWidth);\n\n // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n if (fixedPosition && isHTML) {\n parentRect.top = Math.max(parentRect.top, 0);\n parentRect.left = Math.max(parentRect.left, 0);\n }\n var offsets = getClientRect({\n top: childrenRect.top - parentRect.top - borderTopWidth,\n left: childrenRect.left - parentRect.left - borderLeftWidth,\n width: childrenRect.width,\n height: childrenRect.height\n });\n offsets.marginTop = 0;\n offsets.marginLeft = 0;\n\n // Subtract margins of documentElement in case it's being used as parent\n // we do this only on HTML because it's the only element that behaves\n // differently when margins are applied to it. The margins are included in\n // the box of the documentElement, in the other cases not.\n if (!isIE10 && isHTML) {\n var marginTop = parseFloat(styles.marginTop);\n var marginLeft = parseFloat(styles.marginLeft);\n\n offsets.top -= borderTopWidth - marginTop;\n offsets.bottom -= borderTopWidth - marginTop;\n offsets.left -= borderLeftWidth - marginLeft;\n offsets.right -= borderLeftWidth - marginLeft;\n\n // Attach marginTop and marginLeft because in some circumstances we may need them\n offsets.marginTop = marginTop;\n offsets.marginLeft = marginLeft;\n }\n\n if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\n offsets = includeScroll(offsets, parent);\n }\n\n return offsets;\n}\n\nfunction getViewportOffsetRectRelativeToArtbitraryNode(element) {\n var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var html = element.ownerDocument.documentElement;\n var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n var width = Math.max(html.clientWidth, window.innerWidth || 0);\n var height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n var scrollTop = !excludeScroll ? getScroll(html) : 0;\n var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n var offset = {\n top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n width: width,\n height: height\n };\n\n return getClientRect(offset);\n}\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nfunction isFixed(element) {\n var nodeName = element.nodeName;\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n return false;\n }\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\n return true;\n }\n var parentNode = getParentNode(element);\n if (!parentNode) {\n return false;\n }\n return isFixed(parentNode);\n}\n\n/**\n * Finds the first parent of an element that has a transformed property defined\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} first transformed parent or documentElement\n */\n\nfunction getFixedPositionOffsetParent(element) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element || !element.parentElement || isIE()) {\n return document.documentElement;\n }\n var el = element.parentElement;\n while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n el = el.parentElement;\n }\n return el || document.documentElement;\n}\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @param {Boolean} fixedPosition - Is in fixed position mode\n * @returns {Object} Coordinates of the boundaries\n */\nfunction getBoundaries(popper, reference, padding, boundariesElement) {\n var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n // NOTE: 1 DOM access here\n\n var boundaries = { top: 0, left: 0 };\n var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n\n // Handle viewport case\n if (boundariesElement === 'viewport') {\n boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n } else {\n // Handle other cases based on DOM element used as boundaries\n var boundariesNode = void 0;\n if (boundariesElement === 'scrollParent') {\n boundariesNode = getScrollParent(getParentNode(reference));\n if (boundariesNode.nodeName === 'BODY') {\n boundariesNode = popper.ownerDocument.documentElement;\n }\n } else if (boundariesElement === 'window') {\n boundariesNode = popper.ownerDocument.documentElement;\n } else {\n boundariesNode = boundariesElement;\n }\n\n var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);\n\n // In case of HTML, we need a different computation\n if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n var _getWindowSizes = getWindowSizes(popper.ownerDocument),\n height = _getWindowSizes.height,\n width = _getWindowSizes.width;\n\n boundaries.top += offsets.top - offsets.marginTop;\n boundaries.bottom = height + offsets.top;\n boundaries.left += offsets.left - offsets.marginLeft;\n boundaries.right = width + offsets.left;\n } else {\n // for all the other DOM elements, this one is good\n boundaries = offsets;\n }\n }\n\n // Add paddings\n padding = padding || 0;\n var isPaddingNumber = typeof padding === 'number';\n boundaries.left += isPaddingNumber ? padding : padding.left || 0;\n boundaries.top += isPaddingNumber ? padding : padding.top || 0;\n boundaries.right -= isPaddingNumber ? padding : padding.right || 0;\n boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0;\n\n return boundaries;\n}\n\nfunction getArea(_ref) {\n var width = _ref.width,\n height = _ref.height;\n\n return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {\n var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\n\n if (placement.indexOf('auto') === -1) {\n return placement;\n }\n\n var boundaries = getBoundaries(popper, reference, padding, boundariesElement);\n\n var rects = {\n top: {\n width: boundaries.width,\n height: refRect.top - boundaries.top\n },\n right: {\n width: boundaries.right - refRect.right,\n height: boundaries.height\n },\n bottom: {\n width: boundaries.width,\n height: boundaries.bottom - refRect.bottom\n },\n left: {\n width: refRect.left - boundaries.left,\n height: boundaries.height\n }\n };\n\n var sortedAreas = Object.keys(rects).map(function (key) {\n return _extends({\n key: key\n }, rects[key], {\n area: getArea(rects[key])\n });\n }).sort(function (a, b) {\n return b.area - a.area;\n });\n\n var filteredAreas = sortedAreas.filter(function (_ref2) {\n var width = _ref2.width,\n height = _ref2.height;\n return width >= popper.clientWidth && height >= popper.clientHeight;\n });\n\n var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\n\n var variation = placement.split('-')[1];\n\n return computedPlacement + (variation ? '-' + variation : '');\n}\n\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @param {Element} fixedPosition - is in fixed position mode\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nfunction getReferenceOffsets(state, popper, reference) {\n var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n\n/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nfunction getOuterSizes(element) {\n var window = element.ownerDocument.defaultView;\n var styles = window.getComputedStyle(element);\n var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);\n var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);\n var result = {\n width: element.offsetWidth + y,\n height: element.offsetHeight + x\n };\n return result;\n}\n\n/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nfunction getOppositePlacement(placement) {\n var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\n placement = placement.split('-')[0];\n\n // Get popper node sizes\n var popperRect = getOuterSizes(popper);\n\n // Add position, width and height to our offsets object\n var popperOffsets = {\n width: popperRect.width,\n height: popperRect.height\n };\n\n // depending by the popper placement we have to compute its offsets slightly differently\n var isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n var mainSide = isHoriz ? 'top' : 'left';\n var secondarySide = isHoriz ? 'left' : 'top';\n var measurement = isHoriz ? 'height' : 'width';\n var secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\n if (placement === secondarySide) {\n popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n } else {\n popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];\n }\n\n return popperOffsets;\n}\n\n/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction find(arr, check) {\n // use native find if supported\n if (Array.prototype.find) {\n return arr.find(check);\n }\n\n // use `filter` to obtain the same behavior of `find`\n return arr.filter(check)[0];\n}\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction findIndex(arr, prop, value) {\n // use native findIndex if supported\n if (Array.prototype.findIndex) {\n return arr.findIndex(function (cur) {\n return cur[prop] === value;\n });\n }\n\n // use `find` + `indexOf` if `findIndex` isn't supported\n var match = find(arr, function (obj) {\n return obj[prop] === value;\n });\n return arr.indexOf(match);\n}\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nfunction runModifiers(modifiers, data, ends) {\n var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n modifiersToRun.forEach(function (modifier) {\n if (modifier['function']) {\n // eslint-disable-line dot-notation\n console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n }\n var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n if (modifier.enabled && isFunction(fn)) {\n // Add properties to offsets to make them a complete clientRect object\n // we do this before each modifier to make sure the previous one doesn't\n // mess with these values\n data.offsets.popper = getClientRect(data.offsets.popper);\n data.offsets.reference = getClientRect(data.offsets.reference);\n\n data = fn(data, modifier);\n }\n });\n\n return data;\n}\n\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.
\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\nfunction update() {\n // if popper is destroyed, don't perform any further update\n if (this.state.isDestroyed) {\n return;\n }\n\n var data = {\n instance: this,\n styles: {},\n arrowStyles: {},\n attributes: {},\n flipped: false,\n offsets: {}\n };\n\n // compute reference element offsets\n data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);\n\n // store the computed placement inside `originalPlacement`\n data.originalPlacement = data.placement;\n\n data.positionFixed = this.options.positionFixed;\n\n // compute the popper offsets\n data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);\n\n data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute';\n\n // run the modifiers\n data = runModifiers(this.modifiers, data);\n\n // the first `update` will call `onCreate` callback\n // the other ones will call `onUpdate` callback\n if (!this.state.isCreated) {\n this.state.isCreated = true;\n this.options.onCreate(data);\n } else {\n this.options.onUpdate(data);\n }\n}\n\n/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nfunction isModifierEnabled(modifiers, modifierName) {\n return modifiers.some(function (_ref) {\n var name = _ref.name,\n enabled = _ref.enabled;\n return enabled && name === modifierName;\n });\n}\n\n/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nfunction getSupportedPropertyName(property) {\n var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n for (var i = 0; i < prefixes.length; i++) {\n var prefix = prefixes[i];\n var toCheck = prefix ? '' + prefix + upperProp : property;\n if (typeof document.body.style[toCheck] !== 'undefined') {\n return toCheck;\n }\n }\n return null;\n}\n\n/**\n * Destroys the popper.\n * @method\n * @memberof Popper\n */\nfunction destroy() {\n this.state.isDestroyed = true;\n\n // touch DOM only if `applyStyle` modifier is enabled\n if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n this.popper.removeAttribute('x-placement');\n this.popper.style.position = '';\n this.popper.style.top = '';\n this.popper.style.left = '';\n this.popper.style.right = '';\n this.popper.style.bottom = '';\n this.popper.style.willChange = '';\n this.popper.style[getSupportedPropertyName('transform')] = '';\n }\n\n this.disableEventListeners();\n\n // remove the popper if user explicitly asked for the deletion on destroy\n // do not use `remove` because IE11 doesn't support it\n if (this.options.removeOnDestroy) {\n this.popper.parentNode.removeChild(this.popper);\n }\n return this;\n}\n\n/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nfunction getWindow(element) {\n var ownerDocument = element.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView : window;\n}\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n var isBody = scrollParent.nodeName === 'BODY';\n var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n target.addEventListener(event, callback, { passive: true });\n\n if (!isBody) {\n attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\n }\n scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction setupEventListeners(reference, options, state, updateBound) {\n // Resize event listener on window\n state.updateBound = updateBound;\n getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });\n\n // Scroll event listener on scroll parents\n var scrollElement = getScrollParent(reference);\n attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n state.scrollElement = scrollElement;\n state.eventsEnabled = true;\n\n return state;\n}\n\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\nfunction enableEventListeners() {\n if (!this.state.eventsEnabled) {\n this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);\n }\n}\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction removeEventListeners(reference, state) {\n // Remove resize event listener on window\n getWindow(reference).removeEventListener('resize', state.updateBound);\n\n // Remove scroll event listener on scroll parents\n state.scrollParents.forEach(function (target) {\n target.removeEventListener('scroll', state.updateBound);\n });\n\n // Reset state\n state.updateBound = null;\n state.scrollParents = [];\n state.scrollElement = null;\n state.eventsEnabled = false;\n return state;\n}\n\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger `onUpdate` callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\nfunction disableEventListeners() {\n if (this.state.eventsEnabled) {\n cancelAnimationFrame(this.scheduleUpdate);\n this.state = removeEventListeners(this.reference, this.state);\n }\n}\n\n/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nfunction isNumeric(n) {\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setStyles(element, styles) {\n Object.keys(styles).forEach(function (prop) {\n var unit = '';\n // add unit if the value is numeric and is one of the following\n if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n unit = 'px';\n }\n element.style[prop] = styles[prop] + unit;\n });\n}\n\n/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setAttributes(element, attributes) {\n Object.keys(attributes).forEach(function (prop) {\n var value = attributes[prop];\n if (value !== false) {\n element.setAttribute(prop, attributes[prop]);\n } else {\n element.removeAttribute(prop);\n }\n });\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\nfunction applyStyle(data) {\n // any property present in `data.styles` will be applied to the popper,\n // in this way we can make the 3rd party modifiers add custom styles to it\n // Be aware, modifiers could override the properties defined in the previous\n // lines of this modifier!\n setStyles(data.instance.popper, data.styles);\n\n // any property present in `data.attributes` will be applied to the popper,\n // they will be set as HTML attributes of the element\n setAttributes(data.instance.popper, data.attributes);\n\n // if arrowElement is defined and arrowStyles has some properties\n if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n setStyles(data.arrowElement, data.arrowStyles);\n }\n\n return data;\n}\n\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper\n * @param {Object} options - Popper.js options\n */\nfunction applyStyleOnLoad(reference, popper, options, modifierOptions, state) {\n // compute reference element offsets\n var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);\n\n popper.setAttribute('x-placement', placement);\n\n // Apply `position` to popper before anything else because\n // without the position applied we can't guarantee correct computations\n setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });\n\n return options;\n}\n\n/**\n * @function\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Boolean} shouldRound - If the offsets should be rounded at all\n * @returns {Object} The popper's position offsets rounded\n *\n * The tale of pixel-perfect positioning. It's still not 100% perfect, but as\n * good as it can be within reason.\n * Discussion here: https://github.com/FezVrasta/popper.js/pull/715\n *\n * Low DPI screens cause a popper to be blurry if not using full pixels (Safari\n * as well on High DPI screens).\n *\n * Firefox prefers no rounding for positioning and does not have blurriness on\n * high DPI screens.\n *\n * Only horizontal placement and left/right values need to be considered.\n */\nfunction getRoundedOffsets(data, shouldRound) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n var round = Math.round,\n floor = Math.floor;\n\n var noRound = function noRound(v) {\n return v;\n };\n\n var referenceWidth = round(reference.width);\n var popperWidth = round(popper.width);\n\n var isVertical = ['left', 'right'].indexOf(data.placement) !== -1;\n var isVariation = data.placement.indexOf('-') !== -1;\n var sameWidthParity = referenceWidth % 2 === popperWidth % 2;\n var bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1;\n\n var horizontalToInteger = !shouldRound ? noRound : isVertical || isVariation || sameWidthParity ? round : floor;\n var verticalToInteger = !shouldRound ? noRound : round;\n\n return {\n left: horizontalToInteger(bothOddWidth && !isVariation && shouldRound ? popper.left - 1 : popper.left),\n top: verticalToInteger(popper.top),\n bottom: verticalToInteger(popper.bottom),\n right: horizontalToInteger(popper.right)\n };\n}\n\nvar isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent);\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeStyle(data, options) {\n var x = options.x,\n y = options.y;\n var popper = data.offsets.popper;\n\n // Remove this legacy support in Popper.js v2\n\n var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'applyStyle';\n }).gpuAcceleration;\n if (legacyGpuAccelerationOption !== undefined) {\n console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');\n }\n var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;\n\n var offsetParent = getOffsetParent(data.instance.popper);\n var offsetParentRect = getBoundingClientRect(offsetParent);\n\n // Styles\n var styles = {\n position: popper.position\n };\n\n var offsets = getRoundedOffsets(data, window.devicePixelRatio < 2 || !isFirefox);\n\n var sideA = x === 'bottom' ? 'top' : 'bottom';\n var sideB = y === 'right' ? 'left' : 'right';\n\n // if gpuAcceleration is set to `true` and transform is supported,\n // we use `translate3d` to apply the position to the popper we\n // automatically use the supported prefixed version if needed\n var prefixedProperty = getSupportedPropertyName('transform');\n\n // now, let's make a step back and look at this code closely (wtf?)\n // If the content of the popper grows once it's been positioned, it\n // may happen that the popper gets misplaced because of the new content\n // overflowing its reference element\n // To avoid this problem, we provide two options (x and y), which allow\n // the consumer to define the offset origin.\n // If we position a popper on top of a reference element, we can set\n // `x` to `top` to make the popper grow towards its top instead of\n // its bottom.\n var left = void 0,\n top = void 0;\n if (sideA === 'bottom') {\n // when offsetParent is the positioning is relative to the bottom of the screen (excluding the scrollbar)\n // and not the bottom of the html element\n if (offsetParent.nodeName === 'HTML') {\n top = -offsetParent.clientHeight + offsets.bottom;\n } else {\n top = -offsetParentRect.height + offsets.bottom;\n }\n } else {\n top = offsets.top;\n }\n if (sideB === 'right') {\n if (offsetParent.nodeName === 'HTML') {\n left = -offsetParent.clientWidth + offsets.right;\n } else {\n left = -offsetParentRect.width + offsets.right;\n }\n } else {\n left = offsets.left;\n }\n if (gpuAcceleration && prefixedProperty) {\n styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';\n styles[sideA] = 0;\n styles[sideB] = 0;\n styles.willChange = 'transform';\n } else {\n // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n var invertTop = sideA === 'bottom' ? -1 : 1;\n var invertLeft = sideB === 'right' ? -1 : 1;\n styles[sideA] = top * invertTop;\n styles[sideB] = left * invertLeft;\n styles.willChange = sideA + ', ' + sideB;\n }\n\n // Attributes\n var attributes = {\n 'x-placement': data.placement\n };\n\n // Update `data` attributes, styles and arrowStyles\n data.attributes = _extends({}, attributes, data.attributes);\n data.styles = _extends({}, styles, data.styles);\n data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);\n\n return data;\n}\n\n/**\n * Helper used to know if the given modifier depends from another one.
\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nfunction isModifierRequired(modifiers, requestingName, requestedName) {\n var requesting = find(modifiers, function (_ref) {\n var name = _ref.name;\n return name === requestingName;\n });\n\n var isRequired = !!requesting && modifiers.some(function (modifier) {\n return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;\n });\n\n if (!isRequired) {\n var _requesting = '`' + requestingName + '`';\n var requested = '`' + requestedName + '`';\n console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');\n }\n return isRequired;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction arrow(data, options) {\n var _data$offsets$arrow;\n\n // arrow depends on keepTogether in order to work\n if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n return data;\n }\n\n var arrowElement = options.element;\n\n // if arrowElement is a string, suppose it's a CSS selector\n if (typeof arrowElement === 'string') {\n arrowElement = data.instance.popper.querySelector(arrowElement);\n\n // if arrowElement is not found, don't run the modifier\n if (!arrowElement) {\n return data;\n }\n } else {\n // if the arrowElement isn't a query selector we must check that the\n // provided DOM node is child of its popper node\n if (!data.instance.popper.contains(arrowElement)) {\n console.warn('WARNING: `arrow.element` must be child of its popper element!');\n return data;\n }\n }\n\n var placement = data.placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n var len = isVertical ? 'height' : 'width';\n var sideCapitalized = isVertical ? 'Top' : 'Left';\n var side = sideCapitalized.toLowerCase();\n var altSide = isVertical ? 'left' : 'top';\n var opSide = isVertical ? 'bottom' : 'right';\n var arrowElementSize = getOuterSizes(arrowElement)[len];\n\n //\n // extends keepTogether behavior making sure the popper and its\n // reference have enough pixels in conjunction\n //\n\n // top/left side\n if (reference[opSide] - arrowElementSize < popper[side]) {\n data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);\n }\n // bottom/right side\n if (reference[side] + arrowElementSize > popper[opSide]) {\n data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];\n }\n data.offsets.popper = getClientRect(data.offsets.popper);\n\n // compute center of the popper\n var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\n\n // Compute the sideValue using the updated popper offsets\n // take popper margin in account because we don't have this info available\n var css = getStyleComputedProperty(data.instance.popper);\n var popperMarginSide = parseFloat(css['margin' + sideCapitalized]);\n var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width']);\n var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;\n\n // prevent arrowElement from being placed not contiguously to its popper\n sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n\n data.arrowElement = arrowElement;\n data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);\n\n return data;\n}\n\n/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\nfunction getOppositeVariation(variation) {\n if (variation === 'end') {\n return 'start';\n } else if (variation === 'start') {\n return 'end';\n }\n return variation;\n}\n\n/**\n * List of accepted placements to use as values of the `placement` option.
\n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right.
\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-end` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\nvar placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];\n\n// Get rid of `auto` `auto-start` and `auto-end`\nvar validPlacements = placements.slice(3);\n\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\nfunction clockwise(placement) {\n var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var index = validPlacements.indexOf(placement);\n var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));\n return counter ? arr.reverse() : arr;\n}\n\nvar BEHAVIORS = {\n FLIP: 'flip',\n CLOCKWISE: 'clockwise',\n COUNTERCLOCKWISE: 'counterclockwise'\n};\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction flip(data, options) {\n // if `inner` modifier is enabled, we can't use the `flip` modifier\n if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n return data;\n }\n\n if (data.flipped && data.placement === data.originalPlacement) {\n // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n return data;\n }\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);\n\n var placement = data.placement.split('-')[0];\n var placementOpposite = getOppositePlacement(placement);\n var variation = data.placement.split('-')[1] || '';\n\n var flipOrder = [];\n\n switch (options.behavior) {\n case BEHAVIORS.FLIP:\n flipOrder = [placement, placementOpposite];\n break;\n case BEHAVIORS.CLOCKWISE:\n flipOrder = clockwise(placement);\n break;\n case BEHAVIORS.COUNTERCLOCKWISE:\n flipOrder = clockwise(placement, true);\n break;\n default:\n flipOrder = options.behavior;\n }\n\n flipOrder.forEach(function (step, index) {\n if (placement !== step || flipOrder.length === index + 1) {\n return data;\n }\n\n placement = data.placement.split('-')[0];\n placementOpposite = getOppositePlacement(placement);\n\n var popperOffsets = data.offsets.popper;\n var refOffsets = data.offsets.reference;\n\n // using floor because the reference offsets may contain decimals we are not going to consider here\n var floor = Math.floor;\n var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);\n\n var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;\n\n // flip the variation if required\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n\n // flips variation if reference element overflows boundaries\n var flippedVariationByRef = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);\n\n // flips variation if popper content overflows boundaries\n var flippedVariationByContent = !!options.flipVariationsByContent && (isVertical && variation === 'start' && overflowsRight || isVertical && variation === 'end' && overflowsLeft || !isVertical && variation === 'start' && overflowsBottom || !isVertical && variation === 'end' && overflowsTop);\n\n var flippedVariation = flippedVariationByRef || flippedVariationByContent;\n\n if (overlapsRef || overflowsBoundaries || flippedVariation) {\n // this boolean to detect any flip loop\n data.flipped = true;\n\n if (overlapsRef || overflowsBoundaries) {\n placement = flipOrder[index + 1];\n }\n\n if (flippedVariation) {\n variation = getOppositeVariation(variation);\n }\n\n data.placement = placement + (variation ? '-' + variation : '');\n\n // this object contains `position`, we want to preserve it along with\n // any additional property we may add in the future\n data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));\n\n data = runModifiers(data.instance.modifiers, data, 'flip');\n }\n });\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction keepTogether(data) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var placement = data.placement.split('-')[0];\n var floor = Math.floor;\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n var side = isVertical ? 'right' : 'bottom';\n var opSide = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n if (popper[side] < floor(reference[opSide])) {\n data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];\n }\n if (popper[opSide] > floor(reference[side])) {\n data.offsets.popper[opSide] = floor(reference[side]);\n }\n\n return data;\n}\n\n/**\n * Converts a string containing value + unit into a px value number\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} str - Value + unit string\n * @argument {String} measurement - `height` or `width`\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @returns {Number|String}\n * Value in pixels, or original string if no values were extracted\n */\nfunction toValue(str, measurement, popperOffsets, referenceOffsets) {\n // separate value from unit\n var split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n var value = +split[1];\n var unit = split[2];\n\n // If it's not a number it's an operator, I guess\n if (!value) {\n return str;\n }\n\n if (unit.indexOf('%') === 0) {\n var element = void 0;\n switch (unit) {\n case '%p':\n element = popperOffsets;\n break;\n case '%':\n case '%r':\n default:\n element = referenceOffsets;\n }\n\n var rect = getClientRect(element);\n return rect[measurement] / 100 * value;\n } else if (unit === 'vh' || unit === 'vw') {\n // if is a vh or vw, we calculate the size based on the viewport\n var size = void 0;\n if (unit === 'vh') {\n size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\n } else {\n size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\n }\n return size / 100 * value;\n } else {\n // if is an explicit pixel unit, we get rid of the unit and keep the value\n // if is an implicit unit, it's px, and we return just the value\n return value;\n }\n}\n\n/**\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} offset\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @argument {String} basePlacement\n * @returns {Array} a two cells array with x and y offsets in numbers\n */\nfunction parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {\n var offsets = [0, 0];\n\n // Use height if placement is left or right and index is 0 otherwise use width\n // in this way the first offset will use an axis and the second one\n // will use the other one\n var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;\n\n // Split the offset string to obtain a list of values and operands\n // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n var fragments = offset.split(/(\\+|\\-)/).map(function (frag) {\n return frag.trim();\n });\n\n // Detect if the offset string contains a pair of values or a single one\n // they could be separated by comma or space\n var divider = fragments.indexOf(find(fragments, function (frag) {\n return frag.search(/,|\\s/) !== -1;\n }));\n\n if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');\n }\n\n // If divider is found, we divide the list of values and operands to divide\n // them by ofset X and Y.\n var splitRegex = /\\s*,\\s*|\\s+/;\n var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];\n\n // Convert the values with units to absolute pixels to allow our computations\n ops = ops.map(function (op, index) {\n // Most of the units rely on the orientation of the popper\n var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';\n var mergeWithPrevious = false;\n return op\n // This aggregates any `+` or `-` sign that aren't considered operators\n // e.g.: 10 + +5 => [10, +, +5]\n .reduce(function (a, b) {\n if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n a[a.length - 1] = b;\n mergeWithPrevious = true;\n return a;\n } else if (mergeWithPrevious) {\n a[a.length - 1] += b;\n mergeWithPrevious = false;\n return a;\n } else {\n return a.concat(b);\n }\n }, [])\n // Here we convert the string values into number values (in px)\n .map(function (str) {\n return toValue(str, measurement, popperOffsets, referenceOffsets);\n });\n });\n\n // Loop trough the offsets arrays and execute the operations\n ops.forEach(function (op, index) {\n op.forEach(function (frag, index2) {\n if (isNumeric(frag)) {\n offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n }\n });\n });\n return offsets;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @argument {Number|String} options.offset=0\n * The offset value as described in the modifier description\n * @returns {Object} The data object, properly modified\n */\nfunction offset(data, _ref) {\n var offset = _ref.offset;\n var placement = data.placement,\n _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var basePlacement = placement.split('-')[0];\n\n var offsets = void 0;\n if (isNumeric(+offset)) {\n offsets = [+offset, 0];\n } else {\n offsets = parseOffset(offset, popper, reference, basePlacement);\n }\n\n if (basePlacement === 'left') {\n popper.top += offsets[0];\n popper.left -= offsets[1];\n } else if (basePlacement === 'right') {\n popper.top += offsets[0];\n popper.left += offsets[1];\n } else if (basePlacement === 'top') {\n popper.left += offsets[0];\n popper.top -= offsets[1];\n } else if (basePlacement === 'bottom') {\n popper.left += offsets[0];\n popper.top += offsets[1];\n }\n\n data.popper = popper;\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction preventOverflow(data, options) {\n var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);\n\n // If offsetParent is the reference element, we really want to\n // go one step up and use the next offsetParent as reference to\n // avoid to make this modifier completely useless and look like broken\n if (data.instance.reference === boundariesElement) {\n boundariesElement = getOffsetParent(boundariesElement);\n }\n\n // NOTE: DOM access here\n // resets the popper's position so that the document size can be calculated excluding\n // the size of the popper element itself\n var transformProp = getSupportedPropertyName('transform');\n var popperStyles = data.instance.popper.style; // assignment to help minification\n var top = popperStyles.top,\n left = popperStyles.left,\n transform = popperStyles[transformProp];\n\n popperStyles.top = '';\n popperStyles.left = '';\n popperStyles[transformProp] = '';\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed);\n\n // NOTE: DOM access here\n // restores the original style properties after the offsets have been computed\n popperStyles.top = top;\n popperStyles.left = left;\n popperStyles[transformProp] = transform;\n\n options.boundaries = boundaries;\n\n var order = options.priority;\n var popper = data.offsets.popper;\n\n var check = {\n primary: function primary(placement) {\n var value = popper[placement];\n if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {\n value = Math.max(popper[placement], boundaries[placement]);\n }\n return defineProperty({}, placement, value);\n },\n secondary: function secondary(placement) {\n var mainSide = placement === 'right' ? 'left' : 'top';\n var value = popper[mainSide];\n if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {\n value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));\n }\n return defineProperty({}, mainSide, value);\n }\n };\n\n order.forEach(function (placement) {\n var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n popper = _extends({}, popper, check[side](placement));\n });\n\n data.offsets.popper = popper;\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction shift(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var shiftvariation = placement.split('-')[1];\n\n // if shift shiftvariation is specified, run the modifier\n if (shiftvariation) {\n var _data$offsets = data.offsets,\n reference = _data$offsets.reference,\n popper = _data$offsets.popper;\n\n var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n var side = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n var shiftOffsets = {\n start: defineProperty({}, side, reference[side]),\n end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])\n };\n\n data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction hide(data) {\n if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n return data;\n }\n\n var refRect = data.offsets.reference;\n var bound = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'preventOverflow';\n }).boundaries;\n\n if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === true) {\n return data;\n }\n\n data.hide = true;\n data.attributes['x-out-of-boundaries'] = '';\n } else {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === false) {\n return data;\n }\n\n data.hide = false;\n data.attributes['x-out-of-boundaries'] = false;\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction inner(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n data.placement = getOppositePlacement(placement);\n data.offsets.popper = getClientRect(popper);\n\n return data;\n}\n\n/**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property.
\n * These functions will be called on each update, this means that you must\n * make sure they are performant enough to avoid performance bottlenecks.\n *\n * @function ModifierFn\n * @argument {dataObject} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {dataObject} The data object, properly modified\n */\n\n/**\n * Modifiers are plugins used to alter the behavior of your poppers.
\n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n * needed by the library.\n *\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n * All the other properties are configurations that could be tweaked.\n * @namespace modifiers\n */\nvar modifiers = {\n /**\n * Modifier used to shift the popper on the start or end of its reference\n * element.
\n * It will read the variation of the `placement` property.
\n * It can be one either `-end` or `-start`.\n * @memberof modifiers\n * @inner\n */\n shift: {\n /** @prop {number} order=100 - Index used to define the order of execution */\n order: 100,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: shift\n },\n\n /**\n * The `offset` modifier can shift your popper on both its axis.\n *\n * It accepts the following units:\n * - `px` or unit-less, interpreted as pixels\n * - `%` or `%r`, percentage relative to the length of the reference element\n * - `%p`, percentage relative to the length of the popper element\n * - `vw`, CSS viewport width unit\n * - `vh`, CSS viewport height unit\n *\n * For length is intended the main axis relative to the placement of the popper.
\n * This means that if the placement is `top` or `bottom`, the length will be the\n * `width`. In case of `left` or `right`, it will be the `height`.\n *\n * You can provide a single value (as `Number` or `String`), or a pair of values\n * as `String` divided by a comma or one (or more) white spaces.
\n * The latter is a deprecated method because it leads to confusion and will be\n * removed in v2.
\n * Additionally, it accepts additions and subtractions between different units.\n * Note that multiplications and divisions aren't supported.\n *\n * Valid examples are:\n * ```\n * 10\n * '10%'\n * '10, 10'\n * '10%, 10'\n * '10 + 10%'\n * '10 - 5vh + 3%'\n * '-10px + 5vh, 5px - 6%'\n * ```\n * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\n * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373).\n *\n * @memberof modifiers\n * @inner\n */\n offset: {\n /** @prop {number} order=200 - Index used to define the order of execution */\n order: 200,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: offset,\n /** @prop {Number|String} offset=0\n * The offset value as described in the modifier description\n */\n offset: 0\n },\n\n /**\n * Modifier used to prevent the popper from being positioned outside the boundary.\n *\n * A scenario exists where the reference itself is not within the boundaries.
\n * We can say it has \"escaped the boundaries\" — or just \"escaped\".
\n * In this case we need to decide whether the popper should either:\n *\n * - detach from the reference and remain \"trapped\" in the boundaries, or\n * - if it should ignore the boundary and \"escape with its reference\"\n *\n * When `escapeWithReference` is set to`true` and reference is completely\n * outside its boundaries, the popper will overflow (or completely leave)\n * the boundaries in order to remain attached to the edge of the reference.\n *\n * @memberof modifiers\n * @inner\n */\n preventOverflow: {\n /** @prop {number} order=300 - Index used to define the order of execution */\n order: 300,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: preventOverflow,\n /**\n * @prop {Array} [priority=['left','right','top','bottom']]\n * Popper will try to prevent overflow following these priorities by default,\n * then, it could overflow on the left and on top of the `boundariesElement`\n */\n priority: ['left', 'right', 'top', 'bottom'],\n /**\n * @prop {number} padding=5\n * Amount of pixel used to define a minimum distance between the boundaries\n * and the popper. This makes sure the popper always has a little padding\n * between the edges of its container\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='scrollParent'\n * Boundaries used by the modifier. Can be `scrollParent`, `window`,\n * `viewport` or any DOM element.\n */\n boundariesElement: 'scrollParent'\n },\n\n /**\n * Modifier used to make sure the reference and its popper stay near each other\n * without leaving any gap between the two. Especially useful when the arrow is\n * enabled and you want to ensure that it points to its reference element.\n * It cares only about the first axis. You can still have poppers with margin\n * between the popper and its reference element.\n * @memberof modifiers\n * @inner\n */\n keepTogether: {\n /** @prop {number} order=400 - Index used to define the order of execution */\n order: 400,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: keepTogether\n },\n\n /**\n * This modifier is used to move the `arrowElement` of the popper to make\n * sure it is positioned between the reference element and its popper element.\n * It will read the outer size of the `arrowElement` node to detect how many\n * pixels of conjunction are needed.\n *\n * It has no effect if no `arrowElement` is provided.\n * @memberof modifiers\n * @inner\n */\n arrow: {\n /** @prop {number} order=500 - Index used to define the order of execution */\n order: 500,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: arrow,\n /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n element: '[x-arrow]'\n },\n\n /**\n * Modifier used to flip the popper's placement when it starts to overlap its\n * reference element.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n *\n * **NOTE:** this modifier will interrupt the current update cycle and will\n * restart it if it detects the need to flip the placement.\n * @memberof modifiers\n * @inner\n */\n flip: {\n /** @prop {number} order=600 - Index used to define the order of execution */\n order: 600,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: flip,\n /**\n * @prop {String|Array} behavior='flip'\n * The behavior used to change the popper's placement. It can be one of\n * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n * placements (with optional variations)\n */\n behavior: 'flip',\n /**\n * @prop {number} padding=5\n * The popper will flip if it hits the edges of the `boundariesElement`\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='viewport'\n * The element which will define the boundaries of the popper position.\n * The popper will never be placed outside of the defined boundaries\n * (except if `keepTogether` is enabled)\n */\n boundariesElement: 'viewport',\n /**\n * @prop {Boolean} flipVariations=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the reference element overlaps its boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariations: false,\n /**\n * @prop {Boolean} flipVariationsByContent=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the popper element overlaps its reference boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariationsByContent: false\n },\n\n /**\n * Modifier used to make the popper flow toward the inner of the reference element.\n * By default, when this modifier is disabled, the popper will be placed outside\n * the reference element.\n * @memberof modifiers\n * @inner\n */\n inner: {\n /** @prop {number} order=700 - Index used to define the order of execution */\n order: 700,\n /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n enabled: false,\n /** @prop {ModifierFn} */\n fn: inner\n },\n\n /**\n * Modifier used to hide the popper when its reference element is outside of the\n * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n * be used to hide with a CSS selector the popper when its reference is\n * out of boundaries.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n * @memberof modifiers\n * @inner\n */\n hide: {\n /** @prop {number} order=800 - Index used to define the order of execution */\n order: 800,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: hide\n },\n\n /**\n * Computes the style that will be applied to the popper element to gets\n * properly positioned.\n *\n * Note that this modifier will not touch the DOM, it just prepares the styles\n * so that `applyStyle` modifier can apply it. This separation is useful\n * in case you need to replace `applyStyle` with a custom implementation.\n *\n * This modifier has `850` as `order` value to maintain backward compatibility\n * with previous versions of Popper.js. Expect the modifiers ordering method\n * to change in future major versions of the library.\n *\n * @memberof modifiers\n * @inner\n */\n computeStyle: {\n /** @prop {number} order=850 - Index used to define the order of execution */\n order: 850,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: computeStyle,\n /**\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: true,\n /**\n * @prop {string} [x='bottom']\n * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n * Change this if your popper should grow in a direction different from `bottom`\n */\n x: 'bottom',\n /**\n * @prop {string} [x='left']\n * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n * Change this if your popper should grow in a direction different from `right`\n */\n y: 'right'\n },\n\n /**\n * Applies the computed styles to the popper element.\n *\n * All the DOM manipulations are limited to this modifier. This is useful in case\n * you want to integrate Popper.js inside a framework or view library and you\n * want to delegate all the DOM manipulations to it.\n *\n * Note that if you disable this modifier, you must make sure the popper element\n * has its position set to `absolute` before Popper.js can do its work!\n *\n * Just disable this modifier and define your own to achieve the desired effect.\n *\n * @memberof modifiers\n * @inner\n */\n applyStyle: {\n /** @prop {number} order=900 - Index used to define the order of execution */\n order: 900,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: applyStyle,\n /** @prop {Function} */\n onLoad: applyStyleOnLoad,\n /**\n * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: undefined\n }\n};\n\n/**\n * The `dataObject` is an object containing all the information used by Popper.js.\n * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n * @name dataObject\n * @property {Object} data.instance The Popper.js instance\n * @property {String} data.placement Placement applied to popper\n * @property {String} data.originalPlacement Placement originally defined on init\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.boundaries Offsets of the popper boundaries\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n */\n\n/**\n * Default options provided to Popper.js constructor.
\n * These can be overridden using the `options` argument of Popper.js.
\n * To override an option, simply pass an object with the same\n * structure of the `options` object, as the 3rd argument. For example:\n * ```\n * new Popper(ref, pop, {\n * modifiers: {\n * preventOverflow: { enabled: false }\n * }\n * })\n * ```\n * @type {Object}\n * @static\n * @memberof Popper\n */\nvar Defaults = {\n /**\n * Popper's placement.\n * @prop {Popper.placements} placement='bottom'\n */\n placement: 'bottom',\n\n /**\n * Set this to true if you want popper to position it self in 'fixed' mode\n * @prop {Boolean} positionFixed=false\n */\n positionFixed: false,\n\n /**\n * Whether events (resize, scroll) are initially enabled.\n * @prop {Boolean} eventsEnabled=true\n */\n eventsEnabled: true,\n\n /**\n * Set to true if you want to automatically remove the popper when\n * you call the `destroy` method.\n * @prop {Boolean} removeOnDestroy=false\n */\n removeOnDestroy: false,\n\n /**\n * Callback called when the popper is created.
\n * By default, it is set to no-op.
\n * Access Popper.js instance with `data.instance`.\n * @prop {onCreate}\n */\n onCreate: function onCreate() {},\n\n /**\n * Callback called when the popper is updated. This callback is not called\n * on the initialization/creation of the popper, but only on subsequent\n * updates.
\n * By default, it is set to no-op.
\n * Access Popper.js instance with `data.instance`.\n * @prop {onUpdate}\n */\n onUpdate: function onUpdate() {},\n\n /**\n * List of modifiers used to modify the offsets before they are applied to the popper.\n * They provide most of the functionalities of Popper.js.\n * @prop {modifiers}\n */\n modifiers: modifiers\n};\n\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n\n// Utils\n// Methods\nvar Popper = function () {\n /**\n * Creates a new Popper.js instance.\n * @class Popper\n * @param {Element|referenceObject} reference - The reference element used to position the popper\n * @param {Element} popper - The HTML / XML element used as the popper\n * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\n * @return {Object} instance - The generated Popper.js instance\n */\n function Popper(reference, popper) {\n var _this = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n classCallCheck(this, Popper);\n\n this.scheduleUpdate = function () {\n return requestAnimationFrame(_this.update);\n };\n\n // make update() debounced, so that it only runs at most once-per-tick\n this.update = debounce(this.update.bind(this));\n\n // with {} we create a new object with the options inside it\n this.options = _extends({}, Popper.Defaults, options);\n\n // init state\n this.state = {\n isDestroyed: false,\n isCreated: false,\n scrollParents: []\n };\n\n // get reference and popper elements (allow jQuery wrappers)\n this.reference = reference && reference.jquery ? reference[0] : reference;\n this.popper = popper && popper.jquery ? popper[0] : popper;\n\n // Deep merge modifiers options\n this.options.modifiers = {};\n Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {\n _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});\n });\n\n // Refactoring modifiers' list (Object => Array)\n this.modifiers = Object.keys(this.options.modifiers).map(function (name) {\n return _extends({\n name: name\n }, _this.options.modifiers[name]);\n })\n // sort the modifiers by order\n .sort(function (a, b) {\n return a.order - b.order;\n });\n\n // modifiers have the ability to execute arbitrary code when Popper.js get inited\n // such code is executed in the same order of its modifier\n // they could add new properties to their options configuration\n // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n this.modifiers.forEach(function (modifierOptions) {\n if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);\n }\n });\n\n // fire the first update to position the popper in the right place\n this.update();\n\n var eventsEnabled = this.options.eventsEnabled;\n if (eventsEnabled) {\n // setup event listeners, they will take care of update the position in specific situations\n this.enableEventListeners();\n }\n\n this.state.eventsEnabled = eventsEnabled;\n }\n\n // We can't use class properties because they don't get listed in the\n // class prototype and break stuff like Sinon stubs\n\n\n createClass(Popper, [{\n key: 'update',\n value: function update$$1() {\n return update.call(this);\n }\n }, {\n key: 'destroy',\n value: function destroy$$1() {\n return destroy.call(this);\n }\n }, {\n key: 'enableEventListeners',\n value: function enableEventListeners$$1() {\n return enableEventListeners.call(this);\n }\n }, {\n key: 'disableEventListeners',\n value: function disableEventListeners$$1() {\n return disableEventListeners.call(this);\n }\n\n /**\n * Schedules an update. It will run on the next UI update available.\n * @method scheduleUpdate\n * @memberof Popper\n */\n\n\n /**\n * Collection of utilities useful when writing custom modifiers.\n * Starting from version 1.7, this method is available only if you\n * include `popper-utils.js` before `popper.js`.\n *\n * **DEPRECATION**: This way to access PopperUtils is deprecated\n * and will be removed in v2! Use the PopperUtils module directly instead.\n * Due to the high instability of the methods contained in Utils, we can't\n * guarantee them to follow semver. Use them at your own risk!\n * @static\n * @private\n * @type {Object}\n * @deprecated since version 1.8\n * @member Utils\n * @memberof Popper\n */\n\n }]);\n return Popper;\n}();\n\n/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node.
\n * You can use this method to position a popper relatively to a set of coordinates\n * in case you don't have a DOM node to use as reference.\n *\n * ```\n * new Popper(referenceObject, popperNode);\n * ```\n *\n * NB: This feature isn't supported in Internet Explorer 10.\n * @name referenceObject\n * @property {Function} data.getBoundingClientRect\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n * @property {number} data.clientWidth\n * An ES6 getter that will return the width of the virtual reference element.\n * @property {number} data.clientHeight\n * An ES6 getter that will return the height of the virtual reference element.\n */\n\n\nPopper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\nPopper.placements = placements;\nPopper.Defaults = Defaults;\n\nexport default Popper;\n//# sourceMappingURL=popper.js.map\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\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","/**\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","\"use strict\";\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar React = require('react');\n\nvar FocusTrap = require('focus-trap-react');\n\nvar displace = require('react-displace');\n\nvar noScroll = require('no-scroll');\n\nvar Modal =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inherits(Modal, _React$Component);\n\n function Modal() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, Modal);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(Modal)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n _defineProperty(_assertThisInitialized(_this), \"getApplicationNode\", function () {\n if (_this.props.getApplicationNode) return _this.props.getApplicationNode();\n return _this.props.applicationNode;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"checkUnderlayClick\", function (event) {\n if (_this.dialogNode && _this.dialogNode.contains(event.target) || // If the click is on the scrollbar we don't want to close the modal.\n event.pageX > event.target.ownerDocument.documentElement.offsetWidth || event.pageY > event.target.ownerDocument.documentElement.offsetHeight) return;\n\n _this.exit(event);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"checkDocumentKeyDown\", function (event) {\n if (_this.props.escapeExits && (event.key === 'Escape' || event.key === 'Esc' || event.keyCode === 27)) {\n _this.exit(event);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"exit\", function (event) {\n if (_this.props.onExit) {\n _this.props.onExit(event);\n }\n });\n\n return _this;\n }\n\n _createClass(Modal, [{\n key: \"componentWillMount\",\n value: function componentWillMount() {\n if (!this.props.titleText && !this.props.titleId) {\n throw new Error('react-aria-modal instances should have a `titleText` or `titleId`');\n }\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (this.props.onEnter) {\n this.props.onEnter();\n } // Timeout to ensure this happens *after* focus has moved\n\n\n var applicationNode = this.getApplicationNode();\n setTimeout(function () {\n if (applicationNode) {\n applicationNode.setAttribute('aria-hidden', 'true');\n }\n }, 0);\n\n if (this.props.escapeExits) {\n this.addKeyDownListener();\n }\n\n if (this.props.scrollDisabled) {\n noScroll.on();\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n if (prevProps.scrollDisabled && !this.props.scrollDisabled) {\n noScroll.off();\n } else if (!prevProps.scrollDisabled && this.props.scrollDisabled) {\n noScroll.on();\n }\n\n if (this.props.escapeExits && !prevProps.escapeExits) {\n this.addKeyDownListener();\n } else if (!this.props.escapeExits && prevProps.escapeExits) {\n this.removeKeyDownListener();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.props.scrollDisabled) {\n noScroll.off();\n }\n\n var applicationNode = this.getApplicationNode();\n\n if (applicationNode) {\n applicationNode.setAttribute('aria-hidden', 'false');\n }\n\n this.removeKeyDownListener();\n }\n }, {\n key: \"addKeyDownListener\",\n value: function addKeyDownListener() {\n var _this2 = this;\n\n setTimeout(function () {\n document.addEventListener('keydown', _this2.checkDocumentKeyDown);\n });\n }\n }, {\n key: \"removeKeyDownListener\",\n value: function removeKeyDownListener() {\n var _this3 = this;\n\n setTimeout(function () {\n document.removeEventListener('keydown', _this3.checkDocumentKeyDown);\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var props = this.props;\n var style = {};\n\n if (props.includeDefaultStyles) {\n style = {\n position: 'fixed',\n top: 0,\n left: 0,\n width: '100%',\n height: '100%',\n zIndex: 1050,\n overflowX: 'hidden',\n overflowY: 'auto',\n WebkitOverflowScrolling: 'touch',\n textAlign: 'center'\n };\n\n if (props.underlayColor) {\n style.background = props.underlayColor;\n }\n\n if (props.underlayClickExits) {\n style.cursor = 'pointer';\n }\n }\n\n if (props.underlayStyle) {\n for (var key in props.underlayStyle) {\n if (!props.underlayStyle.hasOwnProperty(key)) continue;\n style[key] = props.underlayStyle[key];\n }\n }\n\n var underlayProps = {\n className: props.underlayClass,\n style: style\n };\n\n if (props.underlayClickExits) {\n underlayProps.onMouseDown = this.checkUnderlayClick;\n }\n\n for (var prop in this.props.underlayProps) {\n underlayProps[prop] = this.props.underlayProps[prop];\n }\n\n var verticalCenterStyle = {};\n\n if (props.includeDefaultStyles) {\n verticalCenterStyle = {\n display: 'inline-block',\n height: '100%',\n verticalAlign: 'middle'\n };\n }\n\n var verticalCenterHelperProps = {\n key: 'a',\n style: verticalCenterStyle\n };\n var dialogStyle = {};\n\n if (props.includeDefaultStyles) {\n dialogStyle = {\n display: 'inline-block',\n textAlign: 'left',\n top: 0,\n maxWidth: '100%',\n cursor: 'default',\n outline: props.focusDialog ? 0 : null\n };\n\n if (props.verticallyCenter) {\n dialogStyle.verticalAlign = 'middle';\n dialogStyle.top = 0;\n }\n }\n\n if (props.dialogStyle) {\n for (var _key2 in props.dialogStyle) {\n if (!props.dialogStyle.hasOwnProperty(_key2)) continue;\n dialogStyle[_key2] = props.dialogStyle[_key2];\n }\n }\n\n var dialogProps = {\n key: 'b',\n ref: function (el) {\n this.dialogNode = el;\n }.bind(this),\n role: props.alert ? 'alertdialog' : 'dialog',\n id: props.dialogId,\n className: props.dialogClass,\n style: dialogStyle\n };\n\n if (props.titleId) {\n dialogProps['aria-labelledby'] = props.titleId;\n } else if (props.titleText) {\n dialogProps['aria-label'] = props.titleText;\n }\n\n if (props.focusDialog) {\n dialogProps.tabIndex = '-1';\n } // Apply data- and aria- attributes passed as props\n\n\n for (var _key3 in props) {\n if (/^(data-|aria-)/.test(_key3)) {\n dialogProps[_key3] = props[_key3];\n }\n }\n\n var childrenArray = [React.createElement('div', dialogProps, props.children)];\n\n if (props.verticallyCenter) {\n childrenArray.unshift(React.createElement('div', verticalCenterHelperProps));\n }\n\n var focusTrapOptions = props.focusTrapOptions || {};\n\n if (props.focusDialog || props.initialFocus) {\n focusTrapOptions.initialFocus = props.focusDialog ? \"#\".concat(this.props.dialogId) : props.initialFocus;\n }\n\n focusTrapOptions.escapeDeactivates = props.escapeExits;\n return React.createElement(FocusTrap, {\n focusTrapOptions: focusTrapOptions,\n paused: props.focusTrapPaused\n }, React.createElement('div', underlayProps, childrenArray));\n }\n }]);\n\n return Modal;\n}(React.Component);\n\n_defineProperty(Modal, \"defaultProps\", {\n underlayProps: {},\n dialogId: 'react-aria-modal-dialog',\n underlayClickExits: true,\n escapeExits: true,\n underlayColor: 'rgba(0,0,0,0.5)',\n includeDefaultStyles: true,\n focusTrapPaused: false,\n scrollDisabled: true\n});\n\nvar DisplacedModal = displace(Modal);\n\nDisplacedModal.renderTo = function (input) {\n return displace(Modal, {\n renderTo: input\n });\n};\n\nmodule.exports = DisplacedModal;","'use strict';\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\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar React = require('react');\nvar ReactDOM = require('react-dom');\n\n// React 16+ supports Portals.\nvar canUsePortals = !!ReactDOM.createPortal;\n\nfunction displace(WrappedComponent, options) {\n if (!global.document) {\n return function (_React$Component) {\n _inherits(EmptyDisplace, _React$Component);\n\n function EmptyDisplace() {\n _classCallCheck(this, EmptyDisplace);\n\n return _possibleConstructorReturn(this, (EmptyDisplace.__proto__ || Object.getPrototypeOf(EmptyDisplace)).apply(this, arguments));\n }\n\n _createClass(EmptyDisplace, [{\n key: 'render',\n value: function render() {\n return false;\n }\n }]);\n\n return EmptyDisplace;\n }(React.Component);\n }\n\n options = options || {};\n\n var Displaced = function (_React$Component2) {\n _inherits(Displaced, _React$Component2);\n\n function Displaced() {\n var _ref;\n\n var _temp, _this2, _ret;\n\n _classCallCheck(this, Displaced);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this2 = _possibleConstructorReturn(this, (_ref = Displaced.__proto__ || Object.getPrototypeOf(Displaced)).call.apply(_ref, [this].concat(args))), _this2), _this2.renderDisplaced = function () {\n ReactDOM.unstable_renderSubtreeIntoContainer(_this2, React.createElement(WrappedComponent, _this2.props, _this2.props.children), _this2.container);\n }, _this2.removeDisplaced = function () {\n ReactDOM.unmountComponentAtNode(_this2.container);\n }, _temp), _possibleConstructorReturn(_this2, _ret);\n }\n\n _createClass(Displaced, [{\n key: 'componentWillMount',\n value: function componentWillMount() {\n this.container = function () {\n if (!options.renderTo) {\n var result = document.createElement('div');\n document.body.appendChild(result);\n return result;\n } else if (typeof options.renderTo === 'string') {\n return document.querySelector(options.renderTo);\n } else {\n return options.renderTo;\n }\n }();\n }\n }, {\n key: 'componentDidMount',\n value: function componentDidMount() {\n if (canUsePortals) return;\n if (this.props.mounted) {\n this.renderDisplaced();\n }\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate(prevProps) {\n if (canUsePortals) return;\n if (prevProps.mounted && !this.props.mounted) {\n ReactDOM.unmountComponentAtNode(this.container);\n } else if (this.props.mounted) {\n this.renderDisplaced();\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n if (!canUsePortals) {\n ReactDOM.unmountComponentAtNode(this.container);\n }\n if (!options.renderTo) {\n this.container.parentNode.removeChild(this.container);\n }\n }\n }, {\n key: 'render',\n value: function render() {\n if (!canUsePortals || this.props.mounted === false) {\n return null;\n }\n return ReactDOM.createPortal(React.createElement(WrappedComponent, this.props, this.props.children), this.container);\n }\n }]);\n\n return Displaced;\n }(React.Component);\n\n Displaced.defaultProps = {\n mounted: true\n };\n Displaced.WrappedComponent = WrappedComponent;\n\n\n return Displaced;\n}\n\nmodule.exports = displace;","import React from 'react';\nimport PropTypes from 'prop-types';\nimport isRequiredIf from 'react-proptype-conditional-require';\nimport Popper from 'popper.js';\nimport deepmerge from 'deepmerge';\nimport is from 'is-lite';\nimport treeChanges from 'tree-changes';\nimport ReactDOM from 'react-dom';\nimport ExecutionEnvironment from 'exenv';\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\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 ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n keys.push.apply(keys, Object.getOwnPropertySymbols(object));\n }\n\n if (enumerableOnly) keys = keys.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(source, true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(source).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _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}\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 _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (typeof call === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nvar DEFAULTS = {flip:{padding:20},preventOverflow:{padding:10}};\n\nvar STATUS = {INIT:'init',IDLE:'idle',OPENING:'opening',OPEN:'open',CLOSING:'closing',ERROR:'error'};\n\nvar canUseDOM=ExecutionEnvironment.canUseDOM;var isReact16=ReactDOM.createPortal!==undefined;function isMobile(){return 'ontouchstart'in window&&/Mobi/.test(navigator.userAgent);}/**\n * Log method calls if debug is enabled\n *\n * @private\n * @param {Object} arg\n * @param {string} arg.title - The title the logger was called from\n * @param {Object|Array} [arg.data] - The data to be logged\n * @param {boolean} [arg.warn] - If true, the message will be a warning\n * @param {boolean} [arg.debug] - Nothing will be logged unless debug is true\n */function log(_ref){var title=_ref.title,data=_ref.data,_ref$warn=_ref.warn,warn=_ref$warn===void 0?false:_ref$warn,_ref$debug=_ref.debug,debug=_ref$debug===void 0?false:_ref$debug;/* eslint-disable no-console */var logFn=warn?console.warn||console.error:console.log;if(debug&&title&&data){console.groupCollapsed(\"%creact-floater: \".concat(title),'color: #9b00ff; font-weight: bold; font-size: 12px;');if(Array.isArray(data)){data.forEach(function(d){if(is.plainObject(d)&&d.key){logFn.apply(console,[d.key,d.value]);}else{logFn.apply(console,[d]);}});}else{logFn.apply(console,[data]);}console.groupEnd();}/* eslint-enable */}function on(element,event,cb){var capture=arguments.length>3&&arguments[3]!==undefined?arguments[3]:false;element.addEventListener(event,cb,capture);}function off(element,event,cb){var capture=arguments.length>3&&arguments[3]!==undefined?arguments[3]:false;element.removeEventListener(event,cb,capture);}function once(element,event,cb){var capture=arguments.length>3&&arguments[3]!==undefined?arguments[3]:false;var _nextCB;// eslint-disable-next-line prefer-const\n_nextCB=function nextCB(e){cb(e);off(element,event,_nextCB);};on(element,event,_nextCB,capture);}function noop(){}\n\nvar ReactFloaterPortal=/*#__PURE__*/function(_React$Component){_inherits(ReactFloaterPortal,_React$Component);function ReactFloaterPortal(props){var _this;_classCallCheck(this,ReactFloaterPortal);_this=_possibleConstructorReturn(this,_getPrototypeOf(ReactFloaterPortal).call(this,props));if(!canUseDOM)return _possibleConstructorReturn(_this);_this.node=document.createElement('div');if(props.id){_this.node.id=props.id;}if(props.zIndex){_this.node.style.zIndex=props.zIndex;}document.body.appendChild(_this.node);return _this;}_createClass(ReactFloaterPortal,[{key:\"componentDidMount\",value:function componentDidMount(){if(!canUseDOM)return;if(!isReact16){this.renderPortal();}}},{key:\"componentDidUpdate\",value:function componentDidUpdate(){if(!canUseDOM)return;if(!isReact16){this.renderPortal();}}},{key:\"componentWillUnmount\",value:function componentWillUnmount(){if(!canUseDOM||!this.node)return;if(!isReact16){ReactDOM.unmountComponentAtNode(this.node);}document.body.removeChild(this.node);}},{key:\"renderPortal\",value:function renderPortal(){if(!canUseDOM)return null;var _this$props=this.props,children=_this$props.children,setRef=_this$props.setRef;/* istanbul ignore else */if(isReact16){return ReactDOM.createPortal(children,this.node);}var portal=ReactDOM.unstable_renderSubtreeIntoContainer(this,children.length>1?React.createElement(\"div\",null,children):children[0],this.node);setRef(portal);return null;}},{key:\"renderReact16\",value:function renderReact16(){var _this$props2=this.props,hasChildren=_this$props2.hasChildren,placement=_this$props2.placement,target=_this$props2.target;if(!hasChildren){if(target||placement==='center'){return this.renderPortal();}return null;}return this.renderPortal();}},{key:\"render\",value:function render(){if(!isReact16){return null;}return this.renderReact16();}}]);return ReactFloaterPortal;}(React.Component);_defineProperty(ReactFloaterPortal,\"propTypes\",{children:PropTypes.oneOfType([PropTypes.element,PropTypes.array]),hasChildren:PropTypes.bool,id:PropTypes.oneOfType([PropTypes.string,PropTypes.number]),placement:PropTypes.string,setRef:PropTypes.func.isRequired,target:PropTypes.oneOfType([PropTypes.object,PropTypes.string]),zIndex:PropTypes.number});\n\nvar FloaterArrow=/*#__PURE__*/function(_React$Component){_inherits(FloaterArrow,_React$Component);function FloaterArrow(){_classCallCheck(this,FloaterArrow);return _possibleConstructorReturn(this,_getPrototypeOf(FloaterArrow).apply(this,arguments));}_createClass(FloaterArrow,[{key:\"render\",value:function render(){var _this$props=this.props,placement=_this$props.placement,setArrowRef=_this$props.setArrowRef,styles=_this$props.styles;var _styles$arrow=styles.arrow,color=_styles$arrow.color,display=_styles$arrow.display,length=_styles$arrow.length,margin=_styles$arrow.margin,position=_styles$arrow.position,spread=_styles$arrow.spread;var arrowStyles={display:display,position:position};var points;var x=spread;var y=length;/* istanbul ignore else */if(placement.startsWith('top')){points=\"0,0 \".concat(x/2,\",\").concat(y,\" \").concat(x,\",0\");arrowStyles.bottom=0;arrowStyles.marginLeft=margin;arrowStyles.marginRight=margin;}else if(placement.startsWith('bottom')){points=\"\".concat(x,\",\").concat(y,\" \").concat(x/2,\",0 0,\").concat(y);arrowStyles.top=0;arrowStyles.marginLeft=margin;arrowStyles.marginRight=margin;}else if(placement.startsWith('left')){y=spread;x=length;points=\"0,0 \".concat(x,\",\").concat(y/2,\" 0,\").concat(y);arrowStyles.right=0;arrowStyles.marginTop=margin;arrowStyles.marginBottom=margin;}else if(placement.startsWith('right')){y=spread;x=length;points=\"\".concat(x,\",\").concat(y,\" \").concat(x,\",0 0,\").concat(y/2);arrowStyles.left=0;arrowStyles.marginTop=margin;arrowStyles.marginBottom=margin;}return React.createElement(\"div\",{className:\"__floater__arrow\",style:this.parentStyle},React.createElement(\"span\",{ref:setArrowRef,style:arrowStyles},React.createElement(\"svg\",{width:x,height:y,version:\"1.1\",xmlns:\"http://www.w3.org/2000/svg\"},React.createElement(\"polygon\",{points:points,fill:color}))));}},{key:\"parentStyle\",get:function get(){var _this$props2=this.props,placement=_this$props2.placement,styles=_this$props2.styles;var length=styles.arrow.length;var arrow={position:'absolute'};/* istanbul ignore else */if(placement.startsWith('top')){arrow.bottom=0;arrow.left=0;arrow.right=0;arrow.height=length;}else if(placement.startsWith('bottom')){arrow.left=0;arrow.right=0;arrow.top=0;arrow.height=length;}else if(placement.startsWith('left')){arrow.right=0;arrow.top=0;arrow.bottom=0;}else if(placement.startsWith('right')){arrow.left=0;arrow.top=0;}return arrow;}}]);return FloaterArrow;}(React.Component);_defineProperty(FloaterArrow,\"propTypes\",{placement:PropTypes.string.isRequired,setArrowRef:PropTypes.func.isRequired,styles:PropTypes.object.isRequired});\n\nvar FloaterCloseBtn=function FloaterCloseBtn(_ref){var handleClick=_ref.handleClick,styles=_ref.styles;var color=styles.color,height=styles.height,width=styles.width,style=_objectWithoutProperties(styles,[\"color\",\"height\",\"width\"]);return React.createElement(\"button\",{\"aria-label\":\"close\",onClick:handleClick,style:style,type:\"button\"},React.createElement(\"svg\",{width:\"\".concat(width,\"px\"),height:\"\".concat(height,\"px\"),viewBox:\"0 0 18 18\",version:\"1.1\",xmlns:\"http://www.w3.org/2000/svg\",preserveAspectRatio:\"xMidYMid\"},React.createElement(\"g\",null,React.createElement(\"path\",{d:\"M8.13911129,9.00268191 L0.171521827,17.0258467 C-0.0498027049,17.248715 -0.0498027049,17.6098394 0.171521827,17.8327545 C0.28204354,17.9443526 0.427188206,17.9998706 0.572051765,17.9998706 C0.71714958,17.9998706 0.862013139,17.9443526 0.972581703,17.8327545 L9.0000937,9.74924618 L17.0276057,17.8327545 C17.1384085,17.9443526 17.2832721,17.9998706 17.4281356,17.9998706 C17.5729992,17.9998706 17.718097,17.9443526 17.8286656,17.8327545 C18.0499901,17.6098862 18.0499901,17.2487618 17.8286656,17.0258467 L9.86135722,9.00268191 L17.8340066,0.973848225 C18.0553311,0.750979934 18.0553311,0.389855532 17.8340066,0.16694039 C17.6126821,-0.0556467968 17.254037,-0.0556467968 17.0329467,0.16694039 L9.00042166,8.25611765 L0.967006424,0.167268345 C0.745681892,-0.0553188426 0.387317931,-0.0553188426 0.165993399,0.167268345 C-0.0553311331,0.390136635 -0.0553311331,0.751261038 0.165993399,0.974176179 L8.13920499,9.00268191 L8.13911129,9.00268191 Z\",fill:color}))));};FloaterCloseBtn.propTypes={handleClick:PropTypes.func.isRequired,styles:PropTypes.object.isRequired};\n\nvar FloaterContainer=function FloaterContainer(_ref){var content=_ref.content,footer=_ref.footer,handleClick=_ref.handleClick,open=_ref.open,positionWrapper=_ref.positionWrapper,showCloseButton=_ref.showCloseButton,title=_ref.title,styles=_ref.styles;var output={content:React.isValidElement(content)?content:React.createElement(\"div\",{className:\"__floater__content\",style:styles.content},content)};if(title){output.title=React.isValidElement(title)?title:React.createElement(\"div\",{className:\"__floater__title\",style:styles.title},title);}if(footer){output.footer=React.isValidElement(footer)?footer:React.createElement(\"div\",{className:\"__floater__footer\",style:styles.footer},footer);}if((showCloseButton||positionWrapper)&&!is[\"boolean\"](open)){output.close=React.createElement(FloaterCloseBtn,{styles:styles.close,handleClick:handleClick});}return React.createElement(\"div\",{className:\"__floater__container\",style:styles.container},output.close,output.title,output.content,output.footer);};FloaterContainer.propTypes={content:PropTypes.node.isRequired,footer:PropTypes.node,handleClick:PropTypes.func.isRequired,open:PropTypes.bool,positionWrapper:PropTypes.bool.isRequired,showCloseButton:PropTypes.bool.isRequired,styles:PropTypes.object.isRequired,title:PropTypes.node};\n\nvar Floater=/*#__PURE__*/function(_React$Component){_inherits(Floater,_React$Component);function Floater(){_classCallCheck(this,Floater);return _possibleConstructorReturn(this,_getPrototypeOf(Floater).apply(this,arguments));}_createClass(Floater,[{key:\"render\",value:function render(){var _this$props=this.props,component=_this$props.component,closeFn=_this$props.handleClick,hideArrow=_this$props.hideArrow,setFloaterRef=_this$props.setFloaterRef,status=_this$props.status;var output={};var classes=['__floater'];if(component){if(React.isValidElement(component)){output.content=React.cloneElement(component,{closeFn:closeFn});}else{output.content=component({closeFn:closeFn});}}else{output.content=React.createElement(FloaterContainer,this.props);}if(status===STATUS.OPEN){classes.push('__floater__open');}if(!hideArrow){output.arrow=React.createElement(FloaterArrow,this.props);}return React.createElement(\"div\",{ref:setFloaterRef,className:classes.join(' '),style:this.style},React.createElement(\"div\",{className:\"__floater__body\"},output.content,output.arrow));}},{key:\"style\",get:function get(){var _this$props2=this.props,disableAnimation=_this$props2.disableAnimation,component=_this$props2.component,placement=_this$props2.placement,hideArrow=_this$props2.hideArrow,isPositioned=_this$props2.isPositioned,status=_this$props2.status,styles=_this$props2.styles;var length=styles.arrow.length,floater=styles.floater,floaterCentered=styles.floaterCentered,floaterClosing=styles.floaterClosing,floaterOpening=styles.floaterOpening,floaterWithAnimation=styles.floaterWithAnimation,floaterWithComponent=styles.floaterWithComponent;var element={};if(!hideArrow){if(placement.startsWith('top')){element.padding=\"0 0 \".concat(length,\"px\");}else if(placement.startsWith('bottom')){element.padding=\"\".concat(length,\"px 0 0\");}else if(placement.startsWith('left')){element.padding=\"0 \".concat(length,\"px 0 0\");}else if(placement.startsWith('right')){element.padding=\"0 0 0 \".concat(length,\"px\");}}if([STATUS.OPENING,STATUS.OPEN].includes(status)){element=_objectSpread2({},element,{},floaterOpening);}if(status===STATUS.CLOSING){element=_objectSpread2({},element,{},floaterClosing);}if(status===STATUS.OPEN&&!disableAnimation&&!isPositioned){element=_objectSpread2({},element,{},floaterWithAnimation);}if(placement==='center'){element=_objectSpread2({},element,{},floaterCentered);}if(component){element=_objectSpread2({},element,{},floaterWithComponent);}return _objectSpread2({},floater,{},element);}}]);return Floater;}(React.Component);_defineProperty(Floater,\"propTypes\",{component:PropTypes.oneOfType([PropTypes.func,PropTypes.element]),content:PropTypes.node,disableAnimation:PropTypes.bool.isRequired,footer:PropTypes.node,handleClick:PropTypes.func.isRequired,hideArrow:PropTypes.bool.isRequired,isPositioned:PropTypes.bool,open:PropTypes.bool,placement:PropTypes.string.isRequired,positionWrapper:PropTypes.bool.isRequired,setArrowRef:PropTypes.func.isRequired,setFloaterRef:PropTypes.func.isRequired,showCloseButton:PropTypes.bool,status:PropTypes.string.isRequired,styles:PropTypes.object.isRequired,title:PropTypes.node});\n\nvar ReactFloaterWrapper=/*#__PURE__*/function(_React$Component){_inherits(ReactFloaterWrapper,_React$Component);function ReactFloaterWrapper(){_classCallCheck(this,ReactFloaterWrapper);return _possibleConstructorReturn(this,_getPrototypeOf(ReactFloaterWrapper).apply(this,arguments));}_createClass(ReactFloaterWrapper,[{key:\"render\",value:function render(){var _this$props=this.props,children=_this$props.children,handleClick=_this$props.handleClick,handleMouseEnter=_this$props.handleMouseEnter,handleMouseLeave=_this$props.handleMouseLeave,setChildRef=_this$props.setChildRef,setWrapperRef=_this$props.setWrapperRef,style=_this$props.style,styles=_this$props.styles;var element;/* istanbul ignore else */if(children){if(React.Children.count(children)===1){if(!React.isValidElement(children)){element=React.createElement(\"span\",null,children);}else{var refProp=is[\"function\"](children.type)?'innerRef':'ref';element=React.cloneElement(React.Children.only(children),_defineProperty({},refProp,setChildRef));}}else{element=children;}}if(!element){return null;}return React.createElement(\"span\",{ref:setWrapperRef,style:_objectSpread2({},styles,{},style),onClick:handleClick,onMouseEnter:handleMouseEnter,onMouseLeave:handleMouseLeave},element);}}]);return ReactFloaterWrapper;}(React.Component);_defineProperty(ReactFloaterWrapper,\"propTypes\",{children:PropTypes.node,handleClick:PropTypes.func.isRequired,handleMouseEnter:PropTypes.func.isRequired,handleMouseLeave:PropTypes.func.isRequired,setChildRef:PropTypes.func.isRequired,setWrapperRef:PropTypes.func.isRequired,style:PropTypes.object,styles:PropTypes.object.isRequired});\n\nvar defaultOptions={zIndex:100};function getStyles(styles){var options=deepmerge(defaultOptions,styles.options||{});return {wrapper:{cursor:'help',display:'inline-flex',flexDirection:'column',zIndex:options.zIndex},wrapperPosition:{left:-1000,position:'absolute',top:-1000,visibility:'hidden'},floater:{display:'inline-block',filter:'drop-shadow(0 0 3px rgba(0, 0, 0, 0.3))',maxWidth:300,opacity:0,position:'relative',transition:'opacity 0.3s',visibility:'hidden',zIndex:options.zIndex},floaterOpening:{opacity:1,visibility:'visible'},floaterWithAnimation:{opacity:1,transition:'opacity 0.3s, transform 0.2s',visibility:'visible'},floaterWithComponent:{maxWidth:'100%'},floaterClosing:{opacity:0,visibility:'visible'},floaterCentered:{left:'50%',position:'fixed',top:'50%',transform:'translate(-50%, -50%)'},container:{backgroundColor:'#fff',color:'#666',minHeight:60,minWidth:200,padding:20,position:'relative'},title:{borderBottom:'1px solid #555',color:'#555',fontSize:18,marginBottom:5,paddingBottom:6,paddingRight:18},content:{fontSize:15},close:{backgroundColor:'transparent',border:0,borderRadius:0,color:'#555',fontSize:0,height:15,outline:'none',padding:10,position:'absolute',right:0,top:0,width:15,WebkitAppearance:'none'},footer:{borderTop:'1px solid #ccc',fontSize:13,marginTop:10,paddingTop:5},arrow:{color:'#fff',display:'inline-flex',length:16,margin:8,position:'absolute',spread:32},options:options};}\n\nvar POSITIONING_PROPS=['position','top','right','bottom','left'];var ReactFloater=/*#__PURE__*/function(_React$Component){_inherits(ReactFloater,_React$Component);function ReactFloater(props){var _this;_classCallCheck(this,ReactFloater);_this=_possibleConstructorReturn(this,_getPrototypeOf(ReactFloater).call(this,props));/* istanbul ignore else */_defineProperty(_assertThisInitialized(_this),\"setArrowRef\",function(ref){_this.arrowRef=ref;});_defineProperty(_assertThisInitialized(_this),\"setChildRef\",function(ref){_this.childRef=ref;});_defineProperty(_assertThisInitialized(_this),\"setFloaterRef\",function(ref){if(!_this.floaterRef){_this.floaterRef=ref;}});_defineProperty(_assertThisInitialized(_this),\"setWrapperRef\",function(ref){_this.wrapperRef=ref;});_defineProperty(_assertThisInitialized(_this),\"handleTransitionEnd\",function(){var status=_this.state.status;var callback=_this.props.callback;/* istanbul ignore else */if(_this.wrapperPopper){_this.wrapperPopper.instance.update();}_this.setState({status:status===STATUS.OPENING?STATUS.OPEN:STATUS.IDLE},function(){var newStatus=_this.state.status;callback(newStatus===STATUS.OPEN?'open':'close',_this.props);});});_defineProperty(_assertThisInitialized(_this),\"handleClick\",function(){var _this$props=_this.props,event=_this$props.event,open=_this$props.open;if(is[\"boolean\"](open))return;var _this$state=_this.state,positionWrapper=_this$state.positionWrapper,status=_this$state.status;/* istanbul ignore else */if(_this.event==='click'||_this.event==='hover'&&positionWrapper){log({title:'click',data:[{event:event,status:status===STATUS.OPEN?'closing':'opening'}],debug:_this.debug});_this.toggle();}});_defineProperty(_assertThisInitialized(_this),\"handleMouseEnter\",function(){var _this$props2=_this.props,event=_this$props2.event,open=_this$props2.open;if(is[\"boolean\"](open)||isMobile())return;var status=_this.state.status;/* istanbul ignore else */if(_this.event==='hover'&&status===STATUS.IDLE){log({title:'mouseEnter',data:[{key:'originalEvent',value:event}],debug:_this.debug});clearTimeout(_this.eventDelayTimeout);_this.toggle();}});_defineProperty(_assertThisInitialized(_this),\"handleMouseLeave\",function(){var _this$props3=_this.props,event=_this$props3.event,eventDelay=_this$props3.eventDelay,open=_this$props3.open;if(is[\"boolean\"](open)||isMobile())return;var _this$state2=_this.state,status=_this$state2.status,positionWrapper=_this$state2.positionWrapper;/* istanbul ignore else */if(_this.event==='hover'){log({title:'mouseLeave',data:[{key:'originalEvent',value:event}],debug:_this.debug});if(!eventDelay){_this.toggle(STATUS.IDLE);}else if([STATUS.OPENING,STATUS.OPEN].includes(status)&&!positionWrapper&&!_this.eventDelayTimeout){_this.eventDelayTimeout=setTimeout(function(){delete _this.eventDelayTimeout;_this.toggle();},eventDelay*1000);}}});if(process.env.NODE_ENV!=='production'){var _this$props4=_this.props,children=_this$props4.children,open=_this$props4.open,target=_this$props4.target,wrapperOptions=_this$props4.wrapperOptions;if(wrapperOptions.position&&!target){console.warn('Missing props! You need to set a `target` to use `wrapperOptions.position`');//eslint-disable-line no-console\n}if(!children&&!is[\"boolean\"](open)){console.warn('Missing props! You need to set `children`.');//eslint-disable-line no-console\n}}_this.state={currentPlacement:props.placement,positionWrapper:props.wrapperOptions.position&&!!props.target,status:STATUS.INIT,statusWrapper:STATUS.INIT};_this._isMounted=false;if(canUseDOM){window.addEventListener('load',function(){if(_this.popper){_this.popper.instance.update();}if(_this.wrapperPopper){_this.wrapperPopper.instance.update();}});}return _this;}_createClass(ReactFloater,[{key:\"componentDidMount\",value:function componentDidMount(){if(!canUseDOM)return;var positionWrapper=this.state.positionWrapper;var _this$props5=this.props,children=_this$props5.children,open=_this$props5.open,target=_this$props5.target;this._isMounted=true;log({title:'init',data:{hasChildren:!!children,hasTarget:!!target,isControlled:is[\"boolean\"](open),positionWrapper:positionWrapper,target:this.target,floater:this.floaterRef},debug:this.debug});this.initPopper();if(!children&&target&&!is[\"boolean\"](open));}},{key:\"componentDidUpdate\",value:function componentDidUpdate(prevProps,prevState){if(!canUseDOM)return;var _this$props6=this.props,autoOpen=_this$props6.autoOpen,open=_this$props6.open,target=_this$props6.target,wrapperOptions=_this$props6.wrapperOptions;var _treeChanges=treeChanges(prevState,this.state),changedFrom=_treeChanges.changedFrom,changedTo=_treeChanges.changedTo;if(prevProps.open!==open){var forceStatus;// always follow `open` in controlled mode\nif(is[\"boolean\"](open)){forceStatus=open?STATUS.OPENING:STATUS.CLOSING;}this.toggle(forceStatus);}if(prevProps.wrapperOptions.position!==wrapperOptions.position||prevProps.target!==target){this.changeWrapperPosition(this.props);}if(changedTo('status',STATUS.IDLE)&&open){this.toggle(STATUS.OPEN);}else if(changedFrom('status',STATUS.INIT,STATUS.IDLE)&&autoOpen){this.toggle(STATUS.OPEN);}if(this.popper&&changedTo('status',STATUS.OPENING)){this.popper.instance.update();}if(this.floaterRef&&(changedTo('status',STATUS.OPENING)||changedTo('status',STATUS.CLOSING))){once(this.floaterRef,'transitionend',this.handleTransitionEnd);}}},{key:\"componentWillUnmount\",value:function componentWillUnmount(){if(!canUseDOM)return;this._isMounted=false;if(this.popper){this.popper.instance.destroy();}if(this.wrapperPopper){this.wrapperPopper.instance.destroy();}}},{key:\"initPopper\",value:function initPopper(){var _this2=this;var target=arguments.length>0&&arguments[0]!==undefined?arguments[0]:this.target;var positionWrapper=this.state.positionWrapper;var _this$props7=this.props,disableFlip=_this$props7.disableFlip,getPopper=_this$props7.getPopper,hideArrow=_this$props7.hideArrow,offset=_this$props7.offset,placement=_this$props7.placement,wrapperOptions=_this$props7.wrapperOptions;var flipBehavior=placement==='top'||placement==='bottom'?'flip':['right','bottom-end','top-end','left','top-start','bottom-start'];/* istanbul ignore else */if(placement==='center'){this.setState({status:STATUS.IDLE});}else if(target&&this.floaterRef){new Popper(target,this.floaterRef,{placement:placement,modifiers:{arrow:_objectSpread2({enabled:!hideArrow,element:this.arrowRef},this.options.arrow),computeStyle:this.options.computeStyle,flip:_objectSpread2({enabled:!disableFlip,behavior:flipBehavior},this.options.flip),keepTogether:this.options.keepTogether,hide:this.options.hide,inner:this.options.inner,offset:_objectSpread2({offset:\"0, \".concat(offset,\"px\")},this.options.offset),preventOverflow:this.options.preventOverflow,shift:this.options.shift},onCreate:function onCreate(data){_this2.popper=data;getPopper(data,'floater');if(_this2._isMounted){_this2.setState({currentPlacement:data.placement,status:STATUS.IDLE});}if(placement!==data.placement){setTimeout(function(){data.instance.update();},1);}},onUpdate:function onUpdate(data){_this2.popper=data;var currentPlacement=_this2.state.currentPlacement;if(_this2._isMounted&&data.placement!==currentPlacement){_this2.setState({currentPlacement:data.placement});}}});}if(positionWrapper){var wrapperOffset=!is.undefined(wrapperOptions.offset)?wrapperOptions.offset:0;new Popper(this.target,this.wrapperRef,{placement:wrapperOptions.placement||placement,modifiers:{arrow:{enabled:false},offset:{offset:\"0, \".concat(wrapperOffset,\"px\")},flip:{enabled:false}},onCreate:function onCreate(data){_this2.wrapperPopper=data;if(_this2._isMounted){_this2.setState({statusWrapper:STATUS.IDLE});}getPopper(data,'wrapper');if(placement!==data.placement){setTimeout(function(){data.instance.update();},1);}}});}}},{key:\"changeWrapperPosition\",value:function changeWrapperPosition(_ref){var target=_ref.target,wrapperOptions=_ref.wrapperOptions;this.setState({positionWrapper:wrapperOptions.position&&!!target});}},{key:\"toggle\",value:function toggle(forceStatus){var status=this.state.status;var nextStatus=status===STATUS.OPEN?STATUS.CLOSING:STATUS.OPENING;if(!is.undefined(forceStatus)){nextStatus=forceStatus;}this.setState({status:nextStatus});}},{key:\"render\",value:function render(){var _this$state3=this.state,currentPlacement=_this$state3.currentPlacement,positionWrapper=_this$state3.positionWrapper,status=_this$state3.status;var _this$props8=this.props,children=_this$props8.children,component=_this$props8.component,content=_this$props8.content,disableAnimation=_this$props8.disableAnimation,footer=_this$props8.footer,hideArrow=_this$props8.hideArrow,id=_this$props8.id,isPositioned=_this$props8.isPositioned,open=_this$props8.open,showCloseButton=_this$props8.showCloseButton,style=_this$props8.style,target=_this$props8.target,title=_this$props8.title;var wrapper=React.createElement(ReactFloaterWrapper,{handleClick:this.handleClick,handleMouseEnter:this.handleMouseEnter,handleMouseLeave:this.handleMouseLeave,setChildRef:this.setChildRef,setWrapperRef:this.setWrapperRef,style:style,styles:this.styles.wrapper},children);var output={};if(positionWrapper){output.wrapperInPortal=wrapper;}else{output.wrapperAsChildren=wrapper;}return React.createElement(\"span\",null,React.createElement(ReactFloaterPortal,{hasChildren:!!children,id:id,placement:currentPlacement,setRef:this.setFloaterRef,target:target,zIndex:this.styles.options.zIndex},React.createElement(Floater,{component:component,content:content,disableAnimation:disableAnimation,footer:footer,handleClick:this.handleClick,hideArrow:hideArrow||currentPlacement==='center',isPositioned:isPositioned,open:open,placement:currentPlacement,positionWrapper:positionWrapper,setArrowRef:this.setArrowRef,setFloaterRef:this.setFloaterRef,showCloseButton:showCloseButton,status:status,styles:this.styles,title:title}),output.wrapperInPortal),output.wrapperAsChildren);}},{key:\"debug\",get:function get(){var debug=this.props.debug;return debug||!!global.ReactFloaterDebug;}},{key:\"event\",get:function get(){var _this$props9=this.props,disableHoverToClick=_this$props9.disableHoverToClick,event=_this$props9.event;if(event==='hover'&&isMobile()&&!disableHoverToClick){return 'click';}return event;}},{key:\"options\",get:function get(){var options=this.props.options;return deepmerge(DEFAULTS,options||{});}},{key:\"styles\",get:function get(){var _this3=this;var _this$state4=this.state,status=_this$state4.status,positionWrapper=_this$state4.positionWrapper,statusWrapper=_this$state4.statusWrapper;var styles=this.props.styles;var nextStyles=deepmerge(getStyles(styles),styles);if(positionWrapper){var wrapperStyles;if(![STATUS.IDLE].includes(status)||![STATUS.IDLE].includes(statusWrapper)){wrapperStyles=nextStyles.wrapperPosition;}else{wrapperStyles=this.wrapperPopper.styles;}nextStyles.wrapper=_objectSpread2({},nextStyles.wrapper,{},wrapperStyles);}/* istanbul ignore else */if(this.target){var targetStyles=window.getComputedStyle(this.target);/* istanbul ignore else */if(this.wrapperStyles){nextStyles.wrapper=_objectSpread2({},nextStyles.wrapper,{},this.wrapperStyles);}else if(!['relative','static'].includes(targetStyles.position)){this.wrapperStyles={};if(!positionWrapper){POSITIONING_PROPS.forEach(function(d){_this3.wrapperStyles[d]=targetStyles[d];});nextStyles.wrapper=_objectSpread2({},nextStyles.wrapper,{},this.wrapperStyles);this.target.style.position='relative';this.target.style.top='auto';this.target.style.right='auto';this.target.style.bottom='auto';this.target.style.left='auto';}}}return nextStyles;}},{key:\"target\",get:function get(){if(!canUseDOM)return null;var target=this.props.target;if(target){if(is.domElement(target)){return target;}return document.querySelector(target);}return this.childRef||this.wrapperRef;}}]);return ReactFloater;}(React.Component);_defineProperty(ReactFloater,\"propTypes\",{autoOpen:PropTypes.bool,callback:PropTypes.func,children:PropTypes.node,component:isRequiredIf(PropTypes.oneOfType([PropTypes.func,PropTypes.element]),function(props){return !props.content;}),content:isRequiredIf(PropTypes.node,function(props){return !props.component;}),debug:PropTypes.bool,disableAnimation:PropTypes.bool,disableFlip:PropTypes.bool,disableHoverToClick:PropTypes.bool,event:PropTypes.oneOf(['hover','click']),eventDelay:PropTypes.number,footer:PropTypes.node,getPopper:PropTypes.func,hideArrow:PropTypes.bool,id:PropTypes.oneOfType([PropTypes.string,PropTypes.number]),isPositioned:PropTypes.bool,offset:PropTypes.number,open:PropTypes.bool,options:PropTypes.object,placement:PropTypes.oneOf(['top','top-start','top-end','bottom','bottom-start','bottom-end','left','left-start','left-end','right','right-start','right-end','auto','center']),showCloseButton:PropTypes.bool,style:PropTypes.object,styles:PropTypes.object,target:PropTypes.oneOfType([PropTypes.object,PropTypes.string]),title:PropTypes.node,wrapperOptions:PropTypes.shape({offset:PropTypes.number,placement:PropTypes.oneOf(['top','top-start','top-end','bottom','bottom-start','bottom-end','left','left-start','left-end','right','right-start','right-end','auto']),position:PropTypes.bool})});_defineProperty(ReactFloater,\"defaultProps\",{autoOpen:false,callback:noop,debug:false,disableAnimation:false,disableFlip:false,disableHoverToClick:false,event:'click',eventDelay:0.4,getPopper:noop,hideArrow:false,offset:15,placement:'bottom',showCloseButton:false,styles:{},target:null,wrapperOptions:{position:false}});\n\nexport default ReactFloater;\n","import React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\n\n// from http://stackoverflow.com/a/18473154\n\nvar partialCircle = function partialCircle(cx, cy, r, start, end) {\n\tvar length = end - start;\n\tif (length === 0) return [];\n\n\tvar fromX = r * Math.cos(start) + cx;\n\tvar fromY = r * Math.sin(start) + cy;\n\tvar toX = r * Math.cos(end) + cx;\n\tvar toY = r * Math.sin(end) + cy;\n\tvar large = Math.abs(length) <= Math.PI ? '0' : '1';\n\tvar sweep = length < 0 ? '0' : '1';\n\n\treturn [['M', fromX, fromY], ['A', r, r, 0, large, sweep, toX, toY]];\n};\n\nvar svgPartialCircle = partialCircle;\n\nvar PI = Math.PI;\n\nfunction degreesToRadians(degrees) {\n return degrees * PI / 180;\n}\n\nfunction evaluateViewBoxSize(ratio, baseSize) {\n // Wide ratio\n if (ratio > 1) {\n return '0 0 ' + baseSize + ' ' + baseSize / ratio;\n }\n // Narrow/squared ratio\n return '0 0 ' + baseSize * ratio + ' ' + baseSize;\n}\n\nfunction evaluateLabelTextAnchor() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n labelPosition = _ref.labelPosition,\n lineWidth = _ref.lineWidth,\n labelHorizontalShift = _ref.labelHorizontalShift;\n\n // Label in the vertical center\n if (labelHorizontalShift === 0) {\n return 'middle';\n }\n // Outward label\n if (labelPosition > 100) {\n return labelHorizontalShift > 0 ? 'start' : 'end';\n }\n // Inward label\n var innerRadius = 100 - lineWidth;\n if (labelPosition < innerRadius) {\n return labelHorizontalShift > 0 ? 'end' : 'start';\n }\n // Overlying label\n return 'middle';\n}\n\nfunction valueBetween(value, min, max) {\n if (value > max) return max;\n if (value < min) return min;\n return value;\n}\n\nfunction extractPercentage(value, percentage) {\n return value * percentage / 100;\n}\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\n\n\n\n\n\n\n\n\nvar _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\n\nvar inherits = function (subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n};\n\n\n\n\n\n\n\n\n\nvar objectWithoutProperties = function (obj, keys) {\n var target = {};\n\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n};\n\nvar possibleConstructorReturn = function (self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n};\n\nvar makePathCommands = function makePathCommands(cx, cy, startAngle, lengthAngle, radius) {\n var patchedLengthAngle = valueBetween(lengthAngle, -359.999, 359.999);\n\n return svgPartialCircle(cx, cy, // center X and Y\n radius, degreesToRadians(startAngle), degreesToRadians(startAngle + patchedLengthAngle)).map(function (command) {\n return command.join(' ');\n }).join(' ');\n};\n\nfunction ReactMinimalPieChartPath(_ref) {\n var cx = _ref.cx,\n cy = _ref.cy,\n startAngle = _ref.startAngle,\n lengthAngle = _ref.lengthAngle,\n radius = _ref.radius,\n lineWidth = _ref.lineWidth,\n reveal = _ref.reveal,\n title = _ref.title,\n props = objectWithoutProperties(_ref, ['cx', 'cy', 'startAngle', 'lengthAngle', 'radius', 'lineWidth', 'reveal', 'title']);\n\n var actualRadio = radius - lineWidth / 2;\n var pathCommands = makePathCommands(cx, cy, startAngle, lengthAngle, actualRadio);\n var strokeDasharray = void 0;\n var strokeDashoffset = void 0;\n\n // Animate/hide paths with \"stroke-dasharray\" + \"stroke-dashoffset\"\n // https://css-tricks.com/svg-line-animation-works/\n if (typeof reveal === 'number') {\n strokeDasharray = degreesToRadians(actualRadio) * Math.abs(lengthAngle);\n strokeDashoffset = strokeDasharray + extractPercentage(strokeDasharray, reveal);\n }\n\n return React.createElement(\n 'path',\n _extends({\n d: pathCommands,\n strokeWidth: lineWidth,\n strokeDasharray: strokeDasharray,\n strokeDashoffset: strokeDashoffset\n }, props),\n title && React.createElement(\n 'title',\n null,\n title\n )\n );\n}\n\nReactMinimalPieChartPath.displayName = 'ReactMinimalPieChartPath';\n\nReactMinimalPieChartPath.propTypes = {\n cx: PropTypes.number.isRequired,\n cy: PropTypes.number.isRequired,\n startAngle: PropTypes.number,\n lengthAngle: PropTypes.number,\n radius: PropTypes.number,\n lineWidth: PropTypes.number,\n reveal: PropTypes.number,\n title: PropTypes.oneOfType([PropTypes.number, PropTypes.string])\n};\n\nReactMinimalPieChartPath.defaultProps = {\n startAngle: 0,\n lengthAngle: 0,\n lineWidth: 100,\n radius: 100\n};\n\nvar dataPropType = PropTypes.arrayOf(PropTypes.shape({\n title: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n value: PropTypes.number.isRequired,\n key: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n color: PropTypes.string\n}));\n\nvar stylePropType = PropTypes.objectOf(PropTypes.oneOfType([PropTypes.number, PropTypes.string]));\n\nfunction ReactMinimalPieChartLabel(_ref) {\n var data = _ref.data,\n dataIndex = _ref.dataIndex,\n color = _ref.color,\n props = objectWithoutProperties(_ref, ['data', 'dataIndex', 'color']);\n\n return React.createElement('text', _extends({\n textAnchor: 'middle',\n alignmentBaseline: 'middle',\n fill: color\n }, props));\n}\n\nReactMinimalPieChartLabel.displayName = 'ReactMinimalPieChartLabel';\n\nReactMinimalPieChartLabel.propTypes = {\n data: dataPropType,\n dataIndex: PropTypes.number,\n color: PropTypes.string\n};\n\nvar VIEWBOX_SIZE = 100;\nvar VIEWBOX_HALF_SIZE = VIEWBOX_SIZE / 2;\n\nvar sumValues = function sumValues(data) {\n return data.reduce(function (acc, dataEntry) {\n return acc + dataEntry.value;\n }, 0);\n};\n\nvar evaluateDegreesFromValues = function evaluateDegreesFromValues(data, totalAngle, totalValue) {\n var total = totalValue || sumValues(data);\n var normalizedTotalAngle = valueBetween(totalAngle, -360, 360);\n\n // Append \"degrees\" and \"percentage\" into each data entry\n return data.map(function (dataEntry) {\n var valueInPercentage = dataEntry.value / total * 100;\n return _extends({\n percentage: valueInPercentage,\n degrees: extractPercentage(normalizedTotalAngle, valueInPercentage)\n }, dataEntry);\n });\n};\n\nvar makeSegmentTransitionStyle = function makeSegmentTransitionStyle(duration, easing) {\n var furtherStyles = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n // Merge CSS transition necessary for chart animation with the ones provided by \"segmentsStyle\"\n var transition = ['stroke-dashoffset ' + duration + 'ms ' + easing, furtherStyles.transition].filter(Boolean).join(',');\n\n return {\n transition: transition\n };\n};\n\nvar makeSegments = function makeSegments(data, props, hide) {\n // Keep track of how many degrees have already been taken\n var lastSegmentAngle = props.startAngle;\n var paddingAngle = props.paddingAngle * Math.sign(props.lengthAngle);\n var reveal = void 0;\n var style = props.segmentsStyle;\n\n if (props.animate) {\n var transitionStyle = makeSegmentTransitionStyle(props.animationDuration, props.animationEasing, style);\n style = Object.assign({}, style, transitionStyle);\n }\n\n // Hide/reveal the segment?\n if (hide === true) {\n reveal = 0;\n } else if (typeof props.reveal === 'number') {\n reveal = props.reveal;\n } else if (hide === false) {\n reveal = 100;\n }\n\n return data.map(function (dataEntry, index) {\n var startAngle = lastSegmentAngle;\n var lengthAngle = dataEntry.degrees;\n lastSegmentAngle += lengthAngle;\n\n return React.createElement(ReactMinimalPieChartPath, {\n key: dataEntry.key || index,\n cx: props.cx,\n cy: props.cy,\n startAngle: startAngle,\n lengthAngle: lengthAngle - paddingAngle,\n radius: props.radius,\n lineWidth: extractPercentage(props.radius, props.lineWidth),\n reveal: reveal,\n title: dataEntry.title,\n style: style,\n stroke: dataEntry.color,\n strokeLinecap: props.rounded ? 'round' : undefined,\n fill: 'none',\n onMouseOver: props.onMouseOver && function (e) {\n return props.onMouseOver(e, props.data, index);\n },\n onMouseOut: props.onMouseOut && function (e) {\n return props.onMouseOut(e, props.data, index);\n },\n onClick: props.onClick && function (e) {\n return props.onClick(e, props.data, index);\n }\n });\n });\n};\n\nfunction renderLabelItem(option, props, value) {\n if (React.isValidElement(option)) {\n return React.cloneElement(option, props);\n }\n\n var label = value;\n if (typeof option === 'function') {\n label = option(props);\n if (React.isValidElement(label)) {\n return label;\n }\n }\n\n return React.createElement(\n ReactMinimalPieChartLabel,\n props,\n label\n );\n}\n\nvar makeLabels = function makeLabels(data, props) {\n // Keep track of how many degrees have already been taken\n var lastSegmentAngle = props.startAngle;\n var paddingAngle = props.paddingAngle * Math.sign(props.lengthAngle);\n var labelPosition = extractPercentage(props.radius, props.labelPosition);\n\n return data.map(function (dataEntry, index) {\n var startAngle = lastSegmentAngle;\n var lengthAngle = dataEntry.degrees;\n lastSegmentAngle += lengthAngle;\n\n var halfAngle = startAngle + (lengthAngle - paddingAngle) / 2;\n var halfAngleRadians = degreesToRadians(halfAngle);\n var dx = Math.cos(halfAngleRadians) * labelPosition;\n var dy = Math.sin(halfAngleRadians) * labelPosition;\n\n // This object is passed as props to the \"label\" component\n var labelProps = {\n key: 'label-' + (dataEntry.key || index),\n x: props.cx,\n y: props.cy,\n dx: dx,\n dy: dy,\n textAnchor: evaluateLabelTextAnchor({\n lineWidth: props.lineWidth,\n labelPosition: props.labelPosition,\n labelHorizontalShift: dx\n }),\n data: data,\n dataIndex: index,\n color: dataEntry.color,\n style: props.labelStyle\n };\n\n return renderLabelItem(props.label, labelProps, dataEntry.value);\n });\n};\n\nvar ReactMinimalPieChart = function (_PureComponent) {\n inherits(ReactMinimalPieChart, _PureComponent);\n\n function ReactMinimalPieChart(props) {\n classCallCheck(this, ReactMinimalPieChart);\n\n var _this = possibleConstructorReturn(this, _PureComponent.call(this, props));\n\n if (_this.props.animate === true) {\n _this.hideSegments = true;\n }\n return _this;\n }\n\n ReactMinimalPieChart.prototype.componentDidMount = function componentDidMount() {\n var _this2 = this;\n\n if (this.props.animate === true && requestAnimationFrame) {\n this.initialAnimationTimerId = setTimeout(function () {\n _this2.initialAnimationTimerId = null;\n _this2.initialAnimationRAFId = requestAnimationFrame(function () {\n _this2.initialAnimationRAFId = null, _this2.startAnimation();\n });\n });\n }\n };\n\n ReactMinimalPieChart.prototype.componentWillUnmount = function componentWillUnmount() {\n if (this.initialAnimationTimerId) {\n clearTimeout(this.initialAnimationTimerId);\n }\n if (this.initialAnimationRAFId) {\n cancelAnimationFrame(this.initialAnimationRAFId);\n }\n };\n\n ReactMinimalPieChart.prototype.startAnimation = function startAnimation() {\n this.hideSegments = false;\n this.forceUpdate();\n };\n\n ReactMinimalPieChart.prototype.render = function render() {\n if (this.props.data === undefined) {\n return null;\n }\n\n var normalizedData = evaluateDegreesFromValues(this.props.data, this.props.lengthAngle, this.props.totalValue);\n\n return React.createElement(\n 'div',\n {\n className: this.props.className,\n style: this.props.style\n },\n React.createElement(\n 'svg',\n {\n viewBox: evaluateViewBoxSize(this.props.ratio, VIEWBOX_SIZE),\n width: '100%',\n height: '100%',\n style: { display: 'block' }\n },\n makeSegments(normalizedData, this.props, this.hideSegments),\n this.props.label && makeLabels(normalizedData, this.props),\n this.props.injectSvg && this.props.injectSvg()\n ),\n this.props.children\n );\n };\n\n return ReactMinimalPieChart;\n}(PureComponent);\n\nReactMinimalPieChart.displayName = 'ReactMinimalPieChart';\n\nReactMinimalPieChart.propTypes = {\n data: dataPropType,\n cx: PropTypes.number,\n cy: PropTypes.number,\n ratio: PropTypes.number,\n totalValue: PropTypes.number,\n className: PropTypes.string,\n style: stylePropType,\n segmentsStyle: stylePropType,\n startAngle: PropTypes.number,\n lengthAngle: PropTypes.number,\n paddingAngle: PropTypes.number,\n lineWidth: PropTypes.number,\n radius: PropTypes.number,\n rounded: PropTypes.bool,\n animate: PropTypes.bool,\n animationDuration: PropTypes.number,\n animationEasing: PropTypes.string,\n reveal: PropTypes.number,\n children: PropTypes.node,\n injectSvg: PropTypes.func,\n label: PropTypes.oneOfType([PropTypes.func, PropTypes.element, PropTypes.bool]),\n labelPosition: PropTypes.number,\n labelStyle: stylePropType,\n onMouseOver: PropTypes.func,\n onMouseOut: PropTypes.func,\n onClick: PropTypes.func\n};\n\nReactMinimalPieChart.defaultProps = {\n cx: VIEWBOX_HALF_SIZE,\n cy: VIEWBOX_HALF_SIZE,\n ratio: 1,\n startAngle: 0,\n lengthAngle: 360,\n paddingAngle: 0,\n lineWidth: 100,\n radius: VIEWBOX_HALF_SIZE,\n rounded: false,\n animate: false,\n animationDuration: 500,\n animationEasing: 'ease-out',\n label: false,\n labelPosition: 50,\n onMouseOver: undefined,\n onMouseOut: undefined,\n onClick: undefined\n};\n\nexport default ReactMinimalPieChart;\n//# sourceMappingURL=index.js.map\n","'use strict';Object.defineProperty(exports,'__esModule',{value:!0});var VALIDATOR_ARG_ERROR_MESSAGE='The typeValidator argument must be a function with the signature function(props, propName, componentName).',MESSAGE_ARG_ERROR_MESSAGE='The error message is optional, but must be a string if provided.',propIsRequired=function propIsRequired(a,b,c,d){if('boolean'==typeof a)return a;return'function'==typeof a?a(b,c,d):!(!0!==!!a)&&!!a},propExists=function propExists(a,b){return Object.hasOwnProperty.call(a,b)},missingPropError=function missingPropError(a,b,c,d){return d?new Error(d):new Error('Required '+a[b]+' `'+b+'`'+(' was not specified in `'+c+'`.'))},guardAgainstInvalidArgTypes=function guardAgainstInvalidArgTypes(a,b){if('function'!=typeof a)throw new TypeError(VALIDATOR_ARG_ERROR_MESSAGE);if(!!b&&'string'!=typeof b)throw new TypeError(MESSAGE_ARG_ERROR_MESSAGE)},isRequiredIf=function isRequiredIf(a,b,c){return guardAgainstInvalidArgTypes(a,c),function(d,e,f){for(var _len=arguments.length,g=Array(3<_len?_len-3:0),_key=3;_key<_len;_key++)g[_key-3]=arguments[_key];return propIsRequired(b,d,e,f)?propExists(d,e)?a.apply(void 0,[d,e,f].concat(g)):missingPropError(d,e,f,c):a.apply(void 0,[d,e,f].concat(g));// Is not required, so just run typeValidator.\n}};exports.default=isRequiredIf;\n\n//# sourceMappingURL=isRequiredIf.js.map","!function(root, factory) {\n \"object\" == typeof exports && \"object\" == typeof module ? module.exports = factory(require(\"react\")) : \"function\" == typeof define && define.amd ? define([ \"react\" ], factory) : \"object\" == typeof exports ? exports.MediaQuery = factory(require(\"react\")) : root.MediaQuery = factory(root.React);\n}(\"undefined\" != typeof self ? self : this, function(__WEBPACK_EXTERNAL_MODULE_1__) {\n return function(modules) {\n function __webpack_require__(moduleId) {\n if (installedModules[moduleId]) return installedModules[moduleId].exports;\n var module = installedModules[moduleId] = {\n i: moduleId,\n l: !1,\n exports: {}\n };\n return modules[moduleId].call(module.exports, module, module.exports, __webpack_require__), \n module.l = !0, module.exports;\n }\n var installedModules = {};\n return __webpack_require__.m = modules, __webpack_require__.c = installedModules, \n __webpack_require__.d = function(exports, name, getter) {\n __webpack_require__.o(exports, name) || Object.defineProperty(exports, name, {\n configurable: !1,\n enumerable: !0,\n get: getter\n });\n }, __webpack_require__.n = function(module) {\n var getter = module && module.__esModule ? function() {\n return module.default;\n } : function() {\n return module;\n };\n return __webpack_require__.d(getter, \"a\", getter), getter;\n }, __webpack_require__.o = function(object, property) {\n return Object.prototype.hasOwnProperty.call(object, property);\n }, __webpack_require__.p = \"\", __webpack_require__(__webpack_require__.s = 6);\n }([ function(module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n function _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest();\n }\n function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n }\n function _iterableToArrayLimit(arr, i) {\n var _arr = [], _n = !0, _d = !1, _e = void 0;\n try {\n for (var _s, _i = arr[Symbol.iterator](); !(_n = (_s = _i.next()).done) && (_arr.push(_s.value), \n !i || _arr.length !== i); _n = !0) ;\n } catch (err) {\n _d = !0, _e = err;\n } finally {\n try {\n _n || null == _i.return || _i.return();\n } finally {\n if (_d) throw _e;\n }\n }\n return _arr;\n }\n function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n }\n var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(1), __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__), __WEBPACK_IMPORTED_MODULE_1_matchmediaquery__ = __webpack_require__(7), __WEBPACK_IMPORTED_MODULE_1_matchmediaquery___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_matchmediaquery__), __WEBPACK_IMPORTED_MODULE_2_hyphenate_style_name__ = __webpack_require__(2), __WEBPACK_IMPORTED_MODULE_3_shallow_equal_objects__ = __webpack_require__(9), __WEBPACK_IMPORTED_MODULE_3_shallow_equal_objects___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_shallow_equal_objects__), __WEBPACK_IMPORTED_MODULE_4__toQuery__ = __webpack_require__(10), __WEBPACK_IMPORTED_MODULE_5__Context__ = __webpack_require__(5), makeQuery = function(settings) {\n return settings.query || Object(__WEBPACK_IMPORTED_MODULE_4__toQuery__.a)(settings);\n }, hyphenateKeys = function(obj) {\n if (!obj) return null;\n var keys = Object.keys(obj);\n return 0 === keys.length ? null : keys.reduce(function(result, key) {\n return result[Object(__WEBPACK_IMPORTED_MODULE_2_hyphenate_style_name__.a)(key)] = obj[key], \n result;\n }, {});\n }, useIsUpdate = function() {\n var ref = __WEBPACK_IMPORTED_MODULE_0_react___default.a.useRef(!1);\n return __WEBPACK_IMPORTED_MODULE_0_react___default.a.useEffect(function() {\n ref.current = !0;\n }, []), ref.current;\n }, useDevice = function(deviceFromProps) {\n var deviceFromContext = __WEBPACK_IMPORTED_MODULE_0_react___default.a.useContext(__WEBPACK_IMPORTED_MODULE_5__Context__.a), getDevice = function() {\n return hyphenateKeys(deviceFromProps) || hyphenateKeys(deviceFromContext);\n }, _React$useState = __WEBPACK_IMPORTED_MODULE_0_react___default.a.useState(getDevice), _React$useState2 = _slicedToArray(_React$useState, 2), device = _React$useState2[0], setDevice = _React$useState2[1];\n return __WEBPACK_IMPORTED_MODULE_0_react___default.a.useEffect(function() {\n var newDevice = getDevice();\n __WEBPACK_IMPORTED_MODULE_3_shallow_equal_objects___default()(device, newDevice) || setDevice(newDevice);\n }, [ deviceFromProps, deviceFromContext ]), device;\n }, useQuery = function(settings) {\n var getQuery = function() {\n return makeQuery(settings);\n }, _React$useState3 = __WEBPACK_IMPORTED_MODULE_0_react___default.a.useState(getQuery), _React$useState4 = _slicedToArray(_React$useState3, 2), query = _React$useState4[0], setQuery = _React$useState4[1];\n return __WEBPACK_IMPORTED_MODULE_0_react___default.a.useEffect(function() {\n var newQuery = getQuery();\n query !== newQuery && setQuery(newQuery);\n }, [ settings ]), query;\n }, useMatchMedia = function(query, device) {\n var getMatchMedia = function() {\n return __WEBPACK_IMPORTED_MODULE_1_matchmediaquery___default()(query, device || {}, !!device);\n }, _React$useState5 = __WEBPACK_IMPORTED_MODULE_0_react___default.a.useState(getMatchMedia), _React$useState6 = _slicedToArray(_React$useState5, 2), mq = _React$useState6[0], setMq = _React$useState6[1], isUpdate = useIsUpdate();\n return __WEBPACK_IMPORTED_MODULE_0_react___default.a.useEffect(function() {\n return isUpdate && setMq(getMatchMedia()), function() {\n mq.dispose();\n };\n }, [ query, device ]), mq;\n }, useMatches = function(mediaQuery) {\n var _React$useState7 = __WEBPACK_IMPORTED_MODULE_0_react___default.a.useState(mediaQuery.matches), _React$useState8 = _slicedToArray(_React$useState7, 2), matches = _React$useState8[0], setMatches = _React$useState8[1];\n return __WEBPACK_IMPORTED_MODULE_0_react___default.a.useEffect(function() {\n var updateMatches = function() {\n setMatches(mediaQuery.matches);\n };\n return mediaQuery.addListener(updateMatches), updateMatches(), function() {\n mediaQuery.removeListener(updateMatches);\n };\n }, [ mediaQuery ]), matches;\n }, useMediaQuery = function(settings, device, onChange) {\n var deviceSettings = useDevice(device), query = useQuery(settings);\n if (!query) throw new Error(\"Invalid or missing MediaQuery!\");\n var mq = useMatchMedia(query, deviceSettings), matches = useMatches(mq), isUpdate = useIsUpdate();\n return __WEBPACK_IMPORTED_MODULE_0_react___default.a.useEffect(function() {\n isUpdate && onChange && onChange(matches);\n }, [ matches ]), matches;\n };\n __webpack_exports__.a = useMediaQuery;\n }, function(module, exports) {\n module.exports = __WEBPACK_EXTERNAL_MODULE_1__;\n }, function(module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n function toHyphenLower(match) {\n return \"-\" + match.toLowerCase();\n }\n function hyphenateStyleName(name) {\n if (cache.hasOwnProperty(name)) return cache[name];\n var hName = name.replace(uppercasePattern, toHyphenLower);\n return cache[name] = msPattern.test(hName) ? \"-\" + hName : hName;\n }\n var uppercasePattern = /[A-Z]/g, msPattern = /^ms-/, cache = {};\n __webpack_exports__.a = hyphenateStyleName;\n }, function(module, exports, __webpack_require__) {\n \"use strict\";\n module.exports = __webpack_require__(13);\n }, function(module, exports, __webpack_require__) {\n \"use strict\";\n module.exports = \"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\";\n }, function(module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(1), __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__), Context = __WEBPACK_IMPORTED_MODULE_0_react___default.a.createContext();\n __webpack_exports__.a = Context;\n }, function(module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n Object.defineProperty(__webpack_exports__, \"__esModule\", {\n value: !0\n });\n var __WEBPACK_IMPORTED_MODULE_0__useMediaQuery__ = __webpack_require__(0), __WEBPACK_IMPORTED_MODULE_1__Component__ = __webpack_require__(17), __WEBPACK_IMPORTED_MODULE_2__Context__ = __webpack_require__(5);\n __webpack_require__.d(__webpack_exports__, \"default\", function() {\n return __WEBPACK_IMPORTED_MODULE_1__Component__.a;\n }), __webpack_require__.d(__webpack_exports__, \"useMediaQuery\", function() {\n return __WEBPACK_IMPORTED_MODULE_0__useMediaQuery__.a;\n }), __webpack_require__.d(__webpack_exports__, \"Context\", function() {\n return __WEBPACK_IMPORTED_MODULE_2__Context__.a;\n });\n }, function(module, exports, __webpack_require__) {\n \"use strict\";\n function Mql(query, values, forceStatic) {\n function addListener(listener) {\n mql && mql.addListener(listener);\n }\n function removeListener(listener) {\n mql && mql.removeListener(listener);\n }\n function update(evt) {\n self.matches = evt.matches, self.media = evt.media;\n }\n function dispose() {\n mql && mql.removeListener(update);\n }\n var self = this;\n if (dynamicMatch && !forceStatic) {\n var mql = dynamicMatch.call(window, query);\n this.matches = mql.matches, this.media = mql.media, mql.addListener(update);\n } else this.matches = staticMatch(query, values), this.media = query;\n this.addListener = addListener, this.removeListener = removeListener, this.dispose = dispose;\n }\n function matchMedia(query, values, forceStatic) {\n return new Mql(query, values, forceStatic);\n }\n var staticMatch = __webpack_require__(8).match, dynamicMatch = \"undefined\" != typeof window ? window.matchMedia : null;\n module.exports = matchMedia;\n }, function(module, exports, __webpack_require__) {\n \"use strict\";\n function matchQuery(mediaQuery, values) {\n return parseQuery(mediaQuery).some(function(query) {\n var inverse = query.inverse, typeMatch = \"all\" === query.type || values.type === query.type;\n if (typeMatch && inverse || !typeMatch && !inverse) return !1;\n var expressionsMatch = query.expressions.every(function(expression) {\n var feature = expression.feature, modifier = expression.modifier, expValue = expression.value, value = values[feature];\n if (!value) return !1;\n switch (feature) {\n case \"orientation\":\n case \"scan\":\n return value.toLowerCase() === expValue.toLowerCase();\n\n case \"width\":\n case \"height\":\n case \"device-width\":\n case \"device-height\":\n expValue = toPx(expValue), value = toPx(value);\n break;\n\n case \"resolution\":\n expValue = toDpi(expValue), value = toDpi(value);\n break;\n\n case \"aspect-ratio\":\n case \"device-aspect-ratio\":\n case \"device-pixel-ratio\":\n expValue = toDecimal(expValue), value = toDecimal(value);\n break;\n\n case \"grid\":\n case \"color\":\n case \"color-index\":\n case \"monochrome\":\n expValue = parseInt(expValue, 10) || 1, value = parseInt(value, 10) || 0;\n }\n switch (modifier) {\n case \"min\":\n return value >= expValue;\n\n case \"max\":\n return value <= expValue;\n\n default:\n return value === expValue;\n }\n });\n return expressionsMatch && !inverse || !expressionsMatch && inverse;\n });\n }\n function parseQuery(mediaQuery) {\n return mediaQuery.split(\",\").map(function(query) {\n query = query.trim();\n var captures = query.match(RE_MEDIA_QUERY), modifier = captures[1], type = captures[2], expressions = captures[3] || \"\", parsed = {};\n return parsed.inverse = !!modifier && \"not\" === modifier.toLowerCase(), parsed.type = type ? type.toLowerCase() : \"all\", \n expressions = expressions.match(/\\([^\\)]+\\)/g) || [], parsed.expressions = expressions.map(function(expression) {\n var captures = expression.match(RE_MQ_EXPRESSION), feature = captures[1].toLowerCase().match(RE_MQ_FEATURE);\n return {\n modifier: feature[1],\n feature: feature[2],\n value: captures[2]\n };\n }), parsed;\n });\n }\n function toDecimal(ratio) {\n var numbers, decimal = Number(ratio);\n return decimal || (numbers = ratio.match(/^(\\d+)\\s*\\/\\s*(\\d+)$/), decimal = numbers[1] / numbers[2]), \n decimal;\n }\n function toDpi(resolution) {\n var value = parseFloat(resolution);\n switch (String(resolution).match(RE_RESOLUTION_UNIT)[1]) {\n case \"dpcm\":\n return value / 2.54;\n\n case \"dppx\":\n return 96 * value;\n\n default:\n return value;\n }\n }\n function toPx(length) {\n var value = parseFloat(length);\n switch (String(length).match(RE_LENGTH_UNIT)[1]) {\n case \"em\":\n case \"rem\":\n return 16 * value;\n\n case \"cm\":\n return 96 * value / 2.54;\n\n case \"mm\":\n return 96 * value / 2.54 / 10;\n\n case \"in\":\n return 96 * value;\n\n case \"pt\":\n return 72 * value;\n\n case \"pc\":\n return 72 * value / 12;\n\n default:\n return value;\n }\n }\n exports.match = matchQuery, exports.parse = parseQuery;\n var RE_MEDIA_QUERY = /(?:(only|not)?\\s*([^\\s\\(\\)]+)(?:\\s*and)?\\s*)?(.+)?/i, RE_MQ_EXPRESSION = /\\(\\s*([^\\s\\:\\)]+)\\s*(?:\\:\\s*([^\\s\\)]+))?\\s*\\)/, RE_MQ_FEATURE = /^(?:(min|max)-)?(.+)/, RE_LENGTH_UNIT = /(em|rem|px|cm|mm|in|pt|pc)?$/, RE_RESOLUTION_UNIT = /(dpi|dpcm|dppx)?$/;\n }, function(module, exports, __webpack_require__) {\n \"use strict\";\n function shallowEqualObjects(objA, objB) {\n if (objA === objB) return !0;\n if (!objA || !objB) return !1;\n var aKeys = Object.keys(objA), bKeys = Object.keys(objB), len = aKeys.length;\n if (bKeys.length !== len) return !1;\n for (var i = 0; i < len; i++) {\n var key = aKeys[i];\n if (objA[key] !== objB[key]) return !1;\n }\n return !0;\n }\n module.exports = shallowEqualObjects;\n }, function(module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n var __WEBPACK_IMPORTED_MODULE_0_hyphenate_style_name__ = __webpack_require__(2), __WEBPACK_IMPORTED_MODULE_1__mediaQuery__ = __webpack_require__(11), negate = function(cond) {\n return \"not \".concat(cond);\n }, keyVal = function(k, v) {\n var realKey = Object(__WEBPACK_IMPORTED_MODULE_0_hyphenate_style_name__.a)(k);\n return \"number\" == typeof v && (v = \"\".concat(v, \"px\")), !0 === v ? realKey : !1 === v ? negate(realKey) : \"(\".concat(realKey, \": \").concat(v, \")\");\n }, join = function(conds) {\n return conds.join(\" and \");\n };\n __webpack_exports__.a = function(obj) {\n var rules = [];\n return Object.keys(__WEBPACK_IMPORTED_MODULE_1__mediaQuery__.a.all).forEach(function(k) {\n var v = obj[k];\n null != v && rules.push(keyVal(k, v));\n }), join(rules);\n };\n }, function(module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function(sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n return keys;\n }\n function _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(source, !0).forEach(function(key) {\n _defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(source).forEach(function(key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\n }\n function _defineProperty(obj, key, value) {\n return key in obj ? Object.defineProperty(obj, key, {\n value: value,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : obj[key] = value, obj;\n }\n var __WEBPACK_IMPORTED_MODULE_0_prop_types__ = __webpack_require__(12), __WEBPACK_IMPORTED_MODULE_0_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_prop_types__), stringOrNumber = __WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.oneOfType([ __WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.number ]), matchers = {\n orientation: __WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.oneOf([ \"portrait\", \"landscape\" ]),\n scan: __WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.oneOf([ \"progressive\", \"interlace\" ]),\n aspectRatio: __WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.string,\n deviceAspectRatio: __WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.string,\n height: stringOrNumber,\n deviceHeight: stringOrNumber,\n width: stringOrNumber,\n deviceWidth: stringOrNumber,\n color: __WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.bool,\n colorIndex: __WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.bool,\n monochrome: __WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.bool,\n resolution: stringOrNumber\n }, features = _objectSpread({\n minAspectRatio: __WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.string,\n maxAspectRatio: __WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.string,\n minDeviceAspectRatio: __WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.string,\n maxDeviceAspectRatio: __WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.string,\n minHeight: stringOrNumber,\n maxHeight: stringOrNumber,\n minDeviceHeight: stringOrNumber,\n maxDeviceHeight: stringOrNumber,\n minWidth: stringOrNumber,\n maxWidth: stringOrNumber,\n minDeviceWidth: stringOrNumber,\n maxDeviceWidth: stringOrNumber,\n minColor: __WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.number,\n maxColor: __WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.number,\n minColorIndex: __WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.number,\n maxColorIndex: __WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.number,\n minMonochrome: __WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.number,\n maxMonochrome: __WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.number,\n minResolution: stringOrNumber,\n maxResolution: stringOrNumber\n }, matchers), types = {\n all: __WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.bool,\n grid: __WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.bool,\n aural: __WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.bool,\n braille: __WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.bool,\n handheld: __WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.bool,\n print: __WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.bool,\n projection: __WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.bool,\n screen: __WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.bool,\n tty: __WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.bool,\n tv: __WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.bool,\n embossed: __WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.bool\n }, all = _objectSpread({}, types, {}, features);\n matchers.type = Object.keys(types), __webpack_exports__.a = {\n all: all,\n types: types,\n matchers: matchers,\n features: features\n };\n }, function(module, exports, __webpack_require__) {\n var ReactIs = __webpack_require__(3);\n module.exports = __webpack_require__(14)(ReactIs.isElement, !0);\n }, function(module, exports, __webpack_require__) {\n \"use strict\";\n !function() {\n function isValidElementType(type) {\n return \"string\" == typeof type || \"function\" == typeof type || type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || \"object\" == typeof type && null !== type && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE);\n }\n function typeOf(object) {\n if (\"object\" == typeof object && null !== object) {\n var $$typeof = object.$$typeof;\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n switch (type) {\n case REACT_ASYNC_MODE_TYPE:\n case REACT_CONCURRENT_MODE_TYPE:\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n return type;\n\n default:\n var $$typeofType = type && type.$$typeof;\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n\n default:\n return $$typeof;\n }\n }\n\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n }\n function isAsyncMode(object) {\n return hasWarnedAboutDeprecatedIsAsyncMode || (hasWarnedAboutDeprecatedIsAsyncMode = !0, \n lowPriorityWarning$1(!1, \"The ReactIs.isAsyncMode() alias has been deprecated, and will be removed in React 17+. Update your code to use ReactIs.isConcurrentMode() instead. It has the exact same API.\")), \n isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n }\n function isConcurrentMode(object) {\n return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n }\n function isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n }\n function isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n }\n function isElement(object) {\n return \"object\" == typeof object && null !== object && object.$$typeof === REACT_ELEMENT_TYPE;\n }\n function isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n }\n function isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n }\n function isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n }\n function isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n }\n function isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n }\n function isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n }\n function isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n }\n function isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n }\n Object.defineProperty(exports, \"__esModule\", {\n value: !0\n });\n var hasSymbol = \"function\" == typeof Symbol && Symbol.for, REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for(\"react.element\") : 60103, REACT_PORTAL_TYPE = hasSymbol ? Symbol.for(\"react.portal\") : 60106, REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for(\"react.fragment\") : 60107, REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for(\"react.strict_mode\") : 60108, REACT_PROFILER_TYPE = hasSymbol ? Symbol.for(\"react.profiler\") : 60114, REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for(\"react.provider\") : 60109, REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for(\"react.context\") : 60110, REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for(\"react.async_mode\") : 60111, REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for(\"react.concurrent_mode\") : 60111, REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for(\"react.forward_ref\") : 60112, REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for(\"react.suspense\") : 60113, REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for(\"react.suspense_list\") : 60120, REACT_MEMO_TYPE = hasSymbol ? Symbol.for(\"react.memo\") : 60115, REACT_LAZY_TYPE = hasSymbol ? Symbol.for(\"react.lazy\") : 60116, REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for(\"react.fundamental\") : 60117, REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for(\"react.responder\") : 60118, lowPriorityWarning = function() {}, printWarning = function(format) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) args[_key - 1] = arguments[_key];\n var argIndex = 0, message = \"Warning: \" + format.replace(/%s/g, function() {\n return args[argIndex++];\n });\n \"undefined\" != typeof console && console.warn(message);\n try {\n throw new Error(message);\n } catch (x) {}\n };\n lowPriorityWarning = function(condition, format) {\n if (void 0 === format) throw new Error(\"`lowPriorityWarning(condition, format, ...args)` requires a warning message argument\");\n if (!condition) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) args[_key2 - 2] = arguments[_key2];\n printWarning.apply(void 0, [ format ].concat(args));\n }\n };\n var lowPriorityWarning$1 = lowPriorityWarning, AsyncMode = REACT_ASYNC_MODE_TYPE, ConcurrentMode = REACT_CONCURRENT_MODE_TYPE, ContextConsumer = REACT_CONTEXT_TYPE, ContextProvider = REACT_PROVIDER_TYPE, Element = REACT_ELEMENT_TYPE, ForwardRef = REACT_FORWARD_REF_TYPE, Fragment = REACT_FRAGMENT_TYPE, Lazy = REACT_LAZY_TYPE, Memo = REACT_MEMO_TYPE, Portal = REACT_PORTAL_TYPE, Profiler = REACT_PROFILER_TYPE, StrictMode = REACT_STRICT_MODE_TYPE, Suspense = REACT_SUSPENSE_TYPE, hasWarnedAboutDeprecatedIsAsyncMode = !1;\n exports.typeOf = typeOf, exports.AsyncMode = AsyncMode, exports.ConcurrentMode = ConcurrentMode, \n exports.ContextConsumer = ContextConsumer, exports.ContextProvider = ContextProvider, \n exports.Element = Element, exports.ForwardRef = ForwardRef, exports.Fragment = Fragment, \n exports.Lazy = Lazy, exports.Memo = Memo, exports.Portal = Portal, exports.Profiler = Profiler, \n exports.StrictMode = StrictMode, exports.Suspense = Suspense, exports.isValidElementType = isValidElementType, \n exports.isAsyncMode = isAsyncMode, exports.isConcurrentMode = isConcurrentMode, \n exports.isContextConsumer = isContextConsumer, exports.isContextProvider = isContextProvider, \n exports.isElement = isElement, exports.isForwardRef = isForwardRef, exports.isFragment = isFragment, \n exports.isLazy = isLazy, exports.isMemo = isMemo, exports.isPortal = isPortal, exports.isProfiler = isProfiler, \n exports.isStrictMode = isStrictMode, exports.isSuspense = isSuspense;\n }();\n }, function(module, exports, __webpack_require__) {\n \"use strict\";\n function emptyFunctionThatReturnsNull() {\n return null;\n }\n var ReactIs = __webpack_require__(3), assign = __webpack_require__(15), ReactPropTypesSecret = __webpack_require__(4), checkPropTypes = __webpack_require__(16), has = Function.call.bind(Object.prototype.hasOwnProperty), printWarning = function() {};\n printWarning = function(text) {\n var message = \"Warning: \" + text;\n \"undefined\" != typeof console && console.error(message);\n try {\n throw new Error(message);\n } catch (x) {}\n }, module.exports = function(isValidElement, throwOnDirectAccess) {\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (\"function\" == typeof iteratorFn) return iteratorFn;\n }\n function is(x, y) {\n return x === y ? 0 !== x || 1 / x == 1 / y : x !== x && y !== y;\n }\n function PropTypeError(message) {\n this.message = message, this.stack = \"\";\n }\n function createChainableTypeChecker(validate) {\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n if (componentName = componentName || ANONYMOUS, propFullName = propFullName || propName, \n secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n var err = new Error(\"Calling PropTypes validators directly is not supported by the `prop-types` package. Use `PropTypes.checkPropTypes()` to call them. Read more at http://fb.me/use-check-prop-types\");\n throw err.name = \"Invariant Violation\", err;\n }\n if (\"undefined\" != typeof console) {\n var cacheKey = componentName + \":\" + propName;\n !manualPropTypeCallCache[cacheKey] && manualPropTypeWarningCount < 3 && (printWarning(\"You are manually calling a React.PropTypes validation function for the `\" + propFullName + \"` prop on `\" + componentName + \"`. This is deprecated and will throw in the standalone `prop-types` package. You may be seeing this warning due to a third-party PropTypes library. See https://fb.me/react-warning-dont-call-proptypes for details.\"), \n manualPropTypeCallCache[cacheKey] = !0, manualPropTypeWarningCount++);\n }\n }\n return null == props[propName] ? isRequired ? new PropTypeError(null === props[propName] ? \"The \" + location + \" `\" + propFullName + \"` is marked as required in `\" + componentName + \"`, but its value is `null`.\" : \"The \" + location + \" `\" + propFullName + \"` is marked as required in `\" + componentName + \"`, but its value is `undefined`.\") : null : validate(props, propName, componentName, location, propFullName);\n }\n var manualPropTypeCallCache = {}, manualPropTypeWarningCount = 0, chainedCheckType = checkType.bind(null, !1);\n return chainedCheckType.isRequired = checkType.bind(null, !0), chainedCheckType;\n }\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n if (getPropType(propValue) !== expectedType) return new PropTypeError(\"Invalid \" + location + \" `\" + propFullName + \"` of type `\" + getPreciseType(propValue) + \"` supplied to `\" + componentName + \"`, expected `\" + expectedType + \"`.\");\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (\"function\" != typeof typeChecker) return new PropTypeError(\"Property `\" + propFullName + \"` of component `\" + componentName + \"` has invalid PropType notation inside arrayOf.\");\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n return new PropTypeError(\"Invalid \" + location + \" `\" + propFullName + \"` of type `\" + getPropType(propValue) + \"` supplied to `\" + componentName + \"`, expected an array.\");\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + \"[\" + i + \"]\", ReactPropTypesSecret);\n if (error instanceof Error) return error;\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n return new PropTypeError(\"Invalid \" + location + \" `\" + propFullName + \"` of type `\" + getClassName(props[propName]) + \"` supplied to `\" + componentName + \"`, expected instance of `\" + expectedClassName + \"`.\");\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n function createEnumTypeChecker(expectedValues) {\n function validate(props, propName, componentName, location, propFullName) {\n for (var propValue = props[propName], i = 0; i < expectedValues.length; i++) if (is(propValue, expectedValues[i])) return null;\n var valuesString = JSON.stringify(expectedValues, function(key, value) {\n return \"symbol\" === getPreciseType(value) ? String(value) : value;\n });\n return new PropTypeError(\"Invalid \" + location + \" `\" + propFullName + \"` of value `\" + String(propValue) + \"` supplied to `\" + componentName + \"`, expected one of \" + valuesString + \".\");\n }\n return Array.isArray(expectedValues) ? createChainableTypeChecker(validate) : (printWarning(arguments.length > 1 ? \"Invalid arguments supplied to oneOf, expected an array, got \" + arguments.length + \" arguments. A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).\" : \"Invalid argument supplied to oneOf, expected an array.\"), \n emptyFunctionThatReturnsNull);\n }\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (\"function\" != typeof typeChecker) return new PropTypeError(\"Property `\" + propFullName + \"` of component `\" + componentName + \"` has invalid PropType notation inside objectOf.\");\n var propValue = props[propName], propType = getPropType(propValue);\n if (\"object\" !== propType) return new PropTypeError(\"Invalid \" + location + \" `\" + propFullName + \"` of type `\" + propType + \"` supplied to `\" + componentName + \"`, expected an object.\");\n for (var key in propValue) if (has(propValue, key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + \".\" + key, ReactPropTypesSecret);\n if (error instanceof Error) return error;\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n function validate(props, propName, componentName, location, propFullName) {\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n if (null == (0, arrayOfTypeCheckers[i])(props, propName, componentName, location, propFullName, ReactPropTypesSecret)) return null;\n }\n return new PropTypeError(\"Invalid \" + location + \" `\" + propFullName + \"` supplied to `\" + componentName + \"`.\");\n }\n if (!Array.isArray(arrayOfTypeCheckers)) return printWarning(\"Invalid argument supplied to oneOfType, expected an instance of array.\"), \n emptyFunctionThatReturnsNull;\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (\"function\" != typeof checker) return printWarning(\"Invalid argument supplied to oneOfType. Expected an array of check functions, but received \" + getPostfixForTypeWarning(checker) + \" at index \" + i + \".\"), \n emptyFunctionThatReturnsNull;\n }\n return createChainableTypeChecker(validate);\n }\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName], propType = getPropType(propValue);\n if (\"object\" !== propType) return new PropTypeError(\"Invalid \" + location + \" `\" + propFullName + \"` of type `\" + propType + \"` supplied to `\" + componentName + \"`, expected `object`.\");\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (checker) {\n var error = checker(propValue, key, componentName, location, propFullName + \".\" + key, ReactPropTypesSecret);\n if (error) return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName], propType = getPropType(propValue);\n if (\"object\" !== propType) return new PropTypeError(\"Invalid \" + location + \" `\" + propFullName + \"` of type `\" + propType + \"` supplied to `\" + componentName + \"`, expected `object`.\");\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (!checker) return new PropTypeError(\"Invalid \" + location + \" `\" + propFullName + \"` key `\" + key + \"` supplied to `\" + componentName + \"`.\\nBad object: \" + JSON.stringify(props[propName], null, \" \") + \"\\nValid keys: \" + JSON.stringify(Object.keys(shapeTypes), null, \" \"));\n var error = checker(propValue, key, componentName, location, propFullName + \".\" + key, ReactPropTypesSecret);\n if (error) return error;\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n function isNode(propValue) {\n switch (typeof propValue) {\n case \"number\":\n case \"string\":\n case \"undefined\":\n return !0;\n\n case \"boolean\":\n return !propValue;\n\n case \"object\":\n if (Array.isArray(propValue)) return propValue.every(isNode);\n if (null === propValue || isValidElement(propValue)) return !0;\n var iteratorFn = getIteratorFn(propValue);\n if (!iteratorFn) return !1;\n var step, iterator = iteratorFn.call(propValue);\n if (iteratorFn !== propValue.entries) {\n for (;!(step = iterator.next()).done; ) if (!isNode(step.value)) return !1;\n } else for (;!(step = iterator.next()).done; ) {\n var entry = step.value;\n if (entry && !isNode(entry[1])) return !1;\n }\n return !0;\n\n default:\n return !1;\n }\n }\n function isSymbol(propType, propValue) {\n return \"symbol\" === propType || !!propValue && (\"Symbol\" === propValue[\"@@toStringTag\"] || \"function\" == typeof Symbol && propValue instanceof Symbol);\n }\n function getPropType(propValue) {\n var propType = typeof propValue;\n return Array.isArray(propValue) ? \"array\" : propValue instanceof RegExp ? \"object\" : isSymbol(propType, propValue) ? \"symbol\" : propType;\n }\n function getPreciseType(propValue) {\n if (void 0 === propValue || null === propValue) return \"\" + propValue;\n var propType = getPropType(propValue);\n if (\"object\" === propType) {\n if (propValue instanceof Date) return \"date\";\n if (propValue instanceof RegExp) return \"regexp\";\n }\n return propType;\n }\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case \"array\":\n case \"object\":\n return \"an \" + type;\n\n case \"boolean\":\n case \"date\":\n case \"regexp\":\n return \"a \" + type;\n\n default:\n return type;\n }\n }\n function getClassName(propValue) {\n return propValue.constructor && propValue.constructor.name ? propValue.constructor.name : ANONYMOUS;\n }\n var ITERATOR_SYMBOL = \"function\" == typeof Symbol && Symbol.iterator, FAUX_ITERATOR_SYMBOL = \"@@iterator\", ANONYMOUS = \"<>\", ReactPropTypes = {\n array: createPrimitiveTypeChecker(\"array\"),\n bool: createPrimitiveTypeChecker(\"boolean\"),\n func: createPrimitiveTypeChecker(\"function\"),\n number: createPrimitiveTypeChecker(\"number\"),\n object: createPrimitiveTypeChecker(\"object\"),\n string: createPrimitiveTypeChecker(\"string\"),\n symbol: createPrimitiveTypeChecker(\"symbol\"),\n any: function() {\n return createChainableTypeChecker(emptyFunctionThatReturnsNull);\n }(),\n arrayOf: createArrayOfTypeChecker,\n element: function() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n return new PropTypeError(\"Invalid \" + location + \" `\" + propFullName + \"` of type `\" + getPropType(propValue) + \"` supplied to `\" + componentName + \"`, expected a single ReactElement.\");\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }(),\n elementType: function() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!ReactIs.isValidElementType(propValue)) {\n return new PropTypeError(\"Invalid \" + location + \" `\" + propFullName + \"` of type `\" + getPropType(propValue) + \"` supplied to `\" + componentName + \"`, expected a single ReactElement type.\");\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }(),\n instanceOf: createInstanceTypeChecker,\n node: function() {\n function validate(props, propName, componentName, location, propFullName) {\n return isNode(props[propName]) ? null : new PropTypeError(\"Invalid \" + location + \" `\" + propFullName + \"` supplied to `\" + componentName + \"`, expected a ReactNode.\");\n }\n return createChainableTypeChecker(validate);\n }(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker\n };\n return PropTypeError.prototype = Error.prototype, ReactPropTypes.checkPropTypes = checkPropTypes, \n ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache, ReactPropTypes.PropTypes = ReactPropTypes, \n ReactPropTypes;\n };\n }, function(module, exports, __webpack_require__) {\n \"use strict\";\n function toObject(val) {\n if (null === val || void 0 === val) throw new TypeError(\"Object.assign cannot be called with null or undefined\");\n return Object(val);\n }\n /*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n var getOwnPropertySymbols = Object.getOwnPropertySymbols, hasOwnProperty = Object.prototype.hasOwnProperty, propIsEnumerable = Object.prototype.propertyIsEnumerable;\n module.exports = function() {\n try {\n if (!Object.assign) return !1;\n var test1 = new String(\"abc\");\n if (test1[5] = \"de\", \"5\" === Object.getOwnPropertyNames(test1)[0]) return !1;\n for (var test2 = {}, i = 0; i < 10; i++) test2[\"_\" + String.fromCharCode(i)] = i;\n if (\"0123456789\" !== Object.getOwnPropertyNames(test2).map(function(n) {\n return test2[n];\n }).join(\"\")) return !1;\n var test3 = {};\n return \"abcdefghijklmnopqrst\".split(\"\").forEach(function(letter) {\n test3[letter] = letter;\n }), \"abcdefghijklmnopqrst\" === Object.keys(Object.assign({}, test3)).join(\"\");\n } catch (err) {\n return !1;\n }\n }() ? Object.assign : function(target, source) {\n for (var from, symbols, to = toObject(target), s = 1; s < arguments.length; s++) {\n from = Object(arguments[s]);\n for (var key in from) hasOwnProperty.call(from, key) && (to[key] = from[key]);\n if (getOwnPropertySymbols) {\n symbols = getOwnPropertySymbols(from);\n for (var i = 0; i < symbols.length; i++) propIsEnumerable.call(from, symbols[i]) && (to[symbols[i]] = from[symbols[i]]);\n }\n }\n return to;\n };\n }, function(module, exports, __webpack_require__) {\n \"use strict\";\n function checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n for (var typeSpecName in typeSpecs) if (has(typeSpecs, typeSpecName)) {\n var error;\n try {\n if (\"function\" != typeof typeSpecs[typeSpecName]) {\n var err = Error((componentName || \"React class\") + \": \" + location + \" type `\" + typeSpecName + \"` is invalid; it must be a function, usually from the `prop-types` package, but received `\" + typeof typeSpecs[typeSpecName] + \"`.\");\n throw err.name = \"Invariant Violation\", err;\n }\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n if (!error || error instanceof Error || printWarning((componentName || \"React class\") + \": type specification of \" + location + \" `\" + typeSpecName + \"` is invalid; the type checker function must return `null` or an `Error` but returned a \" + typeof error + \". You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).\"), \n error instanceof Error && !(error.message in loggedTypeFailures)) {\n loggedTypeFailures[error.message] = !0;\n var stack = getStack ? getStack() : \"\";\n printWarning(\"Failed \" + location + \" type: \" + error.message + (null != stack ? stack : \"\"));\n }\n }\n }\n var printWarning = function() {}, ReactPropTypesSecret = __webpack_require__(4), loggedTypeFailures = {}, has = Function.call.bind(Object.prototype.hasOwnProperty);\n printWarning = function(text) {\n var message = \"Warning: \" + text;\n \"undefined\" != typeof console && console.error(message);\n try {\n throw new Error(message);\n } catch (x) {}\n }, checkPropTypes.resetWarningCache = function() {\n loggedTypeFailures = {};\n }, module.exports = checkPropTypes;\n }, function(module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n function _objectWithoutProperties(source, excluded) {\n if (null == source) return {};\n var key, i, target = _objectWithoutPropertiesLoose(source, excluded);\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) key = sourceSymbolKeys[i], excluded.indexOf(key) >= 0 || Object.prototype.propertyIsEnumerable.call(source, key) && (target[key] = source[key]);\n }\n return target;\n }\n function _objectWithoutPropertiesLoose(source, excluded) {\n if (null == source) return {};\n var key, i, target = {}, sourceKeys = Object.keys(source);\n for (i = 0; i < sourceKeys.length; i++) key = sourceKeys[i], excluded.indexOf(key) >= 0 || (target[key] = source[key]);\n return target;\n }\n function MediaQuery(_ref) {\n var children = _ref.children, device = _ref.device, onChange = _ref.onChange, settings = _objectWithoutProperties(_ref, [ \"children\", \"device\", \"onChange\" ]), matches = Object(__WEBPACK_IMPORTED_MODULE_0__useMediaQuery__.a)(settings, device, onChange);\n return \"function\" == typeof children ? children(matches) : matches ? children : null;\n }\n __webpack_exports__.a = MediaQuery;\n var __WEBPACK_IMPORTED_MODULE_0__useMediaQuery__ = __webpack_require__(0);\n } ]);\n});\n//# sourceMappingURL=react-responsive.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.NextArrow = exports.PrevArrow = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _innerSliderUtils = require(\"./utils/innerSliderUtils\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nvar PrevArrow =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n _inherits(PrevArrow, _React$PureComponent);\n\n function PrevArrow() {\n _classCallCheck(this, PrevArrow);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(PrevArrow).apply(this, arguments));\n }\n\n _createClass(PrevArrow, [{\n key: \"clickHandler\",\n value: function clickHandler(options, e) {\n if (e) {\n e.preventDefault();\n }\n\n this.props.clickHandler(options, e);\n }\n }, {\n key: \"render\",\n value: function render() {\n var prevClasses = {\n \"slick-arrow\": true,\n \"slick-prev\": true\n };\n var prevHandler = this.clickHandler.bind(this, {\n message: \"previous\"\n });\n\n if (!this.props.infinite && (this.props.currentSlide === 0 || this.props.slideCount <= this.props.slidesToShow)) {\n prevClasses[\"slick-disabled\"] = true;\n prevHandler = null;\n }\n\n var prevArrowProps = {\n key: \"0\",\n \"data-role\": \"none\",\n className: (0, _classnames[\"default\"])(prevClasses),\n style: {\n display: \"block\"\n },\n onClick: prevHandler\n };\n var customProps = {\n currentSlide: this.props.currentSlide,\n slideCount: this.props.slideCount\n };\n var prevArrow;\n\n if (this.props.prevArrow) {\n prevArrow = _react[\"default\"].cloneElement(this.props.prevArrow, _objectSpread({}, prevArrowProps, {}, customProps));\n } else {\n prevArrow = _react[\"default\"].createElement(\"button\", _extends({\n key: \"0\",\n type: \"button\"\n }, prevArrowProps), \" \", \"Previous\");\n }\n\n return prevArrow;\n }\n }]);\n\n return PrevArrow;\n}(_react[\"default\"].PureComponent);\n\nexports.PrevArrow = PrevArrow;\n\nvar NextArrow =\n/*#__PURE__*/\nfunction (_React$PureComponent2) {\n _inherits(NextArrow, _React$PureComponent2);\n\n function NextArrow() {\n _classCallCheck(this, NextArrow);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(NextArrow).apply(this, arguments));\n }\n\n _createClass(NextArrow, [{\n key: \"clickHandler\",\n value: function clickHandler(options, e) {\n if (e) {\n e.preventDefault();\n }\n\n this.props.clickHandler(options, e);\n }\n }, {\n key: \"render\",\n value: function render() {\n var nextClasses = {\n \"slick-arrow\": true,\n \"slick-next\": true\n };\n var nextHandler = this.clickHandler.bind(this, {\n message: \"next\"\n });\n\n if (!(0, _innerSliderUtils.canGoNext)(this.props)) {\n nextClasses[\"slick-disabled\"] = true;\n nextHandler = null;\n }\n\n var nextArrowProps = {\n key: \"1\",\n \"data-role\": \"none\",\n className: (0, _classnames[\"default\"])(nextClasses),\n style: {\n display: \"block\"\n },\n onClick: nextHandler\n };\n var customProps = {\n currentSlide: this.props.currentSlide,\n slideCount: this.props.slideCount\n };\n var nextArrow;\n\n if (this.props.nextArrow) {\n nextArrow = _react[\"default\"].cloneElement(this.props.nextArrow, _objectSpread({}, nextArrowProps, {}, customProps));\n } else {\n nextArrow = _react[\"default\"].createElement(\"button\", _extends({\n key: \"1\",\n type: \"button\"\n }, nextArrowProps), \" \", \"Next\");\n }\n\n return nextArrow;\n }\n }]);\n\n return NextArrow;\n}(_react[\"default\"].PureComponent);\n\nexports.NextArrow = NextArrow;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar defaultProps = {\n accessibility: true,\n adaptiveHeight: false,\n afterChange: null,\n appendDots: function appendDots(dots) {\n return _react[\"default\"].createElement(\"ul\", {\n style: {\n display: \"block\"\n }\n }, dots);\n },\n arrows: true,\n autoplay: false,\n autoplaySpeed: 3000,\n beforeChange: null,\n centerMode: false,\n centerPadding: \"50px\",\n className: \"\",\n cssEase: \"ease\",\n customPaging: function customPaging(i) {\n return _react[\"default\"].createElement(\"button\", null, i + 1);\n },\n dots: false,\n dotsClass: \"slick-dots\",\n draggable: true,\n easing: \"linear\",\n edgeFriction: 0.35,\n fade: false,\n focusOnSelect: false,\n infinite: true,\n initialSlide: 0,\n lazyLoad: null,\n nextArrow: null,\n onEdge: null,\n onInit: null,\n onLazyLoadError: null,\n onReInit: null,\n pauseOnDotsHover: false,\n pauseOnFocus: false,\n pauseOnHover: true,\n prevArrow: null,\n responsive: null,\n rows: 1,\n rtl: false,\n slide: \"div\",\n slidesPerRow: 1,\n slidesToScroll: 1,\n slidesToShow: 1,\n speed: 500,\n swipe: true,\n swipeEvent: null,\n swipeToSlide: false,\n touchMove: true,\n touchThreshold: 5,\n useCSS: true,\n useTransform: true,\n variableWidth: false,\n vertical: false,\n waitForAnimate: true\n};\nvar _default = defaultProps;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Dots = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nvar getDotCount = function getDotCount(spec) {\n var dots;\n\n if (spec.infinite) {\n dots = Math.ceil(spec.slideCount / spec.slidesToScroll);\n } else {\n dots = Math.ceil((spec.slideCount - spec.slidesToShow) / spec.slidesToScroll) + 1;\n }\n\n return dots;\n};\n\nvar Dots =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n _inherits(Dots, _React$PureComponent);\n\n function Dots() {\n _classCallCheck(this, Dots);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(Dots).apply(this, arguments));\n }\n\n _createClass(Dots, [{\n key: \"clickHandler\",\n value: function clickHandler(options, e) {\n // In Autoplay the focus stays on clicked button even after transition\n // to next slide. That only goes away by click somewhere outside\n e.preventDefault();\n this.props.clickHandler(options);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this = this;\n\n var dotCount = getDotCount({\n slideCount: this.props.slideCount,\n slidesToScroll: this.props.slidesToScroll,\n slidesToShow: this.props.slidesToShow,\n infinite: this.props.infinite\n }); // Apply join & split to Array to pre-fill it for IE8\n //\n // Credit: http://stackoverflow.com/a/13735425/1849458\n\n var _this$props = this.props,\n onMouseEnter = _this$props.onMouseEnter,\n onMouseOver = _this$props.onMouseOver,\n onMouseLeave = _this$props.onMouseLeave;\n var mouseEvents = {\n onMouseEnter: onMouseEnter,\n onMouseOver: onMouseOver,\n onMouseLeave: onMouseLeave\n };\n var dots = Array.apply(null, Array(dotCount + 1).join(\"0\").split(\"\")).map(function (x, i) {\n var leftBound = i * _this.props.slidesToScroll;\n var rightBound = i * _this.props.slidesToScroll + (_this.props.slidesToScroll - 1);\n var className = (0, _classnames[\"default\"])({\n \"slick-active\": _this.props.currentSlide >= leftBound && _this.props.currentSlide <= rightBound\n });\n var dotOptions = {\n message: \"dots\",\n index: i,\n slidesToScroll: _this.props.slidesToScroll,\n currentSlide: _this.props.currentSlide\n };\n\n var onClick = _this.clickHandler.bind(_this, dotOptions);\n\n return _react[\"default\"].createElement(\"li\", {\n key: i,\n className: className\n }, _react[\"default\"].cloneElement(_this.props.customPaging(i), {\n onClick: onClick\n }));\n });\n return _react[\"default\"].cloneElement(this.props.appendDots(dots), _objectSpread({\n className: this.props.dotsClass\n }, mouseEvents));\n }\n }]);\n\n return Dots;\n}(_react[\"default\"].PureComponent);\n\nexports.Dots = Dots;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _slider = _interopRequireDefault(require(\"./slider\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _default = _slider[\"default\"];\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nvar initialState = {\n animating: false,\n autoplaying: null,\n currentDirection: 0,\n currentLeft: null,\n currentSlide: 0,\n direction: 1,\n dragging: false,\n edgeDragged: false,\n initialized: false,\n lazyLoadedList: [],\n listHeight: null,\n listWidth: null,\n scrolling: false,\n slideCount: null,\n slideHeight: null,\n slideWidth: null,\n swipeLeft: null,\n swiped: false,\n // used by swipeEvent. differentites between touch and swipe.\n swiping: false,\n touchObject: {\n startX: 0,\n startY: 0,\n curX: 0,\n curY: 0\n },\n trackStyle: {},\n trackWidth: 0\n};\nvar _default = initialState;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.InnerSlider = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reactDom = _interopRequireDefault(require(\"react-dom\"));\n\nvar _initialState = _interopRequireDefault(require(\"./initial-state\"));\n\nvar _lodash = _interopRequireDefault(require(\"lodash.debounce\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _innerSliderUtils = require(\"./utils/innerSliderUtils\");\n\nvar _track = require(\"./track\");\n\nvar _dots = require(\"./dots\");\n\nvar _arrows = require(\"./arrows\");\n\nvar _resizeObserverPolyfill = _interopRequireDefault(require(\"resize-observer-polyfill\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar InnerSlider =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inherits(InnerSlider, _React$Component);\n\n function InnerSlider(props) {\n var _this;\n\n _classCallCheck(this, InnerSlider);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(InnerSlider).call(this, props));\n\n _defineProperty(_assertThisInitialized(_this), \"listRefHandler\", function (ref) {\n return _this.list = ref;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"trackRefHandler\", function (ref) {\n return _this.track = ref;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"adaptHeight\", function () {\n if (_this.props.adaptiveHeight && _this.list) {\n var elem = _this.list.querySelector(\"[data-index=\\\"\".concat(_this.state.currentSlide, \"\\\"]\"));\n\n _this.list.style.height = (0, _innerSliderUtils.getHeight)(elem) + \"px\";\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"UNSAFE_componentWillMount\", function () {\n _this.ssrInit();\n\n _this.props.onInit && _this.props.onInit();\n\n if (_this.props.lazyLoad) {\n var slidesToLoad = (0, _innerSliderUtils.getOnDemandLazySlides)(_objectSpread({}, _this.props, {}, _this.state));\n\n if (slidesToLoad.length > 0) {\n _this.setState(function (prevState) {\n return {\n lazyLoadedList: prevState.lazyLoadedList.concat(slidesToLoad)\n };\n });\n\n if (_this.props.onLazyLoad) {\n _this.props.onLazyLoad(slidesToLoad);\n }\n }\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"componentDidMount\", function () {\n var spec = _objectSpread({\n listRef: _this.list,\n trackRef: _this.track\n }, _this.props);\n\n _this.updateState(spec, true, function () {\n _this.adaptHeight();\n\n _this.props.autoplay && _this.autoPlay(\"update\");\n });\n\n if (_this.props.lazyLoad === \"progressive\") {\n _this.lazyLoadTimer = setInterval(_this.progressiveLazyLoad, 1000);\n }\n\n _this.ro = new _resizeObserverPolyfill[\"default\"](function () {\n if (_this.state.animating) {\n _this.onWindowResized(false); // don't set trackStyle hence don't break animation\n\n\n _this.callbackTimers.push(setTimeout(function () {\n return _this.onWindowResized();\n }, _this.props.speed));\n } else {\n _this.onWindowResized();\n }\n });\n\n _this.ro.observe(_this.list);\n\n Array.prototype.forEach.call(document.querySelectorAll(\".slick-slide\"), function (slide) {\n slide.onfocus = _this.props.pauseOnFocus ? _this.onSlideFocus : null;\n slide.onblur = _this.props.pauseOnFocus ? _this.onSlideBlur : null;\n });\n\n if (window.addEventListener) {\n window.addEventListener(\"resize\", _this.onWindowResized);\n } else {\n window.attachEvent(\"onresize\", _this.onWindowResized);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"componentWillUnmount\", function () {\n if (_this.animationEndCallback) {\n clearTimeout(_this.animationEndCallback);\n }\n\n if (_this.lazyLoadTimer) {\n clearInterval(_this.lazyLoadTimer);\n }\n\n if (_this.callbackTimers.length) {\n _this.callbackTimers.forEach(function (timer) {\n return clearTimeout(timer);\n });\n\n _this.callbackTimers = [];\n }\n\n if (window.addEventListener) {\n window.removeEventListener(\"resize\", _this.onWindowResized);\n } else {\n window.detachEvent(\"onresize\", _this.onWindowResized);\n }\n\n if (_this.autoplayTimer) {\n clearInterval(_this.autoplayTimer);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"UNSAFE_componentWillReceiveProps\", function (nextProps) {\n var spec = _objectSpread({\n listRef: _this.list,\n trackRef: _this.track\n }, nextProps, {}, _this.state);\n\n var setTrackStyle = false;\n\n for (var _i = 0, _Object$keys = Object.keys(_this.props); _i < _Object$keys.length; _i++) {\n var key = _Object$keys[_i];\n\n if (!nextProps.hasOwnProperty(key)) {\n setTrackStyle = true;\n break;\n }\n\n if (_typeof(nextProps[key]) === \"object\" || typeof nextProps[key] === \"function\") {\n continue;\n }\n\n if (nextProps[key] !== _this.props[key]) {\n setTrackStyle = true;\n break;\n }\n }\n\n _this.updateState(spec, setTrackStyle, function () {\n if (_this.state.currentSlide >= _react[\"default\"].Children.count(nextProps.children)) {\n _this.changeSlide({\n message: \"index\",\n index: _react[\"default\"].Children.count(nextProps.children) - nextProps.slidesToShow,\n currentSlide: _this.state.currentSlide\n });\n }\n\n if (nextProps.autoplay) {\n _this.autoPlay(\"update\");\n } else {\n _this.pause(\"paused\");\n }\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"componentDidUpdate\", function () {\n _this.checkImagesLoad();\n\n _this.props.onReInit && _this.props.onReInit();\n\n if (_this.props.lazyLoad) {\n var slidesToLoad = (0, _innerSliderUtils.getOnDemandLazySlides)(_objectSpread({}, _this.props, {}, _this.state));\n\n if (slidesToLoad.length > 0) {\n _this.setState(function (prevState) {\n return {\n lazyLoadedList: prevState.lazyLoadedList.concat(slidesToLoad)\n };\n });\n\n if (_this.props.onLazyLoad) {\n _this.props.onLazyLoad(slidesToLoad);\n }\n }\n } // if (this.props.onLazyLoad) {\n // this.props.onLazyLoad([leftMostSlide])\n // }\n\n\n _this.adaptHeight();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onWindowResized\", function (setTrackStyle) {\n if (_this.debouncedResize) _this.debouncedResize.cancel();\n _this.debouncedResize = (0, _lodash[\"default\"])(function () {\n return _this.resizeWindow(setTrackStyle);\n }, 50);\n\n _this.debouncedResize();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"resizeWindow\", function () {\n var setTrackStyle = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n if (!_reactDom[\"default\"].findDOMNode(_this.track)) return;\n\n var spec = _objectSpread({\n listRef: _this.list,\n trackRef: _this.track\n }, _this.props, {}, _this.state);\n\n _this.updateState(spec, setTrackStyle, function () {\n if (_this.props.autoplay) _this.autoPlay(\"update\");else _this.pause(\"paused\");\n }); // animating state should be cleared while resizing, otherwise autoplay stops working\n\n\n _this.setState({\n animating: false\n });\n\n clearTimeout(_this.animationEndCallback);\n delete _this.animationEndCallback;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"updateState\", function (spec, setTrackStyle, callback) {\n var updatedState = (0, _innerSliderUtils.initializedState)(spec);\n spec = _objectSpread({}, spec, {}, updatedState, {\n slideIndex: updatedState.currentSlide\n });\n var targetLeft = (0, _innerSliderUtils.getTrackLeft)(spec);\n spec = _objectSpread({}, spec, {\n left: targetLeft\n });\n var trackStyle = (0, _innerSliderUtils.getTrackCSS)(spec);\n\n if (setTrackStyle || _react[\"default\"].Children.count(_this.props.children) !== _react[\"default\"].Children.count(spec.children)) {\n updatedState[\"trackStyle\"] = trackStyle;\n }\n\n _this.setState(updatedState, callback);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"ssrInit\", function () {\n if (_this.props.variableWidth) {\n var _trackWidth = 0,\n _trackLeft = 0;\n var childrenWidths = [];\n var preClones = (0, _innerSliderUtils.getPreClones)(_objectSpread({}, _this.props, {}, _this.state, {\n slideCount: _this.props.children.length\n }));\n var postClones = (0, _innerSliderUtils.getPostClones)(_objectSpread({}, _this.props, {}, _this.state, {\n slideCount: _this.props.children.length\n }));\n\n _this.props.children.forEach(function (child) {\n childrenWidths.push(child.props.style.width);\n _trackWidth += child.props.style.width;\n });\n\n for (var i = 0; i < preClones; i++) {\n _trackLeft += childrenWidths[childrenWidths.length - 1 - i];\n _trackWidth += childrenWidths[childrenWidths.length - 1 - i];\n }\n\n for (var _i2 = 0; _i2 < postClones; _i2++) {\n _trackWidth += childrenWidths[_i2];\n }\n\n for (var _i3 = 0; _i3 < _this.state.currentSlide; _i3++) {\n _trackLeft += childrenWidths[_i3];\n }\n\n var _trackStyle = {\n width: _trackWidth + \"px\",\n left: -_trackLeft + \"px\"\n };\n\n if (_this.props.centerMode) {\n var currentWidth = \"\".concat(childrenWidths[_this.state.currentSlide], \"px\");\n _trackStyle.left = \"calc(\".concat(_trackStyle.left, \" + (100% - \").concat(currentWidth, \") / 2 ) \");\n }\n\n _this.setState({\n trackStyle: _trackStyle\n });\n\n return;\n }\n\n var childrenCount = _react[\"default\"].Children.count(_this.props.children);\n\n var spec = _objectSpread({}, _this.props, {}, _this.state, {\n slideCount: childrenCount\n });\n\n var slideCount = (0, _innerSliderUtils.getPreClones)(spec) + (0, _innerSliderUtils.getPostClones)(spec) + childrenCount;\n var trackWidth = 100 / _this.props.slidesToShow * slideCount;\n var slideWidth = 100 / slideCount;\n var trackLeft = -slideWidth * ((0, _innerSliderUtils.getPreClones)(spec) + _this.state.currentSlide) * trackWidth / 100;\n\n if (_this.props.centerMode) {\n trackLeft += (100 - slideWidth * trackWidth / 100) / 2;\n }\n\n var trackStyle = {\n width: trackWidth + \"%\",\n left: trackLeft + \"%\"\n };\n\n _this.setState({\n slideWidth: slideWidth + \"%\",\n trackStyle: trackStyle\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"checkImagesLoad\", function () {\n var images = document.querySelectorAll(\".slick-slide img\");\n var imagesCount = images.length,\n loadedCount = 0;\n Array.prototype.forEach.call(images, function (image) {\n var handler = function handler() {\n return ++loadedCount && loadedCount >= imagesCount && _this.onWindowResized();\n };\n\n if (!image.onclick) {\n image.onclick = function () {\n return image.parentNode.focus();\n };\n } else {\n var prevClickHandler = image.onclick;\n\n image.onclick = function () {\n prevClickHandler();\n image.parentNode.focus();\n };\n }\n\n if (!image.onload) {\n if (_this.props.lazyLoad) {\n image.onload = function () {\n _this.adaptHeight();\n\n _this.callbackTimers.push(setTimeout(_this.onWindowResized, _this.props.speed));\n };\n } else {\n image.onload = handler;\n\n image.onerror = function () {\n handler();\n _this.props.onLazyLoadError && _this.props.onLazyLoadError();\n };\n }\n }\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"progressiveLazyLoad\", function () {\n var slidesToLoad = [];\n\n var spec = _objectSpread({}, _this.props, {}, _this.state);\n\n for (var index = _this.state.currentSlide; index < _this.state.slideCount + (0, _innerSliderUtils.getPostClones)(spec); index++) {\n if (_this.state.lazyLoadedList.indexOf(index) < 0) {\n slidesToLoad.push(index);\n break;\n }\n }\n\n for (var _index = _this.state.currentSlide - 1; _index >= -(0, _innerSliderUtils.getPreClones)(spec); _index--) {\n if (_this.state.lazyLoadedList.indexOf(_index) < 0) {\n slidesToLoad.push(_index);\n break;\n }\n }\n\n if (slidesToLoad.length > 0) {\n _this.setState(function (state) {\n return {\n lazyLoadedList: state.lazyLoadedList.concat(slidesToLoad)\n };\n });\n\n if (_this.props.onLazyLoad) {\n _this.props.onLazyLoad(slidesToLoad);\n }\n } else {\n if (_this.lazyLoadTimer) {\n clearInterval(_this.lazyLoadTimer);\n delete _this.lazyLoadTimer;\n }\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slideHandler\", function (index) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var _this$props = _this.props,\n asNavFor = _this$props.asNavFor,\n beforeChange = _this$props.beforeChange,\n onLazyLoad = _this$props.onLazyLoad,\n speed = _this$props.speed,\n afterChange = _this$props.afterChange; // capture currentslide before state is updated\n\n var currentSlide = _this.state.currentSlide;\n\n var _slideHandler = (0, _innerSliderUtils.slideHandler)(_objectSpread({\n index: index\n }, _this.props, {}, _this.state, {\n trackRef: _this.track,\n useCSS: _this.props.useCSS && !dontAnimate\n })),\n state = _slideHandler.state,\n nextState = _slideHandler.nextState;\n\n if (!state) return;\n beforeChange && beforeChange(currentSlide, state.currentSlide);\n var slidesToLoad = state.lazyLoadedList.filter(function (value) {\n return _this.state.lazyLoadedList.indexOf(value) < 0;\n });\n onLazyLoad && slidesToLoad.length > 0 && onLazyLoad(slidesToLoad);\n\n _this.setState(state, function () {\n asNavFor && asNavFor.innerSlider.slideHandler(index);\n if (!nextState) return;\n _this.animationEndCallback = setTimeout(function () {\n var animating = nextState.animating,\n firstBatch = _objectWithoutProperties(nextState, [\"animating\"]);\n\n _this.setState(firstBatch, function () {\n _this.callbackTimers.push(setTimeout(function () {\n return _this.setState({\n animating: animating\n });\n }, 10));\n\n afterChange && afterChange(state.currentSlide);\n delete _this.animationEndCallback;\n });\n }, speed);\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"changeSlide\", function (options) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var spec = _objectSpread({}, _this.props, {}, _this.state);\n\n var targetSlide = (0, _innerSliderUtils.changeSlide)(spec, options);\n if (targetSlide !== 0 && !targetSlide) return;\n\n if (dontAnimate === true) {\n _this.slideHandler(targetSlide, dontAnimate);\n } else {\n _this.slideHandler(targetSlide);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"clickHandler\", function (e) {\n if (_this.clickable === false) {\n e.stopPropagation();\n e.preventDefault();\n }\n\n _this.clickable = true;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"keyHandler\", function (e) {\n var dir = (0, _innerSliderUtils.keyHandler)(e, _this.props.accessibility, _this.props.rtl);\n dir !== \"\" && _this.changeSlide({\n message: dir\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"selectHandler\", function (options) {\n _this.changeSlide(options);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"disableBodyScroll\", function () {\n var preventDefault = function preventDefault(e) {\n e = e || window.event;\n if (e.preventDefault) e.preventDefault();\n e.returnValue = false;\n };\n\n window.ontouchmove = preventDefault;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"enableBodyScroll\", function () {\n window.ontouchmove = null;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"swipeStart\", function (e) {\n if (_this.props.verticalSwiping) {\n _this.disableBodyScroll();\n }\n\n var state = (0, _innerSliderUtils.swipeStart)(e, _this.props.swipe, _this.props.draggable);\n state !== \"\" && _this.setState(state);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"swipeMove\", function (e) {\n var state = (0, _innerSliderUtils.swipeMove)(e, _objectSpread({}, _this.props, {}, _this.state, {\n trackRef: _this.track,\n listRef: _this.list,\n slideIndex: _this.state.currentSlide\n }));\n if (!state) return;\n\n if (state[\"swiping\"]) {\n _this.clickable = false;\n }\n\n _this.setState(state);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"swipeEnd\", function (e) {\n var state = (0, _innerSliderUtils.swipeEnd)(e, _objectSpread({}, _this.props, {}, _this.state, {\n trackRef: _this.track,\n listRef: _this.list,\n slideIndex: _this.state.currentSlide\n }));\n if (!state) return;\n var triggerSlideHandler = state[\"triggerSlideHandler\"];\n delete state[\"triggerSlideHandler\"];\n\n _this.setState(state);\n\n if (triggerSlideHandler === undefined) return;\n\n _this.slideHandler(triggerSlideHandler);\n\n if (_this.props.verticalSwiping) {\n _this.enableBodyScroll();\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickPrev\", function () {\n // this and fellow methods are wrapped in setTimeout\n // to make sure initialize setState has happened before\n // any of such methods are called\n _this.callbackTimers.push(setTimeout(function () {\n return _this.changeSlide({\n message: \"previous\"\n });\n }, 0));\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickNext\", function () {\n _this.callbackTimers.push(setTimeout(function () {\n return _this.changeSlide({\n message: \"next\"\n });\n }, 0));\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickGoTo\", function (slide) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n slide = Number(slide);\n if (isNaN(slide)) return \"\";\n\n _this.callbackTimers.push(setTimeout(function () {\n return _this.changeSlide({\n message: \"index\",\n index: slide,\n currentSlide: _this.state.currentSlide\n }, dontAnimate);\n }, 0));\n });\n\n _defineProperty(_assertThisInitialized(_this), \"play\", function () {\n var nextIndex;\n\n if (_this.props.rtl) {\n nextIndex = _this.state.currentSlide - _this.props.slidesToScroll;\n } else {\n if ((0, _innerSliderUtils.canGoNext)(_objectSpread({}, _this.props, {}, _this.state))) {\n nextIndex = _this.state.currentSlide + _this.props.slidesToScroll;\n } else {\n return false;\n }\n }\n\n _this.slideHandler(nextIndex);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"autoPlay\", function (playType) {\n if (_this.autoplayTimer) {\n clearInterval(_this.autoplayTimer);\n }\n\n var autoplaying = _this.state.autoplaying;\n\n if (playType === \"update\") {\n if (autoplaying === \"hovered\" || autoplaying === \"focused\" || autoplaying === \"paused\") {\n return;\n }\n } else if (playType === \"leave\") {\n if (autoplaying === \"paused\" || autoplaying === \"focused\") {\n return;\n }\n } else if (playType === \"blur\") {\n if (autoplaying === \"paused\" || autoplaying === \"hovered\") {\n return;\n }\n }\n\n _this.autoplayTimer = setInterval(_this.play, _this.props.autoplaySpeed + 50);\n\n _this.setState({\n autoplaying: \"playing\"\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"pause\", function (pauseType) {\n if (_this.autoplayTimer) {\n clearInterval(_this.autoplayTimer);\n _this.autoplayTimer = null;\n }\n\n var autoplaying = _this.state.autoplaying;\n\n if (pauseType === \"paused\") {\n _this.setState({\n autoplaying: \"paused\"\n });\n } else if (pauseType === \"focused\") {\n if (autoplaying === \"hovered\" || autoplaying === \"playing\") {\n _this.setState({\n autoplaying: \"focused\"\n });\n }\n } else {\n // pauseType is 'hovered'\n if (autoplaying === \"playing\") {\n _this.setState({\n autoplaying: \"hovered\"\n });\n }\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onDotsOver\", function () {\n return _this.props.autoplay && _this.pause(\"hovered\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onDotsLeave\", function () {\n return _this.props.autoplay && _this.state.autoplaying === \"hovered\" && _this.autoPlay(\"leave\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onTrackOver\", function () {\n return _this.props.autoplay && _this.pause(\"hovered\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onTrackLeave\", function () {\n return _this.props.autoplay && _this.state.autoplaying === \"hovered\" && _this.autoPlay(\"leave\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onSlideFocus\", function () {\n return _this.props.autoplay && _this.pause(\"focused\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onSlideBlur\", function () {\n return _this.props.autoplay && _this.state.autoplaying === \"focused\" && _this.autoPlay(\"blur\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"render\", function () {\n var className = (0, _classnames[\"default\"])(\"slick-slider\", _this.props.className, {\n \"slick-vertical\": _this.props.vertical,\n \"slick-initialized\": true\n });\n\n var spec = _objectSpread({}, _this.props, {}, _this.state);\n\n var trackProps = (0, _innerSliderUtils.extractObject)(spec, [\"fade\", \"cssEase\", \"speed\", \"infinite\", \"centerMode\", \"focusOnSelect\", \"currentSlide\", \"lazyLoad\", \"lazyLoadedList\", \"rtl\", \"slideWidth\", \"slideHeight\", \"listHeight\", \"vertical\", \"slidesToShow\", \"slidesToScroll\", \"slideCount\", \"trackStyle\", \"variableWidth\", \"unslick\", \"centerPadding\"]);\n var pauseOnHover = _this.props.pauseOnHover;\n trackProps = _objectSpread({}, trackProps, {\n onMouseEnter: pauseOnHover ? _this.onTrackOver : null,\n onMouseLeave: pauseOnHover ? _this.onTrackLeave : null,\n onMouseOver: pauseOnHover ? _this.onTrackOver : null,\n focusOnSelect: _this.props.focusOnSelect ? _this.selectHandler : null\n });\n var dots;\n\n if (_this.props.dots === true && _this.state.slideCount >= _this.props.slidesToShow) {\n var dotProps = (0, _innerSliderUtils.extractObject)(spec, [\"dotsClass\", \"slideCount\", \"slidesToShow\", \"currentSlide\", \"slidesToScroll\", \"clickHandler\", \"children\", \"customPaging\", \"infinite\", \"appendDots\"]);\n var pauseOnDotsHover = _this.props.pauseOnDotsHover;\n dotProps = _objectSpread({}, dotProps, {\n clickHandler: _this.changeSlide,\n onMouseEnter: pauseOnDotsHover ? _this.onDotsLeave : null,\n onMouseOver: pauseOnDotsHover ? _this.onDotsOver : null,\n onMouseLeave: pauseOnDotsHover ? _this.onDotsLeave : null\n });\n dots = _react[\"default\"].createElement(_dots.Dots, dotProps);\n }\n\n var prevArrow, nextArrow;\n var arrowProps = (0, _innerSliderUtils.extractObject)(spec, [\"infinite\", \"centerMode\", \"currentSlide\", \"slideCount\", \"slidesToShow\", \"prevArrow\", \"nextArrow\"]);\n arrowProps.clickHandler = _this.changeSlide;\n\n if (_this.props.arrows) {\n prevArrow = _react[\"default\"].createElement(_arrows.PrevArrow, arrowProps);\n nextArrow = _react[\"default\"].createElement(_arrows.NextArrow, arrowProps);\n }\n\n var verticalHeightStyle = null;\n\n if (_this.props.vertical) {\n verticalHeightStyle = {\n height: _this.state.listHeight\n };\n }\n\n var centerPaddingStyle = null;\n\n if (_this.props.vertical === false) {\n if (_this.props.centerMode === true) {\n centerPaddingStyle = {\n padding: \"0px \" + _this.props.centerPadding\n };\n }\n } else {\n if (_this.props.centerMode === true) {\n centerPaddingStyle = {\n padding: _this.props.centerPadding + \" 0px\"\n };\n }\n }\n\n var listStyle = _objectSpread({}, verticalHeightStyle, {}, centerPaddingStyle);\n\n var touchMove = _this.props.touchMove;\n var listProps = {\n className: \"slick-list\",\n style: listStyle,\n onClick: _this.clickHandler,\n onMouseDown: touchMove ? _this.swipeStart : null,\n onMouseMove: _this.state.dragging && touchMove ? _this.swipeMove : null,\n onMouseUp: touchMove ? _this.swipeEnd : null,\n onMouseLeave: _this.state.dragging && touchMove ? _this.swipeEnd : null,\n onTouchStart: touchMove ? _this.swipeStart : null,\n onTouchMove: _this.state.dragging && touchMove ? _this.swipeMove : null,\n onTouchEnd: touchMove ? _this.swipeEnd : null,\n onTouchCancel: _this.state.dragging && touchMove ? _this.swipeEnd : null,\n onKeyDown: _this.props.accessibility ? _this.keyHandler : null\n };\n var innerSliderProps = {\n className: className,\n dir: _this.props.rtl ? \"rtl\" : \"ltr\",\n style: _this.props.style\n };\n\n if (_this.props.unslick) {\n listProps = {\n className: \"slick-list\"\n };\n innerSliderProps = {\n className: className\n };\n }\n\n return _react[\"default\"].createElement(\"div\", innerSliderProps, !_this.props.unslick ? prevArrow : \"\", _react[\"default\"].createElement(\"div\", _extends({\n ref: _this.listRefHandler\n }, listProps), _react[\"default\"].createElement(_track.Track, _extends({\n ref: _this.trackRefHandler\n }, trackProps), _this.props.children)), !_this.props.unslick ? nextArrow : \"\", !_this.props.unslick ? dots : \"\");\n });\n\n _this.list = null;\n _this.track = null;\n _this.state = _objectSpread({}, _initialState[\"default\"], {\n currentSlide: _this.props.initialSlide,\n slideCount: _react[\"default\"].Children.count(_this.props.children)\n });\n _this.callbackTimers = [];\n _this.clickable = true;\n _this.debouncedResize = null;\n return _this;\n }\n\n return InnerSlider;\n}(_react[\"default\"].Component);\n\nexports.InnerSlider = InnerSlider;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _innerSlider = require(\"./inner-slider\");\n\nvar _json2mq = _interopRequireDefault(require(\"json2mq\"));\n\nvar _defaultProps = _interopRequireDefault(require(\"./default-props\"));\n\nvar _innerSliderUtils = require(\"./utils/innerSliderUtils\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar enquire = (0, _innerSliderUtils.canUseDOM)() && require(\"enquire.js\");\n\nvar Slider =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inherits(Slider, _React$Component);\n\n function Slider(props) {\n var _this;\n\n _classCallCheck(this, Slider);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(Slider).call(this, props));\n\n _defineProperty(_assertThisInitialized(_this), \"innerSliderRefHandler\", function (ref) {\n return _this.innerSlider = ref;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickPrev\", function () {\n return _this.innerSlider.slickPrev();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickNext\", function () {\n return _this.innerSlider.slickNext();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickGoTo\", function (slide) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n return _this.innerSlider.slickGoTo(slide, dontAnimate);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickPause\", function () {\n return _this.innerSlider.pause(\"paused\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickPlay\", function () {\n return _this.innerSlider.autoPlay(\"play\");\n });\n\n _this.state = {\n breakpoint: null\n };\n _this._responsiveMediaHandlers = [];\n return _this;\n }\n\n _createClass(Slider, [{\n key: \"media\",\n value: function media(query, handler) {\n // javascript handler for css media query\n enquire.register(query, handler);\n\n this._responsiveMediaHandlers.push({\n query: query,\n handler: handler\n });\n } // handles responsive breakpoints\n\n }, {\n key: \"UNSAFE_componentWillMount\",\n value: function UNSAFE_componentWillMount() {\n var _this2 = this;\n\n // performance monitoring\n //if (process.env.NODE_ENV !== 'production') {\n //const { whyDidYouUpdate } = require('why-did-you-update')\n //whyDidYouUpdate(React)\n //}\n if (this.props.responsive) {\n var breakpoints = this.props.responsive.map(function (breakpt) {\n return breakpt.breakpoint;\n }); // sort them in increasing order of their numerical value\n\n breakpoints.sort(function (x, y) {\n return x - y;\n });\n breakpoints.forEach(function (breakpoint, index) {\n // media query for each breakpoint\n var bQuery;\n\n if (index === 0) {\n bQuery = (0, _json2mq[\"default\"])({\n minWidth: 0,\n maxWidth: breakpoint\n });\n } else {\n bQuery = (0, _json2mq[\"default\"])({\n minWidth: breakpoints[index - 1] + 1,\n maxWidth: breakpoint\n });\n } // when not using server side rendering\n\n\n (0, _innerSliderUtils.canUseDOM)() && _this2.media(bQuery, function () {\n _this2.setState({\n breakpoint: breakpoint\n });\n });\n }); // Register media query for full screen. Need to support resize from small to large\n // convert javascript object to media query string\n\n var query = (0, _json2mq[\"default\"])({\n minWidth: breakpoints.slice(-1)[0]\n });\n (0, _innerSliderUtils.canUseDOM)() && this.media(query, function () {\n _this2.setState({\n breakpoint: null\n });\n });\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this._responsiveMediaHandlers.forEach(function (obj) {\n enquire.unregister(obj.query, obj.handler);\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this3 = this;\n\n var settings;\n var newProps;\n\n if (this.state.breakpoint) {\n newProps = this.props.responsive.filter(function (resp) {\n return resp.breakpoint === _this3.state.breakpoint;\n });\n settings = newProps[0].settings === \"unslick\" ? \"unslick\" : _objectSpread({}, _defaultProps[\"default\"], {}, this.props, {}, newProps[0].settings);\n } else {\n settings = _objectSpread({}, _defaultProps[\"default\"], {}, this.props);\n } // force scrolling by one if centerMode is on\n\n\n if (settings.centerMode) {\n if (settings.slidesToScroll > 1 && process.env.NODE_ENV !== \"production\") {\n console.warn(\"slidesToScroll should be equal to 1 in centerMode, you are using \".concat(settings.slidesToScroll));\n }\n\n settings.slidesToScroll = 1;\n } // force showing one slide and scrolling by one if the fade mode is on\n\n\n if (settings.fade) {\n if (settings.slidesToShow > 1 && process.env.NODE_ENV !== \"production\") {\n console.warn(\"slidesToShow should be equal to 1 when fade is true, you're using \".concat(settings.slidesToShow));\n }\n\n if (settings.slidesToScroll > 1 && process.env.NODE_ENV !== \"production\") {\n console.warn(\"slidesToScroll should be equal to 1 when fade is true, you're using \".concat(settings.slidesToScroll));\n }\n\n settings.slidesToShow = 1;\n settings.slidesToScroll = 1;\n } // makes sure that children is an array, even when there is only 1 child\n\n\n var children = _react[\"default\"].Children.toArray(this.props.children); // Children may contain false or null, so we should filter them\n // children may also contain string filled with spaces (in certain cases where we use jsx strings)\n\n\n children = children.filter(function (child) {\n if (typeof child === \"string\") {\n return !!child.trim();\n }\n\n return !!child;\n }); // rows and slidesPerRow logic is handled here\n\n if (settings.variableWidth && (settings.rows > 1 || settings.slidesPerRow > 1)) {\n console.warn(\"variableWidth is not supported in case of rows > 1 or slidesPerRow > 1\");\n settings.variableWidth = false;\n }\n\n var newChildren = [];\n var currentWidth = null;\n\n for (var i = 0; i < children.length; i += settings.rows * settings.slidesPerRow) {\n var newSlide = [];\n\n for (var j = i; j < i + settings.rows * settings.slidesPerRow; j += settings.slidesPerRow) {\n var row = [];\n\n for (var k = j; k < j + settings.slidesPerRow; k += 1) {\n if (settings.variableWidth && children[k].props.style) {\n currentWidth = children[k].props.style.width;\n }\n\n if (k >= children.length) break;\n row.push(_react[\"default\"].cloneElement(children[k], {\n key: 100 * i + 10 * j + k,\n tabIndex: -1,\n style: {\n width: \"\".concat(100 / settings.slidesPerRow, \"%\"),\n display: \"inline-block\"\n }\n }));\n }\n\n newSlide.push(_react[\"default\"].createElement(\"div\", {\n key: 10 * i + j\n }, row));\n }\n\n if (settings.variableWidth) {\n newChildren.push(_react[\"default\"].createElement(\"div\", {\n key: i,\n style: {\n width: currentWidth\n }\n }, newSlide));\n } else {\n newChildren.push(_react[\"default\"].createElement(\"div\", {\n key: i\n }, newSlide));\n }\n }\n\n if (settings === \"unslick\") {\n var className = \"regular slider \" + (this.props.className || \"\");\n return _react[\"default\"].createElement(\"div\", {\n className: className\n }, children);\n } else if (newChildren.length <= settings.slidesToShow) {\n settings.unslick = true;\n }\n\n return _react[\"default\"].createElement(_innerSlider.InnerSlider, _extends({\n style: this.props.style,\n ref: this.innerSliderRefHandler\n }, settings), newChildren);\n }\n }]);\n\n return Slider;\n}(_react[\"default\"].Component);\n\nexports[\"default\"] = Slider;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Track = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _innerSliderUtils = require(\"./utils/innerSliderUtils\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// given specifications/props for a slide, fetch all the classes that need to be applied to the slide\nvar getSlideClasses = function getSlideClasses(spec) {\n var slickActive, slickCenter, slickCloned;\n var centerOffset, index;\n\n if (spec.rtl) {\n index = spec.slideCount - 1 - spec.index;\n } else {\n index = spec.index;\n }\n\n slickCloned = index < 0 || index >= spec.slideCount;\n\n if (spec.centerMode) {\n centerOffset = Math.floor(spec.slidesToShow / 2);\n slickCenter = (index - spec.currentSlide) % spec.slideCount === 0;\n\n if (index > spec.currentSlide - centerOffset - 1 && index <= spec.currentSlide + centerOffset) {\n slickActive = true;\n }\n } else {\n slickActive = spec.currentSlide <= index && index < spec.currentSlide + spec.slidesToShow;\n }\n\n var slickCurrent = index === spec.currentSlide;\n return {\n \"slick-slide\": true,\n \"slick-active\": slickActive,\n \"slick-center\": slickCenter,\n \"slick-cloned\": slickCloned,\n \"slick-current\": slickCurrent // dubious in case of RTL\n\n };\n};\n\nvar getSlideStyle = function getSlideStyle(spec) {\n var style = {};\n\n if (spec.variableWidth === undefined || spec.variableWidth === false) {\n style.width = spec.slideWidth;\n }\n\n if (spec.fade) {\n style.position = \"relative\";\n\n if (spec.vertical) {\n style.top = -spec.index * parseInt(spec.slideHeight);\n } else {\n style.left = -spec.index * parseInt(spec.slideWidth);\n }\n\n style.opacity = spec.currentSlide === spec.index ? 1 : 0;\n style.transition = \"opacity \" + spec.speed + \"ms \" + spec.cssEase + \", \" + \"visibility \" + spec.speed + \"ms \" + spec.cssEase;\n }\n\n return style;\n};\n\nvar getKey = function getKey(child, fallbackKey) {\n return child.key || fallbackKey;\n};\n\nvar renderSlides = function renderSlides(spec) {\n var key;\n var slides = [];\n var preCloneSlides = [];\n var postCloneSlides = [];\n\n var childrenCount = _react[\"default\"].Children.count(spec.children);\n\n var startIndex = (0, _innerSliderUtils.lazyStartIndex)(spec);\n var endIndex = (0, _innerSliderUtils.lazyEndIndex)(spec);\n\n _react[\"default\"].Children.forEach(spec.children, function (elem, index) {\n var child;\n var childOnClickOptions = {\n message: \"children\",\n index: index,\n slidesToScroll: spec.slidesToScroll,\n currentSlide: spec.currentSlide\n }; // in case of lazyLoad, whether or not we want to fetch the slide\n\n if (!spec.lazyLoad || spec.lazyLoad && spec.lazyLoadedList.indexOf(index) >= 0) {\n child = elem;\n } else {\n child = _react[\"default\"].createElement(\"div\", null);\n }\n\n var childStyle = getSlideStyle(_objectSpread({}, spec, {\n index: index\n }));\n var slideClass = child.props.className || \"\";\n var slideClasses = getSlideClasses(_objectSpread({}, spec, {\n index: index\n })); // push a cloned element of the desired slide\n\n slides.push(_react[\"default\"].cloneElement(child, {\n key: \"original\" + getKey(child, index),\n \"data-index\": index,\n className: (0, _classnames[\"default\"])(slideClasses, slideClass),\n tabIndex: \"-1\",\n \"aria-hidden\": !slideClasses[\"slick-active\"],\n style: _objectSpread({\n outline: \"none\"\n }, child.props.style || {}, {}, childStyle),\n onClick: function onClick(e) {\n child.props && child.props.onClick && child.props.onClick(e);\n\n if (spec.focusOnSelect) {\n spec.focusOnSelect(childOnClickOptions);\n }\n }\n })); // if slide needs to be precloned or postcloned\n\n if (spec.infinite && spec.fade === false) {\n var preCloneNo = childrenCount - index;\n\n if (preCloneNo <= (0, _innerSliderUtils.getPreClones)(spec) && childrenCount !== spec.slidesToShow) {\n key = -preCloneNo;\n\n if (key >= startIndex) {\n child = elem;\n }\n\n slideClasses = getSlideClasses(_objectSpread({}, spec, {\n index: key\n }));\n preCloneSlides.push(_react[\"default\"].cloneElement(child, {\n key: \"precloned\" + getKey(child, key),\n \"data-index\": key,\n tabIndex: \"-1\",\n className: (0, _classnames[\"default\"])(slideClasses, slideClass),\n \"aria-hidden\": !slideClasses[\"slick-active\"],\n style: _objectSpread({}, child.props.style || {}, {}, childStyle),\n onClick: function onClick(e) {\n child.props && child.props.onClick && child.props.onClick(e);\n\n if (spec.focusOnSelect) {\n spec.focusOnSelect(childOnClickOptions);\n }\n }\n }));\n }\n\n if (childrenCount !== spec.slidesToShow) {\n key = childrenCount + index;\n\n if (key < endIndex) {\n child = elem;\n }\n\n slideClasses = getSlideClasses(_objectSpread({}, spec, {\n index: key\n }));\n postCloneSlides.push(_react[\"default\"].cloneElement(child, {\n key: \"postcloned\" + getKey(child, key),\n \"data-index\": key,\n tabIndex: \"-1\",\n className: (0, _classnames[\"default\"])(slideClasses, slideClass),\n \"aria-hidden\": !slideClasses[\"slick-active\"],\n style: _objectSpread({}, child.props.style || {}, {}, childStyle),\n onClick: function onClick(e) {\n child.props && child.props.onClick && child.props.onClick(e);\n\n if (spec.focusOnSelect) {\n spec.focusOnSelect(childOnClickOptions);\n }\n }\n }));\n }\n }\n });\n\n if (spec.rtl) {\n return preCloneSlides.concat(slides, postCloneSlides).reverse();\n } else {\n return preCloneSlides.concat(slides, postCloneSlides);\n }\n};\n\nvar Track =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n _inherits(Track, _React$PureComponent);\n\n function Track() {\n _classCallCheck(this, Track);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(Track).apply(this, arguments));\n }\n\n _createClass(Track, [{\n key: \"render\",\n value: function render() {\n var slides = renderSlides(this.props);\n var _this$props = this.props,\n onMouseEnter = _this$props.onMouseEnter,\n onMouseOver = _this$props.onMouseOver,\n onMouseLeave = _this$props.onMouseLeave;\n var mouseEvents = {\n onMouseEnter: onMouseEnter,\n onMouseOver: onMouseOver,\n onMouseLeave: onMouseLeave\n };\n return _react[\"default\"].createElement(\"div\", _extends({\n className: \"slick-track\",\n style: this.props.trackStyle\n }, mouseEvents), slides);\n }\n }]);\n\n return Track;\n}(_react[\"default\"].PureComponent);\n\nexports.Track = Track;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.canUseDOM = exports.slidesOnLeft = exports.slidesOnRight = exports.siblingDirection = exports.getTotalSlides = exports.getPostClones = exports.getPreClones = exports.getTrackLeft = exports.getTrackAnimateCSS = exports.getTrackCSS = exports.checkSpecKeys = exports.getSlideCount = exports.checkNavigable = exports.getNavigableIndexes = exports.swipeEnd = exports.swipeMove = exports.swipeStart = exports.keyHandler = exports.changeSlide = exports.slideHandler = exports.initializedState = exports.extractObject = exports.canGoNext = exports.getSwipeDirection = exports.getHeight = exports.getWidth = exports.lazySlidesOnRight = exports.lazySlidesOnLeft = exports.lazyEndIndex = exports.lazyStartIndex = exports.getRequiredLazySlides = exports.getOnDemandLazySlides = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reactDom = _interopRequireDefault(require(\"react-dom\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar getOnDemandLazySlides = function getOnDemandLazySlides(spec) {\n var onDemandSlides = [];\n var startIndex = lazyStartIndex(spec);\n var endIndex = lazyEndIndex(spec);\n\n for (var slideIndex = startIndex; slideIndex < endIndex; slideIndex++) {\n if (spec.lazyLoadedList.indexOf(slideIndex) < 0) {\n onDemandSlides.push(slideIndex);\n }\n }\n\n return onDemandSlides;\n}; // return list of slides that need to be present\n\n\nexports.getOnDemandLazySlides = getOnDemandLazySlides;\n\nvar getRequiredLazySlides = function getRequiredLazySlides(spec) {\n var requiredSlides = [];\n var startIndex = lazyStartIndex(spec);\n var endIndex = lazyEndIndex(spec);\n\n for (var slideIndex = startIndex; slideIndex < endIndex; slideIndex++) {\n requiredSlides.push(slideIndex);\n }\n\n return requiredSlides;\n}; // startIndex that needs to be present\n\n\nexports.getRequiredLazySlides = getRequiredLazySlides;\n\nvar lazyStartIndex = function lazyStartIndex(spec) {\n return spec.currentSlide - lazySlidesOnLeft(spec);\n};\n\nexports.lazyStartIndex = lazyStartIndex;\n\nvar lazyEndIndex = function lazyEndIndex(spec) {\n return spec.currentSlide + lazySlidesOnRight(spec);\n};\n\nexports.lazyEndIndex = lazyEndIndex;\n\nvar lazySlidesOnLeft = function lazySlidesOnLeft(spec) {\n return spec.centerMode ? Math.floor(spec.slidesToShow / 2) + (parseInt(spec.centerPadding) > 0 ? 1 : 0) : 0;\n};\n\nexports.lazySlidesOnLeft = lazySlidesOnLeft;\n\nvar lazySlidesOnRight = function lazySlidesOnRight(spec) {\n return spec.centerMode ? Math.floor((spec.slidesToShow - 1) / 2) + 1 + (parseInt(spec.centerPadding) > 0 ? 1 : 0) : spec.slidesToShow;\n}; // get width of an element\n\n\nexports.lazySlidesOnRight = lazySlidesOnRight;\n\nvar getWidth = function getWidth(elem) {\n return elem && elem.offsetWidth || 0;\n};\n\nexports.getWidth = getWidth;\n\nvar getHeight = function getHeight(elem) {\n return elem && elem.offsetHeight || 0;\n};\n\nexports.getHeight = getHeight;\n\nvar getSwipeDirection = function getSwipeDirection(touchObject) {\n var verticalSwiping = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var xDist, yDist, r, swipeAngle;\n xDist = touchObject.startX - touchObject.curX;\n yDist = touchObject.startY - touchObject.curY;\n r = Math.atan2(yDist, xDist);\n swipeAngle = Math.round(r * 180 / Math.PI);\n\n if (swipeAngle < 0) {\n swipeAngle = 360 - Math.abs(swipeAngle);\n }\n\n if (swipeAngle <= 45 && swipeAngle >= 0 || swipeAngle <= 360 && swipeAngle >= 315) {\n return \"left\";\n }\n\n if (swipeAngle >= 135 && swipeAngle <= 225) {\n return \"right\";\n }\n\n if (verticalSwiping === true) {\n if (swipeAngle >= 35 && swipeAngle <= 135) {\n return \"up\";\n } else {\n return \"down\";\n }\n }\n\n return \"vertical\";\n}; // whether or not we can go next\n\n\nexports.getSwipeDirection = getSwipeDirection;\n\nvar canGoNext = function canGoNext(spec) {\n var canGo = true;\n\n if (!spec.infinite) {\n if (spec.centerMode && spec.currentSlide >= spec.slideCount - 1) {\n canGo = false;\n } else if (spec.slideCount <= spec.slidesToShow || spec.currentSlide >= spec.slideCount - spec.slidesToShow) {\n canGo = false;\n }\n }\n\n return canGo;\n}; // given an object and a list of keys, return new object with given keys\n\n\nexports.canGoNext = canGoNext;\n\nvar extractObject = function extractObject(spec, keys) {\n var newObject = {};\n keys.forEach(function (key) {\n return newObject[key] = spec[key];\n });\n return newObject;\n}; // get initialized state\n\n\nexports.extractObject = extractObject;\n\nvar initializedState = function initializedState(spec) {\n // spec also contains listRef, trackRef\n var slideCount = _react[\"default\"].Children.count(spec.children);\n\n var listWidth = Math.ceil(getWidth(_reactDom[\"default\"].findDOMNode(spec.listRef)));\n var trackWidth = Math.ceil(getWidth(_reactDom[\"default\"].findDOMNode(spec.trackRef)));\n var slideWidth;\n\n if (!spec.vertical) {\n var centerPaddingAdj = spec.centerMode && parseInt(spec.centerPadding) * 2;\n\n if (typeof spec.centerPadding === \"string\" && spec.centerPadding.slice(-1) === \"%\") {\n centerPaddingAdj *= listWidth / 100;\n }\n\n slideWidth = Math.ceil((listWidth - centerPaddingAdj) / spec.slidesToShow);\n } else {\n slideWidth = listWidth;\n }\n\n var slideHeight = _reactDom[\"default\"].findDOMNode(spec.listRef) && getHeight(_reactDom[\"default\"].findDOMNode(spec.listRef).querySelector('[data-index=\"0\"]'));\n var listHeight = slideHeight * spec.slidesToShow;\n var currentSlide = spec.currentSlide === undefined ? spec.initialSlide : spec.currentSlide;\n\n if (spec.rtl && spec.currentSlide === undefined) {\n currentSlide = slideCount - 1 - spec.initialSlide;\n }\n\n var lazyLoadedList = spec.lazyLoadedList || [];\n var slidesToLoad = getOnDemandLazySlides({\n currentSlide: currentSlide,\n lazyLoadedList: lazyLoadedList\n }, spec);\n lazyLoadedList.concat(slidesToLoad);\n var state = {\n slideCount: slideCount,\n slideWidth: slideWidth,\n listWidth: listWidth,\n trackWidth: trackWidth,\n currentSlide: currentSlide,\n slideHeight: slideHeight,\n listHeight: listHeight,\n lazyLoadedList: lazyLoadedList\n };\n\n if (spec.autoplaying === null && spec.autoplay) {\n state[\"autoplaying\"] = \"playing\";\n }\n\n return state;\n};\n\nexports.initializedState = initializedState;\n\nvar slideHandler = function slideHandler(spec) {\n var waitForAnimate = spec.waitForAnimate,\n animating = spec.animating,\n fade = spec.fade,\n infinite = spec.infinite,\n index = spec.index,\n slideCount = spec.slideCount,\n lazyLoadedList = spec.lazyLoadedList,\n lazyLoad = spec.lazyLoad,\n currentSlide = spec.currentSlide,\n centerMode = spec.centerMode,\n slidesToScroll = spec.slidesToScroll,\n slidesToShow = spec.slidesToShow,\n useCSS = spec.useCSS;\n if (waitForAnimate && animating) return {};\n var animationSlide = index,\n finalSlide,\n animationLeft,\n finalLeft;\n var state = {},\n nextState = {};\n\n if (fade) {\n if (!infinite && (index < 0 || index >= slideCount)) return {};\n\n if (index < 0) {\n animationSlide = index + slideCount;\n } else if (index >= slideCount) {\n animationSlide = index - slideCount;\n }\n\n if (lazyLoad && lazyLoadedList.indexOf(animationSlide) < 0) {\n lazyLoadedList.push(animationSlide);\n }\n\n state = {\n animating: true,\n currentSlide: animationSlide,\n lazyLoadedList: lazyLoadedList\n };\n nextState = {\n animating: false\n };\n } else {\n finalSlide = animationSlide;\n\n if (animationSlide < 0) {\n finalSlide = animationSlide + slideCount;\n if (!infinite) finalSlide = 0;else if (slideCount % slidesToScroll !== 0) finalSlide = slideCount - slideCount % slidesToScroll;\n } else if (!canGoNext(spec) && animationSlide > currentSlide) {\n animationSlide = finalSlide = currentSlide;\n } else if (centerMode && animationSlide >= slideCount) {\n animationSlide = infinite ? slideCount : slideCount - 1;\n finalSlide = infinite ? 0 : slideCount - 1;\n } else if (animationSlide >= slideCount) {\n finalSlide = animationSlide - slideCount;\n if (!infinite) finalSlide = slideCount - slidesToShow;else if (slideCount % slidesToScroll !== 0) finalSlide = 0;\n }\n\n animationLeft = getTrackLeft(_objectSpread({}, spec, {\n slideIndex: animationSlide\n }));\n finalLeft = getTrackLeft(_objectSpread({}, spec, {\n slideIndex: finalSlide\n }));\n\n if (!infinite) {\n if (animationLeft === finalLeft) animationSlide = finalSlide;\n animationLeft = finalLeft;\n }\n\n lazyLoad && lazyLoadedList.concat(getOnDemandLazySlides(_objectSpread({}, spec, {\n currentSlide: animationSlide\n })));\n\n if (!useCSS) {\n state = {\n currentSlide: finalSlide,\n trackStyle: getTrackCSS(_objectSpread({}, spec, {\n left: finalLeft\n })),\n lazyLoadedList: lazyLoadedList\n };\n } else {\n state = {\n animating: true,\n currentSlide: finalSlide,\n trackStyle: getTrackAnimateCSS(_objectSpread({}, spec, {\n left: animationLeft\n })),\n lazyLoadedList: lazyLoadedList\n };\n nextState = {\n animating: false,\n currentSlide: finalSlide,\n trackStyle: getTrackCSS(_objectSpread({}, spec, {\n left: finalLeft\n })),\n swipeLeft: null\n };\n }\n }\n\n return {\n state: state,\n nextState: nextState\n };\n};\n\nexports.slideHandler = slideHandler;\n\nvar changeSlide = function changeSlide(spec, options) {\n var indexOffset, previousInt, slideOffset, unevenOffset, targetSlide;\n var slidesToScroll = spec.slidesToScroll,\n slidesToShow = spec.slidesToShow,\n slideCount = spec.slideCount,\n currentSlide = spec.currentSlide,\n lazyLoad = spec.lazyLoad,\n infinite = spec.infinite;\n unevenOffset = slideCount % slidesToScroll !== 0;\n indexOffset = unevenOffset ? 0 : (slideCount - currentSlide) % slidesToScroll;\n\n if (options.message === \"previous\") {\n slideOffset = indexOffset === 0 ? slidesToScroll : slidesToShow - indexOffset;\n targetSlide = currentSlide - slideOffset;\n\n if (lazyLoad && !infinite) {\n previousInt = currentSlide - slideOffset;\n targetSlide = previousInt === -1 ? slideCount - 1 : previousInt;\n }\n } else if (options.message === \"next\") {\n slideOffset = indexOffset === 0 ? slidesToScroll : indexOffset;\n targetSlide = currentSlide + slideOffset;\n\n if (lazyLoad && !infinite) {\n targetSlide = (currentSlide + slidesToScroll) % slideCount + indexOffset;\n }\n } else if (options.message === \"dots\") {\n // Click on dots\n targetSlide = options.index * options.slidesToScroll;\n\n if (targetSlide === options.currentSlide) {\n return null;\n }\n } else if (options.message === \"children\") {\n // Click on the slides\n targetSlide = options.index;\n\n if (targetSlide === options.currentSlide) {\n return null;\n }\n\n if (infinite) {\n var direction = siblingDirection(_objectSpread({}, spec, {\n targetSlide: targetSlide\n }));\n\n if (targetSlide > options.currentSlide && direction === \"left\") {\n targetSlide = targetSlide - slideCount;\n } else if (targetSlide < options.currentSlide && direction === \"right\") {\n targetSlide = targetSlide + slideCount;\n }\n }\n } else if (options.message === \"index\") {\n targetSlide = Number(options.index);\n\n if (targetSlide === options.currentSlide) {\n return null;\n }\n }\n\n return targetSlide;\n};\n\nexports.changeSlide = changeSlide;\n\nvar keyHandler = function keyHandler(e, accessibility, rtl) {\n if (e.target.tagName.match(\"TEXTAREA|INPUT|SELECT\") || !accessibility) return \"\";\n if (e.keyCode === 37) return rtl ? \"next\" : \"previous\";\n if (e.keyCode === 39) return rtl ? \"previous\" : \"next\";\n return \"\";\n};\n\nexports.keyHandler = keyHandler;\n\nvar swipeStart = function swipeStart(e, swipe, draggable) {\n e.target.tagName === \"IMG\" && e.preventDefault();\n if (!swipe || !draggable && e.type.indexOf(\"mouse\") !== -1) return \"\";\n return {\n dragging: true,\n touchObject: {\n startX: e.touches ? e.touches[0].pageX : e.clientX,\n startY: e.touches ? e.touches[0].pageY : e.clientY,\n curX: e.touches ? e.touches[0].pageX : e.clientX,\n curY: e.touches ? e.touches[0].pageY : e.clientY\n }\n };\n};\n\nexports.swipeStart = swipeStart;\n\nvar swipeMove = function swipeMove(e, spec) {\n // spec also contains, trackRef and slideIndex\n var scrolling = spec.scrolling,\n animating = spec.animating,\n vertical = spec.vertical,\n swipeToSlide = spec.swipeToSlide,\n verticalSwiping = spec.verticalSwiping,\n rtl = spec.rtl,\n currentSlide = spec.currentSlide,\n edgeFriction = spec.edgeFriction,\n edgeDragged = spec.edgeDragged,\n onEdge = spec.onEdge,\n swiped = spec.swiped,\n swiping = spec.swiping,\n slideCount = spec.slideCount,\n slidesToScroll = spec.slidesToScroll,\n infinite = spec.infinite,\n touchObject = spec.touchObject,\n swipeEvent = spec.swipeEvent,\n listHeight = spec.listHeight,\n listWidth = spec.listWidth;\n if (scrolling) return;\n if (animating) return e.preventDefault();\n if (vertical && swipeToSlide && verticalSwiping) e.preventDefault();\n var swipeLeft,\n state = {};\n var curLeft = getTrackLeft(spec);\n touchObject.curX = e.touches ? e.touches[0].pageX : e.clientX;\n touchObject.curY = e.touches ? e.touches[0].pageY : e.clientY;\n touchObject.swipeLength = Math.round(Math.sqrt(Math.pow(touchObject.curX - touchObject.startX, 2)));\n var verticalSwipeLength = Math.round(Math.sqrt(Math.pow(touchObject.curY - touchObject.startY, 2)));\n\n if (!verticalSwiping && !swiping && verticalSwipeLength > 10) {\n return {\n scrolling: true\n };\n }\n\n if (verticalSwiping) touchObject.swipeLength = verticalSwipeLength;\n var positionOffset = (!rtl ? 1 : -1) * (touchObject.curX > touchObject.startX ? 1 : -1);\n if (verticalSwiping) positionOffset = touchObject.curY > touchObject.startY ? 1 : -1;\n var dotCount = Math.ceil(slideCount / slidesToScroll);\n var swipeDirection = getSwipeDirection(spec.touchObject, verticalSwiping);\n var touchSwipeLength = touchObject.swipeLength;\n\n if (!infinite) {\n if (currentSlide === 0 && swipeDirection === \"right\" || currentSlide + 1 >= dotCount && swipeDirection === \"left\" || !canGoNext(spec) && swipeDirection === \"left\") {\n touchSwipeLength = touchObject.swipeLength * edgeFriction;\n\n if (edgeDragged === false && onEdge) {\n onEdge(swipeDirection);\n state[\"edgeDragged\"] = true;\n }\n }\n }\n\n if (!swiped && swipeEvent) {\n swipeEvent(swipeDirection);\n state[\"swiped\"] = true;\n }\n\n if (!vertical) {\n if (!rtl) {\n swipeLeft = curLeft + touchSwipeLength * positionOffset;\n } else {\n swipeLeft = curLeft - touchSwipeLength * positionOffset;\n }\n } else {\n swipeLeft = curLeft + touchSwipeLength * (listHeight / listWidth) * positionOffset;\n }\n\n if (verticalSwiping) {\n swipeLeft = curLeft + touchSwipeLength * positionOffset;\n }\n\n state = _objectSpread({}, state, {\n touchObject: touchObject,\n swipeLeft: swipeLeft,\n trackStyle: getTrackCSS(_objectSpread({}, spec, {\n left: swipeLeft\n }))\n });\n\n if (Math.abs(touchObject.curX - touchObject.startX) < Math.abs(touchObject.curY - touchObject.startY) * 0.8) {\n return state;\n }\n\n if (touchObject.swipeLength > 10) {\n state[\"swiping\"] = true;\n e.preventDefault();\n }\n\n return state;\n};\n\nexports.swipeMove = swipeMove;\n\nvar swipeEnd = function swipeEnd(e, spec) {\n var dragging = spec.dragging,\n swipe = spec.swipe,\n touchObject = spec.touchObject,\n listWidth = spec.listWidth,\n touchThreshold = spec.touchThreshold,\n verticalSwiping = spec.verticalSwiping,\n listHeight = spec.listHeight,\n currentSlide = spec.currentSlide,\n swipeToSlide = spec.swipeToSlide,\n scrolling = spec.scrolling,\n onSwipe = spec.onSwipe;\n\n if (!dragging) {\n if (swipe) e.preventDefault();\n return {};\n }\n\n var minSwipe = verticalSwiping ? listHeight / touchThreshold : listWidth / touchThreshold;\n var swipeDirection = getSwipeDirection(touchObject, verticalSwiping); // reset the state of touch related state variables.\n\n var state = {\n dragging: false,\n edgeDragged: false,\n scrolling: false,\n swiping: false,\n swiped: false,\n swipeLeft: null,\n touchObject: {}\n };\n\n if (scrolling) {\n return state;\n }\n\n if (!touchObject.swipeLength) {\n return state;\n }\n\n if (touchObject.swipeLength > minSwipe) {\n e.preventDefault();\n\n if (onSwipe) {\n onSwipe(swipeDirection);\n }\n\n var slideCount, newSlide;\n\n switch (swipeDirection) {\n case \"left\":\n case \"up\":\n newSlide = currentSlide + getSlideCount(spec);\n slideCount = swipeToSlide ? checkNavigable(spec, newSlide) : newSlide;\n state[\"currentDirection\"] = 0;\n break;\n\n case \"right\":\n case \"down\":\n newSlide = currentSlide - getSlideCount(spec);\n slideCount = swipeToSlide ? checkNavigable(spec, newSlide) : newSlide;\n state[\"currentDirection\"] = 1;\n break;\n\n default:\n slideCount = currentSlide;\n }\n\n state[\"triggerSlideHandler\"] = slideCount;\n } else {\n // Adjust the track back to it's original position.\n var currentLeft = getTrackLeft(spec);\n state[\"trackStyle\"] = getTrackAnimateCSS(_objectSpread({}, spec, {\n left: currentLeft\n }));\n }\n\n return state;\n};\n\nexports.swipeEnd = swipeEnd;\n\nvar getNavigableIndexes = function getNavigableIndexes(spec) {\n var max = spec.infinite ? spec.slideCount * 2 : spec.slideCount;\n var breakpoint = spec.infinite ? spec.slidesToShow * -1 : 0;\n var counter = spec.infinite ? spec.slidesToShow * -1 : 0;\n var indexes = [];\n\n while (breakpoint < max) {\n indexes.push(breakpoint);\n breakpoint = counter + spec.slidesToScroll;\n counter += Math.min(spec.slidesToScroll, spec.slidesToShow);\n }\n\n return indexes;\n};\n\nexports.getNavigableIndexes = getNavigableIndexes;\n\nvar checkNavigable = function checkNavigable(spec, index) {\n var navigables = getNavigableIndexes(spec);\n var prevNavigable = 0;\n\n if (index > navigables[navigables.length - 1]) {\n index = navigables[navigables.length - 1];\n } else {\n for (var n in navigables) {\n if (index < navigables[n]) {\n index = prevNavigable;\n break;\n }\n\n prevNavigable = navigables[n];\n }\n }\n\n return index;\n};\n\nexports.checkNavigable = checkNavigable;\n\nvar getSlideCount = function getSlideCount(spec) {\n var centerOffset = spec.centerMode ? spec.slideWidth * Math.floor(spec.slidesToShow / 2) : 0;\n\n if (spec.swipeToSlide) {\n var swipedSlide;\n\n var slickList = _reactDom[\"default\"].findDOMNode(spec.listRef);\n\n var slides = slickList.querySelectorAll(\".slick-slide\");\n Array.from(slides).every(function (slide) {\n if (!spec.vertical) {\n if (slide.offsetLeft - centerOffset + getWidth(slide) / 2 > spec.swipeLeft * -1) {\n swipedSlide = slide;\n return false;\n }\n } else {\n if (slide.offsetTop + getHeight(slide) / 2 > spec.swipeLeft * -1) {\n swipedSlide = slide;\n return false;\n }\n }\n\n return true;\n });\n\n if (!swipedSlide) {\n return 0;\n }\n\n var currentIndex = spec.rtl === true ? spec.slideCount - spec.currentSlide : spec.currentSlide;\n var slidesTraversed = Math.abs(swipedSlide.dataset.index - currentIndex) || 1;\n return slidesTraversed;\n } else {\n return spec.slidesToScroll;\n }\n};\n\nexports.getSlideCount = getSlideCount;\n\nvar checkSpecKeys = function checkSpecKeys(spec, keysArray) {\n return keysArray.reduce(function (value, key) {\n return value && spec.hasOwnProperty(key);\n }, true) ? null : console.error(\"Keys Missing:\", spec);\n};\n\nexports.checkSpecKeys = checkSpecKeys;\n\nvar getTrackCSS = function getTrackCSS(spec) {\n checkSpecKeys(spec, [\"left\", \"variableWidth\", \"slideCount\", \"slidesToShow\", \"slideWidth\"]);\n var trackWidth, trackHeight;\n var trackChildren = spec.slideCount + 2 * spec.slidesToShow;\n\n if (!spec.vertical) {\n trackWidth = getTotalSlides(spec) * spec.slideWidth;\n } else {\n trackHeight = trackChildren * spec.slideHeight;\n }\n\n var style = {\n opacity: 1,\n transition: \"\",\n WebkitTransition: \"\"\n };\n\n if (spec.useTransform) {\n var WebkitTransform = !spec.vertical ? \"translate3d(\" + spec.left + \"px, 0px, 0px)\" : \"translate3d(0px, \" + spec.left + \"px, 0px)\";\n var transform = !spec.vertical ? \"translate3d(\" + spec.left + \"px, 0px, 0px)\" : \"translate3d(0px, \" + spec.left + \"px, 0px)\";\n var msTransform = !spec.vertical ? \"translateX(\" + spec.left + \"px)\" : \"translateY(\" + spec.left + \"px)\";\n style = _objectSpread({}, style, {\n WebkitTransform: WebkitTransform,\n transform: transform,\n msTransform: msTransform\n });\n } else {\n if (spec.vertical) {\n style[\"top\"] = spec.left;\n } else {\n style[\"left\"] = spec.left;\n }\n }\n\n if (spec.fade) style = {\n opacity: 1\n };\n if (trackWidth) style.width = trackWidth;\n if (trackHeight) style.height = trackHeight; // Fallback for IE8\n\n if (window && !window.addEventListener && window.attachEvent) {\n if (!spec.vertical) {\n style.marginLeft = spec.left + \"px\";\n } else {\n style.marginTop = spec.left + \"px\";\n }\n }\n\n return style;\n};\n\nexports.getTrackCSS = getTrackCSS;\n\nvar getTrackAnimateCSS = function getTrackAnimateCSS(spec) {\n checkSpecKeys(spec, [\"left\", \"variableWidth\", \"slideCount\", \"slidesToShow\", \"slideWidth\", \"speed\", \"cssEase\"]);\n var style = getTrackCSS(spec); // useCSS is true by default so it can be undefined\n\n if (spec.useTransform) {\n style.WebkitTransition = \"-webkit-transform \" + spec.speed + \"ms \" + spec.cssEase;\n style.transition = \"transform \" + spec.speed + \"ms \" + spec.cssEase;\n } else {\n if (spec.vertical) {\n style.transition = \"top \" + spec.speed + \"ms \" + spec.cssEase;\n } else {\n style.transition = \"left \" + spec.speed + \"ms \" + spec.cssEase;\n }\n }\n\n return style;\n};\n\nexports.getTrackAnimateCSS = getTrackAnimateCSS;\n\nvar getTrackLeft = function getTrackLeft(spec) {\n if (spec.unslick) {\n return 0;\n }\n\n checkSpecKeys(spec, [\"slideIndex\", \"trackRef\", \"infinite\", \"centerMode\", \"slideCount\", \"slidesToShow\", \"slidesToScroll\", \"slideWidth\", \"listWidth\", \"variableWidth\", \"slideHeight\"]);\n var slideIndex = spec.slideIndex,\n trackRef = spec.trackRef,\n infinite = spec.infinite,\n centerMode = spec.centerMode,\n slideCount = spec.slideCount,\n slidesToShow = spec.slidesToShow,\n slidesToScroll = spec.slidesToScroll,\n slideWidth = spec.slideWidth,\n listWidth = spec.listWidth,\n variableWidth = spec.variableWidth,\n slideHeight = spec.slideHeight,\n fade = spec.fade,\n vertical = spec.vertical;\n var slideOffset = 0;\n var targetLeft;\n var targetSlide;\n var verticalOffset = 0;\n\n if (fade || spec.slideCount === 1) {\n return 0;\n }\n\n var slidesToOffset = 0;\n\n if (infinite) {\n slidesToOffset = -getPreClones(spec); // bring active slide to the beginning of visual area\n // if next scroll doesn't have enough children, just reach till the end of original slides instead of shifting slidesToScroll children\n\n if (slideCount % slidesToScroll !== 0 && slideIndex + slidesToScroll > slideCount) {\n slidesToOffset = -(slideIndex > slideCount ? slidesToShow - (slideIndex - slideCount) : slideCount % slidesToScroll);\n } // shift current slide to center of the frame\n\n\n if (centerMode) {\n slidesToOffset += parseInt(slidesToShow / 2);\n }\n } else {\n if (slideCount % slidesToScroll !== 0 && slideIndex + slidesToScroll > slideCount) {\n slidesToOffset = slidesToShow - slideCount % slidesToScroll;\n }\n\n if (centerMode) {\n slidesToOffset = parseInt(slidesToShow / 2);\n }\n }\n\n slideOffset = slidesToOffset * slideWidth;\n verticalOffset = slidesToOffset * slideHeight;\n\n if (!vertical) {\n targetLeft = slideIndex * slideWidth * -1 + slideOffset;\n } else {\n targetLeft = slideIndex * slideHeight * -1 + verticalOffset;\n }\n\n if (variableWidth === true) {\n var targetSlideIndex;\n\n var trackElem = _reactDom[\"default\"].findDOMNode(trackRef);\n\n targetSlideIndex = slideIndex + getPreClones(spec);\n targetSlide = trackElem && trackElem.childNodes[targetSlideIndex];\n targetLeft = targetSlide ? targetSlide.offsetLeft * -1 : 0;\n\n if (centerMode === true) {\n targetSlideIndex = infinite ? slideIndex + getPreClones(spec) : slideIndex;\n targetSlide = trackElem && trackElem.children[targetSlideIndex];\n targetLeft = 0;\n\n for (var slide = 0; slide < targetSlideIndex; slide++) {\n targetLeft -= trackElem && trackElem.children[slide] && trackElem.children[slide].offsetWidth;\n }\n\n targetLeft -= parseInt(spec.centerPadding);\n targetLeft += targetSlide && (listWidth - targetSlide.offsetWidth) / 2;\n }\n }\n\n return targetLeft;\n};\n\nexports.getTrackLeft = getTrackLeft;\n\nvar getPreClones = function getPreClones(spec) {\n if (spec.unslick || !spec.infinite) {\n return 0;\n }\n\n if (spec.variableWidth) {\n return spec.slideCount;\n }\n\n return spec.slidesToShow + (spec.centerMode ? 1 : 0);\n};\n\nexports.getPreClones = getPreClones;\n\nvar getPostClones = function getPostClones(spec) {\n if (spec.unslick || !spec.infinite) {\n return 0;\n }\n\n return spec.slideCount;\n};\n\nexports.getPostClones = getPostClones;\n\nvar getTotalSlides = function getTotalSlides(spec) {\n return spec.slideCount === 1 ? 1 : getPreClones(spec) + spec.slideCount + getPostClones(spec);\n};\n\nexports.getTotalSlides = getTotalSlides;\n\nvar siblingDirection = function siblingDirection(spec) {\n if (spec.targetSlide > spec.currentSlide) {\n if (spec.targetSlide > spec.currentSlide + slidesOnRight(spec)) {\n return \"left\";\n }\n\n return \"right\";\n } else {\n if (spec.targetSlide < spec.currentSlide - slidesOnLeft(spec)) {\n return \"right\";\n }\n\n return \"left\";\n }\n};\n\nexports.siblingDirection = siblingDirection;\n\nvar slidesOnRight = function slidesOnRight(_ref) {\n var slidesToShow = _ref.slidesToShow,\n centerMode = _ref.centerMode,\n rtl = _ref.rtl,\n centerPadding = _ref.centerPadding;\n\n // returns no of slides on the right of active slide\n if (centerMode) {\n var right = (slidesToShow - 1) / 2 + 1;\n if (parseInt(centerPadding) > 0) right += 1;\n if (rtl && slidesToShow % 2 === 0) right += 1;\n return right;\n }\n\n if (rtl) {\n return 0;\n }\n\n return slidesToShow - 1;\n};\n\nexports.slidesOnRight = slidesOnRight;\n\nvar slidesOnLeft = function slidesOnLeft(_ref2) {\n var slidesToShow = _ref2.slidesToShow,\n centerMode = _ref2.centerMode,\n rtl = _ref2.rtl,\n centerPadding = _ref2.centerPadding;\n\n // returns no of slides on the left of active slide\n if (centerMode) {\n var left = (slidesToShow - 1) / 2 + 1;\n if (parseInt(centerPadding) > 0) left += 1;\n if (!rtl && slidesToShow % 2 === 0) left += 1;\n return left;\n }\n\n if (rtl) {\n return slidesToShow - 1;\n }\n\n return 0;\n};\n\nexports.slidesOnLeft = slidesOnLeft;\n\nvar canUseDOM = function canUseDOM() {\n return !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\n};\n\nexports.canUseDOM = canUseDOM;","/**\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","var camel2hyphen = function (str) {\n return str\n .replace(/[A-Z]/g, function (match) {\n return '-' + match.toLowerCase();\n })\n .toLowerCase();\n};\n\nmodule.exports = camel2hyphen;","var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _templateObject = _taggedTemplateLiteral(['@media (', ': ', 'em) {\\n ', '\\n }'], ['@media (', ': ', 'em) {\\n ', '\\n }']),\n _templateObject2 = _taggedTemplateLiteral(['@media (min-width: ', 'em) and (max-width: ', 'em) {\\n ', '\\n }'], ['@media (min-width: ', 'em) and (max-width: ', 'em) {\\n ', '\\n }']);\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\n/* global process */\nimport { css } from 'styled-components';\n\n// eslint-disable-line no-undef\n\nfunction convertPxToEm(pixels) {\n // @media is always calculated off 16px regardless of whether the root font size is the default or not\n return pixels / 16;\n}\n\nfunction getValueFromName(breakpoints, name) {\n var value = breakpoints[name];\n if (process.env.NODE_ENV !== 'production' && typeof value === 'undefined') {\n console.error('A breakpoint named \"' + name + '\" does not exist.'); // eslint-disable-line no-console\n return 0;\n }\n return value;\n}\n\nfunction withSingleCriteria(breakpoints, name, operator) {\n var offset = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n\n var value = getValueFromName(breakpoints, name);\n\n // special case for 0 to avoid wrapping styles in an unnecessary @media block\n // FIXME: typings\n // if (operator === 'max-width' && value === 0) {\n // return () => '';\n // }\n\n // special case for 0 to avoid wrapping styles in an unnecessary @media block\n if (operator === 'min-width' && value === 0) {\n return function (strings) {\n for (var _len = arguments.length, interpolations = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n interpolations[_key - 1] = arguments[_key];\n }\n\n return css.apply(undefined, [strings].concat(_toConsumableArray(interpolations)));\n };\n }\n\n return function (strings) {\n for (var _len2 = arguments.length, interpolations = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n interpolations[_key2 - 1] = arguments[_key2];\n }\n\n return css(_templateObject, operator, convertPxToEm(value + offset), css.apply(undefined, [strings].concat(_toConsumableArray(interpolations))));\n };\n}\n\nexport function _gt(breakpoints, name) {\n return withSingleCriteria(breakpoints, name, 'min-width', +1);\n}\n\nexport function _gte(breakpoints, name) {\n return withSingleCriteria(breakpoints, name, 'min-width');\n}\n\nexport function _lt(breakpoints, name) {\n return withSingleCriteria(breakpoints, name, 'max-width', -1);\n}\n\nexport function _lte(breakpoints, name) {\n return withSingleCriteria(breakpoints, name, 'max-width');\n}\n\nexport function _between(breakpoints, gte, lt) {\n var gteValue = getValueFromName(breakpoints, gte);\n var ltValue = getValueFromName(breakpoints, lt);\n return function (strings) {\n for (var _len3 = arguments.length, interpolations = Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {\n interpolations[_key3 - 1] = arguments[_key3];\n }\n\n return css(_templateObject2, convertPxToEm(gteValue), convertPxToEm(ltValue - 1), css.apply(undefined, [strings].concat(_toConsumableArray(interpolations))));\n };\n}\n\nexport function _breakpoint(breakpoints, gte, lt) {\n if (typeof lt === 'undefined') {\n return _gte(breakpoints, gte);\n } else {\n return _between(breakpoints, gte, lt);\n }\n};\n\n// TODO: allow the operator to be customised\nexport function _map(breakpoints, value, mapValueToCSS) {\n var values = value;\n\n if (values === null || (typeof values === 'undefined' ? 'undefined' : _typeof(values)) !== 'object') {\n return mapValueToCSS(values);\n }\n\n return [\n // eslint-disable-next-line no-undefined\n mapValueToCSS(undefined)].concat(_toConsumableArray(Object.keys(values).map(function (name) {\n var tag = _gte(breakpoints, name);\n var val = values[name];\n var styles = tag([], [].concat(mapValueToCSS(val)));\n return styles;\n })));\n};","function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nimport { _breakpoint, _map } from './core';\n\nvar defaultBreakpoints = {\n mobile: 0, // targeting all devices\n tablet: 737, // targeting devices that are LARGER than the iPhone 6 Plus (which is 736px in landscape mode)\n desktop: 1025 // targeting devices that are LARGER than the iPad (which is 1024px in landscape mode)\n};\n\nfunction breakpoint(gte, lt) {\n return function (strings) {\n for (var _len = arguments.length, interpolations = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n interpolations[_key - 1] = arguments[_key];\n }\n\n return function (_ref) {\n var _ref$theme = _ref.theme,\n theme = _ref$theme === undefined ? {} : _ref$theme;\n\n return _breakpoint(theme.breakpoints || defaultBreakpoints, gte, lt).apply(undefined, [strings].concat(_toConsumableArray(interpolations)));\n };\n };\n}\n\nexport function map(value, mapValueToCSS) {\n return function (_ref2) {\n var _ref2$theme = _ref2.theme,\n theme = _ref2$theme === undefined ? {} : _ref2$theme;\n\n return _map(theme.breakpoints || defaultBreakpoints, value, mapValueToCSS);\n };\n}\n\nexport function createStatic() {\n var breakpoints = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultBreakpoints;\n\n return Object.keys(breakpoints).reduce(function (accum, name) {\n accum[name] = _breakpoint(breakpoints, name);\n return accum;\n }, {\n breakpoint: function breakpoint(gte, lt) {\n return _breakpoint(breakpoints, gte, lt);\n },\n map: function map(value, mapValueToCSS) {\n return _map(breakpoints, value, mapValueToCSS);\n }\n });\n}\n\nexport default breakpoint;","var candidateSelectors = [\n 'input',\n 'select',\n 'textarea',\n 'a[href]',\n 'button',\n '[tabindex]',\n 'audio[controls]',\n 'video[controls]',\n '[contenteditable]:not([contenteditable=\"false\"])',\n];\nvar candidateSelector = candidateSelectors.join(',');\n\nvar matches = typeof Element === 'undefined'\n ? function () {}\n : Element.prototype.matches || Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector;\n\nfunction tabbable(el, options) {\n options = options || {};\n\n var elementDocument = el.ownerDocument || el;\n var regularTabbables = [];\n var orderedTabbables = [];\n\n var untouchabilityChecker = new UntouchabilityChecker(elementDocument);\n var candidates = el.querySelectorAll(candidateSelector);\n\n if (options.includeContainer) {\n if (matches.call(el, candidateSelector)) {\n candidates = Array.prototype.slice.apply(candidates);\n candidates.unshift(el);\n }\n }\n\n var i, candidate, candidateTabindex;\n for (i = 0; i < candidates.length; i++) {\n candidate = candidates[i];\n\n if (!isNodeMatchingSelectorTabbable(candidate, untouchabilityChecker)) continue;\n\n candidateTabindex = getTabindex(candidate);\n if (candidateTabindex === 0) {\n regularTabbables.push(candidate);\n } else {\n orderedTabbables.push({\n documentOrder: i,\n tabIndex: candidateTabindex,\n node: candidate,\n });\n }\n }\n\n var tabbableNodes = orderedTabbables\n .sort(sortOrderedTabbables)\n .map(function(a) { return a.node })\n .concat(regularTabbables);\n\n return tabbableNodes;\n}\n\ntabbable.isTabbable = isTabbable;\ntabbable.isFocusable = isFocusable;\n\nfunction isNodeMatchingSelectorTabbable(node, untouchabilityChecker) {\n if (\n !isNodeMatchingSelectorFocusable(node, untouchabilityChecker)\n || isNonTabbableRadio(node)\n || getTabindex(node) < 0\n ) {\n return false;\n }\n return true;\n}\n\nfunction isTabbable(node, untouchabilityChecker) {\n if (!node) throw new Error('No node provided');\n if (matches.call(node, candidateSelector) === false) return false;\n return isNodeMatchingSelectorTabbable(node, untouchabilityChecker);\n}\n\nfunction isNodeMatchingSelectorFocusable(node, untouchabilityChecker) {\n untouchabilityChecker = untouchabilityChecker || new UntouchabilityChecker(node.ownerDocument || node);\n if (\n node.disabled\n || isHiddenInput(node)\n || untouchabilityChecker.isUntouchable(node)\n ) {\n return false;\n }\n return true;\n}\n\nvar focusableCandidateSelector = candidateSelectors.concat('iframe').join(',');\nfunction isFocusable(node, untouchabilityChecker) {\n if (!node) throw new Error('No node provided');\n if (matches.call(node, focusableCandidateSelector) === false) return false;\n return isNodeMatchingSelectorFocusable(node, untouchabilityChecker);\n}\n\nfunction getTabindex(node) {\n var tabindexAttr = parseInt(node.getAttribute('tabindex'), 10);\n if (!isNaN(tabindexAttr)) return tabindexAttr;\n // Browsers do not return `tabIndex` correctly for contentEditable nodes;\n // so if they don't have a tabindex attribute specifically set, assume it's 0.\n if (isContentEditable(node)) return 0;\n return node.tabIndex;\n}\n\nfunction sortOrderedTabbables(a, b) {\n return a.tabIndex === b.tabIndex ? a.documentOrder - b.documentOrder : a.tabIndex - b.tabIndex;\n}\n\n// Array.prototype.find not available in IE.\nfunction find(list, predicate) {\n for (var i = 0, length = list.length; i < length; i++) {\n if (predicate(list[i])) return list[i];\n }\n}\n\nfunction isContentEditable(node) {\n return node.contentEditable === 'true';\n}\n\nfunction isInput(node) {\n return node.tagName === 'INPUT';\n}\n\nfunction isHiddenInput(node) {\n return isInput(node) && node.type === 'hidden';\n}\n\nfunction isRadio(node) {\n return isInput(node) && node.type === 'radio';\n}\n\nfunction isNonTabbableRadio(node) {\n return isRadio(node) && !isTabbableRadio(node);\n}\n\nfunction getCheckedRadio(nodes) {\n for (var i = 0; i < nodes.length; i++) {\n if (nodes[i].checked) {\n return nodes[i];\n }\n }\n}\n\nfunction isTabbableRadio(node) {\n if (!node.name) return true;\n // This won't account for the edge case where you have radio groups with the same\n // in separate forms on the same page.\n var radioSet = node.ownerDocument.querySelectorAll('input[type=\"radio\"][name=\"' + node.name + '\"]');\n var checked = getCheckedRadio(radioSet);\n return !checked || checked === node;\n}\n\n// An element is \"untouchable\" if *it or one of its ancestors* has\n// `visibility: hidden` or `display: none`.\nfunction UntouchabilityChecker(elementDocument) {\n this.doc = elementDocument;\n // Node cache must be refreshed on every check, in case\n // the content of the element has changed. The cache contains tuples\n // mapping nodes to their boolean result.\n this.cache = [];\n}\n\n// getComputedStyle accurately reflects `visibility: hidden` of ancestors\n// but not `display: none`, so we need to recursively check parents.\nUntouchabilityChecker.prototype.hasDisplayNone = function hasDisplayNone(node, nodeComputedStyle) {\n if (node.nodeType !== Node.ELEMENT_NODE) return false;\n\n // Search for a cached result.\n var cached = find(this.cache, function(item) {\n return item === node;\n });\n if (cached) return cached[1];\n\n nodeComputedStyle = nodeComputedStyle || this.doc.defaultView.getComputedStyle(node);\n\n var result = false;\n\n if (nodeComputedStyle.display === 'none') {\n result = true;\n } else if (node.parentNode) {\n result = this.hasDisplayNone(node.parentNode);\n }\n\n this.cache.push([node, result]);\n\n return result;\n}\n\nUntouchabilityChecker.prototype.isUntouchable = function isUntouchable(node) {\n if (node === this.doc.documentElement) return false;\n var computedStyle = this.doc.defaultView.getComputedStyle(node);\n if (this.hasDisplayNone(node, computedStyle)) return true;\n return computedStyle.visibility === 'hidden';\n}\n\nmodule.exports = tabbable;\n","import deep from 'deep-diff';\nimport nested from 'nested-property';\n\nfunction isPlainObj() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return args.every(function (d) {\n if (!d) return false;\n var prototype = Object.getPrototypeOf(d);\n return Object.prototype.toString.call(d).slice(8, -1) === 'Object' && (prototype === null || prototype === Object.getPrototypeOf({}));\n });\n}\nfunction isArray() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n return args.every(function (d) {\n return Array.isArray(d);\n });\n}\nfunction isNumber() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n return args.every(function (d) {\n return typeof d === 'number';\n });\n}\nfunction treeChanges(data, nextData) {\n if (!data || !nextData) {\n throw new Error('Missing required parameters');\n }\n return {\n changed: function changed(key) {\n var left = nested.get(data, key);\n var right = nested.get(nextData, key);\n if (isArray(left, right) || isPlainObj(left, right)) {\n var diff = deep.diff(left, right);\n return !!diff;\n }\n return left !== right;\n },\n changedFrom: function changedFrom(key, previous, actual) {\n if (!key) {\n throw new Error('Key parameter is required');\n }\n var useActual = typeof previous !== 'undefined' && typeof actual !== 'undefined';\n var left = nested.get(data, key);\n var right = nested.get(nextData, key);\n var leftComparator = Array.isArray(previous) ? previous.includes(left) : left === previous;\n var rightComparator = Array.isArray(actual) ? actual.includes(right) : right === actual;\n return leftComparator && (useActual ? rightComparator : !useActual);\n },\n changedTo: function changedTo(key, actual) {\n if (!key) {\n throw new Error('Key parameter is required');\n }\n var left = nested.get(data, key);\n var right = nested.get(nextData, key);\n var leftComparator = Array.isArray(actual) ? !actual.includes(left) : left !== actual;\n var rightComparator = Array.isArray(actual) ? actual.includes(right) : right === actual;\n return leftComparator && rightComparator;\n },\n increased: function increased(key) {\n if (!key) {\n throw new Error('Key parameter is required');\n }\n return isNumber(nested.get(data, key), nested.get(nextData, key)) && nested.get(data, key) < nested.get(nextData, key);\n },\n decreased: function decreased(key) {\n if (!key) {\n throw new Error('Key parameter is required');\n }\n return isNumber(nested.get(data, key), nested.get(nextData, key)) && nested.get(data, key) > nested.get(nextData, key);\n }\n };\n}\n\nexport default treeChanges;\n","module.exports = extend\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nfunction extend() {\n var target = {}\n\n for (var i = 0; i < arguments.length; i++) {\n var source = arguments[i]\n\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n target[key] = source[key]\n }\n }\n }\n\n return target\n}\n"],"sourceRoot":""}