{"version":3,"file":"component---src-pages-index-js-dd2cbcc740bd78aef969.js","mappings":"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","sources":["webpack://editais-feevale/./node_modules/@babel/runtime/helpers/defineProperty.js","webpack://editais-feevale/./node_modules/@babel/runtime/helpers/typeof.js","webpack://editais-feevale/./node_modules/axios/index.js","webpack://editais-feevale/./node_modules/axios/lib/adapters/xhr.js","webpack://editais-feevale/./node_modules/axios/lib/axios.js","webpack://editais-feevale/./node_modules/axios/lib/cancel/Cancel.js","webpack://editais-feevale/./node_modules/axios/lib/cancel/CancelToken.js","webpack://editais-feevale/./node_modules/axios/lib/cancel/isCancel.js","webpack://editais-feevale/./node_modules/axios/lib/core/Axios.js","webpack://editais-feevale/./node_modules/axios/lib/core/InterceptorManager.js","webpack://editais-feevale/./node_modules/axios/lib/core/buildFullPath.js","webpack://editais-feevale/./node_modules/axios/lib/core/createError.js","webpack://editais-feevale/./node_modules/axios/lib/core/dispatchRequest.js","webpack://editais-feevale/./node_modules/axios/lib/core/enhanceError.js","webpack://editais-feevale/./node_modules/axios/lib/core/mergeConfig.js","webpack://editais-feevale/./node_modules/axios/lib/core/settle.js","webpack://editais-feevale/./node_modules/axios/lib/core/transformData.js","webpack://editais-feevale/./node_modules/axios/lib/defaults.js","webpack://editais-feevale/./node_modules/axios/lib/env/data.js","webpack://editais-feevale/./node_modules/axios/lib/helpers/bind.js","webpack://editais-feevale/./node_modules/axios/lib/helpers/buildURL.js","webpack://editais-feevale/./node_modules/axios/lib/helpers/combineURLs.js","webpack://editais-feevale/./node_modules/axios/lib/helpers/cookies.js","webpack://editais-feevale/./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack://editais-feevale/./node_modules/axios/lib/helpers/isAxiosError.js","webpack://editais-feevale/./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack://editais-feevale/./node_modules/axios/lib/helpers/normalizeHeaderName.js","webpack://editais-feevale/./node_modules/axios/lib/helpers/parseHeaders.js","webpack://editais-feevale/./node_modules/axios/lib/helpers/spread.js","webpack://editais-feevale/./node_modules/axios/lib/helpers/validator.js","webpack://editais-feevale/./node_modules/axios/lib/utils.js","webpack://editais-feevale/./node_modules/call-bind/callBound.js","webpack://editais-feevale/./node_modules/call-bind/index.js","webpack://editais-feevale/./node_modules/deep-equal/index.js","webpack://editais-feevale/./node_modules/define-properties/index.js","webpack://editais-feevale/./node_modules/focus-trap-react/dist/focus-trap-react.js","webpack://editais-feevale/./node_modules/focus-trap/index.js","webpack://editais-feevale/./node_modules/function-bind/implementation.js","webpack://editais-feevale/./node_modules/function-bind/index.js","webpack://editais-feevale/./node_modules/get-intrinsic/index.js","webpack://editais-feevale/./node_modules/gud/index.js","webpack://editais-feevale/./node_modules/has-symbols/index.js","webpack://editais-feevale/./node_modules/has-symbols/shams.js","webpack://editais-feevale/./node_modules/has-tostringtag/shams.js","webpack://editais-feevale/./node_modules/has/src/index.js","webpack://editais-feevale/./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","webpack://editais-feevale/./node_modules/is-arguments/index.js","webpack://editais-feevale/./node_modules/is-date-object/index.js","webpack://editais-feevale/./node_modules/is-regex/index.js","webpack://editais-feevale/./node_modules/isarray/index.js","webpack://editais-feevale/./node_modules/mdbreact/node_modules/classnames/index.js","webpack://editais-feevale/./node_modules/mdbreact/node_modules/react-transition-group/esm/config.js","webpack://editais-feevale/./node_modules/mdbreact/node_modules/react-transition-group/esm/TransitionGroupContext.js","webpack://editais-feevale/./node_modules/mdbreact/node_modules/react-transition-group/esm/Transition.js","webpack://editais-feevale/./node_modules/moment/moment.js","webpack://editais-feevale/./node_modules/object-is/implementation.js","webpack://editais-feevale/./node_modules/object-is/index.js","webpack://editais-feevale/./node_modules/object-is/polyfill.js","webpack://editais-feevale/./node_modules/object-is/shim.js","webpack://editais-feevale/./node_modules/object-keys/implementation.js","webpack://editais-feevale/./node_modules/object-keys/index.js","webpack://editais-feevale/./node_modules/object-keys/isArguments.js","webpack://editais-feevale/./node_modules/popper.js/dist/esm/popper.js","webpack://editais-feevale/./node_modules/react-fast-compare/index.js","webpack://editais-feevale/./node_modules/react-is/cjs/react-is.production.min.js","webpack://editais-feevale/./node_modules/react-is/index.js","webpack://editais-feevale/./node_modules/react-numeric-input/index.js","webpack://editais-feevale/./node_modules/react-popper/lib/esm/Manager.js","webpack://editais-feevale/./node_modules/react-popper/lib/esm/Popper.js","webpack://editais-feevale/./node_modules/react-popper/lib/esm/Reference.js","webpack://editais-feevale/./node_modules/react-popper/lib/esm/utils.js","webpack://editais-feevale/./node_modules/react-popper/node_modules/@hypnosphi/create-react-context/lib/implementation.js","webpack://editais-feevale/./node_modules/react-popper/node_modules/@hypnosphi/create-react-context/lib/index.js","webpack://editais-feevale/./node_modules/@babel/runtime/helpers/esm/extends.js","webpack://editais-feevale/./node_modules/resolve-pathname/esm/resolve-pathname.js","webpack://editais-feevale/./node_modules/tiny-invariant/dist/tiny-invariant.esm.js","webpack://editais-feevale/./node_modules/history/esm/history.js","webpack://editais-feevale/./node_modules/react-router-dom/node_modules/mini-create-react-context/dist/esm/index.js","webpack://editais-feevale/./node_modules/react-router-dom/node_modules/react-router/esm/react-router.js","webpack://editais-feevale/./node_modules/react-router-dom/esm/react-router-dom.js","webpack://editais-feevale/./node_modules/react-router-dom/node_modules/path-to-regexp/index.js","webpack://editais-feevale/./node_modules/react-side-effect/lib/index.js","webpack://editais-feevale/./node_modules/regexp.prototype.flags/implementation.js","webpack://editais-feevale/./node_modules/regexp.prototype.flags/index.js","webpack://editais-feevale/./node_modules/regexp.prototype.flags/polyfill.js","webpack://editais-feevale/./node_modules/regexp.prototype.flags/shim.js","webpack://editais-feevale/./node_modules/tabbable/index.js","webpack://editais-feevale/./node_modules/xtend/immutable.js","webpack://editais-feevale/./node_modules/core-js/internals/a-callable.js","webpack://editais-feevale/./node_modules/core-js/internals/a-possible-prototype.js","webpack://editais-feevale/./node_modules/core-js/internals/an-object.js","webpack://editais-feevale/./node_modules/core-js/internals/array-includes.js","webpack://editais-feevale/./node_modules/core-js/internals/array-species-constructor.js","webpack://editais-feevale/./node_modules/core-js/internals/array-species-create.js","webpack://editais-feevale/./node_modules/core-js/internals/classof-raw.js","webpack://editais-feevale/./node_modules/core-js/internals/classof.js","webpack://editais-feevale/./node_modules/core-js/internals/copy-constructor-properties.js","webpack://editais-feevale/./node_modules/core-js/internals/correct-prototype-getter.js","webpack://editais-feevale/./node_modules/core-js/internals/create-non-enumerable-property.js","webpack://editais-feevale/./node_modules/core-js/internals/create-property-descriptor.js","webpack://editais-feevale/./node_modules/core-js/internals/descriptors.js","webpack://editais-feevale/./node_modules/core-js/internals/document-create-element.js","webpack://editais-feevale/./node_modules/core-js/internals/engine-user-agent.js","webpack://editais-feevale/./node_modules/core-js/internals/engine-v8-version.js","webpack://editais-feevale/./node_modules/core-js/internals/enum-bug-keys.js","webpack://editais-feevale/./node_modules/core-js/internals/export.js","webpack://editais-feevale/./node_modules/core-js/internals/fails.js","webpack://editais-feevale/./node_modules/core-js/internals/flatten-into-array.js","webpack://editais-feevale/./node_modules/core-js/internals/function-bind-context.js","webpack://editais-feevale/./node_modules/core-js/internals/function-name.js","webpack://editais-feevale/./node_modules/core-js/internals/get-built-in.js","webpack://editais-feevale/./node_modules/core-js/internals/get-iterator-method.js","webpack://editais-feevale/./node_modules/core-js/internals/get-iterator.js","webpack://editais-feevale/./node_modules/core-js/internals/get-method.js","webpack://editais-feevale/./node_modules/core-js/internals/global.js","webpack://editais-feevale/./node_modules/core-js/internals/has-own-property.js","webpack://editais-feevale/./node_modules/core-js/internals/hidden-keys.js","webpack://editais-feevale/./node_modules/core-js/internals/html.js","webpack://editais-feevale/./node_modules/core-js/internals/ie8-dom-define.js","webpack://editais-feevale/./node_modules/core-js/internals/indexed-object.js","webpack://editais-feevale/./node_modules/core-js/internals/inspect-source.js","webpack://editais-feevale/./node_modules/core-js/internals/install-error-cause.js","webpack://editais-feevale/./node_modules/core-js/internals/internal-state.js","webpack://editais-feevale/./node_modules/core-js/internals/is-array-iterator-method.js","webpack://editais-feevale/./node_modules/core-js/internals/is-array.js","webpack://editais-feevale/./node_modules/core-js/internals/is-callable.js","webpack://editais-feevale/./node_modules/core-js/internals/is-constructor.js","webpack://editais-feevale/./node_modules/core-js/internals/is-forced.js","webpack://editais-feevale/./node_modules/core-js/internals/is-object.js","webpack://editais-feevale/./node_modules/core-js/internals/is-pure.js","webpack://editais-feevale/./node_modules/core-js/internals/is-symbol.js","webpack://editais-feevale/./node_modules/core-js/internals/iterate.js","webpack://editais-feevale/./node_modules/core-js/internals/iterator-close.js","webpack://editais-feevale/./node_modules/core-js/internals/iterators.js","webpack://editais-feevale/./node_modules/core-js/internals/length-of-array-like.js","webpack://editais-feevale/./node_modules/core-js/internals/native-symbol.js","webpack://editais-feevale/./node_modules/core-js/internals/native-weak-map.js","webpack://editais-feevale/./node_modules/core-js/internals/object-create.js","webpack://editais-feevale/./node_modules/core-js/internals/object-define-properties.js","webpack://editais-feevale/./node_modules/core-js/internals/object-define-property.js","webpack://editais-feevale/./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack://editais-feevale/./node_modules/core-js/internals/object-get-own-property-names.js","webpack://editais-feevale/./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack://editais-feevale/./node_modules/core-js/internals/object-get-prototype-of.js","webpack://editais-feevale/./node_modules/core-js/internals/object-keys-internal.js","webpack://editais-feevale/./node_modules/core-js/internals/object-keys.js","webpack://editais-feevale/./node_modules/core-js/internals/object-property-is-enumerable.js","webpack://editais-feevale/./node_modules/core-js/internals/object-set-prototype-of.js","webpack://editais-feevale/./node_modules/core-js/internals/ordinary-to-primitive.js","webpack://editais-feevale/./node_modules/core-js/internals/own-keys.js","webpack://editais-feevale/./node_modules/core-js/internals/redefine.js","webpack://editais-feevale/./node_modules/core-js/internals/require-object-coercible.js","webpack://editais-feevale/./node_modules/core-js/internals/set-global.js","webpack://editais-feevale/./node_modules/core-js/internals/shared-key.js","webpack://editais-feevale/./node_modules/core-js/internals/shared-store.js","webpack://editais-feevale/./node_modules/core-js/internals/shared.js","webpack://editais-feevale/./node_modules/core-js/internals/to-absolute-index.js","webpack://editais-feevale/./node_modules/core-js/internals/to-indexed-object.js","webpack://editais-feevale/./node_modules/core-js/internals/to-integer-or-infinity.js","webpack://editais-feevale/./node_modules/core-js/internals/to-length.js","webpack://editais-feevale/./node_modules/core-js/internals/to-object.js","webpack://editais-feevale/./node_modules/core-js/internals/to-primitive.js","webpack://editais-feevale/./node_modules/core-js/internals/to-property-key.js","webpack://editais-feevale/./node_modules/core-js/internals/to-string-tag-support.js","webpack://editais-feevale/./node_modules/core-js/internals/to-string.js","webpack://editais-feevale/./node_modules/core-js/internals/try-to-string.js","webpack://editais-feevale/./node_modules/core-js/internals/uid.js","webpack://editais-feevale/./node_modules/core-js/internals/use-symbol-as-uid.js","webpack://editais-feevale/./node_modules/core-js/internals/well-known-symbol.js","webpack://editais-feevale/./node_modules/core-js/modules/es.aggregate-error.js","webpack://editais-feevale/./node_modules/core-js/modules/es.array.flat.js","webpack://editais-feevale/./node_modules/core-js/modules/es.global-this.js","webpack://editais-feevale/./node_modules/core-js/modules/esnext.aggregate-error.js","webpack://editais-feevale/./node_modules/core-js/modules/esnext.global-this.js","webpack://editais-feevale/./node_modules/react-helmet/es/Helmet.js","webpack://editais-feevale/./src/assets/images/imgs/selo.png","webpack://editais-feevale/./src/components/SEO/SEO.js","webpack://editais-feevale/./node_modules/@babel/runtime/helpers/esm/slicedToArray.js","webpack://editais-feevale/./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack://editais-feevale/./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","webpack://editais-feevale/./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack://editais-feevale/./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","webpack://editais-feevale/./node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack://editais-feevale/./node_modules/@babel/runtime/helpers/esm/createClass.js","webpack://editais-feevale/./node_modules/ssr-window/ssr-window.esm.js","webpack://editais-feevale/./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack://editais-feevale/./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","webpack://editais-feevale/./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack://editais-feevale/./node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","webpack://editais-feevale/./node_modules/@babel/runtime/helpers/esm/construct.js","webpack://editais-feevale/./node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js","webpack://editais-feevale/./node_modules/@babel/runtime/helpers/esm/isNativeFunction.js","webpack://editais-feevale/./node_modules/dom7/dom7.esm.js","webpack://editais-feevale/./node_modules/@babel/runtime/helpers/esm/inherits.js","webpack://editais-feevale/./node_modules/swiper/shared/dom.js","webpack://editais-feevale/./node_modules/swiper/shared/get-support.js","webpack://editais-feevale/./node_modules/swiper/shared/get-device.js","webpack://editais-feevale/./node_modules/swiper/shared/get-browser.js","webpack://editais-feevale/./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://editais-feevale/./node_modules/swiper/shared/utils.js","webpack://editais-feevale/./node_modules/swiper/core/events-emitter.js","webpack://editais-feevale/./node_modules/swiper/core/update/index.js","webpack://editais-feevale/./node_modules/swiper/core/update/updateSize.js","webpack://editais-feevale/./node_modules/swiper/core/update/updateSlides.js","webpack://editais-feevale/./node_modules/swiper/core/update/updateAutoHeight.js","webpack://editais-feevale/./node_modules/swiper/core/update/updateSlidesOffset.js","webpack://editais-feevale/./node_modules/swiper/core/update/updateSlidesProgress.js","webpack://editais-feevale/./node_modules/swiper/core/update/updateProgress.js","webpack://editais-feevale/./node_modules/swiper/core/update/updateSlidesClasses.js","webpack://editais-feevale/./node_modules/swiper/core/update/updateActiveIndex.js","webpack://editais-feevale/./node_modules/swiper/core/update/updateClickedSlide.js","webpack://editais-feevale/./node_modules/swiper/core/translate/index.js","webpack://editais-feevale/./node_modules/swiper/core/translate/getTranslate.js","webpack://editais-feevale/./node_modules/swiper/core/translate/setTranslate.js","webpack://editais-feevale/./node_modules/swiper/core/translate/minTranslate.js","webpack://editais-feevale/./node_modules/swiper/core/translate/maxTranslate.js","webpack://editais-feevale/./node_modules/swiper/core/translate/translateTo.js","webpack://editais-feevale/./node_modules/swiper/core/transition/transitionEmit.js","webpack://editais-feevale/./node_modules/swiper/core/transition/index.js","webpack://editais-feevale/./node_modules/swiper/core/transition/setTransition.js","webpack://editais-feevale/./node_modules/swiper/core/transition/transitionStart.js","webpack://editais-feevale/./node_modules/swiper/core/transition/transitionEnd.js","webpack://editais-feevale/./node_modules/swiper/core/slide/index.js","webpack://editais-feevale/./node_modules/swiper/core/slide/slideTo.js","webpack://editais-feevale/./node_modules/swiper/core/slide/slideToLoop.js","webpack://editais-feevale/./node_modules/swiper/core/slide/slideNext.js","webpack://editais-feevale/./node_modules/swiper/core/slide/slidePrev.js","webpack://editais-feevale/./node_modules/swiper/core/slide/slideReset.js","webpack://editais-feevale/./node_modules/swiper/core/slide/slideToClosest.js","webpack://editais-feevale/./node_modules/swiper/core/slide/slideToClickedSlide.js","webpack://editais-feevale/./node_modules/swiper/core/loop/index.js","webpack://editais-feevale/./node_modules/swiper/core/loop/loopCreate.js","webpack://editais-feevale/./node_modules/swiper/core/loop/loopFix.js","webpack://editais-feevale/./node_modules/swiper/core/loop/loopDestroy.js","webpack://editais-feevale/./node_modules/swiper/core/events/onTouchStart.js","webpack://editais-feevale/./node_modules/swiper/core/events/onTouchMove.js","webpack://editais-feevale/./node_modules/swiper/core/events/onTouchEnd.js","webpack://editais-feevale/./node_modules/swiper/core/events/onResize.js","webpack://editais-feevale/./node_modules/swiper/core/events/onClick.js","webpack://editais-feevale/./node_modules/swiper/core/events/onScroll.js","webpack://editais-feevale/./node_modules/swiper/core/events/index.js","webpack://editais-feevale/./node_modules/swiper/core/breakpoints/setBreakpoint.js","webpack://editais-feevale/./node_modules/swiper/core/breakpoints/index.js","webpack://editais-feevale/./node_modules/swiper/core/breakpoints/getBreakpoint.js","webpack://editais-feevale/./node_modules/swiper/core/classes/index.js","webpack://editais-feevale/./node_modules/swiper/core/classes/addClasses.js","webpack://editais-feevale/./node_modules/swiper/core/classes/removeClasses.js","webpack://editais-feevale/./node_modules/swiper/core/check-overflow/index.js","webpack://editais-feevale/./node_modules/swiper/core/defaults.js","webpack://editais-feevale/./node_modules/swiper/core/moduleExtendParams.js","webpack://editais-feevale/./node_modules/swiper/core/core.js","webpack://editais-feevale/./node_modules/swiper/core/grab-cursor/index.js","webpack://editais-feevale/./node_modules/swiper/core/grab-cursor/setGrabCursor.js","webpack://editais-feevale/./node_modules/swiper/core/grab-cursor/unsetGrabCursor.js","webpack://editais-feevale/./node_modules/swiper/core/images/index.js","webpack://editais-feevale/./node_modules/swiper/core/images/loadImage.js","webpack://editais-feevale/./node_modules/swiper/core/images/preloadImages.js","webpack://editais-feevale/./node_modules/swiper/core/modules/resize/resize.js","webpack://editais-feevale/./node_modules/swiper/core/modules/observer/observer.js","webpack://editais-feevale/./node_modules/swiper/shared/create-element-if-not-defined.js","webpack://editais-feevale/./node_modules/swiper/modules/navigation/navigation.js","webpack://editais-feevale/./node_modules/swiper/shared/classes-to-selector.js","webpack://editais-feevale/./node_modules/swiper/modules/pagination/pagination.js","webpack://editais-feevale/./node_modules/swiper/modules/autoplay/autoplay.js","webpack://editais-feevale/./node_modules/swiper/shared/create-shadow.js","webpack://editais-feevale/./node_modules/swiper/shared/effect-target.js","webpack://editais-feevale/./node_modules/swiper/modules/effect-coverflow/effect-coverflow.js","webpack://editais-feevale/./node_modules/swiper/shared/effect-init.js","webpack://editais-feevale/./node_modules/swiper/components-shared/utils.js","webpack://editais-feevale/./node_modules/swiper/components-shared/params-list.js","webpack://editais-feevale/./node_modules/swiper/shared/calc-looped-slides.js","webpack://editais-feevale/./node_modules/swiper/react/get-children.js","webpack://editais-feevale/./node_modules/swiper/components-shared/update-swiper.js","webpack://editais-feevale/./node_modules/swiper/react/use-isomorphic-layout-effect.js","webpack://editais-feevale/./node_modules/swiper/react/context.js","webpack://editais-feevale/./node_modules/swiper/react/swiper.js","webpack://editais-feevale/./node_modules/swiper/components-shared/get-params.js","webpack://editais-feevale/./node_modules/swiper/components-shared/mount-swiper.js","webpack://editais-feevale/./node_modules/swiper/components-shared/get-changed-params.js","webpack://editais-feevale/./node_modules/swiper/components-shared/update-on-virtual-data.js","webpack://editais-feevale/./node_modules/swiper/react/virtual.js","webpack://editais-feevale/./node_modules/swiper/react/loop.js","webpack://editais-feevale/./node_modules/swiper/react/swiper-slide.js","webpack://editais-feevale/./src/components/Noticias/Noticias.js","webpack://editais-feevale/./src/components/CardEvento/CardEvento.js","webpack://editais-feevale/./src/components/Eventos/Eventos.js","webpack://editais-feevale/./src/components/Footer/footer.js","webpack://editais-feevale/./src/assets/images/bgs/bg-1.png","webpack://editais-feevale/./src/assets/images/bgs/bg-2-l.png","webpack://editais-feevale/./src/assets/images/bgs/bg-3-l.png","webpack://editais-feevale/./src/assets/images/bgs/bg-3-r.png","webpack://editais-feevale/./src/pages/index.js","webpack://editais-feevale/./src/assets/images/bgs/bg-2-r.png","webpack://editais-feevale/./node_modules/warning/warning.js","webpack://editais-feevale/./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js"],"sourcesContent":["function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nmodule.exports = _defineProperty;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return typeof obj;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n } else {\n module.exports = _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","module.exports = require('./lib/axios');","'use strict';\n\nvar utils = require('./../utils');\n\nvar settle = require('./../core/settle');\n\nvar cookies = require('./../helpers/cookies');\n\nvar buildURL = require('./../helpers/buildURL');\n\nvar buildFullPath = require('../core/buildFullPath');\n\nvar parseHeaders = require('./../helpers/parseHeaders');\n\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\n\nvar createError = require('../core/createError');\n\nvar defaults = require('../defaults');\n\nvar Cancel = require('../cancel/Cancel');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n var responseType = config.responseType;\n var onCanceled;\n\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest(); // HTTP basic authentication\n\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true); // Set the request timeout in MS\n\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n } // Prepare the response\n\n\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !responseType || responseType === 'text' || responseType === 'json' ? request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response); // Clean up request\n\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n } // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n\n\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n } // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n\n\n setTimeout(onloadend);\n };\n } // Handle browser request cancellation (as opposed to a manual cancellation)\n\n\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request)); // Clean up request\n\n request = null;\n }; // Handle low level network errors\n\n\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request)); // Clean up request\n\n request = null;\n }; // Handle timeout\n\n\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n var transitional = config.transitional || defaults.transitional;\n\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n\n reject(createError(timeoutErrorMessage, config, transitional.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED', request)); // Clean up request\n\n request = null;\n }; // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n\n\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ? cookies.read(config.xsrfCookieName) : undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n } // Add headers to the request\n\n\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n } // Add withCredentials to request if needed\n\n\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n } // Add responseType to request if needed\n\n\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n } // Handle progress if needed\n\n\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n } // Not all browsers support upload events\n\n\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n reject(!cancel || cancel && cancel.type ? new Cancel('canceled') : cancel);\n request.abort();\n request = null;\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n if (!requestData) {\n requestData = null;\n } // Send the request\n\n\n request.send(requestData);\n });\n};","'use strict';\n\nvar utils = require('./utils');\n\nvar bind = require('./helpers/bind');\n\nvar Axios = require('./core/Axios');\n\nvar mergeConfig = require('./core/mergeConfig');\n\nvar defaults = require('./defaults');\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\n\n\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context); // Copy axios.prototype to instance\n\n utils.extend(instance, Axios.prototype, context); // Copy context to instance\n\n utils.extend(instance, context); // Factory for creating new instances\n\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n} // Create the default instance to be exported\n\n\nvar axios = createInstance(defaults); // Expose Axios class to allow class inheritance\n\naxios.Axios = Axios; // Expose Cancel & CancelToken\n\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\naxios.VERSION = require('./env/data').version; // Expose all/spread\n\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = require('./helpers/spread'); // Expose isAxiosError\n\naxios.isAxiosError = require('./helpers/isAxiosError');\nmodule.exports = axios; // Allow use of default import syntax in TypeScript\n\nmodule.exports.default = axios;","'use strict';\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\n\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\nmodule.exports = Cancel;","'use strict';\n\nvar Cancel = require('./Cancel');\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\n\n\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n var token = this; // eslint-disable-next-line func-names\n\n this.promise.then(function (cancel) {\n if (!token._listeners) return;\n var i;\n var l = token._listeners.length;\n\n for (i = 0; i < l; i++) {\n token._listeners[i](cancel);\n }\n\n token._listeners = null;\n }); // eslint-disable-next-line func-names\n\n this.promise.then = function (onfulfilled) {\n var _resolve; // eslint-disable-next-line func-names\n\n\n var promise = new Promise(function (resolve) {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\n\n\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n/**\n * Subscribe to the cancel signal\n */\n\n\nCancelToken.prototype.subscribe = function subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n};\n/**\n * Unsubscribe from the cancel signal\n */\n\n\nCancelToken.prototype.unsubscribe = function unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n\n var index = this._listeners.indexOf(listener);\n\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n};\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n\n\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};","'use strict';\n\nvar utils = require('./../utils');\n\nvar buildURL = require('../helpers/buildURL');\n\nvar InterceptorManager = require('./InterceptorManager');\n\nvar dispatchRequest = require('./dispatchRequest');\n\nvar mergeConfig = require('./mergeConfig');\n\nvar validator = require('../helpers/validator');\n\nvar validators = validator.validators;\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\n\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\n\n\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = arguments[1] || {};\n config.url = arguments[0];\n } else {\n config = config || {};\n }\n\n config = mergeConfig(this.defaults, config); // Set config.method\n\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n var transitional = config.transitional;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n } // filter out skipped interceptors\n\n\n var requestInterceptorChain = [];\n var synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n var responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n var promise;\n\n if (!synchronousRequestInterceptors) {\n var chain = [dispatchRequest, undefined];\n Array.prototype.unshift.apply(chain, requestInterceptorChain);\n chain = chain.concat(responseInterceptorChain);\n promise = Promise.resolve(config);\n\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n }\n\n var newConfig = config;\n\n while (requestInterceptorChain.length) {\n var onFulfilled = requestInterceptorChain.shift();\n var onRejected = requestInterceptorChain.shift();\n\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected(error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest(newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n while (responseInterceptorChain.length) {\n promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n}; // Provide aliases for supported request methods\n\n\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function (url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function (url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\nmodule.exports = Axios;","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n\n\nInterceptorManager.prototype.use = function use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n};\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\n\n\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\n\n\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\n\nvar combineURLs = require('../helpers/combineURLs');\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\n\n\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n\n return requestedURL;\n};","'use strict';\n\nvar enhanceError = require('./enhanceError');\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\n\n\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};","'use strict';\n\nvar utils = require('./../utils');\n\nvar transformData = require('./transformData');\n\nvar isCancel = require('../cancel/isCancel');\n\nvar defaults = require('../defaults');\n\nvar Cancel = require('../cancel/Cancel');\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\n\n\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new Cancel('canceled');\n }\n}\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\n\n\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config); // Ensure headers exist\n\n config.headers = config.headers || {}; // Transform request data\n\n config.data = transformData.call(config, config.data, config.headers, config.transformRequest); // Flatten headers\n\n config.headers = utils.merge(config.headers.common || {}, config.headers[config.method] || {}, config.headers);\n utils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch', 'common'], function cleanHeaderConfig(method) {\n delete config.headers[method];\n });\n var adapter = config.adapter || defaults.adapter;\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config); // Transform response data\n\n response.data = transformData.call(config, response.data, response.headers, config.transformResponse);\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config); // Transform response data\n\n if (reason && reason.response) {\n reason.response.data = transformData.call(config, reason.response.data, reason.response.headers, config.transformResponse);\n }\n }\n\n return Promise.reject(reason);\n });\n};","'use strict';\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\n\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n };\n\n return error;\n};","'use strict';\n\nvar utils = require('../utils');\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\n\n\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n\n return source;\n } // eslint-disable-next-line consistent-return\n\n\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n } // eslint-disable-next-line consistent-return\n\n\n function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n }\n } // eslint-disable-next-line consistent-return\n\n\n function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n } // eslint-disable-next-line consistent-return\n\n\n function mergeDirectKeys(prop) {\n if (prop in config2) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n var mergeMap = {\n 'url': valueFromConfig2,\n 'method': valueFromConfig2,\n 'data': valueFromConfig2,\n 'baseURL': defaultToConfig2,\n 'transformRequest': defaultToConfig2,\n 'transformResponse': defaultToConfig2,\n 'paramsSerializer': defaultToConfig2,\n 'timeout': defaultToConfig2,\n 'timeoutMessage': defaultToConfig2,\n 'withCredentials': defaultToConfig2,\n 'adapter': defaultToConfig2,\n 'responseType': defaultToConfig2,\n 'xsrfCookieName': defaultToConfig2,\n 'xsrfHeaderName': defaultToConfig2,\n 'onUploadProgress': defaultToConfig2,\n 'onDownloadProgress': defaultToConfig2,\n 'decompress': defaultToConfig2,\n 'maxContentLength': defaultToConfig2,\n 'maxBodyLength': defaultToConfig2,\n 'transport': defaultToConfig2,\n 'httpAgent': defaultToConfig2,\n 'httpsAgent': defaultToConfig2,\n 'cancelToken': defaultToConfig2,\n 'socketPath': defaultToConfig2,\n 'responseEncoding': defaultToConfig2,\n 'validateStatus': mergeDirectKeys\n };\n utils.forEach(Object.keys(config1).concat(Object.keys(config2)), function computeConfigValue(prop) {\n var merge = mergeMap[prop] || mergeDeepProperties;\n var configValue = merge(prop);\n utils.isUndefined(configValue) && merge !== mergeDirectKeys || (config[prop] = configValue);\n });\n return config;\n};","'use strict';\n\nvar createError = require('./createError');\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\n\n\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError('Request failed with status code ' + response.status, response.config, null, response.request, response));\n }\n};","'use strict';\n\nvar utils = require('./../utils');\n\nvar defaults = require('./../defaults');\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\n\n\nmodule.exports = function transformData(data, headers, fns) {\n var context = this || defaults;\n /*eslint no-param-reassign:0*/\n\n utils.forEach(fns, function transform(fn) {\n data = fn.call(context, data, headers);\n });\n return data;\n};","'use strict';\n\nvar utils = require('./utils');\n\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\n\nvar enhanceError = require('./core/enhanceError');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n\n return adapter;\n}\n\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nvar defaults = {\n transitional: {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n },\n adapter: getDefaultAdapter(),\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n\n if (utils.isFormData(data) || utils.isArrayBuffer(data) || utils.isBuffer(data) || utils.isStream(data) || utils.isFile(data) || utils.isBlob(data)) {\n return data;\n }\n\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n\n if (utils.isObject(data) || headers && headers['Content-Type'] === 'application/json') {\n setContentTypeIfUnset(headers, 'application/json');\n return stringifySafely(data);\n }\n\n return data;\n }],\n transformResponse: [function transformResponse(data) {\n var transitional = this.transitional || defaults.transitional;\n var silentJSONParsing = transitional && transitional.silentJSONParsing;\n var forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n var strictJSONParsing = !silentJSONParsing && this.responseType === 'json';\n\n if (strictJSONParsing || forcedJSONParsing && utils.isString(data) && data.length) {\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw enhanceError(e, this, 'E_JSON_PARSE');\n }\n\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n maxContentLength: -1,\n maxBodyLength: -1,\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n }\n};\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\nmodule.exports = defaults;","module.exports = {\n \"version\": \"0.23.0\"\n};","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n\n return fn.apply(thisArg, args);\n };\n};","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).replace(/%3A/gi, ':').replace(/%24/g, '$').replace(/%2C/gi, ',').replace(/%20/g, '+').replace(/%5B/gi, '[').replace(/%5D/gi, ']');\n}\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\n\n\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};","'use strict';\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\n\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '') : baseURL;\n};","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = utils.isStandardBrowserEnv() ? // Standard browser envs support document.cookie\nfunction standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return match ? decodeURIComponent(match[3]) : null;\n },\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n}() : // Non standard browser env (web workers, react-native) lack needed support.\nfunction nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() {\n return null;\n },\n remove: function remove() {}\n };\n}();","'use strict';\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\n\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};","'use strict';\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\n\nmodule.exports = function isAxiosError(payload) {\n return typeof payload === 'object' && payload.isAxiosError === true;\n};","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = utils.isStandardBrowserEnv() ? // Standard browser envs have full support of the APIs needed to test\n// whether the request URL is of the same origin as current location.\nfunction standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href); // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: urlParsingNode.pathname.charAt(0) === '/' ? urlParsingNode.pathname : '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n\n return function isURLSameOrigin(requestURL) {\n var parsed = utils.isString(requestURL) ? resolveURL(requestURL) : requestURL;\n return parsed.protocol === originURL.protocol && parsed.host === originURL.host;\n };\n}() : // Non standard browser envs (web workers, react-native) lack needed support.\nfunction nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n}();","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};","'use strict';\n\nvar utils = require('./../utils'); // Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\n\n\nvar ignoreDuplicateOf = ['age', 'authorization', 'content-length', 'content-type', 'etag', 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since', 'last-modified', 'location', 'max-forwards', 'proxy-authorization', 'referer', 'retry-after', 'user-agent'];\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\n\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) {\n return parsed;\n }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n return parsed;\n};","'use strict';\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\n\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};","'use strict';\n\nvar VERSION = require('../env/data').version;\n\nvar validators = {}; // eslint-disable-next-line func-names\n\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function (type, i) {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\nvar deprecatedWarnings = {};\n/**\n * Transitional option validator\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n * @returns {function}\n */\n\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n } // eslint-disable-next-line func-names\n\n\n return function (value, opt, opts) {\n if (validator === false) {\n throw new Error(formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')));\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true; // eslint-disable-next-line no-console\n\n console.warn(formatMessage(opt, ' has been deprecated since v' + version + ' and will be removed in the near future'));\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n/**\n * Assert object's properties type\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n */\n\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new TypeError('options must be an object');\n }\n\n var keys = Object.keys(options);\n var i = keys.length;\n\n while (i-- > 0) {\n var opt = keys[i];\n var validator = schema[opt];\n\n if (validator) {\n var value = options[opt];\n var result = value === undefined || validator(value, opt, options);\n\n if (result !== true) {\n throw new TypeError('option ' + opt + ' must be ' + result);\n }\n\n continue;\n }\n\n if (allowUnknown !== true) {\n throw Error('Unknown option ' + opt);\n }\n }\n}\n\nmodule.exports = {\n assertOptions: assertOptions,\n validators: validators\n};","'use strict';\n\nvar bind = require('./helpers/bind'); // utils is a library of generic helper functions non-specific to axios\n\n\nvar toString = Object.prototype.toString;\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\n\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\n\n\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\n\n\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor) && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\n\n\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\n\n\nfunction isFormData(val) {\n return typeof FormData !== 'undefined' && val instanceof FormData;\n}\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\n\n\nfunction isArrayBufferView(val) {\n var result;\n\n if (typeof ArrayBuffer !== 'undefined' && ArrayBuffer.isView) {\n result = ArrayBuffer.isView(val);\n } else {\n result = val && val.buffer && val.buffer instanceof ArrayBuffer;\n }\n\n return result;\n}\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\n\n\nfunction isString(val) {\n return typeof val === 'string';\n}\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\n\n\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\n\n\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\n\n\nfunction isPlainObject(val) {\n if (toString.call(val) !== '[object Object]') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\n\n\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\n\n\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\n\n\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\n\n\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\n\n\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\n\n\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\n\n\nfunction trim(str) {\n return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\n}\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\n\n\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' || navigator.product === 'NativeScript' || navigator.product === 'NS')) {\n return false;\n }\n\n return typeof window !== 'undefined' && typeof document !== 'undefined';\n}\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\n\n\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n } // Force an array if not already something iterable\n\n\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\n\n\nfunction merge() {\n var result = {};\n\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n\n return result;\n}\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\n\n\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\n\n\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n\n return content;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM\n};","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar callBind = require('./');\n\nvar $indexOf = callBind(GetIntrinsic('String.prototype.indexOf'));\n\nmodule.exports = function callBoundIntrinsic(name, allowMissing) {\n var intrinsic = GetIntrinsic(name, !!allowMissing);\n\n if (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) {\n return callBind(intrinsic);\n }\n\n return intrinsic;\n};","'use strict';\n\nvar bind = require('function-bind');\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $apply = GetIntrinsic('%Function.prototype.apply%');\nvar $call = GetIntrinsic('%Function.prototype.call%');\nvar $reflectApply = GetIntrinsic('%Reflect.apply%', true) || bind.call($call, $apply);\nvar $gOPD = GetIntrinsic('%Object.getOwnPropertyDescriptor%', true);\nvar $defineProperty = GetIntrinsic('%Object.defineProperty%', true);\nvar $max = GetIntrinsic('%Math.max%');\n\nif ($defineProperty) {\n try {\n $defineProperty({}, 'a', {\n value: 1\n });\n } catch (e) {\n // IE 8 has a broken defineProperty\n $defineProperty = null;\n }\n}\n\nmodule.exports = function callBind(originalFunction) {\n var func = $reflectApply(bind, $call, arguments);\n\n if ($gOPD && $defineProperty) {\n var desc = $gOPD(func, 'length');\n\n if (desc.configurable) {\n // original length, plus the receiver, minus any additional arguments (after the receiver)\n $defineProperty(func, 'length', {\n value: 1 + $max(0, originalFunction.length - (arguments.length - 1))\n });\n }\n }\n\n return func;\n};\n\nvar applyBind = function applyBind() {\n return $reflectApply(bind, $apply, arguments);\n};\n\nif ($defineProperty) {\n $defineProperty(module.exports, 'apply', {\n value: applyBind\n });\n} else {\n module.exports.apply = applyBind;\n}","var objectKeys = require('object-keys');\n\nvar isArguments = require('is-arguments');\n\nvar is = require('object-is');\n\nvar isRegex = require('is-regex');\n\nvar flags = require('regexp.prototype.flags');\n\nvar isDate = require('is-date-object');\n\nvar getTime = Date.prototype.getTime;\n\nfunction deepEqual(actual, expected, options) {\n var opts = options || {}; // 7.1. All identical values are equivalent, as determined by ===.\n\n if (opts.strict ? is(actual, expected) : actual === expected) {\n return true;\n } // 7.3. Other pairs that do not both pass typeof value == 'object', equivalence is determined by ==.\n\n\n if (!actual || !expected || typeof actual !== 'object' && typeof expected !== 'object') {\n return opts.strict ? is(actual, expected) : actual == expected;\n }\n /*\n * 7.4. For all other Object pairs, including Array objects, equivalence is\n * determined by having the same number of owned properties (as verified\n * with Object.prototype.hasOwnProperty.call), the same set of keys\n * (although not necessarily the same order), equivalent values for every\n * corresponding key, and an identical 'prototype' property. Note: this\n * accounts for both named and indexed properties on Arrays.\n */\n // eslint-disable-next-line no-use-before-define\n\n\n return objEquiv(actual, expected, opts);\n}\n\nfunction isUndefinedOrNull(value) {\n return value === null || value === undefined;\n}\n\nfunction isBuffer(x) {\n if (!x || typeof x !== 'object' || typeof x.length !== 'number') {\n return false;\n }\n\n if (typeof x.copy !== 'function' || typeof x.slice !== 'function') {\n return false;\n }\n\n if (x.length > 0 && typeof x[0] !== 'number') {\n return false;\n }\n\n return true;\n}\n\nfunction objEquiv(a, b, opts) {\n /* eslint max-statements: [2, 50] */\n var i, key;\n\n if (typeof a !== typeof b) {\n return false;\n }\n\n if (isUndefinedOrNull(a) || isUndefinedOrNull(b)) {\n return false;\n } // an identical 'prototype' property.\n\n\n if (a.prototype !== b.prototype) {\n return false;\n }\n\n if (isArguments(a) !== isArguments(b)) {\n return false;\n }\n\n var aIsRegex = isRegex(a);\n var bIsRegex = isRegex(b);\n\n if (aIsRegex !== bIsRegex) {\n return false;\n }\n\n if (aIsRegex || bIsRegex) {\n return a.source === b.source && flags(a) === flags(b);\n }\n\n if (isDate(a) && isDate(b)) {\n return getTime.call(a) === getTime.call(b);\n }\n\n var aIsBuffer = isBuffer(a);\n var bIsBuffer = isBuffer(b);\n\n if (aIsBuffer !== bIsBuffer) {\n return false;\n }\n\n if (aIsBuffer || bIsBuffer) {\n // && would work too, because both are true or both false here\n if (a.length !== b.length) {\n return false;\n }\n\n for (i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) {\n return false;\n }\n }\n\n return true;\n }\n\n if (typeof a !== typeof b) {\n return false;\n }\n\n try {\n var ka = objectKeys(a);\n var kb = objectKeys(b);\n } catch (e) {\n // happens when one is a string literal and the other isn't\n return false;\n } // having the same number of owned properties (keys incorporates hasOwnProperty)\n\n\n if (ka.length !== kb.length) {\n return false;\n } // the same set of keys (although not necessarily the same order),\n\n\n ka.sort();\n kb.sort(); // ~~~cheap key test\n\n for (i = ka.length - 1; i >= 0; i--) {\n if (ka[i] != kb[i]) {\n return false;\n }\n } // equivalent values for every corresponding key, and ~~~possibly expensive deep test\n\n\n for (i = ka.length - 1; i >= 0; i--) {\n key = ka[i];\n\n if (!deepEqual(a[key], b[key], opts)) {\n return false;\n }\n }\n\n return true;\n}\n\nmodule.exports = deepEqual;","'use strict';\n\nvar keys = require('object-keys');\n\nvar hasSymbols = typeof Symbol === 'function' && typeof Symbol('foo') === 'symbol';\nvar toStr = Object.prototype.toString;\nvar concat = Array.prototype.concat;\nvar origDefineProperty = Object.defineProperty;\n\nvar isFunction = function isFunction(fn) {\n return typeof fn === 'function' && toStr.call(fn) === '[object Function]';\n};\n\nvar arePropertyDescriptorsSupported = function arePropertyDescriptorsSupported() {\n var obj = {};\n\n try {\n origDefineProperty(obj, 'x', {\n enumerable: false,\n value: obj\n }); // eslint-disable-next-line no-unused-vars, no-restricted-syntax\n\n for (var _ in obj) {\n // jscs:ignore disallowUnusedVariables\n return false;\n }\n\n return obj.x === obj;\n } catch (e) {\n /* this is IE 8. */\n return false;\n }\n};\n\nvar supportsDescriptors = origDefineProperty && arePropertyDescriptorsSupported();\n\nvar defineProperty = function defineProperty(object, name, value, predicate) {\n if (name in object && (!isFunction(predicate) || !predicate())) {\n return;\n }\n\n if (supportsDescriptors) {\n origDefineProperty(object, name, {\n configurable: true,\n enumerable: false,\n value: value,\n writable: true\n });\n } else {\n object[name] = value;\n }\n};\n\nvar defineProperties = function defineProperties(object, map) {\n var predicates = arguments.length > 2 ? arguments[2] : {};\n var props = keys(map);\n\n if (hasSymbols) {\n props = concat.call(props, Object.getOwnPropertySymbols(map));\n }\n\n for (var i = 0; i < props.length; i += 1) {\n defineProperty(object, props[i], map[props[i]], predicates[props[i]]);\n }\n};\n\ndefineProperties.supportsDescriptors = !!supportsDescriptors;\nmodule.exports = defineProperties;","'use strict';\n\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\nvar React = require('react');\n\nvar ReactDOM = require('react-dom');\n\nvar createFocusTrap = require('focus-trap');\n\nvar FocusTrap = function (_React$Component) {\n _inherits(FocusTrap, _React$Component);\n\n function FocusTrap(props) {\n _classCallCheck(this, FocusTrap);\n\n var _this = _possibleConstructorReturn(this, (FocusTrap.__proto__ || Object.getPrototypeOf(FocusTrap)).call(this, props));\n\n _this.setFocusTrapElement = function (element) {\n _this.focusTrapElement = element;\n };\n\n if (typeof document !== 'undefined') {\n _this.previouslyFocusedElement = document.activeElement;\n }\n\n return _this;\n }\n\n _createClass(FocusTrap, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n // We need to hijack the returnFocusOnDeactivate option,\n // because React can move focus into the element before we arrived at\n // this lifecycle hook (e.g. with autoFocus inputs). So the component\n // captures the previouslyFocusedElement in componentWillMount,\n // then (optionally) returns focus to it in componentWillUnmount.\n var specifiedFocusTrapOptions = this.props.focusTrapOptions;\n var tailoredFocusTrapOptions = {\n returnFocusOnDeactivate: false\n };\n\n for (var optionName in specifiedFocusTrapOptions) {\n if (!specifiedFocusTrapOptions.hasOwnProperty(optionName)) continue;\n if (optionName === 'returnFocusOnDeactivate') continue;\n tailoredFocusTrapOptions[optionName] = specifiedFocusTrapOptions[optionName];\n }\n\n var focusTrapElementDOMNode = ReactDOM.findDOMNode(this.focusTrapElement);\n this.focusTrap = this.props._createFocusTrap(focusTrapElementDOMNode, tailoredFocusTrapOptions);\n\n if (this.props.active) {\n this.focusTrap.activate();\n }\n\n if (this.props.paused) {\n this.focusTrap.pause();\n }\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate(prevProps) {\n if (prevProps.active && !this.props.active) {\n var returnFocusOnDeactivate = this.props.focusTrapOptions.returnFocusOnDeactivate;\n var returnFocus = returnFocusOnDeactivate || false;\n var config = {\n returnFocus: returnFocus\n };\n this.focusTrap.deactivate(config);\n } else if (!prevProps.active && this.props.active) {\n this.focusTrap.activate();\n }\n\n if (prevProps.paused && !this.props.paused) {\n this.focusTrap.unpause();\n } else if (!prevProps.paused && this.props.paused) {\n this.focusTrap.pause();\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.focusTrap.deactivate();\n\n if (this.props.focusTrapOptions.returnFocusOnDeactivate !== false && this.previouslyFocusedElement && this.previouslyFocusedElement.focus) {\n this.previouslyFocusedElement.focus();\n }\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var child = React.Children.only(this.props.children);\n\n var composedRefCallback = function composedRefCallback(element) {\n _this2.setFocusTrapElement(element);\n\n if (typeof child.ref === 'function') {\n child.ref(element);\n }\n };\n\n var childWithRef = React.cloneElement(child, {\n ref: composedRefCallback\n });\n return childWithRef;\n }\n }]);\n\n return FocusTrap;\n}(React.Component);\n\nFocusTrap.defaultProps = {\n active: true,\n paused: false,\n focusTrapOptions: {},\n _createFocusTrap: createFocusTrap\n};\nmodule.exports = FocusTrap;","var tabbable = require('tabbable');\n\nvar xtend = require('xtend');\n\nvar activeFocusTraps = function () {\n var trapQueue = [];\n return {\n activateTrap: function activateTrap(trap) {\n if (trapQueue.length > 0) {\n var activeTrap = trapQueue[trapQueue.length - 1];\n\n if (activeTrap !== trap) {\n activeTrap.pause();\n }\n }\n\n var trapIndex = trapQueue.indexOf(trap);\n\n if (trapIndex === -1) {\n trapQueue.push(trap);\n } else {\n // move this existing trap to the front of the queue\n trapQueue.splice(trapIndex, 1);\n trapQueue.push(trap);\n }\n },\n deactivateTrap: function deactivateTrap(trap) {\n var trapIndex = trapQueue.indexOf(trap);\n\n if (trapIndex !== -1) {\n trapQueue.splice(trapIndex, 1);\n }\n\n if (trapQueue.length > 0) {\n trapQueue[trapQueue.length - 1].unpause();\n }\n }\n };\n}();\n\nfunction focusTrap(element, userOptions) {\n var doc = document;\n var container = typeof element === 'string' ? doc.querySelector(element) : element;\n var config = xtend({\n returnFocusOnDeactivate: true,\n escapeDeactivates: true\n }, userOptions);\n var state = {\n firstTabbableNode: null,\n lastTabbableNode: null,\n nodeFocusedBeforeActivation: null,\n mostRecentlyFocusedNode: null,\n active: false,\n paused: false\n };\n var trap = {\n activate: activate,\n deactivate: deactivate,\n pause: pause,\n unpause: unpause\n };\n return trap;\n\n function activate(activateOptions) {\n if (state.active) return;\n updateTabbableNodes();\n state.active = true;\n state.paused = false;\n state.nodeFocusedBeforeActivation = doc.activeElement;\n var onActivate = activateOptions && activateOptions.onActivate ? activateOptions.onActivate : config.onActivate;\n\n if (onActivate) {\n onActivate();\n }\n\n addListeners();\n return trap;\n }\n\n function deactivate(deactivateOptions) {\n if (!state.active) return;\n removeListeners();\n state.active = false;\n state.paused = false;\n activeFocusTraps.deactivateTrap(trap);\n var onDeactivate = deactivateOptions && deactivateOptions.onDeactivate !== undefined ? deactivateOptions.onDeactivate : config.onDeactivate;\n\n if (onDeactivate) {\n onDeactivate();\n }\n\n var returnFocus = deactivateOptions && deactivateOptions.returnFocus !== undefined ? deactivateOptions.returnFocus : config.returnFocusOnDeactivate;\n\n if (returnFocus) {\n delay(function () {\n tryFocus(state.nodeFocusedBeforeActivation);\n });\n }\n\n return trap;\n }\n\n function pause() {\n if (state.paused || !state.active) return;\n state.paused = true;\n removeListeners();\n }\n\n function unpause() {\n if (!state.paused || !state.active) return;\n state.paused = false;\n addListeners();\n }\n\n function addListeners() {\n if (!state.active) return; // There can be only one listening focus trap at a time\n\n activeFocusTraps.activateTrap(trap);\n updateTabbableNodes(); // Delay ensures that the focused element doesn't capture the event\n // that caused the focus trap activation.\n\n delay(function () {\n tryFocus(getInitialFocusNode());\n });\n doc.addEventListener('focusin', checkFocusIn, true);\n doc.addEventListener('mousedown', checkPointerDown, true);\n doc.addEventListener('touchstart', checkPointerDown, true);\n doc.addEventListener('click', checkClick, true);\n doc.addEventListener('keydown', checkKey, true);\n return trap;\n }\n\n function removeListeners() {\n if (!state.active) return;\n doc.removeEventListener('focusin', checkFocusIn, true);\n doc.removeEventListener('mousedown', checkPointerDown, true);\n doc.removeEventListener('touchstart', checkPointerDown, true);\n doc.removeEventListener('click', checkClick, true);\n doc.removeEventListener('keydown', checkKey, true);\n return trap;\n }\n\n function getNodeForOption(optionName) {\n var optionValue = config[optionName];\n var node = optionValue;\n\n if (!optionValue) {\n return null;\n }\n\n if (typeof optionValue === 'string') {\n node = doc.querySelector(optionValue);\n\n if (!node) {\n throw new Error('`' + optionName + '` refers to no known node');\n }\n }\n\n if (typeof optionValue === 'function') {\n node = optionValue();\n\n if (!node) {\n throw new Error('`' + optionName + '` did not return a node');\n }\n }\n\n return node;\n }\n\n function getInitialFocusNode() {\n var node;\n\n if (getNodeForOption('initialFocus') !== null) {\n node = getNodeForOption('initialFocus');\n } else if (container.contains(doc.activeElement)) {\n node = doc.activeElement;\n } else {\n node = state.firstTabbableNode || getNodeForOption('fallbackFocus');\n }\n\n if (!node) {\n throw new Error(\"You can't have a focus-trap without at least one focusable element\");\n }\n\n return node;\n } // This needs to be done on mousedown and touchstart instead of click\n // so that it precedes the focus event.\n\n\n function checkPointerDown(e) {\n if (container.contains(e.target)) return;\n\n if (config.clickOutsideDeactivates) {\n deactivate({\n returnFocus: !tabbable.isFocusable(e.target)\n });\n } else {\n e.preventDefault();\n }\n } // In case focus escapes the trap for some strange reason, pull it back in.\n\n\n function checkFocusIn(e) {\n // In Firefox when you Tab out of an iframe the Document is briefly focused.\n if (container.contains(e.target) || e.target instanceof Document) {\n return;\n }\n\n e.stopImmediatePropagation();\n tryFocus(state.mostRecentlyFocusedNode || getInitialFocusNode());\n }\n\n function checkKey(e) {\n if (config.escapeDeactivates !== false && isEscapeEvent(e)) {\n e.preventDefault();\n deactivate();\n return;\n }\n\n if (isTabEvent(e)) {\n checkTab(e);\n return;\n }\n } // Hijack Tab events on the first and last focusable nodes of the trap,\n // in order to prevent focus from escaping. If it escapes for even a\n // moment it can end up scrolling the page and causing confusion so we\n // kind of need to capture the action at the keydown phase.\n\n\n function checkTab(e) {\n updateTabbableNodes();\n\n if (e.shiftKey && e.target === state.firstTabbableNode) {\n e.preventDefault();\n tryFocus(state.lastTabbableNode);\n return;\n }\n\n if (!e.shiftKey && e.target === state.lastTabbableNode) {\n e.preventDefault();\n tryFocus(state.firstTabbableNode);\n return;\n }\n }\n\n function checkClick(e) {\n if (config.clickOutsideDeactivates) return;\n if (container.contains(e.target)) return;\n e.preventDefault();\n e.stopImmediatePropagation();\n }\n\n function updateTabbableNodes() {\n var tabbableNodes = tabbable(container);\n state.firstTabbableNode = tabbableNodes[0] || getInitialFocusNode();\n state.lastTabbableNode = tabbableNodes[tabbableNodes.length - 1] || getInitialFocusNode();\n }\n\n function tryFocus(node) {\n if (node === doc.activeElement) return;\n\n if (!node || !node.focus) {\n tryFocus(getInitialFocusNode());\n return;\n }\n\n node.focus();\n state.mostRecentlyFocusedNode = node;\n\n if (isSelectableInput(node)) {\n node.select();\n }\n }\n}\n\nfunction isSelectableInput(node) {\n return node.tagName && node.tagName.toLowerCase() === 'input' && typeof node.select === 'function';\n}\n\nfunction isEscapeEvent(e) {\n return e.key === 'Escape' || e.key === 'Esc' || e.keyCode === 27;\n}\n\nfunction isTabEvent(e) {\n return e.key === 'Tab' || e.keyCode === 9;\n}\n\nfunction delay(fn) {\n return setTimeout(fn, 0);\n}\n\nmodule.exports = focusTrap;","'use strict';\n/* eslint no-invalid-this: 1 */\n\nvar ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';\nvar slice = Array.prototype.slice;\nvar toStr = Object.prototype.toString;\nvar funcType = '[object Function]';\n\nmodule.exports = function bind(that) {\n var target = this;\n\n if (typeof target !== 'function' || toStr.call(target) !== funcType) {\n throw new TypeError(ERROR_MESSAGE + target);\n }\n\n var args = slice.call(arguments, 1);\n var bound;\n\n var binder = function binder() {\n if (this instanceof bound) {\n var result = target.apply(this, args.concat(slice.call(arguments)));\n\n if (Object(result) === result) {\n return result;\n }\n\n return this;\n } else {\n return target.apply(that, args.concat(slice.call(arguments)));\n }\n };\n\n var boundLength = Math.max(0, target.length - args.length);\n var boundArgs = [];\n\n for (var i = 0; i < boundLength; i++) {\n boundArgs.push('$' + i);\n }\n\n bound = Function('binder', 'return function (' + boundArgs.join(',') + '){ return binder.apply(this,arguments); }')(binder);\n\n if (target.prototype) {\n var Empty = function Empty() {};\n\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n Empty.prototype = null;\n }\n\n return bound;\n};","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = Function.prototype.bind || implementation;","'use strict';\n\nrequire(\"core-js/modules/esnext.aggregate-error.js\");\n\nvar undefined;\nvar $SyntaxError = SyntaxError;\nvar $Function = Function;\nvar $TypeError = TypeError; // eslint-disable-next-line consistent-return\n\nvar getEvalledConstructor = function getEvalledConstructor(expressionSyntax) {\n try {\n return $Function('\"use strict\"; return (' + expressionSyntax + ').constructor;')();\n } catch (e) {}\n};\n\nvar $gOPD = Object.getOwnPropertyDescriptor;\n\nif ($gOPD) {\n try {\n $gOPD({}, '');\n } catch (e) {\n $gOPD = null; // this is IE 8, which has a broken gOPD\n }\n}\n\nvar throwTypeError = function throwTypeError() {\n throw new $TypeError();\n};\n\nvar ThrowTypeError = $gOPD ? function () {\n try {\n // eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties\n arguments.callee; // IE 8 does not throw here\n\n return throwTypeError;\n } catch (calleeThrows) {\n try {\n // IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')\n return $gOPD(arguments, 'callee').get;\n } catch (gOPDthrows) {\n return throwTypeError;\n }\n }\n}() : throwTypeError;\n\nvar hasSymbols = require('has-symbols')();\n\nvar getProto = Object.getPrototypeOf || function (x) {\n return x.__proto__;\n}; // eslint-disable-line no-proto\n\n\nvar needsEval = {};\nvar TypedArray = typeof Uint8Array === 'undefined' ? undefined : getProto(Uint8Array);\nvar INTRINSICS = {\n '%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError,\n '%Array%': Array,\n '%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,\n '%ArrayIteratorPrototype%': hasSymbols ? getProto([][Symbol.iterator]()) : undefined,\n '%AsyncFromSyncIteratorPrototype%': undefined,\n '%AsyncFunction%': needsEval,\n '%AsyncGenerator%': needsEval,\n '%AsyncGeneratorFunction%': needsEval,\n '%AsyncIteratorPrototype%': needsEval,\n '%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,\n '%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt,\n '%Boolean%': Boolean,\n '%DataView%': typeof DataView === 'undefined' ? undefined : DataView,\n '%Date%': Date,\n '%decodeURI%': decodeURI,\n '%decodeURIComponent%': decodeURIComponent,\n '%encodeURI%': encodeURI,\n '%encodeURIComponent%': encodeURIComponent,\n '%Error%': Error,\n '%eval%': eval,\n // eslint-disable-line no-eval\n '%EvalError%': EvalError,\n '%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,\n '%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,\n '%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry,\n '%Function%': $Function,\n '%GeneratorFunction%': needsEval,\n '%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,\n '%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,\n '%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,\n '%isFinite%': isFinite,\n '%isNaN%': isNaN,\n '%IteratorPrototype%': hasSymbols ? getProto(getProto([][Symbol.iterator]())) : undefined,\n '%JSON%': typeof JSON === 'object' ? JSON : undefined,\n '%Map%': typeof Map === 'undefined' ? undefined : Map,\n '%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols ? undefined : getProto(new Map()[Symbol.iterator]()),\n '%Math%': Math,\n '%Number%': Number,\n '%Object%': Object,\n '%parseFloat%': parseFloat,\n '%parseInt%': parseInt,\n '%Promise%': typeof Promise === 'undefined' ? undefined : Promise,\n '%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,\n '%RangeError%': RangeError,\n '%ReferenceError%': ReferenceError,\n '%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,\n '%RegExp%': RegExp,\n '%Set%': typeof Set === 'undefined' ? undefined : Set,\n '%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols ? undefined : getProto(new Set()[Symbol.iterator]()),\n '%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,\n '%String%': String,\n '%StringIteratorPrototype%': hasSymbols ? getProto(''[Symbol.iterator]()) : undefined,\n '%Symbol%': hasSymbols ? Symbol : undefined,\n '%SyntaxError%': $SyntaxError,\n '%ThrowTypeError%': ThrowTypeError,\n '%TypedArray%': TypedArray,\n '%TypeError%': $TypeError,\n '%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,\n '%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,\n '%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,\n '%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,\n '%URIError%': URIError,\n '%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,\n '%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef,\n '%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet\n};\n\nvar doEval = function doEval(name) {\n var value;\n\n if (name === '%AsyncFunction%') {\n value = getEvalledConstructor('async function () {}');\n } else if (name === '%GeneratorFunction%') {\n value = getEvalledConstructor('function* () {}');\n } else if (name === '%AsyncGeneratorFunction%') {\n value = getEvalledConstructor('async function* () {}');\n } else if (name === '%AsyncGenerator%') {\n var fn = doEval('%AsyncGeneratorFunction%');\n\n if (fn) {\n value = fn.prototype;\n }\n } else if (name === '%AsyncIteratorPrototype%') {\n var gen = doEval('%AsyncGenerator%');\n\n if (gen) {\n value = getProto(gen.prototype);\n }\n }\n\n INTRINSICS[name] = value;\n return value;\n};\n\nvar LEGACY_ALIASES = {\n '%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'],\n '%ArrayPrototype%': ['Array', 'prototype'],\n '%ArrayProto_entries%': ['Array', 'prototype', 'entries'],\n '%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'],\n '%ArrayProto_keys%': ['Array', 'prototype', 'keys'],\n '%ArrayProto_values%': ['Array', 'prototype', 'values'],\n '%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'],\n '%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'],\n '%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'],\n '%BooleanPrototype%': ['Boolean', 'prototype'],\n '%DataViewPrototype%': ['DataView', 'prototype'],\n '%DatePrototype%': ['Date', 'prototype'],\n '%ErrorPrototype%': ['Error', 'prototype'],\n '%EvalErrorPrototype%': ['EvalError', 'prototype'],\n '%Float32ArrayPrototype%': ['Float32Array', 'prototype'],\n '%Float64ArrayPrototype%': ['Float64Array', 'prototype'],\n '%FunctionPrototype%': ['Function', 'prototype'],\n '%Generator%': ['GeneratorFunction', 'prototype'],\n '%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'],\n '%Int8ArrayPrototype%': ['Int8Array', 'prototype'],\n '%Int16ArrayPrototype%': ['Int16Array', 'prototype'],\n '%Int32ArrayPrototype%': ['Int32Array', 'prototype'],\n '%JSONParse%': ['JSON', 'parse'],\n '%JSONStringify%': ['JSON', 'stringify'],\n '%MapPrototype%': ['Map', 'prototype'],\n '%NumberPrototype%': ['Number', 'prototype'],\n '%ObjectPrototype%': ['Object', 'prototype'],\n '%ObjProto_toString%': ['Object', 'prototype', 'toString'],\n '%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'],\n '%PromisePrototype%': ['Promise', 'prototype'],\n '%PromiseProto_then%': ['Promise', 'prototype', 'then'],\n '%Promise_all%': ['Promise', 'all'],\n '%Promise_reject%': ['Promise', 'reject'],\n '%Promise_resolve%': ['Promise', 'resolve'],\n '%RangeErrorPrototype%': ['RangeError', 'prototype'],\n '%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'],\n '%RegExpPrototype%': ['RegExp', 'prototype'],\n '%SetPrototype%': ['Set', 'prototype'],\n '%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'],\n '%StringPrototype%': ['String', 'prototype'],\n '%SymbolPrototype%': ['Symbol', 'prototype'],\n '%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'],\n '%TypedArrayPrototype%': ['TypedArray', 'prototype'],\n '%TypeErrorPrototype%': ['TypeError', 'prototype'],\n '%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'],\n '%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'],\n '%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'],\n '%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'],\n '%URIErrorPrototype%': ['URIError', 'prototype'],\n '%WeakMapPrototype%': ['WeakMap', 'prototype'],\n '%WeakSetPrototype%': ['WeakSet', 'prototype']\n};\n\nvar bind = require('function-bind');\n\nvar hasOwn = require('has');\n\nvar $concat = bind.call(Function.call, Array.prototype.concat);\nvar $spliceApply = bind.call(Function.apply, Array.prototype.splice);\nvar $replace = bind.call(Function.call, String.prototype.replace);\nvar $strSlice = bind.call(Function.call, String.prototype.slice);\n/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */\n\nvar rePropName = /[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g;\nvar reEscapeChar = /\\\\(\\\\)?/g;\n/** Used to match backslashes in property paths. */\n\nvar stringToPath = function stringToPath(string) {\n var first = $strSlice(string, 0, 1);\n var last = $strSlice(string, -1);\n\n if (first === '%' && last !== '%') {\n throw new $SyntaxError('invalid intrinsic syntax, expected closing `%`');\n } else if (last === '%' && first !== '%') {\n throw new $SyntaxError('invalid intrinsic syntax, expected opening `%`');\n }\n\n var result = [];\n $replace(string, rePropName, function (match, number, quote, subString) {\n result[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match;\n });\n return result;\n};\n/* end adaptation */\n\n\nvar getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {\n var intrinsicName = name;\n var alias;\n\n if (hasOwn(LEGACY_ALIASES, intrinsicName)) {\n alias = LEGACY_ALIASES[intrinsicName];\n intrinsicName = '%' + alias[0] + '%';\n }\n\n if (hasOwn(INTRINSICS, intrinsicName)) {\n var value = INTRINSICS[intrinsicName];\n\n if (value === needsEval) {\n value = doEval(intrinsicName);\n }\n\n if (typeof value === 'undefined' && !allowMissing) {\n throw new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');\n }\n\n return {\n alias: alias,\n name: intrinsicName,\n value: value\n };\n }\n\n throw new $SyntaxError('intrinsic ' + name + ' does not exist!');\n};\n\nmodule.exports = function GetIntrinsic(name, allowMissing) {\n if (typeof name !== 'string' || name.length === 0) {\n throw new $TypeError('intrinsic name must be a non-empty string');\n }\n\n if (arguments.length > 1 && typeof allowMissing !== 'boolean') {\n throw new $TypeError('\"allowMissing\" argument must be a boolean');\n }\n\n var parts = stringToPath(name);\n var intrinsicBaseName = parts.length > 0 ? parts[0] : '';\n var intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing);\n var intrinsicRealName = intrinsic.name;\n var value = intrinsic.value;\n var skipFurtherCaching = false;\n var alias = intrinsic.alias;\n\n if (alias) {\n intrinsicBaseName = alias[0];\n $spliceApply(parts, $concat([0, 1], alias));\n }\n\n for (var i = 1, isOwn = true; i < parts.length; i += 1) {\n var part = parts[i];\n var first = $strSlice(part, 0, 1);\n var last = $strSlice(part, -1);\n\n if ((first === '\"' || first === \"'\" || first === '`' || last === '\"' || last === \"'\" || last === '`') && first !== last) {\n throw new $SyntaxError('property names with quotes must have matching quotes');\n }\n\n if (part === 'constructor' || !isOwn) {\n skipFurtherCaching = true;\n }\n\n intrinsicBaseName += '.' + part;\n intrinsicRealName = '%' + intrinsicBaseName + '%';\n\n if (hasOwn(INTRINSICS, intrinsicRealName)) {\n value = INTRINSICS[intrinsicRealName];\n } else if (value != null) {\n if (!(part in value)) {\n if (!allowMissing) {\n throw new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');\n }\n\n return void undefined;\n }\n\n if ($gOPD && i + 1 >= parts.length) {\n var desc = $gOPD(value, part);\n isOwn = !!desc; // By convention, when a data property is converted to an accessor\n // property to emulate a data property that does not suffer from\n // the override mistake, that accessor's getter is marked with\n // an `originalValue` property. Here, when we detect this, we\n // uphold the illusion by pretending to see that original data\n // property, i.e., returning the value rather than the getter\n // itself.\n\n if (isOwn && 'get' in desc && !('originalValue' in desc.get)) {\n value = desc.get;\n } else {\n value = value[part];\n }\n } else {\n isOwn = hasOwn(value, part);\n value = value[part];\n }\n\n if (isOwn && !skipFurtherCaching) {\n INTRINSICS[intrinsicRealName] = value;\n }\n }\n }\n\n return value;\n};","// @flow\n'use strict';\n\nvar key = '__global_unique_id__';\n\nmodule.exports = function () {\n return global[key] = (global[key] || 0) + 1;\n};","'use strict';\n\nvar origSymbol = typeof Symbol !== 'undefined' && Symbol;\n\nvar hasSymbolSham = require('./shams');\n\nmodule.exports = function hasNativeSymbols() {\n if (typeof origSymbol !== 'function') {\n return false;\n }\n\n if (typeof Symbol !== 'function') {\n return false;\n }\n\n if (typeof origSymbol('foo') !== 'symbol') {\n return false;\n }\n\n if (typeof Symbol('bar') !== 'symbol') {\n return false;\n }\n\n return hasSymbolSham();\n};","'use strict';\n/* eslint complexity: [2, 18], max-statements: [2, 33] */\n\nmodule.exports = function hasSymbols() {\n if (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') {\n return false;\n }\n\n if (typeof Symbol.iterator === 'symbol') {\n return true;\n }\n\n var obj = {};\n var sym = Symbol('test');\n var symObj = Object(sym);\n\n if (typeof sym === 'string') {\n return false;\n }\n\n if (Object.prototype.toString.call(sym) !== '[object Symbol]') {\n return false;\n }\n\n if (Object.prototype.toString.call(symObj) !== '[object Symbol]') {\n return false;\n } // temp disabled per https://github.com/ljharb/object.assign/issues/17\n // if (sym instanceof Symbol) { return false; }\n // temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4\n // if (!(symObj instanceof Symbol)) { return false; }\n // if (typeof Symbol.prototype.toString !== 'function') { return false; }\n // if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }\n\n\n var symVal = 42;\n obj[sym] = symVal;\n\n for (sym in obj) {\n return false;\n } // eslint-disable-line no-restricted-syntax, no-unreachable-loop\n\n\n if (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) {\n return false;\n }\n\n if (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) {\n return false;\n }\n\n var syms = Object.getOwnPropertySymbols(obj);\n\n if (syms.length !== 1 || syms[0] !== sym) {\n return false;\n }\n\n if (!Object.prototype.propertyIsEnumerable.call(obj, sym)) {\n return false;\n }\n\n if (typeof Object.getOwnPropertyDescriptor === 'function') {\n var descriptor = Object.getOwnPropertyDescriptor(obj, sym);\n\n if (descriptor.value !== symVal || descriptor.enumerable !== true) {\n return false;\n }\n }\n\n return true;\n};","'use strict';\n\nvar hasSymbols = require('has-symbols/shams');\n\nmodule.exports = function hasToStringTagShams() {\n return hasSymbols() && !!Symbol.toStringTag;\n};","'use strict';\n\nvar bind = require('function-bind');\n\nmodule.exports = bind.call(Function.call, Object.prototype.hasOwnProperty);","'use strict';\n\nvar reactIs = require('react-is');\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\n\n\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\n\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;","'use strict';\n\nvar hasToStringTag = require('has-tostringtag/shams')();\n\nvar callBound = require('call-bind/callBound');\n\nvar $toString = callBound('Object.prototype.toString');\n\nvar isStandardArguments = function isArguments(value) {\n if (hasToStringTag && value && typeof value === 'object' && Symbol.toStringTag in value) {\n return false;\n }\n\n return $toString(value) === '[object Arguments]';\n};\n\nvar isLegacyArguments = function isArguments(value) {\n if (isStandardArguments(value)) {\n return true;\n }\n\n return value !== null && typeof value === 'object' && typeof value.length === 'number' && value.length >= 0 && $toString(value) !== '[object Array]' && $toString(value.callee) === '[object Function]';\n};\n\nvar supportsStandardArguments = function () {\n return isStandardArguments(arguments);\n}();\n\nisStandardArguments.isLegacyArguments = isLegacyArguments; // for tests\n\nmodule.exports = supportsStandardArguments ? isStandardArguments : isLegacyArguments;","'use strict';\n\nvar getDay = Date.prototype.getDay;\n\nvar tryDateObject = function tryDateGetDayCall(value) {\n try {\n getDay.call(value);\n return true;\n } catch (e) {\n return false;\n }\n};\n\nvar toStr = Object.prototype.toString;\nvar dateClass = '[object Date]';\n\nvar hasToStringTag = require('has-tostringtag/shams')();\n\nmodule.exports = function isDateObject(value) {\n if (typeof value !== 'object' || value === null) {\n return false;\n }\n\n return hasToStringTag ? tryDateObject(value) : toStr.call(value) === dateClass;\n};","'use strict';\n\nvar callBound = require('call-bind/callBound');\n\nvar hasToStringTag = require('has-tostringtag/shams')();\n\nvar has;\nvar $exec;\nvar isRegexMarker;\nvar badStringifier;\n\nif (hasToStringTag) {\n has = callBound('Object.prototype.hasOwnProperty');\n $exec = callBound('RegExp.prototype.exec');\n isRegexMarker = {};\n\n var throwRegexMarker = function throwRegexMarker() {\n throw isRegexMarker;\n };\n\n badStringifier = {\n toString: throwRegexMarker,\n valueOf: throwRegexMarker\n };\n\n if (typeof Symbol.toPrimitive === 'symbol') {\n badStringifier[Symbol.toPrimitive] = throwRegexMarker;\n }\n}\n\nvar $toString = callBound('Object.prototype.toString');\nvar gOPD = Object.getOwnPropertyDescriptor;\nvar regexClass = '[object RegExp]';\nmodule.exports = hasToStringTag // eslint-disable-next-line consistent-return\n? function isRegex(value) {\n if (!value || typeof value !== 'object') {\n return false;\n }\n\n var descriptor = gOPD(value, 'lastIndex');\n var hasLastIndexDataProperty = descriptor && has(descriptor, 'value');\n\n if (!hasLastIndexDataProperty) {\n return false;\n }\n\n try {\n $exec(value, badStringifier);\n } catch (e) {\n return e === isRegexMarker;\n }\n} : function isRegex(value) {\n // In older browsers, typeof regex incorrectly returns 'function'\n if (!value || typeof value !== 'object' && typeof value !== 'function') {\n return false;\n }\n\n return $toString(value) === regexClass;\n};","module.exports = Array.isArray || function (arr) {\n return Object.prototype.toString.call(arr) == '[object Array]';\n};","/*!\n Copyright (c) 2017 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n\n/* global define */\n(function () {\n 'use strict';\n\n var hasOwn = {}.hasOwnProperty;\n\n function classNames() {\n var classes = [];\n\n for (var i = 0; i < arguments.length; i++) {\n var arg = arguments[i];\n if (!arg) continue;\n var argType = typeof arg;\n\n if (argType === 'string' || argType === 'number') {\n classes.push(arg);\n } else if (Array.isArray(arg) && arg.length) {\n var inner = classNames.apply(null, arg);\n\n if (inner) {\n classes.push(inner);\n }\n } else if (argType === 'object') {\n for (var key in arg) {\n if (hasOwn.call(arg, key) && arg[key]) {\n classes.push(key);\n }\n }\n }\n }\n\n return classes.join(' ');\n }\n\n if (typeof module !== 'undefined' && module.exports) {\n classNames.default = classNames;\n module.exports = classNames;\n } else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n // register as 'classnames', consistent with npm package name\n define('classnames', [], function () {\n return classNames;\n });\n } else {\n window.classNames = classNames;\n }\n})();","export default {\n disabled: false\n};","import React from 'react';\nexport default React.createContext(null);","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport config from './config';\nimport { timeoutsShape } from './utils/PropTypes';\nimport TransitionGroupContext from './TransitionGroupContext';\nexport var UNMOUNTED = 'unmounted';\nexport var EXITED = 'exited';\nexport var ENTERING = 'entering';\nexport var ENTERED = 'entered';\nexport var EXITING = 'exiting';\n/**\n * The Transition component lets you describe a transition from one component\n * state to another _over time_ with a simple declarative API. Most commonly\n * it's used to animate the mounting and unmounting of a component, but can also\n * be used to describe in-place transition states as well.\n *\n * ---\n *\n * **Note**: `Transition` is a platform-agnostic base component. If you're using\n * transitions in CSS, you'll probably want to use\n * [`CSSTransition`](https://reactcommunity.org/react-transition-group/css-transition)\n * instead. It inherits all the features of `Transition`, but contains\n * additional features necessary to play nice with CSS transitions (hence the\n * name of the component).\n *\n * ---\n *\n * By default the `Transition` component does not alter the behavior of the\n * component it renders, it only tracks \"enter\" and \"exit\" states for the\n * components. It's up to you to give meaning and effect to those states. For\n * example we can add styles to a component when it enters or exits:\n *\n * ```jsx\n * import { Transition } from 'react-transition-group';\n *\n * const duration = 300;\n *\n * const defaultStyle = {\n * transition: `opacity ${duration}ms ease-in-out`,\n * opacity: 0,\n * }\n *\n * const transitionStyles = {\n * entering: { opacity: 1 },\n * entered: { opacity: 1 },\n * exiting: { opacity: 0 },\n * exited: { opacity: 0 },\n * };\n *\n * const Fade = ({ in: inProp }) => (\n * \n * {state => (\n *
\n * I'm a fade Transition!\n *
\n * )}\n *
\n * );\n * ```\n *\n * There are 4 main states a Transition can be in:\n * - `'entering'`\n * - `'entered'`\n * - `'exiting'`\n * - `'exited'`\n *\n * Transition state is toggled via the `in` prop. When `true` the component\n * begins the \"Enter\" stage. During this stage, the component will shift from\n * its current transition state, to `'entering'` for the duration of the\n * transition and then to the `'entered'` stage once it's complete. Let's take\n * the following example (we'll use the\n * [useState](https://reactjs.org/docs/hooks-reference.html#usestate) hook):\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n *
\n * \n * {state => (\n * // ...\n * )}\n * \n * \n *
\n * );\n * }\n * ```\n *\n * When the button is clicked the component will shift to the `'entering'` state\n * and stay there for 500ms (the value of `timeout`) before it finally switches\n * to `'entered'`.\n *\n * When `in` is `false` the same thing happens except the state moves from\n * `'exiting'` to `'exited'`.\n */\n\nvar Transition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Transition, _React$Component);\n\n function Transition(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n var parentGroup = context; // In the context of a TransitionGroup all enters are really appears\n\n var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;\n var initialStatus;\n _this.appearStatus = null;\n\n if (props.in) {\n if (appear) {\n initialStatus = EXITED;\n _this.appearStatus = ENTERING;\n } else {\n initialStatus = ENTERED;\n }\n } else {\n if (props.unmountOnExit || props.mountOnEnter) {\n initialStatus = UNMOUNTED;\n } else {\n initialStatus = EXITED;\n }\n }\n\n _this.state = {\n status: initialStatus\n };\n _this.nextCallback = null;\n return _this;\n }\n\n Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n var nextIn = _ref.in;\n\n if (nextIn && prevState.status === UNMOUNTED) {\n return {\n status: EXITED\n };\n }\n\n return null;\n }; // getSnapshotBeforeUpdate(prevProps) {\n // let nextStatus = null\n // if (prevProps !== this.props) {\n // const { status } = this.state\n // if (this.props.in) {\n // if (status !== ENTERING && status !== ENTERED) {\n // nextStatus = ENTERING\n // }\n // } else {\n // if (status === ENTERING || status === ENTERED) {\n // nextStatus = EXITING\n // }\n // }\n // }\n // return { nextStatus }\n // }\n\n\n var _proto = Transition.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.updateStatus(true, this.appearStatus);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var nextStatus = null;\n\n if (prevProps !== this.props) {\n var status = this.state.status;\n\n if (this.props.in) {\n if (status !== ENTERING && status !== ENTERED) {\n nextStatus = ENTERING;\n }\n } else {\n if (status === ENTERING || status === ENTERED) {\n nextStatus = EXITING;\n }\n }\n }\n\n this.updateStatus(false, nextStatus);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cancelNextCallback();\n };\n\n _proto.getTimeouts = function getTimeouts() {\n var timeout = this.props.timeout;\n var exit, enter, appear;\n exit = enter = appear = timeout;\n\n if (timeout != null && typeof timeout !== 'number') {\n exit = timeout.exit;\n enter = timeout.enter; // TODO: remove fallback for next major\n\n appear = timeout.appear !== undefined ? timeout.appear : enter;\n }\n\n return {\n exit: exit,\n enter: enter,\n appear: appear\n };\n };\n\n _proto.updateStatus = function updateStatus(mounting, nextStatus) {\n if (mounting === void 0) {\n mounting = false;\n }\n\n if (nextStatus !== null) {\n // nextStatus will always be ENTERING or EXITING.\n this.cancelNextCallback();\n var node = ReactDOM.findDOMNode(this);\n\n if (nextStatus === ENTERING) {\n this.performEnter(node, mounting);\n } else {\n this.performExit(node);\n }\n } else if (this.props.unmountOnExit && this.state.status === EXITED) {\n this.setState({\n status: UNMOUNTED\n });\n }\n };\n\n _proto.performEnter = function performEnter(node, mounting) {\n var _this2 = this;\n\n var enter = this.props.enter;\n var appearing = this.context ? this.context.isMounting : mounting;\n var timeouts = this.getTimeouts();\n var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED\n // if we are mounting and running this it means appear _must_ be set\n\n if (!mounting && !enter || config.disabled) {\n this.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(node);\n });\n return;\n }\n\n this.props.onEnter(node, appearing);\n this.safeSetState({\n status: ENTERING\n }, function () {\n _this2.props.onEntering(node, appearing);\n\n _this2.onTransitionEnd(node, enterTimeout, function () {\n _this2.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(node, appearing);\n });\n });\n });\n };\n\n _proto.performExit = function performExit(node) {\n var _this3 = this;\n\n var exit = this.props.exit;\n var timeouts = this.getTimeouts(); // no exit animation skip right to EXITED\n\n if (!exit || config.disabled) {\n this.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(node);\n });\n return;\n }\n\n this.props.onExit(node);\n this.safeSetState({\n status: EXITING\n }, function () {\n _this3.props.onExiting(node);\n\n _this3.onTransitionEnd(node, timeouts.exit, function () {\n _this3.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(node);\n });\n });\n });\n };\n\n _proto.cancelNextCallback = function cancelNextCallback() {\n if (this.nextCallback !== null) {\n this.nextCallback.cancel();\n this.nextCallback = null;\n }\n };\n\n _proto.safeSetState = function safeSetState(nextState, callback) {\n // This shouldn't be necessary, but there are weird race conditions with\n // setState callbacks and unmounting in testing, so always make sure that\n // we can cancel any pending setState callbacks after we unmount.\n callback = this.setNextCallback(callback);\n this.setState(nextState, callback);\n };\n\n _proto.setNextCallback = function setNextCallback(callback) {\n var _this4 = this;\n\n var active = true;\n\n this.nextCallback = function (event) {\n if (active) {\n active = false;\n _this4.nextCallback = null;\n callback(event);\n }\n };\n\n this.nextCallback.cancel = function () {\n active = false;\n };\n\n return this.nextCallback;\n };\n\n _proto.onTransitionEnd = function onTransitionEnd(node, timeout, handler) {\n this.setNextCallback(handler);\n var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;\n\n if (!node || doesNotHaveTimeoutOrListener) {\n setTimeout(this.nextCallback, 0);\n return;\n }\n\n if (this.props.addEndListener) {\n this.props.addEndListener(node, this.nextCallback);\n }\n\n if (timeout != null) {\n setTimeout(this.nextCallback, timeout);\n }\n };\n\n _proto.render = function render() {\n var status = this.state.status;\n\n if (status === UNMOUNTED) {\n return null;\n }\n\n var _this$props = this.props,\n children = _this$props.children,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"children\"]); // filter props for Transtition\n\n\n delete childProps.in;\n delete childProps.mountOnEnter;\n delete childProps.unmountOnExit;\n delete childProps.appear;\n delete childProps.enter;\n delete childProps.exit;\n delete childProps.timeout;\n delete childProps.addEndListener;\n delete childProps.onEnter;\n delete childProps.onEntering;\n delete childProps.onEntered;\n delete childProps.onExit;\n delete childProps.onExiting;\n delete childProps.onExited;\n\n if (typeof children === 'function') {\n // allows for nested Transitions\n return React.createElement(TransitionGroupContext.Provider, {\n value: null\n }, children(status, childProps));\n }\n\n var child = React.Children.only(children);\n return (// allows for nested Transitions\n React.createElement(TransitionGroupContext.Provider, {\n value: null\n }, React.cloneElement(child, childProps))\n );\n };\n\n return Transition;\n}(React.Component);\n\nTransition.contextType = TransitionGroupContext;\n\nfunction noop() {}\n\nTransition.defaultProps = {\n in: false,\n mountOnEnter: false,\n unmountOnExit: false,\n appear: false,\n enter: true,\n exit: true,\n onEnter: noop,\n onEntering: noop,\n onEntered: noop,\n onExit: noop,\n onExiting: noop,\n onExited: noop\n};\nTransition.UNMOUNTED = 0;\nTransition.EXITED = 1;\nTransition.ENTERING = 2;\nTransition.ENTERED = 3;\nTransition.EXITING = 4;\nexport default Transition;","//! moment.js\n//! version : 2.29.1\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\n;\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : typeof define === 'function' && define.amd ? define(factory) : global.moment = factory();\n})(this, function () {\n 'use strict';\n\n var hookCallback;\n\n function hooks() {\n return hookCallback.apply(null, arguments);\n } // This is done to register the method called with moment()\n // without creating circular dependencies.\n\n\n function setHookCallback(callback) {\n hookCallback = callback;\n }\n\n function isArray(input) {\n return input instanceof Array || Object.prototype.toString.call(input) === '[object Array]';\n }\n\n function isObject(input) {\n // IE8 will treat undefined and null as object if it wasn't for\n // input != null\n return input != null && Object.prototype.toString.call(input) === '[object Object]';\n }\n\n function hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n }\n\n function isObjectEmpty(obj) {\n if (Object.getOwnPropertyNames) {\n return Object.getOwnPropertyNames(obj).length === 0;\n } else {\n var k;\n\n for (k in obj) {\n if (hasOwnProp(obj, k)) {\n return false;\n }\n }\n\n return true;\n }\n }\n\n function isUndefined(input) {\n return input === void 0;\n }\n\n function isNumber(input) {\n return typeof input === 'number' || Object.prototype.toString.call(input) === '[object Number]';\n }\n\n function isDate(input) {\n return input instanceof Date || Object.prototype.toString.call(input) === '[object Date]';\n }\n\n function map(arr, fn) {\n var res = [],\n i;\n\n for (i = 0; i < arr.length; ++i) {\n res.push(fn(arr[i], i));\n }\n\n return res;\n }\n\n function extend(a, b) {\n for (var i in b) {\n if (hasOwnProp(b, i)) {\n a[i] = b[i];\n }\n }\n\n if (hasOwnProp(b, 'toString')) {\n a.toString = b.toString;\n }\n\n if (hasOwnProp(b, 'valueOf')) {\n a.valueOf = b.valueOf;\n }\n\n return a;\n }\n\n function createUTC(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\n }\n\n function defaultParsingFlags() {\n // We need to deep clone this object.\n return {\n empty: false,\n unusedTokens: [],\n unusedInput: [],\n overflow: -2,\n charsLeftOver: 0,\n nullInput: false,\n invalidEra: null,\n invalidMonth: null,\n invalidFormat: false,\n userInvalidated: false,\n iso: false,\n parsedDateParts: [],\n era: null,\n meridiem: null,\n rfc2822: false,\n weekdayMismatch: false\n };\n }\n\n function getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n\n return m._pf;\n }\n\n var some;\n\n if (Array.prototype.some) {\n some = Array.prototype.some;\n } else {\n some = function some(fun) {\n var t = Object(this),\n len = t.length >>> 0,\n i;\n\n for (i = 0; i < len; i++) {\n if (i in t && fun.call(this, t[i], i, t)) {\n return true;\n }\n }\n\n return false;\n };\n }\n\n function isValid(m) {\n if (m._isValid == null) {\n var flags = getParsingFlags(m),\n parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n }),\n isNowValid = !isNaN(m._d.getTime()) && flags.overflow < 0 && !flags.empty && !flags.invalidEra && !flags.invalidMonth && !flags.invalidWeekday && !flags.weekdayMismatch && !flags.nullInput && !flags.invalidFormat && !flags.userInvalidated && (!flags.meridiem || flags.meridiem && parsedParts);\n\n if (m._strict) {\n isNowValid = isNowValid && flags.charsLeftOver === 0 && flags.unusedTokens.length === 0 && flags.bigHour === undefined;\n }\n\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\n m._isValid = isNowValid;\n } else {\n return isNowValid;\n }\n }\n\n return m._isValid;\n }\n\n function createInvalid(flags) {\n var m = createUTC(NaN);\n\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n } else {\n getParsingFlags(m).userInvalidated = true;\n }\n\n return m;\n } // Plugins that add properties should also add the key here (null value),\n // so we can properly clone ourselves.\n\n\n var momentProperties = hooks.momentProperties = [],\n updateInProgress = false;\n\n function copyConfig(to, from) {\n var i, prop, val;\n\n if (!isUndefined(from._isAMomentObject)) {\n to._isAMomentObject = from._isAMomentObject;\n }\n\n if (!isUndefined(from._i)) {\n to._i = from._i;\n }\n\n if (!isUndefined(from._f)) {\n to._f = from._f;\n }\n\n if (!isUndefined(from._l)) {\n to._l = from._l;\n }\n\n if (!isUndefined(from._strict)) {\n to._strict = from._strict;\n }\n\n if (!isUndefined(from._tzm)) {\n to._tzm = from._tzm;\n }\n\n if (!isUndefined(from._isUTC)) {\n to._isUTC = from._isUTC;\n }\n\n if (!isUndefined(from._offset)) {\n to._offset = from._offset;\n }\n\n if (!isUndefined(from._pf)) {\n to._pf = getParsingFlags(from);\n }\n\n if (!isUndefined(from._locale)) {\n to._locale = from._locale;\n }\n\n if (momentProperties.length > 0) {\n for (i = 0; i < momentProperties.length; i++) {\n prop = momentProperties[i];\n val = from[prop];\n\n if (!isUndefined(val)) {\n to[prop] = val;\n }\n }\n }\n\n return to;\n } // Moment prototype object\n\n\n function Moment(config) {\n copyConfig(this, config);\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n\n if (!this.isValid()) {\n this._d = new Date(NaN);\n } // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n\n\n if (updateInProgress === false) {\n updateInProgress = true;\n hooks.updateOffset(this);\n updateInProgress = false;\n }\n }\n\n function isMoment(obj) {\n return obj instanceof Moment || obj != null && obj._isAMomentObject != null;\n }\n\n function warn(msg) {\n if (hooks.suppressDeprecationWarnings === false && typeof console !== 'undefined' && console.warn) {\n console.warn('Deprecation warning: ' + msg);\n }\n }\n\n function deprecate(msg, fn) {\n var firstTime = true;\n return extend(function () {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(null, msg);\n }\n\n if (firstTime) {\n var args = [],\n arg,\n i,\n key;\n\n for (i = 0; i < arguments.length; i++) {\n arg = '';\n\n if (typeof arguments[i] === 'object') {\n arg += '\\n[' + i + '] ';\n\n for (key in arguments[0]) {\n if (hasOwnProp(arguments[0], key)) {\n arg += key + ': ' + arguments[0][key] + ', ';\n }\n }\n\n arg = arg.slice(0, -2); // Remove trailing comma and space\n } else {\n arg = arguments[i];\n }\n\n args.push(arg);\n }\n\n warn(msg + '\\nArguments: ' + Array.prototype.slice.call(args).join('') + '\\n' + new Error().stack);\n firstTime = false;\n }\n\n return fn.apply(this, arguments);\n }, fn);\n }\n\n var deprecations = {};\n\n function deprecateSimple(name, msg) {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(name, msg);\n }\n\n if (!deprecations[name]) {\n warn(msg);\n deprecations[name] = true;\n }\n }\n\n hooks.suppressDeprecationWarnings = false;\n hooks.deprecationHandler = null;\n\n function isFunction(input) {\n return typeof Function !== 'undefined' && input instanceof Function || Object.prototype.toString.call(input) === '[object Function]';\n }\n\n function set(config) {\n var prop, i;\n\n for (i in config) {\n if (hasOwnProp(config, i)) {\n prop = config[i];\n\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\n }\n }\n\n this._config = config; // Lenient ordinal parsing accepts just a number in addition to\n // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n\n this._dayOfMonthOrdinalParseLenient = new RegExp((this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) + '|' + /\\d{1,2}/.source);\n }\n\n function mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig),\n prop;\n\n for (prop in childConfig) {\n if (hasOwnProp(childConfig, prop)) {\n if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n res[prop] = {};\n extend(res[prop], parentConfig[prop]);\n extend(res[prop], childConfig[prop]);\n } else if (childConfig[prop] != null) {\n res[prop] = childConfig[prop];\n } else {\n delete res[prop];\n }\n }\n }\n\n for (prop in parentConfig) {\n if (hasOwnProp(parentConfig, prop) && !hasOwnProp(childConfig, prop) && isObject(parentConfig[prop])) {\n // make sure changes to properties don't modify parent config\n res[prop] = extend({}, res[prop]);\n }\n }\n\n return res;\n }\n\n function Locale(config) {\n if (config != null) {\n this.set(config);\n }\n }\n\n var keys;\n\n if (Object.keys) {\n keys = Object.keys;\n } else {\n keys = function keys(obj) {\n var i,\n res = [];\n\n for (i in obj) {\n if (hasOwnProp(obj, i)) {\n res.push(i);\n }\n }\n\n return res;\n };\n }\n\n var defaultCalendar = {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L'\n };\n\n function calendar(key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n }\n\n function zeroFill(number, targetLength, forceSign) {\n var absNumber = '' + Math.abs(number),\n zerosToFill = targetLength - absNumber.length,\n sign = number >= 0;\n return (sign ? forceSign ? '+' : '' : '-') + Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) + absNumber;\n }\n\n var formattingTokens = /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,\n localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,\n formatFunctions = {},\n formatTokenFunctions = {}; // token: 'M'\n // padded: ['MM', 2]\n // ordinal: 'Mo'\n // callback: function () { this.month() + 1 }\n\n function addFormatToken(token, padded, ordinal, callback) {\n var func = callback;\n\n if (typeof callback === 'string') {\n func = function func() {\n return this[callback]();\n };\n }\n\n if (token) {\n formatTokenFunctions[token] = func;\n }\n\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n };\n }\n\n if (ordinal) {\n formatTokenFunctions[ordinal] = function () {\n return this.localeData().ordinal(func.apply(this, arguments), token);\n };\n }\n }\n\n function removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n\n return input.replace(/\\\\/g, '');\n }\n\n function makeFormatFunction(format) {\n var array = format.match(formattingTokens),\n i,\n length;\n\n for (i = 0, length = array.length; i < length; i++) {\n if (formatTokenFunctions[array[i]]) {\n array[i] = formatTokenFunctions[array[i]];\n } else {\n array[i] = removeFormattingTokens(array[i]);\n }\n }\n\n return function (mom) {\n var output = '',\n i;\n\n for (i = 0; i < length; i++) {\n output += isFunction(array[i]) ? array[i].call(mom, format) : array[i];\n }\n\n return output;\n };\n } // format date using native date object\n\n\n function formatMoment(m, format) {\n if (!m.isValid()) {\n return m.localeData().invalidDate();\n }\n\n format = expandFormat(format, m.localeData());\n formatFunctions[format] = formatFunctions[format] || makeFormatFunction(format);\n return formatFunctions[format](m);\n }\n\n function expandFormat(format, locale) {\n var i = 5;\n\n function replaceLongDateFormatTokens(input) {\n return locale.longDateFormat(input) || input;\n }\n\n localFormattingTokens.lastIndex = 0;\n\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(localFormattingTokens, replaceLongDateFormatTokens);\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n }\n\n var defaultLongDateFormat = {\n LTS: 'h:mm:ss A',\n LT: 'h:mm A',\n L: 'MM/DD/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A'\n };\n\n function longDateFormat(key) {\n var format = this._longDateFormat[key],\n formatUpper = this._longDateFormat[key.toUpperCase()];\n\n if (format || !formatUpper) {\n return format;\n }\n\n this._longDateFormat[key] = formatUpper.match(formattingTokens).map(function (tok) {\n if (tok === 'MMMM' || tok === 'MM' || tok === 'DD' || tok === 'dddd') {\n return tok.slice(1);\n }\n\n return tok;\n }).join('');\n return this._longDateFormat[key];\n }\n\n var defaultInvalidDate = 'Invalid date';\n\n function invalidDate() {\n return this._invalidDate;\n }\n\n var defaultOrdinal = '%d',\n defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\n function ordinal(number) {\n return this._ordinal.replace('%d', number);\n }\n\n var defaultRelativeTime = {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n w: 'a week',\n ww: '%d weeks',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years'\n };\n\n function relativeTime(number, withoutSuffix, string, isFuture) {\n var output = this._relativeTime[string];\n return isFunction(output) ? output(number, withoutSuffix, string, isFuture) : output.replace(/%d/i, number);\n }\n\n function pastFuture(diff, output) {\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n }\n\n var aliases = {};\n\n function addUnitAlias(unit, shorthand) {\n var lowerCase = unit.toLowerCase();\n aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;\n }\n\n function normalizeUnits(units) {\n return typeof units === 'string' ? aliases[units] || aliases[units.toLowerCase()] : undefined;\n }\n\n function normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\n\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput;\n }\n\n var priorities = {};\n\n function addUnitPriority(unit, priority) {\n priorities[unit] = priority;\n }\n\n function getPrioritizedUnits(unitsObj) {\n var units = [],\n u;\n\n for (u in unitsObj) {\n if (hasOwnProp(unitsObj, u)) {\n units.push({\n unit: u,\n priority: priorities[u]\n });\n }\n }\n\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\n }\n\n function isLeapYear(year) {\n return year % 4 === 0 && year % 100 !== 0 || year % 400 === 0;\n }\n\n function absFloor(number) {\n if (number < 0) {\n // -0 -> 0\n return Math.ceil(number) || 0;\n } else {\n return Math.floor(number);\n }\n }\n\n function toInt(argumentForCoercion) {\n var coercedNumber = +argumentForCoercion,\n value = 0;\n\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n\n return value;\n }\n\n function makeGetSet(unit, keepTime) {\n return function (value) {\n if (value != null) {\n set$1(this, unit, value);\n hooks.updateOffset(this, keepTime);\n return this;\n } else {\n return get(this, unit);\n }\n };\n }\n\n function get(mom, unit) {\n return mom.isValid() ? mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]() : NaN;\n }\n\n function set$1(mom, unit, value) {\n if (mom.isValid() && !isNaN(value)) {\n if (unit === 'FullYear' && isLeapYear(mom.year()) && mom.month() === 1 && mom.date() === 29) {\n value = toInt(value);\n\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value, mom.month(), daysInMonth(value, mom.month()));\n } else {\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);\n }\n }\n } // MOMENTS\n\n\n function stringGet(units) {\n units = normalizeUnits(units);\n\n if (isFunction(this[units])) {\n return this[units]();\n }\n\n return this;\n }\n\n function stringSet(units, value) {\n if (typeof units === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units),\n i;\n\n for (i = 0; i < prioritized.length; i++) {\n this[prioritized[i].unit](units[prioritized[i].unit]);\n }\n } else {\n units = normalizeUnits(units);\n\n if (isFunction(this[units])) {\n return this[units](value);\n }\n }\n\n return this;\n }\n\n var match1 = /\\d/,\n // 0 - 9\n match2 = /\\d\\d/,\n // 00 - 99\n match3 = /\\d{3}/,\n // 000 - 999\n match4 = /\\d{4}/,\n // 0000 - 9999\n match6 = /[+-]?\\d{6}/,\n // -999999 - 999999\n match1to2 = /\\d\\d?/,\n // 0 - 99\n match3to4 = /\\d\\d\\d\\d?/,\n // 999 - 9999\n match5to6 = /\\d\\d\\d\\d\\d\\d?/,\n // 99999 - 999999\n match1to3 = /\\d{1,3}/,\n // 0 - 999\n match1to4 = /\\d{1,4}/,\n // 0 - 9999\n match1to6 = /[+-]?\\d{1,6}/,\n // -999999 - 999999\n matchUnsigned = /\\d+/,\n // 0 - inf\n matchSigned = /[+-]?\\d+/,\n // -inf - inf\n matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi,\n // +00:00 -00:00 +0000 -0000 or Z\n matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi,\n // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/,\n // 123456789 123456789.123\n // any word (or two) characters or numbers including two/three word month in arabic.\n // includes scottish gaelic two word and hyphenated months\n matchWord = /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i,\n regexes;\n regexes = {};\n\n function addRegexToken(token, regex, strictRegex) {\n regexes[token] = isFunction(regex) ? regex : function (isStrict, localeData) {\n return isStrict && strictRegex ? strictRegex : regex;\n };\n }\n\n function getParseRegexForToken(token, config) {\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n\n return regexes[token](config._strict, config._locale);\n } // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\n\n\n function unescapeFormat(s) {\n return regexEscape(s.replace('\\\\', '').replace(/\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g, function (matched, p1, p2, p3, p4) {\n return p1 || p2 || p3 || p4;\n }));\n }\n\n function regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n\n var tokens = {};\n\n function addParseToken(token, callback) {\n var i,\n func = callback;\n\n if (typeof token === 'string') {\n token = [token];\n }\n\n if (isNumber(callback)) {\n func = function func(input, array) {\n array[callback] = toInt(input);\n };\n }\n\n for (i = 0; i < token.length; i++) {\n tokens[token[i]] = func;\n }\n }\n\n function addWeekParseToken(token, callback) {\n addParseToken(token, function (input, array, config, token) {\n config._w = config._w || {};\n callback(input, config._w, config, token);\n });\n }\n\n function addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n }\n\n var YEAR = 0,\n MONTH = 1,\n DATE = 2,\n HOUR = 3,\n MINUTE = 4,\n SECOND = 5,\n MILLISECOND = 6,\n WEEK = 7,\n WEEKDAY = 8;\n\n function mod(n, x) {\n return (n % x + x) % x;\n }\n\n var indexOf;\n\n if (Array.prototype.indexOf) {\n indexOf = Array.prototype.indexOf;\n } else {\n indexOf = function indexOf(o) {\n // I know\n var i;\n\n for (i = 0; i < this.length; ++i) {\n if (this[i] === o) {\n return i;\n }\n }\n\n return -1;\n };\n }\n\n function daysInMonth(year, month) {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n\n var modMonth = mod(month, 12);\n year += (month - modMonth) / 12;\n return modMonth === 1 ? isLeapYear(year) ? 29 : 28 : 31 - modMonth % 7 % 2;\n } // FORMATTING\n\n\n addFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n });\n addFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n });\n addFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n }); // ALIASES\n\n addUnitAlias('month', 'M'); // PRIORITY\n\n addUnitPriority('month', 8); // PARSING\n\n addRegexToken('M', match1to2);\n addRegexToken('MM', match1to2, match2);\n addRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n });\n addRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n });\n addParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n });\n addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict); // if we didn't find a month name, mark the date as invalid.\n\n\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n }); // LOCALES\n\n var defaultLocaleMonths = 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\n defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/,\n defaultMonthsShortRegex = matchWord,\n defaultMonthsRegex = matchWord;\n\n function localeMonths(m, format) {\n if (!m) {\n return isArray(this._months) ? this._months : this._months['standalone'];\n }\n\n return isArray(this._months) ? this._months[m.month()] : this._months[(this._months.isFormat || MONTHS_IN_FORMAT).test(format) ? 'format' : 'standalone'][m.month()];\n }\n\n function localeMonthsShort(m, format) {\n if (!m) {\n return isArray(this._monthsShort) ? this._monthsShort : this._monthsShort['standalone'];\n }\n\n return isArray(this._monthsShort) ? this._monthsShort[m.month()] : this._monthsShort[MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'][m.month()];\n }\n\n function handleStrictParse(monthName, format, strict) {\n var i,\n ii,\n mom,\n llc = monthName.toLocaleLowerCase();\n\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n\n for (i = 0; i < 12; ++i) {\n mom = createUTC([2000, i]);\n this._shortMonthsParse[i] = this.monthsShort(mom, '').toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n\n if (ii !== -1) {\n return ii;\n }\n\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n\n if (ii !== -1) {\n return ii;\n }\n\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeMonthsParse(monthName, format, strict) {\n var i, mom, regex;\n\n if (this._monthsParseExact) {\n return handleStrictParse.call(this, monthName, format, strict);\n }\n\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n } // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n\n\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp('^' + this.months(mom, '').replace('.', '') + '$', 'i');\n this._shortMonthsParse[i] = new RegExp('^' + this.monthsShort(mom, '').replace('.', '') + '$', 'i');\n }\n\n if (!strict && !this._monthsParse[i]) {\n regex = '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n } // test the regex\n\n\n if (strict && format === 'MMMM' && this._longMonthsParse[i].test(monthName)) {\n return i;\n } else if (strict && format === 'MMM' && this._shortMonthsParse[i].test(monthName)) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n } // MOMENTS\n\n\n function setMonth(mom, value) {\n var dayOfMonth;\n\n if (!mom.isValid()) {\n // No op\n return mom;\n }\n\n if (typeof value === 'string') {\n if (/^\\d+$/.test(value)) {\n value = toInt(value);\n } else {\n value = mom.localeData().monthsParse(value); // TODO: Another silent failure?\n\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n\n dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));\n\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);\n\n return mom;\n }\n\n function getSetMonth(value) {\n if (value != null) {\n setMonth(this, value);\n hooks.updateOffset(this, true);\n return this;\n } else {\n return get(this, 'Month');\n }\n }\n\n function getDaysInMonth() {\n return daysInMonth(this.year(), this.month());\n }\n\n function monthsShortRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n\n if (isStrict) {\n return this._monthsShortStrictRegex;\n } else {\n return this._monthsShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n\n return this._monthsShortStrictRegex && isStrict ? this._monthsShortStrictRegex : this._monthsShortRegex;\n }\n }\n\n function monthsRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n\n if (isStrict) {\n return this._monthsStrictRegex;\n } else {\n return this._monthsRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n\n return this._monthsStrictRegex && isStrict ? this._monthsStrictRegex : this._monthsRegex;\n }\n }\n\n function computeMonthsParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom;\n\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortPieces.push(this.monthsShort(mom, ''));\n longPieces.push(this.months(mom, ''));\n mixedPieces.push(this.months(mom, ''));\n mixedPieces.push(this.monthsShort(mom, ''));\n } // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n\n\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n for (i = 0; i < 12; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n }\n\n for (i = 0; i < 24; i++) {\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i');\n this._monthsShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i');\n } // FORMATTING\n\n\n addFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? zeroFill(y, 4) : '+' + y;\n });\n addFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n });\n addFormatToken(0, ['YYYY', 4], 0, 'year');\n addFormatToken(0, ['YYYYY', 5], 0, 'year');\n addFormatToken(0, ['YYYYYY', 6, true], 0, 'year'); // ALIASES\n\n addUnitAlias('year', 'y'); // PRIORITIES\n\n addUnitPriority('year', 1); // PARSING\n\n addRegexToken('Y', matchSigned);\n addRegexToken('YY', match1to2, match2);\n addRegexToken('YYYY', match1to4, match4);\n addRegexToken('YYYYY', match1to6, match6);\n addRegexToken('YYYYYY', match1to6, match6);\n addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n addParseToken('YYYY', function (input, array) {\n array[YEAR] = input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n });\n addParseToken('YY', function (input, array) {\n array[YEAR] = hooks.parseTwoDigitYear(input);\n });\n addParseToken('Y', function (input, array) {\n array[YEAR] = parseInt(input, 10);\n }); // HELPERS\n\n function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n } // HOOKS\n\n\n hooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n }; // MOMENTS\n\n\n var getSetYear = makeGetSet('FullYear', true);\n\n function getIsLeapYear() {\n return isLeapYear(this.year());\n }\n\n function createDate(y, m, d, h, M, s, ms) {\n // can't just apply() to create a date:\n // https://stackoverflow.com/q/181348\n var date; // the date constructor remaps years 0-99 to 1900-1999\n\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n date = new Date(y + 400, m, d, h, M, s, ms);\n\n if (isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n } else {\n date = new Date(y, m, d, h, M, s, ms);\n }\n\n return date;\n }\n\n function createUTCDate(y) {\n var date, args; // the Date.UTC function remaps years 0-99 to 1900-1999\n\n if (y < 100 && y >= 0) {\n args = Array.prototype.slice.call(arguments); // preserve leap years using a full 400 year cycle, then reset\n\n args[0] = y + 400;\n date = new Date(Date.UTC.apply(null, args));\n\n if (isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n } else {\n date = new Date(Date.UTC.apply(null, arguments));\n }\n\n return date;\n } // start-of-first-week - start-of-year\n\n\n function firstWeekOffset(year, dow, doy) {\n var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n fwd = 7 + dow - doy,\n // first-week day local weekday -- which local weekday is fwd\n fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n return -fwdlw + fwd - 1;\n } // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\n\n\n function dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n var localWeekday = (7 + weekday - dow) % 7,\n weekOffset = firstWeekOffset(year, dow, doy),\n dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n resYear,\n resDayOfYear;\n\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n\n return {\n year: resYear,\n dayOfYear: resDayOfYear\n };\n }\n\n function weekOfYear(mom, dow, doy) {\n var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n resWeek,\n resYear;\n\n if (week < 1) {\n resYear = mom.year() - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(mom.year(), dow, doy)) {\n resWeek = week - weeksInYear(mom.year(), dow, doy);\n resYear = mom.year() + 1;\n } else {\n resYear = mom.year();\n resWeek = week;\n }\n\n return {\n week: resWeek,\n year: resYear\n };\n }\n\n function weeksInYear(year, dow, doy) {\n var weekOffset = firstWeekOffset(year, dow, doy),\n weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n } // FORMATTING\n\n\n addFormatToken('w', ['ww', 2], 'wo', 'week');\n addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek'); // ALIASES\n\n addUnitAlias('week', 'w');\n addUnitAlias('isoWeek', 'W'); // PRIORITIES\n\n addUnitPriority('week', 5);\n addUnitPriority('isoWeek', 5); // PARSING\n\n addRegexToken('w', match1to2);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2);\n addRegexToken('WW', match1to2, match2);\n addWeekParseToken(['w', 'ww', 'W', 'WW'], function (input, week, config, token) {\n week[token.substr(0, 1)] = toInt(input);\n }); // HELPERS\n // LOCALES\n\n function localeWeek(mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n }\n\n var defaultLocaleWeek = {\n dow: 0,\n // Sunday is the first day of the week.\n doy: 6 // The week that contains Jan 6th is the first week of the year.\n\n };\n\n function localeFirstDayOfWeek() {\n return this._week.dow;\n }\n\n function localeFirstDayOfYear() {\n return this._week.doy;\n } // MOMENTS\n\n\n function getSetWeek(input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n function getSetISOWeek(input) {\n var week = weekOfYear(this, 1, 4).week;\n return input == null ? week : this.add((input - week) * 7, 'd');\n } // FORMATTING\n\n\n addFormatToken('d', 0, 'do', 'day');\n addFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n });\n addFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n });\n addFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n });\n addFormatToken('e', 0, 0, 'weekday');\n addFormatToken('E', 0, 0, 'isoWeekday'); // ALIASES\n\n addUnitAlias('day', 'd');\n addUnitAlias('weekday', 'e');\n addUnitAlias('isoWeekday', 'E'); // PRIORITY\n\n addUnitPriority('day', 11);\n addUnitPriority('weekday', 11);\n addUnitPriority('isoWeekday', 11); // PARSING\n\n addRegexToken('d', match1to2);\n addRegexToken('e', match1to2);\n addRegexToken('E', match1to2);\n addRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n });\n addRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n });\n addRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n });\n addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n var weekday = config._locale.weekdaysParse(input, token, config._strict); // if we didn't get a weekday name, mark the date as invalid\n\n\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n });\n addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n }); // HELPERS\n\n function parseWeekday(input, locale) {\n if (typeof input !== 'string') {\n return input;\n }\n\n if (!isNaN(input)) {\n return parseInt(input, 10);\n }\n\n input = locale.weekdaysParse(input);\n\n if (typeof input === 'number') {\n return input;\n }\n\n return null;\n }\n\n function parseIsoWeekday(input, locale) {\n if (typeof input === 'string') {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n\n return isNaN(input) ? null : input;\n } // LOCALES\n\n\n function shiftWeekdays(ws, n) {\n return ws.slice(n, 7).concat(ws.slice(0, n));\n }\n\n var defaultLocaleWeekdays = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n defaultWeekdaysRegex = matchWord,\n defaultWeekdaysShortRegex = matchWord,\n defaultWeekdaysMinRegex = matchWord;\n\n function localeWeekdays(m, format) {\n var weekdays = isArray(this._weekdays) ? this._weekdays : this._weekdays[m && m !== true && this._weekdays.isFormat.test(format) ? 'format' : 'standalone'];\n return m === true ? shiftWeekdays(weekdays, this._week.dow) : m ? weekdays[m.day()] : weekdays;\n }\n\n function localeWeekdaysShort(m) {\n return m === true ? shiftWeekdays(this._weekdaysShort, this._week.dow) : m ? this._weekdaysShort[m.day()] : this._weekdaysShort;\n }\n\n function localeWeekdaysMin(m) {\n return m === true ? shiftWeekdays(this._weekdaysMin, this._week.dow) : m ? this._weekdaysMin[m.day()] : this._weekdaysMin;\n }\n\n function handleStrictParse$1(weekdayName, format, strict) {\n var i,\n ii,\n mom,\n llc = weekdayName.toLocaleLowerCase();\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n\n for (i = 0; i < 7; ++i) {\n mom = createUTC([2000, 1]).day(i);\n this._minWeekdaysParse[i] = this.weekdaysMin(mom, '').toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(mom, '').toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n\n if (ii !== -1) {\n return ii;\n }\n\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n\n if (ii !== -1) {\n return ii;\n }\n\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n\n if (ii !== -1) {\n return ii;\n }\n\n ii = indexOf.call(this._weekdaysParse, llc);\n\n if (ii !== -1) {\n return ii;\n }\n\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n\n if (ii !== -1) {\n return ii;\n }\n\n ii = indexOf.call(this._weekdaysParse, llc);\n\n if (ii !== -1) {\n return ii;\n }\n\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeWeekdaysParse(weekdayName, format, strict) {\n var i, mom, regex;\n\n if (this._weekdaysParseExact) {\n return handleStrictParse$1.call(this, weekdayName, format, strict);\n }\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp('^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$', 'i');\n this._shortWeekdaysParse[i] = new RegExp('^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$', 'i');\n this._minWeekdaysParse[i] = new RegExp('^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$', 'i');\n }\n\n if (!this._weekdaysParse[i]) {\n regex = '^' + this.weekdays(mom, '') + '|^' + this.weekdaysShort(mom, '') + '|^' + this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n } // test the regex\n\n\n if (strict && format === 'dddd' && this._fullWeekdaysParse[i].test(weekdayName)) {\n return i;\n } else if (strict && format === 'ddd' && this._shortWeekdaysParse[i].test(weekdayName)) {\n return i;\n } else if (strict && format === 'dd' && this._minWeekdaysParse[i].test(weekdayName)) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n } // MOMENTS\n\n\n function getSetDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();\n\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n }\n\n function getSetLocaleDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n return input == null ? weekday : this.add(input - weekday, 'd');\n }\n\n function getSetISODayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n } // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n\n if (input != null) {\n var weekday = parseIsoWeekday(input, this.localeData());\n return this.day(this.day() % 7 ? weekday : weekday - 7);\n } else {\n return this.day() || 7;\n }\n }\n\n function weekdaysRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = defaultWeekdaysRegex;\n }\n\n return this._weekdaysStrictRegex && isStrict ? this._weekdaysStrictRegex : this._weekdaysRegex;\n }\n }\n\n function weekdaysShortRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n } else {\n return this._weekdaysShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n }\n\n return this._weekdaysShortStrictRegex && isStrict ? this._weekdaysShortStrictRegex : this._weekdaysShortRegex;\n }\n }\n\n function weekdaysMinRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n } else {\n return this._weekdaysMinRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n }\n\n return this._weekdaysMinStrictRegex && isStrict ? this._weekdaysMinStrictRegex : this._weekdaysMinRegex;\n }\n }\n\n function computeWeekdaysParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var minPieces = [],\n shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n minp,\n shortp,\n longp;\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n minp = regexEscape(this.weekdaysMin(mom, ''));\n shortp = regexEscape(this.weekdaysShort(mom, ''));\n longp = regexEscape(this.weekdays(mom, ''));\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n } // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n\n\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n this._weekdaysStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i');\n this._weekdaysShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i');\n this._weekdaysMinStrictRegex = new RegExp('^(' + minPieces.join('|') + ')', 'i');\n } // FORMATTING\n\n\n function hFormat() {\n return this.hours() % 12 || 12;\n }\n\n function kFormat() {\n return this.hours() || 24;\n }\n\n addFormatToken('H', ['HH', 2], 0, 'hour');\n addFormatToken('h', ['hh', 2], 0, hFormat);\n addFormatToken('k', ['kk', 2], 0, kFormat);\n addFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n });\n addFormatToken('hmmss', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2) + zeroFill(this.seconds(), 2);\n });\n addFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n });\n addFormatToken('Hmmss', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2) + zeroFill(this.seconds(), 2);\n });\n\n function meridiem(token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(this.hours(), this.minutes(), lowercase);\n });\n }\n\n meridiem('a', true);\n meridiem('A', false); // ALIASES\n\n addUnitAlias('hour', 'h'); // PRIORITY\n\n addUnitPriority('hour', 13); // PARSING\n\n function matchMeridiem(isStrict, locale) {\n return locale._meridiemParse;\n }\n\n addRegexToken('a', matchMeridiem);\n addRegexToken('A', matchMeridiem);\n addRegexToken('H', match1to2);\n addRegexToken('h', match1to2);\n addRegexToken('k', match1to2);\n addRegexToken('HH', match1to2, match2);\n addRegexToken('hh', match1to2, match2);\n addRegexToken('kk', match1to2, match2);\n addRegexToken('hmm', match3to4);\n addRegexToken('hmmss', match5to6);\n addRegexToken('Hmm', match3to4);\n addRegexToken('Hmmss', match5to6);\n addParseToken(['H', 'HH'], HOUR);\n addParseToken(['k', 'kk'], function (input, array, config) {\n var kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n });\n addParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n });\n addParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('Hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n });\n addParseToken('Hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n }); // LOCALES\n\n function localeIsPM(input) {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return (input + '').toLowerCase().charAt(0) === 'p';\n }\n\n var defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i,\n // Setting the hour should keep the time, because the user explicitly\n // specified which hour they want. So trying to maintain the same hour (in\n // a new timezone) makes sense. Adding/subtracting hours does not follow\n // this rule.\n getSetHour = makeGetSet('Hours', true);\n\n function localeMeridiem(hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n }\n\n var baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n week: defaultLocaleWeek,\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n meridiemParse: defaultLocaleMeridiemParse\n }; // internal storage for locale config files\n\n var locales = {},\n localeFamilies = {},\n globalLocale;\n\n function commonPrefix(arr1, arr2) {\n var i,\n minl = Math.min(arr1.length, arr2.length);\n\n for (i = 0; i < minl; i += 1) {\n if (arr1[i] !== arr2[i]) {\n return i;\n }\n }\n\n return minl;\n }\n\n function normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n } // pick the locale from the array\n // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\n\n\n function chooseLocale(names) {\n var i = 0,\n j,\n next,\n locale,\n split;\n\n while (i < names.length) {\n split = normalizeLocale(names[i]).split('-');\n j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n\n if (locale) {\n return locale;\n }\n\n if (next && next.length >= j && commonPrefix(split, next) >= j - 1) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n\n j--;\n }\n\n i++;\n }\n\n return globalLocale;\n }\n\n function loadLocale(name) {\n var oldLocale = null,\n aliasedRequire; // TODO: Find a better way to register and load all the locales in Node\n\n if (locales[name] === undefined && typeof module !== 'undefined' && module && module.exports) {\n try {\n oldLocale = globalLocale._abbr;\n aliasedRequire = require;\n aliasedRequire('./locale/' + name);\n getSetGlobalLocale(oldLocale);\n } catch (e) {\n // mark as not found to avoid repeating expensive file require call causing high CPU\n // when trying to find en-US, en_US, en-us for every format call\n locales[name] = null; // null means not found\n }\n }\n\n return locales[name];\n } // This function will load locale and then set the global locale. If\n // no arguments are passed in, it will simply return the current global\n // locale key.\n\n\n function getSetGlobalLocale(key, values) {\n var data;\n\n if (key) {\n if (isUndefined(values)) {\n data = getLocale(key);\n } else {\n data = defineLocale(key, values);\n }\n\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\n } else {\n if (typeof console !== 'undefined' && console.warn) {\n //warn user if arguments are passed but the locale could not be set\n console.warn('Locale ' + key + ' not found. Did you forget to load it?');\n }\n }\n }\n\n return globalLocale._abbr;\n }\n\n function defineLocale(name, config) {\n if (config !== null) {\n var locale,\n parentConfig = baseConfig;\n config.abbr = name;\n\n if (locales[name] != null) {\n deprecateSimple('defineLocaleOverride', 'use moment.updateLocale(localeName, config) to change ' + 'an existing locale. moment.defineLocale(localeName, ' + 'config) should only be used for creating a new locale ' + 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.');\n parentConfig = locales[name]._config;\n } else if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n } else {\n locale = loadLocale(config.parentLocale);\n\n if (locale != null) {\n parentConfig = locale._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n\n localeFamilies[config.parentLocale].push({\n name: name,\n config: config\n });\n return null;\n }\n }\n }\n\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n if (localeFamilies[name]) {\n localeFamilies[name].forEach(function (x) {\n defineLocale(x.name, x.config);\n });\n } // backwards compat for now: also set the locale\n // make sure we set the locale AFTER all child locales have been\n // created, so we won't end up with the child locale set.\n\n\n getSetGlobalLocale(name);\n return locales[name];\n } else {\n // useful for testing\n delete locales[name];\n return null;\n }\n }\n\n function updateLocale(name, config) {\n if (config != null) {\n var locale,\n tmpLocale,\n parentConfig = baseConfig;\n\n if (locales[name] != null && locales[name].parentLocale != null) {\n // Update existing child locale in-place to avoid memory-leaks\n locales[name].set(mergeConfigs(locales[name]._config, config));\n } else {\n // MERGE\n tmpLocale = loadLocale(name);\n\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n\n config = mergeConfigs(parentConfig, config);\n\n if (tmpLocale == null) {\n // updateLocale is called for creating a new locale\n // Set abbr so it will have a name (getters return\n // undefined otherwise).\n config.abbr = name;\n }\n\n locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n } // backwards compat for now: also set the locale\n\n\n getSetGlobalLocale(name);\n } else {\n // pass null for config to unupdate, useful for tests\n if (locales[name] != null) {\n if (locales[name].parentLocale != null) {\n locales[name] = locales[name].parentLocale;\n\n if (name === getSetGlobalLocale()) {\n getSetGlobalLocale(name);\n }\n } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n\n return locales[name];\n } // returns locale data\n\n\n function getLocale(key) {\n var locale;\n\n if (key && key._locale && key._locale._abbr) {\n key = key._locale._abbr;\n }\n\n if (!key) {\n return globalLocale;\n }\n\n if (!isArray(key)) {\n //short-circuit everything else\n locale = loadLocale(key);\n\n if (locale) {\n return locale;\n }\n\n key = [key];\n }\n\n return chooseLocale(key);\n }\n\n function listLocales() {\n return keys(locales);\n }\n\n function checkOverflow(m) {\n var overflow,\n a = m._a;\n\n if (a && getParsingFlags(m).overflow === -2) {\n overflow = a[MONTH] < 0 || a[MONTH] > 11 ? MONTH : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH]) ? DATE : a[HOUR] < 0 || a[HOUR] > 24 || a[HOUR] === 24 && (a[MINUTE] !== 0 || a[SECOND] !== 0 || a[MILLISECOND] !== 0) ? HOUR : a[MINUTE] < 0 || a[MINUTE] > 59 ? MINUTE : a[SECOND] < 0 || a[SECOND] > 59 ? SECOND : a[MILLISECOND] < 0 || a[MILLISECOND] > 999 ? MILLISECOND : -1;\n\n if (getParsingFlags(m)._overflowDayOfYear && (overflow < YEAR || overflow > DATE)) {\n overflow = DATE;\n }\n\n if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n\n if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n\n getParsingFlags(m).overflow = overflow;\n }\n\n return m;\n } // iso 8601 regex\n // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\n\n\n var extendedIsoRegex = /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n basicIsoRegex = /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d|))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/,\n isoDates = [['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/], ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/], ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/], ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false], ['YYYY-DDD', /\\d{4}-\\d{3}/], ['YYYY-MM', /\\d{4}-\\d\\d/, false], ['YYYYYYMMDD', /[+-]\\d{10}/], ['YYYYMMDD', /\\d{8}/], ['GGGG[W]WWE', /\\d{4}W\\d{3}/], ['GGGG[W]WW', /\\d{4}W\\d{2}/, false], ['YYYYDDD', /\\d{7}/], ['YYYYMM', /\\d{6}/, false], ['YYYY', /\\d{4}/, false]],\n // iso time formats and regexes\n isoTimes = [['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/], ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/], ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/], ['HH:mm', /\\d\\d:\\d\\d/], ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/], ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/], ['HHmmss', /\\d\\d\\d\\d\\d\\d/], ['HHmm', /\\d\\d\\d\\d/], ['HH', /\\d\\d/]],\n aspNetJsonRegex = /^\\/?Date\\((-?\\d+)/i,\n // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n 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{4}))$/,\n obsOffsets = {\n UT: 0,\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 }; // date from iso format\n\n function configFromISO(config) {\n var i,\n l,\n string = config._i,\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n allowTime,\n dateFormat,\n timeFormat,\n tzFormat;\n\n if (match) {\n getParsingFlags(config).iso = true;\n\n for (i = 0, l = isoDates.length; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n\n if (dateFormat == null) {\n config._isValid = false;\n return;\n }\n\n if (match[3]) {\n for (i = 0, l = isoTimes.length; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n\n if (timeFormat == null) {\n config._isValid = false;\n return;\n }\n }\n\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n return;\n }\n\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n } else {\n config._isValid = false;\n return;\n }\n }\n\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n configFromStringAndFormat(config);\n } else {\n config._isValid = false;\n }\n }\n\n function extractFromRFC2822Strings(yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr) {\n var result = [untruncateYear(yearStr), defaultLocaleMonthsShort.indexOf(monthStr), parseInt(dayStr, 10), parseInt(hourStr, 10), parseInt(minuteStr, 10)];\n\n if (secondStr) {\n result.push(parseInt(secondStr, 10));\n }\n\n return result;\n }\n\n function untruncateYear(yearStr) {\n var year = parseInt(yearStr, 10);\n\n if (year <= 49) {\n return 2000 + year;\n } else if (year <= 999) {\n return 1900 + year;\n }\n\n return year;\n }\n\n function preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s.replace(/\\([^)]*\\)|[\\n\\t]/g, ' ').replace(/(\\s\\s+)/g, ' ').replace(/^\\s\\s*/, '').replace(/\\s\\s*$/, '');\n }\n\n function checkWeekday(weekdayStr, parsedInput, config) {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an independent day-of-week check.\n var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n weekdayActual = new Date(parsedInput[0], parsedInput[1], parsedInput[2]).getDay();\n\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n return false;\n }\n }\n\n return true;\n }\n\n function calculateOffset(obsOffset, militaryOffset, numOffset) {\n if (obsOffset) {\n return obsOffsets[obsOffset];\n } else if (militaryOffset) {\n // the only allowed military tz is Z\n return 0;\n } else {\n var hm = parseInt(numOffset, 10),\n m = hm % 100,\n h = (hm - m) / 100;\n return h * 60 + m;\n }\n } // date and time from ref 2822 format\n\n\n function configFromRFC2822(config) {\n var match = rfc2822.exec(preprocessRFC2822(config._i)),\n parsedArray;\n\n if (match) {\n parsedArray = extractFromRFC2822Strings(match[4], match[3], match[2], match[5], match[6], match[7]);\n\n if (!checkWeekday(match[1], parsedArray, config)) {\n return;\n }\n\n config._a = parsedArray;\n config._tzm = calculateOffset(match[8], match[9], match[10]);\n config._d = createUTCDate.apply(null, config._a);\n\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n getParsingFlags(config).rfc2822 = true;\n } else {\n config._isValid = false;\n }\n } // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict\n\n\n function configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n\n configFromISO(config);\n\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n configFromRFC2822(config);\n\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n if (config._strict) {\n config._isValid = false;\n } else {\n // Final attempt, use Input Fallback\n hooks.createFromInputFallback(config);\n }\n }\n\n hooks.createFromInputFallback = deprecate('value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' + 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' + 'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.', function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n }); // Pick the first defined of two or three arguments.\n\n function defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n\n if (b != null) {\n return b;\n }\n\n return c;\n }\n\n function currentDateArray(config) {\n // hooks is actually the exported moment object\n var nowValue = new Date(hooks.now());\n\n if (config._useUTC) {\n return [nowValue.getUTCFullYear(), nowValue.getUTCMonth(), nowValue.getUTCDate()];\n }\n\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n } // convert an array to a date.\n // the array should mirror the parameters below\n // note: all values past the year are optional and will default to the lowest possible value.\n // [year, month, day , hour, minute, second, millisecond]\n\n\n function configFromArray(config) {\n var i,\n date,\n input = [],\n currentDate,\n expectedWeekday,\n yearToUse;\n\n if (config._d) {\n return;\n }\n\n currentDate = currentDateArray(config); //compute day of the year from weeks and weekdays\n\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n } //if the day of the year is set, figure out what it is\n\n\n if (config._dayOfYear != null) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n if (config._dayOfYear > daysInYear(yearToUse) || config._dayOfYear === 0) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n\n date = createUTCDate(yearToUse, 0, config._dayOfYear);\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n } // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n\n\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n } // Zero out whatever was not defaulted, including time\n\n\n for (; i < 7; i++) {\n config._a[i] = input[i] = config._a[i] == null ? i === 2 ? 1 : 0 : config._a[i];\n } // Check for 24:00:00.000\n\n\n if (config._a[HOUR] === 24 && config._a[MINUTE] === 0 && config._a[SECOND] === 0 && config._a[MILLISECOND] === 0) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(null, input);\n expectedWeekday = config._useUTC ? config._d.getUTCDay() : config._d.getDay(); // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n\n if (config._nextDay) {\n config._a[HOUR] = 24;\n } // check for mismatching day of week\n\n\n if (config._w && typeof config._w.d !== 'undefined' && config._w.d !== expectedWeekday) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n }\n\n function dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek;\n w = config._w;\n\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4; // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n\n weekYear = defaults(w.GG, config._a[YEAR], weekOfYear(createLocal(), 1, 4).year);\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n curWeek = weekOfYear(createLocal(), dow, doy);\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year); // Default to current week.\n\n week = defaults(w.w, curWeek.week);\n\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from beginning of week\n weekday = w.e + dow;\n\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to beginning of week\n weekday = dow;\n }\n }\n\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n } // constant that refers to the ISO standard\n\n\n hooks.ISO_8601 = function () {}; // constant that refers to the RFC 2822 form\n\n\n hooks.RFC_2822 = function () {}; // date from string and format string\n\n\n function configFromStringAndFormat(config) {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === hooks.ISO_8601) {\n configFromISO(config);\n return;\n }\n\n if (config._f === hooks.RFC_2822) {\n configFromRFC2822(config);\n return;\n }\n\n config._a = [];\n getParsingFlags(config).empty = true; // This array is used to make a Date, either with `new Date` or `Date.UTC`\n\n var string = '' + config._i,\n i,\n parsedInput,\n tokens,\n token,\n skipped,\n stringLength = string.length,\n totalParsedInputLength = 0,\n era;\n tokens = expandFormat(config._f, config._locale).match(formattingTokens) || [];\n\n for (i = 0; i < tokens.length; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) || [])[0];\n\n if (parsedInput) {\n skipped = string.substr(0, string.indexOf(parsedInput));\n\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n\n string = string.slice(string.indexOf(parsedInput) + parsedInput.length);\n totalParsedInputLength += parsedInput.length;\n } // don't parse if it's not a known token\n\n\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n } else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n\n addTimeToArrayFromToken(token, parsedInput, config);\n } else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n } // add remaining unparsed input length to the string\n\n\n getParsingFlags(config).charsLeftOver = stringLength - totalParsedInputLength;\n\n if (string.length > 0) {\n getParsingFlags(config).unusedInput.push(string);\n } // clear _12h flag if hour is <= 12\n\n\n if (config._a[HOUR] <= 12 && getParsingFlags(config).bigHour === true && config._a[HOUR] > 0) {\n getParsingFlags(config).bigHour = undefined;\n }\n\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem; // handle meridiem\n\n config._a[HOUR] = meridiemFixWrap(config._locale, config._a[HOUR], config._meridiem); // handle era\n\n era = getParsingFlags(config).era;\n\n if (era !== null) {\n config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]);\n }\n\n configFromArray(config);\n checkOverflow(config);\n }\n\n function meridiemFixWrap(locale, hour, meridiem) {\n var isPm;\n\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n } else if (locale.isPM != null) {\n // Fallback\n isPm = locale.isPM(meridiem);\n\n if (isPm && hour < 12) {\n hour += 12;\n }\n\n if (!isPm && hour === 12) {\n hour = 0;\n }\n\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n } // date from string and array of format strings\n\n\n function configFromStringAndArray(config) {\n var tempConfig,\n bestMoment,\n scoreToBeat,\n i,\n currentScore,\n validFormatFound,\n bestFormatIsValid = false;\n\n if (config._f.length === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < config._f.length; i++) {\n currentScore = 0;\n validFormatFound = false;\n tempConfig = copyConfig({}, config);\n\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (isValid(tempConfig)) {\n validFormatFound = true;\n } // if there is any input that was not parsed add a penalty for that format\n\n\n currentScore += getParsingFlags(tempConfig).charsLeftOver; //or tokens\n\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n getParsingFlags(tempConfig).score = currentScore;\n\n if (!bestFormatIsValid) {\n if (scoreToBeat == null || currentScore < scoreToBeat || validFormatFound) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n\n if (validFormatFound) {\n bestFormatIsValid = true;\n }\n }\n } else {\n if (currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n }\n\n extend(config, bestMoment || tempConfig);\n }\n\n function configFromObject(config) {\n if (config._d) {\n return;\n }\n\n var i = normalizeObjectUnits(config._i),\n dayOrDate = i.day === undefined ? i.date : i.day;\n config._a = map([i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond], function (obj) {\n return obj && parseInt(obj, 10);\n });\n configFromArray(config);\n }\n\n function createFromConfig(config) {\n var res = new Moment(checkOverflow(prepareConfig(config)));\n\n if (res._nextDay) {\n // Adding is smart enough around DST\n res.add(1, 'd');\n res._nextDay = undefined;\n }\n\n return res;\n }\n\n function prepareConfig(config) {\n var input = config._i,\n format = config._f;\n config._locale = config._locale || getLocale(config._l);\n\n if (input === null || format === undefined && input === '') {\n return createInvalid({\n nullInput: true\n });\n }\n\n if (typeof input === 'string') {\n config._i = input = config._locale.preparse(input);\n }\n\n if (isMoment(input)) {\n return new Moment(checkOverflow(input));\n } else if (isDate(input)) {\n config._d = input;\n } else if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n\n if (!isValid(config)) {\n config._d = null;\n }\n\n return config;\n }\n\n function configFromInput(config) {\n var input = config._i;\n\n if (isUndefined(input)) {\n config._d = new Date(hooks.now());\n } else if (isDate(input)) {\n config._d = new Date(input.valueOf());\n } else if (typeof input === 'string') {\n configFromString(config);\n } else if (isArray(input)) {\n config._a = map(input.slice(0), function (obj) {\n return parseInt(obj, 10);\n });\n configFromArray(config);\n } else if (isObject(input)) {\n configFromObject(config);\n } else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n } else {\n hooks.createFromInputFallback(config);\n }\n }\n\n function createLocalOrUTC(input, format, locale, strict, isUTC) {\n var c = {};\n\n if (format === true || format === false) {\n strict = format;\n format = undefined;\n }\n\n if (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n\n if (isObject(input) && isObjectEmpty(input) || isArray(input) && input.length === 0) {\n input = undefined;\n } // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n\n\n c._isAMomentObject = true;\n c._useUTC = c._isUTC = isUTC;\n c._l = locale;\n c._i = input;\n c._f = format;\n c._strict = strict;\n return createFromConfig(c);\n }\n\n function createLocal(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n }\n\n var prototypeMin = deprecate('moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/', function () {\n var other = createLocal.apply(null, arguments);\n\n if (this.isValid() && other.isValid()) {\n return other < this ? this : other;\n } else {\n return createInvalid();\n }\n }),\n prototypeMax = deprecate('moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/', function () {\n var other = createLocal.apply(null, arguments);\n\n if (this.isValid() && other.isValid()) {\n return other > this ? this : other;\n } else {\n return createInvalid();\n }\n }); // Pick a moment m from moments so that m[fn](other) is true for all\n // other. This relies on the function fn to be transitive.\n //\n // moments should either be an array of moment objects or an array, whose\n // first element is an array of moment objects.\n\n function pickBy(fn, moments) {\n var res, i;\n\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n\n if (!moments.length) {\n return createLocal();\n }\n\n res = moments[0];\n\n for (i = 1; i < moments.length; ++i) {\n if (!moments[i].isValid() || moments[i][fn](res)) {\n res = moments[i];\n }\n }\n\n return res;\n } // TODO: Use [].sort instead?\n\n\n function min() {\n var args = [].slice.call(arguments, 0);\n return pickBy('isBefore', args);\n }\n\n function max() {\n var args = [].slice.call(arguments, 0);\n return pickBy('isAfter', args);\n }\n\n var now = function now() {\n return Date.now ? Date.now() : +new Date();\n };\n\n var ordering = ['year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second', 'millisecond'];\n\n function isDurationValid(m) {\n var key,\n unitHasDecimal = false,\n i;\n\n for (key in m) {\n if (hasOwnProp(m, key) && !(indexOf.call(ordering, key) !== -1 && (m[key] == null || !isNaN(m[key])))) {\n return false;\n }\n }\n\n for (i = 0; i < ordering.length; ++i) {\n if (m[ordering[i]]) {\n if (unitHasDecimal) {\n return false; // only allow non-integers for smallest unit\n }\n\n if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n unitHasDecimal = true;\n }\n }\n }\n\n return true;\n }\n\n function isValid$1() {\n return this._isValid;\n }\n\n function createInvalid$1() {\n return createDuration(NaN);\n }\n\n function Duration(duration) {\n var normalizedInput = normalizeObjectUnits(duration),\n years = normalizedInput.year || 0,\n quarters = normalizedInput.quarter || 0,\n months = normalizedInput.month || 0,\n weeks = normalizedInput.week || normalizedInput.isoWeek || 0,\n days = normalizedInput.day || 0,\n hours = normalizedInput.hour || 0,\n minutes = normalizedInput.minute || 0,\n seconds = normalizedInput.second || 0,\n milliseconds = normalizedInput.millisecond || 0;\n this._isValid = isDurationValid(normalizedInput); // representation for dateAddRemove\n\n this._milliseconds = +milliseconds + seconds * 1e3 + // 1000\n minutes * 6e4 + // 1000 * 60\n hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n\n this._days = +days + weeks * 7; // It is impossible to translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n\n this._months = +months + quarters * 3 + years * 12;\n this._data = {};\n this._locale = getLocale();\n\n this._bubble();\n }\n\n function isDuration(obj) {\n return obj instanceof Duration;\n }\n\n function absRound(number) {\n if (number < 0) {\n return Math.round(-1 * number) * -1;\n } else {\n return Math.round(number);\n }\n } // compare two arrays, return the number of differences\n\n\n function compareArrays(array1, array2, dontConvert) {\n var len = Math.min(array1.length, array2.length),\n lengthDiff = Math.abs(array1.length - array2.length),\n diffs = 0,\n i;\n\n for (i = 0; i < len; i++) {\n if (dontConvert && array1[i] !== array2[i] || !dontConvert && toInt(array1[i]) !== toInt(array2[i])) {\n diffs++;\n }\n }\n\n return diffs + lengthDiff;\n } // FORMATTING\n\n\n function offset(token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset(),\n sign = '+';\n\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n\n return sign + zeroFill(~~(offset / 60), 2) + separator + zeroFill(~~offset % 60, 2);\n });\n }\n\n offset('Z', ':');\n offset('ZZ', ''); // PARSING\n\n addRegexToken('Z', matchShortOffset);\n addRegexToken('ZZ', matchShortOffset);\n addParseToken(['Z', 'ZZ'], function (input, array, config) {\n config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\n }); // HELPERS\n // timezone chunker\n // '+10:00' > ['10', '00']\n // '-1530' > ['-15', '30']\n\n var chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\n function offsetFromString(matcher, string) {\n var matches = (string || '').match(matcher),\n chunk,\n parts,\n minutes;\n\n if (matches === null) {\n return null;\n }\n\n chunk = matches[matches.length - 1] || [];\n parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n minutes = +(parts[1] * 60) + toInt(parts[2]);\n return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes;\n } // Return a moment from input, that is local/utc/zone equivalent to model.\n\n\n function cloneWithOffset(input, model) {\n var res, diff;\n\n if (model._isUTC) {\n res = model.clone();\n diff = (isMoment(input) || isDate(input) ? input.valueOf() : createLocal(input).valueOf()) - res.valueOf(); // Use low-level api, because this fn is low-level api.\n\n res._d.setTime(res._d.valueOf() + diff);\n\n hooks.updateOffset(res, false);\n return res;\n } else {\n return createLocal(input).local();\n }\n }\n\n function getDateOffset(m) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(m._d.getTimezoneOffset());\n } // HOOKS\n // This function will be called whenever a moment is mutated.\n // It is intended to keep the offset in sync with the timezone.\n\n\n hooks.updateOffset = function () {}; // MOMENTS\n // keepLocalTime = true means only change the timezone, without\n // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n // +0200, so we adjust the time as needed, to be valid.\n //\n // Keeping the time actually adds/subtracts (one hour)\n // from the actual represented time. That is why we call updateOffset\n // a second time. In case it wants us to change the offset again\n // _changeInProgress == true case, then we have to adjust, because\n // there is no such time in the given timezone.\n\n\n function getSetOffset(input, keepLocalTime, keepMinutes) {\n var offset = this._offset || 0,\n localAdjust;\n\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(matchShortOffset, input);\n\n if (input === null) {\n return this;\n }\n } else if (Math.abs(input) < 16 && !keepMinutes) {\n input = input * 60;\n }\n\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n\n this._offset = input;\n this._isUTC = true;\n\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n addSubtract(this, createDuration(input - offset, 'm'), 1, false);\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\n }\n\n return this;\n } else {\n return this._isUTC ? offset : getDateOffset(this);\n }\n }\n\n function getSetZone(input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n return this;\n } else {\n return -this.utcOffset();\n }\n }\n\n function setOffsetToUTC(keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n }\n\n function setOffsetToLocal(keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n\n return this;\n }\n\n function setOffsetToParsedOffset() {\n if (this._tzm != null) {\n this.utcOffset(this._tzm, false, true);\n } else if (typeof this._i === 'string') {\n var tZone = offsetFromString(matchOffset, this._i);\n\n if (tZone != null) {\n this.utcOffset(tZone);\n } else {\n this.utcOffset(0, true);\n }\n }\n\n return this;\n }\n\n function hasAlignedHourOffset(input) {\n if (!this.isValid()) {\n return false;\n }\n\n input = input ? createLocal(input).utcOffset() : 0;\n return (this.utcOffset() - input) % 60 === 0;\n }\n\n function isDaylightSavingTime() {\n return this.utcOffset() > this.clone().month(0).utcOffset() || this.utcOffset() > this.clone().month(5).utcOffset();\n }\n\n function isDaylightSavingTimeShifted() {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n var c = {},\n other;\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted = this.isValid() && compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n }\n\n function isLocal() {\n return this.isValid() ? !this._isUTC : false;\n }\n\n function isUtcOffset() {\n return this.isValid() ? this._isUTC : false;\n }\n\n function isUtc() {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n } // ASP.NET json date format regex\n\n\n var aspNetRegex = /^(-|\\+)?(?:(\\d*)[. ])?(\\d+):(\\d+)(?::(\\d+)(\\.\\d*)?)?$/,\n // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n // and further modified to allow for strings containing both week and day\n isoRegex = /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\n function createDuration(input, key) {\n var duration = input,\n // matching against regexp is expensive, do it on demand\n match = null,\n sign,\n ret,\n diffRes;\n\n if (isDuration(input)) {\n duration = {\n ms: input._milliseconds,\n d: input._days,\n M: input._months\n };\n } else if (isNumber(input) || !isNaN(+input)) {\n duration = {};\n\n if (key) {\n duration[key] = +input;\n } else {\n duration.milliseconds = +input;\n }\n } else if (match = aspNetRegex.exec(input)) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: 0,\n d: toInt(match[DATE]) * sign,\n h: toInt(match[HOUR]) * sign,\n m: toInt(match[MINUTE]) * sign,\n s: toInt(match[SECOND]) * sign,\n ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign // the millisecond decimal point is included in the match\n\n };\n } else if (match = isoRegex.exec(input)) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: parseIso(match[2], sign),\n M: parseIso(match[3], sign),\n w: parseIso(match[4], sign),\n d: parseIso(match[5], sign),\n h: parseIso(match[6], sign),\n m: parseIso(match[7], sign),\n s: parseIso(match[8], sign)\n };\n } else if (duration == null) {\n // checks for null or undefined\n duration = {};\n } else if (typeof duration === 'object' && ('from' in duration || 'to' in duration)) {\n diffRes = momentsDifference(createLocal(duration.from), createLocal(duration.to));\n duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n\n ret = new Duration(duration);\n\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n\n if (isDuration(input) && hasOwnProp(input, '_isValid')) {\n ret._isValid = input._isValid;\n }\n\n return ret;\n }\n\n createDuration.fn = Duration.prototype;\n createDuration.invalid = createInvalid$1;\n\n function parseIso(inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n var res = inp && parseFloat(inp.replace(',', '.')); // apply sign while we're at it\n\n return (isNaN(res) ? 0 : res) * sign;\n }\n\n function positiveMomentsDifference(base, other) {\n var res = {};\n res.months = other.month() - base.month() + (other.year() - base.year()) * 12;\n\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n\n res.milliseconds = +other - +base.clone().add(res.months, 'M');\n return res;\n }\n\n function momentsDifference(base, other) {\n var res;\n\n if (!(base.isValid() && other.isValid())) {\n return {\n milliseconds: 0,\n months: 0\n };\n }\n\n other = cloneWithOffset(other, base);\n\n if (base.isBefore(other)) {\n res = positiveMomentsDifference(base, other);\n } else {\n res = positiveMomentsDifference(other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n\n return res;\n } // TODO: remove 'name' arg after deprecation is removed\n\n\n function createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp; //invert the arguments, but complain about it\n\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(name, 'moment().' + name + '(period, number) is deprecated. Please use moment().' + name + '(number, period). ' + 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.');\n tmp = val;\n val = period;\n period = tmp;\n }\n\n dur = createDuration(val, period);\n addSubtract(this, dur, direction);\n return this;\n };\n }\n\n function addSubtract(mom, duration, isAdding, updateOffset) {\n var milliseconds = duration._milliseconds,\n days = absRound(duration._days),\n months = absRound(duration._months);\n\n if (!mom.isValid()) {\n // No op\n return;\n }\n\n updateOffset = updateOffset == null ? true : updateOffset;\n\n if (months) {\n setMonth(mom, get(mom, 'Month') + months * isAdding);\n }\n\n if (days) {\n set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n }\n\n if (milliseconds) {\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n }\n\n if (updateOffset) {\n hooks.updateOffset(mom, days || months);\n }\n }\n\n var add = createAdder(1, 'add'),\n subtract = createAdder(-1, 'subtract');\n\n function isString(input) {\n return typeof input === 'string' || input instanceof String;\n } // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined\n\n\n function isMomentInput(input) {\n return isMoment(input) || isDate(input) || isString(input) || isNumber(input) || isNumberOrStringArray(input) || isMomentInputObject(input) || input === null || input === undefined;\n }\n\n function isMomentInputObject(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = ['years', 'year', 'y', 'months', 'month', 'M', 'days', 'day', 'd', 'dates', 'date', 'D', 'hours', 'hour', 'h', 'minutes', 'minute', 'm', 'seconds', 'second', 's', 'milliseconds', 'millisecond', 'ms'],\n i,\n property;\n\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function isNumberOrStringArray(input) {\n var arrayTest = isArray(input),\n dataTypeTest = false;\n\n if (arrayTest) {\n dataTypeTest = input.filter(function (item) {\n return !isNumber(item) && isString(input);\n }).length === 0;\n }\n\n return arrayTest && dataTypeTest;\n }\n\n function isCalendarSpec(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = ['sameDay', 'nextDay', 'lastDay', 'nextWeek', 'lastWeek', 'sameElse'],\n i,\n property;\n\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6 ? 'sameElse' : diff < -1 ? 'lastWeek' : diff < 0 ? 'lastDay' : diff < 1 ? 'sameDay' : diff < 2 ? 'nextDay' : diff < 7 ? 'nextWeek' : 'sameElse';\n }\n\n function calendar$1(time, formats) {\n // Support for single parameter, formats only overload to the calendar function\n if (arguments.length === 1) {\n if (!arguments[0]) {\n time = undefined;\n formats = undefined;\n } else if (isMomentInput(arguments[0])) {\n time = arguments[0];\n formats = undefined;\n } else if (isCalendarSpec(arguments[0])) {\n formats = arguments[0];\n time = undefined;\n }\n } // We want to compare the start of today, vs this.\n // Getting start-of-today depends on whether we're local/utc/offset or not.\n\n\n var now = time || createLocal(),\n sod = cloneWithOffset(now, this).startOf('day'),\n format = hooks.calendarFormat(this, sod) || 'sameElse',\n output = formats && (isFunction(formats[format]) ? formats[format].call(this, now) : formats[format]);\n return this.format(output || this.localeData().calendar(format, this, createLocal(now)));\n }\n\n function clone() {\n return new Moment(this);\n }\n\n function isAfter(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n\n units = normalizeUnits(units) || 'millisecond';\n\n if (units === 'millisecond') {\n return this.valueOf() > localInput.valueOf();\n } else {\n return localInput.valueOf() < this.clone().startOf(units).valueOf();\n }\n }\n\n function isBefore(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n\n units = normalizeUnits(units) || 'millisecond';\n\n if (units === 'millisecond') {\n return this.valueOf() < localInput.valueOf();\n } else {\n return this.clone().endOf(units).valueOf() < localInput.valueOf();\n }\n }\n\n function isBetween(from, to, units, inclusivity) {\n var localFrom = isMoment(from) ? from : createLocal(from),\n localTo = isMoment(to) ? to : createLocal(to);\n\n if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n return false;\n }\n\n inclusivity = inclusivity || '()';\n return (inclusivity[0] === '(' ? this.isAfter(localFrom, units) : !this.isBefore(localFrom, units)) && (inclusivity[1] === ')' ? this.isBefore(localTo, units) : !this.isAfter(localTo, units));\n }\n\n function isSame(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input),\n inputMs;\n\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n\n units = normalizeUnits(units) || 'millisecond';\n\n if (units === 'millisecond') {\n return this.valueOf() === localInput.valueOf();\n } else {\n inputMs = localInput.valueOf();\n return this.clone().startOf(units).valueOf() <= inputMs && inputMs <= this.clone().endOf(units).valueOf();\n }\n }\n\n function isSameOrAfter(input, units) {\n return this.isSame(input, units) || this.isAfter(input, units);\n }\n\n function isSameOrBefore(input, units) {\n return this.isSame(input, units) || this.isBefore(input, units);\n }\n\n function diff(input, units, asFloat) {\n var that, zoneDelta, output;\n\n if (!this.isValid()) {\n return NaN;\n }\n\n that = cloneWithOffset(input, this);\n\n if (!that.isValid()) {\n return NaN;\n }\n\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n units = normalizeUnits(units);\n\n switch (units) {\n case 'year':\n output = monthDiff(this, that) / 12;\n break;\n\n case 'month':\n output = monthDiff(this, that);\n break;\n\n case 'quarter':\n output = monthDiff(this, that) / 3;\n break;\n\n case 'second':\n output = (this - that) / 1e3;\n break;\n // 1000\n\n case 'minute':\n output = (this - that) / 6e4;\n break;\n // 1000 * 60\n\n case 'hour':\n output = (this - that) / 36e5;\n break;\n // 1000 * 60 * 60\n\n case 'day':\n output = (this - that - zoneDelta) / 864e5;\n break;\n // 1000 * 60 * 60 * 24, negate dst\n\n case 'week':\n output = (this - that - zoneDelta) / 6048e5;\n break;\n // 1000 * 60 * 60 * 24 * 7, negate dst\n\n default:\n output = this - that;\n }\n\n return asFloat ? output : absFloor(output);\n }\n\n function monthDiff(a, b) {\n if (a.date() < b.date()) {\n // end-of-month calculations work correct when the start month has more\n // days than the end month.\n return -monthDiff(b, a);\n } // difference in months\n\n\n var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()),\n // b is in (anchor - 1 month, anchor + 1 month)\n anchor = a.clone().add(wholeMonthDiff, 'months'),\n anchor2,\n adjust;\n\n if (b - anchor < 0) {\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months'); // linear across the month\n\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months'); // linear across the month\n\n adjust = (b - anchor) / (anchor2 - anchor);\n } //check for negative zero, return zero if negative zero\n\n\n return -(wholeMonthDiff + adjust) || 0;\n }\n\n hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\n hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\n function toString() {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n }\n\n function toISOString(keepOffset) {\n if (!this.isValid()) {\n return null;\n }\n\n var utc = keepOffset !== true,\n m = utc ? this.clone().utc() : this;\n\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(m, utc ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ');\n }\n\n if (isFunction(Date.prototype.toISOString)) {\n // native implementation is ~50x faster, use it when we can\n if (utc) {\n return this.toDate().toISOString();\n } else {\n return new Date(this.valueOf() + this.utcOffset() * 60 * 1000).toISOString().replace('Z', formatMoment(m, 'Z'));\n }\n }\n\n return formatMoment(m, utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ');\n }\n /**\n * Return a human readable representation of a moment that can\n * also be evaluated to get a new moment which is the same\n *\n * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n */\n\n\n function inspect() {\n if (!this.isValid()) {\n return 'moment.invalid(/* ' + this._i + ' */)';\n }\n\n var func = 'moment',\n zone = '',\n prefix,\n year,\n datetime,\n suffix;\n\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n\n prefix = '[' + func + '(\"]';\n year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY';\n datetime = '-MM-DD[T]HH:mm:ss.SSS';\n suffix = zone + '[\")]';\n return this.format(prefix + year + datetime + suffix);\n }\n\n function format(inputString) {\n if (!inputString) {\n inputString = this.isUtc() ? hooks.defaultFormatUtc : hooks.defaultFormat;\n }\n\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n }\n\n function from(time, withoutSuffix) {\n if (this.isValid() && (isMoment(time) && time.isValid() || createLocal(time).isValid())) {\n return createDuration({\n to: this,\n from: time\n }).locale(this.locale()).humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function fromNow(withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n }\n\n function to(time, withoutSuffix) {\n if (this.isValid() && (isMoment(time) && time.isValid() || createLocal(time).isValid())) {\n return createDuration({\n from: this,\n to: time\n }).locale(this.locale()).humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function toNow(withoutSuffix) {\n return this.to(createLocal(), withoutSuffix);\n } // If passed a locale key, it will set the locale for this\n // instance. Otherwise, it will return the locale configuration\n // variables for this instance.\n\n\n function locale(key) {\n var newLocaleData;\n\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = getLocale(key);\n\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n\n return this;\n }\n }\n\n var lang = deprecate('moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.', function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n });\n\n function localeData() {\n return this._locale;\n }\n\n var MS_PER_SECOND = 1000,\n MS_PER_MINUTE = 60 * MS_PER_SECOND,\n MS_PER_HOUR = 60 * MS_PER_MINUTE,\n MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR; // actual modulo - handles negative numbers (for dates before 1970):\n\n function mod$1(dividend, divisor) {\n return (dividend % divisor + divisor) % divisor;\n }\n\n function localStartOfDate(y, m, d) {\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return new Date(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return new Date(y, m, d).valueOf();\n }\n }\n\n function utcStartOfDate(y, m, d) {\n // Date.UTC remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return Date.UTC(y, m, d);\n }\n }\n\n function startOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year(), 0, 1);\n break;\n\n case 'quarter':\n time = startOfDate(this.year(), this.month() - this.month() % 3, 1);\n break;\n\n case 'month':\n time = startOfDate(this.year(), this.month(), 1);\n break;\n\n case 'week':\n time = startOfDate(this.year(), this.month(), this.date() - this.weekday());\n break;\n\n case 'isoWeek':\n time = startOfDate(this.year(), this.month(), this.date() - (this.isoWeekday() - 1));\n break;\n\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date());\n break;\n\n case 'hour':\n time = this._d.valueOf();\n time -= mod$1(time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), MS_PER_HOUR);\n break;\n\n case 'minute':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_MINUTE);\n break;\n\n case 'second':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_SECOND);\n break;\n }\n\n this._d.setTime(time);\n\n hooks.updateOffset(this, true);\n return this;\n }\n\n function endOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year() + 1, 0, 1) - 1;\n break;\n\n case 'quarter':\n time = startOfDate(this.year(), this.month() - this.month() % 3 + 3, 1) - 1;\n break;\n\n case 'month':\n time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n break;\n\n case 'week':\n time = startOfDate(this.year(), this.month(), this.date() - this.weekday() + 7) - 1;\n break;\n\n case 'isoWeek':\n time = startOfDate(this.year(), this.month(), this.date() - (this.isoWeekday() - 1) + 7) - 1;\n break;\n\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;\n break;\n\n case 'hour':\n time = this._d.valueOf();\n time += MS_PER_HOUR - mod$1(time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), MS_PER_HOUR) - 1;\n break;\n\n case 'minute':\n time = this._d.valueOf();\n time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;\n break;\n\n case 'second':\n time = this._d.valueOf();\n time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;\n break;\n }\n\n this._d.setTime(time);\n\n hooks.updateOffset(this, true);\n return this;\n }\n\n function valueOf() {\n return this._d.valueOf() - (this._offset || 0) * 60000;\n }\n\n function unix() {\n return Math.floor(this.valueOf() / 1000);\n }\n\n function toDate() {\n return new Date(this.valueOf());\n }\n\n function toArray() {\n var m = this;\n return [m.year(), m.month(), m.date(), m.hour(), m.minute(), m.second(), m.millisecond()];\n }\n\n function toObject() {\n var m = this;\n return {\n years: m.year(),\n months: m.month(),\n date: m.date(),\n hours: m.hours(),\n minutes: m.minutes(),\n seconds: m.seconds(),\n milliseconds: m.milliseconds()\n };\n }\n\n function toJSON() {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n }\n\n function isValid$2() {\n return isValid(this);\n }\n\n function parsingFlags() {\n return extend({}, getParsingFlags(this));\n }\n\n function invalidAt() {\n return getParsingFlags(this).overflow;\n }\n\n function creationData() {\n return {\n input: this._i,\n format: this._f,\n locale: this._locale,\n isUTC: this._isUTC,\n strict: this._strict\n };\n }\n\n addFormatToken('N', 0, 0, 'eraAbbr');\n addFormatToken('NN', 0, 0, 'eraAbbr');\n addFormatToken('NNN', 0, 0, 'eraAbbr');\n addFormatToken('NNNN', 0, 0, 'eraName');\n addFormatToken('NNNNN', 0, 0, 'eraNarrow');\n addFormatToken('y', ['y', 1], 'yo', 'eraYear');\n addFormatToken('y', ['yy', 2], 0, 'eraYear');\n addFormatToken('y', ['yyy', 3], 0, 'eraYear');\n addFormatToken('y', ['yyyy', 4], 0, 'eraYear');\n addRegexToken('N', matchEraAbbr);\n addRegexToken('NN', matchEraAbbr);\n addRegexToken('NNN', matchEraAbbr);\n addRegexToken('NNNN', matchEraName);\n addRegexToken('NNNNN', matchEraNarrow);\n addParseToken(['N', 'NN', 'NNN', 'NNNN', 'NNNNN'], function (input, array, config, token) {\n var era = config._locale.erasParse(input, token, config._strict);\n\n if (era) {\n getParsingFlags(config).era = era;\n } else {\n getParsingFlags(config).invalidEra = input;\n }\n });\n addRegexToken('y', matchUnsigned);\n addRegexToken('yy', matchUnsigned);\n addRegexToken('yyy', matchUnsigned);\n addRegexToken('yyyy', matchUnsigned);\n addRegexToken('yo', matchEraYearOrdinal);\n addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR);\n addParseToken(['yo'], function (input, array, config, token) {\n var match;\n\n if (config._locale._eraYearOrdinalRegex) {\n match = input.match(config._locale._eraYearOrdinalRegex);\n }\n\n if (config._locale.eraYearOrdinalParse) {\n array[YEAR] = config._locale.eraYearOrdinalParse(input, match);\n } else {\n array[YEAR] = parseInt(input, 10);\n }\n });\n\n function localeEras(m, format) {\n var i,\n l,\n date,\n eras = this._eras || getLocale('en')._eras;\n\n for (i = 0, l = eras.length; i < l; ++i) {\n switch (typeof eras[i].since) {\n case 'string':\n // truncate time\n date = hooks(eras[i].since).startOf('day');\n eras[i].since = date.valueOf();\n break;\n }\n\n switch (typeof eras[i].until) {\n case 'undefined':\n eras[i].until = +Infinity;\n break;\n\n case 'string':\n // truncate time\n date = hooks(eras[i].until).startOf('day').valueOf();\n eras[i].until = date.valueOf();\n break;\n }\n }\n\n return eras;\n }\n\n function localeErasParse(eraName, format, strict) {\n var i,\n l,\n eras = this.eras(),\n name,\n abbr,\n narrow;\n eraName = eraName.toUpperCase();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n name = eras[i].name.toUpperCase();\n abbr = eras[i].abbr.toUpperCase();\n narrow = eras[i].narrow.toUpperCase();\n\n if (strict) {\n switch (format) {\n case 'N':\n case 'NN':\n case 'NNN':\n if (abbr === eraName) {\n return eras[i];\n }\n\n break;\n\n case 'NNNN':\n if (name === eraName) {\n return eras[i];\n }\n\n break;\n\n case 'NNNNN':\n if (narrow === eraName) {\n return eras[i];\n }\n\n break;\n }\n } else if ([name, abbr, narrow].indexOf(eraName) >= 0) {\n return eras[i];\n }\n }\n }\n\n function localeErasConvertYear(era, year) {\n var dir = era.since <= era.until ? +1 : -1;\n\n if (year === undefined) {\n return hooks(era.since).year();\n } else {\n return hooks(era.since).year() + (year - era.offset) * dir;\n }\n }\n\n function getEraName() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].name;\n }\n\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].name;\n }\n }\n\n return '';\n }\n\n function getEraNarrow() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].narrow;\n }\n\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].narrow;\n }\n }\n\n return '';\n }\n\n function getEraAbbr() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].abbr;\n }\n\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].abbr;\n }\n }\n\n return '';\n }\n\n function getEraYear() {\n var i,\n l,\n dir,\n val,\n eras = this.localeData().eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n dir = eras[i].since <= eras[i].until ? +1 : -1; // truncate time\n\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until || eras[i].until <= val && val <= eras[i].since) {\n return (this.year() - hooks(eras[i].since).year()) * dir + eras[i].offset;\n }\n }\n\n return this.year();\n }\n\n function erasNameRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNameRegex')) {\n computeErasParse.call(this);\n }\n\n return isStrict ? this._erasNameRegex : this._erasRegex;\n }\n\n function erasAbbrRegex(isStrict) {\n if (!hasOwnProp(this, '_erasAbbrRegex')) {\n computeErasParse.call(this);\n }\n\n return isStrict ? this._erasAbbrRegex : this._erasRegex;\n }\n\n function erasNarrowRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNarrowRegex')) {\n computeErasParse.call(this);\n }\n\n return isStrict ? this._erasNarrowRegex : this._erasRegex;\n }\n\n function matchEraAbbr(isStrict, locale) {\n return locale.erasAbbrRegex(isStrict);\n }\n\n function matchEraName(isStrict, locale) {\n return locale.erasNameRegex(isStrict);\n }\n\n function matchEraNarrow(isStrict, locale) {\n return locale.erasNarrowRegex(isStrict);\n }\n\n function matchEraYearOrdinal(isStrict, locale) {\n return locale._eraYearOrdinalRegex || matchUnsigned;\n }\n\n function computeErasParse() {\n var abbrPieces = [],\n namePieces = [],\n narrowPieces = [],\n mixedPieces = [],\n i,\n l,\n eras = this.eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n namePieces.push(regexEscape(eras[i].name));\n abbrPieces.push(regexEscape(eras[i].abbr));\n narrowPieces.push(regexEscape(eras[i].narrow));\n mixedPieces.push(regexEscape(eras[i].name));\n mixedPieces.push(regexEscape(eras[i].abbr));\n mixedPieces.push(regexEscape(eras[i].narrow));\n }\n\n this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i');\n this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i');\n this._erasNarrowRegex = new RegExp('^(' + narrowPieces.join('|') + ')', 'i');\n } // FORMATTING\n\n\n addFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n });\n addFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n });\n\n function addWeekYearFormatToken(token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n }\n\n addWeekYearFormatToken('gggg', 'weekYear');\n addWeekYearFormatToken('ggggg', 'weekYear');\n addWeekYearFormatToken('GGGG', 'isoWeekYear');\n addWeekYearFormatToken('GGGGG', 'isoWeekYear'); // ALIASES\n\n addUnitAlias('weekYear', 'gg');\n addUnitAlias('isoWeekYear', 'GG'); // PRIORITY\n\n addUnitPriority('weekYear', 1);\n addUnitPriority('isoWeekYear', 1); // PARSING\n\n addRegexToken('G', matchSigned);\n addRegexToken('g', matchSigned);\n addRegexToken('GG', match1to2, match2);\n addRegexToken('gg', match1to2, match2);\n addRegexToken('GGGG', match1to4, match4);\n addRegexToken('gggg', match1to4, match4);\n addRegexToken('GGGGG', match1to6, match6);\n addRegexToken('ggggg', match1to6, match6);\n addWeekParseToken(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (input, week, config, token) {\n week[token.substr(0, 2)] = toInt(input);\n });\n addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n }); // MOMENTS\n\n function getSetWeekYear(input) {\n return getSetWeekYearHelper.call(this, input, this.week(), this.weekday(), this.localeData()._week.dow, this.localeData()._week.doy);\n }\n\n function getSetISOWeekYear(input) {\n return getSetWeekYearHelper.call(this, input, this.isoWeek(), this.isoWeekday(), 1, 4);\n }\n\n function getISOWeeksInYear() {\n return weeksInYear(this.year(), 1, 4);\n }\n\n function getISOWeeksInISOWeekYear() {\n return weeksInYear(this.isoWeekYear(), 1, 4);\n }\n\n function getWeeksInYear() {\n var weekInfo = this.localeData()._week;\n\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n }\n\n function getWeeksInWeekYear() {\n var weekInfo = this.localeData()._week;\n\n return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);\n }\n\n function getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n\n if (week > weeksTarget) {\n week = weeksTarget;\n }\n\n return setWeekAll.call(this, input, week, weekday, dow, doy);\n }\n }\n\n function setWeekAll(weekYear, week, weekday, dow, doy) {\n var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n } // FORMATTING\n\n\n addFormatToken('Q', 0, 'Qo', 'quarter'); // ALIASES\n\n addUnitAlias('quarter', 'Q'); // PRIORITY\n\n addUnitPriority('quarter', 7); // PARSING\n\n addRegexToken('Q', match1);\n addParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n }); // MOMENTS\n\n function getSetQuarter(input) {\n return input == null ? Math.ceil((this.month() + 1) / 3) : this.month((input - 1) * 3 + this.month() % 3);\n } // FORMATTING\n\n\n addFormatToken('D', ['DD', 2], 'Do', 'date'); // ALIASES\n\n addUnitAlias('date', 'D'); // PRIORITY\n\n addUnitPriority('date', 9); // PARSING\n\n addRegexToken('D', match1to2);\n addRegexToken('DD', match1to2, match2);\n addRegexToken('Do', function (isStrict, locale) {\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n return isStrict ? locale._dayOfMonthOrdinalParse || locale._ordinalParse : locale._dayOfMonthOrdinalParseLenient;\n });\n addParseToken(['D', 'DD'], DATE);\n addParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n }); // MOMENTS\n\n var getSetDayOfMonth = makeGetSet('Date', true); // FORMATTING\n\n addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear'); // ALIASES\n\n addUnitAlias('dayOfYear', 'DDD'); // PRIORITY\n\n addUnitPriority('dayOfYear', 4); // PARSING\n\n addRegexToken('DDD', match1to3);\n addRegexToken('DDDD', match3);\n addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n }); // HELPERS\n // MOMENTS\n\n function getSetDayOfYear(input) {\n var dayOfYear = Math.round((this.clone().startOf('day') - this.clone().startOf('year')) / 864e5) + 1;\n return input == null ? dayOfYear : this.add(input - dayOfYear, 'd');\n } // FORMATTING\n\n\n addFormatToken('m', ['mm', 2], 0, 'minute'); // ALIASES\n\n addUnitAlias('minute', 'm'); // PRIORITY\n\n addUnitPriority('minute', 14); // PARSING\n\n addRegexToken('m', match1to2);\n addRegexToken('mm', match1to2, match2);\n addParseToken(['m', 'mm'], MINUTE); // MOMENTS\n\n var getSetMinute = makeGetSet('Minutes', false); // FORMATTING\n\n addFormatToken('s', ['ss', 2], 0, 'second'); // ALIASES\n\n addUnitAlias('second', 's'); // PRIORITY\n\n addUnitPriority('second', 15); // PARSING\n\n addRegexToken('s', match1to2);\n addRegexToken('ss', match1to2, match2);\n addParseToken(['s', 'ss'], SECOND); // MOMENTS\n\n var getSetSecond = makeGetSet('Seconds', false); // FORMATTING\n\n addFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n });\n addFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n });\n addFormatToken(0, ['SSS', 3], 0, 'millisecond');\n addFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n });\n addFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n });\n addFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n });\n addFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n });\n addFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n });\n addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n }); // ALIASES\n\n addUnitAlias('millisecond', 'ms'); // PRIORITY\n\n addUnitPriority('millisecond', 16); // PARSING\n\n addRegexToken('S', match1to3, match1);\n addRegexToken('SS', match1to3, match2);\n addRegexToken('SSS', match1to3, match3);\n var token, getSetMillisecond;\n\n for (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n }\n\n function parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n }\n\n for (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n }\n\n getSetMillisecond = makeGetSet('Milliseconds', false); // FORMATTING\n\n addFormatToken('z', 0, 0, 'zoneAbbr');\n addFormatToken('zz', 0, 0, 'zoneName'); // MOMENTS\n\n function getZoneAbbr() {\n return this._isUTC ? 'UTC' : '';\n }\n\n function getZoneName() {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n }\n\n var proto = Moment.prototype;\n proto.add = add;\n proto.calendar = calendar$1;\n proto.clone = clone;\n proto.diff = diff;\n proto.endOf = endOf;\n proto.format = format;\n proto.from = from;\n proto.fromNow = fromNow;\n proto.to = to;\n proto.toNow = toNow;\n proto.get = stringGet;\n proto.invalidAt = invalidAt;\n proto.isAfter = isAfter;\n proto.isBefore = isBefore;\n proto.isBetween = isBetween;\n proto.isSame = isSame;\n proto.isSameOrAfter = isSameOrAfter;\n proto.isSameOrBefore = isSameOrBefore;\n proto.isValid = isValid$2;\n proto.lang = lang;\n proto.locale = locale;\n proto.localeData = localeData;\n proto.max = prototypeMax;\n proto.min = prototypeMin;\n proto.parsingFlags = parsingFlags;\n proto.set = stringSet;\n proto.startOf = startOf;\n proto.subtract = subtract;\n proto.toArray = toArray;\n proto.toObject = toObject;\n proto.toDate = toDate;\n proto.toISOString = toISOString;\n proto.inspect = inspect;\n\n if (typeof Symbol !== 'undefined' && Symbol.for != null) {\n proto[Symbol.for('nodejs.util.inspect.custom')] = function () {\n return 'Moment<' + this.format() + '>';\n };\n }\n\n proto.toJSON = toJSON;\n proto.toString = toString;\n proto.unix = unix;\n proto.valueOf = valueOf;\n proto.creationData = creationData;\n proto.eraName = getEraName;\n proto.eraNarrow = getEraNarrow;\n proto.eraAbbr = getEraAbbr;\n proto.eraYear = getEraYear;\n proto.year = getSetYear;\n proto.isLeapYear = getIsLeapYear;\n proto.weekYear = getSetWeekYear;\n proto.isoWeekYear = getSetISOWeekYear;\n proto.quarter = proto.quarters = getSetQuarter;\n proto.month = getSetMonth;\n proto.daysInMonth = getDaysInMonth;\n proto.week = proto.weeks = getSetWeek;\n proto.isoWeek = proto.isoWeeks = getSetISOWeek;\n proto.weeksInYear = getWeeksInYear;\n proto.weeksInWeekYear = getWeeksInWeekYear;\n proto.isoWeeksInYear = getISOWeeksInYear;\n proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;\n proto.date = getSetDayOfMonth;\n proto.day = proto.days = getSetDayOfWeek;\n proto.weekday = getSetLocaleDayOfWeek;\n proto.isoWeekday = getSetISODayOfWeek;\n proto.dayOfYear = getSetDayOfYear;\n proto.hour = proto.hours = getSetHour;\n proto.minute = proto.minutes = getSetMinute;\n proto.second = proto.seconds = getSetSecond;\n proto.millisecond = proto.milliseconds = getSetMillisecond;\n proto.utcOffset = getSetOffset;\n proto.utc = setOffsetToUTC;\n proto.local = setOffsetToLocal;\n proto.parseZone = setOffsetToParsedOffset;\n proto.hasAlignedHourOffset = hasAlignedHourOffset;\n proto.isDST = isDaylightSavingTime;\n proto.isLocal = isLocal;\n proto.isUtcOffset = isUtcOffset;\n proto.isUtc = isUtc;\n proto.isUTC = isUtc;\n proto.zoneAbbr = getZoneAbbr;\n proto.zoneName = getZoneName;\n proto.dates = deprecate('dates accessor is deprecated. Use date instead.', getSetDayOfMonth);\n proto.months = deprecate('months accessor is deprecated. Use month instead', getSetMonth);\n proto.years = deprecate('years accessor is deprecated. Use year instead', getSetYear);\n proto.zone = deprecate('moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/', getSetZone);\n proto.isDSTShifted = deprecate('isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information', isDaylightSavingTimeShifted);\n\n function createUnix(input) {\n return createLocal(input * 1000);\n }\n\n function createInZone() {\n return createLocal.apply(null, arguments).parseZone();\n }\n\n function preParsePostFormat(string) {\n return string;\n }\n\n var proto$1 = Locale.prototype;\n proto$1.calendar = calendar;\n proto$1.longDateFormat = longDateFormat;\n proto$1.invalidDate = invalidDate;\n proto$1.ordinal = ordinal;\n proto$1.preparse = preParsePostFormat;\n proto$1.postformat = preParsePostFormat;\n proto$1.relativeTime = relativeTime;\n proto$1.pastFuture = pastFuture;\n proto$1.set = set;\n proto$1.eras = localeEras;\n proto$1.erasParse = localeErasParse;\n proto$1.erasConvertYear = localeErasConvertYear;\n proto$1.erasAbbrRegex = erasAbbrRegex;\n proto$1.erasNameRegex = erasNameRegex;\n proto$1.erasNarrowRegex = erasNarrowRegex;\n proto$1.months = localeMonths;\n proto$1.monthsShort = localeMonthsShort;\n proto$1.monthsParse = localeMonthsParse;\n proto$1.monthsRegex = monthsRegex;\n proto$1.monthsShortRegex = monthsShortRegex;\n proto$1.week = localeWeek;\n proto$1.firstDayOfYear = localeFirstDayOfYear;\n proto$1.firstDayOfWeek = localeFirstDayOfWeek;\n proto$1.weekdays = localeWeekdays;\n proto$1.weekdaysMin = localeWeekdaysMin;\n proto$1.weekdaysShort = localeWeekdaysShort;\n proto$1.weekdaysParse = localeWeekdaysParse;\n proto$1.weekdaysRegex = weekdaysRegex;\n proto$1.weekdaysShortRegex = weekdaysShortRegex;\n proto$1.weekdaysMinRegex = weekdaysMinRegex;\n proto$1.isPM = localeIsPM;\n proto$1.meridiem = localeMeridiem;\n\n function get$1(format, index, field, setter) {\n var locale = getLocale(),\n utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n }\n\n function listMonthsImpl(format, index, field) {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n\n if (index != null) {\n return get$1(format, index, field, 'month');\n }\n\n var i,\n out = [];\n\n for (i = 0; i < 12; i++) {\n out[i] = get$1(format, i, field, 'month');\n }\n\n return out;\n } // ()\n // (5)\n // (fmt, 5)\n // (fmt)\n // (true)\n // (true, 5)\n // (true, fmt, 5)\n // (true, fmt)\n\n\n function listWeekdaysImpl(localeSorted, format, index, field) {\n if (typeof localeSorted === 'boolean') {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n } else {\n format = localeSorted;\n index = format;\n localeSorted = false;\n\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n }\n\n var locale = getLocale(),\n shift = localeSorted ? locale._week.dow : 0,\n i,\n out = [];\n\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\n\n for (i = 0; i < 7; i++) {\n out[i] = get$1(format, (i + shift) % 7, field, 'day');\n }\n\n return out;\n }\n\n function listMonths(format, index) {\n return listMonthsImpl(format, index, 'months');\n }\n\n function listMonthsShort(format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n }\n\n function listWeekdays(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n }\n\n function listWeekdaysShort(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n }\n\n function listWeekdaysMin(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n }\n\n getSetGlobalLocale('en', {\n eras: [{\n since: '0001-01-01',\n until: +Infinity,\n offset: 1,\n name: 'Anno Domini',\n narrow: 'AD',\n abbr: 'AD'\n }, {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: 'Before Christ',\n narrow: 'BC',\n abbr: 'BC'\n }],\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function ordinal(number) {\n var b = number % 10,\n output = toInt(number % 100 / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th';\n return number + output;\n }\n }); // Side effect imports\n\n hooks.lang = deprecate('moment.lang is deprecated. Use moment.locale instead.', getSetGlobalLocale);\n hooks.langData = deprecate('moment.langData is deprecated. Use moment.localeData instead.', getLocale);\n var mathAbs = Math.abs;\n\n function abs() {\n var data = this._data;\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.months = mathAbs(data.months);\n data.years = mathAbs(data.years);\n return this;\n }\n\n function addSubtract$1(duration, input, value, direction) {\n var other = createDuration(input, value);\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n return duration._bubble();\n } // supports only 2.0-style add(1, 's') or add(duration)\n\n\n function add$1(input, value) {\n return addSubtract$1(this, input, value, 1);\n } // supports only 2.0-style subtract(1, 's') or subtract(duration)\n\n\n function subtract$1(input, value) {\n return addSubtract$1(this, input, value, -1);\n }\n\n function absCeil(number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n }\n\n function bubble() {\n var milliseconds = this._milliseconds,\n days = this._days,\n months = this._months,\n data = this._data,\n seconds,\n minutes,\n hours,\n years,\n monthsFromDays; // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n\n if (!(milliseconds >= 0 && days >= 0 && months >= 0 || milliseconds <= 0 && days <= 0 && months <= 0)) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n } // The following code bubbles up values, see the tests for\n // examples of what that means.\n\n\n data.milliseconds = milliseconds % 1000;\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n days += absFloor(hours / 24); // convert days to months\n\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays)); // 12 months -> 1 year\n\n years = absFloor(months / 12);\n months %= 12;\n data.days = days;\n data.months = months;\n data.years = years;\n return this;\n }\n\n function daysToMonths(days) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return days * 4800 / 146097;\n }\n\n function monthsToDays(months) {\n // the reverse of daysToMonths\n return months * 146097 / 4800;\n }\n\n function as(units) {\n if (!this.isValid()) {\n return NaN;\n }\n\n var days,\n months,\n milliseconds = this._milliseconds;\n units = normalizeUnits(units);\n\n if (units === 'month' || units === 'quarter' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n\n switch (units) {\n case 'month':\n return months;\n\n case 'quarter':\n return months / 3;\n\n case 'year':\n return months / 12;\n }\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n\n switch (units) {\n case 'week':\n return days / 7 + milliseconds / 6048e5;\n\n case 'day':\n return days + milliseconds / 864e5;\n\n case 'hour':\n return days * 24 + milliseconds / 36e5;\n\n case 'minute':\n return days * 1440 + milliseconds / 6e4;\n\n case 'second':\n return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n\n case 'millisecond':\n return Math.floor(days * 864e5) + milliseconds;\n\n default:\n throw new Error('Unknown unit ' + units);\n }\n }\n } // TODO: Use this.as('ms')?\n\n\n function valueOf$1() {\n if (!this.isValid()) {\n return NaN;\n }\n\n return this._milliseconds + this._days * 864e5 + this._months % 12 * 2592e6 + toInt(this._months / 12) * 31536e6;\n }\n\n function makeAs(alias) {\n return function () {\n return this.as(alias);\n };\n }\n\n var asMilliseconds = makeAs('ms'),\n asSeconds = makeAs('s'),\n asMinutes = makeAs('m'),\n asHours = makeAs('h'),\n asDays = makeAs('d'),\n asWeeks = makeAs('w'),\n asMonths = makeAs('M'),\n asQuarters = makeAs('Q'),\n asYears = makeAs('y');\n\n function clone$1() {\n return createDuration(this);\n }\n\n function get$2(units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n }\n\n function makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n }\n\n var milliseconds = makeGetter('milliseconds'),\n seconds = makeGetter('seconds'),\n minutes = makeGetter('minutes'),\n hours = makeGetter('hours'),\n days = makeGetter('days'),\n months = makeGetter('months'),\n years = makeGetter('years');\n\n function weeks() {\n return absFloor(this.days() / 7);\n }\n\n var round = Math.round,\n thresholds = {\n ss: 44,\n // a few seconds to seconds\n s: 45,\n // seconds to minute\n m: 45,\n // minutes to hour\n h: 22,\n // hours to day\n d: 26,\n // days to month/week\n w: null,\n // weeks to month\n M: 11 // months to year\n\n }; // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\n\n function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n }\n\n function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) {\n var duration = createDuration(posNegDuration).abs(),\n seconds = round(duration.as('s')),\n minutes = round(duration.as('m')),\n hours = round(duration.as('h')),\n days = round(duration.as('d')),\n months = round(duration.as('M')),\n weeks = round(duration.as('w')),\n years = round(duration.as('y')),\n a = seconds <= thresholds.ss && ['s', seconds] || seconds < thresholds.s && ['ss', seconds] || minutes <= 1 && ['m'] || minutes < thresholds.m && ['mm', minutes] || hours <= 1 && ['h'] || hours < thresholds.h && ['hh', hours] || days <= 1 && ['d'] || days < thresholds.d && ['dd', days];\n\n if (thresholds.w != null) {\n a = a || weeks <= 1 && ['w'] || weeks < thresholds.w && ['ww', weeks];\n }\n\n a = a || months <= 1 && ['M'] || months < thresholds.M && ['MM', months] || years <= 1 && ['y'] || ['yy', years];\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n } // This function allows you to set the rounding function for relative time strings\n\n\n function getSetRelativeTimeRounding(roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n\n if (typeof roundingFunction === 'function') {\n round = roundingFunction;\n return true;\n }\n\n return false;\n } // This function allows you to set a threshold for relative time strings\n\n\n function getSetRelativeTimeThreshold(threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n\n if (limit === undefined) {\n return thresholds[threshold];\n }\n\n thresholds[threshold] = limit;\n\n if (threshold === 's') {\n thresholds.ss = limit - 1;\n }\n\n return true;\n }\n\n function humanize(argWithSuffix, argThresholds) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var withSuffix = false,\n th = thresholds,\n locale,\n output;\n\n if (typeof argWithSuffix === 'object') {\n argThresholds = argWithSuffix;\n argWithSuffix = false;\n }\n\n if (typeof argWithSuffix === 'boolean') {\n withSuffix = argWithSuffix;\n }\n\n if (typeof argThresholds === 'object') {\n th = Object.assign({}, thresholds, argThresholds);\n\n if (argThresholds.s != null && argThresholds.ss == null) {\n th.ss = argThresholds.s - 1;\n }\n }\n\n locale = this.localeData();\n output = relativeTime$1(this, !withSuffix, th, locale);\n\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n\n return locale.postformat(output);\n }\n\n var abs$1 = Math.abs;\n\n function sign(x) {\n return (x > 0) - (x < 0) || +x;\n }\n\n function toISOString$1() {\n // for ISO strings we do not use the normal bubbling rules:\n // * milliseconds bubble up until they become hours\n // * days do not bubble at all\n // * months bubble up until they become years\n // This is because there is no context-free conversion between hours and days\n // (think of clock changes)\n // and also not between days and months (28-31 days per month)\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var seconds = abs$1(this._milliseconds) / 1000,\n days = abs$1(this._days),\n months = abs$1(this._months),\n minutes,\n hours,\n years,\n s,\n total = this.asSeconds(),\n totalSign,\n ymSign,\n daysSign,\n hmsSign;\n\n if (!total) {\n // this is the same as C#'s (Noda) and python (isodate)...\n // but not other JS (goog.date)\n return 'P0D';\n } // 3600 seconds -> 60 minutes -> 1 hour\n\n\n minutes = absFloor(seconds / 60);\n hours = absFloor(minutes / 60);\n seconds %= 60;\n minutes %= 60; // 12 months -> 1 year\n\n years = absFloor(months / 12);\n months %= 12; // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n\n s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n totalSign = total < 0 ? '-' : '';\n ymSign = sign(this._months) !== sign(total) ? '-' : '';\n daysSign = sign(this._days) !== sign(total) ? '-' : '';\n hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n return totalSign + 'P' + (years ? ymSign + years + 'Y' : '') + (months ? ymSign + months + 'M' : '') + (days ? daysSign + days + 'D' : '') + (hours || minutes || seconds ? 'T' : '') + (hours ? hmsSign + hours + 'H' : '') + (minutes ? hmsSign + minutes + 'M' : '') + (seconds ? hmsSign + s + 'S' : '');\n }\n\n var proto$2 = Duration.prototype;\n proto$2.isValid = isValid$1;\n proto$2.abs = abs;\n proto$2.add = add$1;\n proto$2.subtract = subtract$1;\n proto$2.as = as;\n proto$2.asMilliseconds = asMilliseconds;\n proto$2.asSeconds = asSeconds;\n proto$2.asMinutes = asMinutes;\n proto$2.asHours = asHours;\n proto$2.asDays = asDays;\n proto$2.asWeeks = asWeeks;\n proto$2.asMonths = asMonths;\n proto$2.asQuarters = asQuarters;\n proto$2.asYears = asYears;\n proto$2.valueOf = valueOf$1;\n proto$2._bubble = bubble;\n proto$2.clone = clone$1;\n proto$2.get = get$2;\n proto$2.milliseconds = milliseconds;\n proto$2.seconds = seconds;\n proto$2.minutes = minutes;\n proto$2.hours = hours;\n proto$2.days = days;\n proto$2.weeks = weeks;\n proto$2.months = months;\n proto$2.years = years;\n proto$2.humanize = humanize;\n proto$2.toISOString = toISOString$1;\n proto$2.toString = toISOString$1;\n proto$2.toJSON = toISOString$1;\n proto$2.locale = locale;\n proto$2.localeData = localeData;\n proto$2.toIsoString = deprecate('toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)', toISOString$1);\n proto$2.lang = lang; // FORMATTING\n\n addFormatToken('X', 0, 0, 'unix');\n addFormatToken('x', 0, 0, 'valueOf'); // PARSING\n\n addRegexToken('x', matchSigned);\n addRegexToken('X', matchTimestamp);\n addParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input) * 1000);\n });\n addParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n }); //! moment.js\n\n hooks.version = '2.29.1';\n setHookCallback(createLocal);\n hooks.fn = proto;\n hooks.min = min;\n hooks.max = max;\n hooks.now = now;\n hooks.utc = createUTC;\n hooks.unix = createUnix;\n hooks.months = listMonths;\n hooks.isDate = isDate;\n hooks.locale = getSetGlobalLocale;\n hooks.invalid = createInvalid;\n hooks.duration = createDuration;\n hooks.isMoment = isMoment;\n hooks.weekdays = listWeekdays;\n hooks.parseZone = createInZone;\n hooks.localeData = getLocale;\n hooks.isDuration = isDuration;\n hooks.monthsShort = listMonthsShort;\n hooks.weekdaysMin = listWeekdaysMin;\n hooks.defineLocale = defineLocale;\n hooks.updateLocale = updateLocale;\n hooks.locales = listLocales;\n hooks.weekdaysShort = listWeekdaysShort;\n hooks.normalizeUnits = normalizeUnits;\n hooks.relativeTimeRounding = getSetRelativeTimeRounding;\n hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\n hooks.calendarFormat = getCalendarFormat;\n hooks.prototype = proto; // currently HTML5 input type only supports 24-hour formats\n\n hooks.HTML5_FMT = {\n DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm',\n // \n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss',\n // \n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS',\n // \n DATE: 'YYYY-MM-DD',\n // \n TIME: 'HH:mm',\n // \n TIME_SECONDS: 'HH:mm:ss',\n // \n TIME_MS: 'HH:mm:ss.SSS',\n // \n WEEK: 'GGGG-[W]WW',\n // \n MONTH: 'YYYY-MM' // \n\n };\n return hooks;\n});","'use strict';\n\nvar numberIsNaN = function numberIsNaN(value) {\n return value !== value;\n};\n\nmodule.exports = function is(a, b) {\n if (a === 0 && b === 0) {\n return 1 / a === 1 / b;\n }\n\n if (a === b) {\n return true;\n }\n\n if (numberIsNaN(a) && numberIsNaN(b)) {\n return true;\n }\n\n return false;\n};","'use strict';\n\nvar define = require('define-properties');\n\nvar callBind = require('call-bind');\n\nvar implementation = require('./implementation');\n\nvar getPolyfill = require('./polyfill');\n\nvar shim = require('./shim');\n\nvar polyfill = callBind(getPolyfill(), Object);\ndefine(polyfill, {\n getPolyfill: getPolyfill,\n implementation: implementation,\n shim: shim\n});\nmodule.exports = polyfill;","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = function getPolyfill() {\n return typeof Object.is === 'function' ? Object.is : implementation;\n};","'use strict';\n\nvar getPolyfill = require('./polyfill');\n\nvar define = require('define-properties');\n\nmodule.exports = function shimObjectIs() {\n var polyfill = getPolyfill();\n define(Object, {\n is: polyfill\n }, {\n is: function testObjectIs() {\n return Object.is !== polyfill;\n }\n });\n return polyfill;\n};","'use strict';\n\nvar keysShim;\n\nif (!Object.keys) {\n // modified from https://github.com/es-shims/es5-shim\n var has = Object.prototype.hasOwnProperty;\n var toStr = Object.prototype.toString;\n\n var isArgs = require('./isArguments'); // eslint-disable-line global-require\n\n\n var isEnumerable = Object.prototype.propertyIsEnumerable;\n var hasDontEnumBug = !isEnumerable.call({\n toString: null\n }, 'toString');\n var hasProtoEnumBug = isEnumerable.call(function () {}, 'prototype');\n var dontEnums = ['toString', 'toLocaleString', 'valueOf', 'hasOwnProperty', 'isPrototypeOf', 'propertyIsEnumerable', 'constructor'];\n\n var equalsConstructorPrototype = function equalsConstructorPrototype(o) {\n var ctor = o.constructor;\n return ctor && ctor.prototype === o;\n };\n\n var excludedKeys = {\n $applicationCache: true,\n $console: true,\n $external: true,\n $frame: true,\n $frameElement: true,\n $frames: true,\n $innerHeight: true,\n $innerWidth: true,\n $onmozfullscreenchange: true,\n $onmozfullscreenerror: true,\n $outerHeight: true,\n $outerWidth: true,\n $pageXOffset: true,\n $pageYOffset: true,\n $parent: true,\n $scrollLeft: true,\n $scrollTop: true,\n $scrollX: true,\n $scrollY: true,\n $self: true,\n $webkitIndexedDB: true,\n $webkitStorageInfo: true,\n $window: true\n };\n\n var hasAutomationEqualityBug = function () {\n /* global window */\n if (typeof window === 'undefined') {\n return false;\n }\n\n for (var k in window) {\n try {\n if (!excludedKeys['$' + k] && has.call(window, k) && window[k] !== null && typeof window[k] === 'object') {\n try {\n equalsConstructorPrototype(window[k]);\n } catch (e) {\n return true;\n }\n }\n } catch (e) {\n return true;\n }\n }\n\n return false;\n }();\n\n var equalsConstructorPrototypeIfNotBuggy = function equalsConstructorPrototypeIfNotBuggy(o) {\n /* global window */\n if (typeof window === 'undefined' || !hasAutomationEqualityBug) {\n return equalsConstructorPrototype(o);\n }\n\n try {\n return equalsConstructorPrototype(o);\n } catch (e) {\n return false;\n }\n };\n\n keysShim = function keys(object) {\n var isObject = object !== null && typeof object === 'object';\n var isFunction = toStr.call(object) === '[object Function]';\n var isArguments = isArgs(object);\n var isString = isObject && toStr.call(object) === '[object String]';\n var theKeys = [];\n\n if (!isObject && !isFunction && !isArguments) {\n throw new TypeError('Object.keys called on a non-object');\n }\n\n var skipProto = hasProtoEnumBug && isFunction;\n\n if (isString && object.length > 0 && !has.call(object, 0)) {\n for (var i = 0; i < object.length; ++i) {\n theKeys.push(String(i));\n }\n }\n\n if (isArguments && object.length > 0) {\n for (var j = 0; j < object.length; ++j) {\n theKeys.push(String(j));\n }\n } else {\n for (var name in object) {\n if (!(skipProto && name === 'prototype') && has.call(object, name)) {\n theKeys.push(String(name));\n }\n }\n }\n\n if (hasDontEnumBug) {\n var skipConstructor = equalsConstructorPrototypeIfNotBuggy(object);\n\n for (var k = 0; k < dontEnums.length; ++k) {\n if (!(skipConstructor && dontEnums[k] === 'constructor') && has.call(object, dontEnums[k])) {\n theKeys.push(dontEnums[k]);\n }\n }\n }\n\n return theKeys;\n };\n}\n\nmodule.exports = keysShim;","'use strict';\n\nvar slice = Array.prototype.slice;\n\nvar isArgs = require('./isArguments');\n\nvar origKeys = Object.keys;\nvar keysShim = origKeys ? function keys(o) {\n return origKeys(o);\n} : require('./implementation');\nvar originalKeys = Object.keys;\n\nkeysShim.shim = function shimObjectKeys() {\n if (Object.keys) {\n var keysWorksWithArguments = function () {\n // Safari 5.0 bug\n var args = Object.keys(arguments);\n return args && args.length === arguments.length;\n }(1, 2);\n\n if (!keysWorksWithArguments) {\n Object.keys = function keys(object) {\n // eslint-disable-line func-name-matching\n if (isArgs(object)) {\n return originalKeys(slice.call(object));\n }\n\n return originalKeys(object);\n };\n }\n } else {\n Object.keys = keysShim;\n }\n\n return Object.keys || keysShim;\n};\n\nmodule.exports = keysShim;","'use strict';\n\nvar toStr = Object.prototype.toString;\n\nmodule.exports = function isArguments(value) {\n var str = toStr.call(value);\n var isArgs = str === '[object Arguments]';\n\n if (!isArgs) {\n isArgs = str !== '[object Array]' && value !== null && typeof value === 'object' && typeof value.length === 'number' && value.length >= 0 && toStr.call(value.callee) === '[object Function]';\n }\n\n return isArgs;\n};","/**!\n * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version 1.16.1\n * @license\n * Copyright (c) 2016 Federico Zivolo and contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && typeof navigator !== 'undefined';\n\nvar timeoutDuration = function () {\n var longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\n\n for (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n return 1;\n }\n }\n\n return 0;\n}();\n\nfunction microtaskDebounce(fn) {\n var called = false;\n return function () {\n if (called) {\n return;\n }\n\n called = true;\n window.Promise.resolve().then(function () {\n called = false;\n fn();\n });\n };\n}\n\nfunction taskDebounce(fn) {\n var scheduled = false;\n return function () {\n if (!scheduled) {\n scheduled = true;\n setTimeout(function () {\n scheduled = false;\n fn();\n }, timeoutDuration);\n }\n };\n}\n\nvar supportsMicroTasks = isBrowser && window.Promise;\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\n\nvar debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;\n/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\n\nfunction isFunction(functionToCheck) {\n var getType = {};\n return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n}\n/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\n\n\nfunction getStyleComputedProperty(element, property) {\n if (element.nodeType !== 1) {\n return [];\n } // NOTE: 1 DOM access here\n\n\n var window = element.ownerDocument.defaultView;\n var css = window.getComputedStyle(element, null);\n return property ? css[property] : css;\n}\n/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\n\n\nfunction getParentNode(element) {\n if (element.nodeName === 'HTML') {\n return element;\n }\n\n return element.parentNode || element.host;\n}\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\n\n\nfunction getScrollParent(element) {\n // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n if (!element) {\n return document.body;\n }\n\n switch (element.nodeName) {\n case 'HTML':\n case 'BODY':\n return element.ownerDocument.body;\n\n case '#document':\n return element.body;\n } // Firefox want us to check `-x` and `-y` variations as well\n\n\n var _getStyleComputedProp = getStyleComputedProperty(element),\n overflow = _getStyleComputedProp.overflow,\n overflowX = _getStyleComputedProp.overflowX,\n overflowY = _getStyleComputedProp.overflowY;\n\n if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n return element;\n }\n\n return getScrollParent(getParentNode(element));\n}\n/**\n * Returns the reference node of the reference object, or the reference object itself.\n * @method\n * @memberof Popper.Utils\n * @param {Element|Object} reference - the reference element (the popper will be relative to this)\n * @returns {Element} parent\n */\n\n\nfunction getReferenceNode(reference) {\n return reference && reference.referenceNode ? reference.referenceNode : reference;\n}\n\nvar isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nvar isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n/**\n * Determines if the browser is Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @param {Number} version to check\n * @returns {Boolean} isIE\n */\n\nfunction isIE(version) {\n if (version === 11) {\n return isIE11;\n }\n\n if (version === 10) {\n return isIE10;\n }\n\n return isIE11 || isIE10;\n}\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\n\n\nfunction getOffsetParent(element) {\n if (!element) {\n return document.documentElement;\n }\n\n var noOffsetParent = isIE(10) ? document.body : null; // NOTE: 1 DOM access here\n\n var offsetParent = element.offsetParent || null; // Skip hidden elements which don't have an offsetParent\n\n while (offsetParent === noOffsetParent && element.nextElementSibling) {\n offsetParent = (element = element.nextElementSibling).offsetParent;\n }\n\n var nodeName = offsetParent && offsetParent.nodeName;\n\n if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n return element ? element.ownerDocument.documentElement : document.documentElement;\n } // .offsetParent will return the closest TH, TD or TABLE in case\n // no offsetParent is present, I hate this job...\n\n\n if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {\n return getOffsetParent(offsetParent);\n }\n\n return offsetParent;\n}\n\nfunction isOffsetContainer(element) {\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY') {\n return false;\n }\n\n return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\n}\n/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\n\n\nfunction getRoot(node) {\n if (node.parentNode !== null) {\n return getRoot(node.parentNode);\n }\n\n return node;\n}\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\n\n\nfunction findCommonOffsetParent(element1, element2) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n return document.documentElement;\n } // Here we make sure to give as \"start\" the element that comes first in the DOM\n\n\n var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n var start = order ? element1 : element2;\n var end = order ? element2 : element1; // Get common ancestor container\n\n var range = document.createRange();\n range.setStart(start, 0);\n range.setEnd(end, 0);\n var commonAncestorContainer = range.commonAncestorContainer; // Both nodes are inside #document\n\n if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\n if (isOffsetContainer(commonAncestorContainer)) {\n return commonAncestorContainer;\n }\n\n return getOffsetParent(commonAncestorContainer);\n } // one of the nodes is inside shadowDOM, find which one\n\n\n var element1root = getRoot(element1);\n\n if (element1root.host) {\n return findCommonOffsetParent(element1root.host, element2);\n } else {\n return findCommonOffsetParent(element1, getRoot(element2).host);\n }\n}\n/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\n\n\nfunction getScroll(element) {\n var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\n var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n var html = element.ownerDocument.documentElement;\n var scrollingElement = element.ownerDocument.scrollingElement || html;\n return scrollingElement[upperSide];\n }\n\n return element[upperSide];\n}\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\n\n\nfunction includeScroll(rect, element) {\n var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n var modifier = subtract ? -1 : 1;\n rect.top += scrollTop * modifier;\n rect.bottom += scrollTop * modifier;\n rect.left += scrollLeft * modifier;\n rect.right += scrollLeft * modifier;\n return rect;\n}\n/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\n\nfunction getBordersSize(styles, axis) {\n var sideA = axis === 'x' ? 'Left' : 'Top';\n var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n return parseFloat(styles['border' + sideA + 'Width']) + parseFloat(styles['border' + sideB + 'Width']);\n}\n\nfunction getSize(axis, body, html, computedStyle) {\n return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? parseInt(html['offset' + axis]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')]) : 0);\n}\n\nfunction getWindowSizes(document) {\n var body = document.body;\n var html = document.documentElement;\n var computedStyle = isIE(10) && getComputedStyle(html);\n return {\n height: getSize('Height', body, html, computedStyle),\n width: getSize('Width', body, html, computedStyle)\n };\n}\n\nvar classCallCheck = function classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar defineProperty = function defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n};\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\n\n\nfunction getClientRect(offsets) {\n return _extends({}, offsets, {\n right: offsets.left + offsets.width,\n bottom: offsets.top + offsets.height\n });\n}\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\n\n\nfunction getBoundingClientRect(element) {\n var rect = {}; // IE10 10 FIX: Please, don't ask, the element isn't\n // considered in DOM in some circumstances...\n // This isn't reproducible in IE10 compatibility mode of IE11\n\n try {\n if (isIE(10)) {\n rect = element.getBoundingClientRect();\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n rect.top += scrollTop;\n rect.left += scrollLeft;\n rect.bottom += scrollTop;\n rect.right += scrollLeft;\n } else {\n rect = element.getBoundingClientRect();\n }\n } catch (e) {}\n\n var result = {\n left: rect.left,\n top: rect.top,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top\n }; // subtract scrollbar size from sizes\n\n var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n var width = sizes.width || element.clientWidth || result.width;\n var height = sizes.height || element.clientHeight || result.height;\n var horizScrollbar = element.offsetWidth - width;\n var vertScrollbar = element.offsetHeight - height; // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n // we make this check conditional for performance reasons\n\n if (horizScrollbar || vertScrollbar) {\n var styles = getStyleComputedProperty(element);\n horizScrollbar -= getBordersSize(styles, 'x');\n vertScrollbar -= getBordersSize(styles, 'y');\n result.width -= horizScrollbar;\n result.height -= vertScrollbar;\n }\n\n return getClientRect(result);\n}\n\nfunction getOffsetRectRelativeToArbitraryNode(children, parent) {\n var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var isIE10 = isIE(10);\n var isHTML = parent.nodeName === 'HTML';\n var childrenRect = getBoundingClientRect(children);\n var parentRect = getBoundingClientRect(parent);\n var scrollParent = getScrollParent(children);\n var styles = getStyleComputedProperty(parent);\n var borderTopWidth = parseFloat(styles.borderTopWidth);\n var borderLeftWidth = parseFloat(styles.borderLeftWidth); // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n\n if (fixedPosition && isHTML) {\n parentRect.top = Math.max(parentRect.top, 0);\n parentRect.left = Math.max(parentRect.left, 0);\n }\n\n var offsets = getClientRect({\n top: childrenRect.top - parentRect.top - borderTopWidth,\n left: childrenRect.left - parentRect.left - borderLeftWidth,\n width: childrenRect.width,\n height: childrenRect.height\n });\n offsets.marginTop = 0;\n offsets.marginLeft = 0; // Subtract margins of documentElement in case it's being used as parent\n // we do this only on HTML because it's the only element that behaves\n // differently when margins are applied to it. The margins are included in\n // the box of the documentElement, in the other cases not.\n\n if (!isIE10 && isHTML) {\n var marginTop = parseFloat(styles.marginTop);\n var marginLeft = parseFloat(styles.marginLeft);\n offsets.top -= borderTopWidth - marginTop;\n offsets.bottom -= borderTopWidth - marginTop;\n offsets.left -= borderLeftWidth - marginLeft;\n offsets.right -= borderLeftWidth - marginLeft; // Attach marginTop and marginLeft because in some circumstances we may need them\n\n offsets.marginTop = marginTop;\n offsets.marginLeft = marginLeft;\n }\n\n if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\n offsets = includeScroll(offsets, parent);\n }\n\n return offsets;\n}\n\nfunction getViewportOffsetRectRelativeToArtbitraryNode(element) {\n var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var html = element.ownerDocument.documentElement;\n var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n var width = Math.max(html.clientWidth, window.innerWidth || 0);\n var height = Math.max(html.clientHeight, window.innerHeight || 0);\n var scrollTop = !excludeScroll ? getScroll(html) : 0;\n var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n var offset = {\n top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n width: width,\n height: height\n };\n return getClientRect(offset);\n}\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\n\n\nfunction isFixed(element) {\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n return false;\n }\n\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\n return true;\n }\n\n var parentNode = getParentNode(element);\n\n if (!parentNode) {\n return false;\n }\n\n return isFixed(parentNode);\n}\n/**\n * Finds the first parent of an element that has a transformed property defined\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} first transformed parent or documentElement\n */\n\n\nfunction getFixedPositionOffsetParent(element) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element || !element.parentElement || isIE()) {\n return document.documentElement;\n }\n\n var el = element.parentElement;\n\n while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n el = el.parentElement;\n }\n\n return el || document.documentElement;\n}\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @param {Boolean} fixedPosition - Is in fixed position mode\n * @returns {Object} Coordinates of the boundaries\n */\n\n\nfunction getBoundaries(popper, reference, padding, boundariesElement) {\n var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false; // NOTE: 1 DOM access here\n\n var boundaries = {\n top: 0,\n left: 0\n };\n var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference)); // Handle viewport case\n\n if (boundariesElement === 'viewport') {\n boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n } else {\n // Handle other cases based on DOM element used as boundaries\n var boundariesNode = void 0;\n\n if (boundariesElement === 'scrollParent') {\n boundariesNode = getScrollParent(getParentNode(reference));\n\n if (boundariesNode.nodeName === 'BODY') {\n boundariesNode = popper.ownerDocument.documentElement;\n }\n } else if (boundariesElement === 'window') {\n boundariesNode = popper.ownerDocument.documentElement;\n } else {\n boundariesNode = boundariesElement;\n }\n\n var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition); // In case of HTML, we need a different computation\n\n if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n var _getWindowSizes = getWindowSizes(popper.ownerDocument),\n height = _getWindowSizes.height,\n width = _getWindowSizes.width;\n\n boundaries.top += offsets.top - offsets.marginTop;\n boundaries.bottom = height + offsets.top;\n boundaries.left += offsets.left - offsets.marginLeft;\n boundaries.right = width + offsets.left;\n } else {\n // for all the other DOM elements, this one is good\n boundaries = offsets;\n }\n } // Add paddings\n\n\n padding = padding || 0;\n var isPaddingNumber = typeof padding === 'number';\n boundaries.left += isPaddingNumber ? padding : padding.left || 0;\n boundaries.top += isPaddingNumber ? padding : padding.top || 0;\n boundaries.right -= isPaddingNumber ? padding : padding.right || 0;\n boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0;\n return boundaries;\n}\n\nfunction getArea(_ref) {\n var width = _ref.width,\n height = _ref.height;\n return width * height;\n}\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\n\n\nfunction computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {\n var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\n\n if (placement.indexOf('auto') === -1) {\n return placement;\n }\n\n var boundaries = getBoundaries(popper, reference, padding, boundariesElement);\n var rects = {\n top: {\n width: boundaries.width,\n height: refRect.top - boundaries.top\n },\n right: {\n width: boundaries.right - refRect.right,\n height: boundaries.height\n },\n bottom: {\n width: boundaries.width,\n height: boundaries.bottom - refRect.bottom\n },\n left: {\n width: refRect.left - boundaries.left,\n height: boundaries.height\n }\n };\n var sortedAreas = Object.keys(rects).map(function (key) {\n return _extends({\n key: key\n }, rects[key], {\n area: getArea(rects[key])\n });\n }).sort(function (a, b) {\n return b.area - a.area;\n });\n var filteredAreas = sortedAreas.filter(function (_ref2) {\n var width = _ref2.width,\n height = _ref2.height;\n return width >= popper.clientWidth && height >= popper.clientHeight;\n });\n var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\n var variation = placement.split('-')[1];\n return computedPlacement + (variation ? '-' + variation : '');\n}\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @param {Element} fixedPosition - is in fixed position mode\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\n\n\nfunction getReferenceOffsets(state, popper, reference) {\n var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\n\n\nfunction getOuterSizes(element) {\n var window = element.ownerDocument.defaultView;\n var styles = window.getComputedStyle(element);\n var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);\n var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);\n var result = {\n width: element.offsetWidth + y,\n height: element.offsetHeight + x\n };\n return result;\n}\n/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\n\n\nfunction getOppositePlacement(placement) {\n var hash = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n };\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\n\n\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\n placement = placement.split('-')[0]; // Get popper node sizes\n\n var popperRect = getOuterSizes(popper); // Add position, width and height to our offsets object\n\n var popperOffsets = {\n width: popperRect.width,\n height: popperRect.height\n }; // depending by the popper placement we have to compute its offsets slightly differently\n\n var isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n var mainSide = isHoriz ? 'top' : 'left';\n var secondarySide = isHoriz ? 'left' : 'top';\n var measurement = isHoriz ? 'height' : 'width';\n var secondaryMeasurement = !isHoriz ? 'height' : 'width';\n popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\n\n if (placement === secondarySide) {\n popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n } else {\n popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];\n }\n\n return popperOffsets;\n}\n/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\n\n\nfunction find(arr, check) {\n // use native find if supported\n if (Array.prototype.find) {\n return arr.find(check);\n } // use `filter` to obtain the same behavior of `find`\n\n\n return arr.filter(check)[0];\n}\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\n\n\nfunction findIndex(arr, prop, value) {\n // use native findIndex if supported\n if (Array.prototype.findIndex) {\n return arr.findIndex(function (cur) {\n return cur[prop] === value;\n });\n } // use `find` + `indexOf` if `findIndex` isn't supported\n\n\n var match = find(arr, function (obj) {\n return obj[prop] === value;\n });\n return arr.indexOf(match);\n}\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\n\n\nfunction runModifiers(modifiers, data, ends) {\n var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n modifiersToRun.forEach(function (modifier) {\n if (modifier['function']) {\n // eslint-disable-line dot-notation\n console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n }\n\n var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n\n if (modifier.enabled && isFunction(fn)) {\n // Add properties to offsets to make them a complete clientRect object\n // we do this before each modifier to make sure the previous one doesn't\n // mess with these values\n data.offsets.popper = getClientRect(data.offsets.popper);\n data.offsets.reference = getClientRect(data.offsets.reference);\n data = fn(data, modifier);\n }\n });\n return data;\n}\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.
\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\n\n\nfunction update() {\n // if popper is destroyed, don't perform any further update\n if (this.state.isDestroyed) {\n return;\n }\n\n var data = {\n instance: this,\n styles: {},\n arrowStyles: {},\n attributes: {},\n flipped: false,\n offsets: {}\n }; // compute reference element offsets\n\n data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed); // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n\n data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding); // store the computed placement inside `originalPlacement`\n\n data.originalPlacement = data.placement;\n data.positionFixed = this.options.positionFixed; // compute the popper offsets\n\n data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);\n data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute'; // run the modifiers\n\n data = runModifiers(this.modifiers, data); // the first `update` will call `onCreate` callback\n // the other ones will call `onUpdate` callback\n\n if (!this.state.isCreated) {\n this.state.isCreated = true;\n this.options.onCreate(data);\n } else {\n this.options.onUpdate(data);\n }\n}\n/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\n\n\nfunction isModifierEnabled(modifiers, modifierName) {\n return modifiers.some(function (_ref) {\n var name = _ref.name,\n enabled = _ref.enabled;\n return enabled && name === modifierName;\n });\n}\n/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\n\n\nfunction getSupportedPropertyName(property) {\n var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n for (var i = 0; i < prefixes.length; i++) {\n var prefix = prefixes[i];\n var toCheck = prefix ? '' + prefix + upperProp : property;\n\n if (typeof document.body.style[toCheck] !== 'undefined') {\n return toCheck;\n }\n }\n\n return null;\n}\n/**\n * Destroys the popper.\n * @method\n * @memberof Popper\n */\n\n\nfunction destroy() {\n this.state.isDestroyed = true; // touch DOM only if `applyStyle` modifier is enabled\n\n if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n this.popper.removeAttribute('x-placement');\n this.popper.style.position = '';\n this.popper.style.top = '';\n this.popper.style.left = '';\n this.popper.style.right = '';\n this.popper.style.bottom = '';\n this.popper.style.willChange = '';\n this.popper.style[getSupportedPropertyName('transform')] = '';\n }\n\n this.disableEventListeners(); // remove the popper if user explicitly asked for the deletion on destroy\n // do not use `remove` because IE11 doesn't support it\n\n if (this.options.removeOnDestroy) {\n this.popper.parentNode.removeChild(this.popper);\n }\n\n return this;\n}\n/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\n\n\nfunction getWindow(element) {\n var ownerDocument = element.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView : window;\n}\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n var isBody = scrollParent.nodeName === 'BODY';\n var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n target.addEventListener(event, callback, {\n passive: true\n });\n\n if (!isBody) {\n attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\n }\n\n scrollParents.push(target);\n}\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\n\n\nfunction setupEventListeners(reference, options, state, updateBound) {\n // Resize event listener on window\n state.updateBound = updateBound;\n getWindow(reference).addEventListener('resize', state.updateBound, {\n passive: true\n }); // Scroll event listener on scroll parents\n\n var scrollElement = getScrollParent(reference);\n attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n state.scrollElement = scrollElement;\n state.eventsEnabled = true;\n return state;\n}\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\n\n\nfunction enableEventListeners() {\n if (!this.state.eventsEnabled) {\n this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);\n }\n}\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\n\n\nfunction removeEventListeners(reference, state) {\n // Remove resize event listener on window\n getWindow(reference).removeEventListener('resize', state.updateBound); // Remove scroll event listener on scroll parents\n\n state.scrollParents.forEach(function (target) {\n target.removeEventListener('scroll', state.updateBound);\n }); // Reset state\n\n state.updateBound = null;\n state.scrollParents = [];\n state.scrollElement = null;\n state.eventsEnabled = false;\n return state;\n}\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger `onUpdate` callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\n\n\nfunction disableEventListeners() {\n if (this.state.eventsEnabled) {\n cancelAnimationFrame(this.scheduleUpdate);\n this.state = removeEventListeners(this.reference, this.state);\n }\n}\n/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\n\n\nfunction isNumeric(n) {\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\n\n\nfunction setStyles(element, styles) {\n Object.keys(styles).forEach(function (prop) {\n var unit = ''; // add unit if the value is numeric and is one of the following\n\n if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n unit = 'px';\n }\n\n element.style[prop] = styles[prop] + unit;\n });\n}\n/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\n\n\nfunction setAttributes(element, attributes) {\n Object.keys(attributes).forEach(function (prop) {\n var value = attributes[prop];\n\n if (value !== false) {\n element.setAttribute(prop, attributes[prop]);\n } else {\n element.removeAttribute(prop);\n }\n });\n}\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\n\n\nfunction applyStyle(data) {\n // any property present in `data.styles` will be applied to the popper,\n // in this way we can make the 3rd party modifiers add custom styles to it\n // Be aware, modifiers could override the properties defined in the previous\n // lines of this modifier!\n setStyles(data.instance.popper, data.styles); // any property present in `data.attributes` will be applied to the popper,\n // they will be set as HTML attributes of the element\n\n setAttributes(data.instance.popper, data.attributes); // if arrowElement is defined and arrowStyles has some properties\n\n if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n setStyles(data.arrowElement, data.arrowStyles);\n }\n\n return data;\n}\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper\n * @param {Object} options - Popper.js options\n */\n\n\nfunction applyStyleOnLoad(reference, popper, options, modifierOptions, state) {\n // compute reference element offsets\n var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed); // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n\n var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);\n popper.setAttribute('x-placement', placement); // Apply `position` to popper before anything else because\n // without the position applied we can't guarantee correct computations\n\n setStyles(popper, {\n position: options.positionFixed ? 'fixed' : 'absolute'\n });\n return options;\n}\n/**\n * @function\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Boolean} shouldRound - If the offsets should be rounded at all\n * @returns {Object} The popper's position offsets rounded\n *\n * The tale of pixel-perfect positioning. It's still not 100% perfect, but as\n * good as it can be within reason.\n * Discussion here: https://github.com/FezVrasta/popper.js/pull/715\n *\n * Low DPI screens cause a popper to be blurry if not using full pixels (Safari\n * as well on High DPI screens).\n *\n * Firefox prefers no rounding for positioning and does not have blurriness on\n * high DPI screens.\n *\n * Only horizontal placement and left/right values need to be considered.\n */\n\n\nfunction getRoundedOffsets(data, shouldRound) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n var round = Math.round,\n floor = Math.floor;\n\n var noRound = function noRound(v) {\n return v;\n };\n\n var referenceWidth = round(reference.width);\n var popperWidth = round(popper.width);\n var isVertical = ['left', 'right'].indexOf(data.placement) !== -1;\n var isVariation = data.placement.indexOf('-') !== -1;\n var sameWidthParity = referenceWidth % 2 === popperWidth % 2;\n var bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1;\n var horizontalToInteger = !shouldRound ? noRound : isVertical || isVariation || sameWidthParity ? round : floor;\n var verticalToInteger = !shouldRound ? noRound : round;\n return {\n left: horizontalToInteger(bothOddWidth && !isVariation && shouldRound ? popper.left - 1 : popper.left),\n top: verticalToInteger(popper.top),\n bottom: verticalToInteger(popper.bottom),\n right: horizontalToInteger(popper.right)\n };\n}\n\nvar isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent);\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\n\nfunction computeStyle(data, options) {\n var x = options.x,\n y = options.y;\n var popper = data.offsets.popper; // Remove this legacy support in Popper.js v2\n\n var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'applyStyle';\n }).gpuAcceleration;\n\n if (legacyGpuAccelerationOption !== undefined) {\n console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');\n }\n\n var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;\n var offsetParent = getOffsetParent(data.instance.popper);\n var offsetParentRect = getBoundingClientRect(offsetParent); // Styles\n\n var styles = {\n position: popper.position\n };\n var offsets = getRoundedOffsets(data, window.devicePixelRatio < 2 || !isFirefox);\n var sideA = x === 'bottom' ? 'top' : 'bottom';\n var sideB = y === 'right' ? 'left' : 'right'; // if gpuAcceleration is set to `true` and transform is supported,\n // we use `translate3d` to apply the position to the popper we\n // automatically use the supported prefixed version if needed\n\n var prefixedProperty = getSupportedPropertyName('transform'); // now, let's make a step back and look at this code closely (wtf?)\n // If the content of the popper grows once it's been positioned, it\n // may happen that the popper gets misplaced because of the new content\n // overflowing its reference element\n // To avoid this problem, we provide two options (x and y), which allow\n // the consumer to define the offset origin.\n // If we position a popper on top of a reference element, we can set\n // `x` to `top` to make the popper grow towards its top instead of\n // its bottom.\n\n var left = void 0,\n top = void 0;\n\n if (sideA === 'bottom') {\n // when offsetParent is the positioning is relative to the bottom of the screen (excluding the scrollbar)\n // and not the bottom of the html element\n if (offsetParent.nodeName === 'HTML') {\n top = -offsetParent.clientHeight + offsets.bottom;\n } else {\n top = -offsetParentRect.height + offsets.bottom;\n }\n } else {\n top = offsets.top;\n }\n\n if (sideB === 'right') {\n if (offsetParent.nodeName === 'HTML') {\n left = -offsetParent.clientWidth + offsets.right;\n } else {\n left = -offsetParentRect.width + offsets.right;\n }\n } else {\n left = offsets.left;\n }\n\n if (gpuAcceleration && prefixedProperty) {\n styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';\n styles[sideA] = 0;\n styles[sideB] = 0;\n styles.willChange = 'transform';\n } else {\n // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n var invertTop = sideA === 'bottom' ? -1 : 1;\n var invertLeft = sideB === 'right' ? -1 : 1;\n styles[sideA] = top * invertTop;\n styles[sideB] = left * invertLeft;\n styles.willChange = sideA + ', ' + sideB;\n } // Attributes\n\n\n var attributes = {\n 'x-placement': data.placement\n }; // Update `data` attributes, styles and arrowStyles\n\n data.attributes = _extends({}, attributes, data.attributes);\n data.styles = _extends({}, styles, data.styles);\n data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);\n return data;\n}\n/**\n * Helper used to know if the given modifier depends from another one.
\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\n\n\nfunction isModifierRequired(modifiers, requestingName, requestedName) {\n var requesting = find(modifiers, function (_ref) {\n var name = _ref.name;\n return name === requestingName;\n });\n var isRequired = !!requesting && modifiers.some(function (modifier) {\n return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;\n });\n\n if (!isRequired) {\n var _requesting = '`' + requestingName + '`';\n\n var requested = '`' + requestedName + '`';\n console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');\n }\n\n return isRequired;\n}\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\n\n\nfunction arrow(data, options) {\n var _data$offsets$arrow; // arrow depends on keepTogether in order to work\n\n\n if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n return data;\n }\n\n var arrowElement = options.element; // if arrowElement is a string, suppose it's a CSS selector\n\n if (typeof arrowElement === 'string') {\n arrowElement = data.instance.popper.querySelector(arrowElement); // if arrowElement is not found, don't run the modifier\n\n if (!arrowElement) {\n return data;\n }\n } else {\n // if the arrowElement isn't a query selector we must check that the\n // provided DOM node is child of its popper node\n if (!data.instance.popper.contains(arrowElement)) {\n console.warn('WARNING: `arrow.element` must be child of its popper element!');\n return data;\n }\n }\n\n var placement = data.placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n var isVertical = ['left', 'right'].indexOf(placement) !== -1;\n var len = isVertical ? 'height' : 'width';\n var sideCapitalized = isVertical ? 'Top' : 'Left';\n var side = sideCapitalized.toLowerCase();\n var altSide = isVertical ? 'left' : 'top';\n var opSide = isVertical ? 'bottom' : 'right';\n var arrowElementSize = getOuterSizes(arrowElement)[len]; //\n // extends keepTogether behavior making sure the popper and its\n // reference have enough pixels in conjunction\n //\n // top/left side\n\n if (reference[opSide] - arrowElementSize < popper[side]) {\n data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);\n } // bottom/right side\n\n\n if (reference[side] + arrowElementSize > popper[opSide]) {\n data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];\n }\n\n data.offsets.popper = getClientRect(data.offsets.popper); // compute center of the popper\n\n var center = reference[side] + reference[len] / 2 - arrowElementSize / 2; // Compute the sideValue using the updated popper offsets\n // take popper margin in account because we don't have this info available\n\n var css = getStyleComputedProperty(data.instance.popper);\n var popperMarginSide = parseFloat(css['margin' + sideCapitalized]);\n var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width']);\n var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide; // prevent arrowElement from being placed not contiguously to its popper\n\n sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n data.arrowElement = arrowElement;\n data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);\n return data;\n}\n/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\n\n\nfunction getOppositeVariation(variation) {\n if (variation === 'end') {\n return 'start';\n } else if (variation === 'start') {\n return 'end';\n }\n\n return variation;\n}\n/**\n * List of accepted placements to use as values of the `placement` option.
\n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right.
\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-end` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\n\n\nvar placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start']; // Get rid of `auto` `auto-start` and `auto-end`\n\nvar validPlacements = placements.slice(3);\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\n\nfunction clockwise(placement) {\n var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var index = validPlacements.indexOf(placement);\n var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));\n return counter ? arr.reverse() : arr;\n}\n\nvar BEHAVIORS = {\n FLIP: 'flip',\n CLOCKWISE: 'clockwise',\n COUNTERCLOCKWISE: 'counterclockwise'\n};\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\n\nfunction flip(data, options) {\n // if `inner` modifier is enabled, we can't use the `flip` modifier\n if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n return data;\n }\n\n if (data.flipped && data.placement === data.originalPlacement) {\n // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n return data;\n }\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);\n var placement = data.placement.split('-')[0];\n var placementOpposite = getOppositePlacement(placement);\n var variation = data.placement.split('-')[1] || '';\n var flipOrder = [];\n\n switch (options.behavior) {\n case BEHAVIORS.FLIP:\n flipOrder = [placement, placementOpposite];\n break;\n\n case BEHAVIORS.CLOCKWISE:\n flipOrder = clockwise(placement);\n break;\n\n case BEHAVIORS.COUNTERCLOCKWISE:\n flipOrder = clockwise(placement, true);\n break;\n\n default:\n flipOrder = options.behavior;\n }\n\n flipOrder.forEach(function (step, index) {\n if (placement !== step || flipOrder.length === index + 1) {\n return data;\n }\n\n placement = data.placement.split('-')[0];\n placementOpposite = getOppositePlacement(placement);\n var popperOffsets = data.offsets.popper;\n var refOffsets = data.offsets.reference; // using floor because the reference offsets may contain decimals we are not going to consider here\n\n var floor = Math.floor;\n var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);\n var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);\n var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom; // flip the variation if required\n\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1; // flips variation if reference element overflows boundaries\n\n var flippedVariationByRef = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom); // flips variation if popper content overflows boundaries\n\n var flippedVariationByContent = !!options.flipVariationsByContent && (isVertical && variation === 'start' && overflowsRight || isVertical && variation === 'end' && overflowsLeft || !isVertical && variation === 'start' && overflowsBottom || !isVertical && variation === 'end' && overflowsTop);\n var flippedVariation = flippedVariationByRef || flippedVariationByContent;\n\n if (overlapsRef || overflowsBoundaries || flippedVariation) {\n // this boolean to detect any flip loop\n data.flipped = true;\n\n if (overlapsRef || overflowsBoundaries) {\n placement = flipOrder[index + 1];\n }\n\n if (flippedVariation) {\n variation = getOppositeVariation(variation);\n }\n\n data.placement = placement + (variation ? '-' + variation : ''); // this object contains `position`, we want to preserve it along with\n // any additional property we may add in the future\n\n data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));\n data = runModifiers(data.instance.modifiers, data, 'flip');\n }\n });\n return data;\n}\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\n\n\nfunction keepTogether(data) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n var placement = data.placement.split('-')[0];\n var floor = Math.floor;\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n var side = isVertical ? 'right' : 'bottom';\n var opSide = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n if (popper[side] < floor(reference[opSide])) {\n data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];\n }\n\n if (popper[opSide] > floor(reference[side])) {\n data.offsets.popper[opSide] = floor(reference[side]);\n }\n\n return data;\n}\n/**\n * Converts a string containing value + unit into a px value number\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} str - Value + unit string\n * @argument {String} measurement - `height` or `width`\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @returns {Number|String}\n * Value in pixels, or original string if no values were extracted\n */\n\n\nfunction toValue(str, measurement, popperOffsets, referenceOffsets) {\n // separate value from unit\n var split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n var value = +split[1];\n var unit = split[2]; // If it's not a number it's an operator, I guess\n\n if (!value) {\n return str;\n }\n\n if (unit.indexOf('%') === 0) {\n var element = void 0;\n\n switch (unit) {\n case '%p':\n element = popperOffsets;\n break;\n\n case '%':\n case '%r':\n default:\n element = referenceOffsets;\n }\n\n var rect = getClientRect(element);\n return rect[measurement] / 100 * value;\n } else if (unit === 'vh' || unit === 'vw') {\n // if is a vh or vw, we calculate the size based on the viewport\n var size = void 0;\n\n if (unit === 'vh') {\n size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\n } else {\n size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\n }\n\n return size / 100 * value;\n } else {\n // if is an explicit pixel unit, we get rid of the unit and keep the value\n // if is an implicit unit, it's px, and we return just the value\n return value;\n }\n}\n/**\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} offset\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @argument {String} basePlacement\n * @returns {Array} a two cells array with x and y offsets in numbers\n */\n\n\nfunction parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {\n var offsets = [0, 0]; // Use height if placement is left or right and index is 0 otherwise use width\n // in this way the first offset will use an axis and the second one\n // will use the other one\n\n var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1; // Split the offset string to obtain a list of values and operands\n // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n\n var fragments = offset.split(/(\\+|\\-)/).map(function (frag) {\n return frag.trim();\n }); // Detect if the offset string contains a pair of values or a single one\n // they could be separated by comma or space\n\n var divider = fragments.indexOf(find(fragments, function (frag) {\n return frag.search(/,|\\s/) !== -1;\n }));\n\n if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');\n } // If divider is found, we divide the list of values and operands to divide\n // them by ofset X and Y.\n\n\n var splitRegex = /\\s*,\\s*|\\s+/;\n var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments]; // Convert the values with units to absolute pixels to allow our computations\n\n ops = ops.map(function (op, index) {\n // Most of the units rely on the orientation of the popper\n var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';\n var mergeWithPrevious = false;\n return op // This aggregates any `+` or `-` sign that aren't considered operators\n // e.g.: 10 + +5 => [10, +, +5]\n .reduce(function (a, b) {\n if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n a[a.length - 1] = b;\n mergeWithPrevious = true;\n return a;\n } else if (mergeWithPrevious) {\n a[a.length - 1] += b;\n mergeWithPrevious = false;\n return a;\n } else {\n return a.concat(b);\n }\n }, []) // Here we convert the string values into number values (in px)\n .map(function (str) {\n return toValue(str, measurement, popperOffsets, referenceOffsets);\n });\n }); // Loop trough the offsets arrays and execute the operations\n\n ops.forEach(function (op, index) {\n op.forEach(function (frag, index2) {\n if (isNumeric(frag)) {\n offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n }\n });\n });\n return offsets;\n}\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @argument {Number|String} options.offset=0\n * The offset value as described in the modifier description\n * @returns {Object} The data object, properly modified\n */\n\n\nfunction offset(data, _ref) {\n var offset = _ref.offset;\n var placement = data.placement,\n _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n var basePlacement = placement.split('-')[0];\n var offsets = void 0;\n\n if (isNumeric(+offset)) {\n offsets = [+offset, 0];\n } else {\n offsets = parseOffset(offset, popper, reference, basePlacement);\n }\n\n if (basePlacement === 'left') {\n popper.top += offsets[0];\n popper.left -= offsets[1];\n } else if (basePlacement === 'right') {\n popper.top += offsets[0];\n popper.left += offsets[1];\n } else if (basePlacement === 'top') {\n popper.left += offsets[0];\n popper.top -= offsets[1];\n } else if (basePlacement === 'bottom') {\n popper.left += offsets[0];\n popper.top += offsets[1];\n }\n\n data.popper = popper;\n return data;\n}\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\n\n\nfunction preventOverflow(data, options) {\n var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper); // If offsetParent is the reference element, we really want to\n // go one step up and use the next offsetParent as reference to\n // avoid to make this modifier completely useless and look like broken\n\n if (data.instance.reference === boundariesElement) {\n boundariesElement = getOffsetParent(boundariesElement);\n } // NOTE: DOM access here\n // resets the popper's position so that the document size can be calculated excluding\n // the size of the popper element itself\n\n\n var transformProp = getSupportedPropertyName('transform');\n var popperStyles = data.instance.popper.style; // assignment to help minification\n\n var top = popperStyles.top,\n left = popperStyles.left,\n transform = popperStyles[transformProp];\n popperStyles.top = '';\n popperStyles.left = '';\n popperStyles[transformProp] = '';\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed); // NOTE: DOM access here\n // restores the original style properties after the offsets have been computed\n\n popperStyles.top = top;\n popperStyles.left = left;\n popperStyles[transformProp] = transform;\n options.boundaries = boundaries;\n var order = options.priority;\n var popper = data.offsets.popper;\n var check = {\n primary: function primary(placement) {\n var value = popper[placement];\n\n if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {\n value = Math.max(popper[placement], boundaries[placement]);\n }\n\n return defineProperty({}, placement, value);\n },\n secondary: function secondary(placement) {\n var mainSide = placement === 'right' ? 'left' : 'top';\n var value = popper[mainSide];\n\n if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {\n value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));\n }\n\n return defineProperty({}, mainSide, value);\n }\n };\n order.forEach(function (placement) {\n var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n popper = _extends({}, popper, check[side](placement));\n });\n data.offsets.popper = popper;\n return data;\n}\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\n\n\nfunction shift(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var shiftvariation = placement.split('-')[1]; // if shift shiftvariation is specified, run the modifier\n\n if (shiftvariation) {\n var _data$offsets = data.offsets,\n reference = _data$offsets.reference,\n popper = _data$offsets.popper;\n var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n var side = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n var shiftOffsets = {\n start: defineProperty({}, side, reference[side]),\n end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])\n };\n data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);\n }\n\n return data;\n}\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\n\n\nfunction hide(data) {\n if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n return data;\n }\n\n var refRect = data.offsets.reference;\n var bound = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'preventOverflow';\n }).boundaries;\n\n if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === true) {\n return data;\n }\n\n data.hide = true;\n data.attributes['x-out-of-boundaries'] = '';\n } else {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === false) {\n return data;\n }\n\n data.hide = false;\n data.attributes['x-out-of-boundaries'] = false;\n }\n\n return data;\n}\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\n\n\nfunction inner(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n data.placement = getOppositePlacement(placement);\n data.offsets.popper = getClientRect(popper);\n return data;\n}\n/**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property.
\n * These functions will be called on each update, this means that you must\n * make sure they are performant enough to avoid performance bottlenecks.\n *\n * @function ModifierFn\n * @argument {dataObject} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {dataObject} The data object, properly modified\n */\n\n/**\n * Modifiers are plugins used to alter the behavior of your poppers.
\n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n * needed by the library.\n *\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n * All the other properties are configurations that could be tweaked.\n * @namespace modifiers\n */\n\n\nvar modifiers = {\n /**\n * Modifier used to shift the popper on the start or end of its reference\n * element.
\n * It will read the variation of the `placement` property.
\n * It can be one either `-end` or `-start`.\n * @memberof modifiers\n * @inner\n */\n shift: {\n /** @prop {number} order=100 - Index used to define the order of execution */\n order: 100,\n\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n\n /** @prop {ModifierFn} */\n fn: shift\n },\n\n /**\n * The `offset` modifier can shift your popper on both its axis.\n *\n * It accepts the following units:\n * - `px` or unit-less, interpreted as pixels\n * - `%` or `%r`, percentage relative to the length of the reference element\n * - `%p`, percentage relative to the length of the popper element\n * - `vw`, CSS viewport width unit\n * - `vh`, CSS viewport height unit\n *\n * For length is intended the main axis relative to the placement of the popper.
\n * This means that if the placement is `top` or `bottom`, the length will be the\n * `width`. In case of `left` or `right`, it will be the `height`.\n *\n * You can provide a single value (as `Number` or `String`), or a pair of values\n * as `String` divided by a comma or one (or more) white spaces.
\n * The latter is a deprecated method because it leads to confusion and will be\n * removed in v2.
\n * Additionally, it accepts additions and subtractions between different units.\n * Note that multiplications and divisions aren't supported.\n *\n * Valid examples are:\n * ```\n * 10\n * '10%'\n * '10, 10'\n * '10%, 10'\n * '10 + 10%'\n * '10 - 5vh + 3%'\n * '-10px + 5vh, 5px - 6%'\n * ```\n * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\n * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373).\n *\n * @memberof modifiers\n * @inner\n */\n offset: {\n /** @prop {number} order=200 - Index used to define the order of execution */\n order: 200,\n\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n\n /** @prop {ModifierFn} */\n fn: offset,\n\n /** @prop {Number|String} offset=0\n * The offset value as described in the modifier description\n */\n offset: 0\n },\n\n /**\n * Modifier used to prevent the popper from being positioned outside the boundary.\n *\n * A scenario exists where the reference itself is not within the boundaries.
\n * We can say it has \"escaped the boundaries\" — or just \"escaped\".
\n * In this case we need to decide whether the popper should either:\n *\n * - detach from the reference and remain \"trapped\" in the boundaries, or\n * - if it should ignore the boundary and \"escape with its reference\"\n *\n * When `escapeWithReference` is set to`true` and reference is completely\n * outside its boundaries, the popper will overflow (or completely leave)\n * the boundaries in order to remain attached to the edge of the reference.\n *\n * @memberof modifiers\n * @inner\n */\n preventOverflow: {\n /** @prop {number} order=300 - Index used to define the order of execution */\n order: 300,\n\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n\n /** @prop {ModifierFn} */\n fn: preventOverflow,\n\n /**\n * @prop {Array} [priority=['left','right','top','bottom']]\n * Popper will try to prevent overflow following these priorities by default,\n * then, it could overflow on the left and on top of the `boundariesElement`\n */\n priority: ['left', 'right', 'top', 'bottom'],\n\n /**\n * @prop {number} padding=5\n * Amount of pixel used to define a minimum distance between the boundaries\n * and the popper. This makes sure the popper always has a little padding\n * between the edges of its container\n */\n padding: 5,\n\n /**\n * @prop {String|HTMLElement} boundariesElement='scrollParent'\n * Boundaries used by the modifier. Can be `scrollParent`, `window`,\n * `viewport` or any DOM element.\n */\n boundariesElement: 'scrollParent'\n },\n\n /**\n * Modifier used to make sure the reference and its popper stay near each other\n * without leaving any gap between the two. Especially useful when the arrow is\n * enabled and you want to ensure that it points to its reference element.\n * It cares only about the first axis. You can still have poppers with margin\n * between the popper and its reference element.\n * @memberof modifiers\n * @inner\n */\n keepTogether: {\n /** @prop {number} order=400 - Index used to define the order of execution */\n order: 400,\n\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n\n /** @prop {ModifierFn} */\n fn: keepTogether\n },\n\n /**\n * This modifier is used to move the `arrowElement` of the popper to make\n * sure it is positioned between the reference element and its popper element.\n * It will read the outer size of the `arrowElement` node to detect how many\n * pixels of conjunction are needed.\n *\n * It has no effect if no `arrowElement` is provided.\n * @memberof modifiers\n * @inner\n */\n arrow: {\n /** @prop {number} order=500 - Index used to define the order of execution */\n order: 500,\n\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n\n /** @prop {ModifierFn} */\n fn: arrow,\n\n /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n element: '[x-arrow]'\n },\n\n /**\n * Modifier used to flip the popper's placement when it starts to overlap its\n * reference element.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n *\n * **NOTE:** this modifier will interrupt the current update cycle and will\n * restart it if it detects the need to flip the placement.\n * @memberof modifiers\n * @inner\n */\n flip: {\n /** @prop {number} order=600 - Index used to define the order of execution */\n order: 600,\n\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n\n /** @prop {ModifierFn} */\n fn: flip,\n\n /**\n * @prop {String|Array} behavior='flip'\n * The behavior used to change the popper's placement. It can be one of\n * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n * placements (with optional variations)\n */\n behavior: 'flip',\n\n /**\n * @prop {number} padding=5\n * The popper will flip if it hits the edges of the `boundariesElement`\n */\n padding: 5,\n\n /**\n * @prop {String|HTMLElement} boundariesElement='viewport'\n * The element which will define the boundaries of the popper position.\n * The popper will never be placed outside of the defined boundaries\n * (except if `keepTogether` is enabled)\n */\n boundariesElement: 'viewport',\n\n /**\n * @prop {Boolean} flipVariations=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the reference element overlaps its boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariations: false,\n\n /**\n * @prop {Boolean} flipVariationsByContent=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the popper element overlaps its reference boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariationsByContent: false\n },\n\n /**\n * Modifier used to make the popper flow toward the inner of the reference element.\n * By default, when this modifier is disabled, the popper will be placed outside\n * the reference element.\n * @memberof modifiers\n * @inner\n */\n inner: {\n /** @prop {number} order=700 - Index used to define the order of execution */\n order: 700,\n\n /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n enabled: false,\n\n /** @prop {ModifierFn} */\n fn: inner\n },\n\n /**\n * Modifier used to hide the popper when its reference element is outside of the\n * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n * be used to hide with a CSS selector the popper when its reference is\n * out of boundaries.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n * @memberof modifiers\n * @inner\n */\n hide: {\n /** @prop {number} order=800 - Index used to define the order of execution */\n order: 800,\n\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n\n /** @prop {ModifierFn} */\n fn: hide\n },\n\n /**\n * Computes the style that will be applied to the popper element to gets\n * properly positioned.\n *\n * Note that this modifier will not touch the DOM, it just prepares the styles\n * so that `applyStyle` modifier can apply it. This separation is useful\n * in case you need to replace `applyStyle` with a custom implementation.\n *\n * This modifier has `850` as `order` value to maintain backward compatibility\n * with previous versions of Popper.js. Expect the modifiers ordering method\n * to change in future major versions of the library.\n *\n * @memberof modifiers\n * @inner\n */\n computeStyle: {\n /** @prop {number} order=850 - Index used to define the order of execution */\n order: 850,\n\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n\n /** @prop {ModifierFn} */\n fn: computeStyle,\n\n /**\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: true,\n\n /**\n * @prop {string} [x='bottom']\n * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n * Change this if your popper should grow in a direction different from `bottom`\n */\n x: 'bottom',\n\n /**\n * @prop {string} [x='left']\n * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n * Change this if your popper should grow in a direction different from `right`\n */\n y: 'right'\n },\n\n /**\n * Applies the computed styles to the popper element.\n *\n * All the DOM manipulations are limited to this modifier. This is useful in case\n * you want to integrate Popper.js inside a framework or view library and you\n * want to delegate all the DOM manipulations to it.\n *\n * Note that if you disable this modifier, you must make sure the popper element\n * has its position set to `absolute` before Popper.js can do its work!\n *\n * Just disable this modifier and define your own to achieve the desired effect.\n *\n * @memberof modifiers\n * @inner\n */\n applyStyle: {\n /** @prop {number} order=900 - Index used to define the order of execution */\n order: 900,\n\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n\n /** @prop {ModifierFn} */\n fn: applyStyle,\n\n /** @prop {Function} */\n onLoad: applyStyleOnLoad,\n\n /**\n * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: undefined\n }\n};\n/**\n * The `dataObject` is an object containing all the information used by Popper.js.\n * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n * @name dataObject\n * @property {Object} data.instance The Popper.js instance\n * @property {String} data.placement Placement applied to popper\n * @property {String} data.originalPlacement Placement originally defined on init\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.boundaries Offsets of the popper boundaries\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n */\n\n/**\n * Default options provided to Popper.js constructor.
\n * These can be overridden using the `options` argument of Popper.js.
\n * To override an option, simply pass an object with the same\n * structure of the `options` object, as the 3rd argument. For example:\n * ```\n * new Popper(ref, pop, {\n * modifiers: {\n * preventOverflow: { enabled: false }\n * }\n * })\n * ```\n * @type {Object}\n * @static\n * @memberof Popper\n */\n\nvar Defaults = {\n /**\n * Popper's placement.\n * @prop {Popper.placements} placement='bottom'\n */\n placement: 'bottom',\n\n /**\n * Set this to true if you want popper to position it self in 'fixed' mode\n * @prop {Boolean} positionFixed=false\n */\n positionFixed: false,\n\n /**\n * Whether events (resize, scroll) are initially enabled.\n * @prop {Boolean} eventsEnabled=true\n */\n eventsEnabled: true,\n\n /**\n * Set to true if you want to automatically remove the popper when\n * you call the `destroy` method.\n * @prop {Boolean} removeOnDestroy=false\n */\n removeOnDestroy: false,\n\n /**\n * Callback called when the popper is created.
\n * By default, it is set to no-op.
\n * Access Popper.js instance with `data.instance`.\n * @prop {onCreate}\n */\n onCreate: function onCreate() {},\n\n /**\n * Callback called when the popper is updated. This callback is not called\n * on the initialization/creation of the popper, but only on subsequent\n * updates.
\n * By default, it is set to no-op.
\n * Access Popper.js instance with `data.instance`.\n * @prop {onUpdate}\n */\n onUpdate: function onUpdate() {},\n\n /**\n * List of modifiers used to modify the offsets before they are applied to the popper.\n * They provide most of the functionalities of Popper.js.\n * @prop {modifiers}\n */\n modifiers: modifiers\n};\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n// Utils\n// Methods\n\nvar Popper = function () {\n /**\n * Creates a new Popper.js instance.\n * @class Popper\n * @param {Element|referenceObject} reference - The reference element used to position the popper\n * @param {Element} popper - The HTML / XML element used as the popper\n * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\n * @return {Object} instance - The generated Popper.js instance\n */\n function Popper(reference, popper) {\n var _this = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n classCallCheck(this, Popper);\n\n this.scheduleUpdate = function () {\n return requestAnimationFrame(_this.update);\n }; // make update() debounced, so that it only runs at most once-per-tick\n\n\n this.update = debounce(this.update.bind(this)); // with {} we create a new object with the options inside it\n\n this.options = _extends({}, Popper.Defaults, options); // init state\n\n this.state = {\n isDestroyed: false,\n isCreated: false,\n scrollParents: []\n }; // get reference and popper elements (allow jQuery wrappers)\n\n this.reference = reference && reference.jquery ? reference[0] : reference;\n this.popper = popper && popper.jquery ? popper[0] : popper; // Deep merge modifiers options\n\n this.options.modifiers = {};\n Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {\n _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});\n }); // Refactoring modifiers' list (Object => Array)\n\n this.modifiers = Object.keys(this.options.modifiers).map(function (name) {\n return _extends({\n name: name\n }, _this.options.modifiers[name]);\n }) // sort the modifiers by order\n .sort(function (a, b) {\n return a.order - b.order;\n }); // modifiers have the ability to execute arbitrary code when Popper.js get inited\n // such code is executed in the same order of its modifier\n // they could add new properties to their options configuration\n // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n\n this.modifiers.forEach(function (modifierOptions) {\n if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);\n }\n }); // fire the first update to position the popper in the right place\n\n this.update();\n var eventsEnabled = this.options.eventsEnabled;\n\n if (eventsEnabled) {\n // setup event listeners, they will take care of update the position in specific situations\n this.enableEventListeners();\n }\n\n this.state.eventsEnabled = eventsEnabled;\n } // We can't use class properties because they don't get listed in the\n // class prototype and break stuff like Sinon stubs\n\n\n createClass(Popper, [{\n key: 'update',\n value: function update$$1() {\n return update.call(this);\n }\n }, {\n key: 'destroy',\n value: function destroy$$1() {\n return destroy.call(this);\n }\n }, {\n key: 'enableEventListeners',\n value: function enableEventListeners$$1() {\n return enableEventListeners.call(this);\n }\n }, {\n key: 'disableEventListeners',\n value: function disableEventListeners$$1() {\n return disableEventListeners.call(this);\n }\n /**\n * Schedules an update. It will run on the next UI update available.\n * @method scheduleUpdate\n * @memberof Popper\n */\n\n /**\n * Collection of utilities useful when writing custom modifiers.\n * Starting from version 1.7, this method is available only if you\n * include `popper-utils.js` before `popper.js`.\n *\n * **DEPRECATION**: This way to access PopperUtils is deprecated\n * and will be removed in v2! Use the PopperUtils module directly instead.\n * Due to the high instability of the methods contained in Utils, we can't\n * guarantee them to follow semver. Use them at your own risk!\n * @static\n * @private\n * @type {Object}\n * @deprecated since version 1.8\n * @member Utils\n * @memberof Popper\n */\n\n }]);\n return Popper;\n}();\n/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node.
\n * You can use this method to position a popper relatively to a set of coordinates\n * in case you don't have a DOM node to use as reference.\n *\n * ```\n * new Popper(referenceObject, popperNode);\n * ```\n *\n * NB: This feature isn't supported in Internet Explorer 10.\n * @name referenceObject\n * @property {Function} data.getBoundingClientRect\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n * @property {number} data.clientWidth\n * An ES6 getter that will return the width of the virtual reference element.\n * @property {number} data.clientHeight\n * An ES6 getter that will return the height of the virtual reference element.\n */\n\n\nPopper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\nPopper.placements = placements;\nPopper.Defaults = Defaults;\nexport default Popper;","/* global Map:readonly, Set:readonly, ArrayBuffer:readonly */\nvar hasElementType = typeof Element !== 'undefined';\nvar hasMap = typeof Map === 'function';\nvar hasSet = typeof Set === 'function';\nvar hasArrayBuffer = typeof ArrayBuffer === 'function' && !!ArrayBuffer.isView; // Note: We **don't** need `envHasBigInt64Array` in fde es6/index.js\n\nfunction equal(a, b) {\n // START: fast-deep-equal es6/index.js 3.1.1\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 var length, i, keys;\n\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n\n for (i = length; i-- !== 0;) {\n if (!equal(a[i], b[i])) return false;\n }\n\n return true;\n } // START: Modifications:\n // 1. Extra `has &&` helpers in initial condition allow es6 code\n // to co-exist with es5.\n // 2. Replace `for of` with es5 compliant iteration using `for`.\n // Basically, take:\n //\n // ```js\n // for (i of a.entries())\n // if (!b.has(i[0])) return false;\n // ```\n //\n // ... and convert to:\n //\n // ```js\n // it = a.entries();\n // while (!(i = it.next()).done)\n // if (!b.has(i.value[0])) return false;\n // ```\n //\n // **Note**: `i` access switches to `i.value`.\n\n\n var it;\n\n if (hasMap && a instanceof Map && b instanceof Map) {\n if (a.size !== b.size) return false;\n it = a.entries();\n\n while (!(i = it.next()).done) {\n if (!b.has(i.value[0])) return false;\n }\n\n it = a.entries();\n\n while (!(i = it.next()).done) {\n if (!equal(i.value[1], b.get(i.value[0]))) return false;\n }\n\n return true;\n }\n\n if (hasSet && a instanceof Set && b instanceof Set) {\n if (a.size !== b.size) return false;\n it = a.entries();\n\n while (!(i = it.next()).done) {\n if (!b.has(i.value[0])) return false;\n }\n\n return true;\n } // END: Modifications\n\n\n if (hasArrayBuffer && ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n length = a.length;\n if (length != b.length) return false;\n\n for (i = length; i-- !== 0;) {\n if (a[i] !== b[i]) return false;\n }\n\n return true;\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 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 } // END: fast-deep-equal\n // START: react-fast-compare\n // custom handling for DOM elements\n\n\n if (hasElementType && a instanceof Element) return false; // custom handling for React/Preact\n\n for (i = length; i-- !== 0;) {\n if ((keys[i] === '_owner' || keys[i] === '__v' || keys[i] === '__o') && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner\n // Preact-specific: avoid traversing Preact elements' __v and __o\n // __v = $_original / $_vnode\n // __o = $_owner\n // These properties contain circular references and are not needed when\n // comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of elements\n continue;\n } // all other properties should be traversed as usual\n\n\n if (!equal(a[keys[i]], b[keys[i]])) return false;\n } // END: react-fast-compare\n // START: fast-deep-equal\n\n\n return true;\n }\n\n return a !== a && b !== b;\n} // end fast-deep-equal\n\n\nmodule.exports = function isEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if ((error.message || '').match(/stack|recursion/i)) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('react-fast-compare cannot handle circular refs');\n return false;\n } // some other error. we should definitely know about these\n\n\n throw error;\n }\n};","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';\n\nvar b = \"function\" === typeof Symbol && Symbol.for,\n c = b ? Symbol.for(\"react.element\") : 60103,\n d = b ? Symbol.for(\"react.portal\") : 60106,\n e = b ? Symbol.for(\"react.fragment\") : 60107,\n f = b ? Symbol.for(\"react.strict_mode\") : 60108,\n g = b ? Symbol.for(\"react.profiler\") : 60114,\n h = b ? Symbol.for(\"react.provider\") : 60109,\n k = b ? Symbol.for(\"react.context\") : 60110,\n l = b ? Symbol.for(\"react.async_mode\") : 60111,\n m = b ? Symbol.for(\"react.concurrent_mode\") : 60111,\n n = b ? Symbol.for(\"react.forward_ref\") : 60112,\n p = b ? Symbol.for(\"react.suspense\") : 60113,\n q = b ? Symbol.for(\"react.suspense_list\") : 60120,\n r = b ? Symbol.for(\"react.memo\") : 60115,\n t = b ? Symbol.for(\"react.lazy\") : 60116,\n v = b ? Symbol.for(\"react.block\") : 60121,\n w = b ? Symbol.for(\"react.fundamental\") : 60117,\n x = b ? Symbol.for(\"react.responder\") : 60118,\n y = b ? Symbol.for(\"react.scope\") : 60119;\n\nfunction z(a) {\n if (\"object\" === typeof a && null !== a) {\n var u = a.$$typeof;\n\n switch (u) {\n case c:\n switch (a = a.type, a) {\n case l:\n case m:\n case e:\n case g:\n case f:\n case p:\n return a;\n\n default:\n switch (a = a && a.$$typeof, a) {\n case k:\n case n:\n case t:\n case r:\n case h:\n return a;\n\n default:\n return u;\n }\n\n }\n\n case d:\n return u;\n }\n }\n}\n\nfunction A(a) {\n return z(a) === m;\n}\n\nexports.AsyncMode = l;\nexports.ConcurrentMode = m;\nexports.ContextConsumer = k;\nexports.ContextProvider = h;\nexports.Element = c;\nexports.ForwardRef = n;\nexports.Fragment = e;\nexports.Lazy = t;\nexports.Memo = r;\nexports.Portal = d;\nexports.Profiler = g;\nexports.StrictMode = f;\nexports.Suspense = p;\n\nexports.isAsyncMode = function (a) {\n return A(a) || z(a) === l;\n};\n\nexports.isConcurrentMode = A;\n\nexports.isContextConsumer = function (a) {\n return z(a) === k;\n};\n\nexports.isContextProvider = function (a) {\n return z(a) === h;\n};\n\nexports.isElement = function (a) {\n return \"object\" === typeof a && null !== a && a.$$typeof === c;\n};\n\nexports.isForwardRef = function (a) {\n return z(a) === n;\n};\n\nexports.isFragment = function (a) {\n return z(a) === e;\n};\n\nexports.isLazy = function (a) {\n return z(a) === t;\n};\n\nexports.isMemo = function (a) {\n return z(a) === r;\n};\n\nexports.isPortal = function (a) {\n return z(a) === d;\n};\n\nexports.isProfiler = function (a) {\n return z(a) === g;\n};\n\nexports.isStrictMode = function (a) {\n return z(a) === f;\n};\n\nexports.isSuspense = function (a) {\n return z(a) === p;\n};\n\nexports.isValidElementType = function (a) {\n return \"string\" === typeof a || \"function\" === typeof a || a === e || a === m || a === g || a === f || a === p || a === q || \"object\" === typeof a && null !== a && (a.$$typeof === t || a.$$typeof === r || a.$$typeof === h || a.$$typeof === k || a.$$typeof === n || a.$$typeof === w || a.$$typeof === x || a.$$typeof === y || a.$$typeof === v);\n};\n\nexports.typeOf = z;","'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}","module.exports =\n/******/\nfunction (modules) {\n // webpackBootstrap\n\n /******/\n // The module cache\n\n /******/\n var installedModules = {};\n /******/\n // The require function\n\n /******/\n\n function __webpack_require__(moduleId) {\n /******/\n // Check if module is in cache\n\n /******/\n if (installedModules[moduleId])\n /******/\n return installedModules[moduleId].exports;\n /******/\n // Create a new module (and put it into the cache)\n\n /******/\n\n var module = installedModules[moduleId] = {\n /******/\n exports: {},\n\n /******/\n id: moduleId,\n\n /******/\n loaded: false\n /******/\n\n };\n /******/\n // Execute the module function\n\n /******/\n\n modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n /******/\n // Flag the module as loaded\n\n /******/\n\n module.loaded = true;\n /******/\n // Return the exports of the module\n\n /******/\n\n return module.exports;\n /******/\n }\n /******/\n // expose the modules object (__webpack_modules__)\n\n /******/\n\n\n __webpack_require__.m = modules;\n /******/\n // expose the module cache\n\n /******/\n\n __webpack_require__.c = installedModules;\n /******/\n // __webpack_public_path__\n\n /******/\n\n __webpack_require__.p = \"\";\n /******/\n // Load entry module and return exports\n\n /******/\n\n return __webpack_require__(0);\n /******/\n}\n/************************************************************************/\n\n/******/\n([\n/* 0 */\n\n/***/\nfunction (module, exports, __webpack_require__) {\n 'use strict';\n\n var _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 var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n\n var _react = __webpack_require__(1);\n\n var _react2 = _interopRequireDefault(_react);\n\n var _propTypes = __webpack_require__(2);\n\n var _propTypes2 = _interopRequireDefault(_propTypes);\n\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n\n function _objectWithoutProperties(obj, keys) {\n var target = {};\n\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n }\n\n var KEYCODE_UP = 38;\n var KEYCODE_DOWN = 40;\n var IS_BROWSER = typeof document != 'undefined';\n var RE_NUMBER = /^[+-]?((\\.\\d+)|(\\d+(\\.\\d+)?))$/;\n var RE_INCOMPLETE_NUMBER = /^([+-]|\\.0*|[+-]\\.0*|[+-]?\\d+\\.)?$/;\n\n function addClass(element, className) {\n if (element.classList) {\n return element.classList.add(className);\n }\n\n if (!element.className.search(new RegExp(\"\\\\b\" + className + \"\\\\b\"))) {\n element.className = \" \" + className;\n }\n }\n\n function removeClass(element, className) {\n if (element.className) {\n if (element.classList) {\n return element.classList.remove(className);\n }\n\n element.className = element.className.replace(new RegExp(\"\\\\b\" + className + \"\\\\b\", \"g\"), \"\");\n }\n }\n\n function access(object, prop, defaultValue) {\n var result = object[prop];\n\n if (typeof result == \"function\") {\n for (var _len = arguments.length, args = Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++) {\n args[_key - 3] = arguments[_key];\n }\n\n result = result.apply(undefined, args);\n }\n\n return result === undefined ? defaultValue : result;\n }\n\n var NumericInput = function (_Component) {\n _inherits(NumericInput, _Component);\n\n function NumericInput() {\n var _ref;\n\n _classCallCheck(this, NumericInput);\n\n for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n var _this = _possibleConstructorReturn(this, (_ref = NumericInput.__proto__ || Object.getPrototypeOf(NumericInput)).call.apply(_ref, [this].concat(args)));\n\n _this._isStrict = !!_this.props.strict;\n _this.state = _extends({\n btnDownHover: false,\n btnDownActive: false,\n btnUpHover: false,\n btnUpActive: false,\n stringValue: \"\"\n }, _this._propsToState(_this.props));\n _this.stop = _this.stop.bind(_this);\n _this.onTouchEnd = _this.onTouchEnd.bind(_this);\n _this.refsInput = {};\n _this.refsWrapper = {};\n return _this;\n }\n\n _createClass(NumericInput, [{\n key: '_propsToState',\n value: function _propsToState(props) {\n var out = {};\n\n if (props.hasOwnProperty(\"value\")) {\n out.stringValue = String(props.value || props.value === 0 ? props.value : '').trim();\n out.value = out.stringValue !== '' ? this._parse(props.value) : null;\n } else if (!this._isMounted && props.hasOwnProperty(\"defaultValue\")) {\n out.stringValue = String(props.defaultValue || props.defaultValue === 0 ? props.defaultValue : '').trim();\n out.value = props.defaultValue !== '' ? this._parse(props.defaultValue) : null;\n }\n\n return out;\n }\n }, {\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps(props) {\n var _this2 = this;\n\n this._isStrict = !!props.strict;\n\n var nextState = this._propsToState(props);\n\n if (Object.keys(nextState).length) {\n this._ignoreValueChange = true;\n this.setState(nextState, function () {\n _this2._ignoreValueChange = false;\n });\n }\n }\n }, {\n key: 'componentWillUpdate',\n value: function componentWillUpdate() {\n this.saveSelection();\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate(prevProps, prevState) {\n if (!this._ignoreValueChange && prevState.value !== this.state.value && (!isNaN(this.state.value) || this.state.value === null)) {\n this._invokeEventCallback(\"onChange\", this.state.value, this.refsInput.value, this.refsInput);\n }\n\n if (this._inputFocus) {\n this.refsInput.focus();\n\n if (this.state.selectionStart || this.state.selectionStart === 0) {\n this.refsInput.selectionStart = this.state.selectionStart;\n }\n\n if (this.state.selectionEnd || this.state.selectionEnd === 0) {\n this.refsInput.selectionEnd = this.state.selectionEnd;\n }\n }\n\n this.checkValidity();\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this._isMounted = false;\n this.stop();\n }\n }, {\n key: 'componentDidMount',\n value: function componentDidMount() {\n var _this3 = this;\n\n this._isMounted = true;\n\n this.refsInput.getValueAsNumber = function () {\n return _this3.state.value || 0;\n };\n\n this.refsInput.setValue = function (value) {\n _this3.setState({\n value: _this3._parse(value),\n stringValue: value\n });\n };\n\n if (!this._inputFocus && IS_BROWSER && document.activeElement === this.refsInput) {\n this._inputFocus = true;\n this.refsInput.focus();\n\n this._invokeEventCallback(\"onFocus\", {\n target: this.refsInput,\n type: \"focus\"\n });\n }\n\n this.checkValidity();\n }\n }, {\n key: 'saveSelection',\n value: function saveSelection() {\n this.state.selectionStart = this.refsInput.selectionStart;\n this.state.selectionEnd = this.refsInput.selectionEnd;\n }\n }, {\n key: 'checkValidity',\n value: function checkValidity() {\n var valid = void 0,\n validationError = \"\";\n var supportsValidation = !!this.refsInput.checkValidity;\n var noValidate = !!(this.props.noValidate && this.props.noValidate != \"false\");\n this.refsInput.noValidate = noValidate;\n valid = noValidate || !supportsValidation;\n\n if (valid) {\n validationError = \"\";\n } else {\n if (this.refsInput.pattern === \"\") {\n this.refsInput.pattern = this.props.required ? \".+\" : \".*\";\n }\n\n if (supportsValidation) {\n this.refsInput.checkValidity();\n valid = this.refsInput.validity.valid;\n\n if (!valid) {\n validationError = this.refsInput.validationMessage;\n }\n }\n\n if (valid && supportsValidation && this.props.maxLength) {\n if (this.refsInput.value.length > this.props.maxLength) {\n validationError = \"This value is too long\";\n }\n }\n }\n\n validationError = validationError || (valid ? \"\" : this.refsInput.validationMessage || \"Unknown Error\");\n var validStateChanged = this._valid !== validationError;\n this._valid = validationError;\n\n if (validationError) {\n addClass(this.refsWrapper, \"has-error\");\n\n if (validStateChanged) {\n this._invokeEventCallback(\"onInvalid\", validationError, this.state.value, this.refsInput.value);\n }\n } else {\n removeClass(this.refsWrapper, \"has-error\");\n\n if (validStateChanged) {\n this._invokeEventCallback(\"onValid\", this.state.value, this.refsInput.value);\n }\n }\n }\n }, {\n key: '_toNumber',\n value: function _toNumber(x) {\n var n = parseFloat(x);\n\n if (isNaN(n) || !isFinite(n)) {\n n = 0;\n }\n\n if (this._isStrict) {\n var precision = access(this.props, \"precision\", null, this);\n var q = Math.pow(10, precision === null ? 10 : precision);\n\n var _min = +access(this.props, \"min\", NumericInput.defaultProps.min, this);\n\n var _max = +access(this.props, \"max\", NumericInput.defaultProps.max, this);\n\n n = Math.min(Math.max(n, _min), _max);\n n = Math.round(n * q) / q;\n }\n\n return n;\n }\n }, {\n key: '_parse',\n value: function _parse(x) {\n x = String(x);\n\n if (typeof this.props.parse == 'function') {\n return parseFloat(this.props.parse(x));\n }\n\n return parseFloat(x);\n }\n }, {\n key: '_format',\n value: function _format(n) {\n var _n = this._toNumber(n);\n\n var precision = access(this.props, \"precision\", null, this);\n\n if (precision !== null) {\n _n = n.toFixed(precision);\n }\n\n _n += \"\";\n\n if (this.props.format) {\n return this.props.format(_n);\n }\n\n return _n;\n }\n }, {\n key: '_step',\n value: function _step(n, callback) {\n var _isStrict = this._isStrict;\n this._isStrict = true;\n\n var _step = +access(this.props, \"step\", NumericInput.defaultProps.step, this, n > 0 ? NumericInput.DIRECTION_UP : NumericInput.DIRECTION_DOWN);\n\n var _n = this._toNumber((this.state.value || 0) + _step * n);\n\n if (this.props.snap) {\n _n = Math.round(_n / _step) * _step;\n }\n\n this._isStrict = _isStrict;\n\n if (_n !== this.state.value) {\n this.setState({\n value: _n,\n stringValue: _n + \"\"\n }, callback);\n return true;\n }\n\n return false;\n }\n }, {\n key: '_onKeyDown',\n value: function _onKeyDown() {\n for (var _len3 = arguments.length, args = Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n args[0].persist();\n\n this._invokeEventCallback.apply(this, [\"onKeyDown\"].concat(args));\n\n var e = args[0];\n\n if (!e.isDefaultPrevented()) {\n if (e.keyCode === KEYCODE_UP) {\n e.preventDefault();\n\n this._step(e.ctrlKey || e.metaKey ? 0.1 : e.shiftKey ? 10 : 1);\n } else if (e.keyCode === KEYCODE_DOWN) {\n e.preventDefault();\n\n this._step(e.ctrlKey || e.metaKey ? -0.1 : e.shiftKey ? -10 : -1);\n } else {\n var _value = this.refsInput.value,\n length = _value.length;\n\n if (e.keyCode === 8) {\n if (this.refsInput.selectionStart == this.refsInput.selectionEnd && this.refsInput.selectionEnd > 0 && _value.length && _value.charAt(this.refsInput.selectionEnd - 1) === \".\") {\n e.preventDefault();\n this.refsInput.selectionStart = this.refsInput.selectionEnd = this.refsInput.selectionEnd - 1;\n }\n } else if (e.keyCode === 46) {\n if (this.refsInput.selectionStart == this.refsInput.selectionEnd && this.refsInput.selectionEnd < length + 1 && _value.length && _value.charAt(this.refsInput.selectionEnd) === \".\") {\n e.preventDefault();\n this.refsInput.selectionStart = this.refsInput.selectionEnd = this.refsInput.selectionEnd + 1;\n }\n }\n }\n }\n }\n }, {\n key: 'stop',\n value: function stop() {\n if (this._timer) {\n clearTimeout(this._timer);\n }\n }\n }, {\n key: 'increase',\n value: function increase() {\n var _this4 = this;\n\n var _recursive = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n var callback = arguments[1];\n this.stop();\n\n this._step(1, callback);\n\n var _max = +access(this.props, \"max\", NumericInput.defaultProps.max, this);\n\n if (isNaN(this.state.value) || +this.state.value < _max) {\n this._timer = setTimeout(function () {\n _this4.increase(true);\n }, _recursive ? NumericInput.SPEED : NumericInput.DELAY);\n }\n }\n }, {\n key: 'decrease',\n value: function decrease() {\n var _this5 = this;\n\n var _recursive = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n var callback = arguments[1];\n this.stop();\n\n this._step(-1, callback);\n\n var _min = +access(this.props, \"min\", NumericInput.defaultProps.min, this);\n\n if (isNaN(this.state.value) || +this.state.value > _min) {\n this._timer = setTimeout(function () {\n _this5.decrease(true);\n }, _recursive ? NumericInput.SPEED : NumericInput.DELAY);\n }\n }\n }, {\n key: 'onMouseDown',\n value: function onMouseDown(dir, callback) {\n if (dir == 'down') {\n this.decrease(false, callback);\n } else if (dir == 'up') {\n this.increase(false, callback);\n }\n }\n }, {\n key: 'onTouchStart',\n value: function onTouchStart(dir, e) {\n e.preventDefault();\n\n if (dir == 'down') {\n this.decrease();\n } else if (dir == 'up') {\n this.increase();\n }\n }\n }, {\n key: 'onTouchEnd',\n value: function onTouchEnd(e) {\n e.preventDefault();\n this.stop();\n }\n }, {\n key: '_invokeEventCallback',\n value: function _invokeEventCallback(callbackName) {\n if (typeof this.props[callbackName] == \"function\") {\n var _props$callbackName;\n\n for (var _len4 = arguments.length, args = Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n args[_key4 - 1] = arguments[_key4];\n }\n\n (_props$callbackName = this.props[callbackName]).call.apply(_props$callbackName, [null].concat(args));\n }\n }\n }, {\n key: 'render',\n value: function render() {\n var _this6 = this;\n\n var props = this.props;\n var state = this.state;\n var css = {};\n\n var _props = this.props,\n step = _props.step,\n min = _props.min,\n max = _props.max,\n precision = _props.precision,\n parse = _props.parse,\n format = _props.format,\n mobile = _props.mobile,\n snap = _props.snap,\n componentClass = _props.componentClass,\n value = _props.value,\n type = _props.type,\n style = _props.style,\n defaultValue = _props.defaultValue,\n onInvalid = _props.onInvalid,\n onValid = _props.onValid,\n strict = _props.strict,\n noStyle = _props.noStyle,\n rest = _objectWithoutProperties(_props, ['step', 'min', 'max', 'precision', 'parse', 'format', 'mobile', 'snap', 'componentClass', 'value', 'type', 'style', 'defaultValue', 'onInvalid', 'onValid', 'strict', 'noStyle']);\n\n noStyle = noStyle || style === false;\n\n for (var x in NumericInput.style) {\n css[x] = _extends({}, NumericInput.style[x], style ? style[x] || {} : {});\n }\n\n var hasFormControl = props.className && /\\bform-control\\b/.test(props.className);\n\n if (mobile == 'auto') {\n mobile = IS_BROWSER && 'ontouchstart' in document;\n }\n\n if (typeof mobile == \"function\") {\n mobile = mobile.call(this);\n }\n\n mobile = !!mobile;\n var attrs = {\n wrap: {\n style: noStyle ? null : css.wrap,\n className: 'react-numeric-input',\n ref: function ref(e) {\n if (e != null && e != undefined) {\n _this6.refsWrapper = e;\n }\n },\n onMouseUp: undefined,\n onMouseLeave: undefined\n },\n input: _extends({\n ref: function ref(e) {\n if (e != null && e != undefined) {\n _this6.refsInput = e;\n }\n },\n type: 'text',\n style: noStyle ? null : _extends({}, css.input, !hasFormControl ? css['input:not(.form-control)'] : {}, this._inputFocus ? css['input:focus'] : {})\n }, rest),\n btnUp: {\n onMouseEnter: undefined,\n onMouseDown: undefined,\n onMouseUp: undefined,\n onMouseLeave: undefined,\n onTouchStart: undefined,\n onTouchEnd: undefined,\n style: noStyle ? null : _extends({}, css.btn, css.btnUp, props.disabled || props.readOnly ? css['btn:disabled'] : state.btnUpActive ? css['btn:active'] : state.btnUpHover ? css['btn:hover'] : {})\n },\n btnDown: {\n onMouseEnter: undefined,\n onMouseDown: undefined,\n onMouseUp: undefined,\n onMouseLeave: undefined,\n onTouchStart: undefined,\n onTouchEnd: undefined,\n style: noStyle ? null : _extends({}, css.btn, css.btnDown, props.disabled || props.readOnly ? css['btn:disabled'] : state.btnDownActive ? css['btn:active'] : state.btnDownHover ? css['btn:hover'] : {})\n }\n };\n var stringValue = String(state.stringValue || (state.value || state.value === 0 ? state.value : \"\") || \"\");\n var loose = !this._isStrict && (this._inputFocus || !this._isMounted);\n\n if (loose && RE_INCOMPLETE_NUMBER.test(stringValue)) {\n attrs.input.value = stringValue;\n } else if (loose && stringValue && !RE_NUMBER.test(stringValue)) {\n attrs.input.value = stringValue;\n } else if (state.value || state.value === 0) {\n attrs.input.value = this._format(state.value);\n } else {\n attrs.input.value = \"\";\n }\n\n if (hasFormControl && !noStyle) {\n _extends(attrs.wrap.style, css['wrap.hasFormControl']);\n }\n\n if (mobile && !noStyle) {\n _extends(attrs.input.style, css['input.mobile']);\n\n _extends(attrs.btnUp.style, css['btnUp.mobile']);\n\n _extends(attrs.btnDown.style, css['btnDown.mobile']);\n }\n\n if (!props.disabled && !props.readOnly) {\n _extends(attrs.wrap, {\n onMouseUp: this.stop,\n onMouseLeave: this.stop\n });\n\n _extends(attrs.btnUp, {\n onTouchStart: this.onTouchStart.bind(this, 'up'),\n onTouchEnd: this.onTouchEnd,\n onMouseEnter: function onMouseEnter() {\n _this6.setState({\n btnUpHover: true\n });\n },\n onMouseLeave: function onMouseLeave() {\n _this6.stop();\n\n _this6.setState({\n btnUpHover: false,\n btnUpActive: false\n });\n },\n onMouseUp: function onMouseUp() {\n _this6.setState({\n btnUpHover: true,\n btnUpActive: false\n });\n },\n onMouseDown: function onMouseDown() {\n for (var _len5 = arguments.length, args = Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n args[_key5] = arguments[_key5];\n }\n\n args[0].preventDefault();\n args[0].persist();\n _this6._inputFocus = true;\n\n _this6.setState({\n btnUpHover: true,\n btnUpActive: true\n }, function () {\n _this6._invokeEventCallback.apply(_this6, [\"onFocus\"].concat(args));\n\n _this6.onMouseDown('up');\n });\n }\n });\n\n _extends(attrs.btnDown, {\n onTouchStart: this.onTouchStart.bind(this, 'down'),\n onTouchEnd: this.onTouchEnd,\n onMouseEnter: function onMouseEnter() {\n _this6.setState({\n btnDownHover: true\n });\n },\n onMouseLeave: function onMouseLeave() {\n _this6.stop();\n\n _this6.setState({\n btnDownHover: false,\n btnDownActive: false\n });\n },\n onMouseUp: function onMouseUp() {\n _this6.setState({\n btnDownHover: true,\n btnDownActive: false\n });\n },\n onMouseDown: function onMouseDown() {\n for (var _len6 = arguments.length, args = Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n args[_key6] = arguments[_key6];\n }\n\n args[0].preventDefault();\n args[0].persist();\n _this6._inputFocus = true;\n\n _this6.setState({\n btnDownHover: true,\n btnDownActive: true\n }, function () {\n _this6._invokeEventCallback.apply(_this6, [\"onFocus\"].concat(args));\n\n _this6.onMouseDown('down');\n });\n }\n });\n\n _extends(attrs.input, {\n onChange: function onChange(e) {\n var original = e.target.value;\n\n var val = _this6._parse(original);\n\n if (isNaN(val)) {\n val = null;\n }\n\n _this6.setState({\n value: _this6._isStrict ? _this6._toNumber(val) : val,\n stringValue: original\n });\n },\n onKeyDown: this._onKeyDown.bind(this),\n onInput: function onInput() {\n for (var _len7 = arguments.length, args = Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n args[_key7] = arguments[_key7];\n }\n\n _this6.saveSelection();\n\n _this6._invokeEventCallback.apply(_this6, [\"onInput\"].concat(args));\n },\n onSelect: function onSelect() {\n for (var _len8 = arguments.length, args = Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {\n args[_key8] = arguments[_key8];\n }\n\n _this6.saveSelection();\n\n _this6._invokeEventCallback.apply(_this6, [\"onSelect\"].concat(args));\n },\n onFocus: function onFocus() {\n for (var _len9 = arguments.length, args = Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {\n args[_key9] = arguments[_key9];\n }\n\n args[0].persist();\n _this6._inputFocus = true;\n\n var val = _this6._parse(args[0].target.value);\n\n _this6.setState({\n value: val,\n stringValue: val || val === 0 ? val + \"\" : \"\"\n }, function () {\n _this6._invokeEventCallback.apply(_this6, [\"onFocus\"].concat(args));\n });\n },\n onBlur: function onBlur() {\n for (var _len10 = arguments.length, args = Array(_len10), _key10 = 0; _key10 < _len10; _key10++) {\n args[_key10] = arguments[_key10];\n }\n\n var _isStrict = _this6._isStrict;\n _this6._isStrict = true;\n args[0].persist();\n _this6._inputFocus = false;\n\n var val = _this6._parse(args[0].target.value);\n\n _this6.setState({\n value: val\n }, function () {\n _this6._invokeEventCallback.apply(_this6, [\"onBlur\"].concat(args));\n\n _this6._isStrict = _isStrict;\n });\n }\n });\n } else {\n if (!noStyle && props.disabled) {\n _extends(attrs.input.style, css['input:disabled']);\n }\n }\n\n var InputTag = componentClass || 'input';\n\n if (mobile) {\n return _react2.default.createElement('span', attrs.wrap, _react2.default.createElement(InputTag, attrs.input), _react2.default.createElement('b', attrs.btnUp, _react2.default.createElement('i', {\n style: noStyle ? null : css.minus\n }), _react2.default.createElement('i', {\n style: noStyle ? null : css.plus\n })), _react2.default.createElement('b', attrs.btnDown, _react2.default.createElement('i', {\n style: noStyle ? null : css.minus\n })));\n }\n\n return _react2.default.createElement('span', attrs.wrap, _react2.default.createElement(InputTag, attrs.input), _react2.default.createElement('b', attrs.btnUp, _react2.default.createElement('i', {\n style: noStyle ? null : css.arrowUp\n })), _react2.default.createElement('b', attrs.btnDown, _react2.default.createElement('i', {\n style: noStyle ? null : css.arrowDown\n })));\n }\n }]);\n\n return NumericInput;\n }(_react.Component);\n\n NumericInput.propTypes = {\n step: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.func]),\n min: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.func]),\n max: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.func]),\n precision: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.func]),\n maxLength: _propTypes2.default.number,\n parse: _propTypes2.default.func,\n format: _propTypes2.default.func,\n className: _propTypes2.default.string,\n disabled: _propTypes2.default.bool,\n readOnly: _propTypes2.default.bool,\n required: _propTypes2.default.bool,\n snap: _propTypes2.default.bool,\n noValidate: _propTypes2.default.oneOfType([_propTypes2.default.bool, _propTypes2.default.string]),\n style: _propTypes2.default.oneOfType([_propTypes2.default.object, _propTypes2.default.bool]),\n noStyle: _propTypes2.default.bool,\n type: _propTypes2.default.string,\n pattern: _propTypes2.default.string,\n onFocus: _propTypes2.default.func,\n onBlur: _propTypes2.default.func,\n onKeyDown: _propTypes2.default.func,\n onChange: _propTypes2.default.func,\n onInvalid: _propTypes2.default.func,\n onValid: _propTypes2.default.func,\n onInput: _propTypes2.default.func,\n onSelect: _propTypes2.default.func,\n size: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]),\n value: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]),\n defaultValue: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]),\n strict: _propTypes2.default.bool,\n componentClass: _propTypes2.default.string,\n mobile: function mobile(props, propName) {\n var prop = props[propName];\n\n if (prop !== true && prop !== false && prop !== 'auto' && typeof prop != 'function') {\n return new Error('The \"mobile\" prop must be true, false, \"auto\" or a function');\n }\n }\n };\n NumericInput.defaultProps = {\n step: 1,\n min: Number.MIN_SAFE_INTEGER || -9007199254740991,\n max: Number.MAX_SAFE_INTEGER || 9007199254740991,\n precision: null,\n parse: null,\n format: null,\n mobile: 'auto',\n strict: false,\n componentClass: \"input\",\n style: {}\n };\n NumericInput.style = {\n wrap: {\n position: 'relative',\n display: 'inline-block'\n },\n 'wrap.hasFormControl': {\n display: 'block'\n },\n arrowUp: {\n position: 'absolute',\n top: '50%',\n left: '50%',\n width: 0,\n height: 0,\n borderWidth: '0 0.6ex 0.6ex 0.6ex',\n borderColor: 'transparent transparent rgba(0, 0, 0, 0.7)',\n borderStyle: 'solid',\n margin: '-0.3ex 0 0 -0.56ex'\n },\n arrowDown: {\n position: 'absolute',\n top: '50%',\n left: '50%',\n width: 0,\n height: 0,\n borderWidth: '0.6ex 0.6ex 0 0.6ex',\n borderColor: 'rgba(0, 0, 0, 0.7) transparent transparent',\n borderStyle: 'solid',\n margin: '-0.3ex 0 0 -0.56ex'\n },\n plus: {\n position: 'absolute',\n top: '50%',\n left: '50%',\n width: 2,\n height: 10,\n background: 'rgba(0,0,0,.7)',\n margin: '-5px 0 0 -1px'\n },\n minus: {\n position: 'absolute',\n top: '50%',\n left: '50%',\n width: 10,\n height: 2,\n background: 'rgba(0,0,0,.7)',\n margin: '-1px 0 0 -5px'\n },\n btn: {\n position: 'absolute',\n right: 2,\n width: '2.26ex',\n borderColor: 'rgba(0,0,0,.1)',\n borderStyle: 'solid',\n textAlign: 'center',\n cursor: 'default',\n transition: 'all 0.1s',\n background: 'rgba(0,0,0,.1)',\n boxShadow: '-1px -1px 3px rgba(0,0,0,.1) inset,' + '1px 1px 3px rgba(255,255,255,.7) inset'\n },\n btnUp: {\n top: 2,\n bottom: '50%',\n borderRadius: '2px 2px 0 0',\n borderWidth: '1px 1px 0 1px'\n },\n 'btnUp.mobile': {\n width: '3.3ex',\n bottom: 2,\n boxShadow: 'none',\n borderRadius: 2,\n borderWidth: 1\n },\n btnDown: {\n top: '50%',\n bottom: 2,\n borderRadius: '0 0 2px 2px',\n borderWidth: '0 1px 1px 1px'\n },\n 'btnDown.mobile': {\n width: '3.3ex',\n bottom: 2,\n left: 2,\n top: 2,\n right: 'auto',\n boxShadow: 'none',\n borderRadius: 2,\n borderWidth: 1\n },\n 'btn:hover': {\n background: 'rgba(0,0,0,.2)'\n },\n 'btn:active': {\n background: 'rgba(0,0,0,.3)',\n boxShadow: '0 1px 3px rgba(0,0,0,.2) inset,' + '-1px -1px 4px rgba(255,255,255,.5) inset'\n },\n 'btn:disabled': {\n opacity: 0.5,\n boxShadow: 'none',\n cursor: 'not-allowed'\n },\n input: {\n paddingRight: '3ex',\n boxSizing: 'border-box',\n fontSize: 'inherit'\n },\n 'input:not(.form-control)': {\n border: '1px solid #ccc',\n borderRadius: 2,\n paddingLeft: 4,\n display: 'block',\n WebkitAppearance: 'none',\n lineHeight: 'normal'\n },\n 'input.mobile': {\n paddingLeft: ' 3.4ex',\n paddingRight: '3.4ex',\n textAlign: 'center'\n },\n 'input:focus': {},\n 'input:disabled': {\n color: 'rgba(0, 0, 0, 0.3)',\n textShadow: '0 1px 0 rgba(255, 255, 255, 0.8)'\n }\n };\n NumericInput.SPEED = 50;\n NumericInput.DELAY = 500;\n NumericInput.DIRECTION_UP = \"up\";\n NumericInput.DIRECTION_DOWN = \"down\";\n module.exports = NumericInput;\n /***/\n},\n/* 1 */\n\n/***/\nfunction (module, exports) {\n module.exports = require(\"react\");\n /***/\n},\n/* 2 */\n\n/***/\nfunction (module, exports) {\n module.exports = require(\"prop-types\");\n /***/\n}\n/******/\n]);","import _inheritsLoose from \"@babel/runtime/helpers/inheritsLoose\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport * as React from 'react';\nimport createContext from '@hypnosphi/create-react-context';\nexport var ManagerReferenceNodeContext = createContext();\nexport var ManagerReferenceNodeSetterContext = createContext();\n\nvar Manager = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Manager, _React$Component);\n\n function Manager() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"referenceNode\", void 0);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"setReferenceNode\", function (newReferenceNode) {\n if (newReferenceNode && _this.referenceNode !== newReferenceNode) {\n _this.referenceNode = newReferenceNode;\n\n _this.forceUpdate();\n }\n });\n\n return _this;\n }\n\n var _proto = Manager.prototype;\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.referenceNode = null;\n };\n\n _proto.render = function render() {\n return React.createElement(ManagerReferenceNodeContext.Provider, {\n value: this.referenceNode\n }, React.createElement(ManagerReferenceNodeSetterContext.Provider, {\n value: this.setReferenceNode\n }, this.props.children));\n };\n\n return Manager;\n}(React.Component);\n\nexport { Manager as default };","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/extends\";\nimport _inheritsLoose from \"@babel/runtime/helpers/inheritsLoose\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport deepEqual from \"deep-equal\";\nimport * as React from 'react';\nimport PopperJS from 'popper.js';\nimport { ManagerReferenceNodeContext } from './Manager';\nimport { unwrapArray, setRef, shallowEqual } from './utils';\nvar initialStyle = {\n position: 'absolute',\n top: 0,\n left: 0,\n opacity: 0,\n pointerEvents: 'none'\n};\nvar initialArrowStyle = {};\nexport var InnerPopper = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(InnerPopper, _React$Component);\n\n function InnerPopper() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"state\", {\n data: undefined,\n placement: undefined\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"popperInstance\", void 0);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"popperNode\", null);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"arrowNode\", null);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"setPopperNode\", function (popperNode) {\n if (!popperNode || _this.popperNode === popperNode) return;\n setRef(_this.props.innerRef, popperNode);\n _this.popperNode = popperNode;\n\n _this.updatePopperInstance();\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"setArrowNode\", function (arrowNode) {\n _this.arrowNode = arrowNode;\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"updateStateModifier\", {\n enabled: true,\n order: 900,\n fn: function fn(data) {\n var placement = data.placement;\n\n _this.setState({\n data: data,\n placement: placement\n });\n\n return data;\n }\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"getOptions\", function () {\n return {\n placement: _this.props.placement,\n eventsEnabled: _this.props.eventsEnabled,\n positionFixed: _this.props.positionFixed,\n modifiers: _extends({}, _this.props.modifiers, {\n arrow: _extends({}, _this.props.modifiers && _this.props.modifiers.arrow, {\n enabled: !!_this.arrowNode,\n element: _this.arrowNode\n }),\n applyStyle: {\n enabled: false\n },\n updateStateModifier: _this.updateStateModifier\n })\n };\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"getPopperStyle\", function () {\n return !_this.popperNode || !_this.state.data ? initialStyle : _extends({\n position: _this.state.data.offsets.popper.position\n }, _this.state.data.styles);\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"getPopperPlacement\", function () {\n return !_this.state.data ? undefined : _this.state.placement;\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"getArrowStyle\", function () {\n return !_this.arrowNode || !_this.state.data ? initialArrowStyle : _this.state.data.arrowStyles;\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"getOutOfBoundariesState\", function () {\n return _this.state.data ? _this.state.data.hide : undefined;\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"destroyPopperInstance\", function () {\n if (!_this.popperInstance) return;\n\n _this.popperInstance.destroy();\n\n _this.popperInstance = null;\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"updatePopperInstance\", function () {\n _this.destroyPopperInstance();\n\n var _assertThisInitialize = _assertThisInitialized(_assertThisInitialized(_this)),\n popperNode = _assertThisInitialize.popperNode;\n\n var referenceElement = _this.props.referenceElement;\n if (!referenceElement || !popperNode) return;\n _this.popperInstance = new PopperJS(referenceElement, popperNode, _this.getOptions());\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"scheduleUpdate\", function () {\n if (_this.popperInstance) {\n _this.popperInstance.scheduleUpdate();\n }\n });\n\n return _this;\n }\n\n var _proto = InnerPopper.prototype;\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n // If the Popper.js options have changed, update the instance (destroy + create)\n if (this.props.placement !== prevProps.placement || this.props.referenceElement !== prevProps.referenceElement || this.props.positionFixed !== prevProps.positionFixed || !deepEqual(this.props.modifiers, prevProps.modifiers, {\n strict: true\n })) {\n // develop only check that modifiers isn't being updated needlessly\n if (process.env.NODE_ENV === \"development\") {\n if (this.props.modifiers !== prevProps.modifiers && this.props.modifiers != null && prevProps.modifiers != null && shallowEqual(this.props.modifiers, prevProps.modifiers)) {\n console.warn(\"'modifiers' prop reference updated even though all values appear the same.\\nConsider memoizing the 'modifiers' object to avoid needless rendering.\");\n }\n }\n\n this.updatePopperInstance();\n } else if (this.props.eventsEnabled !== prevProps.eventsEnabled && this.popperInstance) {\n this.props.eventsEnabled ? this.popperInstance.enableEventListeners() : this.popperInstance.disableEventListeners();\n } // A placement difference in state means popper determined a new placement\n // apart from the props value. By the time the popper element is rendered with\n // the new position Popper has already measured it, if the place change triggers\n // a size change it will result in a misaligned popper. So we schedule an update to be sure.\n\n\n if (prevState.placement !== this.state.placement) {\n this.scheduleUpdate();\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n setRef(this.props.innerRef, null);\n this.destroyPopperInstance();\n };\n\n _proto.render = function render() {\n return unwrapArray(this.props.children)({\n ref: this.setPopperNode,\n style: this.getPopperStyle(),\n placement: this.getPopperPlacement(),\n outOfBoundaries: this.getOutOfBoundariesState(),\n scheduleUpdate: this.scheduleUpdate,\n arrowProps: {\n ref: this.setArrowNode,\n style: this.getArrowStyle()\n }\n });\n };\n\n return InnerPopper;\n}(React.Component);\n\n_defineProperty(InnerPopper, \"defaultProps\", {\n placement: 'bottom',\n eventsEnabled: true,\n referenceElement: undefined,\n positionFixed: false\n});\n\nvar placements = PopperJS.placements;\nexport { placements };\nexport default function Popper(_ref) {\n var referenceElement = _ref.referenceElement,\n props = _objectWithoutPropertiesLoose(_ref, [\"referenceElement\"]);\n\n return React.createElement(ManagerReferenceNodeContext.Consumer, null, function (referenceNode) {\n return React.createElement(InnerPopper, _extends({\n referenceElement: referenceElement !== undefined ? referenceElement : referenceNode\n }, props));\n });\n}","import _extends from \"@babel/runtime/helpers/extends\";\nimport _inheritsLoose from \"@babel/runtime/helpers/inheritsLoose\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport * as React from 'react';\nimport warning from 'warning';\nimport { ManagerReferenceNodeSetterContext } from './Manager';\nimport { safeInvoke, unwrapArray, setRef } from './utils';\n\nvar InnerReference = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(InnerReference, _React$Component);\n\n function InnerReference() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"refHandler\", function (node) {\n setRef(_this.props.innerRef, node);\n safeInvoke(_this.props.setReferenceNode, node);\n });\n\n return _this;\n }\n\n var _proto = InnerReference.prototype;\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n setRef(this.props.innerRef, null);\n };\n\n _proto.render = function render() {\n warning(Boolean(this.props.setReferenceNode), '`Reference` should not be used outside of a `Manager` component.');\n return unwrapArray(this.props.children)({\n ref: this.refHandler\n });\n };\n\n return InnerReference;\n}(React.Component);\n\nexport default function Reference(props) {\n return React.createElement(ManagerReferenceNodeSetterContext.Consumer, null, function (setReferenceNode) {\n return React.createElement(InnerReference, _extends({\n setReferenceNode: setReferenceNode\n }, props));\n });\n}","/**\n * Takes an argument and if it's an array, returns the first item in the array,\n * otherwise returns the argument. Used for Preact compatibility.\n */\nexport var unwrapArray = function unwrapArray(arg) {\n return Array.isArray(arg) ? arg[0] : arg;\n};\n/**\n * Takes a maybe-undefined function and arbitrary args and invokes the function\n * only if it is defined.\n */\n\nexport var safeInvoke = function safeInvoke(fn) {\n if (typeof fn === \"function\") {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return fn.apply(void 0, args);\n }\n};\n/**\n * Does a shallow equality check of two objects by comparing the reference\n * equality of each value.\n */\n\nexport var shallowEqual = function shallowEqual(objA, objB) {\n var aKeys = Object.keys(objA);\n var bKeys = Object.keys(objB);\n\n if (bKeys.length !== aKeys.length) {\n return false;\n }\n\n for (var i = 0; i < bKeys.length; i++) {\n var key = aKeys[i];\n\n if (objA[key] !== objB[key]) {\n return false;\n }\n }\n\n return true;\n};\n/**\n * Sets a ref using either a ref callback or a ref object\n */\n\nexport var setRef = function setRef(ref, node) {\n // if its a function call it\n if (typeof ref === \"function\") {\n return safeInvoke(ref, node);\n } // otherwise we should treat it as a ref object\n else if (ref != null) {\n ref.current = node;\n }\n};","'use strict';\n\nexports.__esModule = true;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _gud = require('gud');\n\nvar _gud2 = _interopRequireDefault(_gud);\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\nvar MAX_SIGNED_31_BIT_INT = 1073741823; // Inlined Object.is polyfill.\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n\nfunction objectIs(x, y) {\n if (x === y) {\n return x !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\n\nfunction createEventEmitter(value) {\n var handlers = [];\n return {\n on: function on(handler) {\n handlers.push(handler);\n },\n off: function off(handler) {\n handlers = handlers.filter(function (h) {\n return h !== handler;\n });\n },\n get: function get() {\n return value;\n },\n set: function set(newValue, changedBits) {\n value = newValue;\n handlers.forEach(function (handler) {\n return handler(value, changedBits);\n });\n }\n };\n}\n\nfunction onlyChild(children) {\n return Array.isArray(children) ? children[0] : children;\n}\n\nfunction createReactContext(defaultValue, calculateChangedBits) {\n var _Provider$childContex, _Consumer$contextType;\n\n var contextProp = '__create-react-context-' + (0, _gud2.default)() + '__';\n\n var Provider = function (_Component) {\n _inherits(Provider, _Component);\n\n function Provider() {\n var _temp, _this, _ret;\n\n _classCallCheck(this, Provider);\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, _Component.call.apply(_Component, [this].concat(args))), _this), _this.emitter = createEventEmitter(_this.props.value), _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n Provider.prototype.getChildContext = function getChildContext() {\n var _ref;\n\n return _ref = {}, _ref[contextProp] = this.emitter, _ref;\n };\n\n Provider.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n if (this.props.value !== nextProps.value) {\n var oldValue = this.props.value;\n var newValue = nextProps.value;\n var changedBits = void 0;\n\n if (objectIs(oldValue, newValue)) {\n changedBits = 0; // No change\n } else {\n changedBits = typeof calculateChangedBits === 'function' ? calculateChangedBits(oldValue, newValue) : MAX_SIGNED_31_BIT_INT;\n\n if (process.env.NODE_ENV !== 'production') {\n (0, _warning2.default)((changedBits & MAX_SIGNED_31_BIT_INT) === changedBits, 'calculateChangedBits: Expected the return value to be a ' + '31-bit integer. Instead received: %s', changedBits);\n }\n\n changedBits |= 0;\n\n if (changedBits !== 0) {\n this.emitter.set(nextProps.value, changedBits);\n }\n }\n }\n };\n\n Provider.prototype.render = function render() {\n return this.props.children;\n };\n\n return Provider;\n }(_react.Component);\n\n Provider.childContextTypes = (_Provider$childContex = {}, _Provider$childContex[contextProp] = _propTypes2.default.object.isRequired, _Provider$childContex);\n\n var Consumer = function (_Component2) {\n _inherits(Consumer, _Component2);\n\n function Consumer() {\n var _temp2, _this2, _ret2;\n\n _classCallCheck(this, Consumer);\n\n for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return _ret2 = (_temp2 = (_this2 = _possibleConstructorReturn(this, _Component2.call.apply(_Component2, [this].concat(args))), _this2), _this2.state = {\n value: _this2.getValue()\n }, _this2.onUpdate = function (newValue, changedBits) {\n var observedBits = _this2.observedBits | 0;\n\n if ((observedBits & changedBits) !== 0) {\n _this2.setState({\n value: _this2.getValue()\n });\n }\n }, _temp2), _possibleConstructorReturn(_this2, _ret2);\n }\n\n Consumer.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n var observedBits = nextProps.observedBits;\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT // Subscribe to all changes by default\n : observedBits;\n };\n\n Consumer.prototype.componentDidMount = function componentDidMount() {\n if (this.context[contextProp]) {\n this.context[contextProp].on(this.onUpdate);\n }\n\n var observedBits = this.props.observedBits;\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT // Subscribe to all changes by default\n : observedBits;\n };\n\n Consumer.prototype.componentWillUnmount = function componentWillUnmount() {\n if (this.context[contextProp]) {\n this.context[contextProp].off(this.onUpdate);\n }\n };\n\n Consumer.prototype.getValue = function getValue() {\n if (this.context[contextProp]) {\n return this.context[contextProp].get();\n } else {\n return defaultValue;\n }\n };\n\n Consumer.prototype.render = function render() {\n return onlyChild(this.props.children)(this.state.value);\n };\n\n return Consumer;\n }(_react.Component);\n\n Consumer.contextTypes = (_Consumer$contextType = {}, _Consumer$contextType[contextProp] = _propTypes2.default.object, _Consumer$contextType);\n return {\n Provider: Provider,\n Consumer: Consumer\n };\n}\n\nexports.default = createReactContext;\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _implementation = require('./implementation');\n\nvar _implementation2 = _interopRequireDefault(_implementation);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nexports.default = _react2.default.createContext || _implementation2.default;\nmodule.exports = exports['default'];","export default function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}","function isAbsolute(pathname) {\n return pathname.charAt(0) === '/';\n} // About 1.5x faster than the two-arg version of Array#splice()\n\n\nfunction spliceOne(list, index) {\n for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1) {\n list[i] = list[k];\n }\n\n list.pop();\n} // This implementation is based heavily on node's url.parse\n\n\nfunction resolvePathname(to, from) {\n if (from === undefined) from = '';\n var toParts = to && to.split('/') || [];\n var fromParts = from && from.split('/') || [];\n var isToAbs = to && isAbsolute(to);\n var isFromAbs = from && isAbsolute(from);\n var mustEndAbs = isToAbs || isFromAbs;\n\n if (to && isAbsolute(to)) {\n // to is absolute\n fromParts = toParts;\n } else if (toParts.length) {\n // to is relative, drop the filename\n fromParts.pop();\n fromParts = fromParts.concat(toParts);\n }\n\n if (!fromParts.length) return '/';\n var hasTrailingSlash;\n\n if (fromParts.length) {\n var last = fromParts[fromParts.length - 1];\n hasTrailingSlash = last === '.' || last === '..' || last === '';\n } else {\n hasTrailingSlash = false;\n }\n\n var up = 0;\n\n for (var i = fromParts.length; i >= 0; i--) {\n var part = fromParts[i];\n\n if (part === '.') {\n spliceOne(fromParts, i);\n } else if (part === '..') {\n spliceOne(fromParts, i);\n up++;\n } else if (up) {\n spliceOne(fromParts, i);\n up--;\n }\n }\n\n if (!mustEndAbs) for (; up--; up) {\n fromParts.unshift('..');\n }\n if (mustEndAbs && fromParts[0] !== '' && (!fromParts[0] || !isAbsolute(fromParts[0]))) fromParts.unshift('');\n var result = fromParts.join('/');\n if (hasTrailingSlash && result.substr(-1) !== '/') result += '/';\n return result;\n}\n\nexport default resolvePathname;","var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\n\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n\n if (isProduction) {\n throw new Error(prefix);\n }\n\n throw new Error(prefix + \": \" + (message || ''));\n}\n\nexport default invariant;","import _extends from '@babel/runtime/helpers/esm/extends';\nimport resolvePathname from 'resolve-pathname';\nimport valueEqual from 'value-equal';\nimport warning from 'tiny-warning';\nimport invariant from 'tiny-invariant';\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === '/' ? path : '/' + path;\n}\n\nfunction stripLeadingSlash(path) {\n return path.charAt(0) === '/' ? path.substr(1) : path;\n}\n\nfunction hasBasename(path, prefix) {\n return path.toLowerCase().indexOf(prefix.toLowerCase()) === 0 && '/?#'.indexOf(path.charAt(prefix.length)) !== -1;\n}\n\nfunction stripBasename(path, prefix) {\n return hasBasename(path, prefix) ? path.substr(prefix.length) : path;\n}\n\nfunction stripTrailingSlash(path) {\n return path.charAt(path.length - 1) === '/' ? path.slice(0, -1) : path;\n}\n\nfunction parsePath(path) {\n var pathname = path || '/';\n var search = '';\n var hash = '';\n var hashIndex = pathname.indexOf('#');\n\n if (hashIndex !== -1) {\n hash = pathname.substr(hashIndex);\n pathname = pathname.substr(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf('?');\n\n if (searchIndex !== -1) {\n search = pathname.substr(searchIndex);\n pathname = pathname.substr(0, searchIndex);\n }\n\n return {\n pathname: pathname,\n search: search === '?' ? '' : search,\n hash: hash === '#' ? '' : hash\n };\n}\n\nfunction createPath(location) {\n var pathname = location.pathname,\n search = location.search,\n hash = location.hash;\n var path = pathname || '/';\n if (search && search !== '?') path += search.charAt(0) === '?' ? search : \"?\" + search;\n if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : \"#\" + hash;\n return path;\n}\n\nfunction createLocation(path, state, key, currentLocation) {\n var location;\n\n if (typeof path === 'string') {\n // Two-arg form: push(path, state)\n location = parsePath(path);\n location.state = state;\n } else {\n // One-arg form: push(location)\n location = _extends({}, path);\n if (location.pathname === undefined) location.pathname = '';\n\n if (location.search) {\n if (location.search.charAt(0) !== '?') location.search = '?' + location.search;\n } else {\n location.search = '';\n }\n\n if (location.hash) {\n if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash;\n } else {\n location.hash = '';\n }\n\n if (state !== undefined && location.state === undefined) location.state = state;\n }\n\n try {\n location.pathname = decodeURI(location.pathname);\n } catch (e) {\n if (e instanceof URIError) {\n throw new URIError('Pathname \"' + location.pathname + '\" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.');\n } else {\n throw e;\n }\n }\n\n if (key) location.key = key;\n\n if (currentLocation) {\n // Resolve incomplete/relative pathname relative to current location.\n if (!location.pathname) {\n location.pathname = currentLocation.pathname;\n } else if (location.pathname.charAt(0) !== '/') {\n location.pathname = resolvePathname(location.pathname, currentLocation.pathname);\n }\n } else {\n // When there is no prior location and pathname is empty, set it to /\n if (!location.pathname) {\n location.pathname = '/';\n }\n }\n\n return location;\n}\n\nfunction locationsAreEqual(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && valueEqual(a.state, b.state);\n}\n\nfunction createTransitionManager() {\n var prompt = null;\n\n function setPrompt(nextPrompt) {\n process.env.NODE_ENV !== \"production\" ? warning(prompt == null, 'A history supports only one prompt at a time') : void 0;\n prompt = nextPrompt;\n return function () {\n if (prompt === nextPrompt) prompt = null;\n };\n }\n\n function confirmTransitionTo(location, action, getUserConfirmation, callback) {\n // TODO: If another transition starts while we're still confirming\n // the previous one, we may end up in a weird state. Figure out the\n // best way to handle this.\n if (prompt != null) {\n var result = typeof prompt === 'function' ? prompt(location, action) : prompt;\n\n if (typeof result === 'string') {\n if (typeof getUserConfirmation === 'function') {\n getUserConfirmation(result, callback);\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'A history needs a getUserConfirmation function in order to use a prompt message') : void 0;\n callback(true);\n }\n } else {\n // Return false from a transition hook to cancel the transition.\n callback(result !== false);\n }\n } else {\n callback(true);\n }\n }\n\n var listeners = [];\n\n function appendListener(fn) {\n var isActive = true;\n\n function listener() {\n if (isActive) fn.apply(void 0, arguments);\n }\n\n listeners.push(listener);\n return function () {\n isActive = false;\n listeners = listeners.filter(function (item) {\n return item !== listener;\n });\n };\n }\n\n function notifyListeners() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n listeners.forEach(function (listener) {\n return listener.apply(void 0, args);\n });\n }\n\n return {\n setPrompt: setPrompt,\n confirmTransitionTo: confirmTransitionTo,\n appendListener: appendListener,\n notifyListeners: notifyListeners\n };\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\nfunction getConfirmation(message, callback) {\n callback(window.confirm(message)); // eslint-disable-line no-alert\n}\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n */\n\n\nfunction supportsHistory() {\n var ua = window.navigator.userAgent;\n if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n return window.history && 'pushState' in window.history;\n}\n/**\n * Returns true if browser fires popstate on hash change.\n * IE10 and IE11 do not.\n */\n\n\nfunction supportsPopStateOnHashChange() {\n return window.navigator.userAgent.indexOf('Trident') === -1;\n}\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\n\n\nfunction supportsGoWithoutReloadUsingHash() {\n return window.navigator.userAgent.indexOf('Firefox') === -1;\n}\n/**\n * Returns true if a given popstate event is an extraneous WebKit event.\n * Accounts for the fact that Chrome on iOS fires real popstate events\n * containing undefined state when pressing the back button.\n */\n\n\nfunction isExtraneousPopstateEvent(event) {\n return event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1;\n}\n\nvar PopStateEvent = 'popstate';\nvar HashChangeEvent = 'hashchange';\n\nfunction getHistoryState() {\n try {\n return window.history.state || {};\n } catch (e) {\n // IE 11 sometimes throws when accessing window.history.state\n // See https://github.com/ReactTraining/history/pull/289\n return {};\n }\n}\n/**\n * Creates a history object that uses the HTML5 history API including\n * pushState, replaceState, and the popstate event.\n */\n\n\nfunction createBrowserHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Browser history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canUseHistory = supportsHistory();\n var needsHashChangeListener = !supportsPopStateOnHashChange();\n var _props = props,\n _props$forceRefresh = _props.forceRefresh,\n forceRefresh = _props$forceRefresh === void 0 ? false : _props$forceRefresh,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n\n function getDOMLocation(historyState) {\n var _ref = historyState || {},\n key = _ref.key,\n state = _ref.state;\n\n var _window$location = window.location,\n pathname = _window$location.pathname,\n search = _window$location.search,\n hash = _window$location.hash;\n var path = pathname + search + hash;\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path, state, key);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function handlePopState(event) {\n // Ignore extraneous popstate events in WebKit.\n if (isExtraneousPopstateEvent(event)) return;\n handlePop(getDOMLocation(event.state));\n }\n\n function handleHashChange() {\n handlePop(getDOMLocation(getHistoryState()));\n }\n\n var forceNextPop = false;\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of keys we've seen in sessionStorage.\n // Instead, we just default to 0 for keys we don't know.\n\n var toIndex = allKeys.indexOf(toLocation.key);\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allKeys.indexOf(fromLocation.key);\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n }\n\n var initialLocation = getDOMLocation(getHistoryState());\n var allKeys = [initialLocation.key]; // Public interface\n\n function createHref(location) {\n return basename + createPath(location);\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.pushState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.href = href;\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n var nextKeys = allKeys.slice(0, prevIndex + 1);\n nextKeys.push(location.key);\n allKeys = nextKeys;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot push state in browsers that do not support HTML5 history') : void 0;\n window.location.href = href;\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.replaceState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.replace(href);\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n if (prevIndex !== -1) allKeys[prevIndex] = location.key;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot replace state in browsers that do not support HTML5 history') : void 0;\n window.location.replace(href);\n }\n });\n }\n\n function go(n) {\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.addEventListener(HashChangeEvent, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.removeEventListener(HashChangeEvent, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nvar HashChangeEvent$1 = 'hashchange';\nvar HashPathCoders = {\n hashbang: {\n encodePath: function encodePath(path) {\n return path.charAt(0) === '!' ? path : '!/' + stripLeadingSlash(path);\n },\n decodePath: function decodePath(path) {\n return path.charAt(0) === '!' ? path.substr(1) : path;\n }\n },\n noslash: {\n encodePath: stripLeadingSlash,\n decodePath: addLeadingSlash\n },\n slash: {\n encodePath: addLeadingSlash,\n decodePath: addLeadingSlash\n }\n};\n\nfunction stripHash(url) {\n var hashIndex = url.indexOf('#');\n return hashIndex === -1 ? url : url.slice(0, hashIndex);\n}\n\nfunction getHashPath() {\n // We can't use window.location.hash here because it's not\n // consistent across browsers - Firefox will pre-decode it!\n var href = window.location.href;\n var hashIndex = href.indexOf('#');\n return hashIndex === -1 ? '' : href.substring(hashIndex + 1);\n}\n\nfunction pushHashPath(path) {\n window.location.hash = path;\n}\n\nfunction replaceHashPath(path) {\n window.location.replace(stripHash(window.location.href) + '#' + path);\n}\n\nfunction createHashHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Hash history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canGoWithoutReload = supportsGoWithoutReloadUsingHash();\n var _props = props,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$hashType = _props.hashType,\n hashType = _props$hashType === void 0 ? 'slash' : _props$hashType;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n var _HashPathCoders$hashT = HashPathCoders[hashType],\n encodePath = _HashPathCoders$hashT.encodePath,\n decodePath = _HashPathCoders$hashT.decodePath;\n\n function getDOMLocation() {\n var path = decodePath(getHashPath());\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n var forceNextPop = false;\n var ignorePath = null;\n\n function locationsAreEqual$$1(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash;\n }\n\n function handleHashChange() {\n var path = getHashPath();\n var encodedPath = encodePath(path);\n\n if (path !== encodedPath) {\n // Ensure we always have a properly-encoded hash.\n replaceHashPath(encodedPath);\n } else {\n var location = getDOMLocation();\n var prevLocation = history.location;\n if (!forceNextPop && locationsAreEqual$$1(prevLocation, location)) return; // A hashchange doesn't always == location change.\n\n if (ignorePath === createPath(location)) return; // Ignore this change; we already setState in push/replace.\n\n ignorePath = null;\n handlePop(location);\n }\n }\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of paths we've seen in sessionStorage.\n // Instead, we just default to 0 for paths we don't know.\n\n var toIndex = allPaths.lastIndexOf(createPath(toLocation));\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allPaths.lastIndexOf(createPath(fromLocation));\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n } // Ensure the hash is encoded properly before doing anything else.\n\n\n var path = getHashPath();\n var encodedPath = encodePath(path);\n if (path !== encodedPath) replaceHashPath(encodedPath);\n var initialLocation = getDOMLocation();\n var allPaths = [createPath(initialLocation)]; // Public interface\n\n function createHref(location) {\n var baseTag = document.querySelector('base');\n var href = '';\n\n if (baseTag && baseTag.getAttribute('href')) {\n href = stripHash(window.location.href);\n }\n\n return href + '#' + encodePath(basename + createPath(location));\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot push state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a PUSH, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n pushHashPath(encodedPath);\n var prevIndex = allPaths.lastIndexOf(createPath(history.location));\n var nextPaths = allPaths.slice(0, prevIndex + 1);\n nextPaths.push(path);\n allPaths = nextPaths;\n setState({\n action: action,\n location: location\n });\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Hash history cannot PUSH the same path; a new entry will not be added to the history stack') : void 0;\n setState();\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot replace state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a REPLACE, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n replaceHashPath(encodedPath);\n }\n\n var prevIndex = allPaths.indexOf(createPath(history.location));\n if (prevIndex !== -1) allPaths[prevIndex] = path;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n process.env.NODE_ENV !== \"production\" ? warning(canGoWithoutReload, 'Hash history go(n) causes a full page reload in this browser') : void 0;\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(HashChangeEvent$1, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(HashChangeEvent$1, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nfunction clamp(n, lowerBound, upperBound) {\n return Math.min(Math.max(n, lowerBound), upperBound);\n}\n/**\n * Creates a history object that stores locations in memory.\n */\n\n\nfunction createMemoryHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n var _props = props,\n getUserConfirmation = _props.getUserConfirmation,\n _props$initialEntries = _props.initialEntries,\n initialEntries = _props$initialEntries === void 0 ? ['/'] : _props$initialEntries,\n _props$initialIndex = _props.initialIndex,\n initialIndex = _props$initialIndex === void 0 ? 0 : _props$initialIndex,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = history.entries.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var index = clamp(initialIndex, 0, initialEntries.length - 1);\n var entries = initialEntries.map(function (entry) {\n return typeof entry === 'string' ? createLocation(entry, undefined, createKey()) : createLocation(entry, undefined, entry.key || createKey());\n }); // Public interface\n\n var createHref = createPath;\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var prevIndex = history.index;\n var nextIndex = prevIndex + 1;\n var nextEntries = history.entries.slice(0);\n\n if (nextEntries.length > nextIndex) {\n nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location);\n } else {\n nextEntries.push(location);\n }\n\n setState({\n action: action,\n location: location,\n index: nextIndex,\n entries: nextEntries\n });\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n history.entries[history.index] = location;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n var nextIndex = clamp(history.index + n, 0, history.entries.length - 1);\n var action = 'POP';\n var location = history.entries[nextIndex];\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location,\n index: nextIndex\n });\n } else {\n // Mimic the behavior of DOM histories by\n // causing a render after a cancelled POP.\n setState();\n }\n });\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n function canGo(n) {\n var nextIndex = history.index + n;\n return nextIndex >= 0 && nextIndex < history.entries.length;\n }\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n return transitionManager.setPrompt(prompt);\n }\n\n function listen(listener) {\n return transitionManager.appendListener(listener);\n }\n\n var history = {\n length: entries.length,\n action: 'POP',\n location: entries[index],\n index: index,\n entries: entries,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n canGo: canGo,\n block: block,\n listen: listen\n };\n return history;\n}\n\nexport { createBrowserHistory, createHashHistory, createMemoryHistory, createLocation, locationsAreEqual, parsePath, createPath };","import \"core-js/modules/esnext.global-this.js\";\nimport React, { Component } from 'react';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport PropTypes from 'prop-types';\nimport warning from 'tiny-warning';\nvar MAX_SIGNED_31_BIT_INT = 1073741823;\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : {};\n\nfunction getUniqueId() {\n var key = '__global_unique_id__';\n return commonjsGlobal[key] = (commonjsGlobal[key] || 0) + 1;\n}\n\nfunction objectIs(x, y) {\n if (x === y) {\n return x !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\n\nfunction createEventEmitter(value) {\n var handlers = [];\n return {\n on: function on(handler) {\n handlers.push(handler);\n },\n off: function off(handler) {\n handlers = handlers.filter(function (h) {\n return h !== handler;\n });\n },\n get: function get() {\n return value;\n },\n set: function set(newValue, changedBits) {\n value = newValue;\n handlers.forEach(function (handler) {\n return handler(value, changedBits);\n });\n }\n };\n}\n\nfunction onlyChild(children) {\n return Array.isArray(children) ? children[0] : children;\n}\n\nfunction createReactContext(defaultValue, calculateChangedBits) {\n var _Provider$childContex, _Consumer$contextType;\n\n var contextProp = '__create-react-context-' + getUniqueId() + '__';\n\n var Provider = /*#__PURE__*/function (_Component) {\n _inheritsLoose(Provider, _Component);\n\n function Provider() {\n var _this;\n\n _this = _Component.apply(this, arguments) || this;\n _this.emitter = createEventEmitter(_this.props.value);\n return _this;\n }\n\n var _proto = Provider.prototype;\n\n _proto.getChildContext = function getChildContext() {\n var _ref;\n\n return _ref = {}, _ref[contextProp] = this.emitter, _ref;\n };\n\n _proto.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n if (this.props.value !== nextProps.value) {\n var oldValue = this.props.value;\n var newValue = nextProps.value;\n var changedBits;\n\n if (objectIs(oldValue, newValue)) {\n changedBits = 0;\n } else {\n changedBits = typeof calculateChangedBits === 'function' ? calculateChangedBits(oldValue, newValue) : MAX_SIGNED_31_BIT_INT;\n\n if (process.env.NODE_ENV !== 'production') {\n warning((changedBits & MAX_SIGNED_31_BIT_INT) === changedBits, 'calculateChangedBits: Expected the return value to be a ' + '31-bit integer. Instead received: ' + changedBits);\n }\n\n changedBits |= 0;\n\n if (changedBits !== 0) {\n this.emitter.set(nextProps.value, changedBits);\n }\n }\n }\n };\n\n _proto.render = function render() {\n return this.props.children;\n };\n\n return Provider;\n }(Component);\n\n Provider.childContextTypes = (_Provider$childContex = {}, _Provider$childContex[contextProp] = PropTypes.object.isRequired, _Provider$childContex);\n\n var Consumer = /*#__PURE__*/function (_Component2) {\n _inheritsLoose(Consumer, _Component2);\n\n function Consumer() {\n var _this2;\n\n _this2 = _Component2.apply(this, arguments) || this;\n _this2.state = {\n value: _this2.getValue()\n };\n\n _this2.onUpdate = function (newValue, changedBits) {\n var observedBits = _this2.observedBits | 0;\n\n if ((observedBits & changedBits) !== 0) {\n _this2.setState({\n value: _this2.getValue()\n });\n }\n };\n\n return _this2;\n }\n\n var _proto2 = Consumer.prototype;\n\n _proto2.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n var observedBits = nextProps.observedBits;\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits;\n };\n\n _proto2.componentDidMount = function componentDidMount() {\n if (this.context[contextProp]) {\n this.context[contextProp].on(this.onUpdate);\n }\n\n var observedBits = this.props.observedBits;\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits;\n };\n\n _proto2.componentWillUnmount = function componentWillUnmount() {\n if (this.context[contextProp]) {\n this.context[contextProp].off(this.onUpdate);\n }\n };\n\n _proto2.getValue = function getValue() {\n if (this.context[contextProp]) {\n return this.context[contextProp].get();\n } else {\n return defaultValue;\n }\n };\n\n _proto2.render = function render() {\n return onlyChild(this.props.children)(this.state.value);\n };\n\n return Consumer;\n }(Component);\n\n Consumer.contextTypes = (_Consumer$contextType = {}, _Consumer$contextType[contextProp] = PropTypes.object, _Consumer$contextType);\n return {\n Provider: Provider,\n Consumer: Consumer\n };\n}\n\nvar index = React.createContext || createReactContext;\nexport default index;","import _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { createMemoryHistory, createLocation, locationsAreEqual, createPath } from 'history';\nimport warning from 'tiny-warning';\nimport createContext from 'mini-create-react-context';\nimport invariant from 'tiny-invariant';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport pathToRegexp from 'path-to-regexp';\nimport { isValidElementType } from 'react-is';\nimport _objectWithoutPropertiesLoose from '@babel/runtime/helpers/esm/objectWithoutPropertiesLoose';\nimport hoistStatics from 'hoist-non-react-statics'; // TODO: Replace with React.createContext once we can assume React 16+\n\nvar createNamedContext = function createNamedContext(name) {\n var context = createContext();\n context.displayName = name;\n return context;\n};\n\nvar historyContext = /*#__PURE__*/createNamedContext(\"Router-History\");\nvar context = /*#__PURE__*/createNamedContext(\"Router\");\n/**\n * The public API for putting history on context.\n */\n\nvar Router = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Router, _React$Component);\n\n Router.computeRootMatch = function computeRootMatch(pathname) {\n return {\n path: \"/\",\n url: \"/\",\n params: {},\n isExact: pathname === \"/\"\n };\n };\n\n function Router(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this;\n _this.state = {\n location: props.history.location\n }; // This is a bit of a hack. We have to start listening for location\n // changes here in the constructor in case there are any s\n // on the initial render. If there are, they will replace/push when\n // they mount and since cDM fires in children before parents, we may\n // get a new location before the is mounted.\n\n _this._isMounted = false;\n _this._pendingLocation = null;\n\n if (!props.staticContext) {\n _this.unlisten = props.history.listen(function (location) {\n if (_this._isMounted) {\n _this.setState({\n location: location\n });\n } else {\n _this._pendingLocation = location;\n }\n });\n }\n\n return _this;\n }\n\n var _proto = Router.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this._isMounted = true;\n\n if (this._pendingLocation) {\n this.setState({\n location: this._pendingLocation\n });\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (this.unlisten) {\n this.unlisten();\n this._isMounted = false;\n this._pendingLocation = null;\n }\n };\n\n _proto.render = function render() {\n return /*#__PURE__*/React.createElement(context.Provider, {\n value: {\n history: this.props.history,\n location: this.state.location,\n match: Router.computeRootMatch(this.state.location.pathname),\n staticContext: this.props.staticContext\n }\n }, /*#__PURE__*/React.createElement(historyContext.Provider, {\n children: this.props.children || null,\n value: this.props.history\n }));\n };\n\n return Router;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\n Router.prototype.componentDidUpdate = function (prevProps) {\n process.env.NODE_ENV !== \"production\" ? warning(prevProps.history === this.props.history, \"You cannot change \") : void 0;\n };\n}\n/**\n * The public API for a that stores location in memory.\n */\n\n\nvar MemoryRouter = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(MemoryRouter, _React$Component);\n\n function MemoryRouter() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.history = createMemoryHistory(_this.props);\n return _this;\n }\n\n var _proto = MemoryRouter.prototype;\n\n _proto.render = function render() {\n return /*#__PURE__*/React.createElement(Router, {\n history: this.history,\n children: this.props.children\n });\n };\n\n return MemoryRouter;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\n MemoryRouter.prototype.componentDidMount = function () {\n process.env.NODE_ENV !== \"production\" ? warning(!this.props.history, \" ignores the history prop. To use a custom history, \" + \"use `import { Router }` instead of `import { MemoryRouter as Router }`.\") : void 0;\n };\n}\n\nvar Lifecycle = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Lifecycle, _React$Component);\n\n function Lifecycle() {\n return _React$Component.apply(this, arguments) || this;\n }\n\n var _proto = Lifecycle.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n if (this.props.onMount) this.props.onMount.call(this, this);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n if (this.props.onUpdate) this.props.onUpdate.call(this, this, prevProps);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (this.props.onUnmount) this.props.onUnmount.call(this, this);\n };\n\n _proto.render = function render() {\n return null;\n };\n\n return Lifecycle;\n}(React.Component);\n/**\n * The public API for prompting the user before navigating away from a screen.\n */\n\n\nfunction Prompt(_ref) {\n var message = _ref.message,\n _ref$when = _ref.when,\n when = _ref$when === void 0 ? true : _ref$when;\n return /*#__PURE__*/React.createElement(context.Consumer, null, function (context) {\n !context ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use outside a \") : invariant(false) : void 0;\n if (!when || context.staticContext) return null;\n var method = context.history.block;\n return /*#__PURE__*/React.createElement(Lifecycle, {\n onMount: function onMount(self) {\n self.release = method(message);\n },\n onUpdate: function onUpdate(self, prevProps) {\n if (prevProps.message !== message) {\n self.release();\n self.release = method(message);\n }\n },\n onUnmount: function onUnmount(self) {\n self.release();\n },\n message: message\n });\n });\n}\n\nif (process.env.NODE_ENV !== \"production\") {\n var messageType = PropTypes.oneOfType([PropTypes.func, PropTypes.string]);\n}\n\nvar cache = {};\nvar cacheLimit = 10000;\nvar cacheCount = 0;\n\nfunction compilePath(path) {\n if (cache[path]) return cache[path];\n var generator = pathToRegexp.compile(path);\n\n if (cacheCount < cacheLimit) {\n cache[path] = generator;\n cacheCount++;\n }\n\n return generator;\n}\n/**\n * Public API for generating a URL pathname from a path and parameters.\n */\n\n\nfunction generatePath(path, params) {\n if (path === void 0) {\n path = \"/\";\n }\n\n if (params === void 0) {\n params = {};\n }\n\n return path === \"/\" ? path : compilePath(path)(params, {\n pretty: true\n });\n}\n/**\n * The public API for navigating programmatically with a component.\n */\n\n\nfunction Redirect(_ref) {\n var computedMatch = _ref.computedMatch,\n to = _ref.to,\n _ref$push = _ref.push,\n push = _ref$push === void 0 ? false : _ref$push;\n return /*#__PURE__*/React.createElement(context.Consumer, null, function (context) {\n !context ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use outside a \") : invariant(false) : void 0;\n var history = context.history,\n staticContext = context.staticContext;\n var method = push ? history.push : history.replace;\n var location = createLocation(computedMatch ? typeof to === \"string\" ? generatePath(to, computedMatch.params) : _extends({}, to, {\n pathname: generatePath(to.pathname, computedMatch.params)\n }) : to); // When rendering in a static context,\n // set the new location immediately.\n\n if (staticContext) {\n method(location);\n return null;\n }\n\n return /*#__PURE__*/React.createElement(Lifecycle, {\n onMount: function onMount() {\n method(location);\n },\n onUpdate: function onUpdate(self, prevProps) {\n var prevLocation = createLocation(prevProps.to);\n\n if (!locationsAreEqual(prevLocation, _extends({}, location, {\n key: prevLocation.key\n }))) {\n method(location);\n }\n },\n to: to\n });\n });\n}\n\nif (process.env.NODE_ENV !== \"production\") {}\n\nvar cache$1 = {};\nvar cacheLimit$1 = 10000;\nvar cacheCount$1 = 0;\n\nfunction compilePath$1(path, options) {\n var cacheKey = \"\" + options.end + options.strict + options.sensitive;\n var pathCache = cache$1[cacheKey] || (cache$1[cacheKey] = {});\n if (pathCache[path]) return pathCache[path];\n var keys = [];\n var regexp = pathToRegexp(path, keys, options);\n var result = {\n regexp: regexp,\n keys: keys\n };\n\n if (cacheCount$1 < cacheLimit$1) {\n pathCache[path] = result;\n cacheCount$1++;\n }\n\n return result;\n}\n/**\n * Public API for matching a URL pathname to a path.\n */\n\n\nfunction matchPath(pathname, options) {\n if (options === void 0) {\n options = {};\n }\n\n if (typeof options === \"string\" || Array.isArray(options)) {\n options = {\n path: options\n };\n }\n\n var _options = options,\n path = _options.path,\n _options$exact = _options.exact,\n exact = _options$exact === void 0 ? false : _options$exact,\n _options$strict = _options.strict,\n strict = _options$strict === void 0 ? false : _options$strict,\n _options$sensitive = _options.sensitive,\n sensitive = _options$sensitive === void 0 ? false : _options$sensitive;\n var paths = [].concat(path);\n return paths.reduce(function (matched, path) {\n if (!path && path !== \"\") return null;\n if (matched) return matched;\n\n var _compilePath = compilePath$1(path, {\n end: exact,\n strict: strict,\n sensitive: sensitive\n }),\n regexp = _compilePath.regexp,\n keys = _compilePath.keys;\n\n var match = regexp.exec(pathname);\n if (!match) return null;\n var url = match[0],\n values = match.slice(1);\n var isExact = pathname === url;\n if (exact && !isExact) return null;\n return {\n path: path,\n // the path used to match\n url: path === \"/\" && url === \"\" ? \"/\" : url,\n // the matched portion of the URL\n isExact: isExact,\n // whether or not we matched exactly\n params: keys.reduce(function (memo, key, index) {\n memo[key.name] = values[index];\n return memo;\n }, {})\n };\n }, null);\n}\n\nfunction isEmptyChildren(children) {\n return React.Children.count(children) === 0;\n}\n\nfunction evalChildrenDev(children, props, path) {\n var value = children(props);\n process.env.NODE_ENV !== \"production\" ? warning(value !== undefined, \"You returned `undefined` from the `children` function of \" + (\", but you \") + \"should have returned a React element or `null`\") : void 0;\n return value || null;\n}\n/**\n * The public API for matching a single path and rendering.\n */\n\n\nvar Route = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Route, _React$Component);\n\n function Route() {\n return _React$Component.apply(this, arguments) || this;\n }\n\n var _proto = Route.prototype;\n\n _proto.render = function render() {\n var _this = this;\n\n return /*#__PURE__*/React.createElement(context.Consumer, null, function (context$1) {\n !context$1 ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use outside a \") : invariant(false) : void 0;\n var location = _this.props.location || context$1.location;\n var match = _this.props.computedMatch ? _this.props.computedMatch // already computed the match for us\n : _this.props.path ? matchPath(location.pathname, _this.props) : context$1.match;\n\n var props = _extends({}, context$1, {\n location: location,\n match: match\n });\n\n var _this$props = _this.props,\n children = _this$props.children,\n component = _this$props.component,\n render = _this$props.render; // Preact uses an empty array as children by\n // default, so use null if that's the case.\n\n if (Array.isArray(children) && isEmptyChildren(children)) {\n children = null;\n }\n\n return /*#__PURE__*/React.createElement(context.Provider, {\n value: props\n }, props.match ? children ? typeof children === \"function\" ? process.env.NODE_ENV !== \"production\" ? evalChildrenDev(children, props, _this.props.path) : children(props) : children : component ? /*#__PURE__*/React.createElement(component, props) : render ? render(props) : null : typeof children === \"function\" ? process.env.NODE_ENV !== \"production\" ? evalChildrenDev(children, props, _this.props.path) : children(props) : null);\n });\n };\n\n return Route;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\n Route.prototype.componentDidMount = function () {\n process.env.NODE_ENV !== \"production\" ? warning(!(this.props.children && !isEmptyChildren(this.props.children) && this.props.component), \"You should not use and in the same route; will be ignored\") : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!(this.props.children && !isEmptyChildren(this.props.children) && this.props.render), \"You should not use and in the same route; will be ignored\") : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!(this.props.component && this.props.render), \"You should not use and in the same route; will be ignored\") : void 0;\n };\n\n Route.prototype.componentDidUpdate = function (prevProps) {\n process.env.NODE_ENV !== \"production\" ? warning(!(this.props.location && !prevProps.location), ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.') : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!(!this.props.location && prevProps.location), ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.') : void 0;\n };\n}\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === \"/\" ? path : \"/\" + path;\n}\n\nfunction addBasename(basename, location) {\n if (!basename) return location;\n return _extends({}, location, {\n pathname: addLeadingSlash(basename) + location.pathname\n });\n}\n\nfunction stripBasename(basename, location) {\n if (!basename) return location;\n var base = addLeadingSlash(basename);\n if (location.pathname.indexOf(base) !== 0) return location;\n return _extends({}, location, {\n pathname: location.pathname.substr(base.length)\n });\n}\n\nfunction createURL(location) {\n return typeof location === \"string\" ? location : createPath(location);\n}\n\nfunction staticHandler(methodName) {\n return function () {\n process.env.NODE_ENV !== \"production\" ? invariant(false, \"You cannot %s with \", methodName) : invariant(false);\n };\n}\n\nfunction noop() {}\n/**\n * The public top-level API for a \"static\" , so-called because it\n * can't actually change the current location. Instead, it just records\n * location changes in a context object. Useful mainly in testing and\n * server-rendering scenarios.\n */\n\n\nvar StaticRouter = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(StaticRouter, _React$Component);\n\n function StaticRouter() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n\n _this.handlePush = function (location) {\n return _this.navigateTo(location, \"PUSH\");\n };\n\n _this.handleReplace = function (location) {\n return _this.navigateTo(location, \"REPLACE\");\n };\n\n _this.handleListen = function () {\n return noop;\n };\n\n _this.handleBlock = function () {\n return noop;\n };\n\n return _this;\n }\n\n var _proto = StaticRouter.prototype;\n\n _proto.navigateTo = function navigateTo(location, action) {\n var _this$props = this.props,\n _this$props$basename = _this$props.basename,\n basename = _this$props$basename === void 0 ? \"\" : _this$props$basename,\n _this$props$context = _this$props.context,\n context = _this$props$context === void 0 ? {} : _this$props$context;\n context.action = action;\n context.location = addBasename(basename, createLocation(location));\n context.url = createURL(context.location);\n };\n\n _proto.render = function render() {\n var _this$props2 = this.props,\n _this$props2$basename = _this$props2.basename,\n basename = _this$props2$basename === void 0 ? \"\" : _this$props2$basename,\n _this$props2$context = _this$props2.context,\n context = _this$props2$context === void 0 ? {} : _this$props2$context,\n _this$props2$location = _this$props2.location,\n location = _this$props2$location === void 0 ? \"/\" : _this$props2$location,\n rest = _objectWithoutPropertiesLoose(_this$props2, [\"basename\", \"context\", \"location\"]);\n\n var history = {\n createHref: function createHref(path) {\n return addLeadingSlash(basename + createURL(path));\n },\n action: \"POP\",\n location: stripBasename(basename, createLocation(location)),\n push: this.handlePush,\n replace: this.handleReplace,\n go: staticHandler(\"go\"),\n goBack: staticHandler(\"goBack\"),\n goForward: staticHandler(\"goForward\"),\n listen: this.handleListen,\n block: this.handleBlock\n };\n return /*#__PURE__*/React.createElement(Router, _extends({}, rest, {\n history: history,\n staticContext: context\n }));\n };\n\n return StaticRouter;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\n StaticRouter.prototype.componentDidMount = function () {\n process.env.NODE_ENV !== \"production\" ? warning(!this.props.history, \" ignores the history prop. To use a custom history, \" + \"use `import { Router }` instead of `import { StaticRouter as Router }`.\") : void 0;\n };\n}\n/**\n * The public API for rendering the first that matches.\n */\n\n\nvar Switch = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Switch, _React$Component);\n\n function Switch() {\n return _React$Component.apply(this, arguments) || this;\n }\n\n var _proto = Switch.prototype;\n\n _proto.render = function render() {\n var _this = this;\n\n return /*#__PURE__*/React.createElement(context.Consumer, null, function (context) {\n !context ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use outside a \") : invariant(false) : void 0;\n var location = _this.props.location || context.location;\n var element, match; // We use React.Children.forEach instead of React.Children.toArray().find()\n // here because toArray adds keys to all child elements and we do not want\n // to trigger an unmount/remount for two s that render the same\n // component at different URLs.\n\n React.Children.forEach(_this.props.children, function (child) {\n if (match == null && /*#__PURE__*/React.isValidElement(child)) {\n element = child;\n var path = child.props.path || child.props.from;\n match = path ? matchPath(location.pathname, _extends({}, child.props, {\n path: path\n })) : context.match;\n }\n });\n return match ? /*#__PURE__*/React.cloneElement(element, {\n location: location,\n computedMatch: match\n }) : null;\n });\n };\n\n return Switch;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\n Switch.prototype.componentDidUpdate = function (prevProps) {\n process.env.NODE_ENV !== \"production\" ? warning(!(this.props.location && !prevProps.location), ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.') : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!(!this.props.location && prevProps.location), ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.') : void 0;\n };\n}\n/**\n * A public higher-order component to access the imperative API\n */\n\n\nfunction withRouter(Component) {\n var displayName = \"withRouter(\" + (Component.displayName || Component.name) + \")\";\n\n var C = function C(props) {\n var wrappedComponentRef = props.wrappedComponentRef,\n remainingProps = _objectWithoutPropertiesLoose(props, [\"wrappedComponentRef\"]);\n\n return /*#__PURE__*/React.createElement(context.Consumer, null, function (context) {\n !context ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use <\" + displayName + \" /> outside a \") : invariant(false) : void 0;\n return /*#__PURE__*/React.createElement(Component, _extends({}, remainingProps, context, {\n ref: wrappedComponentRef\n }));\n });\n };\n\n C.displayName = displayName;\n C.WrappedComponent = Component;\n\n if (process.env.NODE_ENV !== \"production\") {}\n\n return hoistStatics(C, Component);\n}\n\nvar useContext = React.useContext;\n\nfunction useHistory() {\n if (process.env.NODE_ENV !== \"production\") {\n !(typeof useContext === \"function\") ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You must use React >= 16.8 in order to use useHistory()\") : invariant(false) : void 0;\n }\n\n return useContext(historyContext);\n}\n\nfunction useLocation() {\n if (process.env.NODE_ENV !== \"production\") {\n !(typeof useContext === \"function\") ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You must use React >= 16.8 in order to use useLocation()\") : invariant(false) : void 0;\n }\n\n return useContext(context).location;\n}\n\nfunction useParams() {\n if (process.env.NODE_ENV !== \"production\") {\n !(typeof useContext === \"function\") ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You must use React >= 16.8 in order to use useParams()\") : invariant(false) : void 0;\n }\n\n var match = useContext(context).match;\n return match ? match.params : {};\n}\n\nfunction useRouteMatch(path) {\n if (process.env.NODE_ENV !== \"production\") {\n !(typeof useContext === \"function\") ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You must use React >= 16.8 in order to use useRouteMatch()\") : invariant(false) : void 0;\n }\n\n var location = useLocation();\n var match = useContext(context).match;\n return path ? matchPath(location.pathname, path) : match;\n}\n\nif (process.env.NODE_ENV !== \"production\") {\n if (typeof window !== \"undefined\") {\n var global = window;\n var key = \"__react_router_build__\";\n var buildNames = {\n cjs: \"CommonJS\",\n esm: \"ES modules\",\n umd: \"UMD\"\n };\n\n if (global[key] && global[key] !== \"esm\") {\n var initialBuildName = buildNames[global[key]];\n var secondaryBuildName = buildNames[\"esm\"]; // TODO: Add link to article that explains in detail how to avoid\n // loading 2 different builds.\n\n throw new Error(\"You are loading the \" + secondaryBuildName + \" build of React Router \" + (\"on a page that is already running the \" + initialBuildName + \" \") + \"build, so things won't work right.\");\n }\n\n global[key] = \"esm\";\n }\n}\n\nexport { MemoryRouter, Prompt, Redirect, Route, Router, StaticRouter, Switch, historyContext as __HistoryContext, context as __RouterContext, generatePath, matchPath, useHistory, useLocation, useParams, useRouteMatch, withRouter };","import { Router, __RouterContext, matchPath } from 'react-router';\nexport { MemoryRouter, Prompt, Redirect, Route, Router, StaticRouter, Switch, generatePath, matchPath, useHistory, useLocation, useParams, useRouteMatch, withRouter } from 'react-router';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport React from 'react';\nimport { createBrowserHistory, createHashHistory, createLocation, createPath } from 'history';\nimport PropTypes from 'prop-types';\nimport warning from 'tiny-warning';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport _objectWithoutPropertiesLoose from '@babel/runtime/helpers/esm/objectWithoutPropertiesLoose';\nimport invariant from 'tiny-invariant';\n/**\n * The public API for a that uses HTML5 history.\n */\n\nvar BrowserRouter = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(BrowserRouter, _React$Component);\n\n function BrowserRouter() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.history = createBrowserHistory(_this.props);\n return _this;\n }\n\n var _proto = BrowserRouter.prototype;\n\n _proto.render = function render() {\n return /*#__PURE__*/React.createElement(Router, {\n history: this.history,\n children: this.props.children\n });\n };\n\n return BrowserRouter;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\n BrowserRouter.prototype.componentDidMount = function () {\n process.env.NODE_ENV !== \"production\" ? warning(!this.props.history, \" ignores the history prop. To use a custom history, \" + \"use `import { Router }` instead of `import { BrowserRouter as Router }`.\") : void 0;\n };\n}\n/**\n * The public API for a that uses window.location.hash.\n */\n\n\nvar HashRouter = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(HashRouter, _React$Component);\n\n function HashRouter() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.history = createHashHistory(_this.props);\n return _this;\n }\n\n var _proto = HashRouter.prototype;\n\n _proto.render = function render() {\n return /*#__PURE__*/React.createElement(Router, {\n history: this.history,\n children: this.props.children\n });\n };\n\n return HashRouter;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\n HashRouter.prototype.componentDidMount = function () {\n process.env.NODE_ENV !== \"production\" ? warning(!this.props.history, \" ignores the history prop. To use a custom history, \" + \"use `import { Router }` instead of `import { HashRouter as Router }`.\") : void 0;\n };\n}\n\nvar resolveToLocation = function resolveToLocation(to, currentLocation) {\n return typeof to === \"function\" ? to(currentLocation) : to;\n};\n\nvar normalizeToLocation = function normalizeToLocation(to, currentLocation) {\n return typeof to === \"string\" ? createLocation(to, null, null, currentLocation) : to;\n};\n\nvar forwardRefShim = function forwardRefShim(C) {\n return C;\n};\n\nvar forwardRef = React.forwardRef;\n\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction isModifiedEvent(event) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nvar LinkAnchor = forwardRef(function (_ref, forwardedRef) {\n var innerRef = _ref.innerRef,\n navigate = _ref.navigate,\n _onClick = _ref.onClick,\n rest = _objectWithoutPropertiesLoose(_ref, [\"innerRef\", \"navigate\", \"onClick\"]);\n\n var target = rest.target;\n\n var props = _extends({}, rest, {\n onClick: function onClick(event) {\n try {\n if (_onClick) _onClick(event);\n } catch (ex) {\n event.preventDefault();\n throw ex;\n }\n\n if (!event.defaultPrevented && // onClick prevented default\n event.button === 0 && ( // ignore everything but left clicks\n !target || target === \"_self\") && // let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // ignore clicks with modifier keys\n ) {\n event.preventDefault();\n navigate();\n }\n }\n }); // React 15 compat\n\n\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.ref = innerRef;\n }\n /* eslint-disable-next-line jsx-a11y/anchor-has-content */\n\n\n return /*#__PURE__*/React.createElement(\"a\", props);\n});\n\nif (process.env.NODE_ENV !== \"production\") {\n LinkAnchor.displayName = \"LinkAnchor\";\n}\n/**\n * The public API for rendering a history-aware .\n */\n\n\nvar Link = forwardRef(function (_ref2, forwardedRef) {\n var _ref2$component = _ref2.component,\n component = _ref2$component === void 0 ? LinkAnchor : _ref2$component,\n replace = _ref2.replace,\n to = _ref2.to,\n innerRef = _ref2.innerRef,\n rest = _objectWithoutPropertiesLoose(_ref2, [\"component\", \"replace\", \"to\", \"innerRef\"]);\n\n return /*#__PURE__*/React.createElement(__RouterContext.Consumer, null, function (context) {\n !context ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use outside a \") : invariant(false) : void 0;\n var history = context.history;\n var location = normalizeToLocation(resolveToLocation(to, context.location), context.location);\n var href = location ? history.createHref(location) : \"\";\n\n var props = _extends({}, rest, {\n href: href,\n navigate: function navigate() {\n var location = resolveToLocation(to, context.location);\n var isDuplicateNavigation = createPath(context.location) === createPath(normalizeToLocation(location));\n var method = replace || isDuplicateNavigation ? history.replace : history.push;\n method(location);\n }\n }); // React 15 compat\n\n\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return /*#__PURE__*/React.createElement(component, props);\n });\n});\n\nif (process.env.NODE_ENV !== \"production\") {\n var toType = PropTypes.oneOfType([PropTypes.string, PropTypes.object, PropTypes.func]);\n var refType = PropTypes.oneOfType([PropTypes.string, PropTypes.func, PropTypes.shape({\n current: PropTypes.any\n })]);\n Link.displayName = \"Link\";\n}\n\nvar forwardRefShim$1 = function forwardRefShim(C) {\n return C;\n};\n\nvar forwardRef$1 = React.forwardRef;\n\nif (typeof forwardRef$1 === \"undefined\") {\n forwardRef$1 = forwardRefShim$1;\n}\n\nfunction joinClassnames() {\n for (var _len = arguments.length, classnames = new Array(_len), _key = 0; _key < _len; _key++) {\n classnames[_key] = arguments[_key];\n }\n\n return classnames.filter(function (i) {\n return i;\n }).join(\" \");\n}\n/**\n * A wrapper that knows if it's \"active\" or not.\n */\n\n\nvar NavLink = forwardRef$1(function (_ref, forwardedRef) {\n var _ref$ariaCurrent = _ref[\"aria-current\"],\n ariaCurrent = _ref$ariaCurrent === void 0 ? \"page\" : _ref$ariaCurrent,\n _ref$activeClassName = _ref.activeClassName,\n activeClassName = _ref$activeClassName === void 0 ? \"active\" : _ref$activeClassName,\n activeStyle = _ref.activeStyle,\n classNameProp = _ref.className,\n exact = _ref.exact,\n isActiveProp = _ref.isActive,\n locationProp = _ref.location,\n sensitive = _ref.sensitive,\n strict = _ref.strict,\n styleProp = _ref.style,\n to = _ref.to,\n innerRef = _ref.innerRef,\n rest = _objectWithoutPropertiesLoose(_ref, [\"aria-current\", \"activeClassName\", \"activeStyle\", \"className\", \"exact\", \"isActive\", \"location\", \"sensitive\", \"strict\", \"style\", \"to\", \"innerRef\"]);\n\n return /*#__PURE__*/React.createElement(__RouterContext.Consumer, null, function (context) {\n !context ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use outside a \") : invariant(false) : void 0;\n var currentLocation = locationProp || context.location;\n var toLocation = normalizeToLocation(resolveToLocation(to, currentLocation), currentLocation);\n var path = toLocation.pathname; // Regex taken from: https://github.com/pillarjs/path-to-regexp/blob/master/index.js#L202\n\n var escapedPath = path && path.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, \"\\\\$1\");\n var match = escapedPath ? matchPath(currentLocation.pathname, {\n path: escapedPath,\n exact: exact,\n sensitive: sensitive,\n strict: strict\n }) : null;\n var isActive = !!(isActiveProp ? isActiveProp(match, currentLocation) : match);\n var className = typeof classNameProp === \"function\" ? classNameProp(isActive) : classNameProp;\n var style = typeof styleProp === \"function\" ? styleProp(isActive) : styleProp;\n\n if (isActive) {\n className = joinClassnames(className, activeClassName);\n style = _extends({}, style, activeStyle);\n }\n\n var props = _extends({\n \"aria-current\": isActive && ariaCurrent || null,\n className: className,\n style: style,\n to: toLocation\n }, rest); // React 15 compat\n\n\n if (forwardRefShim$1 !== forwardRef$1) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return /*#__PURE__*/React.createElement(Link, props);\n });\n});\n\nif (process.env.NODE_ENV !== \"production\") {\n NavLink.displayName = \"NavLink\";\n var ariaCurrentType = PropTypes.oneOf([\"page\", \"step\", \"location\", \"date\", \"time\", \"true\", \"false\"]);\n}\n\nexport { BrowserRouter, HashRouter, Link, NavLink };","var isarray = require('isarray');\n/**\n * Expose `pathToRegexp`.\n */\n\n\nmodule.exports = pathToRegexp;\nmodule.exports.parse = parse;\nmodule.exports.compile = compile;\nmodule.exports.tokensToFunction = tokensToFunction;\nmodule.exports.tokensToRegExp = tokensToRegExp;\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\n\nvar PATH_REGEXP = new RegExp([// Match escaped characters that would otherwise appear in future matches.\n// This allows the user to escape special characters that won't transform.\n'(\\\\\\\\.)', // Match Express-style parameters and un-named parameters with a prefix\n// and optional suffixes. Matches appear as:\n//\n// \"/:test(\\\\d+)?\" => [\"/\", \"test\", \"\\d+\", undefined, \"?\", undefined]\n// \"/route(\\\\d+)\" => [undefined, undefined, undefined, \"\\d+\", undefined, undefined]\n// \"/*\" => [\"/\", undefined, undefined, undefined, undefined, \"*\"]\n'([\\\\/.])?(?:(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?|(\\\\*))'].join('|'), 'g');\n/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */\n\nfunction parse(str, options) {\n var tokens = [];\n var key = 0;\n var index = 0;\n var path = '';\n var defaultDelimiter = options && options.delimiter || '/';\n var res;\n\n while ((res = PATH_REGEXP.exec(str)) != null) {\n var m = res[0];\n var escaped = res[1];\n var offset = res.index;\n path += str.slice(index, offset);\n index = offset + m.length; // Ignore already escaped sequences.\n\n if (escaped) {\n path += escaped[1];\n continue;\n }\n\n var next = str[index];\n var prefix = res[2];\n var name = res[3];\n var capture = res[4];\n var group = res[5];\n var modifier = res[6];\n var asterisk = res[7]; // Push the current path onto the tokens.\n\n if (path) {\n tokens.push(path);\n path = '';\n }\n\n var partial = prefix != null && next != null && next !== prefix;\n var repeat = modifier === '+' || modifier === '*';\n var optional = modifier === '?' || modifier === '*';\n var delimiter = res[2] || defaultDelimiter;\n var pattern = capture || group;\n tokens.push({\n name: name || key++,\n prefix: prefix || '',\n delimiter: delimiter,\n optional: optional,\n repeat: repeat,\n partial: partial,\n asterisk: !!asterisk,\n pattern: pattern ? escapeGroup(pattern) : asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?'\n });\n } // Match any characters still remaining.\n\n\n if (index < str.length) {\n path += str.substr(index);\n } // If the path exists, push it onto the end.\n\n\n if (path) {\n tokens.push(path);\n }\n\n return tokens;\n}\n/**\n * Compile a string to a template function for the path.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!function(Object=, Object=)}\n */\n\n\nfunction compile(str, options) {\n return tokensToFunction(parse(str, options), options);\n}\n/**\n * Prettier encoding of URI path segments.\n *\n * @param {string}\n * @return {string}\n */\n\n\nfunction encodeURIComponentPretty(str) {\n return encodeURI(str).replace(/[\\/?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase();\n });\n}\n/**\n * Encode the asterisk parameter. Similar to `pretty`, but allows slashes.\n *\n * @param {string}\n * @return {string}\n */\n\n\nfunction encodeAsterisk(str) {\n return encodeURI(str).replace(/[?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase();\n });\n}\n/**\n * Expose a method for transforming tokens into the path function.\n */\n\n\nfunction tokensToFunction(tokens, options) {\n // Compile all the tokens into regexps.\n var matches = new Array(tokens.length); // Compile all the patterns before compilation.\n\n for (var i = 0; i < tokens.length; i++) {\n if (typeof tokens[i] === 'object') {\n matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$', flags(options));\n }\n }\n\n return function (obj, opts) {\n var path = '';\n var data = obj || {};\n var options = opts || {};\n var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent;\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (typeof token === 'string') {\n path += token;\n continue;\n }\n\n var value = data[token.name];\n var segment;\n\n if (value == null) {\n if (token.optional) {\n // Prepend partial segment prefixes.\n if (token.partial) {\n path += token.prefix;\n }\n\n continue;\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to be defined');\n }\n }\n\n if (isarray(value)) {\n if (!token.repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but received `' + JSON.stringify(value) + '`');\n }\n\n if (value.length === 0) {\n if (token.optional) {\n continue;\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to not be empty');\n }\n }\n\n for (var j = 0; j < value.length; j++) {\n segment = encode(value[j]);\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\", but received `' + JSON.stringify(segment) + '`');\n }\n\n path += (j === 0 ? token.prefix : token.delimiter) + segment;\n }\n\n continue;\n }\n\n segment = token.asterisk ? encodeAsterisk(value) : encode(value);\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but received \"' + segment + '\"');\n }\n\n path += token.prefix + segment;\n }\n\n return path;\n };\n}\n/**\n * Escape a regular expression string.\n *\n * @param {string} str\n * @return {string}\n */\n\n\nfunction escapeString(str) {\n return str.replace(/([.+*?=^!:${}()[\\]|\\/\\\\])/g, '\\\\$1');\n}\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param {string} group\n * @return {string}\n */\n\n\nfunction escapeGroup(group) {\n return group.replace(/([=!:$\\/()])/g, '\\\\$1');\n}\n/**\n * Attach the keys as a property of the regexp.\n *\n * @param {!RegExp} re\n * @param {Array} keys\n * @return {!RegExp}\n */\n\n\nfunction attachKeys(re, keys) {\n re.keys = keys;\n return re;\n}\n/**\n * Get the flags for a regexp from the options.\n *\n * @param {Object} options\n * @return {string}\n */\n\n\nfunction flags(options) {\n return options && options.sensitive ? '' : 'i';\n}\n/**\n * Pull out keys from a regexp.\n *\n * @param {!RegExp} path\n * @param {!Array} keys\n * @return {!RegExp}\n */\n\n\nfunction regexpToRegexp(path, keys) {\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g);\n\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: null,\n delimiter: null,\n optional: false,\n repeat: false,\n partial: false,\n asterisk: false,\n pattern: null\n });\n }\n }\n\n return attachKeys(path, keys);\n}\n/**\n * Transform an array into a regexp.\n *\n * @param {!Array} path\n * @param {Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\n\n\nfunction arrayToRegexp(path, keys, options) {\n var parts = [];\n\n for (var i = 0; i < path.length; i++) {\n parts.push(pathToRegexp(path[i], keys, options).source);\n }\n\n var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options));\n return attachKeys(regexp, keys);\n}\n/**\n * Create a path regexp from string input.\n *\n * @param {string} path\n * @param {!Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\n\n\nfunction stringToRegexp(path, keys, options) {\n return tokensToRegExp(parse(path, options), keys, options);\n}\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param {!Array} tokens\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\n\n\nfunction tokensToRegExp(tokens, keys, options) {\n if (!isarray(keys)) {\n options =\n /** @type {!Object} */\n keys || options;\n keys = [];\n }\n\n options = options || {};\n var strict = options.strict;\n var end = options.end !== false;\n var route = ''; // Iterate over the tokens and create our regexp string.\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (typeof token === 'string') {\n route += escapeString(token);\n } else {\n var prefix = escapeString(token.prefix);\n var capture = '(?:' + token.pattern + ')';\n keys.push(token);\n\n if (token.repeat) {\n capture += '(?:' + prefix + capture + ')*';\n }\n\n if (token.optional) {\n if (!token.partial) {\n capture = '(?:' + prefix + '(' + capture + '))?';\n } else {\n capture = prefix + '(' + capture + ')?';\n }\n } else {\n capture = prefix + '(' + capture + ')';\n }\n\n route += capture;\n }\n }\n\n var delimiter = escapeString(options.delimiter || '/');\n var endsWithDelimiter = route.slice(-delimiter.length) === delimiter; // In non-strict mode we allow a slash at the end of match. If the path to\n // match already ends with a slash, we remove it for consistency. The slash\n // is valid at the end of a path match, not in the middle. This is important\n // in non-ending mode, where \"/test/\" shouldn't match \"/test//route\".\n\n if (!strict) {\n route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?';\n }\n\n if (end) {\n route += '$';\n } else {\n // In non-ending mode, we need the capturing groups to match as much as\n // possible by using a positive lookahead to the end or next path segment.\n route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)';\n }\n\n return attachKeys(new RegExp('^' + route, flags(options)), keys);\n}\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param {(string|RegExp|Array)} path\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\n\n\nfunction pathToRegexp(path, keys, options) {\n if (!isarray(keys)) {\n options =\n /** @type {!Object} */\n keys || options;\n keys = [];\n }\n\n options = options || {};\n\n if (path instanceof RegExp) {\n return regexpToRegexp(path,\n /** @type {!Array} */\n keys);\n }\n\n if (isarray(path)) {\n return arrayToRegexp(\n /** @type {!Array} */\n path,\n /** @type {!Array} */\n keys, options);\n }\n\n return stringToRegexp(\n /** @type {string} */\n path,\n /** @type {!Array} */\n keys, options);\n}","'use strict';\n\nfunction _interopDefault(ex) {\n return ex && typeof ex === 'object' && 'default' in ex ? ex['default'] : ex;\n}\n\nvar React = require('react');\n\nvar React__default = _interopDefault(React);\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\nfunction withSideEffect(reducePropsToState, handleStateChangeOnClient, mapStateOnServer) {\n if (typeof reducePropsToState !== 'function') {\n throw new Error('Expected reducePropsToState to be a function.');\n }\n\n if (typeof handleStateChangeOnClient !== 'function') {\n throw new Error('Expected handleStateChangeOnClient to be a function.');\n }\n\n if (typeof mapStateOnServer !== 'undefined' && typeof mapStateOnServer !== 'function') {\n throw new Error('Expected mapStateOnServer to either be undefined or a function.');\n }\n\n function getDisplayName(WrappedComponent) {\n return WrappedComponent.displayName || WrappedComponent.name || 'Component';\n }\n\n return function wrap(WrappedComponent) {\n if (typeof WrappedComponent !== 'function') {\n throw new Error('Expected WrappedComponent to be a React component.');\n }\n\n var mountedInstances = [];\n var state;\n\n function emitChange() {\n state = reducePropsToState(mountedInstances.map(function (instance) {\n return instance.props;\n }));\n\n if (SideEffect.canUseDOM) {\n handleStateChangeOnClient(state);\n } else if (mapStateOnServer) {\n state = mapStateOnServer(state);\n }\n }\n\n var SideEffect = /*#__PURE__*/function (_PureComponent) {\n _inheritsLoose(SideEffect, _PureComponent);\n\n function SideEffect() {\n return _PureComponent.apply(this, arguments) || this;\n } // Try to use displayName of wrapped component\n // Expose canUseDOM so tests can monkeypatch it\n\n\n SideEffect.peek = function peek() {\n return state;\n };\n\n SideEffect.rewind = function rewind() {\n if (SideEffect.canUseDOM) {\n throw new Error('You may only call rewind() on the server. Call peek() to read the current state.');\n }\n\n var recordedState = state;\n state = undefined;\n mountedInstances = [];\n return recordedState;\n };\n\n var _proto = SideEffect.prototype;\n\n _proto.UNSAFE_componentWillMount = function UNSAFE_componentWillMount() {\n mountedInstances.push(this);\n emitChange();\n };\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n emitChange();\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n var index = mountedInstances.indexOf(this);\n mountedInstances.splice(index, 1);\n emitChange();\n };\n\n _proto.render = function render() {\n return /*#__PURE__*/React__default.createElement(WrappedComponent, this.props);\n };\n\n return SideEffect;\n }(React.PureComponent);\n\n _defineProperty(SideEffect, \"displayName\", \"SideEffect(\" + getDisplayName(WrappedComponent) + \")\");\n\n _defineProperty(SideEffect, \"canUseDOM\", canUseDOM);\n\n return SideEffect;\n };\n}\n\nmodule.exports = withSideEffect;","'use strict';\n\nvar $Object = Object;\nvar $TypeError = TypeError;\n\nmodule.exports = function flags() {\n if (this != null && this !== $Object(this)) {\n throw new $TypeError('RegExp.prototype.flags getter called on non-object');\n }\n\n var result = '';\n\n if (this.global) {\n result += 'g';\n }\n\n if (this.ignoreCase) {\n result += 'i';\n }\n\n if (this.multiline) {\n result += 'm';\n }\n\n if (this.dotAll) {\n result += 's';\n }\n\n if (this.unicode) {\n result += 'u';\n }\n\n if (this.sticky) {\n result += 'y';\n }\n\n return result;\n};","'use strict';\n\nvar define = require('define-properties');\n\nvar callBind = require('call-bind');\n\nvar implementation = require('./implementation');\n\nvar getPolyfill = require('./polyfill');\n\nvar shim = require('./shim');\n\nvar flagsBound = callBind(implementation);\ndefine(flagsBound, {\n getPolyfill: getPolyfill,\n implementation: implementation,\n shim: shim\n});\nmodule.exports = flagsBound;","'use strict';\n\nvar implementation = require('./implementation');\n\nvar supportsDescriptors = require('define-properties').supportsDescriptors;\n\nvar $gOPD = Object.getOwnPropertyDescriptor;\nvar $TypeError = TypeError;\n\nmodule.exports = function getPolyfill() {\n if (!supportsDescriptors) {\n throw new $TypeError('RegExp.prototype.flags requires a true ES5 environment that supports property descriptors');\n }\n\n if (/a/mig.flags === 'gim') {\n var descriptor = $gOPD(RegExp.prototype, 'flags');\n\n if (descriptor && typeof descriptor.get === 'function' && typeof /a/.dotAll === 'boolean') {\n return descriptor.get;\n }\n }\n\n return implementation;\n};","'use strict';\n\nvar supportsDescriptors = require('define-properties').supportsDescriptors;\n\nvar getPolyfill = require('./polyfill');\n\nvar gOPD = Object.getOwnPropertyDescriptor;\nvar defineProperty = Object.defineProperty;\nvar TypeErr = TypeError;\nvar getProto = Object.getPrototypeOf;\nvar regex = /a/;\n\nmodule.exports = function shimFlags() {\n if (!supportsDescriptors || !getProto) {\n throw new TypeErr('RegExp.prototype.flags requires a true ES5 environment that supports property descriptors');\n }\n\n var polyfill = getPolyfill();\n var proto = getProto(regex);\n var descriptor = gOPD(proto, 'flags');\n\n if (!descriptor || descriptor.get !== polyfill) {\n defineProperty(proto, 'flags', {\n configurable: true,\n enumerable: false,\n get: polyfill\n });\n }\n\n return polyfill;\n};","var candidateSelectors = ['input', 'select', 'textarea', 'a[href]', 'button', '[tabindex]', 'audio[controls]', 'video[controls]', '[contenteditable]:not([contenteditable=\"false\"])'];\nvar candidateSelector = candidateSelectors.join(',');\nvar matches = typeof Element === 'undefined' ? function () {} : Element.prototype.matches || Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector;\n\nfunction tabbable(el, options) {\n options = options || {};\n var elementDocument = el.ownerDocument || el;\n var regularTabbables = [];\n var orderedTabbables = [];\n var untouchabilityChecker = new UntouchabilityChecker(elementDocument);\n var candidates = el.querySelectorAll(candidateSelector);\n\n if (options.includeContainer) {\n if (matches.call(el, candidateSelector)) {\n candidates = Array.prototype.slice.apply(candidates);\n candidates.unshift(el);\n }\n }\n\n var i, candidate, candidateTabindex;\n\n for (i = 0; i < candidates.length; i++) {\n candidate = candidates[i];\n if (!isNodeMatchingSelectorTabbable(candidate, untouchabilityChecker)) continue;\n candidateTabindex = getTabindex(candidate);\n\n if (candidateTabindex === 0) {\n regularTabbables.push(candidate);\n } else {\n orderedTabbables.push({\n documentOrder: i,\n tabIndex: candidateTabindex,\n node: candidate\n });\n }\n }\n\n var tabbableNodes = orderedTabbables.sort(sortOrderedTabbables).map(function (a) {\n return a.node;\n }).concat(regularTabbables);\n return tabbableNodes;\n}\n\ntabbable.isTabbable = isTabbable;\ntabbable.isFocusable = isFocusable;\n\nfunction isNodeMatchingSelectorTabbable(node, untouchabilityChecker) {\n if (!isNodeMatchingSelectorFocusable(node, untouchabilityChecker) || isNonTabbableRadio(node) || getTabindex(node) < 0) {\n return false;\n }\n\n return true;\n}\n\nfunction isTabbable(node, untouchabilityChecker) {\n if (!node) throw new Error('No node provided');\n if (matches.call(node, candidateSelector) === false) return false;\n return isNodeMatchingSelectorTabbable(node, untouchabilityChecker);\n}\n\nfunction isNodeMatchingSelectorFocusable(node, untouchabilityChecker) {\n untouchabilityChecker = untouchabilityChecker || new UntouchabilityChecker(node.ownerDocument || node);\n\n if (node.disabled || isHiddenInput(node) || untouchabilityChecker.isUntouchable(node)) {\n return false;\n }\n\n return true;\n}\n\nvar focusableCandidateSelector = candidateSelectors.concat('iframe').join(',');\n\nfunction isFocusable(node, untouchabilityChecker) {\n if (!node) throw new Error('No node provided');\n if (matches.call(node, focusableCandidateSelector) === false) return false;\n return isNodeMatchingSelectorFocusable(node, untouchabilityChecker);\n}\n\nfunction getTabindex(node) {\n var tabindexAttr = parseInt(node.getAttribute('tabindex'), 10);\n if (!isNaN(tabindexAttr)) return tabindexAttr; // Browsers do not return `tabIndex` correctly for contentEditable nodes;\n // so if they don't have a tabindex attribute specifically set, assume it's 0.\n\n if (isContentEditable(node)) return 0;\n return node.tabIndex;\n}\n\nfunction sortOrderedTabbables(a, b) {\n return a.tabIndex === b.tabIndex ? a.documentOrder - b.documentOrder : a.tabIndex - b.tabIndex;\n} // Array.prototype.find not available in IE.\n\n\nfunction find(list, predicate) {\n for (var i = 0, length = list.length; i < length; i++) {\n if (predicate(list[i])) return list[i];\n }\n}\n\nfunction isContentEditable(node) {\n return node.contentEditable === 'true';\n}\n\nfunction isInput(node) {\n return node.tagName === 'INPUT';\n}\n\nfunction isHiddenInput(node) {\n return isInput(node) && node.type === 'hidden';\n}\n\nfunction isRadio(node) {\n return isInput(node) && node.type === 'radio';\n}\n\nfunction isNonTabbableRadio(node) {\n return isRadio(node) && !isTabbableRadio(node);\n}\n\nfunction getCheckedRadio(nodes) {\n for (var i = 0; i < nodes.length; i++) {\n if (nodes[i].checked) {\n return nodes[i];\n }\n }\n}\n\nfunction isTabbableRadio(node) {\n if (!node.name) return true; // This won't account for the edge case where you have radio groups with the same\n // in separate forms on the same page.\n\n var radioSet = node.ownerDocument.querySelectorAll('input[type=\"radio\"][name=\"' + node.name + '\"]');\n var checked = getCheckedRadio(radioSet);\n return !checked || checked === node;\n} // An element is \"untouchable\" if *it or one of its ancestors* has\n// `visibility: hidden` or `display: none`.\n\n\nfunction UntouchabilityChecker(elementDocument) {\n this.doc = elementDocument; // Node cache must be refreshed on every check, in case\n // the content of the element has changed. The cache contains tuples\n // mapping nodes to their boolean result.\n\n this.cache = [];\n} // getComputedStyle accurately reflects `visibility: hidden` of ancestors\n// but not `display: none`, so we need to recursively check parents.\n\n\nUntouchabilityChecker.prototype.hasDisplayNone = function hasDisplayNone(node, nodeComputedStyle) {\n if (node.nodeType !== Node.ELEMENT_NODE) return false; // Search for a cached result.\n\n var cached = find(this.cache, function (item) {\n return item === node;\n });\n if (cached) return cached[1];\n nodeComputedStyle = nodeComputedStyle || this.doc.defaultView.getComputedStyle(node);\n var result = false;\n\n if (nodeComputedStyle.display === 'none') {\n result = true;\n } else if (node.parentNode) {\n result = this.hasDisplayNone(node.parentNode);\n }\n\n this.cache.push([node, result]);\n return result;\n};\n\nUntouchabilityChecker.prototype.isUntouchable = function isUntouchable(node) {\n if (node === this.doc.documentElement) return false;\n var computedStyle = this.doc.defaultView.getComputedStyle(node);\n if (this.hasDisplayNone(node, computedStyle)) return true;\n return computedStyle.visibility === 'hidden';\n};\n\nmodule.exports = tabbable;","module.exports = extend;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nfunction extend() {\n var target = {};\n\n for (var i = 0; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n}","var isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw TypeError(tryToString(argument) + ' is not a function');\n};\n","var isCallable = require('../internals/is-callable');\n\nmodule.exports = function (argument) {\n if (typeof argument === 'object' || isCallable(argument)) return argument;\n throw TypeError(\"Can't set \" + String(argument) + ' as a prototype');\n};\n","var isObject = require('../internals/is-object');\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw TypeError(String(argument) + ' is not an object');\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","var isArray = require('../internals/is-array');\nvar isConstructor = require('../internals/is-constructor');\nvar isObject = require('../internals/is-object');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// a part of `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray) {\n var C;\n if (isArray(originalArray)) {\n C = originalArray.constructor;\n // cross-realm fallback\n if (isConstructor(C) && (C === Array || isArray(C.prototype))) C = undefined;\n else if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return C === undefined ? Array : C;\n};\n","var arraySpeciesConstructor = require('../internals/array-species-constructor');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length);\n};\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar isCallable = require('../internals/is-callable');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n};\n","var hasOwn = require('../internals/has-own-property');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwn(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n // eslint-disable-next-line es/no-object-getprototypeof -- required for testing\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n version = match[0] < 4 ? 1 : match[0] + match[1];\n} else if (userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = match[1];\n }\n}\n\nmodule.exports = version && +version;\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar setGlobal = require('../internals/set-global');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.noTargetGet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || setGlobal(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty === typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n // extend global\n redefine(target, key, sourceProperty, options);\n }\n};\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","'use strict';\nvar isArray = require('../internals/is-array');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar bind = require('../internals/function-bind-context');\n\n// `FlattenIntoArray` abstract operation\n// https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray\nvar flattenIntoArray = function (target, original, source, sourceLen, start, depth, mapper, thisArg) {\n var targetIndex = start;\n var sourceIndex = 0;\n var mapFn = mapper ? bind(mapper, thisArg, 3) : false;\n var element, elementLen;\n\n while (sourceIndex < sourceLen) {\n if (sourceIndex in source) {\n element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex];\n\n if (depth > 0 && isArray(element)) {\n elementLen = lengthOfArrayLike(element);\n targetIndex = flattenIntoArray(target, original, element, elementLen, targetIndex, depth - 1) - 1;\n } else {\n if (targetIndex >= 0x1FFFFFFFFFFFFF) throw TypeError('Exceed the acceptable array length');\n target[targetIndex] = element;\n }\n\n targetIndex++;\n }\n sourceIndex++;\n }\n return targetIndex;\n};\n\nmodule.exports = flattenIntoArray;\n","var aCallable = require('../internals/a-callable');\n\n// optional / simple context binding\nmodule.exports = function (fn, that, length) {\n aCallable(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 0: return function () {\n return fn.call(that);\n };\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n","var classof = require('../internals/classof');\nvar getMethod = require('../internals/get-method');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (it != undefined) return getMethod(it, ITERATOR)\n || getMethod(it, '@@iterator')\n || Iterators[classof(it)];\n};\n","var aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nmodule.exports = function (argument, usingIterator) {\n var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;\n if (aCallable(iteratorMethod)) return anObject(iteratorMethod.call(argument));\n throw TypeError(String(argument) + ' is not iterable');\n};\n","var aCallable = require('../internals/a-callable');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return func == null ? undefined : aCallable(func);\n};\n","var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n","var toObject = require('../internals/to-object');\n\nvar hasOwnProperty = {}.hasOwnProperty;\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty.call(toObject(it), key);\n};\n","module.exports = {};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- requied for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar split = ''.split;\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split.call(it, '') : Object(it);\n} : Object;\n","var isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = Function.toString;\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString.call(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\n// `InstallErrorCause` abstract operation\n// https://tc39.es/proposal-error-cause/#sec-errorobjects-install-error-cause\nmodule.exports = function (O, options) {\n if (isObject(options) && 'cause' in options) {\n createNonEnumerableProperty(O, 'cause', options.cause);\n }\n};\n","var NATIVE_WEAK_MAP = require('../internals/native-weak-map');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n var wmget = store.get;\n var wmhas = store.has;\n var wmset = store.set;\n set = function (it, metadata) {\n if (wmhas.call(store, it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n wmset.call(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget.call(store, it) || {};\n };\n has = function (it) {\n return wmhas.call(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","var classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es/no-array-isarray -- safe\nmodule.exports = Array.isArray || function isArray(argument) {\n return classof(argument) == 'Array';\n};\n","// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\nmodule.exports = function (argument) {\n return typeof argument === 'function';\n};\n","var fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof');\nvar getBuiltIn = require('../internals/get-built-in');\nvar inspectSource = require('../internals/inspect-source');\n\nvar empty = [];\nvar construct = getBuiltIn('Reflect', 'construct');\nvar constructorRegExp = /^\\s*(?:class|function)\\b/;\nvar exec = constructorRegExp.exec;\nvar INCORRECT_TO_STRING = !constructorRegExp.exec(function () { /* empty */ });\n\nvar isConstructorModern = function (argument) {\n if (!isCallable(argument)) return false;\n try {\n construct(Object, empty, argument);\n return true;\n } catch (error) {\n return false;\n }\n};\n\nvar isConstructorLegacy = function (argument) {\n if (!isCallable(argument)) return false;\n switch (classof(argument)) {\n case 'AsyncFunction':\n case 'GeneratorFunction':\n case 'AsyncGeneratorFunction': return false;\n // we can't check .prototype since constructors produced by .bind haven't it\n } return INCORRECT_TO_STRING || !!exec.call(constructorRegExp, inspectSource(argument));\n};\n\n// `IsConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-isconstructor\nmodule.exports = !construct || fails(function () {\n var called;\n return isConstructorModern(isConstructorModern.call)\n || !isConstructorModern(Object)\n || !isConstructorModern(function () { called = true; })\n || called;\n}) ? isConstructorLegacy : isConstructorModern;\n","var fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","var isCallable = require('../internals/is-callable');\n\nmodule.exports = function (it) {\n return typeof it === 'object' ? it !== null : isCallable(it);\n};\n","module.exports = false;\n","var isCallable = require('../internals/is-callable');\nvar getBuiltIn = require('../internals/get-built-in');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && Object(it) instanceof $Symbol;\n};\n","var anObject = require('../internals/an-object');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar bind = require('../internals/function-bind-context');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nmodule.exports = function (iterable, unboundFunction, options) {\n var that = options && options.that;\n var AS_ENTRIES = !!(options && options.AS_ENTRIES);\n var IS_ITERATOR = !!(options && options.IS_ITERATOR);\n var INTERRUPTED = !!(options && options.INTERRUPTED);\n var fn = bind(unboundFunction, that, 1 + AS_ENTRIES + INTERRUPTED);\n var iterator, iterFn, index, length, result, next, step;\n\n var stop = function (condition) {\n if (iterator) iteratorClose(iterator, 'normal', condition);\n return new Result(true, condition);\n };\n\n var callFn = function (value) {\n if (AS_ENTRIES) {\n anObject(value);\n return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);\n } return INTERRUPTED ? fn(value, stop) : fn(value);\n };\n\n if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (!iterFn) throw TypeError(String(iterable) + ' is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) {\n result = callFn(iterable[index]);\n if (result && result instanceof Result) return result;\n } return new Result(false);\n }\n iterator = getIterator(iterable, iterFn);\n }\n\n next = iterator.next;\n while (!(step = next.call(iterator)).done) {\n try {\n result = callFn(step.value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n if (typeof result == 'object' && result && result instanceof Result) return result;\n } return new Result(false);\n};\n","var anObject = require('../internals/an-object');\nvar getMethod = require('../internals/get-method');\n\nmodule.exports = function (iterator, kind, value) {\n var innerResult, innerError;\n anObject(iterator);\n try {\n innerResult = getMethod(iterator, 'return');\n if (!innerResult) {\n if (kind === 'throw') throw value;\n return value;\n }\n innerResult = innerResult.call(iterator);\n } catch (error) {\n innerError = true;\n innerResult = error;\n }\n if (kind === 'throw') throw value;\n if (innerError) throw innerResult;\n anObject(innerResult);\n return value;\n};\n","module.exports = {};\n","var toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol();\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n return !String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar inspectSource = require('../internals/inspect-source');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(inspectSource(WeakMap));\n","/* global ActiveXObject -- old IE, WSH */\nvar anObject = require('../internals/an-object');\nvar defineProperties = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n activeXDocument = new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = typeof document != 'undefined'\n ? document.domain && activeXDocument\n ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n : NullProtoObjectViaIFrame()\n : NullProtoObjectViaActiveX(activeXDocument); // WSH\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : defineProperties(result, Properties);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nmodule.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], Properties[key]);\n return O;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","var hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar ObjectPrototype = Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n// eslint-disable-next-line es/no-object-getprototypeof -- safe\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {\n var object = toObject(O);\n if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];\n var constructor = object.constructor;\n if (isCallable(constructor) && object instanceof constructor) {\n return constructor.prototype;\n } return object instanceof Object ? ObjectPrototype : null;\n};\n","var hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || result.push(key);\n }\n return result;\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","/* eslint-disable no-proto -- safe */\nvar anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n setter = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set;\n setter.call(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter.call(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","var isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = fn.call(input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = fn.call(input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = fn.call(input))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var getBuiltIn = require('../internals/get-built-in');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar setGlobal = require('../internals/set-global');\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\n\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(String).split('String');\n\n(module.exports = function (O, key, value, options) {\n var unsafe = options ? !!options.unsafe : false;\n var simple = options ? !!options.enumerable : false;\n var noTargetGet = options ? !!options.noTargetGet : false;\n var name = options && options.name !== undefined ? options.name : key;\n var state;\n if (isCallable(value)) {\n if (String(name).slice(0, 7) === 'Symbol(') {\n name = '[' + String(name).replace(/^Symbol\\(([^)]*)\\)/, '$1') + ']';\n }\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n createNonEnumerableProperty(value, 'name', name);\n }\n state = enforceInternalState(value);\n if (!state.source) {\n state.source = TEMPLATE.join(typeof name == 'string' ? name : '');\n }\n }\n if (O === global) {\n if (simple) O[key] = value;\n else setGlobal(key, value);\n return;\n } else if (!unsafe) {\n delete O[key];\n } else if (!noTargetGet && O[key]) {\n simple = true;\n }\n if (simple) O[key] = value;\n else createNonEnumerableProperty(O, key, value);\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, 'toString', function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n});\n","// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","var global = require('../internals/global');\n\nmodule.exports = function (key, value) {\n try {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","var global = require('../internals/global');\nvar setGlobal = require('../internals/set-global');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || setGlobal(SHARED, {});\n\nmodule.exports = store;\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.18.3',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2021 Denis Pushkarev (zloirock.ru)'\n});\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- safe\n return number !== number || number === 0 ? 0 : (number > 0 ? floor : ceil)(number);\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n};\n","var isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = exoticToPrim.call(input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","var toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : String(key);\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","var classof = require('../internals/classof');\n\nmodule.exports = function (argument) {\n if (classof(argument) === 'Symbol') throw TypeError('Cannot convert a Symbol value to a string');\n return String(argument);\n};\n","module.exports = function (argument) {\n try {\n return String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","var id = 0;\nvar postfix = Math.random();\n\nmodule.exports = function (key) {\n return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);\n};\n","/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) {\n if (NATIVE_SYMBOL && hasOwn(Symbol, name)) {\n WellKnownSymbolsStore[name] = Symbol[name];\n } else {\n WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name);\n }\n } return WellKnownSymbolsStore[name];\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar create = require('../internals/object-create');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar installErrorCause = require('../internals/install-error-cause');\nvar iterate = require('../internals/iterate');\nvar toString = require('../internals/to-string');\n\nvar $AggregateError = function AggregateError(errors, message /* , options */) {\n var that = this;\n var options = arguments.length > 2 ? arguments[2] : undefined;\n if (!(that instanceof $AggregateError)) return new $AggregateError(errors, message, options);\n if (setPrototypeOf) {\n // eslint-disable-next-line unicorn/error-message -- expected\n that = setPrototypeOf(new Error(undefined), getPrototypeOf(that));\n }\n if (message !== undefined) createNonEnumerableProperty(that, 'message', toString(message));\n installErrorCause(that, options);\n var errorsArray = [];\n iterate(errors, errorsArray.push, { that: errorsArray });\n createNonEnumerableProperty(that, 'errors', errorsArray);\n return that;\n};\n\nif (setPrototypeOf) setPrototypeOf($AggregateError, Error);\nelse copyConstructorProperties($AggregateError, Error);\n\n$AggregateError.prototype = create(Error.prototype, {\n constructor: createPropertyDescriptor(1, $AggregateError),\n message: createPropertyDescriptor(1, ''),\n name: createPropertyDescriptor(1, 'AggregateError')\n});\n\n// `AggregateError` constructor\n// https://tc39.es/ecma262/#sec-aggregate-error-constructor\n$({ global: true }, {\n AggregateError: $AggregateError\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar flattenIntoArray = require('../internals/flatten-into-array');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\n// `Array.prototype.flat` method\n// https://tc39.es/ecma262/#sec-array.prototype.flat\n$({ target: 'Array', proto: true }, {\n flat: function flat(/* depthArg = 1 */) {\n var depthArg = arguments.length ? arguments[0] : undefined;\n var O = toObject(this);\n var sourceLen = lengthOfArrayLike(O);\n var A = arraySpeciesCreate(O, 0);\n A.length = flattenIntoArray(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toIntegerOrInfinity(depthArg));\n return A;\n }\n});\n","var $ = require('../internals/export');\nvar global = require('../internals/global');\n\n// `globalThis` object\n// https://tc39.es/ecma262/#sec-globalthis\n$({ global: true }, {\n globalThis: global\n});\n","// TODO: Remove from `core-js@4`\nrequire('../modules/es.aggregate-error');\n","// TODO: Remove from `core-js@4`\nrequire('../modules/es.global-this');\n","import PropTypes from 'prop-types';\nimport withSideEffect from 'react-side-effect';\nimport isEqual from 'react-fast-compare';\nimport React from 'react';\nimport objectAssign from 'object-assign';\nvar ATTRIBUTE_NAMES = {\n BODY: \"bodyAttributes\",\n HTML: \"htmlAttributes\",\n TITLE: \"titleAttributes\"\n};\nvar TAG_NAMES = {\n BASE: \"base\",\n BODY: \"body\",\n HEAD: \"head\",\n HTML: \"html\",\n LINK: \"link\",\n META: \"meta\",\n NOSCRIPT: \"noscript\",\n SCRIPT: \"script\",\n STYLE: \"style\",\n TITLE: \"title\"\n};\nvar VALID_TAG_NAMES = Object.keys(TAG_NAMES).map(function (name) {\n return TAG_NAMES[name];\n});\nvar TAG_PROPERTIES = {\n CHARSET: \"charset\",\n CSS_TEXT: \"cssText\",\n HREF: \"href\",\n HTTPEQUIV: \"http-equiv\",\n INNER_HTML: \"innerHTML\",\n ITEM_PROP: \"itemprop\",\n NAME: \"name\",\n PROPERTY: \"property\",\n REL: \"rel\",\n SRC: \"src\",\n TARGET: \"target\"\n};\nvar REACT_TAG_MAP = {\n accesskey: \"accessKey\",\n charset: \"charSet\",\n class: \"className\",\n contenteditable: \"contentEditable\",\n contextmenu: \"contextMenu\",\n \"http-equiv\": \"httpEquiv\",\n itemprop: \"itemProp\",\n tabindex: \"tabIndex\"\n};\nvar HELMET_PROPS = {\n DEFAULT_TITLE: \"defaultTitle\",\n DEFER: \"defer\",\n ENCODE_SPECIAL_CHARACTERS: \"encodeSpecialCharacters\",\n ON_CHANGE_CLIENT_STATE: \"onChangeClientState\",\n TITLE_TEMPLATE: \"titleTemplate\"\n};\nvar HTML_TAG_MAP = Object.keys(REACT_TAG_MAP).reduce(function (obj, key) {\n obj[REACT_TAG_MAP[key]] = key;\n return obj;\n}, {});\nvar SELF_CLOSING_TAGS = [TAG_NAMES.NOSCRIPT, TAG_NAMES.SCRIPT, TAG_NAMES.STYLE];\nvar HELMET_ATTRIBUTE = \"data-react-helmet\";\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n};\n\nvar classCallCheck = function classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar inherits = function inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n};\n\nvar objectWithoutProperties = function objectWithoutProperties(obj, keys) {\n var target = {};\n\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n};\n\nvar possibleConstructorReturn = function possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n};\n\nvar encodeSpecialCharacters = function encodeSpecialCharacters(str) {\n var encode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n if (encode === false) {\n return String(str);\n }\n\n return String(str).replace(/&/g, \"&\").replace(//g, \">\").replace(/\"/g, \""\").replace(/'/g, \"'\");\n};\n\nvar getTitleFromPropsList = function getTitleFromPropsList(propsList) {\n var innermostTitle = getInnermostProperty(propsList, TAG_NAMES.TITLE);\n var innermostTemplate = getInnermostProperty(propsList, HELMET_PROPS.TITLE_TEMPLATE);\n\n if (innermostTemplate && innermostTitle) {\n // use function arg to avoid need to escape $ characters\n return innermostTemplate.replace(/%s/g, function () {\n return Array.isArray(innermostTitle) ? innermostTitle.join(\"\") : innermostTitle;\n });\n }\n\n var innermostDefaultTitle = getInnermostProperty(propsList, HELMET_PROPS.DEFAULT_TITLE);\n return innermostTitle || innermostDefaultTitle || undefined;\n};\n\nvar getOnChangeClientState = function getOnChangeClientState(propsList) {\n return getInnermostProperty(propsList, HELMET_PROPS.ON_CHANGE_CLIENT_STATE) || function () {};\n};\n\nvar getAttributesFromPropsList = function getAttributesFromPropsList(tagType, propsList) {\n return propsList.filter(function (props) {\n return typeof props[tagType] !== \"undefined\";\n }).map(function (props) {\n return props[tagType];\n }).reduce(function (tagAttrs, current) {\n return _extends({}, tagAttrs, current);\n }, {});\n};\n\nvar getBaseTagFromPropsList = function getBaseTagFromPropsList(primaryAttributes, propsList) {\n return propsList.filter(function (props) {\n return typeof props[TAG_NAMES.BASE] !== \"undefined\";\n }).map(function (props) {\n return props[TAG_NAMES.BASE];\n }).reverse().reduce(function (innermostBaseTag, tag) {\n if (!innermostBaseTag.length) {\n var keys = Object.keys(tag);\n\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var lowerCaseAttributeKey = attributeKey.toLowerCase();\n\n if (primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 && tag[lowerCaseAttributeKey]) {\n return innermostBaseTag.concat(tag);\n }\n }\n }\n\n return innermostBaseTag;\n }, []);\n};\n\nvar getTagsFromPropsList = function getTagsFromPropsList(tagName, primaryAttributes, propsList) {\n // Calculate list of tags, giving priority innermost component (end of the propslist)\n var approvedSeenTags = {};\n return propsList.filter(function (props) {\n if (Array.isArray(props[tagName])) {\n return true;\n }\n\n if (typeof props[tagName] !== \"undefined\") {\n warn(\"Helmet: \" + tagName + \" should be of type \\\"Array\\\". Instead found type \\\"\" + _typeof(props[tagName]) + \"\\\"\");\n }\n\n return false;\n }).map(function (props) {\n return props[tagName];\n }).reverse().reduce(function (approvedTags, instanceTags) {\n var instanceSeenTags = {};\n instanceTags.filter(function (tag) {\n var primaryAttributeKey = void 0;\n var keys = Object.keys(tag);\n\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var lowerCaseAttributeKey = attributeKey.toLowerCase(); // Special rule with link tags, since rel and href are both primary tags, rel takes priority\n\n if (primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 && !(primaryAttributeKey === TAG_PROPERTIES.REL && tag[primaryAttributeKey].toLowerCase() === \"canonical\") && !(lowerCaseAttributeKey === TAG_PROPERTIES.REL && tag[lowerCaseAttributeKey].toLowerCase() === \"stylesheet\")) {\n primaryAttributeKey = lowerCaseAttributeKey;\n } // Special case for innerHTML which doesn't work lowercased\n\n\n if (primaryAttributes.indexOf(attributeKey) !== -1 && (attributeKey === TAG_PROPERTIES.INNER_HTML || attributeKey === TAG_PROPERTIES.CSS_TEXT || attributeKey === TAG_PROPERTIES.ITEM_PROP)) {\n primaryAttributeKey = attributeKey;\n }\n }\n\n if (!primaryAttributeKey || !tag[primaryAttributeKey]) {\n return false;\n }\n\n var value = tag[primaryAttributeKey].toLowerCase();\n\n if (!approvedSeenTags[primaryAttributeKey]) {\n approvedSeenTags[primaryAttributeKey] = {};\n }\n\n if (!instanceSeenTags[primaryAttributeKey]) {\n instanceSeenTags[primaryAttributeKey] = {};\n }\n\n if (!approvedSeenTags[primaryAttributeKey][value]) {\n instanceSeenTags[primaryAttributeKey][value] = true;\n return true;\n }\n\n return false;\n }).reverse().forEach(function (tag) {\n return approvedTags.push(tag);\n }); // Update seen tags with tags from this instance\n\n var keys = Object.keys(instanceSeenTags);\n\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var tagUnion = objectAssign({}, approvedSeenTags[attributeKey], instanceSeenTags[attributeKey]);\n approvedSeenTags[attributeKey] = tagUnion;\n }\n\n return approvedTags;\n }, []).reverse();\n};\n\nvar getInnermostProperty = function getInnermostProperty(propsList, property) {\n for (var i = propsList.length - 1; i >= 0; i--) {\n var props = propsList[i];\n\n if (props.hasOwnProperty(property)) {\n return props[property];\n }\n }\n\n return null;\n};\n\nvar reducePropsToState = function reducePropsToState(propsList) {\n return {\n baseTag: getBaseTagFromPropsList([TAG_PROPERTIES.HREF, TAG_PROPERTIES.TARGET], propsList),\n bodyAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.BODY, propsList),\n defer: getInnermostProperty(propsList, HELMET_PROPS.DEFER),\n encode: getInnermostProperty(propsList, HELMET_PROPS.ENCODE_SPECIAL_CHARACTERS),\n htmlAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.HTML, propsList),\n linkTags: getTagsFromPropsList(TAG_NAMES.LINK, [TAG_PROPERTIES.REL, TAG_PROPERTIES.HREF], propsList),\n metaTags: getTagsFromPropsList(TAG_NAMES.META, [TAG_PROPERTIES.NAME, TAG_PROPERTIES.CHARSET, TAG_PROPERTIES.HTTPEQUIV, TAG_PROPERTIES.PROPERTY, TAG_PROPERTIES.ITEM_PROP], propsList),\n noscriptTags: getTagsFromPropsList(TAG_NAMES.NOSCRIPT, [TAG_PROPERTIES.INNER_HTML], propsList),\n onChangeClientState: getOnChangeClientState(propsList),\n scriptTags: getTagsFromPropsList(TAG_NAMES.SCRIPT, [TAG_PROPERTIES.SRC, TAG_PROPERTIES.INNER_HTML], propsList),\n styleTags: getTagsFromPropsList(TAG_NAMES.STYLE, [TAG_PROPERTIES.CSS_TEXT], propsList),\n title: getTitleFromPropsList(propsList),\n titleAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.TITLE, propsList)\n };\n};\n\nvar rafPolyfill = function () {\n var clock = Date.now();\n return function (callback) {\n var currentTime = Date.now();\n\n if (currentTime - clock > 16) {\n clock = currentTime;\n callback(currentTime);\n } else {\n setTimeout(function () {\n rafPolyfill(callback);\n }, 0);\n }\n };\n}();\n\nvar cafPolyfill = function cafPolyfill(id) {\n return clearTimeout(id);\n};\n\nvar requestAnimationFrame = typeof window !== \"undefined\" ? window.requestAnimationFrame && window.requestAnimationFrame.bind(window) || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || rafPolyfill : global.requestAnimationFrame || rafPolyfill;\nvar cancelAnimationFrame = typeof window !== \"undefined\" ? window.cancelAnimationFrame || window.webkitCancelAnimationFrame || window.mozCancelAnimationFrame || cafPolyfill : global.cancelAnimationFrame || cafPolyfill;\n\nvar warn = function warn(msg) {\n return console && typeof console.warn === \"function\" && console.warn(msg);\n};\n\nvar _helmetCallback = null;\n\nvar handleClientStateChange = function handleClientStateChange(newState) {\n if (_helmetCallback) {\n cancelAnimationFrame(_helmetCallback);\n }\n\n if (newState.defer) {\n _helmetCallback = requestAnimationFrame(function () {\n commitTagChanges(newState, function () {\n _helmetCallback = null;\n });\n });\n } else {\n commitTagChanges(newState);\n _helmetCallback = null;\n }\n};\n\nvar commitTagChanges = function commitTagChanges(newState, cb) {\n var baseTag = newState.baseTag,\n bodyAttributes = newState.bodyAttributes,\n htmlAttributes = newState.htmlAttributes,\n linkTags = newState.linkTags,\n metaTags = newState.metaTags,\n noscriptTags = newState.noscriptTags,\n onChangeClientState = newState.onChangeClientState,\n scriptTags = newState.scriptTags,\n styleTags = newState.styleTags,\n title = newState.title,\n titleAttributes = newState.titleAttributes;\n updateAttributes(TAG_NAMES.BODY, bodyAttributes);\n updateAttributes(TAG_NAMES.HTML, htmlAttributes);\n updateTitle(title, titleAttributes);\n var tagUpdates = {\n baseTag: updateTags(TAG_NAMES.BASE, baseTag),\n linkTags: updateTags(TAG_NAMES.LINK, linkTags),\n metaTags: updateTags(TAG_NAMES.META, metaTags),\n noscriptTags: updateTags(TAG_NAMES.NOSCRIPT, noscriptTags),\n scriptTags: updateTags(TAG_NAMES.SCRIPT, scriptTags),\n styleTags: updateTags(TAG_NAMES.STYLE, styleTags)\n };\n var addedTags = {};\n var removedTags = {};\n Object.keys(tagUpdates).forEach(function (tagType) {\n var _tagUpdates$tagType = tagUpdates[tagType],\n newTags = _tagUpdates$tagType.newTags,\n oldTags = _tagUpdates$tagType.oldTags;\n\n if (newTags.length) {\n addedTags[tagType] = newTags;\n }\n\n if (oldTags.length) {\n removedTags[tagType] = tagUpdates[tagType].oldTags;\n }\n });\n cb && cb();\n onChangeClientState(newState, addedTags, removedTags);\n};\n\nvar flattenArray = function flattenArray(possibleArray) {\n return Array.isArray(possibleArray) ? possibleArray.join(\"\") : possibleArray;\n};\n\nvar updateTitle = function updateTitle(title, attributes) {\n if (typeof title !== \"undefined\" && document.title !== title) {\n document.title = flattenArray(title);\n }\n\n updateAttributes(TAG_NAMES.TITLE, attributes);\n};\n\nvar updateAttributes = function updateAttributes(tagName, attributes) {\n var elementTag = document.getElementsByTagName(tagName)[0];\n\n if (!elementTag) {\n return;\n }\n\n var helmetAttributeString = elementTag.getAttribute(HELMET_ATTRIBUTE);\n var helmetAttributes = helmetAttributeString ? helmetAttributeString.split(\",\") : [];\n var attributesToRemove = [].concat(helmetAttributes);\n var attributeKeys = Object.keys(attributes);\n\n for (var i = 0; i < attributeKeys.length; i++) {\n var attribute = attributeKeys[i];\n var value = attributes[attribute] || \"\";\n\n if (elementTag.getAttribute(attribute) !== value) {\n elementTag.setAttribute(attribute, value);\n }\n\n if (helmetAttributes.indexOf(attribute) === -1) {\n helmetAttributes.push(attribute);\n }\n\n var indexToSave = attributesToRemove.indexOf(attribute);\n\n if (indexToSave !== -1) {\n attributesToRemove.splice(indexToSave, 1);\n }\n }\n\n for (var _i = attributesToRemove.length - 1; _i >= 0; _i--) {\n elementTag.removeAttribute(attributesToRemove[_i]);\n }\n\n if (helmetAttributes.length === attributesToRemove.length) {\n elementTag.removeAttribute(HELMET_ATTRIBUTE);\n } else if (elementTag.getAttribute(HELMET_ATTRIBUTE) !== attributeKeys.join(\",\")) {\n elementTag.setAttribute(HELMET_ATTRIBUTE, attributeKeys.join(\",\"));\n }\n};\n\nvar updateTags = function updateTags(type, tags) {\n var headElement = document.head || document.querySelector(TAG_NAMES.HEAD);\n var tagNodes = headElement.querySelectorAll(type + \"[\" + HELMET_ATTRIBUTE + \"]\");\n var oldTags = Array.prototype.slice.call(tagNodes);\n var newTags = [];\n var indexToDelete = void 0;\n\n if (tags && tags.length) {\n tags.forEach(function (tag) {\n var newElement = document.createElement(type);\n\n for (var attribute in tag) {\n if (tag.hasOwnProperty(attribute)) {\n if (attribute === TAG_PROPERTIES.INNER_HTML) {\n newElement.innerHTML = tag.innerHTML;\n } else if (attribute === TAG_PROPERTIES.CSS_TEXT) {\n if (newElement.styleSheet) {\n newElement.styleSheet.cssText = tag.cssText;\n } else {\n newElement.appendChild(document.createTextNode(tag.cssText));\n }\n } else {\n var value = typeof tag[attribute] === \"undefined\" ? \"\" : tag[attribute];\n newElement.setAttribute(attribute, value);\n }\n }\n }\n\n newElement.setAttribute(HELMET_ATTRIBUTE, \"true\"); // Remove a duplicate tag from domTagstoRemove, so it isn't cleared.\n\n if (oldTags.some(function (existingTag, index) {\n indexToDelete = index;\n return newElement.isEqualNode(existingTag);\n })) {\n oldTags.splice(indexToDelete, 1);\n } else {\n newTags.push(newElement);\n }\n });\n }\n\n oldTags.forEach(function (tag) {\n return tag.parentNode.removeChild(tag);\n });\n newTags.forEach(function (tag) {\n return headElement.appendChild(tag);\n });\n return {\n oldTags: oldTags,\n newTags: newTags\n };\n};\n\nvar generateElementAttributesAsString = function generateElementAttributesAsString(attributes) {\n return Object.keys(attributes).reduce(function (str, key) {\n var attr = typeof attributes[key] !== \"undefined\" ? key + \"=\\\"\" + attributes[key] + \"\\\"\" : \"\" + key;\n return str ? str + \" \" + attr : attr;\n }, \"\");\n};\n\nvar generateTitleAsString = function generateTitleAsString(type, title, attributes, encode) {\n var attributeString = generateElementAttributesAsString(attributes);\n var flattenedTitle = flattenArray(title);\n return attributeString ? \"<\" + type + \" \" + HELMET_ATTRIBUTE + \"=\\\"true\\\" \" + attributeString + \">\" + encodeSpecialCharacters(flattenedTitle, encode) + \"\" : \"<\" + type + \" \" + HELMET_ATTRIBUTE + \"=\\\"true\\\">\" + encodeSpecialCharacters(flattenedTitle, encode) + \"\";\n};\n\nvar generateTagsAsString = function generateTagsAsString(type, tags, encode) {\n return tags.reduce(function (str, tag) {\n var attributeHtml = Object.keys(tag).filter(function (attribute) {\n return !(attribute === TAG_PROPERTIES.INNER_HTML || attribute === TAG_PROPERTIES.CSS_TEXT);\n }).reduce(function (string, attribute) {\n var attr = typeof tag[attribute] === \"undefined\" ? attribute : attribute + \"=\\\"\" + encodeSpecialCharacters(tag[attribute], encode) + \"\\\"\";\n return string ? string + \" \" + attr : attr;\n }, \"\");\n var tagContent = tag.innerHTML || tag.cssText || \"\";\n var isSelfClosing = SELF_CLOSING_TAGS.indexOf(type) === -1;\n return str + \"<\" + type + \" \" + HELMET_ATTRIBUTE + \"=\\\"true\\\" \" + attributeHtml + (isSelfClosing ? \"/>\" : \">\" + tagContent + \"\");\n }, \"\");\n};\n\nvar convertElementAttributestoReactProps = function convertElementAttributestoReactProps(attributes) {\n var initProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return Object.keys(attributes).reduce(function (obj, key) {\n obj[REACT_TAG_MAP[key] || key] = attributes[key];\n return obj;\n }, initProps);\n};\n\nvar convertReactPropstoHtmlAttributes = function convertReactPropstoHtmlAttributes(props) {\n var initAttributes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return Object.keys(props).reduce(function (obj, key) {\n obj[HTML_TAG_MAP[key] || key] = props[key];\n return obj;\n }, initAttributes);\n};\n\nvar generateTitleAsReactComponent = function generateTitleAsReactComponent(type, title, attributes) {\n var _initProps; // assigning into an array to define toString function on it\n\n\n var initProps = (_initProps = {\n key: title\n }, _initProps[HELMET_ATTRIBUTE] = true, _initProps);\n var props = convertElementAttributestoReactProps(attributes, initProps);\n return [React.createElement(TAG_NAMES.TITLE, props, title)];\n};\n\nvar generateTagsAsReactComponent = function generateTagsAsReactComponent(type, tags) {\n return tags.map(function (tag, i) {\n var _mappedTag;\n\n var mappedTag = (_mappedTag = {\n key: i\n }, _mappedTag[HELMET_ATTRIBUTE] = true, _mappedTag);\n Object.keys(tag).forEach(function (attribute) {\n var mappedAttribute = REACT_TAG_MAP[attribute] || attribute;\n\n if (mappedAttribute === TAG_PROPERTIES.INNER_HTML || mappedAttribute === TAG_PROPERTIES.CSS_TEXT) {\n var content = tag.innerHTML || tag.cssText;\n mappedTag.dangerouslySetInnerHTML = {\n __html: content\n };\n } else {\n mappedTag[mappedAttribute] = tag[attribute];\n }\n });\n return React.createElement(type, mappedTag);\n });\n};\n\nvar getMethodsForTag = function getMethodsForTag(type, tags, encode) {\n switch (type) {\n case TAG_NAMES.TITLE:\n return {\n toComponent: function toComponent() {\n return generateTitleAsReactComponent(type, tags.title, tags.titleAttributes, encode);\n },\n toString: function toString() {\n return generateTitleAsString(type, tags.title, tags.titleAttributes, encode);\n }\n };\n\n case ATTRIBUTE_NAMES.BODY:\n case ATTRIBUTE_NAMES.HTML:\n return {\n toComponent: function toComponent() {\n return convertElementAttributestoReactProps(tags);\n },\n toString: function toString() {\n return generateElementAttributesAsString(tags);\n }\n };\n\n default:\n return {\n toComponent: function toComponent() {\n return generateTagsAsReactComponent(type, tags);\n },\n toString: function toString() {\n return generateTagsAsString(type, tags, encode);\n }\n };\n }\n};\n\nvar mapStateOnServer = function mapStateOnServer(_ref) {\n var baseTag = _ref.baseTag,\n bodyAttributes = _ref.bodyAttributes,\n encode = _ref.encode,\n htmlAttributes = _ref.htmlAttributes,\n linkTags = _ref.linkTags,\n metaTags = _ref.metaTags,\n noscriptTags = _ref.noscriptTags,\n scriptTags = _ref.scriptTags,\n styleTags = _ref.styleTags,\n _ref$title = _ref.title,\n title = _ref$title === undefined ? \"\" : _ref$title,\n titleAttributes = _ref.titleAttributes;\n return {\n base: getMethodsForTag(TAG_NAMES.BASE, baseTag, encode),\n bodyAttributes: getMethodsForTag(ATTRIBUTE_NAMES.BODY, bodyAttributes, encode),\n htmlAttributes: getMethodsForTag(ATTRIBUTE_NAMES.HTML, htmlAttributes, encode),\n link: getMethodsForTag(TAG_NAMES.LINK, linkTags, encode),\n meta: getMethodsForTag(TAG_NAMES.META, metaTags, encode),\n noscript: getMethodsForTag(TAG_NAMES.NOSCRIPT, noscriptTags, encode),\n script: getMethodsForTag(TAG_NAMES.SCRIPT, scriptTags, encode),\n style: getMethodsForTag(TAG_NAMES.STYLE, styleTags, encode),\n title: getMethodsForTag(TAG_NAMES.TITLE, {\n title: title,\n titleAttributes: titleAttributes\n }, encode)\n };\n};\n\nvar Helmet = function Helmet(Component) {\n var _class, _temp;\n\n return _temp = _class = function (_React$Component) {\n inherits(HelmetWrapper, _React$Component);\n\n function HelmetWrapper() {\n classCallCheck(this, HelmetWrapper);\n return possibleConstructorReturn(this, _React$Component.apply(this, arguments));\n }\n\n HelmetWrapper.prototype.shouldComponentUpdate = function shouldComponentUpdate(nextProps) {\n return !isEqual(this.props, nextProps);\n };\n\n HelmetWrapper.prototype.mapNestedChildrenToProps = function mapNestedChildrenToProps(child, nestedChildren) {\n if (!nestedChildren) {\n return null;\n }\n\n switch (child.type) {\n case TAG_NAMES.SCRIPT:\n case TAG_NAMES.NOSCRIPT:\n return {\n innerHTML: nestedChildren\n };\n\n case TAG_NAMES.STYLE:\n return {\n cssText: nestedChildren\n };\n }\n\n throw new Error(\"<\" + child.type + \" /> elements are self-closing and can not contain children. Refer to our API for more information.\");\n };\n\n HelmetWrapper.prototype.flattenArrayTypeChildren = function flattenArrayTypeChildren(_ref) {\n var _babelHelpers$extends;\n\n var child = _ref.child,\n arrayTypeChildren = _ref.arrayTypeChildren,\n newChildProps = _ref.newChildProps,\n nestedChildren = _ref.nestedChildren;\n return _extends({}, arrayTypeChildren, (_babelHelpers$extends = {}, _babelHelpers$extends[child.type] = [].concat(arrayTypeChildren[child.type] || [], [_extends({}, newChildProps, this.mapNestedChildrenToProps(child, nestedChildren))]), _babelHelpers$extends));\n };\n\n HelmetWrapper.prototype.mapObjectTypeChildren = function mapObjectTypeChildren(_ref2) {\n var _babelHelpers$extends2, _babelHelpers$extends3;\n\n var child = _ref2.child,\n newProps = _ref2.newProps,\n newChildProps = _ref2.newChildProps,\n nestedChildren = _ref2.nestedChildren;\n\n switch (child.type) {\n case TAG_NAMES.TITLE:\n return _extends({}, newProps, (_babelHelpers$extends2 = {}, _babelHelpers$extends2[child.type] = nestedChildren, _babelHelpers$extends2.titleAttributes = _extends({}, newChildProps), _babelHelpers$extends2));\n\n case TAG_NAMES.BODY:\n return _extends({}, newProps, {\n bodyAttributes: _extends({}, newChildProps)\n });\n\n case TAG_NAMES.HTML:\n return _extends({}, newProps, {\n htmlAttributes: _extends({}, newChildProps)\n });\n }\n\n return _extends({}, newProps, (_babelHelpers$extends3 = {}, _babelHelpers$extends3[child.type] = _extends({}, newChildProps), _babelHelpers$extends3));\n };\n\n HelmetWrapper.prototype.mapArrayTypeChildrenToProps = function mapArrayTypeChildrenToProps(arrayTypeChildren, newProps) {\n var newFlattenedProps = _extends({}, newProps);\n\n Object.keys(arrayTypeChildren).forEach(function (arrayChildName) {\n var _babelHelpers$extends4;\n\n newFlattenedProps = _extends({}, newFlattenedProps, (_babelHelpers$extends4 = {}, _babelHelpers$extends4[arrayChildName] = arrayTypeChildren[arrayChildName], _babelHelpers$extends4));\n });\n return newFlattenedProps;\n };\n\n HelmetWrapper.prototype.warnOnInvalidChildren = function warnOnInvalidChildren(child, nestedChildren) {\n if (process.env.NODE_ENV !== \"production\") {\n if (!VALID_TAG_NAMES.some(function (name) {\n return child.type === name;\n })) {\n if (typeof child.type === \"function\") {\n return warn(\"You may be attempting to nest components within each other, which is not allowed. Refer to our API for more information.\");\n }\n\n return warn(\"Only elements types \" + VALID_TAG_NAMES.join(\", \") + \" are allowed. Helmet does not support rendering <\" + child.type + \"> elements. Refer to our API for more information.\");\n }\n\n if (nestedChildren && typeof nestedChildren !== \"string\" && (!Array.isArray(nestedChildren) || nestedChildren.some(function (nestedChild) {\n return typeof nestedChild !== \"string\";\n }))) {\n throw new Error(\"Helmet expects a string as a child of <\" + child.type + \">. Did you forget to wrap your children in braces? ( <\" + child.type + \">{``} ) Refer to our API for more information.\");\n }\n }\n\n return true;\n };\n\n HelmetWrapper.prototype.mapChildrenToProps = function mapChildrenToProps(children, newProps) {\n var _this2 = this;\n\n var arrayTypeChildren = {};\n React.Children.forEach(children, function (child) {\n if (!child || !child.props) {\n return;\n }\n\n var _child$props = child.props,\n nestedChildren = _child$props.children,\n childProps = objectWithoutProperties(_child$props, [\"children\"]);\n var newChildProps = convertReactPropstoHtmlAttributes(childProps);\n\n _this2.warnOnInvalidChildren(child, nestedChildren);\n\n switch (child.type) {\n case TAG_NAMES.LINK:\n case TAG_NAMES.META:\n case TAG_NAMES.NOSCRIPT:\n case TAG_NAMES.SCRIPT:\n case TAG_NAMES.STYLE:\n arrayTypeChildren = _this2.flattenArrayTypeChildren({\n child: child,\n arrayTypeChildren: arrayTypeChildren,\n newChildProps: newChildProps,\n nestedChildren: nestedChildren\n });\n break;\n\n default:\n newProps = _this2.mapObjectTypeChildren({\n child: child,\n newProps: newProps,\n newChildProps: newChildProps,\n nestedChildren: nestedChildren\n });\n break;\n }\n });\n newProps = this.mapArrayTypeChildrenToProps(arrayTypeChildren, newProps);\n return newProps;\n };\n\n HelmetWrapper.prototype.render = function render() {\n var _props = this.props,\n children = _props.children,\n props = objectWithoutProperties(_props, [\"children\"]);\n\n var newProps = _extends({}, props);\n\n if (children) {\n newProps = this.mapChildrenToProps(children, newProps);\n }\n\n return React.createElement(Component, newProps);\n };\n\n createClass(HelmetWrapper, null, [{\n key: \"canUseDOM\",\n // Component.peek comes from react-side-effect:\n // For testing, you may use a static peek() method available on the returned component.\n // It lets you get the current state without resetting the mounted instance stack.\n // Don’t use it for anything other than testing.\n\n /**\n * @param {Object} base: {\"target\": \"_blank\", \"href\": \"http://mysite.com/\"}\n * @param {Object} bodyAttributes: {\"className\": \"root\"}\n * @param {String} defaultTitle: \"Default Title\"\n * @param {Boolean} defer: true\n * @param {Boolean} encodeSpecialCharacters: true\n * @param {Object} htmlAttributes: {\"lang\": \"en\", \"amp\": undefined}\n * @param {Array} link: [{\"rel\": \"canonical\", \"href\": \"http://mysite.com/example\"}]\n * @param {Array} meta: [{\"name\": \"description\", \"content\": \"Test description\"}]\n * @param {Array} noscript: [{\"innerHTML\": \" console.log(newState)\"\n * @param {Array} script: [{\"type\": \"text/javascript\", \"src\": \"http://mysite.com/js/test.js\"}]\n * @param {Array} style: [{\"type\": \"text/css\", \"cssText\": \"div { display: block; color: blue; }\"}]\n * @param {String} title: \"Title\"\n * @param {Object} titleAttributes: {\"itemprop\": \"name\"}\n * @param {String} titleTemplate: \"MySite.com - %s\"\n */\n set: function set$$1(canUseDOM) {\n Component.canUseDOM = canUseDOM;\n }\n }]);\n return HelmetWrapper;\n }(React.Component), _class.propTypes = {\n base: PropTypes.object,\n bodyAttributes: PropTypes.object,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]),\n defaultTitle: PropTypes.string,\n defer: PropTypes.bool,\n encodeSpecialCharacters: PropTypes.bool,\n htmlAttributes: PropTypes.object,\n link: PropTypes.arrayOf(PropTypes.object),\n meta: PropTypes.arrayOf(PropTypes.object),\n noscript: PropTypes.arrayOf(PropTypes.object),\n onChangeClientState: PropTypes.func,\n script: PropTypes.arrayOf(PropTypes.object),\n style: PropTypes.arrayOf(PropTypes.object),\n title: PropTypes.string,\n titleAttributes: PropTypes.object,\n titleTemplate: PropTypes.string\n }, _class.defaultProps = {\n defer: true,\n encodeSpecialCharacters: true\n }, _class.peek = Component.peek, _class.rewind = function () {\n var mappedState = Component.rewind();\n\n if (!mappedState) {\n // provide fallback if mappedState is undefined\n mappedState = mapStateOnServer({\n baseTag: [],\n bodyAttributes: {},\n encodeSpecialCharacters: true,\n htmlAttributes: {},\n linkTags: [],\n metaTags: [],\n noscriptTags: [],\n scriptTags: [],\n styleTags: [],\n title: \"\",\n titleAttributes: {}\n });\n }\n\n return mappedState;\n }, _temp;\n};\n\nvar NullComponent = function NullComponent() {\n return null;\n};\n\nvar HelmetSideEffects = withSideEffect(reducePropsToState, handleClientStateChange, mapStateOnServer)(NullComponent);\nvar HelmetExport = Helmet(HelmetSideEffects);\nHelmetExport.renderStatic = HelmetExport.rewind;\nexport default HelmetExport;\nexport { HelmetExport as Helmet };","export default __webpack_public_path__ + \"static/selo-45533cdb3ce40b56364999522e3eb7fc.png\";","/**\n * SEO component that queries for data with\n * Gatsby's useStaticQuery React hook\n *\n * See: https://www.gatsbyjs.com/docs/use-static-query/\n */\n\nimport * as React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { Helmet } from \"react-helmet\";\nimport { useStaticQuery, graphql } from \"gatsby\";\n\nimport imgSEO from \"../../assets/images/imgs/selo.png\";\n\nfunction SEO({ description, lang, meta, title }) {\n\tconst { site } = useStaticQuery(\n\t\tgraphql`\n\t\t\tquery {\n\t\t\t\tsite {\n\t\t\t\t\tsiteMetadata {\n\t\t\t\t\t\ttitle\n\t\t\t\t\t\tdescription\n\t\t\t\t\t\tauthor\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t`\n\t);\n\n\tconst metaDescription = description || site.siteMetadata.description;\n\tconst defaultTitle = site.siteMetadata?.title;\n\n\treturn (\n\t\t\n\t);\n}\n\nSEO.defaultProps = {\n\tlang: `pt-br`,\n\tmeta: ['Bicentenário da Imigração Alemã'],\n\tdescription: `Bicentenário da Imigração Alemã.`,\n};\n\nSEO.propTypes = {\n\tdescription: PropTypes.string,\n\tlang: PropTypes.string,\n\tmeta: PropTypes.arrayOf(PropTypes.string),\n\ttitle: PropTypes.string.isRequired,\n};\n\nexport default SEO;\n","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\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 var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_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}","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\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 _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}","/**\n * SSR Window 4.0.2\n * Better handling for window object in SSR environment\n * https://github.com/nolimits4web/ssr-window\n *\n * Copyright 2021, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: December 13, 2021\n */\n\n/* eslint-disable no-param-reassign */\nfunction isObject(obj) {\n return obj !== null && typeof obj === 'object' && 'constructor' in obj && obj.constructor === Object;\n}\n\nfunction extend() {\n var target = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var src = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\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 }\n });\n}\n\nvar ssrDocument = {\n body: {},\n addEventListener: function addEventListener() {},\n removeEventListener: function removeEventListener() {},\n activeElement: {\n blur: function blur() {},\n nodeName: ''\n },\n querySelector: function querySelector() {\n return null;\n },\n querySelectorAll: function querySelectorAll() {\n return [];\n },\n getElementById: function getElementById() {\n return null;\n },\n createEvent: function createEvent() {\n return {\n initEvent: function initEvent() {}\n };\n },\n createElement: function createElement() {\n return {\n children: [],\n childNodes: [],\n style: {},\n setAttribute: function setAttribute() {},\n getElementsByTagName: function getElementsByTagName() {\n return [];\n }\n };\n },\n createElementNS: function createElementNS() {\n return {};\n },\n importNode: function importNode() {\n return null;\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: ''\n }\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 replaceState() {},\n pushState: function pushState() {},\n go: function go() {},\n back: function back() {}\n },\n CustomEvent: function CustomEvent() {\n return this;\n },\n addEventListener: function addEventListener() {},\n removeEventListener: function removeEventListener() {},\n getComputedStyle: function getComputedStyle() {\n return {\n getPropertyValue: function getPropertyValue() {\n return '';\n }\n };\n },\n Image: function Image() {},\n Date: function Date() {},\n screen: {},\n setTimeout: function setTimeout() {},\n clearTimeout: function clearTimeout() {},\n matchMedia: function matchMedia() {\n return {};\n },\n requestAnimationFrame: function requestAnimationFrame(callback) {\n if (typeof setTimeout === 'undefined') {\n callback();\n return null;\n }\n\n return setTimeout(callback, 0);\n },\n cancelAnimationFrame: function cancelAnimationFrame(id) {\n if (typeof setTimeout === 'undefined') {\n return;\n }\n\n clearTimeout(id);\n }\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 };","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","import _typeof from \"@babel/runtime/helpers/typeof\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return assertThisInitialized(self);\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","export default function _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 Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nexport default function _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}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeFunction from \"./isNativeFunction.js\";\nimport construct from \"./construct.js\";\nexport default function _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}","export default function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}","import _toConsumableArray from \"/home/vsts/work/1/s/node_modules/@babel/runtime/helpers/esm/toConsumableArray\";\nimport _classCallCheck from \"/home/vsts/work/1/s/node_modules/@babel/runtime/helpers/esm/classCallCheck\";\nimport _assertThisInitialized from \"/home/vsts/work/1/s/node_modules/@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"/home/vsts/work/1/s/node_modules/@babel/runtime/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/home/vsts/work/1/s/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/home/vsts/work/1/s/node_modules/@babel/runtime/helpers/esm/getPrototypeOf\";\nimport _wrapNativeSuper from \"/home/vsts/work/1/s/node_modules/@babel/runtime/helpers/esm/wrapNativeSuper\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * Dom7 4.0.4\n * Minimalistic JavaScript library for DOM manipulation, with a jQuery-compatible API\n * https://framework7.io/docs/dom7.html\n *\n * Copyright 2022, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: January 11, 2022\n */\nimport { getWindow, getDocument } from 'ssr-window';\n/* eslint-disable no-proto */\n\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 _inherits(Dom7, _Array);\n\n var _super = _createSuper(Dom7);\n\n function Dom7(items) {\n var _this;\n\n _classCallCheck(this, Dom7);\n\n if (typeof items === 'number') {\n _this = _super.call(this, items);\n } else {\n _this = _super.call.apply(_super, [this].concat(_toConsumableArray(items || [])));\n makeReactive(_assertThisInitialized(_this));\n }\n\n return _possibleConstructorReturn(_this);\n }\n\n return Dom7;\n}( /*#__PURE__*/_wrapNativeSuper(Array));\n\nfunction arrayFlat() {\n var arr = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var res = [];\n arr.forEach(function (el) {\n if (Array.isArray(el)) {\n res.push.apply(res, _toConsumableArray(arrayFlat(el)));\n } else {\n res.push(el);\n }\n });\n return res;\n}\n\nfunction arrayFilter(arr, callback) {\n return Array.prototype.filter.call(arr, callback);\n}\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}\n\nfunction toCamelCase(string) {\n return string.toLowerCase().replace(/-(.)/g, function (match, group) {\n return group.toUpperCase();\n });\n} // eslint-disable-next-line\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-\".concat(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' ? \"\".concat(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\n var _scrollTop = el === window ? window.scrollY : el.scrollTop;\n\n var _scrollLeft = el === window ? window.scrollX : el.scrollLeft;\n\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} // eslint-disable-next-line\n\n\nfunction scrollTo() {\n var window = getWindow();\n\n for (var _len11 = arguments.length, args = new Array(_len11), _key11 = 0; _key11 < _len11; _key11++) {\n args[_key11] = arguments[_key11];\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() {\n var time = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new Date().getTime();\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 _len12 = arguments.length, args = new Array(_len12), _key12 = 0; _key12 < _len12; _key12++) {\n args[_key12] = arguments[_key12];\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 _len13 = arguments.length, args = new Array(_len13), _key13 = 0; _key13 < _len13; _key13++) {\n args[_key13] = arguments[_key13];\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} // eslint-disable-next-line\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 _len14 = arguments.length, args = new Array(_len14), _key14 = 0; _key14 < _len14; _key14++) {\n args[_key14] = arguments[_key14];\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');\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 };","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","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 Object.defineProperty($.fn, methodName, {\n value: Methods[methodName],\n writable: true\n });\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 smoothScroll: document.documentElement && 'scrollBehavior' in document.documentElement.style,\n touch: !!('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch),\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.js';\nvar deviceCached;\n\nfunction calcDevice() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\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', '820x1180', '1180x820', '810x1080', '1080x810'];\n\n if (!ipad && macos && support.touch && iPadScreens.indexOf(\"\".concat(screenWidth, \"x\").concat(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() {\n var overrides = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n if (!deviceCached) {\n deviceCached = calcDevice(overrides);\n }\n\n return deviceCached;\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 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 };","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 \"/home/vsts/work/1/s/node_modules/@babel/runtime/helpers/esm/defineProperty\";\nimport { 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) {\n var delay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n return setTimeout(callback, delay);\n}\n\nfunction now() {\n return Date.now();\n}\n\nfunction getComputedStyle(el) {\n var window = getWindow();\n var style;\n\n if (window.getComputedStyle) {\n style = window.getComputedStyle(el, null);\n }\n\n if (!style && el.currentStyle) {\n style = el.currentStyle;\n }\n\n if (!style) {\n style = el.style;\n }\n\n return style;\n}\n\nfunction getTranslate(el) {\n var axis = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'x';\n var window = getWindow();\n var matrix;\n var curTransform;\n var transformMatrix;\n var curStyle = 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 && Object.prototype.toString.call(o).slice(8, -1) === 'Object';\n}\n\nfunction isNode(node) {\n // eslint-disable-next-line\n if (typeof window !== 'undefined' && typeof window.HTMLElement !== 'undefined') {\n return node instanceof HTMLElement;\n }\n\n return node && (node.nodeType === 1 || node.nodeType === 11);\n}\n\nfunction extend() {\n var to = Object(arguments.length <= 0 ? undefined : arguments[0]);\n var noExtend = ['__proto__', 'constructor', 'prototype'];\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 && !isNode(nextSource)) {\n var keysArray = Object.keys(Object(nextSource)).filter(function (key) {\n return noExtend.indexOf(key) < 0;\n });\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 if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else if (!isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n to[nextKey] = {};\n\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n }\n\n return to;\n}\n\nfunction setCSSProperty(el, varName, varValue) {\n el.style.setProperty(varName, varValue);\n}\n\nfunction animateCSSModeScroll(_ref) {\n var swiper = _ref.swiper,\n targetPosition = _ref.targetPosition,\n side = _ref.side;\n var window = getWindow();\n var startPosition = -swiper.translate;\n var startTime = null;\n var time;\n var duration = swiper.params.speed;\n swiper.wrapperEl.style.scrollSnapType = 'none';\n window.cancelAnimationFrame(swiper.cssModeFrameID);\n var dir = targetPosition > startPosition ? 'next' : 'prev';\n\n var isOutOfBound = function isOutOfBound(current, target) {\n return dir === 'next' && current >= target || dir === 'prev' && current <= target;\n };\n\n var animate = function animate() {\n time = new Date().getTime();\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 = 0.5 - Math.cos(progress * Math.PI) / 2;\n var currentPosition = startPosition + easeProgress * (targetPosition - startPosition);\n\n if (isOutOfBound(currentPosition, targetPosition)) {\n currentPosition = targetPosition;\n }\n\n swiper.wrapperEl.scrollTo(_defineProperty({}, side, currentPosition));\n\n if (isOutOfBound(currentPosition, targetPosition)) {\n swiper.wrapperEl.style.overflow = 'hidden';\n swiper.wrapperEl.style.scrollSnapType = '';\n setTimeout(function () {\n swiper.wrapperEl.style.overflow = '';\n swiper.wrapperEl.scrollTo(_defineProperty({}, side, currentPosition));\n });\n window.cancelAnimationFrame(swiper.cssModeFrameID);\n return;\n }\n\n swiper.cssModeFrameID = window.requestAnimationFrame(animate);\n };\n\n animate();\n}\n\nexport { animateCSSModeScroll, deleteProps, nextTick, now, getTranslate, isObject, extend, getComputedStyle, setCSSProperty };","import _toConsumableArray from \"/home/vsts/work/1/s/node_modules/@babel/runtime/helpers/esm/toConsumableArray\";\n\n/* eslint-disable no-underscore-dangle */\nexport default {\n on: function on(events, handler, priority) {\n var self = this;\n if (!self.eventsListeners || self.destroyed) return self;\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 (!self.eventsListeners || self.destroyed) return self;\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 (!self.eventsListeners || self.destroyed) return self;\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.eventsListeners || self.destroyed) return self;\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 || self.destroyed) return self;\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 || self.destroyed) return self;\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.eventsAnyListeners && self.eventsAnyListeners.length) {\n self.eventsAnyListeners.forEach(function (eventHandler) {\n eventHandler.apply(context, [event].concat(_toConsumableArray(data)));\n });\n }\n\n if (self.eventsListeners && self.eventsListeners[event]) {\n self.eventsListeners[event].forEach(function (eventHandler) {\n eventHandler.apply(context, data);\n });\n }\n });\n return self;\n }\n};","import updateSize from './updateSize.js';\nimport updateSlides from './updateSlides.js';\nimport updateAutoHeight from './updateAutoHeight.js';\nimport updateSlidesOffset from './updateSlidesOffset.js';\nimport updateSlidesProgress from './updateSlidesProgress.js';\nimport updateProgress from './updateProgress.js';\nimport updateSlidesClasses from './updateSlidesClasses.js';\nimport updateActiveIndex from './updateActiveIndex.js';\nimport updateClickedSlide from './updateClickedSlide.js';\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};","export 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.height !== 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 Object.assign(swiper, {\n width: width,\n height: height,\n size: swiper.isHorizontal() ? width : height\n });\n}","import _defineProperty from \"/home/vsts/work/1/s/node_modules/@babel/runtime/helpers/esm/defineProperty\";\nimport { setCSSProperty } from '../../shared/utils.js';\nexport default function updateSlides() {\n var swiper = this;\n\n function getDirectionLabel(property) {\n if (swiper.isHorizontal()) {\n return property;\n } // prettier-ignore\n\n\n return {\n 'width': 'height',\n 'margin-top': 'margin-left',\n 'margin-bottom ': 'margin-right',\n 'margin-left': 'margin-top',\n 'margin-right': 'margin-bottom',\n 'padding-left': 'padding-top',\n 'padding-right': 'padding-bottom',\n 'marginRight': 'marginBottom'\n }[property];\n }\n\n function getDirectionPropertyValue(node, label) {\n return parseFloat(node.getPropertyValue(getDirectionLabel(label)) || 0);\n }\n\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(\".\".concat(swiper.params.slideClass));\n var slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;\n var snapGrid = [];\n var slidesGrid = [];\n var slidesSizesGrid = [];\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.slidesGrid.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 marginBottom: '',\n marginTop: ''\n });else slides.css({\n marginRight: '',\n marginBottom: '',\n marginTop: ''\n }); // reset cssMode offsets\n\n if (params.centeredSlides && params.cssMode) {\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-before', '');\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-after', '');\n }\n\n var gridEnabled = params.grid && params.grid.rows > 1 && swiper.grid;\n\n if (gridEnabled) {\n swiper.grid.initSlides(slidesLength);\n } // Calc slides\n\n\n var slideSize;\n var shouldResetSlideSize = params.slidesPerView === 'auto' && params.breakpoints && Object.keys(params.breakpoints).filter(function (key) {\n return typeof params.breakpoints[key].slidesPerView !== 'undefined';\n }).length > 0;\n\n for (var i = 0; i < slidesLength; i += 1) {\n slideSize = 0;\n var slide = slides.eq(i);\n\n if (gridEnabled) {\n swiper.grid.updateSlide(i, slide, slidesLength, getDirectionLabel);\n }\n\n if (slide.css('display') === 'none') continue; // eslint-disable-line\n\n if (params.slidesPerView === 'auto') {\n if (shouldResetSlideSize) {\n slides[i].style[getDirectionLabel('width')] = \"\";\n }\n\n var slideStyles = getComputedStyle(slide[0]);\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 var width = getDirectionPropertyValue(slideStyles, 'width');\n var paddingLeft = getDirectionPropertyValue(slideStyles, 'padding-left');\n var paddingRight = getDirectionPropertyValue(slideStyles, 'padding-right');\n var marginLeft = getDirectionPropertyValue(slideStyles, 'margin-left');\n var marginRight = getDirectionPropertyValue(slideStyles, 'margin-right');\n var boxSizing = slideStyles.getPropertyValue('box-sizing');\n\n if (boxSizing && boxSizing === 'border-box') {\n slideSize = width + marginLeft + marginRight;\n } else {\n var _slide$ = slide[0],\n clientWidth = _slide$.clientWidth,\n offsetWidth = _slide$.offsetWidth;\n slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight + (offsetWidth - clientWidth);\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 slides[i].style[getDirectionLabel('width')] = \"\".concat(slideSize, \"px\");\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\n if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {\n $wrapperEl.css({\n width: \"\".concat(swiper.virtualSize + params.spaceBetween, \"px\")\n });\n }\n\n if (params.setWrapperSize) {\n $wrapperEl.css(_defineProperty({}, getDirectionLabel('width'), \"\".concat(swiper.virtualSize + params.spaceBetween, \"px\")));\n }\n\n if (gridEnabled) {\n swiper.grid.updateWrapperSize(slideSize, snapGrid, getDirectionLabel);\n } // Remove last grid elements depending on width\n\n\n if (!params.centeredSlides) {\n var 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\n if (snapGrid[_i] <= 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 var key = swiper.isHorizontal() && rtl ? 'marginLeft' : getDirectionLabel('marginRight');\n slides.filter(function (_, slideIndex) {\n if (!params.cssMode) return true;\n\n if (slideIndex === slides.length - 1) {\n return false;\n }\n\n return true;\n }).css(_defineProperty({}, key, \"\".concat(spaceBetween, \"px\")));\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 Object.assign(swiper, {\n slides: slides,\n snapGrid: snapGrid,\n slidesGrid: slidesGrid,\n slidesSizesGrid: slidesSizesGrid\n });\n\n if (params.centeredSlides && params.cssMode && !params.centeredSlidesBounds) {\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-before', \"\".concat(-snapGrid[0], \"px\"));\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-after', \"\".concat(swiper.size / 2 - slidesSizesGrid[slidesSizesGrid.length - 1] / 2, \"px\"));\n var addToSnapGrid = -swiper.snapGrid[0];\n var addToSlidesGrid = -swiper.slidesGrid[0];\n swiper.snapGrid = swiper.snapGrid.map(function (v) {\n return v + addToSnapGrid;\n });\n swiper.slidesGrid = swiper.slidesGrid.map(function (v) {\n return v + addToSlidesGrid;\n });\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) {\n swiper.updateSlidesOffset();\n }\n\n if (!isVirtual && !params.cssMode && (params.effect === 'slide' || params.effect === 'fade')) {\n var backFaceHiddenClass = \"\".concat(params.containerModifierClass, \"backface-hidden\");\n var hasClassBackfaceClassAdded = swiper.$el.hasClass(backFaceHiddenClass);\n\n if (slidesLength <= params.maxBackfaceHiddenSlides) {\n if (!hasClassBackfaceClassAdded) swiper.$el.addClass(backFaceHiddenClass);\n } else if (hasClassBackfaceClassAdded) {\n swiper.$el.removeClass(backFaceHiddenClass);\n }\n }\n}","import $ from '../../shared/dom.js';\nexport default function updateAutoHeight(speed) {\n var swiper = this;\n var activeSlides = [];\n var isVirtual = swiper.virtual && swiper.params.virtual.enabled;\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 }\n\n var getSlideByIndex = function getSlideByIndex(index) {\n if (isVirtual) {\n return swiper.slides.filter(function (el) {\n return parseInt(el.getAttribute('data-swiper-slide-index'), 10) === index;\n })[0];\n }\n\n return swiper.slides.eq(index)[0];\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 && !isVirtual) break;\n activeSlides.push(getSlideByIndex(index));\n }\n }\n } else {\n activeSlides.push(getSlideByIndex(swiper.activeIndex));\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 || newHeight === 0) swiper.$wrapperEl.css('height', \"\".concat(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 '../../shared/dom.js';\nexport default function updateSlidesProgress() {\n var translate = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this && this.translate || 0;\n var swiper = this;\n var params = swiper.params;\n var slides = swiper.slides,\n rtl = swiper.rtlTranslate,\n snapGrid = swiper.snapGrid;\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 slideOffset = slide.swiperSlideOffset;\n\n if (params.cssMode && params.centeredSlides) {\n slideOffset -= slides[0].swiperSlideOffset;\n }\n\n var slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + params.spaceBetween);\n var originalSlideProgress = (offsetCenter - snapGrid[0] + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + params.spaceBetween);\n var slideBefore = -(offsetCenter - slideOffset);\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 slide.progress = rtl ? -slideProgress : slideProgress;\n slide.originalProgress = rtl ? -originalSlideProgress : originalSlideProgress;\n }\n\n swiper.visibleSlides = $(swiper.visibleSlides);\n}","export 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 Object.assign(swiper, {\n progress: progress,\n isBeginning: isBeginning,\n isEnd: isEnd\n });\n if (params.watchSlidesProgress || 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(\"\".concat(params.slideActiveClass, \" \").concat(params.slideNextClass, \" \").concat(params.slidePrevClass, \" \").concat(params.slideDuplicateActiveClass, \" \").concat(params.slideDuplicateNextClass, \" \").concat(params.slideDuplicatePrevClass));\n var activeSlide;\n\n if (isVirtual) {\n activeSlide = swiper.$wrapperEl.find(\".\".concat(params.slideClass, \"[data-swiper-slide-index=\\\"\").concat(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(\".\".concat(params.slideClass, \":not(.\").concat(params.slideDuplicateClass, \")[data-swiper-slide-index=\\\"\").concat(realIndex, \"\\\"]\")).addClass(params.slideDuplicateActiveClass);\n } else {\n $wrapperEl.children(\".\".concat(params.slideClass, \".\").concat(params.slideDuplicateClass, \"[data-swiper-slide-index=\\\"\").concat(realIndex, \"\\\"]\")).addClass(params.slideDuplicateActiveClass);\n }\n } // Next Slide\n\n\n var nextSlide = activeSlide.nextAll(\".\".concat(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(\".\".concat(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(\".\".concat(params.slideClass, \":not(.\").concat(params.slideDuplicateClass, \")[data-swiper-slide-index=\\\"\").concat(nextSlide.attr('data-swiper-slide-index'), \"\\\"]\")).addClass(params.slideDuplicateNextClass);\n } else {\n $wrapperEl.children(\".\".concat(params.slideClass, \".\").concat(params.slideDuplicateClass, \"[data-swiper-slide-index=\\\"\").concat(nextSlide.attr('data-swiper-slide-index'), \"\\\"]\")).addClass(params.slideDuplicateNextClass);\n }\n\n if (prevSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(\".\".concat(params.slideClass, \":not(.\").concat(params.slideDuplicateClass, \")[data-swiper-slide-index=\\\"\").concat(prevSlide.attr('data-swiper-slide-index'), \"\\\"]\")).addClass(params.slideDuplicatePrevClass);\n } else {\n $wrapperEl.children(\".\".concat(params.slideClass, \".\").concat(params.slideDuplicateClass, \"[data-swiper-slide-index=\\\"\").concat(prevSlide.attr('data-swiper-slide-index'), \"\\\"]\")).addClass(params.slideDuplicatePrevClass);\n }\n }\n\n swiper.emitSlidesClasses();\n}","export 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 Object.assign(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 '../../shared/dom.js';\nexport default function updateClickedSlide(e) {\n var swiper = this;\n var params = swiper.params;\n var slide = $(e).closest(\".\".concat(params.slideClass))[0];\n var slideFound = false;\n var slideIndex;\n\n if (slide) {\n for (var i = 0; i < swiper.slides.length; i += 1) {\n if (swiper.slides[i] === slide) {\n slideFound = true;\n slideIndex = i;\n break;\n }\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 = slideIndex;\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.js';\nimport setTranslate from './setTranslate.js';\nimport minTranslate from './minTranslate.js';\nimport maxTranslate from './maxTranslate.js';\nimport translateTo from './translateTo.js';\nexport default {\n getTranslate: getTranslate,\n setTranslate: setTranslate,\n minTranslate: minTranslate,\n maxTranslate: maxTranslate,\n translateTo: translateTo\n};","import { getTranslate } from '../../shared/utils.js';\nexport default function getSwiperTranslate() {\n var axis = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.isHorizontal() ? 'x' : 'y';\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(\".concat(x, \"px, \").concat(y, \"px, \").concat(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}","import _defineProperty from \"/home/vsts/work/1/s/node_modules/@babel/runtime/helpers/esm/defineProperty\";\nimport { animateCSSModeScroll } from '../../shared/utils.js';\nexport default function translateTo() {\n var translate = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var speed = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.params.speed;\n var runCallbacks = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n var translateBounds = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;\n var internal = arguments.length > 4 ? arguments[4] : undefined;\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 var _wrapperEl$scrollTo;\n\n if (!swiper.support.smoothScroll) {\n animateCSSModeScroll({\n swiper: swiper,\n targetPosition: -newTranslate,\n side: isH ? 'left' : 'top'\n });\n return true;\n }\n\n wrapperEl.scrollTo((_wrapperEl$scrollTo = {}, _defineProperty(_wrapperEl$scrollTo, isH ? 'left' : 'top', -newTranslate), _defineProperty(_wrapperEl$scrollTo, \"behavior\", 'smooth'), _wrapperEl$scrollTo));\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}","export default function transitionEmit(_ref) {\n var swiper = _ref.swiper,\n runCallbacks = _ref.runCallbacks,\n direction = _ref.direction,\n step = _ref.step;\n var activeIndex = swiper.activeIndex,\n previousIndex = swiper.previousIndex;\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(\"transition\".concat(step));\n\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit(\"slideResetTransition\".concat(step));\n return;\n }\n\n swiper.emit(\"slideChangeTransition\".concat(step));\n\n if (dir === 'next') {\n swiper.emit(\"slideNextTransition\".concat(step));\n } else {\n swiper.emit(\"slidePrevTransition\".concat(step));\n }\n }\n}","import setTransition from './setTransition.js';\nimport transitionStart from './transitionStart.js';\nimport transitionEnd from './transitionEnd.js';\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}","import transitionEmit from './transitionEmit.js';\nexport default function transitionStart() {\n var runCallbacks = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n var direction = arguments.length > 1 ? arguments[1] : undefined;\n var swiper = this;\n var params = swiper.params;\n if (params.cssMode) return;\n\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n\n transitionEmit({\n swiper: swiper,\n runCallbacks: runCallbacks,\n direction: direction,\n step: 'Start'\n });\n}","import transitionEmit from './transitionEmit.js';\nexport default function transitionEnd() {\n var runCallbacks = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n var direction = arguments.length > 1 ? arguments[1] : undefined;\n var swiper = this;\n var params = swiper.params;\n swiper.animating = false;\n if (params.cssMode) return;\n swiper.setTransition(0);\n transitionEmit({\n swiper: swiper,\n runCallbacks: runCallbacks,\n direction: direction,\n step: 'End'\n });\n}","import slideTo from './slideTo.js';\nimport slideToLoop from './slideToLoop.js';\nimport slideNext from './slideNext.js';\nimport slidePrev from './slidePrev.js';\nimport slideReset from './slideReset.js';\nimport slideToClosest from './slideToClosest.js';\nimport slideToClickedSlide from './slideToClickedSlide.js';\nexport default {\n slideTo: slideTo,\n slideToLoop: slideToLoop,\n slideNext: slideNext,\n slidePrev: slidePrev,\n slideReset: slideReset,\n slideToClosest: slideToClosest,\n slideToClickedSlide: slideToClickedSlide\n};","import _defineProperty from \"/home/vsts/work/1/s/node_modules/@babel/runtime/helpers/esm/defineProperty\";\nimport { animateCSSModeScroll } from '../../shared/utils.js';\nexport default function slideTo() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var speed = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.params.speed;\n var runCallbacks = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n var internal = arguments.length > 3 ? arguments[3] : undefined;\n var initial = arguments.length > 4 ? arguments[4] : undefined;\n\n if (typeof index !== 'number' && typeof index !== 'string') {\n throw new Error(\"The 'index' argument cannot have type other than 'number' or 'string'. [\".concat(typeof index, \"] given.\"));\n }\n\n if (typeof index === 'string') {\n /**\n * The `index` argument converted from `string` to `number`.\n * @type {number}\n */\n var indexAsNumber = parseInt(index, 10);\n /**\n * Determines whether the `index` argument is a valid `number`\n * after being converted from the `string` type.\n * @type {boolean}\n */\n\n var isValidNumber = isFinite(indexAsNumber);\n\n if (!isValidNumber) {\n throw new Error(\"The passed-in 'index' (string) couldn't be converted to 'number'. [\".concat(index, \"] given.\"));\n } // Knowing that the converted `index` is a valid number,\n // we can update the original argument's value.\n\n\n index = indexAsNumber;\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 enabled = swiper.enabled;\n\n if (swiper.animating && params.preventInteractionOnTransition || !enabled && !internal && !initial) {\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 var translate = -snapGrid[snapIndex]; // Normalize slideIndex\n\n if (params.normalizeSlideIndex) {\n for (var i = 0; i < slidesGrid.length; i += 1) {\n var normalizedTranslate = -Math.floor(translate * 100);\n var normalizedGrid = Math.floor(slidesGrid[i] * 100);\n var normalizedGridNext = Math.floor(slidesGrid[i + 1] * 100);\n\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext - (normalizedGridNext - normalizedGrid) / 2) {\n slideIndex = i;\n } else if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext) {\n slideIndex = i + 1;\n }\n } else if (normalizedTranslate >= normalizedGrid) {\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 if (slideIndex !== (previousIndex || 0) && runCallbacks) {\n swiper.emit('beforeSlideChangeStart');\n } // Update progress\n\n\n swiper.updateProgress(translate);\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 = rtl ? translate : -translate;\n\n if (speed === 0) {\n var isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n\n if (isVirtual) {\n swiper.wrapperEl.style.scrollSnapType = 'none';\n swiper._immediateVirtual = true;\n }\n\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n\n if (isVirtual) {\n requestAnimationFrame(function () {\n swiper.wrapperEl.style.scrollSnapType = '';\n swiper._swiperImmediateVirtual = false;\n });\n }\n } else {\n var _wrapperEl$scrollTo;\n\n if (!swiper.support.smoothScroll) {\n animateCSSModeScroll({\n swiper: swiper,\n targetPosition: t,\n side: isH ? 'left' : 'top'\n });\n return true;\n }\n\n wrapperEl.scrollTo((_wrapperEl$scrollTo = {}, _defineProperty(_wrapperEl$scrollTo, isH ? 'left' : 'top', t), _defineProperty(_wrapperEl$scrollTo, \"behavior\", 'smooth'), _wrapperEl$scrollTo));\n }\n\n return true;\n }\n\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 (speed === 0) {\n swiper.transitionEnd(runCallbacks, direction);\n } else 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 return true;\n}","export default function slideToLoop() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var speed = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.params.speed;\n var runCallbacks = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n var internal = arguments.length > 3 ? arguments[3] : undefined;\n\n if (typeof index === 'string') {\n /**\n * The `index` argument converted from `string` to `number`.\n * @type {number}\n */\n var indexAsNumber = parseInt(index, 10);\n /**\n * Determines whether the `index` argument is a valid `number`\n * after being converted from the `string` type.\n * @type {boolean}\n */\n\n var isValidNumber = isFinite(indexAsNumber);\n\n if (!isValidNumber) {\n throw new Error(\"The passed-in 'index' (string) couldn't be converted to 'number'. [\".concat(index, \"] given.\"));\n } // Knowing that the converted `index` is a valid number,\n // we can update the original argument's value.\n\n\n index = indexAsNumber;\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() {\n var speed = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.params.speed;\n var runCallbacks = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var internal = arguments.length > 2 ? arguments[2] : undefined;\n var swiper = this;\n var animating = swiper.animating,\n enabled = swiper.enabled,\n params = swiper.params;\n if (!enabled) return swiper;\n var perGroup = params.slidesPerGroup;\n\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n perGroup = Math.max(swiper.slidesPerViewDynamic('current', true), 1);\n }\n\n var increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : perGroup;\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 if (params.rewind && swiper.isEnd) {\n return swiper.slideTo(0, speed, runCallbacks, internal);\n }\n\n return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slidePrev() {\n var speed = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.params.speed;\n var runCallbacks = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var internal = arguments.length > 2 ? arguments[2] : undefined;\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 enabled = swiper.enabled;\n if (!enabled) return swiper;\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 prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\n\n if (typeof prevSnap === 'undefined' && params.cssMode) {\n var prevSnapIndex;\n snapGrid.forEach(function (snap, snapIndex) {\n if (normalizedTranslate >= snap) {\n // prevSnap = snap;\n prevSnapIndex = snapIndex;\n }\n });\n\n if (typeof prevSnapIndex !== 'undefined') {\n prevSnap = snapGrid[prevSnapIndex > 0 ? prevSnapIndex - 1 : prevSnapIndex];\n }\n }\n\n var prevIndex = 0;\n\n if (typeof prevSnap !== 'undefined') {\n prevIndex = slidesGrid.indexOf(prevSnap);\n if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;\n\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n prevIndex = prevIndex - swiper.slidesPerViewDynamic('previous', true) + 1;\n prevIndex = Math.max(prevIndex, 0);\n }\n }\n\n if (params.rewind && swiper.isBeginning) {\n var lastIndex = swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;\n return swiper.slideTo(lastIndex, speed, runCallbacks, internal);\n }\n\n return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideReset() {\n var speed = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.params.speed;\n var runCallbacks = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var internal = arguments.length > 2 ? arguments[2] : undefined;\n var swiper = this;\n return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideToClosest() {\n var speed = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.params.speed;\n var runCallbacks = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var internal = arguments.length > 2 ? arguments[2] : undefined;\n var threshold = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0.5;\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 '../../shared/dom.js';\nimport { nextTick } from '../../shared/utils.js';\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(\".\".concat(params.slideClass, \"[data-swiper-slide-index=\\\"\").concat(realIndex, \"\\\"]:not(.\").concat(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(\".\".concat(params.slideClass, \"[data-swiper-slide-index=\\\"\").concat(realIndex, \"\\\"]:not(.\").concat(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.js';\nimport loopFix from './loopFix.js';\nimport loopDestroy from './loopDestroy.js';\nexport default {\n loopCreate: loopCreate,\n loopFix: loopFix,\n loopDestroy: loopDestroy\n};","import { getDocument } from 'ssr-window';\nimport $ from '../../shared/dom.js';\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 var $selector = $wrapperEl.children().length > 0 ? $($wrapperEl.children()[0].parentNode) : $wrapperEl;\n $selector.children(\".\".concat(params.slideClass, \".\").concat(params.slideDuplicateClass)).remove();\n var slides = $selector.children(\".\".concat(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(\"\".concat(params.slideClass, \" \").concat(params.slideBlankClass));\n $selector.append(blankNode);\n }\n\n slides = $selector.children(\".\".concat(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 && swiper.params.loopedSlidesLimit) {\n swiper.loopedSlides = slides.length;\n }\n\n var prependSlides = [];\n var appendSlides = [];\n slides.each(function (el, index) {\n var slide = $(el);\n slide.attr('data-swiper-slide-index', index);\n });\n\n for (var _i = 0; _i < swiper.loopedSlides; _i += 1) {\n var index = _i - Math.floor(_i / slides.length) * slides.length;\n\n appendSlides.push(slides.eq(index)[0]);\n prependSlides.unshift(slides.eq(slides.length - index - 1)[0]);\n }\n\n for (var _i2 = 0; _i2 < appendSlides.length; _i2 += 1) {\n $selector.append($(appendSlides[_i2].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n\n for (var _i3 = prependSlides.length - 1; _i3 >= 0; _i3 -= 1) {\n $selector.prepend($(prependSlides[_i3].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(\".\".concat(params.slideClass, \".\").concat(params.slideDuplicateClass, \",.\").concat(params.slideClass, \".\").concat(params.slideBlankClass)).remove();\n slides.removeAttr('data-swiper-slide-index');\n}","import { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nimport { now } from '../../shared/utils.js'; // Modified from https://stackoverflow.com/questions/54520554/custom-element-getrootnode-closest-function-crossing-multiple-parent-shadowd\n\nfunction closestElement(selector) {\n var base = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this;\n\n function __closestFrom(el) {\n if (!el || el === getDocument() || el === getWindow()) return null;\n if (el.assignedSlot) el = el.assignedSlot;\n var found = el.closest(selector);\n\n if (!found && !el.getRootNode) {\n return null;\n }\n\n return found || __closestFrom(el.getRootNode().host);\n }\n\n return __closestFrom(base);\n}\n\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 enabled = swiper.enabled;\n if (!enabled) return;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return;\n }\n\n if (!swiper.animating && params.cssMode && params.loop) {\n swiper.loopFix();\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; // change target el for shadow root component\n\n var swipingClassHasValue = !!params.noSwipingClass && params.noSwipingClass !== ''; // eslint-disable-next-line\n\n var eventPath = event.composedPath ? event.composedPath() : event.path;\n\n if (swipingClassHasValue && e.target && e.target.shadowRoot && eventPath) {\n $targetEl = $(eventPath[0]);\n }\n\n var noSwipingSelector = params.noSwipingSelector ? params.noSwipingSelector : \".\".concat(params.noSwipingClass);\n var isTargetShadow = !!(e.target && e.target.shadowRoot); // use closestElement for shadow root element to get the actual closest for nested shadow root element\n\n if (params.noSwiping && (isTargetShadow ? closestElement(noSwipingSelector, $targetEl[0]) : $targetEl.closest(noSwipingSelector)[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.innerWidth - edgeSwipeThreshold)) {\n if (edgeSwipeDetection === 'prevent') {\n event.preventDefault();\n } else {\n return;\n }\n }\n\n Object.assign(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\n if ($targetEl.is(data.focusableElements)) {\n preventDefault = false;\n\n if ($targetEl[0].nodeName === 'SELECT') {\n data.isTouched = false;\n }\n }\n\n if (document.activeElement && $(document.activeElement).is(data.focusableElements) && document.activeElement !== $targetEl[0]) {\n document.activeElement.blur();\n }\n\n var shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\n\n if ((params.touchStartForcePreventDefault || shouldPreventDefault) && !$targetEl[0].isContentEditable) {\n e.preventDefault();\n }\n }\n\n if (swiper.params.freeMode && swiper.params.freeMode.enabled && swiper.freeMode && swiper.animating && !params.cssMode) {\n swiper.freeMode.onTouchStart();\n }\n\n swiper.emit('touchStart', e);\n}","import { getDocument } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nimport { now } from '../../shared/utils.js';\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 enabled = swiper.enabled;\n if (!enabled) return;\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 if (!$(e.target).is(data.focusableElements)) {\n swiper.allowClick = false;\n }\n\n if (data.isTouched) {\n Object.assign(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.focusableElements)) {\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 && !params.cssMode) {\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 }\n\n if (!swiper.allowSlidePrev && !swiper.allowSlideNext) {\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.freeMode.enabled && swiper.freeMode || params.watchSlidesProgress) {\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n if (swiper.params.freeMode && params.freeMode.enabled && swiper.freeMode) {\n swiper.freeMode.onTouchMove();\n } // Update progress\n\n\n swiper.updateProgress(data.currentTranslate); // Update translate\n\n swiper.setTranslate(data.currentTranslate);\n}","import { now, nextTick } from '../../shared/utils.js';\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 slidesGrid = swiper.slidesGrid,\n enabled = swiper.enabled;\n if (!enabled) return;\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 var pathTree = e.path || e.composedPath && e.composedPath();\n swiper.updateClickedSlide(pathTree && pathTree[0] || e.target);\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 (swiper.params.freeMode && params.freeMode.enabled) {\n swiper.freeMode.onTouchEnd({\n currentPos: currentPos\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 }\n\n var rewindFirstIndex = null;\n var rewindLastIndex = null;\n\n if (params.rewind) {\n if (swiper.isBeginning) {\n rewindLastIndex = swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;\n } else if (swiper.isEnd) {\n rewindFirstIndex = 0;\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(params.rewind && swiper.isEnd ? rewindFirstIndex : stopIndex + increment);else swiper.slideTo(stopIndex);\n }\n\n if (swiper.swipeDirection === 'prev') {\n if (ratio > 1 - params.longSwipesRatio) {\n swiper.slideTo(stopIndex + increment);\n } else if (rewindLastIndex !== null && ratio < 0 && Math.abs(ratio) > params.longSwipesRatio) {\n swiper.slideTo(rewindLastIndex);\n } else {\n swiper.slideTo(stopIndex);\n }\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(rewindFirstIndex !== null ? rewindFirstIndex : stopIndex + increment);\n }\n\n if (swiper.swipeDirection === 'prev') {\n swiper.slideTo(rewindLastIndex !== null ? rewindLastIndex : 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 if (!swiper.enabled) return;\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 enabled = swiper.enabled;\n if (!enabled) return;\n swiper.previousTranslate = swiper.translate;\n\n if (swiper.isHorizontal()) {\n swiper.translate = -wrapperEl.scrollLeft;\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.js';\nimport onTouchMove from './onTouchMove.js';\nimport onTouchEnd from './onTouchEnd.js';\nimport onResize from './onResize.js';\nimport onClick from './onClick.js';\nimport onScroll from './onScroll.js';\nvar dummyEventAttached = false;\n\nfunction dummyEventListener() {}\n\nvar events = function events(swiper, method) {\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;\n var domMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';\n var swiperMethod = method; // Touch Events\n\n if (!support.touch) {\n el[domMethod](touchEvents.start, swiper.onTouchStart, false);\n document[domMethod](touchEvents.move, swiper.onTouchMove, capture);\n document[domMethod](touchEvents.end, swiper.onTouchEnd, false);\n } else {\n var passiveListener = touchEvents.start === 'touchstart' && support.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n el[domMethod](touchEvents.start, swiper.onTouchStart, passiveListener);\n el[domMethod](touchEvents.move, swiper.onTouchMove, support.passiveListener ? {\n passive: false,\n capture: capture\n } : capture);\n el[domMethod](touchEvents.end, swiper.onTouchEnd, passiveListener);\n\n if (touchEvents.cancel) {\n el[domMethod](touchEvents.cancel, swiper.onTouchEnd, passiveListener);\n }\n } // Prevent Links Clicks\n\n\n if (params.preventClicks || params.preventClicksPropagation) {\n el[domMethod]('click', swiper.onClick, true);\n }\n\n if (params.cssMode) {\n wrapperEl[domMethod]('scroll', swiper.onScroll);\n } // Resize handler\n\n\n if (params.updateOnWindowResize) {\n swiper[swiperMethod](device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize, true);\n } else {\n swiper[swiperMethod]('observerUpdate', onResize, true);\n }\n};\n\nfunction attachEvents() {\n var swiper = this;\n var document = getDocument();\n var params = swiper.params,\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\n if (support.touch && !dummyEventAttached) {\n document.addEventListener('touchstart', dummyEventListener);\n dummyEventAttached = true;\n }\n\n events(swiper, 'on');\n}\n\nfunction detachEvents() {\n var swiper = this;\n events(swiper, 'off');\n}\n\nexport default {\n attachEvents: attachEvents,\n detachEvents: detachEvents\n};","import { extend } from '../../shared/utils.js';\n\nvar isGridEnabled = function isGridEnabled(swiper, params) {\n return swiper.grid && params.grid && params.grid.rows > 1;\n};\n\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, swiper.params.breakpointsBase, swiper.el);\n if (!breakpoint || swiper.currentBreakpoint === breakpoint) return;\n var breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;\n var breakpointParams = breakpointOnlyParams || swiper.originalParams;\n var wasMultiRow = isGridEnabled(swiper, params);\n var isMultiRow = isGridEnabled(swiper, breakpointParams);\n var wasEnabled = params.enabled;\n\n if (wasMultiRow && !isMultiRow) {\n $el.removeClass(\"\".concat(params.containerModifierClass, \"grid \").concat(params.containerModifierClass, \"grid-column\"));\n swiper.emitContainerClasses();\n } else if (!wasMultiRow && isMultiRow) {\n $el.addClass(\"\".concat(params.containerModifierClass, \"grid\"));\n\n if (breakpointParams.grid.fill && breakpointParams.grid.fill === 'column' || !breakpointParams.grid.fill && params.grid.fill === 'column') {\n $el.addClass(\"\".concat(params.containerModifierClass, \"grid-column\"));\n }\n\n swiper.emitContainerClasses();\n } // Toggle navigation, pagination, scrollbar\n\n\n ['navigation', 'pagination', 'scrollbar'].forEach(function (prop) {\n var wasModuleEnabled = params[prop] && params[prop].enabled;\n var isModuleEnabled = breakpointParams[prop] && breakpointParams[prop].enabled;\n\n if (wasModuleEnabled && !isModuleEnabled) {\n swiper[prop].disable();\n }\n\n if (!wasModuleEnabled && isModuleEnabled) {\n swiper[prop].enable();\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 var isEnabled = swiper.params.enabled;\n Object.assign(swiper, {\n allowTouchMove: swiper.params.allowTouchMove,\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev\n });\n\n if (wasEnabled && !isEnabled) {\n swiper.disable();\n } else if (!wasEnabled && isEnabled) {\n swiper.enable();\n }\n\n swiper.currentBreakpoint = breakpoint;\n swiper.emit('_beforeBreakpoint', breakpointParams);\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}","import setBreakpoint from './setBreakpoint.js';\nimport getBreakpoint from './getBreakpoint.js';\nexport default {\n setBreakpoint: setBreakpoint,\n getBreakpoint: getBreakpoint\n};","import { getWindow } from 'ssr-window';\nexport default function getBreakpoint(breakpoints) {\n var base = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'window';\n var containerEl = arguments.length > 2 ? arguments[2] : undefined;\n if (!breakpoints || base === 'container' && !containerEl) return undefined;\n var breakpoint = false;\n var window = getWindow();\n var currentHeight = base === 'window' ? window.innerHeight : containerEl.clientHeight;\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 = currentHeight * 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 (base === 'window') {\n if (window.matchMedia(\"(min-width: \".concat(value, \"px)\")).matches) {\n breakpoint = point;\n }\n } else if (value <= containerEl.clientWidth) {\n breakpoint = point;\n }\n }\n\n return breakpoint || 'max';\n}","import addClasses from './addClasses.js';\nimport removeClasses from './removeClasses.js';\nexport default {\n addClasses: addClasses,\n removeClasses: removeClasses\n};","import _toConsumableArray from \"/home/vsts/work/1/s/node_modules/@babel/runtime/helpers/esm/toConsumableArray\";\n\nfunction prepareClasses(entries, prefix) {\n var resultClasses = [];\n entries.forEach(function (item) {\n if (typeof item === 'object') {\n Object.keys(item).forEach(function (classNames) {\n if (item[classNames]) {\n resultClasses.push(prefix + classNames);\n }\n });\n } else if (typeof item === 'string') {\n resultClasses.push(prefix + item);\n }\n });\n return resultClasses;\n}\n\nexport 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 support = swiper.support; // prettier-ignore\n\n var suffixes = prepareClasses(['initialized', params.direction, {\n 'pointer-events': !support.touch\n }, {\n 'free-mode': swiper.params.freeMode && params.freeMode.enabled\n }, {\n 'autoheight': params.autoHeight\n }, {\n 'rtl': rtl\n }, {\n 'grid': params.grid && params.grid.rows > 1\n }, {\n 'grid-column': params.grid && params.grid.rows > 1 && params.grid.fill === 'column'\n }, {\n 'android': device.android\n }, {\n 'ios': device.ios\n }, {\n 'css-mode': params.cssMode\n }, {\n 'centered': params.cssMode && params.centeredSlides\n }, {\n 'watch-progress': params.watchSlidesProgress\n }], params.containerModifierClass);\n classNames.push.apply(classNames, _toConsumableArray(suffixes));\n $el.addClass(_toConsumableArray(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}","function checkOverflow() {\n var swiper = this;\n var wasLocked = swiper.isLocked,\n params = swiper.params;\n var slidesOffsetBefore = params.slidesOffsetBefore;\n\n if (slidesOffsetBefore) {\n var lastSlideIndex = swiper.slides.length - 1;\n var lastSlideRightEdge = swiper.slidesGrid[lastSlideIndex] + swiper.slidesSizesGrid[lastSlideIndex] + slidesOffsetBefore * 2;\n swiper.isLocked = swiper.size > lastSlideRightEdge;\n } else {\n swiper.isLocked = swiper.snapGrid.length === 1;\n }\n\n if (params.allowSlideNext === true) {\n swiper.allowSlideNext = !swiper.isLocked;\n }\n\n if (params.allowSlidePrev === true) {\n swiper.allowSlidePrev = !swiper.isLocked;\n }\n\n if (wasLocked && wasLocked !== swiper.isLocked) {\n swiper.isEnd = false;\n }\n\n if (wasLocked !== swiper.isLocked) {\n swiper.emit(swiper.isLocked ? 'lock' : 'unlock');\n }\n}\n\nexport default {\n checkOverflow: checkOverflow\n};","export default {\n init: true,\n direction: 'horizontal',\n touchEventsTarget: 'wrapper',\n initialSlide: 0,\n speed: 300,\n cssMode: false,\n updateOnWindowResize: true,\n resizeObserver: true,\n nested: false,\n createElements: false,\n enabled: true,\n focusableElements: 'input, select, option, textarea, button, video, label',\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 // 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 breakpointsBase: 'window',\n // Slides grid\n spaceBetween: 0,\n slidesPerView: 1,\n slidesPerGroup: 1,\n slidesPerGroupSkip: 0,\n slidesPerGroupAuto: false,\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: true,\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 // 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 loopedSlidesLimit: true,\n loopFillGroupWithBlank: false,\n loopPreventsSlide: true,\n // rewind\n rewind: false,\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 maxBackfaceHiddenSlides: 10,\n // NS\n containerModifierClass: 'swiper-',\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};","import { extend } from '../shared/utils.js';\nexport default function moduleExtendParams(params, allModulesParams) {\n return function extendParams() {\n var obj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var moduleParamName = Object.keys(obj)[0];\n var moduleParams = obj[moduleParamName];\n\n if (typeof moduleParams !== 'object' || moduleParams === null) {\n extend(allModulesParams, obj);\n return;\n }\n\n if (['navigation', 'pagination', 'scrollbar'].indexOf(moduleParamName) >= 0 && params[moduleParamName] === true) {\n params[moduleParamName] = {\n auto: true\n };\n }\n\n if (!(moduleParamName in params && 'enabled' in moduleParams)) {\n extend(allModulesParams, obj);\n return;\n }\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 extend(allModulesParams, obj);\n };\n}","import _toConsumableArray from \"/home/vsts/work/1/s/node_modules/@babel/runtime/helpers/esm/toConsumableArray\";\nimport _classCallCheck from \"/home/vsts/work/1/s/node_modules/@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"/home/vsts/work/1/s/node_modules/@babel/runtime/helpers/esm/createClass\";\n\n/* eslint no-param-reassign: \"off\" */\nimport { getDocument } from 'ssr-window';\nimport $ from '../shared/dom.js';\nimport { extend, now, deleteProps } from '../shared/utils.js';\nimport { getSupport } from '../shared/get-support.js';\nimport { getDevice } from '../shared/get-device.js';\nimport { getBrowser } from '../shared/get-browser.js';\nimport Resize from './modules/resize/resize.js';\nimport Observer from './modules/observer/observer.js';\nimport eventsEmitter from './events-emitter.js';\nimport update from './update/index.js';\nimport translate from './translate/index.js';\nimport transition from './transition/index.js';\nimport slide from './slide/index.js';\nimport loop from './loop/index.js';\nimport grabCursor from './grab-cursor/index.js';\nimport events from './events/index.js';\nimport breakpoints from './breakpoints/index.js';\nimport classes from './classes/index.js';\nimport images from './images/index.js';\nimport checkOverflow from './check-overflow/index.js';\nimport defaults from './defaults.js';\nimport moduleExtendParams from './moduleExtendParams.js';\nvar prototypes = {\n eventsEmitter: eventsEmitter,\n update: update,\n translate: translate,\n transition: transition,\n slide: slide,\n loop: loop,\n grabCursor: grabCursor,\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 _classCallCheck(this, Swiper);\n\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 && Object.prototype.toString.call(args[0]).slice(8, -1) === '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;\n\n if (params.el && $(params.el).length > 1) {\n var swipers = [];\n $(params.el).each(function (containerEl) {\n var newParams = extend({}, params, {\n el: containerEl\n });\n swipers.push(new Swiper(newParams));\n }); // eslint-disable-next-line no-constructor-return\n\n return swipers;\n } // Swiper Instance\n\n\n var swiper = this;\n swiper.__swiper__ = true;\n swiper.support = getSupport();\n swiper.device = getDevice({\n userAgent: params.userAgent\n });\n swiper.browser = getBrowser();\n swiper.eventsListeners = {};\n swiper.eventsAnyListeners = [];\n swiper.modules = _toConsumableArray(swiper.__modules__);\n\n if (params.modules && Array.isArray(params.modules)) {\n var _swiper$modules;\n\n (_swiper$modules = swiper.modules).push.apply(_swiper$modules, _toConsumableArray(params.modules));\n }\n\n var allModulesParams = {};\n swiper.modules.forEach(function (mod) {\n mod({\n swiper: swiper,\n extendParams: moduleExtendParams(params, allModulesParams),\n on: swiper.on.bind(swiper),\n once: swiper.once.bind(swiper),\n off: swiper.off.bind(swiper),\n emit: swiper.emit.bind(swiper)\n });\n }); // Extend defaults with modules params\n\n var swiperParams = extend({}, defaults, allModulesParams); // 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 }\n\n if (swiper.params && swiper.params.onAny) {\n swiper.onAny(swiper.params.onAny);\n } // Save Dom lib\n\n\n swiper.$ = $; // Extend Swiper\n\n Object.assign(swiper, {\n enabled: swiper.params.enabled,\n el: el,\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 // 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 = ['pointerdown', 'pointermove', 'pointerup'];\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 focusableElements: swiper.params.focusableElements,\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 });\n swiper.emit('_swiper'); // Init\n\n if (swiper.params.init) {\n swiper.init();\n } // Return app instance\n // eslint-disable-next-line no-constructor-return\n\n\n return swiper;\n }\n\n _createClass(Swiper, [{\n key: \"enable\",\n value: function enable() {\n var swiper = this;\n if (swiper.enabled) return;\n swiper.enabled = true;\n\n if (swiper.params.grabCursor) {\n swiper.setGrabCursor();\n }\n\n swiper.emit('enable');\n }\n }, {\n key: \"disable\",\n value: function disable() {\n var swiper = this;\n if (!swiper.enabled) return;\n swiper.enabled = false;\n\n if (swiper.params.grabCursor) {\n swiper.unsetGrabCursor();\n }\n\n swiper.emit('disable');\n }\n }, {\n key: \"setProgress\",\n value: function setProgress(progress, speed) {\n var swiper = this;\n progress = Math.min(Math.max(progress, 0), 1);\n var min = swiper.minTranslate();\n var max = swiper.maxTranslate();\n var current = (max - min) * progress + min;\n swiper.translateTo(current, typeof speed === 'undefined' ? 0 : speed);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n }, {\n key: \"emitContainerClasses\",\n value: function emitContainerClasses() {\n var swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n var cls = swiper.el.className.split(' ').filter(function (className) {\n return className.indexOf('swiper') === 0 || className.indexOf(swiper.params.containerModifierClass) === 0;\n });\n swiper.emit('_containerClasses', cls.join(' '));\n }\n }, {\n key: \"getSlideClasses\",\n value: function getSlideClasses(slideEl) {\n var swiper = this;\n if (swiper.destroyed) return '';\n return slideEl.className.split(' ').filter(function (className) {\n return className.indexOf('swiper-slide') === 0 || className.indexOf(swiper.params.slideClass) === 0;\n }).join(' ');\n }\n }, {\n key: \"emitSlidesClasses\",\n value: function emitSlidesClasses() {\n var swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n var updates = [];\n swiper.slides.each(function (slideEl) {\n var classNames = swiper.getSlideClasses(slideEl);\n updates.push({\n slideEl: slideEl,\n classNames: classNames\n });\n swiper.emit('_slideClass', slideEl, classNames);\n });\n swiper.emit('_slideClasses', updates);\n }\n }, {\n key: \"slidesPerViewDynamic\",\n value: function slidesPerViewDynamic() {\n var view = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'current';\n var exact = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var swiper = this;\n var params = swiper.params,\n slides = swiper.slides,\n slidesGrid = swiper.slidesGrid,\n slidesSizesGrid = swiper.slidesSizesGrid,\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 // eslint-disable-next-line\n if (view === 'current') {\n for (var _i2 = activeIndex + 1; _i2 < slides.length; _i2 += 1) {\n var slideInView = exact ? slidesGrid[_i2] + slidesSizesGrid[_i2] - slidesGrid[activeIndex] < swiperSize : slidesGrid[_i2] - slidesGrid[activeIndex] < swiperSize;\n\n if (slideInView) {\n spv += 1;\n }\n }\n } else {\n // previous\n for (var _i3 = activeIndex - 1; _i3 >= 0; _i3 -= 1) {\n var _slideInView = slidesGrid[activeIndex] - slidesGrid[_i3] < swiperSize;\n\n if (_slideInView) {\n spv += 1;\n }\n }\n }\n }\n\n return spv;\n }\n }, {\n key: \"update\",\n value: 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 && swiper.params.freeMode.enabled) {\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 key: \"changeDirection\",\n value: function changeDirection(newDirection) {\n var needUpdate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\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(\"\".concat(swiper.params.containerModifierClass).concat(currentDirection)).addClass(\"\".concat(swiper.params.containerModifierClass).concat(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 key: \"changeLanguageDirection\",\n value: function changeLanguageDirection(direction) {\n var swiper = this;\n if (swiper.rtl && direction === 'rtl' || !swiper.rtl && direction === 'ltr') return;\n swiper.rtl = direction === 'rtl';\n swiper.rtlTranslate = swiper.params.direction === 'horizontal' && swiper.rtl;\n\n if (swiper.rtl) {\n swiper.$el.addClass(\"\".concat(swiper.params.containerModifierClass, \"rtl\"));\n swiper.el.dir = 'rtl';\n } else {\n swiper.$el.removeClass(\"\".concat(swiper.params.containerModifierClass, \"rtl\"));\n swiper.el.dir = 'ltr';\n }\n\n swiper.update();\n }\n }, {\n key: \"mount\",\n value: function mount(el) {\n var swiper = this;\n if (swiper.mounted) return true; // Find el\n\n var $el = $(el || swiper.params.el);\n el = $el[0];\n\n if (!el) {\n return false;\n }\n\n el.swiper = swiper;\n\n var getWrapperSelector = function getWrapperSelector() {\n return \".\".concat((swiper.params.wrapperClass || '').trim().split(' ').join('.'));\n };\n\n var getWrapper = function getWrapper() {\n if (el && el.shadowRoot && el.shadowRoot.querySelector) {\n var res = $(el.shadowRoot.querySelector(getWrapperSelector())); // Children needs to return slot items\n\n res.children = function (options) {\n return $el.children(options);\n };\n\n return res;\n }\n\n if (!$el.children) {\n return $($el).children(getWrapperSelector());\n }\n\n return $el.children(getWrapperSelector());\n }; // Find Wrapper\n\n\n var $wrapperEl = getWrapper();\n\n if ($wrapperEl.length === 0 && swiper.params.createElements) {\n var document = getDocument();\n var wrapper = document.createElement('div');\n $wrapperEl = $(wrapper);\n wrapper.className = swiper.params.wrapperClass;\n $el.append(wrapper);\n $el.children(\".\".concat(swiper.params.slideClass)).each(function (slideEl) {\n $wrapperEl.append(slideEl);\n });\n }\n\n Object.assign(swiper, {\n $el: $el,\n el: el,\n $wrapperEl: $wrapperEl,\n wrapperEl: $wrapperEl[0],\n mounted: true,\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 });\n return true;\n }\n }, {\n key: \"init\",\n value: function init(el) {\n var swiper = this;\n if (swiper.initialized) return swiper;\n var mounted = swiper.mount(el);\n if (mounted === false) return swiper;\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 && swiper.enabled) {\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, false, true);\n } else {\n swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit, false, true);\n } // Attach events\n\n\n swiper.attachEvents(); // Init Flag\n\n swiper.initialized = true; // Emit\n\n swiper.emit('init');\n swiper.emit('afterInit');\n return swiper;\n }\n }, {\n key: \"destroy\",\n value: function destroy() {\n var deleteInstance = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n var cleanStyles = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\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 key: \"extendDefaults\",\n value: function extendDefaults(newDefaults) {\n extend(extendedDefaults, newDefaults);\n }\n }, {\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 key: \"installModule\",\n value: function installModule(mod) {\n if (!Swiper.prototype.__modules__) Swiper.prototype.__modules__ = [];\n var modules = Swiper.prototype.__modules__;\n\n if (typeof mod === 'function' && modules.indexOf(mod) < 0) {\n modules.push(mod);\n }\n }\n }, {\n key: \"use\",\n value: 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\n return Swiper;\n}();\n\nObject.keys(prototypes).forEach(function (prototypeGroup) {\n Object.keys(prototypes[prototypeGroup]).forEach(function (protoMethod) {\n Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];\n });\n});\nSwiper.use([Resize, Observer]);\nexport default Swiper;","import setGrabCursor from './setGrabCursor.js';\nimport unsetGrabCursor from './unsetGrabCursor.js';\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.params.touchEventsTarget === 'container' ? swiper.el : swiper.wrapperEl;\n el.style.cursor = 'move';\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[swiper.params.touchEventsTarget === 'container' ? 'el' : 'wrapperEl'].style.cursor = '';\n}","import loadImage from './loadImage.js';\nimport preloadImages from './preloadImages.js';\nexport default {\n loadImage: loadImage,\n preloadImages: preloadImages\n};","import { getWindow } from 'ssr-window';\nimport $ from '../../shared/dom.js';\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}","import { getWindow } from 'ssr-window';\nexport default function Resize(_ref) {\n var swiper = _ref.swiper,\n on = _ref.on,\n emit = _ref.emit;\n var window = getWindow();\n var observer = null;\n var animationFrame = null;\n\n var resizeHandler = function resizeHandler() {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('beforeResize');\n emit('resize');\n };\n\n var createObserver = function createObserver() {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n observer = new ResizeObserver(function (entries) {\n animationFrame = window.requestAnimationFrame(function () {\n var width = swiper.width,\n height = swiper.height;\n var newWidth = width;\n var newHeight = height;\n entries.forEach(function (_ref2) {\n var contentBoxSize = _ref2.contentBoxSize,\n contentRect = _ref2.contentRect,\n target = _ref2.target;\n if (target && target !== swiper.el) return;\n newWidth = contentRect ? contentRect.width : (contentBoxSize[0] || contentBoxSize).inlineSize;\n newHeight = contentRect ? contentRect.height : (contentBoxSize[0] || contentBoxSize).blockSize;\n });\n\n if (newWidth !== width || newHeight !== height) {\n resizeHandler();\n }\n });\n });\n observer.observe(swiper.el);\n };\n\n var removeObserver = function removeObserver() {\n if (animationFrame) {\n window.cancelAnimationFrame(animationFrame);\n }\n\n if (observer && observer.unobserve && swiper.el) {\n observer.unobserve(swiper.el);\n observer = null;\n }\n };\n\n var orientationChangeHandler = function orientationChangeHandler() {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('orientationchange');\n };\n\n on('init', function () {\n if (swiper.params.resizeObserver && typeof window.ResizeObserver !== 'undefined') {\n createObserver();\n return;\n }\n\n window.addEventListener('resize', resizeHandler);\n window.addEventListener('orientationchange', orientationChangeHandler);\n });\n on('destroy', function () {\n removeObserver();\n window.removeEventListener('resize', resizeHandler);\n window.removeEventListener('orientationchange', orientationChangeHandler);\n });\n}","import { getWindow } from 'ssr-window';\nexport default function Observer(_ref) {\n var swiper = _ref.swiper,\n extendParams = _ref.extendParams,\n on = _ref.on,\n emit = _ref.emit;\n var observers = [];\n var window = getWindow();\n\n var attach = function attach(target) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\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 emit('observerUpdate', mutations[0]);\n return;\n }\n\n var observerUpdate = function observerUpdate() {\n 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 observers.push(observer);\n };\n\n var init = function init() {\n if (!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 attach(containerParents[i]);\n }\n } // Observe container\n\n\n attach(swiper.$el[0], {\n childList: swiper.params.observeSlideChildren\n }); // Observe wrapper\n\n attach(swiper.$wrapperEl[0], {\n attributes: false\n });\n };\n\n var destroy = function destroy() {\n observers.forEach(function (observer) {\n observer.disconnect();\n });\n observers.splice(0, observers.length);\n };\n\n extendParams({\n observer: false,\n observeParents: false,\n observeSlideChildren: false\n });\n on('init', init);\n on('destroy', destroy);\n}","import { getDocument } from 'ssr-window';\nexport default function createElementIfNotDefined(swiper, originalParams, params, checkProps) {\n var document = getDocument();\n\n if (swiper.params.createElements) {\n Object.keys(checkProps).forEach(function (key) {\n if (!params[key] && params.auto === true) {\n var element = swiper.$el.children(\".\".concat(checkProps[key]))[0];\n\n if (!element) {\n element = document.createElement('div');\n element.className = checkProps[key];\n swiper.$el.append(element);\n }\n\n params[key] = element;\n originalParams[key] = element;\n }\n });\n }\n\n return params;\n}","import createElementIfNotDefined from '../../shared/create-element-if-not-defined.js';\nimport $ from '../../shared/dom.js';\nexport default function Navigation(_ref) {\n var swiper = _ref.swiper,\n extendParams = _ref.extendParams,\n on = _ref.on,\n emit = _ref.emit;\n extendParams({\n navigation: {\n nextEl: null,\n prevEl: null,\n hideOnClick: false,\n disabledClass: 'swiper-button-disabled',\n hiddenClass: 'swiper-button-hidden',\n lockClass: 'swiper-button-lock',\n navigationDisabledClass: 'swiper-navigation-disabled'\n }\n });\n swiper.navigation = {\n nextEl: null,\n $nextEl: null,\n prevEl: null,\n $prevEl: null\n };\n\n function getEl(el) {\n var $el;\n\n if (el) {\n $el = $(el);\n\n if (swiper.params.uniqueNavElements && typeof el === 'string' && $el.length > 1 && swiper.$el.find(el).length === 1) {\n $el = swiper.$el.find(el);\n }\n }\n\n return $el;\n }\n\n function toggleEl($el, disabled) {\n var params = swiper.params.navigation;\n\n if ($el && $el.length > 0) {\n $el[disabled ? 'addClass' : 'removeClass'](params.disabledClass);\n if ($el[0] && $el[0].tagName === 'BUTTON') $el[0].disabled = disabled;\n\n if (swiper.params.watchOverflow && swiper.enabled) {\n $el[swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n }\n }\n\n function update() {\n // Update Navigation Buttons\n if (swiper.params.loop) return;\n var _swiper$navigation = swiper.navigation,\n $nextEl = _swiper$navigation.$nextEl,\n $prevEl = _swiper$navigation.$prevEl;\n toggleEl($prevEl, swiper.isBeginning && !swiper.params.rewind);\n toggleEl($nextEl, swiper.isEnd && !swiper.params.rewind);\n }\n\n function onPrevClick(e) {\n e.preventDefault();\n if (swiper.isBeginning && !swiper.params.loop && !swiper.params.rewind) return;\n swiper.slidePrev();\n emit('navigationPrev');\n }\n\n function onNextClick(e) {\n e.preventDefault();\n if (swiper.isEnd && !swiper.params.loop && !swiper.params.rewind) return;\n swiper.slideNext();\n emit('navigationNext');\n }\n\n function init() {\n var params = swiper.params.navigation;\n swiper.params.navigation = createElementIfNotDefined(swiper, swiper.originalParams.navigation, swiper.params.navigation, {\n nextEl: 'swiper-button-next',\n prevEl: 'swiper-button-prev'\n });\n if (!(params.nextEl || params.prevEl)) return;\n var $nextEl = getEl(params.nextEl);\n var $prevEl = getEl(params.prevEl);\n\n if ($nextEl && $nextEl.length > 0) {\n $nextEl.on('click', onNextClick);\n }\n\n if ($prevEl && $prevEl.length > 0) {\n $prevEl.on('click', onPrevClick);\n }\n\n Object.assign(swiper.navigation, {\n $nextEl: $nextEl,\n nextEl: $nextEl && $nextEl[0],\n $prevEl: $prevEl,\n prevEl: $prevEl && $prevEl[0]\n });\n\n if (!swiper.enabled) {\n if ($nextEl) $nextEl.addClass(params.lockClass);\n if ($prevEl) $prevEl.addClass(params.lockClass);\n }\n }\n\n function destroy() {\n var _swiper$navigation2 = swiper.navigation,\n $nextEl = _swiper$navigation2.$nextEl,\n $prevEl = _swiper$navigation2.$prevEl;\n\n if ($nextEl && $nextEl.length) {\n $nextEl.off('click', onNextClick);\n $nextEl.removeClass(swiper.params.navigation.disabledClass);\n }\n\n if ($prevEl && $prevEl.length) {\n $prevEl.off('click', onPrevClick);\n $prevEl.removeClass(swiper.params.navigation.disabledClass);\n }\n }\n\n on('init', function () {\n if (swiper.params.navigation.enabled === false) {\n // eslint-disable-next-line\n disable();\n } else {\n init();\n update();\n }\n });\n on('toEdge fromEdge lock unlock', function () {\n update();\n });\n on('destroy', function () {\n destroy();\n });\n on('enable disable', function () {\n var _swiper$navigation3 = swiper.navigation,\n $nextEl = _swiper$navigation3.$nextEl,\n $prevEl = _swiper$navigation3.$prevEl;\n\n if ($nextEl) {\n $nextEl[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.navigation.lockClass);\n }\n\n if ($prevEl) {\n $prevEl[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.navigation.lockClass);\n }\n });\n on('click', function (_s, e) {\n var _swiper$navigation4 = swiper.navigation,\n $nextEl = _swiper$navigation4.$nextEl,\n $prevEl = _swiper$navigation4.$prevEl;\n var targetEl = e.target;\n\n if (swiper.params.navigation.hideOnClick && !$(targetEl).is($prevEl) && !$(targetEl).is($nextEl)) {\n if (swiper.pagination && swiper.params.pagination && swiper.params.pagination.clickable && (swiper.pagination.el === targetEl || swiper.pagination.el.contains(targetEl))) return;\n var isHidden;\n\n if ($nextEl) {\n isHidden = $nextEl.hasClass(swiper.params.navigation.hiddenClass);\n } else if ($prevEl) {\n isHidden = $prevEl.hasClass(swiper.params.navigation.hiddenClass);\n }\n\n if (isHidden === true) {\n emit('navigationShow');\n } else {\n emit('navigationHide');\n }\n\n if ($nextEl) {\n $nextEl.toggleClass(swiper.params.navigation.hiddenClass);\n }\n\n if ($prevEl) {\n $prevEl.toggleClass(swiper.params.navigation.hiddenClass);\n }\n }\n });\n\n var enable = function enable() {\n swiper.$el.removeClass(swiper.params.navigation.navigationDisabledClass);\n init();\n update();\n };\n\n var disable = function disable() {\n swiper.$el.addClass(swiper.params.navigation.navigationDisabledClass);\n destroy();\n };\n\n Object.assign(swiper.navigation, {\n enable: enable,\n disable: disable,\n update: update,\n init: init,\n destroy: destroy\n });\n}","export default function classesToSelector() {\n var classes = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n return \".\".concat(classes.trim().replace(/([\\.:!\\/])/g, '\\\\$1') // eslint-disable-line\n .replace(/ /g, '.'));\n}","import $ from '../../shared/dom.js';\nimport classesToSelector from '../../shared/classes-to-selector.js';\nimport createElementIfNotDefined from '../../shared/create-element-if-not-defined.js';\nexport default function Pagination(_ref) {\n var swiper = _ref.swiper,\n extendParams = _ref.extendParams,\n on = _ref.on,\n emit = _ref.emit;\n var pfx = 'swiper-pagination';\n extendParams({\n pagination: {\n el: null,\n bulletElement: 'span',\n clickable: false,\n hideOnClick: false,\n renderBullet: null,\n renderProgressbar: null,\n renderFraction: null,\n renderCustom: null,\n progressbarOpposite: false,\n type: 'bullets',\n // 'bullets' or 'progressbar' or 'fraction' or 'custom'\n dynamicBullets: false,\n dynamicMainBullets: 1,\n formatFractionCurrent: function formatFractionCurrent(number) {\n return number;\n },\n formatFractionTotal: function formatFractionTotal(number) {\n return number;\n },\n bulletClass: \"\".concat(pfx, \"-bullet\"),\n bulletActiveClass: \"\".concat(pfx, \"-bullet-active\"),\n modifierClass: \"\".concat(pfx, \"-\"),\n currentClass: \"\".concat(pfx, \"-current\"),\n totalClass: \"\".concat(pfx, \"-total\"),\n hiddenClass: \"\".concat(pfx, \"-hidden\"),\n progressbarFillClass: \"\".concat(pfx, \"-progressbar-fill\"),\n progressbarOppositeClass: \"\".concat(pfx, \"-progressbar-opposite\"),\n clickableClass: \"\".concat(pfx, \"-clickable\"),\n lockClass: \"\".concat(pfx, \"-lock\"),\n horizontalClass: \"\".concat(pfx, \"-horizontal\"),\n verticalClass: \"\".concat(pfx, \"-vertical\"),\n paginationDisabledClass: \"\".concat(pfx, \"-disabled\")\n }\n });\n swiper.pagination = {\n el: null,\n $el: null,\n bullets: []\n };\n var bulletSize;\n var dynamicBulletIndex = 0;\n\n function isPaginationDisabled() {\n return !swiper.params.pagination.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0;\n }\n\n function setSideBullets($bulletEl, position) {\n var bulletActiveClass = swiper.params.pagination.bulletActiveClass;\n $bulletEl[position]().addClass(\"\".concat(bulletActiveClass, \"-\").concat(position))[position]().addClass(\"\".concat(bulletActiveClass, \"-\").concat(position, \"-\").concat(position));\n }\n\n function update() {\n // Render || Update Pagination bullets/items\n var rtl = swiper.rtl;\n var params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n var slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n var $el = swiper.pagination.$el; // Current/Total\n\n var current;\n var total = swiper.params.loop ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n\n if (swiper.params.loop) {\n current = Math.ceil((swiper.activeIndex - swiper.loopedSlides) / swiper.params.slidesPerGroup);\n\n if (current > slidesLength - 1 - swiper.loopedSlides * 2) {\n current -= slidesLength - swiper.loopedSlides * 2;\n }\n\n if (current > total - 1) current -= total;\n if (current < 0 && swiper.params.paginationType !== 'bullets') current = total + current;\n } else if (typeof swiper.snapIndex !== 'undefined') {\n current = swiper.snapIndex;\n } else {\n current = swiper.activeIndex || 0;\n } // Types\n\n\n if (params.type === 'bullets' && swiper.pagination.bullets && swiper.pagination.bullets.length > 0) {\n var bullets = swiper.pagination.bullets;\n var firstIndex;\n var lastIndex;\n var midIndex;\n\n if (params.dynamicBullets) {\n bulletSize = bullets.eq(0)[swiper.isHorizontal() ? 'outerWidth' : 'outerHeight'](true);\n $el.css(swiper.isHorizontal() ? 'width' : 'height', \"\".concat(bulletSize * (params.dynamicMainBullets + 4), \"px\"));\n\n if (params.dynamicMainBullets > 1 && swiper.previousIndex !== undefined) {\n dynamicBulletIndex += current - (swiper.previousIndex - swiper.loopedSlides || 0);\n\n if (dynamicBulletIndex > params.dynamicMainBullets - 1) {\n dynamicBulletIndex = params.dynamicMainBullets - 1;\n } else if (dynamicBulletIndex < 0) {\n dynamicBulletIndex = 0;\n }\n }\n\n firstIndex = Math.max(current - dynamicBulletIndex, 0);\n lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1);\n midIndex = (lastIndex + firstIndex) / 2;\n }\n\n bullets.removeClass(['', '-next', '-next-next', '-prev', '-prev-prev', '-main'].map(function (suffix) {\n return \"\".concat(params.bulletActiveClass).concat(suffix);\n }).join(' '));\n\n if ($el.length > 1) {\n bullets.each(function (bullet) {\n var $bullet = $(bullet);\n var bulletIndex = $bullet.index();\n\n if (bulletIndex === current) {\n $bullet.addClass(params.bulletActiveClass);\n }\n\n if (params.dynamicBullets) {\n if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) {\n $bullet.addClass(\"\".concat(params.bulletActiveClass, \"-main\"));\n }\n\n if (bulletIndex === firstIndex) {\n setSideBullets($bullet, 'prev');\n }\n\n if (bulletIndex === lastIndex) {\n setSideBullets($bullet, 'next');\n }\n }\n });\n } else {\n var $bullet = bullets.eq(current);\n var bulletIndex = $bullet.index();\n $bullet.addClass(params.bulletActiveClass);\n\n if (params.dynamicBullets) {\n var $firstDisplayedBullet = bullets.eq(firstIndex);\n var $lastDisplayedBullet = bullets.eq(lastIndex);\n\n for (var i = firstIndex; i <= lastIndex; i += 1) {\n bullets.eq(i).addClass(\"\".concat(params.bulletActiveClass, \"-main\"));\n }\n\n if (swiper.params.loop) {\n if (bulletIndex >= bullets.length) {\n for (var _i = params.dynamicMainBullets; _i >= 0; _i -= 1) {\n bullets.eq(bullets.length - _i).addClass(\"\".concat(params.bulletActiveClass, \"-main\"));\n }\n\n bullets.eq(bullets.length - params.dynamicMainBullets - 1).addClass(\"\".concat(params.bulletActiveClass, \"-prev\"));\n } else {\n setSideBullets($firstDisplayedBullet, 'prev');\n setSideBullets($lastDisplayedBullet, 'next');\n }\n } else {\n setSideBullets($firstDisplayedBullet, 'prev');\n setSideBullets($lastDisplayedBullet, 'next');\n }\n }\n }\n\n if (params.dynamicBullets) {\n var dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4);\n var bulletsOffset = (bulletSize * dynamicBulletsLength - bulletSize) / 2 - midIndex * bulletSize;\n var offsetProp = rtl ? 'right' : 'left';\n bullets.css(swiper.isHorizontal() ? offsetProp : 'top', \"\".concat(bulletsOffset, \"px\"));\n }\n }\n\n if (params.type === 'fraction') {\n $el.find(classesToSelector(params.currentClass)).text(params.formatFractionCurrent(current + 1));\n $el.find(classesToSelector(params.totalClass)).text(params.formatFractionTotal(total));\n }\n\n if (params.type === 'progressbar') {\n var progressbarDirection;\n\n if (params.progressbarOpposite) {\n progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal';\n } else {\n progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical';\n }\n\n var scale = (current + 1) / total;\n var scaleX = 1;\n var scaleY = 1;\n\n if (progressbarDirection === 'horizontal') {\n scaleX = scale;\n } else {\n scaleY = scale;\n }\n\n $el.find(classesToSelector(params.progressbarFillClass)).transform(\"translate3d(0,0,0) scaleX(\".concat(scaleX, \") scaleY(\").concat(scaleY, \")\")).transition(swiper.params.speed);\n }\n\n if (params.type === 'custom' && params.renderCustom) {\n $el.html(params.renderCustom(swiper, current + 1, total));\n emit('paginationRender', $el[0]);\n } else {\n emit('paginationUpdate', $el[0]);\n }\n\n if (swiper.params.watchOverflow && swiper.enabled) {\n $el[swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n }\n\n function render() {\n // Render Container\n var params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n var slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n var $el = swiper.pagination.$el;\n var paginationHTML = '';\n\n if (params.type === 'bullets') {\n var numberOfBullets = swiper.params.loop ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n\n if (swiper.params.freeMode && swiper.params.freeMode.enabled && !swiper.params.loop && numberOfBullets > slidesLength) {\n numberOfBullets = slidesLength;\n }\n\n for (var i = 0; i < numberOfBullets; i += 1) {\n if (params.renderBullet) {\n paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass);\n } else {\n paginationHTML += \"<\".concat(params.bulletElement, \" class=\\\"\").concat(params.bulletClass, \"\\\">\");\n }\n }\n\n $el.html(paginationHTML);\n swiper.pagination.bullets = $el.find(classesToSelector(params.bulletClass));\n }\n\n if (params.type === 'fraction') {\n if (params.renderFraction) {\n paginationHTML = params.renderFraction.call(swiper, params.currentClass, params.totalClass);\n } else {\n paginationHTML = \"\") + ' / ' + \"\");\n }\n\n $el.html(paginationHTML);\n }\n\n if (params.type === 'progressbar') {\n if (params.renderProgressbar) {\n paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass);\n } else {\n paginationHTML = \"\");\n }\n\n $el.html(paginationHTML);\n }\n\n if (params.type !== 'custom') {\n emit('paginationRender', swiper.pagination.$el[0]);\n }\n }\n\n function init() {\n swiper.params.pagination = createElementIfNotDefined(swiper, swiper.originalParams.pagination, swiper.params.pagination, {\n el: 'swiper-pagination'\n });\n var params = swiper.params.pagination;\n if (!params.el) return;\n var $el = $(params.el);\n if ($el.length === 0) return;\n\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && $el.length > 1) {\n $el = swiper.$el.find(params.el); // check if it belongs to another nested Swiper\n\n if ($el.length > 1) {\n $el = $el.filter(function (el) {\n if ($(el).parents('.swiper')[0] !== swiper.el) return false;\n return true;\n });\n }\n }\n\n if (params.type === 'bullets' && params.clickable) {\n $el.addClass(params.clickableClass);\n }\n\n $el.addClass(params.modifierClass + params.type);\n $el.addClass(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n\n if (params.type === 'bullets' && params.dynamicBullets) {\n $el.addClass(\"\".concat(params.modifierClass).concat(params.type, \"-dynamic\"));\n dynamicBulletIndex = 0;\n\n if (params.dynamicMainBullets < 1) {\n params.dynamicMainBullets = 1;\n }\n }\n\n if (params.type === 'progressbar' && params.progressbarOpposite) {\n $el.addClass(params.progressbarOppositeClass);\n }\n\n if (params.clickable) {\n $el.on('click', classesToSelector(params.bulletClass), function onClick(e) {\n e.preventDefault();\n var index = $(this).index() * swiper.params.slidesPerGroup;\n if (swiper.params.loop) index += swiper.loopedSlides;\n swiper.slideTo(index);\n });\n }\n\n Object.assign(swiper.pagination, {\n $el: $el,\n el: $el[0]\n });\n\n if (!swiper.enabled) {\n $el.addClass(params.lockClass);\n }\n }\n\n function destroy() {\n var params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n var $el = swiper.pagination.$el;\n $el.removeClass(params.hiddenClass);\n $el.removeClass(params.modifierClass + params.type);\n $el.removeClass(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n if (swiper.pagination.bullets && swiper.pagination.bullets.removeClass) swiper.pagination.bullets.removeClass(params.bulletActiveClass);\n\n if (params.clickable) {\n $el.off('click', classesToSelector(params.bulletClass));\n }\n }\n\n on('init', function () {\n if (swiper.params.pagination.enabled === false) {\n // eslint-disable-next-line\n disable();\n } else {\n init();\n render();\n update();\n }\n });\n on('activeIndexChange', function () {\n if (swiper.params.loop) {\n update();\n } else if (typeof swiper.snapIndex === 'undefined') {\n update();\n }\n });\n on('snapIndexChange', function () {\n if (!swiper.params.loop) {\n update();\n }\n });\n on('slidesLengthChange', function () {\n if (swiper.params.loop) {\n render();\n update();\n }\n });\n on('snapGridLengthChange', function () {\n if (!swiper.params.loop) {\n render();\n update();\n }\n });\n on('destroy', function () {\n destroy();\n });\n on('enable disable', function () {\n var $el = swiper.pagination.$el;\n\n if ($el) {\n $el[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.pagination.lockClass);\n }\n });\n on('lock unlock', function () {\n update();\n });\n on('click', function (_s, e) {\n var targetEl = e.target;\n var $el = swiper.pagination.$el;\n\n if (swiper.params.pagination.el && swiper.params.pagination.hideOnClick && $el && $el.length > 0 && !$(targetEl).hasClass(swiper.params.pagination.bulletClass)) {\n if (swiper.navigation && (swiper.navigation.nextEl && targetEl === swiper.navigation.nextEl || swiper.navigation.prevEl && targetEl === swiper.navigation.prevEl)) return;\n var isHidden = $el.hasClass(swiper.params.pagination.hiddenClass);\n\n if (isHidden === true) {\n emit('paginationShow');\n } else {\n emit('paginationHide');\n }\n\n $el.toggleClass(swiper.params.pagination.hiddenClass);\n }\n });\n\n var enable = function enable() {\n swiper.$el.removeClass(swiper.params.pagination.paginationDisabledClass);\n\n if (swiper.pagination.$el) {\n swiper.pagination.$el.removeClass(swiper.params.pagination.paginationDisabledClass);\n }\n\n init();\n render();\n update();\n };\n\n var disable = function disable() {\n swiper.$el.addClass(swiper.params.pagination.paginationDisabledClass);\n\n if (swiper.pagination.$el) {\n swiper.pagination.$el.addClass(swiper.params.pagination.paginationDisabledClass);\n }\n\n destroy();\n };\n\n Object.assign(swiper.pagination, {\n enable: enable,\n disable: disable,\n render: render,\n update: update,\n init: init,\n destroy: destroy\n });\n}","/* eslint no-underscore-dangle: \"off\" */\n\n/* eslint no-use-before-define: \"off\" */\nimport { getDocument } from 'ssr-window';\nimport { nextTick } from '../../shared/utils.js';\nexport default function Autoplay(_ref) {\n var swiper = _ref.swiper,\n extendParams = _ref.extendParams,\n on = _ref.on,\n emit = _ref.emit;\n var timeout;\n swiper.autoplay = {\n running: false,\n paused: false\n };\n extendParams({\n autoplay: {\n enabled: false,\n delay: 3000,\n waitForTransition: true,\n disableOnInteraction: true,\n stopOnLastSlide: false,\n reverseDirection: false,\n pauseOnMouseEnter: false\n }\n });\n\n function run() {\n if (!swiper.size) {\n swiper.autoplay.running = false;\n swiper.autoplay.paused = false;\n return;\n }\n\n var $activeSlideEl = swiper.slides.eq(swiper.activeIndex);\n var delay = swiper.params.autoplay.delay;\n\n if ($activeSlideEl.attr('data-swiper-autoplay')) {\n delay = $activeSlideEl.attr('data-swiper-autoplay') || swiper.params.autoplay.delay;\n }\n\n clearTimeout(timeout);\n timeout = nextTick(function () {\n var autoplayResult;\n\n if (swiper.params.autoplay.reverseDirection) {\n if (swiper.params.loop) {\n swiper.loopFix();\n autoplayResult = swiper.slidePrev(swiper.params.speed, true, true);\n emit('autoplay');\n } else if (!swiper.isBeginning) {\n autoplayResult = swiper.slidePrev(swiper.params.speed, true, true);\n emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n autoplayResult = swiper.slideTo(swiper.slides.length - 1, swiper.params.speed, true, true);\n emit('autoplay');\n } else {\n stop();\n }\n } else if (swiper.params.loop) {\n swiper.loopFix();\n autoplayResult = swiper.slideNext(swiper.params.speed, true, true);\n emit('autoplay');\n } else if (!swiper.isEnd) {\n autoplayResult = swiper.slideNext(swiper.params.speed, true, true);\n emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n autoplayResult = swiper.slideTo(0, swiper.params.speed, true, true);\n emit('autoplay');\n } else {\n stop();\n }\n\n if (swiper.params.cssMode && swiper.autoplay.running) run();else if (autoplayResult === false) {\n run();\n }\n }, delay);\n }\n\n function start() {\n if (typeof timeout !== 'undefined') return false;\n if (swiper.autoplay.running) return false;\n swiper.autoplay.running = true;\n emit('autoplayStart');\n run();\n return true;\n }\n\n function stop() {\n if (!swiper.autoplay.running) return false;\n if (typeof timeout === 'undefined') return false;\n\n if (timeout) {\n clearTimeout(timeout);\n timeout = undefined;\n }\n\n swiper.autoplay.running = false;\n emit('autoplayStop');\n return true;\n }\n\n function pause(speed) {\n if (!swiper.autoplay.running) return;\n if (swiper.autoplay.paused) return;\n if (timeout) clearTimeout(timeout);\n swiper.autoplay.paused = true;\n\n if (speed === 0 || !swiper.params.autoplay.waitForTransition) {\n swiper.autoplay.paused = false;\n run();\n } else {\n ['transitionend', 'webkitTransitionEnd'].forEach(function (event) {\n swiper.$wrapperEl[0].addEventListener(event, onTransitionEnd);\n });\n }\n }\n\n function onVisibilityChange() {\n var document = getDocument();\n\n if (document.visibilityState === 'hidden' && swiper.autoplay.running) {\n pause();\n }\n\n if (document.visibilityState === 'visible' && swiper.autoplay.paused) {\n run();\n swiper.autoplay.paused = false;\n }\n }\n\n function onTransitionEnd(e) {\n if (!swiper || swiper.destroyed || !swiper.$wrapperEl) return;\n if (e.target !== swiper.$wrapperEl[0]) return;\n ['transitionend', 'webkitTransitionEnd'].forEach(function (event) {\n swiper.$wrapperEl[0].removeEventListener(event, onTransitionEnd);\n });\n swiper.autoplay.paused = false;\n\n if (!swiper.autoplay.running) {\n stop();\n } else {\n run();\n }\n }\n\n function onMouseEnter() {\n if (swiper.params.autoplay.disableOnInteraction) {\n stop();\n } else {\n emit('autoplayPause');\n pause();\n }\n\n ['transitionend', 'webkitTransitionEnd'].forEach(function (event) {\n swiper.$wrapperEl[0].removeEventListener(event, onTransitionEnd);\n });\n }\n\n function onMouseLeave() {\n if (swiper.params.autoplay.disableOnInteraction) {\n return;\n }\n\n swiper.autoplay.paused = false;\n emit('autoplayResume');\n run();\n }\n\n function attachMouseEvents() {\n if (swiper.params.autoplay.pauseOnMouseEnter) {\n swiper.$el.on('mouseenter', onMouseEnter);\n swiper.$el.on('mouseleave', onMouseLeave);\n }\n }\n\n function detachMouseEvents() {\n swiper.$el.off('mouseenter', onMouseEnter);\n swiper.$el.off('mouseleave', onMouseLeave);\n }\n\n on('init', function () {\n if (swiper.params.autoplay.enabled) {\n start();\n var document = getDocument();\n document.addEventListener('visibilitychange', onVisibilityChange);\n attachMouseEvents();\n }\n });\n on('beforeTransitionStart', function (_s, speed, internal) {\n if (swiper.autoplay.running) {\n if (internal || !swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.pause(speed);\n } else {\n stop();\n }\n }\n });\n on('sliderFirstMove', function () {\n if (swiper.autoplay.running) {\n if (swiper.params.autoplay.disableOnInteraction) {\n stop();\n } else {\n pause();\n }\n }\n });\n on('touchEnd', function () {\n if (swiper.params.cssMode && swiper.autoplay.paused && !swiper.params.autoplay.disableOnInteraction) {\n run();\n }\n });\n on('destroy', function () {\n detachMouseEvents();\n\n if (swiper.autoplay.running) {\n stop();\n }\n\n var document = getDocument();\n document.removeEventListener('visibilitychange', onVisibilityChange);\n });\n Object.assign(swiper.autoplay, {\n pause: pause,\n run: run,\n start: start,\n stop: stop\n });\n}","import $ from './dom.js';\nexport default function createShadow(params, $slideEl, side) {\n var shadowClass = \"swiper-slide-shadow\".concat(side ? \"-\".concat(side) : '');\n var $shadowContainer = params.transformEl ? $slideEl.find(params.transformEl) : $slideEl;\n var $shadowEl = $shadowContainer.children(\".\".concat(shadowClass));\n\n if (!$shadowEl.length) {\n $shadowEl = $(\"
\"));\n $shadowContainer.append($shadowEl);\n }\n\n return $shadowEl;\n}","export default function effectTarget(effectParams, $slideEl) {\n if (effectParams.transformEl) {\n return $slideEl.find(effectParams.transformEl).css({\n 'backface-visibility': 'hidden',\n '-webkit-backface-visibility': 'hidden'\n });\n }\n\n return $slideEl;\n}","import createShadow from '../../shared/create-shadow.js';\nimport effectInit from '../../shared/effect-init.js';\nimport effectTarget from '../../shared/effect-target.js';\nexport default function EffectCoverflow(_ref) {\n var swiper = _ref.swiper,\n extendParams = _ref.extendParams,\n on = _ref.on;\n extendParams({\n coverflowEffect: {\n rotate: 50,\n stretch: 0,\n depth: 100,\n scale: 1,\n modifier: 1,\n slideShadows: true,\n transformEl: null\n }\n });\n\n var setTranslate = function setTranslate() {\n var swiperWidth = swiper.width,\n swiperHeight = swiper.height,\n slides = swiper.slides,\n slidesSizesGrid = swiper.slidesSizesGrid;\n var params = swiper.params.coverflowEffect;\n var isHorizontal = swiper.isHorizontal();\n var transform = swiper.translate;\n var center = isHorizontal ? -transform + swiperWidth / 2 : -transform + swiperHeight / 2;\n var rotate = isHorizontal ? params.rotate : -params.rotate;\n var translate = params.depth; // Each slide offset from center\n\n for (var i = 0, length = slides.length; i < length; i += 1) {\n var $slideEl = slides.eq(i);\n var slideSize = slidesSizesGrid[i];\n var slideOffset = $slideEl[0].swiperSlideOffset;\n var centerOffset = (center - slideOffset - slideSize / 2) / slideSize;\n var offsetMultiplier = typeof params.modifier === 'function' ? params.modifier(centerOffset) : centerOffset * params.modifier;\n var rotateY = isHorizontal ? rotate * offsetMultiplier : 0;\n var rotateX = isHorizontal ? 0 : rotate * offsetMultiplier; // var rotateZ = 0\n\n var translateZ = -translate * Math.abs(offsetMultiplier);\n var stretch = params.stretch; // Allow percentage to make a relative stretch for responsive sliders\n\n if (typeof stretch === 'string' && stretch.indexOf('%') !== -1) {\n stretch = parseFloat(params.stretch) / 100 * slideSize;\n }\n\n var translateY = isHorizontal ? 0 : stretch * offsetMultiplier;\n var translateX = isHorizontal ? stretch * offsetMultiplier : 0;\n var scale = 1 - (1 - params.scale) * Math.abs(offsetMultiplier); // Fix for ultra small values\n\n if (Math.abs(translateX) < 0.001) translateX = 0;\n if (Math.abs(translateY) < 0.001) translateY = 0;\n if (Math.abs(translateZ) < 0.001) translateZ = 0;\n if (Math.abs(rotateY) < 0.001) rotateY = 0;\n if (Math.abs(rotateX) < 0.001) rotateX = 0;\n if (Math.abs(scale) < 0.001) scale = 0;\n var slideTransform = \"translate3d(\".concat(translateX, \"px,\").concat(translateY, \"px,\").concat(translateZ, \"px) rotateX(\").concat(rotateX, \"deg) rotateY(\").concat(rotateY, \"deg) scale(\").concat(scale, \")\");\n var $targetEl = effectTarget(params, $slideEl);\n $targetEl.transform(slideTransform);\n $slideEl[0].style.zIndex = -Math.abs(Math.round(offsetMultiplier)) + 1;\n\n if (params.slideShadows) {\n // Set shadows\n var $shadowBeforeEl = isHorizontal ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top');\n var $shadowAfterEl = isHorizontal ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom');\n\n if ($shadowBeforeEl.length === 0) {\n $shadowBeforeEl = createShadow(params, $slideEl, isHorizontal ? 'left' : 'top');\n }\n\n if ($shadowAfterEl.length === 0) {\n $shadowAfterEl = createShadow(params, $slideEl, isHorizontal ? 'right' : 'bottom');\n }\n\n if ($shadowBeforeEl.length) $shadowBeforeEl[0].style.opacity = offsetMultiplier > 0 ? offsetMultiplier : 0;\n if ($shadowAfterEl.length) $shadowAfterEl[0].style.opacity = -offsetMultiplier > 0 ? -offsetMultiplier : 0;\n }\n }\n };\n\n var setTransition = function setTransition(duration) {\n var transformEl = swiper.params.coverflowEffect.transformEl;\n var $transitionElements = transformEl ? swiper.slides.find(transformEl) : swiper.slides;\n $transitionElements.transition(duration).find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').transition(duration);\n };\n\n effectInit({\n effect: 'coverflow',\n swiper: swiper,\n on: on,\n setTranslate: setTranslate,\n setTransition: setTransition,\n perspective: function perspective() {\n return true;\n },\n overwriteParams: function overwriteParams() {\n return {\n watchSlidesProgress: true\n };\n }\n });\n}","export default function effectInit(params) {\n var effect = params.effect,\n swiper = params.swiper,\n on = params.on,\n setTranslate = params.setTranslate,\n setTransition = params.setTransition,\n overwriteParams = params.overwriteParams,\n perspective = params.perspective,\n recreateShadows = params.recreateShadows,\n getEffectParams = params.getEffectParams;\n on('beforeInit', function () {\n if (swiper.params.effect !== effect) return;\n swiper.classNames.push(\"\".concat(swiper.params.containerModifierClass).concat(effect));\n\n if (perspective && perspective()) {\n swiper.classNames.push(\"\".concat(swiper.params.containerModifierClass, \"3d\"));\n }\n\n var overwriteParamsResult = overwriteParams ? overwriteParams() : {};\n Object.assign(swiper.params, overwriteParamsResult);\n Object.assign(swiper.originalParams, overwriteParamsResult);\n });\n on('setTranslate', function () {\n if (swiper.params.effect !== effect) return;\n setTranslate();\n });\n on('setTransition', function (_s, duration) {\n if (swiper.params.effect !== effect) return;\n setTransition(duration);\n });\n on('transitionEnd', function () {\n if (swiper.params.effect !== effect) return;\n\n if (recreateShadows) {\n if (!getEffectParams || !getEffectParams().slideShadows) return; // remove shadows\n\n swiper.slides.each(function (slideEl) {\n var $slideEl = swiper.$(slideEl);\n $slideEl.find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').remove();\n }); // create new one\n\n recreateShadows();\n }\n });\n var requireUpdateOnVirtual;\n on('virtualUpdate', function () {\n if (swiper.params.effect !== effect) return;\n\n if (!swiper.slides.length) {\n requireUpdateOnVirtual = true;\n }\n\n requestAnimationFrame(function () {\n if (requireUpdateOnVirtual && swiper.slides && swiper.slides.length) {\n setTranslate();\n requireUpdateOnVirtual = false;\n }\n });\n });\n}","function isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object';\n}\n\nfunction extend(target, src) {\n var noExtend = ['__proto__', 'constructor', 'prototype'];\n Object.keys(src).filter(function (key) {\n return noExtend.indexOf(key) < 0;\n }).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 if (src[key].__swiper__) target[key] = src[key];else extend(target[key], src[key]);\n } else {\n target[key] = src[key];\n }\n });\n}\n\nfunction needsNavigation() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n return params.navigation && typeof params.navigation.nextEl === 'undefined' && typeof params.navigation.prevEl === 'undefined';\n}\n\nfunction needsPagination() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n return params.pagination && typeof params.pagination.el === 'undefined';\n}\n\nfunction needsScrollbar() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n return params.scrollbar && typeof params.scrollbar.el === 'undefined';\n}\n\nfunction uniqueClasses() {\n var classNames = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\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 };","/* underscore in name -> watch for changes */\nvar paramsList = ['modules', 'init', '_direction', 'touchEventsTarget', 'initialSlide', '_speed', 'cssMode', 'updateOnWindowResize', 'resizeObserver', 'nested', 'focusableElements', '_enabled', '_width', '_height', 'preventInteractionOnTransition', 'userAgent', 'url', '_edgeSwipeDetection', '_edgeSwipeThreshold', '_freeMode', '_autoHeight', 'setWrapperSize', 'virtualTranslate', '_effect', 'breakpoints', '_spaceBetween', '_slidesPerView', 'maxBackfaceHiddenSlides', '_grid', '_slidesPerGroup', '_slidesPerGroupSkip', '_slidesPerGroupAuto', '_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', '_grabCursor', 'preventClicks', 'preventClicksPropagation', '_slideToClickedSlide', '_preloadImages', 'updateOnImagesReady', '_loop', '_loopAdditionalSlides', '_loopedSlides', '_loopedSlidesLimit', '_loopFillGroupWithBlank', 'loopPreventsSlide', '_rewind', '_allowSlidePrev', '_allowSlideNext', '_swipeHandler', '_noSwiping', 'noSwipingClass', 'noSwipingSelector', 'passiveListeners', 'containerModifierClass', 'slideClass', 'slideBlankClass', 'slideActiveClass', 'slideDuplicateActiveClass', 'slideVisibleClass', 'slideDuplicateClass', 'slideNextClass', 'slideDuplicateNextClass', 'slidePrevClass', 'slideDuplicatePrevClass', 'wrapperClass', 'runCallbacksOnInit', 'observer', 'observeParents', 'observeSlideChildren', // modules\n'a11y', '_autoplay', '_controller', 'coverflowEffect', 'cubeEffect', 'fadeEffect', 'flipEffect', 'creativeEffect', 'cardsEffect', 'hashNavigation', 'history', 'keyboard', 'lazy', 'mousewheel', '_navigation', '_pagination', 'parallax', '_scrollbar', '_thumbs', 'virtual', 'zoom'];\nexport { paramsList };","import Swiper from 'swiper';\nexport var calcLoopedSlides = function calcLoopedSlides(slides, swiperParams) {\n var slidesPerViewParams = swiperParams.slidesPerView;\n\n if (swiperParams.breakpoints) {\n var breakpoint = Swiper.prototype.getBreakpoint(swiperParams.breakpoints);\n var breakpointOnlyParams = breakpoint in swiperParams.breakpoints ? swiperParams.breakpoints[breakpoint] : undefined;\n\n if (breakpointOnlyParams && breakpointOnlyParams.slidesPerView) {\n slidesPerViewParams = breakpointOnlyParams.slidesPerView;\n }\n }\n\n var loopedSlides = Math.ceil(parseFloat(swiperParams.loopedSlides || slidesPerViewParams, 10));\n loopedSlides += swiperParams.loopAdditionalSlides;\n\n if (loopedSlides > slides.length && swiperParams.loopedSlidesLimit) {\n loopedSlides = slides.length;\n }\n\n return loopedSlides;\n};","import React from 'react';\n\nfunction isChildSwiperSlide(child) {\n return child.type && child.type.displayName && child.type.displayName.includes('SwiperSlide');\n}\n\nfunction processChildren(c) {\n var slides = [];\n React.Children.toArray(c).forEach(function (child) {\n if (isChildSwiperSlide(child)) {\n slides.push(child);\n } else if (child.props && child.props.children) {\n processChildren(child.props.children).forEach(function (slide) {\n return slides.push(slide);\n });\n }\n });\n return slides;\n}\n\nfunction getChildren(c) {\n var slides = [];\n var slots = {\n 'container-start': [],\n 'container-end': [],\n 'wrapper-start': [],\n 'wrapper-end': []\n };\n React.Children.toArray(c).forEach(function (child) {\n if (isChildSwiperSlide(child)) {\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 if (child.props && child.props.children) {\n var foundSlides = processChildren(child.props.children);\n\n if (foundSlides.length > 0) {\n foundSlides.forEach(function (slide) {\n return slides.push(slide);\n });\n } else {\n slots['container-end'].push(child);\n }\n } else {\n slots['container-end'].push(child);\n }\n });\n return {\n slides: slides,\n slots: slots\n };\n}\n\nexport { getChildren };","import { isObject, extend } from './utils.js';\n\nfunction updateSwiper(_ref) {\n var swiper = _ref.swiper,\n slides = _ref.slides,\n passedParams = _ref.passedParams,\n changedParams = _ref.changedParams,\n nextEl = _ref.nextEl,\n prevEl = _ref.prevEl,\n scrollbarEl = _ref.scrollbarEl,\n paginationEl = _ref.paginationEl;\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 || paginationEl) && (currentParams.pagination || currentParams.pagination === false) && pagination && !pagination.el) {\n needPaginationInit = true;\n }\n\n if (changedParams.includes('scrollbar') && passedParams.scrollbar && (passedParams.scrollbar.el || scrollbarEl) && (currentParams.scrollbar || currentParams.scrollbar === false) && scrollbar && !scrollbar.el) {\n needScrollbarInit = true;\n }\n\n if (changedParams.includes('navigation') && passedParams.navigation && (passedParams.navigation.prevEl || prevEl) && (passedParams.navigation.nextEl || nextEl) && (currentParams.navigation || currentParams.navigation === false) && navigation && !navigation.prevEl && !navigation.nextEl) {\n needNavigationInit = true;\n }\n\n var destroyModule = function destroyModule(mod) {\n if (!swiper[mod]) return;\n swiper[mod].destroy();\n\n if (mod === 'navigation') {\n currentParams[mod].prevEl = undefined;\n currentParams[mod].nextEl = undefined;\n swiper[mod].prevEl = undefined;\n swiper[mod].nextEl = undefined;\n } else {\n currentParams[mod].el = undefined;\n swiper[mod].el = undefined;\n }\n };\n\n updateParams.forEach(function (key) {\n if (isObject(currentParams[key]) && isObject(passedParams[key])) {\n extend(currentParams[key], passedParams[key]);\n } else {\n var newValue = passedParams[key];\n\n if ((newValue === true || newValue === false) && (key === 'navigation' || key === 'pagination' || key === 'scrollbar')) {\n if (newValue === false) {\n destroyModule(key);\n }\n } else {\n currentParams[key] = passedParams[key];\n }\n }\n });\n\n if (updateParams.includes('controller') && !needControllerInit && swiper.controller && swiper.controller.control && currentParams.controller && currentParams.controller.control) {\n swiper.controller.control = currentParams.controller.control;\n }\n\n if (changedParams.includes('children') && slides && virtual && currentParams.virtual.enabled) {\n virtual.slides = slides;\n virtual.update(true);\n } else if (changedParams.includes('children') && swiper.lazy && swiper.params.lazy.enabled) {\n swiper.lazy.load();\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 if (paginationEl) currentParams.pagination.el = paginationEl;\n pagination.init();\n pagination.render();\n pagination.update();\n }\n\n if (needScrollbarInit) {\n if (scrollbarEl) currentParams.scrollbar.el = scrollbarEl;\n scrollbar.init();\n scrollbar.updateSize();\n scrollbar.setTranslate();\n }\n\n if (needNavigationInit) {\n if (nextEl) currentParams.navigation.nextEl = nextEl;\n if (prevEl) currentParams.navigation.prevEl = prevEl;\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 { 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 { createContext, useContext } from 'react';\nexport var SwiperSlideContext = /*#__PURE__*/createContext(null);\nexport var useSwiperSlide = function useSwiperSlide() {\n return useContext(SwiperSlideContext);\n};\nexport var SwiperContext = /*#__PURE__*/createContext(null);\nexport var useSwiper = function useSwiper() {\n return useContext(SwiperContext);\n};","import _slicedToArray from \"/home/vsts/work/1/s/node_modules/@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"/home/vsts/work/1/s/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"className\", \"tag\", \"wrapperTag\", \"children\", \"onSwiper\"];\n\nfunction _extends() {\n _extends = Object.assign ? Object.assign.bind() : 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 return _extends.apply(this, arguments);\n}\n\nimport React, { useRef, useState, useEffect, forwardRef } from 'react';\nimport SwiperCore from 'swiper';\nimport { getParams } from '../components-shared/get-params.js';\nimport { mountSwiper } from '../components-shared/mount-swiper.js';\nimport { needsScrollbar, needsNavigation, needsPagination, uniqueClasses, extend } from '../components-shared/utils.js';\nimport { renderLoop, calcLoopedSlides } from './loop.js';\nimport { getChangedParams } from '../components-shared/get-changed-params.js';\nimport { getChildren } from './get-children.js';\nimport { updateSwiper } from '../components-shared/update-swiper.js';\nimport { renderVirtual } from './virtual.js';\nimport { updateOnVirtualData } from '../components-shared/update-on-virtual-data.js';\nimport { useIsomorphicLayoutEffect } from './use-isomorphic-layout-effect.js';\nimport { SwiperContext } from './context.js';\nvar Swiper = /*#__PURE__*/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 = _objectWithoutProperties(_ref, _excluded);\n\n var eventsAssigned = false;\n\n var _useState = useState('swiper'),\n _useState2 = _slicedToArray(_useState, 2),\n containerClasses = _useState2[0],\n setContainerClasses = _useState2[1];\n\n var _useState3 = useState(null),\n _useState4 = _slicedToArray(_useState3, 2),\n virtualData = _useState4[0],\n setVirtualData = _useState4[1];\n\n var _useState5 = useState(false),\n _useState6 = _slicedToArray(_useState5, 2),\n breakpointChanged = _useState6[0],\n setBreakpointChanged = _useState6[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 events = _getParams.events;\n\n var _getChildren = getChildren(children),\n slides = _getChildren.slides,\n slots = _getChildren.slots;\n\n var onBeforeBreakpoint = function onBeforeBreakpoint() {\n setBreakpointChanged(!breakpointChanged);\n };\n\n Object.assign(swiperParams.on, {\n _containerClasses: function _containerClasses(swiper, classes) {\n setContainerClasses(classes);\n }\n });\n\n var initSwiper = function initSwiper() {\n // init swiper\n Object.assign(swiperParams.on, events);\n eventsAssigned = true;\n swiperRef.current = new SwiperCore(swiperParams);\n\n swiperRef.current.loopCreate = function () {};\n\n swiperRef.current.loopDestroy = function () {};\n\n if (swiperParams.loop) {\n swiperRef.current.loopedSlides = calcLoopedSlides(slides, swiperParams);\n }\n\n if (swiperRef.current.virtual && swiperRef.current.params.virtual.enabled) {\n swiperRef.current.virtual.slides = slides;\n var extendWith = {\n cache: false,\n slides: slides,\n renderExternal: setVirtualData,\n renderExternalUpdate: false\n };\n extend(swiperRef.current.params.virtual, extendWith);\n extend(swiperRef.current.originalParams.virtual, extendWith);\n }\n };\n\n if (!swiperElRef.current) {\n initSwiper();\n } // Listen for breakpoints change\n\n\n if (swiperRef.current) {\n swiperRef.current.on('_beforeBreakpoint', onBeforeBreakpoint);\n }\n\n var attachEvents = function attachEvents() {\n if (eventsAssigned || !events || !swiperRef.current) return;\n Object.keys(events).forEach(function (eventName) {\n swiperRef.current.on(eventName, events[eventName]);\n });\n };\n\n var detachEvents = function detachEvents() {\n if (!events || !swiperRef.current) return;\n Object.keys(events).forEach(function (eventName) {\n swiperRef.current.off(eventName, events[eventName]);\n });\n };\n\n useEffect(function () {\n return function () {\n if (swiperRef.current) swiperRef.current.off('_beforeBreakpoint', onBeforeBreakpoint);\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 }); // mount swiper\n\n useIsomorphicLayoutEffect(function () {\n if (externalElRef) {\n externalElRef.current = swiperElRef.current;\n }\n\n if (!swiperElRef.current) return;\n\n if (swiperRef.current.destroyed) {\n initSwiper();\n }\n\n mountSwiper({\n el: swiperElRef.current,\n nextEl: nextElRef.current,\n prevEl: prevElRef.current,\n paginationEl: paginationElRef.current,\n scrollbarEl: scrollbarElRef.current,\n swiper: swiperRef.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(true, false);\n }\n };\n }, []); // watch for params change\n\n useIsomorphicLayoutEffect(function () {\n attachEvents();\n var changedParams = getChangedParams(passedParams, oldPassedParamsRef.current, slides, oldSlides.current, function (c) {\n return c.key;\n });\n oldPassedParamsRef.current = passedParams;\n oldSlides.current = slides;\n\n if (changedParams.length && swiperRef.current && !swiperRef.current.destroyed) {\n updateSwiper({\n swiper: swiperRef.current,\n slides: slides,\n passedParams: passedParams,\n changedParams: changedParams,\n nextEl: nextElRef.current,\n prevEl: prevElRef.current,\n scrollbarEl: scrollbarElRef.current,\n paginationEl: paginationElRef.current\n });\n }\n\n return function () {\n detachEvents();\n };\n }); // update on virtual update\n\n useIsomorphicLayoutEffect(function () {\n updateOnVirtualData(swiperRef.current);\n }, [virtualData]); // 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 /*#__PURE__*/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(\"\".concat(containerClasses).concat(className ? \" \".concat(className) : ''))\n }, restProps), /*#__PURE__*/React.createElement(SwiperContext.Provider, {\n value: swiperRef.current\n }, slots['container-start'], /*#__PURE__*/React.createElement(WrapperTag, {\n className: \"swiper-wrapper\"\n }, slots['wrapper-start'], renderSlides(), slots['wrapper-end']), 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 }), slots['container-end']));\n});\nSwiper.displayName = 'Swiper';\nexport { Swiper };","import Swiper from 'swiper';\nimport { isObject, extend } from './utils.js';\nimport { paramsList } from './params-list.js';\n\nfunction getParams() {\n var obj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var splitEvents = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var params = {\n on: {}\n };\n var events = {};\n var passedParams = {};\n extend(params, Swiper.defaults);\n extend(params, Swiper.extendedDefaults);\n params._emitClasses = true;\n params.init = false;\n var rest = {};\n var allowedParams = paramsList.map(function (key) {\n return key.replace(/_/, '');\n });\n var plainObj = Object.assign({}, obj);\n Object.keys(plainObj).forEach(function (key) {\n if (typeof obj[key] === 'undefined') return;\n\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 if (splitEvents) {\n events[\"\".concat(key[2].toLowerCase()).concat(key.substr(3))] = obj[key];\n } else {\n params.on[\"\".concat(key[2].toLowerCase()).concat(key.substr(3))] = obj[key];\n }\n } else {\n rest[key] = obj[key];\n }\n });\n ['navigation', 'pagination', 'scrollbar'].forEach(function (key) {\n if (params[key] === true) params[key] = {};\n if (params[key] === false) delete params[key];\n });\n return {\n params: params,\n passedParams: passedParams,\n rest: rest,\n events: events\n };\n}\n\nexport { getParams };","import { needsNavigation, needsPagination, needsScrollbar } from './utils.js';\n\nfunction mountSwiper(_ref, swiperParams) {\n var el = _ref.el,\n nextEl = _ref.nextEl,\n prevEl = _ref.prevEl,\n paginationEl = _ref.paginationEl,\n scrollbarEl = _ref.scrollbarEl,\n swiper = _ref.swiper;\n\n if (needsNavigation(swiperParams) && nextEl && prevEl) {\n swiper.params.navigation.nextEl = nextEl;\n swiper.originalParams.navigation.nextEl = nextEl;\n swiper.params.navigation.prevEl = prevEl;\n swiper.originalParams.navigation.prevEl = prevEl;\n }\n\n if (needsPagination(swiperParams) && paginationEl) {\n swiper.params.pagination.el = paginationEl;\n swiper.originalParams.pagination.el = paginationEl;\n }\n\n if (needsScrollbar(swiperParams) && scrollbarEl) {\n swiper.params.scrollbar.el = scrollbarEl;\n swiper.originalParams.scrollbar.el = scrollbarEl;\n }\n\n swiper.init(el);\n}\n\nexport { mountSwiper };","import { paramsList } from './params-list.js';\nimport { isObject } from './utils.js';\n\nfunction getChangedParams(swiperParams, oldParams, children, oldChildren, getKey) {\n var keys = [];\n if (!oldParams) return keys;\n\n var addKey = function addKey(key) {\n if (keys.indexOf(key) < 0) keys.push(key);\n };\n\n if (children && oldChildren) {\n var oldChildrenKeys = oldChildren.map(getKey);\n var childrenKeys = children.map(getKey);\n if (oldChildrenKeys.join('') !== childrenKeys.join('')) addKey('children');\n if (oldChildren.length !== children.length) addKey('children');\n }\n\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) {\n if (isObject(swiperParams[key]) && isObject(oldParams[key])) {\n var newKeys = Object.keys(swiperParams[key]);\n var oldKeys = Object.keys(oldParams[key]);\n\n if (newKeys.length !== oldKeys.length) {\n addKey(key);\n } else {\n newKeys.forEach(function (newKey) {\n if (swiperParams[key][newKey] !== oldParams[key][newKey]) {\n addKey(key);\n }\n });\n oldKeys.forEach(function (oldKey) {\n if (swiperParams[key][oldKey] !== oldParams[key][oldKey]) addKey(key);\n });\n }\n } else if (swiperParams[key] !== oldParams[key]) {\n addKey(key);\n }\n }\n });\n return keys;\n}\n\nexport { getChangedParams };","export var updateOnVirtualData = function updateOnVirtualData(swiper) {\n if (!swiper || swiper.destroyed || !swiper.params.virtual || swiper.params.virtual && !swiper.params.virtual.enabled) 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 if (swiper.parallax && swiper.params.parallax && swiper.params.parallax.enabled) {\n swiper.parallax.setTranslate();\n }\n};","import _defineProperty from \"/home/vsts/work/1/s/node_modules/@babel/runtime/helpers/esm/defineProperty\";\nimport React from 'react';\n\nfunction renderVirtual(swiper, slides, virtualData) {\n if (!virtualData) return null;\n var style = swiper.isHorizontal() ? _defineProperty({}, swiper.rtlTranslate ? 'right' : 'left', \"\".concat(virtualData.offset, \"px\")) : {\n top: \"\".concat(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 /*#__PURE__*/React.cloneElement(child, {\n swiper: swiper,\n style: style\n });\n });\n}\n\nexport { renderVirtual };","import _toConsumableArray from \"/home/vsts/work/1/s/node_modules/@babel/runtime/helpers/esm/toConsumableArray\";\nimport React from 'react';\nimport { calcLoopedSlides } from '../shared/calc-looped-slides.js';\n\nfunction renderLoop(swiper, slides, swiperParams) {\n var modifiedSlides = slides.map(function (child, index) {\n return /*#__PURE__*/React.cloneElement(child, {\n swiper: swiper,\n 'data-swiper-slide-index': index\n });\n });\n\n function duplicateSlide(child, index, position) {\n return /*#__PURE__*/React.cloneElement(child, {\n key: \"\".concat(child.key, \"-duplicate-\").concat(index, \"-\").concat(position),\n className: \"\".concat(child.props.className || '', \" \").concat(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: \"\".concat(swiperParams.slideClass, \" \").concat(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\n for (var _i = 0; _i < loopedSlides; _i += 1) {\n var index = _i - Math.floor(_i / modifiedSlides.length) * modifiedSlides.length;\n\n appendSlides.push(duplicateSlide(modifiedSlides[index], _i, 'append'));\n prependSlides.unshift(duplicateSlide(modifiedSlides[modifiedSlides.length - index - 1], _i, 'prepend'));\n }\n\n if (swiper) {\n swiper.loopedSlides = loopedSlides;\n }\n\n return [].concat(prependSlides, _toConsumableArray(modifiedSlides), appendSlides);\n}\n\nexport { calcLoopedSlides, renderLoop };","import _slicedToArray from \"/home/vsts/work/1/s/node_modules/@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"/home/vsts/work/1/s/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"tag\", \"children\", \"className\", \"swiper\", \"zoom\", \"virtualIndex\"];\n\nfunction _extends() {\n _extends = Object.assign ? Object.assign.bind() : 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 return _extends.apply(this, arguments);\n}\n\nimport React, { useRef, useState, forwardRef } from 'react';\nimport { uniqueClasses } from '../components-shared/utils.js';\nimport { useIsomorphicLayoutEffect } from './use-isomorphic-layout-effect.js';\nimport { SwiperSlideContext } from './context.js';\nvar SwiperSlide = /*#__PURE__*/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 virtualIndex = _ref.virtualIndex,\n rest = _objectWithoutProperties(_ref, _excluded);\n\n var slideElRef = useRef(null);\n\n var _useState = useState('swiper-slide'),\n _useState2 = _slicedToArray(_useState, 2),\n slideClasses = _useState2[0],\n setSlideClasses = _useState2[1];\n\n function updateClasses(_s, 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) {\n return;\n }\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 useIsomorphicLayoutEffect(function () {\n if (swiper && slideElRef.current && !swiper.destroyed) {\n setSlideClasses(swiper.getSlideClasses(slideElRef.current));\n }\n }, [swiper]);\n var 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 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(\"\".concat(slideClasses).concat(className ? \" \".concat(className) : '')),\n \"data-swiper-slide-index\": virtualIndex\n }, rest), /*#__PURE__*/React.createElement(SwiperSlideContext.Provider, {\n value: slideData\n }, 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 };","import React, { useState, useEffect } from \"react\";\n\nimport axios from \"axios\";\n\nimport { MDBIcon, MDBCard, MDBCardBody } from \"mdbreact\";\n\nimport { Swiper, SwiperSlide } from \"swiper/react\"; // Componentes Swiper\nimport { Autoplay, EffectCoverflow, Pagination, Navigation } from \"swiper\"; // Modulos Swiper\nimport \"swiper/css\";\nimport \"swiper/css/navigation\";\nimport \"swiper/css/pagination\";\nimport \"swiper/css/bundle\";\nimport \"swiper/css/virtual\";\nimport \"swiper/css/zoom\";\n\nexport default function Noticias() {\n\tconst [noticias, setNoticias] = useState(null);\n\n\tuseEffect(() => {\n\t\taxios\n\t\t\t.get(`https://servico.feevale.br/site/v1/noticias/0/10/bicentenário2024`)\n\t\t\t.then((res) => {\n\t\t\t\tres.data = res.data.sort((a, b) => {\n\t\t\t\t\treturn Date.parse(new Date(b?.dataCadastro)) - Date.parse(new Date(a?.dataCadastro));\n\t\t\t\t});\n\t\t\t\tsetNoticias(res.data);\n\t\t\t});\n\t}, []);\n\n\tlet breakpoints = {\n\t\t// when window width is >= 320px\n\t\t320: {\n\t\t\tslidesPerView: 1,\n\t\t\tnavigation: false,\n\t\t},\n\t\t// when window width is >= 480px\n\t\t480: {\n\t\t\tslidesPerView: 2,\n\t\t},\n\t\t// when window width is >= 640px\n\t\t640: {\n\t\t\tslidesPerView: 3,\n\t\t},\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t 3 ? true : false} // Buga se ativar\n\t\t\t\tnavigation={true}\n\t\t\t\tcssMode={false}\n\t\t\t\tpagination={false}\n\t\t\t\trewind={true}\n\t\t\t\tmodules={[EffectCoverflow, Pagination, Navigation, Autoplay]}\n\t\t\t\tclassName=\"\"\n\t\t\t>\n\t\t\t\t{noticias?.map((noticia, index) => (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{noticia.midia !== null && (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t

{noticia.titulo}

\n\t\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t\t\t{\" \"}\n\t\t\t\t\t\t\t\t\t\t\t\t{new Date(noticia.dataCadastro).toLocaleDateString(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\"pt-br\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tyear: \"numeric\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tmonth: \"numeric\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tday: \"numeric\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t\n\t\t\t\t))}\n\t\t\t\n\t\t\n\t);\n}\n","import React from \"react\";\n\nimport { MDBRow, MDBCol, MDBBtn } from \"mdbreact\";\n\nexport default function Eventos({ evento }) {\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t
\n\t\t\t
\n\t\t\t{evento?.Configuracoes?.Imagem?.Media !== null && (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t)}\n\t\t\t\n\t\t\t\t

{evento?.Title}

\n\t\t\t\t

{evento?.Configuracoes?.DataEventoText?.Value}

\n\t\t\t\t

{evento?.Configuracoes?.Local?.Value}

\n\t\t\t\t\n\t\t\t\t{evento?.Configuracoes?.LinkBotao?.Value !== null &&\n\t\t\t\t\tevento?.Configuracoes?.LinkBotao?.Value !== \"\" && (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tSAIBA MAIS\n\t\t\t\t\t\t\n\t\t\t\t\t)}\n\t\t\t\n\t\t
\n\t);\n}\n","import React, { useState, useEffect } from \"react\";\n\nimport axios from \"axios\";\n\nimport { MDBDataTable } from \"mdbreact\";\n\nimport CardEvento from \"../CardEvento/CardEvento\";\n\nexport default function Eventos() {\n\tconst [eventos, setEventos] = useState(null);\n\n\tuseEffect(() => {\n\t\taxios\n\t\t\t.get(`https://servico.feevale.br/site/v2/imigracaoalema`)\n\t\t\t.then((res) => {\n\t\t\t\tres?.data?.map((a) => {\n\t\t\t\t\tif (\n\t\t\t\t\t\tDate.parse(new Date(a?.Configuracoes?.DataEvento?.Value)) <\n\t\t\t\t\t\tDate.parse(new Date(Date.now()))\n\t\t\t\t\t) {\n\t\t\t\t\t\ta.Configuracoes.DataEvento.Value = Date.parse(new Date(2099, 1, 1));\n\t\t\t\t\t\ta.Configuracoes.DataEventoText.Value = \"Evento passado\";\n\t\t\t\t\t} else {\n\t\t\t\t\t\ta.Configuracoes.DataEvento.Value = Date.parse(\n\t\t\t\t\t\t\tnew Date(a?.Configuracoes?.DataEvento?.Value)\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tres.data = res.data.sort(\n\t\t\t\t\t(a, b) =>\n\t\t\t\t\t\ta?.Configuracoes?.DataEvento?.Value -\n\t\t\t\t\t\tb?.Configuracoes?.DataEvento?.Value\n\t\t\t\t);\n\t\t\t\tsetEventos(res.data);\n\t\t\t});\n\t}, []);\n\n\tconst data = {\n\t\tcolumns: [\n\t\t\t{\n\t\t\t\tlabel: \"\",\n\t\t\t\tfield: \"titulo\",\n\t\t\t\twidth: 200,\n\t\t\t\tattributes: {\n\t\t\t\t\tclassName: \"d-none\",\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t\trows: eventos?.map((evento) => {\n\t\t\tevento.titulo = ;\n\t\t\treturn evento;\n\t\t}),\n\t};\n\n\treturn (\n\t\t\n\t);\n}\n","import React from 'react';\nimport { MDBCol, MDBContainer, MDBFooter, MDBRow } from 'mdbreact';\n\nexport default function App() {\n return (\n \n
\n \n \n \n
Realização:
\n
\n \n Feevale\n \n \n \n
Apoio:
\n
\n \n Feevale\n \n \n Feevale\n \n \n Feevale\n \n \n
\n
\n
\n
\n );\n}","export default __webpack_public_path__ + \"static/bg-1-956701b7fc25756ce7baf101821d525d.png\";","export default __webpack_public_path__ + \"static/bg-2-l-2918ed91d4ce16cd8ec6897faff9791c.png\";","export default __webpack_public_path__ + \"static/bg-3-l-6b816fd0dc5e62574864a6cfae1618e4.png\";","export default __webpack_public_path__ + \"static/bg-3-r-1fdbcbb649e2a73b83d575f55f103d8c.png\";","import React, { useState } from \"react\";\n\n// Imports Material Design\nimport \"./../../src/assets/mdbreact/scss/mdb-free.scss\";\nimport \"bootstrap-css-only/css/bootstrap.min.css\";\nimport \"@fortawesome/fontawesome-free/css/all.min.css\";\n\nimport SEO from \"../components/SEO/SEO\";\nimport { MDBContainer, MDBRow, MDBCol, MDBBox } from \"mdbreact\";\n\nimport Noticias from \"../components/Noticias/Noticias.js\";\nimport Eventos from \"../components/Eventos/Eventos.js\";\nimport Footer from \"../components/Footer/footer\";\n\nimport bg1 from \"../assets/images/bgs/bg-1.png\";\nimport bg2l from \"../assets/images/bgs/bg-2-l.png\";\nimport bg2r from \"../assets/images/bgs/bg-2-r.png\";\nimport bg3l from \"../assets/images/bgs/bg-3-l.png\";\nimport bg3r from \"../assets/images/bgs/bg-3-r.png\";\nimport selo from \"../assets/images/imgs/selo.png\";\n\nexport default function index() {\n\treturn (\n\t\t<>\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t

\n\t\t\t\t\t\t\tBicentenário da\n\t\t\t\t\t\t\t
Imigração Alemã\n\t\t\t\t\t\t

\n\t\t\t\t\t\t

\n\t\t\t\t\t\t\tO Bicentenário da Imigração Alemã marca os duzentos anos da vinda\n\t\t\t\t\t\t\tdos imigrantes alemães para o Rio Grande do Sul e ocorrerá em 25\n\t\t\t\t\t\t\tde julho de 2024.\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
A Universidade Feevale, atenta a importância da imigração\n\t\t\t\t\t\t\tna região, organiza uma série de atividades em 2022, 2023 e 2024,\n\t\t\t\t\t\t\tcom temas ligados ao Bicentenário da Imigração Alemã, contemplando\n\t\t\t\t\t\t\timigração, migração e direitos humanos, sob o prisma das mais\n\t\t\t\t\t\t\tdiferentes áreas do conhecimento.\n\t\t\t\t\t\t

\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t

Eventos

\n\t\t\t\t\t\t

\n\t\t\t\t\t\t\tConfira os eventos e oficinas comemorativas\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\tdo Bicentenário da imigração alemã.\n\t\t\t\t\t\t

\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t

Notícias

\n\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\tAcompanhe as notícias e novidades relacionadas\n\t\t\t\t\t\t\t\t
ao bicentenário da Imigração Alemã\n\t\t\t\t\t\t\t

\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t

Comissão organizadora

\n\t\t\t\t\t\t

\n\t\t\t\t\t\t\tHomologada pelo Reitor da Universidade Feevale, a Comissão do\n\t\t\t\t\t\t\tBicentenário da Imigração Alemã da Universidade Feevale,\n\t\t\t\t\t\t\tresponsável pela articulação entre o tema e as áreas de ensino,\n\t\t\t\t\t\t\tpesquisa e extensão é a seguinte:\n\t\t\t\t\t\t

\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tAlexandra Marcella Zottis\n\t\t\t\t\t\t\n\t\t\t\t\t\t

\n\t\t\t\t\t\t\tDocente dos Cursos de Turismo e Gastronomia, Integrante do\n\t\t\t\t\t\t\tConselho Municipal de Turismo de Campo Bom, Integrante do Conselho\n\t\t\t\t\t\t\tMunicipal de Turismo de Novo Hamburgo, Integrante do Conselho\n\t\t\t\t\t\t\tMunicipal de Turismo de Nova Petrópolis\n\t\t\t\t\t\t

\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tAna Carolina Kayser\n\t\t\t\t\t\t\n\t\t\t\t\t\t

\n\t\t\t\t\t\t\tProfessora do Curso de Administração, Representante da área de\n\t\t\t\t\t\t\tpesquisa da Universidade Feevale, Responsável pela Gestão\n\t\t\t\t\t\t\tAdministrativa e Assessoria – PROPPEX\n\t\t\t\t\t\t

\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tCristina Ennes da Silva\n\t\t\t\t\t\t\n\t\t\t\t\t\t

\n\t\t\t\t\t\t\tProfessora dos Cursos de Artes Visuais, História, Letras e\n\t\t\t\t\t\t\tPedagogia, Coordenadora dos Cursos de Artes Visuais, História,\n\t\t\t\t\t\t\tLetras e Pedagogia, Professora do PPG em Processos e Manifestações\n\t\t\t\t\t\t\tCulturais\n\t\t\t\t\t\t

\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tLuciane Iwanczuk Steigleder\n\t\t\t\t\t\t\n\t\t\t\t\t\t

\n\t\t\t\t\t\t\tRepresentante da área de Extensão da Universidade Feevale,\n\t\t\t\t\t\t\tResponsável pelo Núcleo de Extensão Universitária – PROPPEX\n\t\t\t\t\t\t

\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tLuis Henrique Rauber\n\t\t\t\t\t\t\n\t\t\t\t\t\t

\n\t\t\t\t\t\t\tProfessor dos Cursos de Administração e Publicidade e Propaganda ,\n\t\t\t\t\t\t\tDiretor Acadêmico do Museu Nacional do Calçado, Diretor do\n\t\t\t\t\t\t\tInstituto de Ciências Humanas e Sociais, Integrante da Comissão\n\t\t\t\t\t\t\tEstadual do Bicentenário da Imigração Alemã no Brasil – membro\n\t\t\t\t\t\t\tsuplente, Representante da Feevale na Comissão Oficial dos\n\t\t\t\t\t\t\tFestejos dos 200 anos da Imigração Alemã no Brasil, de NH\n\t\t\t\t\t\t

\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tMarshal Becon Lauzer\n\t\t\t\t\t\t\n\t\t\t\t\t\t

\n\t\t\t\t\t\t\tProfessor Design, Design Gráfico e Moda, Coordenador dos Cursos de\n\t\t\t\t\t\t\tDesign e Moda\n\t\t\t\t\t\t

\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tRoswithia Weber\n\t\t\t\t\t\t\n\t\t\t\t\t\t

\n\t\t\t\t\t\t\tProfessora no Curso de História, Professora no PPG em Processos e\n\t\t\t\t\t\t\tManifestações Culturais, Integrante da Comissão Estadual do\n\t\t\t\t\t\t\tBicentenário da Imigração Alemã no Brasil – membro titular\n\t\t\t\t\t\t

\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\tPara entrar em contato com a comissão, mande um e-mail para{\" \"}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tbicentenario2024@feevale.br\n\t\t\t\t\t\t\n\t\t\t\t\t\t.\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
\n\t\t\t