{"version":3,"sources":["../node_modules/react/index.js","../node_modules/react/jsx-runtime.js","../node_modules/prop-types/index.js","../node_modules/swiper/esm/react/utils.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/classnames/index.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../../../src/errors.js","../../../src/impl/formats.js","../../../src/impl/util.js","../../../src/impl/english.js","../../../src/impl/formatter.js","../../../src/impl/invalid.js","../../../src/zone.js","../../../src/zones/localZone.js","../../../src/zones/IANAZone.js","../../../src/zones/fixedOffsetZone.js","../../../src/zones/invalidZone.js","../../../src/impl/zoneUtil.js","../../../src/settings.js","../../../src/impl/locale.js","../../../src/impl/regexParser.js","../../../src/duration.js","../../../src/interval.js","../../../src/info.js","../../../src/impl/diff.js","../../../src/impl/digits.js","../../../src/impl/tokenParser.js","../../../src/impl/conversions.js","../../../src/datetime.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/regenerator/index.js","../node_modules/swiper/esm/react/use-isomorphic-layout-effect.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/object-assign/index.js","../node_modules/react-modal/lib/helpers/safeHTMLElement.js","../node_modules/react-dom/index.js","../node_modules/react-modal/lib/index.js","../node_modules/react-is/index.js","../node_modules/react-modal/lib/helpers/tabbable.js","../node_modules/react-modal/lib/helpers/ariaAppHider.js","../node_modules/react-modal/lib/helpers/portalOpenInstances.js","../node_modules/fast-deep-equal/react.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../../src/index.ts","../node_modules/downshift/dist/downshift.esm.js","../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/scheduler/index.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/regenerator-runtime/runtime.js","../node_modules/react-modal/lib/components/Modal.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/react-modal/lib/components/ModalPortal.js","../node_modules/react-modal/lib/helpers/focusManager.js","../node_modules/react-modal/lib/helpers/scopeTab.js","../node_modules/warning/warning.js","../node_modules/exenv/index.js","../node_modules/react-modal/lib/helpers/classList.js","../node_modules/react-modal/lib/helpers/bodyTrap.js","../node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js","../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/swiper/esm/react/swiper-slide.js","../node_modules/ssr-window/ssr-window.esm.js","../node_modules/dom7/dom7.esm.js","../node_modules/swiper/esm/utils/dom.js","../node_modules/swiper/esm/utils/get-support.js","../node_modules/swiper/esm/utils/get-device.js","../node_modules/swiper/esm/utils/get-browser.js","../node_modules/swiper/esm/utils/utils.js","../node_modules/swiper/esm/modules/resize/resize.js","../node_modules/swiper/esm/modules/observer/observer.js","../node_modules/swiper/esm/components/core/events/onTouchStart.js","../node_modules/swiper/esm/components/core/events/onTouchMove.js","../node_modules/swiper/esm/components/core/events/onTouchEnd.js","../node_modules/swiper/esm/components/core/events/onResize.js","../node_modules/swiper/esm/components/core/events/onClick.js","../node_modules/swiper/esm/components/core/events/onScroll.js","../node_modules/swiper/esm/components/core/events/index.js","../node_modules/swiper/esm/components/core/check-overflow/index.js","../node_modules/swiper/esm/components/core/defaults.js","../node_modules/swiper/esm/components/core/core-class.js","../node_modules/swiper/esm/components/core/modular.js","../node_modules/swiper/esm/components/core/events-emitter.js","../node_modules/swiper/esm/components/core/update/index.js","../node_modules/swiper/esm/components/core/update/updateSize.js","../node_modules/swiper/esm/components/core/update/updateSlides.js","../node_modules/swiper/esm/components/core/update/updateAutoHeight.js","../node_modules/swiper/esm/components/core/update/updateSlidesOffset.js","../node_modules/swiper/esm/components/core/update/updateSlidesProgress.js","../node_modules/swiper/esm/components/core/update/updateProgress.js","../node_modules/swiper/esm/components/core/update/updateSlidesClasses.js","../node_modules/swiper/esm/components/core/update/updateActiveIndex.js","../node_modules/swiper/esm/components/core/update/updateClickedSlide.js","../node_modules/swiper/esm/components/core/translate/index.js","../node_modules/swiper/esm/components/core/translate/getTranslate.js","../node_modules/swiper/esm/components/core/translate/setTranslate.js","../node_modules/swiper/esm/components/core/translate/minTranslate.js","../node_modules/swiper/esm/components/core/translate/maxTranslate.js","../node_modules/swiper/esm/components/core/translate/translateTo.js","../node_modules/swiper/esm/components/core/transition/index.js","../node_modules/swiper/esm/components/core/transition/setTransition.js","../node_modules/swiper/esm/components/core/transition/transitionStart.js","../node_modules/swiper/esm/components/core/transition/transitionEnd.js","../node_modules/swiper/esm/components/core/slide/index.js","../node_modules/swiper/esm/components/core/slide/slideTo.js","../node_modules/swiper/esm/components/core/slide/slideToLoop.js","../node_modules/swiper/esm/components/core/slide/slideNext.js","../node_modules/swiper/esm/components/core/slide/slidePrev.js","../node_modules/swiper/esm/components/core/slide/slideReset.js","../node_modules/swiper/esm/components/core/slide/slideToClosest.js","../node_modules/swiper/esm/components/core/slide/slideToClickedSlide.js","../node_modules/swiper/esm/components/core/loop/index.js","../node_modules/swiper/esm/components/core/loop/loopCreate.js","../node_modules/swiper/esm/components/core/loop/loopFix.js","../node_modules/swiper/esm/components/core/loop/loopDestroy.js","../node_modules/swiper/esm/components/core/grab-cursor/index.js","../node_modules/swiper/esm/components/core/grab-cursor/setGrabCursor.js","../node_modules/swiper/esm/components/core/grab-cursor/unsetGrabCursor.js","../node_modules/swiper/esm/components/core/manipulation/index.js","../node_modules/swiper/esm/components/core/manipulation/appendSlide.js","../node_modules/swiper/esm/components/core/manipulation/prependSlide.js","../node_modules/swiper/esm/components/core/manipulation/addSlide.js","../node_modules/swiper/esm/components/core/manipulation/removeSlide.js","../node_modules/swiper/esm/components/core/manipulation/removeAllSlides.js","../node_modules/swiper/esm/components/core/breakpoints/index.js","../node_modules/swiper/esm/components/core/breakpoints/setBreakpoint.js","../node_modules/swiper/esm/components/core/breakpoints/getBreakpoint.js","../node_modules/swiper/esm/components/core/classes/index.js","../node_modules/swiper/esm/components/core/classes/addClasses.js","../node_modules/swiper/esm/components/core/classes/removeClasses.js","../node_modules/swiper/esm/components/core/images/index.js","../node_modules/swiper/esm/components/core/images/loadImage.js","../node_modules/swiper/esm/components/core/images/preloadImages.js","../node_modules/swiper/esm/react/params-list.js","../node_modules/swiper/esm/react/loop.js","../node_modules/swiper/esm/react/swiper.js","../node_modules/swiper/esm/react/get-params.js","../node_modules/swiper/esm/react/get-children.js","../node_modules/swiper/esm/react/get-changed-params.js","../node_modules/swiper/esm/react/update-swiper.js","../node_modules/swiper/esm/react/virtual.js","../node_modules/swiper/esm/react/init-swiper.js","../node_modules/react-use/esm/useIsomorphicLayoutEffect.js","../node_modules/react-use/esm/util.js","../node_modules/react-use/esm/useMeasure.js"],"names":["module","exports","require","isObject","o","constructor","Object","extend","target","src","keys","forEach","key","length","needsNavigation","params","navigation","nextEl","prevEl","needsPagination","pagination","el","needsScrollbar","scrollbar","uniqueClasses","classNames","classes","split","map","c","trim","filter","unique","indexOf","push","join","_slicedToArray","arr","i","Array","isArray","Symbol","iterator","_arr","_n","_d","_e","undefined","_s","_i","next","done","value","err","unsupportedIterableToArray","TypeError","hasOwn","hasOwnProperty","arguments","arg","argType","inner","apply","call","default","_defineProperty","obj","defineProperty","enumerable","configurable","writable","ownKeys","object","enumerableOnly","getOwnPropertySymbols","symbols","sym","getOwnPropertyDescriptor","_objectSpread2","source","getOwnPropertyDescriptors","defineProperties","LuxonError","Error","InvalidDateTimeError","reason","InvalidIntervalError","InvalidDurationError","ConflictingSpecificationError","InvalidUnitError","InvalidArgumentError","ZoneIsAbstractError","n","s","l","DATE_SHORT","year","month","day","DATE_MED","DATE_MED_WITH_WEEKDAY","weekday","DATE_FULL","DATE_HUGE","TIME_SIMPLE","hour","minute","TIME_WITH_SECONDS","second","TIME_WITH_SHORT_OFFSET","timeZoneName","TIME_WITH_LONG_OFFSET","TIME_24_SIMPLE","hour12","TIME_24_WITH_SECONDS","TIME_24_WITH_SHORT_OFFSET","TIME_24_WITH_LONG_OFFSET","DATETIME_SHORT","DATETIME_SHORT_WITH_SECONDS","DATETIME_MED","DATETIME_MED_WITH_SECONDS","DATETIME_MED_WITH_WEEKDAY","DATETIME_FULL","DATETIME_FULL_WITH_SECONDS","DATETIME_HUGE","DATETIME_HUGE_WITH_SECONDS","isUndefined","isNumber","isInteger","hasIntl","Intl","e","hasFormatToParts","hasRelative","bestBy","by","compare","pair","best","pick","a","prop","integerBetween","thing","bottom","top","padStart","input","repeat","parseInteger","string","parseInt","parseMillis","fraction","f","parseFloat","Math","roundTo","number","digits","towardZero","factor","rounder","isLeapYear","daysInYear","daysInMonth","modMonth","x","floorMod","objToLocalTS","d","Date","weeksInWeekYear","weekYear","p1","last","p2","untruncateYear","parseZoneInfo","ts","offsetFormat","locale","timeZone","date","intlOpts","modified","intl","parsed","m","without","included","diffed","signedOffset","offHourStr","offMinuteStr","offHour","Number","offMin","asNumber","numericValue","normalizeObject","normalizer","nonUnitKeys","normalized","v","formatOffset","offset","format","hours","minutes","sign","RangeError","timeObject","ianaRegex","stringify","JSON","monthsLong","monthsShort","monthsNarrow","months","weekdaysLong","weekdaysShort","weekdaysNarrow","weekdays","meridiems","erasLong","erasShort","erasNarrow","eras","stringifyTokens","splits","tokenToString","token","macroTokenToFormatOpts","D","DD","DDD","DDDD","t","tt","ttt","tttt","T","TT","TTT","TTTT","ff","fff","ffff","F","FF","FFF","FFFF","Formats","Formatter","this","create","opts","parseFormat","current","currentFull","bracketed","fmt","literal","val","formatWithSystemDefault","systemLoc","loc","dtFormatter","dt","formatDateTime","formatDateTimeParts","resolvedOptions","num","p","numberFormatter","formatDateTimeFromString","knownEnglish","listingMode","useDateTimeFormatter","outputCalendar","extract","meridiem","English","standalone","era","allowZ","formatOpts","maybeMacro","formatDurationFromString","lildur","tokenToField","tokens","realTokens","found","collapsed","dur","mapped","Invalid","toMessage","Zone","offsetName","equals","singleton","LocalZone","otherZone","matchingRegex","RegExp","dtfCache","typeToPos","ianaZoneCache","IANAZone","resetCache","isValidSpecifier","isValidZone","zone","parseGMTOffset","match","specifier","dtf","formatted","filled","type","pos","partsOffset","exec","fMonth","fDay","hackyOffset","asTS","over","millisecond","FixedOffsetZone","instance","parseSpecifier","r","fixed","InvalidZone","normalizeZone","defaultZone","lowered","now","defaultLocale","defaultNumberingSystem","defaultOutputCalendar","throwOnInvalid","Settings","resetCaches","Locale","z","numberingSystem","intlDTCache","getCachedDTF","locString","intlNumCache","intlRelCache","getCachedRTF","cacheKeyOpts","inf","sysLocaleCache","listStuff","defaultOK","englishFn","intlFn","mode","PolyNumberFormatter","forceSimple","useGrouping","getCachedINF","floor","PolyDateFormatter","DateTime","tokenFormat","knownFormat","dateTimeHuge","formatToParts","PolyRelFormatter","style","isEnglish","rtf","count","unit","numeric","narrow","units","years","quarters","weeks","days","seconds","lastable","isDay","isInPast","fmtValue","singular","lilUnits","fmtUnit","localeStr","uIndex","smaller","options","parseLocaleString","parsedLocale","parsedNumberingSystem","parsedOutputCalendar","numbering","intlConfigString","fromOpts","defaultToEN","specifiedLocale","computedSys","systemLocale","fromObject","hasFTP","isActuallyEn","hasNoWeirdness","clone","alts","redefaultToEN","redefaultToSystem","formatStr","ms","mapMonths","mapWeekdays","matching","relFormatter","toLowerCase","other","fastNumbersCached","combineRegexes","regexes","full","combineExtractors","extractors","mergedVals","mergedZone","cursor","ex","parse","patterns","regex","extractor","simpleParse","ret","offsetRegex","isoTimeBaseRegex","isoTimeRegex","isoTimeExtensionRegex","extractISOWeekData","extractISOOrdinalData","sqlTimeRegex","sqlTimeExtensionRegex","int","fallback","extractISOYmd","extractISOTime","extractISOOffset","local","fullOffset","extractIANAZone","isoDuration","extractISODuration","yearStr","monthStr","weekStr","dayStr","hourStr","minuteStr","secondStr","millisecondsStr","hasNegativePrefix","maybeNegate","milliseconds","obsOffsets","GMT","EDT","EST","CDT","CST","MDT","MST","PDT","PST","fromStrings","weekdayStr","result","rfc2822","extractRFC2822","obsOffset","milOffset","rfc1123","rfc850","ascii","extractRFC1123Or850","extractASCII","isoYmdWithTimeExtensionRegex","isoWeekWithTimeExtensionRegex","isoOrdinalWithTimeExtensionRegex","isoTimeCombinedRegex","extractISOYmdTimeAndOffset","extractISOWeekTimeAndOffset","extractISOOrdinalDataAndTime","extractISOTimeAndOffset","sqlYmdWithTimeExtensionRegex","sqlTimeCombinedRegex","extractISOYmdTimeOffsetAndIANAZone","extractISOTimeOffsetAndIANAZone","lowOrderMatrix","casualMatrix","daysInYearAccurate","daysInMonthAccurate","accurateMatrix","orderedUnits","reverseUnits","clear","conf","values","conversionAccuracy","Duration","convert","matrix","fromMap","fromUnit","toMap","toUnit","conv","raw","added","antiTrunc","accurate","config","fromMillis","fromISO","parseISODuration","invalid","explanation","normalizeUnit","quarter","week","isDuration","toFormat","fmtOpts","isValid","toObject","base","toISO","toJSON","toString","valueOf","as","plus","friendlyDuration","k","get","minus","mapUnits","fn","set","reconfigure","shiftTo","normalize","vals","previous","normalizeValues","u","built","accumulated","lastUnit","own","ak","negate","negated","durationish","INVALID","validateStartEnd","start","end","Interval","fromDateTimes","builtStart","friendlyDateTime","builtEnd","validateError","after","before","text","startIsValid","endIsValid","isInterval","toDuration","NaN","startOf","hasSame","isEmpty","isAfter","isBefore","contains","dateTime","splitAt","dateTimes","sorted","results","splitBy","divideEqually","overlaps","abutsStart","abutsEnd","engulfs","intersection","union","merge","intervals","b","sofar","final","xor","currentCount","ends","time","difference","concat","toISODate","toISOTime","separator","diff","mapEndpoints","mapFn","invalidReason","Info","hasDST","proto","isValidIANAZone","monthsFormat","weekdaysFormat","features","intlTokens","zones","relative","dayDiff","earlier","later","utcDayStart","keepLocalTime","differ","lowestOrder","delta","highWater","highOrderDiffs","remainingMillis","lowerOrderUnits","duration","numberingSystems","arab","arabext","bali","beng","deva","fullwide","gujr","hanidec","khmr","knda","laoo","limb","mlym","mong","mymr","orya","tamldec","telu","thai","tibt","latn","numberingSystemsUTF16","hanidecChars","digitRegex","append","intUnit","post","deser","str","isNaN","code","min","max","parseDigits","spaceOrNBSP","String","spaceOrNBSPRegExp","fixListRegex","stripInsensitivities","oneOf","strings","startIndex","groups","simple","partTypeStyleToTokenVal","short","long","dayperiod","dayPeriod","dummyDateTimeCache","maybeExpandMacroToken","formatter","part","tokenForPart","explainFromTokens","expandMacroTokens","one","two","three","four","six","oneOrTwo","oneToThree","oneToSix","oneToNine","twoToFour","fourToSix","unitate","unitForToken","disqualifyingUnit","buildRegex","regexString","handlers","matches","all","matchIndex","h","rawMatches","toField","dateTimeFromMatches","nonLeapLadder","leapLadder","unitOutOfRange","dayOfWeek","js","computeOrdinal","uncomputeOrdinal","ordinal","table","month0","gregorianToWeek","gregObj","weekNumber","weekToGregorian","weekData","weekdayOfJan4","yearInDays","gregorianToOrdinal","gregData","ordinalToGregorian","ordinalData","hasInvalidGregorianData","validYear","validMonth","validDay","hasInvalidTimeData","validHour","validMinute","validSecond","validMillisecond","MAX_DATE","unsupportedZone","possiblyCachedWeekData","inst","old","fixOffset","localTS","tz","utcGuess","o2","o3","tsToObj","objToTS","adjustTime","oPre","millisToAdd","parseDataToDateTime","parsedZone","setZone","interpretationZone","toTechFormat","toTechTimeFormat","suppressSeconds","suppressMilliseconds","includeOffset","includeZone","spaceZone","defaultUnitValues","defaultWeekUnitValues","defaultOrdinalUnitValues","orderedWeekUnits","orderedOrdinalUnits","weeknumber","weeksnumber","weeknumbers","weekyear","weekyears","quickDT","tsNow","diffRelative","round","ot","utc","utcInstance","fromJSDate","isDate","zoneToUse","fromSeconds","offsetProvis","containsOrdinal","containsGregorYear","containsGregorMD","containsGregor","definiteWeekDef","useWeekData","objNow","defaultValues","foundFirst","validWeek","validWeekday","hasInvalidWeekData","validOrdinal","hasInvalidOrdinalData","parseISODate","fromRFC2822","preprocessRFC2822","parseRFC2822Date","fromHTTP","parseHTTPDate","fromFormat","parseFromTokens","fromString","fromSQL","parseSQL","isDateTime","resolvedLocaleOpts","toUTC","toLocal","keepCalendarTime","newTS","offsetGuess","setLocale","mixed","normalizedUnit","q","endOf","toLocaleString","toLocaleParts","toISOWeekDate","toRFC2822","toHTTP","toSQLDate","toSQLTime","toSQL","toMillis","toSeconds","toBSON","toJSDate","otherDateTime","durOpts","maybeArray","otherIsLater","diffNow","until","inputMs","toRelative","padding","toRelativeCalendar","calendary","fromFormatExplain","fromStringExplain","dateTimeish","useIsomorphicLayoutEffect","callback","deps","window","useEffect","useLayoutEffect","_toConsumableArray","arrayLikeToArray","iter","from","asyncGeneratorStep","gen","resolve","reject","_next","_throw","info","error","Promise","then","_asyncToGenerator","self","args","_arrayLikeToArray","len","arr2","_unsupportedIterableToArray","minLen","prototype","slice","name","test","propIsEnumerable","propertyIsEnumerable","assign","test1","getOwnPropertyNames","test2","fromCharCode","test3","letter","shouldUseNative","to","canUseDOM","_exenv","EE","__esModule","SafeHTMLElement","HTMLElement","checkDCE","__REACT_DEVTOOLS_GLOBAL_HOOK__","console","_Modal","_Modal2","element","querySelectorAll","tabbable","tabbableNode","hidesContents","zeroSize","offsetWidth","offsetHeight","innerHTML","getComputedStyle","getPropertyValue","scrollWidth","scrollHeight","focusable","isTabIndexNotNaN","nodeName","disabled","href","parentElement","document","body","parentNode","visible","tabIndex","getAttribute","isTabIndexNaN","assertNodeList","setElement","useElement","_safeHTMLElement","globalElement","validateElement","hide","appElement","setAttribute","show","removeAttribute","documentNotReadyOrSSRTesting","resetForTesting","_warning","_warning2","nodeList","selector","portalOpenInstances","PortalOpenInstances","_this","Constructor","_classCallCheck","register","openInstance","openInstances","emit","deregister","index","splice","subscribe","subscribers","eventType","subscriber","equal","flags","$$typeof","_objectWithoutPropertiesLoose","excluded","sourceKeys","_extends","_assertThisInitialized","ReferenceError","isElement","nodeType","canOverflow","overflow","skipOverflowHiddenElements","isScrollable","clientHeight","clientWidth","overflowY","overflowX","frame","ownerDocument","defaultView","frameElement","alignNearest","scrollingEdgeStart","scrollingEdgeEnd","scrollingSize","scrollingBorderStart","scrollingBorderEnd","elementEdgeStart","elementEdgeEnd","elementSize","idCounter","cbToCb","cb","noop","scrollIntoView","node","menuNode","windowWithViewport","scrollMode","block","inline","boundary","checkBoundary","scrollingElement","documentElement","frames","viewportWidth","visualViewport","width","innerWidth","viewportHeight","height","innerHeight","viewportX","scrollX","pageXOffset","viewportY","scrollY","pageYOffset","getBoundingClientRect","targetHeight","targetWidth","targetTop","targetRight","right","targetBottom","targetLeft","left","targetBlock","targetInline","computations","frameStyle","borderLeft","borderLeftWidth","borderTop","borderTopWidth","borderRight","borderRightWidth","borderBottom","borderBottomWidth","blockScroll","inlineScroll","scrollbarWidth","scrollbarHeight","scrollLeft","scrollTop","computeScrollIntoView","_ref","isOrContainsNode","parent","child","Node","debounce","timeoutId","cancel","clearTimeout","wrapper","_len","_key","setTimeout","callAllEventHandlers","_len2","fns","_key2","event","_len3","_key3","some","preventDownshiftDefault","nativeEvent","handleRefs","_len4","refs","_key4","ref","generateId","getA11yStatusMessage","_ref2","isOpen","resultCount","previousResultCount","unwrapArray","defaultValue","isDOMElement","getElementProps","props","stateKeys","pickState","state","getState","reduce","prevState","isControlledProp","normalizeArrowKey","keyCode","getNextWrappingIndex","moveAmount","baseIndex","itemCount","getItemNodeFromIndex","circular","itemsLastIndex","newIndex","nonDisabledNewIndex","getNextNonDisabledIndex","currentElementNode","hasAttribute","_index","targetWithinDownshift","downshiftElements","checkActiveElement","contextNode","activeElement","cleanupStatus","getStatusDiv","textContent","setStatus","status","documentProp","div","statusDiv","getElementById","createElement","border","clip","margin","position","appendChild","stateChangeTypes","freeze","__proto__","unknown","mouseUp","itemMouseEnter","keyDownArrowUp","keyDownArrowDown","keyDownEscape","keyDownEnter","keyDownHome","keyDownEnd","clickItem","blurInput","changeInput","keyDownSpaceButton","clickButton","blurButton","controlledPropUpdatedSelectedItem","touchEnd","Downshift","_Component","subClass","superClass","_props","id","menuId","labelId","inputId","getItemId","items","timeoutIds","internalSetTimeout","setItemCount","unsetItemCount","setHighlightedIndex","highlightedIndex","otherStateToSet","defaultHighlightedIndex","internalSetState","clearSelection","selectedItem","inputValue","defaultIsOpen","selectItem","item","itemToString","selectItemAtIndex","itemIndex","selectHighlightedItem","stateToSet","isItemSelected","onChangeArg","onStateChangeArg","isStateToSetFunction","onInputValueChange","getStateAndHelpers","setState","newStateToSet","stateReducer","nextState","nextFullState","onStateChange","onSelect","onChange","onUserAction","rootRef","_rootNode","getRootProps","_temp","_temp2","_extends2","_ref$refKey","refKey","rest","_ref2$suppressRefErro","suppressRefError","called","role","keyDownHandlers","ArrowDown","_this2","preventDefault","amount","shiftKey","moveHighlightedIndex","getItemCount","nextHighlightedIndex","ArrowUp","_this3","Enter","which","_this$getState2","itemNode","Escape","reset","buttonKeyDownHandlers","toggleMenu","inputKeyDownHandlers","Home","_this4","newHighlightedIndex","End","_this5","getToggleButtonProps","_temp3","_ref3","onClick","onKeyDown","onPress","onKeyUp","onBlur","enabledEventHandlers","buttonHandleClick","buttonHandleKeyDown","buttonHandleKeyUp","buttonHandleBlur","environment","focus","blurTarget","isMouseDown","getLabelProps","htmlFor","getInputProps","_temp4","_ref4","onInput","onChangeText","eventHandlers","_eventHandlers","_this$getState6","inputHandleChange","inputHandleKeyDown","inputHandleBlur","autoComplete","downshiftButtonIsActive","dataset","toggle","menuRef","_menuNode","getMenuProps","_temp5","_temp6","_extends3","_ref5","_ref5$refKey","_ref6$suppressRefErro","getItemProps","_temp7","_enabledEventHandlers","_ref7","onMouseMove","onMouseDown","_ref7$item","customClickHandler","avoidScrolling","clearItems","_ref8","_ref9","_this$getState7","openMenu","closeMenu","updateStatus","highlightedItem","_this$props","_this$props$initialHi","initialHighlightedIndex","_highlightedIndex","_this$props$initialIs","initialIsOpen","_isOpen","_this$props$initialIn","initialInputValue","_inputValue","_this$props$initialSe","initialSelectedItem","_selectedItem","_state","_proto","internalClearTimeouts","stateToMerge","scrollHighlightedItemIntoView","_this6","_this$getState9","componentDidMount","_this7","onMouseUp","onOuterClick","onTouchStart","isTouchMove","onTouchMove","onTouchEnd","contextWithinDownshift","addEventListener","cleanup","removeEventListener","shouldScroll","prevProps","currentHighlightedIndex","prevHighlightedIndex","componentDidUpdate","selectedItemChanged","componentWillUnmount","render","children","cloneElement","process","Component","defaultProps","prevItem","getA11yMessage","changes","getA11ySelectionMessage","selectionParameters","itemToStringLocal","circularNavigation","PropTypes","array","isRequired","func","bool","any","shape","_objectWithoutProperties","sourceSymbolKeys","g","Fragment","for","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","ReactCurrentOwner","__self","__source","_owner","jsx","jsxs","StrictMode","Profiler","Suspense","w","encodeURIComponent","A","isMounted","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","B","C","context","updater","E","isReactComponent","forceUpdate","isPureReactComponent","G","H","I","J","L","M","N","replace","escape","O","K","y","P","Q","_status","_result","R","S","ReactCurrentDispatcher","ReactCurrentBatchConfig","transition","IsSomeRendererActing","Children","toArray","only","PureComponent","createContext","_calculateChangedBits","_currentValue","_currentValue2","_threadCount","Provider","Consumer","_context","createFactory","bind","createRef","forwardRef","isValidElement","lazy","_payload","_init","memo","useCallback","useContext","useDebugValue","useImperativeHandle","useMemo","useReducer","useRef","useState","version","aa","ba","Set","ca","da","ea","add","fa","ha","ia","ja","ka","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","propertyName","sanitizeURL","removeEmptyString","oa","pa","toUpperCase","qa","ma","na","la","setAttributeNS","xlinkHref","ra","sa","ta","ua","wa","xa","ya","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","Ma","Ka","La","Na","stack","Oa","Pa","prepareStackTrace","Reflect","construct","displayName","Qa","tag","_render","Ra","Sa","Ta","Va","_valueTracker","getValue","setValue","stopTracking","Ua","Wa","checked","Xa","Ya","defaultChecked","_wrapperState","initialChecked","Za","initialValue","controlled","$a","ab","bb","eb","db","fb","selected","defaultSelected","gb","dangerouslySetInnerHTML","hb","ib","jb","kb","lb","mb","nb","ob","namespaceURI","firstChild","removeChild","MSApp","execUnsafeLocalFunction","pb","lastChild","nodeValue","qb","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","fontWeight","lineClamp","lineHeight","opacity","order","orphans","tabSize","widows","zIndex","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","rb","sb","tb","setProperty","charAt","substring","ub","menuitem","area","br","col","embed","hr","img","keygen","link","meta","param","track","wbr","vb","wb","is","xb","srcElement","correspondingUseElement","yb","zb","Ab","Bb","Cb","stateNode","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","Ob","Pb","Qb","Rb","onError","Sb","Tb","Ub","Vb","Wb","Xb","Zb","alternate","return","$b","memoizedState","dehydrated","ac","cc","sibling","bc","dc","ec","fc","gc","hc","ic","jc","kc","lc","mc","nc","Map","oc","pc","qc","rc","blockedOn","domEventName","eventSystemFlags","targetContainers","sc","delete","pointerId","tc","vc","wc","lanePriority","unstable_runWithPriority","priority","hydrate","containerInfo","xc","yc","shift","zc","Ac","Bc","unstable_scheduleCallback","unstable_NormalPriority","Cc","Dc","Ec","animationend","animationiteration","animationstart","transitionend","Fc","Gc","Hc","animation","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Pc","Qc","unstable_now","Rc","Uc","pendingLanes","expiredLanes","suspendedLanes","pingedLanes","Vc","entangledLanes","entanglements","Wc","Xc","Yc","Zc","$c","eventTimes","clz32","bd","cd","log","LN2","dd","unstable_UserBlockingPriority","ed","fd","gd","hd","uc","jd","kd","ld","md","nd","od","charCode","pd","qd","rd","_reactName","_targetInst","currentTarget","isDefaultPrevented","defaultPrevented","returnValue","isPropagationStopped","stopPropagation","cancelBubble","persist","isPersistent","wd","xd","yd","sd","eventPhase","bubbles","cancelable","timeStamp","isTrusted","td","ud","view","detail","vd","Ad","screenX","screenY","clientX","clientY","pageX","pageY","ctrlKey","altKey","metaKey","getModifierState","zd","button","buttons","relatedTarget","fromElement","toElement","movementX","movementY","Bd","Dd","dataTransfer","Fd","Hd","animationName","elapsedTime","pseudoElement","Jd","clipboardData","Ld","data","Md","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","Nd","8","9","12","13","16","17","18","19","20","27","32","33","34","35","36","37","38","39","40","45","46","112","113","114","115","116","117","118","119","120","121","122","123","144","145","224","Od","Alt","Control","Meta","Shift","Pd","Rd","location","Td","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","Vd","touches","targetTouches","changedTouches","Xd","Zd","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","$d","ae","be","documentMode","ce","de","ee","fe","ge","he","ie","le","color","datetime","email","password","range","search","tel","url","me","ne","oe","listeners","pe","qe","re","se","te","ue","ve","we","xe","ye","ze","oninput","Ae","detachEvent","Be","Ce","attachEvent","De","Ee","Fe","He","Ie","Je","Ke","Le","nextSibling","Me","compareDocumentPosition","Ne","HTMLIFrameElement","contentWindow","Oe","contentEditable","Pe","Qe","Re","Se","Te","Ue","selectionStart","selectionEnd","anchorNode","getSelection","anchorOffset","focusNode","focusOffset","Ve","We","Xe","Ye","Ze","Yb","listener","$e","has","af","bf","random","cf","df","capture","passive","Nb","ef","parentWindow","gf","hf","je","char","ke","unshift","jf","kf","lf","mf","autoFocus","nf","__html","of","pf","qf","rf","sf","previousSibling","tf","vf","wf","xf","yf","zf","Af","Bf","Cf","Df","Ef","contextTypes","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Ff","childContextTypes","Gf","Hf","If","getChildContext","Jf","__reactInternalMemoizedMergedChildContext","Kf","Lf","Mf","Nf","Of","Pf","unstable_cancelCallback","Qf","unstable_shouldYield","Rf","unstable_requestPaint","Sf","Tf","unstable_getCurrentPriorityLevel","Uf","unstable_ImmediatePriority","Vf","Wf","Xf","unstable_LowPriority","Yf","unstable_IdlePriority","Zf","$f","ag","bg","cg","dg","eg","fg","gg","hg","ig","jg","kg","lg","mg","ng","og","pg","qg","rg","sg","childLanes","tg","dependencies","firstContext","lanes","ug","vg","observedBits","responders","wg","xg","updateQueue","baseState","firstBaseUpdate","lastBaseUpdate","shared","pending","effects","yg","zg","eventTime","lane","payload","Ag","Bg","Cg","Dg","Eg","Fg","Gg","Kg","_reactInternals","Hg","Ig","Jg","Lg","shouldComponentUpdate","Mg","contextType","Ng","componentWillReceiveProps","UNSAFE_componentWillReceiveProps","Og","getDerivedStateFromProps","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","Pg","Qg","_stringRef","Rg","Sg","lastEffect","nextEffect","firstEffect","Tg","Ug","elementType","Vg","implementation","Wg","Xg","Yg","Zg","$g","ah","bh","ch","dh","eh","tagName","fh","gh","hh","ih","memoizedProps","revealOrder","jh","kh","lh","mh","nh","oh","pendingProps","ph","qh","rh","sh","th","uh","_workInProgressVersionPrimary","vh","wh","xh","yh","zh","Ah","Bh","Ch","Dh","Eh","Fh","Gh","Hh","baseQueue","queue","Ih","Jh","Kh","lastRenderedReducer","action","eagerReducer","eagerState","lastRenderedState","dispatch","Lh","Mh","_getVersion","_source","mutableReadLanes","Nh","U","getSnapshot","setSnapshot","Oh","Ph","Qh","Rh","destroy","Sh","Th","Uh","Vh","Wh","Xh","Yh","Zh","$h","ai","bi","ci","di","readContext","useDeferredValue","useTransition","useMutableSource","useOpaqueIdentifier","unstable_isNewReconciler","uf","ei","fi","gi","hi","ii","ji","ki","li","mi","baseLanes","ni","oi","pi","UNSAFE_componentWillUpdate","componentWillUpdate","qi","getDerivedStateFromError","ri","pendingContext","Bi","Di","Ei","si","retryLane","ti","unstable_avoidThisFallback","ui","unstable_expectedLoadTime","vi","wi","xi","yi","zi","isBackwards","rendering","renderingStartTime","tail","tailMode","Ai","Fi","Gi","wasMultiple","multiple","onclick","size","createElementNS","createTextNode","V","Hi","Ii","W","Ji","Ki","Li","Mi","message","Ni","Oi","WeakMap","Pi","Qi","Ri","Si","componentDidCatch","Ti","componentStack","Ui","WeakSet","Vi","Wi","Xi","__reactInternalSnapshotBeforeUpdate","Yi","Zi","$i","aj","display","bj","onCommitFiberUnmount","cj","dj","ej","fj","gj","hj","insertBefore","_reactRootContainer","ij","jj","kj","lj","mj","nj","ceil","oj","pj","X","Y","qj","rj","sj","tj","uj","vj","Infinity","wj","ck","Z","xj","yj","zj","Aj","Bj","Cj","Dj","Ej","Fj","Gj","Hj","Ij","Jj","Sc","Kj","Lj","Mj","callbackNode","expirationTimes","callbackPriority","Tc","Nj","Oj","Pj","Qj","Rj","Sj","Tj","finishedWork","finishedLanes","Uj","timeoutHandle","Wj","Xj","pingCache","Yj","Zj","va","bk","dk","rangeCount","focusedElem","selectionRange","ek","createRange","setStart","removeAllRanges","addRange","setEnd","onCommitFiberRoot","fk","gk","ik","pendingChildren","jk","mutableSourceEagerHydrationData","kk","lk","mk","nk","ok","qk","hydrationOptions","mutableSources","_internalRoot","rk","tk","sk","uk","hk","unstable_observedBits","unmount","form","Vj","vk","Events","wk","findFiberByHostInstance","bundleType","rendererPackageName","xk","rendererConfig","overrideHookState","overrideHookStateDeletePath","overrideHookStateRenamePath","overrideProps","overridePropsDeletePath","overridePropsRenamePath","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","yk","isDisabled","supportsFiber","inject","createPortal","findDOMNode","flushSync","unmountComponentAtNode","unstable_batchedUpdates","unstable_createPortal","unstable_renderSubtreeIntoContainer","performance","MessageChannel","unstable_forceFrameRate","cancelAnimationFrame","requestAnimationFrame","port2","port1","onmessage","postMessage","pop","sortIndex","startTime","expirationTime","priorityLevel","unstable_Profiling","unstable_continueExecution","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","delay","unstable_wrapCallback","runtime","Op","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","define","wrap","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","Context","_invoke","GenStateSuspendedStart","method","GenStateExecuting","GenStateCompleted","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","record","tryCatch","GenStateSuspendedYield","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","invoke","__await","unwrapped","previousPromise","callInvokeWithMethodAndArg","resultName","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","iterable","iteratorMethod","isGeneratorFunction","genFun","ctor","mark","setPrototypeOf","awrap","async","reverse","skipTempReset","prev","stop","rootRecord","rval","exception","handle","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","Function","bodyOpenClassName","portalClassName","_createClass","descriptor","protoProps","staticProps","_react","_react2","_interopRequireDefault","_reactDom2","_propTypes2","_ModalPortal2","ariaAppHider","newObj","_interopRequireWildcard","_safeHTMLElement2","_reactLifecyclesCompat","_possibleConstructorReturn","isReact16","getCreatePortal","getParentElement","parentSelector","Modal","removePortal","warn","portalRef","portal","renderPortal","defaultStyles","_inherits","className","prevParent","nextParent","_","snapshot","closesAt","closeTimeoutMS","beforeClose","closeWithTimeout","propTypes","content","overlay","htmlOpenClassName","oneOfType","afterOpen","overlayClassName","instanceOf","onAfterOpen","onRequestClose","ariaHideApp","shouldFocusAfterRender","shouldCloseOnOverlayClick","shouldReturnFocusAfterClose","preventScroll","aria","contentLabel","shouldCloseOnEsc","overlayRef","contentRef","overlayElement","contentElement","contentEl","backgroundColor","background","WebkitOverflowScrolling","borderRadius","outline","polyfill","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","propName","componentName","propFullName","secret","getShim","ReactPropTypes","symbol","arrayOf","objectOf","exact","checkPropTypes","_typeof","focusManager","_scopeTab2","classList","_portalOpenInstances2","CLASS_NAMES","ariaHiddenInstances","ModalPortal","setOverlayRef","setContentRef","afterClose","remove","getElementsByTagName","returnFocus","teardownScopedFocus","popWithoutFocus","onAfterClose","open","beforeOpen","closeTimer","setupScopedFocus","markForFocusLater","overlayEl","close","closeWithoutTimeout","focusContent","contentHasFocus","handleKeyDown","requestClose","handleOverlayOnClick","shouldClose","ownerHandlesClose","handleContentOnMouseUp","handleOverlayOnMouseDown","handleContentOnClick","handleContentOnMouseDown","shouldBeClosed","buildClassName","additional","attributesFromObject","prefix","acc","moveFromContentToOverlay","_props2","contentStyles","overlayStyles","overlayProps","contentProps","modal","testId","handleBlur","handleFocus","focusLaterElements","toFocus","modalElement","_tabbable","_tabbable2","needToFocus","head","checkSafari","navigator","userAgent","warning","ExecutionEnvironment","canUseWorkers","Worker","canUseEventListeners","canUseViewport","screen","dumpClassLists","htmlClassList","docBodyClassList","classString","classListRef","poll","incrementReference","decrementReference","_portalOpenInstances","instances","cloneNode","nextProps","__reactInternalSnapshotFlag","__reactInternalSnapshot","foundWillMountName","foundWillReceivePropsName","foundWillUpdateName","newApiName","maybeSnapshot","__suppressDeprecationWarning","ContextConsumer","ContextProvider","Element","ForwardRef","Lazy","Memo","Portal","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isForwardRef","isFragment","isLazy","isMemo","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","typeOf","SwiperSlide","externalRef","slideData","_ref$tag","Tag","_ref$className","swiper","slideElRef","_useState","slideClasses","setSlideClasses","updateClasses","destroyed","on","off","isActive","isVisible","isDuplicate","isPrev","isNext","renderChildren","React","ssrDocument","blur","querySelector","createEvent","initEvent","childNodes","importNode","hash","host","hostname","origin","pathname","protocol","getDocument","doc","ssrWindow","history","replaceState","pushState","go","back","CustomEvent","Image","matchMedia","getWindow","win","_getPrototypeOf","_setPrototypeOf","_isNativeReflectConstruct","sham","Proxy","_construct","Parent","Class","_wrapNativeSuper","_cache","Wrapper","Dom7","_Array","makeReactive","arrayFlat","res","arrayFilter","$","html","toCreate","tempParent","qsa","uniqueArray","arrayUnique","noTrigger","shortcut","trigger","Methods","addClass","_el$classList","removeClass","_el$classList2","hasClass","toggleClass","attr","attrs","attrName","removeAttr","transform","transitionDuration","_len5","_key5","targetSelector","handleLiveEvent","eventData","dom7EventData","_parents","parents","handleEvent","j","events","_event","dom7LiveListeners","proxyListener","dom7Listeners","_len6","_key6","handler","dom7proxy","_len9","_key9","evt","dataIndex","dispatchEvent","transitionEnd","dom","fireCallBack","outerWidth","includeMargins","_styles","styles","outerHeight","_styles2","box","clientTop","clientLeft","css","_prop","each","compareWith","webkitMatchesSelector","msMatchesSelector","eq","returnIndex","newChild","tempDiv","prepend","nextElementSibling","nextAll","nextEls","previousElementSibling","prevAll","prevEls","_prev","_parent","closest","find","foundElements","methodName","support","device","browser","nextTick","nextSource","keysArray","nextIndex","nextKey","desc","getSupport","touch","DocumentTouch","pointerEvents","PointerEvent","maxTouchPoints","observer","passiveListener","supportsPassive","gestures","calcSupport","getDevice","overrides","platform","ios","android","screenWidth","screenHeight","ipad","ipod","iphone","windows","macos","os","calcDevice","getBrowser","isEdge","isSafari","isWebView","calcBrowser","resize","resizeHandler","initialized","orientationChangeHandler","init","Observer","attach","MutationObserver","WebkitMutationObserver","mutations","observerUpdate","observe","attributes","childList","characterData","observers","observeParents","containerParents","$el","observeSlideChildren","$wrapperEl","disconnect","subKey","touchEventsData","animating","preventInteractionOnTransition","originalEvent","$targetEl","touchEventsTarget","wrapperEl","isTouchEvent","isTouched","isMoved","noSwiping","noSwipingSelector","noSwipingClass","allowClick","swipeHandler","currentX","currentY","startX","startY","edgeSwipeDetection","iOSEdgeSwipeDetection","edgeSwipeThreshold","iOSEdgeSwipeThreshold","allowTouchCallbacks","isScrolling","startMoving","touchStartTime","updateSize","swipeDirection","threshold","allowThresholdMove","formElements","shouldPreventDefault","allowTouchMove","touchStartPreventDefault","touchStartForcePreventDefault","rtl","rtlTranslate","targetTouch","preventedByNestedSwiper","touchReleaseOnEdges","loop","isVertical","translate","maxTranslate","minTranslate","diffX","diffY","sqrt","pow","touchAngle","isHorizontal","atan2","abs","PI","cssMode","touchMoveStopPropagation","nested","loopFix","startTranslate","getTranslate","setTransition","allowMomentumBounce","grabCursor","allowSlideNext","allowSlidePrev","setGrabCursor","touchRatio","currentTranslate","disableParentSwiper","resistanceRatio","resistance","followFinger","freeMode","watchSlidesProgress","watchSlidesVisibility","updateActiveIndex","updateSlidesClasses","velocities","updateProgress","setTranslate","slidesGrid","snapGrid","currentPos","touchEndTime","timeDiff","updateClickedSlide","lastClickTime","slideTo","activeIndex","slides","freeModeMomentum","lastMoveEvent","velocityEvent","distance","velocity","freeModeMinimumVelocity","freeModeMomentumVelocityRatio","momentumDuration","freeModeMomentumRatio","momentumDistance","newPosition","afterBouncePosition","needsLoopFix","doBounce","bounceAmount","freeModeMomentumBounceRatio","freeModeMomentumBounce","centeredSlides","freeModeSticky","nextSlide","once","moveDistance","currentSlideSize","slidesSizesGrid","speed","slideToClosest","transitionStart","longSwipesMs","stopIndex","groupSize","slidesPerGroupSkip","slidesPerGroup","_increment","ratio","increment","longSwipes","longSwipesRatio","shortSwipes","onResize","breakpoints","setBreakpoint","updateSlides","slidesPerView","isEnd","isBeginning","autoplay","running","paused","run","watchOverflow","checkOverflow","preventClicks","preventClicksPropagation","stopImmediatePropagation","onScroll","previousTranslate","translatesDiff","progress","dummyEventAttached","dummyEventListener","direction","initialSlide","updateOnWindowResize","autoHeight","setWrapperSize","virtualTranslate","effect","spaceBetween","slidesPerColumn","slidesPerColumnFill","centeredSlidesBounds","slidesOffsetBefore","slidesOffsetAfter","normalizeSlideIndex","centerInsufficientSlides","roundLengths","simulateTouch","uniqueNavElements","slideToClickedSlide","preloadImages","updateOnImagesReady","loopAdditionalSlides","loopedSlides","loopFillGroupWithBlank","loopPreventsSlide","passiveListeners","containerModifierClass","slideClass","slideBlankClass","slideActiveClass","slideDuplicateActiveClass","slideVisibleClass","slideDuplicateClass","slideNextClass","slideDuplicateNextClass","slidePrevClass","slideDuplicatePrevClass","wrapperClass","runCallbacksOnInit","_emitClasses","_defineProperties","prototypes","modular","useParams","instanceParams","modules","moduleName","useModules","modulesParams","moduleParams","moduleEventName","eventsEmitter","eventsListeners","onceHandler","__emitterProxy","onAny","eventsAnyListeners","offAny","eventHandler","eventsArray","update","swiperSize","wrongRTL","isVirtual","virtual","enabled","previousSlidesLength","slidesLength","slidesForMargin","slideEl","slideIndex","offsetBefore","offsetAfter","previousSnapGridLength","previousSlidesGridLength","slidePosition","prevSlideSize","slidesNumberEvenToRows","slideSize","virtualSize","marginLeft","marginTop","marginRight","marginBottom","newSlidesGrid","slidesPerRow","numFullColumns","slide","newSlideOrderIndex","column","row","groupIndex","slideIndexInGroup","columnsInGroup","slideStyles","currentTransform","currentWebKitTransform","webkitTransform","paddingLeft","paddingRight","boxSizing","paddingTop","paddingBottom","_boxSizing","swiperSlideSize","slidesGridItem","_i2","_slidesGridItem","allSlidesSize","slideSizeValue","maxSnap","snap","_allSlidesSize","allSlidesOffset","snapIndex","updateSlidesOffset","updateAutoHeight","activeSlides","newHeight","visibleSlides","swiperSlideOffset","offsetLeft","offsetTop","updateSlidesProgress","offsetCenter","visibleSlidesIndexes","slideProgress","slideBefore","slideAfter","multiplier","wasBeginning","wasEnd","activeSlide","realIndex","prevSlide","emitSlidesClasses","newActiveIndex","previousIndex","previousRealIndex","previousSnapIndex","skip","slideFound","clickedSlide","clickedIndex","axis","curTransform","transformMatrix","curStyle","WebKitCSSMatrix","MozTransform","OTransform","MsTransform","msTransform","m41","m42","byController","translateTo","runCallbacks","translateBounds","internal","newTranslate","_wrapperEl$scrollTo","isH","scrollTo","behavior","onTranslateToWrapperTransitionEnd","dir","onSlideToWrapperTransitionEnd","slideToLoop","slideNext","_clientLeft","slidePrev","prevIndex","normalizedTranslate","normalizedSnapGrid","prevSnap","slideReset","currentSnap","slidesPerViewDynamic","slideToIndex","loopCreate","blankSlidesNum","blankNode","prependSlides","appendSlides","loopDestroy","moving","isLocked","unsetGrabCursor","manipulation","appendSlide","prependSlide","addSlide","activeIndexBuffer","baseLength","slidesBuffer","currentSlide","removeSlide","slidesIndexes","indexToRemove","removeAllSlides","attachEvents","touchEvents","move","detachEvents","_swiper$loopedSlides","breakpoint","getBreakpoint","currentBreakpoint","breakpointOnlyParams","paramValue","breakpointParams","originalParams","wasMultiRow","isMultiRow","emitContainerClasses","directionChanged","needsReLoop","changeDirection","points","point","minRatio","substr","sort","_points$i","wasLocked","lastSlidePosition","addClasses","suffixes","suffix","removeClasses","images","loadImage","imageEl","srcset","sizes","checkForComplete","image","onReady","onload","onerror","imagesLoaded","imagesToLoad","currentSrc","extendedDefaults","Swiper","prototypeGroup","protoMethod","moduleParamName","swiperParams","defaults","passedParams","eventName","swipers","containerEl","newParams","shadowRoot","desktop","touchEventsTouch","touchEventsDesktop","clickTimeout","spv","breakLoop","translateValue","newDirection","needUpdate","currentDirection","deleteInstance","cleanStyles","deleteProps","extendDefaults","newDefaults","installModule","use","Resize","paramsList","calcLoopedSlides","externalElRef","_ref$wrapperTag","wrapperTag","WrapperTag","onSwiper","containerClasses","setContainerClasses","_useState2","virtualData","setVirtualData","initializedRef","swiperElRef","swiperRef","oldPassedParamsRef","oldSlides","nextElRef","prevElRef","paginationElRef","scrollbarElRef","_getParams","allowedParams","getParams","restProps","_getChildren","slots","processChildren","slot","getChildren","changedParams","oldParams","oldChildren","oldChildrenKeys","childrenKeys","getChangedParams","_containerClasses","_swiper","cache","renderExternal","renderExternalUpdate","needThumbsInit","needControllerInit","needPaginationInit","needScrollbarInit","needNavigationInit","updateParams","currentParams","thumbs","includes","controller","control","updateSwiper","load","paginationEl","scrollbarEl","initSwiper","renderVirtual","modifiedSlides","duplicateSlide","blankSlide","renderLoop","isClient","defaultState","isDeepEqualReact","ResizeObserver","_a","_b","rect","setRect","entries","contentRect","top_1"],"mappings":"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","file":"static/js/2.41822279.chunk.js","sourcesContent":["'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\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","function isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && o.constructor === Object;\n}\n\nfunction extend(target, src) {\n Object.keys(src).forEach(function (key) {\n if (typeof target[key] === 'undefined') target[key] = src[key];else if (isObject(src[key]) && isObject(target[key]) && Object.keys(src[key]).length > 0) {\n extend(target[key], src[key]);\n } else {\n target[key] = src[key];\n }\n });\n}\n\nfunction needsNavigation(params) {\n if (params === void 0) {\n params = {};\n }\n\n return params.navigation && typeof params.navigation.nextEl === 'undefined' && typeof params.navigation.prevEl === 'undefined';\n}\n\nfunction needsPagination(params) {\n if (params === void 0) {\n params = {};\n }\n\n return params.pagination && typeof params.pagination.el === 'undefined';\n}\n\nfunction needsScrollbar(params) {\n if (params === void 0) {\n params = {};\n }\n\n return params.scrollbar && typeof params.scrollbar.el === 'undefined';\n}\n\nfunction uniqueClasses(classNames) {\n if (classNames === void 0) {\n classNames = '';\n }\n\n var classes = classNames.split(' ').map(function (c) {\n return c.trim();\n }).filter(function (c) {\n return !!c;\n });\n var unique = [];\n classes.forEach(function (c) {\n if (unique.indexOf(c) < 0) unique.push(c);\n });\n return unique.join(' ');\n}\n\nexport { isObject, extend, needsNavigation, needsPagination, needsScrollbar, uniqueClasses };","import arrayWithHoles from \"@babel/runtime/helpers/esm/arrayWithHoles\";\nimport iterableToArrayLimit from \"@babel/runtime/helpers/esm/iterableToArrayLimit\";\nimport unsupportedIterableToArray from \"@babel/runtime/helpers/esm/unsupportedIterableToArray\";\nimport nonIterableRest from \"@babel/runtime/helpers/esm/nonIterableRest\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","/*!\n Copyright (c) 2017 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg) && arg.length) {\n\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\tif (inner) {\n\t\t\t\t\tclasses.push(inner);\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","import defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nexport default function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}","// these aren't really private, but nor are they really useful to document\n\n/**\n * @private\n */\nclass LuxonError extends Error {}\n\n/**\n * @private\n */\nexport class InvalidDateTimeError extends LuxonError {\n constructor(reason) {\n super(`Invalid DateTime: ${reason.toMessage()}`);\n }\n}\n\n/**\n * @private\n */\nexport class InvalidIntervalError extends LuxonError {\n constructor(reason) {\n super(`Invalid Interval: ${reason.toMessage()}`);\n }\n}\n\n/**\n * @private\n */\nexport class InvalidDurationError extends LuxonError {\n constructor(reason) {\n super(`Invalid Duration: ${reason.toMessage()}`);\n }\n}\n\n/**\n * @private\n */\nexport class ConflictingSpecificationError extends LuxonError {}\n\n/**\n * @private\n */\nexport class InvalidUnitError extends LuxonError {\n constructor(unit) {\n super(`Invalid unit ${unit}`);\n }\n}\n\n/**\n * @private\n */\nexport class InvalidArgumentError extends LuxonError {}\n\n/**\n * @private\n */\nexport class ZoneIsAbstractError extends LuxonError {\n constructor() {\n super(\"Zone is an abstract class\");\n }\n}\n","/**\n * @private\n */\n\nconst n = \"numeric\",\n s = \"short\",\n l = \"long\";\n\nexport const DATE_SHORT = {\n year: n,\n month: n,\n day: n\n};\n\nexport const DATE_MED = {\n year: n,\n month: s,\n day: n\n};\n\nexport const DATE_MED_WITH_WEEKDAY = {\n year: n,\n month: s,\n day: n,\n weekday: s\n};\n\nexport const DATE_FULL = {\n year: n,\n month: l,\n day: n\n};\n\nexport const DATE_HUGE = {\n year: n,\n month: l,\n day: n,\n weekday: l\n};\n\nexport const TIME_SIMPLE = {\n hour: n,\n minute: n\n};\n\nexport const TIME_WITH_SECONDS = {\n hour: n,\n minute: n,\n second: n\n};\n\nexport const TIME_WITH_SHORT_OFFSET = {\n hour: n,\n minute: n,\n second: n,\n timeZoneName: s\n};\n\nexport const TIME_WITH_LONG_OFFSET = {\n hour: n,\n minute: n,\n second: n,\n timeZoneName: l\n};\n\nexport const TIME_24_SIMPLE = {\n hour: n,\n minute: n,\n hour12: false\n};\n\n/**\n * {@link toLocaleString}; format like '09:30:23', always 24-hour.\n */\nexport const TIME_24_WITH_SECONDS = {\n hour: n,\n minute: n,\n second: n,\n hour12: false\n};\n\n/**\n * {@link toLocaleString}; format like '09:30:23 EDT', always 24-hour.\n */\nexport const TIME_24_WITH_SHORT_OFFSET = {\n hour: n,\n minute: n,\n second: n,\n hour12: false,\n timeZoneName: s\n};\n\n/**\n * {@link toLocaleString}; format like '09:30:23 Eastern Daylight Time', always 24-hour.\n */\nexport const TIME_24_WITH_LONG_OFFSET = {\n hour: n,\n minute: n,\n second: n,\n hour12: false,\n timeZoneName: l\n};\n\n/**\n * {@link toLocaleString}; format like '10/14/1983, 9:30 AM'. Only 12-hour if the locale is.\n */\nexport const DATETIME_SHORT = {\n year: n,\n month: n,\n day: n,\n hour: n,\n minute: n\n};\n\n/**\n * {@link toLocaleString}; format like '10/14/1983, 9:30:33 AM'. Only 12-hour if the locale is.\n */\nexport const DATETIME_SHORT_WITH_SECONDS = {\n year: n,\n month: n,\n day: n,\n hour: n,\n minute: n,\n second: n\n};\n\nexport const DATETIME_MED = {\n year: n,\n month: s,\n day: n,\n hour: n,\n minute: n\n};\n\nexport const DATETIME_MED_WITH_SECONDS = {\n year: n,\n month: s,\n day: n,\n hour: n,\n minute: n,\n second: n\n};\n\nexport const DATETIME_MED_WITH_WEEKDAY = {\n year: n,\n month: s,\n day: n,\n weekday: s,\n hour: n,\n minute: n\n};\n\nexport const DATETIME_FULL = {\n year: n,\n month: l,\n day: n,\n hour: n,\n minute: n,\n timeZoneName: s\n};\n\nexport const DATETIME_FULL_WITH_SECONDS = {\n year: n,\n month: l,\n day: n,\n hour: n,\n minute: n,\n second: n,\n timeZoneName: s\n};\n\nexport const DATETIME_HUGE = {\n year: n,\n month: l,\n day: n,\n weekday: l,\n hour: n,\n minute: n,\n timeZoneName: l\n};\n\nexport const DATETIME_HUGE_WITH_SECONDS = {\n year: n,\n month: l,\n day: n,\n weekday: l,\n hour: n,\n minute: n,\n second: n,\n timeZoneName: l\n};\n","/*\n This is just a junk drawer, containing anything used across multiple classes.\n Because Luxon is small(ish), this should stay small and we won't worry about splitting\n it up into, say, parsingUtil.js and basicUtil.js and so on. But they are divided up by feature area.\n*/\n\nimport { InvalidArgumentError } from \"../errors.js\";\n\n/**\n * @private\n */\n\n// TYPES\n\nexport function isUndefined(o) {\n return typeof o === \"undefined\";\n}\n\nexport function isNumber(o) {\n return typeof o === \"number\";\n}\n\nexport function isInteger(o) {\n return typeof o === \"number\" && o % 1 === 0;\n}\n\nexport function isString(o) {\n return typeof o === \"string\";\n}\n\nexport function isDate(o) {\n return Object.prototype.toString.call(o) === \"[object Date]\";\n}\n\n// CAPABILITIES\n\nexport function hasIntl() {\n try {\n return typeof Intl !== \"undefined\" && Intl.DateTimeFormat;\n } catch (e) {\n return false;\n }\n}\n\nexport function hasFormatToParts() {\n return !isUndefined(Intl.DateTimeFormat.prototype.formatToParts);\n}\n\nexport function hasRelative() {\n try {\n return typeof Intl !== \"undefined\" && !!Intl.RelativeTimeFormat;\n } catch (e) {\n return false;\n }\n}\n\n// OBJECTS AND ARRAYS\n\nexport function maybeArray(thing) {\n return Array.isArray(thing) ? thing : [thing];\n}\n\nexport function bestBy(arr, by, compare) {\n if (arr.length === 0) {\n return undefined;\n }\n return arr.reduce((best, next) => {\n const pair = [by(next), next];\n if (!best) {\n return pair;\n } else if (compare(best[0], pair[0]) === best[0]) {\n return best;\n } else {\n return pair;\n }\n }, null)[1];\n}\n\nexport function pick(obj, keys) {\n return keys.reduce((a, k) => {\n a[k] = obj[k];\n return a;\n }, {});\n}\n\nexport function hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\n// NUMBERS AND STRINGS\n\nexport function integerBetween(thing, bottom, top) {\n return isInteger(thing) && thing >= bottom && thing <= top;\n}\n\n// x % n but takes the sign of n instead of x\nexport function floorMod(x, n) {\n return x - n * Math.floor(x / n);\n}\n\nexport function padStart(input, n = 2) {\n if (input.toString().length < n) {\n return (\"0\".repeat(n) + input).slice(-n);\n } else {\n return input.toString();\n }\n}\n\nexport function parseInteger(string) {\n if (isUndefined(string) || string === null || string === \"\") {\n return undefined;\n } else {\n return parseInt(string, 10);\n }\n}\n\nexport function parseMillis(fraction) {\n // Return undefined (instead of 0) in these cases, where fraction is not set\n if (isUndefined(fraction) || fraction === null || fraction === \"\") {\n return undefined;\n } else {\n const f = parseFloat(\"0.\" + fraction) * 1000;\n return Math.floor(f);\n }\n}\n\nexport function roundTo(number, digits, towardZero = false) {\n const factor = 10 ** digits,\n rounder = towardZero ? Math.trunc : Math.round;\n return rounder(number * factor) / factor;\n}\n\n// DATE BASICS\n\nexport function isLeapYear(year) {\n return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);\n}\n\nexport function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n}\n\nexport function daysInMonth(year, month) {\n const modMonth = floorMod(month - 1, 12) + 1,\n modYear = year + (month - modMonth) / 12;\n\n if (modMonth === 2) {\n return isLeapYear(modYear) ? 29 : 28;\n } else {\n return [31, null, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][modMonth - 1];\n }\n}\n\n// covert a calendar object to a local timestamp (epoch, but with the offset baked in)\nexport function objToLocalTS(obj) {\n let d = Date.UTC(\n obj.year,\n obj.month - 1,\n obj.day,\n obj.hour,\n obj.minute,\n obj.second,\n obj.millisecond\n );\n\n // for legacy reasons, years between 0 and 99 are interpreted as 19XX; revert that\n if (obj.year < 100 && obj.year >= 0) {\n d = new Date(d);\n d.setUTCFullYear(d.getUTCFullYear() - 1900);\n }\n return +d;\n}\n\nexport function weeksInWeekYear(weekYear) {\n const p1 =\n (weekYear +\n Math.floor(weekYear / 4) -\n Math.floor(weekYear / 100) +\n Math.floor(weekYear / 400)) %\n 7,\n last = weekYear - 1,\n p2 = (last + Math.floor(last / 4) - Math.floor(last / 100) + Math.floor(last / 400)) % 7;\n return p1 === 4 || p2 === 3 ? 53 : 52;\n}\n\nexport function untruncateYear(year) {\n if (year > 99) {\n return year;\n } else return year > 60 ? 1900 + year : 2000 + year;\n}\n\n// PARSING\n\nexport function parseZoneInfo(ts, offsetFormat, locale, timeZone = null) {\n const date = new Date(ts),\n intlOpts = {\n hour12: false,\n year: \"numeric\",\n month: \"2-digit\",\n day: \"2-digit\",\n hour: \"2-digit\",\n minute: \"2-digit\"\n };\n\n if (timeZone) {\n intlOpts.timeZone = timeZone;\n }\n\n const modified = Object.assign({ timeZoneName: offsetFormat }, intlOpts),\n intl = hasIntl();\n\n if (intl && hasFormatToParts()) {\n const parsed = new Intl.DateTimeFormat(locale, modified)\n .formatToParts(date)\n .find(m => m.type.toLowerCase() === \"timezonename\");\n return parsed ? parsed.value : null;\n } else if (intl) {\n // this probably doesn't work for all locales\n const without = new Intl.DateTimeFormat(locale, intlOpts).format(date),\n included = new Intl.DateTimeFormat(locale, modified).format(date),\n diffed = included.substring(without.length),\n trimmed = diffed.replace(/^[, \\u200e]+/, \"\");\n return trimmed;\n } else {\n return null;\n }\n}\n\n// signedOffset('-5', '30') -> -330\nexport function signedOffset(offHourStr, offMinuteStr) {\n let offHour = parseInt(offHourStr, 10);\n\n // don't || this because we want to preserve -0\n if (Number.isNaN(offHour)) {\n offHour = 0;\n }\n\n const offMin = parseInt(offMinuteStr, 10) || 0,\n offMinSigned = offHour < 0 || Object.is(offHour, -0) ? -offMin : offMin;\n return offHour * 60 + offMinSigned;\n}\n\n// COERCION\n\nexport function asNumber(value) {\n const numericValue = Number(value);\n if (typeof value === \"boolean\" || value === \"\" || Number.isNaN(numericValue))\n throw new InvalidArgumentError(`Invalid unit value ${value}`);\n return numericValue;\n}\n\nexport function normalizeObject(obj, normalizer, nonUnitKeys) {\n const normalized = {};\n for (const u in obj) {\n if (hasOwnProperty(obj, u)) {\n if (nonUnitKeys.indexOf(u) >= 0) continue;\n const v = obj[u];\n if (v === undefined || v === null) continue;\n normalized[normalizer(u)] = asNumber(v);\n }\n }\n return normalized;\n}\n\nexport function formatOffset(offset, format) {\n const hours = Math.trunc(Math.abs(offset / 60)),\n minutes = Math.trunc(Math.abs(offset % 60)),\n sign = offset >= 0 ? \"+\" : \"-\";\n\n switch (format) {\n case \"short\":\n return `${sign}${padStart(hours, 2)}:${padStart(minutes, 2)}`;\n case \"narrow\":\n return `${sign}${hours}${minutes > 0 ? `:${minutes}` : \"\"}`;\n case \"techie\":\n return `${sign}${padStart(hours, 2)}${padStart(minutes, 2)}`;\n default:\n throw new RangeError(`Value format ${format} is out of range for property format`);\n }\n}\n\nexport function timeObject(obj) {\n return pick(obj, [\"hour\", \"minute\", \"second\", \"millisecond\"]);\n}\n\nexport const ianaRegex = /[A-Za-z_+-]{1,256}(:?\\/[A-Za-z_+-]{1,256}(\\/[A-Za-z_+-]{1,256})?)?/;\n","import * as Formats from \"./formats.js\";\nimport { pick } from \"./util.js\";\n\nfunction stringify(obj) {\n return JSON.stringify(obj, Object.keys(obj).sort());\n}\n\n/**\n * @private\n */\n\nexport const monthsLong = [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\"\n];\n\nexport const monthsShort = [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\"\n];\n\nexport const monthsNarrow = [\"J\", \"F\", \"M\", \"A\", \"M\", \"J\", \"J\", \"A\", \"S\", \"O\", \"N\", \"D\"];\n\nexport function months(length) {\n switch (length) {\n case \"narrow\":\n return monthsNarrow;\n case \"short\":\n return monthsShort;\n case \"long\":\n return monthsLong;\n case \"numeric\":\n return [\"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"10\", \"11\", \"12\"];\n case \"2-digit\":\n return [\"01\", \"02\", \"03\", \"04\", \"05\", \"06\", \"07\", \"08\", \"09\", \"10\", \"11\", \"12\"];\n default:\n return null;\n }\n}\n\nexport const weekdaysLong = [\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\",\n \"Sunday\"\n];\n\nexport const weekdaysShort = [\"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\", \"Sun\"];\n\nexport const weekdaysNarrow = [\"M\", \"T\", \"W\", \"T\", \"F\", \"S\", \"S\"];\n\nexport function weekdays(length) {\n switch (length) {\n case \"narrow\":\n return weekdaysNarrow;\n case \"short\":\n return weekdaysShort;\n case \"long\":\n return weekdaysLong;\n case \"numeric\":\n return [\"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\"];\n default:\n return null;\n }\n}\n\nexport const meridiems = [\"AM\", \"PM\"];\n\nexport const erasLong = [\"Before Christ\", \"Anno Domini\"];\n\nexport const erasShort = [\"BC\", \"AD\"];\n\nexport const erasNarrow = [\"B\", \"A\"];\n\nexport function eras(length) {\n switch (length) {\n case \"narrow\":\n return erasNarrow;\n case \"short\":\n return erasShort;\n case \"long\":\n return erasLong;\n default:\n return null;\n }\n}\n\nexport function meridiemForDateTime(dt) {\n return meridiems[dt.hour < 12 ? 0 : 1];\n}\n\nexport function weekdayForDateTime(dt, length) {\n return weekdays(length)[dt.weekday - 1];\n}\n\nexport function monthForDateTime(dt, length) {\n return months(length)[dt.month - 1];\n}\n\nexport function eraForDateTime(dt, length) {\n return eras(length)[dt.year < 0 ? 0 : 1];\n}\n\nexport function formatRelativeTime(unit, count, numeric = \"always\", narrow = false) {\n const units = {\n years: [\"year\", \"yr.\"],\n quarters: [\"quarter\", \"qtr.\"],\n months: [\"month\", \"mo.\"],\n weeks: [\"week\", \"wk.\"],\n days: [\"day\", \"day\", \"days\"],\n hours: [\"hour\", \"hr.\"],\n minutes: [\"minute\", \"min.\"],\n seconds: [\"second\", \"sec.\"]\n };\n\n const lastable = [\"hours\", \"minutes\", \"seconds\"].indexOf(unit) === -1;\n\n if (numeric === \"auto\" && lastable) {\n const isDay = unit === \"days\";\n switch (count) {\n case 1:\n return isDay ? \"tomorrow\" : `next ${units[unit][0]}`;\n case -1:\n return isDay ? \"yesterday\" : `last ${units[unit][0]}`;\n case 0:\n return isDay ? \"today\" : `this ${units[unit][0]}`;\n default: // fall through\n }\n }\n\n const isInPast = Object.is(count, -0) || count < 0,\n fmtValue = Math.abs(count),\n singular = fmtValue === 1,\n lilUnits = units[unit],\n fmtUnit = narrow\n ? singular\n ? lilUnits[1]\n : lilUnits[2] || lilUnits[1]\n : singular\n ? units[unit][0]\n : unit;\n return isInPast ? `${fmtValue} ${fmtUnit} ago` : `in ${fmtValue} ${fmtUnit}`;\n}\n\nexport function formatString(knownFormat) {\n // these all have the offsets removed because we don't have access to them\n // without all the intl stuff this is backfilling\n const filtered = pick(knownFormat, [\n \"weekday\",\n \"era\",\n \"year\",\n \"month\",\n \"day\",\n \"hour\",\n \"minute\",\n \"second\",\n \"timeZoneName\",\n \"hour12\"\n ]),\n key = stringify(filtered),\n dateTimeHuge = \"EEEE, LLLL d, yyyy, h:mm a\";\n switch (key) {\n case stringify(Formats.DATE_SHORT):\n return \"M/d/yyyy\";\n case stringify(Formats.DATE_MED):\n return \"LLL d, yyyy\";\n case stringify(Formats.DATE_MED_WITH_WEEKDAY):\n return \"EEE, LLL d, yyyy\";\n case stringify(Formats.DATE_FULL):\n return \"LLLL d, yyyy\";\n case stringify(Formats.DATE_HUGE):\n return \"EEEE, LLLL d, yyyy\";\n case stringify(Formats.TIME_SIMPLE):\n return \"h:mm a\";\n case stringify(Formats.TIME_WITH_SECONDS):\n return \"h:mm:ss a\";\n case stringify(Formats.TIME_WITH_SHORT_OFFSET):\n return \"h:mm a\";\n case stringify(Formats.TIME_WITH_LONG_OFFSET):\n return \"h:mm a\";\n case stringify(Formats.TIME_24_SIMPLE):\n return \"HH:mm\";\n case stringify(Formats.TIME_24_WITH_SECONDS):\n return \"HH:mm:ss\";\n case stringify(Formats.TIME_24_WITH_SHORT_OFFSET):\n return \"HH:mm\";\n case stringify(Formats.TIME_24_WITH_LONG_OFFSET):\n return \"HH:mm\";\n case stringify(Formats.DATETIME_SHORT):\n return \"M/d/yyyy, h:mm a\";\n case stringify(Formats.DATETIME_MED):\n return \"LLL d, yyyy, h:mm a\";\n case stringify(Formats.DATETIME_FULL):\n return \"LLLL d, yyyy, h:mm a\";\n case stringify(Formats.DATETIME_HUGE):\n return dateTimeHuge;\n case stringify(Formats.DATETIME_SHORT_WITH_SECONDS):\n return \"M/d/yyyy, h:mm:ss a\";\n case stringify(Formats.DATETIME_MED_WITH_SECONDS):\n return \"LLL d, yyyy, h:mm:ss a\";\n case stringify(Formats.DATETIME_MED_WITH_WEEKDAY):\n return \"EEE, d LLL yyyy, h:mm a\";\n case stringify(Formats.DATETIME_FULL_WITH_SECONDS):\n return \"LLLL d, yyyy, h:mm:ss a\";\n case stringify(Formats.DATETIME_HUGE_WITH_SECONDS):\n return \"EEEE, LLLL d, yyyy, h:mm:ss a\";\n default:\n return dateTimeHuge;\n }\n}\n","import * as English from \"./english.js\";\nimport * as Formats from \"./formats.js\";\nimport { hasFormatToParts, padStart } from \"./util.js\";\n\nfunction stringifyTokens(splits, tokenToString) {\n let s = \"\";\n for (const token of splits) {\n if (token.literal) {\n s += token.val;\n } else {\n s += tokenToString(token.val);\n }\n }\n return s;\n}\n\nconst macroTokenToFormatOpts = {\n D: Formats.DATE_SHORT,\n DD: Formats.DATE_MED,\n DDD: Formats.DATE_FULL,\n DDDD: Formats.DATE_HUGE,\n t: Formats.TIME_SIMPLE,\n tt: Formats.TIME_WITH_SECONDS,\n ttt: Formats.TIME_WITH_SHORT_OFFSET,\n tttt: Formats.TIME_WITH_LONG_OFFSET,\n T: Formats.TIME_24_SIMPLE,\n TT: Formats.TIME_24_WITH_SECONDS,\n TTT: Formats.TIME_24_WITH_SHORT_OFFSET,\n TTTT: Formats.TIME_24_WITH_LONG_OFFSET,\n f: Formats.DATETIME_SHORT,\n ff: Formats.DATETIME_MED,\n fff: Formats.DATETIME_FULL,\n ffff: Formats.DATETIME_HUGE,\n F: Formats.DATETIME_SHORT_WITH_SECONDS,\n FF: Formats.DATETIME_MED_WITH_SECONDS,\n FFF: Formats.DATETIME_FULL_WITH_SECONDS,\n FFFF: Formats.DATETIME_HUGE_WITH_SECONDS\n};\n\n/**\n * @private\n */\n\nexport default class Formatter {\n static create(locale, opts = {}) {\n return new Formatter(locale, opts);\n }\n\n static parseFormat(fmt) {\n let current = null,\n currentFull = \"\",\n bracketed = false;\n const splits = [];\n for (let i = 0; i < fmt.length; i++) {\n const c = fmt.charAt(i);\n if (c === \"'\") {\n if (currentFull.length > 0) {\n splits.push({ literal: bracketed, val: currentFull });\n }\n current = null;\n currentFull = \"\";\n bracketed = !bracketed;\n } else if (bracketed) {\n currentFull += c;\n } else if (c === current) {\n currentFull += c;\n } else {\n if (currentFull.length > 0) {\n splits.push({ literal: false, val: currentFull });\n }\n currentFull = c;\n current = c;\n }\n }\n\n if (currentFull.length > 0) {\n splits.push({ literal: bracketed, val: currentFull });\n }\n\n return splits;\n }\n\n static macroTokenToFormatOpts(token) {\n return macroTokenToFormatOpts[token];\n }\n\n constructor(locale, formatOpts) {\n this.opts = formatOpts;\n this.loc = locale;\n this.systemLoc = null;\n }\n\n formatWithSystemDefault(dt, opts) {\n if (this.systemLoc === null) {\n this.systemLoc = this.loc.redefaultToSystem();\n }\n const df = this.systemLoc.dtFormatter(dt, Object.assign({}, this.opts, opts));\n return df.format();\n }\n\n formatDateTime(dt, opts = {}) {\n const df = this.loc.dtFormatter(dt, Object.assign({}, this.opts, opts));\n return df.format();\n }\n\n formatDateTimeParts(dt, opts = {}) {\n const df = this.loc.dtFormatter(dt, Object.assign({}, this.opts, opts));\n return df.formatToParts();\n }\n\n resolvedOptions(dt, opts = {}) {\n const df = this.loc.dtFormatter(dt, Object.assign({}, this.opts, opts));\n return df.resolvedOptions();\n }\n\n num(n, p = 0) {\n // we get some perf out of doing this here, annoyingly\n if (this.opts.forceSimple) {\n return padStart(n, p);\n }\n\n const opts = Object.assign({}, this.opts);\n\n if (p > 0) {\n opts.padTo = p;\n }\n\n return this.loc.numberFormatter(opts).format(n);\n }\n\n formatDateTimeFromString(dt, fmt) {\n const knownEnglish = this.loc.listingMode() === \"en\",\n useDateTimeFormatter =\n this.loc.outputCalendar && this.loc.outputCalendar !== \"gregory\" && hasFormatToParts(),\n string = (opts, extract) => this.loc.extract(dt, opts, extract),\n formatOffset = opts => {\n if (dt.isOffsetFixed && dt.offset === 0 && opts.allowZ) {\n return \"Z\";\n }\n\n return dt.isValid ? dt.zone.formatOffset(dt.ts, opts.format) : \"\";\n },\n meridiem = () =>\n knownEnglish\n ? English.meridiemForDateTime(dt)\n : string({ hour: \"numeric\", hour12: true }, \"dayperiod\"),\n month = (length, standalone) =>\n knownEnglish\n ? English.monthForDateTime(dt, length)\n : string(standalone ? { month: length } : { month: length, day: \"numeric\" }, \"month\"),\n weekday = (length, standalone) =>\n knownEnglish\n ? English.weekdayForDateTime(dt, length)\n : string(\n standalone ? { weekday: length } : { weekday: length, month: \"long\", day: \"numeric\" },\n \"weekday\"\n ),\n maybeMacro = token => {\n const formatOpts = Formatter.macroTokenToFormatOpts(token);\n if (formatOpts) {\n return this.formatWithSystemDefault(dt, formatOpts);\n } else {\n return token;\n }\n },\n era = length =>\n knownEnglish ? English.eraForDateTime(dt, length) : string({ era: length }, \"era\"),\n tokenToString = token => {\n // Where possible: http://cldr.unicode.org/translation/date-time#TOC-Stand-Alone-vs.-Format-Styles\n switch (token) {\n // ms\n case \"S\":\n return this.num(dt.millisecond);\n case \"u\":\n // falls through\n case \"SSS\":\n return this.num(dt.millisecond, 3);\n // seconds\n case \"s\":\n return this.num(dt.second);\n case \"ss\":\n return this.num(dt.second, 2);\n // minutes\n case \"m\":\n return this.num(dt.minute);\n case \"mm\":\n return this.num(dt.minute, 2);\n // hours\n case \"h\":\n return this.num(dt.hour % 12 === 0 ? 12 : dt.hour % 12);\n case \"hh\":\n return this.num(dt.hour % 12 === 0 ? 12 : dt.hour % 12, 2);\n case \"H\":\n return this.num(dt.hour);\n case \"HH\":\n return this.num(dt.hour, 2);\n // offset\n case \"Z\":\n // like +6\n return formatOffset({ format: \"narrow\", allowZ: this.opts.allowZ });\n case \"ZZ\":\n // like +06:00\n return formatOffset({ format: \"short\", allowZ: this.opts.allowZ });\n case \"ZZZ\":\n // like +0600\n return formatOffset({ format: \"techie\", allowZ: this.opts.allowZ });\n case \"ZZZZ\":\n // like EST\n return dt.zone.offsetName(dt.ts, { format: \"short\", locale: this.loc.locale });\n case \"ZZZZZ\":\n // like Eastern Standard Time\n return dt.zone.offsetName(dt.ts, { format: \"long\", locale: this.loc.locale });\n // zone\n case \"z\":\n // like America/New_York\n return dt.zoneName;\n // meridiems\n case \"a\":\n return meridiem();\n // dates\n case \"d\":\n return useDateTimeFormatter ? string({ day: \"numeric\" }, \"day\") : this.num(dt.day);\n case \"dd\":\n return useDateTimeFormatter ? string({ day: \"2-digit\" }, \"day\") : this.num(dt.day, 2);\n // weekdays - standalone\n case \"c\":\n // like 1\n return this.num(dt.weekday);\n case \"ccc\":\n // like 'Tues'\n return weekday(\"short\", true);\n case \"cccc\":\n // like 'Tuesday'\n return weekday(\"long\", true);\n case \"ccccc\":\n // like 'T'\n return weekday(\"narrow\", true);\n // weekdays - format\n case \"E\":\n // like 1\n return this.num(dt.weekday);\n case \"EEE\":\n // like 'Tues'\n return weekday(\"short\", false);\n case \"EEEE\":\n // like 'Tuesday'\n return weekday(\"long\", false);\n case \"EEEEE\":\n // like 'T'\n return weekday(\"narrow\", false);\n // months - standalone\n case \"L\":\n // like 1\n return useDateTimeFormatter\n ? string({ month: \"numeric\", day: \"numeric\" }, \"month\")\n : this.num(dt.month);\n case \"LL\":\n // like 01, doesn't seem to work\n return useDateTimeFormatter\n ? string({ month: \"2-digit\", day: \"numeric\" }, \"month\")\n : this.num(dt.month, 2);\n case \"LLL\":\n // like Jan\n return month(\"short\", true);\n case \"LLLL\":\n // like January\n return month(\"long\", true);\n case \"LLLLL\":\n // like J\n return month(\"narrow\", true);\n // months - format\n case \"M\":\n // like 1\n return useDateTimeFormatter\n ? string({ month: \"numeric\" }, \"month\")\n : this.num(dt.month);\n case \"MM\":\n // like 01\n return useDateTimeFormatter\n ? string({ month: \"2-digit\" }, \"month\")\n : this.num(dt.month, 2);\n case \"MMM\":\n // like Jan\n return month(\"short\", false);\n case \"MMMM\":\n // like January\n return month(\"long\", false);\n case \"MMMMM\":\n // like J\n return month(\"narrow\", false);\n // years\n case \"y\":\n // like 2014\n return useDateTimeFormatter ? string({ year: \"numeric\" }, \"year\") : this.num(dt.year);\n case \"yy\":\n // like 14\n return useDateTimeFormatter\n ? string({ year: \"2-digit\" }, \"year\")\n : this.num(dt.year.toString().slice(-2), 2);\n case \"yyyy\":\n // like 0012\n return useDateTimeFormatter\n ? string({ year: \"numeric\" }, \"year\")\n : this.num(dt.year, 4);\n case \"yyyyyy\":\n // like 000012\n return useDateTimeFormatter\n ? string({ year: \"numeric\" }, \"year\")\n : this.num(dt.year, 6);\n // eras\n case \"G\":\n // like AD\n return era(\"short\");\n case \"GG\":\n // like Anno Domini\n return era(\"long\");\n case \"GGGGG\":\n return era(\"narrow\");\n case \"kk\":\n return this.num(dt.weekYear.toString().slice(-2), 2);\n case \"kkkk\":\n return this.num(dt.weekYear, 4);\n case \"W\":\n return this.num(dt.weekNumber);\n case \"WW\":\n return this.num(dt.weekNumber, 2);\n case \"o\":\n return this.num(dt.ordinal);\n case \"ooo\":\n return this.num(dt.ordinal, 3);\n case \"q\":\n // like 1\n return this.num(dt.quarter);\n case \"qq\":\n // like 01\n return this.num(dt.quarter, 2);\n case \"X\":\n return this.num(Math.floor(dt.ts / 1000));\n case \"x\":\n return this.num(dt.ts);\n default:\n return maybeMacro(token);\n }\n };\n\n return stringifyTokens(Formatter.parseFormat(fmt), tokenToString);\n }\n\n formatDurationFromString(dur, fmt) {\n const tokenToField = token => {\n switch (token[0]) {\n case \"S\":\n return \"millisecond\";\n case \"s\":\n return \"second\";\n case \"m\":\n return \"minute\";\n case \"h\":\n return \"hour\";\n case \"d\":\n return \"day\";\n case \"M\":\n return \"month\";\n case \"y\":\n return \"year\";\n default:\n return null;\n }\n },\n tokenToString = lildur => token => {\n const mapped = tokenToField(token);\n if (mapped) {\n return this.num(lildur.get(mapped), token.length);\n } else {\n return token;\n }\n },\n tokens = Formatter.parseFormat(fmt),\n realTokens = tokens.reduce(\n (found, { literal, val }) => (literal ? found : found.concat(val)),\n []\n ),\n collapsed = dur.shiftTo(...realTokens.map(tokenToField).filter(t => t));\n return stringifyTokens(tokens, tokenToString(collapsed));\n }\n}\n","export default class Invalid {\n constructor(reason, explanation) {\n this.reason = reason;\n this.explanation = explanation;\n }\n\n toMessage() {\n if (this.explanation) {\n return `${this.reason}: ${this.explanation}`;\n } else {\n return this.reason;\n }\n }\n}\n","/* eslint no-unused-vars: \"off\" */\nimport { ZoneIsAbstractError } from \"./errors.js\";\n\n/**\n * @interface\n */\nexport default class Zone {\n /**\n * The type of zone\n * @abstract\n * @type {string}\n */\n get type() {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * The name of this zone.\n * @abstract\n * @type {string}\n */\n get name() {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * Returns whether the offset is known to be fixed for the whole year.\n * @abstract\n * @type {boolean}\n */\n get universal() {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * Returns the offset's common name (such as EST) at the specified timestamp\n * @abstract\n * @param {number} ts - Epoch milliseconds for which to get the name\n * @param {Object} opts - Options to affect the format\n * @param {string} opts.format - What style of offset to return. Accepts 'long' or 'short'.\n * @param {string} opts.locale - What locale to return the offset name in.\n * @return {string}\n */\n offsetName(ts, opts) {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * Returns the offset's value as a string\n * @abstract\n * @param {number} ts - Epoch milliseconds for which to get the offset\n * @param {string} format - What style of offset to return.\n * Accepts 'narrow', 'short', or 'techie'. Returning '+6', '+06:00', or '+0600' respectively\n * @return {string}\n */\n formatOffset(ts, format) {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * Return the offset in minutes for this zone at the specified timestamp.\n * @abstract\n * @param {number} ts - Epoch milliseconds for which to compute the offset\n * @return {number}\n */\n offset(ts) {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * Return whether this Zone is equal to another zone\n * @abstract\n * @param {Zone} otherZone - the zone to compare\n * @return {boolean}\n */\n equals(otherZone) {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * Return whether this Zone is valid.\n * @abstract\n * @type {boolean}\n */\n get isValid() {\n throw new ZoneIsAbstractError();\n }\n}\n","import { formatOffset, parseZoneInfo, hasIntl } from \"../impl/util.js\";\nimport Zone from \"../zone.js\";\n\nlet singleton = null;\n\n/**\n * Represents the local zone for this Javascript environment.\n * @implements {Zone}\n */\nexport default class LocalZone extends Zone {\n /**\n * Get a singleton instance of the local zone\n * @return {LocalZone}\n */\n static get instance() {\n if (singleton === null) {\n singleton = new LocalZone();\n }\n return singleton;\n }\n\n /** @override **/\n get type() {\n return \"local\";\n }\n\n /** @override **/\n get name() {\n if (hasIntl()) {\n return new Intl.DateTimeFormat().resolvedOptions().timeZone;\n } else return \"local\";\n }\n\n /** @override **/\n get universal() {\n return false;\n }\n\n /** @override **/\n offsetName(ts, { format, locale }) {\n return parseZoneInfo(ts, format, locale);\n }\n\n /** @override **/\n formatOffset(ts, format) {\n return formatOffset(this.offset(ts), format);\n }\n\n /** @override **/\n offset(ts) {\n return -new Date(ts).getTimezoneOffset();\n }\n\n /** @override **/\n equals(otherZone) {\n return otherZone.type === \"local\";\n }\n\n /** @override **/\n get isValid() {\n return true;\n }\n}\n","import { formatOffset, parseZoneInfo, isUndefined, ianaRegex, objToLocalTS } from \"../impl/util.js\";\nimport Zone from \"../zone.js\";\n\nconst matchingRegex = RegExp(`^${ianaRegex.source}$`);\n\nlet dtfCache = {};\nfunction makeDTF(zone) {\n if (!dtfCache[zone]) {\n dtfCache[zone] = new Intl.DateTimeFormat(\"en-US\", {\n hour12: false,\n timeZone: zone,\n year: \"numeric\",\n month: \"2-digit\",\n day: \"2-digit\",\n hour: \"2-digit\",\n minute: \"2-digit\",\n second: \"2-digit\"\n });\n }\n return dtfCache[zone];\n}\n\nconst typeToPos = {\n year: 0,\n month: 1,\n day: 2,\n hour: 3,\n minute: 4,\n second: 5\n};\n\nfunction hackyOffset(dtf, date) {\n const formatted = dtf.format(date).replace(/\\u200E/g, \"\"),\n parsed = /(\\d+)\\/(\\d+)\\/(\\d+),? (\\d+):(\\d+):(\\d+)/.exec(formatted),\n [, fMonth, fDay, fYear, fHour, fMinute, fSecond] = parsed;\n return [fYear, fMonth, fDay, fHour, fMinute, fSecond];\n}\n\nfunction partsOffset(dtf, date) {\n const formatted = dtf.formatToParts(date),\n filled = [];\n for (let i = 0; i < formatted.length; i++) {\n const { type, value } = formatted[i],\n pos = typeToPos[type];\n\n if (!isUndefined(pos)) {\n filled[pos] = parseInt(value, 10);\n }\n }\n return filled;\n}\n\nlet ianaZoneCache = {};\n/**\n * A zone identified by an IANA identifier, like America/New_York\n * @implements {Zone}\n */\nexport default class IANAZone extends Zone {\n /**\n * @param {string} name - Zone name\n * @return {IANAZone}\n */\n static create(name) {\n if (!ianaZoneCache[name]) {\n ianaZoneCache[name] = new IANAZone(name);\n }\n return ianaZoneCache[name];\n }\n\n /**\n * Reset local caches. Should only be necessary in testing scenarios.\n * @return {void}\n */\n static resetCache() {\n ianaZoneCache = {};\n dtfCache = {};\n }\n\n /**\n * Returns whether the provided string is a valid specifier. This only checks the string's format, not that the specifier identifies a known zone; see isValidZone for that.\n * @param {string} s - The string to check validity on\n * @example IANAZone.isValidSpecifier(\"America/New_York\") //=> true\n * @example IANAZone.isValidSpecifier(\"Fantasia/Castle\") //=> true\n * @example IANAZone.isValidSpecifier(\"Sport~~blorp\") //=> false\n * @return {boolean}\n */\n static isValidSpecifier(s) {\n return !!(s && s.match(matchingRegex));\n }\n\n /**\n * Returns whether the provided string identifies a real zone\n * @param {string} zone - The string to check\n * @example IANAZone.isValidZone(\"America/New_York\") //=> true\n * @example IANAZone.isValidZone(\"Fantasia/Castle\") //=> false\n * @example IANAZone.isValidZone(\"Sport~~blorp\") //=> false\n * @return {boolean}\n */\n static isValidZone(zone) {\n try {\n new Intl.DateTimeFormat(\"en-US\", { timeZone: zone }).format();\n return true;\n } catch (e) {\n return false;\n }\n }\n\n // Etc/GMT+8 -> -480\n /** @ignore */\n static parseGMTOffset(specifier) {\n if (specifier) {\n const match = specifier.match(/^Etc\\/GMT([+-]\\d{1,2})$/i);\n if (match) {\n return -60 * parseInt(match[1]);\n }\n }\n return null;\n }\n\n constructor(name) {\n super();\n /** @private **/\n this.zoneName = name;\n /** @private **/\n this.valid = IANAZone.isValidZone(name);\n }\n\n /** @override **/\n get type() {\n return \"iana\";\n }\n\n /** @override **/\n get name() {\n return this.zoneName;\n }\n\n /** @override **/\n get universal() {\n return false;\n }\n\n /** @override **/\n offsetName(ts, { format, locale }) {\n return parseZoneInfo(ts, format, locale, this.name);\n }\n\n /** @override **/\n formatOffset(ts, format) {\n return formatOffset(this.offset(ts), format);\n }\n\n /** @override **/\n offset(ts) {\n const date = new Date(ts),\n dtf = makeDTF(this.name),\n [year, month, day, hour, minute, second] = dtf.formatToParts\n ? partsOffset(dtf, date)\n : hackyOffset(dtf, date),\n // work around https://bugs.chromium.org/p/chromium/issues/detail?id=1025564&can=2&q=%2224%3A00%22%20datetimeformat\n adjustedHour = hour === 24 ? 0 : hour;\n\n const asUTC = objToLocalTS({\n year,\n month,\n day,\n hour: adjustedHour,\n minute,\n second,\n millisecond: 0\n });\n\n let asTS = +date;\n const over = asTS % 1000;\n asTS -= over >= 0 ? over : 1000 + over;\n return (asUTC - asTS) / (60 * 1000);\n }\n\n /** @override **/\n equals(otherZone) {\n return otherZone.type === \"iana\" && otherZone.name === this.name;\n }\n\n /** @override **/\n get isValid() {\n return this.valid;\n }\n}\n","import { formatOffset, signedOffset } from \"../impl/util.js\";\nimport Zone from \"../zone.js\";\n\nlet singleton = null;\n\n/**\n * A zone with a fixed offset (meaning no DST)\n * @implements {Zone}\n */\nexport default class FixedOffsetZone extends Zone {\n /**\n * Get a singleton instance of UTC\n * @return {FixedOffsetZone}\n */\n static get utcInstance() {\n if (singleton === null) {\n singleton = new FixedOffsetZone(0);\n }\n return singleton;\n }\n\n /**\n * Get an instance with a specified offset\n * @param {number} offset - The offset in minutes\n * @return {FixedOffsetZone}\n */\n static instance(offset) {\n return offset === 0 ? FixedOffsetZone.utcInstance : new FixedOffsetZone(offset);\n }\n\n /**\n * Get an instance of FixedOffsetZone from a UTC offset string, like \"UTC+6\"\n * @param {string} s - The offset string to parse\n * @example FixedOffsetZone.parseSpecifier(\"UTC+6\")\n * @example FixedOffsetZone.parseSpecifier(\"UTC+06\")\n * @example FixedOffsetZone.parseSpecifier(\"UTC-6:00\")\n * @return {FixedOffsetZone}\n */\n static parseSpecifier(s) {\n if (s) {\n const r = s.match(/^utc(?:([+-]\\d{1,2})(?::(\\d{2}))?)?$/i);\n if (r) {\n return new FixedOffsetZone(signedOffset(r[1], r[2]));\n }\n }\n return null;\n }\n\n constructor(offset) {\n super();\n /** @private **/\n this.fixed = offset;\n }\n\n /** @override **/\n get type() {\n return \"fixed\";\n }\n\n /** @override **/\n get name() {\n return this.fixed === 0 ? \"UTC\" : `UTC${formatOffset(this.fixed, \"narrow\")}`;\n }\n\n /** @override **/\n offsetName() {\n return this.name;\n }\n\n /** @override **/\n formatOffset(ts, format) {\n return formatOffset(this.fixed, format);\n }\n\n /** @override **/\n get universal() {\n return true;\n }\n\n /** @override **/\n offset() {\n return this.fixed;\n }\n\n /** @override **/\n equals(otherZone) {\n return otherZone.type === \"fixed\" && otherZone.fixed === this.fixed;\n }\n\n /** @override **/\n get isValid() {\n return true;\n }\n}\n","import Zone from \"../zone.js\";\n\n/**\n * A zone that failed to parse. You should never need to instantiate this.\n * @implements {Zone}\n */\nexport default class InvalidZone extends Zone {\n constructor(zoneName) {\n super();\n /** @private */\n this.zoneName = zoneName;\n }\n\n /** @override **/\n get type() {\n return \"invalid\";\n }\n\n /** @override **/\n get name() {\n return this.zoneName;\n }\n\n /** @override **/\n get universal() {\n return false;\n }\n\n /** @override **/\n offsetName() {\n return null;\n }\n\n /** @override **/\n formatOffset() {\n return \"\";\n }\n\n /** @override **/\n offset() {\n return NaN;\n }\n\n /** @override **/\n equals() {\n return false;\n }\n\n /** @override **/\n get isValid() {\n return false;\n }\n}\n","/**\n * @private\n */\n\nimport Zone from \"../zone.js\";\nimport IANAZone from \"../zones/IANAZone.js\";\nimport FixedOffsetZone from \"../zones/fixedOffsetZone.js\";\nimport InvalidZone from \"../zones/invalidZone.js\";\n\nimport { isUndefined, isString, isNumber } from \"./util.js\";\n\nexport function normalizeZone(input, defaultZone) {\n let offset;\n if (isUndefined(input) || input === null) {\n return defaultZone;\n } else if (input instanceof Zone) {\n return input;\n } else if (isString(input)) {\n const lowered = input.toLowerCase();\n if (lowered === \"local\") return defaultZone;\n else if (lowered === \"utc\" || lowered === \"gmt\") return FixedOffsetZone.utcInstance;\n else if ((offset = IANAZone.parseGMTOffset(input)) != null) {\n // handle Etc/GMT-4, which V8 chokes on\n return FixedOffsetZone.instance(offset);\n } else if (IANAZone.isValidSpecifier(lowered)) return IANAZone.create(input);\n else return FixedOffsetZone.parseSpecifier(lowered) || new InvalidZone(input);\n } else if (isNumber(input)) {\n return FixedOffsetZone.instance(input);\n } else if (typeof input === \"object\" && input.offset && typeof input.offset === \"number\") {\n // This is dumb, but the instanceof check above doesn't seem to really work\n // so we're duck checking it\n return input;\n } else {\n return new InvalidZone(input);\n }\n}\n","import LocalZone from \"./zones/localZone.js\";\nimport IANAZone from \"./zones/IANAZone.js\";\nimport Locale from \"./impl/locale.js\";\n\nimport { normalizeZone } from \"./impl/zoneUtil.js\";\n\nlet now = () => Date.now(),\n defaultZone = null, // not setting this directly to LocalZone.instance bc loading order issues\n defaultLocale = null,\n defaultNumberingSystem = null,\n defaultOutputCalendar = null,\n throwOnInvalid = false;\n\n/**\n * Settings contains static getters and setters that control Luxon's overall behavior. Luxon is a simple library with few options, but the ones it does have live here.\n */\nexport default class Settings {\n /**\n * Get the callback for returning the current timestamp.\n * @type {function}\n */\n static get now() {\n return now;\n }\n\n /**\n * Set the callback for returning the current timestamp.\n * The function should return a number, which will be interpreted as an Epoch millisecond count\n * @type {function}\n * @example Settings.now = () => Date.now() + 3000 // pretend it is 3 seconds in the future\n * @example Settings.now = () => 0 // always pretend it's Jan 1, 1970 at midnight in UTC time\n */\n static set now(n) {\n now = n;\n }\n\n /**\n * Get the default time zone to create DateTimes in.\n * @type {string}\n */\n static get defaultZoneName() {\n return Settings.defaultZone.name;\n }\n\n /**\n * Set the default time zone to create DateTimes in. Does not affect existing instances.\n * @type {string}\n */\n static set defaultZoneName(z) {\n if (!z) {\n defaultZone = null;\n } else {\n defaultZone = normalizeZone(z);\n }\n }\n\n /**\n * Get the default time zone object to create DateTimes in. Does not affect existing instances.\n * @type {Zone}\n */\n static get defaultZone() {\n return defaultZone || LocalZone.instance;\n }\n\n /**\n * Get the default locale to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static get defaultLocale() {\n return defaultLocale;\n }\n\n /**\n * Set the default locale to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static set defaultLocale(locale) {\n defaultLocale = locale;\n }\n\n /**\n * Get the default numbering system to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static get defaultNumberingSystem() {\n return defaultNumberingSystem;\n }\n\n /**\n * Set the default numbering system to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static set defaultNumberingSystem(numberingSystem) {\n defaultNumberingSystem = numberingSystem;\n }\n\n /**\n * Get the default output calendar to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static get defaultOutputCalendar() {\n return defaultOutputCalendar;\n }\n\n /**\n * Set the default output calendar to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static set defaultOutputCalendar(outputCalendar) {\n defaultOutputCalendar = outputCalendar;\n }\n\n /**\n * Get whether Luxon will throw when it encounters invalid DateTimes, Durations, or Intervals\n * @type {boolean}\n */\n static get throwOnInvalid() {\n return throwOnInvalid;\n }\n\n /**\n * Set whether Luxon will throw when it encounters invalid DateTimes, Durations, or Intervals\n * @type {boolean}\n */\n static set throwOnInvalid(t) {\n throwOnInvalid = t;\n }\n\n /**\n * Reset Luxon's global caches. Should only be necessary in testing scenarios.\n * @return {void}\n */\n static resetCaches() {\n Locale.resetCache();\n IANAZone.resetCache();\n }\n}\n","import { hasFormatToParts, hasIntl, padStart, roundTo, hasRelative } from \"./util.js\";\nimport * as English from \"./english.js\";\nimport Settings from \"../settings.js\";\nimport DateTime from \"../datetime.js\";\nimport Formatter from \"./formatter.js\";\n\nlet intlDTCache = {};\nfunction getCachedDTF(locString, opts = {}) {\n const key = JSON.stringify([locString, opts]);\n let dtf = intlDTCache[key];\n if (!dtf) {\n dtf = new Intl.DateTimeFormat(locString, opts);\n intlDTCache[key] = dtf;\n }\n return dtf;\n}\n\nlet intlNumCache = {};\nfunction getCachedINF(locString, opts = {}) {\n const key = JSON.stringify([locString, opts]);\n let inf = intlNumCache[key];\n if (!inf) {\n inf = new Intl.NumberFormat(locString, opts);\n intlNumCache[key] = inf;\n }\n return inf;\n}\n\nlet intlRelCache = {};\nfunction getCachedRTF(locString, opts = {}) {\n const { base, ...cacheKeyOpts } = opts; // exclude `base` from the options\n const key = JSON.stringify([locString, cacheKeyOpts]);\n let inf = intlRelCache[key];\n if (!inf) {\n inf = new Intl.RelativeTimeFormat(locString, opts);\n intlRelCache[key] = inf;\n }\n return inf;\n}\n\nlet sysLocaleCache = null;\nfunction systemLocale() {\n if (sysLocaleCache) {\n return sysLocaleCache;\n } else if (hasIntl()) {\n const computedSys = new Intl.DateTimeFormat().resolvedOptions().locale;\n // node sometimes defaults to \"und\". Override that because that is dumb\n sysLocaleCache = !computedSys || computedSys === \"und\" ? \"en-US\" : computedSys;\n return sysLocaleCache;\n } else {\n sysLocaleCache = \"en-US\";\n return sysLocaleCache;\n }\n}\n\nfunction parseLocaleString(localeStr) {\n // I really want to avoid writing a BCP 47 parser\n // see, e.g. https://github.com/wooorm/bcp-47\n // Instead, we'll do this:\n\n // a) if the string has no -u extensions, just leave it alone\n // b) if it does, use Intl to resolve everything\n // c) if Intl fails, try again without the -u\n\n const uIndex = localeStr.indexOf(\"-u-\");\n if (uIndex === -1) {\n return [localeStr];\n } else {\n let options;\n const smaller = localeStr.substring(0, uIndex);\n try {\n options = getCachedDTF(localeStr).resolvedOptions();\n } catch (e) {\n options = getCachedDTF(smaller).resolvedOptions();\n }\n\n const { numberingSystem, calendar } = options;\n // return the smaller one so that we can append the calendar and numbering overrides to it\n return [smaller, numberingSystem, calendar];\n }\n}\n\nfunction intlConfigString(localeStr, numberingSystem, outputCalendar) {\n if (hasIntl()) {\n if (outputCalendar || numberingSystem) {\n localeStr += \"-u\";\n\n if (outputCalendar) {\n localeStr += `-ca-${outputCalendar}`;\n }\n\n if (numberingSystem) {\n localeStr += `-nu-${numberingSystem}`;\n }\n return localeStr;\n } else {\n return localeStr;\n }\n } else {\n return [];\n }\n}\n\nfunction mapMonths(f) {\n const ms = [];\n for (let i = 1; i <= 12; i++) {\n const dt = DateTime.utc(2016, i, 1);\n ms.push(f(dt));\n }\n return ms;\n}\n\nfunction mapWeekdays(f) {\n const ms = [];\n for (let i = 1; i <= 7; i++) {\n const dt = DateTime.utc(2016, 11, 13 + i);\n ms.push(f(dt));\n }\n return ms;\n}\n\nfunction listStuff(loc, length, defaultOK, englishFn, intlFn) {\n const mode = loc.listingMode(defaultOK);\n\n if (mode === \"error\") {\n return null;\n } else if (mode === \"en\") {\n return englishFn(length);\n } else {\n return intlFn(length);\n }\n}\n\nfunction supportsFastNumbers(loc) {\n if (loc.numberingSystem && loc.numberingSystem !== \"latn\") {\n return false;\n } else {\n return (\n loc.numberingSystem === \"latn\" ||\n !loc.locale ||\n loc.locale.startsWith(\"en\") ||\n (hasIntl() && new Intl.DateTimeFormat(loc.intl).resolvedOptions().numberingSystem === \"latn\")\n );\n }\n}\n\n/**\n * @private\n */\n\nclass PolyNumberFormatter {\n constructor(intl, forceSimple, opts) {\n this.padTo = opts.padTo || 0;\n this.floor = opts.floor || false;\n\n if (!forceSimple && hasIntl()) {\n const intlOpts = { useGrouping: false };\n if (opts.padTo > 0) intlOpts.minimumIntegerDigits = opts.padTo;\n this.inf = getCachedINF(intl, intlOpts);\n }\n }\n\n format(i) {\n if (this.inf) {\n const fixed = this.floor ? Math.floor(i) : i;\n return this.inf.format(fixed);\n } else {\n // to match the browser's numberformatter defaults\n const fixed = this.floor ? Math.floor(i) : roundTo(i, 3);\n return padStart(fixed, this.padTo);\n }\n }\n}\n\n/**\n * @private\n */\n\nclass PolyDateFormatter {\n constructor(dt, intl, opts) {\n this.opts = opts;\n this.hasIntl = hasIntl();\n\n let z;\n if (dt.zone.universal && this.hasIntl) {\n // Chromium doesn't support fixed-offset zones like Etc/GMT+8 in its formatter,\n // See https://bugs.chromium.org/p/chromium/issues/detail?id=364374.\n // So we have to make do. Two cases:\n // 1. The format options tell us to show the zone. We can't do that, so the best\n // we can do is format the date in UTC.\n // 2. The format options don't tell us to show the zone. Then we can adjust them\n // the time and tell the formatter to show it to us in UTC, so that the time is right\n // and the bad zone doesn't show up.\n // We can clean all this up when Chrome fixes this.\n z = \"UTC\";\n if (opts.timeZoneName) {\n this.dt = dt;\n } else {\n this.dt = dt.offset === 0 ? dt : DateTime.fromMillis(dt.ts + dt.offset * 60 * 1000);\n }\n } else if (dt.zone.type === \"local\") {\n this.dt = dt;\n } else {\n this.dt = dt;\n z = dt.zone.name;\n }\n\n if (this.hasIntl) {\n const intlOpts = Object.assign({}, this.opts);\n if (z) {\n intlOpts.timeZone = z;\n }\n this.dtf = getCachedDTF(intl, intlOpts);\n }\n }\n\n format() {\n if (this.hasIntl) {\n return this.dtf.format(this.dt.toJSDate());\n } else {\n const tokenFormat = English.formatString(this.opts),\n loc = Locale.create(\"en-US\");\n return Formatter.create(loc).formatDateTimeFromString(this.dt, tokenFormat);\n }\n }\n\n formatToParts() {\n if (this.hasIntl && hasFormatToParts()) {\n return this.dtf.formatToParts(this.dt.toJSDate());\n } else {\n // This is kind of a cop out. We actually could do this for English. However, we couldn't do it for intl strings\n // and IMO it's too weird to have an uncanny valley like that\n return [];\n }\n }\n\n resolvedOptions() {\n if (this.hasIntl) {\n return this.dtf.resolvedOptions();\n } else {\n return {\n locale: \"en-US\",\n numberingSystem: \"latn\",\n outputCalendar: \"gregory\"\n };\n }\n }\n}\n\n/**\n * @private\n */\nclass PolyRelFormatter {\n constructor(intl, isEnglish, opts) {\n this.opts = Object.assign({ style: \"long\" }, opts);\n if (!isEnglish && hasRelative()) {\n this.rtf = getCachedRTF(intl, opts);\n }\n }\n\n format(count, unit) {\n if (this.rtf) {\n return this.rtf.format(count, unit);\n } else {\n return English.formatRelativeTime(unit, count, this.opts.numeric, this.opts.style !== \"long\");\n }\n }\n\n formatToParts(count, unit) {\n if (this.rtf) {\n return this.rtf.formatToParts(count, unit);\n } else {\n return [];\n }\n }\n}\n\n/**\n * @private\n */\n\nexport default class Locale {\n static fromOpts(opts) {\n return Locale.create(opts.locale, opts.numberingSystem, opts.outputCalendar, opts.defaultToEN);\n }\n\n static create(locale, numberingSystem, outputCalendar, defaultToEN = false) {\n const specifiedLocale = locale || Settings.defaultLocale,\n // the system locale is useful for human readable strings but annoying for parsing/formatting known formats\n localeR = specifiedLocale || (defaultToEN ? \"en-US\" : systemLocale()),\n numberingSystemR = numberingSystem || Settings.defaultNumberingSystem,\n outputCalendarR = outputCalendar || Settings.defaultOutputCalendar;\n return new Locale(localeR, numberingSystemR, outputCalendarR, specifiedLocale);\n }\n\n static resetCache() {\n sysLocaleCache = null;\n intlDTCache = {};\n intlNumCache = {};\n intlRelCache = {};\n }\n\n static fromObject({ locale, numberingSystem, outputCalendar } = {}) {\n return Locale.create(locale, numberingSystem, outputCalendar);\n }\n\n constructor(locale, numbering, outputCalendar, specifiedLocale) {\n const [parsedLocale, parsedNumberingSystem, parsedOutputCalendar] = parseLocaleString(locale);\n\n this.locale = parsedLocale;\n this.numberingSystem = numbering || parsedNumberingSystem || null;\n this.outputCalendar = outputCalendar || parsedOutputCalendar || null;\n this.intl = intlConfigString(this.locale, this.numberingSystem, this.outputCalendar);\n\n this.weekdaysCache = { format: {}, standalone: {} };\n this.monthsCache = { format: {}, standalone: {} };\n this.meridiemCache = null;\n this.eraCache = {};\n\n this.specifiedLocale = specifiedLocale;\n this.fastNumbersCached = null;\n }\n\n get fastNumbers() {\n if (this.fastNumbersCached == null) {\n this.fastNumbersCached = supportsFastNumbers(this);\n }\n\n return this.fastNumbersCached;\n }\n\n listingMode(defaultOK = true) {\n const intl = hasIntl(),\n hasFTP = intl && hasFormatToParts(),\n isActuallyEn = this.isEnglish(),\n hasNoWeirdness =\n (this.numberingSystem === null || this.numberingSystem === \"latn\") &&\n (this.outputCalendar === null || this.outputCalendar === \"gregory\");\n\n if (!hasFTP && !(isActuallyEn && hasNoWeirdness) && !defaultOK) {\n return \"error\";\n } else if (!hasFTP || (isActuallyEn && hasNoWeirdness)) {\n return \"en\";\n } else {\n return \"intl\";\n }\n }\n\n clone(alts) {\n if (!alts || Object.getOwnPropertyNames(alts).length === 0) {\n return this;\n } else {\n return Locale.create(\n alts.locale || this.specifiedLocale,\n alts.numberingSystem || this.numberingSystem,\n alts.outputCalendar || this.outputCalendar,\n alts.defaultToEN || false\n );\n }\n }\n\n redefaultToEN(alts = {}) {\n return this.clone(Object.assign({}, alts, { defaultToEN: true }));\n }\n\n redefaultToSystem(alts = {}) {\n return this.clone(Object.assign({}, alts, { defaultToEN: false }));\n }\n\n months(length, format = false, defaultOK = true) {\n return listStuff(this, length, defaultOK, English.months, () => {\n const intl = format ? { month: length, day: \"numeric\" } : { month: length },\n formatStr = format ? \"format\" : \"standalone\";\n if (!this.monthsCache[formatStr][length]) {\n this.monthsCache[formatStr][length] = mapMonths(dt => this.extract(dt, intl, \"month\"));\n }\n return this.monthsCache[formatStr][length];\n });\n }\n\n weekdays(length, format = false, defaultOK = true) {\n return listStuff(this, length, defaultOK, English.weekdays, () => {\n const intl = format\n ? { weekday: length, year: \"numeric\", month: \"long\", day: \"numeric\" }\n : { weekday: length },\n formatStr = format ? \"format\" : \"standalone\";\n if (!this.weekdaysCache[formatStr][length]) {\n this.weekdaysCache[formatStr][length] = mapWeekdays(dt =>\n this.extract(dt, intl, \"weekday\")\n );\n }\n return this.weekdaysCache[formatStr][length];\n });\n }\n\n meridiems(defaultOK = true) {\n return listStuff(\n this,\n undefined,\n defaultOK,\n () => English.meridiems,\n () => {\n // In theory there could be aribitrary day periods. We're gonna assume there are exactly two\n // for AM and PM. This is probably wrong, but it's makes parsing way easier.\n if (!this.meridiemCache) {\n const intl = { hour: \"numeric\", hour12: true };\n this.meridiemCache = [DateTime.utc(2016, 11, 13, 9), DateTime.utc(2016, 11, 13, 19)].map(\n dt => this.extract(dt, intl, \"dayperiod\")\n );\n }\n\n return this.meridiemCache;\n }\n );\n }\n\n eras(length, defaultOK = true) {\n return listStuff(this, length, defaultOK, English.eras, () => {\n const intl = { era: length };\n\n // This is utter bullshit. Different calendars are going to define eras totally differently. What I need is the minimum set of dates\n // to definitely enumerate them.\n if (!this.eraCache[length]) {\n this.eraCache[length] = [DateTime.utc(-40, 1, 1), DateTime.utc(2017, 1, 1)].map(dt =>\n this.extract(dt, intl, \"era\")\n );\n }\n\n return this.eraCache[length];\n });\n }\n\n extract(dt, intlOpts, field) {\n const df = this.dtFormatter(dt, intlOpts),\n results = df.formatToParts(),\n matching = results.find(m => m.type.toLowerCase() === field);\n return matching ? matching.value : null;\n }\n\n numberFormatter(opts = {}) {\n // this forcesimple option is never used (the only caller short-circuits on it, but it seems safer to leave)\n // (in contrast, the rest of the condition is used heavily)\n return new PolyNumberFormatter(this.intl, opts.forceSimple || this.fastNumbers, opts);\n }\n\n dtFormatter(dt, intlOpts = {}) {\n return new PolyDateFormatter(dt, this.intl, intlOpts);\n }\n\n relFormatter(opts = {}) {\n return new PolyRelFormatter(this.intl, this.isEnglish(), opts);\n }\n\n isEnglish() {\n return (\n this.locale === \"en\" ||\n this.locale.toLowerCase() === \"en-us\" ||\n (hasIntl() && new Intl.DateTimeFormat(this.intl).resolvedOptions().locale.startsWith(\"en-us\"))\n );\n }\n\n equals(other) {\n return (\n this.locale === other.locale &&\n this.numberingSystem === other.numberingSystem &&\n this.outputCalendar === other.outputCalendar\n );\n }\n}\n","import {\n untruncateYear,\n signedOffset,\n parseInteger,\n parseMillis,\n ianaRegex,\n isUndefined\n} from \"./util.js\";\nimport * as English from \"./english.js\";\nimport FixedOffsetZone from \"../zones/fixedOffsetZone.js\";\nimport IANAZone from \"../zones/IANAZone.js\";\n\n/*\n * This file handles parsing for well-specified formats. Here's how it works:\n * Two things go into parsing: a regex to match with and an extractor to take apart the groups in the match.\n * An extractor is just a function that takes a regex match array and returns a { year: ..., month: ... } object\n * parse() does the work of executing the regex and applying the extractor. It takes multiple regex/extractor pairs to try in sequence.\n * Extractors can take a \"cursor\" representing the offset in the match to look at. This makes it easy to combine extractors.\n * combineExtractors() does the work of combining them, keeping track of the cursor through multiple extractions.\n * Some extractions are super dumb and simpleParse and fromStrings help DRY them.\n */\n\nfunction combineRegexes(...regexes) {\n const full = regexes.reduce((f, r) => f + r.source, \"\");\n return RegExp(`^${full}$`);\n}\n\nfunction combineExtractors(...extractors) {\n return m =>\n extractors\n .reduce(\n ([mergedVals, mergedZone, cursor], ex) => {\n const [val, zone, next] = ex(m, cursor);\n return [Object.assign(mergedVals, val), mergedZone || zone, next];\n },\n [{}, null, 1]\n )\n .slice(0, 2);\n}\n\nfunction parse(s, ...patterns) {\n if (s == null) {\n return [null, null];\n }\n\n for (const [regex, extractor] of patterns) {\n const m = regex.exec(s);\n if (m) {\n return extractor(m);\n }\n }\n return [null, null];\n}\n\nfunction simpleParse(...keys) {\n return (match, cursor) => {\n const ret = {};\n let i;\n\n for (i = 0; i < keys.length; i++) {\n ret[keys[i]] = parseInteger(match[cursor + i]);\n }\n return [ret, null, cursor + i];\n };\n}\n\n// ISO and SQL parsing\nconst offsetRegex = /(?:(Z)|([+-]\\d\\d)(?::?(\\d\\d))?)/,\n isoTimeBaseRegex = /(\\d\\d)(?::?(\\d\\d)(?::?(\\d\\d)(?:[.,](\\d{1,30}))?)?)?/,\n isoTimeRegex = RegExp(`${isoTimeBaseRegex.source}${offsetRegex.source}?`),\n isoTimeExtensionRegex = RegExp(`(?:T${isoTimeRegex.source})?`),\n isoYmdRegex = /([+-]\\d{6}|\\d{4})(?:-?(\\d\\d)(?:-?(\\d\\d))?)?/,\n isoWeekRegex = /(\\d{4})-?W(\\d\\d)(?:-?(\\d))?/,\n isoOrdinalRegex = /(\\d{4})-?(\\d{3})/,\n extractISOWeekData = simpleParse(\"weekYear\", \"weekNumber\", \"weekDay\"),\n extractISOOrdinalData = simpleParse(\"year\", \"ordinal\"),\n sqlYmdRegex = /(\\d{4})-(\\d\\d)-(\\d\\d)/, // dumbed-down version of the ISO one\n sqlTimeRegex = RegExp(\n `${isoTimeBaseRegex.source} ?(?:${offsetRegex.source}|(${ianaRegex.source}))?`\n ),\n sqlTimeExtensionRegex = RegExp(`(?: ${sqlTimeRegex.source})?`);\n\nfunction int(match, pos, fallback) {\n const m = match[pos];\n return isUndefined(m) ? fallback : parseInteger(m);\n}\n\nfunction extractISOYmd(match, cursor) {\n const item = {\n year: int(match, cursor),\n month: int(match, cursor + 1, 1),\n day: int(match, cursor + 2, 1)\n };\n\n return [item, null, cursor + 3];\n}\n\nfunction extractISOTime(match, cursor) {\n const item = {\n hour: int(match, cursor, 0),\n minute: int(match, cursor + 1, 0),\n second: int(match, cursor + 2, 0),\n millisecond: parseMillis(match[cursor + 3])\n };\n\n return [item, null, cursor + 4];\n}\n\nfunction extractISOOffset(match, cursor) {\n const local = !match[cursor] && !match[cursor + 1],\n fullOffset = signedOffset(match[cursor + 1], match[cursor + 2]),\n zone = local ? null : FixedOffsetZone.instance(fullOffset);\n return [{}, zone, cursor + 3];\n}\n\nfunction extractIANAZone(match, cursor) {\n const zone = match[cursor] ? IANAZone.create(match[cursor]) : null;\n return [{}, zone, cursor + 1];\n}\n\n// ISO duration parsing\n\nconst isoDuration = /^-?P(?:(?:(-?\\d{1,9})Y)?(?:(-?\\d{1,9})M)?(?:(-?\\d{1,9})W)?(?:(-?\\d{1,9})D)?(?:T(?:(-?\\d{1,9})H)?(?:(-?\\d{1,9})M)?(?:(-?\\d{1,20})(?:[.,](-?\\d{1,9}))?S)?)?)$/;\n\nfunction extractISODuration(match) {\n const [\n s,\n yearStr,\n monthStr,\n weekStr,\n dayStr,\n hourStr,\n minuteStr,\n secondStr,\n millisecondsStr\n ] = match;\n\n const hasNegativePrefix = s[0] === \"-\";\n\n const maybeNegate = num => (num && hasNegativePrefix ? -num : num);\n\n return [\n {\n years: maybeNegate(parseInteger(yearStr)),\n months: maybeNegate(parseInteger(monthStr)),\n weeks: maybeNegate(parseInteger(weekStr)),\n days: maybeNegate(parseInteger(dayStr)),\n hours: maybeNegate(parseInteger(hourStr)),\n minutes: maybeNegate(parseInteger(minuteStr)),\n seconds: maybeNegate(parseInteger(secondStr)),\n milliseconds: maybeNegate(parseMillis(millisecondsStr))\n }\n ];\n}\n\n// These are a little braindead. EDT *should* tell us that we're in, say, America/New_York\n// and not just that we're in -240 *right now*. But since I don't think these are used that often\n// I'm just going to ignore that\nconst obsOffsets = {\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60\n};\n\nfunction fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr) {\n const result = {\n year: yearStr.length === 2 ? untruncateYear(parseInteger(yearStr)) : parseInteger(yearStr),\n month: English.monthsShort.indexOf(monthStr) + 1,\n day: parseInteger(dayStr),\n hour: parseInteger(hourStr),\n minute: parseInteger(minuteStr)\n };\n\n if (secondStr) result.second = parseInteger(secondStr);\n if (weekdayStr) {\n result.weekday =\n weekdayStr.length > 3\n ? English.weekdaysLong.indexOf(weekdayStr) + 1\n : English.weekdaysShort.indexOf(weekdayStr) + 1;\n }\n\n return result;\n}\n\n// RFC 2822/5322\nconst rfc2822 = /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|(?:([+-]\\d\\d)(\\d\\d)))$/;\n\nfunction extractRFC2822(match) {\n const [\n ,\n weekdayStr,\n dayStr,\n monthStr,\n yearStr,\n hourStr,\n minuteStr,\n secondStr,\n obsOffset,\n milOffset,\n offHourStr,\n offMinuteStr\n ] = match,\n result = fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr);\n\n let offset;\n if (obsOffset) {\n offset = obsOffsets[obsOffset];\n } else if (milOffset) {\n offset = 0;\n } else {\n offset = signedOffset(offHourStr, offMinuteStr);\n }\n\n return [result, new FixedOffsetZone(offset)];\n}\n\nfunction preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s\n .replace(/\\([^)]*\\)|[\\n\\t]/g, \" \")\n .replace(/(\\s\\s+)/g, \" \")\n .trim();\n}\n\n// http date\n\nconst rfc1123 = /^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), (\\d\\d) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\\d{4}) (\\d\\d):(\\d\\d):(\\d\\d) GMT$/,\n rfc850 = /^(Monday|Tuesday|Wedsday|Thursday|Friday|Saturday|Sunday), (\\d\\d)-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\\d\\d) (\\d\\d):(\\d\\d):(\\d\\d) GMT$/,\n ascii = /^(Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ( \\d|\\d\\d) (\\d\\d):(\\d\\d):(\\d\\d) (\\d{4})$/;\n\nfunction extractRFC1123Or850(match) {\n const [, weekdayStr, dayStr, monthStr, yearStr, hourStr, minuteStr, secondStr] = match,\n result = fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr);\n return [result, FixedOffsetZone.utcInstance];\n}\n\nfunction extractASCII(match) {\n const [, weekdayStr, monthStr, dayStr, hourStr, minuteStr, secondStr, yearStr] = match,\n result = fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr);\n return [result, FixedOffsetZone.utcInstance];\n}\n\nconst isoYmdWithTimeExtensionRegex = combineRegexes(isoYmdRegex, isoTimeExtensionRegex);\nconst isoWeekWithTimeExtensionRegex = combineRegexes(isoWeekRegex, isoTimeExtensionRegex);\nconst isoOrdinalWithTimeExtensionRegex = combineRegexes(isoOrdinalRegex, isoTimeExtensionRegex);\nconst isoTimeCombinedRegex = combineRegexes(isoTimeRegex);\n\nconst extractISOYmdTimeAndOffset = combineExtractors(\n extractISOYmd,\n extractISOTime,\n extractISOOffset\n);\nconst extractISOWeekTimeAndOffset = combineExtractors(\n extractISOWeekData,\n extractISOTime,\n extractISOOffset\n);\nconst extractISOOrdinalDataAndTime = combineExtractors(extractISOOrdinalData, extractISOTime);\nconst extractISOTimeAndOffset = combineExtractors(extractISOTime, extractISOOffset);\n\n/**\n * @private\n */\n\nexport function parseISODate(s) {\n return parse(\n s,\n [isoYmdWithTimeExtensionRegex, extractISOYmdTimeAndOffset],\n [isoWeekWithTimeExtensionRegex, extractISOWeekTimeAndOffset],\n [isoOrdinalWithTimeExtensionRegex, extractISOOrdinalDataAndTime],\n [isoTimeCombinedRegex, extractISOTimeAndOffset]\n );\n}\n\nexport function parseRFC2822Date(s) {\n return parse(preprocessRFC2822(s), [rfc2822, extractRFC2822]);\n}\n\nexport function parseHTTPDate(s) {\n return parse(\n s,\n [rfc1123, extractRFC1123Or850],\n [rfc850, extractRFC1123Or850],\n [ascii, extractASCII]\n );\n}\n\nexport function parseISODuration(s) {\n return parse(s, [isoDuration, extractISODuration]);\n}\n\nconst sqlYmdWithTimeExtensionRegex = combineRegexes(sqlYmdRegex, sqlTimeExtensionRegex);\nconst sqlTimeCombinedRegex = combineRegexes(sqlTimeRegex);\n\nconst extractISOYmdTimeOffsetAndIANAZone = combineExtractors(\n extractISOYmd,\n extractISOTime,\n extractISOOffset,\n extractIANAZone\n);\nconst extractISOTimeOffsetAndIANAZone = combineExtractors(\n extractISOTime,\n extractISOOffset,\n extractIANAZone\n);\n\nexport function parseSQL(s) {\n return parse(\n s,\n [sqlYmdWithTimeExtensionRegex, extractISOYmdTimeOffsetAndIANAZone],\n [sqlTimeCombinedRegex, extractISOTimeOffsetAndIANAZone]\n );\n}\n","import { InvalidArgumentError, InvalidDurationError, InvalidUnitError } from \"./errors.js\";\nimport Formatter from \"./impl/formatter.js\";\nimport Invalid from \"./impl/invalid.js\";\nimport Locale from \"./impl/locale.js\";\nimport { parseISODuration } from \"./impl/regexParser.js\";\nimport {\n asNumber,\n hasOwnProperty,\n isNumber,\n isUndefined,\n normalizeObject,\n roundTo\n} from \"./impl/util.js\";\nimport Settings from \"./settings.js\";\n\nconst INVALID = \"Invalid Duration\";\n\n// unit conversion constants\nconst lowOrderMatrix = {\n weeks: {\n days: 7,\n hours: 7 * 24,\n minutes: 7 * 24 * 60,\n seconds: 7 * 24 * 60 * 60,\n milliseconds: 7 * 24 * 60 * 60 * 1000\n },\n days: {\n hours: 24,\n minutes: 24 * 60,\n seconds: 24 * 60 * 60,\n milliseconds: 24 * 60 * 60 * 1000\n },\n hours: { minutes: 60, seconds: 60 * 60, milliseconds: 60 * 60 * 1000 },\n minutes: { seconds: 60, milliseconds: 60 * 1000 },\n seconds: { milliseconds: 1000 }\n },\n casualMatrix = Object.assign(\n {\n years: {\n quarters: 4,\n months: 12,\n weeks: 52,\n days: 365,\n hours: 365 * 24,\n minutes: 365 * 24 * 60,\n seconds: 365 * 24 * 60 * 60,\n milliseconds: 365 * 24 * 60 * 60 * 1000\n },\n quarters: {\n months: 3,\n weeks: 13,\n days: 91,\n hours: 91 * 24,\n minutes: 91 * 24 * 60,\n seconds: 91 * 24 * 60 * 60,\n milliseconds: 91 * 24 * 60 * 60 * 1000\n },\n months: {\n weeks: 4,\n days: 30,\n hours: 30 * 24,\n minutes: 30 * 24 * 60,\n seconds: 30 * 24 * 60 * 60,\n milliseconds: 30 * 24 * 60 * 60 * 1000\n }\n },\n lowOrderMatrix\n ),\n daysInYearAccurate = 146097.0 / 400,\n daysInMonthAccurate = 146097.0 / 4800,\n accurateMatrix = Object.assign(\n {\n years: {\n quarters: 4,\n months: 12,\n weeks: daysInYearAccurate / 7,\n days: daysInYearAccurate,\n hours: daysInYearAccurate * 24,\n minutes: daysInYearAccurate * 24 * 60,\n seconds: daysInYearAccurate * 24 * 60 * 60,\n milliseconds: daysInYearAccurate * 24 * 60 * 60 * 1000\n },\n quarters: {\n months: 3,\n weeks: daysInYearAccurate / 28,\n days: daysInYearAccurate / 4,\n hours: (daysInYearAccurate * 24) / 4,\n minutes: (daysInYearAccurate * 24 * 60) / 4,\n seconds: (daysInYearAccurate * 24 * 60 * 60) / 4,\n milliseconds: (daysInYearAccurate * 24 * 60 * 60 * 1000) / 4\n },\n months: {\n weeks: daysInMonthAccurate / 7,\n days: daysInMonthAccurate,\n hours: daysInMonthAccurate * 24,\n minutes: daysInMonthAccurate * 24 * 60,\n seconds: daysInMonthAccurate * 24 * 60 * 60,\n milliseconds: daysInMonthAccurate * 24 * 60 * 60 * 1000\n }\n },\n lowOrderMatrix\n );\n\n// units ordered by size\nconst orderedUnits = [\n \"years\",\n \"quarters\",\n \"months\",\n \"weeks\",\n \"days\",\n \"hours\",\n \"minutes\",\n \"seconds\",\n \"milliseconds\"\n];\n\nconst reverseUnits = orderedUnits.slice(0).reverse();\n\n// clone really means \"create another instance just like this one, but with these changes\"\nfunction clone(dur, alts, clear = false) {\n // deep merge for vals\n const conf = {\n values: clear ? alts.values : Object.assign({}, dur.values, alts.values || {}),\n loc: dur.loc.clone(alts.loc),\n conversionAccuracy: alts.conversionAccuracy || dur.conversionAccuracy\n };\n return new Duration(conf);\n}\n\nfunction antiTrunc(n) {\n return n < 0 ? Math.floor(n) : Math.ceil(n);\n}\n\n// NB: mutates parameters\nfunction convert(matrix, fromMap, fromUnit, toMap, toUnit) {\n const conv = matrix[toUnit][fromUnit],\n raw = fromMap[fromUnit] / conv,\n sameSign = Math.sign(raw) === Math.sign(toMap[toUnit]),\n // ok, so this is wild, but see the matrix in the tests\n added =\n !sameSign && toMap[toUnit] !== 0 && Math.abs(raw) <= 1 ? antiTrunc(raw) : Math.trunc(raw);\n toMap[toUnit] += added;\n fromMap[fromUnit] -= added * conv;\n}\n\n// NB: mutates parameters\nfunction normalizeValues(matrix, vals) {\n reverseUnits.reduce((previous, current) => {\n if (!isUndefined(vals[current])) {\n if (previous) {\n convert(matrix, vals, previous, vals, current);\n }\n return current;\n } else {\n return previous;\n }\n }, null);\n}\n\n/**\n * A Duration object represents a period of time, like \"2 months\" or \"1 day, 1 hour\". Conceptually, it's just a map of units to their quantities, accompanied by some additional configuration and methods for creating, parsing, interrogating, transforming, and formatting them. They can be used on their own or in conjunction with other Luxon types; for example, you can use {@link DateTime.plus} to add a Duration object to a DateTime, producing another DateTime.\n *\n * Here is a brief overview of commonly used methods and getters in Duration:\n *\n * * **Creation** To create a Duration, use {@link Duration.fromMillis}, {@link Duration.fromObject}, or {@link Duration.fromISO}.\n * * **Unit values** See the {@link Duration.years}, {@link Duration.months}, {@link Duration.weeks}, {@link Duration.days}, {@link Duration.hours}, {@link Duration.minutes}, {@link Duration.seconds}, {@link Duration.milliseconds} accessors.\n * * **Configuration** See {@link Duration.locale} and {@link Duration.numberingSystem} accessors.\n * * **Transformation** To create new Durations out of old ones use {@link Duration.plus}, {@link Duration.minus}, {@link Duration.normalize}, {@link Duration.set}, {@link Duration.reconfigure}, {@link Duration.shiftTo}, and {@link Duration.negate}.\n * * **Output** To convert the Duration into other representations, see {@link Duration.as}, {@link Duration.toISO}, {@link Duration.toFormat}, and {@link Duration.toJSON}\n *\n * There's are more methods documented below. In addition, for more information on subtler topics like internationalization and validity, see the external documentation.\n */\nexport default class Duration {\n /**\n * @private\n */\n constructor(config) {\n const accurate = config.conversionAccuracy === \"longterm\" || false;\n /**\n * @access private\n */\n this.values = config.values;\n /**\n * @access private\n */\n this.loc = config.loc || Locale.create();\n /**\n * @access private\n */\n this.conversionAccuracy = accurate ? \"longterm\" : \"casual\";\n /**\n * @access private\n */\n this.invalid = config.invalid || null;\n /**\n * @access private\n */\n this.matrix = accurate ? accurateMatrix : casualMatrix;\n /**\n * @access private\n */\n this.isLuxonDuration = true;\n }\n\n /**\n * Create Duration from a number of milliseconds.\n * @param {number} count of milliseconds\n * @param {Object} opts - options for parsing\n * @param {string} [opts.locale='en-US'] - the locale to use\n * @param {string} opts.numberingSystem - the numbering system to use\n * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use\n * @return {Duration}\n */\n static fromMillis(count, opts) {\n return Duration.fromObject(Object.assign({ milliseconds: count }, opts));\n }\n\n /**\n * Create a Duration from a Javascript object with keys like 'years' and 'hours.\n * If this object is empty then a zero milliseconds duration is returned.\n * @param {Object} obj - the object to create the DateTime from\n * @param {number} obj.years\n * @param {number} obj.quarters\n * @param {number} obj.months\n * @param {number} obj.weeks\n * @param {number} obj.days\n * @param {number} obj.hours\n * @param {number} obj.minutes\n * @param {number} obj.seconds\n * @param {number} obj.milliseconds\n * @param {string} [obj.locale='en-US'] - the locale to use\n * @param {string} obj.numberingSystem - the numbering system to use\n * @param {string} [obj.conversionAccuracy='casual'] - the conversion system to use\n * @return {Duration}\n */\n static fromObject(obj) {\n if (obj == null || typeof obj !== \"object\") {\n throw new InvalidArgumentError(\n `Duration.fromObject: argument expected to be an object, got ${\n obj === null ? \"null\" : typeof obj\n }`\n );\n }\n return new Duration({\n values: normalizeObject(obj, Duration.normalizeUnit, [\n \"locale\",\n \"numberingSystem\",\n \"conversionAccuracy\",\n \"zone\" // a bit of debt; it's super inconvenient internally not to be able to blindly pass this\n ]),\n loc: Locale.fromObject(obj),\n conversionAccuracy: obj.conversionAccuracy\n });\n }\n\n /**\n * Create a Duration from an ISO 8601 duration string.\n * @param {string} text - text to parse\n * @param {Object} opts - options for parsing\n * @param {string} [opts.locale='en-US'] - the locale to use\n * @param {string} opts.numberingSystem - the numbering system to use\n * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use\n * @see https://en.wikipedia.org/wiki/ISO_8601#Durations\n * @example Duration.fromISO('P3Y6M1W4DT12H30M5S').toObject() //=> { years: 3, months: 6, weeks: 1, days: 4, hours: 12, minutes: 30, seconds: 5 }\n * @example Duration.fromISO('PT23H').toObject() //=> { hours: 23 }\n * @example Duration.fromISO('P5Y3M').toObject() //=> { years: 5, months: 3 }\n * @return {Duration}\n */\n static fromISO(text, opts) {\n const [parsed] = parseISODuration(text);\n if (parsed) {\n const obj = Object.assign(parsed, opts);\n return Duration.fromObject(obj);\n } else {\n return Duration.invalid(\"unparsable\", `the input \"${text}\" can't be parsed as ISO 8601`);\n }\n }\n\n /**\n * Create an invalid Duration.\n * @param {string} reason - simple string of why this datetime is invalid. Should not contain parameters or anything else data-dependent\n * @param {string} [explanation=null] - longer explanation, may include parameters and other useful debugging information\n * @return {Duration}\n */\n static invalid(reason, explanation = null) {\n if (!reason) {\n throw new InvalidArgumentError(\"need to specify a reason the Duration is invalid\");\n }\n\n const invalid = reason instanceof Invalid ? reason : new Invalid(reason, explanation);\n\n if (Settings.throwOnInvalid) {\n throw new InvalidDurationError(invalid);\n } else {\n return new Duration({ invalid });\n }\n }\n\n /**\n * @private\n */\n static normalizeUnit(unit) {\n const normalized = {\n year: \"years\",\n years: \"years\",\n quarter: \"quarters\",\n quarters: \"quarters\",\n month: \"months\",\n months: \"months\",\n week: \"weeks\",\n weeks: \"weeks\",\n day: \"days\",\n days: \"days\",\n hour: \"hours\",\n hours: \"hours\",\n minute: \"minutes\",\n minutes: \"minutes\",\n second: \"seconds\",\n seconds: \"seconds\",\n millisecond: \"milliseconds\",\n milliseconds: \"milliseconds\"\n }[unit ? unit.toLowerCase() : unit];\n\n if (!normalized) throw new InvalidUnitError(unit);\n\n return normalized;\n }\n\n /**\n * Check if an object is a Duration. Works across context boundaries\n * @param {object} o\n * @return {boolean}\n */\n static isDuration(o) {\n return (o && o.isLuxonDuration) || false;\n }\n\n /**\n * Get the locale of a Duration, such 'en-GB'\n * @type {string}\n */\n get locale() {\n return this.isValid ? this.loc.locale : null;\n }\n\n /**\n * Get the numbering system of a Duration, such 'beng'. The numbering system is used when formatting the Duration\n *\n * @type {string}\n */\n get numberingSystem() {\n return this.isValid ? this.loc.numberingSystem : null;\n }\n\n /**\n * Returns a string representation of this Duration formatted according to the specified format string. You may use these tokens:\n * * `S` for milliseconds\n * * `s` for seconds\n * * `m` for minutes\n * * `h` for hours\n * * `d` for days\n * * `M` for months\n * * `y` for years\n * Notes:\n * * Add padding by repeating the token, e.g. \"yy\" pads the years to two digits, \"hhhh\" pads the hours out to four digits\n * * The duration will be converted to the set of units in the format string using {@link Duration.shiftTo} and the Durations's conversion accuracy setting.\n * @param {string} fmt - the format string\n * @param {Object} opts - options\n * @param {boolean} [opts.floor=true] - floor numerical values\n * @example Duration.fromObject({ years: 1, days: 6, seconds: 2 }).toFormat(\"y d s\") //=> \"1 6 2\"\n * @example Duration.fromObject({ years: 1, days: 6, seconds: 2 }).toFormat(\"yy dd sss\") //=> \"01 06 002\"\n * @example Duration.fromObject({ years: 1, days: 6, seconds: 2 }).toFormat(\"M S\") //=> \"12 518402000\"\n * @return {string}\n */\n toFormat(fmt, opts = {}) {\n // reverse-compat since 1.2; we always round down now, never up, and we do it by default\n const fmtOpts = Object.assign({}, opts, {\n floor: opts.round !== false && opts.floor !== false\n });\n return this.isValid\n ? Formatter.create(this.loc, fmtOpts).formatDurationFromString(this, fmt)\n : INVALID;\n }\n\n /**\n * Returns a Javascript object with this Duration's values.\n * @param opts - options for generating the object\n * @param {boolean} [opts.includeConfig=false] - include configuration attributes in the output\n * @example Duration.fromObject({ years: 1, days: 6, seconds: 2 }).toObject() //=> { years: 1, days: 6, seconds: 2 }\n * @return {Object}\n */\n toObject(opts = {}) {\n if (!this.isValid) return {};\n\n const base = Object.assign({}, this.values);\n\n if (opts.includeConfig) {\n base.conversionAccuracy = this.conversionAccuracy;\n base.numberingSystem = this.loc.numberingSystem;\n base.locale = this.loc.locale;\n }\n return base;\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this Duration.\n * @see https://en.wikipedia.org/wiki/ISO_8601#Durations\n * @example Duration.fromObject({ years: 3, seconds: 45 }).toISO() //=> 'P3YT45S'\n * @example Duration.fromObject({ months: 4, seconds: 45 }).toISO() //=> 'P4MT45S'\n * @example Duration.fromObject({ months: 5 }).toISO() //=> 'P5M'\n * @example Duration.fromObject({ minutes: 5 }).toISO() //=> 'PT5M'\n * @example Duration.fromObject({ milliseconds: 6 }).toISO() //=> 'PT0.006S'\n * @return {string}\n */\n toISO() {\n // we could use the formatter, but this is an easier way to get the minimum string\n if (!this.isValid) return null;\n\n let s = \"P\";\n if (this.years !== 0) s += this.years + \"Y\";\n if (this.months !== 0 || this.quarters !== 0) s += this.months + this.quarters * 3 + \"M\";\n if (this.weeks !== 0) s += this.weeks + \"W\";\n if (this.days !== 0) s += this.days + \"D\";\n if (this.hours !== 0 || this.minutes !== 0 || this.seconds !== 0 || this.milliseconds !== 0)\n s += \"T\";\n if (this.hours !== 0) s += this.hours + \"H\";\n if (this.minutes !== 0) s += this.minutes + \"M\";\n if (this.seconds !== 0 || this.milliseconds !== 0)\n // this will handle \"floating point madness\" by removing extra decimal places\n // https://stackoverflow.com/questions/588004/is-floating-point-math-broken\n s += roundTo(this.seconds + this.milliseconds / 1000, 3) + \"S\";\n if (s === \"P\") s += \"T0S\";\n return s;\n }\n\n /**\n * Returns an ISO 8601 representation of this Duration appropriate for use in JSON.\n * @return {string}\n */\n toJSON() {\n return this.toISO();\n }\n\n /**\n * Returns an ISO 8601 representation of this Duration appropriate for use in debugging.\n * @return {string}\n */\n toString() {\n return this.toISO();\n }\n\n /**\n * Returns an milliseconds value of this Duration.\n * @return {number}\n */\n valueOf() {\n return this.as(\"milliseconds\");\n }\n\n /**\n * Make this Duration longer by the specified amount. Return a newly-constructed Duration.\n * @param {Duration|Object|number} duration - The amount to add. Either a Luxon Duration, a number of milliseconds, the object argument to Duration.fromObject()\n * @return {Duration}\n */\n plus(duration) {\n if (!this.isValid) return this;\n\n const dur = friendlyDuration(duration),\n result = {};\n\n for (const k of orderedUnits) {\n if (hasOwnProperty(dur.values, k) || hasOwnProperty(this.values, k)) {\n result[k] = dur.get(k) + this.get(k);\n }\n }\n\n return clone(this, { values: result }, true);\n }\n\n /**\n * Make this Duration shorter by the specified amount. Return a newly-constructed Duration.\n * @param {Duration|Object|number} duration - The amount to subtract. Either a Luxon Duration, a number of milliseconds, the object argument to Duration.fromObject()\n * @return {Duration}\n */\n minus(duration) {\n if (!this.isValid) return this;\n\n const dur = friendlyDuration(duration);\n return this.plus(dur.negate());\n }\n\n /**\n * Scale this Duration by the specified amount. Return a newly-constructed Duration.\n * @param {function} fn - The function to apply to each unit. Arity is 1 or 2: the value of the unit and, optionally, the unit name. Must return a number.\n * @example Duration.fromObject({ hours: 1, minutes: 30 }).mapUnit(x => x * 2) //=> { hours: 2, minutes: 60 }\n * @example Duration.fromObject({ hours: 1, minutes: 30 }).mapUnit((x, u) => u === \"hour\" ? x * 2 : x) //=> { hours: 2, minutes: 30 }\n * @return {Duration}\n */\n mapUnits(fn) {\n if (!this.isValid) return this;\n const result = {};\n for (const k of Object.keys(this.values)) {\n result[k] = asNumber(fn(this.values[k], k));\n }\n return clone(this, { values: result }, true);\n }\n\n /**\n * Get the value of unit.\n * @param {string} unit - a unit such as 'minute' or 'day'\n * @example Duration.fromObject({years: 2, days: 3}).years //=> 2\n * @example Duration.fromObject({years: 2, days: 3}).months //=> 0\n * @example Duration.fromObject({years: 2, days: 3}).days //=> 3\n * @return {number}\n */\n get(unit) {\n return this[Duration.normalizeUnit(unit)];\n }\n\n /**\n * \"Set\" the values of specified units. Return a newly-constructed Duration.\n * @param {Object} values - a mapping of units to numbers\n * @example dur.set({ years: 2017 })\n * @example dur.set({ hours: 8, minutes: 30 })\n * @return {Duration}\n */\n set(values) {\n if (!this.isValid) return this;\n\n const mixed = Object.assign(this.values, normalizeObject(values, Duration.normalizeUnit, []));\n return clone(this, { values: mixed });\n }\n\n /**\n * \"Set\" the locale and/or numberingSystem. Returns a newly-constructed Duration.\n * @example dur.reconfigure({ locale: 'en-GB' })\n * @return {Duration}\n */\n reconfigure({ locale, numberingSystem, conversionAccuracy } = {}) {\n const loc = this.loc.clone({ locale, numberingSystem }),\n opts = { loc };\n\n if (conversionAccuracy) {\n opts.conversionAccuracy = conversionAccuracy;\n }\n\n return clone(this, opts);\n }\n\n /**\n * Return the length of the duration in the specified unit.\n * @param {string} unit - a unit such as 'minutes' or 'days'\n * @example Duration.fromObject({years: 1}).as('days') //=> 365\n * @example Duration.fromObject({years: 1}).as('months') //=> 12\n * @example Duration.fromObject({hours: 60}).as('days') //=> 2.5\n * @return {number}\n */\n as(unit) {\n return this.isValid ? this.shiftTo(unit).get(unit) : NaN;\n }\n\n /**\n * Reduce this Duration to its canonical representation in its current units.\n * @example Duration.fromObject({ years: 2, days: 5000 }).normalize().toObject() //=> { years: 15, days: 255 }\n * @example Duration.fromObject({ hours: 12, minutes: -45 }).normalize().toObject() //=> { hours: 11, minutes: 15 }\n * @return {Duration}\n */\n normalize() {\n if (!this.isValid) return this;\n const vals = this.toObject();\n normalizeValues(this.matrix, vals);\n return clone(this, { values: vals }, true);\n }\n\n /**\n * Convert this Duration into its representation in a different set of units.\n * @example Duration.fromObject({ hours: 1, seconds: 30 }).shiftTo('minutes', 'milliseconds').toObject() //=> { minutes: 60, milliseconds: 30000 }\n * @return {Duration}\n */\n shiftTo(...units) {\n if (!this.isValid) return this;\n\n if (units.length === 0) {\n return this;\n }\n\n units = units.map(u => Duration.normalizeUnit(u));\n\n const built = {},\n accumulated = {},\n vals = this.toObject();\n let lastUnit;\n\n for (const k of orderedUnits) {\n if (units.indexOf(k) >= 0) {\n lastUnit = k;\n\n let own = 0;\n\n // anything we haven't boiled down yet should get boiled to this unit\n for (const ak in accumulated) {\n own += this.matrix[ak][k] * accumulated[ak];\n accumulated[ak] = 0;\n }\n\n // plus anything that's already in this unit\n if (isNumber(vals[k])) {\n own += vals[k];\n }\n\n const i = Math.trunc(own);\n built[k] = i;\n accumulated[k] = own - i; // we'd like to absorb these fractions in another unit\n\n // plus anything further down the chain that should be rolled up in to this\n for (const down in vals) {\n if (orderedUnits.indexOf(down) > orderedUnits.indexOf(k)) {\n convert(this.matrix, vals, down, built, k);\n }\n }\n // otherwise, keep it in the wings to boil it later\n } else if (isNumber(vals[k])) {\n accumulated[k] = vals[k];\n }\n }\n\n // anything leftover becomes the decimal for the last unit\n // lastUnit must be defined since units is not empty\n for (const key in accumulated) {\n if (accumulated[key] !== 0) {\n built[lastUnit] +=\n key === lastUnit ? accumulated[key] : accumulated[key] / this.matrix[lastUnit][key];\n }\n }\n\n return clone(this, { values: built }, true).normalize();\n }\n\n /**\n * Return the negative of this Duration.\n * @example Duration.fromObject({ hours: 1, seconds: 30 }).negate().toObject() //=> { hours: -1, seconds: -30 }\n * @return {Duration}\n */\n negate() {\n if (!this.isValid) return this;\n const negated = {};\n for (const k of Object.keys(this.values)) {\n negated[k] = -this.values[k];\n }\n return clone(this, { values: negated }, true);\n }\n\n /**\n * Get the years.\n * @type {number}\n */\n get years() {\n return this.isValid ? this.values.years || 0 : NaN;\n }\n\n /**\n * Get the quarters.\n * @type {number}\n */\n get quarters() {\n return this.isValid ? this.values.quarters || 0 : NaN;\n }\n\n /**\n * Get the months.\n * @type {number}\n */\n get months() {\n return this.isValid ? this.values.months || 0 : NaN;\n }\n\n /**\n * Get the weeks\n * @type {number}\n */\n get weeks() {\n return this.isValid ? this.values.weeks || 0 : NaN;\n }\n\n /**\n * Get the days.\n * @type {number}\n */\n get days() {\n return this.isValid ? this.values.days || 0 : NaN;\n }\n\n /**\n * Get the hours.\n * @type {number}\n */\n get hours() {\n return this.isValid ? this.values.hours || 0 : NaN;\n }\n\n /**\n * Get the minutes.\n * @type {number}\n */\n get minutes() {\n return this.isValid ? this.values.minutes || 0 : NaN;\n }\n\n /**\n * Get the seconds.\n * @return {number}\n */\n get seconds() {\n return this.isValid ? this.values.seconds || 0 : NaN;\n }\n\n /**\n * Get the milliseconds.\n * @return {number}\n */\n get milliseconds() {\n return this.isValid ? this.values.milliseconds || 0 : NaN;\n }\n\n /**\n * Returns whether the Duration is invalid. Invalid durations are returned by diff operations\n * on invalid DateTimes or Intervals.\n * @return {boolean}\n */\n get isValid() {\n return this.invalid === null;\n }\n\n /**\n * Returns an error code if this Duration became invalid, or null if the Duration is valid\n * @return {string}\n */\n get invalidReason() {\n return this.invalid ? this.invalid.reason : null;\n }\n\n /**\n * Returns an explanation of why this Duration became invalid, or null if the Duration is valid\n * @type {string}\n */\n get invalidExplanation() {\n return this.invalid ? this.invalid.explanation : null;\n }\n\n /**\n * Equality check\n * Two Durations are equal iff they have the same units and the same values for each unit.\n * @param {Duration} other\n * @return {boolean}\n */\n equals(other) {\n if (!this.isValid || !other.isValid) {\n return false;\n }\n\n if (!this.loc.equals(other.loc)) {\n return false;\n }\n\n for (const u of orderedUnits) {\n if (this.values[u] !== other.values[u]) {\n return false;\n }\n }\n return true;\n }\n}\n\n/**\n * @private\n */\nexport function friendlyDuration(durationish) {\n if (isNumber(durationish)) {\n return Duration.fromMillis(durationish);\n } else if (Duration.isDuration(durationish)) {\n return durationish;\n } else if (typeof durationish === \"object\") {\n return Duration.fromObject(durationish);\n } else {\n throw new InvalidArgumentError(\n `Unknown duration argument ${durationish} of type ${typeof durationish}`\n );\n }\n}\n","import DateTime, { friendlyDateTime } from \"./datetime.js\";\nimport Duration, { friendlyDuration } from \"./duration.js\";\nimport Settings from \"./settings.js\";\nimport { InvalidArgumentError, InvalidIntervalError } from \"./errors.js\";\nimport Invalid from \"./impl/invalid.js\";\n\nconst INVALID = \"Invalid Interval\";\n\n// checks if the start is equal to or before the end\nfunction validateStartEnd(start, end) {\n if (!start || !start.isValid) {\n return Interval.invalid(\"missing or invalid start\");\n } else if (!end || !end.isValid) {\n return Interval.invalid(\"missing or invalid end\");\n } else if (end < start) {\n return Interval.invalid(\n \"end before start\",\n `The end of an interval must be after its start, but you had start=${start.toISO()} and end=${end.toISO()}`\n );\n } else {\n return null;\n }\n}\n\n/**\n * An Interval object represents a half-open interval of time, where each endpoint is a {@link DateTime}. Conceptually, it's a container for those two endpoints, accompanied by methods for creating, parsing, interrogating, comparing, transforming, and formatting them.\n *\n * Here is a brief overview of the most commonly used methods and getters in Interval:\n *\n * * **Creation** To create an Interval, use {@link fromDateTimes}, {@link after}, {@link before}, or {@link fromISO}.\n * * **Accessors** Use {@link start} and {@link end} to get the start and end.\n * * **Interrogation** To analyze the Interval, use {@link count}, {@link length}, {@link hasSame}, {@link contains}, {@link isAfter}, or {@link isBefore}.\n * * **Transformation** To create other Intervals out of this one, use {@link set}, {@link splitAt}, {@link splitBy}, {@link divideEqually}, {@link merge}, {@link xor}, {@link union}, {@link intersection}, or {@link difference}.\n * * **Comparison** To compare this Interval to another one, use {@link equals}, {@link overlaps}, {@link abutsStart}, {@link abutsEnd}, {@link engulfs}.\n * * **Output** To convert the Interval into other representations, see {@link toString}, {@link toISO}, {@link toISODate}, {@link toISOTime}, {@link toFormat}, and {@link toDuration}.\n */\nexport default class Interval {\n /**\n * @private\n */\n constructor(config) {\n /**\n * @access private\n */\n this.s = config.start;\n /**\n * @access private\n */\n this.e = config.end;\n /**\n * @access private\n */\n this.invalid = config.invalid || null;\n /**\n * @access private\n */\n this.isLuxonInterval = true;\n }\n\n /**\n * Create an invalid Interval.\n * @param {string} reason - simple string of why this Interval is invalid. Should not contain parameters or anything else data-dependent\n * @param {string} [explanation=null] - longer explanation, may include parameters and other useful debugging information\n * @return {Interval}\n */\n static invalid(reason, explanation = null) {\n if (!reason) {\n throw new InvalidArgumentError(\"need to specify a reason the Interval is invalid\");\n }\n\n const invalid = reason instanceof Invalid ? reason : new Invalid(reason, explanation);\n\n if (Settings.throwOnInvalid) {\n throw new InvalidIntervalError(invalid);\n } else {\n return new Interval({ invalid });\n }\n }\n\n /**\n * Create an Interval from a start DateTime and an end DateTime. Inclusive of the start but not the end.\n * @param {DateTime|Date|Object} start\n * @param {DateTime|Date|Object} end\n * @return {Interval}\n */\n static fromDateTimes(start, end) {\n const builtStart = friendlyDateTime(start),\n builtEnd = friendlyDateTime(end);\n\n const validateError = validateStartEnd(builtStart, builtEnd);\n\n if (validateError == null) {\n return new Interval({\n start: builtStart,\n end: builtEnd\n });\n } else {\n return validateError;\n }\n }\n\n /**\n * Create an Interval from a start DateTime and a Duration to extend to.\n * @param {DateTime|Date|Object} start\n * @param {Duration|Object|number} duration - the length of the Interval.\n * @return {Interval}\n */\n static after(start, duration) {\n const dur = friendlyDuration(duration),\n dt = friendlyDateTime(start);\n return Interval.fromDateTimes(dt, dt.plus(dur));\n }\n\n /**\n * Create an Interval from an end DateTime and a Duration to extend backwards to.\n * @param {DateTime|Date|Object} end\n * @param {Duration|Object|number} duration - the length of the Interval.\n * @return {Interval}\n */\n static before(end, duration) {\n const dur = friendlyDuration(duration),\n dt = friendlyDateTime(end);\n return Interval.fromDateTimes(dt.minus(dur), dt);\n }\n\n /**\n * Create an Interval from an ISO 8601 string.\n * Accepts `/`, `/`, and `/` formats.\n * @param {string} text - the ISO string to parse\n * @param {Object} [opts] - options to pass {@link DateTime.fromISO} and optionally {@link Duration.fromISO}\n * @see https://en.wikipedia.org/wiki/ISO_8601#Time_intervals\n * @return {Interval}\n */\n static fromISO(text, opts) {\n const [s, e] = (text || \"\").split(\"/\", 2);\n if (s && e) {\n let start, startIsValid;\n try {\n start = DateTime.fromISO(s, opts);\n startIsValid = start.isValid;\n } catch (e) {\n startIsValid = false;\n }\n\n let end, endIsValid;\n try {\n end = DateTime.fromISO(e, opts);\n endIsValid = end.isValid;\n } catch (e) {\n endIsValid = false;\n }\n\n if (startIsValid && endIsValid) {\n return Interval.fromDateTimes(start, end);\n }\n\n if (startIsValid) {\n const dur = Duration.fromISO(e, opts);\n if (dur.isValid) {\n return Interval.after(start, dur);\n }\n } else if (endIsValid) {\n const dur = Duration.fromISO(s, opts);\n if (dur.isValid) {\n return Interval.before(end, dur);\n }\n }\n }\n return Interval.invalid(\"unparsable\", `the input \"${text}\" can't be parsed as ISO 8601`);\n }\n\n /**\n * Check if an object is an Interval. Works across context boundaries\n * @param {object} o\n * @return {boolean}\n */\n static isInterval(o) {\n return (o && o.isLuxonInterval) || false;\n }\n\n /**\n * Returns the start of the Interval\n * @type {DateTime}\n */\n get start() {\n return this.isValid ? this.s : null;\n }\n\n /**\n * Returns the end of the Interval\n * @type {DateTime}\n */\n get end() {\n return this.isValid ? this.e : null;\n }\n\n /**\n * Returns whether this Interval's end is at least its start, meaning that the Interval isn't 'backwards'.\n * @type {boolean}\n */\n get isValid() {\n return this.invalidReason === null;\n }\n\n /**\n * Returns an error code if this Interval is invalid, or null if the Interval is valid\n * @type {string}\n */\n get invalidReason() {\n return this.invalid ? this.invalid.reason : null;\n }\n\n /**\n * Returns an explanation of why this Interval became invalid, or null if the Interval is valid\n * @type {string}\n */\n get invalidExplanation() {\n return this.invalid ? this.invalid.explanation : null;\n }\n\n /**\n * Returns the length of the Interval in the specified unit.\n * @param {string} unit - the unit (such as 'hours' or 'days') to return the length in.\n * @return {number}\n */\n length(unit = \"milliseconds\") {\n return this.isValid ? this.toDuration(...[unit]).get(unit) : NaN;\n }\n\n /**\n * Returns the count of minutes, hours, days, months, or years included in the Interval, even in part.\n * Unlike {@link length} this counts sections of the calendar, not periods of time, e.g. specifying 'day'\n * asks 'what dates are included in this interval?', not 'how many days long is this interval?'\n * @param {string} [unit='milliseconds'] - the unit of time to count.\n * @return {number}\n */\n count(unit = \"milliseconds\") {\n if (!this.isValid) return NaN;\n const start = this.start.startOf(unit),\n end = this.end.startOf(unit);\n return Math.floor(end.diff(start, unit).get(unit)) + 1;\n }\n\n /**\n * Returns whether this Interval's start and end are both in the same unit of time\n * @param {string} unit - the unit of time to check sameness on\n * @return {boolean}\n */\n hasSame(unit) {\n return this.isValid ? this.isEmpty() || this.e.minus(1).hasSame(this.s, unit) : false;\n }\n\n /**\n * Return whether this Interval has the same start and end DateTimes.\n * @return {boolean}\n */\n isEmpty() {\n return this.s.valueOf() === this.e.valueOf();\n }\n\n /**\n * Return whether this Interval's start is after the specified DateTime.\n * @param {DateTime} dateTime\n * @return {boolean}\n */\n isAfter(dateTime) {\n if (!this.isValid) return false;\n return this.s > dateTime;\n }\n\n /**\n * Return whether this Interval's end is before the specified DateTime.\n * @param {DateTime} dateTime\n * @return {boolean}\n */\n isBefore(dateTime) {\n if (!this.isValid) return false;\n return this.e <= dateTime;\n }\n\n /**\n * Return whether this Interval contains the specified DateTime.\n * @param {DateTime} dateTime\n * @return {boolean}\n */\n contains(dateTime) {\n if (!this.isValid) return false;\n return this.s <= dateTime && this.e > dateTime;\n }\n\n /**\n * \"Sets\" the start and/or end dates. Returns a newly-constructed Interval.\n * @param {Object} values - the values to set\n * @param {DateTime} values.start - the starting DateTime\n * @param {DateTime} values.end - the ending DateTime\n * @return {Interval}\n */\n set({ start, end } = {}) {\n if (!this.isValid) return this;\n return Interval.fromDateTimes(start || this.s, end || this.e);\n }\n\n /**\n * Split this Interval at each of the specified DateTimes\n * @param {...[DateTime]} dateTimes - the unit of time to count.\n * @return {[Interval]}\n */\n splitAt(...dateTimes) {\n if (!this.isValid) return [];\n const sorted = dateTimes\n .map(friendlyDateTime)\n .filter(d => this.contains(d))\n .sort(),\n results = [];\n let { s } = this,\n i = 0;\n\n while (s < this.e) {\n const added = sorted[i] || this.e,\n next = +added > +this.e ? this.e : added;\n results.push(Interval.fromDateTimes(s, next));\n s = next;\n i += 1;\n }\n\n return results;\n }\n\n /**\n * Split this Interval into smaller Intervals, each of the specified length.\n * Left over time is grouped into a smaller interval\n * @param {Duration|Object|number} duration - The length of each resulting interval.\n * @return {[Interval]}\n */\n splitBy(duration) {\n const dur = friendlyDuration(duration);\n\n if (!this.isValid || !dur.isValid || dur.as(\"milliseconds\") === 0) {\n return [];\n }\n\n let { s } = this,\n added,\n next;\n\n const results = [];\n while (s < this.e) {\n added = s.plus(dur);\n next = +added > +this.e ? this.e : added;\n results.push(Interval.fromDateTimes(s, next));\n s = next;\n }\n\n return results;\n }\n\n /**\n * Split this Interval into the specified number of smaller intervals.\n * @param {number} numberOfParts - The number of Intervals to divide the Interval into.\n * @return {[Interval]}\n */\n divideEqually(numberOfParts) {\n if (!this.isValid) return [];\n return this.splitBy(this.length() / numberOfParts).slice(0, numberOfParts);\n }\n\n /**\n * Return whether this Interval overlaps with the specified Interval\n * @param {Interval} other\n * @return {boolean}\n */\n overlaps(other) {\n return this.e > other.s && this.s < other.e;\n }\n\n /**\n * Return whether this Interval's end is adjacent to the specified Interval's start.\n * @param {Interval} other\n * @return {boolean}\n */\n abutsStart(other) {\n if (!this.isValid) return false;\n return +this.e === +other.s;\n }\n\n /**\n * Return whether this Interval's start is adjacent to the specified Interval's end.\n * @param {Interval} other\n * @return {boolean}\n */\n abutsEnd(other) {\n if (!this.isValid) return false;\n return +other.e === +this.s;\n }\n\n /**\n * Return whether this Interval engulfs the start and end of the specified Interval.\n * @param {Interval} other\n * @return {boolean}\n */\n engulfs(other) {\n if (!this.isValid) return false;\n return this.s <= other.s && this.e >= other.e;\n }\n\n /**\n * Return whether this Interval has the same start and end as the specified Interval.\n * @param {Interval} other\n * @return {boolean}\n */\n equals(other) {\n if (!this.isValid || !other.isValid) {\n return false;\n }\n\n return this.s.equals(other.s) && this.e.equals(other.e);\n }\n\n /**\n * Return an Interval representing the intersection of this Interval and the specified Interval.\n * Specifically, the resulting Interval has the maximum start time and the minimum end time of the two Intervals.\n * Returns null if the intersection is empty, meaning, the intervals don't intersect.\n * @param {Interval} other\n * @return {Interval}\n */\n intersection(other) {\n if (!this.isValid) return this;\n const s = this.s > other.s ? this.s : other.s,\n e = this.e < other.e ? this.e : other.e;\n\n if (s > e) {\n return null;\n } else {\n return Interval.fromDateTimes(s, e);\n }\n }\n\n /**\n * Return an Interval representing the union of this Interval and the specified Interval.\n * Specifically, the resulting Interval has the minimum start time and the maximum end time of the two Intervals.\n * @param {Interval} other\n * @return {Interval}\n */\n union(other) {\n if (!this.isValid) return this;\n const s = this.s < other.s ? this.s : other.s,\n e = this.e > other.e ? this.e : other.e;\n return Interval.fromDateTimes(s, e);\n }\n\n /**\n * Merge an array of Intervals into a equivalent minimal set of Intervals.\n * Combines overlapping and adjacent Intervals.\n * @param {[Interval]} intervals\n * @return {[Interval]}\n */\n static merge(intervals) {\n const [found, final] = intervals.sort((a, b) => a.s - b.s).reduce(\n ([sofar, current], item) => {\n if (!current) {\n return [sofar, item];\n } else if (current.overlaps(item) || current.abutsStart(item)) {\n return [sofar, current.union(item)];\n } else {\n return [sofar.concat([current]), item];\n }\n },\n [[], null]\n );\n if (final) {\n found.push(final);\n }\n return found;\n }\n\n /**\n * Return an array of Intervals representing the spans of time that only appear in one of the specified Intervals.\n * @param {[Interval]} intervals\n * @return {[Interval]}\n */\n static xor(intervals) {\n let start = null,\n currentCount = 0;\n const results = [],\n ends = intervals.map(i => [{ time: i.s, type: \"s\" }, { time: i.e, type: \"e\" }]),\n flattened = Array.prototype.concat(...ends),\n arr = flattened.sort((a, b) => a.time - b.time);\n\n for (const i of arr) {\n currentCount += i.type === \"s\" ? 1 : -1;\n\n if (currentCount === 1) {\n start = i.time;\n } else {\n if (start && +start !== +i.time) {\n results.push(Interval.fromDateTimes(start, i.time));\n }\n\n start = null;\n }\n }\n\n return Interval.merge(results);\n }\n\n /**\n * Return an Interval representing the span of time in this Interval that doesn't overlap with any of the specified Intervals.\n * @param {...Interval} intervals\n * @return {[Interval]}\n */\n difference(...intervals) {\n return Interval.xor([this].concat(intervals))\n .map(i => this.intersection(i))\n .filter(i => i && !i.isEmpty());\n }\n\n /**\n * Returns a string representation of this Interval appropriate for debugging.\n * @return {string}\n */\n toString() {\n if (!this.isValid) return INVALID;\n return `[${this.s.toISO()} – ${this.e.toISO()})`;\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this Interval.\n * @see https://en.wikipedia.org/wiki/ISO_8601#Time_intervals\n * @param {Object} opts - The same options as {@link DateTime.toISO}\n * @return {string}\n */\n toISO(opts) {\n if (!this.isValid) return INVALID;\n return `${this.s.toISO(opts)}/${this.e.toISO(opts)}`;\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of date of this Interval.\n * The time components are ignored.\n * @see https://en.wikipedia.org/wiki/ISO_8601#Time_intervals\n * @return {string}\n */\n toISODate() {\n if (!this.isValid) return INVALID;\n return `${this.s.toISODate()}/${this.e.toISODate()}`;\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of time of this Interval.\n * The date components are ignored.\n * @see https://en.wikipedia.org/wiki/ISO_8601#Time_intervals\n * @param {Object} opts - The same options as {@link DateTime.toISO}\n * @return {string}\n */\n toISOTime(opts) {\n if (!this.isValid) return INVALID;\n return `${this.s.toISOTime(opts)}/${this.e.toISOTime(opts)}`;\n }\n\n /**\n * Returns a string representation of this Interval formatted according to the specified format string.\n * @param {string} dateFormat - the format string. This string formats the start and end time. See {@link DateTime.toFormat} for details.\n * @param {Object} opts - options\n * @param {string} [opts.separator = ' – '] - a separator to place between the start and end representations\n * @return {string}\n */\n toFormat(dateFormat, { separator = \" – \" } = {}) {\n if (!this.isValid) return INVALID;\n return `${this.s.toFormat(dateFormat)}${separator}${this.e.toFormat(dateFormat)}`;\n }\n\n /**\n * Return a Duration representing the time spanned by this interval.\n * @param {string|string[]} [unit=['milliseconds']] - the unit or units (such as 'hours' or 'days') to include in the duration.\n * @param {Object} opts - options that affect the creation of the Duration\n * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use\n * @example Interval.fromDateTimes(dt1, dt2).toDuration().toObject() //=> { milliseconds: 88489257 }\n * @example Interval.fromDateTimes(dt1, dt2).toDuration('days').toObject() //=> { days: 1.0241812152777778 }\n * @example Interval.fromDateTimes(dt1, dt2).toDuration(['hours', 'minutes']).toObject() //=> { hours: 24, minutes: 34.82095 }\n * @example Interval.fromDateTimes(dt1, dt2).toDuration(['hours', 'minutes', 'seconds']).toObject() //=> { hours: 24, minutes: 34, seconds: 49.257 }\n * @example Interval.fromDateTimes(dt1, dt2).toDuration('seconds').toObject() //=> { seconds: 88489.257 }\n * @return {Duration}\n */\n toDuration(unit, opts) {\n if (!this.isValid) {\n return Duration.invalid(this.invalidReason);\n }\n return this.e.diff(this.s, unit, opts);\n }\n\n /**\n * Run mapFn on the interval start and end, returning a new Interval from the resulting DateTimes\n * @param {function} mapFn\n * @return {Interval}\n * @example Interval.fromDateTimes(dt1, dt2).mapEndpoints(endpoint => endpoint.toUTC())\n * @example Interval.fromDateTimes(dt1, dt2).mapEndpoints(endpoint => endpoint.plus({ hours: 2 }))\n */\n mapEndpoints(mapFn) {\n return Interval.fromDateTimes(mapFn(this.s), mapFn(this.e));\n }\n}\n","import DateTime from \"./datetime.js\";\nimport Settings from \"./settings.js\";\nimport Locale from \"./impl/locale.js\";\nimport IANAZone from \"./zones/IANAZone.js\";\nimport { normalizeZone } from \"./impl/zoneUtil.js\";\n\nimport { hasFormatToParts, hasIntl, hasRelative } from \"./impl/util.js\";\n\n/**\n * The Info class contains static methods for retrieving general time and date related data. For example, it has methods for finding out if a time zone has a DST, for listing the months in any supported locale, and for discovering which of Luxon features are available in the current environment.\n */\nexport default class Info {\n /**\n * Return whether the specified zone contains a DST.\n * @param {string|Zone} [zone='local'] - Zone to check. Defaults to the environment's local zone.\n * @return {boolean}\n */\n static hasDST(zone = Settings.defaultZone) {\n const proto = DateTime.local()\n .setZone(zone)\n .set({ month: 12 });\n\n return !zone.universal && proto.offset !== proto.set({ month: 6 }).offset;\n }\n\n /**\n * Return whether the specified zone is a valid IANA specifier.\n * @param {string} zone - Zone to check\n * @return {boolean}\n */\n static isValidIANAZone(zone) {\n return IANAZone.isValidSpecifier(zone) && IANAZone.isValidZone(zone);\n }\n\n /**\n * Converts the input into a {@link Zone} instance.\n *\n * * If `input` is already a Zone instance, it is returned unchanged.\n * * If `input` is a string containing a valid time zone name, a Zone instance\n * with that name is returned.\n * * If `input` is a string that doesn't refer to a known time zone, a Zone\n * instance with {@link Zone.isValid} == false is returned.\n * * If `input is a number, a Zone instance with the specified fixed offset\n * in minutes is returned.\n * * If `input` is `null` or `undefined`, the default zone is returned.\n * @param {string|Zone|number} [input] - the value to be converted\n * @return {Zone}\n */\n static normalizeZone(input) {\n return normalizeZone(input, Settings.defaultZone);\n }\n\n /**\n * Return an array of standalone month names.\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat\n * @param {string} [length='long'] - the length of the month representation, such as \"numeric\", \"2-digit\", \"narrow\", \"short\", \"long\"\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @param {string} [opts.numberingSystem=null] - the numbering system\n * @param {string} [opts.outputCalendar='gregory'] - the calendar\n * @example Info.months()[0] //=> 'January'\n * @example Info.months('short')[0] //=> 'Jan'\n * @example Info.months('numeric')[0] //=> '1'\n * @example Info.months('short', { locale: 'fr-CA' } )[0] //=> 'janv.'\n * @example Info.months('numeric', { locale: 'ar' })[0] //=> '١'\n * @example Info.months('long', { outputCalendar: 'islamic' })[0] //=> 'Rabiʻ I'\n * @return {[string]}\n */\n static months(\n length = \"long\",\n { locale = null, numberingSystem = null, outputCalendar = \"gregory\" } = {}\n ) {\n return Locale.create(locale, numberingSystem, outputCalendar).months(length);\n }\n\n /**\n * Return an array of format month names.\n * Format months differ from standalone months in that they're meant to appear next to the day of the month. In some languages, that\n * changes the string.\n * See {@link months}\n * @param {string} [length='long'] - the length of the month representation, such as \"numeric\", \"2-digit\", \"narrow\", \"short\", \"long\"\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @param {string} [opts.numberingSystem=null] - the numbering system\n * @param {string} [opts.outputCalendar='gregory'] - the calendar\n * @return {[string]}\n */\n static monthsFormat(\n length = \"long\",\n { locale = null, numberingSystem = null, outputCalendar = \"gregory\" } = {}\n ) {\n return Locale.create(locale, numberingSystem, outputCalendar).months(length, true);\n }\n\n /**\n * Return an array of standalone week names.\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat\n * @param {string} [length='long'] - the length of the weekday representation, such as \"narrow\", \"short\", \"long\".\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @param {string} [opts.numberingSystem=null] - the numbering system\n * @example Info.weekdays()[0] //=> 'Monday'\n * @example Info.weekdays('short')[0] //=> 'Mon'\n * @example Info.weekdays('short', { locale: 'fr-CA' })[0] //=> 'lun.'\n * @example Info.weekdays('short', { locale: 'ar' })[0] //=> 'الاثنين'\n * @return {[string]}\n */\n static weekdays(length = \"long\", { locale = null, numberingSystem = null } = {}) {\n return Locale.create(locale, numberingSystem, null).weekdays(length);\n }\n\n /**\n * Return an array of format week names.\n * Format weekdays differ from standalone weekdays in that they're meant to appear next to more date information. In some languages, that\n * changes the string.\n * See {@link weekdays}\n * @param {string} [length='long'] - the length of the weekday representation, such as \"narrow\", \"short\", \"long\".\n * @param {Object} opts - options\n * @param {string} [opts.locale=null] - the locale code\n * @param {string} [opts.numberingSystem=null] - the numbering system\n * @return {[string]}\n */\n static weekdaysFormat(length = \"long\", { locale = null, numberingSystem = null } = {}) {\n return Locale.create(locale, numberingSystem, null).weekdays(length, true);\n }\n\n /**\n * Return an array of meridiems.\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @example Info.meridiems() //=> [ 'AM', 'PM' ]\n * @example Info.meridiems({ locale: 'my' }) //=> [ 'နံနက်', 'ညနေ' ]\n * @return {[string]}\n */\n static meridiems({ locale = null } = {}) {\n return Locale.create(locale).meridiems();\n }\n\n /**\n * Return an array of eras, such as ['BC', 'AD']. The locale can be specified, but the calendar system is always Gregorian.\n * @param {string} [length='short'] - the length of the era representation, such as \"short\" or \"long\".\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @example Info.eras() //=> [ 'BC', 'AD' ]\n * @example Info.eras('long') //=> [ 'Before Christ', 'Anno Domini' ]\n * @example Info.eras('long', { locale: 'fr' }) //=> [ 'avant Jésus-Christ', 'après Jésus-Christ' ]\n * @return {[string]}\n */\n static eras(length = \"short\", { locale = null } = {}) {\n return Locale.create(locale, null, \"gregory\").eras(length);\n }\n\n /**\n * Return the set of available features in this environment.\n * Some features of Luxon are not available in all environments. For example, on older browsers, timezone support is not available. Use this function to figure out if that's the case.\n * Keys:\n * * `zones`: whether this environment supports IANA timezones\n * * `intlTokens`: whether this environment supports internationalized token-based formatting/parsing\n * * `intl`: whether this environment supports general internationalization\n * * `relative`: whether this environment supports relative time formatting\n * @example Info.features() //=> { intl: true, intlTokens: false, zones: true, relative: false }\n * @return {Object}\n */\n static features() {\n let intl = false,\n intlTokens = false,\n zones = false,\n relative = false;\n\n if (hasIntl()) {\n intl = true;\n intlTokens = hasFormatToParts();\n relative = hasRelative();\n\n try {\n zones =\n new Intl.DateTimeFormat(\"en\", { timeZone: \"America/New_York\" }).resolvedOptions()\n .timeZone === \"America/New_York\";\n } catch (e) {\n zones = false;\n }\n }\n\n return { intl, intlTokens, zones, relative };\n }\n}\n","import Duration from \"../duration.js\";\n\nfunction dayDiff(earlier, later) {\n const utcDayStart = dt =>\n dt\n .toUTC(0, { keepLocalTime: true })\n .startOf(\"day\")\n .valueOf(),\n ms = utcDayStart(later) - utcDayStart(earlier);\n return Math.floor(Duration.fromMillis(ms).as(\"days\"));\n}\n\nfunction highOrderDiffs(cursor, later, units) {\n const differs = [\n [\"years\", (a, b) => b.year - a.year],\n [\"months\", (a, b) => b.month - a.month + (b.year - a.year) * 12],\n [\n \"weeks\",\n (a, b) => {\n const days = dayDiff(a, b);\n return (days - (days % 7)) / 7;\n }\n ],\n [\"days\", dayDiff]\n ];\n\n const results = {};\n let lowestOrder, highWater;\n\n for (const [unit, differ] of differs) {\n if (units.indexOf(unit) >= 0) {\n lowestOrder = unit;\n\n let delta = differ(cursor, later);\n highWater = cursor.plus({ [unit]: delta });\n\n if (highWater > later) {\n cursor = cursor.plus({ [unit]: delta - 1 });\n delta -= 1;\n } else {\n cursor = highWater;\n }\n\n results[unit] = delta;\n }\n }\n\n return [cursor, results, highWater, lowestOrder];\n}\n\nexport default function(earlier, later, units, opts) {\n let [cursor, results, highWater, lowestOrder] = highOrderDiffs(earlier, later, units);\n\n const remainingMillis = later - cursor;\n\n const lowerOrderUnits = units.filter(\n u => [\"hours\", \"minutes\", \"seconds\", \"milliseconds\"].indexOf(u) >= 0\n );\n\n if (lowerOrderUnits.length === 0) {\n if (highWater < later) {\n highWater = cursor.plus({ [lowestOrder]: 1 });\n }\n\n if (highWater !== cursor) {\n results[lowestOrder] = (results[lowestOrder] || 0) + remainingMillis / (highWater - cursor);\n }\n }\n\n const duration = Duration.fromObject(Object.assign(results, opts));\n\n if (lowerOrderUnits.length > 0) {\n return Duration.fromMillis(remainingMillis, opts)\n .shiftTo(...lowerOrderUnits)\n .plus(duration);\n } else {\n return duration;\n }\n}\n","const numberingSystems = {\n arab: \"[\\u0660-\\u0669]\",\n arabext: \"[\\u06F0-\\u06F9]\",\n bali: \"[\\u1B50-\\u1B59]\",\n beng: \"[\\u09E6-\\u09EF]\",\n deva: \"[\\u0966-\\u096F]\",\n fullwide: \"[\\uFF10-\\uFF19]\",\n gujr: \"[\\u0AE6-\\u0AEF]\",\n hanidec: \"[〇|一|二|三|四|五|六|七|八|九]\",\n khmr: \"[\\u17E0-\\u17E9]\",\n knda: \"[\\u0CE6-\\u0CEF]\",\n laoo: \"[\\u0ED0-\\u0ED9]\",\n limb: \"[\\u1946-\\u194F]\",\n mlym: \"[\\u0D66-\\u0D6F]\",\n mong: \"[\\u1810-\\u1819]\",\n mymr: \"[\\u1040-\\u1049]\",\n orya: \"[\\u0B66-\\u0B6F]\",\n tamldec: \"[\\u0BE6-\\u0BEF]\",\n telu: \"[\\u0C66-\\u0C6F]\",\n thai: \"[\\u0E50-\\u0E59]\",\n tibt: \"[\\u0F20-\\u0F29]\",\n latn: \"\\\\d\"\n};\n\nconst numberingSystemsUTF16 = {\n arab: [1632, 1641],\n arabext: [1776, 1785],\n bali: [6992, 7001],\n beng: [2534, 2543],\n deva: [2406, 2415],\n fullwide: [65296, 65303],\n gujr: [2790, 2799],\n khmr: [6112, 6121],\n knda: [3302, 3311],\n laoo: [3792, 3801],\n limb: [6470, 6479],\n mlym: [3430, 3439],\n mong: [6160, 6169],\n mymr: [4160, 4169],\n orya: [2918, 2927],\n tamldec: [3046, 3055],\n telu: [3174, 3183],\n thai: [3664, 3673],\n tibt: [3872, 3881]\n};\n\n// eslint-disable-next-line\nconst hanidecChars = numberingSystems.hanidec.replace(/[\\[|\\]]/g, \"\").split(\"\");\n\nexport function parseDigits(str) {\n let value = parseInt(str, 10);\n if (isNaN(value)) {\n value = \"\";\n for (let i = 0; i < str.length; i++) {\n const code = str.charCodeAt(i);\n\n if (str[i].search(numberingSystems.hanidec) !== -1) {\n value += hanidecChars.indexOf(str[i]);\n } else {\n for (const key in numberingSystemsUTF16) {\n const [min, max] = numberingSystemsUTF16[key];\n if (code >= min && code <= max) {\n value += code - min;\n }\n }\n }\n }\n return parseInt(value, 10);\n } else {\n return value;\n }\n}\n\nexport function digitRegex({ numberingSystem }, append = \"\") {\n return new RegExp(`${numberingSystems[numberingSystem || \"latn\"]}${append}`);\n}\n","import { parseMillis, isUndefined, untruncateYear, signedOffset, hasOwnProperty } from \"./util.js\";\nimport Formatter from \"./formatter.js\";\nimport FixedOffsetZone from \"../zones/fixedOffsetZone.js\";\nimport IANAZone from \"../zones/IANAZone.js\";\nimport DateTime from \"../datetime.js\";\nimport { digitRegex, parseDigits } from \"./digits.js\";\nimport { ConflictingSpecificationError } from \"../errors.js\";\n\nconst MISSING_FTP = \"missing Intl.DateTimeFormat.formatToParts support\";\n\nfunction intUnit(regex, post = i => i) {\n return { regex, deser: ([s]) => post(parseDigits(s)) };\n}\n\nconst NBSP = String.fromCharCode(160);\nconst spaceOrNBSP = `( |${NBSP})`;\nconst spaceOrNBSPRegExp = new RegExp(spaceOrNBSP, \"g\");\n\nfunction fixListRegex(s) {\n // make dots optional and also make them literal\n // make space and non breakable space characters interchangeable\n return s.replace(/\\./g, \"\\\\.?\").replace(spaceOrNBSPRegExp, spaceOrNBSP);\n}\n\nfunction stripInsensitivities(s) {\n return s\n .replace(/\\./g, \"\") // ignore dots that were made optional\n .replace(spaceOrNBSPRegExp, \" \") // interchange space and nbsp\n .toLowerCase();\n}\n\nfunction oneOf(strings, startIndex) {\n if (strings === null) {\n return null;\n } else {\n return {\n regex: RegExp(strings.map(fixListRegex).join(\"|\")),\n deser: ([s]) =>\n strings.findIndex(i => stripInsensitivities(s) === stripInsensitivities(i)) + startIndex\n };\n }\n}\n\nfunction offset(regex, groups) {\n return { regex, deser: ([, h, m]) => signedOffset(h, m), groups };\n}\n\nfunction simple(regex) {\n return { regex, deser: ([s]) => s };\n}\n\nfunction escapeToken(value) {\n // eslint-disable-next-line no-useless-escape\n return value.replace(/[\\-\\[\\]{}()*+?.,\\\\\\^$|#\\s]/g, \"\\\\$&\");\n}\n\nfunction unitForToken(token, loc) {\n const one = digitRegex(loc),\n two = digitRegex(loc, \"{2}\"),\n three = digitRegex(loc, \"{3}\"),\n four = digitRegex(loc, \"{4}\"),\n six = digitRegex(loc, \"{6}\"),\n oneOrTwo = digitRegex(loc, \"{1,2}\"),\n oneToThree = digitRegex(loc, \"{1,3}\"),\n oneToSix = digitRegex(loc, \"{1,6}\"),\n oneToNine = digitRegex(loc, \"{1,9}\"),\n twoToFour = digitRegex(loc, \"{2,4}\"),\n fourToSix = digitRegex(loc, \"{4,6}\"),\n literal = t => ({ regex: RegExp(escapeToken(t.val)), deser: ([s]) => s, literal: true }),\n unitate = t => {\n if (token.literal) {\n return literal(t);\n }\n switch (t.val) {\n // era\n case \"G\":\n return oneOf(loc.eras(\"short\", false), 0);\n case \"GG\":\n return oneOf(loc.eras(\"long\", false), 0);\n // years\n case \"y\":\n return intUnit(oneToSix);\n case \"yy\":\n return intUnit(twoToFour, untruncateYear);\n case \"yyyy\":\n return intUnit(four);\n case \"yyyyy\":\n return intUnit(fourToSix);\n case \"yyyyyy\":\n return intUnit(six);\n // months\n case \"M\":\n return intUnit(oneOrTwo);\n case \"MM\":\n return intUnit(two);\n case \"MMM\":\n return oneOf(loc.months(\"short\", true, false), 1);\n case \"MMMM\":\n return oneOf(loc.months(\"long\", true, false), 1);\n case \"L\":\n return intUnit(oneOrTwo);\n case \"LL\":\n return intUnit(two);\n case \"LLL\":\n return oneOf(loc.months(\"short\", false, false), 1);\n case \"LLLL\":\n return oneOf(loc.months(\"long\", false, false), 1);\n // dates\n case \"d\":\n return intUnit(oneOrTwo);\n case \"dd\":\n return intUnit(two);\n // ordinals\n case \"o\":\n return intUnit(oneToThree);\n case \"ooo\":\n return intUnit(three);\n // time\n case \"HH\":\n return intUnit(two);\n case \"H\":\n return intUnit(oneOrTwo);\n case \"hh\":\n return intUnit(two);\n case \"h\":\n return intUnit(oneOrTwo);\n case \"mm\":\n return intUnit(two);\n case \"m\":\n return intUnit(oneOrTwo);\n case \"q\":\n return intUnit(oneOrTwo);\n case \"qq\":\n return intUnit(two);\n case \"s\":\n return intUnit(oneOrTwo);\n case \"ss\":\n return intUnit(two);\n case \"S\":\n return intUnit(oneToThree);\n case \"SSS\":\n return intUnit(three);\n case \"u\":\n return simple(oneToNine);\n // meridiem\n case \"a\":\n return oneOf(loc.meridiems(), 0);\n // weekYear (k)\n case \"kkkk\":\n return intUnit(four);\n case \"kk\":\n return intUnit(twoToFour, untruncateYear);\n // weekNumber (W)\n case \"W\":\n return intUnit(oneOrTwo);\n case \"WW\":\n return intUnit(two);\n // weekdays\n case \"E\":\n case \"c\":\n return intUnit(one);\n case \"EEE\":\n return oneOf(loc.weekdays(\"short\", false, false), 1);\n case \"EEEE\":\n return oneOf(loc.weekdays(\"long\", false, false), 1);\n case \"ccc\":\n return oneOf(loc.weekdays(\"short\", true, false), 1);\n case \"cccc\":\n return oneOf(loc.weekdays(\"long\", true, false), 1);\n // offset/zone\n case \"Z\":\n case \"ZZ\":\n return offset(new RegExp(`([+-]${oneOrTwo.source})(?::(${two.source}))?`), 2);\n case \"ZZZ\":\n return offset(new RegExp(`([+-]${oneOrTwo.source})(${two.source})?`), 2);\n // we don't support ZZZZ (PST) or ZZZZZ (Pacific Standard Time) in parsing\n // because we don't have any way to figure out what they are\n case \"z\":\n return simple(/[a-z_+-/]{1,256}?/i);\n default:\n return literal(t);\n }\n };\n\n const unit = unitate(token) || {\n invalidReason: MISSING_FTP\n };\n\n unit.token = token;\n\n return unit;\n}\n\nconst partTypeStyleToTokenVal = {\n year: {\n \"2-digit\": \"yy\",\n numeric: \"yyyyy\"\n },\n month: {\n numeric: \"M\",\n \"2-digit\": \"MM\",\n short: \"MMM\",\n long: \"MMMM\"\n },\n day: {\n numeric: \"d\",\n \"2-digit\": \"dd\"\n },\n weekday: {\n short: \"EEE\",\n long: \"EEEE\"\n },\n dayperiod: \"a\",\n dayPeriod: \"a\",\n hour: {\n numeric: \"h\",\n \"2-digit\": \"hh\"\n },\n minute: {\n numeric: \"m\",\n \"2-digit\": \"mm\"\n },\n second: {\n numeric: \"s\",\n \"2-digit\": \"ss\"\n }\n};\n\nfunction tokenForPart(part, locale, formatOpts) {\n const { type, value } = part;\n\n if (type === \"literal\") {\n return {\n literal: true,\n val: value\n };\n }\n\n const style = formatOpts[type];\n\n let val = partTypeStyleToTokenVal[type];\n if (typeof val === \"object\") {\n val = val[style];\n }\n\n if (val) {\n return {\n literal: false,\n val\n };\n }\n\n return undefined;\n}\n\nfunction buildRegex(units) {\n const re = units.map(u => u.regex).reduce((f, r) => `${f}(${r.source})`, \"\");\n return [`^${re}$`, units];\n}\n\nfunction match(input, regex, handlers) {\n const matches = input.match(regex);\n\n if (matches) {\n const all = {};\n let matchIndex = 1;\n for (const i in handlers) {\n if (hasOwnProperty(handlers, i)) {\n const h = handlers[i],\n groups = h.groups ? h.groups + 1 : 1;\n if (!h.literal && h.token) {\n all[h.token.val[0]] = h.deser(matches.slice(matchIndex, matchIndex + groups));\n }\n matchIndex += groups;\n }\n }\n return [matches, all];\n } else {\n return [matches, {}];\n }\n}\n\nfunction dateTimeFromMatches(matches) {\n const toField = token => {\n switch (token) {\n case \"S\":\n return \"millisecond\";\n case \"s\":\n return \"second\";\n case \"m\":\n return \"minute\";\n case \"h\":\n case \"H\":\n return \"hour\";\n case \"d\":\n return \"day\";\n case \"o\":\n return \"ordinal\";\n case \"L\":\n case \"M\":\n return \"month\";\n case \"y\":\n return \"year\";\n case \"E\":\n case \"c\":\n return \"weekday\";\n case \"W\":\n return \"weekNumber\";\n case \"k\":\n return \"weekYear\";\n case \"q\":\n return \"quarter\";\n default:\n return null;\n }\n };\n\n let zone;\n if (!isUndefined(matches.Z)) {\n zone = new FixedOffsetZone(matches.Z);\n } else if (!isUndefined(matches.z)) {\n zone = IANAZone.create(matches.z);\n } else {\n zone = null;\n }\n\n if (!isUndefined(matches.q)) {\n matches.M = (matches.q - 1) * 3 + 1;\n }\n\n if (!isUndefined(matches.h)) {\n if (matches.h < 12 && matches.a === 1) {\n matches.h += 12;\n } else if (matches.h === 12 && matches.a === 0) {\n matches.h = 0;\n }\n }\n\n if (matches.G === 0 && matches.y) {\n matches.y = -matches.y;\n }\n\n if (!isUndefined(matches.u)) {\n matches.S = parseMillis(matches.u);\n }\n\n const vals = Object.keys(matches).reduce((r, k) => {\n const f = toField(k);\n if (f) {\n r[f] = matches[k];\n }\n\n return r;\n }, {});\n\n return [vals, zone];\n}\n\nlet dummyDateTimeCache = null;\n\nfunction getDummyDateTime() {\n if (!dummyDateTimeCache) {\n dummyDateTimeCache = DateTime.fromMillis(1555555555555);\n }\n\n return dummyDateTimeCache;\n}\n\nfunction maybeExpandMacroToken(token, locale) {\n if (token.literal) {\n return token;\n }\n\n const formatOpts = Formatter.macroTokenToFormatOpts(token.val);\n\n if (!formatOpts) {\n return token;\n }\n\n const formatter = Formatter.create(locale, formatOpts);\n const parts = formatter.formatDateTimeParts(getDummyDateTime());\n\n const tokens = parts.map(p => tokenForPart(p, locale, formatOpts));\n\n if (tokens.includes(undefined)) {\n return token;\n }\n\n return tokens;\n}\n\nfunction expandMacroTokens(tokens, locale) {\n return Array.prototype.concat(...tokens.map(t => maybeExpandMacroToken(t, locale)));\n}\n\n/**\n * @private\n */\n\nexport function explainFromTokens(locale, input, format) {\n const tokens = expandMacroTokens(Formatter.parseFormat(format), locale),\n units = tokens.map(t => unitForToken(t, locale)),\n disqualifyingUnit = units.find(t => t.invalidReason);\n\n if (disqualifyingUnit) {\n return { input, tokens, invalidReason: disqualifyingUnit.invalidReason };\n } else {\n const [regexString, handlers] = buildRegex(units),\n regex = RegExp(regexString, \"i\"),\n [rawMatches, matches] = match(input, regex, handlers),\n [result, zone] = matches ? dateTimeFromMatches(matches) : [null, null];\n if (hasOwnProperty(matches, \"a\") && hasOwnProperty(matches, \"H\")) {\n throw new ConflictingSpecificationError(\n \"Can't include meridiem when specifying 24-hour format\"\n );\n }\n return { input, tokens, regex, rawMatches, matches, result, zone };\n }\n}\n\nexport function parseFromTokens(locale, input, format) {\n const { result, zone, invalidReason } = explainFromTokens(locale, input, format);\n return [result, zone, invalidReason];\n}\n","import {\n integerBetween,\n isLeapYear,\n timeObject,\n daysInYear,\n daysInMonth,\n weeksInWeekYear,\n isInteger\n} from \"./util.js\";\nimport Invalid from \"./invalid.js\";\n\nconst nonLeapLadder = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334],\n leapLadder = [0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335];\n\nfunction unitOutOfRange(unit, value) {\n return new Invalid(\n \"unit out of range\",\n `you specified ${value} (of type ${typeof value}) as a ${unit}, which is invalid`\n );\n}\n\nfunction dayOfWeek(year, month, day) {\n const js = new Date(Date.UTC(year, month - 1, day)).getUTCDay();\n return js === 0 ? 7 : js;\n}\n\nfunction computeOrdinal(year, month, day) {\n return day + (isLeapYear(year) ? leapLadder : nonLeapLadder)[month - 1];\n}\n\nfunction uncomputeOrdinal(year, ordinal) {\n const table = isLeapYear(year) ? leapLadder : nonLeapLadder,\n month0 = table.findIndex(i => i < ordinal),\n day = ordinal - table[month0];\n return { month: month0 + 1, day };\n}\n\n/**\n * @private\n */\n\nexport function gregorianToWeek(gregObj) {\n const { year, month, day } = gregObj,\n ordinal = computeOrdinal(year, month, day),\n weekday = dayOfWeek(year, month, day);\n\n let weekNumber = Math.floor((ordinal - weekday + 10) / 7),\n weekYear;\n\n if (weekNumber < 1) {\n weekYear = year - 1;\n weekNumber = weeksInWeekYear(weekYear);\n } else if (weekNumber > weeksInWeekYear(year)) {\n weekYear = year + 1;\n weekNumber = 1;\n } else {\n weekYear = year;\n }\n\n return Object.assign({ weekYear, weekNumber, weekday }, timeObject(gregObj));\n}\n\nexport function weekToGregorian(weekData) {\n const { weekYear, weekNumber, weekday } = weekData,\n weekdayOfJan4 = dayOfWeek(weekYear, 1, 4),\n yearInDays = daysInYear(weekYear);\n\n let ordinal = weekNumber * 7 + weekday - weekdayOfJan4 - 3,\n year;\n\n if (ordinal < 1) {\n year = weekYear - 1;\n ordinal += daysInYear(year);\n } else if (ordinal > yearInDays) {\n year = weekYear + 1;\n ordinal -= daysInYear(weekYear);\n } else {\n year = weekYear;\n }\n\n const { month, day } = uncomputeOrdinal(year, ordinal);\n\n return Object.assign({ year, month, day }, timeObject(weekData));\n}\n\nexport function gregorianToOrdinal(gregData) {\n const { year, month, day } = gregData,\n ordinal = computeOrdinal(year, month, day);\n\n return Object.assign({ year, ordinal }, timeObject(gregData));\n}\n\nexport function ordinalToGregorian(ordinalData) {\n const { year, ordinal } = ordinalData,\n { month, day } = uncomputeOrdinal(year, ordinal);\n\n return Object.assign({ year, month, day }, timeObject(ordinalData));\n}\n\nexport function hasInvalidWeekData(obj) {\n const validYear = isInteger(obj.weekYear),\n validWeek = integerBetween(obj.weekNumber, 1, weeksInWeekYear(obj.weekYear)),\n validWeekday = integerBetween(obj.weekday, 1, 7);\n\n if (!validYear) {\n return unitOutOfRange(\"weekYear\", obj.weekYear);\n } else if (!validWeek) {\n return unitOutOfRange(\"week\", obj.week);\n } else if (!validWeekday) {\n return unitOutOfRange(\"weekday\", obj.weekday);\n } else return false;\n}\n\nexport function hasInvalidOrdinalData(obj) {\n const validYear = isInteger(obj.year),\n validOrdinal = integerBetween(obj.ordinal, 1, daysInYear(obj.year));\n\n if (!validYear) {\n return unitOutOfRange(\"year\", obj.year);\n } else if (!validOrdinal) {\n return unitOutOfRange(\"ordinal\", obj.ordinal);\n } else return false;\n}\n\nexport function hasInvalidGregorianData(obj) {\n const validYear = isInteger(obj.year),\n validMonth = integerBetween(obj.month, 1, 12),\n validDay = integerBetween(obj.day, 1, daysInMonth(obj.year, obj.month));\n\n if (!validYear) {\n return unitOutOfRange(\"year\", obj.year);\n } else if (!validMonth) {\n return unitOutOfRange(\"month\", obj.month);\n } else if (!validDay) {\n return unitOutOfRange(\"day\", obj.day);\n } else return false;\n}\n\nexport function hasInvalidTimeData(obj) {\n const { hour, minute, second, millisecond } = obj;\n const validHour =\n integerBetween(hour, 0, 23) ||\n (hour === 24 && minute === 0 && second === 0 && millisecond === 0),\n validMinute = integerBetween(minute, 0, 59),\n validSecond = integerBetween(second, 0, 59),\n validMillisecond = integerBetween(millisecond, 0, 999);\n\n if (!validHour) {\n return unitOutOfRange(\"hour\", hour);\n } else if (!validMinute) {\n return unitOutOfRange(\"minute\", minute);\n } else if (!validSecond) {\n return unitOutOfRange(\"second\", second);\n } else if (!validMillisecond) {\n return unitOutOfRange(\"millisecond\", millisecond);\n } else return false;\n}\n","import Duration, { friendlyDuration } from \"./duration.js\";\nimport Interval from \"./interval.js\";\nimport Settings from \"./settings.js\";\nimport Info from \"./info.js\";\nimport Formatter from \"./impl/formatter.js\";\nimport FixedOffsetZone from \"./zones/fixedOffsetZone.js\";\nimport Locale from \"./impl/locale.js\";\nimport {\n isUndefined,\n maybeArray,\n isDate,\n isNumber,\n bestBy,\n daysInMonth,\n daysInYear,\n isLeapYear,\n weeksInWeekYear,\n normalizeObject,\n roundTo,\n objToLocalTS\n} from \"./impl/util.js\";\nimport { normalizeZone } from \"./impl/zoneUtil.js\";\nimport diff from \"./impl/diff.js\";\nimport { parseRFC2822Date, parseISODate, parseHTTPDate, parseSQL } from \"./impl/regexParser.js\";\nimport { parseFromTokens, explainFromTokens } from \"./impl/tokenParser.js\";\nimport {\n gregorianToWeek,\n weekToGregorian,\n gregorianToOrdinal,\n ordinalToGregorian,\n hasInvalidGregorianData,\n hasInvalidWeekData,\n hasInvalidOrdinalData,\n hasInvalidTimeData\n} from \"./impl/conversions.js\";\nimport * as Formats from \"./impl/formats.js\";\nimport {\n InvalidArgumentError,\n ConflictingSpecificationError,\n InvalidUnitError,\n InvalidDateTimeError\n} from \"./errors.js\";\nimport Invalid from \"./impl/invalid.js\";\n\nconst INVALID = \"Invalid DateTime\";\nconst MAX_DATE = 8.64e15;\n\nfunction unsupportedZone(zone) {\n return new Invalid(\"unsupported zone\", `the zone \"${zone.name}\" is not supported`);\n}\n\n// we cache week data on the DT object and this intermediates the cache\nfunction possiblyCachedWeekData(dt) {\n if (dt.weekData === null) {\n dt.weekData = gregorianToWeek(dt.c);\n }\n return dt.weekData;\n}\n\n// clone really means, \"make a new object with these modifications\". all \"setters\" really use this\n// to create a new object while only changing some of the properties\nfunction clone(inst, alts) {\n const current = {\n ts: inst.ts,\n zone: inst.zone,\n c: inst.c,\n o: inst.o,\n loc: inst.loc,\n invalid: inst.invalid\n };\n return new DateTime(Object.assign({}, current, alts, { old: current }));\n}\n\n// find the right offset a given local time. The o input is our guess, which determines which\n// offset we'll pick in ambiguous cases (e.g. there are two 3 AMs b/c Fallback DST)\nfunction fixOffset(localTS, o, tz) {\n // Our UTC time is just a guess because our offset is just a guess\n let utcGuess = localTS - o * 60 * 1000;\n\n // Test whether the zone matches the offset for this ts\n const o2 = tz.offset(utcGuess);\n\n // If so, offset didn't change and we're done\n if (o === o2) {\n return [utcGuess, o];\n }\n\n // If not, change the ts by the difference in the offset\n utcGuess -= (o2 - o) * 60 * 1000;\n\n // If that gives us the local time we want, we're done\n const o3 = tz.offset(utcGuess);\n if (o2 === o3) {\n return [utcGuess, o2];\n }\n\n // If it's different, we're in a hole time. The offset has changed, but the we don't adjust the time\n return [localTS - Math.min(o2, o3) * 60 * 1000, Math.max(o2, o3)];\n}\n\n// convert an epoch timestamp into a calendar object with the given offset\nfunction tsToObj(ts, offset) {\n ts += offset * 60 * 1000;\n\n const d = new Date(ts);\n\n return {\n year: d.getUTCFullYear(),\n month: d.getUTCMonth() + 1,\n day: d.getUTCDate(),\n hour: d.getUTCHours(),\n minute: d.getUTCMinutes(),\n second: d.getUTCSeconds(),\n millisecond: d.getUTCMilliseconds()\n };\n}\n\n// convert a calendar object to a epoch timestamp\nfunction objToTS(obj, offset, zone) {\n return fixOffset(objToLocalTS(obj), offset, zone);\n}\n\n// create a new DT instance by adding a duration, adjusting for DSTs\nfunction adjustTime(inst, dur) {\n const oPre = inst.o,\n year = inst.c.year + Math.trunc(dur.years),\n month = inst.c.month + Math.trunc(dur.months) + Math.trunc(dur.quarters) * 3,\n c = Object.assign({}, inst.c, {\n year,\n month,\n day:\n Math.min(inst.c.day, daysInMonth(year, month)) +\n Math.trunc(dur.days) +\n Math.trunc(dur.weeks) * 7\n }),\n millisToAdd = Duration.fromObject({\n years: dur.years - Math.trunc(dur.years),\n quarters: dur.quarters - Math.trunc(dur.quarters),\n months: dur.months - Math.trunc(dur.months),\n weeks: dur.weeks - Math.trunc(dur.weeks),\n days: dur.days - Math.trunc(dur.days),\n hours: dur.hours,\n minutes: dur.minutes,\n seconds: dur.seconds,\n milliseconds: dur.milliseconds\n }).as(\"milliseconds\"),\n localTS = objToLocalTS(c);\n\n let [ts, o] = fixOffset(localTS, oPre, inst.zone);\n\n if (millisToAdd !== 0) {\n ts += millisToAdd;\n // that could have changed the offset by going over a DST, but we want to keep the ts the same\n o = inst.zone.offset(ts);\n }\n\n return { ts, o };\n}\n\n// helper useful in turning the results of parsing into real dates\n// by handling the zone options\nfunction parseDataToDateTime(parsed, parsedZone, opts, format, text) {\n const { setZone, zone } = opts;\n if (parsed && Object.keys(parsed).length !== 0) {\n const interpretationZone = parsedZone || zone,\n inst = DateTime.fromObject(\n Object.assign(parsed, opts, {\n zone: interpretationZone,\n // setZone is a valid option in the calling methods, but not in fromObject\n setZone: undefined\n })\n );\n return setZone ? inst : inst.setZone(zone);\n } else {\n return DateTime.invalid(\n new Invalid(\"unparsable\", `the input \"${text}\" can't be parsed as ${format}`)\n );\n }\n}\n\n// if you want to output a technical format (e.g. RFC 2822), this helper\n// helps handle the details\nfunction toTechFormat(dt, format, allowZ = true) {\n return dt.isValid\n ? Formatter.create(Locale.create(\"en-US\"), {\n allowZ,\n forceSimple: true\n }).formatDateTimeFromString(dt, format)\n : null;\n}\n\n// technical time formats (e.g. the time part of ISO 8601), take some options\n// and this commonizes their handling\nfunction toTechTimeFormat(\n dt,\n {\n suppressSeconds = false,\n suppressMilliseconds = false,\n includeOffset,\n includeZone = false,\n spaceZone = false,\n format = \"extended\"\n }\n) {\n let fmt = format === \"basic\" ? \"HHmm\" : \"HH:mm\";\n\n if (!suppressSeconds || dt.second !== 0 || dt.millisecond !== 0) {\n fmt += format === \"basic\" ? \"ss\" : \":ss\";\n if (!suppressMilliseconds || dt.millisecond !== 0) {\n fmt += \".SSS\";\n }\n }\n\n if ((includeZone || includeOffset) && spaceZone) {\n fmt += \" \";\n }\n\n if (includeZone) {\n fmt += \"z\";\n } else if (includeOffset) {\n fmt += format === \"basic\" ? \"ZZZ\" : \"ZZ\";\n }\n\n return toTechFormat(dt, fmt);\n}\n\n// defaults for unspecified units in the supported calendars\nconst defaultUnitValues = {\n month: 1,\n day: 1,\n hour: 0,\n minute: 0,\n second: 0,\n millisecond: 0\n },\n defaultWeekUnitValues = {\n weekNumber: 1,\n weekday: 1,\n hour: 0,\n minute: 0,\n second: 0,\n millisecond: 0\n },\n defaultOrdinalUnitValues = {\n ordinal: 1,\n hour: 0,\n minute: 0,\n second: 0,\n millisecond: 0\n };\n\n// Units in the supported calendars, sorted by bigness\nconst orderedUnits = [\"year\", \"month\", \"day\", \"hour\", \"minute\", \"second\", \"millisecond\"],\n orderedWeekUnits = [\n \"weekYear\",\n \"weekNumber\",\n \"weekday\",\n \"hour\",\n \"minute\",\n \"second\",\n \"millisecond\"\n ],\n orderedOrdinalUnits = [\"year\", \"ordinal\", \"hour\", \"minute\", \"second\", \"millisecond\"];\n\n// standardize case and plurality in units\nfunction normalizeUnit(unit) {\n const normalized = {\n year: \"year\",\n years: \"year\",\n month: \"month\",\n months: \"month\",\n day: \"day\",\n days: \"day\",\n hour: \"hour\",\n hours: \"hour\",\n minute: \"minute\",\n minutes: \"minute\",\n quarter: \"quarter\",\n quarters: \"quarter\",\n second: \"second\",\n seconds: \"second\",\n millisecond: \"millisecond\",\n milliseconds: \"millisecond\",\n weekday: \"weekday\",\n weekdays: \"weekday\",\n weeknumber: \"weekNumber\",\n weeksnumber: \"weekNumber\",\n weeknumbers: \"weekNumber\",\n weekyear: \"weekYear\",\n weekyears: \"weekYear\",\n ordinal: \"ordinal\"\n }[unit.toLowerCase()];\n\n if (!normalized) throw new InvalidUnitError(unit);\n\n return normalized;\n}\n\n// this is a dumbed down version of fromObject() that runs about 60% faster\n// but doesn't do any validation, makes a bunch of assumptions about what units\n// are present, and so on.\nfunction quickDT(obj, zone) {\n // assume we have the higher-order units\n for (const u of orderedUnits) {\n if (isUndefined(obj[u])) {\n obj[u] = defaultUnitValues[u];\n }\n }\n\n const invalid = hasInvalidGregorianData(obj) || hasInvalidTimeData(obj);\n if (invalid) {\n return DateTime.invalid(invalid);\n }\n\n const tsNow = Settings.now(),\n offsetProvis = zone.offset(tsNow),\n [ts, o] = objToTS(obj, offsetProvis, zone);\n\n return new DateTime({\n ts,\n zone,\n o\n });\n}\n\nfunction diffRelative(start, end, opts) {\n const round = isUndefined(opts.round) ? true : opts.round,\n format = (c, unit) => {\n c = roundTo(c, round || opts.calendary ? 0 : 2, true);\n const formatter = end.loc.clone(opts).relFormatter(opts);\n return formatter.format(c, unit);\n },\n differ = unit => {\n if (opts.calendary) {\n if (!end.hasSame(start, unit)) {\n return end\n .startOf(unit)\n .diff(start.startOf(unit), unit)\n .get(unit);\n } else return 0;\n } else {\n return end.diff(start, unit).get(unit);\n }\n };\n\n if (opts.unit) {\n return format(differ(opts.unit), opts.unit);\n }\n\n for (const unit of opts.units) {\n const count = differ(unit);\n if (Math.abs(count) >= 1) {\n return format(count, unit);\n }\n }\n return format(0, opts.units[opts.units.length - 1]);\n}\n\n/**\n * A DateTime is an immutable data structure representing a specific date and time and accompanying methods. It contains class and instance methods for creating, parsing, interrogating, transforming, and formatting them.\n *\n * A DateTime comprises of:\n * * A timestamp. Each DateTime instance refers to a specific millisecond of the Unix epoch.\n * * A time zone. Each instance is considered in the context of a specific zone (by default the local system's zone).\n * * Configuration properties that effect how output strings are formatted, such as `locale`, `numberingSystem`, and `outputCalendar`.\n *\n * Here is a brief overview of the most commonly used functionality it provides:\n *\n * * **Creation**: To create a DateTime from its components, use one of its factory class methods: {@link local}, {@link utc}, and (most flexibly) {@link fromObject}. To create one from a standard string format, use {@link fromISO}, {@link fromHTTP}, and {@link fromRFC2822}. To create one from a custom string format, use {@link fromFormat}. To create one from a native JS date, use {@link fromJSDate}.\n * * **Gregorian calendar and time**: To examine the Gregorian properties of a DateTime individually (i.e as opposed to collectively through {@link toObject}), use the {@link year}, {@link month},\n * {@link day}, {@link hour}, {@link minute}, {@link second}, {@link millisecond} accessors.\n * * **Week calendar**: For ISO week calendar attributes, see the {@link weekYear}, {@link weekNumber}, and {@link weekday} accessors.\n * * **Configuration** See the {@link locale} and {@link numberingSystem} accessors.\n * * **Transformation**: To transform the DateTime into other DateTimes, use {@link set}, {@link reconfigure}, {@link setZone}, {@link setLocale}, {@link plus}, {@link minus}, {@link endOf}, {@link startOf}, {@link toUTC}, and {@link toLocal}.\n * * **Output**: To convert the DateTime to other representations, use the {@link toRelative}, {@link toRelativeCalendar}, {@link toJSON}, {@link toISO}, {@link toHTTP}, {@link toObject}, {@link toRFC2822}, {@link toString}, {@link toLocaleString}, {@link toFormat}, {@link toMillis} and {@link toJSDate}.\n *\n * There's plenty others documented below. In addition, for more information on subtler topics like internationalization, time zones, alternative calendars, validity, and so on, see the external documentation.\n */\nexport default class DateTime {\n /**\n * @access private\n */\n constructor(config) {\n const zone = config.zone || Settings.defaultZone;\n\n let invalid =\n config.invalid ||\n (Number.isNaN(config.ts) ? new Invalid(\"invalid input\") : null) ||\n (!zone.isValid ? unsupportedZone(zone) : null);\n /**\n * @access private\n */\n this.ts = isUndefined(config.ts) ? Settings.now() : config.ts;\n\n let c = null,\n o = null;\n if (!invalid) {\n const unchanged = config.old && config.old.ts === this.ts && config.old.zone.equals(zone);\n\n if (unchanged) {\n [c, o] = [config.old.c, config.old.o];\n } else {\n const ot = zone.offset(this.ts);\n c = tsToObj(this.ts, ot);\n invalid = Number.isNaN(c.year) ? new Invalid(\"invalid input\") : null;\n c = invalid ? null : c;\n o = invalid ? null : ot;\n }\n }\n\n /**\n * @access private\n */\n this._zone = zone;\n /**\n * @access private\n */\n this.loc = config.loc || Locale.create();\n /**\n * @access private\n */\n this.invalid = invalid;\n /**\n * @access private\n */\n this.weekData = null;\n /**\n * @access private\n */\n this.c = c;\n /**\n * @access private\n */\n this.o = o;\n /**\n * @access private\n */\n this.isLuxonDateTime = true;\n }\n\n // CONSTRUCT\n\n /**\n * Create a local DateTime\n * @param {number} [year] - The calendar year. If omitted (as in, call `local()` with no arguments), the current time will be used\n * @param {number} [month=1] - The month, 1-indexed\n * @param {number} [day=1] - The day of the month\n * @param {number} [hour=0] - The hour of the day, in 24-hour time\n * @param {number} [minute=0] - The minute of the hour, meaning a number between 0 and 59\n * @param {number} [second=0] - The second of the minute, meaning a number between 0 and 59\n * @param {number} [millisecond=0] - The millisecond of the second, meaning a number between 0 and 999\n * @example DateTime.local() //~> now\n * @example DateTime.local(2017) //~> 2017-01-01T00:00:00\n * @example DateTime.local(2017, 3) //~> 2017-03-01T00:00:00\n * @example DateTime.local(2017, 3, 12) //~> 2017-03-12T00:00:00\n * @example DateTime.local(2017, 3, 12, 5) //~> 2017-03-12T05:00:00\n * @example DateTime.local(2017, 3, 12, 5, 45) //~> 2017-03-12T05:45:00\n * @example DateTime.local(2017, 3, 12, 5, 45, 10) //~> 2017-03-12T05:45:10\n * @example DateTime.local(2017, 3, 12, 5, 45, 10, 765) //~> 2017-03-12T05:45:10.765\n * @return {DateTime}\n */\n static local(year, month, day, hour, minute, second, millisecond) {\n if (isUndefined(year)) {\n return new DateTime({ ts: Settings.now() });\n } else {\n return quickDT(\n {\n year,\n month,\n day,\n hour,\n minute,\n second,\n millisecond\n },\n Settings.defaultZone\n );\n }\n }\n\n /**\n * Create a DateTime in UTC\n * @param {number} [year] - The calendar year. If omitted (as in, call `utc()` with no arguments), the current time will be used\n * @param {number} [month=1] - The month, 1-indexed\n * @param {number} [day=1] - The day of the month\n * @param {number} [hour=0] - The hour of the day, in 24-hour time\n * @param {number} [minute=0] - The minute of the hour, meaning a number between 0 and 59\n * @param {number} [second=0] - The second of the minute, meaning a number between 0 and 59\n * @param {number} [millisecond=0] - The millisecond of the second, meaning a number between 0 and 999\n * @example DateTime.utc() //~> now\n * @example DateTime.utc(2017) //~> 2017-01-01T00:00:00Z\n * @example DateTime.utc(2017, 3) //~> 2017-03-01T00:00:00Z\n * @example DateTime.utc(2017, 3, 12) //~> 2017-03-12T00:00:00Z\n * @example DateTime.utc(2017, 3, 12, 5) //~> 2017-03-12T05:00:00Z\n * @example DateTime.utc(2017, 3, 12, 5, 45) //~> 2017-03-12T05:45:00Z\n * @example DateTime.utc(2017, 3, 12, 5, 45, 10) //~> 2017-03-12T05:45:10Z\n * @example DateTime.utc(2017, 3, 12, 5, 45, 10, 765) //~> 2017-03-12T05:45:10.765Z\n * @return {DateTime}\n */\n static utc(year, month, day, hour, minute, second, millisecond) {\n if (isUndefined(year)) {\n return new DateTime({\n ts: Settings.now(),\n zone: FixedOffsetZone.utcInstance\n });\n } else {\n return quickDT(\n {\n year,\n month,\n day,\n hour,\n minute,\n second,\n millisecond\n },\n FixedOffsetZone.utcInstance\n );\n }\n }\n\n /**\n * Create a DateTime from a Javascript Date object. Uses the default zone.\n * @param {Date} date - a Javascript Date object\n * @param {Object} options - configuration options for the DateTime\n * @param {string|Zone} [options.zone='local'] - the zone to place the DateTime into\n * @return {DateTime}\n */\n static fromJSDate(date, options = {}) {\n const ts = isDate(date) ? date.valueOf() : NaN;\n if (Number.isNaN(ts)) {\n return DateTime.invalid(\"invalid input\");\n }\n\n const zoneToUse = normalizeZone(options.zone, Settings.defaultZone);\n if (!zoneToUse.isValid) {\n return DateTime.invalid(unsupportedZone(zoneToUse));\n }\n\n return new DateTime({\n ts: ts,\n zone: zoneToUse,\n loc: Locale.fromObject(options)\n });\n }\n\n /**\n * Create a DateTime from a number of milliseconds since the epoch (meaning since 1 January 1970 00:00:00 UTC). Uses the default zone.\n * @param {number} milliseconds - a number of milliseconds since 1970 UTC\n * @param {Object} options - configuration options for the DateTime\n * @param {string|Zone} [options.zone='local'] - the zone to place the DateTime into\n * @param {string} [options.locale] - a locale to set on the resulting DateTime instance\n * @param {string} options.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} options.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @return {DateTime}\n */\n static fromMillis(milliseconds, options = {}) {\n if (!isNumber(milliseconds)) {\n throw new InvalidArgumentError(\n `fromMillis requires a numerical input, but received a ${typeof milliseconds} with value ${milliseconds}`\n );\n } else if (milliseconds < -MAX_DATE || milliseconds > MAX_DATE) {\n // this isn't perfect because because we can still end up out of range because of additional shifting, but it's a start\n return DateTime.invalid(\"Timestamp out of range\");\n } else {\n return new DateTime({\n ts: milliseconds,\n zone: normalizeZone(options.zone, Settings.defaultZone),\n loc: Locale.fromObject(options)\n });\n }\n }\n\n /**\n * Create a DateTime from a number of seconds since the epoch (meaning since 1 January 1970 00:00:00 UTC). Uses the default zone.\n * @param {number} seconds - a number of seconds since 1970 UTC\n * @param {Object} options - configuration options for the DateTime\n * @param {string|Zone} [options.zone='local'] - the zone to place the DateTime into\n * @param {string} [options.locale] - a locale to set on the resulting DateTime instance\n * @param {string} options.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} options.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @return {DateTime}\n */\n static fromSeconds(seconds, options = {}) {\n if (!isNumber(seconds)) {\n throw new InvalidArgumentError(\"fromSeconds requires a numerical input\");\n } else {\n return new DateTime({\n ts: seconds * 1000,\n zone: normalizeZone(options.zone, Settings.defaultZone),\n loc: Locale.fromObject(options)\n });\n }\n }\n\n /**\n * Create a DateTime from a Javascript object with keys like 'year' and 'hour' with reasonable defaults.\n * @param {Object} obj - the object to create the DateTime from\n * @param {number} obj.year - a year, such as 1987\n * @param {number} obj.month - a month, 1-12\n * @param {number} obj.day - a day of the month, 1-31, depending on the month\n * @param {number} obj.ordinal - day of the year, 1-365 or 366\n * @param {number} obj.weekYear - an ISO week year\n * @param {number} obj.weekNumber - an ISO week number, between 1 and 52 or 53, depending on the year\n * @param {number} obj.weekday - an ISO weekday, 1-7, where 1 is Monday and 7 is Sunday\n * @param {number} obj.hour - hour of the day, 0-23\n * @param {number} obj.minute - minute of the hour, 0-59\n * @param {number} obj.second - second of the minute, 0-59\n * @param {number} obj.millisecond - millisecond of the second, 0-999\n * @param {string|Zone} [obj.zone='local'] - interpret the numbers in the context of a particular zone. Can take any value taken as the first argument to setZone()\n * @param {string} [obj.locale='system's locale'] - a locale to set on the resulting DateTime instance\n * @param {string} obj.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} obj.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @example DateTime.fromObject({ year: 1982, month: 5, day: 25}).toISODate() //=> '1982-05-25'\n * @example DateTime.fromObject({ year: 1982 }).toISODate() //=> '1982-01-01'\n * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6 }) //~> today at 10:26:06\n * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6, zone: 'utc' }),\n * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6, zone: 'local' })\n * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6, zone: 'America/New_York' })\n * @example DateTime.fromObject({ weekYear: 2016, weekNumber: 2, weekday: 3 }).toISODate() //=> '2016-01-13'\n * @return {DateTime}\n */\n static fromObject(obj) {\n const zoneToUse = normalizeZone(obj.zone, Settings.defaultZone);\n if (!zoneToUse.isValid) {\n return DateTime.invalid(unsupportedZone(zoneToUse));\n }\n\n const tsNow = Settings.now(),\n offsetProvis = zoneToUse.offset(tsNow),\n normalized = normalizeObject(obj, normalizeUnit, [\n \"zone\",\n \"locale\",\n \"outputCalendar\",\n \"numberingSystem\"\n ]),\n containsOrdinal = !isUndefined(normalized.ordinal),\n containsGregorYear = !isUndefined(normalized.year),\n containsGregorMD = !isUndefined(normalized.month) || !isUndefined(normalized.day),\n containsGregor = containsGregorYear || containsGregorMD,\n definiteWeekDef = normalized.weekYear || normalized.weekNumber,\n loc = Locale.fromObject(obj);\n\n // cases:\n // just a weekday -> this week's instance of that weekday, no worries\n // (gregorian data or ordinal) + (weekYear or weekNumber) -> error\n // (gregorian month or day) + ordinal -> error\n // otherwise just use weeks or ordinals or gregorian, depending on what's specified\n\n if ((containsGregor || containsOrdinal) && definiteWeekDef) {\n throw new ConflictingSpecificationError(\n \"Can't mix weekYear/weekNumber units with year/month/day or ordinals\"\n );\n }\n\n if (containsGregorMD && containsOrdinal) {\n throw new ConflictingSpecificationError(\"Can't mix ordinal dates with month/day\");\n }\n\n const useWeekData = definiteWeekDef || (normalized.weekday && !containsGregor);\n\n // configure ourselves to deal with gregorian dates or week stuff\n let units,\n defaultValues,\n objNow = tsToObj(tsNow, offsetProvis);\n if (useWeekData) {\n units = orderedWeekUnits;\n defaultValues = defaultWeekUnitValues;\n objNow = gregorianToWeek(objNow);\n } else if (containsOrdinal) {\n units = orderedOrdinalUnits;\n defaultValues = defaultOrdinalUnitValues;\n objNow = gregorianToOrdinal(objNow);\n } else {\n units = orderedUnits;\n defaultValues = defaultUnitValues;\n }\n\n // set default values for missing stuff\n let foundFirst = false;\n for (const u of units) {\n const v = normalized[u];\n if (!isUndefined(v)) {\n foundFirst = true;\n } else if (foundFirst) {\n normalized[u] = defaultValues[u];\n } else {\n normalized[u] = objNow[u];\n }\n }\n\n // make sure the values we have are in range\n const higherOrderInvalid = useWeekData\n ? hasInvalidWeekData(normalized)\n : containsOrdinal\n ? hasInvalidOrdinalData(normalized)\n : hasInvalidGregorianData(normalized),\n invalid = higherOrderInvalid || hasInvalidTimeData(normalized);\n\n if (invalid) {\n return DateTime.invalid(invalid);\n }\n\n // compute the actual time\n const gregorian = useWeekData\n ? weekToGregorian(normalized)\n : containsOrdinal\n ? ordinalToGregorian(normalized)\n : normalized,\n [tsFinal, offsetFinal] = objToTS(gregorian, offsetProvis, zoneToUse),\n inst = new DateTime({\n ts: tsFinal,\n zone: zoneToUse,\n o: offsetFinal,\n loc\n });\n\n // gregorian data + weekday serves only to validate\n if (normalized.weekday && containsGregor && obj.weekday !== inst.weekday) {\n return DateTime.invalid(\n \"mismatched weekday\",\n `you can't specify both a weekday of ${normalized.weekday} and a date of ${inst.toISO()}`\n );\n }\n\n return inst;\n }\n\n /**\n * Create a DateTime from an ISO 8601 string\n * @param {string} text - the ISO string\n * @param {Object} opts - options to affect the creation\n * @param {string|Zone} [opts.zone='local'] - use this zone if no offset is specified in the input string itself. Will also convert the time to this zone\n * @param {boolean} [opts.setZone=false] - override the zone with a fixed-offset zone specified in the string itself, if it specifies one\n * @param {string} [opts.locale='system's locale'] - a locale to set on the resulting DateTime instance\n * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} opts.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @example DateTime.fromISO('2016-05-25T09:08:34.123')\n * @example DateTime.fromISO('2016-05-25T09:08:34.123+06:00')\n * @example DateTime.fromISO('2016-05-25T09:08:34.123+06:00', {setZone: true})\n * @example DateTime.fromISO('2016-05-25T09:08:34.123', {zone: 'utc'})\n * @example DateTime.fromISO('2016-W05-4')\n * @return {DateTime}\n */\n static fromISO(text, opts = {}) {\n const [vals, parsedZone] = parseISODate(text);\n return parseDataToDateTime(vals, parsedZone, opts, \"ISO 8601\", text);\n }\n\n /**\n * Create a DateTime from an RFC 2822 string\n * @param {string} text - the RFC 2822 string\n * @param {Object} opts - options to affect the creation\n * @param {string|Zone} [opts.zone='local'] - convert the time to this zone. Since the offset is always specified in the string itself, this has no effect on the interpretation of string, merely the zone the resulting DateTime is expressed in.\n * @param {boolean} [opts.setZone=false] - override the zone with a fixed-offset zone specified in the string itself, if it specifies one\n * @param {string} [opts.locale='system's locale'] - a locale to set on the resulting DateTime instance\n * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} opts.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @example DateTime.fromRFC2822('25 Nov 2016 13:23:12 GMT')\n * @example DateTime.fromRFC2822('Fri, 25 Nov 2016 13:23:12 +0600')\n * @example DateTime.fromRFC2822('25 Nov 2016 13:23 Z')\n * @return {DateTime}\n */\n static fromRFC2822(text, opts = {}) {\n const [vals, parsedZone] = parseRFC2822Date(text);\n return parseDataToDateTime(vals, parsedZone, opts, \"RFC 2822\", text);\n }\n\n /**\n * Create a DateTime from an HTTP header date\n * @see https://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.3.1\n * @param {string} text - the HTTP header date\n * @param {Object} opts - options to affect the creation\n * @param {string|Zone} [opts.zone='local'] - convert the time to this zone. Since HTTP dates are always in UTC, this has no effect on the interpretation of string, merely the zone the resulting DateTime is expressed in.\n * @param {boolean} [opts.setZone=false] - override the zone with the fixed-offset zone specified in the string. For HTTP dates, this is always UTC, so this option is equivalent to setting the `zone` option to 'utc', but this option is included for consistency with similar methods.\n * @param {string} [opts.locale='system's locale'] - a locale to set on the resulting DateTime instance\n * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} opts.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @example DateTime.fromHTTP('Sun, 06 Nov 1994 08:49:37 GMT')\n * @example DateTime.fromHTTP('Sunday, 06-Nov-94 08:49:37 GMT')\n * @example DateTime.fromHTTP('Sun Nov 6 08:49:37 1994')\n * @return {DateTime}\n */\n static fromHTTP(text, opts = {}) {\n const [vals, parsedZone] = parseHTTPDate(text);\n return parseDataToDateTime(vals, parsedZone, opts, \"HTTP\", opts);\n }\n\n /**\n * Create a DateTime from an input string and format string.\n * Defaults to en-US if no locale has been specified, regardless of the system's locale.\n * @see https://moment.github.io/luxon/docs/manual/parsing.html#table-of-tokens\n * @param {string} text - the string to parse\n * @param {string} fmt - the format the string is expected to be in (see the link below for the formats)\n * @param {Object} opts - options to affect the creation\n * @param {string|Zone} [opts.zone='local'] - use this zone if no offset is specified in the input string itself. Will also convert the DateTime to this zone\n * @param {boolean} [opts.setZone=false] - override the zone with a zone specified in the string itself, if it specifies one\n * @param {string} [opts.locale='en-US'] - a locale string to use when parsing. Will also set the DateTime to this locale\n * @param {string} opts.numberingSystem - the numbering system to use when parsing. Will also set the resulting DateTime to this numbering system\n * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @return {DateTime}\n */\n static fromFormat(text, fmt, opts = {}) {\n if (isUndefined(text) || isUndefined(fmt)) {\n throw new InvalidArgumentError(\"fromFormat requires an input string and a format\");\n }\n\n const { locale = null, numberingSystem = null } = opts,\n localeToUse = Locale.fromOpts({\n locale,\n numberingSystem,\n defaultToEN: true\n }),\n [vals, parsedZone, invalid] = parseFromTokens(localeToUse, text, fmt);\n if (invalid) {\n return DateTime.invalid(invalid);\n } else {\n return parseDataToDateTime(vals, parsedZone, opts, `format ${fmt}`, text);\n }\n }\n\n /**\n * @deprecated use fromFormat instead\n */\n static fromString(text, fmt, opts = {}) {\n return DateTime.fromFormat(text, fmt, opts);\n }\n\n /**\n * Create a DateTime from a SQL date, time, or datetime\n * Defaults to en-US if no locale has been specified, regardless of the system's locale\n * @param {string} text - the string to parse\n * @param {Object} opts - options to affect the creation\n * @param {string|Zone} [opts.zone='local'] - use this zone if no offset is specified in the input string itself. Will also convert the DateTime to this zone\n * @param {boolean} [opts.setZone=false] - override the zone with a zone specified in the string itself, if it specifies one\n * @param {string} [opts.locale='en-US'] - a locale string to use when parsing. Will also set the DateTime to this locale\n * @param {string} opts.numberingSystem - the numbering system to use when parsing. Will also set the resulting DateTime to this numbering system\n * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @example DateTime.fromSQL('2017-05-15')\n * @example DateTime.fromSQL('2017-05-15 09:12:34')\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342')\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342+06:00')\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342 America/Los_Angeles')\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342 America/Los_Angeles', { setZone: true })\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342', { zone: 'America/Los_Angeles' })\n * @example DateTime.fromSQL('09:12:34.342')\n * @return {DateTime}\n */\n static fromSQL(text, opts = {}) {\n const [vals, parsedZone] = parseSQL(text);\n return parseDataToDateTime(vals, parsedZone, opts, \"SQL\", text);\n }\n\n /**\n * Create an invalid DateTime.\n * @param {string} reason - simple string of why this DateTime is invalid. Should not contain parameters or anything else data-dependent\n * @param {string} [explanation=null] - longer explanation, may include parameters and other useful debugging information\n * @return {DateTime}\n */\n static invalid(reason, explanation = null) {\n if (!reason) {\n throw new InvalidArgumentError(\"need to specify a reason the DateTime is invalid\");\n }\n\n const invalid = reason instanceof Invalid ? reason : new Invalid(reason, explanation);\n\n if (Settings.throwOnInvalid) {\n throw new InvalidDateTimeError(invalid);\n } else {\n return new DateTime({ invalid });\n }\n }\n\n /**\n * Check if an object is a DateTime. Works across context boundaries\n * @param {object} o\n * @return {boolean}\n */\n static isDateTime(o) {\n return (o && o.isLuxonDateTime) || false;\n }\n\n // INFO\n\n /**\n * Get the value of unit.\n * @param {string} unit - a unit such as 'minute' or 'day'\n * @example DateTime.local(2017, 7, 4).get('month'); //=> 7\n * @example DateTime.local(2017, 7, 4).get('day'); //=> 4\n * @return {number}\n */\n get(unit) {\n return this[unit];\n }\n\n /**\n * Returns whether the DateTime is valid. Invalid DateTimes occur when:\n * * The DateTime was created from invalid calendar information, such as the 13th month or February 30\n * * The DateTime was created by an operation on another invalid date\n * @type {boolean}\n */\n get isValid() {\n return this.invalid === null;\n }\n\n /**\n * Returns an error code if this DateTime is invalid, or null if the DateTime is valid\n * @type {string}\n */\n get invalidReason() {\n return this.invalid ? this.invalid.reason : null;\n }\n\n /**\n * Returns an explanation of why this DateTime became invalid, or null if the DateTime is valid\n * @type {string}\n */\n get invalidExplanation() {\n return this.invalid ? this.invalid.explanation : null;\n }\n\n /**\n * Get the locale of a DateTime, such 'en-GB'. The locale is used when formatting the DateTime\n *\n * @type {string}\n */\n get locale() {\n return this.isValid ? this.loc.locale : null;\n }\n\n /**\n * Get the numbering system of a DateTime, such 'beng'. The numbering system is used when formatting the DateTime\n *\n * @type {string}\n */\n get numberingSystem() {\n return this.isValid ? this.loc.numberingSystem : null;\n }\n\n /**\n * Get the output calendar of a DateTime, such 'islamic'. The output calendar is used when formatting the DateTime\n *\n * @type {string}\n */\n get outputCalendar() {\n return this.isValid ? this.loc.outputCalendar : null;\n }\n\n /**\n * Get the time zone associated with this DateTime.\n * @type {Zone}\n */\n get zone() {\n return this._zone;\n }\n\n /**\n * Get the name of the time zone.\n * @type {string}\n */\n get zoneName() {\n return this.isValid ? this.zone.name : null;\n }\n\n /**\n * Get the year\n * @example DateTime.local(2017, 5, 25).year //=> 2017\n * @type {number}\n */\n get year() {\n return this.isValid ? this.c.year : NaN;\n }\n\n /**\n * Get the quarter\n * @example DateTime.local(2017, 5, 25).quarter //=> 2\n * @type {number}\n */\n get quarter() {\n return this.isValid ? Math.ceil(this.c.month / 3) : NaN;\n }\n\n /**\n * Get the month (1-12).\n * @example DateTime.local(2017, 5, 25).month //=> 5\n * @type {number}\n */\n get month() {\n return this.isValid ? this.c.month : NaN;\n }\n\n /**\n * Get the day of the month (1-30ish).\n * @example DateTime.local(2017, 5, 25).day //=> 25\n * @type {number}\n */\n get day() {\n return this.isValid ? this.c.day : NaN;\n }\n\n /**\n * Get the hour of the day (0-23).\n * @example DateTime.local(2017, 5, 25, 9).hour //=> 9\n * @type {number}\n */\n get hour() {\n return this.isValid ? this.c.hour : NaN;\n }\n\n /**\n * Get the minute of the hour (0-59).\n * @example DateTime.local(2017, 5, 25, 9, 30).minute //=> 30\n * @type {number}\n */\n get minute() {\n return this.isValid ? this.c.minute : NaN;\n }\n\n /**\n * Get the second of the minute (0-59).\n * @example DateTime.local(2017, 5, 25, 9, 30, 52).second //=> 52\n * @type {number}\n */\n get second() {\n return this.isValid ? this.c.second : NaN;\n }\n\n /**\n * Get the millisecond of the second (0-999).\n * @example DateTime.local(2017, 5, 25, 9, 30, 52, 654).millisecond //=> 654\n * @type {number}\n */\n get millisecond() {\n return this.isValid ? this.c.millisecond : NaN;\n }\n\n /**\n * Get the week year\n * @see https://en.wikipedia.org/wiki/ISO_week_date\n * @example DateTime.local(2014, 11, 31).weekYear //=> 2015\n * @type {number}\n */\n get weekYear() {\n return this.isValid ? possiblyCachedWeekData(this).weekYear : NaN;\n }\n\n /**\n * Get the week number of the week year (1-52ish).\n * @see https://en.wikipedia.org/wiki/ISO_week_date\n * @example DateTime.local(2017, 5, 25).weekNumber //=> 21\n * @type {number}\n */\n get weekNumber() {\n return this.isValid ? possiblyCachedWeekData(this).weekNumber : NaN;\n }\n\n /**\n * Get the day of the week.\n * 1 is Monday and 7 is Sunday\n * @see https://en.wikipedia.org/wiki/ISO_week_date\n * @example DateTime.local(2014, 11, 31).weekday //=> 4\n * @type {number}\n */\n get weekday() {\n return this.isValid ? possiblyCachedWeekData(this).weekday : NaN;\n }\n\n /**\n * Get the ordinal (meaning the day of the year)\n * @example DateTime.local(2017, 5, 25).ordinal //=> 145\n * @type {number|DateTime}\n */\n get ordinal() {\n return this.isValid ? gregorianToOrdinal(this.c).ordinal : NaN;\n }\n\n /**\n * Get the human readable short month name, such as 'Oct'.\n * Defaults to the system's locale if no locale has been specified\n * @example DateTime.local(2017, 10, 30).monthShort //=> Oct\n * @type {string}\n */\n get monthShort() {\n return this.isValid ? Info.months(\"short\", { locale: this.locale })[this.month - 1] : null;\n }\n\n /**\n * Get the human readable long month name, such as 'October'.\n * Defaults to the system's locale if no locale has been specified\n * @example DateTime.local(2017, 10, 30).monthLong //=> October\n * @type {string}\n */\n get monthLong() {\n return this.isValid ? Info.months(\"long\", { locale: this.locale })[this.month - 1] : null;\n }\n\n /**\n * Get the human readable short weekday, such as 'Mon'.\n * Defaults to the system's locale if no locale has been specified\n * @example DateTime.local(2017, 10, 30).weekdayShort //=> Mon\n * @type {string}\n */\n get weekdayShort() {\n return this.isValid ? Info.weekdays(\"short\", { locale: this.locale })[this.weekday - 1] : null;\n }\n\n /**\n * Get the human readable long weekday, such as 'Monday'.\n * Defaults to the system's locale if no locale has been specified\n * @example DateTime.local(2017, 10, 30).weekdayLong //=> Monday\n * @type {string}\n */\n get weekdayLong() {\n return this.isValid ? Info.weekdays(\"long\", { locale: this.locale })[this.weekday - 1] : null;\n }\n\n /**\n * Get the UTC offset of this DateTime in minutes\n * @example DateTime.local().offset //=> -240\n * @example DateTime.utc().offset //=> 0\n * @type {number}\n */\n get offset() {\n return this.isValid ? +this.o : NaN;\n }\n\n /**\n * Get the short human name for the zone's current offset, for example \"EST\" or \"EDT\".\n * Defaults to the system's locale if no locale has been specified\n * @type {string}\n */\n get offsetNameShort() {\n if (this.isValid) {\n return this.zone.offsetName(this.ts, {\n format: \"short\",\n locale: this.locale\n });\n } else {\n return null;\n }\n }\n\n /**\n * Get the long human name for the zone's current offset, for example \"Eastern Standard Time\" or \"Eastern Daylight Time\".\n * Defaults to the system's locale if no locale has been specified\n * @type {string}\n */\n get offsetNameLong() {\n if (this.isValid) {\n return this.zone.offsetName(this.ts, {\n format: \"long\",\n locale: this.locale\n });\n } else {\n return null;\n }\n }\n\n /**\n * Get whether this zone's offset ever changes, as in a DST.\n * @type {boolean}\n */\n get isOffsetFixed() {\n return this.isValid ? this.zone.universal : null;\n }\n\n /**\n * Get whether the DateTime is in a DST.\n * @type {boolean}\n */\n get isInDST() {\n if (this.isOffsetFixed) {\n return false;\n } else {\n return (\n this.offset > this.set({ month: 1 }).offset || this.offset > this.set({ month: 5 }).offset\n );\n }\n }\n\n /**\n * Returns true if this DateTime is in a leap year, false otherwise\n * @example DateTime.local(2016).isInLeapYear //=> true\n * @example DateTime.local(2013).isInLeapYear //=> false\n * @type {boolean}\n */\n get isInLeapYear() {\n return isLeapYear(this.year);\n }\n\n /**\n * Returns the number of days in this DateTime's month\n * @example DateTime.local(2016, 2).daysInMonth //=> 29\n * @example DateTime.local(2016, 3).daysInMonth //=> 31\n * @type {number}\n */\n get daysInMonth() {\n return daysInMonth(this.year, this.month);\n }\n\n /**\n * Returns the number of days in this DateTime's year\n * @example DateTime.local(2016).daysInYear //=> 366\n * @example DateTime.local(2013).daysInYear //=> 365\n * @type {number}\n */\n get daysInYear() {\n return this.isValid ? daysInYear(this.year) : NaN;\n }\n\n /**\n * Returns the number of weeks in this DateTime's year\n * @see https://en.wikipedia.org/wiki/ISO_week_date\n * @example DateTime.local(2004).weeksInWeekYear //=> 53\n * @example DateTime.local(2013).weeksInWeekYear //=> 52\n * @type {number}\n */\n get weeksInWeekYear() {\n return this.isValid ? weeksInWeekYear(this.weekYear) : NaN;\n }\n\n /**\n * Returns the resolved Intl options for this DateTime.\n * This is useful in understanding the behavior of formatting methods\n * @param {Object} opts - the same options as toLocaleString\n * @return {Object}\n */\n resolvedLocaleOpts(opts = {}) {\n const { locale, numberingSystem, calendar } = Formatter.create(\n this.loc.clone(opts),\n opts\n ).resolvedOptions(this);\n return { locale, numberingSystem, outputCalendar: calendar };\n }\n\n // TRANSFORM\n\n /**\n * \"Set\" the DateTime's zone to UTC. Returns a newly-constructed DateTime.\n *\n * Equivalent to {@link setZone}('utc')\n * @param {number} [offset=0] - optionally, an offset from UTC in minutes\n * @param {Object} [opts={}] - options to pass to `setZone()`\n * @return {DateTime}\n */\n toUTC(offset = 0, opts = {}) {\n return this.setZone(FixedOffsetZone.instance(offset), opts);\n }\n\n /**\n * \"Set\" the DateTime's zone to the host's local zone. Returns a newly-constructed DateTime.\n *\n * Equivalent to `setZone('local')`\n * @return {DateTime}\n */\n toLocal() {\n return this.setZone(Settings.defaultZone);\n }\n\n /**\n * \"Set\" the DateTime's zone to specified zone. Returns a newly-constructed DateTime.\n *\n * By default, the setter keeps the underlying time the same (as in, the same timestamp), but the new instance will report different local times and consider DSTs when making computations, as with {@link plus}. You may wish to use {@link toLocal} and {@link toUTC} which provide simple convenience wrappers for commonly used zones.\n * @param {string|Zone} [zone='local'] - a zone identifier. As a string, that can be any IANA zone supported by the host environment, or a fixed-offset name of the form 'UTC+3', or the strings 'local' or 'utc'. You may also supply an instance of a {@link Zone} class.\n * @param {Object} opts - options\n * @param {boolean} [opts.keepLocalTime=false] - If true, adjust the underlying time so that the local time stays the same, but in the target zone. You should rarely need this.\n * @return {DateTime}\n */\n setZone(zone, { keepLocalTime = false, keepCalendarTime = false } = {}) {\n zone = normalizeZone(zone, Settings.defaultZone);\n if (zone.equals(this.zone)) {\n return this;\n } else if (!zone.isValid) {\n return DateTime.invalid(unsupportedZone(zone));\n } else {\n let newTS = this.ts;\n if (keepLocalTime || keepCalendarTime) {\n const offsetGuess = zone.offset(this.ts);\n const asObj = this.toObject();\n [newTS] = objToTS(asObj, offsetGuess, zone);\n }\n return clone(this, { ts: newTS, zone });\n }\n }\n\n /**\n * \"Set\" the locale, numberingSystem, or outputCalendar. Returns a newly-constructed DateTime.\n * @param {Object} properties - the properties to set\n * @example DateTime.local(2017, 5, 25).reconfigure({ locale: 'en-GB' })\n * @return {DateTime}\n */\n reconfigure({ locale, numberingSystem, outputCalendar } = {}) {\n const loc = this.loc.clone({ locale, numberingSystem, outputCalendar });\n return clone(this, { loc });\n }\n\n /**\n * \"Set\" the locale. Returns a newly-constructed DateTime.\n * Just a convenient alias for reconfigure({ locale })\n * @example DateTime.local(2017, 5, 25).setLocale('en-GB')\n * @return {DateTime}\n */\n setLocale(locale) {\n return this.reconfigure({ locale });\n }\n\n /**\n * \"Set\" the values of specified units. Returns a newly-constructed DateTime.\n * You can only set units with this method; for \"setting\" metadata, see {@link reconfigure} and {@link setZone}.\n * @param {Object} values - a mapping of units to numbers\n * @example dt.set({ year: 2017 })\n * @example dt.set({ hour: 8, minute: 30 })\n * @example dt.set({ weekday: 5 })\n * @example dt.set({ year: 2005, ordinal: 234 })\n * @return {DateTime}\n */\n set(values) {\n if (!this.isValid) return this;\n\n const normalized = normalizeObject(values, normalizeUnit, []),\n settingWeekStuff =\n !isUndefined(normalized.weekYear) ||\n !isUndefined(normalized.weekNumber) ||\n !isUndefined(normalized.weekday);\n\n let mixed;\n if (settingWeekStuff) {\n mixed = weekToGregorian(Object.assign(gregorianToWeek(this.c), normalized));\n } else if (!isUndefined(normalized.ordinal)) {\n mixed = ordinalToGregorian(Object.assign(gregorianToOrdinal(this.c), normalized));\n } else {\n mixed = Object.assign(this.toObject(), normalized);\n\n // if we didn't set the day but we ended up on an overflow date,\n // use the last day of the right month\n if (isUndefined(normalized.day)) {\n mixed.day = Math.min(daysInMonth(mixed.year, mixed.month), mixed.day);\n }\n }\n\n const [ts, o] = objToTS(mixed, this.o, this.zone);\n return clone(this, { ts, o });\n }\n\n /**\n * Add a period of time to this DateTime and return the resulting DateTime\n *\n * Adding hours, minutes, seconds, or milliseconds increases the timestamp by the right number of milliseconds. Adding days, months, or years shifts the calendar, accounting for DSTs and leap years along the way. Thus, `dt.plus({ hours: 24 })` may result in a different time than `dt.plus({ days: 1 })` if there's a DST shift in between.\n * @param {Duration|Object|number} duration - The amount to add. Either a Luxon Duration, a number of milliseconds, the object argument to Duration.fromObject()\n * @example DateTime.local().plus(123) //~> in 123 milliseconds\n * @example DateTime.local().plus({ minutes: 15 }) //~> in 15 minutes\n * @example DateTime.local().plus({ days: 1 }) //~> this time tomorrow\n * @example DateTime.local().plus({ days: -1 }) //~> this time yesterday\n * @example DateTime.local().plus({ hours: 3, minutes: 13 }) //~> in 3 hr, 13 min\n * @example DateTime.local().plus(Duration.fromObject({ hours: 3, minutes: 13 })) //~> in 3 hr, 13 min\n * @return {DateTime}\n */\n plus(duration) {\n if (!this.isValid) return this;\n const dur = friendlyDuration(duration);\n return clone(this, adjustTime(this, dur));\n }\n\n /**\n * Subtract a period of time to this DateTime and return the resulting DateTime\n * See {@link plus}\n * @param {Duration|Object|number} duration - The amount to subtract. Either a Luxon Duration, a number of milliseconds, the object argument to Duration.fromObject()\n @return {DateTime}\n */\n minus(duration) {\n if (!this.isValid) return this;\n const dur = friendlyDuration(duration).negate();\n return clone(this, adjustTime(this, dur));\n }\n\n /**\n * \"Set\" this DateTime to the beginning of a unit of time.\n * @param {string} unit - The unit to go to the beginning of. Can be 'year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second', or 'millisecond'.\n * @example DateTime.local(2014, 3, 3).startOf('month').toISODate(); //=> '2014-03-01'\n * @example DateTime.local(2014, 3, 3).startOf('year').toISODate(); //=> '2014-01-01'\n * @example DateTime.local(2014, 3, 3, 5, 30).startOf('day').toISOTime(); //=> '00:00.000-05:00'\n * @example DateTime.local(2014, 3, 3, 5, 30).startOf('hour').toISOTime(); //=> '05:00:00.000-05:00'\n * @return {DateTime}\n */\n startOf(unit) {\n if (!this.isValid) return this;\n const o = {},\n normalizedUnit = Duration.normalizeUnit(unit);\n switch (normalizedUnit) {\n case \"years\":\n o.month = 1;\n // falls through\n case \"quarters\":\n case \"months\":\n o.day = 1;\n // falls through\n case \"weeks\":\n case \"days\":\n o.hour = 0;\n // falls through\n case \"hours\":\n o.minute = 0;\n // falls through\n case \"minutes\":\n o.second = 0;\n // falls through\n case \"seconds\":\n o.millisecond = 0;\n break;\n case \"milliseconds\":\n break;\n // no default, invalid units throw in normalizeUnit()\n }\n\n if (normalizedUnit === \"weeks\") {\n o.weekday = 1;\n }\n\n if (normalizedUnit === \"quarters\") {\n const q = Math.ceil(this.month / 3);\n o.month = (q - 1) * 3 + 1;\n }\n\n return this.set(o);\n }\n\n /**\n * \"Set\" this DateTime to the end (meaning the last millisecond) of a unit of time\n * @param {string} unit - The unit to go to the end of. Can be 'year', 'month', 'day', 'hour', 'minute', 'second', or 'millisecond'.\n * @example DateTime.local(2014, 3, 3).endOf('month').toISO(); //=> '2014-03-31T23:59:59.999-05:00'\n * @example DateTime.local(2014, 3, 3).endOf('year').toISO(); //=> '2014-12-31T23:59:59.999-05:00'\n * @example DateTime.local(2014, 3, 3, 5, 30).endOf('day').toISO(); //=> '2014-03-03T23:59:59.999-05:00'\n * @example DateTime.local(2014, 3, 3, 5, 30).endOf('hour').toISO(); //=> '2014-03-03T05:59:59.999-05:00'\n * @return {DateTime}\n */\n endOf(unit) {\n return this.isValid\n ? this.plus({ [unit]: 1 })\n .startOf(unit)\n .minus(1)\n : this;\n }\n\n // OUTPUT\n\n /**\n * Returns a string representation of this DateTime formatted according to the specified format string.\n * **You may not want this.** See {@link toLocaleString} for a more flexible formatting tool. For a table of tokens and their interpretations, see [here](https://moment.github.io/luxon/docs/manual/formatting.html#table-of-tokens).\n * Defaults to en-US if no locale has been specified, regardless of the system's locale.\n * @see https://moment.github.io/luxon/docs/manual/formatting.html#table-of-tokens\n * @param {string} fmt - the format string\n * @param {Object} opts - opts to override the configuration options\n * @example DateTime.local().toFormat('yyyy LLL dd') //=> '2017 Apr 22'\n * @example DateTime.local().setLocale('fr').toFormat('yyyy LLL dd') //=> '2017 avr. 22'\n * @example DateTime.local().toFormat('yyyy LLL dd', { locale: \"fr\" }) //=> '2017 avr. 22'\n * @example DateTime.local().toFormat(\"HH 'hours and' mm 'minutes'\") //=> '20 hours and 55 minutes'\n * @return {string}\n */\n toFormat(fmt, opts = {}) {\n return this.isValid\n ? Formatter.create(this.loc.redefaultToEN(opts)).formatDateTimeFromString(this, fmt)\n : INVALID;\n }\n\n /**\n * Returns a localized string representing this date. Accepts the same options as the Intl.DateTimeFormat constructor and any presets defined by Luxon, such as `DateTime.DATE_FULL` or `DateTime.TIME_SIMPLE`.\n * The exact behavior of this method is browser-specific, but in general it will return an appropriate representation\n * of the DateTime in the assigned locale.\n * Defaults to the system's locale if no locale has been specified\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat\n * @param opts {Object} - Intl.DateTimeFormat constructor options and configuration options\n * @example DateTime.local().toLocaleString(); //=> 4/20/2017\n * @example DateTime.local().setLocale('en-gb').toLocaleString(); //=> '20/04/2017'\n * @example DateTime.local().toLocaleString({ locale: 'en-gb' }); //=> '20/04/2017'\n * @example DateTime.local().toLocaleString(DateTime.DATE_FULL); //=> 'April 20, 2017'\n * @example DateTime.local().toLocaleString(DateTime.TIME_SIMPLE); //=> '11:32 AM'\n * @example DateTime.local().toLocaleString(DateTime.DATETIME_SHORT); //=> '4/20/2017, 11:32 AM'\n * @example DateTime.local().toLocaleString({ weekday: 'long', month: 'long', day: '2-digit' }); //=> 'Thursday, April 20'\n * @example DateTime.local().toLocaleString({ weekday: 'short', month: 'short', day: '2-digit', hour: '2-digit', minute: '2-digit' }); //=> 'Thu, Apr 20, 11:27 AM'\n * @example DateTime.local().toLocaleString({ hour: '2-digit', minute: '2-digit', hour12: false }); //=> '11:32'\n * @return {string}\n */\n toLocaleString(opts = Formats.DATE_SHORT) {\n return this.isValid\n ? Formatter.create(this.loc.clone(opts), opts).formatDateTime(this)\n : INVALID;\n }\n\n /**\n * Returns an array of format \"parts\", meaning individual tokens along with metadata. This is allows callers to post-process individual sections of the formatted output.\n * Defaults to the system's locale if no locale has been specified\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat/formatToParts\n * @param opts {Object} - Intl.DateTimeFormat constructor options, same as `toLocaleString`.\n * @example DateTime.local().toLocaleParts(); //=> [\n * //=> { type: 'day', value: '25' },\n * //=> { type: 'literal', value: '/' },\n * //=> { type: 'month', value: '05' },\n * //=> { type: 'literal', value: '/' },\n * //=> { type: 'year', value: '1982' }\n * //=> ]\n */\n toLocaleParts(opts = {}) {\n return this.isValid\n ? Formatter.create(this.loc.clone(opts), opts).formatDateTimeParts(this)\n : [];\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this DateTime\n * @param {Object} opts - options\n * @param {boolean} [opts.suppressMilliseconds=false] - exclude milliseconds from the format if they're 0\n * @param {boolean} [opts.suppressSeconds=false] - exclude seconds from the format if they're 0\n * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00'\n * @param {string} [opts.format='extended'] - choose between the basic and extended format\n * @example DateTime.utc(1982, 5, 25).toISO() //=> '1982-05-25T00:00:00.000Z'\n * @example DateTime.local().toISO() //=> '2017-04-22T20:47:05.335-04:00'\n * @example DateTime.local().toISO({ includeOffset: false }) //=> '2017-04-22T20:47:05.335'\n * @example DateTime.local().toISO({ format: 'basic' }) //=> '20170422T204705.335-0400'\n * @return {string}\n */\n toISO(opts = {}) {\n if (!this.isValid) {\n return null;\n }\n\n return `${this.toISODate(opts)}T${this.toISOTime(opts)}`;\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this DateTime's date component\n * @param {Object} opts - options\n * @param {string} [opts.format='extended'] - choose between the basic and extended format\n * @example DateTime.utc(1982, 5, 25).toISODate() //=> '1982-05-25'\n * @example DateTime.utc(1982, 5, 25).toISODate({ format: 'basic' }) //=> '19820525'\n * @return {string}\n */\n toISODate({ format = \"extended\" } = {}) {\n let fmt = format === \"basic\" ? \"yyyyMMdd\" : \"yyyy-MM-dd\";\n if (this.year > 9999) {\n fmt = \"+\" + fmt;\n }\n\n return toTechFormat(this, fmt);\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this DateTime's week date\n * @example DateTime.utc(1982, 5, 25).toISOWeekDate() //=> '1982-W21-2'\n * @return {string}\n */\n toISOWeekDate() {\n return toTechFormat(this, \"kkkk-'W'WW-c\");\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this DateTime's time component\n * @param {Object} opts - options\n * @param {boolean} [opts.suppressMilliseconds=false] - exclude milliseconds from the format if they're 0\n * @param {boolean} [opts.suppressSeconds=false] - exclude seconds from the format if they're 0\n * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00'\n * @param {string} [opts.format='extended'] - choose between the basic and extended format\n * @example DateTime.utc().set({ hour: 7, minute: 34 }).toISOTime() //=> '07:34:19.361Z'\n * @example DateTime.utc().set({ hour: 7, minute: 34, seconds: 0, milliseconds: 0 }).toISOTime({ suppressSeconds: true }) //=> '07:34Z'\n * @example DateTime.utc().set({ hour: 7, minute: 34 }).toISOTime({ format: 'basic' }) //=> '073419.361Z'\n * @return {string}\n */\n toISOTime({\n suppressMilliseconds = false,\n suppressSeconds = false,\n includeOffset = true,\n format = \"extended\"\n } = {}) {\n return toTechTimeFormat(this, {\n suppressSeconds,\n suppressMilliseconds,\n includeOffset,\n format\n });\n }\n\n /**\n * Returns an RFC 2822-compatible string representation of this DateTime, always in UTC\n * @example DateTime.utc(2014, 7, 13).toRFC2822() //=> 'Sun, 13 Jul 2014 00:00:00 +0000'\n * @example DateTime.local(2014, 7, 13).toRFC2822() //=> 'Sun, 13 Jul 2014 00:00:00 -0400'\n * @return {string}\n */\n toRFC2822() {\n return toTechFormat(this, \"EEE, dd LLL yyyy HH:mm:ss ZZZ\", false);\n }\n\n /**\n * Returns a string representation of this DateTime appropriate for use in HTTP headers.\n * Specifically, the string conforms to RFC 1123.\n * @see https://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.3.1\n * @example DateTime.utc(2014, 7, 13).toHTTP() //=> 'Sun, 13 Jul 2014 00:00:00 GMT'\n * @example DateTime.utc(2014, 7, 13, 19).toHTTP() //=> 'Sun, 13 Jul 2014 19:00:00 GMT'\n * @return {string}\n */\n toHTTP() {\n return toTechFormat(this.toUTC(), \"EEE, dd LLL yyyy HH:mm:ss 'GMT'\");\n }\n\n /**\n * Returns a string representation of this DateTime appropriate for use in SQL Date\n * @example DateTime.utc(2014, 7, 13).toSQLDate() //=> '2014-07-13'\n * @return {string}\n */\n toSQLDate() {\n return toTechFormat(this, \"yyyy-MM-dd\");\n }\n\n /**\n * Returns a string representation of this DateTime appropriate for use in SQL Time\n * @param {Object} opts - options\n * @param {boolean} [opts.includeZone=false] - include the zone, such as 'America/New_York'. Overrides includeOffset.\n * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00'\n * @example DateTime.utc().toSQL() //=> '05:15:16.345'\n * @example DateTime.local().toSQL() //=> '05:15:16.345 -04:00'\n * @example DateTime.local().toSQL({ includeOffset: false }) //=> '05:15:16.345'\n * @example DateTime.local().toSQL({ includeZone: false }) //=> '05:15:16.345 America/New_York'\n * @return {string}\n */\n toSQLTime({ includeOffset = true, includeZone = false } = {}) {\n return toTechTimeFormat(this, {\n includeOffset,\n includeZone,\n spaceZone: true\n });\n }\n\n /**\n * Returns a string representation of this DateTime appropriate for use in SQL DateTime\n * @param {Object} opts - options\n * @param {boolean} [opts.includeZone=false] - include the zone, such as 'America/New_York'. Overrides includeOffset.\n * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00'\n * @example DateTime.utc(2014, 7, 13).toSQL() //=> '2014-07-13 00:00:00.000 Z'\n * @example DateTime.local(2014, 7, 13).toSQL() //=> '2014-07-13 00:00:00.000 -04:00'\n * @example DateTime.local(2014, 7, 13).toSQL({ includeOffset: false }) //=> '2014-07-13 00:00:00.000'\n * @example DateTime.local(2014, 7, 13).toSQL({ includeZone: true }) //=> '2014-07-13 00:00:00.000 America/New_York'\n * @return {string}\n */\n toSQL(opts = {}) {\n if (!this.isValid) {\n return null;\n }\n\n return `${this.toSQLDate()} ${this.toSQLTime(opts)}`;\n }\n\n /**\n * Returns a string representation of this DateTime appropriate for debugging\n * @return {string}\n */\n toString() {\n return this.isValid ? this.toISO() : INVALID;\n }\n\n /**\n * Returns the epoch milliseconds of this DateTime. Alias of {@link toMillis}\n * @return {number}\n */\n valueOf() {\n return this.toMillis();\n }\n\n /**\n * Returns the epoch milliseconds of this DateTime.\n * @return {number}\n */\n toMillis() {\n return this.isValid ? this.ts : NaN;\n }\n\n /**\n * Returns the epoch seconds of this DateTime.\n * @return {number}\n */\n toSeconds() {\n return this.isValid ? this.ts / 1000 : NaN;\n }\n\n /**\n * Returns an ISO 8601 representation of this DateTime appropriate for use in JSON.\n * @return {string}\n */\n toJSON() {\n return this.toISO();\n }\n\n /**\n * Returns a BSON serializable equivalent to this DateTime.\n * @return {Date}\n */\n toBSON() {\n return this.toJSDate();\n }\n\n /**\n * Returns a Javascript object with this DateTime's year, month, day, and so on.\n * @param opts - options for generating the object\n * @param {boolean} [opts.includeConfig=false] - include configuration attributes in the output\n * @example DateTime.local().toObject() //=> { year: 2017, month: 4, day: 22, hour: 20, minute: 49, second: 42, millisecond: 268 }\n * @return {Object}\n */\n toObject(opts = {}) {\n if (!this.isValid) return {};\n\n const base = Object.assign({}, this.c);\n\n if (opts.includeConfig) {\n base.outputCalendar = this.outputCalendar;\n base.numberingSystem = this.loc.numberingSystem;\n base.locale = this.loc.locale;\n }\n return base;\n }\n\n /**\n * Returns a Javascript Date equivalent to this DateTime.\n * @return {Date}\n */\n toJSDate() {\n return new Date(this.isValid ? this.ts : NaN);\n }\n\n // COMPARE\n\n /**\n * Return the difference between two DateTimes as a Duration.\n * @param {DateTime} otherDateTime - the DateTime to compare this one to\n * @param {string|string[]} [unit=['milliseconds']] - the unit or array of units (such as 'hours' or 'days') to include in the duration.\n * @param {Object} opts - options that affect the creation of the Duration\n * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use\n * @example\n * var i1 = DateTime.fromISO('1982-05-25T09:45'),\n * i2 = DateTime.fromISO('1983-10-14T10:30');\n * i2.diff(i1).toObject() //=> { milliseconds: 43807500000 }\n * i2.diff(i1, 'hours').toObject() //=> { hours: 12168.75 }\n * i2.diff(i1, ['months', 'days']).toObject() //=> { months: 16, days: 19.03125 }\n * i2.diff(i1, ['months', 'days', 'hours']).toObject() //=> { months: 16, days: 19, hours: 0.75 }\n * @return {Duration}\n */\n diff(otherDateTime, unit = \"milliseconds\", opts = {}) {\n if (!this.isValid || !otherDateTime.isValid) {\n return Duration.invalid(\n this.invalid || otherDateTime.invalid,\n \"created by diffing an invalid DateTime\"\n );\n }\n\n const durOpts = Object.assign(\n { locale: this.locale, numberingSystem: this.numberingSystem },\n opts\n );\n\n const units = maybeArray(unit).map(Duration.normalizeUnit),\n otherIsLater = otherDateTime.valueOf() > this.valueOf(),\n earlier = otherIsLater ? this : otherDateTime,\n later = otherIsLater ? otherDateTime : this,\n diffed = diff(earlier, later, units, durOpts);\n\n return otherIsLater ? diffed.negate() : diffed;\n }\n\n /**\n * Return the difference between this DateTime and right now.\n * See {@link diff}\n * @param {string|string[]} [unit=['milliseconds']] - the unit or units units (such as 'hours' or 'days') to include in the duration\n * @param {Object} opts - options that affect the creation of the Duration\n * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use\n * @return {Duration}\n */\n diffNow(unit = \"milliseconds\", opts = {}) {\n return this.diff(DateTime.local(), unit, opts);\n }\n\n /**\n * Return an Interval spanning between this DateTime and another DateTime\n * @param {DateTime} otherDateTime - the other end point of the Interval\n * @return {Interval}\n */\n until(otherDateTime) {\n return this.isValid ? Interval.fromDateTimes(this, otherDateTime) : this;\n }\n\n /**\n * Return whether this DateTime is in the same unit of time as another DateTime\n * @param {DateTime} otherDateTime - the other DateTime\n * @param {string} unit - the unit of time to check sameness on\n * @example DateTime.local().hasSame(otherDT, 'day'); //~> true if both the same calendar day\n * @return {boolean}\n */\n hasSame(otherDateTime, unit) {\n if (!this.isValid) return false;\n if (unit === \"millisecond\") {\n return this.valueOf() === otherDateTime.valueOf();\n } else {\n const inputMs = otherDateTime.valueOf();\n return this.startOf(unit) <= inputMs && inputMs <= this.endOf(unit);\n }\n }\n\n /**\n * Equality check\n * Two DateTimes are equal iff they represent the same millisecond, have the same zone and location, and are both valid.\n * To compare just the millisecond values, use `+dt1 === +dt2`.\n * @param {DateTime} other - the other DateTime\n * @return {boolean}\n */\n equals(other) {\n return (\n this.isValid &&\n other.isValid &&\n this.valueOf() === other.valueOf() &&\n this.zone.equals(other.zone) &&\n this.loc.equals(other.loc)\n );\n }\n\n /**\n * Returns a string representation of a this time relative to now, such as \"in two days\". Can only internationalize if your\n * platform supports Intl.RelativeTimeFormat. Rounds down by default.\n * @param {Object} options - options that affect the output\n * @param {DateTime} [options.base=DateTime.local()] - the DateTime to use as the basis to which this time is compared. Defaults to now.\n * @param {string} [options.style=\"long\"] - the style of units, must be \"long\", \"short\", or \"narrow\"\n * @param {string} options.unit - use a specific unit; if omitted, the method will pick the unit. Use one of \"years\", \"quarters\", \"months\", \"weeks\", \"days\", \"hours\", \"minutes\", or \"seconds\"\n * @param {boolean} [options.round=true] - whether to round the numbers in the output.\n * @param {boolean} [options.padding=0] - padding in milliseconds. This allows you to round up the result if it fits inside the threshold. Don't use in combination with {round: false} because the decimal output will include the padding.\n * @param {string} options.locale - override the locale of this DateTime\n * @param {string} options.numberingSystem - override the numberingSystem of this DateTime. The Intl system may choose not to honor this\n * @example DateTime.local().plus({ days: 1 }).toRelative() //=> \"in 1 day\"\n * @example DateTime.local().setLocale(\"es\").toRelative({ days: 1 }) //=> \"dentro de 1 día\"\n * @example DateTime.local().plus({ days: 1 }).toRelative({ locale: \"fr\" }) //=> \"dans 23 heures\"\n * @example DateTime.local().minus({ days: 2 }).toRelative() //=> \"2 days ago\"\n * @example DateTime.local().minus({ days: 2 }).toRelative({ unit: \"hours\" }) //=> \"48 hours ago\"\n * @example DateTime.local().minus({ hours: 36 }).toRelative({ round: false }) //=> \"1.5 days ago\"\n */\n toRelative(options = {}) {\n if (!this.isValid) return null;\n const base = options.base || DateTime.fromObject({ zone: this.zone }),\n padding = options.padding ? (this < base ? -options.padding : options.padding) : 0;\n return diffRelative(\n base,\n this.plus(padding),\n Object.assign(options, {\n numeric: \"always\",\n units: [\"years\", \"months\", \"days\", \"hours\", \"minutes\", \"seconds\"]\n })\n );\n }\n\n /**\n * Returns a string representation of this date relative to today, such as \"yesterday\" or \"next month\".\n * Only internationalizes on platforms that supports Intl.RelativeTimeFormat.\n * @param {Object} options - options that affect the output\n * @param {DateTime} [options.base=DateTime.local()] - the DateTime to use as the basis to which this time is compared. Defaults to now.\n * @param {string} options.locale - override the locale of this DateTime\n * @param {string} options.unit - use a specific unit; if omitted, the method will pick the unit. Use one of \"years\", \"quarters\", \"months\", \"weeks\", or \"days\"\n * @param {string} options.numberingSystem - override the numberingSystem of this DateTime. The Intl system may choose not to honor this\n * @example DateTime.local().plus({ days: 1 }).toRelativeCalendar() //=> \"tomorrow\"\n * @example DateTime.local().setLocale(\"es\").plus({ days: 1 }).toRelative() //=> \"\"mañana\"\n * @example DateTime.local().plus({ days: 1 }).toRelativeCalendar({ locale: \"fr\" }) //=> \"demain\"\n * @example DateTime.local().minus({ days: 2 }).toRelativeCalendar() //=> \"2 days ago\"\n */\n toRelativeCalendar(options = {}) {\n if (!this.isValid) return null;\n\n return diffRelative(\n options.base || DateTime.fromObject({ zone: this.zone }),\n this,\n Object.assign(options, {\n numeric: \"auto\",\n units: [\"years\", \"months\", \"days\"],\n calendary: true\n })\n );\n }\n\n /**\n * Return the min of several date times\n * @param {...DateTime} dateTimes - the DateTimes from which to choose the minimum\n * @return {DateTime} the min DateTime, or undefined if called with no argument\n */\n static min(...dateTimes) {\n if (!dateTimes.every(DateTime.isDateTime)) {\n throw new InvalidArgumentError(\"min requires all arguments be DateTimes\");\n }\n return bestBy(dateTimes, i => i.valueOf(), Math.min);\n }\n\n /**\n * Return the max of several date times\n * @param {...DateTime} dateTimes - the DateTimes from which to choose the maximum\n * @return {DateTime} the max DateTime, or undefined if called with no argument\n */\n static max(...dateTimes) {\n if (!dateTimes.every(DateTime.isDateTime)) {\n throw new InvalidArgumentError(\"max requires all arguments be DateTimes\");\n }\n return bestBy(dateTimes, i => i.valueOf(), Math.max);\n }\n\n // MISC\n\n /**\n * Explain how a string would be parsed by fromFormat()\n * @param {string} text - the string to parse\n * @param {string} fmt - the format the string is expected to be in (see description)\n * @param {Object} options - options taken by fromFormat()\n * @return {Object}\n */\n static fromFormatExplain(text, fmt, options = {}) {\n const { locale = null, numberingSystem = null } = options,\n localeToUse = Locale.fromOpts({\n locale,\n numberingSystem,\n defaultToEN: true\n });\n return explainFromTokens(localeToUse, text, fmt);\n }\n\n /**\n * @deprecated use fromFormatExplain instead\n */\n static fromStringExplain(text, fmt, options = {}) {\n return DateTime.fromFormatExplain(text, fmt, options);\n }\n\n // FORMAT PRESETS\n\n /**\n * {@link toLocaleString} format like 10/14/1983\n * @type {Object}\n */\n static get DATE_SHORT() {\n return Formats.DATE_SHORT;\n }\n\n /**\n * {@link toLocaleString} format like 'Oct 14, 1983'\n * @type {Object}\n */\n static get DATE_MED() {\n return Formats.DATE_MED;\n }\n\n /**\n * {@link toLocaleString} format like 'Fri, Oct 14, 1983'\n * @type {Object}\n */\n static get DATE_MED_WITH_WEEKDAY() {\n return Formats.DATE_MED_WITH_WEEKDAY;\n }\n\n /**\n * {@link toLocaleString} format like 'October 14, 1983'\n * @type {Object}\n */\n static get DATE_FULL() {\n return Formats.DATE_FULL;\n }\n\n /**\n * {@link toLocaleString} format like 'Tuesday, October 14, 1983'\n * @type {Object}\n */\n static get DATE_HUGE() {\n return Formats.DATE_HUGE;\n }\n\n /**\n * {@link toLocaleString} format like '09:30 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get TIME_SIMPLE() {\n return Formats.TIME_SIMPLE;\n }\n\n /**\n * {@link toLocaleString} format like '09:30:23 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get TIME_WITH_SECONDS() {\n return Formats.TIME_WITH_SECONDS;\n }\n\n /**\n * {@link toLocaleString} format like '09:30:23 AM EDT'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get TIME_WITH_SHORT_OFFSET() {\n return Formats.TIME_WITH_SHORT_OFFSET;\n }\n\n /**\n * {@link toLocaleString} format like '09:30:23 AM Eastern Daylight Time'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get TIME_WITH_LONG_OFFSET() {\n return Formats.TIME_WITH_LONG_OFFSET;\n }\n\n /**\n * {@link toLocaleString} format like '09:30', always 24-hour.\n * @type {Object}\n */\n static get TIME_24_SIMPLE() {\n return Formats.TIME_24_SIMPLE;\n }\n\n /**\n * {@link toLocaleString} format like '09:30:23', always 24-hour.\n * @type {Object}\n */\n static get TIME_24_WITH_SECONDS() {\n return Formats.TIME_24_WITH_SECONDS;\n }\n\n /**\n * {@link toLocaleString} format like '09:30:23 EDT', always 24-hour.\n * @type {Object}\n */\n static get TIME_24_WITH_SHORT_OFFSET() {\n return Formats.TIME_24_WITH_SHORT_OFFSET;\n }\n\n /**\n * {@link toLocaleString} format like '09:30:23 Eastern Daylight Time', always 24-hour.\n * @type {Object}\n */\n static get TIME_24_WITH_LONG_OFFSET() {\n return Formats.TIME_24_WITH_LONG_OFFSET;\n }\n\n /**\n * {@link toLocaleString} format like '10/14/1983, 9:30 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_SHORT() {\n return Formats.DATETIME_SHORT;\n }\n\n /**\n * {@link toLocaleString} format like '10/14/1983, 9:30:33 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_SHORT_WITH_SECONDS() {\n return Formats.DATETIME_SHORT_WITH_SECONDS;\n }\n\n /**\n * {@link toLocaleString} format like 'Oct 14, 1983, 9:30 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_MED() {\n return Formats.DATETIME_MED;\n }\n\n /**\n * {@link toLocaleString} format like 'Oct 14, 1983, 9:30:33 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_MED_WITH_SECONDS() {\n return Formats.DATETIME_MED_WITH_SECONDS;\n }\n\n /**\n * {@link toLocaleString} format like 'Fri, 14 Oct 1983, 9:30 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_MED_WITH_WEEKDAY() {\n return Formats.DATETIME_MED_WITH_WEEKDAY;\n }\n\n /**\n * {@link toLocaleString} format like 'October 14, 1983, 9:30 AM EDT'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_FULL() {\n return Formats.DATETIME_FULL;\n }\n\n /**\n * {@link toLocaleString} format like 'October 14, 1983, 9:30:33 AM EDT'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_FULL_WITH_SECONDS() {\n return Formats.DATETIME_FULL_WITH_SECONDS;\n }\n\n /**\n * {@link toLocaleString} format like 'Friday, October 14, 1983, 9:30 AM Eastern Daylight Time'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_HUGE() {\n return Formats.DATETIME_HUGE;\n }\n\n /**\n * {@link toLocaleString} format like 'Friday, October 14, 1983, 9:30:33 AM Eastern Daylight Time'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_HUGE_WITH_SECONDS() {\n return Formats.DATETIME_HUGE_WITH_SECONDS;\n }\n}\n\n/**\n * @private\n */\nexport function friendlyDateTime(dateTimeish) {\n if (DateTime.isDateTime(dateTimeish)) {\n return dateTimeish;\n } else if (dateTimeish && dateTimeish.valueOf && isNumber(dateTimeish.valueOf())) {\n return DateTime.fromJSDate(dateTimeish);\n } else if (dateTimeish && typeof dateTimeish === \"object\") {\n return DateTime.fromObject(dateTimeish);\n } else {\n throw new InvalidArgumentError(\n `Unknown datetime argument: ${dateTimeish}, of type ${typeof dateTimeish}`\n );\n }\n}\n","module.exports = require(\"regenerator-runtime\");\n","import { useEffect, useLayoutEffect } from 'react';\n\nfunction useIsomorphicLayoutEffect(callback, deps) {\n // eslint-disable-next-line\n if (typeof window === 'undefined') return useEffect(callback, deps);\n return useLayoutEffect(callback, deps);\n}\n\nexport { useIsomorphicLayoutEffect };","import arrayWithoutHoles from \"@babel/runtime/helpers/esm/arrayWithoutHoles\";\nimport iterableToArray from \"@babel/runtime/helpers/esm/iterableToArray\";\nimport unsupportedIterableToArray from \"@babel/runtime/helpers/esm/unsupportedIterableToArray\";\nimport nonIterableSpread from \"@babel/runtime/helpers/esm/nonIterableSpread\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"@babel/runtime/helpers/esm/arrayLikeToArray\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","import arrayLikeToArray from \"@babel/runtime/helpers/esm/arrayLikeToArray\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.canUseDOM = undefined;\n\nvar _exenv = require(\"exenv\");\n\nvar _exenv2 = _interopRequireDefault(_exenv);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar EE = _exenv2.default;\n\nvar SafeHTMLElement = EE.canUseDOM ? window.HTMLElement : {};\n\nvar canUseDOM = exports.canUseDOM = EE.canUseDOM;\n\nexports.default = SafeHTMLElement;","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _Modal = require(\"./components/Modal\");\n\nvar _Modal2 = _interopRequireDefault(_Modal);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _Modal2.default;\nmodule.exports = exports[\"default\"];","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = findTabbableDescendants;\n/*!\n * Adapted from jQuery UI core\n *\n * http://jqueryui.com\n *\n * Copyright 2014 jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * http://api.jqueryui.com/category/ui-core/\n */\n\nvar tabbableNode = /input|select|textarea|button|object/;\n\nfunction hidesContents(element) {\n var zeroSize = element.offsetWidth <= 0 && element.offsetHeight <= 0;\n\n // If the node is empty, this is good enough\n if (zeroSize && !element.innerHTML) return true;\n\n // Otherwise we need to check some styles\n var style = window.getComputedStyle(element);\n return zeroSize ? style.getPropertyValue(\"overflow\") !== \"visible\" ||\n // if 'overflow: visible' set, check if there is actually any overflow\n element.scrollWidth <= 0 && element.scrollHeight <= 0 : style.getPropertyValue(\"display\") == \"none\";\n}\n\nfunction visible(element) {\n var parentElement = element;\n while (parentElement) {\n if (parentElement === document.body) break;\n if (hidesContents(parentElement)) return false;\n parentElement = parentElement.parentNode;\n }\n return true;\n}\n\nfunction focusable(element, isTabIndexNotNaN) {\n var nodeName = element.nodeName.toLowerCase();\n var res = tabbableNode.test(nodeName) && !element.disabled || (nodeName === \"a\" ? element.href || isTabIndexNotNaN : isTabIndexNotNaN);\n return res && visible(element);\n}\n\nfunction tabbable(element) {\n var tabIndex = element.getAttribute(\"tabindex\");\n if (tabIndex === null) tabIndex = undefined;\n var isTabIndexNaN = isNaN(tabIndex);\n return (isTabIndexNaN || tabIndex >= 0) && focusable(element, !isTabIndexNaN);\n}\n\nfunction findTabbableDescendants(element) {\n return [].slice.call(element.querySelectorAll(\"*\"), 0).filter(tabbable);\n}\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.assertNodeList = assertNodeList;\nexports.setElement = setElement;\nexports.validateElement = validateElement;\nexports.hide = hide;\nexports.show = show;\nexports.documentNotReadyOrSSRTesting = documentNotReadyOrSSRTesting;\nexports.resetForTesting = resetForTesting;\n\nvar _warning = require(\"warning\");\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar _safeHTMLElement = require(\"./safeHTMLElement\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar globalElement = null;\n\nfunction assertNodeList(nodeList, selector) {\n if (!nodeList || !nodeList.length) {\n throw new Error(\"react-modal: No elements were found for selector \" + selector + \".\");\n }\n}\n\nfunction setElement(element) {\n var useElement = element;\n if (typeof useElement === \"string\" && _safeHTMLElement.canUseDOM) {\n var el = document.querySelectorAll(useElement);\n assertNodeList(el, useElement);\n useElement = \"length\" in el ? el[0] : el;\n }\n globalElement = useElement || globalElement;\n return globalElement;\n}\n\nfunction validateElement(appElement) {\n if (!appElement && !globalElement) {\n (0, _warning2.default)(false, [\"react-modal: App element is not defined.\", \"Please use `Modal.setAppElement(el)` or set `appElement={el}`.\", \"This is needed so screen readers don't see main content\", \"when modal is opened. It is not recommended, but you can opt-out\", \"by setting `ariaHideApp={false}`.\"].join(\" \"));\n\n return false;\n }\n\n return true;\n}\n\nfunction hide(appElement) {\n if (validateElement(appElement)) {\n (appElement || globalElement).setAttribute(\"aria-hidden\", \"true\");\n }\n}\n\nfunction show(appElement) {\n if (validateElement(appElement)) {\n (appElement || globalElement).removeAttribute(\"aria-hidden\");\n }\n}\n\nfunction documentNotReadyOrSSRTesting() {\n globalElement = null;\n}\n\nfunction resetForTesting() {\n globalElement = null;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n// Tracks portals that are open and emits events to subscribers\n\nvar PortalOpenInstances = function PortalOpenInstances() {\n var _this = this;\n\n _classCallCheck(this, PortalOpenInstances);\n\n this.register = function (openInstance) {\n if (_this.openInstances.indexOf(openInstance) !== -1) {\n if (process.env.NODE_ENV !== \"production\") {\n // eslint-disable-next-line no-console\n console.warn(\"React-Modal: Cannot register modal instance that's already open\");\n }\n return;\n }\n _this.openInstances.push(openInstance);\n _this.emit(\"register\");\n };\n\n this.deregister = function (openInstance) {\n var index = _this.openInstances.indexOf(openInstance);\n if (index === -1) {\n if (process.env.NODE_ENV !== \"production\") {\n // eslint-disable-next-line no-console\n console.warn(\"React-Modal: Unable to deregister \" + openInstance + \" as \" + \"it was never registered\");\n }\n return;\n }\n _this.openInstances.splice(index, 1);\n _this.emit(\"deregister\");\n };\n\n this.subscribe = function (callback) {\n _this.subscribers.push(callback);\n };\n\n this.emit = function (eventType) {\n _this.subscribers.forEach(function (subscriber) {\n return subscriber(eventType,\n // shallow copy to avoid accidental mutation\n _this.openInstances.slice());\n });\n };\n\n this.openInstances = [];\n this.subscribers = [];\n};\n\nvar portalOpenInstances = new PortalOpenInstances();\n\nexports.default = portalOpenInstances;\nmodule.exports = exports[\"default\"];","'use strict';\n\n// do not edit .js files directly - edit src/index.jst\n\n\n\nmodule.exports = function equal(a, b) {\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n\n if (key === '_owner' && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner.\n // _owner contains circular references\n // and is not needed when comparing the actual elements (and not their owners)\n continue;\n }\n\n if (!equal(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n // true if both NaN, false otherwise\n return a!==a && b!==b;\n};\n","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","export default function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","// Compute what scrolling needs to be done on required scrolling boxes for target to be in view\n\n// The type names here are named after the spec to make it easier to find more information around what they mean:\n// To reduce churn and reduce things that need be maintained things from the official TS DOM library is used here\n// https://drafts.csswg.org/cssom-view/\n\n// For a definition on what is \"block flow direction\" exactly, check this: https://drafts.csswg.org/css-writing-modes-4/#block-flow-direction\n\n// add support for visualViewport object currently implemented in chrome\ninterface visualViewport {\n height: number\n width: number\n}\n\ntype ScrollLogicalPosition = 'start' | 'center' | 'end' | 'nearest'\n// This new option is tracked in this PR, which is the most likely candidate at the time: https://github.com/w3c/csswg-drafts/pull/1805\ntype ScrollMode = 'always' | 'if-needed'\n// New option that skips auto-scrolling all nodes with overflow: hidden set\n// See FF implementation: https://hg.mozilla.org/integration/fx-team/rev/c48c3ec05012#l7.18\ntype SkipOverflowHiddenElements = boolean\n\ninterface Options {\n block?: ScrollLogicalPosition\n inline?: ScrollLogicalPosition\n scrollMode?: ScrollMode\n boundary?: CustomScrollBoundary\n skipOverflowHiddenElements?: SkipOverflowHiddenElements\n}\n\n// Custom behavior, not in any spec\ntype CustomScrollBoundaryCallback = (parent: Element) => boolean\ntype CustomScrollBoundary = Element | CustomScrollBoundaryCallback | null\ninterface CustomScrollAction {\n el: Element\n top: number\n left: number\n}\n\n// @TODO better shadowdom test, 11 = document fragment\nfunction isElement(el: any) {\n return el != null && typeof el === 'object' && el.nodeType === 1\n}\n\nfunction canOverflow(\n overflow: string | null,\n skipOverflowHiddenElements?: boolean\n) {\n if (skipOverflowHiddenElements && overflow === 'hidden') {\n return false\n }\n\n return overflow !== 'visible' && overflow !== 'clip'\n}\n\nfunction getFrameElement(el: Element) {\n if (!el.ownerDocument || !el.ownerDocument.defaultView) {\n return null\n }\n\n try {\n return el.ownerDocument.defaultView.frameElement\n } catch (e) {\n return null\n }\n}\n\nfunction isHiddenByFrame(el: Element): boolean {\n const frame = getFrameElement(el)\n if (!frame) {\n return false\n }\n\n return (\n frame.clientHeight < el.scrollHeight || frame.clientWidth < el.scrollWidth\n )\n}\n\nfunction isScrollable(el: Element, skipOverflowHiddenElements?: boolean) {\n if (el.clientHeight < el.scrollHeight || el.clientWidth < el.scrollWidth) {\n const style = getComputedStyle(el, null)\n return (\n canOverflow(style.overflowY, skipOverflowHiddenElements) ||\n canOverflow(style.overflowX, skipOverflowHiddenElements) ||\n isHiddenByFrame(el)\n )\n }\n\n return false\n}\n/**\n * Find out which edge to align against when logical scroll position is \"nearest\"\n * Interesting fact: \"nearest\" works similarily to \"if-needed\", if the element is fully visible it will not scroll it\n *\n * Legends:\n * ┌────────┐ ┏ ━ ━ ━ ┓\n * │ target │ frame\n * └────────┘ ┗ ━ ━ ━ ┛\n */\nfunction alignNearest(\n scrollingEdgeStart: number,\n scrollingEdgeEnd: number,\n scrollingSize: number,\n scrollingBorderStart: number,\n scrollingBorderEnd: number,\n elementEdgeStart: number,\n elementEdgeEnd: number,\n elementSize: number\n) {\n /**\n * If element edge A and element edge B are both outside scrolling box edge A and scrolling box edge B\n *\n * ┌──┐\n * ┏━│━━│━┓\n * │ │\n * ┃ │ │ ┃ do nothing\n * │ │\n * ┗━│━━│━┛\n * └──┘\n *\n * If element edge C and element edge D are both outside scrolling box edge C and scrolling box edge D\n *\n * ┏ ━ ━ ━ ━ ┓\n * ┌───────────┐\n * │┃ ┃│ do nothing\n * └───────────┘\n * ┗ ━ ━ ━ ━ ┛\n */\n if (\n (elementEdgeStart < scrollingEdgeStart &&\n elementEdgeEnd > scrollingEdgeEnd) ||\n (elementEdgeStart > scrollingEdgeStart && elementEdgeEnd < scrollingEdgeEnd)\n ) {\n return 0\n }\n\n /**\n * If element edge A is outside scrolling box edge A and element height is less than scrolling box height\n *\n * ┌──┐\n * ┏━│━━│━┓ ┏━┌━━┐━┓\n * └──┘ │ │\n * from ┃ ┃ to ┃ └──┘ ┃\n *\n * ┗━ ━━ ━┛ ┗━ ━━ ━┛\n *\n * If element edge B is outside scrolling box edge B and element height is greater than scrolling box height\n *\n * ┏━ ━━ ━┓ ┏━┌━━┐━┓\n * │ │\n * from ┃ ┌──┐ ┃ to ┃ │ │ ┃\n * │ │ │ │\n * ┗━│━━│━┛ ┗━│━━│━┛\n * │ │ └──┘\n * │ │\n * └──┘\n *\n * If element edge C is outside scrolling box edge C and element width is less than scrolling box width\n *\n * from to\n * ┏ ━ ━ ━ ━ ┓ ┏ ━ ━ ━ ━ ┓\n * ┌───┐ ┌───┐\n * │ ┃ │ ┃ ┃ │ ┃\n * └───┘ └───┘\n * ┗ ━ ━ ━ ━ ┛ ┗ ━ ━ ━ ━ ┛\n *\n * If element edge D is outside scrolling box edge D and element width is greater than scrolling box width\n *\n * from to\n * ┏ ━ ━ ━ ━ ┓ ┏ ━ ━ ━ ━ ┓\n * ┌───────────┐ ┌───────────┐\n * ┃ │ ┃ │ ┃ ┃ │\n * └───────────┘ └───────────┘\n * ┗ ━ ━ ━ ━ ┛ ┗ ━ ━ ━ ━ ┛\n */\n if (\n (elementEdgeStart <= scrollingEdgeStart && elementSize <= scrollingSize) ||\n (elementEdgeEnd >= scrollingEdgeEnd && elementSize >= scrollingSize)\n ) {\n return elementEdgeStart - scrollingEdgeStart - scrollingBorderStart\n }\n\n /**\n * If element edge B is outside scrolling box edge B and element height is less than scrolling box height\n *\n * ┏━ ━━ ━┓ ┏━ ━━ ━┓\n *\n * from ┃ ┃ to ┃ ┌──┐ ┃\n * ┌──┐ │ │\n * ┗━│━━│━┛ ┗━└━━┘━┛\n * └──┘\n *\n * If element edge A is outside scrolling box edge A and element height is greater than scrolling box height\n *\n * ┌──┐\n * │ │\n * │ │ ┌──┐\n * ┏━│━━│━┓ ┏━│━━│━┓\n * │ │ │ │\n * from ┃ └──┘ ┃ to ┃ │ │ ┃\n * │ │\n * ┗━ ━━ ━┛ ┗━└━━┘━┛\n *\n * If element edge C is outside scrolling box edge C and element width is greater than scrolling box width\n *\n * from to\n * ┏ ━ ━ ━ ━ ┓ ┏ ━ ━ ━ ━ ┓\n * ┌───────────┐ ┌───────────┐\n * │ ┃ │ ┃ │ ┃ ┃\n * └───────────┘ └───────────┘\n * ┗ ━ ━ ━ ━ ┛ ┗ ━ ━ ━ ━ ┛\n *\n * If element edge D is outside scrolling box edge D and element width is less than scrolling box width\n *\n * from to\n * ┏ ━ ━ ━ ━ ┓ ┏ ━ ━ ━ ━ ┓\n * ┌───┐ ┌───┐\n * ┃ │ ┃ │ ┃ │ ┃\n * └───┘ └───┘\n * ┗ ━ ━ ━ ━ ┛ ┗ ━ ━ ━ ━ ┛\n *\n */\n if (\n (elementEdgeEnd > scrollingEdgeEnd && elementSize < scrollingSize) ||\n (elementEdgeStart < scrollingEdgeStart && elementSize > scrollingSize)\n ) {\n return elementEdgeEnd - scrollingEdgeEnd + scrollingBorderEnd\n }\n\n return 0\n}\n\nexport default (target: Element, options: Options): CustomScrollAction[] => {\n //TODO: remove this hack when microbundle will support typescript >= 4.0\n const windowWithViewport = (window as unknown) as Window & {\n visualViewport: visualViewport\n }\n\n const {\n scrollMode,\n block,\n inline,\n boundary,\n skipOverflowHiddenElements,\n } = options\n // Allow using a callback to check the boundary\n // The default behavior is to check if the current target matches the boundary element or not\n // If undefined it'll check that target is never undefined (can happen as we recurse up the tree)\n const checkBoundary =\n typeof boundary === 'function' ? boundary : (node: any) => node !== boundary\n\n if (!isElement(target)) {\n throw new TypeError('Invalid target')\n }\n\n // Used to handle the top most element that can be scrolled\n const scrollingElement = document.scrollingElement || document.documentElement\n\n // Collect all the scrolling boxes, as defined in the spec: https://drafts.csswg.org/cssom-view/#scrolling-box\n const frames: Element[] = []\n let cursor = target\n while (isElement(cursor) && checkBoundary(cursor)) {\n // Move cursor to parent\n cursor = cursor.parentNode as Element\n\n // Stop when we reach the viewport\n if (cursor === scrollingElement) {\n frames.push(cursor)\n break\n }\n\n // Skip document.body if it's not the scrollingElement and documentElement isn't independently scrollable\n if (\n cursor === document.body &&\n isScrollable(cursor) &&\n !isScrollable(document.documentElement as HTMLElement)\n ) {\n continue\n }\n\n // Now we check if the element is scrollable, this code only runs if the loop haven't already hit the viewport or a custom boundary\n if (isScrollable(cursor, skipOverflowHiddenElements)) {\n frames.push(cursor)\n }\n }\n\n // Support pinch-zooming properly, making sure elements scroll into the visual viewport\n // Browsers that don't support visualViewport will report the layout viewport dimensions on document.documentElement.clientWidth/Height\n // and viewport dimensions on window.innerWidth/Height\n // https://www.quirksmode.org/mobile/viewports2.html\n // https://bokand.github.io/viewport/index.html\n const viewportWidth = windowWithViewport.visualViewport\n ? windowWithViewport.visualViewport.width\n : innerWidth\n const viewportHeight = windowWithViewport.visualViewport\n ? windowWithViewport.visualViewport.height\n : innerHeight\n\n // Newer browsers supports scroll[X|Y], page[X|Y]Offset is\n const viewportX = window.scrollX || pageXOffset\n const viewportY = window.scrollY || pageYOffset\n\n const {\n height: targetHeight,\n width: targetWidth,\n top: targetTop,\n right: targetRight,\n bottom: targetBottom,\n left: targetLeft,\n } = target.getBoundingClientRect()\n\n // These values mutate as we loop through and generate scroll coordinates\n let targetBlock: number =\n block === 'start' || block === 'nearest'\n ? targetTop\n : block === 'end'\n ? targetBottom\n : targetTop + targetHeight / 2 // block === 'center\n let targetInline: number =\n inline === 'center'\n ? targetLeft + targetWidth / 2\n : inline === 'end'\n ? targetRight\n : targetLeft // inline === 'start || inline === 'nearest\n\n // Collect new scroll positions\n const computations: CustomScrollAction[] = []\n // In chrome there's no longer a difference between caching the `frames.length` to a var or not, so we don't in this case (size > speed anyways)\n for (let index = 0; index < frames.length; index++) {\n const frame = frames[index]\n\n // @TODO add a shouldScroll hook here that allows userland code to take control\n\n const {\n height,\n width,\n top,\n right,\n bottom,\n left,\n } = frame.getBoundingClientRect()\n\n // If the element is already visible we can end it here\n // @TODO targetBlock and targetInline should be taken into account to be compliant with https://github.com/w3c/csswg-drafts/pull/1805/files#diff-3c17f0e43c20f8ecf89419d49e7ef5e0R1333\n if (\n scrollMode === 'if-needed' &&\n targetTop >= 0 &&\n targetLeft >= 0 &&\n targetBottom <= viewportHeight &&\n targetRight <= viewportWidth &&\n targetTop >= top &&\n targetBottom <= bottom &&\n targetLeft >= left &&\n targetRight <= right\n ) {\n // Break the loop and return the computations for things that are not fully visible\n return computations\n }\n\n const frameStyle = getComputedStyle(frame)\n const borderLeft = parseInt(frameStyle.borderLeftWidth as string, 10)\n const borderTop = parseInt(frameStyle.borderTopWidth as string, 10)\n const borderRight = parseInt(frameStyle.borderRightWidth as string, 10)\n const borderBottom = parseInt(frameStyle.borderBottomWidth as string, 10)\n\n let blockScroll: number = 0\n let inlineScroll: number = 0\n\n // The property existance checks for offfset[Width|Height] is because only HTMLElement objects have them, but any Element might pass by here\n // @TODO find out if the \"as HTMLElement\" overrides can be dropped\n const scrollbarWidth =\n 'offsetWidth' in frame\n ? (frame as HTMLElement).offsetWidth -\n (frame as HTMLElement).clientWidth -\n borderLeft -\n borderRight\n : 0\n const scrollbarHeight =\n 'offsetHeight' in frame\n ? (frame as HTMLElement).offsetHeight -\n (frame as HTMLElement).clientHeight -\n borderTop -\n borderBottom\n : 0\n\n if (scrollingElement === frame) {\n // Handle viewport logic (document.documentElement or document.body)\n\n if (block === 'start') {\n blockScroll = targetBlock\n } else if (block === 'end') {\n blockScroll = targetBlock - viewportHeight\n } else if (block === 'nearest') {\n blockScroll = alignNearest(\n viewportY,\n viewportY + viewportHeight,\n viewportHeight,\n borderTop,\n borderBottom,\n viewportY + targetBlock,\n viewportY + targetBlock + targetHeight,\n targetHeight\n )\n } else {\n // block === 'center' is the default\n blockScroll = targetBlock - viewportHeight / 2\n }\n\n if (inline === 'start') {\n inlineScroll = targetInline\n } else if (inline === 'center') {\n inlineScroll = targetInline - viewportWidth / 2\n } else if (inline === 'end') {\n inlineScroll = targetInline - viewportWidth\n } else {\n // inline === 'nearest' is the default\n inlineScroll = alignNearest(\n viewportX,\n viewportX + viewportWidth,\n viewportWidth,\n borderLeft,\n borderRight,\n viewportX + targetInline,\n viewportX + targetInline + targetWidth,\n targetWidth\n )\n }\n\n // Apply scroll position offsets and ensure they are within bounds\n // @TODO add more test cases to cover this 100%\n blockScroll = Math.max(0, blockScroll + viewportY)\n inlineScroll = Math.max(0, inlineScroll + viewportX)\n } else {\n // Handle each scrolling frame that might exist between the target and the viewport\n\n if (block === 'start') {\n blockScroll = targetBlock - top - borderTop\n } else if (block === 'end') {\n blockScroll = targetBlock - bottom + borderBottom + scrollbarHeight\n } else if (block === 'nearest') {\n blockScroll = alignNearest(\n top,\n bottom,\n height,\n borderTop,\n borderBottom + scrollbarHeight,\n targetBlock,\n targetBlock + targetHeight,\n targetHeight\n )\n } else {\n // block === 'center' is the default\n blockScroll = targetBlock - (top + height / 2) + scrollbarHeight / 2\n }\n\n if (inline === 'start') {\n inlineScroll = targetInline - left - borderLeft\n } else if (inline === 'center') {\n inlineScroll = targetInline - (left + width / 2) + scrollbarWidth / 2\n } else if (inline === 'end') {\n inlineScroll = targetInline - right + borderRight + scrollbarWidth\n } else {\n // inline === 'nearest' is the default\n inlineScroll = alignNearest(\n left,\n right,\n width,\n borderLeft,\n borderRight + scrollbarWidth,\n targetInline,\n targetInline + targetWidth,\n targetWidth\n )\n }\n\n const { scrollLeft, scrollTop } = frame\n // Ensure scroll coordinates are not out of bounds while applying scroll offsets\n blockScroll = Math.max(\n 0,\n Math.min(\n scrollTop + blockScroll,\n frame.scrollHeight - height + scrollbarHeight\n )\n )\n inlineScroll = Math.max(\n 0,\n Math.min(\n scrollLeft + inlineScroll,\n frame.scrollWidth - width + scrollbarWidth\n )\n )\n\n // Cache the offset so that parent frames can scroll this into view correctly\n targetBlock += scrollTop - blockScroll\n targetInline += scrollLeft - inlineScroll\n }\n\n computations.push({ el: frame, top: blockScroll, left: inlineScroll })\n }\n\n return computations\n}\n","import _objectWithoutPropertiesLoose from '@babel/runtime/helpers/esm/objectWithoutPropertiesLoose';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport _assertThisInitialized from '@babel/runtime/helpers/esm/assertThisInitialized';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport PropTypes from 'prop-types';\nimport { cloneElement, Component, useRef, useEffect, useCallback, useReducer, useMemo } from 'react';\nimport { isForwardRef } from 'react-is';\nimport computeScrollIntoView from 'compute-scroll-into-view';\n\nvar idCounter = 0;\n/**\n * Accepts a parameter and returns it if it's a function\n * or a noop function if it's not. This allows us to\n * accept a callback, but not worry about it if it's not\n * passed.\n * @param {Function} cb the callback\n * @return {Function} a function\n */\n\nfunction cbToCb(cb) {\n return typeof cb === 'function' ? cb : noop;\n}\n\nfunction noop() {}\n/**\n * Scroll node into view if necessary\n * @param {HTMLElement} node the element that should scroll into view\n * @param {HTMLElement} menuNode the menu element of the component\n */\n\n\nfunction scrollIntoView(node, menuNode) {\n if (!node) {\n return;\n }\n\n var actions = computeScrollIntoView(node, {\n boundary: menuNode,\n block: 'nearest',\n scrollMode: 'if-needed'\n });\n actions.forEach(function (_ref) {\n var el = _ref.el,\n top = _ref.top,\n left = _ref.left;\n el.scrollTop = top;\n el.scrollLeft = left;\n });\n}\n/**\n * @param {HTMLElement} parent the parent node\n * @param {HTMLElement} child the child node\n * @return {Boolean} whether the parent is the child or the child is in the parent\n */\n\n\nfunction isOrContainsNode(parent, child) {\n return parent === child || child instanceof Node && parent.contains && parent.contains(child);\n}\n/**\n * Simple debounce implementation. Will call the given\n * function once after the time given has passed since\n * it was last called.\n * @param {Function} fn the function to call after the time\n * @param {Number} time the time to wait\n * @return {Function} the debounced function\n */\n\n\nfunction debounce(fn, time) {\n var timeoutId;\n\n function cancel() {\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n }\n\n function wrapper() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n cancel();\n timeoutId = setTimeout(function () {\n timeoutId = null;\n fn.apply(void 0, args);\n }, time);\n }\n\n wrapper.cancel = cancel;\n return wrapper;\n}\n/**\n * This is intended to be used to compose event handlers.\n * They are executed in order until one of them sets\n * `event.preventDownshiftDefault = true`.\n * @param {...Function} fns the event handler functions\n * @return {Function} the event handler to add to an element\n */\n\n\nfunction callAllEventHandlers() {\n for (var _len2 = arguments.length, fns = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n fns[_key2] = arguments[_key2];\n }\n\n return function (event) {\n for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {\n args[_key3 - 1] = arguments[_key3];\n }\n\n return fns.some(function (fn) {\n if (fn) {\n fn.apply(void 0, [event].concat(args));\n }\n\n return event.preventDownshiftDefault || event.hasOwnProperty('nativeEvent') && event.nativeEvent.preventDownshiftDefault;\n });\n };\n}\n\nfunction handleRefs() {\n for (var _len4 = arguments.length, refs = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n refs[_key4] = arguments[_key4];\n }\n\n return function (node) {\n refs.forEach(function (ref) {\n if (typeof ref === 'function') {\n ref(node);\n } else if (ref) {\n ref.current = node;\n }\n });\n };\n}\n/**\n * This generates a unique ID for an instance of Downshift\n * @return {String} the unique ID\n */\n\n\nfunction generateId() {\n return String(idCounter++);\n}\n/**\n * Resets idCounter to 0. Used for SSR.\n */\n\n\nfunction resetIdCounter() {\n idCounter = 0;\n}\n/**\n * Default implementation for status message. Only added when menu is open.\n * Will specift if there are results in the list, and if so, how many,\n * and what keys are relevant.\n *\n * @param {Object} param the downshift state and other relevant properties\n * @return {String} the a11y status message\n */\n\n\nfunction getA11yStatusMessage(_ref2) {\n var isOpen = _ref2.isOpen,\n resultCount = _ref2.resultCount,\n previousResultCount = _ref2.previousResultCount;\n\n if (!isOpen) {\n return '';\n }\n\n if (!resultCount) {\n return 'No results are available.';\n }\n\n if (resultCount !== previousResultCount) {\n return resultCount + \" result\" + (resultCount === 1 ? ' is' : 's are') + \" available, use up and down arrow keys to navigate. Press Enter key to select.\";\n }\n\n return '';\n}\n/**\n * Takes an argument and if it's an array, returns the first item in the array\n * otherwise returns the argument\n * @param {*} arg the maybe-array\n * @param {*} defaultValue the value if arg is falsey not defined\n * @return {*} the arg or it's first item\n */\n\n\nfunction unwrapArray(arg, defaultValue) {\n arg = Array.isArray(arg) ?\n /* istanbul ignore next (preact) */\n arg[0] : arg;\n\n if (!arg && defaultValue) {\n return defaultValue;\n } else {\n return arg;\n }\n}\n/**\n * @param {Object} element (P)react element\n * @return {Boolean} whether it's a DOM element\n */\n\n\nfunction isDOMElement(element) {\n // then we assume this is react\n return typeof element.type === 'string';\n}\n/**\n * @param {Object} element (P)react element\n * @return {Object} the props\n */\n\n\nfunction getElementProps(element) {\n return element.props;\n}\n/**\n * Throws a helpful error message for required properties. Useful\n * to be used as a default in destructuring or object params.\n * @param {String} fnName the function name\n * @param {String} propName the prop name\n */\n\n\nfunction requiredProp(fnName, propName) {\n // eslint-disable-next-line no-console\n console.error(\"The property \\\"\" + propName + \"\\\" is required in \\\"\" + fnName + \"\\\"\");\n}\n\nvar stateKeys = ['highlightedIndex', 'inputValue', 'isOpen', 'selectedItem', 'type'];\n/**\n * @param {Object} state the state object\n * @return {Object} state that is relevant to downshift\n */\n\nfunction pickState(state) {\n if (state === void 0) {\n state = {};\n }\n\n var result = {};\n stateKeys.forEach(function (k) {\n if (state.hasOwnProperty(k)) {\n result[k] = state[k];\n }\n });\n return result;\n}\n/**\n * This will perform a shallow merge of the given state object\n * with the state coming from props\n * (for the controlled component scenario)\n * This is used in state updater functions so they're referencing\n * the right state regardless of where it comes from.\n *\n * @param {Object} state The state of the component/hook.\n * @param {Object} props The props that may contain controlled values.\n * @returns {Object} The merged controlled state.\n */\n\n\nfunction getState(state, props) {\n return Object.keys(state).reduce(function (prevState, key) {\n prevState[key] = isControlledProp(props, key) ? props[key] : state[key];\n return prevState;\n }, {});\n}\n/**\n * This determines whether a prop is a \"controlled prop\" meaning it is\n * state which is controlled by the outside of this component rather\n * than within this component.\n *\n * @param {Object} props The props that may contain controlled values.\n * @param {String} key the key to check\n * @return {Boolean} whether it is a controlled controlled prop\n */\n\n\nfunction isControlledProp(props, key) {\n return props[key] !== undefined;\n}\n/**\n * Normalizes the 'key' property of a KeyboardEvent in IE/Edge\n * @param {Object} event a keyboardEvent object\n * @return {String} keyboard key\n */\n\n\nfunction normalizeArrowKey(event) {\n var key = event.key,\n keyCode = event.keyCode;\n /* istanbul ignore next (ie) */\n\n if (keyCode >= 37 && keyCode <= 40 && key.indexOf('Arrow') !== 0) {\n return \"Arrow\" + key;\n }\n\n return key;\n}\n/**\n * Simple check if the value passed is object literal\n * @param {*} obj any things\n * @return {Boolean} whether it's object literal\n */\n\n\nfunction isPlainObject(obj) {\n return Object.prototype.toString.call(obj) === '[object Object]';\n}\n/**\n * Returns the new index in the list, in a circular way. If next value is out of bonds from the total,\n * it will wrap to either 0 or itemCount - 1.\n *\n * @param {number} moveAmount Number of positions to move. Negative to move backwards, positive forwards.\n * @param {number} baseIndex The initial position to move from.\n * @param {number} itemCount The total number of items.\n * @param {Function} getItemNodeFromIndex Used to check if item is disabled.\n * @param {boolean} circular Specify if navigation is circular. Default is true.\n * @returns {number} The new index after the move.\n */\n\n\nfunction getNextWrappingIndex(moveAmount, baseIndex, itemCount, getItemNodeFromIndex, circular) {\n if (circular === void 0) {\n circular = true;\n }\n\n if (itemCount === 0) {\n return -1;\n }\n\n var itemsLastIndex = itemCount - 1;\n\n if (typeof baseIndex !== 'number' || baseIndex < 0 || baseIndex >= itemCount) {\n baseIndex = moveAmount > 0 ? -1 : itemsLastIndex + 1;\n }\n\n var newIndex = baseIndex + moveAmount;\n\n if (newIndex < 0) {\n newIndex = circular ? itemsLastIndex : 0;\n } else if (newIndex > itemsLastIndex) {\n newIndex = circular ? 0 : itemsLastIndex;\n }\n\n var nonDisabledNewIndex = getNextNonDisabledIndex(moveAmount, newIndex, itemCount, getItemNodeFromIndex, circular);\n\n if (nonDisabledNewIndex === -1) {\n return baseIndex >= itemCount ? -1 : baseIndex;\n }\n\n return nonDisabledNewIndex;\n}\n/**\n * Returns the next index in the list of an item that is not disabled.\n *\n * @param {number} moveAmount Number of positions to move. Negative to move backwards, positive forwards.\n * @param {number} baseIndex The initial position to move from.\n * @param {number} itemCount The total number of items.\n * @param {Function} getItemNodeFromIndex Used to check if item is disabled.\n * @param {boolean} circular Specify if navigation is circular. Default is true.\n * @returns {number} The new index. Returns baseIndex if item is not disabled. Returns next non-disabled item otherwise. If no non-disabled found it will return -1.\n */\n\n\nfunction getNextNonDisabledIndex(moveAmount, baseIndex, itemCount, getItemNodeFromIndex, circular) {\n var currentElementNode = getItemNodeFromIndex(baseIndex);\n\n if (!currentElementNode || !currentElementNode.hasAttribute('disabled')) {\n return baseIndex;\n }\n\n if (moveAmount > 0) {\n for (var index = baseIndex + 1; index < itemCount; index++) {\n if (!getItemNodeFromIndex(index).hasAttribute('disabled')) {\n return index;\n }\n }\n } else {\n for (var _index = baseIndex - 1; _index >= 0; _index--) {\n if (!getItemNodeFromIndex(_index).hasAttribute('disabled')) {\n return _index;\n }\n }\n }\n\n if (circular) {\n return moveAmount > 0 ? getNextNonDisabledIndex(1, 0, itemCount, getItemNodeFromIndex, false) : getNextNonDisabledIndex(-1, itemCount - 1, itemCount, getItemNodeFromIndex, false);\n }\n\n return -1;\n}\n/**\n * Checks if event target is within the downshift elements.\n *\n * @param {EventTarget} target Target to check.\n * @param {HTMLElement[]} downshiftElements The elements that form downshift (list, toggle button etc).\n * @param {Document} document The document.\n * @param {boolean} checkActiveElement Whether to also check activeElement.\n *\n * @returns {boolean} Whether or not the target is within downshift elements.\n */\n\n\nfunction targetWithinDownshift(target, downshiftElements, document, checkActiveElement) {\n if (checkActiveElement === void 0) {\n checkActiveElement = true;\n }\n\n return downshiftElements.some(function (contextNode) {\n return contextNode && (isOrContainsNode(contextNode, target) || checkActiveElement && isOrContainsNode(contextNode, document.activeElement));\n });\n}\n\nfunction validateControlledUnchanged(state, prevProps, nextProps) {\n if (process.env.NODE_ENV === 'production') {\n return;\n }\n\n var warningDescription = \"This prop should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled Downshift element for the lifetime of the component. More info: https://github.com/downshift-js/downshift#control-props\";\n Object.keys(state).forEach(function (propKey) {\n if (prevProps[propKey] !== undefined && nextProps[propKey] === undefined) {\n // eslint-disable-next-line no-console\n console.error(\"downshift: A component has changed the controlled prop \\\"\" + propKey + \"\\\" to be uncontrolled. \" + warningDescription);\n } else if (prevProps[propKey] === undefined && nextProps[propKey] !== undefined) {\n // eslint-disable-next-line no-console\n console.error(\"downshift: A component has changed the uncontrolled prop \\\"\" + propKey + \"\\\" to be controlled. \" + warningDescription);\n }\n });\n}\n\nvar cleanupStatus = debounce(function () {\n getStatusDiv().textContent = '';\n}, 500);\n/**\n * @param {String} status the status message\n * @param {Object} documentProp document passed by the user.\n */\n\nfunction setStatus(status, documentProp) {\n var div = getStatusDiv(documentProp);\n\n if (!status) {\n return;\n }\n\n div.textContent = status;\n cleanupStatus();\n}\n/**\n * Get the status node or create it if it does not already exist.\n * @param {Object} documentProp document passed by the user.\n * @return {HTMLElement} the status node.\n */\n\n\nfunction getStatusDiv(documentProp) {\n if (documentProp === void 0) {\n documentProp = document;\n }\n\n var statusDiv = documentProp.getElementById('a11y-status-message');\n\n if (statusDiv) {\n return statusDiv;\n }\n\n statusDiv = documentProp.createElement('div');\n statusDiv.setAttribute('id', 'a11y-status-message');\n statusDiv.setAttribute('role', 'status');\n statusDiv.setAttribute('aria-live', 'polite');\n statusDiv.setAttribute('aria-relevant', 'additions text');\n Object.assign(statusDiv.style, {\n border: '0',\n clip: 'rect(0 0 0 0)',\n height: '1px',\n margin: '-1px',\n overflow: 'hidden',\n padding: '0',\n position: 'absolute',\n width: '1px'\n });\n documentProp.body.appendChild(statusDiv);\n return statusDiv;\n}\n\nvar unknown = process.env.NODE_ENV !== \"production\" ? '__autocomplete_unknown__' : 0;\nvar mouseUp = process.env.NODE_ENV !== \"production\" ? '__autocomplete_mouseup__' : 1;\nvar itemMouseEnter = process.env.NODE_ENV !== \"production\" ? '__autocomplete_item_mouseenter__' : 2;\nvar keyDownArrowUp = process.env.NODE_ENV !== \"production\" ? '__autocomplete_keydown_arrow_up__' : 3;\nvar keyDownArrowDown = process.env.NODE_ENV !== \"production\" ? '__autocomplete_keydown_arrow_down__' : 4;\nvar keyDownEscape = process.env.NODE_ENV !== \"production\" ? '__autocomplete_keydown_escape__' : 5;\nvar keyDownEnter = process.env.NODE_ENV !== \"production\" ? '__autocomplete_keydown_enter__' : 6;\nvar keyDownHome = process.env.NODE_ENV !== \"production\" ? '__autocomplete_keydown_home__' : 7;\nvar keyDownEnd = process.env.NODE_ENV !== \"production\" ? '__autocomplete_keydown_end__' : 8;\nvar clickItem = process.env.NODE_ENV !== \"production\" ? '__autocomplete_click_item__' : 9;\nvar blurInput = process.env.NODE_ENV !== \"production\" ? '__autocomplete_blur_input__' : 10;\nvar changeInput = process.env.NODE_ENV !== \"production\" ? '__autocomplete_change_input__' : 11;\nvar keyDownSpaceButton = process.env.NODE_ENV !== \"production\" ? '__autocomplete_keydown_space_button__' : 12;\nvar clickButton = process.env.NODE_ENV !== \"production\" ? '__autocomplete_click_button__' : 13;\nvar blurButton = process.env.NODE_ENV !== \"production\" ? '__autocomplete_blur_button__' : 14;\nvar controlledPropUpdatedSelectedItem = process.env.NODE_ENV !== \"production\" ? '__autocomplete_controlled_prop_updated_selected_item__' : 15;\nvar touchEnd = process.env.NODE_ENV !== \"production\" ? '__autocomplete_touchend__' : 16;\n\nvar stateChangeTypes = /*#__PURE__*/Object.freeze({\n __proto__: null,\n unknown: unknown,\n mouseUp: mouseUp,\n itemMouseEnter: itemMouseEnter,\n keyDownArrowUp: keyDownArrowUp,\n keyDownArrowDown: keyDownArrowDown,\n keyDownEscape: keyDownEscape,\n keyDownEnter: keyDownEnter,\n keyDownHome: keyDownHome,\n keyDownEnd: keyDownEnd,\n clickItem: clickItem,\n blurInput: blurInput,\n changeInput: changeInput,\n keyDownSpaceButton: keyDownSpaceButton,\n clickButton: clickButton,\n blurButton: blurButton,\n controlledPropUpdatedSelectedItem: controlledPropUpdatedSelectedItem,\n touchEnd: touchEnd\n});\n\nvar Downshift = /*#__PURE__*/function () {\n var Downshift = /*#__PURE__*/function (_Component) {\n _inheritsLoose(Downshift, _Component);\n\n function Downshift(_props) {\n var _this = _Component.call(this, _props) || this;\n\n _this.id = _this.props.id || \"downshift-\" + generateId();\n _this.menuId = _this.props.menuId || _this.id + \"-menu\";\n _this.labelId = _this.props.labelId || _this.id + \"-label\";\n _this.inputId = _this.props.inputId || _this.id + \"-input\";\n\n _this.getItemId = _this.props.getItemId || function (index) {\n return _this.id + \"-item-\" + index;\n };\n\n _this.input = null;\n _this.items = [];\n _this.itemCount = null;\n _this.previousResultCount = 0;\n _this.timeoutIds = [];\n\n _this.internalSetTimeout = function (fn, time) {\n var id = setTimeout(function () {\n _this.timeoutIds = _this.timeoutIds.filter(function (i) {\n return i !== id;\n });\n fn();\n }, time);\n\n _this.timeoutIds.push(id);\n };\n\n _this.setItemCount = function (count) {\n _this.itemCount = count;\n };\n\n _this.unsetItemCount = function () {\n _this.itemCount = null;\n };\n\n _this.setHighlightedIndex = function (highlightedIndex, otherStateToSet) {\n if (highlightedIndex === void 0) {\n highlightedIndex = _this.props.defaultHighlightedIndex;\n }\n\n if (otherStateToSet === void 0) {\n otherStateToSet = {};\n }\n\n otherStateToSet = pickState(otherStateToSet);\n\n _this.internalSetState(_extends({\n highlightedIndex: highlightedIndex\n }, otherStateToSet));\n };\n\n _this.clearSelection = function (cb) {\n _this.internalSetState({\n selectedItem: null,\n inputValue: '',\n highlightedIndex: _this.props.defaultHighlightedIndex,\n isOpen: _this.props.defaultIsOpen\n }, cb);\n };\n\n _this.selectItem = function (item, otherStateToSet, cb) {\n otherStateToSet = pickState(otherStateToSet);\n\n _this.internalSetState(_extends({\n isOpen: _this.props.defaultIsOpen,\n highlightedIndex: _this.props.defaultHighlightedIndex,\n selectedItem: item,\n inputValue: _this.props.itemToString(item)\n }, otherStateToSet), cb);\n };\n\n _this.selectItemAtIndex = function (itemIndex, otherStateToSet, cb) {\n var item = _this.items[itemIndex];\n\n if (item == null) {\n return;\n }\n\n _this.selectItem(item, otherStateToSet, cb);\n };\n\n _this.selectHighlightedItem = function (otherStateToSet, cb) {\n return _this.selectItemAtIndex(_this.getState().highlightedIndex, otherStateToSet, cb);\n };\n\n _this.internalSetState = function (stateToSet, cb) {\n var isItemSelected, onChangeArg;\n var onStateChangeArg = {};\n var isStateToSetFunction = typeof stateToSet === 'function'; // we want to call `onInputValueChange` before the `setState` call\n // so someone controlling the `inputValue` state gets notified of\n // the input change as soon as possible. This avoids issues with\n // preserving the cursor position.\n // See https://github.com/downshift-js/downshift/issues/217 for more info.\n\n if (!isStateToSetFunction && stateToSet.hasOwnProperty('inputValue')) {\n _this.props.onInputValueChange(stateToSet.inputValue, _extends({}, _this.getStateAndHelpers(), stateToSet));\n }\n\n return _this.setState(function (state) {\n state = _this.getState(state);\n var newStateToSet = isStateToSetFunction ? stateToSet(state) : stateToSet; // Your own function that could modify the state that will be set.\n\n newStateToSet = _this.props.stateReducer(state, newStateToSet); // checks if an item is selected, regardless of if it's different from\n // what was selected before\n // used to determine if onSelect and onChange callbacks should be called\n\n isItemSelected = newStateToSet.hasOwnProperty('selectedItem'); // this keeps track of the object we want to call with setState\n\n var nextState = {}; // this is just used to tell whether the state changed\n\n var nextFullState = {}; // we need to call on change if the outside world is controlling any of our state\n // and we're trying to update that state. OR if the selection has changed and we're\n // trying to update the selection\n\n if (isItemSelected && newStateToSet.selectedItem !== state.selectedItem) {\n onChangeArg = newStateToSet.selectedItem;\n }\n\n newStateToSet.type = newStateToSet.type || unknown;\n Object.keys(newStateToSet).forEach(function (key) {\n // onStateChangeArg should only have the state that is\n // actually changing\n if (state[key] !== newStateToSet[key]) {\n onStateChangeArg[key] = newStateToSet[key];\n } // the type is useful for the onStateChangeArg\n // but we don't actually want to set it in internal state.\n // this is an undocumented feature for now... Not all internalSetState\n // calls support it and I'm not certain we want them to yet.\n // But it enables users controlling the isOpen state to know when\n // the isOpen state changes due to mouseup events which is quite handy.\n\n\n if (key === 'type') {\n return;\n }\n\n nextFullState[key] = newStateToSet[key]; // if it's coming from props, then we don't care to set it internally\n\n if (!isControlledProp(_this.props, key)) {\n nextState[key] = newStateToSet[key];\n }\n }); // if stateToSet is a function, then we weren't able to call onInputValueChange\n // earlier, so we'll call it now that we know what the inputValue state will be.\n\n if (isStateToSetFunction && newStateToSet.hasOwnProperty('inputValue')) {\n _this.props.onInputValueChange(newStateToSet.inputValue, _extends({}, _this.getStateAndHelpers(), newStateToSet));\n }\n\n return nextState;\n }, function () {\n // call the provided callback if it's a function\n cbToCb(cb)(); // only call the onStateChange and onChange callbacks if\n // we have relevant information to pass them.\n\n var hasMoreStateThanType = Object.keys(onStateChangeArg).length > 1;\n\n if (hasMoreStateThanType) {\n _this.props.onStateChange(onStateChangeArg, _this.getStateAndHelpers());\n }\n\n if (isItemSelected) {\n _this.props.onSelect(stateToSet.selectedItem, _this.getStateAndHelpers());\n }\n\n if (onChangeArg !== undefined) {\n _this.props.onChange(onChangeArg, _this.getStateAndHelpers());\n } // this is currently undocumented and therefore subject to change\n // We'll try to not break it, but just be warned.\n\n\n _this.props.onUserAction(onStateChangeArg, _this.getStateAndHelpers());\n });\n };\n\n _this.rootRef = function (node) {\n return _this._rootNode = node;\n };\n\n _this.getRootProps = function (_temp, _temp2) {\n var _extends2;\n\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$refKey = _ref.refKey,\n refKey = _ref$refKey === void 0 ? 'ref' : _ref$refKey,\n ref = _ref.ref,\n rest = _objectWithoutPropertiesLoose(_ref, [\"refKey\", \"ref\"]);\n\n var _ref2 = _temp2 === void 0 ? {} : _temp2,\n _ref2$suppressRefErro = _ref2.suppressRefError,\n suppressRefError = _ref2$suppressRefErro === void 0 ? false : _ref2$suppressRefErro;\n\n // this is used in the render to know whether the user has called getRootProps.\n // It uses that to know whether to apply the props automatically\n _this.getRootProps.called = true;\n _this.getRootProps.refKey = refKey;\n _this.getRootProps.suppressRefError = suppressRefError;\n\n var _this$getState = _this.getState(),\n isOpen = _this$getState.isOpen;\n\n return _extends((_extends2 = {}, _extends2[refKey] = handleRefs(ref, _this.rootRef), _extends2.role = 'combobox', _extends2['aria-expanded'] = isOpen, _extends2['aria-haspopup'] = 'listbox', _extends2['aria-owns'] = isOpen ? _this.menuId : null, _extends2['aria-labelledby'] = _this.labelId, _extends2), rest);\n };\n\n _this.keyDownHandlers = {\n ArrowDown: function ArrowDown(event) {\n var _this2 = this;\n\n event.preventDefault();\n\n if (this.getState().isOpen) {\n var amount = event.shiftKey ? 5 : 1;\n this.moveHighlightedIndex(amount, {\n type: keyDownArrowDown\n });\n } else {\n this.internalSetState({\n isOpen: true,\n type: keyDownArrowDown\n }, function () {\n var itemCount = _this2.getItemCount();\n\n if (itemCount > 0) {\n var _this2$getState = _this2.getState(),\n highlightedIndex = _this2$getState.highlightedIndex;\n\n var nextHighlightedIndex = getNextWrappingIndex(1, highlightedIndex, itemCount, function (index) {\n return _this2.getItemNodeFromIndex(index);\n });\n\n _this2.setHighlightedIndex(nextHighlightedIndex, {\n type: keyDownArrowDown\n });\n }\n });\n }\n },\n ArrowUp: function ArrowUp(event) {\n var _this3 = this;\n\n event.preventDefault();\n\n if (this.getState().isOpen) {\n var amount = event.shiftKey ? -5 : -1;\n this.moveHighlightedIndex(amount, {\n type: keyDownArrowUp\n });\n } else {\n this.internalSetState({\n isOpen: true,\n type: keyDownArrowUp\n }, function () {\n var itemCount = _this3.getItemCount();\n\n if (itemCount > 0) {\n var _this3$getState = _this3.getState(),\n highlightedIndex = _this3$getState.highlightedIndex;\n\n var nextHighlightedIndex = getNextWrappingIndex(-1, highlightedIndex, itemCount, function (index) {\n return _this3.getItemNodeFromIndex(index);\n });\n\n _this3.setHighlightedIndex(nextHighlightedIndex, {\n type: keyDownArrowUp\n });\n }\n });\n }\n },\n Enter: function Enter(event) {\n if (event.which === 229) {\n return;\n }\n\n var _this$getState2 = this.getState(),\n isOpen = _this$getState2.isOpen,\n highlightedIndex = _this$getState2.highlightedIndex;\n\n if (isOpen && highlightedIndex != null) {\n event.preventDefault();\n var item = this.items[highlightedIndex];\n var itemNode = this.getItemNodeFromIndex(highlightedIndex);\n\n if (item == null || itemNode && itemNode.hasAttribute('disabled')) {\n return;\n }\n\n this.selectHighlightedItem({\n type: keyDownEnter\n });\n }\n },\n Escape: function Escape(event) {\n event.preventDefault();\n this.reset(_extends({\n type: keyDownEscape\n }, !this.state.isOpen && {\n selectedItem: null,\n inputValue: ''\n }));\n }\n };\n _this.buttonKeyDownHandlers = _extends({}, _this.keyDownHandlers, {\n ' ': function _(event) {\n event.preventDefault();\n this.toggleMenu({\n type: keyDownSpaceButton\n });\n }\n });\n _this.inputKeyDownHandlers = _extends({}, _this.keyDownHandlers, {\n Home: function Home(event) {\n var _this4 = this;\n\n event.preventDefault();\n var itemCount = this.getItemCount();\n\n var _this$getState3 = this.getState(),\n isOpen = _this$getState3.isOpen;\n\n if (itemCount <= 0 || !isOpen) {\n return;\n } // get next non-disabled starting downwards from 0 if that's disabled.\n\n\n var newHighlightedIndex = getNextNonDisabledIndex(1, 0, itemCount, function (index) {\n return _this4.getItemNodeFromIndex(index);\n }, false);\n this.setHighlightedIndex(newHighlightedIndex, {\n type: keyDownHome\n });\n },\n End: function End(event) {\n var _this5 = this;\n\n event.preventDefault();\n var itemCount = this.getItemCount();\n\n var _this$getState4 = this.getState(),\n isOpen = _this$getState4.isOpen;\n\n if (itemCount <= 0 || !isOpen) {\n return;\n } // get next non-disabled starting upwards from last index if that's disabled.\n\n\n var newHighlightedIndex = getNextNonDisabledIndex(-1, itemCount - 1, itemCount, function (index) {\n return _this5.getItemNodeFromIndex(index);\n }, false);\n this.setHighlightedIndex(newHighlightedIndex, {\n type: keyDownEnd\n });\n }\n });\n\n _this.getToggleButtonProps = function (_temp3) {\n var _ref3 = _temp3 === void 0 ? {} : _temp3,\n onClick = _ref3.onClick,\n onPress = _ref3.onPress,\n onKeyDown = _ref3.onKeyDown,\n onKeyUp = _ref3.onKeyUp,\n onBlur = _ref3.onBlur,\n rest = _objectWithoutPropertiesLoose(_ref3, [\"onClick\", \"onPress\", \"onKeyDown\", \"onKeyUp\", \"onBlur\"]);\n\n var _this$getState5 = _this.getState(),\n isOpen = _this$getState5.isOpen;\n\n var enabledEventHandlers = {\n onClick: callAllEventHandlers(onClick, _this.buttonHandleClick),\n onKeyDown: callAllEventHandlers(onKeyDown, _this.buttonHandleKeyDown),\n onKeyUp: callAllEventHandlers(onKeyUp, _this.buttonHandleKeyUp),\n onBlur: callAllEventHandlers(onBlur, _this.buttonHandleBlur)\n };\n var eventHandlers = rest.disabled ? {} : enabledEventHandlers;\n return _extends({\n type: 'button',\n role: 'button',\n 'aria-label': isOpen ? 'close menu' : 'open menu',\n 'aria-haspopup': true,\n 'data-toggle': true\n }, eventHandlers, rest);\n };\n\n _this.buttonHandleKeyUp = function (event) {\n // Prevent click event from emitting in Firefox\n event.preventDefault();\n };\n\n _this.buttonHandleKeyDown = function (event) {\n var key = normalizeArrowKey(event);\n\n if (_this.buttonKeyDownHandlers[key]) {\n _this.buttonKeyDownHandlers[key].call(_assertThisInitialized(_this), event);\n }\n };\n\n _this.buttonHandleClick = function (event) {\n event.preventDefault(); // handle odd case for Safari and Firefox which\n // don't give the button the focus properly.\n\n /* istanbul ignore if (can't reasonably test this) */\n\n if ( _this.props.environment.document.activeElement === _this.props.environment.document.body) {\n event.target.focus();\n } // to simplify testing components that use downshift, we'll not wrap this in a setTimeout\n // if the NODE_ENV is test. With the proper build system, this should be dead code eliminated\n // when building for production and should therefore have no impact on production code.\n\n\n if (process.env.NODE_ENV === 'test') {\n _this.toggleMenu({\n type: clickButton\n });\n } else {\n // Ensure that toggle of menu occurs after the potential blur event in iOS\n _this.internalSetTimeout(function () {\n return _this.toggleMenu({\n type: clickButton\n });\n });\n }\n };\n\n _this.buttonHandleBlur = function (event) {\n var blurTarget = event.target; // Save blur target for comparison with activeElement later\n // Need setTimeout, so that when the user presses Tab, the activeElement is the next focused element, not body element\n\n _this.internalSetTimeout(function () {\n if (!_this.isMouseDown && (_this.props.environment.document.activeElement == null || _this.props.environment.document.activeElement.id !== _this.inputId) && _this.props.environment.document.activeElement !== blurTarget // Do nothing if we refocus the same element again (to solve issue in Safari on iOS)\n ) {\n _this.reset({\n type: blurButton\n });\n }\n });\n };\n\n _this.getLabelProps = function (props) {\n return _extends({\n htmlFor: _this.inputId,\n id: _this.labelId\n }, props);\n };\n\n _this.getInputProps = function (_temp4) {\n var _ref4 = _temp4 === void 0 ? {} : _temp4,\n onKeyDown = _ref4.onKeyDown,\n onBlur = _ref4.onBlur,\n onChange = _ref4.onChange,\n onInput = _ref4.onInput,\n onChangeText = _ref4.onChangeText,\n rest = _objectWithoutPropertiesLoose(_ref4, [\"onKeyDown\", \"onBlur\", \"onChange\", \"onInput\", \"onChangeText\"]);\n\n var onChangeKey;\n var eventHandlers = {};\n /* istanbul ignore next (preact) */\n\n onChangeKey = 'onChange';\n\n var _this$getState6 = _this.getState(),\n inputValue = _this$getState6.inputValue,\n isOpen = _this$getState6.isOpen,\n highlightedIndex = _this$getState6.highlightedIndex;\n\n if (!rest.disabled) {\n var _eventHandlers;\n\n eventHandlers = (_eventHandlers = {}, _eventHandlers[onChangeKey] = callAllEventHandlers(onChange, onInput, _this.inputHandleChange), _eventHandlers.onKeyDown = callAllEventHandlers(onKeyDown, _this.inputHandleKeyDown), _eventHandlers.onBlur = callAllEventHandlers(onBlur, _this.inputHandleBlur), _eventHandlers);\n }\n /* istanbul ignore if (react-native) */\n\n\n return _extends({\n 'aria-autocomplete': 'list',\n 'aria-activedescendant': isOpen && typeof highlightedIndex === 'number' && highlightedIndex >= 0 ? _this.getItemId(highlightedIndex) : null,\n 'aria-controls': isOpen ? _this.menuId : null,\n 'aria-labelledby': _this.labelId,\n // https://developer.mozilla.org/en-US/docs/Web/Security/Securing_your_site/Turning_off_form_autocompletion\n // revert back since autocomplete=\"nope\" is ignored on latest Chrome and Opera\n autoComplete: 'off',\n value: inputValue,\n id: _this.inputId\n }, eventHandlers, rest);\n };\n\n _this.inputHandleKeyDown = function (event) {\n var key = normalizeArrowKey(event);\n\n if (key && _this.inputKeyDownHandlers[key]) {\n _this.inputKeyDownHandlers[key].call(_assertThisInitialized(_this), event);\n }\n };\n\n _this.inputHandleChange = function (event) {\n _this.internalSetState({\n type: changeInput,\n isOpen: true,\n inputValue: event.target.value,\n highlightedIndex: _this.props.defaultHighlightedIndex\n });\n };\n\n _this.inputHandleBlur = function () {\n // Need setTimeout, so that when the user presses Tab, the activeElement is the next focused element, not the body element\n _this.internalSetTimeout(function () {\n var downshiftButtonIsActive = _this.props.environment.document && !!_this.props.environment.document.activeElement && !!_this.props.environment.document.activeElement.dataset && _this.props.environment.document.activeElement.dataset.toggle && _this._rootNode && _this._rootNode.contains(_this.props.environment.document.activeElement);\n\n if (!_this.isMouseDown && !downshiftButtonIsActive) {\n _this.reset({\n type: blurInput\n });\n }\n });\n };\n\n _this.menuRef = function (node) {\n _this._menuNode = node;\n };\n\n _this.getMenuProps = function (_temp5, _temp6) {\n var _extends3;\n\n var _ref5 = _temp5 === void 0 ? {} : _temp5,\n _ref5$refKey = _ref5.refKey,\n refKey = _ref5$refKey === void 0 ? 'ref' : _ref5$refKey,\n ref = _ref5.ref,\n props = _objectWithoutPropertiesLoose(_ref5, [\"refKey\", \"ref\"]);\n\n var _ref6 = _temp6 === void 0 ? {} : _temp6,\n _ref6$suppressRefErro = _ref6.suppressRefError,\n suppressRefError = _ref6$suppressRefErro === void 0 ? false : _ref6$suppressRefErro;\n\n _this.getMenuProps.called = true;\n _this.getMenuProps.refKey = refKey;\n _this.getMenuProps.suppressRefError = suppressRefError;\n return _extends((_extends3 = {}, _extends3[refKey] = handleRefs(ref, _this.menuRef), _extends3.role = 'listbox', _extends3['aria-labelledby'] = props && props['aria-label'] ? null : _this.labelId, _extends3.id = _this.menuId, _extends3), props);\n };\n\n _this.getItemProps = function (_temp7) {\n var _enabledEventHandlers;\n\n var _ref7 = _temp7 === void 0 ? {} : _temp7,\n onMouseMove = _ref7.onMouseMove,\n onMouseDown = _ref7.onMouseDown,\n onClick = _ref7.onClick,\n onPress = _ref7.onPress,\n index = _ref7.index,\n _ref7$item = _ref7.item,\n item = _ref7$item === void 0 ? process.env.NODE_ENV === 'production' ?\n /* istanbul ignore next */\n undefined : requiredProp('getItemProps', 'item') : _ref7$item,\n rest = _objectWithoutPropertiesLoose(_ref7, [\"onMouseMove\", \"onMouseDown\", \"onClick\", \"onPress\", \"index\", \"item\"]);\n\n if (index === undefined) {\n _this.items.push(item);\n\n index = _this.items.indexOf(item);\n } else {\n _this.items[index] = item;\n }\n\n var onSelectKey = 'onClick';\n var customClickHandler = onClick;\n var enabledEventHandlers = (_enabledEventHandlers = {\n // onMouseMove is used over onMouseEnter here. onMouseMove\n // is only triggered on actual mouse movement while onMouseEnter\n // can fire on DOM changes, interrupting keyboard navigation\n onMouseMove: callAllEventHandlers(onMouseMove, function () {\n if (index === _this.getState().highlightedIndex) {\n return;\n }\n\n _this.setHighlightedIndex(index, {\n type: itemMouseEnter\n }); // We never want to manually scroll when changing state based\n // on `onMouseMove` because we will be moving the element out\n // from under the user which is currently scrolling/moving the\n // cursor\n\n\n _this.avoidScrolling = true;\n\n _this.internalSetTimeout(function () {\n return _this.avoidScrolling = false;\n }, 250);\n }),\n onMouseDown: callAllEventHandlers(onMouseDown, function (event) {\n // This prevents the activeElement from being changed\n // to the item so it can remain with the current activeElement\n // which is a more common use case.\n event.preventDefault();\n })\n }, _enabledEventHandlers[onSelectKey] = callAllEventHandlers(customClickHandler, function () {\n _this.selectItemAtIndex(index, {\n type: clickItem\n });\n }), _enabledEventHandlers); // Passing down the onMouseDown handler to prevent redirect\n // of the activeElement if clicking on disabled items\n\n var eventHandlers = rest.disabled ? {\n onMouseDown: enabledEventHandlers.onMouseDown\n } : enabledEventHandlers;\n return _extends({\n id: _this.getItemId(index),\n role: 'option',\n 'aria-selected': _this.getState().highlightedIndex === index\n }, eventHandlers, rest);\n };\n\n _this.clearItems = function () {\n _this.items = [];\n };\n\n _this.reset = function (otherStateToSet, cb) {\n if (otherStateToSet === void 0) {\n otherStateToSet = {};\n }\n\n otherStateToSet = pickState(otherStateToSet);\n\n _this.internalSetState(function (_ref8) {\n var selectedItem = _ref8.selectedItem;\n return _extends({\n isOpen: _this.props.defaultIsOpen,\n highlightedIndex: _this.props.defaultHighlightedIndex,\n inputValue: _this.props.itemToString(selectedItem)\n }, otherStateToSet);\n }, cb);\n };\n\n _this.toggleMenu = function (otherStateToSet, cb) {\n if (otherStateToSet === void 0) {\n otherStateToSet = {};\n }\n\n otherStateToSet = pickState(otherStateToSet);\n\n _this.internalSetState(function (_ref9) {\n var isOpen = _ref9.isOpen;\n return _extends({\n isOpen: !isOpen\n }, isOpen && {\n highlightedIndex: _this.props.defaultHighlightedIndex\n }, otherStateToSet);\n }, function () {\n var _this$getState7 = _this.getState(),\n isOpen = _this$getState7.isOpen,\n highlightedIndex = _this$getState7.highlightedIndex;\n\n if (isOpen) {\n if (_this.getItemCount() > 0 && typeof highlightedIndex === 'number') {\n _this.setHighlightedIndex(highlightedIndex, otherStateToSet);\n }\n }\n\n cbToCb(cb)();\n });\n };\n\n _this.openMenu = function (cb) {\n _this.internalSetState({\n isOpen: true\n }, cb);\n };\n\n _this.closeMenu = function (cb) {\n _this.internalSetState({\n isOpen: false\n }, cb);\n };\n\n _this.updateStatus = debounce(function () {\n var state = _this.getState();\n\n var item = _this.items[state.highlightedIndex];\n\n var resultCount = _this.getItemCount();\n\n var status = _this.props.getA11yStatusMessage(_extends({\n itemToString: _this.props.itemToString,\n previousResultCount: _this.previousResultCount,\n resultCount: resultCount,\n highlightedItem: item\n }, state));\n\n _this.previousResultCount = resultCount;\n setStatus(status, _this.props.environment.document);\n }, 200);\n\n // fancy destructuring + defaults + aliases\n // this basically says each value of state should either be set to\n // the initial value or the default value if the initial value is not provided\n var _this$props = _this.props,\n defaultHighlightedIndex = _this$props.defaultHighlightedIndex,\n _this$props$initialHi = _this$props.initialHighlightedIndex,\n _highlightedIndex = _this$props$initialHi === void 0 ? defaultHighlightedIndex : _this$props$initialHi,\n defaultIsOpen = _this$props.defaultIsOpen,\n _this$props$initialIs = _this$props.initialIsOpen,\n _isOpen = _this$props$initialIs === void 0 ? defaultIsOpen : _this$props$initialIs,\n _this$props$initialIn = _this$props.initialInputValue,\n _inputValue = _this$props$initialIn === void 0 ? '' : _this$props$initialIn,\n _this$props$initialSe = _this$props.initialSelectedItem,\n _selectedItem = _this$props$initialSe === void 0 ? null : _this$props$initialSe;\n\n var _state = _this.getState({\n highlightedIndex: _highlightedIndex,\n isOpen: _isOpen,\n inputValue: _inputValue,\n selectedItem: _selectedItem\n });\n\n if (_state.selectedItem != null && _this.props.initialInputValue === undefined) {\n _state.inputValue = _this.props.itemToString(_state.selectedItem);\n }\n\n _this.state = _state;\n return _this;\n }\n\n var _proto = Downshift.prototype;\n\n /**\n * Clear all running timeouts\n */\n _proto.internalClearTimeouts = function internalClearTimeouts() {\n this.timeoutIds.forEach(function (id) {\n clearTimeout(id);\n });\n this.timeoutIds = [];\n }\n /**\n * Gets the state based on internal state or props\n * If a state value is passed via props, then that\n * is the value given, otherwise it's retrieved from\n * stateToMerge\n *\n * @param {Object} stateToMerge defaults to this.state\n * @return {Object} the state\n */\n ;\n\n _proto.getState = function getState$1(stateToMerge) {\n if (stateToMerge === void 0) {\n stateToMerge = this.state;\n }\n\n return getState(stateToMerge, this.props);\n };\n\n _proto.getItemCount = function getItemCount() {\n // things read better this way. They're in priority order:\n // 1. `this.itemCount`\n // 2. `this.props.itemCount`\n // 3. `this.items.length`\n var itemCount = this.items.length;\n\n if (this.itemCount != null) {\n itemCount = this.itemCount;\n } else if (this.props.itemCount !== undefined) {\n itemCount = this.props.itemCount;\n }\n\n return itemCount;\n };\n\n _proto.getItemNodeFromIndex = function getItemNodeFromIndex(index) {\n return this.props.environment.document.getElementById(this.getItemId(index));\n };\n\n _proto.scrollHighlightedItemIntoView = function scrollHighlightedItemIntoView() {\n /* istanbul ignore else (react-native) */\n {\n var node = this.getItemNodeFromIndex(this.getState().highlightedIndex);\n this.props.scrollIntoView(node, this._menuNode);\n }\n };\n\n _proto.moveHighlightedIndex = function moveHighlightedIndex(amount, otherStateToSet) {\n var _this6 = this;\n\n var itemCount = this.getItemCount();\n\n var _this$getState8 = this.getState(),\n highlightedIndex = _this$getState8.highlightedIndex;\n\n if (itemCount > 0) {\n var nextHighlightedIndex = getNextWrappingIndex(amount, highlightedIndex, itemCount, function (index) {\n return _this6.getItemNodeFromIndex(index);\n });\n this.setHighlightedIndex(nextHighlightedIndex, otherStateToSet);\n }\n };\n\n _proto.getStateAndHelpers = function getStateAndHelpers() {\n var _this$getState9 = this.getState(),\n highlightedIndex = _this$getState9.highlightedIndex,\n inputValue = _this$getState9.inputValue,\n selectedItem = _this$getState9.selectedItem,\n isOpen = _this$getState9.isOpen;\n\n var itemToString = this.props.itemToString;\n var id = this.id;\n var getRootProps = this.getRootProps,\n getToggleButtonProps = this.getToggleButtonProps,\n getLabelProps = this.getLabelProps,\n getMenuProps = this.getMenuProps,\n getInputProps = this.getInputProps,\n getItemProps = this.getItemProps,\n openMenu = this.openMenu,\n closeMenu = this.closeMenu,\n toggleMenu = this.toggleMenu,\n selectItem = this.selectItem,\n selectItemAtIndex = this.selectItemAtIndex,\n selectHighlightedItem = this.selectHighlightedItem,\n setHighlightedIndex = this.setHighlightedIndex,\n clearSelection = this.clearSelection,\n clearItems = this.clearItems,\n reset = this.reset,\n setItemCount = this.setItemCount,\n unsetItemCount = this.unsetItemCount,\n setState = this.internalSetState;\n return {\n // prop getters\n getRootProps: getRootProps,\n getToggleButtonProps: getToggleButtonProps,\n getLabelProps: getLabelProps,\n getMenuProps: getMenuProps,\n getInputProps: getInputProps,\n getItemProps: getItemProps,\n // actions\n reset: reset,\n openMenu: openMenu,\n closeMenu: closeMenu,\n toggleMenu: toggleMenu,\n selectItem: selectItem,\n selectItemAtIndex: selectItemAtIndex,\n selectHighlightedItem: selectHighlightedItem,\n setHighlightedIndex: setHighlightedIndex,\n clearSelection: clearSelection,\n clearItems: clearItems,\n setItemCount: setItemCount,\n unsetItemCount: unsetItemCount,\n setState: setState,\n // props\n itemToString: itemToString,\n // derived\n id: id,\n // state\n highlightedIndex: highlightedIndex,\n inputValue: inputValue,\n isOpen: isOpen,\n selectedItem: selectedItem\n };\n } //////////////////////////// ROOT\n ;\n\n _proto.componentDidMount = function componentDidMount() {\n var _this7 = this;\n\n /* istanbul ignore if (react-native) */\n if (process.env.NODE_ENV !== 'production' && !false && this.getMenuProps.called && !this.getMenuProps.suppressRefError) {\n validateGetMenuPropsCalledCorrectly(this._menuNode, this.getMenuProps);\n }\n /* istanbul ignore if (react-native) */\n\n\n {\n // this.isMouseDown helps us track whether the mouse is currently held down.\n // This is useful when the user clicks on an item in the list, but holds the mouse\n // down long enough for the list to disappear (because the blur event fires on the input)\n // this.isMouseDown is used in the blur handler on the input to determine whether the blur event should\n // trigger hiding the menu.\n var onMouseDown = function () {\n _this7.isMouseDown = true;\n };\n\n var onMouseUp = function (event) {\n _this7.isMouseDown = false; // if the target element or the activeElement is within a downshift node\n // then we don't want to reset downshift\n\n var contextWithinDownshift = targetWithinDownshift(event.target, [_this7._rootNode, _this7._menuNode], _this7.props.environment.document);\n\n if (!contextWithinDownshift && _this7.getState().isOpen) {\n _this7.reset({\n type: mouseUp\n }, function () {\n return _this7.props.onOuterClick(_this7.getStateAndHelpers());\n });\n }\n }; // Touching an element in iOS gives focus and hover states, but touching out of\n // the element will remove hover, and persist the focus state, resulting in the\n // blur event not being triggered.\n // this.isTouchMove helps us track whether the user is tapping or swiping on a touch screen.\n // If the user taps outside of Downshift, the component should be reset,\n // but not if the user is swiping\n\n\n var onTouchStart = function () {\n _this7.isTouchMove = false;\n };\n\n var onTouchMove = function () {\n _this7.isTouchMove = true;\n };\n\n var onTouchEnd = function (event) {\n var contextWithinDownshift = targetWithinDownshift(event.target, [_this7._rootNode, _this7._menuNode], _this7.props.environment.document, false);\n\n if (!_this7.isTouchMove && !contextWithinDownshift && _this7.getState().isOpen) {\n _this7.reset({\n type: touchEnd\n }, function () {\n return _this7.props.onOuterClick(_this7.getStateAndHelpers());\n });\n }\n };\n\n var environment = this.props.environment;\n environment.addEventListener('mousedown', onMouseDown);\n environment.addEventListener('mouseup', onMouseUp);\n environment.addEventListener('touchstart', onTouchStart);\n environment.addEventListener('touchmove', onTouchMove);\n environment.addEventListener('touchend', onTouchEnd);\n\n this.cleanup = function () {\n _this7.internalClearTimeouts();\n\n _this7.updateStatus.cancel();\n\n environment.removeEventListener('mousedown', onMouseDown);\n environment.removeEventListener('mouseup', onMouseUp);\n environment.removeEventListener('touchstart', onTouchStart);\n environment.removeEventListener('touchmove', onTouchMove);\n environment.removeEventListener('touchend', onTouchEnd);\n };\n }\n };\n\n _proto.shouldScroll = function shouldScroll(prevState, prevProps) {\n var _ref10 = this.props.highlightedIndex === undefined ? this.getState() : this.props,\n currentHighlightedIndex = _ref10.highlightedIndex;\n\n var _ref11 = prevProps.highlightedIndex === undefined ? prevState : prevProps,\n prevHighlightedIndex = _ref11.highlightedIndex;\n\n var scrollWhenOpen = currentHighlightedIndex && this.getState().isOpen && !prevState.isOpen;\n return scrollWhenOpen || currentHighlightedIndex !== prevHighlightedIndex;\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n if (process.env.NODE_ENV !== 'production') {\n validateControlledUnchanged(this.state, prevProps, this.props);\n /* istanbul ignore if (react-native) */\n\n if ( this.getMenuProps.called && !this.getMenuProps.suppressRefError) {\n validateGetMenuPropsCalledCorrectly(this._menuNode, this.getMenuProps);\n }\n }\n\n if (isControlledProp(this.props, 'selectedItem') && this.props.selectedItemChanged(prevProps.selectedItem, this.props.selectedItem)) {\n this.internalSetState({\n type: controlledPropUpdatedSelectedItem,\n inputValue: this.props.itemToString(this.props.selectedItem)\n });\n }\n\n if (!this.avoidScrolling && this.shouldScroll(prevState, prevProps)) {\n this.scrollHighlightedItemIntoView();\n }\n /* istanbul ignore else (react-native) */\n\n\n this.updateStatus();\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cleanup(); // avoids memory leak\n };\n\n _proto.render = function render() {\n var children = unwrapArray(this.props.children, noop); // because the items are rerendered every time we call the children\n // we clear this out each render and it will be populated again as\n // getItemProps is called.\n\n this.clearItems(); // we reset this so we know whether the user calls getRootProps during\n // this render. If they do then we don't need to do anything,\n // if they don't then we need to clone the element they return and\n // apply the props for them.\n\n this.getRootProps.called = false;\n this.getRootProps.refKey = undefined;\n this.getRootProps.suppressRefError = undefined; // we do something similar for getMenuProps\n\n this.getMenuProps.called = false;\n this.getMenuProps.refKey = undefined;\n this.getMenuProps.suppressRefError = undefined; // we do something similar for getLabelProps\n\n this.getLabelProps.called = false; // and something similar for getInputProps\n\n this.getInputProps.called = false;\n var element = unwrapArray(children(this.getStateAndHelpers()));\n\n if (!element) {\n return null;\n }\n\n if (this.getRootProps.called || this.props.suppressRefError) {\n if (process.env.NODE_ENV !== 'production' && !this.getRootProps.suppressRefError && !this.props.suppressRefError) {\n validateGetRootPropsCalledCorrectly(element, this.getRootProps);\n }\n\n return element;\n } else if (isDOMElement(element)) {\n // they didn't apply the root props, but we can clone\n // this and apply the props ourselves\n return /*#__PURE__*/cloneElement(element, this.getRootProps(getElementProps(element)));\n }\n /* istanbul ignore else */\n\n\n if (process.env.NODE_ENV !== 'production') {\n // they didn't apply the root props, but they need to\n // otherwise we can't query around the autocomplete\n throw new Error('downshift: If you return a non-DOM element, you must apply the getRootProps function');\n }\n /* istanbul ignore next */\n\n\n return undefined;\n };\n\n return Downshift;\n }(Component);\n\n Downshift.defaultProps = {\n defaultHighlightedIndex: null,\n defaultIsOpen: false,\n getA11yStatusMessage: getA11yStatusMessage,\n itemToString: function itemToString(i) {\n if (i == null) {\n return '';\n }\n\n if (process.env.NODE_ENV !== 'production' && isPlainObject(i) && !i.hasOwnProperty('toString')) {\n // eslint-disable-next-line no-console\n console.warn('downshift: An object was passed to the default implementation of `itemToString`. You should probably provide your own `itemToString` implementation. Please refer to the `itemToString` API documentation.', 'The object that was passed:', i);\n }\n\n return String(i);\n },\n onStateChange: noop,\n onInputValueChange: noop,\n onUserAction: noop,\n onChange: noop,\n onSelect: noop,\n onOuterClick: noop,\n selectedItemChanged: function selectedItemChanged(prevItem, item) {\n return prevItem !== item;\n },\n environment: typeof window === 'undefined'\n /* istanbul ignore next (ssr) */\n ? {} : window,\n stateReducer: function stateReducer(state, stateToSet) {\n return stateToSet;\n },\n suppressRefError: false,\n scrollIntoView: scrollIntoView\n };\n Downshift.stateChangeTypes = stateChangeTypes;\n return Downshift;\n}();\n\nprocess.env.NODE_ENV !== \"production\" ? Downshift.propTypes = {\n children: PropTypes.func,\n defaultHighlightedIndex: PropTypes.number,\n defaultIsOpen: PropTypes.bool,\n initialHighlightedIndex: PropTypes.number,\n initialSelectedItem: PropTypes.any,\n initialInputValue: PropTypes.string,\n initialIsOpen: PropTypes.bool,\n getA11yStatusMessage: PropTypes.func,\n itemToString: PropTypes.func,\n onChange: PropTypes.func,\n onSelect: PropTypes.func,\n onStateChange: PropTypes.func,\n onInputValueChange: PropTypes.func,\n onUserAction: PropTypes.func,\n onOuterClick: PropTypes.func,\n selectedItemChanged: PropTypes.func,\n stateReducer: PropTypes.func,\n itemCount: PropTypes.number,\n id: PropTypes.string,\n environment: PropTypes.shape({\n addEventListener: PropTypes.func,\n removeEventListener: PropTypes.func,\n document: PropTypes.shape({\n getElementById: PropTypes.func,\n activeElement: PropTypes.any,\n body: PropTypes.any\n })\n }),\n suppressRefError: PropTypes.bool,\n scrollIntoView: PropTypes.func,\n // things we keep in state for uncontrolled components\n // but can accept as props for controlled components\n\n /* eslint-disable react/no-unused-prop-types */\n selectedItem: PropTypes.any,\n isOpen: PropTypes.bool,\n inputValue: PropTypes.string,\n highlightedIndex: PropTypes.number,\n labelId: PropTypes.string,\n inputId: PropTypes.string,\n menuId: PropTypes.string,\n getItemId: PropTypes.func\n /* eslint-enable react/no-unused-prop-types */\n\n} : void 0;\n\nfunction validateGetMenuPropsCalledCorrectly(node, _ref12) {\n var refKey = _ref12.refKey;\n\n if (!node) {\n // eslint-disable-next-line no-console\n console.error(\"downshift: The ref prop \\\"\" + refKey + \"\\\" from getMenuProps was not applied correctly on your menu element.\");\n }\n}\n\nfunction validateGetRootPropsCalledCorrectly(element, _ref13) {\n var refKey = _ref13.refKey;\n var refKeySpecified = refKey !== 'ref';\n var isComposite = !isDOMElement(element);\n\n if (isComposite && !refKeySpecified && !isForwardRef(element)) {\n // eslint-disable-next-line no-console\n console.error('downshift: You returned a non-DOM element. You must specify a refKey in getRootProps');\n } else if (!isComposite && refKeySpecified) {\n // eslint-disable-next-line no-console\n console.error(\"downshift: You returned a DOM element. You should not specify a refKey in getRootProps. You specified \\\"\" + refKey + \"\\\"\");\n }\n\n if (!isForwardRef(element) && !getElementProps(element)[refKey]) {\n // eslint-disable-next-line no-console\n console.error(\"downshift: You must apply the ref prop \\\"\" + refKey + \"\\\" from getRootProps onto your root element.\");\n }\n}\n\nvar dropdownDefaultStateValues = {\n highlightedIndex: -1,\n isOpen: false,\n selectedItem: null,\n inputValue: ''\n};\n\nfunction callOnChangeProps(action, state, newState) {\n var props = action.props,\n type = action.type;\n var changes = {};\n Object.keys(state).forEach(function (key) {\n invokeOnChangeHandler(key, action, state, newState);\n\n if (newState[key] !== state[key]) {\n changes[key] = newState[key];\n }\n });\n\n if (props.onStateChange && Object.keys(changes).length) {\n props.onStateChange(_extends({\n type: type\n }, changes));\n }\n}\n\nfunction invokeOnChangeHandler(key, action, state, newState) {\n var props = action.props,\n type = action.type;\n var handler = \"on\" + capitalizeString(key) + \"Change\";\n\n if (props[handler] && newState[key] !== undefined && newState[key] !== state[key]) {\n props[handler](_extends({\n type: type\n }, newState));\n }\n}\n/**\n * Default state reducer that returns the changes.\n *\n * @param {Object} s state.\n * @param {Object} a action with changes.\n * @returns {Object} changes.\n */\n\n\nfunction stateReducer(s, a) {\n return a.changes;\n}\n/**\n * Returns a message to be added to aria-live region when item is selected.\n *\n * @param {Object} selectionParameters Parameters required to build the message.\n * @returns {string} The a11y message.\n */\n\n\nfunction getA11ySelectionMessage(selectionParameters) {\n var selectedItem = selectionParameters.selectedItem,\n itemToStringLocal = selectionParameters.itemToString;\n return selectedItem ? itemToStringLocal(selectedItem) + \" has been selected.\" : '';\n}\n/**\n * Debounced call for updating the a11y message.\n */\n\n\nvar updateA11yStatus = debounce(function (getA11yMessage, document) {\n setStatus(getA11yMessage(), document);\n}, 200);\nfunction getElementIds(_ref) {\n var id = _ref.id,\n labelId = _ref.labelId,\n menuId = _ref.menuId,\n getItemId = _ref.getItemId,\n toggleButtonId = _ref.toggleButtonId;\n var uniqueId = id === undefined ? \"downshift-\" + generateId() : id;\n return {\n labelId: labelId || uniqueId + \"-label\",\n menuId: menuId || uniqueId + \"-menu\",\n getItemId: getItemId || function (index) {\n return uniqueId + \"-item-\" + index;\n },\n toggleButtonId: toggleButtonId || uniqueId + \"-toggle-button\"\n };\n}\nfunction getItemIndex(index, item, items) {\n if (index !== undefined) {\n return index;\n }\n\n if (items.length === 0) {\n return -1;\n }\n\n return items.indexOf(item);\n}\n\nfunction itemToString(item) {\n return item ? String(item) : '';\n}\n\nfunction getPropTypesValidator(caller, propTypes) {\n // istanbul ignore next\n return function (options) {\n if (options === void 0) {\n options = {};\n }\n\n Object.keys(propTypes).forEach(function (key) {\n PropTypes.checkPropTypes(propTypes, options, key, caller.name);\n });\n };\n}\nfunction isAcceptedCharacterKey(key) {\n return /^\\S{1}$/.test(key);\n}\nfunction capitalizeString(string) {\n return \"\" + string.slice(0, 1).toUpperCase() + string.slice(1);\n}\nfunction useLatestRef(val) {\n var ref = useRef(val); // technically this is not \"concurrent mode safe\" because we're manipulating\n // the value during render (so it's not idempotent). However, the places this\n // hook is used is to support memoizing callbacks which will be called\n // *during* render, so we need the latest values *during* render.\n // If not for this, then we'd probably want to use useLayoutEffect instead.\n\n ref.current = val;\n return ref;\n}\n/**\n * Computes the controlled state using a the previous state, props,\n * two reducers, one from downshift and an optional one from the user.\n * Also calls the onChange handlers for state values that have changed.\n *\n * @param {Function} reducer Reducer function from downshift.\n * @param {Object} initialState Initial state of the hook.\n * @param {Object} props The hook props.\n * @returns {Array} An array with the state and an action dispatcher.\n */\n\nfunction useEnhancedReducer(reducer, initialState, props) {\n var prevStateRef = useRef();\n var actionRef = useRef();\n var enhancedReducer = useCallback(function (state, action) {\n actionRef.current = action;\n state = getState(state, action.props);\n var changes = reducer(state, action);\n var newState = action.props.stateReducer(state, _extends({}, action, {\n changes: changes\n }));\n return newState;\n }, [reducer]);\n\n var _useReducer = useReducer(enhancedReducer, initialState),\n state = _useReducer[0],\n dispatch = _useReducer[1];\n\n var propsRef = useLatestRef(props);\n var dispatchWithProps = useCallback(function (action) {\n return dispatch(_extends({\n props: propsRef.current\n }, action));\n }, [propsRef]);\n var action = actionRef.current;\n useEffect(function () {\n if (action && prevStateRef.current && prevStateRef.current !== state) {\n callOnChangeProps(action, getState(prevStateRef.current, action.props), state);\n }\n\n prevStateRef.current = state;\n }, [state, props, action]);\n return [state, dispatchWithProps];\n}\n/**\n * Wraps the useEnhancedReducer and applies the controlled prop values before\n * returning the new state.\n *\n * @param {Function} reducer Reducer function from downshift.\n * @param {Object} initialState Initial state of the hook.\n * @param {Object} props The hook props.\n * @returns {Array} An array with the state and an action dispatcher.\n */\n\nfunction useControlledReducer(reducer, initialState, props) {\n var _useEnhancedReducer = useEnhancedReducer(reducer, initialState, props),\n state = _useEnhancedReducer[0],\n dispatch = _useEnhancedReducer[1];\n\n return [getState(state, props), dispatch];\n}\nvar defaultProps = {\n itemToString: itemToString,\n stateReducer: stateReducer,\n getA11ySelectionMessage: getA11ySelectionMessage,\n scrollIntoView: scrollIntoView,\n circularNavigation: false,\n environment: typeof window === 'undefined'\n /* istanbul ignore next (ssr) */\n ? {} : window\n};\nfunction getDefaultValue(props, propKey, defaultStateValues) {\n if (defaultStateValues === void 0) {\n defaultStateValues = dropdownDefaultStateValues;\n }\n\n var defaultPropKey = \"default\" + capitalizeString(propKey);\n\n if (defaultPropKey in props) {\n return props[defaultPropKey];\n }\n\n return defaultStateValues[propKey];\n}\nfunction getInitialValue(props, propKey, defaultStateValues) {\n if (defaultStateValues === void 0) {\n defaultStateValues = dropdownDefaultStateValues;\n }\n\n if (propKey in props) {\n return props[propKey];\n }\n\n var initialPropKey = \"initial\" + capitalizeString(propKey);\n\n if (initialPropKey in props) {\n return props[initialPropKey];\n }\n\n return getDefaultValue(props, propKey, defaultStateValues);\n}\nfunction getInitialState(props) {\n var selectedItem = getInitialValue(props, 'selectedItem');\n var isOpen = getInitialValue(props, 'isOpen');\n var highlightedIndex = getInitialValue(props, 'highlightedIndex');\n var inputValue = getInitialValue(props, 'inputValue');\n return {\n highlightedIndex: highlightedIndex < 0 && selectedItem && isOpen ? props.items.indexOf(selectedItem) : highlightedIndex,\n isOpen: isOpen,\n selectedItem: selectedItem,\n inputValue: inputValue\n };\n}\nfunction getHighlightedIndexOnOpen(props, state, offset, getItemNodeFromIndex) {\n var items = props.items,\n initialHighlightedIndex = props.initialHighlightedIndex,\n defaultHighlightedIndex = props.defaultHighlightedIndex;\n var selectedItem = state.selectedItem,\n highlightedIndex = state.highlightedIndex;\n\n if (items.length === 0) {\n return -1;\n } // initialHighlightedIndex will give value to highlightedIndex on initial state only.\n\n\n if (initialHighlightedIndex !== undefined && highlightedIndex === initialHighlightedIndex) {\n return initialHighlightedIndex;\n }\n\n if (defaultHighlightedIndex !== undefined) {\n return defaultHighlightedIndex;\n }\n\n if (selectedItem) {\n if (offset === 0) {\n return items.indexOf(selectedItem);\n }\n\n return getNextWrappingIndex(offset, items.indexOf(selectedItem), items.length, getItemNodeFromIndex, false);\n }\n\n if (offset === 0) {\n return -1;\n }\n\n return offset < 0 ? items.length - 1 : 0;\n}\n/**\n * Reuse the movement tracking of mouse and touch events.\n *\n * @param {boolean} isOpen Whether the dropdown is open or not.\n * @param {Array} downshiftElementRefs Downshift element refs to track movement (toggleButton, menu etc.)\n * @param {Object} environment Environment where component/hook exists.\n * @param {Function} handleBlur Handler on blur from mouse or touch.\n * @returns {Object} Ref containing whether mouseDown or touchMove event is happening\n */\n\nfunction useMouseAndTouchTracker(isOpen, downshiftElementRefs, environment, handleBlur) {\n var mouseAndTouchTrackersRef = useRef({\n isMouseDown: false,\n isTouchMove: false\n });\n useEffect(function () {\n // The same strategy for checking if a click occurred inside or outside downsift\n // as in downshift.js.\n var onMouseDown = function () {\n mouseAndTouchTrackersRef.current.isMouseDown = true;\n };\n\n var onMouseUp = function (event) {\n mouseAndTouchTrackersRef.current.isMouseDown = false;\n\n if (isOpen && !targetWithinDownshift(event.target, downshiftElementRefs.map(function (ref) {\n return ref.current;\n }), environment.document)) {\n handleBlur();\n }\n };\n\n var onTouchStart = function () {\n mouseAndTouchTrackersRef.current.isTouchMove = false;\n };\n\n var onTouchMove = function () {\n mouseAndTouchTrackersRef.current.isTouchMove = true;\n };\n\n var onTouchEnd = function (event) {\n if (isOpen && !mouseAndTouchTrackersRef.current.isTouchMove && !targetWithinDownshift(event.target, downshiftElementRefs.map(function (ref) {\n return ref.current;\n }), environment.document, false)) {\n handleBlur();\n }\n };\n\n environment.addEventListener('mousedown', onMouseDown);\n environment.addEventListener('mouseup', onMouseUp);\n environment.addEventListener('touchstart', onTouchStart);\n environment.addEventListener('touchmove', onTouchMove);\n environment.addEventListener('touchend', onTouchEnd);\n return function () {\n environment.removeEventListener('mousedown', onMouseDown);\n environment.removeEventListener('mouseup', onMouseUp);\n environment.removeEventListener('touchstart', onTouchStart);\n environment.removeEventListener('touchmove', onTouchMove);\n environment.removeEventListener('touchend', onTouchEnd);\n }; // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isOpen, environment]);\n return mouseAndTouchTrackersRef;\n}\n/**\n * Custom hook that checks if getter props are called correctly.\n *\n * @param {...any} propKeys Getter prop names to be handled.\n * @returns {Function} Setter function called inside getter props to set call information.\n */\n\nfunction useGetterPropsCalledChecker() {\n var isNotProduction = process.env.NODE_ENV !== 'production';\n var isInitialMountRef = useRef(true);\n\n for (var _len = arguments.length, propKeys = new Array(_len), _key = 0; _key < _len; _key++) {\n propKeys[_key] = arguments[_key];\n }\n\n var getterPropsCalledRef = useRef(propKeys.reduce(function (acc, propKey) {\n acc[propKey] = {};\n return acc;\n }, {}));\n useEffect(function () {\n if (!isNotProduction) {\n return;\n }\n\n Object.keys(getterPropsCalledRef.current).forEach(function (propKey) {\n var propCallInfo = getterPropsCalledRef.current[propKey];\n\n if (isInitialMountRef.current) {\n if (!Object.keys(propCallInfo).length) {\n // eslint-disable-next-line no-console\n console.error(\"downshift: You forgot to call the \" + propKey + \" getter function on your component / element.\");\n return;\n }\n }\n\n var suppressRefError = propCallInfo.suppressRefError,\n refKey = propCallInfo.refKey,\n elementRef = propCallInfo.elementRef;\n\n if ((!elementRef || !elementRef.current) && !suppressRefError) {\n // eslint-disable-next-line no-console\n console.error(\"downshift: The ref prop \\\"\" + refKey + \"\\\" from \" + propKey + \" was not applied correctly on your element.\");\n }\n });\n isInitialMountRef.current = false;\n });\n var setGetterPropCallInfo = useCallback(function (propKey, suppressRefError, refKey, elementRef) {\n if (process.env.NODE_ENV !== 'production') {\n getterPropsCalledRef.current[propKey] = {\n suppressRefError: suppressRefError,\n refKey: refKey,\n elementRef: elementRef\n };\n }\n }, []);\n return setGetterPropCallInfo;\n}\nfunction useA11yMessageSetter(getA11yMessage, dependencyArray, _ref2) {\n var isInitialMount = _ref2.isInitialMount,\n previousResultCount = _ref2.previousResultCount,\n highlightedIndex = _ref2.highlightedIndex,\n items = _ref2.items,\n environment = _ref2.environment,\n rest = _objectWithoutPropertiesLoose(_ref2, [\"isInitialMount\", \"previousResultCount\", \"highlightedIndex\", \"items\", \"environment\"]);\n\n // Sets a11y status message on changes in state.\n useEffect(function () {\n if (isInitialMount) {\n return;\n }\n\n updateA11yStatus(function () {\n return getA11yMessage(_extends({\n highlightedIndex: highlightedIndex,\n highlightedItem: items[highlightedIndex],\n resultCount: items.length,\n previousResultCount: previousResultCount\n }, rest));\n }, environment.document); // eslint-disable-next-line react-hooks/exhaustive-deps\n }, dependencyArray);\n}\nfunction useScrollIntoView(_ref3) {\n var highlightedIndex = _ref3.highlightedIndex,\n isOpen = _ref3.isOpen,\n itemRefs = _ref3.itemRefs,\n getItemNodeFromIndex = _ref3.getItemNodeFromIndex,\n menuElement = _ref3.menuElement,\n scrollIntoViewProp = _ref3.scrollIntoView;\n // used not to scroll on highlight by mouse.\n var shouldScrollRef = useRef(true); // Scroll on highlighted item if change comes from keyboard.\n\n useEffect(function () {\n if (highlightedIndex < 0 || !isOpen || !Object.keys(itemRefs.current).length) {\n return;\n }\n\n if (shouldScrollRef.current === false) {\n shouldScrollRef.current = true;\n } else {\n scrollIntoViewProp(getItemNodeFromIndex(highlightedIndex), menuElement);\n } // eslint-disable-next-line react-hooks/exhaustive-deps\n\n }, [highlightedIndex]);\n return shouldScrollRef;\n}\nfunction useControlPropsValidator(_ref4) {\n var isInitialMount = _ref4.isInitialMount,\n props = _ref4.props,\n state = _ref4.state;\n // used for checking when props are moving from controlled to uncontrolled.\n var prevPropsRef = useRef(props);\n useEffect(function () {\n if (isInitialMount) {\n return;\n }\n\n validateControlledUnchanged(state, prevPropsRef.current, props);\n prevPropsRef.current = props;\n }, [state, props, isInitialMount]);\n}\n\nfunction getItemIndexByCharacterKey(keysSoFar, highlightedIndex, items, itemToStringParam, getItemNodeFromIndex) {\n var lowerCasedItemStrings = items.map(function (item) {\n return itemToStringParam(item).toLowerCase();\n });\n var lowerCasedKeysSoFar = keysSoFar.toLowerCase();\n\n var isValid = function (itemString, index) {\n var element = getItemNodeFromIndex(index);\n return itemString.startsWith(lowerCasedKeysSoFar) && !(element && element.hasAttribute('disabled'));\n };\n\n for (var index = highlightedIndex + 1; index < lowerCasedItemStrings.length; index++) {\n var itemString = lowerCasedItemStrings[index];\n\n if (isValid(itemString, index)) {\n return index;\n }\n }\n\n for (var _index = 0; _index < highlightedIndex; _index++) {\n var _itemString = lowerCasedItemStrings[_index];\n\n if (isValid(_itemString, _index)) {\n return _index;\n }\n }\n\n return highlightedIndex;\n}\n\nvar propTypes = {\n items: PropTypes.array.isRequired,\n itemToString: PropTypes.func,\n getA11yStatusMessage: PropTypes.func,\n getA11ySelectionMessage: PropTypes.func,\n circularNavigation: PropTypes.bool,\n highlightedIndex: PropTypes.number,\n defaultHighlightedIndex: PropTypes.number,\n initialHighlightedIndex: PropTypes.number,\n isOpen: PropTypes.bool,\n defaultIsOpen: PropTypes.bool,\n initialIsOpen: PropTypes.bool,\n selectedItem: PropTypes.any,\n initialSelectedItem: PropTypes.any,\n defaultSelectedItem: PropTypes.any,\n id: PropTypes.string,\n labelId: PropTypes.string,\n menuId: PropTypes.string,\n getItemId: PropTypes.func,\n toggleButtonId: PropTypes.string,\n stateReducer: PropTypes.func,\n onSelectedItemChange: PropTypes.func,\n onHighlightedIndexChange: PropTypes.func,\n onStateChange: PropTypes.func,\n onIsOpenChange: PropTypes.func,\n environment: PropTypes.shape({\n addEventListener: PropTypes.func,\n removeEventListener: PropTypes.func,\n document: PropTypes.shape({\n getElementById: PropTypes.func,\n activeElement: PropTypes.any,\n body: PropTypes.any\n })\n })\n};\n/**\n * Default implementation for status message. Only added when menu is open.\n * Will specift if there are results in the list, and if so, how many,\n * and what keys are relevant.\n *\n * @param {Object} param the downshift state and other relevant properties\n * @return {String} the a11y status message\n */\n\nfunction getA11yStatusMessage$1(_ref) {\n var isOpen = _ref.isOpen,\n resultCount = _ref.resultCount,\n previousResultCount = _ref.previousResultCount;\n\n if (!isOpen) {\n return '';\n }\n\n if (!resultCount) {\n return 'No results are available.';\n }\n\n if (resultCount !== previousResultCount) {\n return resultCount + \" result\" + (resultCount === 1 ? ' is' : 's are') + \" available, use up and down arrow keys to navigate. Press Enter or Space Bar keys to select.\";\n }\n\n return '';\n}\n\nvar defaultProps$1 = _extends({}, defaultProps, {\n getA11yStatusMessage: getA11yStatusMessage$1\n});\n\nvar MenuKeyDownArrowDown = process.env.NODE_ENV !== \"production\" ? '__menu_keydown_arrow_down__' : 0;\nvar MenuKeyDownArrowUp = process.env.NODE_ENV !== \"production\" ? '__menu_keydown_arrow_up__' : 1;\nvar MenuKeyDownEscape = process.env.NODE_ENV !== \"production\" ? '__menu_keydown_escape__' : 2;\nvar MenuKeyDownHome = process.env.NODE_ENV !== \"production\" ? '__menu_keydown_home__' : 3;\nvar MenuKeyDownEnd = process.env.NODE_ENV !== \"production\" ? '__menu_keydown_end__' : 4;\nvar MenuKeyDownEnter = process.env.NODE_ENV !== \"production\" ? '__menu_keydown_enter__' : 5;\nvar MenuKeyDownSpaceButton = process.env.NODE_ENV !== \"production\" ? '__menu_keydown_space_button__' : 6;\nvar MenuKeyDownCharacter = process.env.NODE_ENV !== \"production\" ? '__menu_keydown_character__' : 7;\nvar MenuBlur = process.env.NODE_ENV !== \"production\" ? '__menu_blur__' : 8;\nvar MenuMouseLeave = process.env.NODE_ENV !== \"production\" ? '__menu_mouse_leave__' : 9;\nvar ItemMouseMove = process.env.NODE_ENV !== \"production\" ? '__item_mouse_move__' : 10;\nvar ItemClick = process.env.NODE_ENV !== \"production\" ? '__item_click__' : 11;\nvar ToggleButtonClick = process.env.NODE_ENV !== \"production\" ? '__togglebutton_click__' : 12;\nvar ToggleButtonKeyDownArrowDown = process.env.NODE_ENV !== \"production\" ? '__togglebutton_keydown_arrow_down__' : 13;\nvar ToggleButtonKeyDownArrowUp = process.env.NODE_ENV !== \"production\" ? '__togglebutton_keydown_arrow_up__' : 14;\nvar ToggleButtonKeyDownCharacter = process.env.NODE_ENV !== \"production\" ? '__togglebutton_keydown_character__' : 15;\nvar FunctionToggleMenu = process.env.NODE_ENV !== \"production\" ? '__function_toggle_menu__' : 16;\nvar FunctionOpenMenu = process.env.NODE_ENV !== \"production\" ? '__function_open_menu__' : 17;\nvar FunctionCloseMenu = process.env.NODE_ENV !== \"production\" ? '__function_close_menu__' : 18;\nvar FunctionSetHighlightedIndex = process.env.NODE_ENV !== \"production\" ? '__function_set_highlighted_index__' : 19;\nvar FunctionSelectItem = process.env.NODE_ENV !== \"production\" ? '__function_select_item__' : 20;\nvar FunctionSetInputValue = process.env.NODE_ENV !== \"production\" ? '__function_set_input_value__' : 21;\nvar FunctionReset = process.env.NODE_ENV !== \"production\" ? '__function_reset__' : 22;\n\nvar stateChangeTypes$1 = /*#__PURE__*/Object.freeze({\n __proto__: null,\n MenuKeyDownArrowDown: MenuKeyDownArrowDown,\n MenuKeyDownArrowUp: MenuKeyDownArrowUp,\n MenuKeyDownEscape: MenuKeyDownEscape,\n MenuKeyDownHome: MenuKeyDownHome,\n MenuKeyDownEnd: MenuKeyDownEnd,\n MenuKeyDownEnter: MenuKeyDownEnter,\n MenuKeyDownSpaceButton: MenuKeyDownSpaceButton,\n MenuKeyDownCharacter: MenuKeyDownCharacter,\n MenuBlur: MenuBlur,\n MenuMouseLeave: MenuMouseLeave,\n ItemMouseMove: ItemMouseMove,\n ItemClick: ItemClick,\n ToggleButtonClick: ToggleButtonClick,\n ToggleButtonKeyDownArrowDown: ToggleButtonKeyDownArrowDown,\n ToggleButtonKeyDownArrowUp: ToggleButtonKeyDownArrowUp,\n ToggleButtonKeyDownCharacter: ToggleButtonKeyDownCharacter,\n FunctionToggleMenu: FunctionToggleMenu,\n FunctionOpenMenu: FunctionOpenMenu,\n FunctionCloseMenu: FunctionCloseMenu,\n FunctionSetHighlightedIndex: FunctionSetHighlightedIndex,\n FunctionSelectItem: FunctionSelectItem,\n FunctionSetInputValue: FunctionSetInputValue,\n FunctionReset: FunctionReset\n});\n\n/* eslint-disable complexity */\n\nfunction downshiftSelectReducer(state, action) {\n var type = action.type,\n props = action.props,\n shiftKey = action.shiftKey;\n var changes;\n\n switch (type) {\n case ItemMouseMove:\n changes = {\n highlightedIndex: action.index\n };\n break;\n\n case ItemClick:\n changes = {\n isOpen: getDefaultValue(props, 'isOpen'),\n highlightedIndex: getDefaultValue(props, 'highlightedIndex'),\n selectedItem: props.items[action.index]\n };\n break;\n\n case ToggleButtonKeyDownCharacter:\n {\n var lowercasedKey = action.key;\n var inputValue = \"\" + state.inputValue + lowercasedKey;\n var itemIndex = getItemIndexByCharacterKey(inputValue, state.selectedItem ? props.items.indexOf(state.selectedItem) : -1, props.items, props.itemToString, action.getItemNodeFromIndex);\n changes = _extends({\n inputValue: inputValue\n }, itemIndex >= 0 && {\n selectedItem: props.items[itemIndex]\n });\n }\n break;\n\n case ToggleButtonKeyDownArrowDown:\n changes = {\n highlightedIndex: getHighlightedIndexOnOpen(props, state, 1, action.getItemNodeFromIndex),\n isOpen: true\n };\n break;\n\n case ToggleButtonKeyDownArrowUp:\n changes = {\n highlightedIndex: getHighlightedIndexOnOpen(props, state, -1, action.getItemNodeFromIndex),\n isOpen: true\n };\n break;\n\n case MenuKeyDownEnter:\n case MenuKeyDownSpaceButton:\n changes = _extends({\n isOpen: getDefaultValue(props, 'isOpen'),\n highlightedIndex: getDefaultValue(props, 'highlightedIndex')\n }, state.highlightedIndex >= 0 && {\n selectedItem: props.items[state.highlightedIndex]\n });\n break;\n\n case MenuKeyDownHome:\n changes = {\n highlightedIndex: getNextNonDisabledIndex(1, 0, props.items.length, action.getItemNodeFromIndex, false)\n };\n break;\n\n case MenuKeyDownEnd:\n changes = {\n highlightedIndex: getNextNonDisabledIndex(-1, props.items.length - 1, props.items.length, action.getItemNodeFromIndex, false)\n };\n break;\n\n case MenuKeyDownEscape:\n changes = {\n isOpen: false,\n highlightedIndex: -1\n };\n break;\n\n case MenuBlur:\n changes = {\n isOpen: false,\n highlightedIndex: -1\n };\n break;\n\n case MenuKeyDownCharacter:\n {\n var _lowercasedKey = action.key;\n\n var _inputValue = \"\" + state.inputValue + _lowercasedKey;\n\n var highlightedIndex = getItemIndexByCharacterKey(_inputValue, state.highlightedIndex, props.items, props.itemToString, action.getItemNodeFromIndex);\n changes = _extends({\n inputValue: _inputValue\n }, highlightedIndex >= 0 && {\n highlightedIndex: highlightedIndex\n });\n }\n break;\n\n case MenuKeyDownArrowDown:\n changes = {\n highlightedIndex: getNextWrappingIndex(shiftKey ? 5 : 1, state.highlightedIndex, props.items.length, action.getItemNodeFromIndex, props.circularNavigation)\n };\n break;\n\n case MenuKeyDownArrowUp:\n changes = {\n highlightedIndex: getNextWrappingIndex(shiftKey ? -5 : -1, state.highlightedIndex, props.items.length, action.getItemNodeFromIndex, props.circularNavigation)\n };\n break;\n\n case MenuMouseLeave:\n changes = {\n highlightedIndex: -1\n };\n break;\n\n case ToggleButtonClick:\n case FunctionToggleMenu:\n changes = {\n isOpen: !state.isOpen,\n highlightedIndex: state.isOpen ? -1 : getHighlightedIndexOnOpen(props, state, 0)\n };\n break;\n\n case FunctionOpenMenu:\n changes = {\n isOpen: true,\n highlightedIndex: getHighlightedIndexOnOpen(props, state, 0)\n };\n break;\n\n case FunctionCloseMenu:\n changes = {\n isOpen: false\n };\n break;\n\n case FunctionSetHighlightedIndex:\n changes = {\n highlightedIndex: action.highlightedIndex\n };\n break;\n\n case FunctionSelectItem:\n changes = {\n selectedItem: action.selectedItem\n };\n break;\n\n case FunctionSetInputValue:\n changes = {\n inputValue: action.inputValue\n };\n break;\n\n case FunctionReset:\n changes = {\n highlightedIndex: getDefaultValue(props, 'highlightedIndex'),\n isOpen: getDefaultValue(props, 'isOpen'),\n selectedItem: getDefaultValue(props, 'selectedItem'),\n inputValue: getDefaultValue(props, 'inputValue')\n };\n break;\n\n default:\n throw new Error('Reducer called without proper action type.');\n }\n\n return _extends({}, state, changes);\n}\n/* eslint-enable complexity */\n\nvar validatePropTypes = process.env.NODE_ENV === 'production' ?\n/* istanbul ignore next */\nnull : getPropTypesValidator(useSelect, propTypes);\nuseSelect.stateChangeTypes = stateChangeTypes$1;\n\nfunction useSelect(userProps) {\n if (userProps === void 0) {\n userProps = {};\n }\n\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== 'production') {\n validatePropTypes(userProps);\n } // Props defaults and destructuring.\n\n\n var props = _extends({}, defaultProps$1, userProps);\n\n var items = props.items,\n scrollIntoView = props.scrollIntoView,\n environment = props.environment,\n initialIsOpen = props.initialIsOpen,\n defaultIsOpen = props.defaultIsOpen,\n itemToString = props.itemToString,\n getA11ySelectionMessage = props.getA11ySelectionMessage,\n getA11yStatusMessage = props.getA11yStatusMessage; // Initial state depending on controlled props.\n\n var initialState = getInitialState(props);\n\n var _useControlledReducer = useControlledReducer(downshiftSelectReducer, initialState, props),\n state = _useControlledReducer[0],\n dispatch = _useControlledReducer[1];\n\n var isOpen = state.isOpen,\n highlightedIndex = state.highlightedIndex,\n selectedItem = state.selectedItem,\n inputValue = state.inputValue; // Element efs.\n\n var toggleButtonRef = useRef(null);\n var menuRef = useRef(null);\n var itemRefs = useRef();\n itemRefs.current = {}; // used not to trigger menu blur action in some scenarios.\n\n var shouldBlurRef = useRef(true); // used to keep the inputValue clearTimeout object between renders.\n\n var clearTimeoutRef = useRef(null); // prevent id re-generation between renders.\n\n var elementIdsRef = useRef(getElementIds(props)); // used to keep track of how many items we had on previous cycle.\n\n var previousResultCountRef = useRef();\n var isInitialMountRef = useRef(true); // utility callback to get item element.\n\n var latest = useLatestRef({\n state: state,\n props: props\n }); // Some utils.\n\n var getItemNodeFromIndex = function (index) {\n return itemRefs.current[elementIdsRef.current.getItemId(index)];\n }; // Effects.\n // Sets a11y status message on changes in state.\n\n\n useA11yMessageSetter(getA11yStatusMessage, [isOpen, highlightedIndex, inputValue, items], _extends({\n isInitialMount: isInitialMountRef.current,\n previousResultCount: previousResultCountRef.current,\n items: items,\n environment: environment,\n itemToString: itemToString\n }, state)); // Sets a11y status message on changes in selectedItem.\n\n useA11yMessageSetter(getA11ySelectionMessage, [selectedItem], _extends({\n isInitialMount: isInitialMountRef.current,\n previousResultCount: previousResultCountRef.current,\n items: items,\n environment: environment,\n itemToString: itemToString\n }, state)); // Scroll on highlighted item if change comes from keyboard.\n\n var shouldScrollRef = useScrollIntoView({\n menuElement: menuRef.current,\n highlightedIndex: highlightedIndex,\n isOpen: isOpen,\n itemRefs: itemRefs,\n scrollIntoView: scrollIntoView,\n getItemNodeFromIndex: getItemNodeFromIndex\n }); // Sets cleanup for the keysSoFar after 500ms.\n\n useEffect(function () {\n // init the clean function here as we need access to dispatch.\n if (isInitialMountRef.current) {\n clearTimeoutRef.current = debounce(function (outerDispatch) {\n outerDispatch({\n type: FunctionSetInputValue,\n inputValue: ''\n });\n }, 500);\n }\n\n if (!inputValue) {\n return;\n }\n\n clearTimeoutRef.current(dispatch);\n }, [dispatch, inputValue]);\n useControlPropsValidator({\n isInitialMount: isInitialMountRef.current,\n props: props,\n state: state\n });\n /* Controls the focus on the menu or the toggle button. */\n\n useEffect(function () {\n // Don't focus menu on first render.\n if (isInitialMountRef.current) {\n // Unless it was initialised as open.\n if ((initialIsOpen || defaultIsOpen || isOpen) && menuRef.current) {\n menuRef.current.focus();\n }\n\n return;\n } // Focus menu on open.\n\n\n if (isOpen) {\n // istanbul ignore else\n if (menuRef.current) {\n menuRef.current.focus();\n }\n\n return;\n } // Focus toggleButton on close, but not if it was closed with (Shift+)Tab.\n\n\n if (environment.document.activeElement === menuRef.current) {\n // istanbul ignore else\n if (toggleButtonRef.current) {\n shouldBlurRef.current = false;\n toggleButtonRef.current.focus();\n }\n } // eslint-disable-next-line react-hooks/exhaustive-deps\n\n }, [isOpen]);\n useEffect(function () {\n if (isInitialMountRef.current) {\n return;\n }\n\n previousResultCountRef.current = items.length;\n }); // Add mouse/touch events to document.\n\n var mouseAndTouchTrackersRef = useMouseAndTouchTracker(isOpen, [menuRef, toggleButtonRef], environment, function () {\n dispatch({\n type: MenuBlur\n });\n });\n var setGetterPropCallInfo = useGetterPropsCalledChecker('getMenuProps', 'getToggleButtonProps'); // Make initial ref false.\n\n useEffect(function () {\n isInitialMountRef.current = false;\n }, []); // Event handler functions.\n\n var toggleButtonKeyDownHandlers = useMemo(function () {\n return {\n ArrowDown: function ArrowDown(event) {\n event.preventDefault();\n dispatch({\n type: ToggleButtonKeyDownArrowDown,\n getItemNodeFromIndex: getItemNodeFromIndex,\n shiftKey: event.shiftKey\n });\n },\n ArrowUp: function ArrowUp(event) {\n event.preventDefault();\n dispatch({\n type: ToggleButtonKeyDownArrowUp,\n getItemNodeFromIndex: getItemNodeFromIndex,\n shiftKey: event.shiftKey\n });\n }\n };\n }, [dispatch]);\n var menuKeyDownHandlers = useMemo(function () {\n return {\n ArrowDown: function ArrowDown(event) {\n event.preventDefault();\n dispatch({\n type: MenuKeyDownArrowDown,\n getItemNodeFromIndex: getItemNodeFromIndex,\n shiftKey: event.shiftKey\n });\n },\n ArrowUp: function ArrowUp(event) {\n event.preventDefault();\n dispatch({\n type: MenuKeyDownArrowUp,\n getItemNodeFromIndex: getItemNodeFromIndex,\n shiftKey: event.shiftKey\n });\n },\n Home: function Home(event) {\n event.preventDefault();\n dispatch({\n type: MenuKeyDownHome,\n getItemNodeFromIndex: getItemNodeFromIndex\n });\n },\n End: function End(event) {\n event.preventDefault();\n dispatch({\n type: MenuKeyDownEnd,\n getItemNodeFromIndex: getItemNodeFromIndex\n });\n },\n Escape: function Escape() {\n dispatch({\n type: MenuKeyDownEscape\n });\n },\n Enter: function Enter(event) {\n event.preventDefault();\n dispatch({\n type: MenuKeyDownEnter\n });\n },\n ' ': function _(event) {\n event.preventDefault();\n dispatch({\n type: MenuKeyDownSpaceButton\n });\n }\n };\n }, [dispatch]); // Action functions.\n\n var toggleMenu = useCallback(function () {\n dispatch({\n type: FunctionToggleMenu\n });\n }, [dispatch]);\n var closeMenu = useCallback(function () {\n dispatch({\n type: FunctionCloseMenu\n });\n }, [dispatch]);\n var openMenu = useCallback(function () {\n dispatch({\n type: FunctionOpenMenu\n });\n }, [dispatch]);\n var setHighlightedIndex = useCallback(function (newHighlightedIndex) {\n dispatch({\n type: FunctionSetHighlightedIndex,\n highlightedIndex: newHighlightedIndex\n });\n }, [dispatch]);\n var selectItem = useCallback(function (newSelectedItem) {\n dispatch({\n type: FunctionSelectItem,\n selectedItem: newSelectedItem\n });\n }, [dispatch]);\n var reset = useCallback(function () {\n dispatch({\n type: FunctionReset\n });\n }, [dispatch]);\n var setInputValue = useCallback(function (newInputValue) {\n dispatch({\n type: FunctionSetInputValue,\n inputValue: newInputValue\n });\n }, [dispatch]); // Getter functions.\n\n var getLabelProps = useCallback(function (labelProps) {\n return _extends({\n id: elementIdsRef.current.labelId,\n htmlFor: elementIdsRef.current.toggleButtonId\n }, labelProps);\n }, []);\n var getMenuProps = useCallback(function (_temp, _temp2) {\n var _extends2;\n\n var _ref = _temp === void 0 ? {} : _temp,\n onMouseLeave = _ref.onMouseLeave,\n _ref$refKey = _ref.refKey,\n refKey = _ref$refKey === void 0 ? 'ref' : _ref$refKey,\n onKeyDown = _ref.onKeyDown,\n onBlur = _ref.onBlur,\n ref = _ref.ref,\n rest = _objectWithoutPropertiesLoose(_ref, [\"onMouseLeave\", \"refKey\", \"onKeyDown\", \"onBlur\", \"ref\"]);\n\n var _ref2 = _temp2 === void 0 ? {} : _temp2,\n _ref2$suppressRefErro = _ref2.suppressRefError,\n suppressRefError = _ref2$suppressRefErro === void 0 ? false : _ref2$suppressRefErro;\n\n var latestState = latest.current.state;\n setGetterPropCallInfo('getMenuProps', suppressRefError, refKey, menuRef);\n return _extends((_extends2 = {}, _extends2[refKey] = handleRefs(ref, function (menuNode) {\n menuRef.current = menuNode;\n }), _extends2.id = elementIdsRef.current.menuId, _extends2.role = 'listbox', _extends2['aria-labelledby'] = elementIdsRef.current.labelId, _extends2.tabIndex = -1, _extends2), latestState.isOpen && latestState.highlightedIndex > -1 && {\n 'aria-activedescendant': elementIdsRef.current.getItemId(latestState.highlightedIndex)\n }, {\n onMouseLeave: callAllEventHandlers(onMouseLeave, function menuHandleMouseLeave() {\n dispatch({\n type: MenuMouseLeave\n });\n }),\n onKeyDown: callAllEventHandlers(onKeyDown, function menuHandleKeyDown(event) {\n var key = normalizeArrowKey(event);\n\n if (key && menuKeyDownHandlers[key]) {\n menuKeyDownHandlers[key](event);\n } else if (isAcceptedCharacterKey(key)) {\n dispatch({\n type: MenuKeyDownCharacter,\n key: key,\n getItemNodeFromIndex: getItemNodeFromIndex\n });\n }\n }),\n onBlur: callAllEventHandlers(onBlur, function menuHandleBlur() {\n // if the blur was a result of selection, we don't trigger this action.\n if (shouldBlurRef.current === false) {\n shouldBlurRef.current = true;\n return;\n }\n\n var shouldBlur = !mouseAndTouchTrackersRef.current.isMouseDown;\n /* istanbul ignore else */\n\n if (shouldBlur) {\n dispatch({\n type: MenuBlur\n });\n }\n })\n }, rest);\n }, [dispatch, latest, menuKeyDownHandlers, mouseAndTouchTrackersRef, setGetterPropCallInfo]);\n var getToggleButtonProps = useCallback(function (_temp3, _temp4) {\n var _extends3;\n\n var _ref3 = _temp3 === void 0 ? {} : _temp3,\n onClick = _ref3.onClick,\n onKeyDown = _ref3.onKeyDown,\n _ref3$refKey = _ref3.refKey,\n refKey = _ref3$refKey === void 0 ? 'ref' : _ref3$refKey,\n ref = _ref3.ref,\n rest = _objectWithoutPropertiesLoose(_ref3, [\"onClick\", \"onKeyDown\", \"refKey\", \"ref\"]);\n\n var _ref4 = _temp4 === void 0 ? {} : _temp4,\n _ref4$suppressRefErro = _ref4.suppressRefError,\n suppressRefError = _ref4$suppressRefErro === void 0 ? false : _ref4$suppressRefErro;\n\n var toggleButtonHandleClick = function () {\n dispatch({\n type: ToggleButtonClick\n });\n };\n\n var toggleButtonHandleKeyDown = function (event) {\n var key = normalizeArrowKey(event);\n\n if (key && toggleButtonKeyDownHandlers[key]) {\n toggleButtonKeyDownHandlers[key](event);\n } else if (isAcceptedCharacterKey(key)) {\n dispatch({\n type: ToggleButtonKeyDownCharacter,\n key: key,\n getItemNodeFromIndex: getItemNodeFromIndex\n });\n }\n };\n\n var toggleProps = _extends((_extends3 = {}, _extends3[refKey] = handleRefs(ref, function (toggleButtonNode) {\n toggleButtonRef.current = toggleButtonNode;\n }), _extends3.id = elementIdsRef.current.toggleButtonId, _extends3['aria-haspopup'] = 'listbox', _extends3['aria-expanded'] = latest.current.state.isOpen, _extends3['aria-labelledby'] = elementIdsRef.current.labelId + \" \" + elementIdsRef.current.toggleButtonId, _extends3), rest);\n\n if (!rest.disabled) {\n toggleProps.onClick = callAllEventHandlers(onClick, toggleButtonHandleClick);\n toggleProps.onKeyDown = callAllEventHandlers(onKeyDown, toggleButtonHandleKeyDown);\n }\n\n setGetterPropCallInfo('getToggleButtonProps', suppressRefError, refKey, toggleButtonRef);\n return toggleProps;\n }, [dispatch, latest, toggleButtonKeyDownHandlers, setGetterPropCallInfo]);\n var getItemProps = useCallback(function (_temp5) {\n var _extends4;\n\n var _ref5 = _temp5 === void 0 ? {} : _temp5,\n item = _ref5.item,\n index = _ref5.index,\n onMouseMove = _ref5.onMouseMove,\n onClick = _ref5.onClick,\n _ref5$refKey = _ref5.refKey,\n refKey = _ref5$refKey === void 0 ? 'ref' : _ref5$refKey,\n ref = _ref5.ref,\n rest = _objectWithoutPropertiesLoose(_ref5, [\"item\", \"index\", \"onMouseMove\", \"onClick\", \"refKey\", \"ref\"]);\n\n var _latest$current = latest.current,\n latestState = _latest$current.state,\n latestProps = _latest$current.props;\n\n var itemHandleMouseMove = function () {\n if (index === latestState.highlightedIndex) {\n return;\n }\n\n shouldScrollRef.current = false;\n dispatch({\n type: ItemMouseMove,\n index: index\n });\n };\n\n var itemHandleClick = function () {\n dispatch({\n type: ItemClick,\n index: index\n });\n };\n\n var itemIndex = getItemIndex(index, item, latestProps.items);\n\n if (itemIndex < 0) {\n throw new Error('Pass either item or item index in getItemProps!');\n }\n\n var itemProps = _extends((_extends4 = {\n role: 'option',\n 'aria-selected': \"\" + (itemIndex === latestState.highlightedIndex),\n id: elementIdsRef.current.getItemId(itemIndex)\n }, _extends4[refKey] = handleRefs(ref, function (itemNode) {\n if (itemNode) {\n itemRefs.current[elementIdsRef.current.getItemId(itemIndex)] = itemNode;\n }\n }), _extends4), rest);\n\n if (!rest.disabled) {\n itemProps.onMouseMove = callAllEventHandlers(onMouseMove, itemHandleMouseMove);\n itemProps.onClick = callAllEventHandlers(onClick, itemHandleClick);\n }\n\n return itemProps;\n }, [dispatch, latest, shouldScrollRef]);\n return {\n // prop getters.\n getToggleButtonProps: getToggleButtonProps,\n getLabelProps: getLabelProps,\n getMenuProps: getMenuProps,\n getItemProps: getItemProps,\n // actions.\n toggleMenu: toggleMenu,\n openMenu: openMenu,\n closeMenu: closeMenu,\n setHighlightedIndex: setHighlightedIndex,\n selectItem: selectItem,\n reset: reset,\n setInputValue: setInputValue,\n // state.\n highlightedIndex: highlightedIndex,\n isOpen: isOpen,\n selectedItem: selectedItem,\n inputValue: inputValue\n };\n}\n\nvar InputKeyDownArrowDown = process.env.NODE_ENV !== \"production\" ? '__input_keydown_arrow_down__' : 0;\nvar InputKeyDownArrowUp = process.env.NODE_ENV !== \"production\" ? '__input_keydown_arrow_up__' : 1;\nvar InputKeyDownEscape = process.env.NODE_ENV !== \"production\" ? '__input_keydown_escape__' : 2;\nvar InputKeyDownHome = process.env.NODE_ENV !== \"production\" ? '__input_keydown_home__' : 3;\nvar InputKeyDownEnd = process.env.NODE_ENV !== \"production\" ? '__input_keydown_end__' : 4;\nvar InputKeyDownEnter = process.env.NODE_ENV !== \"production\" ? '__input_keydown_enter__' : 5;\nvar InputChange = process.env.NODE_ENV !== \"production\" ? '__input_change__' : 6;\nvar InputBlur = process.env.NODE_ENV !== \"production\" ? '__input_blur__' : 7;\nvar MenuMouseLeave$1 = process.env.NODE_ENV !== \"production\" ? '__menu_mouse_leave__' : 8;\nvar ItemMouseMove$1 = process.env.NODE_ENV !== \"production\" ? '__item_mouse_move__' : 9;\nvar ItemClick$1 = process.env.NODE_ENV !== \"production\" ? '__item_click__' : 10;\nvar ToggleButtonClick$1 = process.env.NODE_ENV !== \"production\" ? '__togglebutton_click__' : 11;\nvar FunctionToggleMenu$1 = process.env.NODE_ENV !== \"production\" ? '__function_toggle_menu__' : 12;\nvar FunctionOpenMenu$1 = process.env.NODE_ENV !== \"production\" ? '__function_open_menu__' : 13;\nvar FunctionCloseMenu$1 = process.env.NODE_ENV !== \"production\" ? '__function_close_menu__' : 14;\nvar FunctionSetHighlightedIndex$1 = process.env.NODE_ENV !== \"production\" ? '__function_set_highlighted_index__' : 15;\nvar FunctionSelectItem$1 = process.env.NODE_ENV !== \"production\" ? '__function_select_item__' : 16;\nvar FunctionSetInputValue$1 = process.env.NODE_ENV !== \"production\" ? '__function_set_input_value__' : 17;\nvar FunctionReset$1 = process.env.NODE_ENV !== \"production\" ? '__function_reset__' : 18;\nvar ControlledPropUpdatedSelectedItem = process.env.NODE_ENV !== \"production\" ? '__controlled_prop_updated_selected_item__' : 19;\n\nvar stateChangeTypes$2 = /*#__PURE__*/Object.freeze({\n __proto__: null,\n InputKeyDownArrowDown: InputKeyDownArrowDown,\n InputKeyDownArrowUp: InputKeyDownArrowUp,\n InputKeyDownEscape: InputKeyDownEscape,\n InputKeyDownHome: InputKeyDownHome,\n InputKeyDownEnd: InputKeyDownEnd,\n InputKeyDownEnter: InputKeyDownEnter,\n InputChange: InputChange,\n InputBlur: InputBlur,\n MenuMouseLeave: MenuMouseLeave$1,\n ItemMouseMove: ItemMouseMove$1,\n ItemClick: ItemClick$1,\n ToggleButtonClick: ToggleButtonClick$1,\n FunctionToggleMenu: FunctionToggleMenu$1,\n FunctionOpenMenu: FunctionOpenMenu$1,\n FunctionCloseMenu: FunctionCloseMenu$1,\n FunctionSetHighlightedIndex: FunctionSetHighlightedIndex$1,\n FunctionSelectItem: FunctionSelectItem$1,\n FunctionSetInputValue: FunctionSetInputValue$1,\n FunctionReset: FunctionReset$1,\n ControlledPropUpdatedSelectedItem: ControlledPropUpdatedSelectedItem\n});\n\nfunction getElementIds$1(_ref) {\n var id = _ref.id,\n inputId = _ref.inputId,\n rest = _objectWithoutPropertiesLoose(_ref, [\"id\", \"inputId\"]);\n\n var uniqueId = id === undefined ? \"downshift-\" + generateId() : id;\n return _extends({\n inputId: inputId || uniqueId + \"-input\"\n }, getElementIds(_extends({\n id: id\n }, rest)));\n}\nfunction getInitialState$1(props) {\n var initialState = getInitialState(props);\n var selectedItem = initialState.selectedItem;\n var inputValue = initialState.inputValue;\n\n if (inputValue === '' && selectedItem && props.defaultInputValue === undefined && props.initialInputValue === undefined && props.inputValue === undefined) {\n inputValue = props.itemToString(selectedItem);\n }\n\n return _extends({}, initialState, {\n inputValue: inputValue\n });\n}\nvar propTypes$1 = {\n items: PropTypes.array.isRequired,\n itemToString: PropTypes.func,\n getA11yStatusMessage: PropTypes.func,\n getA11ySelectionMessage: PropTypes.func,\n circularNavigation: PropTypes.bool,\n highlightedIndex: PropTypes.number,\n defaultHighlightedIndex: PropTypes.number,\n initialHighlightedIndex: PropTypes.number,\n isOpen: PropTypes.bool,\n defaultIsOpen: PropTypes.bool,\n initialIsOpen: PropTypes.bool,\n selectedItem: PropTypes.any,\n initialSelectedItem: PropTypes.any,\n defaultSelectedItem: PropTypes.any,\n inputValue: PropTypes.string,\n defaultInputValue: PropTypes.string,\n initialInputValue: PropTypes.string,\n id: PropTypes.string,\n labelId: PropTypes.string,\n menuId: PropTypes.string,\n getItemId: PropTypes.func,\n inputId: PropTypes.string,\n toggleButtonId: PropTypes.string,\n stateReducer: PropTypes.func,\n onSelectedItemChange: PropTypes.func,\n onHighlightedIndexChange: PropTypes.func,\n onStateChange: PropTypes.func,\n onIsOpenChange: PropTypes.func,\n onInputValueChange: PropTypes.func,\n environment: PropTypes.shape({\n addEventListener: PropTypes.func,\n removeEventListener: PropTypes.func,\n document: PropTypes.shape({\n getElementById: PropTypes.func,\n activeElement: PropTypes.any,\n body: PropTypes.any\n })\n })\n};\n/**\n * The useCombobox version of useControlledReducer, which also\n * checks if the controlled prop selectedItem changed between\n * renders. If so, it will also update inputValue with its\n * string equivalent. It uses the common useEnhancedReducer to\n * compute the rest of the state.\n *\n * @param {Function} reducer Reducer function from downshift.\n * @param {Object} initialState Initial state of the hook.\n * @param {Object} props The hook props.\n * @returns {Array} An array with the state and an action dispatcher.\n */\n\nfunction useControlledReducer$1(reducer, initialState, props) {\n var previousSelectedItemRef = useRef();\n\n var _useEnhancedReducer = useEnhancedReducer(reducer, initialState, props),\n state = _useEnhancedReducer[0],\n dispatch = _useEnhancedReducer[1]; // ToDo: if needed, make same approach as selectedItemChanged from Downshift.\n\n\n useEffect(function () {\n if (isControlledProp(props, 'selectedItem')) {\n if (previousSelectedItemRef.current !== props.selectedItem) {\n dispatch({\n type: ControlledPropUpdatedSelectedItem,\n inputValue: props.itemToString(props.selectedItem)\n });\n }\n\n previousSelectedItemRef.current = state.selectedItem === previousSelectedItemRef.current ? props.selectedItem : state.selectedItem;\n }\n });\n return [getState(state, props), dispatch];\n}\nvar defaultProps$2 = _extends({}, defaultProps, {\n getA11yStatusMessage: getA11yStatusMessage,\n circularNavigation: true\n});\n\n/* eslint-disable complexity */\n\nfunction downshiftUseComboboxReducer(state, action) {\n var type = action.type,\n props = action.props,\n shiftKey = action.shiftKey;\n var changes;\n\n switch (type) {\n case ItemMouseMove$1:\n changes = {\n highlightedIndex: action.index\n };\n break;\n\n case ItemClick$1:\n changes = {\n isOpen: getDefaultValue(props, 'isOpen'),\n highlightedIndex: getDefaultValue(props, 'highlightedIndex'),\n selectedItem: props.items[action.index],\n inputValue: props.itemToString(props.items[action.index])\n };\n break;\n\n case InputKeyDownArrowDown:\n if (state.isOpen) {\n changes = {\n highlightedIndex: getNextWrappingIndex(shiftKey ? 5 : 1, state.highlightedIndex, props.items.length, action.getItemNodeFromIndex, props.circularNavigation)\n };\n } else {\n changes = {\n highlightedIndex: getHighlightedIndexOnOpen(props, state, 1, action.getItemNodeFromIndex),\n isOpen: true\n };\n }\n\n break;\n\n case InputKeyDownArrowUp:\n if (state.isOpen) {\n changes = {\n highlightedIndex: getNextWrappingIndex(shiftKey ? -5 : -1, state.highlightedIndex, props.items.length, action.getItemNodeFromIndex, props.circularNavigation)\n };\n } else {\n changes = {\n highlightedIndex: getHighlightedIndexOnOpen(props, state, -1, action.getItemNodeFromIndex),\n isOpen: true\n };\n }\n\n break;\n\n case InputKeyDownEnter:\n changes = _extends({}, state.isOpen && state.highlightedIndex >= 0 && {\n selectedItem: props.items[state.highlightedIndex],\n isOpen: getDefaultValue(props, 'isOpen'),\n highlightedIndex: getDefaultValue(props, 'highlightedIndex'),\n inputValue: props.itemToString(props.items[state.highlightedIndex])\n });\n break;\n\n case InputKeyDownEscape:\n changes = _extends({\n isOpen: false,\n highlightedIndex: -1\n }, !state.isOpen && {\n selectedItem: null,\n inputValue: ''\n });\n break;\n\n case InputKeyDownHome:\n changes = _extends({}, state.isOpen && {\n highlightedIndex: getNextNonDisabledIndex(1, 0, props.items.length, action.getItemNodeFromIndex, false)\n });\n break;\n\n case InputKeyDownEnd:\n changes = _extends({}, state.isOpen && {\n highlightedIndex: getNextNonDisabledIndex(-1, props.items.length - 1, props.items.length, action.getItemNodeFromIndex, false)\n });\n break;\n\n case InputBlur:\n if (state.isOpen) {\n changes = _extends({\n isOpen: false,\n highlightedIndex: -1\n }, state.highlightedIndex >= 0 && action.selectItem && {\n selectedItem: props.items[state.highlightedIndex],\n inputValue: props.itemToString(props.items[state.highlightedIndex])\n });\n }\n\n break;\n\n case InputChange:\n changes = {\n isOpen: true,\n highlightedIndex: getDefaultValue(props, 'highlightedIndex'),\n inputValue: action.inputValue\n };\n break;\n\n case MenuMouseLeave$1:\n changes = {\n highlightedIndex: -1\n };\n break;\n\n case ToggleButtonClick$1:\n case FunctionToggleMenu$1:\n changes = {\n isOpen: !state.isOpen,\n highlightedIndex: state.isOpen ? -1 : getHighlightedIndexOnOpen(props, state, 0)\n };\n break;\n\n case FunctionOpenMenu$1:\n changes = {\n isOpen: true,\n highlightedIndex: getHighlightedIndexOnOpen(props, state, 0)\n };\n break;\n\n case FunctionCloseMenu$1:\n changes = {\n isOpen: false\n };\n break;\n\n case FunctionSetHighlightedIndex$1:\n changes = {\n highlightedIndex: action.highlightedIndex\n };\n break;\n\n case FunctionSelectItem$1:\n changes = {\n selectedItem: action.selectedItem,\n inputValue: props.itemToString(action.selectedItem)\n };\n break;\n\n case ControlledPropUpdatedSelectedItem:\n case FunctionSetInputValue$1:\n changes = {\n inputValue: action.inputValue\n };\n break;\n\n case FunctionReset$1:\n changes = {\n highlightedIndex: getDefaultValue(props, 'highlightedIndex'),\n isOpen: getDefaultValue(props, 'isOpen'),\n selectedItem: getDefaultValue(props, 'selectedItem'),\n inputValue: getDefaultValue(props, 'inputValue')\n };\n break;\n\n default:\n throw new Error('Reducer called without proper action type.');\n }\n\n return _extends({}, state, changes);\n}\n/* eslint-enable complexity */\n\nvar validatePropTypes$1 = process.env.NODE_ENV === 'production' ?\n/* istanbul ignore next */\nnull : getPropTypesValidator(useCombobox, propTypes$1);\nuseCombobox.stateChangeTypes = stateChangeTypes$2;\n\nfunction useCombobox(userProps) {\n if (userProps === void 0) {\n userProps = {};\n }\n\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== 'production') {\n validatePropTypes$1(userProps);\n } // Props defaults and destructuring.\n\n\n var props = _extends({}, defaultProps$2, userProps);\n\n var initialIsOpen = props.initialIsOpen,\n defaultIsOpen = props.defaultIsOpen,\n items = props.items,\n scrollIntoView = props.scrollIntoView,\n environment = props.environment,\n getA11yStatusMessage = props.getA11yStatusMessage,\n getA11ySelectionMessage = props.getA11ySelectionMessage,\n itemToString = props.itemToString; // Initial state depending on controlled props.\n\n var initialState = getInitialState$1(props);\n\n var _useControlledReducer = useControlledReducer$1(downshiftUseComboboxReducer, initialState, props),\n state = _useControlledReducer[0],\n dispatch = _useControlledReducer[1];\n\n var isOpen = state.isOpen,\n highlightedIndex = state.highlightedIndex,\n selectedItem = state.selectedItem,\n inputValue = state.inputValue; // Element refs.\n\n var menuRef = useRef(null);\n var itemRefs = useRef();\n var inputRef = useRef(null);\n var toggleButtonRef = useRef(null);\n var comboboxRef = useRef(null);\n itemRefs.current = {};\n var isInitialMountRef = useRef(true); // prevent id re-generation between renders.\n\n var elementIdsRef = useRef(getElementIds$1(props)); // used to keep track of how many items we had on previous cycle.\n\n var previousResultCountRef = useRef(); // utility callback to get item element.\n\n var latest = useLatestRef({\n state: state,\n props: props\n });\n\n var getItemNodeFromIndex = function (index) {\n return itemRefs.current[elementIdsRef.current.getItemId(index)];\n }; // Effects.\n // Sets a11y status message on changes in state.\n\n\n useA11yMessageSetter(getA11yStatusMessage, [isOpen, highlightedIndex, inputValue, items], _extends({\n isInitialMount: isInitialMountRef.current,\n previousResultCount: previousResultCountRef.current,\n items: items,\n environment: environment,\n itemToString: itemToString\n }, state)); // Sets a11y status message on changes in selectedItem.\n\n useA11yMessageSetter(getA11ySelectionMessage, [selectedItem], _extends({\n isInitialMount: isInitialMountRef.current,\n previousResultCount: previousResultCountRef.current,\n items: items,\n environment: environment,\n itemToString: itemToString\n }, state)); // Scroll on highlighted item if change comes from keyboard.\n\n var shouldScrollRef = useScrollIntoView({\n menuElement: menuRef.current,\n highlightedIndex: highlightedIndex,\n isOpen: isOpen,\n itemRefs: itemRefs,\n scrollIntoView: scrollIntoView,\n getItemNodeFromIndex: getItemNodeFromIndex\n });\n useControlPropsValidator({\n isInitialMount: isInitialMountRef.current,\n props: props,\n state: state\n }); // Controls the focus on the input on open.\n\n useEffect(function () {\n // Don't focus menu on first render.\n if (isInitialMountRef.current) {\n // Unless it was initialised as open.\n if (initialIsOpen || defaultIsOpen || isOpen) {\n if (inputRef.current) {\n inputRef.current.focus();\n }\n }\n } // eslint-disable-next-line react-hooks/exhaustive-deps\n\n }, [isOpen]);\n useEffect(function () {\n if (isInitialMountRef.current) {\n return;\n }\n\n previousResultCountRef.current = items.length;\n }); // Add mouse/touch events to document.\n\n var mouseAndTouchTrackersRef = useMouseAndTouchTracker(isOpen, [comboboxRef, menuRef, toggleButtonRef], environment, function () {\n dispatch({\n type: InputBlur,\n selectItem: false\n });\n });\n var setGetterPropCallInfo = useGetterPropsCalledChecker('getInputProps', 'getComboboxProps', 'getMenuProps'); // Make initial ref false.\n\n useEffect(function () {\n isInitialMountRef.current = false;\n }, []);\n /* Event handler functions */\n\n var inputKeyDownHandlers = useMemo(function () {\n return {\n ArrowDown: function ArrowDown(event) {\n event.preventDefault();\n dispatch({\n type: InputKeyDownArrowDown,\n shiftKey: event.shiftKey,\n getItemNodeFromIndex: getItemNodeFromIndex\n });\n },\n ArrowUp: function ArrowUp(event) {\n event.preventDefault();\n dispatch({\n type: InputKeyDownArrowUp,\n shiftKey: event.shiftKey,\n getItemNodeFromIndex: getItemNodeFromIndex\n });\n },\n Home: function Home(event) {\n event.preventDefault();\n dispatch({\n type: InputKeyDownHome,\n getItemNodeFromIndex: getItemNodeFromIndex\n });\n },\n End: function End(event) {\n event.preventDefault();\n dispatch({\n type: InputKeyDownEnd,\n getItemNodeFromIndex: getItemNodeFromIndex\n });\n },\n Escape: function Escape() {\n dispatch({\n type: InputKeyDownEscape\n });\n },\n Enter: function Enter(event) {\n // if IME composing, wait for next Enter keydown event.\n if (event.which === 229) {\n return;\n }\n\n var latestState = latest.current.state;\n\n if (latestState.isOpen) {\n event.preventDefault();\n }\n\n dispatch({\n type: InputKeyDownEnter,\n getItemNodeFromIndex: getItemNodeFromIndex\n });\n }\n };\n }, [dispatch, latest]); // Getter props.\n\n var getLabelProps = useCallback(function (labelProps) {\n return _extends({\n id: elementIdsRef.current.labelId,\n htmlFor: elementIdsRef.current.inputId\n }, labelProps);\n }, []);\n var getMenuProps = useCallback(function (_temp, _temp2) {\n var _extends2;\n\n var _ref = _temp === void 0 ? {} : _temp,\n onMouseLeave = _ref.onMouseLeave,\n _ref$refKey = _ref.refKey,\n refKey = _ref$refKey === void 0 ? 'ref' : _ref$refKey,\n ref = _ref.ref,\n rest = _objectWithoutPropertiesLoose(_ref, [\"onMouseLeave\", \"refKey\", \"ref\"]);\n\n var _ref2 = _temp2 === void 0 ? {} : _temp2,\n _ref2$suppressRefErro = _ref2.suppressRefError,\n suppressRefError = _ref2$suppressRefErro === void 0 ? false : _ref2$suppressRefErro;\n\n setGetterPropCallInfo('getMenuProps', suppressRefError, refKey, menuRef);\n return _extends((_extends2 = {}, _extends2[refKey] = handleRefs(ref, function (menuNode) {\n menuRef.current = menuNode;\n }), _extends2.id = elementIdsRef.current.menuId, _extends2.role = 'listbox', _extends2['aria-labelledby'] = elementIdsRef.current.labelId, _extends2.onMouseLeave = callAllEventHandlers(onMouseLeave, function () {\n dispatch({\n type: MenuMouseLeave$1\n });\n }), _extends2), rest);\n }, [dispatch, setGetterPropCallInfo]);\n var getItemProps = useCallback(function (_temp3) {\n var _extends3, _ref4;\n\n var _ref3 = _temp3 === void 0 ? {} : _temp3,\n item = _ref3.item,\n index = _ref3.index,\n _ref3$refKey = _ref3.refKey,\n refKey = _ref3$refKey === void 0 ? 'ref' : _ref3$refKey,\n ref = _ref3.ref,\n onMouseMove = _ref3.onMouseMove,\n onClick = _ref3.onClick,\n onPress = _ref3.onPress,\n rest = _objectWithoutPropertiesLoose(_ref3, [\"item\", \"index\", \"refKey\", \"ref\", \"onMouseMove\", \"onClick\", \"onPress\"]);\n\n var _latest$current = latest.current,\n latestProps = _latest$current.props,\n latestState = _latest$current.state;\n var itemIndex = getItemIndex(index, item, latestProps.items);\n\n if (itemIndex < 0) {\n throw new Error('Pass either item or item index in getItemProps!');\n }\n\n var onSelectKey = 'onClick';\n var customClickHandler = onClick;\n return _extends((_extends3 = {}, _extends3[refKey] = handleRefs(ref, function (itemNode) {\n if (itemNode) {\n itemRefs.current[elementIdsRef.current.getItemId(itemIndex)] = itemNode;\n }\n }), _extends3.role = 'option', _extends3['aria-selected'] = \"\" + (itemIndex === latestState.highlightedIndex), _extends3.id = elementIdsRef.current.getItemId(itemIndex), _extends3), !rest.disabled && (_ref4 = {\n onMouseMove: callAllEventHandlers(onMouseMove, function itemHandleMouseMove() {\n if (index === latestState.highlightedIndex) {\n return;\n }\n\n shouldScrollRef.current = false;\n dispatch({\n type: ItemMouseMove$1,\n index: index\n });\n })\n }, _ref4[onSelectKey] = callAllEventHandlers(customClickHandler, function itemHandleClick() {\n dispatch({\n type: ItemClick$1,\n index: index\n });\n\n if (inputRef.current) {\n inputRef.current.focus();\n }\n }), _ref4), rest);\n }, [dispatch, latest, shouldScrollRef]);\n var getToggleButtonProps = useCallback(function (_temp4) {\n var _extends4;\n\n var _ref5 = _temp4 === void 0 ? {} : _temp4,\n onClick = _ref5.onClick,\n onPress = _ref5.onPress,\n _ref5$refKey = _ref5.refKey,\n refKey = _ref5$refKey === void 0 ? 'ref' : _ref5$refKey,\n ref = _ref5.ref,\n rest = _objectWithoutPropertiesLoose(_ref5, [\"onClick\", \"onPress\", \"refKey\", \"ref\"]);\n\n var toggleButtonHandleClick = function () {\n dispatch({\n type: ToggleButtonClick$1\n });\n\n if (!latest.current.state.isOpen && inputRef.current) {\n inputRef.current.focus();\n }\n };\n\n return _extends((_extends4 = {}, _extends4[refKey] = handleRefs(ref, function (toggleButtonNode) {\n toggleButtonRef.current = toggleButtonNode;\n }), _extends4.id = elementIdsRef.current.toggleButtonId, _extends4.tabIndex = -1, _extends4), !rest.disabled && _extends({}, {\n onClick: callAllEventHandlers(onClick, toggleButtonHandleClick)\n }), rest);\n }, [dispatch, latest]);\n var getInputProps = useCallback(function (_temp5, _temp6) {\n var _extends5;\n\n var _ref6 = _temp5 === void 0 ? {} : _temp5,\n onKeyDown = _ref6.onKeyDown,\n onChange = _ref6.onChange,\n onInput = _ref6.onInput,\n onBlur = _ref6.onBlur,\n onChangeText = _ref6.onChangeText,\n _ref6$refKey = _ref6.refKey,\n refKey = _ref6$refKey === void 0 ? 'ref' : _ref6$refKey,\n ref = _ref6.ref,\n rest = _objectWithoutPropertiesLoose(_ref6, [\"onKeyDown\", \"onChange\", \"onInput\", \"onBlur\", \"onChangeText\", \"refKey\", \"ref\"]);\n\n var _ref7 = _temp6 === void 0 ? {} : _temp6,\n _ref7$suppressRefErro = _ref7.suppressRefError,\n suppressRefError = _ref7$suppressRefErro === void 0 ? false : _ref7$suppressRefErro;\n\n setGetterPropCallInfo('getInputProps', suppressRefError, refKey, inputRef);\n var latestState = latest.current.state;\n\n var inputHandleKeyDown = function (event) {\n var key = normalizeArrowKey(event);\n\n if (key && inputKeyDownHandlers[key]) {\n inputKeyDownHandlers[key](event);\n }\n };\n\n var inputHandleChange = function (event) {\n dispatch({\n type: InputChange,\n inputValue: event.target.value\n });\n };\n\n var inputHandleBlur = function () {\n /* istanbul ignore else */\n if (!mouseAndTouchTrackersRef.current.isMouseDown) {\n dispatch({\n type: InputBlur,\n selectItem: true\n });\n }\n };\n /* istanbul ignore next (preact) */\n\n\n var onChangeKey = 'onChange';\n var eventHandlers = {};\n\n if (!rest.disabled) {\n var _eventHandlers;\n\n eventHandlers = (_eventHandlers = {}, _eventHandlers[onChangeKey] = callAllEventHandlers(onChange, onInput, inputHandleChange), _eventHandlers.onKeyDown = callAllEventHandlers(onKeyDown, inputHandleKeyDown), _eventHandlers.onBlur = callAllEventHandlers(onBlur, inputHandleBlur), _eventHandlers);\n }\n /* istanbul ignore if (react-native) */\n\n\n return _extends((_extends5 = {}, _extends5[refKey] = handleRefs(ref, function (inputNode) {\n inputRef.current = inputNode;\n }), _extends5.id = elementIdsRef.current.inputId, _extends5['aria-autocomplete'] = 'list', _extends5['aria-controls'] = elementIdsRef.current.menuId, _extends5), latestState.isOpen && latestState.highlightedIndex > -1 && {\n 'aria-activedescendant': elementIdsRef.current.getItemId(latestState.highlightedIndex)\n }, {\n 'aria-labelledby': elementIdsRef.current.labelId,\n // https://developer.mozilla.org/en-US/docs/Web/Security/Securing_your_site/Turning_off_form_autocompletion\n // revert back since autocomplete=\"nope\" is ignored on latest Chrome and Opera\n autoComplete: 'off',\n value: latestState.inputValue\n }, eventHandlers, rest);\n }, [dispatch, inputKeyDownHandlers, latest, mouseAndTouchTrackersRef, setGetterPropCallInfo]);\n var getComboboxProps = useCallback(function (_temp7, _temp8) {\n var _extends6;\n\n var _ref8 = _temp7 === void 0 ? {} : _temp7,\n _ref8$refKey = _ref8.refKey,\n refKey = _ref8$refKey === void 0 ? 'ref' : _ref8$refKey,\n ref = _ref8.ref,\n rest = _objectWithoutPropertiesLoose(_ref8, [\"refKey\", \"ref\"]);\n\n var _ref9 = _temp8 === void 0 ? {} : _temp8,\n _ref9$suppressRefErro = _ref9.suppressRefError,\n suppressRefError = _ref9$suppressRefErro === void 0 ? false : _ref9$suppressRefErro;\n\n setGetterPropCallInfo('getComboboxProps', suppressRefError, refKey, comboboxRef);\n return _extends((_extends6 = {}, _extends6[refKey] = handleRefs(ref, function (comboboxNode) {\n comboboxRef.current = comboboxNode;\n }), _extends6.role = 'combobox', _extends6['aria-haspopup'] = 'listbox', _extends6['aria-owns'] = elementIdsRef.current.menuId, _extends6['aria-expanded'] = latest.current.state.isOpen, _extends6), rest);\n }, [latest, setGetterPropCallInfo]); // returns\n\n var toggleMenu = useCallback(function () {\n dispatch({\n type: FunctionToggleMenu$1\n });\n }, [dispatch]);\n var closeMenu = useCallback(function () {\n dispatch({\n type: FunctionCloseMenu$1\n });\n }, [dispatch]);\n var openMenu = useCallback(function () {\n dispatch({\n type: FunctionOpenMenu$1\n });\n }, [dispatch]);\n var setHighlightedIndex = useCallback(function (newHighlightedIndex) {\n dispatch({\n type: FunctionSetHighlightedIndex$1,\n highlightedIndex: newHighlightedIndex\n });\n }, [dispatch]);\n var selectItem = useCallback(function (newSelectedItem) {\n dispatch({\n type: FunctionSelectItem$1,\n selectedItem: newSelectedItem\n });\n }, [dispatch]);\n var setInputValue = useCallback(function (newInputValue) {\n dispatch({\n type: FunctionSetInputValue$1,\n inputValue: newInputValue\n });\n }, [dispatch]);\n var reset = useCallback(function () {\n dispatch({\n type: FunctionReset$1\n });\n }, [dispatch]);\n return {\n // prop getters.\n getItemProps: getItemProps,\n getLabelProps: getLabelProps,\n getMenuProps: getMenuProps,\n getInputProps: getInputProps,\n getComboboxProps: getComboboxProps,\n getToggleButtonProps: getToggleButtonProps,\n // actions.\n toggleMenu: toggleMenu,\n openMenu: openMenu,\n closeMenu: closeMenu,\n setHighlightedIndex: setHighlightedIndex,\n setInputValue: setInputValue,\n selectItem: selectItem,\n reset: reset,\n // state.\n highlightedIndex: highlightedIndex,\n isOpen: isOpen,\n selectedItem: selectedItem,\n inputValue: inputValue\n };\n}\n\nvar defaultStateValues = {\n activeIndex: -1,\n selectedItems: []\n};\n/**\n * Returns the initial value for a state key in the following order:\n * 1. controlled prop, 2. initial prop, 3. default prop, 4. default\n * value from Downshift.\n *\n * @param {Object} props Props passed to the hook.\n * @param {string} propKey Props key to generate the value for.\n * @returns {any} The initial value for that prop.\n */\n\nfunction getInitialValue$1(props, propKey) {\n return getInitialValue(props, propKey, defaultStateValues);\n}\n/**\n * Returns the default value for a state key in the following order:\n * 1. controlled prop, 2. default prop, 3. default value from Downshift.\n *\n * @param {Object} props Props passed to the hook.\n * @param {string} propKey Props key to generate the value for.\n * @returns {any} The initial value for that prop.\n */\n\n\nfunction getDefaultValue$1(props, propKey) {\n return getDefaultValue(props, propKey, defaultStateValues);\n}\n/**\n * Gets the initial state based on the provided props. It uses initial, default\n * and controlled props related to state in order to compute the initial value.\n *\n * @param {Object} props Props passed to the hook.\n * @returns {Object} The initial state.\n */\n\nfunction getInitialState$2(props) {\n var activeIndex = getInitialValue$1(props, 'activeIndex');\n var selectedItems = getInitialValue$1(props, 'selectedItems');\n return {\n activeIndex: activeIndex,\n selectedItems: selectedItems\n };\n}\n/**\n * Returns true if dropdown keydown operation is permitted. Should not be\n * allowed on keydown with modifier keys (ctrl, alt, shift, meta), on\n * input element with text content that is either highlighted or selection\n * cursor is not at the starting position.\n *\n * @param {KeyboardEvent} event The event from keydown.\n * @returns {boolean} Whether the operation is allowed.\n */\n\nfunction isKeyDownOperationPermitted(event) {\n if (event.shiftKey || event.metaKey || event.ctrlKey || event.altKey) {\n return false;\n }\n\n var element = event.target;\n\n if (element instanceof HTMLInputElement && // if element is a text input\n element.value !== '' && ( // and we have text in it\n // and cursor is either not at the start or is currently highlighting text.\n element.selectionStart !== 0 || element.selectionEnd !== 0)) {\n return false;\n }\n\n return true;\n}\n/**\n * Returns a message to be added to aria-live region when item is removed.\n *\n * @param {Object} selectionParameters Parameters required to build the message.\n * @returns {string} The a11y message.\n */\n\nfunction getA11yRemovalMessage(selectionParameters) {\n var removedSelectedItem = selectionParameters.removedSelectedItem,\n itemToStringLocal = selectionParameters.itemToString;\n return itemToStringLocal(removedSelectedItem) + \" has been removed.\";\n}\n\nvar propTypes$2 = {\n selectedItems: PropTypes.array,\n initialSelectedItems: PropTypes.array,\n defaultSelectedItems: PropTypes.array,\n itemToString: PropTypes.func,\n getA11yRemovalMessage: PropTypes.func,\n stateReducer: PropTypes.func,\n activeIndex: PropTypes.number,\n initialActiveIndex: PropTypes.number,\n defaultActiveIndex: PropTypes.number,\n onActiveIndexChange: PropTypes.func,\n onSelectedItemsChange: PropTypes.func,\n keyNavigationNext: PropTypes.string,\n keyNavigationPrevious: PropTypes.string,\n environment: PropTypes.shape({\n addEventListener: PropTypes.func,\n removeEventListener: PropTypes.func,\n document: PropTypes.shape({\n getElementById: PropTypes.func,\n activeElement: PropTypes.any,\n body: PropTypes.any\n })\n })\n};\nvar defaultProps$3 = {\n itemToString: defaultProps.itemToString,\n stateReducer: defaultProps.stateReducer,\n environment: defaultProps.environment,\n getA11yRemovalMessage: getA11yRemovalMessage,\n keyNavigationNext: 'ArrowRight',\n keyNavigationPrevious: 'ArrowLeft'\n};\n\nvar SelectedItemClick = process.env.NODE_ENV !== \"production\" ? '__selected_item_click__' : 0;\nvar SelectedItemKeyDownDelete = process.env.NODE_ENV !== \"production\" ? '__selected_item_keydown_delete__' : 1;\nvar SelectedItemKeyDownBackspace = process.env.NODE_ENV !== \"production\" ? '__selected_item_keydown_backspace__' : 2;\nvar SelectedItemKeyDownNavigationNext = process.env.NODE_ENV !== \"production\" ? '__selected_item_keydown_navigation_next__' : 3;\nvar SelectedItemKeyDownNavigationPrevious = process.env.NODE_ENV !== \"production\" ? '__selected_item_keydown_navigation_previous__' : 4;\nvar DropdownKeyDownNavigationPrevious = process.env.NODE_ENV !== \"production\" ? '__dropdown_keydown_navigation_previous__' : 5;\nvar DropdownKeyDownBackspace = process.env.NODE_ENV !== \"production\" ? '__dropdown_keydown_backspace__' : 6;\nvar DropdownClick = process.env.NODE_ENV !== \"production\" ? '__dropdown_click__' : 7;\nvar FunctionAddSelectedItem = process.env.NODE_ENV !== \"production\" ? '__function_add_selected_item__' : 8;\nvar FunctionRemoveSelectedItem = process.env.NODE_ENV !== \"production\" ? '__function_remove_selected_item__' : 9;\nvar FunctionSetSelectedItems = process.env.NODE_ENV !== \"production\" ? '__function_set_selected_items__' : 10;\nvar FunctionSetActiveIndex = process.env.NODE_ENV !== \"production\" ? '__function_set_active_index__' : 11;\nvar FunctionReset$2 = process.env.NODE_ENV !== \"production\" ? '__function_reset__' : 12;\n\nvar stateChangeTypes$3 = /*#__PURE__*/Object.freeze({\n __proto__: null,\n SelectedItemClick: SelectedItemClick,\n SelectedItemKeyDownDelete: SelectedItemKeyDownDelete,\n SelectedItemKeyDownBackspace: SelectedItemKeyDownBackspace,\n SelectedItemKeyDownNavigationNext: SelectedItemKeyDownNavigationNext,\n SelectedItemKeyDownNavigationPrevious: SelectedItemKeyDownNavigationPrevious,\n DropdownKeyDownNavigationPrevious: DropdownKeyDownNavigationPrevious,\n DropdownKeyDownBackspace: DropdownKeyDownBackspace,\n DropdownClick: DropdownClick,\n FunctionAddSelectedItem: FunctionAddSelectedItem,\n FunctionRemoveSelectedItem: FunctionRemoveSelectedItem,\n FunctionSetSelectedItems: FunctionSetSelectedItems,\n FunctionSetActiveIndex: FunctionSetActiveIndex,\n FunctionReset: FunctionReset$2\n});\n\n/* eslint-disable complexity */\n\nfunction downshiftMultipleSelectionReducer(state, action) {\n var type = action.type,\n index = action.index,\n props = action.props,\n selectedItem = action.selectedItem;\n var activeIndex = state.activeIndex,\n selectedItems = state.selectedItems;\n var changes;\n\n switch (type) {\n case SelectedItemClick:\n changes = {\n activeIndex: index\n };\n break;\n\n case SelectedItemKeyDownNavigationPrevious:\n changes = {\n activeIndex: activeIndex - 1 < 0 ? 0 : activeIndex - 1\n };\n break;\n\n case SelectedItemKeyDownNavigationNext:\n changes = {\n activeIndex: activeIndex + 1 >= selectedItems.length ? -1 : activeIndex + 1\n };\n break;\n\n case SelectedItemKeyDownBackspace:\n case SelectedItemKeyDownDelete:\n {\n var newActiveIndex = activeIndex;\n\n if (selectedItems.length === 1) {\n newActiveIndex = -1;\n } else if (activeIndex === selectedItems.length - 1) {\n newActiveIndex = selectedItems.length - 2;\n }\n\n changes = _extends({\n selectedItems: [].concat(selectedItems.slice(0, activeIndex), selectedItems.slice(activeIndex + 1))\n }, {\n activeIndex: newActiveIndex\n });\n break;\n }\n\n case DropdownKeyDownNavigationPrevious:\n changes = {\n activeIndex: selectedItems.length - 1\n };\n break;\n\n case DropdownKeyDownBackspace:\n changes = {\n selectedItems: selectedItems.slice(0, selectedItems.length - 1)\n };\n break;\n\n case FunctionAddSelectedItem:\n changes = {\n selectedItems: [].concat(selectedItems, [selectedItem])\n };\n break;\n\n case DropdownClick:\n changes = {\n activeIndex: -1\n };\n break;\n\n case FunctionRemoveSelectedItem:\n {\n var _newActiveIndex = activeIndex;\n var selectedItemIndex = selectedItems.indexOf(selectedItem);\n\n if (selectedItems.length === 1) {\n _newActiveIndex = -1;\n } else if (selectedItemIndex === selectedItems.length - 1) {\n _newActiveIndex = selectedItems.length - 2;\n }\n\n changes = _extends({\n selectedItems: [].concat(selectedItems.slice(0, selectedItemIndex), selectedItems.slice(selectedItemIndex + 1))\n }, {\n activeIndex: _newActiveIndex\n });\n break;\n }\n\n case FunctionSetSelectedItems:\n {\n var newSelectedItems = action.selectedItems;\n changes = {\n selectedItems: newSelectedItems\n };\n break;\n }\n\n case FunctionSetActiveIndex:\n {\n var _newActiveIndex2 = action.activeIndex;\n changes = {\n activeIndex: _newActiveIndex2\n };\n break;\n }\n\n case FunctionReset$2:\n changes = {\n activeIndex: getDefaultValue$1(props, 'activeIndex'),\n selectedItems: getDefaultValue$1(props, 'selectedItems')\n };\n break;\n\n default:\n throw new Error('Reducer called without proper action type.');\n }\n\n return _extends({}, state, changes);\n}\n\nuseMultipleSelection.stateChangeTypes = stateChangeTypes$3;\n\nfunction useMultipleSelection(userProps) {\n if (userProps === void 0) {\n userProps = {};\n }\n\n // Props defaults and destructuring.\n var props = _extends({}, defaultProps$3, userProps);\n\n var getA11yRemovalMessage = props.getA11yRemovalMessage,\n itemToString = props.itemToString,\n environment = props.environment,\n keyNavigationNext = props.keyNavigationNext,\n keyNavigationPrevious = props.keyNavigationPrevious; // Reducer init.\n\n var _useControlledReducer = useControlledReducer(downshiftMultipleSelectionReducer, getInitialState$2(props), props),\n state = _useControlledReducer[0],\n dispatch = _useControlledReducer[1];\n\n var activeIndex = state.activeIndex,\n selectedItems = state.selectedItems; // Refs.\n\n var isInitialMountRef = useRef(true);\n var dropdownRef = useRef(null);\n var previousSelectedItemsRef = useRef(selectedItems);\n var selectedItemRefs = useRef();\n selectedItemRefs.current = [];\n var latest = useLatestRef({\n state: state,\n props: props\n }); // Effects.\n\n /* Sets a11y status message on changes in selectedItem. */\n\n useEffect(function () {\n if (isInitialMountRef.current) {\n return;\n }\n\n if (selectedItems.length < previousSelectedItemsRef.current.length) {\n var removedSelectedItem = previousSelectedItemsRef.current.find(function (item) {\n return selectedItems.indexOf(item) < 0;\n });\n setStatus(getA11yRemovalMessage({\n itemToString: itemToString,\n resultCount: selectedItems.length,\n removedSelectedItem: removedSelectedItem,\n activeIndex: activeIndex,\n activeSelectedItem: selectedItems[activeIndex]\n }), environment.document);\n }\n\n previousSelectedItemsRef.current = selectedItems; // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [selectedItems.length]); // Sets focus on active item.\n\n useEffect(function () {\n if (isInitialMountRef.current) {\n return;\n }\n\n if (activeIndex === -1 && dropdownRef.current) {\n dropdownRef.current.focus();\n } else if (selectedItemRefs.current[activeIndex]) {\n selectedItemRefs.current[activeIndex].focus();\n }\n }, [activeIndex]);\n useControlPropsValidator({\n isInitialMount: isInitialMountRef.current,\n props: props,\n state: state\n });\n var setGetterPropCallInfo = useGetterPropsCalledChecker('getDropdownProps'); // Make initial ref false.\n\n useEffect(function () {\n isInitialMountRef.current = false;\n }, []); // Event handler functions.\n\n var selectedItemKeyDownHandlers = useMemo(function () {\n var _ref;\n\n return _ref = {}, _ref[keyNavigationPrevious] = function () {\n dispatch({\n type: SelectedItemKeyDownNavigationPrevious\n });\n }, _ref[keyNavigationNext] = function () {\n dispatch({\n type: SelectedItemKeyDownNavigationNext\n });\n }, _ref.Delete = function Delete() {\n dispatch({\n type: SelectedItemKeyDownDelete\n });\n }, _ref.Backspace = function Backspace() {\n dispatch({\n type: SelectedItemKeyDownBackspace\n });\n }, _ref;\n }, [dispatch, keyNavigationNext, keyNavigationPrevious]);\n var dropdownKeyDownHandlers = useMemo(function () {\n var _ref2;\n\n return _ref2 = {}, _ref2[keyNavigationPrevious] = function (event) {\n if (isKeyDownOperationPermitted(event)) {\n dispatch({\n type: DropdownKeyDownNavigationPrevious\n });\n }\n }, _ref2.Backspace = function Backspace(event) {\n if (isKeyDownOperationPermitted(event)) {\n dispatch({\n type: DropdownKeyDownBackspace\n });\n }\n }, _ref2;\n }, [dispatch, keyNavigationPrevious]); // Getter props.\n\n var getSelectedItemProps = useCallback(function (_temp) {\n var _extends2;\n\n var _ref3 = _temp === void 0 ? {} : _temp,\n _ref3$refKey = _ref3.refKey,\n refKey = _ref3$refKey === void 0 ? 'ref' : _ref3$refKey,\n ref = _ref3.ref,\n onClick = _ref3.onClick,\n onKeyDown = _ref3.onKeyDown,\n selectedItem = _ref3.selectedItem,\n index = _ref3.index,\n rest = _objectWithoutPropertiesLoose(_ref3, [\"refKey\", \"ref\", \"onClick\", \"onKeyDown\", \"selectedItem\", \"index\"]);\n\n var latestState = latest.current.state;\n var itemIndex = getItemIndex(index, selectedItem, latestState.selectedItems);\n\n if (itemIndex < 0) {\n throw new Error('Pass either selectedItem or index in getSelectedItemProps!');\n }\n\n return _extends((_extends2 = {}, _extends2[refKey] = handleRefs(ref, function (selectedItemNode) {\n if (selectedItemNode) {\n selectedItemRefs.current.push(selectedItemNode);\n }\n }), _extends2.tabIndex = index === latestState.activeIndex ? 0 : -1, _extends2.onClick = callAllEventHandlers(onClick, function selectedItemHandleClick() {\n dispatch({\n type: SelectedItemClick,\n index: index\n });\n }), _extends2.onKeyDown = callAllEventHandlers(onKeyDown, function selectedItemHandleKeyDown(event) {\n var key = normalizeArrowKey(event);\n\n if (key && selectedItemKeyDownHandlers[key]) {\n selectedItemKeyDownHandlers[key](event);\n }\n }), _extends2), rest);\n }, [dispatch, latest, selectedItemKeyDownHandlers]);\n var getDropdownProps = useCallback(function (_temp2, _temp3) {\n var _extends3;\n\n var _ref4 = _temp2 === void 0 ? {} : _temp2,\n _ref4$refKey = _ref4.refKey,\n refKey = _ref4$refKey === void 0 ? 'ref' : _ref4$refKey,\n ref = _ref4.ref,\n onKeyDown = _ref4.onKeyDown,\n onClick = _ref4.onClick,\n _ref4$preventKeyActio = _ref4.preventKeyAction,\n preventKeyAction = _ref4$preventKeyActio === void 0 ? false : _ref4$preventKeyActio,\n rest = _objectWithoutPropertiesLoose(_ref4, [\"refKey\", \"ref\", \"onKeyDown\", \"onClick\", \"preventKeyAction\"]);\n\n var _ref5 = _temp3 === void 0 ? {} : _temp3,\n _ref5$suppressRefErro = _ref5.suppressRefError,\n suppressRefError = _ref5$suppressRefErro === void 0 ? false : _ref5$suppressRefErro;\n\n setGetterPropCallInfo('getDropdownProps', suppressRefError, refKey, dropdownRef);\n return _extends((_extends3 = {}, _extends3[refKey] = handleRefs(ref, function (dropdownNode) {\n if (dropdownNode) {\n dropdownRef.current = dropdownNode;\n }\n }), _extends3), !preventKeyAction && {\n onKeyDown: callAllEventHandlers(onKeyDown, function dropdownHandleKeyDown(event) {\n var key = normalizeArrowKey(event);\n\n if (key && dropdownKeyDownHandlers[key]) {\n dropdownKeyDownHandlers[key](event);\n }\n }),\n onClick: callAllEventHandlers(onClick, function dropdownHandleClick() {\n dispatch({\n type: DropdownClick\n });\n })\n }, rest);\n }, [dispatch, dropdownKeyDownHandlers, setGetterPropCallInfo]); // returns\n\n var addSelectedItem = useCallback(function (selectedItem) {\n dispatch({\n type: FunctionAddSelectedItem,\n selectedItem: selectedItem\n });\n }, [dispatch]);\n var removeSelectedItem = useCallback(function (selectedItem) {\n dispatch({\n type: FunctionRemoveSelectedItem,\n selectedItem: selectedItem\n });\n }, [dispatch]);\n var setSelectedItems = useCallback(function (newSelectedItems) {\n dispatch({\n type: FunctionSetSelectedItems,\n selectedItems: newSelectedItems\n });\n }, [dispatch]);\n var setActiveIndex = useCallback(function (newActiveIndex) {\n dispatch({\n type: FunctionSetActiveIndex,\n activeIndex: newActiveIndex\n });\n }, [dispatch]);\n var reset = useCallback(function () {\n dispatch({\n type: FunctionReset$2\n });\n }, [dispatch]);\n return {\n getSelectedItemProps: getSelectedItemProps,\n getDropdownProps: getDropdownProps,\n addSelectedItem: addSelectedItem,\n removeSelectedItem: removeSelectedItem,\n setSelectedItems: setSelectedItems,\n setActiveIndex: setActiveIndex,\n reset: reset,\n selectedItems: selectedItems,\n activeIndex: activeIndex\n };\n}\n\nexport default Downshift;\nexport { resetIdCounter, useCombobox, useMultipleSelection, useSelect };\n","export default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}","import objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","/** @license React v17.0.1\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';require(\"object-assign\");var f=require(\"react\"),g=60103;exports.Fragment=60107;if(\"function\"===typeof Symbol&&Symbol.for){var h=Symbol.for;g=h(\"react.element\");exports.Fragment=h(\"react.fragment\")}var m=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,n=Object.prototype.hasOwnProperty,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,k){var b,d={},e=null,l=null;void 0!==k&&(e=\"\"+k);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(l=a.ref);for(b in a)n.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:g,type:c,key:e,ref:l,props:d,_owner:m.current}}exports.jsx=q;exports.jsxs=q;\n","/** @license React v17.0.1\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=require(\"object-assign\"),n=60103,p=60106;exports.Fragment=60107;exports.StrictMode=60108;exports.Profiler=60114;var q=60109,r=60110,t=60112;exports.Suspense=60113;var u=60115,v=60116;\nif(\"function\"===typeof Symbol&&Symbol.for){var w=Symbol.for;n=w(\"react.element\");p=w(\"react.portal\");exports.Fragment=w(\"react.fragment\");exports.StrictMode=w(\"react.strict_mode\");exports.Profiler=w(\"react.profiler\");q=w(\"react.provider\");r=w(\"react.context\");t=w(\"react.forward_ref\");exports.Suspense=w(\"react.suspense\");u=w(\"react.memo\");v=w(\"react.lazy\")}var x=\"function\"===typeof Symbol&&Symbol.iterator;\nfunction y(a){if(null===a||\"object\"!==typeof a)return null;a=x&&a[x]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}function z(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function B(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var D={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){D[a]=new B(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];D[b]=new B(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){D[a]=new B(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){D[a]=new B(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){D[a]=new B(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){D[a]=new B(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){D[a]=new B(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){D[a]=new B(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){D[a]=new B(a,5,!1,a.toLowerCase(),null,!1,!1)});var oa=/[\\-:]([a-z])/g;function pa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(oa,\npa);D[b]=new B(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(oa,pa);D[b]=new B(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(oa,pa);D[b]=new B(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!1,!1)});\nD.xlinkHref=new B(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction qa(a,b,c,d){var e=D.hasOwnProperty(b)?D[b]:null;var f=null!==e?0===e.type:d?!1:!(2h||e[g]!==f[h])return\"\\n\"+e[g].replace(\" at new \",\" at \");while(1<=g&&0<=h)}break}}}finally{Oa=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Na(a):\"\"}\nfunction Qa(a){switch(a.tag){case 5:return Na(a.type);case 16:return Na(\"Lazy\");case 13:return Na(\"Suspense\");case 19:return Na(\"SuspenseList\");case 0:case 2:case 15:return a=Pa(a.type,!1),a;case 11:return a=Pa(a.type.render,!1),a;case 22:return a=Pa(a.type._render,!1),a;case 1:return a=Pa(a.type,!0),a;default:return\"\"}}\nfunction Ra(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ua:return\"Fragment\";case ta:return\"Portal\";case xa:return\"Profiler\";case wa:return\"StrictMode\";case Ba:return\"Suspense\";case Ca:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case za:return(a.displayName||\"Context\")+\".Consumer\";case ya:return(a._context.displayName||\"Context\")+\".Provider\";case Aa:var b=a.render;b=b.displayName||b.name||\"\";\nreturn a.displayName||(\"\"!==b?\"ForwardRef(\"+b+\")\":\"ForwardRef\");case Da:return Ra(a.type);case Fa:return Ra(a._render);case Ea:b=a._payload;a=a._init;try{return Ra(a(b))}catch(c){}}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"object\":case \"string\":case \"undefined\":return a;default:return\"\"}}function Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return m({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function $a(a,b){b=b.checked;null!=b&&qa(a,\"checked\",b,!1)}\nfunction ab(a,b){$a(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?bb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&bb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction cb(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction bb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}function db(a){var b=\"\";aa.Children.forEach(a,function(a){null!=a&&(b+=a)});return b}function eb(a,b){a=m({children:void 0},b);if(b=db(b.children))a.children=b;return a}\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e=c.length))throw Error(y(93));c=c[0]}b=c}null==b&&(b=\"\");c=b}a._wrapperState={initialValue:Sa(c)}}\nfunction ib(a,b){var c=Sa(b.value),d=Sa(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function jb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b)}var kb={html:\"http://www.w3.org/1999/xhtml\",mathml:\"http://www.w3.org/1998/Math/MathML\",svg:\"http://www.w3.org/2000/svg\"};\nfunction lb(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}function mb(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?lb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar nb,ob=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(a.namespaceURI!==kb.svg||\"innerHTML\"in a)a.innerHTML=b;else{nb=nb||document.createElement(\"div\");nb.innerHTML=\"\"+b.valueOf().toString()+\"\";for(b=nb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction pb(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar qb={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,\nfloodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},rb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(qb).forEach(function(a){rb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);qb[b]=qb[a]})});function sb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||qb.hasOwnProperty(a)&&qb[a]?(\"\"+b).trim():b+\"px\"}\nfunction tb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=sb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var ub=m({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction vb(a,b){if(b){if(ub[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(y(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(y(60));if(!(\"object\"===typeof b.dangerouslySetInnerHTML&&\"__html\"in b.dangerouslySetInnerHTML))throw Error(y(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(y(62));}}\nfunction wb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(y(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;ad?0:1<c;c++)b.push(a);return b}\nfunction $c(a,b,c){a.pendingLanes|=b;var d=b-1;a.suspendedLanes&=d;a.pingedLanes&=d;a=a.eventTimes;b=31-Vc(b);a[b]=c}var Vc=Math.clz32?Math.clz32:ad,bd=Math.log,cd=Math.LN2;function ad(a){return 0===a?32:31-(bd(a)/cd|0)|0}var dd=r.unstable_UserBlockingPriority,ed=r.unstable_runWithPriority,fd=!0;function gd(a,b,c,d){Kb||Ib();var e=hd,f=Kb;Kb=!0;try{Hb(e,a,b,c,d)}finally{(Kb=f)||Mb()}}function id(a,b,c,d){ed(dd,hd.bind(null,a,b,c,d))}\nfunction hd(a,b,c,d){if(fd){var e;if((e=0===(b&4))&&0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Ke(c)}}function Me(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Me(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Ne(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Oe(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nvar Pe=fa&&\"documentMode\"in document&&11>=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Oe(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Je(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Af||(a.current=zf[Af],zf[Af]=null,Af--)}function I(a,b){Af++;zf[Af]=a.current;a.current=b}var Cf={},M=Bf(Cf),N=Bf(!1),Df=Cf;\nfunction Ef(a,b){var c=a.type.contextTypes;if(!c)return Cf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}function Ff(a){a=a.childContextTypes;return null!==a&&void 0!==a}function Gf(){H(N);H(M)}function Hf(a,b,c){if(M.current!==Cf)throw Error(y(168));I(M,b);I(N,c)}\nfunction If(a,b,c){var d=a.stateNode;a=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in a))throw Error(y(108,Ra(b)||\"Unknown\",e));return m({},c,d)}function Jf(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Cf;Df=M.current;I(M,a);I(N,N.current);return!0}function Kf(a,b,c){var d=a.stateNode;if(!d)throw Error(y(169));c?(a=If(a,b,Df),d.__reactInternalMemoizedMergedChildContext=a,H(N),H(M),I(M,a)):H(N);I(N,c)}\nvar Lf=null,Mf=null,Nf=r.unstable_runWithPriority,Of=r.unstable_scheduleCallback,Pf=r.unstable_cancelCallback,Qf=r.unstable_shouldYield,Rf=r.unstable_requestPaint,Sf=r.unstable_now,Tf=r.unstable_getCurrentPriorityLevel,Uf=r.unstable_ImmediatePriority,Vf=r.unstable_UserBlockingPriority,Wf=r.unstable_NormalPriority,Xf=r.unstable_LowPriority,Yf=r.unstable_IdlePriority,Zf={},$f=void 0!==Rf?Rf:function(){},ag=null,bg=null,cg=!1,dg=Sf(),O=1E4>dg?Sf:function(){return Sf()-dg};\nfunction eg(){switch(Tf()){case Uf:return 99;case Vf:return 98;case Wf:return 97;case Xf:return 96;case Yf:return 95;default:throw Error(y(332));}}function fg(a){switch(a){case 99:return Uf;case 98:return Vf;case 97:return Wf;case 96:return Xf;case 95:return Yf;default:throw Error(y(332));}}function gg(a,b){a=fg(a);return Nf(a,b)}function hg(a,b,c){a=fg(a);return Of(a,b,c)}function ig(){if(null!==bg){var a=bg;bg=null;Pf(a)}jg()}\nfunction jg(){if(!cg&&null!==ag){cg=!0;var a=0;try{var b=ag;gg(99,function(){for(;az?(q=u,u=null):q=u.sibling;var n=p(e,u,h[z],k);if(null===n){null===u&&(u=q);break}a&&u&&null===\nn.alternate&&b(e,u);g=f(n,g,z);null===t?l=n:t.sibling=n;t=n;u=q}if(z===h.length)return c(e,u),l;if(null===u){for(;zz?(q=u,u=null):q=u.sibling;var w=p(e,u,n.value,k);if(null===w){null===u&&(u=q);break}a&&u&&null===w.alternate&&b(e,u);g=f(w,g,z);null===t?l=w:t.sibling=w;t=w;u=q}if(n.done)return c(e,u),l;if(null===u){for(;!n.done;z++,n=h.next())n=A(e,n.value,k),null!==n&&(g=f(n,g,z),null===t?l=n:t.sibling=n,t=n);return l}for(u=d(e,u);!n.done;z++,n=h.next())n=C(u,e,z,n.value,k),null!==n&&(a&&null!==n.alternate&&\nu.delete(null===n.key?z:n.key),g=f(n,g,z),null===t?l=n:t.sibling=n,t=n);a&&u.forEach(function(a){return b(e,a)});return l}return function(a,d,f,h){var k=\"object\"===typeof f&&null!==f&&f.type===ua&&null===f.key;k&&(f=f.props.children);var l=\"object\"===typeof f&&null!==f;if(l)switch(f.$$typeof){case sa:a:{l=f.key;for(k=d;null!==k;){if(k.key===l){switch(k.tag){case 7:if(f.type===ua){c(a,k.sibling);d=e(k,f.props.children);d.return=a;a=d;break a}break;default:if(k.elementType===f.type){c(a,k.sibling);\nd=e(k,f.props);d.ref=Qg(a,k,f);d.return=a;a=d;break a}}c(a,k);break}else b(a,k);k=k.sibling}f.type===ua?(d=Xg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Vg(f.type,f.key,f.props,null,a.mode,h),h.ref=Qg(a,d,f),h.return=a,a=h)}return g(a);case ta:a:{for(k=f.key;null!==d;){if(d.key===k)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=\nWg(f,a.mode,h);d.return=a;a=d}return g(a)}if(\"string\"===typeof f||\"number\"===typeof f)return f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):(c(a,d),d=Ug(f,a.mode,h),d.return=a,a=d),g(a);if(Pg(f))return x(a,d,f,h);if(La(f))return w(a,d,f,h);l&&Rg(a,f);if(\"undefined\"===typeof f&&!k)switch(a.tag){case 1:case 22:case 0:case 11:case 15:throw Error(y(152,Ra(a.type)||\"Component\"));}return c(a,d)}}var Yg=Sg(!0),Zg=Sg(!1),$g={},ah=Bf($g),bh=Bf($g),ch=Bf($g);\nfunction dh(a){if(a===$g)throw Error(y(174));return a}function eh(a,b){I(ch,b);I(bh,a);I(ah,$g);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:mb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=mb(b,a)}H(ah);I(ah,b)}function fh(){H(ah);H(bh);H(ch)}function gh(a){dh(ch.current);var b=dh(ah.current);var c=mb(b,a.type);b!==c&&(I(bh,a),I(ah,c))}function hh(a){bh.current===a&&(H(ah),H(bh))}var P=Bf(0);\nfunction ih(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&64))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var jh=null,kh=null,lh=!1;\nfunction mh(a,b){var c=nh(5,null,null,0);c.elementType=\"DELETED\";c.type=\"DELETED\";c.stateNode=b;c.return=a;c.flags=8;null!==a.lastEffect?(a.lastEffect.nextEffect=c,a.lastEffect=c):a.firstEffect=a.lastEffect=c}function oh(a,b){switch(a.tag){case 5:var c=a.type;b=1!==b.nodeType||c.toLowerCase()!==b.nodeName.toLowerCase()?null:b;return null!==b?(a.stateNode=b,!0):!1;case 6:return b=\"\"===a.pendingProps||3!==b.nodeType?null:b,null!==b?(a.stateNode=b,!0):!1;case 13:return!1;default:return!1}}\nfunction ph(a){if(lh){var b=kh;if(b){var c=b;if(!oh(a,b)){b=rf(c.nextSibling);if(!b||!oh(a,b)){a.flags=a.flags&-1025|2;lh=!1;jh=a;return}mh(jh,c)}jh=a;kh=rf(b.firstChild)}else a.flags=a.flags&-1025|2,lh=!1,jh=a}}function qh(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&13!==a.tag;)a=a.return;jh=a}\nfunction rh(a){if(a!==jh)return!1;if(!lh)return qh(a),lh=!0,!1;var b=a.type;if(5!==a.tag||\"head\"!==b&&\"body\"!==b&&!nf(b,a.memoizedProps))for(b=kh;b;)mh(a,b),b=rf(b.nextSibling);qh(a);if(13===a.tag){a=a.memoizedState;a=null!==a?a.dehydrated:null;if(!a)throw Error(y(317));a:{a=a.nextSibling;for(b=0;a;){if(8===a.nodeType){var c=a.data;if(\"/$\"===c){if(0===b){kh=rf(a.nextSibling);break a}b--}else\"$\"!==c&&\"$!\"!==c&&\"$?\"!==c||b++}a=a.nextSibling}kh=null}}else kh=jh?rf(a.stateNode.nextSibling):null;return!0}\nfunction sh(){kh=jh=null;lh=!1}var th=[];function uh(){for(var a=0;af))throw Error(y(301));f+=1;T=S=null;b.updateQueue=null;vh.current=Fh;a=c(d,e)}while(zh)}vh.current=Gh;b=null!==S&&null!==S.next;xh=0;T=S=R=null;yh=!1;if(b)throw Error(y(300));return a}function Hh(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===T?R.memoizedState=T=a:T=T.next=a;return T}\nfunction Ih(){if(null===S){var a=R.alternate;a=null!==a?a.memoizedState:null}else a=S.next;var b=null===T?R.memoizedState:T.next;if(null!==b)T=b,S=a;else{if(null===a)throw Error(y(310));S=a;a={memoizedState:S.memoizedState,baseState:S.baseState,baseQueue:S.baseQueue,queue:S.queue,next:null};null===T?R.memoizedState=T=a:T=T.next=a}return T}function Jh(a,b){return\"function\"===typeof b?b(a):b}\nfunction Kh(a){var b=Ih(),c=b.queue;if(null===c)throw Error(y(311));c.lastRenderedReducer=a;var d=S,e=d.baseQueue,f=c.pending;if(null!==f){if(null!==e){var g=e.next;e.next=f.next;f.next=g}d.baseQueue=e=f;c.pending=null}if(null!==e){e=e.next;d=d.baseState;var h=g=f=null,k=e;do{var l=k.lane;if((xh&l)===l)null!==h&&(h=h.next={lane:0,action:k.action,eagerReducer:k.eagerReducer,eagerState:k.eagerState,next:null}),d=k.eagerReducer===a?k.eagerState:a(d,k.action);else{var n={lane:l,action:k.action,eagerReducer:k.eagerReducer,\neagerState:k.eagerState,next:null};null===h?(g=h=n,f=d):h=h.next=n;R.lanes|=l;Dg|=l}k=k.next}while(null!==k&&k!==e);null===h?f=d:h.next=g;He(d,b.memoizedState)||(ug=!0);b.memoizedState=d;b.baseState=f;b.baseQueue=h;c.lastRenderedState=d}return[b.memoizedState,c.dispatch]}\nfunction Lh(a){var b=Ih(),c=b.queue;if(null===c)throw Error(y(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);He(f,b.memoizedState)||(ug=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}\nfunction Mh(a,b,c){var d=b._getVersion;d=d(b._source);var e=b._workInProgressVersionPrimary;if(null!==e)a=e===d;else if(a=a.mutableReadLanes,a=(xh&a)===a)b._workInProgressVersionPrimary=d,th.push(b);if(a)return c(b._source);th.push(b);throw Error(y(350));}\nfunction Nh(a,b,c,d){var e=U;if(null===e)throw Error(y(349));var f=b._getVersion,g=f(b._source),h=vh.current,k=h.useState(function(){return Mh(e,b,c)}),l=k[1],n=k[0];k=T;var A=a.memoizedState,p=A.refs,C=p.getSnapshot,x=A.source;A=A.subscribe;var w=R;a.memoizedState={refs:p,source:b,subscribe:d};h.useEffect(function(){p.getSnapshot=c;p.setSnapshot=l;var a=f(b._source);if(!He(g,a)){a=c(b._source);He(n,a)||(l(a),a=Ig(w),e.mutableReadLanes|=a&e.pendingLanes);a=e.mutableReadLanes;e.entangledLanes|=a;for(var d=\ne.entanglements,h=a;0c?98:c,function(){a(!0)});gg(97\\x3c/script>\",a=a.removeChild(a.firstChild)):\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[wf]=b;a[xf]=d;Bi(a,b,!1,!1);b.stateNode=a;g=wb(c,d);switch(c){case \"dialog\":G(\"cancel\",a);G(\"close\",a);\ne=d;break;case \"iframe\":case \"object\":case \"embed\":G(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eJi&&(b.flags|=64,f=!0,Fi(d,!1),b.lanes=33554432)}else{if(!f)if(a=ih(g),null!==a){if(b.flags|=64,f=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Fi(d,!0),null===d.tail&&\"hidden\"===d.tailMode&&!g.alternate&&!lh)return b=b.lastEffect=d.lastEffect,null!==b&&(b.nextEffect=null),null}else 2*O()-d.renderingStartTime>Ji&&1073741824!==c&&(b.flags|=\n64,f=!0,Fi(d,!1),b.lanes=33554432);d.isBackwards?(g.sibling=b.child,b.child=g):(c=d.last,null!==c?c.sibling=g:b.child=g,d.last=g)}return null!==d.tail?(c=d.tail,d.rendering=c,d.tail=c.sibling,d.lastEffect=b.lastEffect,d.renderingStartTime=O(),c.sibling=null,b=P.current,I(P,f?b&1|2:b&1),c):null;case 23:case 24:return Ki(),null!==a&&null!==a.memoizedState!==(null!==b.memoizedState)&&\"unstable-defer-without-hiding\"!==d.mode&&(b.flags|=4),null}throw Error(y(156,b.tag));}\nfunction Li(a){switch(a.tag){case 1:Ff(a.type)&&Gf();var b=a.flags;return b&4096?(a.flags=b&-4097|64,a):null;case 3:fh();H(N);H(M);uh();b=a.flags;if(0!==(b&64))throw Error(y(285));a.flags=b&-4097|64;return a;case 5:return hh(a),null;case 13:return H(P),b=a.flags,b&4096?(a.flags=b&-4097|64,a):null;case 19:return H(P),null;case 4:return fh(),null;case 10:return rg(a),null;case 23:case 24:return Ki(),null;default:return null}}\nfunction Mi(a,b){try{var c=\"\",d=b;do c+=Qa(d),d=d.return;while(d);var e=c}catch(f){e=\"\\nError generating stack: \"+f.message+\"\\n\"+f.stack}return{value:a,source:b,stack:e}}function Ni(a,b){try{console.error(b.value)}catch(c){setTimeout(function(){throw c;})}}var Oi=\"function\"===typeof WeakMap?WeakMap:Map;function Pi(a,b,c){c=zg(-1,c);c.tag=3;c.payload={element:null};var d=b.value;c.callback=function(){Qi||(Qi=!0,Ri=d);Ni(a,b)};return c}\nfunction Si(a,b,c){c=zg(-1,c);c.tag=3;var d=a.type.getDerivedStateFromError;if(\"function\"===typeof d){var e=b.value;c.payload=function(){Ni(a,b);return d(e)}}var f=a.stateNode;null!==f&&\"function\"===typeof f.componentDidCatch&&(c.callback=function(){\"function\"!==typeof d&&(null===Ti?Ti=new Set([this]):Ti.add(this),Ni(a,b));var c=b.stack;this.componentDidCatch(b.value,{componentStack:null!==c?c:\"\"})});return c}var Ui=\"function\"===typeof WeakSet?WeakSet:Set;\nfunction Vi(a){var b=a.ref;if(null!==b)if(\"function\"===typeof b)try{b(null)}catch(c){Wi(a,c)}else b.current=null}function Xi(a,b){switch(b.tag){case 0:case 11:case 15:case 22:return;case 1:if(b.flags&256&&null!==a){var c=a.memoizedProps,d=a.memoizedState;a=b.stateNode;b=a.getSnapshotBeforeUpdate(b.elementType===b.type?c:lg(b.type,c),d);a.__reactInternalSnapshotBeforeUpdate=b}return;case 3:b.flags&256&&qf(b.stateNode.containerInfo);return;case 5:case 6:case 4:case 17:return}throw Error(y(163));}\nfunction Yi(a,b,c){switch(c.tag){case 0:case 11:case 15:case 22:b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;do{if(3===(a.tag&3)){var d=a.create;a.destroy=d()}a=a.next}while(a!==b)}b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;do{var e=a;d=e.next;e=e.tag;0!==(e&4)&&0!==(e&1)&&(Zi(c,a),$i(c,a));a=d}while(a!==b)}return;case 1:a=c.stateNode;c.flags&4&&(null===b?a.componentDidMount():(d=c.elementType===c.type?b.memoizedProps:lg(c.type,b.memoizedProps),a.componentDidUpdate(d,\nb.memoizedState,a.__reactInternalSnapshotBeforeUpdate)));b=c.updateQueue;null!==b&&Eg(c,b,a);return;case 3:b=c.updateQueue;if(null!==b){a=null;if(null!==c.child)switch(c.child.tag){case 5:a=c.child.stateNode;break;case 1:a=c.child.stateNode}Eg(c,b,a)}return;case 5:a=c.stateNode;null===b&&c.flags&4&&mf(c.type,c.memoizedProps)&&a.focus();return;case 6:return;case 4:return;case 12:return;case 13:null===c.memoizedState&&(c=c.alternate,null!==c&&(c=c.memoizedState,null!==c&&(c=c.dehydrated,null!==c&&Cc(c))));\nreturn;case 19:case 17:case 20:case 21:case 23:case 24:return}throw Error(y(163));}\nfunction aj(a,b){for(var c=a;;){if(5===c.tag){var d=c.stateNode;if(b)d=d.style,\"function\"===typeof d.setProperty?d.setProperty(\"display\",\"none\",\"important\"):d.display=\"none\";else{d=c.stateNode;var e=c.memoizedProps.style;e=void 0!==e&&null!==e&&e.hasOwnProperty(\"display\")?e.display:null;d.style.display=sb(\"display\",e)}}else if(6===c.tag)c.stateNode.nodeValue=b?\"\":c.memoizedProps;else if((23!==c.tag&&24!==c.tag||null===c.memoizedState||c===a)&&null!==c.child){c.child.return=c;c=c.child;continue}if(c===\na)break;for(;null===c.sibling;){if(null===c.return||c.return===a)return;c=c.return}c.sibling.return=c.return;c=c.sibling}}\nfunction bj(a,b){if(Mf&&\"function\"===typeof Mf.onCommitFiberUnmount)try{Mf.onCommitFiberUnmount(Lf,b)}catch(f){}switch(b.tag){case 0:case 11:case 14:case 15:case 22:a=b.updateQueue;if(null!==a&&(a=a.lastEffect,null!==a)){var c=a=a.next;do{var d=c,e=d.destroy;d=d.tag;if(void 0!==e)if(0!==(d&4))Zi(b,c);else{d=b;try{e()}catch(f){Wi(d,f)}}c=c.next}while(c!==a)}break;case 1:Vi(b);a=b.stateNode;if(\"function\"===typeof a.componentWillUnmount)try{a.props=b.memoizedProps,a.state=b.memoizedState,a.componentWillUnmount()}catch(f){Wi(b,\nf)}break;case 5:Vi(b);break;case 4:cj(a,b)}}function dj(a){a.alternate=null;a.child=null;a.dependencies=null;a.firstEffect=null;a.lastEffect=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.return=null;a.updateQueue=null}function ej(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction fj(a){a:{for(var b=a.return;null!==b;){if(ej(b))break a;b=b.return}throw Error(y(160));}var c=b;b=c.stateNode;switch(c.tag){case 5:var d=!1;break;case 3:b=b.containerInfo;d=!0;break;case 4:b=b.containerInfo;d=!0;break;default:throw Error(y(161));}c.flags&16&&(pb(b,\"\"),c.flags&=-17);a:b:for(c=a;;){for(;null===c.sibling;){if(null===c.return||ej(c.return)){c=null;break a}c=c.return}c.sibling.return=c.return;for(c=c.sibling;5!==c.tag&&6!==c.tag&&18!==c.tag;){if(c.flags&2)continue b;if(null===\nc.child||4===c.tag)continue b;else c.child.return=c,c=c.child}if(!(c.flags&2)){c=c.stateNode;break a}}d?gj(a,c,b):hj(a,c,b)}\nfunction gj(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=jf));else if(4!==d&&(a=a.child,null!==a))for(gj(a,b,c),a=a.sibling;null!==a;)gj(a,b,c),a=a.sibling}\nfunction hj(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(hj(a,b,c),a=a.sibling;null!==a;)hj(a,b,c),a=a.sibling}\nfunction cj(a,b){for(var c=b,d=!1,e,f;;){if(!d){d=c.return;a:for(;;){if(null===d)throw Error(y(160));e=d.stateNode;switch(d.tag){case 5:f=!1;break a;case 3:e=e.containerInfo;f=!0;break a;case 4:e=e.containerInfo;f=!0;break a}d=d.return}d=!0}if(5===c.tag||6===c.tag){a:for(var g=a,h=c,k=h;;)if(bj(g,k),null!==k.child&&4!==k.tag)k.child.return=k,k=k.child;else{if(k===h)break a;for(;null===k.sibling;){if(null===k.return||k.return===h)break a;k=k.return}k.sibling.return=k.return;k=k.sibling}f?(g=e,h=c.stateNode,\n8===g.nodeType?g.parentNode.removeChild(h):g.removeChild(h)):e.removeChild(c.stateNode)}else if(4===c.tag){if(null!==c.child){e=c.stateNode.containerInfo;f=!0;c.child.return=c;c=c.child;continue}}else if(bj(a,c),null!==c.child){c.child.return=c;c=c.child;continue}if(c===b)break;for(;null===c.sibling;){if(null===c.return||c.return===b)return;c=c.return;4===c.tag&&(d=!1)}c.sibling.return=c.return;c=c.sibling}}\nfunction ij(a,b){switch(b.tag){case 0:case 11:case 14:case 15:case 22:var c=b.updateQueue;c=null!==c?c.lastEffect:null;if(null!==c){var d=c=c.next;do 3===(d.tag&3)&&(a=d.destroy,d.destroy=void 0,void 0!==a&&a()),d=d.next;while(d!==c)}return;case 1:return;case 5:c=b.stateNode;if(null!=c){d=b.memoizedProps;var e=null!==a?a.memoizedProps:d;a=b.type;var f=b.updateQueue;b.updateQueue=null;if(null!==f){c[xf]=d;\"input\"===a&&\"radio\"===d.type&&null!=d.name&&$a(c,d);wb(a,e);b=wb(a,d);for(e=0;ee&&(e=g);c&=~f}c=e;c=O()-c;c=(120>c?120:480>c?480:1080>c?1080:1920>c?1920:3E3>c?3E3:4320>\nc?4320:1960*nj(c/1960))-c;if(10 component higher in the tree to provide a loading indicator or placeholder to display.\")}5!==V&&(V=2);k=Mi(k,h);p=\ng;do{switch(p.tag){case 3:f=k;p.flags|=4096;b&=-b;p.lanes|=b;var J=Pi(p,f,b);Bg(p,J);break a;case 1:f=k;var K=p.type,Q=p.stateNode;if(0===(p.flags&64)&&(\"function\"===typeof K.getDerivedStateFromError||null!==Q&&\"function\"===typeof Q.componentDidCatch&&(null===Ti||!Ti.has(Q)))){p.flags|=4096;b&=-b;p.lanes|=b;var L=Si(p,f,b);Bg(p,L);break a}}p=p.return}while(null!==p)}Zj(c)}catch(va){b=va;Y===c&&null!==c&&(Y=c=c.return);continue}break}while(1)}\nfunction Pj(){var a=oj.current;oj.current=Gh;return null===a?Gh:a}function Tj(a,b){var c=X;X|=16;var d=Pj();U===a&&W===b||Qj(a,b);do try{ak();break}catch(e){Sj(a,e)}while(1);qg();X=c;oj.current=d;if(null!==Y)throw Error(y(261));U=null;W=0;return V}function ak(){for(;null!==Y;)bk(Y)}function Rj(){for(;null!==Y&&!Qf();)bk(Y)}function bk(a){var b=ck(a.alternate,a,qj);a.memoizedProps=a.pendingProps;null===b?Zj(a):Y=b;pj.current=null}\nfunction Zj(a){var b=a;do{var c=b.alternate;a=b.return;if(0===(b.flags&2048)){c=Gi(c,b,qj);if(null!==c){Y=c;return}c=b;if(24!==c.tag&&23!==c.tag||null===c.memoizedState||0!==(qj&1073741824)||0===(c.mode&4)){for(var d=0,e=c.child;null!==e;)d|=e.lanes|e.childLanes,e=e.sibling;c.childLanes=d}null!==a&&0===(a.flags&2048)&&(null===a.firstEffect&&(a.firstEffect=b.firstEffect),null!==b.lastEffect&&(null!==a.lastEffect&&(a.lastEffect.nextEffect=b.firstEffect),a.lastEffect=b.lastEffect),1g&&(h=g,g=J,J=h),h=Le(t,J),f=Le(t,g),h&&f&&(1!==v.rangeCount||v.anchorNode!==h.node||v.anchorOffset!==h.offset||v.focusNode!==f.node||v.focusOffset!==f.offset)&&(q=q.createRange(),q.setStart(h.node,h.offset),v.removeAllRanges(),J>g?(v.addRange(q),v.extend(f.node,f.offset)):(q.setEnd(f.node,f.offset),v.addRange(q))))));q=[];for(v=t;v=v.parentNode;)1===v.nodeType&&q.push({element:v,left:v.scrollLeft,top:v.scrollTop});\"function\"===typeof t.focus&&t.focus();for(t=\n0;tO()-jj?Qj(a,0):uj|=c);Mj(a,b)}function lj(a,b){var c=a.stateNode;null!==c&&c.delete(b);b=0;0===b&&(b=a.mode,0===(b&2)?b=1:0===(b&4)?b=99===eg()?1:2:(0===Gj&&(Gj=tj),b=Yc(62914560&~Gj),0===b&&(b=4194304)));c=Hg();a=Kj(a,b);null!==a&&($c(a,b,c),Mj(a,c))}var ck;\nck=function(a,b,c){var d=b.lanes;if(null!==a)if(a.memoizedProps!==b.pendingProps||N.current)ug=!0;else if(0!==(c&d))ug=0!==(a.flags&16384)?!0:!1;else{ug=!1;switch(b.tag){case 3:ri(b);sh();break;case 5:gh(b);break;case 1:Ff(b.type)&&Jf(b);break;case 4:eh(b,b.stateNode.containerInfo);break;case 10:d=b.memoizedProps.value;var e=b.type._context;I(mg,e._currentValue);e._currentValue=d;break;case 13:if(null!==b.memoizedState){if(0!==(c&b.child.childLanes))return ti(a,b,c);I(P,P.current&1);b=hi(a,b,c);return null!==\nb?b.sibling:null}I(P,P.current&1);break;case 19:d=0!==(c&b.childLanes);if(0!==(a.flags&64)){if(d)return Ai(a,b,c);b.flags|=64}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null,e.lastEffect=null);I(P,P.current);if(d)break;else return null;case 23:case 24:return b.lanes=0,mi(a,b,c)}return hi(a,b,c)}else ug=!1;b.lanes=0;switch(b.tag){case 2:d=b.type;null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);a=b.pendingProps;e=Ef(b,M.current);tg(b,c);e=Ch(null,b,d,a,e,c);b.flags|=1;if(\"object\"===\ntypeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof){b.tag=1;b.memoizedState=null;b.updateQueue=null;if(Ff(d)){var f=!0;Jf(b)}else f=!1;b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null;xg(b);var g=d.getDerivedStateFromProps;\"function\"===typeof g&&Gg(b,d,g,a);e.updater=Kg;b.stateNode=e;e._reactInternals=b;Og(b,d,a,c);b=qi(null,b,d,!0,f,c)}else b.tag=0,fi(null,b,e,c),b=b.child;return b;case 16:e=b.elementType;a:{null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);\na=b.pendingProps;f=e._init;e=f(e._payload);b.type=e;f=b.tag=hk(e);a=lg(e,a);switch(f){case 0:b=li(null,b,e,a,c);break a;case 1:b=pi(null,b,e,a,c);break a;case 11:b=gi(null,b,e,a,c);break a;case 14:b=ii(null,b,e,lg(e.type,a),d,c);break a}throw Error(y(306,e,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),li(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),pi(a,b,d,e,c);case 3:ri(b);d=b.updateQueue;if(null===a||null===d)throw Error(y(282));\nd=b.pendingProps;e=b.memoizedState;e=null!==e?e.element:null;yg(a,b);Cg(b,d,null,c);d=b.memoizedState.element;if(d===e)sh(),b=hi(a,b,c);else{e=b.stateNode;if(f=e.hydrate)kh=rf(b.stateNode.containerInfo.firstChild),jh=b,f=lh=!0;if(f){a=e.mutableSourceEagerHydrationData;if(null!=a)for(e=0;e=\nE};k=function(){};exports.unstable_forceFrameRate=function(a){0>a||125>>1,e=a[d];if(void 0!==e&&0I(n,c))void 0!==r&&0>I(r,n)?(a[d]=r,a[v]=c,d=v):(a[d]=n,a[m]=c,d=m);else if(void 0!==r&&0>I(r,c))a[d]=r,a[v]=c,d=v;else break a}}return b}return null}function I(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}var L=[],M=[],N=1,O=null,P=3,Q=!1,R=!1,S=!1;\nfunction T(a){for(var b=J(M);null!==b;){if(null===b.callback)K(M);else if(b.startTime<=a)K(M),b.sortIndex=b.expirationTime,H(L,b);else break;b=J(M)}}function U(a){S=!1;T(a);if(!R)if(null!==J(L))R=!0,f(V);else{var b=J(M);null!==b&&g(U,b.startTime-a)}}\nfunction V(a,b){R=!1;S&&(S=!1,h());Q=!0;var c=P;try{T(b);for(O=J(L);null!==O&&(!(O.expirationTime>b)||a&&!exports.unstable_shouldYield());){var d=O.callback;if(\"function\"===typeof d){O.callback=null;P=O.priorityLevel;var e=d(O.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?O.callback=e:O===J(L)&&K(L);T(b)}else K(L);O=J(L)}if(null!==O)var m=!0;else{var n=J(M);null!==n&&g(U,n.startTime-b);m=!1}return m}finally{O=null,P=c,Q=!1}}var W=k;exports.unstable_IdlePriority=5;\nexports.unstable_ImmediatePriority=1;exports.unstable_LowPriority=4;exports.unstable_NormalPriority=3;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=2;exports.unstable_cancelCallback=function(a){a.callback=null};exports.unstable_continueExecution=function(){R||Q||(R=!0,f(V))};exports.unstable_getCurrentPriorityLevel=function(){return P};exports.unstable_getFirstCallbackNode=function(){return J(L)};\nexports.unstable_next=function(a){switch(P){case 1:case 2:case 3:var b=3;break;default:b=P}var c=P;P=b;try{return a()}finally{P=c}};exports.unstable_pauseExecution=function(){};exports.unstable_requestPaint=W;exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=P;P=a;try{return b()}finally{P=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();\"object\"===typeof c&&null!==c?(c=c.delay,c=\"number\"===typeof c&&0d?(a.sortIndex=c,H(M,a),null===J(L)&&a===J(M)&&(S?h():S=!0,g(U,c-d))):(a.sortIndex=e,H(L,a),R||Q||(R=!0,f(V)));return a};\nexports.unstable_wrapCallback=function(a){var b=P;return function(){var c=P;P=b;try{return a.apply(this,arguments)}finally{P=c}}};\n","/**\n * Copyright (c) 2014-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\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.bodyOpenClassName = exports.portalClassName = undefined;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = require(\"react-dom\");\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _ModalPortal = require(\"./ModalPortal\");\n\nvar _ModalPortal2 = _interopRequireDefault(_ModalPortal);\n\nvar _ariaAppHider = require(\"../helpers/ariaAppHider\");\n\nvar ariaAppHider = _interopRequireWildcard(_ariaAppHider);\n\nvar _safeHTMLElement = require(\"../helpers/safeHTMLElement\");\n\nvar _safeHTMLElement2 = _interopRequireDefault(_safeHTMLElement);\n\nvar _reactLifecyclesCompat = require(\"react-lifecycles-compat\");\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar portalClassName = exports.portalClassName = \"ReactModalPortal\";\nvar bodyOpenClassName = exports.bodyOpenClassName = \"ReactModal__Body--open\";\n\nvar isReact16 = _safeHTMLElement.canUseDOM && _reactDom2.default.createPortal !== undefined;\n\nvar getCreatePortal = function getCreatePortal() {\n return isReact16 ? _reactDom2.default.createPortal : _reactDom2.default.unstable_renderSubtreeIntoContainer;\n};\n\nfunction getParentElement(parentSelector) {\n return parentSelector();\n}\n\nvar Modal = function (_Component) {\n _inherits(Modal, _Component);\n\n function Modal() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, Modal);\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 = (_this = _possibleConstructorReturn(this, (_ref = Modal.__proto__ || Object.getPrototypeOf(Modal)).call.apply(_ref, [this].concat(args))), _this), _this.removePortal = function () {\n !isReact16 && _reactDom2.default.unmountComponentAtNode(_this.node);\n var parent = getParentElement(_this.props.parentSelector);\n if (parent && parent.contains(_this.node)) {\n parent.removeChild(_this.node);\n } else {\n // eslint-disable-next-line no-console\n console.warn('React-Modal: \"parentSelector\" prop did not returned any DOM ' + \"element. Make sure that the parent element is unmounted to \" + \"avoid any memory leaks.\");\n }\n }, _this.portalRef = function (ref) {\n _this.portal = ref;\n }, _this.renderPortal = function (props) {\n var createPortal = getCreatePortal();\n var portal = createPortal(_this, _react2.default.createElement(_ModalPortal2.default, _extends({ defaultStyles: Modal.defaultStyles }, props)), _this.node);\n _this.portalRef(portal);\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n _createClass(Modal, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (!_safeHTMLElement.canUseDOM) return;\n\n if (!isReact16) {\n this.node = document.createElement(\"div\");\n }\n this.node.className = this.props.portalClassName;\n\n var parent = getParentElement(this.props.parentSelector);\n parent.appendChild(this.node);\n\n !isReact16 && this.renderPortal(this.props);\n }\n }, {\n key: \"getSnapshotBeforeUpdate\",\n value: function getSnapshotBeforeUpdate(prevProps) {\n var prevParent = getParentElement(prevProps.parentSelector);\n var nextParent = getParentElement(this.props.parentSelector);\n return { prevParent: prevParent, nextParent: nextParent };\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, _, snapshot) {\n if (!_safeHTMLElement.canUseDOM) return;\n var _props = this.props,\n isOpen = _props.isOpen,\n portalClassName = _props.portalClassName;\n\n\n if (prevProps.portalClassName !== portalClassName) {\n this.node.className = portalClassName;\n }\n\n var prevParent = snapshot.prevParent,\n nextParent = snapshot.nextParent;\n\n if (nextParent !== prevParent) {\n prevParent.removeChild(this.node);\n nextParent.appendChild(this.node);\n }\n\n // Stop unnecessary renders if modal is remaining closed\n if (!prevProps.isOpen && !isOpen) return;\n\n !isReact16 && this.renderPortal(this.props);\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (!_safeHTMLElement.canUseDOM || !this.node || !this.portal) return;\n\n var state = this.portal.state;\n var now = Date.now();\n var closesAt = state.isOpen && this.props.closeTimeoutMS && (state.closesAt || now + this.props.closeTimeoutMS);\n\n if (closesAt) {\n if (!state.beforeClose) {\n this.portal.closeWithTimeout();\n }\n\n setTimeout(this.removePortal, closesAt - now);\n } else {\n this.removePortal();\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n if (!_safeHTMLElement.canUseDOM || !isReact16) {\n return null;\n }\n\n if (!this.node && isReact16) {\n this.node = document.createElement(\"div\");\n }\n\n var createPortal = getCreatePortal();\n return createPortal(_react2.default.createElement(_ModalPortal2.default, _extends({\n ref: this.portalRef,\n defaultStyles: Modal.defaultStyles\n }, this.props)), this.node);\n }\n }], [{\n key: \"setAppElement\",\n value: function setAppElement(element) {\n ariaAppHider.setElement(element);\n }\n\n /* eslint-disable react/no-unused-prop-types */\n\n /* eslint-enable react/no-unused-prop-types */\n\n }]);\n\n return Modal;\n}(_react.Component);\n\nModal.propTypes = {\n isOpen: _propTypes2.default.bool.isRequired,\n style: _propTypes2.default.shape({\n content: _propTypes2.default.object,\n overlay: _propTypes2.default.object\n }),\n portalClassName: _propTypes2.default.string,\n bodyOpenClassName: _propTypes2.default.string,\n htmlOpenClassName: _propTypes2.default.string,\n className: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.shape({\n base: _propTypes2.default.string.isRequired,\n afterOpen: _propTypes2.default.string.isRequired,\n beforeClose: _propTypes2.default.string.isRequired\n })]),\n overlayClassName: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.shape({\n base: _propTypes2.default.string.isRequired,\n afterOpen: _propTypes2.default.string.isRequired,\n beforeClose: _propTypes2.default.string.isRequired\n })]),\n appElement: _propTypes2.default.instanceOf(_safeHTMLElement2.default),\n onAfterOpen: _propTypes2.default.func,\n onRequestClose: _propTypes2.default.func,\n closeTimeoutMS: _propTypes2.default.number,\n ariaHideApp: _propTypes2.default.bool,\n shouldFocusAfterRender: _propTypes2.default.bool,\n shouldCloseOnOverlayClick: _propTypes2.default.bool,\n shouldReturnFocusAfterClose: _propTypes2.default.bool,\n preventScroll: _propTypes2.default.bool,\n parentSelector: _propTypes2.default.func,\n aria: _propTypes2.default.object,\n data: _propTypes2.default.object,\n role: _propTypes2.default.string,\n contentLabel: _propTypes2.default.string,\n shouldCloseOnEsc: _propTypes2.default.bool,\n overlayRef: _propTypes2.default.func,\n contentRef: _propTypes2.default.func,\n id: _propTypes2.default.string,\n overlayElement: _propTypes2.default.func,\n contentElement: _propTypes2.default.func\n};\nModal.defaultProps = {\n isOpen: false,\n portalClassName: portalClassName,\n bodyOpenClassName: bodyOpenClassName,\n role: \"dialog\",\n ariaHideApp: true,\n closeTimeoutMS: 0,\n shouldFocusAfterRender: true,\n shouldCloseOnEsc: true,\n shouldCloseOnOverlayClick: true,\n shouldReturnFocusAfterClose: true,\n preventScroll: false,\n parentSelector: function parentSelector() {\n return document.body;\n },\n overlayElement: function overlayElement(props, contentEl) {\n return _react2.default.createElement(\n \"div\",\n props,\n contentEl\n );\n },\n contentElement: function contentElement(props, children) {\n return _react2.default.createElement(\n \"div\",\n props,\n children\n );\n }\n};\nModal.defaultStyles = {\n overlay: {\n position: \"fixed\",\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n backgroundColor: \"rgba(255, 255, 255, 0.75)\"\n },\n content: {\n position: \"absolute\",\n top: \"40px\",\n left: \"40px\",\n right: \"40px\",\n bottom: \"40px\",\n border: \"1px solid #ccc\",\n background: \"#fff\",\n overflow: \"auto\",\n WebkitOverflowScrolling: \"touch\",\n borderRadius: \"4px\",\n outline: \"none\",\n padding: \"20px\"\n }\n};\n\n\n(0, _reactLifecyclesCompat.polyfill)(Modal);\n\nexports.default = Modal;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _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 _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require(\"react\");\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _focusManager = require(\"../helpers/focusManager\");\n\nvar focusManager = _interopRequireWildcard(_focusManager);\n\nvar _scopeTab = require(\"../helpers/scopeTab\");\n\nvar _scopeTab2 = _interopRequireDefault(_scopeTab);\n\nvar _ariaAppHider = require(\"../helpers/ariaAppHider\");\n\nvar ariaAppHider = _interopRequireWildcard(_ariaAppHider);\n\nvar _classList = require(\"../helpers/classList\");\n\nvar classList = _interopRequireWildcard(_classList);\n\nvar _safeHTMLElement = require(\"../helpers/safeHTMLElement\");\n\nvar _safeHTMLElement2 = _interopRequireDefault(_safeHTMLElement);\n\nvar _portalOpenInstances = require(\"../helpers/portalOpenInstances\");\n\nvar _portalOpenInstances2 = _interopRequireDefault(_portalOpenInstances);\n\nrequire(\"../helpers/bodyTrap\");\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n// so that our CSS is statically analyzable\nvar CLASS_NAMES = {\n overlay: \"ReactModal__Overlay\",\n content: \"ReactModal__Content\"\n};\n\nvar TAB_KEY = 9;\nvar ESC_KEY = 27;\n\nvar ariaHiddenInstances = 0;\n\nvar ModalPortal = function (_Component) {\n _inherits(ModalPortal, _Component);\n\n function ModalPortal(props) {\n _classCallCheck(this, ModalPortal);\n\n var _this = _possibleConstructorReturn(this, (ModalPortal.__proto__ || Object.getPrototypeOf(ModalPortal)).call(this, props));\n\n _this.setOverlayRef = function (overlay) {\n _this.overlay = overlay;\n _this.props.overlayRef && _this.props.overlayRef(overlay);\n };\n\n _this.setContentRef = function (content) {\n _this.content = content;\n _this.props.contentRef && _this.props.contentRef(content);\n };\n\n _this.afterClose = function () {\n var _this$props = _this.props,\n appElement = _this$props.appElement,\n ariaHideApp = _this$props.ariaHideApp,\n htmlOpenClassName = _this$props.htmlOpenClassName,\n bodyOpenClassName = _this$props.bodyOpenClassName;\n\n // Remove classes.\n\n bodyOpenClassName && classList.remove(document.body, bodyOpenClassName);\n\n htmlOpenClassName && classList.remove(document.getElementsByTagName(\"html\")[0], htmlOpenClassName);\n\n // Reset aria-hidden attribute if all modals have been removed\n if (ariaHideApp && ariaHiddenInstances > 0) {\n ariaHiddenInstances -= 1;\n\n if (ariaHiddenInstances === 0) {\n ariaAppHider.show(appElement);\n }\n }\n\n if (_this.props.shouldFocusAfterRender) {\n if (_this.props.shouldReturnFocusAfterClose) {\n focusManager.returnFocus(_this.props.preventScroll);\n focusManager.teardownScopedFocus();\n } else {\n focusManager.popWithoutFocus();\n }\n }\n\n if (_this.props.onAfterClose) {\n _this.props.onAfterClose();\n }\n\n _portalOpenInstances2.default.deregister(_this);\n };\n\n _this.open = function () {\n _this.beforeOpen();\n if (_this.state.afterOpen && _this.state.beforeClose) {\n clearTimeout(_this.closeTimer);\n _this.setState({ beforeClose: false });\n } else {\n if (_this.props.shouldFocusAfterRender) {\n focusManager.setupScopedFocus(_this.node);\n focusManager.markForFocusLater();\n }\n\n _this.setState({ isOpen: true }, function () {\n _this.setState({ afterOpen: true });\n\n if (_this.props.isOpen && _this.props.onAfterOpen) {\n _this.props.onAfterOpen({\n overlayEl: _this.overlay,\n contentEl: _this.content\n });\n }\n });\n }\n };\n\n _this.close = function () {\n if (_this.props.closeTimeoutMS > 0) {\n _this.closeWithTimeout();\n } else {\n _this.closeWithoutTimeout();\n }\n };\n\n _this.focusContent = function () {\n return _this.content && !_this.contentHasFocus() && _this.content.focus({ preventScroll: true });\n };\n\n _this.closeWithTimeout = function () {\n var closesAt = Date.now() + _this.props.closeTimeoutMS;\n _this.setState({ beforeClose: true, closesAt: closesAt }, function () {\n _this.closeTimer = setTimeout(_this.closeWithoutTimeout, _this.state.closesAt - Date.now());\n });\n };\n\n _this.closeWithoutTimeout = function () {\n _this.setState({\n beforeClose: false,\n isOpen: false,\n afterOpen: false,\n closesAt: null\n }, _this.afterClose);\n };\n\n _this.handleKeyDown = function (event) {\n if (event.keyCode === TAB_KEY) {\n (0, _scopeTab2.default)(_this.content, event);\n }\n\n if (_this.props.shouldCloseOnEsc && event.keyCode === ESC_KEY) {\n event.stopPropagation();\n _this.requestClose(event);\n }\n };\n\n _this.handleOverlayOnClick = function (event) {\n if (_this.shouldClose === null) {\n _this.shouldClose = true;\n }\n\n if (_this.shouldClose && _this.props.shouldCloseOnOverlayClick) {\n if (_this.ownerHandlesClose()) {\n _this.requestClose(event);\n } else {\n _this.focusContent();\n }\n }\n _this.shouldClose = null;\n };\n\n _this.handleContentOnMouseUp = function () {\n _this.shouldClose = false;\n };\n\n _this.handleOverlayOnMouseDown = function (event) {\n if (!_this.props.shouldCloseOnOverlayClick && event.target == _this.overlay) {\n event.preventDefault();\n }\n };\n\n _this.handleContentOnClick = function () {\n _this.shouldClose = false;\n };\n\n _this.handleContentOnMouseDown = function () {\n _this.shouldClose = false;\n };\n\n _this.requestClose = function (event) {\n return _this.ownerHandlesClose() && _this.props.onRequestClose(event);\n };\n\n _this.ownerHandlesClose = function () {\n return _this.props.onRequestClose;\n };\n\n _this.shouldBeClosed = function () {\n return !_this.state.isOpen && !_this.state.beforeClose;\n };\n\n _this.contentHasFocus = function () {\n return document.activeElement === _this.content || _this.content.contains(document.activeElement);\n };\n\n _this.buildClassName = function (which, additional) {\n var classNames = (typeof additional === \"undefined\" ? \"undefined\" : _typeof(additional)) === \"object\" ? additional : {\n base: CLASS_NAMES[which],\n afterOpen: CLASS_NAMES[which] + \"--after-open\",\n beforeClose: CLASS_NAMES[which] + \"--before-close\"\n };\n var className = classNames.base;\n if (_this.state.afterOpen) {\n className = className + \" \" + classNames.afterOpen;\n }\n if (_this.state.beforeClose) {\n className = className + \" \" + classNames.beforeClose;\n }\n return typeof additional === \"string\" && additional ? className + \" \" + additional : className;\n };\n\n _this.attributesFromObject = function (prefix, items) {\n return Object.keys(items).reduce(function (acc, name) {\n acc[prefix + \"-\" + name] = items[name];\n return acc;\n }, {});\n };\n\n _this.state = {\n afterOpen: false,\n beforeClose: false\n };\n\n _this.shouldClose = null;\n _this.moveFromContentToOverlay = null;\n return _this;\n }\n\n _createClass(ModalPortal, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (this.props.isOpen) {\n this.open();\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, prevState) {\n if (process.env.NODE_ENV !== \"production\") {\n if (prevProps.bodyOpenClassName !== this.props.bodyOpenClassName) {\n // eslint-disable-next-line no-console\n console.warn('React-Modal: \"bodyOpenClassName\" prop has been modified. ' + \"This may cause unexpected behavior when multiple modals are open.\");\n }\n if (prevProps.htmlOpenClassName !== this.props.htmlOpenClassName) {\n // eslint-disable-next-line no-console\n console.warn('React-Modal: \"htmlOpenClassName\" prop has been modified. ' + \"This may cause unexpected behavior when multiple modals are open.\");\n }\n }\n\n if (this.props.isOpen && !prevProps.isOpen) {\n this.open();\n } else if (!this.props.isOpen && prevProps.isOpen) {\n this.close();\n }\n\n // Focus only needs to be set once when the modal is being opened\n if (this.props.shouldFocusAfterRender && this.state.isOpen && !prevState.isOpen) {\n this.focusContent();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.state.isOpen) {\n this.afterClose();\n }\n clearTimeout(this.closeTimer);\n }\n }, {\n key: \"beforeOpen\",\n value: function beforeOpen() {\n var _props = this.props,\n appElement = _props.appElement,\n ariaHideApp = _props.ariaHideApp,\n htmlOpenClassName = _props.htmlOpenClassName,\n bodyOpenClassName = _props.bodyOpenClassName;\n\n // Add classes.\n\n bodyOpenClassName && classList.add(document.body, bodyOpenClassName);\n\n htmlOpenClassName && classList.add(document.getElementsByTagName(\"html\")[0], htmlOpenClassName);\n\n if (ariaHideApp) {\n ariaHiddenInstances += 1;\n ariaAppHider.hide(appElement);\n }\n\n _portalOpenInstances2.default.register(this);\n }\n\n // Don't steal focus from inner elements\n\n }, {\n key: \"render\",\n value: function render() {\n var _props2 = this.props,\n id = _props2.id,\n className = _props2.className,\n overlayClassName = _props2.overlayClassName,\n defaultStyles = _props2.defaultStyles,\n children = _props2.children;\n\n var contentStyles = className ? {} : defaultStyles.content;\n var overlayStyles = overlayClassName ? {} : defaultStyles.overlay;\n\n if (this.shouldBeClosed()) {\n return null;\n }\n\n var overlayProps = {\n ref: this.setOverlayRef,\n className: this.buildClassName(\"overlay\", overlayClassName),\n style: _extends({}, overlayStyles, this.props.style.overlay),\n onClick: this.handleOverlayOnClick,\n onMouseDown: this.handleOverlayOnMouseDown\n };\n\n var contentProps = _extends({\n id: id,\n ref: this.setContentRef,\n style: _extends({}, contentStyles, this.props.style.content),\n className: this.buildClassName(\"content\", className),\n tabIndex: \"-1\",\n onKeyDown: this.handleKeyDown,\n onMouseDown: this.handleContentOnMouseDown,\n onMouseUp: this.handleContentOnMouseUp,\n onClick: this.handleContentOnClick,\n role: this.props.role,\n \"aria-label\": this.props.contentLabel\n }, this.attributesFromObject(\"aria\", _extends({ modal: true }, this.props.aria)), this.attributesFromObject(\"data\", this.props.data || {}), {\n \"data-testid\": this.props.testId\n });\n\n var contentElement = this.props.contentElement(contentProps, children);\n return this.props.overlayElement(overlayProps, contentElement);\n }\n }]);\n\n return ModalPortal;\n}(_react.Component);\n\nModalPortal.defaultProps = {\n style: {\n overlay: {},\n content: {}\n },\n defaultStyles: {}\n};\nModalPortal.propTypes = {\n isOpen: _propTypes2.default.bool.isRequired,\n defaultStyles: _propTypes2.default.shape({\n content: _propTypes2.default.object,\n overlay: _propTypes2.default.object\n }),\n style: _propTypes2.default.shape({\n content: _propTypes2.default.object,\n overlay: _propTypes2.default.object\n }),\n className: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.object]),\n overlayClassName: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.object]),\n bodyOpenClassName: _propTypes2.default.string,\n htmlOpenClassName: _propTypes2.default.string,\n ariaHideApp: _propTypes2.default.bool,\n appElement: _propTypes2.default.instanceOf(_safeHTMLElement2.default),\n onAfterOpen: _propTypes2.default.func,\n onAfterClose: _propTypes2.default.func,\n onRequestClose: _propTypes2.default.func,\n closeTimeoutMS: _propTypes2.default.number,\n shouldFocusAfterRender: _propTypes2.default.bool,\n shouldCloseOnOverlayClick: _propTypes2.default.bool,\n shouldReturnFocusAfterClose: _propTypes2.default.bool,\n preventScroll: _propTypes2.default.bool,\n role: _propTypes2.default.string,\n contentLabel: _propTypes2.default.string,\n aria: _propTypes2.default.object,\n data: _propTypes2.default.object,\n children: _propTypes2.default.node,\n shouldCloseOnEsc: _propTypes2.default.bool,\n overlayRef: _propTypes2.default.func,\n contentRef: _propTypes2.default.func,\n id: _propTypes2.default.string,\n overlayElement: _propTypes2.default.func,\n contentElement: _propTypes2.default.func,\n testId: _propTypes2.default.string\n};\nexports.default = ModalPortal;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.handleBlur = handleBlur;\nexports.handleFocus = handleFocus;\nexports.markForFocusLater = markForFocusLater;\nexports.returnFocus = returnFocus;\nexports.popWithoutFocus = popWithoutFocus;\nexports.setupScopedFocus = setupScopedFocus;\nexports.teardownScopedFocus = teardownScopedFocus;\n\nvar _tabbable = require(\"../helpers/tabbable\");\n\nvar _tabbable2 = _interopRequireDefault(_tabbable);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar focusLaterElements = [];\nvar modalElement = null;\nvar needToFocus = false;\n\nfunction handleBlur() {\n needToFocus = true;\n}\n\nfunction handleFocus() {\n if (needToFocus) {\n needToFocus = false;\n if (!modalElement) {\n return;\n }\n // need to see how jQuery shims document.on('focusin') so we don't need the\n // setTimeout, firefox doesn't support focusin, if it did, we could focus\n // the element outside of a setTimeout. Side-effect of this implementation\n // is that the document.body gets focus, and then we focus our element right\n // after, seems fine.\n setTimeout(function () {\n if (modalElement.contains(document.activeElement)) {\n return;\n }\n var el = (0, _tabbable2.default)(modalElement)[0] || modalElement;\n el.focus();\n }, 0);\n }\n}\n\nfunction markForFocusLater() {\n focusLaterElements.push(document.activeElement);\n}\n\n/* eslint-disable no-console */\nfunction returnFocus() {\n var preventScroll = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n var toFocus = null;\n try {\n if (focusLaterElements.length !== 0) {\n toFocus = focusLaterElements.pop();\n toFocus.focus({ preventScroll: preventScroll });\n }\n return;\n } catch (e) {\n console.warn([\"You tried to return focus to\", toFocus, \"but it is not in the DOM anymore\"].join(\" \"));\n }\n}\n/* eslint-enable no-console */\n\nfunction popWithoutFocus() {\n focusLaterElements.length > 0 && focusLaterElements.pop();\n}\n\nfunction setupScopedFocus(element) {\n modalElement = element;\n\n if (window.addEventListener) {\n window.addEventListener(\"blur\", handleBlur, false);\n document.addEventListener(\"focus\", handleFocus, true);\n } else {\n window.attachEvent(\"onBlur\", handleBlur);\n document.attachEvent(\"onFocus\", handleFocus);\n }\n}\n\nfunction teardownScopedFocus() {\n modalElement = null;\n\n if (window.addEventListener) {\n window.removeEventListener(\"blur\", handleBlur);\n document.removeEventListener(\"focus\", handleFocus);\n } else {\n window.detachEvent(\"onBlur\", handleBlur);\n document.detachEvent(\"onFocus\", handleFocus);\n }\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = scopeTab;\n\nvar _tabbable = require(\"./tabbable\");\n\nvar _tabbable2 = _interopRequireDefault(_tabbable);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction scopeTab(node, event) {\n var tabbable = (0, _tabbable2.default)(node);\n\n if (!tabbable.length) {\n // Do nothing, since there are no elements that can receive focus.\n event.preventDefault();\n return;\n }\n\n var target = void 0;\n\n var shiftKey = event.shiftKey;\n var head = tabbable[0];\n var tail = tabbable[tabbable.length - 1];\n\n // proceed with default browser behavior on tab.\n // Focus on last element on shift + tab.\n if (node === document.activeElement) {\n if (!shiftKey) return;\n target = tail;\n }\n\n if (tail === document.activeElement && !shiftKey) {\n target = head;\n }\n\n if (head === document.activeElement && shiftKey) {\n target = tail;\n }\n\n if (target) {\n event.preventDefault();\n target.focus();\n return;\n }\n\n // Safari radio issue.\n //\n // Safari does not move the focus to the radio button,\n // so we need to force it to really walk through all elements.\n //\n // This is very error prone, since we are trying to guess\n // if it is a safari browser from the first occurence between\n // chrome or safari.\n //\n // The chrome user agent contains the first ocurrence\n // as the 'chrome/version' and later the 'safari/version'.\n var checkSafari = /(\\bChrome\\b|\\bSafari\\b)\\//.exec(navigator.userAgent);\n var isSafariDesktop = checkSafari != null && checkSafari[1] != \"Chrome\" && /\\biPod\\b|\\biPad\\b/g.exec(navigator.userAgent) == null;\n\n // If we are not in safari desktop, let the browser control\n // the focus\n if (!isSafariDesktop) return;\n\n var x = tabbable.indexOf(document.activeElement);\n\n if (x > -1) {\n x += shiftKey ? -1 : 1;\n }\n\n target = tabbable[x];\n\n // If the tabbable element does not exist,\n // focus head/tail based on shiftKey\n if (typeof target === \"undefined\") {\n event.preventDefault();\n target = shiftKey ? tail : head;\n target.focus();\n return;\n }\n\n event.preventDefault();\n\n target.focus();\n}\nmodule.exports = exports[\"default\"];","/**\n * Copyright (c) 2014-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\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nvar warning = function() {};\n\nif (__DEV__) {\n var printWarning = function printWarning(format, args) {\n var len = arguments.length;\n args = new Array(len > 1 ? len - 1 : 0);\n for (var key = 1; key < len; key++) {\n args[key - 1] = arguments[key];\n }\n var argIndex = 0;\n var message = 'Warning: ' +\n format.replace(/%s/g, function() {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n }\n\n warning = function(condition, format, args) {\n var len = arguments.length;\n args = new Array(len > 2 ? len - 2 : 0);\n for (var key = 2; key < len; key++) {\n args[key - 2] = arguments[key];\n }\n if (format === undefined) {\n throw new Error(\n '`warning(condition, format, ...args)` requires a warning ' +\n 'message argument'\n );\n }\n if (!condition) {\n printWarning.apply(null, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;\n","/*!\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\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.dumpClassLists = dumpClassLists;\nvar htmlClassList = {};\nvar docBodyClassList = {};\n\nfunction dumpClassLists() {\n if (process.env.NODE_ENV !== \"production\") {\n var classes = document.getElementsByTagName(\"html\")[0].className;\n var buffer = \"Show tracked classes:\\n\\n\";\n\n buffer += \" (\" + classes + \"):\\n\";\n for (var x in htmlClassList) {\n buffer += \" \" + x + \" \" + htmlClassList[x] + \"\\n\";\n }\n\n classes = document.body.className;\n\n // eslint-disable-next-line max-len\n buffer += \"\\n\\ndoc.body (\" + classes + \"):\\n\";\n for (var _x in docBodyClassList) {\n buffer += \" \" + _x + \" \" + docBodyClassList[_x] + \"\\n\";\n }\n\n buffer += \"\\n\";\n\n // eslint-disable-next-line no-console\n console.log(buffer);\n }\n}\n\n/**\n * Track the number of reference of a class.\n * @param {object} poll The poll to receive the reference.\n * @param {string} className The class name.\n * @return {string}\n */\nvar incrementReference = function incrementReference(poll, className) {\n if (!poll[className]) {\n poll[className] = 0;\n }\n poll[className] += 1;\n return className;\n};\n\n/**\n * Drop the reference of a class.\n * @param {object} poll The poll to receive the reference.\n * @param {string} className The class name.\n * @return {string}\n */\nvar decrementReference = function decrementReference(poll, className) {\n if (poll[className]) {\n poll[className] -= 1;\n }\n return className;\n};\n\n/**\n * Track a class and add to the given class list.\n * @param {Object} classListRef A class list of an element.\n * @param {Object} poll The poll to be used.\n * @param {Array} classes The list of classes to be tracked.\n */\nvar trackClass = function trackClass(classListRef, poll, classes) {\n classes.forEach(function (className) {\n incrementReference(poll, className);\n classListRef.add(className);\n });\n};\n\n/**\n * Untrack a class and remove from the given class list if the reference\n * reaches 0.\n * @param {Object} classListRef A class list of an element.\n * @param {Object} poll The poll to be used.\n * @param {Array} classes The list of classes to be untracked.\n */\nvar untrackClass = function untrackClass(classListRef, poll, classes) {\n classes.forEach(function (className) {\n decrementReference(poll, className);\n poll[className] === 0 && classListRef.remove(className);\n });\n};\n\n/**\n * Public inferface to add classes to the document.body.\n * @param {string} bodyClass The class string to be added.\n * It may contain more then one class\n * with ' ' as separator.\n */\nvar add = exports.add = function add(element, classString) {\n return trackClass(element.classList, element.nodeName.toLowerCase() == \"html\" ? htmlClassList : docBodyClassList, classString.split(\" \"));\n};\n\n/**\n * Public inferface to remove classes from the document.body.\n * @param {string} bodyClass The class string to be added.\n * It may contain more then one class\n * with ' ' as separator.\n */\nvar remove = exports.remove = function remove(element, classString) {\n return untrackClass(element.classList, element.nodeName.toLowerCase() == \"html\" ? htmlClassList : docBodyClassList, classString.split(\" \"));\n};","\"use strict\";\n\nvar _portalOpenInstances = require(\"./portalOpenInstances\");\n\nvar _portalOpenInstances2 = _interopRequireDefault(_portalOpenInstances);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// Body focus trap see Issue #742\n\nvar before = void 0,\n after = void 0,\n instances = [];\n\nfunction focusContent() {\n if (instances.length === 0) {\n if (process.env.NODE_ENV !== \"production\") {\n // eslint-disable-next-line no-console\n console.warn(\"React-Modal: Open instances > 0 expected\");\n }\n return;\n }\n instances[instances.length - 1].focusContent();\n}\n\nfunction bodyTrap(eventType, openInstances) {\n if (!before || !after) {\n before = document.createElement(\"div\");\n before.setAttribute(\"data-react-modal-body-trap\", \"\");\n before.style.position = \"absolute\";\n before.style.opacity = \"0\";\n before.setAttribute(\"tabindex\", \"0\");\n before.addEventListener(\"focus\", focusContent);\n after = before.cloneNode();\n after.addEventListener(\"focus\", focusContent);\n }\n\n instances = openInstances;\n\n if (instances.length > 0) {\n // Add focus trap\n if (document.body.firstChild !== before) {\n document.body.insertBefore(before, document.body.firstChild);\n }\n if (document.body.lastChild !== after) {\n document.body.appendChild(after);\n }\n } else {\n // Remove focus trap\n if (before.parentElement) {\n before.parentElement.removeChild(before);\n }\n if (after.parentElement) {\n after.parentElement.removeChild(after);\n }\n }\n}\n\n_portalOpenInstances2.default.subscribe(bodyTrap);","/**\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\nfunction componentWillMount() {\n // Call this.constructor.gDSFP to support sub-classes.\n var state = this.constructor.getDerivedStateFromProps(this.props, this.state);\n if (state !== null && state !== undefined) {\n this.setState(state);\n }\n}\n\nfunction componentWillReceiveProps(nextProps) {\n // Call this.constructor.gDSFP to support sub-classes.\n // Use the setState() updater to ensure state isn't stale in certain edge cases.\n function updater(prevState) {\n var state = this.constructor.getDerivedStateFromProps(nextProps, prevState);\n return state !== null && state !== undefined ? state : null;\n }\n // Binding \"this\" is important for shallow renderer support.\n this.setState(updater.bind(this));\n}\n\nfunction componentWillUpdate(nextProps, nextState) {\n try {\n var prevProps = this.props;\n var prevState = this.state;\n this.props = nextProps;\n this.state = nextState;\n this.__reactInternalSnapshotFlag = true;\n this.__reactInternalSnapshot = this.getSnapshotBeforeUpdate(\n prevProps,\n prevState\n );\n } finally {\n this.props = prevProps;\n this.state = prevState;\n }\n}\n\n// React may warn about cWM/cWRP/cWU methods being deprecated.\n// Add a flag to suppress these warnings for this special case.\ncomponentWillMount.__suppressDeprecationWarning = true;\ncomponentWillReceiveProps.__suppressDeprecationWarning = true;\ncomponentWillUpdate.__suppressDeprecationWarning = true;\n\nfunction polyfill(Component) {\n var prototype = Component.prototype;\n\n if (!prototype || !prototype.isReactComponent) {\n throw new Error('Can only polyfill class components');\n }\n\n if (\n typeof Component.getDerivedStateFromProps !== 'function' &&\n typeof prototype.getSnapshotBeforeUpdate !== 'function'\n ) {\n return Component;\n }\n\n // If new component APIs are defined, \"unsafe\" lifecycles won't be called.\n // Error if any of these lifecycles are present,\n // Because they would work differently between older and newer (16.3+) versions of React.\n var foundWillMountName = null;\n var foundWillReceivePropsName = null;\n var foundWillUpdateName = null;\n if (typeof prototype.componentWillMount === 'function') {\n foundWillMountName = 'componentWillMount';\n } else if (typeof prototype.UNSAFE_componentWillMount === 'function') {\n foundWillMountName = 'UNSAFE_componentWillMount';\n }\n if (typeof prototype.componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'componentWillReceiveProps';\n } else if (typeof prototype.UNSAFE_componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'UNSAFE_componentWillReceiveProps';\n }\n if (typeof prototype.componentWillUpdate === 'function') {\n foundWillUpdateName = 'componentWillUpdate';\n } else if (typeof prototype.UNSAFE_componentWillUpdate === 'function') {\n foundWillUpdateName = 'UNSAFE_componentWillUpdate';\n }\n if (\n foundWillMountName !== null ||\n foundWillReceivePropsName !== null ||\n foundWillUpdateName !== null\n ) {\n var componentName = Component.displayName || Component.name;\n var newApiName =\n typeof Component.getDerivedStateFromProps === 'function'\n ? 'getDerivedStateFromProps()'\n : 'getSnapshotBeforeUpdate()';\n\n throw Error(\n 'Unsafe legacy lifecycles will not be called for components using new component APIs.\\n\\n' +\n componentName +\n ' uses ' +\n newApiName +\n ' but also contains the following legacy lifecycles:' +\n (foundWillMountName !== null ? '\\n ' + foundWillMountName : '') +\n (foundWillReceivePropsName !== null\n ? '\\n ' + foundWillReceivePropsName\n : '') +\n (foundWillUpdateName !== null ? '\\n ' + foundWillUpdateName : '') +\n '\\n\\nThe above lifecycles should be removed. Learn more about this warning here:\\n' +\n 'https://fb.me/react-async-component-lifecycle-hooks'\n );\n }\n\n // React <= 16.2 does not support static getDerivedStateFromProps.\n // As a workaround, use cWM and cWRP to invoke the new static lifecycle.\n // Newer versions of React will ignore these lifecycles if gDSFP exists.\n if (typeof Component.getDerivedStateFromProps === 'function') {\n prototype.componentWillMount = componentWillMount;\n prototype.componentWillReceiveProps = componentWillReceiveProps;\n }\n\n // React <= 16.2 does not support getSnapshotBeforeUpdate.\n // As a workaround, use cWU to invoke the new lifecycle.\n // Newer versions of React will ignore that lifecycle if gSBU exists.\n if (typeof prototype.getSnapshotBeforeUpdate === 'function') {\n if (typeof prototype.componentDidUpdate !== 'function') {\n throw new Error(\n 'Cannot polyfill getSnapshotBeforeUpdate() for components that do not define componentDidUpdate() on the prototype'\n );\n }\n\n prototype.componentWillUpdate = componentWillUpdate;\n\n var componentDidUpdate = prototype.componentDidUpdate;\n\n prototype.componentDidUpdate = function componentDidUpdatePolyfill(\n prevProps,\n prevState,\n maybeSnapshot\n ) {\n // 16.3+ will not execute our will-update method;\n // It will pass a snapshot value to did-update though.\n // Older versions will require our polyfilled will-update value.\n // We need to handle both cases, but can't just check for the presence of \"maybeSnapshot\",\n // Because for <= 15.x versions this might be a \"prevContext\" object.\n // We also can't just check \"__reactInternalSnapshot\",\n // Because get-snapshot might return a falsy value.\n // So check for the explicit __reactInternalSnapshotFlag flag to determine behavior.\n var snapshot = this.__reactInternalSnapshotFlag\n ? this.__reactInternalSnapshot\n : maybeSnapshot;\n\n componentDidUpdate.call(this, prevProps, prevState, snapshot);\n };\n }\n\n return Component;\n}\n\nexport { polyfill };\n","/** @license React v17.0.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var b=60103,c=60106,d=60107,e=60108,f=60114,g=60109,h=60110,k=60112,l=60113,m=60120,n=60115,p=60116,q=60121,r=60122,u=60117,v=60129,w=60131;\nif(\"function\"===typeof Symbol&&Symbol.for){var x=Symbol.for;b=x(\"react.element\");c=x(\"react.portal\");d=x(\"react.fragment\");e=x(\"react.strict_mode\");f=x(\"react.profiler\");g=x(\"react.provider\");h=x(\"react.context\");k=x(\"react.forward_ref\");l=x(\"react.suspense\");m=x(\"react.suspense_list\");n=x(\"react.memo\");p=x(\"react.lazy\");q=x(\"react.block\");r=x(\"react.server.block\");u=x(\"react.fundamental\");v=x(\"react.debug_trace_mode\");w=x(\"react.legacy_hidden\")}\nfunction y(a){if(\"object\"===typeof a&&null!==a){var t=a.$$typeof;switch(t){case b:switch(a=a.type,a){case d:case f:case e:case l:case m:return a;default:switch(a=a&&a.$$typeof,a){case h:case k:case p:case n:case g:return a;default:return t}}case c:return t}}}var z=g,A=b,B=k,C=d,D=p,E=n,F=c,G=f,H=e,I=l;exports.ContextConsumer=h;exports.ContextProvider=z;exports.Element=A;exports.ForwardRef=B;exports.Fragment=C;exports.Lazy=D;exports.Memo=E;exports.Portal=F;exports.Profiler=G;exports.StrictMode=H;\nexports.Suspense=I;exports.isAsyncMode=function(){return!1};exports.isConcurrentMode=function(){return!1};exports.isContextConsumer=function(a){return y(a)===h};exports.isContextProvider=function(a){return y(a)===g};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===b};exports.isForwardRef=function(a){return y(a)===k};exports.isFragment=function(a){return y(a)===d};exports.isLazy=function(a){return y(a)===p};exports.isMemo=function(a){return y(a)===n};\nexports.isPortal=function(a){return y(a)===c};exports.isProfiler=function(a){return y(a)===f};exports.isStrictMode=function(a){return y(a)===e};exports.isSuspense=function(a){return y(a)===l};exports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===d||a===f||a===v||a===e||a===l||a===m||a===w||\"object\"===typeof a&&null!==a&&(a.$$typeof===p||a.$$typeof===n||a.$$typeof===g||a.$$typeof===h||a.$$typeof===k||a.$$typeof===u||a.$$typeof===q||a[0]===r)?!0:!1};\nexports.typeOf=y;\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React, { useRef, useState, forwardRef } from 'react';\nimport { uniqueClasses } from './utils';\nimport { useIsomorphicLayoutEffect } from './use-isomorphic-layout-effect';\nvar SwiperSlide = forwardRef(function (_temp, externalRef) {\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$tag = _ref.tag,\n Tag = _ref$tag === void 0 ? 'div' : _ref$tag,\n children = _ref.children,\n _ref$className = _ref.className,\n className = _ref$className === void 0 ? '' : _ref$className,\n swiper = _ref.swiper,\n zoom = _ref.zoom,\n rest = _objectWithoutPropertiesLoose(_ref, [\"tag\", \"children\", \"className\", \"swiper\", \"zoom\"]);\n\n var slideElRef = useRef(null);\n\n var _useState = useState('swiper-slide'),\n slideClasses = _useState[0],\n setSlideClasses = _useState[1];\n\n function updateClasses(swiper, el, classNames) {\n if (el === slideElRef.current) {\n setSlideClasses(classNames);\n }\n }\n\n useIsomorphicLayoutEffect(function () {\n if (externalRef) {\n externalRef.current = slideElRef.current;\n }\n\n if (!slideElRef.current || !swiper) return;\n\n if (swiper.destroyed) {\n if (slideClasses !== 'swiper-slide') {\n setSlideClasses('swiper-slide');\n }\n\n return;\n }\n\n swiper.on('_slideClass', updateClasses); // eslint-disable-next-line\n\n return function () {\n if (!swiper) return;\n swiper.off('_slideClass', updateClasses);\n };\n });\n var slideData;\n\n if (typeof children === 'function') {\n slideData = {\n isActive: slideClasses.indexOf('swiper-slide-active') >= 0 || slideClasses.indexOf('swiper-slide-duplicate-active') >= 0,\n isVisible: slideClasses.indexOf('swiper-slide-visible') >= 0,\n isDuplicate: slideClasses.indexOf('swiper-slide-duplicate') >= 0,\n isPrev: slideClasses.indexOf('swiper-slide-prev') >= 0 || slideClasses.indexOf('swiper-slide-duplicate-prev') >= 0,\n isNext: slideClasses.indexOf('swiper-slide-next') >= 0 || slideClasses.indexOf('swiper-slide-duplicate next') >= 0\n };\n }\n\n var renderChildren = function renderChildren() {\n return typeof children === 'function' ? children(slideData) : children;\n };\n\n return /*#__PURE__*/React.createElement(Tag, _extends({\n ref: slideElRef,\n className: uniqueClasses(\"\" + slideClasses + (className ? \" \" + className : ''))\n }, rest), zoom ? /*#__PURE__*/React.createElement(\"div\", {\n className: \"swiper-zoom-container\",\n \"data-swiper-zoom\": typeof zoom === 'number' ? zoom : undefined\n }, renderChildren()) : renderChildren());\n});\nSwiperSlide.displayName = 'SwiperSlide';\nexport { SwiperSlide };","/**\n * SSR Window 3.0.0\n * Better handling for window object in SSR environment\n * https://github.com/nolimits4web/ssr-window\n *\n * Copyright 2020, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: November 9, 2020\n */\n/* eslint-disable no-param-reassign */\nfunction isObject(obj) {\n return (obj !== null &&\n typeof obj === 'object' &&\n 'constructor' in obj &&\n obj.constructor === Object);\n}\nfunction extend(target, src) {\n if (target === void 0) { target = {}; }\n if (src === void 0) { src = {}; }\n Object.keys(src).forEach(function (key) {\n if (typeof target[key] === 'undefined')\n target[key] = src[key];\n else if (isObject(src[key]) &&\n isObject(target[key]) &&\n Object.keys(src[key]).length > 0) {\n extend(target[key], src[key]);\n }\n });\n}\n\nvar ssrDocument = {\n body: {},\n addEventListener: function () { },\n removeEventListener: function () { },\n activeElement: {\n blur: function () { },\n nodeName: '',\n },\n querySelector: function () {\n return null;\n },\n querySelectorAll: function () {\n return [];\n },\n getElementById: function () {\n return null;\n },\n createEvent: function () {\n return {\n initEvent: function () { },\n };\n },\n createElement: function () {\n return {\n children: [],\n childNodes: [],\n style: {},\n setAttribute: function () { },\n getElementsByTagName: function () {\n return [];\n },\n };\n },\n createElementNS: function () {\n return {};\n },\n importNode: function () {\n return null;\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: '',\n },\n};\nfunction getDocument() {\n var doc = typeof document !== 'undefined' ? document : {};\n extend(doc, ssrDocument);\n return doc;\n}\n\nvar ssrWindow = {\n document: ssrDocument,\n navigator: {\n userAgent: '',\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: '',\n },\n history: {\n replaceState: function () { },\n pushState: function () { },\n go: function () { },\n back: function () { },\n },\n CustomEvent: function CustomEvent() {\n return this;\n },\n addEventListener: function () { },\n removeEventListener: function () { },\n getComputedStyle: function () {\n return {\n getPropertyValue: function () {\n return '';\n },\n };\n },\n Image: function () { },\n Date: function () { },\n screen: {},\n setTimeout: function () { },\n clearTimeout: function () { },\n matchMedia: function () {\n return {};\n },\n requestAnimationFrame: function (callback) {\n if (typeof setTimeout === 'undefined') {\n callback();\n return null;\n }\n return setTimeout(callback, 0);\n },\n cancelAnimationFrame: function (id) {\n if (typeof setTimeout === 'undefined') {\n return;\n }\n clearTimeout(id);\n },\n};\nfunction getWindow() {\n var win = typeof window !== 'undefined' ? window : {};\n extend(win, ssrWindow);\n return win;\n}\n\nexport { extend, getDocument, getWindow, ssrDocument, ssrWindow };\n","/**\n * Dom7 3.0.0\n * Minimalistic JavaScript library for DOM manipulation, with a jQuery-compatible API\n * https://framework7.io/docs/dom7.html\n *\n * Copyright 2020, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: November 9, 2020\n */\nimport { getWindow, getDocument } from 'ssr-window';\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = 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 _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _construct(Parent, args, Class) {\n if (_isNativeReflectConstruct()) {\n _construct = Reflect.construct;\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) _setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}\n\nfunction _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\n\nfunction _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !_isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return _construct(Class, arguments, _getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return _setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\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\n/* eslint-disable no-proto */\nfunction makeReactive(obj) {\n var proto = obj.__proto__;\n Object.defineProperty(obj, '__proto__', {\n get: function get() {\n return proto;\n },\n set: function set(value) {\n proto.__proto__ = value;\n }\n });\n}\n\nvar Dom7 = /*#__PURE__*/function (_Array) {\n _inheritsLoose(Dom7, _Array);\n\n function Dom7(items) {\n var _this;\n\n _this = _Array.call.apply(_Array, [this].concat(items)) || this;\n makeReactive(_assertThisInitialized(_this));\n return _this;\n }\n\n return Dom7;\n}( /*#__PURE__*/_wrapNativeSuper(Array));\n\nfunction arrayFlat(arr) {\n if (arr === void 0) {\n arr = [];\n }\n\n var res = [];\n arr.forEach(function (el) {\n if (Array.isArray(el)) {\n res.push.apply(res, arrayFlat(el));\n } else {\n res.push(el);\n }\n });\n return res;\n}\nfunction arrayFilter(arr, callback) {\n return Array.prototype.filter.call(arr, callback);\n}\nfunction arrayUnique(arr) {\n var uniqueArray = [];\n\n for (var i = 0; i < arr.length; i += 1) {\n if (uniqueArray.indexOf(arr[i]) === -1) uniqueArray.push(arr[i]);\n }\n\n return uniqueArray;\n}\nfunction toCamelCase(string) {\n return string.toLowerCase().replace(/-(.)/g, function (match, group) {\n return group.toUpperCase();\n });\n}\n\nfunction qsa(selector, context) {\n if (typeof selector !== 'string') {\n return [selector];\n }\n\n var a = [];\n var res = context.querySelectorAll(selector);\n\n for (var i = 0; i < res.length; i += 1) {\n a.push(res[i]);\n }\n\n return a;\n}\n\nfunction $(selector, context) {\n var window = getWindow();\n var document = getDocument();\n var arr = [];\n\n if (!context && selector instanceof Dom7) {\n return selector;\n }\n\n if (!selector) {\n return new Dom7(arr);\n }\n\n if (typeof selector === 'string') {\n var html = selector.trim();\n\n if (html.indexOf('<') >= 0 && html.indexOf('>') >= 0) {\n var toCreate = 'div';\n if (html.indexOf(' 0;\n }).length > 0;\n}\n\nfunction attr(attrs, value) {\n if (arguments.length === 1 && typeof attrs === 'string') {\n // Get attr\n if (this[0]) return this[0].getAttribute(attrs);\n return undefined;\n } // Set attrs\n\n\n for (var i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i].setAttribute(attrs, value);\n } else {\n // Object\n for (var attrName in attrs) {\n this[i][attrName] = attrs[attrName];\n this[i].setAttribute(attrName, attrs[attrName]);\n }\n }\n }\n\n return this;\n}\n\nfunction removeAttr(attr) {\n for (var i = 0; i < this.length; i += 1) {\n this[i].removeAttribute(attr);\n }\n\n return this;\n}\n\nfunction prop(props, value) {\n if (arguments.length === 1 && typeof props === 'string') {\n // Get prop\n if (this[0]) return this[0][props];\n } else {\n // Set props\n for (var i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i][props] = value;\n } else {\n // Object\n for (var propName in props) {\n this[i][propName] = props[propName];\n }\n }\n }\n\n return this;\n }\n\n return this;\n}\n\nfunction data(key, value) {\n var el;\n\n if (typeof value === 'undefined') {\n el = this[0];\n if (!el) return undefined; // Get value\n\n if (el.dom7ElementDataStorage && key in el.dom7ElementDataStorage) {\n return el.dom7ElementDataStorage[key];\n }\n\n var dataKey = el.getAttribute(\"data-\" + key);\n\n if (dataKey) {\n return dataKey;\n }\n\n return undefined;\n } // Set value\n\n\n for (var i = 0; i < this.length; i += 1) {\n el = this[i];\n if (!el.dom7ElementDataStorage) el.dom7ElementDataStorage = {};\n el.dom7ElementDataStorage[key] = value;\n }\n\n return this;\n}\n\nfunction removeData(key) {\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n\n if (el.dom7ElementDataStorage && el.dom7ElementDataStorage[key]) {\n el.dom7ElementDataStorage[key] = null;\n delete el.dom7ElementDataStorage[key];\n }\n }\n}\n\nfunction dataset() {\n var el = this[0];\n if (!el) return undefined;\n var dataset = {}; // eslint-disable-line\n\n if (el.dataset) {\n for (var dataKey in el.dataset) {\n dataset[dataKey] = el.dataset[dataKey];\n }\n } else {\n for (var i = 0; i < el.attributes.length; i += 1) {\n var _attr = el.attributes[i];\n\n if (_attr.name.indexOf('data-') >= 0) {\n dataset[toCamelCase(_attr.name.split('data-')[1])] = _attr.value;\n }\n }\n }\n\n for (var key in dataset) {\n if (dataset[key] === 'false') dataset[key] = false;else if (dataset[key] === 'true') dataset[key] = true;else if (parseFloat(dataset[key]) === dataset[key] * 1) dataset[key] *= 1;\n }\n\n return dataset;\n}\n\nfunction val(value) {\n if (typeof value === 'undefined') {\n // get value\n var el = this[0];\n if (!el) return undefined;\n\n if (el.multiple && el.nodeName.toLowerCase() === 'select') {\n var values = [];\n\n for (var i = 0; i < el.selectedOptions.length; i += 1) {\n values.push(el.selectedOptions[i].value);\n }\n\n return values;\n }\n\n return el.value;\n } // set value\n\n\n for (var _i = 0; _i < this.length; _i += 1) {\n var _el = this[_i];\n\n if (Array.isArray(value) && _el.multiple && _el.nodeName.toLowerCase() === 'select') {\n for (var j = 0; j < _el.options.length; j += 1) {\n _el.options[j].selected = value.indexOf(_el.options[j].value) >= 0;\n }\n } else {\n _el.value = value;\n }\n }\n\n return this;\n}\n\nfunction value(value) {\n return this.val(value);\n}\n\nfunction transform(transform) {\n for (var i = 0; i < this.length; i += 1) {\n this[i].style.transform = transform;\n }\n\n return this;\n}\n\nfunction transition(duration) {\n for (var i = 0; i < this.length; i += 1) {\n this[i].style.transitionDuration = typeof duration !== 'string' ? duration + \"ms\" : duration;\n }\n\n return this;\n}\n\nfunction on() {\n for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n args[_key5] = arguments[_key5];\n }\n\n var eventType = args[0],\n targetSelector = args[1],\n listener = args[2],\n capture = args[3];\n\n if (typeof args[1] === 'function') {\n eventType = args[0];\n listener = args[1];\n capture = args[2];\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n\n function handleLiveEvent(e) {\n var target = e.target;\n if (!target) return;\n var eventData = e.target.dom7EventData || [];\n\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n\n if ($(target).is(targetSelector)) listener.apply(target, eventData);else {\n var _parents = $(target).parents(); // eslint-disable-line\n\n\n for (var k = 0; k < _parents.length; k += 1) {\n if ($(_parents[k]).is(targetSelector)) listener.apply(_parents[k], eventData);\n }\n }\n }\n\n function handleEvent(e) {\n var eventData = e && e.target ? e.target.dom7EventData || [] : [];\n\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n\n listener.apply(this, eventData);\n }\n\n var events = eventType.split(' ');\n var j;\n\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n\n if (!targetSelector) {\n for (j = 0; j < events.length; j += 1) {\n var event = events[j];\n if (!el.dom7Listeners) el.dom7Listeners = {};\n if (!el.dom7Listeners[event]) el.dom7Listeners[event] = [];\n el.dom7Listeners[event].push({\n listener: listener,\n proxyListener: handleEvent\n });\n el.addEventListener(event, handleEvent, capture);\n }\n } else {\n // Live events\n for (j = 0; j < events.length; j += 1) {\n var _event = events[j];\n if (!el.dom7LiveListeners) el.dom7LiveListeners = {};\n if (!el.dom7LiveListeners[_event]) el.dom7LiveListeners[_event] = [];\n\n el.dom7LiveListeners[_event].push({\n listener: listener,\n proxyListener: handleLiveEvent\n });\n\n el.addEventListener(_event, handleLiveEvent, capture);\n }\n }\n }\n\n return this;\n}\n\nfunction off() {\n for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n args[_key6] = arguments[_key6];\n }\n\n var eventType = args[0],\n targetSelector = args[1],\n listener = args[2],\n capture = args[3];\n\n if (typeof args[1] === 'function') {\n eventType = args[0];\n listener = args[1];\n capture = args[2];\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n var events = eventType.split(' ');\n\n for (var i = 0; i < events.length; i += 1) {\n var event = events[i];\n\n for (var j = 0; j < this.length; j += 1) {\n var el = this[j];\n var handlers = void 0;\n\n if (!targetSelector && el.dom7Listeners) {\n handlers = el.dom7Listeners[event];\n } else if (targetSelector && el.dom7LiveListeners) {\n handlers = el.dom7LiveListeners[event];\n }\n\n if (handlers && handlers.length) {\n for (var k = handlers.length - 1; k >= 0; k -= 1) {\n var handler = handlers[k];\n\n if (listener && handler.listener === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (listener && handler.listener && handler.listener.dom7proxy && handler.listener.dom7proxy === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (!listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n }\n }\n }\n }\n }\n\n return this;\n}\n\nfunction once() {\n var dom = this;\n\n for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n args[_key7] = arguments[_key7];\n }\n\n var eventName = args[0],\n targetSelector = args[1],\n listener = args[2],\n capture = args[3];\n\n if (typeof args[1] === 'function') {\n eventName = args[0];\n listener = args[1];\n capture = args[2];\n targetSelector = undefined;\n }\n\n function onceHandler() {\n for (var _len8 = arguments.length, eventArgs = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {\n eventArgs[_key8] = arguments[_key8];\n }\n\n listener.apply(this, eventArgs);\n dom.off(eventName, targetSelector, onceHandler, capture);\n\n if (onceHandler.dom7proxy) {\n delete onceHandler.dom7proxy;\n }\n }\n\n onceHandler.dom7proxy = listener;\n return dom.on(eventName, targetSelector, onceHandler, capture);\n}\n\nfunction trigger() {\n var window = getWindow();\n\n for (var _len9 = arguments.length, args = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {\n args[_key9] = arguments[_key9];\n }\n\n var events = args[0].split(' ');\n var eventData = args[1];\n\n for (var i = 0; i < events.length; i += 1) {\n var event = events[i];\n\n for (var j = 0; j < this.length; j += 1) {\n var el = this[j];\n\n if (window.CustomEvent) {\n var evt = new window.CustomEvent(event, {\n detail: eventData,\n bubbles: true,\n cancelable: true\n });\n el.dom7EventData = args.filter(function (data, dataIndex) {\n return dataIndex > 0;\n });\n el.dispatchEvent(evt);\n el.dom7EventData = [];\n delete el.dom7EventData;\n }\n }\n }\n\n return this;\n}\n\nfunction transitionEnd(callback) {\n var dom = this;\n\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('transitionend', fireCallBack);\n }\n\n if (callback) {\n dom.on('transitionend', fireCallBack);\n }\n\n return this;\n}\n\nfunction animationEnd(callback) {\n var dom = this;\n\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('animationend', fireCallBack);\n }\n\n if (callback) {\n dom.on('animationend', fireCallBack);\n }\n\n return this;\n}\n\nfunction width() {\n var window = getWindow();\n\n if (this[0] === window) {\n return window.innerWidth;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('width'));\n }\n\n return null;\n}\n\nfunction outerWidth(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n var _styles = this.styles();\n\n return this[0].offsetWidth + parseFloat(_styles.getPropertyValue('margin-right')) + parseFloat(_styles.getPropertyValue('margin-left'));\n }\n\n return this[0].offsetWidth;\n }\n\n return null;\n}\n\nfunction height() {\n var window = getWindow();\n\n if (this[0] === window) {\n return window.innerHeight;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('height'));\n }\n\n return null;\n}\n\nfunction outerHeight(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n var _styles2 = this.styles();\n\n return this[0].offsetHeight + parseFloat(_styles2.getPropertyValue('margin-top')) + parseFloat(_styles2.getPropertyValue('margin-bottom'));\n }\n\n return this[0].offsetHeight;\n }\n\n return null;\n}\n\nfunction offset() {\n if (this.length > 0) {\n var window = getWindow();\n var document = getDocument();\n var el = this[0];\n var box = el.getBoundingClientRect();\n var body = document.body;\n var clientTop = el.clientTop || body.clientTop || 0;\n var clientLeft = el.clientLeft || body.clientLeft || 0;\n var scrollTop = el === window ? window.scrollY : el.scrollTop;\n var scrollLeft = el === window ? window.scrollX : el.scrollLeft;\n return {\n top: box.top + scrollTop - clientTop,\n left: box.left + scrollLeft - clientLeft\n };\n }\n\n return null;\n}\n\nfunction hide() {\n for (var i = 0; i < this.length; i += 1) {\n this[i].style.display = 'none';\n }\n\n return this;\n}\n\nfunction show() {\n var window = getWindow();\n\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n\n if (el.style.display === 'none') {\n el.style.display = '';\n }\n\n if (window.getComputedStyle(el, null).getPropertyValue('display') === 'none') {\n // Still not visible\n el.style.display = 'block';\n }\n }\n\n return this;\n}\n\nfunction styles() {\n var window = getWindow();\n if (this[0]) return window.getComputedStyle(this[0], null);\n return {};\n}\n\nfunction css(props, value) {\n var window = getWindow();\n var i;\n\n if (arguments.length === 1) {\n if (typeof props === 'string') {\n // .css('width')\n if (this[0]) return window.getComputedStyle(this[0], null).getPropertyValue(props);\n } else {\n // .css({ width: '100px' })\n for (i = 0; i < this.length; i += 1) {\n for (var _prop in props) {\n this[i].style[_prop] = props[_prop];\n }\n }\n\n return this;\n }\n }\n\n if (arguments.length === 2 && typeof props === 'string') {\n // .css('width', '100px')\n for (i = 0; i < this.length; i += 1) {\n this[i].style[props] = value;\n }\n\n return this;\n }\n\n return this;\n}\n\nfunction each(callback) {\n if (!callback) return this;\n this.forEach(function (el, index) {\n callback.apply(el, [el, index]);\n });\n return this;\n}\n\nfunction filter(callback) {\n var result = arrayFilter(this, callback);\n return $(result);\n}\n\nfunction html(html) {\n if (typeof html === 'undefined') {\n return this[0] ? this[0].innerHTML : null;\n }\n\n for (var i = 0; i < this.length; i += 1) {\n this[i].innerHTML = html;\n }\n\n return this;\n}\n\nfunction text(text) {\n if (typeof text === 'undefined') {\n return this[0] ? this[0].textContent.trim() : null;\n }\n\n for (var i = 0; i < this.length; i += 1) {\n this[i].textContent = text;\n }\n\n return this;\n}\n\nfunction is(selector) {\n var window = getWindow();\n var document = getDocument();\n var el = this[0];\n var compareWith;\n var i;\n if (!el || typeof selector === 'undefined') return false;\n\n if (typeof selector === 'string') {\n if (el.matches) return el.matches(selector);\n if (el.webkitMatchesSelector) return el.webkitMatchesSelector(selector);\n if (el.msMatchesSelector) return el.msMatchesSelector(selector);\n compareWith = $(selector);\n\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n\n return false;\n }\n\n if (selector === document) {\n return el === document;\n }\n\n if (selector === window) {\n return el === window;\n }\n\n if (selector.nodeType || selector instanceof Dom7) {\n compareWith = selector.nodeType ? [selector] : selector;\n\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n\n return false;\n }\n\n return false;\n}\n\nfunction index() {\n var child = this[0];\n var i;\n\n if (child) {\n i = 0; // eslint-disable-next-line\n\n while ((child = child.previousSibling) !== null) {\n if (child.nodeType === 1) i += 1;\n }\n\n return i;\n }\n\n return undefined;\n}\n\nfunction eq(index) {\n if (typeof index === 'undefined') return this;\n var length = this.length;\n\n if (index > length - 1) {\n return $([]);\n }\n\n if (index < 0) {\n var returnIndex = length + index;\n if (returnIndex < 0) return $([]);\n return $([this[returnIndex]]);\n }\n\n return $([this[index]]);\n}\n\nfunction append() {\n var newChild;\n var document = getDocument();\n\n for (var k = 0; k < arguments.length; k += 1) {\n newChild = k < 0 || arguments.length <= k ? undefined : arguments[k];\n\n for (var i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n var tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n\n while (tempDiv.firstChild) {\n this[i].appendChild(tempDiv.firstChild);\n }\n } else if (newChild instanceof Dom7) {\n for (var j = 0; j < newChild.length; j += 1) {\n this[i].appendChild(newChild[j]);\n }\n } else {\n this[i].appendChild(newChild);\n }\n }\n }\n\n return this;\n}\n\nfunction appendTo(parent) {\n $(parent).append(this);\n return this;\n}\n\nfunction prepend(newChild) {\n var document = getDocument();\n var i;\n var j;\n\n for (i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n var tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n\n for (j = tempDiv.childNodes.length - 1; j >= 0; j -= 1) {\n this[i].insertBefore(tempDiv.childNodes[j], this[i].childNodes[0]);\n }\n } else if (newChild instanceof Dom7) {\n for (j = 0; j < newChild.length; j += 1) {\n this[i].insertBefore(newChild[j], this[i].childNodes[0]);\n }\n } else {\n this[i].insertBefore(newChild, this[i].childNodes[0]);\n }\n }\n\n return this;\n}\n\nfunction prependTo(parent) {\n $(parent).prepend(this);\n return this;\n}\n\nfunction insertBefore(selector) {\n var before = $(selector);\n\n for (var i = 0; i < this.length; i += 1) {\n if (before.length === 1) {\n before[0].parentNode.insertBefore(this[i], before[0]);\n } else if (before.length > 1) {\n for (var j = 0; j < before.length; j += 1) {\n before[j].parentNode.insertBefore(this[i].cloneNode(true), before[j]);\n }\n }\n }\n}\n\nfunction insertAfter(selector) {\n var after = $(selector);\n\n for (var i = 0; i < this.length; i += 1) {\n if (after.length === 1) {\n after[0].parentNode.insertBefore(this[i], after[0].nextSibling);\n } else if (after.length > 1) {\n for (var j = 0; j < after.length; j += 1) {\n after[j].parentNode.insertBefore(this[i].cloneNode(true), after[j].nextSibling);\n }\n }\n }\n}\n\nfunction next(selector) {\n if (this.length > 0) {\n if (selector) {\n if (this[0].nextElementSibling && $(this[0].nextElementSibling).is(selector)) {\n return $([this[0].nextElementSibling]);\n }\n\n return $([]);\n }\n\n if (this[0].nextElementSibling) return $([this[0].nextElementSibling]);\n return $([]);\n }\n\n return $([]);\n}\n\nfunction nextAll(selector) {\n var nextEls = [];\n var el = this[0];\n if (!el) return $([]);\n\n while (el.nextElementSibling) {\n var _next = el.nextElementSibling; // eslint-disable-line\n\n if (selector) {\n if ($(_next).is(selector)) nextEls.push(_next);\n } else nextEls.push(_next);\n\n el = _next;\n }\n\n return $(nextEls);\n}\n\nfunction prev(selector) {\n if (this.length > 0) {\n var el = this[0];\n\n if (selector) {\n if (el.previousElementSibling && $(el.previousElementSibling).is(selector)) {\n return $([el.previousElementSibling]);\n }\n\n return $([]);\n }\n\n if (el.previousElementSibling) return $([el.previousElementSibling]);\n return $([]);\n }\n\n return $([]);\n}\n\nfunction prevAll(selector) {\n var prevEls = [];\n var el = this[0];\n if (!el) return $([]);\n\n while (el.previousElementSibling) {\n var _prev = el.previousElementSibling; // eslint-disable-line\n\n if (selector) {\n if ($(_prev).is(selector)) prevEls.push(_prev);\n } else prevEls.push(_prev);\n\n el = _prev;\n }\n\n return $(prevEls);\n}\n\nfunction siblings(selector) {\n return this.nextAll(selector).add(this.prevAll(selector));\n}\n\nfunction parent(selector) {\n var parents = []; // eslint-disable-line\n\n for (var i = 0; i < this.length; i += 1) {\n if (this[i].parentNode !== null) {\n if (selector) {\n if ($(this[i].parentNode).is(selector)) parents.push(this[i].parentNode);\n } else {\n parents.push(this[i].parentNode);\n }\n }\n }\n\n return $(parents);\n}\n\nfunction parents(selector) {\n var parents = []; // eslint-disable-line\n\n for (var i = 0; i < this.length; i += 1) {\n var _parent = this[i].parentNode; // eslint-disable-line\n\n while (_parent) {\n if (selector) {\n if ($(_parent).is(selector)) parents.push(_parent);\n } else {\n parents.push(_parent);\n }\n\n _parent = _parent.parentNode;\n }\n }\n\n return $(parents);\n}\n\nfunction closest(selector) {\n var closest = this; // eslint-disable-line\n\n if (typeof selector === 'undefined') {\n return $([]);\n }\n\n if (!closest.is(selector)) {\n closest = closest.parents(selector).eq(0);\n }\n\n return closest;\n}\n\nfunction find(selector) {\n var foundElements = [];\n\n for (var i = 0; i < this.length; i += 1) {\n var found = this[i].querySelectorAll(selector);\n\n for (var j = 0; j < found.length; j += 1) {\n foundElements.push(found[j]);\n }\n }\n\n return $(foundElements);\n}\n\nfunction children(selector) {\n var children = []; // eslint-disable-line\n\n for (var i = 0; i < this.length; i += 1) {\n var childNodes = this[i].children;\n\n for (var j = 0; j < childNodes.length; j += 1) {\n if (!selector || $(childNodes[j]).is(selector)) {\n children.push(childNodes[j]);\n }\n }\n }\n\n return $(children);\n}\n\nfunction remove() {\n for (var i = 0; i < this.length; i += 1) {\n if (this[i].parentNode) this[i].parentNode.removeChild(this[i]);\n }\n\n return this;\n}\n\nfunction detach() {\n return this.remove();\n}\n\nfunction add() {\n var dom = this;\n var i;\n var j;\n\n for (var _len10 = arguments.length, els = new Array(_len10), _key10 = 0; _key10 < _len10; _key10++) {\n els[_key10] = arguments[_key10];\n }\n\n for (i = 0; i < els.length; i += 1) {\n var toAdd = $(els[i]);\n\n for (j = 0; j < toAdd.length; j += 1) {\n dom.push(toAdd[j]);\n }\n }\n\n return dom;\n}\n\nfunction empty() {\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n\n if (el.nodeType === 1) {\n for (var j = 0; j < el.childNodes.length; j += 1) {\n if (el.childNodes[j].parentNode) {\n el.childNodes[j].parentNode.removeChild(el.childNodes[j]);\n }\n }\n\n el.textContent = '';\n }\n }\n\n return this;\n}\n\nfunction scrollTo() {\n var window = getWindow();\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var left = args[0],\n top = args[1],\n duration = args[2],\n easing = args[3],\n callback = args[4];\n\n if (args.length === 4 && typeof easing === 'function') {\n callback = easing;\n left = args[0];\n top = args[1];\n duration = args[2];\n callback = args[3];\n easing = args[4];\n }\n\n if (typeof easing === 'undefined') easing = 'swing';\n return this.each(function animate() {\n var el = this;\n var currentTop;\n var currentLeft;\n var maxTop;\n var maxLeft;\n var newTop;\n var newLeft;\n var scrollTop; // eslint-disable-line\n\n var scrollLeft; // eslint-disable-line\n\n var animateTop = top > 0 || top === 0;\n var animateLeft = left > 0 || left === 0;\n\n if (typeof easing === 'undefined') {\n easing = 'swing';\n }\n\n if (animateTop) {\n currentTop = el.scrollTop;\n\n if (!duration) {\n el.scrollTop = top;\n }\n }\n\n if (animateLeft) {\n currentLeft = el.scrollLeft;\n\n if (!duration) {\n el.scrollLeft = left;\n }\n }\n\n if (!duration) return;\n\n if (animateTop) {\n maxTop = el.scrollHeight - el.offsetHeight;\n newTop = Math.max(Math.min(top, maxTop), 0);\n }\n\n if (animateLeft) {\n maxLeft = el.scrollWidth - el.offsetWidth;\n newLeft = Math.max(Math.min(left, maxLeft), 0);\n }\n\n var startTime = null;\n if (animateTop && newTop === currentTop) animateTop = false;\n if (animateLeft && newLeft === currentLeft) animateLeft = false;\n\n function render(time) {\n if (time === void 0) {\n time = new Date().getTime();\n }\n\n if (startTime === null) {\n startTime = time;\n }\n\n var progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n var easeProgress = easing === 'linear' ? progress : 0.5 - Math.cos(progress * Math.PI) / 2;\n var done;\n if (animateTop) scrollTop = currentTop + easeProgress * (newTop - currentTop);\n if (animateLeft) scrollLeft = currentLeft + easeProgress * (newLeft - currentLeft);\n\n if (animateTop && newTop > currentTop && scrollTop >= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n\n if (animateTop && newTop < currentTop && scrollTop <= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n\n if (animateLeft && newLeft > currentLeft && scrollLeft >= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n\n if (animateLeft && newLeft < currentLeft && scrollLeft <= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n\n if (done) {\n if (callback) callback();\n return;\n }\n\n if (animateTop) el.scrollTop = scrollTop;\n if (animateLeft) el.scrollLeft = scrollLeft;\n window.requestAnimationFrame(render);\n }\n\n window.requestAnimationFrame(render);\n });\n} // scrollTop(top, duration, easing, callback) {\n\n\nfunction scrollTop() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n var top = args[0],\n duration = args[1],\n easing = args[2],\n callback = args[3];\n\n if (args.length === 3 && typeof easing === 'function') {\n top = args[0];\n duration = args[1];\n callback = args[2];\n easing = args[3];\n }\n\n var dom = this;\n\n if (typeof top === 'undefined') {\n if (dom.length > 0) return dom[0].scrollTop;\n return null;\n }\n\n return dom.scrollTo(undefined, top, duration, easing, callback);\n}\n\nfunction scrollLeft() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n var left = args[0],\n duration = args[1],\n easing = args[2],\n callback = args[3];\n\n if (args.length === 3 && typeof easing === 'function') {\n left = args[0];\n duration = args[1];\n callback = args[2];\n easing = args[3];\n }\n\n var dom = this;\n\n if (typeof left === 'undefined') {\n if (dom.length > 0) return dom[0].scrollLeft;\n return null;\n }\n\n return dom.scrollTo(left, undefined, duration, easing, callback);\n}\n\nfunction animate(initialProps, initialParams) {\n var window = getWindow();\n var els = this;\n var a = {\n props: Object.assign({}, initialProps),\n params: Object.assign({\n duration: 300,\n easing: 'swing' // or 'linear'\n\n /* Callbacks\n begin(elements)\n complete(elements)\n progress(elements, complete, remaining, start, tweenValue)\n */\n\n }, initialParams),\n elements: els,\n animating: false,\n que: [],\n easingProgress: function easingProgress(easing, progress) {\n if (easing === 'swing') {\n return 0.5 - Math.cos(progress * Math.PI) / 2;\n }\n\n if (typeof easing === 'function') {\n return easing(progress);\n }\n\n return progress;\n },\n stop: function stop() {\n if (a.frameId) {\n window.cancelAnimationFrame(a.frameId);\n }\n\n a.animating = false;\n a.elements.each(function (el) {\n var element = el;\n delete element.dom7AnimateInstance;\n });\n a.que = [];\n },\n done: function done(complete) {\n a.animating = false;\n a.elements.each(function (el) {\n var element = el;\n delete element.dom7AnimateInstance;\n });\n if (complete) complete(els);\n\n if (a.que.length > 0) {\n var que = a.que.shift();\n a.animate(que[0], que[1]);\n }\n },\n animate: function animate(props, params) {\n if (a.animating) {\n a.que.push([props, params]);\n return a;\n }\n\n var elements = []; // Define & Cache Initials & Units\n\n a.elements.each(function (el, index) {\n var initialFullValue;\n var initialValue;\n var unit;\n var finalValue;\n var finalFullValue;\n if (!el.dom7AnimateInstance) a.elements[index].dom7AnimateInstance = a;\n elements[index] = {\n container: el\n };\n Object.keys(props).forEach(function (prop) {\n initialFullValue = window.getComputedStyle(el, null).getPropertyValue(prop).replace(',', '.');\n initialValue = parseFloat(initialFullValue);\n unit = initialFullValue.replace(initialValue, '');\n finalValue = parseFloat(props[prop]);\n finalFullValue = props[prop] + unit;\n elements[index][prop] = {\n initialFullValue: initialFullValue,\n initialValue: initialValue,\n unit: unit,\n finalValue: finalValue,\n finalFullValue: finalFullValue,\n currentValue: initialValue\n };\n });\n });\n var startTime = null;\n var time;\n var elementsDone = 0;\n var propsDone = 0;\n var done;\n var began = false;\n a.animating = true;\n\n function render() {\n time = new Date().getTime();\n var progress;\n var easeProgress; // let el;\n\n if (!began) {\n began = true;\n if (params.begin) params.begin(els);\n }\n\n if (startTime === null) {\n startTime = time;\n }\n\n if (params.progress) {\n // eslint-disable-next-line\n params.progress(els, Math.max(Math.min((time - startTime) / params.duration, 1), 0), startTime + params.duration - time < 0 ? 0 : startTime + params.duration - time, startTime);\n }\n\n elements.forEach(function (element) {\n var el = element;\n if (done || el.done) return;\n Object.keys(props).forEach(function (prop) {\n if (done || el.done) return;\n progress = Math.max(Math.min((time - startTime) / params.duration, 1), 0);\n easeProgress = a.easingProgress(params.easing, progress);\n var _el$prop = el[prop],\n initialValue = _el$prop.initialValue,\n finalValue = _el$prop.finalValue,\n unit = _el$prop.unit;\n el[prop].currentValue = initialValue + easeProgress * (finalValue - initialValue);\n var currentValue = el[prop].currentValue;\n\n if (finalValue > initialValue && currentValue >= finalValue || finalValue < initialValue && currentValue <= finalValue) {\n el.container.style[prop] = finalValue + unit;\n propsDone += 1;\n\n if (propsDone === Object.keys(props).length) {\n el.done = true;\n elementsDone += 1;\n }\n\n if (elementsDone === elements.length) {\n done = true;\n }\n }\n\n if (done) {\n a.done(params.complete);\n return;\n }\n\n el.container.style[prop] = currentValue + unit;\n });\n });\n if (done) return; // Then call\n\n a.frameId = window.requestAnimationFrame(render);\n }\n\n a.frameId = window.requestAnimationFrame(render);\n return a;\n }\n };\n\n if (a.elements.length === 0) {\n return els;\n }\n\n var animateInstance;\n\n for (var i = 0; i < a.elements.length; i += 1) {\n if (a.elements[i].dom7AnimateInstance) {\n animateInstance = a.elements[i].dom7AnimateInstance;\n } else a.elements[i].dom7AnimateInstance = a;\n }\n\n if (!animateInstance) {\n animateInstance = a;\n }\n\n if (initialProps === 'stop') {\n animateInstance.stop();\n } else {\n animateInstance.animate(a.props, a.params);\n }\n\n return els;\n}\n\nfunction stop() {\n var els = this;\n\n for (var i = 0; i < els.length; i += 1) {\n if (els[i].dom7AnimateInstance) {\n els[i].dom7AnimateInstance.stop();\n }\n }\n}\n\nvar noTrigger = 'resize scroll'.split(' ');\n\nfunction shortcut(name) {\n function eventHandler() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (typeof args[0] === 'undefined') {\n for (var i = 0; i < this.length; i += 1) {\n if (noTrigger.indexOf(name) < 0) {\n if (name in this[i]) this[i][name]();else {\n $(this[i]).trigger(name);\n }\n }\n }\n\n return this;\n }\n\n return this.on.apply(this, [name].concat(args));\n }\n\n return eventHandler;\n}\n\nvar click = shortcut('click');\nvar blur = shortcut('blur');\nvar focus = shortcut('focus');\nvar focusin = shortcut('focusin');\nvar focusout = shortcut('focusout');\nvar keyup = shortcut('keyup');\nvar keydown = shortcut('keydown');\nvar keypress = shortcut('keypress');\nvar submit = shortcut('submit');\nvar change = shortcut('change');\nvar mousedown = shortcut('mousedown');\nvar mousemove = shortcut('mousemove');\nvar mouseup = shortcut('mouseup');\nvar mouseenter = shortcut('mouseenter');\nvar mouseleave = shortcut('mouseleave');\nvar mouseout = shortcut('mouseout');\nvar mouseover = shortcut('mouseover');\nvar touchstart = shortcut('touchstart');\nvar touchend = shortcut('touchend');\nvar touchmove = shortcut('touchmove');\nvar resize = shortcut('resize');\nvar scroll = shortcut('scroll');\n\nexport default $;\nexport { $, add, addClass, animate, animationEnd, append, appendTo, attr, blur, change, children, click, closest, css, data, dataset, detach, each, empty, eq, filter, find, focus, focusin, focusout, hasClass, height, hide, html, index, insertAfter, insertBefore, is, keydown, keypress, keyup, mousedown, mouseenter, mouseleave, mousemove, mouseout, mouseover, mouseup, next, nextAll, off, offset, on, once, outerHeight, outerWidth, parent, parents, prepend, prependTo, prev, prevAll, prop, remove, removeAttr, removeClass, removeData, resize, scroll, scrollLeft, scrollTo, scrollTop, show, siblings, stop, styles, submit, text, toggleClass, touchend, touchmove, touchstart, transform, transition, transitionEnd, trigger, val, value, width };\n","import { $, addClass, removeClass, hasClass, toggleClass, attr, removeAttr, transform, transition, on, off, trigger, transitionEnd, outerWidth, outerHeight, styles, offset, css, each, html, text, is, index, eq, append, prepend, next, nextAll, prev, prevAll, parent, parents, closest, find, children, filter, remove } from 'dom7';\nvar Methods = {\n addClass: addClass,\n removeClass: removeClass,\n hasClass: hasClass,\n toggleClass: toggleClass,\n attr: attr,\n removeAttr: removeAttr,\n transform: transform,\n transition: transition,\n on: on,\n off: off,\n trigger: trigger,\n transitionEnd: transitionEnd,\n outerWidth: outerWidth,\n outerHeight: outerHeight,\n styles: styles,\n offset: offset,\n css: css,\n each: each,\n html: html,\n text: text,\n is: is,\n index: index,\n eq: eq,\n append: append,\n prepend: prepend,\n next: next,\n nextAll: nextAll,\n prev: prev,\n prevAll: prevAll,\n parent: parent,\n parents: parents,\n closest: closest,\n find: find,\n children: children,\n filter: filter,\n remove: remove\n};\nObject.keys(Methods).forEach(function (methodName) {\n $.fn[methodName] = Methods[methodName];\n});\nexport default $;","import { getWindow, getDocument } from 'ssr-window';\nvar support;\n\nfunction calcSupport() {\n var window = getWindow();\n var document = getDocument();\n return {\n touch: !!('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch),\n pointerEvents: !!window.PointerEvent && 'maxTouchPoints' in window.navigator && window.navigator.maxTouchPoints >= 0,\n observer: function checkObserver() {\n return 'MutationObserver' in window || 'WebkitMutationObserver' in window;\n }(),\n passiveListener: function checkPassiveListener() {\n var supportsPassive = false;\n\n try {\n var opts = Object.defineProperty({}, 'passive', {\n // eslint-disable-next-line\n get: function get() {\n supportsPassive = true;\n }\n });\n window.addEventListener('testPassiveListener', null, opts);\n } catch (e) {// No support\n }\n\n return supportsPassive;\n }(),\n gestures: function checkGestures() {\n return 'ongesturestart' in window;\n }()\n };\n}\n\nfunction getSupport() {\n if (!support) {\n support = calcSupport();\n }\n\n return support;\n}\n\nexport { getSupport };","import { getWindow } from 'ssr-window';\nimport { getSupport } from './get-support';\nvar device;\n\nfunction calcDevice(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n userAgent = _ref.userAgent;\n\n var support = getSupport();\n var window = getWindow();\n var platform = window.navigator.platform;\n var ua = userAgent || window.navigator.userAgent;\n var device = {\n ios: false,\n android: false\n };\n var screenWidth = window.screen.width;\n var screenHeight = window.screen.height;\n var android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n\n var ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\n var ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\n var iphone = !ipad && ua.match(/(iPhone\\sOS|iOS)\\s([\\d_]+)/);\n var windows = platform === 'Win32';\n var macos = platform === 'MacIntel'; // iPadOs 13 fix\n\n var iPadScreens = ['1024x1366', '1366x1024', '834x1194', '1194x834', '834x1112', '1112x834', '768x1024', '1024x768'];\n\n if (!ipad && macos && support.touch && iPadScreens.indexOf(screenWidth + \"x\" + screenHeight) >= 0) {\n ipad = ua.match(/(Version)\\/([\\d.]+)/);\n if (!ipad) ipad = [0, 1, '13_0_0'];\n macos = false;\n } // Android\n\n\n if (android && !windows) {\n device.os = 'android';\n device.android = true;\n }\n\n if (ipad || iphone || ipod) {\n device.os = 'ios';\n device.ios = true;\n } // Export object\n\n\n return device;\n}\n\nfunction getDevice(overrides) {\n if (overrides === void 0) {\n overrides = {};\n }\n\n if (!device) {\n device = calcDevice(overrides);\n }\n\n return device;\n}\n\nexport { getDevice };","import { getWindow } from 'ssr-window';\nvar browser;\n\nfunction calcBrowser() {\n var window = getWindow();\n\n function isSafari() {\n var ua = window.navigator.userAgent.toLowerCase();\n return ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0;\n }\n\n return {\n isEdge: !!window.navigator.userAgent.match(/Edge/g),\n isSafari: isSafari(),\n isWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent)\n };\n}\n\nfunction getBrowser() {\n if (!browser) {\n browser = calcBrowser();\n }\n\n return browser;\n}\n\nexport { getBrowser };","import { getWindow } from 'ssr-window';\n\nfunction deleteProps(obj) {\n var object = obj;\n Object.keys(object).forEach(function (key) {\n try {\n object[key] = null;\n } catch (e) {// no getter for object\n }\n\n try {\n delete object[key];\n } catch (e) {// something got wrong\n }\n });\n}\n\nfunction nextTick(callback, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n\n return setTimeout(callback, delay);\n}\n\nfunction now() {\n return Date.now();\n}\n\nfunction getTranslate(el, axis) {\n if (axis === void 0) {\n axis = 'x';\n }\n\n var window = getWindow();\n var matrix;\n var curTransform;\n var transformMatrix;\n var curStyle = window.getComputedStyle(el, null);\n\n if (window.WebKitCSSMatrix) {\n curTransform = curStyle.transform || curStyle.webkitTransform;\n\n if (curTransform.split(',').length > 6) {\n curTransform = curTransform.split(', ').map(function (a) {\n return a.replace(',', '.');\n }).join(', ');\n } // Some old versions of Webkit choke when 'none' is passed; pass\n // empty string instead in this case\n\n\n transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform);\n } else {\n transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,');\n matrix = transformMatrix.toString().split(',');\n }\n\n if (axis === 'x') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41; // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[12]); // Normal Browsers\n else curTransform = parseFloat(matrix[4]);\n }\n\n if (axis === 'y') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42; // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[13]); // Normal Browsers\n else curTransform = parseFloat(matrix[5]);\n }\n\n return curTransform || 0;\n}\n\nfunction isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && o.constructor === Object;\n}\n\nfunction extend() {\n var to = Object(arguments.length <= 0 ? undefined : arguments[0]);\n\n for (var i = 1; i < arguments.length; i += 1) {\n var nextSource = i < 0 || arguments.length <= i ? undefined : arguments[i];\n\n if (nextSource !== undefined && nextSource !== null) {\n var keysArray = Object.keys(Object(nextSource));\n\n for (var nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {\n var nextKey = keysArray[nextIndex];\n var desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n\n if (desc !== undefined && desc.enumerable) {\n if (isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n extend(to[nextKey], nextSource[nextKey]);\n } else if (!isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n to[nextKey] = {};\n extend(to[nextKey], nextSource[nextKey]);\n } else {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n }\n\n return to;\n}\n\nfunction bindModuleMethods(instance, obj) {\n Object.keys(obj).forEach(function (key) {\n if (isObject(obj[key])) {\n Object.keys(obj[key]).forEach(function (subKey) {\n if (typeof obj[key][subKey] === 'function') {\n obj[key][subKey] = obj[key][subKey].bind(instance);\n }\n });\n }\n\n instance[key] = obj[key];\n });\n}\n\nexport { deleteProps, nextTick, now, getTranslate, isObject, extend, bindModuleMethods };","import { getWindow } from 'ssr-window';\nimport { extend } from '../../utils/utils';\nexport default {\n name: 'resize',\n create: function create() {\n var swiper = this;\n extend(swiper, {\n resize: {\n resizeHandler: function resizeHandler() {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n swiper.emit('beforeResize');\n swiper.emit('resize');\n },\n orientationChangeHandler: function orientationChangeHandler() {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n swiper.emit('orientationchange');\n }\n }\n });\n },\n on: {\n init: function init(swiper) {\n var window = getWindow(); // Emit resize\n\n window.addEventListener('resize', swiper.resize.resizeHandler); // Emit orientationchange\n\n window.addEventListener('orientationchange', swiper.resize.orientationChangeHandler);\n },\n destroy: function destroy(swiper) {\n var window = getWindow();\n window.removeEventListener('resize', swiper.resize.resizeHandler);\n window.removeEventListener('orientationchange', swiper.resize.orientationChangeHandler);\n }\n }\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport { getWindow } from 'ssr-window';\nimport { bindModuleMethods } from '../../utils/utils';\nvar Observer = {\n attach: function attach(target, options) {\n if (options === void 0) {\n options = {};\n }\n\n var window = getWindow();\n var swiper = this;\n var ObserverFunc = window.MutationObserver || window.WebkitMutationObserver;\n var observer = new ObserverFunc(function (mutations) {\n // The observerUpdate event should only be triggered\n // once despite the number of mutations. Additional\n // triggers are redundant and are very costly\n if (mutations.length === 1) {\n swiper.emit('observerUpdate', mutations[0]);\n return;\n }\n\n var observerUpdate = function observerUpdate() {\n swiper.emit('observerUpdate', mutations[0]);\n };\n\n if (window.requestAnimationFrame) {\n window.requestAnimationFrame(observerUpdate);\n } else {\n window.setTimeout(observerUpdate, 0);\n }\n });\n observer.observe(target, {\n attributes: typeof options.attributes === 'undefined' ? true : options.attributes,\n childList: typeof options.childList === 'undefined' ? true : options.childList,\n characterData: typeof options.characterData === 'undefined' ? true : options.characterData\n });\n swiper.observer.observers.push(observer);\n },\n init: function init() {\n var swiper = this;\n if (!swiper.support.observer || !swiper.params.observer) return;\n\n if (swiper.params.observeParents) {\n var containerParents = swiper.$el.parents();\n\n for (var i = 0; i < containerParents.length; i += 1) {\n swiper.observer.attach(containerParents[i]);\n }\n } // Observe container\n\n\n swiper.observer.attach(swiper.$el[0], {\n childList: swiper.params.observeSlideChildren\n }); // Observe wrapper\n\n swiper.observer.attach(swiper.$wrapperEl[0], {\n attributes: false\n });\n },\n destroy: function destroy() {\n var swiper = this;\n swiper.observer.observers.forEach(function (observer) {\n observer.disconnect();\n });\n swiper.observer.observers = [];\n }\n};\nexport default {\n name: 'observer',\n params: {\n observer: false,\n observeParents: false,\n observeSlideChildren: false\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n observer: _extends(_extends({}, Observer), {}, {\n observers: []\n })\n });\n },\n on: {\n init: function init(swiper) {\n swiper.observer.init();\n },\n destroy: function destroy(swiper) {\n swiper.observer.destroy();\n }\n }\n};","import { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../../utils/dom';\nimport { extend, now } from '../../../utils/utils';\nexport default function onTouchStart(event) {\n var swiper = this;\n var document = getDocument();\n var window = getWindow();\n var data = swiper.touchEventsData;\n var params = swiper.params,\n touches = swiper.touches;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return;\n }\n\n var e = event;\n if (e.originalEvent) e = e.originalEvent;\n var $targetEl = $(e.target);\n\n if (params.touchEventsTarget === 'wrapper') {\n if (!$targetEl.closest(swiper.wrapperEl).length) return;\n }\n\n data.isTouchEvent = e.type === 'touchstart';\n if (!data.isTouchEvent && 'which' in e && e.which === 3) return;\n if (!data.isTouchEvent && 'button' in e && e.button > 0) return;\n if (data.isTouched && data.isMoved) return;\n\n if (params.noSwiping && $targetEl.closest(params.noSwipingSelector ? params.noSwipingSelector : \".\" + params.noSwipingClass)[0]) {\n swiper.allowClick = true;\n return;\n }\n\n if (params.swipeHandler) {\n if (!$targetEl.closest(params.swipeHandler)[0]) return;\n }\n\n touches.currentX = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n touches.currentY = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n var startX = touches.currentX;\n var startY = touches.currentY; // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore\n\n var edgeSwipeDetection = params.edgeSwipeDetection || params.iOSEdgeSwipeDetection;\n var edgeSwipeThreshold = params.edgeSwipeThreshold || params.iOSEdgeSwipeThreshold;\n\n if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window.screen.width - edgeSwipeThreshold)) {\n return;\n }\n\n extend(data, {\n isTouched: true,\n isMoved: false,\n allowTouchCallbacks: true,\n isScrolling: undefined,\n startMoving: undefined\n });\n touches.startX = startX;\n touches.startY = startY;\n data.touchStartTime = now();\n swiper.allowClick = true;\n swiper.updateSize();\n swiper.swipeDirection = undefined;\n if (params.threshold > 0) data.allowThresholdMove = false;\n\n if (e.type !== 'touchstart') {\n var preventDefault = true;\n if ($targetEl.is(data.formElements)) preventDefault = false;\n\n if (document.activeElement && $(document.activeElement).is(data.formElements) && document.activeElement !== $targetEl[0]) {\n document.activeElement.blur();\n }\n\n var shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\n\n if (params.touchStartForcePreventDefault || shouldPreventDefault) {\n e.preventDefault();\n }\n }\n\n swiper.emit('touchStart', e);\n}","import { getDocument } from 'ssr-window';\nimport $ from '../../../utils/dom';\nimport { extend, now } from '../../../utils/utils';\nexport default function onTouchMove(event) {\n var document = getDocument();\n var swiper = this;\n var data = swiper.touchEventsData;\n var params = swiper.params,\n touches = swiper.touches,\n rtl = swiper.rtlTranslate;\n var e = event;\n if (e.originalEvent) e = e.originalEvent;\n\n if (!data.isTouched) {\n if (data.startMoving && data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n\n return;\n }\n\n if (data.isTouchEvent && e.type !== 'touchmove') return;\n var targetTouch = e.type === 'touchmove' && e.targetTouches && (e.targetTouches[0] || e.changedTouches[0]);\n var pageX = e.type === 'touchmove' ? targetTouch.pageX : e.pageX;\n var pageY = e.type === 'touchmove' ? targetTouch.pageY : e.pageY;\n\n if (e.preventedByNestedSwiper) {\n touches.startX = pageX;\n touches.startY = pageY;\n return;\n }\n\n if (!swiper.allowTouchMove) {\n // isMoved = true;\n swiper.allowClick = false;\n\n if (data.isTouched) {\n extend(touches, {\n startX: pageX,\n startY: pageY,\n currentX: pageX,\n currentY: pageY\n });\n data.touchStartTime = now();\n }\n\n return;\n }\n\n if (data.isTouchEvent && params.touchReleaseOnEdges && !params.loop) {\n if (swiper.isVertical()) {\n // Vertical\n if (pageY < touches.startY && swiper.translate <= swiper.maxTranslate() || pageY > touches.startY && swiper.translate >= swiper.minTranslate()) {\n data.isTouched = false;\n data.isMoved = false;\n return;\n }\n } else if (pageX < touches.startX && swiper.translate <= swiper.maxTranslate() || pageX > touches.startX && swiper.translate >= swiper.minTranslate()) {\n return;\n }\n }\n\n if (data.isTouchEvent && document.activeElement) {\n if (e.target === document.activeElement && $(e.target).is(data.formElements)) {\n data.isMoved = true;\n swiper.allowClick = false;\n return;\n }\n }\n\n if (data.allowTouchCallbacks) {\n swiper.emit('touchMove', e);\n }\n\n if (e.targetTouches && e.targetTouches.length > 1) return;\n touches.currentX = pageX;\n touches.currentY = pageY;\n var diffX = touches.currentX - touches.startX;\n var diffY = touches.currentY - touches.startY;\n if (swiper.params.threshold && Math.sqrt(Math.pow(diffX, 2) + Math.pow(diffY, 2)) < swiper.params.threshold) return;\n\n if (typeof data.isScrolling === 'undefined') {\n var touchAngle;\n\n if (swiper.isHorizontal() && touches.currentY === touches.startY || swiper.isVertical() && touches.currentX === touches.startX) {\n data.isScrolling = false;\n } else {\n // eslint-disable-next-line\n if (diffX * diffX + diffY * diffY >= 25) {\n touchAngle = Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180 / Math.PI;\n data.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : 90 - touchAngle > params.touchAngle;\n }\n }\n }\n\n if (data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n\n if (typeof data.startMoving === 'undefined') {\n if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {\n data.startMoving = true;\n }\n }\n\n if (data.isScrolling) {\n data.isTouched = false;\n return;\n }\n\n if (!data.startMoving) {\n return;\n }\n\n swiper.allowClick = false;\n\n if (!params.cssMode && e.cancelable) {\n e.preventDefault();\n }\n\n if (params.touchMoveStopPropagation && !params.nested) {\n e.stopPropagation();\n }\n\n if (!data.isMoved) {\n if (params.loop) {\n swiper.loopFix();\n }\n\n data.startTranslate = swiper.getTranslate();\n swiper.setTransition(0);\n\n if (swiper.animating) {\n swiper.$wrapperEl.trigger('webkitTransitionEnd transitionend');\n }\n\n data.allowMomentumBounce = false; // Grab Cursor\n\n if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(true);\n }\n\n swiper.emit('sliderFirstMove', e);\n }\n\n swiper.emit('sliderMove', e);\n data.isMoved = true;\n var diff = swiper.isHorizontal() ? diffX : diffY;\n touches.diff = diff;\n diff *= params.touchRatio;\n if (rtl) diff = -diff;\n swiper.swipeDirection = diff > 0 ? 'prev' : 'next';\n data.currentTranslate = diff + data.startTranslate;\n var disableParentSwiper = true;\n var resistanceRatio = params.resistanceRatio;\n\n if (params.touchReleaseOnEdges) {\n resistanceRatio = 0;\n }\n\n if (diff > 0 && data.currentTranslate > swiper.minTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) data.currentTranslate = swiper.minTranslate() - 1 + Math.pow(-swiper.minTranslate() + data.startTranslate + diff, resistanceRatio);\n } else if (diff < 0 && data.currentTranslate < swiper.maxTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) data.currentTranslate = swiper.maxTranslate() + 1 - Math.pow(swiper.maxTranslate() - data.startTranslate - diff, resistanceRatio);\n }\n\n if (disableParentSwiper) {\n e.preventedByNestedSwiper = true;\n } // Directions locks\n\n\n if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n\n if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n } // Threshold\n\n\n if (params.threshold > 0) {\n if (Math.abs(diff) > params.threshold || data.allowThresholdMove) {\n if (!data.allowThresholdMove) {\n data.allowThresholdMove = true;\n touches.startX = touches.currentX;\n touches.startY = touches.currentY;\n data.currentTranslate = data.startTranslate;\n touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY;\n return;\n }\n } else {\n data.currentTranslate = data.startTranslate;\n return;\n }\n }\n\n if (!params.followFinger || params.cssMode) return; // Update active index in free mode\n\n if (params.freeMode || params.watchSlidesProgress || params.watchSlidesVisibility) {\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n if (params.freeMode) {\n // Velocity\n if (data.velocities.length === 0) {\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'startX' : 'startY'],\n time: data.touchStartTime\n });\n }\n\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'currentX' : 'currentY'],\n time: now()\n });\n } // Update progress\n\n\n swiper.updateProgress(data.currentTranslate); // Update translate\n\n swiper.setTranslate(data.currentTranslate);\n}","import { now, nextTick } from '../../../utils/utils';\nexport default function onTouchEnd(event) {\n var swiper = this;\n var data = swiper.touchEventsData;\n var params = swiper.params,\n touches = swiper.touches,\n rtl = swiper.rtlTranslate,\n $wrapperEl = swiper.$wrapperEl,\n slidesGrid = swiper.slidesGrid,\n snapGrid = swiper.snapGrid;\n var e = event;\n if (e.originalEvent) e = e.originalEvent;\n\n if (data.allowTouchCallbacks) {\n swiper.emit('touchEnd', e);\n }\n\n data.allowTouchCallbacks = false;\n\n if (!data.isTouched) {\n if (data.isMoved && params.grabCursor) {\n swiper.setGrabCursor(false);\n }\n\n data.isMoved = false;\n data.startMoving = false;\n return;\n } // Return Grab Cursor\n\n\n if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(false);\n } // Time diff\n\n\n var touchEndTime = now();\n var timeDiff = touchEndTime - data.touchStartTime; // Tap, doubleTap, Click\n\n if (swiper.allowClick) {\n swiper.updateClickedSlide(e);\n swiper.emit('tap click', e);\n\n if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) {\n swiper.emit('doubleTap doubleClick', e);\n }\n }\n\n data.lastClickTime = now();\n nextTick(function () {\n if (!swiper.destroyed) swiper.allowClick = true;\n });\n\n if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 || data.currentTranslate === data.startTranslate) {\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n var currentPos;\n\n if (params.followFinger) {\n currentPos = rtl ? swiper.translate : -swiper.translate;\n } else {\n currentPos = -data.currentTranslate;\n }\n\n if (params.cssMode) {\n return;\n }\n\n if (params.freeMode) {\n if (currentPos < -swiper.minTranslate()) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n\n if (currentPos > -swiper.maxTranslate()) {\n if (swiper.slides.length < snapGrid.length) {\n swiper.slideTo(snapGrid.length - 1);\n } else {\n swiper.slideTo(swiper.slides.length - 1);\n }\n\n return;\n }\n\n if (params.freeModeMomentum) {\n if (data.velocities.length > 1) {\n var lastMoveEvent = data.velocities.pop();\n var velocityEvent = data.velocities.pop();\n var distance = lastMoveEvent.position - velocityEvent.position;\n var time = lastMoveEvent.time - velocityEvent.time;\n swiper.velocity = distance / time;\n swiper.velocity /= 2;\n\n if (Math.abs(swiper.velocity) < params.freeModeMinimumVelocity) {\n swiper.velocity = 0;\n } // this implies that the user stopped moving a finger then released.\n // There would be no events with distance zero, so the last event is stale.\n\n\n if (time > 150 || now() - lastMoveEvent.time > 300) {\n swiper.velocity = 0;\n }\n } else {\n swiper.velocity = 0;\n }\n\n swiper.velocity *= params.freeModeMomentumVelocityRatio;\n data.velocities.length = 0;\n var momentumDuration = 1000 * params.freeModeMomentumRatio;\n var momentumDistance = swiper.velocity * momentumDuration;\n var newPosition = swiper.translate + momentumDistance;\n if (rtl) newPosition = -newPosition;\n var doBounce = false;\n var afterBouncePosition;\n var bounceAmount = Math.abs(swiper.velocity) * 20 * params.freeModeMomentumBounceRatio;\n var needsLoopFix;\n\n if (newPosition < swiper.maxTranslate()) {\n if (params.freeModeMomentumBounce) {\n if (newPosition + swiper.maxTranslate() < -bounceAmount) {\n newPosition = swiper.maxTranslate() - bounceAmount;\n }\n\n afterBouncePosition = swiper.maxTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.maxTranslate();\n }\n\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (newPosition > swiper.minTranslate()) {\n if (params.freeModeMomentumBounce) {\n if (newPosition - swiper.minTranslate() > bounceAmount) {\n newPosition = swiper.minTranslate() + bounceAmount;\n }\n\n afterBouncePosition = swiper.minTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.minTranslate();\n }\n\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (params.freeModeSticky) {\n var nextSlide;\n\n for (var j = 0; j < snapGrid.length; j += 1) {\n if (snapGrid[j] > -newPosition) {\n nextSlide = j;\n break;\n }\n }\n\n if (Math.abs(snapGrid[nextSlide] - newPosition) < Math.abs(snapGrid[nextSlide - 1] - newPosition) || swiper.swipeDirection === 'next') {\n newPosition = snapGrid[nextSlide];\n } else {\n newPosition = snapGrid[nextSlide - 1];\n }\n\n newPosition = -newPosition;\n }\n\n if (needsLoopFix) {\n swiper.once('transitionEnd', function () {\n swiper.loopFix();\n });\n } // Fix duration\n\n\n if (swiper.velocity !== 0) {\n if (rtl) {\n momentumDuration = Math.abs((-newPosition - swiper.translate) / swiper.velocity);\n } else {\n momentumDuration = Math.abs((newPosition - swiper.translate) / swiper.velocity);\n }\n\n if (params.freeModeSticky) {\n // If freeModeSticky is active and the user ends a swipe with a slow-velocity\n // event, then durations can be 20+ seconds to slide one (or zero!) slides.\n // It's easy to see this when simulating touch with mouse events. To fix this,\n // limit single-slide swipes to the default slide duration. This also has the\n // nice side effect of matching slide speed if the user stopped moving before\n // lifting finger or mouse vs. moving slowly before lifting the finger/mouse.\n // For faster swipes, also apply limits (albeit higher ones).\n var moveDistance = Math.abs((rtl ? -newPosition : newPosition) - swiper.translate);\n var currentSlideSize = swiper.slidesSizesGrid[swiper.activeIndex];\n\n if (moveDistance < currentSlideSize) {\n momentumDuration = params.speed;\n } else if (moveDistance < 2 * currentSlideSize) {\n momentumDuration = params.speed * 1.5;\n } else {\n momentumDuration = params.speed * 2.5;\n }\n }\n } else if (params.freeModeSticky) {\n swiper.slideToClosest();\n return;\n }\n\n if (params.freeModeMomentumBounce && doBounce) {\n swiper.updateProgress(afterBouncePosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n swiper.animating = true;\n $wrapperEl.transitionEnd(function () {\n if (!swiper || swiper.destroyed || !data.allowMomentumBounce) return;\n swiper.emit('momentumBounce');\n swiper.setTransition(params.speed);\n setTimeout(function () {\n swiper.setTranslate(afterBouncePosition);\n $wrapperEl.transitionEnd(function () {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }, 0);\n });\n } else if (swiper.velocity) {\n swiper.updateProgress(newPosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n\n if (!swiper.animating) {\n swiper.animating = true;\n $wrapperEl.transitionEnd(function () {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }\n } else {\n swiper.updateProgress(newPosition);\n }\n\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n } else if (params.freeModeSticky) {\n swiper.slideToClosest();\n return;\n }\n\n if (!params.freeModeMomentum || timeDiff >= params.longSwipesMs) {\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n return;\n } // Find current slide\n\n\n var stopIndex = 0;\n var groupSize = swiper.slidesSizesGrid[0];\n\n for (var i = 0; i < slidesGrid.length; i += i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup) {\n var _increment = i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n\n if (typeof slidesGrid[i + _increment] !== 'undefined') {\n if (currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + _increment]) {\n stopIndex = i;\n groupSize = slidesGrid[i + _increment] - slidesGrid[i];\n }\n } else if (currentPos >= slidesGrid[i]) {\n stopIndex = i;\n groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];\n }\n } // Find current slide size\n\n\n var ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\n var increment = stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n\n if (timeDiff > params.longSwipesMs) {\n // Long touches\n if (!params.longSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n\n if (swiper.swipeDirection === 'next') {\n if (ratio >= params.longSwipesRatio) swiper.slideTo(stopIndex + increment);else swiper.slideTo(stopIndex);\n }\n\n if (swiper.swipeDirection === 'prev') {\n if (ratio > 1 - params.longSwipesRatio) swiper.slideTo(stopIndex + increment);else swiper.slideTo(stopIndex);\n }\n } else {\n // Short swipes\n if (!params.shortSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n\n var isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl);\n\n if (!isNavButtonTarget) {\n if (swiper.swipeDirection === 'next') {\n swiper.slideTo(stopIndex + increment);\n }\n\n if (swiper.swipeDirection === 'prev') {\n swiper.slideTo(stopIndex);\n }\n } else if (e.target === swiper.navigation.nextEl) {\n swiper.slideTo(stopIndex + increment);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n}","export default function onResize() {\n var swiper = this;\n var params = swiper.params,\n el = swiper.el;\n if (el && el.offsetWidth === 0) return; // Breakpoints\n\n if (params.breakpoints) {\n swiper.setBreakpoint();\n } // Save locks\n\n\n var allowSlideNext = swiper.allowSlideNext,\n allowSlidePrev = swiper.allowSlidePrev,\n snapGrid = swiper.snapGrid; // Disable locks on resize\n\n swiper.allowSlideNext = true;\n swiper.allowSlidePrev = true;\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateSlidesClasses();\n\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides) {\n swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n\n if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n swiper.autoplay.run();\n } // Return locks after resize\n\n\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n\n if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n}","export default function onClick(e) {\n var swiper = this;\n\n if (!swiper.allowClick) {\n if (swiper.params.preventClicks) e.preventDefault();\n\n if (swiper.params.preventClicksPropagation && swiper.animating) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n }\n}","export default function onScroll() {\n var swiper = this;\n var wrapperEl = swiper.wrapperEl,\n rtlTranslate = swiper.rtlTranslate;\n swiper.previousTranslate = swiper.translate;\n\n if (swiper.isHorizontal()) {\n if (rtlTranslate) {\n swiper.translate = wrapperEl.scrollWidth - wrapperEl.offsetWidth - wrapperEl.scrollLeft;\n } else {\n swiper.translate = -wrapperEl.scrollLeft;\n }\n } else {\n swiper.translate = -wrapperEl.scrollTop;\n } // eslint-disable-next-line\n\n\n if (swiper.translate === -0) swiper.translate = 0;\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n var newProgress;\n var translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (swiper.translate - swiper.minTranslate()) / translatesDiff;\n }\n\n if (newProgress !== swiper.progress) {\n swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, false);\n}","import { getDocument } from 'ssr-window';\nimport onTouchStart from './onTouchStart';\nimport onTouchMove from './onTouchMove';\nimport onTouchEnd from './onTouchEnd';\nimport onResize from './onResize';\nimport onClick from './onClick';\nimport onScroll from './onScroll';\nvar dummyEventAttached = false;\n\nfunction dummyEventListener() {}\n\nfunction attachEvents() {\n var swiper = this;\n var document = getDocument();\n var params = swiper.params,\n touchEvents = swiper.touchEvents,\n el = swiper.el,\n wrapperEl = swiper.wrapperEl,\n device = swiper.device,\n support = swiper.support;\n swiper.onTouchStart = onTouchStart.bind(swiper);\n swiper.onTouchMove = onTouchMove.bind(swiper);\n swiper.onTouchEnd = onTouchEnd.bind(swiper);\n\n if (params.cssMode) {\n swiper.onScroll = onScroll.bind(swiper);\n }\n\n swiper.onClick = onClick.bind(swiper);\n var capture = !!params.nested; // Touch Events\n\n if (!support.touch && support.pointerEvents) {\n el.addEventListener(touchEvents.start, swiper.onTouchStart, false);\n document.addEventListener(touchEvents.move, swiper.onTouchMove, capture);\n document.addEventListener(touchEvents.end, swiper.onTouchEnd, false);\n } else {\n if (support.touch) {\n var passiveListener = touchEvents.start === 'touchstart' && support.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n el.addEventListener(touchEvents.start, swiper.onTouchStart, passiveListener);\n el.addEventListener(touchEvents.move, swiper.onTouchMove, support.passiveListener ? {\n passive: false,\n capture: capture\n } : capture);\n el.addEventListener(touchEvents.end, swiper.onTouchEnd, passiveListener);\n\n if (touchEvents.cancel) {\n el.addEventListener(touchEvents.cancel, swiper.onTouchEnd, passiveListener);\n }\n\n if (!dummyEventAttached) {\n document.addEventListener('touchstart', dummyEventListener);\n dummyEventAttached = true;\n }\n }\n\n if (params.simulateTouch && !device.ios && !device.android || params.simulateTouch && !support.touch && device.ios) {\n el.addEventListener('mousedown', swiper.onTouchStart, false);\n document.addEventListener('mousemove', swiper.onTouchMove, capture);\n document.addEventListener('mouseup', swiper.onTouchEnd, false);\n }\n } // Prevent Links Clicks\n\n\n if (params.preventClicks || params.preventClicksPropagation) {\n el.addEventListener('click', swiper.onClick, true);\n }\n\n if (params.cssMode) {\n wrapperEl.addEventListener('scroll', swiper.onScroll);\n } // Resize handler\n\n\n if (params.updateOnWindowResize) {\n swiper.on(device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize, true);\n } else {\n swiper.on('observerUpdate', onResize, true);\n }\n}\n\nfunction detachEvents() {\n var swiper = this;\n var document = getDocument();\n var params = swiper.params,\n touchEvents = swiper.touchEvents,\n el = swiper.el,\n wrapperEl = swiper.wrapperEl,\n device = swiper.device,\n support = swiper.support;\n var capture = !!params.nested; // Touch Events\n\n if (!support.touch && support.pointerEvents) {\n el.removeEventListener(touchEvents.start, swiper.onTouchStart, false);\n document.removeEventListener(touchEvents.move, swiper.onTouchMove, capture);\n document.removeEventListener(touchEvents.end, swiper.onTouchEnd, false);\n } else {\n if (support.touch) {\n var passiveListener = touchEvents.start === 'onTouchStart' && support.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n el.removeEventListener(touchEvents.start, swiper.onTouchStart, passiveListener);\n el.removeEventListener(touchEvents.move, swiper.onTouchMove, capture);\n el.removeEventListener(touchEvents.end, swiper.onTouchEnd, passiveListener);\n\n if (touchEvents.cancel) {\n el.removeEventListener(touchEvents.cancel, swiper.onTouchEnd, passiveListener);\n }\n }\n\n if (params.simulateTouch && !device.ios && !device.android || params.simulateTouch && !support.touch && device.ios) {\n el.removeEventListener('mousedown', swiper.onTouchStart, false);\n document.removeEventListener('mousemove', swiper.onTouchMove, capture);\n document.removeEventListener('mouseup', swiper.onTouchEnd, false);\n }\n } // Prevent Links Clicks\n\n\n if (params.preventClicks || params.preventClicksPropagation) {\n el.removeEventListener('click', swiper.onClick, true);\n }\n\n if (params.cssMode) {\n wrapperEl.removeEventListener('scroll', swiper.onScroll);\n } // Resize handler\n\n\n swiper.off(device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize);\n}\n\nexport default {\n attachEvents: attachEvents,\n detachEvents: detachEvents\n};","function checkOverflow() {\n var swiper = this;\n var params = swiper.params;\n var wasLocked = swiper.isLocked;\n var lastSlidePosition = swiper.slides.length > 0 && params.slidesOffsetBefore + params.spaceBetween * (swiper.slides.length - 1) + swiper.slides[0].offsetWidth * swiper.slides.length;\n\n if (params.slidesOffsetBefore && params.slidesOffsetAfter && lastSlidePosition) {\n swiper.isLocked = lastSlidePosition <= swiper.size;\n } else {\n swiper.isLocked = swiper.snapGrid.length === 1;\n }\n\n swiper.allowSlideNext = !swiper.isLocked;\n swiper.allowSlidePrev = !swiper.isLocked; // events\n\n if (wasLocked !== swiper.isLocked) swiper.emit(swiper.isLocked ? 'lock' : 'unlock');\n\n if (wasLocked && wasLocked !== swiper.isLocked) {\n swiper.isEnd = false;\n if (swiper.navigation) swiper.navigation.update();\n }\n}\n\nexport default {\n checkOverflow: checkOverflow\n};","export default {\n init: true,\n direction: 'horizontal',\n touchEventsTarget: 'container',\n initialSlide: 0,\n speed: 300,\n cssMode: false,\n updateOnWindowResize: true,\n // Overrides\n width: null,\n height: null,\n //\n preventInteractionOnTransition: false,\n // ssr\n userAgent: null,\n url: null,\n // To support iOS's swipe-to-go-back gesture (when being used in-app).\n edgeSwipeDetection: false,\n edgeSwipeThreshold: 20,\n // Free mode\n freeMode: false,\n freeModeMomentum: true,\n freeModeMomentumRatio: 1,\n freeModeMomentumBounce: true,\n freeModeMomentumBounceRatio: 1,\n freeModeMomentumVelocityRatio: 1,\n freeModeSticky: false,\n freeModeMinimumVelocity: 0.02,\n // Autoheight\n autoHeight: false,\n // Set wrapper width\n setWrapperSize: false,\n // Virtual Translate\n virtualTranslate: false,\n // Effects\n effect: 'slide',\n // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'\n // Breakpoints\n breakpoints: undefined,\n // Slides grid\n spaceBetween: 0,\n slidesPerView: 1,\n slidesPerColumn: 1,\n slidesPerColumnFill: 'column',\n slidesPerGroup: 1,\n slidesPerGroupSkip: 0,\n centeredSlides: false,\n centeredSlidesBounds: false,\n slidesOffsetBefore: 0,\n // in px\n slidesOffsetAfter: 0,\n // in px\n normalizeSlideIndex: true,\n centerInsufficientSlides: false,\n // Disable swiper and hide navigation when container not overflow\n watchOverflow: false,\n // Round length\n roundLengths: false,\n // Touches\n touchRatio: 1,\n touchAngle: 45,\n simulateTouch: true,\n shortSwipes: true,\n longSwipes: true,\n longSwipesRatio: 0.5,\n longSwipesMs: 300,\n followFinger: true,\n allowTouchMove: true,\n threshold: 0,\n touchMoveStopPropagation: false,\n touchStartPreventDefault: true,\n touchStartForcePreventDefault: false,\n touchReleaseOnEdges: false,\n // Unique Navigation Elements\n uniqueNavElements: true,\n // Resistance\n resistance: true,\n resistanceRatio: 0.85,\n // Progress\n watchSlidesProgress: false,\n watchSlidesVisibility: false,\n // Cursor\n grabCursor: false,\n // Clicks\n preventClicks: true,\n preventClicksPropagation: true,\n slideToClickedSlide: false,\n // Images\n preloadImages: true,\n updateOnImagesReady: true,\n // loop\n loop: false,\n loopAdditionalSlides: 0,\n loopedSlides: null,\n loopFillGroupWithBlank: false,\n loopPreventsSlide: true,\n // Swiping/no swiping\n allowSlidePrev: true,\n allowSlideNext: true,\n swipeHandler: null,\n // '.swipe-handler',\n noSwiping: true,\n noSwipingClass: 'swiper-no-swiping',\n noSwipingSelector: null,\n // Passive Listeners\n passiveListeners: true,\n // NS\n containerModifierClass: 'swiper-container-',\n // NEW\n slideClass: 'swiper-slide',\n slideBlankClass: 'swiper-slide-invisible-blank',\n slideActiveClass: 'swiper-slide-active',\n slideDuplicateActiveClass: 'swiper-slide-duplicate-active',\n slideVisibleClass: 'swiper-slide-visible',\n slideDuplicateClass: 'swiper-slide-duplicate',\n slideNextClass: 'swiper-slide-next',\n slideDuplicateNextClass: 'swiper-slide-duplicate-next',\n slidePrevClass: 'swiper-slide-prev',\n slideDuplicatePrevClass: 'swiper-slide-duplicate-prev',\n wrapperClass: 'swiper-wrapper',\n // Callbacks\n runCallbacksOnInit: true,\n // Internals\n _emitClasses: false\n};","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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n/* eslint no-param-reassign: \"off\" */\nimport $ from '../../utils/dom';\nimport { extend, now, deleteProps } from '../../utils/utils';\nimport { getSupport } from '../../utils/get-support';\nimport { getDevice } from '../../utils/get-device';\nimport { getBrowser } from '../../utils/get-browser';\nimport Resize from '../../modules/resize/resize';\nimport Observer from '../../modules/observer/observer';\nimport modular from './modular';\nimport eventsEmitter from './events-emitter';\nimport update from './update/index';\nimport translate from './translate/index';\nimport transition from './transition/index';\nimport slide from './slide/index';\nimport loop from './loop/index';\nimport grabCursor from './grab-cursor/index';\nimport manipulation from './manipulation/index';\nimport events from './events/index';\nimport breakpoints from './breakpoints/index';\nimport classes from './classes/index';\nimport images from './images/index';\nimport checkOverflow from './check-overflow/index';\nimport defaults from './defaults';\nvar prototypes = {\n modular: modular,\n eventsEmitter: eventsEmitter,\n update: update,\n translate: translate,\n transition: transition,\n slide: slide,\n loop: loop,\n grabCursor: grabCursor,\n manipulation: manipulation,\n events: events,\n breakpoints: breakpoints,\n checkOverflow: checkOverflow,\n classes: classes,\n images: images\n};\nvar extendedDefaults = {};\n\nvar Swiper = /*#__PURE__*/function () {\n function Swiper() {\n var el;\n var params;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (args.length === 1 && args[0].constructor && args[0].constructor === Object) {\n params = args[0];\n } else {\n el = args[0];\n params = args[1];\n }\n\n if (!params) params = {};\n params = extend({}, params);\n if (el && !params.el) params.el = el; // Swiper Instance\n\n var swiper = this;\n swiper.support = getSupport();\n swiper.device = getDevice({\n userAgent: params.userAgent\n });\n swiper.browser = getBrowser();\n swiper.eventsListeners = {};\n swiper.eventsAnyListeners = [];\n Object.keys(prototypes).forEach(function (prototypeGroup) {\n Object.keys(prototypes[prototypeGroup]).forEach(function (protoMethod) {\n if (!Swiper.prototype[protoMethod]) {\n Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];\n }\n });\n });\n\n if (typeof swiper.modules === 'undefined') {\n swiper.modules = {};\n }\n\n Object.keys(swiper.modules).forEach(function (moduleName) {\n var module = swiper.modules[moduleName];\n\n if (module.params) {\n var moduleParamName = Object.keys(module.params)[0];\n var moduleParams = module.params[moduleParamName];\n if (typeof moduleParams !== 'object' || moduleParams === null) return;\n if (!(moduleParamName in params && 'enabled' in moduleParams)) return;\n\n if (params[moduleParamName] === true) {\n params[moduleParamName] = {\n enabled: true\n };\n }\n\n if (typeof params[moduleParamName] === 'object' && !('enabled' in params[moduleParamName])) {\n params[moduleParamName].enabled = true;\n }\n\n if (!params[moduleParamName]) params[moduleParamName] = {\n enabled: false\n };\n }\n }); // Extend defaults with modules params\n\n var swiperParams = extend({}, defaults);\n swiper.useParams(swiperParams); // Extend defaults with passed params\n\n swiper.params = extend({}, swiperParams, extendedDefaults, params);\n swiper.originalParams = extend({}, swiper.params);\n swiper.passedParams = extend({}, params); // add event listeners\n\n if (swiper.params && swiper.params.on) {\n Object.keys(swiper.params.on).forEach(function (eventName) {\n swiper.on(eventName, swiper.params.on[eventName]);\n });\n } // Save Dom lib\n\n\n swiper.$ = $; // Find el\n\n var $el = $(swiper.params.el);\n el = $el[0];\n\n if (!el) {\n return undefined;\n }\n\n if ($el.length > 1) {\n var swipers = [];\n $el.each(function (containerEl) {\n var newParams = extend({}, params, {\n el: containerEl\n });\n swipers.push(new Swiper(newParams));\n });\n return swipers;\n }\n\n el.swiper = swiper; // Find Wrapper\n\n var $wrapperEl;\n\n if (el && el.shadowRoot && el.shadowRoot.querySelector) {\n $wrapperEl = $(el.shadowRoot.querySelector(\".\" + swiper.params.wrapperClass)); // Children needs to return slot items\n\n $wrapperEl.children = function (options) {\n return $el.children(options);\n };\n } else {\n $wrapperEl = $el.children(\".\" + swiper.params.wrapperClass);\n } // Extend Swiper\n\n\n extend(swiper, {\n $el: $el,\n el: el,\n $wrapperEl: $wrapperEl,\n wrapperEl: $wrapperEl[0],\n // Classes\n classNames: [],\n // Slides\n slides: $(),\n slidesGrid: [],\n snapGrid: [],\n slidesSizesGrid: [],\n // isDirection\n isHorizontal: function isHorizontal() {\n return swiper.params.direction === 'horizontal';\n },\n isVertical: function isVertical() {\n return swiper.params.direction === 'vertical';\n },\n // RTL\n rtl: el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl',\n rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl'),\n wrongRTL: $wrapperEl.css('display') === '-webkit-box',\n // Indexes\n activeIndex: 0,\n realIndex: 0,\n //\n isBeginning: true,\n isEnd: false,\n // Props\n translate: 0,\n previousTranslate: 0,\n progress: 0,\n velocity: 0,\n animating: false,\n // Locks\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n // Touch Events\n touchEvents: function touchEvents() {\n var touch = ['touchstart', 'touchmove', 'touchend', 'touchcancel'];\n var desktop = ['mousedown', 'mousemove', 'mouseup'];\n\n if (swiper.support.pointerEvents) {\n desktop = ['pointerdown', 'pointermove', 'pointerup'];\n }\n\n swiper.touchEventsTouch = {\n start: touch[0],\n move: touch[1],\n end: touch[2],\n cancel: touch[3]\n };\n swiper.touchEventsDesktop = {\n start: desktop[0],\n move: desktop[1],\n end: desktop[2]\n };\n return swiper.support.touch || !swiper.params.simulateTouch ? swiper.touchEventsTouch : swiper.touchEventsDesktop;\n }(),\n touchEventsData: {\n isTouched: undefined,\n isMoved: undefined,\n allowTouchCallbacks: undefined,\n touchStartTime: undefined,\n isScrolling: undefined,\n currentTranslate: undefined,\n startTranslate: undefined,\n allowThresholdMove: undefined,\n // Form elements to match\n formElements: 'input, select, option, textarea, button, video, label',\n // Last click time\n lastClickTime: now(),\n clickTimeout: undefined,\n // Velocities\n velocities: [],\n allowMomentumBounce: undefined,\n isTouchEvent: undefined,\n startMoving: undefined\n },\n // Clicks\n allowClick: true,\n // Touches\n allowTouchMove: swiper.params.allowTouchMove,\n touches: {\n startX: 0,\n startY: 0,\n currentX: 0,\n currentY: 0,\n diff: 0\n },\n // Images\n imagesToLoad: [],\n imagesLoaded: 0\n }); // Install Modules\n\n swiper.useModules();\n swiper.emit('_swiper'); // Init\n\n if (swiper.params.init) {\n swiper.init();\n } // Return app instance\n\n\n return swiper;\n }\n\n var _proto = Swiper.prototype;\n\n _proto.emitContainerClasses = function emitContainerClasses() {\n var swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n var classes = swiper.el.className.split(' ').filter(function (className) {\n return className.indexOf('swiper-container') === 0 || className.indexOf(swiper.params.containerModifierClass) === 0;\n });\n swiper.emit('_containerClasses', classes.join(' '));\n };\n\n _proto.emitSlidesClasses = function emitSlidesClasses() {\n var swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n swiper.slides.each(function (slideEl) {\n var classes = slideEl.className.split(' ').filter(function (className) {\n return className.indexOf('swiper-slide') === 0 || className.indexOf(swiper.params.slideClass) === 0;\n });\n swiper.emit('_slideClass', slideEl, classes.join(' '));\n });\n };\n\n _proto.slidesPerViewDynamic = function slidesPerViewDynamic() {\n var swiper = this;\n var params = swiper.params,\n slides = swiper.slides,\n slidesGrid = swiper.slidesGrid,\n swiperSize = swiper.size,\n activeIndex = swiper.activeIndex;\n var spv = 1;\n\n if (params.centeredSlides) {\n var slideSize = slides[activeIndex].swiperSlideSize;\n var breakLoop;\n\n for (var i = activeIndex + 1; i < slides.length; i += 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n\n for (var _i = activeIndex - 1; _i >= 0; _i -= 1) {\n if (slides[_i] && !breakLoop) {\n slideSize += slides[_i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n } else {\n for (var _i2 = activeIndex + 1; _i2 < slides.length; _i2 += 1) {\n if (slidesGrid[_i2] - slidesGrid[activeIndex] < swiperSize) {\n spv += 1;\n }\n }\n }\n\n return spv;\n };\n\n _proto.update = function update() {\n var swiper = this;\n if (!swiper || swiper.destroyed) return;\n var snapGrid = swiper.snapGrid,\n params = swiper.params; // Breakpoints\n\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n\n function setTranslate() {\n var translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;\n var newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate());\n swiper.setTranslate(newTranslate);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n var translated;\n\n if (swiper.params.freeMode) {\n setTranslate();\n\n if (swiper.params.autoHeight) {\n swiper.updateAutoHeight();\n }\n } else {\n if ((swiper.params.slidesPerView === 'auto' || swiper.params.slidesPerView > 1) && swiper.isEnd && !swiper.params.centeredSlides) {\n translated = swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n translated = swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n\n if (!translated) {\n setTranslate();\n }\n }\n\n if (params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n\n swiper.emit('update');\n };\n\n _proto.changeDirection = function changeDirection(newDirection, needUpdate) {\n if (needUpdate === void 0) {\n needUpdate = true;\n }\n\n var swiper = this;\n var currentDirection = swiper.params.direction;\n\n if (!newDirection) {\n // eslint-disable-next-line\n newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal';\n }\n\n if (newDirection === currentDirection || newDirection !== 'horizontal' && newDirection !== 'vertical') {\n return swiper;\n }\n\n swiper.$el.removeClass(\"\" + swiper.params.containerModifierClass + currentDirection).addClass(\"\" + swiper.params.containerModifierClass + newDirection);\n swiper.emitContainerClasses();\n swiper.params.direction = newDirection;\n swiper.slides.each(function (slideEl) {\n if (newDirection === 'vertical') {\n slideEl.style.width = '';\n } else {\n slideEl.style.height = '';\n }\n });\n swiper.emit('changeDirection');\n if (needUpdate) swiper.update();\n return swiper;\n };\n\n _proto.init = function init() {\n var swiper = this;\n if (swiper.initialized) return;\n swiper.emit('beforeInit'); // Set breakpoint\n\n if (swiper.params.breakpoints) {\n swiper.setBreakpoint();\n } // Add Classes\n\n\n swiper.addClasses(); // Create loop\n\n if (swiper.params.loop) {\n swiper.loopCreate();\n } // Update size\n\n\n swiper.updateSize(); // Update slides\n\n swiper.updateSlides();\n\n if (swiper.params.watchOverflow) {\n swiper.checkOverflow();\n } // Set Grab Cursor\n\n\n if (swiper.params.grabCursor) {\n swiper.setGrabCursor();\n }\n\n if (swiper.params.preloadImages) {\n swiper.preloadImages();\n } // Slide To Initial Slide\n\n\n if (swiper.params.loop) {\n swiper.slideTo(swiper.params.initialSlide + swiper.loopedSlides, 0, swiper.params.runCallbacksOnInit);\n } else {\n swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit);\n } // Attach events\n\n\n swiper.attachEvents(); // Init Flag\n\n swiper.initialized = true; // Emit\n\n swiper.emit('init');\n };\n\n _proto.destroy = function destroy(deleteInstance, cleanStyles) {\n if (deleteInstance === void 0) {\n deleteInstance = true;\n }\n\n if (cleanStyles === void 0) {\n cleanStyles = true;\n }\n\n var swiper = this;\n var params = swiper.params,\n $el = swiper.$el,\n $wrapperEl = swiper.$wrapperEl,\n slides = swiper.slides;\n\n if (typeof swiper.params === 'undefined' || swiper.destroyed) {\n return null;\n }\n\n swiper.emit('beforeDestroy'); // Init Flag\n\n swiper.initialized = false; // Detach events\n\n swiper.detachEvents(); // Destroy loop\n\n if (params.loop) {\n swiper.loopDestroy();\n } // Cleanup styles\n\n\n if (cleanStyles) {\n swiper.removeClasses();\n $el.removeAttr('style');\n $wrapperEl.removeAttr('style');\n\n if (slides && slides.length) {\n slides.removeClass([params.slideVisibleClass, params.slideActiveClass, params.slideNextClass, params.slidePrevClass].join(' ')).removeAttr('style').removeAttr('data-swiper-slide-index');\n }\n }\n\n swiper.emit('destroy'); // Detach emitter events\n\n Object.keys(swiper.eventsListeners).forEach(function (eventName) {\n swiper.off(eventName);\n });\n\n if (deleteInstance !== false) {\n swiper.$el[0].swiper = null;\n deleteProps(swiper);\n }\n\n swiper.destroyed = true;\n return null;\n };\n\n Swiper.extendDefaults = function extendDefaults(newDefaults) {\n extend(extendedDefaults, newDefaults);\n };\n\n Swiper.installModule = function installModule(module) {\n if (!Swiper.prototype.modules) Swiper.prototype.modules = {};\n var name = module.name || Object.keys(Swiper.prototype.modules).length + \"_\" + now();\n Swiper.prototype.modules[name] = module;\n };\n\n Swiper.use = function use(module) {\n if (Array.isArray(module)) {\n module.forEach(function (m) {\n return Swiper.installModule(m);\n });\n return Swiper;\n }\n\n Swiper.installModule(module);\n return Swiper;\n };\n\n _createClass(Swiper, null, [{\n key: \"extendedDefaults\",\n get: function get() {\n return extendedDefaults;\n }\n }, {\n key: \"defaults\",\n get: function get() {\n return defaults;\n }\n }]);\n\n return Swiper;\n}();\n\nSwiper.use([Resize, Observer]);\nexport default Swiper;","import { extend } from '../../utils/utils';\nexport default {\n useParams: function useParams(instanceParams) {\n var instance = this;\n if (!instance.modules) return;\n Object.keys(instance.modules).forEach(function (moduleName) {\n var module = instance.modules[moduleName]; // Extend params\n\n if (module.params) {\n extend(instanceParams, module.params);\n }\n });\n },\n useModules: function useModules(modulesParams) {\n if (modulesParams === void 0) {\n modulesParams = {};\n }\n\n var instance = this;\n if (!instance.modules) return;\n Object.keys(instance.modules).forEach(function (moduleName) {\n var module = instance.modules[moduleName];\n var moduleParams = modulesParams[moduleName] || {}; // Add event listeners\n\n if (module.on && instance.on) {\n Object.keys(module.on).forEach(function (moduleEventName) {\n instance.on(moduleEventName, module.on[moduleEventName]);\n });\n } // Module create callback\n\n\n if (module.create) {\n module.create.bind(instance)(moduleParams);\n }\n });\n }\n};","/* eslint-disable no-underscore-dangle */\nexport default {\n on: function on(events, handler, priority) {\n var self = this;\n if (typeof handler !== 'function') return self;\n var method = priority ? 'unshift' : 'push';\n events.split(' ').forEach(function (event) {\n if (!self.eventsListeners[event]) self.eventsListeners[event] = [];\n self.eventsListeners[event][method](handler);\n });\n return self;\n },\n once: function once(events, handler, priority) {\n var self = this;\n if (typeof handler !== 'function') return self;\n\n function onceHandler() {\n self.off(events, onceHandler);\n\n if (onceHandler.__emitterProxy) {\n delete onceHandler.__emitterProxy;\n }\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n handler.apply(self, args);\n }\n\n onceHandler.__emitterProxy = handler;\n return self.on(events, onceHandler, priority);\n },\n onAny: function onAny(handler, priority) {\n var self = this;\n if (typeof handler !== 'function') return self;\n var method = priority ? 'unshift' : 'push';\n\n if (self.eventsAnyListeners.indexOf(handler) < 0) {\n self.eventsAnyListeners[method](handler);\n }\n\n return self;\n },\n offAny: function offAny(handler) {\n var self = this;\n if (!self.eventsAnyListeners) return self;\n var index = self.eventsAnyListeners.indexOf(handler);\n\n if (index >= 0) {\n self.eventsAnyListeners.splice(index, 1);\n }\n\n return self;\n },\n off: function off(events, handler) {\n var self = this;\n if (!self.eventsListeners) return self;\n events.split(' ').forEach(function (event) {\n if (typeof handler === 'undefined') {\n self.eventsListeners[event] = [];\n } else if (self.eventsListeners[event]) {\n self.eventsListeners[event].forEach(function (eventHandler, index) {\n if (eventHandler === handler || eventHandler.__emitterProxy && eventHandler.__emitterProxy === handler) {\n self.eventsListeners[event].splice(index, 1);\n }\n });\n }\n });\n return self;\n },\n emit: function emit() {\n var self = this;\n if (!self.eventsListeners) return self;\n var events;\n var data;\n var context;\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n if (typeof args[0] === 'string' || Array.isArray(args[0])) {\n events = args[0];\n data = args.slice(1, args.length);\n context = self;\n } else {\n events = args[0].events;\n data = args[0].data;\n context = args[0].context || self;\n }\n\n data.unshift(context);\n var eventsArray = Array.isArray(events) ? events : events.split(' ');\n eventsArray.forEach(function (event) {\n if (self.eventsListeners && self.eventsListeners[event]) {\n var handlers = [];\n self.eventsListeners[event].forEach(function (eventHandler) {\n handlers.push(eventHandler);\n });\n handlers.forEach(function (eventHandler) {\n eventHandler.apply(context, data);\n });\n }\n });\n return self;\n }\n};","import updateSize from './updateSize';\nimport updateSlides from './updateSlides';\nimport updateAutoHeight from './updateAutoHeight';\nimport updateSlidesOffset from './updateSlidesOffset';\nimport updateSlidesProgress from './updateSlidesProgress';\nimport updateProgress from './updateProgress';\nimport updateSlidesClasses from './updateSlidesClasses';\nimport updateActiveIndex from './updateActiveIndex';\nimport updateClickedSlide from './updateClickedSlide';\nexport default {\n updateSize: updateSize,\n updateSlides: updateSlides,\n updateAutoHeight: updateAutoHeight,\n updateSlidesOffset: updateSlidesOffset,\n updateSlidesProgress: updateSlidesProgress,\n updateProgress: updateProgress,\n updateSlidesClasses: updateSlidesClasses,\n updateActiveIndex: updateActiveIndex,\n updateClickedSlide: updateClickedSlide\n};","import { extend } from '../../../utils/utils';\nexport default function updateSize() {\n var swiper = this;\n var width;\n var height;\n var $el = swiper.$el;\n\n if (typeof swiper.params.width !== 'undefined' && swiper.params.width !== null) {\n width = swiper.params.width;\n } else {\n width = $el[0].clientWidth;\n }\n\n if (typeof swiper.params.height !== 'undefined' && swiper.params.width !== null) {\n height = swiper.params.height;\n } else {\n height = $el[0].clientHeight;\n }\n\n if (width === 0 && swiper.isHorizontal() || height === 0 && swiper.isVertical()) {\n return;\n } // Subtract paddings\n\n\n width = width - parseInt($el.css('padding-left') || 0, 10) - parseInt($el.css('padding-right') || 0, 10);\n height = height - parseInt($el.css('padding-top') || 0, 10) - parseInt($el.css('padding-bottom') || 0, 10);\n if (Number.isNaN(width)) width = 0;\n if (Number.isNaN(height)) height = 0;\n extend(swiper, {\n width: width,\n height: height,\n size: swiper.isHorizontal() ? width : height\n });\n}","import { getWindow } from 'ssr-window';\nimport { extend } from '../../../utils/utils';\nexport default function updateSlides() {\n var swiper = this;\n var window = getWindow();\n var params = swiper.params;\n var $wrapperEl = swiper.$wrapperEl,\n swiperSize = swiper.size,\n rtl = swiper.rtlTranslate,\n wrongRTL = swiper.wrongRTL;\n var isVirtual = swiper.virtual && params.virtual.enabled;\n var previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;\n var slides = $wrapperEl.children(\".\" + swiper.params.slideClass);\n var slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;\n var snapGrid = [];\n var slidesGrid = [];\n var slidesSizesGrid = [];\n\n function slidesForMargin(slideEl, slideIndex) {\n if (!params.cssMode) return true;\n\n if (slideIndex === slides.length - 1) {\n return false;\n }\n\n return true;\n }\n\n var offsetBefore = params.slidesOffsetBefore;\n\n if (typeof offsetBefore === 'function') {\n offsetBefore = params.slidesOffsetBefore.call(swiper);\n }\n\n var offsetAfter = params.slidesOffsetAfter;\n\n if (typeof offsetAfter === 'function') {\n offsetAfter = params.slidesOffsetAfter.call(swiper);\n }\n\n var previousSnapGridLength = swiper.snapGrid.length;\n var previousSlidesGridLength = swiper.snapGrid.length;\n var spaceBetween = params.spaceBetween;\n var slidePosition = -offsetBefore;\n var prevSlideSize = 0;\n var index = 0;\n\n if (typeof swiperSize === 'undefined') {\n return;\n }\n\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiperSize;\n }\n\n swiper.virtualSize = -spaceBetween; // reset margins\n\n if (rtl) slides.css({\n marginLeft: '',\n marginTop: ''\n });else slides.css({\n marginRight: '',\n marginBottom: ''\n });\n var slidesNumberEvenToRows;\n\n if (params.slidesPerColumn > 1) {\n if (Math.floor(slidesLength / params.slidesPerColumn) === slidesLength / swiper.params.slidesPerColumn) {\n slidesNumberEvenToRows = slidesLength;\n } else {\n slidesNumberEvenToRows = Math.ceil(slidesLength / params.slidesPerColumn) * params.slidesPerColumn;\n }\n\n if (params.slidesPerView !== 'auto' && params.slidesPerColumnFill === 'row') {\n slidesNumberEvenToRows = Math.max(slidesNumberEvenToRows, params.slidesPerView * params.slidesPerColumn);\n }\n } // Calc slides\n\n\n var slideSize;\n var slidesPerColumn = params.slidesPerColumn;\n var slidesPerRow = slidesNumberEvenToRows / slidesPerColumn;\n var numFullColumns = Math.floor(slidesLength / params.slidesPerColumn);\n\n for (var i = 0; i < slidesLength; i += 1) {\n slideSize = 0;\n var slide = slides.eq(i);\n\n if (params.slidesPerColumn > 1) {\n // Set slides order\n var newSlideOrderIndex = void 0;\n var column = void 0;\n var row = void 0;\n\n if (params.slidesPerColumnFill === 'row' && params.slidesPerGroup > 1) {\n var groupIndex = Math.floor(i / (params.slidesPerGroup * params.slidesPerColumn));\n var slideIndexInGroup = i - params.slidesPerColumn * params.slidesPerGroup * groupIndex;\n var columnsInGroup = groupIndex === 0 ? params.slidesPerGroup : Math.min(Math.ceil((slidesLength - groupIndex * slidesPerColumn * params.slidesPerGroup) / slidesPerColumn), params.slidesPerGroup);\n row = Math.floor(slideIndexInGroup / columnsInGroup);\n column = slideIndexInGroup - row * columnsInGroup + groupIndex * params.slidesPerGroup;\n newSlideOrderIndex = column + row * slidesNumberEvenToRows / slidesPerColumn;\n slide.css({\n '-webkit-box-ordinal-group': newSlideOrderIndex,\n '-moz-box-ordinal-group': newSlideOrderIndex,\n '-ms-flex-order': newSlideOrderIndex,\n '-webkit-order': newSlideOrderIndex,\n order: newSlideOrderIndex\n });\n } else if (params.slidesPerColumnFill === 'column') {\n column = Math.floor(i / slidesPerColumn);\n row = i - column * slidesPerColumn;\n\n if (column > numFullColumns || column === numFullColumns && row === slidesPerColumn - 1) {\n row += 1;\n\n if (row >= slidesPerColumn) {\n row = 0;\n column += 1;\n }\n }\n } else {\n row = Math.floor(i / slidesPerRow);\n column = i - row * slidesPerRow;\n }\n\n slide.css(\"margin-\" + (swiper.isHorizontal() ? 'top' : 'left'), row !== 0 && params.spaceBetween && params.spaceBetween + \"px\");\n }\n\n if (slide.css('display') === 'none') continue; // eslint-disable-line\n\n if (params.slidesPerView === 'auto') {\n var slideStyles = window.getComputedStyle(slide[0], null);\n var currentTransform = slide[0].style.transform;\n var currentWebKitTransform = slide[0].style.webkitTransform;\n\n if (currentTransform) {\n slide[0].style.transform = 'none';\n }\n\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = 'none';\n }\n\n if (params.roundLengths) {\n slideSize = swiper.isHorizontal() ? slide.outerWidth(true) : slide.outerHeight(true);\n } else {\n // eslint-disable-next-line\n if (swiper.isHorizontal()) {\n var width = parseFloat(slideStyles.getPropertyValue('width') || 0);\n var paddingLeft = parseFloat(slideStyles.getPropertyValue('padding-left') || 0);\n var paddingRight = parseFloat(slideStyles.getPropertyValue('padding-right') || 0);\n var marginLeft = parseFloat(slideStyles.getPropertyValue('margin-left') || 0);\n var marginRight = parseFloat(slideStyles.getPropertyValue('margin-right') || 0);\n var boxSizing = slideStyles.getPropertyValue('box-sizing');\n\n if (boxSizing && boxSizing === 'border-box') {\n slideSize = width + marginLeft + marginRight;\n } else {\n slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight;\n }\n } else {\n var height = parseFloat(slideStyles.getPropertyValue('height') || 0);\n var paddingTop = parseFloat(slideStyles.getPropertyValue('padding-top') || 0);\n var paddingBottom = parseFloat(slideStyles.getPropertyValue('padding-bottom') || 0);\n var marginTop = parseFloat(slideStyles.getPropertyValue('margin-top') || 0);\n var marginBottom = parseFloat(slideStyles.getPropertyValue('margin-bottom') || 0);\n\n var _boxSizing = slideStyles.getPropertyValue('box-sizing');\n\n if (_boxSizing && _boxSizing === 'border-box') {\n slideSize = height + marginTop + marginBottom;\n } else {\n slideSize = height + paddingTop + paddingBottom + marginTop + marginBottom;\n }\n }\n }\n\n if (currentTransform) {\n slide[0].style.transform = currentTransform;\n }\n\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = currentWebKitTransform;\n }\n\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n } else {\n slideSize = (swiperSize - (params.slidesPerView - 1) * spaceBetween) / params.slidesPerView;\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n\n if (slides[i]) {\n if (swiper.isHorizontal()) {\n slides[i].style.width = slideSize + \"px\";\n } else {\n slides[i].style.height = slideSize + \"px\";\n }\n }\n }\n\n if (slides[i]) {\n slides[i].swiperSlideSize = slideSize;\n }\n\n slidesSizesGrid.push(slideSize);\n\n if (params.centeredSlides) {\n slidePosition = slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween;\n if (prevSlideSize === 0 && i !== 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (i === 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0;\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if (index % params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n } else {\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if ((index - Math.min(swiper.params.slidesPerGroupSkip, index)) % swiper.params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n slidePosition = slidePosition + slideSize + spaceBetween;\n }\n\n swiper.virtualSize += slideSize + spaceBetween;\n prevSlideSize = slideSize;\n index += 1;\n }\n\n swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;\n var newSlidesGrid;\n\n if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {\n $wrapperEl.css({\n width: swiper.virtualSize + params.spaceBetween + \"px\"\n });\n }\n\n if (params.setWrapperSize) {\n if (swiper.isHorizontal()) $wrapperEl.css({\n width: swiper.virtualSize + params.spaceBetween + \"px\"\n });else $wrapperEl.css({\n height: swiper.virtualSize + params.spaceBetween + \"px\"\n });\n }\n\n if (params.slidesPerColumn > 1) {\n swiper.virtualSize = (slideSize + params.spaceBetween) * slidesNumberEvenToRows;\n swiper.virtualSize = Math.ceil(swiper.virtualSize / params.slidesPerColumn) - params.spaceBetween;\n if (swiper.isHorizontal()) $wrapperEl.css({\n width: swiper.virtualSize + params.spaceBetween + \"px\"\n });else $wrapperEl.css({\n height: swiper.virtualSize + params.spaceBetween + \"px\"\n });\n\n if (params.centeredSlides) {\n newSlidesGrid = [];\n\n for (var _i = 0; _i < snapGrid.length; _i += 1) {\n var slidesGridItem = snapGrid[_i];\n if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n if (snapGrid[_i] < swiper.virtualSize + snapGrid[0]) newSlidesGrid.push(slidesGridItem);\n }\n\n snapGrid = newSlidesGrid;\n }\n } // Remove last grid elements depending on width\n\n\n if (!params.centeredSlides) {\n newSlidesGrid = [];\n\n for (var _i2 = 0; _i2 < snapGrid.length; _i2 += 1) {\n var _slidesGridItem = snapGrid[_i2];\n if (params.roundLengths) _slidesGridItem = Math.floor(_slidesGridItem);\n\n if (snapGrid[_i2] <= swiper.virtualSize - swiperSize) {\n newSlidesGrid.push(_slidesGridItem);\n }\n }\n\n snapGrid = newSlidesGrid;\n\n if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {\n snapGrid.push(swiper.virtualSize - swiperSize);\n }\n }\n\n if (snapGrid.length === 0) snapGrid = [0];\n\n if (params.spaceBetween !== 0) {\n if (swiper.isHorizontal()) {\n if (rtl) slides.filter(slidesForMargin).css({\n marginLeft: spaceBetween + \"px\"\n });else slides.filter(slidesForMargin).css({\n marginRight: spaceBetween + \"px\"\n });\n } else slides.filter(slidesForMargin).css({\n marginBottom: spaceBetween + \"px\"\n });\n }\n\n if (params.centeredSlides && params.centeredSlidesBounds) {\n var allSlidesSize = 0;\n slidesSizesGrid.forEach(function (slideSizeValue) {\n allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n allSlidesSize -= params.spaceBetween;\n var maxSnap = allSlidesSize - swiperSize;\n snapGrid = snapGrid.map(function (snap) {\n if (snap < 0) return -offsetBefore;\n if (snap > maxSnap) return maxSnap + offsetAfter;\n return snap;\n });\n }\n\n if (params.centerInsufficientSlides) {\n var _allSlidesSize = 0;\n slidesSizesGrid.forEach(function (slideSizeValue) {\n _allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n _allSlidesSize -= params.spaceBetween;\n\n if (_allSlidesSize < swiperSize) {\n var allSlidesOffset = (swiperSize - _allSlidesSize) / 2;\n snapGrid.forEach(function (snap, snapIndex) {\n snapGrid[snapIndex] = snap - allSlidesOffset;\n });\n slidesGrid.forEach(function (snap, snapIndex) {\n slidesGrid[snapIndex] = snap + allSlidesOffset;\n });\n }\n }\n\n extend(swiper, {\n slides: slides,\n snapGrid: snapGrid,\n slidesGrid: slidesGrid,\n slidesSizesGrid: slidesSizesGrid\n });\n\n if (slidesLength !== previousSlidesLength) {\n swiper.emit('slidesLengthChange');\n }\n\n if (snapGrid.length !== previousSnapGridLength) {\n if (swiper.params.watchOverflow) swiper.checkOverflow();\n swiper.emit('snapGridLengthChange');\n }\n\n if (slidesGrid.length !== previousSlidesGridLength) {\n swiper.emit('slidesGridLengthChange');\n }\n\n if (params.watchSlidesProgress || params.watchSlidesVisibility) {\n swiper.updateSlidesOffset();\n }\n}","export default function updateAutoHeight(speed) {\n var swiper = this;\n var activeSlides = [];\n var newHeight = 0;\n var i;\n\n if (typeof speed === 'number') {\n swiper.setTransition(speed);\n } else if (speed === true) {\n swiper.setTransition(swiper.params.speed);\n } // Find slides currently in view\n\n\n if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {\n if (swiper.params.centeredSlides) {\n swiper.visibleSlides.each(function (slide) {\n activeSlides.push(slide);\n });\n } else {\n for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {\n var index = swiper.activeIndex + i;\n if (index > swiper.slides.length) break;\n activeSlides.push(swiper.slides.eq(index)[0]);\n }\n }\n } else {\n activeSlides.push(swiper.slides.eq(swiper.activeIndex)[0]);\n } // Find new height from highest slide in view\n\n\n for (i = 0; i < activeSlides.length; i += 1) {\n if (typeof activeSlides[i] !== 'undefined') {\n var height = activeSlides[i].offsetHeight;\n newHeight = height > newHeight ? height : newHeight;\n }\n } // Update Height\n\n\n if (newHeight) swiper.$wrapperEl.css('height', newHeight + \"px\");\n}","export default function updateSlidesOffset() {\n var swiper = this;\n var slides = swiper.slides;\n\n for (var i = 0; i < slides.length; i += 1) {\n slides[i].swiperSlideOffset = swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop;\n }\n}","import $ from '../../../utils/dom';\nexport default function updateSlidesProgress(translate) {\n if (translate === void 0) {\n translate = this && this.translate || 0;\n }\n\n var swiper = this;\n var params = swiper.params;\n var slides = swiper.slides,\n rtl = swiper.rtlTranslate;\n if (slides.length === 0) return;\n if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset();\n var offsetCenter = -translate;\n if (rtl) offsetCenter = translate; // Visible Slides\n\n slides.removeClass(params.slideVisibleClass);\n swiper.visibleSlidesIndexes = [];\n swiper.visibleSlides = [];\n\n for (var i = 0; i < slides.length; i += 1) {\n var slide = slides[i];\n var slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slide.swiperSlideOffset) / (slide.swiperSlideSize + params.spaceBetween);\n\n if (params.watchSlidesVisibility || params.centeredSlides && params.autoHeight) {\n var slideBefore = -(offsetCenter - slide.swiperSlideOffset);\n var slideAfter = slideBefore + swiper.slidesSizesGrid[i];\n var isVisible = slideBefore >= 0 && slideBefore < swiper.size - 1 || slideAfter > 1 && slideAfter <= swiper.size || slideBefore <= 0 && slideAfter >= swiper.size;\n\n if (isVisible) {\n swiper.visibleSlides.push(slide);\n swiper.visibleSlidesIndexes.push(i);\n slides.eq(i).addClass(params.slideVisibleClass);\n }\n }\n\n slide.progress = rtl ? -slideProgress : slideProgress;\n }\n\n swiper.visibleSlides = $(swiper.visibleSlides);\n}","import { extend } from '../../../utils/utils';\nexport default function updateProgress(translate) {\n var swiper = this;\n\n if (typeof translate === 'undefined') {\n var multiplier = swiper.rtlTranslate ? -1 : 1; // eslint-disable-next-line\n\n translate = swiper && swiper.translate && swiper.translate * multiplier || 0;\n }\n\n var params = swiper.params;\n var translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n var progress = swiper.progress,\n isBeginning = swiper.isBeginning,\n isEnd = swiper.isEnd;\n var wasBeginning = isBeginning;\n var wasEnd = isEnd;\n\n if (translatesDiff === 0) {\n progress = 0;\n isBeginning = true;\n isEnd = true;\n } else {\n progress = (translate - swiper.minTranslate()) / translatesDiff;\n isBeginning = progress <= 0;\n isEnd = progress >= 1;\n }\n\n extend(swiper, {\n progress: progress,\n isBeginning: isBeginning,\n isEnd: isEnd\n });\n if (params.watchSlidesProgress || params.watchSlidesVisibility || params.centeredSlides && params.autoHeight) swiper.updateSlidesProgress(translate);\n\n if (isBeginning && !wasBeginning) {\n swiper.emit('reachBeginning toEdge');\n }\n\n if (isEnd && !wasEnd) {\n swiper.emit('reachEnd toEdge');\n }\n\n if (wasBeginning && !isBeginning || wasEnd && !isEnd) {\n swiper.emit('fromEdge');\n }\n\n swiper.emit('progress', progress);\n}","export default function updateSlidesClasses() {\n var swiper = this;\n var slides = swiper.slides,\n params = swiper.params,\n $wrapperEl = swiper.$wrapperEl,\n activeIndex = swiper.activeIndex,\n realIndex = swiper.realIndex;\n var isVirtual = swiper.virtual && params.virtual.enabled;\n slides.removeClass(params.slideActiveClass + \" \" + params.slideNextClass + \" \" + params.slidePrevClass + \" \" + params.slideDuplicateActiveClass + \" \" + params.slideDuplicateNextClass + \" \" + params.slideDuplicatePrevClass);\n var activeSlide;\n\n if (isVirtual) {\n activeSlide = swiper.$wrapperEl.find(\".\" + params.slideClass + \"[data-swiper-slide-index=\\\"\" + activeIndex + \"\\\"]\");\n } else {\n activeSlide = slides.eq(activeIndex);\n } // Active classes\n\n\n activeSlide.addClass(params.slideActiveClass);\n\n if (params.loop) {\n // Duplicate to all looped slides\n if (activeSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(\".\" + params.slideClass + \":not(.\" + params.slideDuplicateClass + \")[data-swiper-slide-index=\\\"\" + realIndex + \"\\\"]\").addClass(params.slideDuplicateActiveClass);\n } else {\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass + \"[data-swiper-slide-index=\\\"\" + realIndex + \"\\\"]\").addClass(params.slideDuplicateActiveClass);\n }\n } // Next Slide\n\n\n var nextSlide = activeSlide.nextAll(\".\" + params.slideClass).eq(0).addClass(params.slideNextClass);\n\n if (params.loop && nextSlide.length === 0) {\n nextSlide = slides.eq(0);\n nextSlide.addClass(params.slideNextClass);\n } // Prev Slide\n\n\n var prevSlide = activeSlide.prevAll(\".\" + params.slideClass).eq(0).addClass(params.slidePrevClass);\n\n if (params.loop && prevSlide.length === 0) {\n prevSlide = slides.eq(-1);\n prevSlide.addClass(params.slidePrevClass);\n }\n\n if (params.loop) {\n // Duplicate to all looped slides\n if (nextSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(\".\" + params.slideClass + \":not(.\" + params.slideDuplicateClass + \")[data-swiper-slide-index=\\\"\" + nextSlide.attr('data-swiper-slide-index') + \"\\\"]\").addClass(params.slideDuplicateNextClass);\n } else {\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass + \"[data-swiper-slide-index=\\\"\" + nextSlide.attr('data-swiper-slide-index') + \"\\\"]\").addClass(params.slideDuplicateNextClass);\n }\n\n if (prevSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(\".\" + params.slideClass + \":not(.\" + params.slideDuplicateClass + \")[data-swiper-slide-index=\\\"\" + prevSlide.attr('data-swiper-slide-index') + \"\\\"]\").addClass(params.slideDuplicatePrevClass);\n } else {\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass + \"[data-swiper-slide-index=\\\"\" + prevSlide.attr('data-swiper-slide-index') + \"\\\"]\").addClass(params.slideDuplicatePrevClass);\n }\n }\n\n swiper.emitSlidesClasses();\n}","import { extend } from '../../../utils/utils';\nexport default function updateActiveIndex(newActiveIndex) {\n var swiper = this;\n var translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n var slidesGrid = swiper.slidesGrid,\n snapGrid = swiper.snapGrid,\n params = swiper.params,\n previousIndex = swiper.activeIndex,\n previousRealIndex = swiper.realIndex,\n previousSnapIndex = swiper.snapIndex;\n var activeIndex = newActiveIndex;\n var snapIndex;\n\n if (typeof activeIndex === 'undefined') {\n for (var i = 0; i < slidesGrid.length; i += 1) {\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - (slidesGrid[i + 1] - slidesGrid[i]) / 2) {\n activeIndex = i;\n } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) {\n activeIndex = i + 1;\n }\n } else if (translate >= slidesGrid[i]) {\n activeIndex = i;\n }\n } // Normalize slideIndex\n\n\n if (params.normalizeSlideIndex) {\n if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0;\n }\n }\n\n if (snapGrid.indexOf(translate) >= 0) {\n snapIndex = snapGrid.indexOf(translate);\n } else {\n var skip = Math.min(params.slidesPerGroupSkip, activeIndex);\n snapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup);\n }\n\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n\n if (activeIndex === previousIndex) {\n if (snapIndex !== previousSnapIndex) {\n swiper.snapIndex = snapIndex;\n swiper.emit('snapIndexChange');\n }\n\n return;\n } // Get real index\n\n\n var realIndex = parseInt(swiper.slides.eq(activeIndex).attr('data-swiper-slide-index') || activeIndex, 10);\n extend(swiper, {\n snapIndex: snapIndex,\n realIndex: realIndex,\n previousIndex: previousIndex,\n activeIndex: activeIndex\n });\n swiper.emit('activeIndexChange');\n swiper.emit('snapIndexChange');\n\n if (previousRealIndex !== realIndex) {\n swiper.emit('realIndexChange');\n }\n\n if (swiper.initialized || swiper.params.runCallbacksOnInit) {\n swiper.emit('slideChange');\n }\n}","import $ from '../../../utils/dom';\nexport default function updateClickedSlide(e) {\n var swiper = this;\n var params = swiper.params;\n var slide = $(e.target).closest(\".\" + params.slideClass)[0];\n var slideFound = false;\n\n if (slide) {\n for (var i = 0; i < swiper.slides.length; i += 1) {\n if (swiper.slides[i] === slide) slideFound = true;\n }\n }\n\n if (slide && slideFound) {\n swiper.clickedSlide = slide;\n\n if (swiper.virtual && swiper.params.virtual.enabled) {\n swiper.clickedIndex = parseInt($(slide).attr('data-swiper-slide-index'), 10);\n } else {\n swiper.clickedIndex = $(slide).index();\n }\n } else {\n swiper.clickedSlide = undefined;\n swiper.clickedIndex = undefined;\n return;\n }\n\n if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {\n swiper.slideToClickedSlide();\n }\n}","import getTranslate from './getTranslate';\nimport setTranslate from './setTranslate';\nimport minTranslate from './minTranslate';\nimport maxTranslate from './maxTranslate';\nimport translateTo from './translateTo';\nexport default {\n getTranslate: getTranslate,\n setTranslate: setTranslate,\n minTranslate: minTranslate,\n maxTranslate: maxTranslate,\n translateTo: translateTo\n};","import { getTranslate } from '../../../utils/utils';\nexport default function getSwiperTranslate(axis) {\n if (axis === void 0) {\n axis = this.isHorizontal() ? 'x' : 'y';\n }\n\n var swiper = this;\n var params = swiper.params,\n rtl = swiper.rtlTranslate,\n translate = swiper.translate,\n $wrapperEl = swiper.$wrapperEl;\n\n if (params.virtualTranslate) {\n return rtl ? -translate : translate;\n }\n\n if (params.cssMode) {\n return translate;\n }\n\n var currentTranslate = getTranslate($wrapperEl[0], axis);\n if (rtl) currentTranslate = -currentTranslate;\n return currentTranslate || 0;\n}","export default function setTranslate(translate, byController) {\n var swiper = this;\n var rtl = swiper.rtlTranslate,\n params = swiper.params,\n $wrapperEl = swiper.$wrapperEl,\n wrapperEl = swiper.wrapperEl,\n progress = swiper.progress;\n var x = 0;\n var y = 0;\n var z = 0;\n\n if (swiper.isHorizontal()) {\n x = rtl ? -translate : translate;\n } else {\n y = translate;\n }\n\n if (params.roundLengths) {\n x = Math.floor(x);\n y = Math.floor(y);\n }\n\n if (params.cssMode) {\n wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y;\n } else if (!params.virtualTranslate) {\n $wrapperEl.transform(\"translate3d(\" + x + \"px, \" + y + \"px, \" + z + \"px)\");\n }\n\n swiper.previousTranslate = swiper.translate;\n swiper.translate = swiper.isHorizontal() ? x : y; // Check if we need to update progress\n\n var newProgress;\n var translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (translate - swiper.minTranslate()) / translatesDiff;\n }\n\n if (newProgress !== progress) {\n swiper.updateProgress(translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, byController);\n}","export default function minTranslate() {\n return -this.snapGrid[0];\n}","export default function maxTranslate() {\n return -this.snapGrid[this.snapGrid.length - 1];\n}","export default function translateTo(translate, speed, runCallbacks, translateBounds, internal) {\n if (translate === void 0) {\n translate = 0;\n }\n\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n if (translateBounds === void 0) {\n translateBounds = true;\n }\n\n var swiper = this;\n var params = swiper.params,\n wrapperEl = swiper.wrapperEl;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n\n var minTranslate = swiper.minTranslate();\n var maxTranslate = swiper.maxTranslate();\n var newTranslate;\n if (translateBounds && translate > minTranslate) newTranslate = minTranslate;else if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;else newTranslate = translate; // Update progress\n\n swiper.updateProgress(newTranslate);\n\n if (params.cssMode) {\n var isH = swiper.isHorizontal();\n\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n } else {\n // eslint-disable-next-line\n if (wrapperEl.scrollTo) {\n var _wrapperEl$scrollTo;\n\n wrapperEl.scrollTo((_wrapperEl$scrollTo = {}, _wrapperEl$scrollTo[isH ? 'left' : 'top'] = -newTranslate, _wrapperEl$scrollTo.behavior = 'smooth', _wrapperEl$scrollTo));\n } else {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n }\n }\n\n return true;\n }\n\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(newTranslate);\n\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionEnd');\n }\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(newTranslate);\n\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionStart');\n }\n\n if (!swiper.animating) {\n swiper.animating = true;\n\n if (!swiper.onTranslateToWrapperTransitionEnd) {\n swiper.onTranslateToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n swiper.onTranslateToWrapperTransitionEnd = null;\n delete swiper.onTranslateToWrapperTransitionEnd;\n\n if (runCallbacks) {\n swiper.emit('transitionEnd');\n }\n };\n }\n\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n }\n }\n\n return true;\n}","import setTransition from './setTransition';\nimport transitionStart from './transitionStart';\nimport transitionEnd from './transitionEnd';\nexport default {\n setTransition: setTransition,\n transitionStart: transitionStart,\n transitionEnd: transitionEnd\n};","export default function setTransition(duration, byController) {\n var swiper = this;\n\n if (!swiper.params.cssMode) {\n swiper.$wrapperEl.transition(duration);\n }\n\n swiper.emit('setTransition', duration, byController);\n}","export default function transitionStart(runCallbacks, direction) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var activeIndex = swiper.activeIndex,\n params = swiper.params,\n previousIndex = swiper.previousIndex;\n if (params.cssMode) return;\n\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n\n var dir = direction;\n\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';\n }\n\n swiper.emit('transitionStart');\n\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit('slideResetTransitionStart');\n return;\n }\n\n swiper.emit('slideChangeTransitionStart');\n\n if (dir === 'next') {\n swiper.emit('slideNextTransitionStart');\n } else {\n swiper.emit('slidePrevTransitionStart');\n }\n }\n}","export default function transitionEnd(runCallbacks, direction) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var activeIndex = swiper.activeIndex,\n previousIndex = swiper.previousIndex,\n params = swiper.params;\n swiper.animating = false;\n if (params.cssMode) return;\n swiper.setTransition(0);\n var dir = direction;\n\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';\n }\n\n swiper.emit('transitionEnd');\n\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit('slideResetTransitionEnd');\n return;\n }\n\n swiper.emit('slideChangeTransitionEnd');\n\n if (dir === 'next') {\n swiper.emit('slideNextTransitionEnd');\n } else {\n swiper.emit('slidePrevTransitionEnd');\n }\n }\n}","import slideTo from './slideTo';\nimport slideToLoop from './slideToLoop';\nimport slideNext from './slideNext';\nimport slidePrev from './slidePrev';\nimport slideReset from './slideReset';\nimport slideToClosest from './slideToClosest';\nimport slideToClickedSlide from './slideToClickedSlide';\nexport default {\n slideTo: slideTo,\n slideToLoop: slideToLoop,\n slideNext: slideNext,\n slidePrev: slidePrev,\n slideReset: slideReset,\n slideToClosest: slideToClosest,\n slideToClickedSlide: slideToClickedSlide\n};","export default function slideTo(index, speed, runCallbacks, internal) {\n if (index === void 0) {\n index = 0;\n }\n\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var slideIndex = index;\n if (slideIndex < 0) slideIndex = 0;\n var params = swiper.params,\n snapGrid = swiper.snapGrid,\n slidesGrid = swiper.slidesGrid,\n previousIndex = swiper.previousIndex,\n activeIndex = swiper.activeIndex,\n rtl = swiper.rtlTranslate,\n wrapperEl = swiper.wrapperEl;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n\n var skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex);\n var snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup);\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n\n if ((activeIndex || params.initialSlide || 0) === (previousIndex || 0) && runCallbacks) {\n swiper.emit('beforeSlideChangeStart');\n }\n\n var translate = -snapGrid[snapIndex]; // Update progress\n\n swiper.updateProgress(translate); // Normalize slideIndex\n\n if (params.normalizeSlideIndex) {\n for (var i = 0; i < slidesGrid.length; i += 1) {\n if (-Math.floor(translate * 100) >= Math.floor(slidesGrid[i] * 100)) {\n slideIndex = i;\n }\n }\n } // Directions locks\n\n\n if (swiper.initialized && slideIndex !== activeIndex) {\n if (!swiper.allowSlideNext && translate < swiper.translate && translate < swiper.minTranslate()) {\n return false;\n }\n\n if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {\n if ((activeIndex || 0) !== slideIndex) return false;\n }\n }\n\n var direction;\n if (slideIndex > activeIndex) direction = 'next';else if (slideIndex < activeIndex) direction = 'prev';else direction = 'reset'; // Update Index\n\n if (rtl && -translate === swiper.translate || !rtl && translate === swiper.translate) {\n swiper.updateActiveIndex(slideIndex); // Update Height\n\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n\n swiper.updateSlidesClasses();\n\n if (params.effect !== 'slide') {\n swiper.setTranslate(translate);\n }\n\n if (direction !== 'reset') {\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n }\n\n return false;\n }\n\n if (params.cssMode) {\n var isH = swiper.isHorizontal();\n var t = -translate;\n\n if (rtl) {\n t = wrapperEl.scrollWidth - wrapperEl.offsetWidth - t;\n }\n\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n } else {\n // eslint-disable-next-line\n if (wrapperEl.scrollTo) {\n var _wrapperEl$scrollTo;\n\n wrapperEl.scrollTo((_wrapperEl$scrollTo = {}, _wrapperEl$scrollTo[isH ? 'left' : 'top'] = t, _wrapperEl$scrollTo.behavior = 'smooth', _wrapperEl$scrollTo));\n } else {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n }\n }\n\n return true;\n }\n\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n\n if (!swiper.animating) {\n swiper.animating = true;\n\n if (!swiper.onSlideToWrapperTransitionEnd) {\n swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n swiper.onSlideToWrapperTransitionEnd = null;\n delete swiper.onSlideToWrapperTransitionEnd;\n swiper.transitionEnd(runCallbacks, direction);\n };\n }\n\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n }\n }\n\n return true;\n}","export default function slideToLoop(index, speed, runCallbacks, internal) {\n if (index === void 0) {\n index = 0;\n }\n\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var newIndex = index;\n\n if (swiper.params.loop) {\n newIndex += swiper.loopedSlides;\n }\n\n return swiper.slideTo(newIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideNext(speed, runCallbacks, internal) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var params = swiper.params,\n animating = swiper.animating;\n var increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup;\n\n if (params.loop) {\n if (animating && params.loopPreventsSlide) return false;\n swiper.loopFix(); // eslint-disable-next-line\n\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n\n return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slidePrev(speed, runCallbacks, internal) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var params = swiper.params,\n animating = swiper.animating,\n snapGrid = swiper.snapGrid,\n slidesGrid = swiper.slidesGrid,\n rtlTranslate = swiper.rtlTranslate;\n\n if (params.loop) {\n if (animating && params.loopPreventsSlide) return false;\n swiper.loopFix(); // eslint-disable-next-line\n\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n\n var translate = rtlTranslate ? swiper.translate : -swiper.translate;\n\n function normalize(val) {\n if (val < 0) return -Math.floor(Math.abs(val));\n return Math.floor(val);\n }\n\n var normalizedTranslate = normalize(translate);\n var normalizedSnapGrid = snapGrid.map(function (val) {\n return normalize(val);\n });\n var currentSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate)];\n var prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\n\n if (typeof prevSnap === 'undefined' && params.cssMode) {\n snapGrid.forEach(function (snap) {\n if (!prevSnap && normalizedTranslate >= snap) prevSnap = snap;\n });\n }\n\n var prevIndex;\n\n if (typeof prevSnap !== 'undefined') {\n prevIndex = slidesGrid.indexOf(prevSnap);\n if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;\n }\n\n return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideReset(speed, runCallbacks, internal) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideToClosest(speed, runCallbacks, internal, threshold) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n if (threshold === void 0) {\n threshold = 0.5;\n }\n\n var swiper = this;\n var index = swiper.activeIndex;\n var skip = Math.min(swiper.params.slidesPerGroupSkip, index);\n var snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup);\n var translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n\n if (translate >= swiper.snapGrid[snapIndex]) {\n // The current translate is on or after the current snap index, so the choice\n // is between the current index and the one after it.\n var currentSnap = swiper.snapGrid[snapIndex];\n var nextSnap = swiper.snapGrid[snapIndex + 1];\n\n if (translate - currentSnap > (nextSnap - currentSnap) * threshold) {\n index += swiper.params.slidesPerGroup;\n }\n } else {\n // The current translate is before the current snap index, so the choice\n // is between the current index and the one before it.\n var prevSnap = swiper.snapGrid[snapIndex - 1];\n var _currentSnap = swiper.snapGrid[snapIndex];\n\n if (translate - prevSnap <= (_currentSnap - prevSnap) * threshold) {\n index -= swiper.params.slidesPerGroup;\n }\n }\n\n index = Math.max(index, 0);\n index = Math.min(index, swiper.slidesGrid.length - 1);\n return swiper.slideTo(index, speed, runCallbacks, internal);\n}","import $ from '../../../utils/dom';\nimport { nextTick } from '../../../utils/utils';\nexport default function slideToClickedSlide() {\n var swiper = this;\n var params = swiper.params,\n $wrapperEl = swiper.$wrapperEl;\n var slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\n var slideToIndex = swiper.clickedIndex;\n var realIndex;\n\n if (params.loop) {\n if (swiper.animating) return;\n realIndex = parseInt($(swiper.clickedSlide).attr('data-swiper-slide-index'), 10);\n\n if (params.centeredSlides) {\n if (slideToIndex < swiper.loopedSlides - slidesPerView / 2 || slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2) {\n swiper.loopFix();\n slideToIndex = $wrapperEl.children(\".\" + params.slideClass + \"[data-swiper-slide-index=\\\"\" + realIndex + \"\\\"]:not(.\" + params.slideDuplicateClass + \")\").eq(0).index();\n nextTick(function () {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else if (slideToIndex > swiper.slides.length - slidesPerView) {\n swiper.loopFix();\n slideToIndex = $wrapperEl.children(\".\" + params.slideClass + \"[data-swiper-slide-index=\\\"\" + realIndex + \"\\\"]:not(.\" + params.slideDuplicateClass + \")\").eq(0).index();\n nextTick(function () {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else {\n swiper.slideTo(slideToIndex);\n }\n}","import loopCreate from './loopCreate';\nimport loopFix from './loopFix';\nimport loopDestroy from './loopDestroy';\nexport default {\n loopCreate: loopCreate,\n loopFix: loopFix,\n loopDestroy: loopDestroy\n};","import { getDocument } from 'ssr-window';\nimport $ from '../../../utils/dom';\nexport default function loopCreate() {\n var swiper = this;\n var document = getDocument();\n var params = swiper.params,\n $wrapperEl = swiper.$wrapperEl; // Remove duplicated slides\n\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass).remove();\n var slides = $wrapperEl.children(\".\" + params.slideClass);\n\n if (params.loopFillGroupWithBlank) {\n var blankSlidesNum = params.slidesPerGroup - slides.length % params.slidesPerGroup;\n\n if (blankSlidesNum !== params.slidesPerGroup) {\n for (var i = 0; i < blankSlidesNum; i += 1) {\n var blankNode = $(document.createElement('div')).addClass(params.slideClass + \" \" + params.slideBlankClass);\n $wrapperEl.append(blankNode);\n }\n\n slides = $wrapperEl.children(\".\" + params.slideClass);\n }\n }\n\n if (params.slidesPerView === 'auto' && !params.loopedSlides) params.loopedSlides = slides.length;\n swiper.loopedSlides = Math.ceil(parseFloat(params.loopedSlides || params.slidesPerView, 10));\n swiper.loopedSlides += params.loopAdditionalSlides;\n\n if (swiper.loopedSlides > slides.length) {\n swiper.loopedSlides = slides.length;\n }\n\n var prependSlides = [];\n var appendSlides = [];\n slides.each(function (el, index) {\n var slide = $(el);\n\n if (index < swiper.loopedSlides) {\n appendSlides.push(el);\n }\n\n if (index < slides.length && index >= slides.length - swiper.loopedSlides) {\n prependSlides.push(el);\n }\n\n slide.attr('data-swiper-slide-index', index);\n });\n\n for (var _i = 0; _i < appendSlides.length; _i += 1) {\n $wrapperEl.append($(appendSlides[_i].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n\n for (var _i2 = prependSlides.length - 1; _i2 >= 0; _i2 -= 1) {\n $wrapperEl.prepend($(prependSlides[_i2].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n}","export default function loopFix() {\n var swiper = this;\n swiper.emit('beforeLoopFix');\n var activeIndex = swiper.activeIndex,\n slides = swiper.slides,\n loopedSlides = swiper.loopedSlides,\n allowSlidePrev = swiper.allowSlidePrev,\n allowSlideNext = swiper.allowSlideNext,\n snapGrid = swiper.snapGrid,\n rtl = swiper.rtlTranslate;\n var newIndex;\n swiper.allowSlidePrev = true;\n swiper.allowSlideNext = true;\n var snapTranslate = -snapGrid[activeIndex];\n var diff = snapTranslate - swiper.getTranslate(); // Fix For Negative Oversliding\n\n if (activeIndex < loopedSlides) {\n newIndex = slides.length - loopedSlides * 3 + activeIndex;\n newIndex += loopedSlides;\n var slideChanged = swiper.slideTo(newIndex, 0, false, true);\n\n if (slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n } else if (activeIndex >= slides.length - loopedSlides) {\n // Fix For Positive Oversliding\n newIndex = -slides.length + activeIndex + loopedSlides;\n newIndex += loopedSlides;\n\n var _slideChanged = swiper.slideTo(newIndex, 0, false, true);\n\n if (_slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n }\n\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n swiper.emit('loopFix');\n}","export default function loopDestroy() {\n var swiper = this;\n var $wrapperEl = swiper.$wrapperEl,\n params = swiper.params,\n slides = swiper.slides;\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass + \",.\" + params.slideClass + \".\" + params.slideBlankClass).remove();\n slides.removeAttr('data-swiper-slide-index');\n}","import setGrabCursor from './setGrabCursor';\nimport unsetGrabCursor from './unsetGrabCursor';\nexport default {\n setGrabCursor: setGrabCursor,\n unsetGrabCursor: unsetGrabCursor\n};","export default function setGrabCursor(moving) {\n var swiper = this;\n if (swiper.support.touch || !swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return;\n var el = swiper.el;\n el.style.cursor = 'move';\n el.style.cursor = moving ? '-webkit-grabbing' : '-webkit-grab';\n el.style.cursor = moving ? '-moz-grabbin' : '-moz-grab';\n el.style.cursor = moving ? 'grabbing' : 'grab';\n}","export default function unsetGrabCursor() {\n var swiper = this;\n\n if (swiper.support.touch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) {\n return;\n }\n\n swiper.el.style.cursor = '';\n}","import appendSlide from './appendSlide';\nimport prependSlide from './prependSlide';\nimport addSlide from './addSlide';\nimport removeSlide from './removeSlide';\nimport removeAllSlides from './removeAllSlides';\nexport default {\n appendSlide: appendSlide,\n prependSlide: prependSlide,\n addSlide: addSlide,\n removeSlide: removeSlide,\n removeAllSlides: removeAllSlides\n};","export default function appendSlide(slides) {\n var swiper = this;\n var $wrapperEl = swiper.$wrapperEl,\n params = swiper.params;\n\n if (params.loop) {\n swiper.loopDestroy();\n }\n\n if (typeof slides === 'object' && 'length' in slides) {\n for (var i = 0; i < slides.length; i += 1) {\n if (slides[i]) $wrapperEl.append(slides[i]);\n }\n } else {\n $wrapperEl.append(slides);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!(params.observer && swiper.support.observer)) {\n swiper.update();\n }\n}","export default function prependSlide(slides) {\n var swiper = this;\n var params = swiper.params,\n $wrapperEl = swiper.$wrapperEl,\n activeIndex = swiper.activeIndex;\n\n if (params.loop) {\n swiper.loopDestroy();\n }\n\n var newActiveIndex = activeIndex + 1;\n\n if (typeof slides === 'object' && 'length' in slides) {\n for (var i = 0; i < slides.length; i += 1) {\n if (slides[i]) $wrapperEl.prepend(slides[i]);\n }\n\n newActiveIndex = activeIndex + slides.length;\n } else {\n $wrapperEl.prepend(slides);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!(params.observer && swiper.support.observer)) {\n swiper.update();\n }\n\n swiper.slideTo(newActiveIndex, 0, false);\n}","export default function addSlide(index, slides) {\n var swiper = this;\n var $wrapperEl = swiper.$wrapperEl,\n params = swiper.params,\n activeIndex = swiper.activeIndex;\n var activeIndexBuffer = activeIndex;\n\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n swiper.slides = $wrapperEl.children(\".\" + params.slideClass);\n }\n\n var baseLength = swiper.slides.length;\n\n if (index <= 0) {\n swiper.prependSlide(slides);\n return;\n }\n\n if (index >= baseLength) {\n swiper.appendSlide(slides);\n return;\n }\n\n var newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + 1 : activeIndexBuffer;\n var slidesBuffer = [];\n\n for (var i = baseLength - 1; i >= index; i -= 1) {\n var currentSlide = swiper.slides.eq(i);\n currentSlide.remove();\n slidesBuffer.unshift(currentSlide);\n }\n\n if (typeof slides === 'object' && 'length' in slides) {\n for (var _i = 0; _i < slides.length; _i += 1) {\n if (slides[_i]) $wrapperEl.append(slides[_i]);\n }\n\n newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + slides.length : activeIndexBuffer;\n } else {\n $wrapperEl.append(slides);\n }\n\n for (var _i2 = 0; _i2 < slidesBuffer.length; _i2 += 1) {\n $wrapperEl.append(slidesBuffer[_i2]);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!(params.observer && swiper.support.observer)) {\n swiper.update();\n }\n\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n } else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n}","export default function removeSlide(slidesIndexes) {\n var swiper = this;\n var params = swiper.params,\n $wrapperEl = swiper.$wrapperEl,\n activeIndex = swiper.activeIndex;\n var activeIndexBuffer = activeIndex;\n\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n swiper.slides = $wrapperEl.children(\".\" + params.slideClass);\n }\n\n var newActiveIndex = activeIndexBuffer;\n var indexToRemove;\n\n if (typeof slidesIndexes === 'object' && 'length' in slidesIndexes) {\n for (var i = 0; i < slidesIndexes.length; i += 1) {\n indexToRemove = slidesIndexes[i];\n if (swiper.slides[indexToRemove]) swiper.slides.eq(indexToRemove).remove();\n if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\n }\n\n newActiveIndex = Math.max(newActiveIndex, 0);\n } else {\n indexToRemove = slidesIndexes;\n if (swiper.slides[indexToRemove]) swiper.slides.eq(indexToRemove).remove();\n if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\n newActiveIndex = Math.max(newActiveIndex, 0);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!(params.observer && swiper.support.observer)) {\n swiper.update();\n }\n\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n } else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n}","export default function removeAllSlides() {\n var swiper = this;\n var slidesIndexes = [];\n\n for (var i = 0; i < swiper.slides.length; i += 1) {\n slidesIndexes.push(i);\n }\n\n swiper.removeSlide(slidesIndexes);\n}","import setBreakpoint from './setBreakpoint';\nimport getBreakpoint from './getBreakpoint';\nexport default {\n setBreakpoint: setBreakpoint,\n getBreakpoint: getBreakpoint\n};","import { extend } from '../../../utils/utils';\nexport default function setBreakpoint() {\n var swiper = this;\n var activeIndex = swiper.activeIndex,\n initialized = swiper.initialized,\n _swiper$loopedSlides = swiper.loopedSlides,\n loopedSlides = _swiper$loopedSlides === void 0 ? 0 : _swiper$loopedSlides,\n params = swiper.params,\n $el = swiper.$el;\n var breakpoints = params.breakpoints;\n if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return; // Get breakpoint for window width and update parameters\n\n var breakpoint = swiper.getBreakpoint(breakpoints);\n\n if (breakpoint && swiper.currentBreakpoint !== breakpoint) {\n var breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;\n\n if (breakpointOnlyParams) {\n ['slidesPerView', 'spaceBetween', 'slidesPerGroup', 'slidesPerGroupSkip', 'slidesPerColumn'].forEach(function (param) {\n var paramValue = breakpointOnlyParams[param];\n if (typeof paramValue === 'undefined') return;\n\n if (param === 'slidesPerView' && (paramValue === 'AUTO' || paramValue === 'auto')) {\n breakpointOnlyParams[param] = 'auto';\n } else if (param === 'slidesPerView') {\n breakpointOnlyParams[param] = parseFloat(paramValue);\n } else {\n breakpointOnlyParams[param] = parseInt(paramValue, 10);\n }\n });\n }\n\n var breakpointParams = breakpointOnlyParams || swiper.originalParams;\n var wasMultiRow = params.slidesPerColumn > 1;\n var isMultiRow = breakpointParams.slidesPerColumn > 1;\n\n if (wasMultiRow && !isMultiRow) {\n $el.removeClass(params.containerModifierClass + \"multirow \" + params.containerModifierClass + \"multirow-column\");\n swiper.emitContainerClasses();\n } else if (!wasMultiRow && isMultiRow) {\n $el.addClass(params.containerModifierClass + \"multirow\");\n\n if (breakpointParams.slidesPerColumnFill === 'column') {\n $el.addClass(params.containerModifierClass + \"multirow-column\");\n }\n\n swiper.emitContainerClasses();\n }\n\n var directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;\n var needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);\n\n if (directionChanged && initialized) {\n swiper.changeDirection();\n }\n\n extend(swiper.params, breakpointParams);\n extend(swiper, {\n allowTouchMove: swiper.params.allowTouchMove,\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev\n });\n swiper.currentBreakpoint = breakpoint;\n\n if (needsReLoop && initialized) {\n swiper.loopDestroy();\n swiper.loopCreate();\n swiper.updateSlides();\n swiper.slideTo(activeIndex - loopedSlides + swiper.loopedSlides, 0, false);\n }\n\n swiper.emit('breakpoint', breakpointParams);\n }\n}","import { getWindow } from 'ssr-window';\nexport default function getBreakpoints(breakpoints) {\n var window = getWindow(); // Get breakpoint for window width\n\n if (!breakpoints) return undefined;\n var breakpoint = false;\n var points = Object.keys(breakpoints).map(function (point) {\n if (typeof point === 'string' && point.indexOf('@') === 0) {\n var minRatio = parseFloat(point.substr(1));\n var value = window.innerHeight * minRatio;\n return {\n value: value,\n point: point\n };\n }\n\n return {\n value: point,\n point: point\n };\n });\n points.sort(function (a, b) {\n return parseInt(a.value, 10) - parseInt(b.value, 10);\n });\n\n for (var i = 0; i < points.length; i += 1) {\n var _points$i = points[i],\n point = _points$i.point,\n value = _points$i.value;\n\n if (value <= window.innerWidth) {\n breakpoint = point;\n }\n }\n\n return breakpoint || 'max';\n}","import addClasses from './addClasses';\nimport removeClasses from './removeClasses';\nexport default {\n addClasses: addClasses,\n removeClasses: removeClasses\n};","export default function addClasses() {\n var swiper = this;\n var classNames = swiper.classNames,\n params = swiper.params,\n rtl = swiper.rtl,\n $el = swiper.$el,\n device = swiper.device;\n var suffixes = [];\n suffixes.push('initialized');\n suffixes.push(params.direction);\n\n if (params.freeMode) {\n suffixes.push('free-mode');\n }\n\n if (params.autoHeight) {\n suffixes.push('autoheight');\n }\n\n if (rtl) {\n suffixes.push('rtl');\n }\n\n if (params.slidesPerColumn > 1) {\n suffixes.push('multirow');\n\n if (params.slidesPerColumnFill === 'column') {\n suffixes.push('multirow-column');\n }\n }\n\n if (device.android) {\n suffixes.push('android');\n }\n\n if (device.ios) {\n suffixes.push('ios');\n }\n\n if (params.cssMode) {\n suffixes.push('css-mode');\n }\n\n suffixes.forEach(function (suffix) {\n classNames.push(params.containerModifierClass + suffix);\n });\n $el.addClass(classNames.join(' '));\n swiper.emitContainerClasses();\n}","export default function removeClasses() {\n var swiper = this;\n var $el = swiper.$el,\n classNames = swiper.classNames;\n $el.removeClass(classNames.join(' '));\n swiper.emitContainerClasses();\n}","import loadImage from './loadImage';\nimport preloadImages from './preloadImages';\nexport default {\n loadImage: loadImage,\n preloadImages: preloadImages\n};","import { getWindow } from 'ssr-window';\nimport $ from '../../../utils/dom';\nexport default function loadImage(imageEl, src, srcset, sizes, checkForComplete, callback) {\n var window = getWindow();\n var image;\n\n function onReady() {\n if (callback) callback();\n }\n\n var isPicture = $(imageEl).parent('picture')[0];\n\n if (!isPicture && (!imageEl.complete || !checkForComplete)) {\n if (src) {\n image = new window.Image();\n image.onload = onReady;\n image.onerror = onReady;\n\n if (sizes) {\n image.sizes = sizes;\n }\n\n if (srcset) {\n image.srcset = srcset;\n }\n\n if (src) {\n image.src = src;\n }\n } else {\n onReady();\n }\n } else {\n // image already loaded...\n onReady();\n }\n}","export default function preloadImages() {\n var swiper = this;\n swiper.imagesToLoad = swiper.$el.find('img');\n\n function onReady() {\n if (typeof swiper === 'undefined' || swiper === null || !swiper || swiper.destroyed) return;\n if (swiper.imagesLoaded !== undefined) swiper.imagesLoaded += 1;\n\n if (swiper.imagesLoaded === swiper.imagesToLoad.length) {\n if (swiper.params.updateOnImagesReady) swiper.update();\n swiper.emit('imagesReady');\n }\n }\n\n for (var i = 0; i < swiper.imagesToLoad.length; i += 1) {\n var imageEl = swiper.imagesToLoad[i];\n swiper.loadImage(imageEl, imageEl.currentSrc || imageEl.getAttribute('src'), imageEl.srcset || imageEl.getAttribute('srcset'), imageEl.sizes || imageEl.getAttribute('sizes'), true, onReady);\n }\n}","/* underscore in name -> watch for changes */\nvar paramsList = ['init', '_direction', 'touchEventsTarget', 'initialSlide', '_speed', 'cssMode', 'updateOnWindowResize', '_width', '_height', 'preventInteractionOnTransition', 'userAgent', 'url', '_edgeSwipeDetection', '_edgeSwipeThreshold', '_freeMode', '_freeModeMomentum', '_freeModeMomentumRatio', '_freeModeMomentumBounce', '_freeModeMomentumBounceRatio', '_freeModeMomentumVelocityRatio', '_freeModeSticky', '_freeModeMinimumVelocity', '_autoHeight', 'setWrapperSize', 'virtualTranslate', '_effect', 'breakpoints', '_spaceBetween', '_slidesPerView', '_slidesPerColumn', '_slidesPerColumnFill', '_slidesPerGroup', '_slidesPerGroupSkip', '_centeredSlides', '_centeredSlidesBounds', '_slidesOffsetBefore', '_slidesOffsetAfter', 'normalizeSlideIndex', '_centerInsufficientSlides', '_watchOverflow', 'roundLengths', 'touchRatio', 'touchAngle', 'simulateTouch', '_shortSwipes', '_longSwipes', 'longSwipesRatio', 'longSwipesMs', '_followFinger', 'allowTouchMove', '_threshold', 'touchMoveStopPropagation', 'touchStartPreventDefault', 'touchStartForcePreventDefault', 'touchReleaseOnEdges', 'uniqueNavElements', '_resistance', '_resistanceRatio', '_watchSlidesProgress', '_watchSlidesVisibility', '_grabCursor', 'preventClicks', 'preventClicksPropagation', '_slideToClickedSlide', '_preloadImages', 'updateOnImagesReady', '_loop', '_loopAdditionalSlides', '_loopedSlides', '_loopFillGroupWithBlank', 'loopPreventsSlide', '_allowSlidePrev', '_allowSlideNext', '_swipeHandler', '_noSwiping', 'noSwipingClass', 'noSwipingSelector', 'passiveListeners', 'containerModifierClass', 'slideClass', 'slideBlankClass', 'slideActiveClass', 'slideDuplicateActiveClass', 'slideVisibleClass', 'slideDuplicateClass', 'slideNextClass', 'slideDuplicateNextClass', 'slidePrevClass', 'slideDuplicatePrevClass', 'wrapperClass', 'runCallbacksOnInit', // modules\n'a11y', 'autoplay', '_controller', 'coverflowEffect', 'cubeEffect', 'fadeEffect', 'flipEffect', 'hashNavigation', 'history', 'keyboard', 'lazy', 'mousewheel', '_navigation', '_pagination', 'parallax', '_scrollbar', '_thumbs', 'virtual', 'zoom'];\nexport { paramsList };","import React from 'react';\n\nfunction calcLoopedSlides(slides, swiperParams) {\n var loopedSlides = Math.ceil(parseFloat(swiperParams.loopedSlides || swiperParams.slidesPerView, 10));\n loopedSlides += swiperParams.loopAdditionalSlides;\n\n if (loopedSlides > slides.length) {\n loopedSlides = slides.length;\n }\n\n return loopedSlides;\n}\n\nfunction renderLoop(swiper, slides, swiperParams) {\n var modifiedSlides = slides.map(function (child, index) {\n return React.cloneElement(child, {\n swiper: swiper,\n 'data-swiper-slide-index': index\n });\n });\n\n function duplicateSlide(child, index, position) {\n return React.cloneElement(child, {\n key: child.key + \"-duplicate-\" + index + \"-\" + position,\n className: (child.props.className || '') + \" \" + swiperParams.slideDuplicateClass\n });\n }\n\n if (swiperParams.loopFillGroupWithBlank) {\n var blankSlidesNum = swiperParams.slidesPerGroup - modifiedSlides.length % swiperParams.slidesPerGroup;\n\n if (blankSlidesNum !== swiperParams.slidesPerGroup) {\n for (var i = 0; i < blankSlidesNum; i += 1) {\n var blankSlide = /*#__PURE__*/React.createElement(\"div\", {\n className: swiperParams.slideClass + \" \" + swiperParams.slideBlankClass\n });\n modifiedSlides.push(blankSlide);\n }\n }\n }\n\n if (swiperParams.slidesPerView === 'auto' && !swiperParams.loopedSlides) {\n swiperParams.loopedSlides = modifiedSlides.length;\n }\n\n var loopedSlides = calcLoopedSlides(modifiedSlides, swiperParams);\n var prependSlides = [];\n var appendSlides = [];\n modifiedSlides.forEach(function (child, index) {\n if (index < loopedSlides) {\n appendSlides.push(duplicateSlide(child, index, 'prepend'));\n }\n\n if (index < modifiedSlides.length && index >= modifiedSlides.length - loopedSlides) {\n prependSlides.push(duplicateSlide(child, index, 'append'));\n }\n });\n\n if (swiper) {\n swiper.loopedSlides = loopedSlides;\n }\n\n return [].concat(prependSlides, modifiedSlides, appendSlides);\n}\n\nexport { calcLoopedSlides, renderLoop };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React, { useRef, useState, useEffect, forwardRef } from 'react';\nimport { getParams } from './get-params';\nimport { initSwiper } from './init-swiper';\nimport { needsScrollbar, needsNavigation, needsPagination, uniqueClasses } from './utils';\nimport { renderLoop, calcLoopedSlides } from './loop';\nimport { getChangedParams } from './get-changed-params';\nimport { getChildren } from './get-children';\nimport { updateSwiper } from './update-swiper';\nimport { renderVirtual, updateOnVirtualData } from './virtual';\nimport { useIsomorphicLayoutEffect } from './use-isomorphic-layout-effect';\nvar Swiper = forwardRef(function (_temp, externalElRef) {\n var _ref = _temp === void 0 ? {} : _temp,\n className = _ref.className,\n _ref$tag = _ref.tag,\n Tag = _ref$tag === void 0 ? 'div' : _ref$tag,\n _ref$wrapperTag = _ref.wrapperTag,\n WrapperTag = _ref$wrapperTag === void 0 ? 'div' : _ref$wrapperTag,\n children = _ref.children,\n onSwiper = _ref.onSwiper,\n rest = _objectWithoutPropertiesLoose(_ref, [\"className\", \"tag\", \"wrapperTag\", \"children\", \"onSwiper\"]);\n\n var _useState = useState('swiper-container'),\n containerClasses = _useState[0],\n setContainerClasses = _useState[1];\n\n var _useState2 = useState(null),\n virtualData = _useState2[0],\n setVirtualData = _useState2[1];\n\n var initializedRef = useRef(false);\n var swiperElRef = useRef(null);\n var swiperRef = useRef(null);\n var oldPassedParamsRef = useRef(null);\n var oldSlides = useRef(null);\n var nextElRef = useRef(null);\n var prevElRef = useRef(null);\n var paginationElRef = useRef(null);\n var scrollbarElRef = useRef(null);\n\n var _getParams = getParams(rest),\n swiperParams = _getParams.params,\n passedParams = _getParams.passedParams,\n restProps = _getParams.rest;\n\n var _getChildren = getChildren(children),\n slides = _getChildren.slides,\n slots = _getChildren.slots;\n\n var changedParams = getChangedParams(passedParams, oldPassedParamsRef.current, slides, oldSlides.current);\n oldPassedParamsRef.current = passedParams;\n oldSlides.current = slides;\n Object.assign(swiperParams.on, {\n _containerClasses: function _containerClasses(swiper, classes) {\n setContainerClasses(classes);\n },\n _swiper: function _swiper(swiper) {\n swiper.loopCreate = function () {};\n\n swiper.loopDestroy = function () {};\n\n if (swiperParams.loop) {\n swiper.loopedSlides = calcLoopedSlides(slides, swiperParams);\n }\n\n swiperRef.current = swiper;\n\n if (swiper.virtual && swiper.params.virtual.enabled) {\n swiper.virtual.slides = slides;\n swiper.params.virtual.cache = false;\n swiper.params.virtual.renderExternal = setVirtualData;\n swiper.params.virtual.renderExternalUpdate = false;\n }\n }\n }); // set initialized flag\n\n useEffect(function () {\n if (!initializedRef.current && swiperRef.current) {\n swiperRef.current.emitSlidesClasses();\n initializedRef.current = true;\n }\n }); // watch for params change\n\n useIsomorphicLayoutEffect(function () {\n if (changedParams.length && swiperRef.current && !swiperRef.current.destroyed) {\n updateSwiper(swiperRef.current, slides, passedParams, changedParams);\n }\n }); // update on virtual update\n\n useIsomorphicLayoutEffect(function () {\n updateOnVirtualData(swiperRef.current);\n }, [virtualData]); // init swiper\n\n useIsomorphicLayoutEffect(function () {\n if (externalElRef) {\n externalElRef.current = swiperElRef.current;\n }\n\n if (!swiperElRef.current) return;\n initSwiper({\n el: swiperElRef.current,\n nextEl: nextElRef.current,\n prevEl: prevElRef.current,\n paginationEl: paginationElRef.current,\n scrollbarEl: scrollbarElRef.current\n }, swiperParams);\n if (onSwiper) onSwiper(swiperRef.current); // eslint-disable-next-line\n\n return function () {\n if (swiperRef.current && !swiperRef.current.destroyed) {\n swiperRef.current.destroy();\n }\n };\n }, []); // bypass swiper instance to slides\n\n function renderSlides() {\n if (swiperParams.virtual) {\n return renderVirtual(swiperRef.current, slides, virtualData);\n }\n\n if (!swiperParams.loop || swiperRef.current && swiperRef.current.destroyed) {\n return slides.map(function (child) {\n return React.cloneElement(child, {\n swiper: swiperRef.current\n });\n });\n }\n\n return renderLoop(swiperRef.current, slides, swiperParams);\n }\n\n return /*#__PURE__*/React.createElement(Tag, _extends({\n ref: swiperElRef,\n className: uniqueClasses(\"\" + containerClasses + (className ? \" \" + className : ''))\n }, restProps), slots['container-start'], needsNavigation(swiperParams) && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"div\", {\n ref: prevElRef,\n className: \"swiper-button-prev\"\n }), /*#__PURE__*/React.createElement(\"div\", {\n ref: nextElRef,\n className: \"swiper-button-next\"\n })), needsScrollbar(swiperParams) && /*#__PURE__*/React.createElement(\"div\", {\n ref: scrollbarElRef,\n className: \"swiper-scrollbar\"\n }), needsPagination(swiperParams) && /*#__PURE__*/React.createElement(\"div\", {\n ref: paginationElRef,\n className: \"swiper-pagination\"\n }), /*#__PURE__*/React.createElement(WrapperTag, {\n className: \"swiper-wrapper\"\n }, slots['wrapper-start'], renderSlides(), slots['wrapper-end']), slots['container-end']);\n});\nSwiper.displayName = 'Swiper';\nexport { Swiper };","// eslint-disable-next-line\nimport Swiper from '../../core';\nimport { isObject, extend } from './utils';\nimport { paramsList } from './params-list';\n\nfunction getParams(obj) {\n if (obj === void 0) {\n obj = {};\n }\n\n var params = {\n on: {}\n };\n var passedParams = {};\n extend(params, Swiper.defaults);\n extend(params, Swiper.extendedDefaults);\n params._emitClasses = true;\n var rest = {};\n var allowedParams = paramsList.map(function (key) {\n return key.replace(/_/, '');\n });\n Object.keys(obj).forEach(function (key) {\n if (allowedParams.indexOf(key) >= 0) {\n if (isObject(obj[key])) {\n params[key] = {};\n passedParams[key] = {};\n extend(params[key], obj[key]);\n extend(passedParams[key], obj[key]);\n } else {\n params[key] = obj[key];\n passedParams[key] = obj[key];\n }\n } else if (key.search(/on[A-Z]/) === 0 && typeof obj[key] === 'function') {\n params.on[\"\" + key[2].toLowerCase() + key.substr(3)] = obj[key];\n } else {\n rest[key] = obj[key];\n }\n });\n return {\n params: params,\n passedParams: passedParams,\n rest: rest\n };\n}\n\nexport { getParams };","import React from 'react';\n\nfunction getChildren(children) {\n var slides = [];\n var slots = {\n 'container-start': [],\n 'container-end': [],\n 'wrapper-start': [],\n 'wrapper-end': []\n };\n\n function processChildren(c) {\n React.Children.toArray(c).forEach(function (child) {\n if (child.type === React.Fragment && child.props.children) {\n processChildren(child.props.children);\n return;\n }\n\n if (child.type && child.type.displayName === 'SwiperSlide') {\n slides.push(child);\n } else if (child.props && child.props.slot && slots[child.props.slot]) {\n slots[child.props.slot].push(child);\n } else {\n slots['container-end'].push(child);\n }\n });\n }\n\n processChildren(children);\n return {\n slides: slides,\n slots: slots\n };\n}\n\nexport { getChildren };","import { paramsList } from './params-list';\n\nfunction getChangedParams(swiperParams, oldParams, children, oldChildren) {\n var keys = [];\n if (!oldParams) return keys;\n var oldChildrenKeys = oldChildren.map(function (child) {\n return child.key;\n });\n var childrenKeys = children.map(function (child) {\n return child.key;\n });\n if (oldChildrenKeys.join('') !== childrenKeys.join('')) keys.push('children');\n if (oldChildren.length !== children.length) keys.push('children');\n var watchParams = paramsList.filter(function (key) {\n return key[0] === '_';\n }).map(function (key) {\n return key.replace(/_/, '');\n });\n watchParams.forEach(function (key) {\n if (key in swiperParams && key in oldParams && swiperParams[key] !== oldParams[key]) {\n keys.push(key);\n }\n });\n return keys;\n}\n\nexport { getChangedParams };","import { isObject, extend } from './utils';\n\nfunction updateSwiper(swiper, slides, passedParams, changedParams) {\n var updateParams = changedParams.filter(function (key) {\n return key !== 'children' && key !== 'direction';\n });\n var currentParams = swiper.params,\n pagination = swiper.pagination,\n navigation = swiper.navigation,\n scrollbar = swiper.scrollbar,\n virtual = swiper.virtual,\n thumbs = swiper.thumbs;\n var needThumbsInit;\n var needControllerInit;\n var needPaginationInit;\n var needScrollbarInit;\n var needNavigationInit;\n\n if (changedParams.includes('thumbs') && passedParams.thumbs && passedParams.thumbs.swiper && currentParams.thumbs && !currentParams.thumbs.swiper) {\n needThumbsInit = true;\n }\n\n if (changedParams.includes('controller') && passedParams.controller && passedParams.controller.control && currentParams.controller && !currentParams.controller.control) {\n needControllerInit = true;\n }\n\n if (changedParams.includes('pagination') && passedParams.pagination && passedParams.pagination.el && currentParams.pagination && pagination && !pagination.el) {\n needPaginationInit = true;\n }\n\n if (changedParams.includes('scrollbar') && passedParams.scrollbar && passedParams.scrollbar.el && currentParams.scrollbar && scrollbar && !scrollbar.el) {\n needScrollbarInit = true;\n }\n\n if (changedParams.includes('navigation') && passedParams.navigation && passedParams.navigation.prevEl && passedParams.navigation.nextEl && currentParams.navigation && navigation && !navigation.prevEl && !navigation.nextEl) {\n needNavigationInit = true;\n }\n\n updateParams.forEach(function (key) {\n if (isObject(currentParams[key]) && isObject(passedParams[key])) {\n extend(currentParams[key], passedParams[key]);\n } else {\n currentParams[key] = passedParams[key];\n }\n });\n\n if (changedParams.includes('children') && virtual && currentParams.virtual.enabled) {\n virtual.slides = slides;\n virtual.update(true);\n }\n\n if (needThumbsInit) {\n var initialized = thumbs.init();\n if (initialized) thumbs.update(true);\n }\n\n if (needControllerInit) {\n swiper.controller.control = currentParams.controller.control;\n }\n\n if (needPaginationInit) {\n pagination.init();\n pagination.render();\n pagination.update();\n }\n\n if (needScrollbarInit) {\n scrollbar.init();\n scrollbar.updateSize();\n scrollbar.setTranslate();\n }\n\n if (needNavigationInit) {\n navigation.init();\n navigation.update();\n }\n\n if (changedParams.includes('allowSlideNext')) {\n swiper.allowSlideNext = passedParams.allowSlideNext;\n }\n\n if (changedParams.includes('allowSlidePrev')) {\n swiper.allowSlidePrev = passedParams.allowSlidePrev;\n }\n\n if (changedParams.includes('direction')) {\n swiper.changeDirection(passedParams.direction, false);\n }\n\n swiper.update();\n}\n\nexport { updateSwiper };","import React from 'react';\n\nfunction updateOnVirtualData(swiper) {\n if (!swiper || swiper.destroyed) return;\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n\n if (swiper.lazy && swiper.params.lazy.enabled) {\n swiper.lazy.load();\n }\n}\n\nfunction renderVirtual(swiper, slides, virtualData) {\n var _ref;\n\n if (!virtualData) return null;\n var style = swiper.isHorizontal() ? (_ref = {}, _ref[swiper.rtlTranslate ? 'right' : 'left'] = virtualData.offset + \"px\", _ref) : {\n top: virtualData.offset + \"px\"\n };\n return slides.filter(function (child, index) {\n return index >= virtualData.from && index <= virtualData.to;\n }).map(function (child) {\n return React.cloneElement(child, {\n swiper: swiper,\n style: style\n });\n });\n}\n\nexport { renderVirtual, updateOnVirtualData };","// eslint-disable-next-line\nimport Swiper from '../../core';\nimport { needsNavigation, needsPagination, needsScrollbar } from './utils';\n\nfunction initSwiper(_ref, swiperParams) {\n var el = _ref.el,\n nextEl = _ref.nextEl,\n prevEl = _ref.prevEl,\n paginationEl = _ref.paginationEl,\n scrollbarEl = _ref.scrollbarEl;\n\n if (needsNavigation(swiperParams) && nextEl && prevEl) {\n if (swiperParams.navigation === true) {\n swiperParams.navigation = {};\n }\n\n swiperParams.navigation.nextEl = nextEl;\n swiperParams.navigation.prevEl = prevEl;\n }\n\n if (needsPagination(swiperParams) && paginationEl) {\n if (swiperParams.pagination === true) {\n swiperParams.pagination = {};\n }\n\n swiperParams.pagination.el = paginationEl;\n }\n\n if (needsScrollbar(swiperParams) && scrollbarEl) {\n if (swiperParams.scrollbar === true) {\n swiperParams.scrollbar = {};\n }\n\n swiperParams.scrollbar.el = scrollbarEl;\n }\n\n return new Swiper(el, swiperParams);\n}\n\nexport { initSwiper };","import { useEffect, useLayoutEffect } from 'react';\nvar useIsomorphicLayoutEffect = typeof window !== 'undefined' ? useLayoutEffect : useEffect;\nexport default useIsomorphicLayoutEffect;\n","import isDeepEqualReact from 'fast-deep-equal/react';\nexport var isClient = typeof window === 'object';\nexport var on = function (obj) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n return obj.addEventListener.apply(obj, args);\n};\nexport var off = function (obj) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n return obj.removeEventListener.apply(obj, args);\n};\nexport var isDeepEqual = isDeepEqualReact;\n","import { useState, useMemo } from 'react';\nimport useIsomorphicLayoutEffect from './useIsomorphicLayoutEffect';\nimport { isClient } from './util';\nvar defaultState = {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n top: 0,\n left: 0,\n bottom: 0,\n right: 0,\n};\nvar useMeasure = function () {\n var _a = useState(null), element = _a[0], ref = _a[1];\n var _b = useState(defaultState), rect = _b[0], setRect = _b[1];\n var observer = useMemo(function () {\n return new window.ResizeObserver(function (entries) {\n if (entries[0]) {\n var _a = entries[0].contentRect, x = _a.x, y = _a.y, width = _a.width, height = _a.height, top_1 = _a.top, left = _a.left, bottom = _a.bottom, right = _a.right;\n setRect({ x: x, y: y, width: width, height: height, top: top_1, left: left, bottom: bottom, right: right });\n }\n });\n }, []);\n useIsomorphicLayoutEffect(function () {\n if (!element)\n return;\n observer.observe(element);\n return function () {\n observer.disconnect();\n };\n }, [element]);\n return [ref, rect];\n};\nvar useMeasureMock = function () { return [function () { }, defaultState]; };\nexport default isClient && !!window.ResizeObserver ? useMeasure : useMeasureMock;\n"],"sourceRoot":""}